UNPKG

decap-cms-widget-file

Version:

Widget for uploading files in Decap CMS.

43 lines 191 kB
import _styled from "@emotion/styled/base"; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { css } from '@emotion/react'; import { Map, List } from 'immutable'; import once from 'lodash/once'; import { oneLine } from 'common-tags'; import { lengths, components, buttons, borders, effects, shadows, IconButton } from 'decap-cms-ui-default'; import { basename } from 'decap-cms-lib-util'; import { arrayMoveImmutable as arrayMove } from 'array-move'; import { DndContext, MouseSensor, TouchSensor, closestCenter, useSensor, useSensors } from '@dnd-kit/core'; import { SortableContext, useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import { restrictToParentElement } from '@dnd-kit/modifiers'; import { jsx as ___EmotionJSX } from "@emotion/react"; const MAX_DISPLAY_LENGTH = 50; const ImageWrapper = /*#__PURE__*/_styled("div", { target: "e1hax4ql7", label: "ImageWrapper" })("flex-basis:155px;width:155px;height:100px;margin-right:20px;margin-bottom:20px;border:", borders.textField, ";border-radius:", lengths.borderRadius, ";overflow:hidden;", effects.checkerboard, ";", shadows.inset, ";cursor:", props => props.sortable ? 'pointer' : 'auto', ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUMrQiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */")); const SortableImageButtonsWrapper = /*#__PURE__*/_styled("div", { target: "e1hax4ql6", label: "SortableImageButtonsWrapper" })(process.env.NODE_ENV === "production" ? { name: "1ekgmip", styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px" } : { name: "1ekgmip", styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0M4QyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }); const StyledImage = /*#__PURE__*/_styled("img", { target: "e1hax4ql5", label: "StyledImage" })(process.env.NODE_ENV === "production" ? { name: "ukfjzf", styles: "width:100%;height:100%;object-fit:contain" } : { name: "ukfjzf", styles: "width:100%;height:100%;object-fit:contain/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0Q4QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAg