sanity-plugin-asset-source-unsplash 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sanity-plugin-asset-source-unsplash.umd.js","sources":["../node_modules/react-photo-album/src/utils/ratio.ts","../node_modules/react-photo-album/src/utils/round.ts","../node_modules/react-photo-album/src/utils/heap.ts","../node_modules/react-photo-album/src/utils/dijkstra.ts","../node_modules/react-photo-album/src/layouts/rows.ts","../node_modules/react-photo-album/src/components/renderers/PhotoRenderer.tsx","../node_modules/react-photo-album/src/components/renderers/RowContainerRenderer.tsx","../node_modules/react-photo-album/src/components/layouts/RowsLayout.tsx","../node_modules/react-photo-album/src/utils/shortestPath.ts","../node_modules/react-photo-album/src/layouts/columns.ts","../node_modules/react-photo-album/src/components/renderers/ColumnContainerRenderer.tsx","../node_modules/react-photo-album/src/components/layouts/ColumnsLayout.tsx","../node_modules/react-photo-album/src/layouts/masonry.ts","../node_modules/react-photo-album/src/components/layouts/MasonryLayout.tsx","../node_modules/react-photo-album/src/components/renderers/ContainerRenderer.tsx","../node_modules/react-photo-album/src/hooks/useLayoutEffect.ts","../node_modules/react-photo-album/src/hooks/useMounted.ts","../node_modules/react-photo-album/src/hooks/useContainerWidth.ts","../node_modules/react-photo-album/src/utils/responsive.ts","../node_modules/react-photo-album/src/PhotoAlbum.tsx","../src/components/Photo.styled.tsx","../src/components/Photo.tsx","../node_modules/object-assign/index.js","../node_modules/@sanity/observable/operators/filter.js","../node_modules/@sanity/observable/operators/map.js","../node_modules/is-obj/index.js","../node_modules/deep-assign/index.js","../node_modules/@sanity/client/lib/util/getSelection.js","../node_modules/@sanity/client/lib/validators.js","../node_modules/@sanity/client/lib/data/patch.js","../node_modules/@sanity/client/lib/data/transaction.js","../node_modules/@sanity/client/lib/data/encodeQueryString.js","../node_modules/@sanity/observable/operators/reduce.js","../node_modules/@sanity/observable/lib/SanityObservableMinimal.js","../node_modules/@sanity/observable/minimal.js","../node_modules/requires-port/index.js","../node_modules/querystringify/index.js","../node_modules/url-parse/index.js","../node_modules/original/index.js","../node_modules/eventsource/lib/eventsource.js","../node_modules/@sanity/eventsource/node.js","../node_modules/@sanity/generate-help-url/index.js","../node_modules/@sanity/client/lib/util/pick.js","../node_modules/@sanity/client/lib/util/once.js","../node_modules/@sanity/client/lib/util/defaults.js","../node_modules/@sanity/client/lib/data/listen.js","../node_modules/@sanity/client/lib/data/dataMethods.js","../node_modules/@sanity/client/lib/datasets/datasetsClient.js","../node_modules/@sanity/client/lib/projects/projectsClient.js","../node_modules/@sanity/client/lib/http/queryString.js","../node_modules/@sanity/client/lib/assets/assetsClient.js","../node_modules/@sanity/client/lib/users/usersClient.js","../node_modules/@sanity/client/lib/auth/authClient.js","../node_modules/get-it/node_modules/nano-pubsub/index.js","../node_modules/get-it/src/util/middlewareReducer.js","../node_modules/get-it/src/middleware/defaultOptionsProcessor.js","../node_modules/get-it/src/middleware/defaultOptionsValidator.js","../node_modules/simple-concat/index.js","../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../node_modules/has-flag/index.js","../node_modules/supports-color/index.js","../node_modules/debug/src/node.js","../node_modules/debug/src/index.js","../node_modules/follow-redirects/debug.js","../node_modules/follow-redirects/index.js","../node_modules/@sanity/timed-out/index.js","../node_modules/is-stream/index.js","../node_modules/process-nextick-args/index.js","../node_modules/isarray/index.js","../node_modules/readable-stream/lib/internal/streams/stream.js","../node_modules/safe-buffer/index.js","../node_modules/core-util-is/lib/util.js","../node_modules/inherits/inherits_browser.js","../node_modules/inherits/inherits.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/util-deprecate/node.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/readable.js","../node_modules/from2/index.js","../node_modules/p-is-promise/index.js","../node_modules/into-stream/index.js","../node_modules/xtend/immutable.js","../node_modules/through2/through2.js","../node_modules/speedometer/index.js","../node_modules/progress-stream/index.js","../node_modules/mimic-response/index.js","../node_modules/decompress-response/index.js","../node_modules/get-it/src/request/node/proxy.js","../node_modules/tunnel-agent/index.js","../node_modules/get-it/src/request/node/tunnel.js","../node_modules/get-it/src/request/node-request.js","../node_modules/get-it/src/request/index.js","../node_modules/get-it/src/index.js","../node_modules/get-it/index.js","../node_modules/get-it/src/util/global.js","../node_modules/get-it/src/middleware/observable.js","../node_modules/isobject/index.js","../node_modules/is-plain-object/index.js","../node_modules/get-it/src/middleware/jsonRequest.js","../node_modules/get-it/src/middleware/jsonResponse.js","../node_modules/get-it/src/middleware/progress/node-progress.js","../node_modules/get-it/src/middleware/progress/index.js","../node_modules/make-error/index.js","../node_modules/@sanity/client/lib/http/errors.js","../node_modules/is-retry-allowed/index.js","../node_modules/get-it/src/util/node-shouldRetry.js","../node_modules/get-it/src/middleware/retry.js","../node_modules/get-it/node_modules/ms/index.js","../node_modules/get-it/node_modules/debug/src/debug.js","../node_modules/get-it/node_modules/debug/src/browser.js","../node_modules/get-it/node_modules/debug/src/node.js","../node_modules/get-it/node_modules/debug/src/index.js","../node_modules/get-it/src/middleware/debug.js","../node_modules/get-it/src/middleware/headers.js","../node_modules/@sanity/client/lib/http/nodeMiddleware.js","../node_modules/@sanity/client/lib/http/request.js","../node_modules/@sanity/client/lib/http/requestOptions.js","../node_modules/@sanity/client/lib/warnings.js","../node_modules/@sanity/client/lib/config.js","../node_modules/@sanity/client/lib/sanityClient.js","../src/datastores/unsplash.ts","../src/components/UnsplashAssetSource.styled.tsx","../node_modules/react-infinite-scroll-component/node_modules/tslib/tslib.es6.js","../node_modules/react-infinite-scroll-component/node_modules/throttle-debounce/dist/index.esm.js","../src/components/UnsplashAssetSource.tsx","../src/components/Icon.tsx","../src/index.ts"],"sourcesContent":["const ratio = ({ width, height }: { width: number; height: number }) => width / height;\n\nexport default ratio;\n","// round a value to a specified number of decimal places\nconst round = (value: number, decimals = 0) => {\n const factor = 10 ** decimals;\n return Math.round((value + Number.EPSILON) * factor) / factor;\n};\n\nexport default round;\n","type Comparator<T> = (a: T, b: T) => number;\n\nexport const RankingFunctionComparator =\n <T>(rank: (element: T) => number) =>\n (a: T, b: T) =>\n rank(b) - rank(a);\n\nexport const NumericComparator = RankingFunctionComparator<number>((x: number) => x);\n\n/**\n * Min heap implementation.\n * Comparator function is expected to return a positive number, zero or a negative number if a > b, a === b or a < b.\n */\nconst MinHeap = <T>(comparator: Comparator<T>) => {\n // heap-ordered complete binary tree in heap[1..n] with heap[0] unused\n const heap: T[] = [];\n const compare = comparator;\n let n = 0;\n\n // comparator function\n const greater = (i: number, j: number) => compare(heap[i], heap[j]) < 0;\n\n // swap two elements\n const swap = (i: number, j: number) => {\n const temp = heap[i];\n heap[i] = heap[j];\n heap[j] = temp;\n };\n\n // bubble k-th element up\n const swim = (k: number) => {\n let k2 = k >> 1;\n while (k > 1 && greater(k2, k)) {\n swap(k2, k);\n k = k2;\n k2 = k >> 1;\n }\n };\n\n // bubble k-th element down\n const sink = (k: number) => {\n let j = k << 1;\n while (j <= n) {\n if (j < n && greater(j, j + 1)) j++;\n if (!greater(k, j)) break;\n swap(k, j);\n k = j;\n j = k << 1;\n }\n };\n\n return {\n /** add element to the heap */\n push: (element: T) => {\n n += 1;\n heap[n] = element;\n swim(n);\n },\n\n /** remove the first element from the heap */\n pop: (): T | undefined => {\n if (n === 0) return undefined;\n swap(1, n);\n n -= 1;\n const max = heap.pop();\n sink(1);\n return max;\n },\n\n /** heap size */\n size: (): number => n,\n };\n};\n\nexport default MinHeap;\n","import MinHeap, { RankingFunctionComparator } from \"./heap\";\n\ntype Element = string;\n\ntype HeapElement = {\n id: string;\n weight: number;\n};\n\ntype ElementToElementMap = {\n [key: Element]: Element;\n};\n\ntype ElementToNumberMap = {\n [key: Element]: number;\n};\n\ntype GraphFunction = (node: string) => { [key: string]: number };\n\nconst buildPrecedentsMap = (graph: GraphFunction, startNode: Element, endNode: Element) => {\n // store the previous vertex of the shortest path of arrival\n const precedentsMap: ElementToElementMap = {};\n\n // store nodes already visited\n const visited: ElementToNumberMap = {};\n\n // store/update only the shortest edge weights measured\n // the purpose of this is object is constant time lookup vs. binary heap lookup O(n)\n const storedShortestPaths: ElementToNumberMap = {};\n storedShortestPaths[startNode] = 0;\n\n // priority queue of ALL nodes and storedShortestPaths\n // don't bother to delete them because it's faster to look at visited?\n const pQueue = MinHeap<HeapElement>(RankingFunctionComparator((el: HeapElement): number => el.weight));\n pQueue.push({ id: startNode, weight: 0 });\n\n let shortestNode;\n // pop a node with the shortest total weight from start node\n while ((shortestNode = pQueue.pop()) !== undefined) {\n const shortestNodeId = shortestNode.id;\n\n // if already visited, continue\n if (visited[shortestNodeId]) continue;\n\n // visit neighboring nodes\n const neighboringNodes = graph(shortestNodeId);\n visited[shortestNodeId] = 1;\n\n // meet the neighbors, looking for shorter paths\n for (const neighbor in neighboringNodes) {\n // weight of path from startNode to this neighbor\n const newTotalWeight = shortestNode.weight + neighboringNodes[neighbor];\n\n // if this is the first time meeting the neighbor OR if the new total weight from\n // start node to this neighbor node is greater than the old weight path, update it,\n // and update precedent node\n //\n // introducing deterministic tiebreaker to guard against edge cases where path weight difference can be\n // as low as 1e-12, which leads to visual flickering during subsequent re-renders as layout continues to\n // shift back and forth\n if (\n storedShortestPaths[neighbor] === undefined ||\n (storedShortestPaths[neighbor] > newTotalWeight &&\n (storedShortestPaths[neighbor] / newTotalWeight > 1.005 ||\n precedentsMap[neighbor] < shortestNodeId))\n ) {\n storedShortestPaths[neighbor] = newTotalWeight;\n pQueue.push({ id: neighbor, weight: newTotalWeight });\n precedentsMap[neighbor] = shortestNodeId;\n }\n }\n }\n\n if (typeof storedShortestPaths[endNode] === \"undefined\") {\n // encountered impossible layout\n return undefined;\n }\n\n return precedentsMap;\n};\n\n// build the route from precedent node vertices\nconst getPathFromPrecedentsMap = (precedentsMap: ElementToElementMap, endNode: Element) => {\n const nodes = [];\n let n = endNode;\n while (n) {\n nodes.push(n);\n n = precedentsMap[n];\n }\n return nodes.reverse();\n};\n\n// build the precedentsMap and find the shortest path from it\nexport const findShortestPath = (graph: GraphFunction, startNode: Element, endNode: Element) => {\n const precedentsMap = buildPrecedentsMap(graph, startNode, endNode);\n return precedentsMap !== undefined ? getPathFromPrecedentsMap(precedentsMap, endNode) : undefined;\n};\n","import ratio from \"../utils/ratio\";\nimport round from \"../utils/round\";\nimport { findShortestPath } from \"../utils/dijkstra\";\nimport { Instrumentation, Photo, PhotoLayout, RowConstraints, RowsLayoutOptions } from \"../types\";\n\n// guesstimate how many neighboring nodes should be searched based on\n// the aspect columnRatio of the container with images and minimal aspect columnRatio of all photos\n// as the maximum amount of photos per row, plus some nodes\nconst findIdealNodeSearch = ({\n photos,\n targetRowHeight,\n containerWidth,\n}: {\n photos: Array<Photo>;\n targetRowHeight: number;\n containerWidth: number;\n}): number => {\n const minRatio = photos.reduce((acc, photo) => Math.min(ratio(photo), acc), Number.MAX_VALUE);\n return round(containerWidth / targetRowHeight / minRatio) + 2;\n};\n\n// compute sizes by creating a graph with rows as edges and photo to break on as nodes\n// to calculate the single best layout using Dijkstra's findShortestPat\n\n// get the height for a set of photos in a potential row\nconst getCommonHeight = (row: Array<Photo>, containerWidth: number, spacing: number, padding: number) => {\n const rowWidth = containerWidth - (row.length - 1) * spacing - 2 * padding * row.length;\n const totalAspectRatio = row.reduce((acc, photo) => acc + ratio(photo), 0);\n return rowWidth / totalAspectRatio;\n};\n\n// calculate the cost of breaking at this node (edge weight)\nconst cost = (\n photos: Array<Photo>,\n i: number,\n j: number,\n width: number,\n targetRowHeight: number,\n spacing: number,\n padding: number\n) => {\n const row = photos.slice(i, j);\n const commonHeight = getCommonHeight(row, width, spacing, padding);\n return commonHeight > 0 ? (commonHeight - targetRowHeight) ** 2 * row.length : undefined;\n};\n\n// return function that gets the neighboring nodes of node and returns costs\nconst makeGetNeighbors =\n ({\n photos,\n layoutOptions,\n targetRowHeight,\n limitNodeSearch,\n rowConstraints,\n instrumentation,\n }: {\n photos: Array<Photo>;\n layoutOptions: RowsLayoutOptions;\n targetRowHeight: number;\n limitNodeSearch: number;\n rowConstraints?: RowConstraints;\n instrumentation?: Instrumentation;\n }) =>\n (node: string) => {\n const { containerWidth, spacing, padding } = layoutOptions;\n const results: { [key: string]: number } = {};\n const start = +node;\n results[+start] = 0;\n const startOffset = rowConstraints?.minPhotos ?? 1;\n const endOffset = Math.min(limitNodeSearch, rowConstraints?.maxPhotos ?? Infinity);\n for (let i = start + startOffset; i < photos.length + 1; i += 1) {\n if (i - start > endOffset && !instrumentation?.fullGraphSearch) break;\n const currentCost = cost(photos, start, i, containerWidth, targetRowHeight, spacing, padding);\n if (currentCost === undefined) break;\n results[i.toString()] = currentCost;\n }\n return results;\n };\n\ntype RowsLayoutModel<T extends Photo = Photo> = { photo: T; layout: PhotoLayout }[][] | undefined;\n\nconst computeRowsLayout = <T extends Photo = Photo>({\n photos,\n layoutOptions,\n instrumentation,\n}: {\n photos: T[];\n layoutOptions: RowsLayoutOptions;\n instrumentation?: Instrumentation;\n}): RowsLayoutModel<T> => {\n const { spacing, padding, containerWidth, targetRowHeight, rowConstraints } = layoutOptions;\n\n instrumentation?.onStartLayoutComputation?.();\n\n const limitNodeSearch = findIdealNodeSearch({ photos, containerWidth, targetRowHeight });\n\n const getNeighbors = makeGetNeighbors({\n photos,\n layoutOptions,\n targetRowHeight,\n limitNodeSearch,\n rowConstraints,\n instrumentation,\n });\n\n const path = findShortestPath(getNeighbors, \"0\", `${photos.length}`);\n\n // impossible layout\n if (path === undefined) return undefined;\n\n const result = [];\n\n for (let i = 1; i < path.length; i += 1) {\n const row = photos.map((photo, index) => ({ photo, index })).slice(+path[i - 1], +path[i]);\n const height = getCommonHeight(\n row.map(({ photo }) => photo),\n containerWidth,\n spacing,\n padding\n );\n result.push(\n row.map(({ photo, index }, photoIndex) => ({\n photo,\n layout: {\n height,\n width: height * ratio(photo),\n index,\n photoIndex,\n photosCount: row.length,\n },\n }))\n );\n }\n\n instrumentation?.onFinishLayoutComputation?.(result);\n\n return result;\n};\n\nexport default computeRowsLayout;\n","import * as React from \"react\";\nimport { CSSProperties, HTMLAttributes, MouseEvent } from \"react\";\n\nimport round from \"../../utils/round\";\nimport { LayoutOptions, Photo, PhotoLayout, PhotoProps, RenderPhoto } from \"../../types\";\n\nconst calcWidth = (\n base: string,\n { width, photosCount }: PhotoLayout,\n { spacing, padding, containerWidth }: LayoutOptions\n) => {\n const gaps = spacing * (photosCount - 1) + 2 * padding * photosCount;\n return `calc((${base} - ${gaps}px) / ${round((containerWidth - gaps) / width, 5)})`;\n};\n\nconst cssWidth = (layout: PhotoLayout, layoutOptions: LayoutOptions) => {\n if (layoutOptions.layout !== \"rows\") {\n return `calc(100% - ${2 * layoutOptions.padding}px)`;\n }\n return calcWidth(\"100%\", layout, layoutOptions);\n};\n\nconst calculateSizesValue = (size: string, layout: PhotoLayout, layoutOptions: LayoutOptions) =>\n calcWidth(size.match(/calc\\((.*)\\)/)?.[1] ?? size, layout, layoutOptions);\n\nconst srcSetAndSizes = <T extends Photo = Photo>(photo: T, layout: PhotoLayout, layoutOptions: LayoutOptions) => {\n let srcSet, sizes;\n\n if (photo.images && photo.images.length > 0) {\n srcSet = photo.images\n .concat([\n {\n src: photo.src,\n width: photo.width,\n height: photo.height,\n },\n ])\n .sort((first, second) => first.width - second.width)\n .map((image) => `${image.src} ${image.width}w`)\n .join(\", \");\n }\n\n if (layoutOptions.sizes) {\n sizes = (layoutOptions.sizes.sizes || [])\n .map(({ viewport, size }) => `${viewport} ${calculateSizesValue(size, layout, layoutOptions)}`)\n .concat(calculateSizesValue(layoutOptions.sizes.size, layout, layoutOptions))\n .join(\", \");\n } else {\n sizes = `${Math.ceil((layout.width / (layoutOptions.viewportWidth || layoutOptions.containerWidth)) * 100)}vw`;\n }\n\n return { srcSet, sizes };\n};\n\nconst defaultRenderPhoto: RenderPhoto = ({ imageProps }) => {\n const { src, alt, srcSet, sizes, ...rest } = imageProps;\n return <img src={src} alt={alt} {...(srcSet ? { srcSet, sizes } : null)} {...rest} />;\n};\n\ntype PhotoRendererProps<T extends Photo = Photo> = Omit<PhotoProps<T>, \"imageProps\"> & {\n imageProps?: HTMLAttributes<HTMLImageElement>;\n} & { renderPhoto?: RenderPhoto<T> };\n\nconst PhotoRenderer = <T extends Photo = Photo>(props: PhotoRendererProps<T>) => {\n const { photo, layout, layoutOptions, imageProps: { style, ...restImageProps } = {}, renderPhoto } = props;\n const { onClick } = layoutOptions;\n\n const imageStyle = {\n display: \"block\",\n boxSizing: \"content-box\",\n width: cssWidth(layout, layoutOptions),\n height: \"auto\",\n aspectRatio: `${photo.width} / ${photo.height}`,\n ...(layoutOptions.padding ? { padding: `${layoutOptions.padding}px` } : null),\n ...((layoutOptions.layout === \"columns\" || layoutOptions.layout === \"masonry\") &&\n layout.photoIndex < layout.photosCount - 1\n ? { marginBottom: `${layoutOptions.spacing}px` }\n : null),\n ...(onClick ? { cursor: \"pointer\" } : null),\n ...style,\n } as CSSProperties;\n\n const handleClick = onClick\n ? (event: MouseEvent) => {\n onClick(event, photo, layout.index);\n }\n : undefined;\n\n const imageProps = {\n src: photo.src,\n alt: photo.alt ?? \"\",\n title: photo.title,\n onClick: handleClick,\n style: imageStyle,\n className: \"react-photo-album--photo\",\n ...srcSetAndSizes(photo, layout, layoutOptions),\n ...restImageProps,\n };\n\n return (renderPhoto ?? defaultRenderPhoto)({ photo, layout, layoutOptions, imageProps });\n};\n\nexport default PhotoRenderer;\n","import * as React from \"react\";\nimport { CSSProperties, PropsWithChildren } from \"react\";\n\nimport { RenderRowContainer, RowContainerProps } from \"../../types\";\n\nconst defaultRenderRowContainer: RenderRowContainer = ({ rowContainerProps, children }) => (\n <div {...rowContainerProps}>{children}</div>\n);\n\ntype RowContainerRendererProps = PropsWithChildren<\n Omit<RowContainerProps, \"rowContainerProps\"> & Pick<Partial<RowContainerProps>, \"rowContainerProps\">\n> & {\n renderRowContainer?: RenderRowContainer;\n};\n\nconst RowContainerRenderer = (props: RowContainerRendererProps) => {\n const {\n layoutOptions,\n rowIndex,\n rowsCount,\n renderRowContainer,\n rowContainerProps: { style, ...restRowContainerProps } = {},\n children,\n } = props;\n\n const rowContainerProps = {\n className: \"react-photo-album--row\",\n style: {\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: \"nowrap\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n ...(rowIndex < rowsCount - 1 ? { marginBottom: `${layoutOptions.spacing}px` } : null),\n ...style,\n } as CSSProperties,\n ...restRowContainerProps,\n };\n\n return (renderRowContainer ?? defaultRenderRowContainer)({\n layoutOptions,\n rowIndex,\n rowsCount,\n rowContainerProps,\n children,\n });\n};\n\nexport default RowContainerRenderer;\n","import * as React from \"react\";\n\nimport computeRowsLayout from \"../../layouts/rows\";\nimport PhotoRenderer from \"../renderers/PhotoRenderer\";\nimport RowContainerRenderer from \"../renderers/RowContainerRenderer\";\nimport {\n ComponentsProps,\n Instrumentation,\n Photo,\n RenderPhoto,\n RenderRowContainer,\n RowsLayoutOptions,\n} from \"../../types\";\n\ntype RowsLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: RowsLayoutOptions;\n renderPhoto?: RenderPhoto<T>;\n renderRowContainer?: RenderRowContainer;\n componentsProps?: ComponentsProps;\n instrumentation?: Instrumentation;\n};\n\nconst RowsLayout = <T extends Photo = Photo>(props: RowsLayoutProps<T>): JSX.Element => {\n const { photos, layoutOptions, renderPhoto, renderRowContainer, componentsProps, instrumentation } = props;\n\n const rowsLayout = computeRowsLayout({ photos, layoutOptions, instrumentation });\n\n if (rowsLayout === undefined) return <></>;\n\n return (\n <>\n {rowsLayout.map((row, rowIndex) => (\n <RowContainerRenderer\n key={`row-${rowIndex}`}\n layoutOptions={layoutOptions}\n rowIndex={rowIndex}\n rowsCount={rowsLayout.length}\n renderRowContainer={renderRowContainer}\n rowContainerProps={componentsProps?.rowContainerProps}\n >\n {row.map(({ photo, layout }) => (\n <PhotoRenderer\n key={photo.key || photo.src}\n photo={photo}\n layout={layout}\n layoutOptions={layoutOptions}\n renderPhoto={renderPhoto}\n imageProps={componentsProps?.imageProps}\n />\n ))}\n </RowContainerRenderer>\n ))}\n </>\n );\n};\n\nexport default RowsLayout;\n","type GraphFunction = (node: number) => Array<{ neighbor: number; weight: number }>;\n\ntype Comp = number[][][];\n\nconst computeShortestPath = (graph: GraphFunction, pathLength: number, startNode: number, endNode: number) => {\n // computation matrix: node id x path length x [previous node id, path weight]\n // i.e. element in comp[X][k] represents previous node and path weight of the best path of length k\n // from the starting node to node X\n const comp: Comp = [];\n\n // sorted set of neighboring nodes that need to be visited\n // i.e. queue[k][X] represents node X with partial path of length k\n const queue: { [key: number]: { [key: number]: object | null } } = { 0: { [startNode]: null } };\n\n for (let length = 0; length < pathLength; length += 1) {\n Object.keys(queue[length]).forEach((n) => {\n const node = +n;\n const accumulatedWeight = length > 0 && comp[node][length] ? comp[node][length][1] : 0;\n\n graph(node).forEach(({ neighbor, weight }) => {\n if (!comp[neighbor]) {\n comp[neighbor] = [];\n }\n\n // introducing deterministic tiebreaker to guard against edge cases where path weight difference can be\n // as low as 1e-12, which leads to visual flickering during subsequent re-renders as layout continues to\n // shift back and forth\n const newTotalWeight = accumulatedWeight + weight;\n if (\n !comp[neighbor][length + 1] ||\n (comp[neighbor][length + 1][1] > newTotalWeight &&\n (comp[neighbor][length + 1][1] / newTotalWeight > 1.0001 ||\n node < comp[neighbor][length + 1][0]))\n ) {\n comp[neighbor][length + 1] = [node, newTotalWeight];\n }\n\n if (length < pathLength - 1 && neighbor !== endNode) {\n if (!queue[length + 1]) {\n queue[length + 1] = {};\n }\n queue[length + 1][neighbor] = null;\n }\n });\n });\n }\n return comp;\n};\n\nconst reconstructShortestPath = (comp: Comp, pathLength: number, endNode: number) => {\n const path = [endNode];\n for (let node = endNode, length = pathLength; length > 0; length -= 1) {\n const [prevNode] = comp[node][length];\n node = prevNode;\n path.push(node);\n }\n return path.reverse();\n};\n\n// Find the shortest path of length N in a weighted directed graph using dynamic programming algorithm.\nconst findShortestPathLengthN = (graph: GraphFunction, pathLength: number, startNode: number, endNode: number) =>\n reconstructShortestPath(computeShortestPath(graph, pathLength, startNode, endNode), pathLength, endNode);\n\nexport default findShortestPathLengthN;\n","import ratio from \"../utils/ratio\";\nimport findShortestPathLengthN from \"../utils/shortestPath\";\nimport { ColumnsLayoutOptions, Instrumentation, Photo, PhotoLayout } from \"../types\";\n\n// return function that gets the neighboring nodes of node and returns costs\nconst makeGetNeighbors =\n ({\n photos,\n spacing,\n padding,\n targetColumnWidth,\n targetColumnHeight,\n instrumentation,\n }: {\n photos: Array<Photo>;\n spacing: number;\n padding: number;\n targetColumnWidth: number;\n targetColumnHeight: number;\n instrumentation?: Instrumentation;\n }) =>\n (node: number): Array<{ neighbor: number; weight: number }> => {\n const results = [];\n const cutOffHeight = targetColumnHeight * 1.5;\n let height = targetColumnWidth / ratio(photos[node]) + 2 * padding;\n for (let i = node + 1; i < photos.length + 1; i += 1) {\n results.push({ neighbor: i, weight: (targetColumnHeight - height) ** 2 });\n if ((height > cutOffHeight && !instrumentation?.fullGraphSearch) || i === photos.length) {\n break;\n }\n height += targetColumnWidth / ratio(photos[i]) + spacing + 2 * padding;\n }\n return results;\n };\n\nconst buildColumnsModel = <T extends Photo = Photo>({\n path,\n photos,\n containerWidth,\n columnsGaps,\n columnsRatios,\n spacing,\n padding,\n}: {\n path: number[];\n photos: T[];\n containerWidth: number;\n columnsGaps: number[];\n columnsRatios: number[];\n spacing: number;\n padding: number;\n}) => {\n const columnsModel = [];\n\n const totalRatio = columnsRatios.reduce((acc, ratio) => acc + ratio, 0);\n\n for (let i = 0; i < path.length - 1; i += 1) {\n const column = photos.map((photo, index) => ({ photo, index })).slice(path[i], path[i + 1]);\n\n const totalAdjustedGaps = columnsRatios.reduce(\n (acc, ratio, index) => acc + (columnsGaps[i] - columnsGaps[index]) * ratio,\n 0\n );\n\n const columnWidth =\n ((containerWidth - (path.length - 2) * spacing - 2 * (path.length - 1) * padding - totalAdjustedGaps) *\n columnsRatios[i]) /\n totalRatio;\n\n columnsModel.push(\n column.map(({ photo, index }, photoIndex) => ({\n photo,\n layout: {\n width: columnWidth,\n height: columnWidth / ratio(photo),\n index,\n photoIndex,\n photosCount: column.length,\n },\n }))\n );\n }\n\n return columnsModel;\n};\n\nconst computeColumnsModel = <T extends Photo = Photo>({\n photos,\n layoutOptions,\n targetColumnWidth,\n instrumentation,\n}: {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n targetColumnWidth: number;\n instrumentation?: Instrumentation;\n}) => {\n const { columns, spacing, padding, containerWidth } = layoutOptions;\n\n const columnsGaps: number[] = [];\n const columnsRatios: number[] = [];\n\n // fill first available columns if there are not enough photos\n if (photos.length <= columns) {\n for (let index = 0; index < photos.length; index += 1) {\n columnsGaps[index] = 2 * padding;\n columnsRatios[index] = ratio(photos[index]);\n }\n\n const columnsModel = buildColumnsModel({\n path: Array.from({ length: photos.length + 1 }).map((_, index) => index),\n photos,\n columnsRatios,\n columnsGaps,\n containerWidth,\n spacing,\n padding,\n });\n\n return { columnsGaps, columnsRatios, columnsModel };\n }\n\n // target column height including spacing and padding\n const targetColumnHeight =\n (photos.reduce((acc, photo) => acc + targetColumnWidth / ratio(photo), 0) +\n spacing * (photos.length - columns) +\n 2 * padding * photos.length) /\n columns;\n\n const getNeighbors = makeGetNeighbors({\n photos,\n targetColumnWidth,\n targetColumnHeight,\n spacing,\n padding,\n instrumentation,\n });\n\n const path = findShortestPathLengthN(getNeighbors, columns, 0, photos.length).map((node) => +node);\n\n for (let i = 0; i < path.length - 1; i += 1) {\n const column = photos.slice(path[i], path[i + 1]);\n columnsGaps[i] = spacing * (column.length - 1) + 2 * padding * column.length;\n columnsRatios[i] = 1 / column.reduce((acc, photo) => acc + 1 / ratio(photo), 0);\n }\n\n const columnsModel = buildColumnsModel({\n path,\n photos,\n columnsRatios,\n columnsGaps,\n containerWidth,\n spacing,\n padding,\n });\n\n return { columnsGaps, columnsRatios, columnsModel };\n};\n\ntype ComputeColumnsLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n instrumentation?: Instrumentation;\n};\n\ntype ColumnsLayoutModel<T extends Photo = Photo> =\n | {\n columnsModel: { photo: T; layout: PhotoLayout }[][];\n columnsRatios: number[];\n columnsGaps: number[];\n }\n | undefined;\n\nconst computeLayout = <T extends Photo = Photo>(props: ComputeColumnsLayoutProps<T>): ColumnsLayoutModel<T> => {\n const { photos, layoutOptions, instrumentation } = props;\n const { columns, spacing, padding, containerWidth } = layoutOptions;\n\n const targetColumnWidth = (containerWidth - spacing * (columns - 1) - 2 * padding * columns) / columns;\n\n const { columnsGaps, columnsRatios, columnsModel } = computeColumnsModel({\n photos,\n layoutOptions,\n targetColumnWidth,\n instrumentation,\n });\n\n if (\n columnsModel.findIndex(\n (columnModel) => columnModel.findIndex(({ layout: { width, height } }) => width < 0 || height < 0) >= 0\n ) >= 0\n ) {\n // encountered impossible layout\n if (columns > 1) {\n // will try to find a solution recursively with fewer columns\n return computeLayout({\n photos,\n layoutOptions: {\n ...layoutOptions,\n columns: columns - 1,\n },\n instrumentation,\n });\n } else {\n // bailing out\n return undefined;\n }\n }\n\n return { columnsModel, columnsGaps, columnsRatios };\n};\n\nconst computeColumnsLayout = <T extends Photo = Photo>({\n photos,\n layoutOptions,\n instrumentation,\n}: ComputeColumnsLayoutProps<T>): ColumnsLayoutModel<T> => {\n instrumentation?.onStartLayoutComputation?.();\n\n const result = computeLayout({\n photos,\n layoutOptions: {\n ...layoutOptions,\n columns: Math.min(layoutOptions.columns, photos.length),\n },\n instrumentation,\n });\n\n instrumentation?.onFinishLayoutComputation?.(result);\n\n return result;\n};\n\nexport default computeColumnsLayout;\n","import * as React from \"react\";\nimport { CSSProperties, PropsWithChildren } from \"react\";\n\nimport round from \"../../utils/round\";\nimport { ColumnContainerProps, RenderColumnContainer } from \"../../types\";\n\nconst defaultRenderColumnContainer: RenderColumnContainer = ({ columnContainerProps, children }) => (\n <div {...columnContainerProps}>{children}</div>\n);\n\nconst cssWidth = (props: ColumnContainerRendererProps) => {\n const { layoutOptions, columnIndex, columnsCount, columnsGaps, columnsRatios } = props;\n const { layout, spacing, padding } = layoutOptions;\n\n if (layout === \"masonry\" || !columnsGaps || !columnsRatios) {\n return `calc((100% - ${spacing * (columnsCount - 1)}px) / ${columnsCount})`;\n }\n\n const totalRatio = columnsRatios.reduce((acc, ratio) => acc + ratio, 0);\n const totalAdjustedGaps = columnsRatios.reduce(\n (acc, ratio, index) => acc + (columnsGaps[columnIndex] - columnsGaps[index]) * ratio,\n 0\n );\n\n return `calc((100% - ${round(\n (columnsCount - 1) * spacing + 2 * columnsCount * padding + totalAdjustedGaps,\n 3\n )}px) * ${round(columnsRatios[columnIndex] / totalRatio, 5)} + ${2 * padding}px)`;\n};\n\ntype ColumnContainerRendererProps = PropsWithChildren<\n Omit<ColumnContainerProps, \"columnContainerProps\"> & Pick<Partial<ColumnContainerProps>, \"columnContainerProps\">\n> & {\n renderColumnContainer?: RenderColumnContainer;\n};\n\nconst ColumnContainerRenderer = (props: ColumnContainerRendererProps) => {\n const {\n layoutOptions,\n renderColumnContainer,\n children,\n columnContainerProps: { style, ...restColumnContainerProps } = {},\n ...rest\n } = props;\n\n const columnContainerProps = {\n className: \"react-photo-album--column\",\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n flexWrap: \"nowrap\",\n alignItems: \"flex-start\",\n width: cssWidth(props),\n justifyContent: layoutOptions.layout === \"columns\" ? \"space-between\" : \"flex-start\",\n ...style,\n } as CSSProperties,\n ...restColumnContainerProps,\n };\n\n return (renderColumnContainer ?? defaultRenderColumnContainer)({\n layoutOptions,\n columnContainerProps,\n children,\n ...rest,\n });\n};\n\nexport default ColumnContainerRenderer;\n","import * as React from \"react\";\n\nimport computeColumnsLayout from \"../../layouts/columns\";\nimport PhotoRenderer from \"../renderers/PhotoRenderer\";\nimport ColumnContainerRenderer from \"../renderers/ColumnContainerRenderer\";\nimport {\n ColumnsLayoutOptions,\n ComponentsProps,\n Instrumentation,\n Photo,\n RenderColumnContainer,\n RenderPhoto,\n} from \"../../types\";\n\ntype ColumnsLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n renderPhoto?: RenderPhoto<T>;\n renderColumnContainer?: RenderColumnContainer;\n componentsProps?: ComponentsProps;\n instrumentation?: Instrumentation;\n};\n\nconst ColumnsLayout = <T extends Photo = Photo>(props: ColumnsLayoutProps<T>): JSX.Element => {\n const { photos, layoutOptions, renderPhoto, renderColumnContainer, componentsProps, instrumentation } = props;\n\n const columnsLayout = computeColumnsLayout({ photos, layoutOptions, instrumentation });\n\n if (columnsLayout === undefined) return <></>;\n\n const { columnsModel, columnsRatios, columnsGaps } = columnsLayout;\n\n return (\n <>\n {columnsModel.map((column, columnIndex) => (\n <ColumnContainerRenderer\n key={`column-${columnIndex}`}\n layoutOptions={layoutOptions}\n columnIndex={columnIndex}\n columnsCount={columnsModel.length}\n columnsGaps={columnsGaps}\n columnsRatios={columnsRatios}\n renderColumnContainer={renderColumnContainer}\n columnContainerProps={componentsProps?.columnContainerProps}\n >\n {column.map(({ photo, layout }) => (\n <PhotoRenderer\n key={photo.key || photo.src}\n photo={photo}\n layout={layout}\n layoutOptions={layoutOptions}\n renderPhoto={renderPhoto}\n imageProps={componentsProps?.imageProps}\n />\n ))}\n </ColumnContainerRenderer>\n ))}\n </>\n );\n};\n\nexport default ColumnsLayout;\n","import ratio from \"../utils/ratio\";\nimport { ColumnsLayoutOptions, Instrumentation, Photo, PhotoLayout } from \"../types\";\n\ntype ComputeMasonryLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n instrumentation?: Instrumentation;\n};\n\ntype MasonryColumnsModel<T extends Photo = Photo> = { photo: T; layout: PhotoLayout }[][] | undefined;\n\nconst computeMasonryLayout = <T extends Photo = Photo>(props: ComputeMasonryLayoutProps<T>): MasonryColumnsModel<T> => {\n const { photos, layoutOptions, instrumentation } = props;\n const { spacing, padding, containerWidth } = layoutOptions;\n\n const columns = Math.min(layoutOptions.columns, photos.length);\n\n instrumentation?.onStartLayoutComputation?.();\n\n // calculate column width based on total width and columns count\n const columnWidth = (containerWidth - spacing * (columns - 1) - 2 * padding * columns) / columns;\n\n // encountered impossible layout\n if (columnWidth <= 0) {\n // will try to find a solution recursively with fewer columns\n return columns > 1\n ? computeMasonryLayout({\n ...props,\n layoutOptions: { ...layoutOptions, columns: columns - 1 },\n })\n : undefined;\n }\n\n // store current top positions for each column\n const columnsCurrentTopPositions: number[] = [];\n for (let i = 0; i < columns; i += 1) {\n columnsCurrentTopPositions[i] = 0;\n }\n\n // group photos by column\n const columnsModel = photos.reduce<{ photo: T; index: number }[][]>((acc, photo: T, index) => {\n // find the shortest column\n const shortestColumn = columnsCurrentTopPositions.reduce(\n (acc, item, i) =>\n // subtracting 1 here to compensate for floating point precision errors\n // when two columns have identical height their floating point values can be slightly off\n // in subsequent re-renders, leading to images jumping between columns\n item < columnsCurrentTopPositions[acc] - 1 ? i : acc,\n 0\n );\n\n // update top position of the shortest column\n columnsCurrentTopPositions[shortestColumn] =\n columnsCurrentTopPositions[shortestColumn] + columnWidth / ratio(photo) + spacing + 2 * padding;\n\n // place a photo into the shortest column\n if (!acc[shortestColumn]) {\n acc[shortestColumn] = [];\n }\n acc[shortestColumn].push({ photo, index });\n\n return acc;\n }, []);\n\n // map through each column and photo and add layout properties\n const result = columnsModel.map((column) =>\n column.map(({ photo, index }, photoIndex) => ({\n photo,\n layout: {\n width: columnWidth,\n height: columnWidth / ratio(photo),\n index,\n photoIndex,\n photosCount: column.length,\n },\n }))\n );\n\n instrumentation?.onFinishLayoutComputation?.(result);\n\n return result;\n};\n\nexport default computeMasonryLayout;\n","import * as React from \"react\";\n\nimport computeMasonryLayout from \"../../layouts/masonry\";\nimport PhotoRenderer from \"../renderers/PhotoRenderer\";\nimport ColumnContainerRenderer from \"../renderers/ColumnContainerRenderer\";\nimport {\n ColumnsLayoutOptions,\n ComponentsProps,\n Instrumentation,\n Photo,\n RenderColumnContainer,\n RenderPhoto,\n} from \"../../types\";\n\ntype MasonryLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n renderPhoto?: RenderPhoto<T>;\n renderColumnContainer?: RenderColumnContainer;\n componentsProps?: ComponentsProps;\n instrumentation?: Instrumentation;\n};\n\nconst MasonryLayout = <T extends Photo = Photo>(props: MasonryLayoutProps<T>): JSX.Element => {\n const { photos, layoutOptions, renderPhoto, renderColumnContainer, componentsProps, instrumentation } = props;\n\n const masonryLayout = computeMasonryLayout({ photos, layoutOptions, instrumentation });\n\n if (masonryLayout === undefined) return <></>;\n\n return (\n <>\n {masonryLayout.map((column, columnIndex) => (\n <ColumnContainerRenderer\n key={`masonry-column-${columnIndex}`}\n layoutOptions={layoutOptions}\n columnsCount={masonryLayout.length}\n columnIndex={columnIndex}\n renderColumnContainer={renderColumnContainer}\n columnContainerProps={componentsProps?.columnContainerProps}\n >\n {column.map(({ photo, layout }) => (\n <PhotoRenderer\n key={photo.key || photo.src}\n photo={photo}\n layout={layout}\n layoutOptions={layoutOptions}\n renderPhoto={renderPhoto}\n imageProps={componentsProps?.imageProps}\n />\n ))}\n </ColumnContainerRenderer>\n ))}\n </>\n );\n};\n\nexport default MasonryLayout;\n","import * as React from \"react\";\nimport { CSSProperties, ForwardRefExoticComponent, PropsWithChildren, RefAttributes } from \"react\";\n\nimport { ContainerProps, RenderContainer, RenderContainerProps } from \"../../types\";\n\nconst defaultRenderContainer = ({ containerProps, children, containerRef }: RenderContainerProps) => (\n <div ref={containerRef} {...containerProps}>\n {children}\n </div>\n);\n\ntype ContainerRendererProps = Omit<RenderContainerProps, \"containerProps\"> &\n Pick<Partial<RenderContainerProps>, \"containerProps\"> & { renderContainer?: RenderContainer };\n\nconst ContainerRenderer = (props: ContainerRendererProps) => {\n const {\n layoutOptions,\n renderContainer,\n children,\n containerRef,\n containerProps: { style, ...restContainerProps } = {},\n } = props;\n const { layout } = layoutOptions;\n\n const containerProps = {\n className: `react-photo-album react-photo-album--${layout}`,\n style: {\n display: \"flex\",\n flexWrap: \"nowrap\",\n justifyContent: \"space-between\",\n flexDirection: layout === \"rows\" ? \"column\" : \"row\",\n ...style,\n } as CSSProperties,\n ...restContainerProps,\n };\n\n // we are dealing with deprecated exotic component returned by forwardRef\n if (renderContainer && typeof renderContainer === \"object\") {\n const Component = renderContainer as ForwardRefExoticComponent<\n PropsWithChildren<ContainerProps> & RefAttributes<HTMLDivElement>\n >;\n\n return (\n <Component ref={containerRef} layoutOptions={layoutOptions} containerProps={containerProps}>\n {children}\n </Component>\n );\n }\n\n return (renderContainer ?? defaultRenderContainer)({\n containerProps,\n containerRef,\n layoutOptions,\n children,\n });\n};\n\nexport default ContainerRenderer;\n","import { useEffect, useLayoutEffect } from \"react\";\n\n/* istanbul ignore next */\nexport default typeof document !== \"undefined\" ? useLayoutEffect : useEffect;\n","import { useState } from \"react\";\nimport useLayoutEffect from \"./useLayoutEffect\";\n\nconst useMounted = () => {\n const [mounted, setMounted] = useState(false);\n\n useLayoutEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n return mounted;\n};\n\nexport default useMounted;\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { ResizeObserverProvider } from \"../types\";\n\nconst useContainerWidth = (resizeObserverProvider?: ResizeObserverProvider, breakpoints?: number[]) => {\n const observerRef = useRef<ResizeObserver>();\n const [containerWidth, setContainerWidth] = useState<number>();\n\n const containerRef = useCallback(\n (node) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = undefined;\n }\n\n const updateWidth = () => {\n let newWidth = node?.clientWidth;\n\n if (newWidth !== undefined && breakpoints && breakpoints.length > 0) {\n const sortedBreakpoints = [...breakpoints.filter((x) => x > 0)].sort((a, b) => b - a);\n sortedBreakpoints.push(Math.floor(sortedBreakpoints[sortedBreakpoints.length - 1] / 2));\n newWidth = sortedBreakpoints.find(\n (breakpoint, index) => breakpoint <= newWidth || index === sortedBreakpoints.length - 1\n );\n }\n\n setContainerWidth(newWidth);\n };\n\n updateWidth();\n\n if (node) {\n observerRef.current =\n typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(updateWidth)\n : resizeObserverProvider?.(updateWidth);\n\n observerRef.current?.observe(node);\n }\n },\n [resizeObserverProvider, breakpoints]\n );\n\n return useMemo(() => ({ containerRef, containerWidth }), [containerRef, containerWidth]);\n};\n\nexport default useContainerWidth;\n","import { ResponsiveParameter } from \"../types\";\n\nconst breakpoints = Object.freeze([1200, 600, 300, 0]);\n\nconst unwrap = (value: ResponsiveParameter, containerWidth: number): number =>\n typeof value === \"function\" ? value(containerWidth) : value;\n\nconst unwrapParameter = (value: ResponsiveParameter | undefined, containerWidth: number): number | undefined =>\n typeof value !== \"undefined\" ? unwrap(value, containerWidth) : undefined;\n\nconst selectResponsiveValue = (values: ResponsiveParameter[], containerWidth: number): number => {\n const index = breakpoints.findIndex((breakpoint) => breakpoint <= containerWidth);\n return unwrap(values[index >= 0 ? index : 0], containerWidth);\n};\n\nconst resolveResponsiveParameter = (\n parameter: ResponsiveParameter | undefined,\n containerWidth: number,\n values: ResponsiveParameter[]\n): number => {\n const value = unwrapParameter(parameter, containerWidth);\n return value === undefined ? selectResponsiveValue(values, containerWidth) : value;\n};\n\nexport default resolveResponsiveParameter;\n","import * as React from \"react\";\n\nimport RowsLayout from \"./components/layouts/RowsLayout\";\nimport ColumnsLayout from \"./components/layouts/ColumnsLayout\";\nimport MasonryLayout from \"./components/layouts/MasonryLayout\";\nimport ContainerRenderer from \"./components/renderers/ContainerRenderer\";\nimport useMounted from \"./hooks/useMounted\";\nimport useContainerWidth from \"./hooks/useContainerWidth\";\nimport resolveResponsiveParameter from \"./utils/responsive\";\nimport { ColumnsLayoutOptions, ComponentsPropsParameter, Photo, PhotoAlbumProps, RowsLayoutOptions } from \"./types\";\n\nconst resolveLayoutOptions = <T extends Photo>({\n layout,\n onClick,\n viewportWidth,\n containerWidth,\n targetRowHeight,\n rowConstraints,\n columns,\n spacing,\n padding,\n sizes,\n}: Omit<PhotoAlbumProps<T>, \"photos\"> & {\n viewportWidth?: number;\n containerWidth: number;\n}): RowsLayoutOptions | ColumnsLayoutOptions => ({\n layout,\n onClick,\n viewportWidth,\n containerWidth,\n columns: resolveResponsiveParameter(columns, containerWidth, [5, 4, 3, 2]),\n spacing: resolveResponsiveParameter(spacing, containerWidth, [20, 15, 10, 5]),\n padding: resolveResponsiveParameter(padding, containerWidth, [0, 0, 0, 0, 0]),\n targetRowHeight: resolveResponsiveParameter(targetRowHeight, containerWidth, [\n (w) => w / 5,\n (w) => w / 4,\n (w) => w / 3,\n (w) => w / 2,\n ]),\n sizes,\n rowConstraints,\n});\n\nconst resolveComponentsProps = (componentsProps: ComponentsPropsParameter | undefined, containerWidth: number) => {\n return typeof componentsProps === \"function\" ? componentsProps(containerWidth) : componentsProps;\n};\n\nconst PhotoAlbum = <T extends Photo>(props: PhotoAlbumProps<T>): JSX.Element => {\n const {\n photos,\n layout,\n renderPhoto,\n renderContainer,\n renderRowContainer,\n renderColumnContainer,\n defaultContainerWidth,\n resizeObserverProvider,\n breakpoints,\n instrumentation,\n } = props;\n\n const mounted = useMounted();\n const { containerRef, containerWidth } = useContainerWidth(resizeObserverProvider, breakpoints);\n\n // safeguard against incorrect usage\n if (!layout || ![\"rows\", \"columns\", \"masonry\"].includes(layout) || !Array.isArray(photos)) return <></>;\n\n const layoutOptions = resolveLayoutOptions({\n containerWidth: (mounted && containerWidth) || defaultContainerWidth || 800,\n viewportWidth: (mounted && window.innerWidth) || undefined,\n ...props,\n });\n\n const componentsProps = resolveComponentsProps(props.componentsProps, layoutOptions.containerWidth);\n\n const commonLayoutProps = { photos, renderPhoto, componentsProps, instrumentation };\n\n return (\n <ContainerRenderer\n containerRef={containerRef}\n layoutOptions={layoutOptions}\n renderContainer={renderContainer}\n containerProps={componentsProps?.containerProps}\n >\n {layout === \"rows\" ? (\n <RowsLayout\n layoutOptions={layoutOptions as RowsLayoutOptions}\n renderRowContainer={renderRowContainer}\n {...commonLayoutProps}\n />\n ) : layout === \"columns\" ? (\n <ColumnsLayout\n layoutOptions={layoutOptions as ColumnsLayoutOptions}\n renderColumnContainer={renderColumnContainer}\n {...commonLayoutProps}\n />\n ) : (\n <MasonryLayout\n layoutOptions={layoutOptions as ColumnsLayoutOptions}\n renderColumnContainer={renderColumnContainer}\n {...commonLayoutProps}\n />\n )}\n </ContainerRenderer>\n );\n};\n\nexport default PhotoAlbum;\n","import { Card } from '@sanity/ui'\nimport styled from 'styled-components'\n\nexport const Root = styled.div`\n overflow: hidden;\n background-origin: content-box;\n background-repeat: no-repeat;\n background-clip: border-box;\n background-size: cover;\n position: relative;\n outline: none !important;\n border: 1px solid white;\n box-sizing: content-box;\n user-drag: none;\n\n &:hover {\n opacity: 0.85;\n }\n\n &:focus,\n &:active {\n border: 1px solid var(--input-border-color-focus);\n box-shadow: inset 0 0 0 3px var(--input-border-color-focus);\n }\n`\n\nexport const CreditLineLink = styled.a`\n text-decoration: none;\n cursor: pointer;\n`\n\nexport const CreditLine = styled(Card)`\n ${({ theme }) => `\n --creditline-fg: ${theme.sanity.color.base.bg};\n --creditline-bg: ${theme.sanity.color.base.fg};\n `};\n user-drag: none;\n position: absolute;\n background-color: var(--creditline-bg);\n bottom: 0;\n\n [data-ui='Text'] {\n color: var(--creditline-fg);\n }\n`\n","import { Text } from '@sanity/ui'\nimport React, { RefObject } from 'react'\nimport { UnsplashPhoto } from 'src/types'\nimport { CreditLine, CreditLineLink, Root } from './Photo.styled'\n\ntype Props = {\n data: UnsplashPhoto\n width: number\n height: number\n onClick: (photo: UnsplashPhoto) => void\n onKeyDown: (event: any) => void\n active: boolean\n onFocus: (photo: UnsplashPhoto) => void\n}\n\nconst UTM_SOURCE = 'sanity-plugin-asset-source-unsplash'\n\nexport default class Photo extends React.Component<Props> {\n rootElm: RefObject<HTMLDivElement> = React.createRef()\n\n handleClick = (event: any) => {\n this.props.onClick(this.props.data)\n }\n\n handleCreditLineClicked = (event: any) => {\n event.stopPropagation()\n const { data } = this.props\n const url = `${data.links.html}?utm_source=${encodeURIComponent(\n UTM_SOURCE\n )}&utm_medium=referral`\n window.open(url, data.id, 'noreferrer,noopener')\n }\n\n handleKeyDown = (event: any) => {\n const { onKeyDown, data } = this.props\n onKeyDown(event)\n if (event.keyCode === 13) {\n this.props.onClick(data)\n }\n }\n\n handleMouseDown = (event: any) => {\n this.props.onFocus(this.props.data)\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.active && this.props.active && this.rootElm.current) {\n this.rootElm.current.focus()\n this.props.onFocus(this.props.data)\n }\n }\n\n render() {\n const { width, height, data } = this.props\n const src = data.urls.small\n const userName = data.user.name\n return (\n <Root\n ref={this.rootElm}\n title={`Select image by ${userName} from Unsplash`}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n style={{\n width: `${width}px`,\n height: `${height}px`,\n backgroundImage: `url(\"${src}\")`\n }}\n onClick={this.handleClick}\n >\n <CreditLineLink onClick={this.handleCreditLineClicked}>\n <CreditLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Open image by ${userName} on Unsplash in new window`}>\n By @{data.user.username}\n </Text>\n </CreditLine>\n </CreditLineLink>\n </Root>\n )\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","exports.filter = require('rxjs/internal/operators/filter').filter\n","exports.map = require('rxjs/internal/operators/map').map\n","'use strict';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","'use strict';\nvar isObj = require('is-obj');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Sources cannot be null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction assignKey(to, from, key) {\n\tvar val = from[key];\n\n\tif (val === undefined || val === null) {\n\t\treturn;\n\t}\n\n\tif (hasOwnProperty.call(to, key)) {\n\t\tif (to[key] === undefined || to[key] === null) {\n\t\t\tthrow new TypeError('Cannot convert undefined or null to object (' + key + ')');\n\t\t}\n\t}\n\n\tif (!hasOwnProperty.call(to, key) || !isObj(val)) {\n\t\tto[key] = val;\n\t} else {\n\t\tto[key] = assign(Object(to[key]), from[key]);\n\t}\n}\n\nfunction assign(to, from) {\n\tif (to === from) {\n\t\treturn to;\n\t}\n\n\tfrom = Object(from);\n\n\tfor (var key in from) {\n\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\tassignKey(to, from, key);\n\t\t}\n\t}\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tvar symbols = Object.getOwnPropertySymbols(from);\n\n\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\tassignKey(to, from, symbols[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n}\n\nmodule.exports = function deepAssign(target) {\n\ttarget = toObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tassign(target, arguments[s]);\n\t}\n\n\treturn target;\n};\n","\"use strict\";\n\nmodule.exports = function getSelection(sel) {\n if (typeof sel === 'string' || Array.isArray(sel)) {\n return {\n id: sel\n };\n }\n\n if (sel && sel.query) {\n return {\n query: sel.query\n };\n }\n\n var selectionOpts = ['* Document ID (<docId>)', '* Array of document IDs', '* Object containing `query`'].join('\\n');\n throw new Error(\"Unknown selection - must be one of:\\n\\n\".concat(selectionOpts));\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar VALID_ASSET_TYPES = ['image', 'file'];\nvar VALID_INSERT_LOCATIONS = ['before', 'after', 'replace'];\n\nexports.dataset = function (name) {\n if (!/^(~[a-z0-9]{1}[-\\w]{0,25}|[a-z0-9]{1}[-\\w]{0,19})$/.test(name)) {\n throw new Error('Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 20 characters');\n }\n};\n\nexports.projectId = function (id) {\n if (!/^[-a-z0-9]+$/i.test(id)) {\n throw new Error('`projectId` can only contain only a-z, 0-9 and dashes');\n }\n};\n\nexports.validateAssetType = function (type) {\n if (VALID_ASSET_TYPES.indexOf(type) === -1) {\n throw new Error(\"Invalid asset type: \".concat(type, \". Must be one of \").concat(VALID_ASSET_TYPES.join(', ')));\n }\n};\n\nexports.validateObject = function (op, val) {\n if (val === null || _typeof(val) !== 'object' || Array.isArray(val)) {\n throw new Error(\"\".concat(op, \"() takes an object of properties\"));\n }\n};\n\nexports.requireDocumentId = function (op, doc) {\n if (!doc._id) {\n throw new Error(\"\".concat(op, \"() requires that the document contains an ID (\\\"_id\\\" property)\"));\n }\n\n exports.validateDocumentId(op, doc._id);\n};\n\nexports.validateDocumentId = function (op, id) {\n if (typeof id !== 'string' || !/^[a-z0-9_.-]+$/i.test(id)) {\n throw new Error(\"\".concat(op, \"(): \\\"\").concat(id, \"\\\" is not a valid document ID\"));\n }\n};\n\nexports.validateInsert = function (at, selector, items) {\n var signature = 'insert(at, selector, items)';\n\n if (VALID_INSERT_LOCATIONS.indexOf(at) === -1) {\n var valid = VALID_INSERT_LOCATIONS.map(function (loc) {\n return \"\\\"\".concat(loc, \"\\\"\");\n }).join(', ');\n throw new Error(\"\".concat(signature, \" takes an \\\"at\\\"-argument which is one of: \").concat(valid));\n }\n\n if (typeof selector !== 'string') {\n throw new Error(\"\".concat(signature, \" takes a \\\"selector\\\"-argument which must be a string\"));\n }\n\n if (!Array.isArray(items)) {\n throw new Error(\"\".concat(signature, \" takes an \\\"items\\\"-argument which must be an array\"));\n }\n};\n\nexports.hasDataset = function (config) {\n if (!config.gradientMode && !config.dataset) {\n throw new Error('`dataset` must be provided to perform queries');\n }\n\n return config.dataset || '';\n};\n\nexports.requestTag = function (tag) {\n if (typeof tag !== 'string' || !/^[a-z0-9._-]{1,75}$/i.test(tag)) {\n throw new Error(\"Tag can only contain alphanumeric characters, underscores, dashes and dots, and be between one and 75 characters long.\");\n }\n\n return tag;\n};","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar deepAssign = require('deep-assign');\n\nvar assign = require('object-assign');\n\nvar getSelection = require('../util/getSelection');\n\nvar validate = require('../validators');\n\nvar validateObject = validate.validateObject;\nvar validateInsert = validate.validateInsert;\n\nfunction Patch(selection) {\n var operations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var client = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n this.selection = selection;\n this.operations = assign({}, operations);\n this.client = client;\n}\n\nassign(Patch.prototype, {\n clone: function clone() {\n return new Patch(this.selection, assign({}, this.operations), this.client);\n },\n merge: function merge(props) {\n validateObject('merge', props);\n var stack = new Error().stack.toString().split('\\n').filter(function (str) {\n return str.trim();\n }).slice(2);\n console.warn(\"The \\\"merge\\\" patch has been deprecated and will be removed in the future\\n\".concat(stack.join('\\n')));\n return this._assign('merge', deepAssign(this.operations.merge || {}, props));\n },\n set: function set(props) {\n return this._assign('set', props);\n },\n diffMatchPatch: function diffMatchPatch(props) {\n validateObject('diffMatchPatch', props);\n return this._assign('diffMatchPatch', props);\n },\n unset: function unset(attrs) {\n if (!Array.isArray(attrs)) {\n throw new Error('unset(attrs) takes an array of attributes to unset, non-array given');\n }\n\n this.operations = assign({}, this.operations, {\n unset: attrs\n });\n return this;\n },\n setIfMissing: function setIfMissing(props) {\n return this._assign('setIfMissing', props);\n },\n replace: function replace(props) {\n validateObject('replace', props);\n return this._set('set', {\n $: props\n }); // eslint-disable-line id-length\n },\n inc: function inc(props) {\n return this._assign('inc', props);\n },\n dec: function dec(props) {\n return this._assign('dec', props);\n },\n insert: function insert(at, selector, items) {\n var _this$_assign;\n\n validateInsert(at, selector, items);\n return this._assign('insert', (_this$_assign = {}, _defineProperty(_this$_assign, at, selector), _defineProperty(_this$_assign, \"items\", items), _this$_assign));\n },\n append: function append(selector, items) {\n return this.insert('after', \"\".concat(selector, \"[-1]\"), items);\n },\n prepend: function prepend(selector, items) {\n return this.insert('before', \"\".concat(selector, \"[0]\"), items);\n },\n splice: function splice(selector, start, deleteCount, items) {\n // Negative indexes doesn't mean the same in Sanity as they do in JS;\n // -1 means \"actually at the end of the array\", which allows inserting\n // at the end of the array without knowing its length. We therefore have\n // to substract negative indexes by one to match JS. If you want Sanity-\n // behaviour, just use `insert('replace', selector, items)` directly\n var delAll = typeof deleteCount === 'undefined' || deleteCount === -1;\n var startIndex = start < 0 ? start - 1 : start;\n var delCount = delAll ? -1 : Math.max(0, start + deleteCount);\n var delRange = startIndex < 0 && delCount >= 0 ? '' : delCount;\n var rangeSelector = \"\".concat(selector, \"[\").concat(startIndex, \":\").concat(delRange, \"]\");\n return this.insert('replace', rangeSelector, items || []);\n },\n ifRevisionId: function ifRevisionId(rev) {\n this.operations.ifRevisionID = rev;\n return this;\n },\n serialize: function serialize() {\n return assign(getSelection(this.selection), this.operations);\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.client) {\n throw new Error('No `client` passed to patch, either provide one or pass the ' + 'patch to a clients `mutate()` method');\n }\n\n var returnFirst = typeof this.selection === 'string';\n var opts = assign({\n returnFirst: returnFirst,\n returnDocuments: true\n }, options);\n return this.client.mutate({\n patch: this.serialize()\n }, opts);\n },\n reset: function reset() {\n this.operations = {};\n return this;\n },\n _set: function _set(op, props) {\n return this._assign(op, props, false);\n },\n _assign: function _assign(op, props) {\n var merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n validateObject(op, props);\n this.operations = assign({}, this.operations, _defineProperty({}, op, assign({}, merge && this.operations[op] || {}, props)));\n return this;\n }\n});\nmodule.exports = Patch;","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar validators = require('../validators');\n\nvar Patch = require('./patch');\n\nvar defaultMutateOptions = {\n returnDocuments: false\n};\n\nfunction Transaction() {\n var operations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var client = arguments.length > 1 ? arguments[1] : undefined;\n var transactionId = arguments.length > 2 ? arguments[2] : undefined;\n this.trxId = transactionId;\n this.operations = operations;\n this.client = client;\n}\n\nassign(Transaction.prototype, {\n clone: function clone() {\n return new Transaction(this.operations.slice(0), this.client, this.trxId);\n },\n create: function create(doc) {\n validators.validateObject('create', doc);\n return this._add({\n create: doc\n });\n },\n createIfNotExists: function createIfNotExists(doc) {\n var op = 'createIfNotExists';\n validators.validateObject(op, doc);\n validators.requireDocumentId(op, doc);\n return this._add(_defineProperty({}, op, doc));\n },\n createOrReplace: function createOrReplace(doc) {\n var op = 'createOrReplace';\n validators.validateObject(op, doc);\n validators.requireDocumentId(op, doc);\n return this._add(_defineProperty({}, op, doc));\n },\n delete: function _delete(documentId) {\n validators.validateDocumentId('delete', documentId);\n return this._add({\n delete: {\n id: documentId\n }\n });\n },\n patch: function patch(documentId, patchOps) {\n var isBuilder = typeof patchOps === 'function';\n var isPatch = documentId instanceof Patch; // transaction.patch(client.patch('documentId').inc({visits: 1}))\n\n if (isPatch) {\n return this._add({\n patch: documentId.serialize()\n });\n } // patch => patch.inc({visits: 1}).set({foo: 'bar'})\n\n\n if (isBuilder) {\n var patch = patchOps(new Patch(documentId, {}, this.client));\n\n if (!(patch instanceof Patch)) {\n throw new Error('function passed to `patch()` must return the patch');\n }\n\n return this._add({\n patch: patch.serialize()\n });\n }\n\n return this._add({\n patch: assign({\n id: documentId\n }, patchOps)\n });\n },\n transactionId: function transactionId(id) {\n if (!id) {\n return this.trxId;\n }\n\n this.trxId = id;\n return this;\n },\n serialize: function serialize() {\n return this.operations.slice();\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit(options) {\n if (!this.client) {\n throw new Error('No `client` passed to transaction, either provide one or pass the ' + 'transaction to a clients `mutate()` method');\n }\n\n return this.client.mutate(this.serialize(), assign({\n transactionId: this.trxId\n }, defaultMutateOptions, options || {}));\n },\n reset: function reset() {\n this.operations = [];\n return this;\n },\n _add: function _add(mut) {\n this.operations.push(mut);\n return this;\n }\n});\nmodule.exports = Transaction;","\"use strict\";\n\nvar _excluded = [\"tag\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar enc = encodeURIComponent;\n\nmodule.exports = function (_ref) {\n var query = _ref.query,\n _ref$params = _ref.params,\n params = _ref$params === void 0 ? {} : _ref$params,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n // We generally want tag at the start of the query string\n var tag = options.tag,\n opts = _objectWithoutProperties(options, _excluded);\n\n var q = \"query=\".concat(enc(query));\n var base = tag ? \"?tag=\".concat(enc(tag), \"&\").concat(q) : \"?\".concat(q);\n var qString = Object.keys(params).reduce(function (qs, param) {\n return \"\".concat(qs, \"&\").concat(enc(\"$\".concat(param)), \"=\").concat(enc(JSON.stringify(params[param])));\n }, base);\n return Object.keys(opts).reduce(function (qs, option) {\n // Only include the option if it is truthy\n return options[option] ? \"\".concat(qs, \"&\").concat(enc(option), \"=\").concat(enc(options[option])) : qs;\n }, qString);\n};","exports.reduce = require('rxjs/internal/operators/reduce').reduce\n","\"use strict\";\n\nvar _require = require('rxjs/internal/Observable'),\n Observable = _require.Observable;\n\nvar assign = require('object-assign');\n\nvar _require2 = require('../operators/map'),\n map = _require2.map;\n\nvar _require3 = require('../operators/filter'),\n filter = _require3.filter;\n\nvar _require4 = require('../operators/reduce'),\n reduce = _require4.reduce;\n/*\n A minimal rxjs based observable that align as closely as possible with the current es-observable spec,\n without the static factory methods\n */\n\n\nfunction SanityObservableMinimal() {\n Observable.apply(this, arguments); // eslint-disable-line prefer-rest-params\n}\n\nSanityObservableMinimal.prototype = Object.create(assign(Object.create(null), Observable.prototype));\nObject.defineProperty(SanityObservableMinimal.prototype, 'constructor', {\n value: SanityObservableMinimal,\n enumerable: false,\n writable: true,\n configurable: true\n});\n\nSanityObservableMinimal.prototype.lift = function lift(operator) {\n var observable = new SanityObservableMinimal();\n observable.source = this;\n observable.operator = operator;\n return observable;\n};\n\nfunction createDeprecatedMemberOp(name, op) {\n var hasWarned = false;\n return function deprecatedOperator() {\n if (!hasWarned) {\n hasWarned = true;\n console.warn(new Error(\"Calling observable.\".concat(name, \"(...) is deprecated. Please use observable.pipe(\").concat(name, \"(...)) instead\")));\n }\n\n return this.pipe(op.apply(this, arguments));\n };\n}\n\nSanityObservableMinimal.prototype.map = createDeprecatedMemberOp('map', map);\nSanityObservableMinimal.prototype.filter = createDeprecatedMemberOp('filter', filter);\nSanityObservableMinimal.prototype.reduce = createDeprecatedMemberOp('filter', reduce);\nmodule.exports = SanityObservableMinimal;","module.exports = require('./lib/SanityObservableMinimal')\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/\n , whitespace = '[\\\\x09\\\\x0A\\\\x0B\\\\x0C\\\\x0D\\\\x20\\\\xA0\\\\u1680\\\\u180E\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200A\\\\u202F\\\\u205F\\\\u3000\\\\u2028\\\\u2029\\\\uFEFF]'\n , left = new RegExp('^'+ whitespace +'+');\n\n/**\n * Trim a given string.\n *\n * @param {String} str String to trim.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(left, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d+)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n if (~(index = address.indexOf(parse))) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n if (url.auth) {\n instruction = url.auth.split(':');\n url.username = instruction[0] || '';\n url.password = instruction[1] || '';\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (/:\\d+$/.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n default:\n url[part] = value;\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result = protocol + (url.slashes || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n }\n\n result += url.host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","'use strict';\n\nvar parse = require('url-parse');\n\n/**\n * Transform an URL to a valid origin value.\n *\n * @param {String|Object} url URL to transform to it's origin.\n * @returns {String} The origin.\n * @api public\n */\nfunction origin(url) {\n if ('string' === typeof url) url = parse(url);\n\n //\n // 6.2. ASCII Serialization of an Origin\n // http://tools.ietf.org/html/rfc6454#section-6.2\n //\n if (!url.protocol || !url.hostname) return 'null';\n\n //\n // 4. Origin of a URI\n // http://tools.ietf.org/html/rfc6454#section-4\n //\n // States that url.scheme, host should be converted to lower case. This also\n // makes it easier to match origins as everything is just lower case.\n //\n return (url.protocol +'//'+ url.host).toLowerCase();\n}\n\n/**\n * Check if the origins are the same.\n *\n * @param {String} a URL or origin of a.\n * @param {String} b URL or origin of b.\n * @returns {Boolean}\n * @api public\n */\norigin.same = function same(a, b) {\n return origin(a) === origin(b);\n};\n\n//\n// Expose the origin\n//\nmodule.exports = origin;\n","var original = require('original')\nvar parse = require('url').parse\nvar events = require('events')\nvar https = require('https')\nvar http = require('http')\nvar util = require('util')\n\nvar httpsOptions = [\n 'pfx', 'key', 'passphrase', 'cert', 'ca', 'ciphers',\n 'rejectUnauthorized', 'secureProtocol', 'servername', 'checkServerIdentity'\n]\n\nvar bom = [239, 187, 191]\nvar colon = 58\nvar space = 32\nvar lineFeed = 10\nvar carriageReturn = 13\n\nfunction hasBom (buf) {\n return bom.every(function (charCode, index) {\n return buf[index] === charCode\n })\n}\n\n/**\n * Creates a new EventSource object\n *\n * @param {String} url the URL to which to connect\n * @param {Object} [eventSourceInitDict] extra init params. See README for details.\n * @api public\n **/\nfunction EventSource (url, eventSourceInitDict) {\n var readyState = EventSource.CONNECTING\n Object.defineProperty(this, 'readyState', {\n get: function () {\n return readyState\n }\n })\n\n Object.defineProperty(this, 'url', {\n get: function () {\n return url\n }\n })\n\n var self = this\n self.reconnectInterval = 1000\n self.connectionInProgress = false\n\n function onConnectionClosed (message) {\n if (readyState === EventSource.CLOSED) return\n readyState = EventSource.CONNECTING\n _emit('error', new Event('error', {message: message}))\n\n // The url may have been changed by a temporary\n // redirect. If that's the case, revert it now.\n if (reconnectUrl) {\n url = reconnectUrl\n reconnectUrl = null\n }\n setTimeout(function () {\n if (readyState !== EventSource.CONNECTING || self.connectionInProgress) {\n return\n }\n self.connectionInProgress = true\n connect()\n }, self.reconnectInterval)\n }\n\n var req\n var lastEventId = ''\n if (eventSourceInitDict && eventSourceInitDict.headers && eventSourceInitDict.headers['Last-Event-ID']) {\n lastEventId = eventSourceInitDict.headers['Last-Event-ID']\n delete eventSourceInitDict.headers['Last-Event-ID']\n }\n\n var discardTrailingNewline = false\n var data = ''\n var eventName = ''\n\n var reconnectUrl = null\n\n function connect () {\n var options = parse(url)\n var isSecure = options.protocol === 'https:'\n options.headers = { 'Cache-Control': 'no-cache', 'Accept': 'text/event-stream' }\n if (lastEventId) options.headers['Last-Event-ID'] = lastEventId\n if (eventSourceInitDict && eventSourceInitDict.headers) {\n for (var i in eventSourceInitDict.headers) {\n var header = eventSourceInitDict.headers[i]\n if (header) {\n options.headers[i] = header\n }\n }\n }\n\n // Legacy: this should be specified as `eventSourceInitDict.https.rejectUnauthorized`,\n // but for now exists as a backwards-compatibility layer\n options.rejectUnauthorized = !(eventSourceInitDict && !eventSourceInitDict.rejectUnauthorized)\n\n if (eventSourceInitDict && eventSourceInitDict.createConnection !== undefined) {\n options.createConnection = eventSourceInitDict.createConnection\n }\n\n // If specify http proxy, make the request to sent to the proxy server,\n // and include the original url in path and Host headers\n var useProxy = eventSourceInitDict && eventSourceInitDict.proxy\n if (useProxy) {\n var proxy = parse(eventSourceInitDict.proxy)\n isSecure = proxy.protocol === 'https:'\n\n options.protocol = isSecure ? 'https:' : 'http:'\n options.path = url\n options.headers.Host = options.host\n options.hostname = proxy.hostname\n options.host = proxy.host\n options.port = proxy.port\n }\n\n // If https options are specified, merge them into the request options\n if (eventSourceInitDict && eventSourceInitDict.https) {\n for (var optName in eventSourceInitDict.https) {\n if (httpsOptions.indexOf(optName) === -1) {\n continue\n }\n\n var option = eventSourceInitDict.https[optName]\n if (option !== undefined) {\n options[optName] = option\n }\n }\n }\n\n // Pass this on to the XHR\n if (eventSourceInitDict && eventSourceInitDict.withCredentials !== undefined) {\n options.withCredentials = eventSourceInitDict.withCredentials\n }\n\n req = (isSecure ? https : http).request(options, function (res) {\n self.connectionInProgress = false\n // Handle HTTP errors\n if (res.statusCode === 500 || res.statusCode === 502 || res.statusCode === 503 || res.statusCode === 504) {\n _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))\n onConnectionClosed()\n return\n }\n\n // Handle HTTP redirects\n if (res.statusCode === 301 || res.statusCode === 302 || res.statusCode === 307) {\n if (!res.headers.location) {\n // Server sent redirect response without Location header.\n _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))\n return\n }\n if (res.statusCode === 307) reconnectUrl = url\n url = res.headers.location\n process.nextTick(connect)\n return\n }\n\n if (res.statusCode !== 200) {\n _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))\n return self.close()\n }\n\n readyState = EventSource.OPEN\n res.on('close', function () {\n res.removeAllListeners('close')\n res.removeAllListeners('end')\n onConnectionClosed()\n })\n\n res.on('end', function () {\n res.removeAllListeners('close')\n res.removeAllListeners('end')\n onConnectionClosed()\n })\n _emit('open', new Event('open'))\n\n // text/event-stream parser adapted from webkit's\n // Source/WebCore/page/EventSource.cpp\n var isFirst = true\n var buf\n var startingPos = 0\n var startingFieldLength = -1\n res.on('data', function (chunk) {\n buf = buf ? Buffer.concat([buf, chunk]) : chunk\n if (isFirst && hasBom(buf)) {\n buf = buf.slice(bom.length)\n }\n\n isFirst = false\n var pos = 0\n var length = buf.length\n\n while (pos < length) {\n if (discardTrailingNewline) {\n if (buf[pos] === lineFeed) {\n ++pos\n }\n discardTrailingNewline = false\n }\n\n var lineLength = -1\n var fieldLength = startingFieldLength\n var c\n\n for (var i = startingPos; lineLength < 0 && i < length; ++i) {\n c = buf[i]\n if (c === colon) {\n if (fieldLength < 0) {\n fieldLength = i - pos\n }\n } else if (c === carriageReturn) {\n discardTrailingNewline = true\n lineLength = i - pos\n } else if (c === lineFeed) {\n lineLength = i - pos\n }\n }\n\n if (lineLength < 0) {\n startingPos = length - pos\n startingFieldLength = fieldLength\n break\n } else {\n startingPos = 0\n startingFieldLength = -1\n }\n\n parseEventStreamLine(buf, pos, fieldLength, lineLength)\n\n pos += lineLength + 1\n }\n\n if (pos === length) {\n buf = void 0\n } else if (pos > 0) {\n buf = buf.slice(pos)\n }\n })\n })\n\n req.on('error', function (err) {\n self.connectionInProgress = false\n onConnectionClosed(err.message)\n })\n\n if (req.setNoDelay) req.setNoDelay(true)\n req.end()\n }\n\n connect()\n\n function _emit () {\n if (self.listeners(arguments[0]).length > 0) {\n self.emit.apply(self, arguments)\n }\n }\n\n this._close = function () {\n if (readyState === EventSource.CLOSED) return\n readyState = EventSource.CLOSED\n if (req.abort) req.abort()\n if (req.xhr && req.xhr.abort) req.xhr.abort()\n }\n\n function parseEventStreamLine (buf, pos, fieldLength, lineLength) {\n if (lineLength === 0) {\n if (data.length > 0) {\n var type = eventName || 'message'\n _emit(type, new MessageEvent(type, {\n data: data.slice(0, -1), // remove trailing newline\n lastEventId: lastEventId,\n origin: original(url)\n }))\n data = ''\n }\n eventName = void 0\n } else if (fieldLength > 0) {\n var noValue = fieldLength < 0\n var step = 0\n var field = buf.slice(pos, pos + (noValue ? lineLength : fieldLength)).toString()\n\n if (noValue) {\n step = lineLength\n } else if (buf[pos + fieldLength + 1] !== space) {\n step = fieldLength + 1\n } else {\n step = fieldLength + 2\n }\n pos += step\n\n var valueLength = lineLength - step\n var value = buf.slice(pos, pos + valueLength).toString()\n\n if (field === 'data') {\n data += value + '\\n'\n } else if (field === 'event') {\n eventName = value\n } else if (field === 'id') {\n lastEventId = value\n } else if (field === 'retry') {\n var retry = parseInt(value, 10)\n if (!Number.isNaN(retry)) {\n self.reconnectInterval = retry\n }\n }\n }\n }\n}\n\nmodule.exports = EventSource\n\nutil.inherits(EventSource, events.EventEmitter)\nEventSource.prototype.constructor = EventSource; // make stacktraces readable\n\n['open', 'error', 'message'].forEach(function (method) {\n Object.defineProperty(EventSource.prototype, 'on' + method, {\n /**\n * Returns the current listener\n *\n * @return {Mixed} the set function or undefined\n * @api private\n */\n get: function get () {\n var listener = this.listeners(method)[0]\n return listener ? (listener._listener ? listener._listener : listener) : undefined\n },\n\n /**\n * Start listening for events\n *\n * @param {Function} listener the listener\n * @return {Mixed} the set function or undefined\n * @api private\n */\n set: function set (listener) {\n this.removeAllListeners(method)\n this.addEventListener(method, listener)\n }\n })\n})\n\n/**\n * Ready states\n */\nObject.defineProperty(EventSource, 'CONNECTING', {enumerable: true, value: 0})\nObject.defineProperty(EventSource, 'OPEN', {enumerable: true, value: 1})\nObject.defineProperty(EventSource, 'CLOSED', {enumerable: true, value: 2})\n\nEventSource.prototype.CONNECTING = 0\nEventSource.prototype.OPEN = 1\nEventSource.prototype.CLOSED = 2\n\n/**\n * Closes the connection, if one is made, and sets the readyState attribute to 2 (closed)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/close\n * @api public\n */\nEventSource.prototype.close = function () {\n this._close()\n}\n\n/**\n * Emulates the W3C Browser based WebSocket interface using addEventListener.\n *\n * @param {String} type A string representing the event type to listen out for\n * @param {Function} listener callback\n * @see https://developer.mozilla.org/en/DOM/element.addEventListener\n * @see http://dev.w3.org/html5/websockets/#the-websocket-interface\n * @api public\n */\nEventSource.prototype.addEventListener = function addEventListener (type, listener) {\n if (typeof listener === 'function') {\n // store a reference so we can return the original function again\n listener._listener = listener\n this.on(type, listener)\n }\n}\n\n/**\n * Emulates the W3C Browser based WebSocket interface using dispatchEvent.\n *\n * @param {Event} event An event to be dispatched\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent\n * @api public\n */\nEventSource.prototype.dispatchEvent = function dispatchEvent (event) {\n if (!event.type) {\n throw new Error('UNSPECIFIED_EVENT_TYPE_ERR')\n }\n // if event is instance of an CustomEvent (or has 'details' property),\n // send the detail object as the payload for the event\n this.emit(event.type, event.detail)\n}\n\n/**\n * Emulates the W3C Browser based WebSocket interface using removeEventListener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener callback\n * @see https://developer.mozilla.org/en/DOM/element.removeEventListener\n * @see http://dev.w3.org/html5/websockets/#the-websocket-interface\n * @api public\n */\nEventSource.prototype.removeEventListener = function removeEventListener (type, listener) {\n if (typeof listener === 'function') {\n listener._listener = undefined\n this.removeListener(type, listener)\n }\n}\n\n/**\n * W3C Event\n *\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-Event\n * @api private\n */\nfunction Event (type, optionalProperties) {\n Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })\n if (optionalProperties) {\n for (var f in optionalProperties) {\n if (optionalProperties.hasOwnProperty(f)) {\n Object.defineProperty(this, f, { writable: false, value: optionalProperties[f], enumerable: true })\n }\n }\n }\n}\n\n/**\n * W3C MessageEvent\n *\n * @see http://www.w3.org/TR/webmessaging/#event-definitions\n * @api private\n */\nfunction MessageEvent (type, eventInitDict) {\n Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })\n for (var f in eventInitDict) {\n if (eventInitDict.hasOwnProperty(f)) {\n Object.defineProperty(this, f, { writable: false, value: eventInitDict[f], enumerable: true })\n }\n }\n}\n","module.exports = require('eventsource')\n","var baseUrl = 'https://docs.sanity.io/help/'\n\nmodule.exports = function generateHelpUrl(slug) {\n return baseUrl + slug\n}\n","\"use strict\";\n\nmodule.exports = function (obj, props) {\n return props.reduce(function (selection, prop) {\n if (typeof obj[prop] === 'undefined') {\n return selection;\n }\n\n selection[prop] = obj[prop];\n return selection;\n }, {});\n};","\"use strict\";\n\nmodule.exports = function (fn) {\n var didCall = false;\n var returnValue;\n return function () {\n if (didCall) {\n return returnValue;\n }\n\n returnValue = fn.apply(void 0, arguments);\n didCall = true;\n return returnValue;\n };\n};","\"use strict\";\n\nmodule.exports = function (obj, defaults) {\n return Object.keys(defaults).concat(Object.keys(obj)).reduce(function (target, prop) {\n target[prop] = typeof obj[prop] === 'undefined' ? defaults[prop] : obj[prop];\n return target;\n }, {});\n};","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar Observable = require('@sanity/observable/minimal');\n\nvar polyfilledEventSource = require('@sanity/eventsource');\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar pick = require('../util/pick');\n\nvar once = require('../util/once');\n\nvar defaults = require('../util/defaults');\n\nvar encodeQueryString = require('./encodeQueryString'); // Limit is 16K for a _request_, eg including headers. Have to account for an\n// unknown range of headers, but an average EventSource request from Chrome seems\n// to have around 700 bytes of cruft, so let us account for 1.2K to be \"safe\"\n\n\nvar MAX_URL_LENGTH = 16000 - 1200;\nvar tokenWarning = ['Using token with listeners is not supported in browsers. ', \"For more info, see \".concat(generateHelpUrl('js-client-listener-tokens-browser'), \".\")]; // eslint-disable-next-line no-console\n\nvar printTokenWarning = once(function () {\n return console.warn(tokenWarning.join(' '));\n});\nvar isWindowEventSource = Boolean(typeof window !== 'undefined' && window.EventSource);\nvar EventSource = isWindowEventSource ? window.EventSource // Native browser EventSource\n: polyfilledEventSource; // Node.js, IE etc\n\nvar possibleOptions = ['includePreviousRevision', 'includeResult', 'visibility', 'effectFormat', 'tag'];\nvar defaultOptions = {\n includeResult: true\n};\n\nmodule.exports = function listen(query, params) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _this$clientConfig = this.clientConfig,\n url = _this$clientConfig.url,\n token = _this$clientConfig.token,\n withCredentials = _this$clientConfig.withCredentials,\n requestTagPrefix = _this$clientConfig.requestTagPrefix;\n var tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join('.') : opts.tag;\n\n var options = _objectSpread(_objectSpread({}, defaults(opts, defaultOptions)), {}, {\n tag: tag\n });\n\n var listenOpts = pick(options, possibleOptions);\n var qs = encodeQueryString({\n query: query,\n params: params,\n options: listenOpts,\n tag: tag\n });\n var uri = \"\".concat(url).concat(this.getDataUrl('listen', qs));\n\n if (uri.length > MAX_URL_LENGTH) {\n return new Observable(function (observer) {\n return observer.error(new Error('Query too large for listener'));\n });\n }\n\n var listenFor = options.events ? options.events : ['mutation'];\n var shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1;\n\n if (token && isWindowEventSource) {\n printTokenWarning();\n }\n\n var esOptions = {};\n\n if (token || withCredentials) {\n esOptions.withCredentials = true;\n }\n\n if (token) {\n esOptions.headers = {\n Authorization: \"Bearer \".concat(token)\n };\n }\n\n return new Observable(function (observer) {\n var es = getEventSource();\n var reconnectTimer;\n var stopped = false;\n\n function onError() {\n if (stopped) {\n return;\n }\n\n emitReconnect(); // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt\n\n if (stopped) {\n return;\n } // Unless we've explicitly stopped the ES (in which case `stopped` should be true),\n // we should never be in a disconnected state. By default, EventSource will reconnect\n // automatically, in which case it sets readyState to `CONNECTING`, but in some cases\n // (like when a laptop lid is closed), it closes the connection. In these cases we need\n // to explicitly reconnect.\n\n\n if (es.readyState === EventSource.CLOSED) {\n unsubscribe();\n clearTimeout(reconnectTimer);\n reconnectTimer = setTimeout(open, 100);\n }\n }\n\n function onChannelError(err) {\n observer.error(cooerceError(err));\n }\n\n function onMessage(evt) {\n var event = parseEvent(evt);\n return event instanceof Error ? observer.error(event) : observer.next(event);\n }\n\n function onDisconnect(evt) {\n stopped = true;\n unsubscribe();\n observer.complete();\n }\n\n function unsubscribe() {\n es.removeEventListener('error', onError, false);\n es.removeEventListener('channelError', onChannelError, false);\n es.removeEventListener('disconnect', onDisconnect, false);\n listenFor.forEach(function (type) {\n return es.removeEventListener(type, onMessage, false);\n });\n es.close();\n }\n\n function emitReconnect() {\n if (shouldEmitReconnect) {\n observer.next({\n type: 'reconnect'\n });\n }\n }\n\n function getEventSource() {\n var evs = new EventSource(uri, esOptions);\n evs.addEventListener('error', onError, false);\n evs.addEventListener('channelError', onChannelError, false);\n evs.addEventListener('disconnect', onDisconnect, false);\n listenFor.forEach(function (type) {\n return evs.addEventListener(type, onMessage, false);\n });\n return evs;\n }\n\n function open() {\n es = getEventSource();\n }\n\n function stop() {\n stopped = true;\n unsubscribe();\n }\n\n return stop;\n });\n};\n\nfunction parseEvent(event) {\n try {\n var data = event.data && JSON.parse(event.data) || {};\n return assign({\n type: event.type\n }, data);\n } catch (err) {\n return err;\n }\n}\n\nfunction cooerceError(err) {\n if (err instanceof Error) {\n return err;\n }\n\n var evt = parseEvent(err);\n return evt instanceof Error ? evt : new Error(extractErrorMessage(evt));\n}\n\nfunction extractErrorMessage(err) {\n if (!err.error) {\n return err.message || 'Unknown listener error';\n }\n\n if (err.error.description) {\n return err.error.description;\n }\n\n return typeof err.error === 'string' ? err.error : JSON.stringify(err.error, null, 2);\n}","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\n\nvar validators = require('../validators');\n\nvar getSelection = require('../util/getSelection');\n\nvar encodeQueryString = require('./encodeQueryString');\n\nvar Transaction = require('./transaction');\n\nvar Patch = require('./patch');\n\nvar listen = require('./listen');\n\nvar excludeFalsey = function excludeFalsey(param, defValue) {\n var value = typeof param === 'undefined' ? defValue : param;\n return param === false ? undefined : value;\n};\n\nvar getMutationQuery = function getMutationQuery() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n returnIds: true,\n returnDocuments: excludeFalsey(options.returnDocuments, true),\n visibility: options.visibility || 'sync'\n };\n};\n\nvar isResponse = function isResponse(event) {\n return event.type === 'response';\n};\n\nvar getBody = function getBody(event) {\n return event.body;\n};\n\nvar indexBy = function indexBy(docs, attr) {\n return docs.reduce(function (indexed, doc) {\n indexed[attr(doc)] = doc;\n return indexed;\n }, Object.create(null));\n};\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nvar getQuerySizeLimit = 11264;\nmodule.exports = {\n listen: listen,\n getDataUrl: function getDataUrl(operation, path) {\n var config = this.clientConfig;\n var catalog = config.gradientMode ? config.namespace : validators.hasDataset(config);\n var baseUri = \"/\".concat(operation, \"/\").concat(catalog);\n var uri = path ? \"\".concat(baseUri, \"/\").concat(path) : baseUri;\n return (this.clientConfig.gradientMode ? uri : \"/data\".concat(uri)).replace(/\\/($|\\?)/, '$1');\n },\n fetch: function fetch(query, params) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var mapResponse = options.filterResponse === false ? function (res) {\n return res;\n } : function (res) {\n return res.result;\n };\n\n var observable = this._dataRequest('query', {\n query: query,\n params: params\n }, options).pipe(map(mapResponse));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocument: function getDocument(id) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', id),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n return event.body.documents && event.body.documents[0];\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocuments: function getDocuments(ids) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', ids.join(',')),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n var indexed = indexBy(event.body.documents || [], function (doc) {\n return doc._id;\n });\n return ids.map(function (id) {\n return indexed[id] || null;\n });\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n create: function create(doc, options) {\n return this._create(doc, 'create', options);\n },\n createIfNotExists: function createIfNotExists(doc, options) {\n validators.requireDocumentId('createIfNotExists', doc);\n return this._create(doc, 'createIfNotExists', options);\n },\n createOrReplace: function createOrReplace(doc, options) {\n validators.requireDocumentId('createOrReplace', doc);\n return this._create(doc, 'createOrReplace', options);\n },\n patch: function patch(selector, operations) {\n return new Patch(selector, operations, this);\n },\n delete: function _delete(selection, options) {\n return this.dataRequest('mutate', {\n mutations: [{\n delete: getSelection(selection)\n }]\n }, options);\n },\n mutate: function mutate(mutations, options) {\n var mut = mutations instanceof Patch || mutations instanceof Transaction ? mutations.serialize() : mutations;\n var muts = Array.isArray(mut) ? mut : [mut];\n var transactionId = options && options.transactionId;\n return this.dataRequest('mutate', {\n mutations: muts,\n transactionId: transactionId\n }, options);\n },\n transaction: function transaction(operations) {\n return new Transaction(operations, this);\n },\n dataRequest: function dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var request = this._dataRequest(endpoint, body, options);\n\n return this.isPromiseAPI() ? toPromise(request) : request;\n },\n _dataRequest: function _dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var isMutation = endpoint === 'mutate'; // Check if the query string is within a configured threshold,\n // in which case we can use GET. Otherwise, use POST.\n\n var strQuery = !isMutation && encodeQueryString(body);\n var useGet = !isMutation && strQuery.length < getQuerySizeLimit;\n var stringQuery = useGet ? strQuery : '';\n var returnFirst = options.returnFirst;\n var timeout = options.timeout,\n token = options.token,\n tag = options.tag;\n var uri = this.getDataUrl(endpoint, stringQuery);\n var reqOptions = {\n method: useGet ? 'GET' : 'POST',\n uri: uri,\n json: true,\n body: useGet ? undefined : body,\n query: isMutation && getMutationQuery(options),\n timeout: timeout,\n token: token,\n tag: tag\n };\n return this._requestObservable(reqOptions).pipe(filter(isResponse), map(getBody), map(function (res) {\n if (!isMutation) {\n return res;\n } // Should we return documents?\n\n\n var results = res.results || [];\n\n if (options.returnDocuments) {\n return returnFirst ? results[0] && results[0].document : results.map(function (mut) {\n return mut.document;\n });\n } // Return a reduced subset\n\n\n var key = returnFirst ? 'documentId' : 'documentIds';\n var ids = returnFirst ? results[0] && results[0].id : results.map(function (mut) {\n return mut.id;\n });\n return _defineProperty({\n transactionId: res.transactionId,\n results: results\n }, key, ids);\n }));\n },\n _create: function _create(doc, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var mutation = _defineProperty({}, op, doc);\n\n var opts = assign({\n returnFirst: true,\n returnDocuments: true\n }, options);\n return this.dataRequest('mutate', {\n mutations: [mutation]\n }, opts);\n }\n};","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar validate = require('../validators');\n\nfunction DatasetsClient(client) {\n this.request = client.request.bind(client);\n}\n\nassign(DatasetsClient.prototype, {\n create: function create(name, options) {\n return this._modify('PUT', name, options);\n },\n edit: function edit(name, options) {\n return this._modify('PATCH', name, options);\n },\n delete: function _delete(name) {\n return this._modify('DELETE', name);\n },\n list: function list() {\n return this.request({\n uri: '/datasets'\n });\n },\n _modify: function _modify(method, name, body) {\n validate.dataset(name);\n return this.request({\n method: method,\n uri: \"/datasets/\".concat(name),\n body: body\n });\n }\n});\nmodule.exports = DatasetsClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction ProjectsClient(client) {\n this.client = client;\n}\n\nassign(ProjectsClient.prototype, {\n list: function list() {\n return this.client.request({\n uri: '/projects'\n });\n },\n getById: function getById(id) {\n return this.client.request({\n uri: \"/projects/\".concat(id)\n });\n }\n});\nmodule.exports = ProjectsClient;","\"use strict\";\n\nmodule.exports = function (params) {\n var qs = [];\n\n for (var key in params) {\n if (params.hasOwnProperty(key)) {\n qs.push(\"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(params[key])));\n }\n }\n\n return qs.length > 0 ? \"?\".concat(qs.join('&')) : '';\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/map'),\n map = _require.map;\n\nvar _require2 = require('@sanity/observable/operators/filter'),\n filter = _require2.filter;\n\nvar queryString = require('../http/queryString');\n\nvar validators = require('../validators');\n\nfunction AssetsClient(client) {\n this.client = client;\n}\n\nfunction toDocument(body) {\n // todo: rewrite to just return body.document in a while\n var document = body.document;\n Object.defineProperty(document, 'document', {\n enumerable: false,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The promise returned from client.asset.upload(...) now resolves with the asset document');\n return document;\n }\n });\n return document;\n}\n\nfunction optionsFromFile(opts, file) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts;\n }\n\n return assign({\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type\n }, opts);\n}\n\nassign(AssetsClient.prototype, {\n /**\n * Upload an asset\n *\n * @param {String} assetType `image` or `file`\n * @param {File|Blob|Buffer|ReadableStream} body File to upload\n * @param {Object} opts Options for the upload\n * @param {Boolean} opts.preserveFilename Whether or not to preserve the original filename (default: true)\n * @param {String} opts.filename Filename for this file (optional)\n * @param {Number} opts.timeout Milliseconds to wait before timing the request out (default: 0)\n * @param {String} opts.contentType Mime type of the file\n * @param {Array} opts.extract Array of metadata parts to extract from image.\n * Possible values: `location`, `exif`, `image`, `palette`\n * @param {String} opts.label Label\n * @param {String} opts.title Title\n * @param {String} opts.description Description\n * @param {String} opts.creditLine The credit to person(s) and/or organization(s) required by the supplier of the image to be used when published\n * @param {Object} opts.source Source data (when the asset is from an external service)\n * @param {String} opts.source.id The (u)id of the asset within the source, i.e. 'i-f323r1E'\n * Required if source is defined\n * @param {String} opts.source.name The name of the source, i.e. 'unsplash'\n * Required if source is defined\n * @param {String} opts.source.url A url to where to find the asset, or get more info about it in the source\n * Optional\n * @return {Promise} Resolves with the created asset document\n */\n upload: function upload(assetType, body) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n validators.validateAssetType(assetType); // If an empty array is given, explicitly set `none` to override API defaults\n\n var meta = opts.extract || undefined;\n\n if (meta && !meta.length) {\n meta = ['none'];\n }\n\n var dataset = validators.hasDataset(this.client.clientConfig);\n var assetEndpoint = assetType === 'image' ? 'images' : 'files';\n var options = optionsFromFile(opts, body);\n var tag = options.tag,\n label = options.label,\n title = options.title,\n description = options.description,\n creditLine = options.creditLine,\n filename = options.filename,\n source = options.source;\n var query = {\n label: label,\n title: title,\n description: description,\n filename: filename,\n meta: meta,\n creditLine: creditLine\n };\n\n if (source) {\n query.sourceId = source.id;\n query.sourceName = source.name;\n query.sourceUrl = source.url;\n }\n\n var observable = this.client._requestObservable({\n tag: tag,\n method: 'POST',\n timeout: options.timeout || 0,\n uri: \"/assets/\".concat(assetEndpoint, \"/\").concat(dataset),\n headers: options.contentType ? {\n 'Content-Type': options.contentType\n } : {},\n query: query,\n body: body\n });\n\n return this.client.isPromiseAPI() ? observable.pipe(filter(function (event) {\n return event.type === 'response';\n }), map(function (event) {\n return toDocument(event.body);\n })).toPromise() : observable;\n },\n delete: function _delete(type, id) {\n // eslint-disable-next-line no-console\n console.warn('client.assets.delete() is deprecated, please use client.delete(<document-id>)');\n var docId = id || '';\n\n if (!/^(image|file)-/.test(docId)) {\n docId = \"\".concat(type, \"-\").concat(docId);\n } else if (type._id) {\n // We could be passing an entire asset document instead of an ID\n docId = type._id;\n }\n\n validators.hasDataset(this.client.clientConfig);\n return this.client.delete(docId);\n },\n getImageUrl: function getImageUrl(ref, query) {\n var id = ref._ref || ref;\n\n if (typeof id !== 'string') {\n throw new Error('getImageUrl() needs either an object with a _ref, or a string with an asset document ID');\n }\n\n if (!/^image-[A-Za-z0-9_]+-\\d+x\\d+-[a-z]{1,5}$/.test(id)) {\n throw new Error(\"Unsupported asset ID \\\"\".concat(id, \"\\\". URL generation only works for auto-generated IDs.\"));\n }\n\n var _id$split = id.split('-'),\n _id$split2 = _slicedToArray(_id$split, 4),\n assetId = _id$split2[1],\n size = _id$split2[2],\n format = _id$split2[3];\n\n validators.hasDataset(this.client.clientConfig);\n var _this$client$clientCo = this.client.clientConfig,\n projectId = _this$client$clientCo.projectId,\n dataset = _this$client$clientCo.dataset;\n var qs = query ? queryString(query) : '';\n return \"https://cdn.sanity.io/images/\".concat(projectId, \"/\").concat(dataset, \"/\").concat(assetId, \"-\").concat(size, \".\").concat(format).concat(qs);\n }\n});\nmodule.exports = AssetsClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction UsersClient(client) {\n this.client = client;\n}\n\nassign(UsersClient.prototype, {\n getById: function getById(id) {\n return this.client.request({\n uri: \"/users/\".concat(id)\n });\n }\n});\nmodule.exports = UsersClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction AuthClient(client) {\n this.client = client;\n}\n\nassign(AuthClient.prototype, {\n getLoginProviders: function getLoginProviders() {\n return this.client.request({\n uri: '/auth/providers'\n });\n },\n logout: function logout() {\n return this.client.request({\n uri: '/auth/logout',\n method: 'POST'\n });\n }\n});\nmodule.exports = AuthClient;","module.exports = function Pubsub() {\n var subscribers = []\n return {\n subscribe: subscribe,\n publish: publish\n }\n function subscribe(subscriber) {\n subscribers.push(subscriber)\n return function unsubscribe() {\n var idx = subscribers.indexOf(subscriber)\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n }\n }\n function publish() {\n for (var i = 0; i < subscribers.length; i++) {\n subscribers[i].apply(null, arguments)\n }\n }\n}","module.exports = middleware => {\n const applyMiddleware = (hook, defaultValue, ...args) => {\n const bailEarly = hook === 'onError'\n\n let value = defaultValue\n for (let i = 0; i < middleware[hook].length; i++) {\n const handler = middleware[hook][i]\n value = handler(value, ...args)\n\n if (bailEarly && !value) {\n break\n }\n }\n\n return value\n }\n\n return applyMiddleware\n}\n","const objectAssign = require('object-assign')\nconst urlParse = require('url-parse')\n\nconst isReactNative = typeof navigator === 'undefined' ? false : navigator.product === 'ReactNative'\n\nconst has = Object.prototype.hasOwnProperty\nconst defaultOptions = {timeout: isReactNative ? 60000 : 120000}\n\nmodule.exports = opts => {\n const options =\n typeof opts === 'string'\n ? objectAssign({url: opts}, defaultOptions)\n : objectAssign({}, defaultOptions, opts)\n\n // Parse URL into parts\n const url = urlParse(\n options.url,\n {}, // Don't use current browser location\n true // Parse query strings\n )\n\n // Normalize timeouts\n options.timeout = normalizeTimeout(options.timeout)\n\n // Shallow-merge (override) existing query params\n if (options.query) {\n url.query = objectAssign({}, url.query, removeUndefined(options.query))\n }\n\n // Implicit POST if we have not specified a method but have a body\n options.method =\n options.body && !options.method ? 'POST' : (options.method || 'GET').toUpperCase()\n\n // Stringify URL\n options.url = url.toString(stringifyQueryString)\n\n return options\n}\n\nfunction stringifyQueryString(obj) {\n const pairs = []\n for (const key in obj) {\n if (has.call(obj, key)) {\n push(key, obj[key])\n }\n }\n\n return pairs.length ? pairs.join('&') : ''\n\n function push(key, val) {\n if (Array.isArray(val)) {\n val.forEach(item => push(key, item))\n } else {\n pairs.push([key, val].map(encodeURIComponent).join('='))\n }\n }\n}\n\nfunction normalizeTimeout(time) {\n if (time === false || time === 0) {\n return false\n }\n\n if (time.connect || time.socket) {\n return time\n }\n\n const delay = Number(time)\n if (isNaN(delay)) {\n return normalizeTimeout(defaultOptions.timeout)\n }\n\n return {connect: delay, socket: delay}\n}\n\nfunction removeUndefined(obj) {\n const target = {}\n for (const key in obj) {\n if (obj[key] !== undefined) {\n target[key] = obj[key]\n }\n }\n return target\n}\n","const validUrl = /^https?:\\/\\//i\n\nmodule.exports = options => {\n if (!validUrl.test(options.url)) {\n throw new Error(`\"${options.url}\" is not a valid URL`)\n }\n}\n","/*! simple-concat. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nmodule.exports = function (stream, cb) {\n var chunks = []\n stream.on('data', function (chunk) {\n chunks.push(chunk)\n })\n stream.once('end', function () {\n if (cb) cb(null, Buffer.concat(chunks))\n cb = null\n })\n stream.once('error', function (err) {\n if (cb) cb(err)\n cb = null\n })\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\"use strict\";\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = require('ms');\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * Active `debug` instances.\n */\n\n createDebug.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n\n function debug() {\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return match;\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = createDebug.enabled(namespace);\n debug.useColors = createDebug.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n debug.extend = extend; // Debug.formatArgs = formatArgs;\n // debug.rawLog = rawLog;\n // env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n createDebug.instances.push(debug);\n return debug;\n }\n\n function destroy() {\n var index = createDebug.instances.indexOf(this);\n\n if (index !== -1) {\n createDebug.instances.splice(index, 1);\n return true;\n }\n\n return false;\n }\n\n function extend(namespace, delimiter) {\n return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < createDebug.instances.length; i++) {\n var instance = createDebug.instances[i];\n instance.enabled = createDebug.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @api public\n */\n\n\n function disable() {\n createDebug.enable('');\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;\n\n","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n var _console;\n\n // This hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return (typeof console === \"undefined\" ? \"undefined\" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {} // Swallow\n // XXX (@Qix-) should we be logging these?\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};\n\n","'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n","'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n","\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar tty = require('tty');\n\nvar util = require('util');\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n // eslint-disable-next-line import/no-extraneous-dependencies\n var supportsColor = require('supports-color');\n\n if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n exports.colors = [20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221];\n }\n} catch (error) {} // Swallow - we only care if `supports-color` is available; it doesn't have to be.\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // Camel-case\n var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function (_, k) {\n return k.toUpperCase();\n }); // Coerce string value into JS value\n\n var val = process.env[key];\n\n if (/^(yes|on|true|enabled)$/i.test(val)) {\n val = true;\n } else if (/^(no|off|false|disabled)$/i.test(val)) {\n val = false;\n } else if (val === 'null') {\n val = null;\n } else {\n val = Number(val);\n }\n\n obj[prop] = val;\n return obj;\n}, {});\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);\n}\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n var name = this.namespace,\n useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var colorCode = \"\\x1B[3\" + (c < 8 ? c : '8;5;' + c);\n var prefix = \" \".concat(colorCode, \";1m\").concat(name, \" \\x1B[0m\");\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + \"\\x1B[0m\");\n } else {\n args[0] = getDate() + name + ' ' + args[0];\n }\n}\n\nfunction getDate() {\n if (exports.inspectOpts.hideDate) {\n return '';\n }\n\n return new Date().toISOString() + ' ';\n}\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\n\nfunction log() {\n return process.stderr.write(util.format.apply(util, arguments) + '\\n');\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n if (namespaces) {\n process.env.DEBUG = namespaces;\n } else {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n return process.env.DEBUG;\n}\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\n\nfunction init(debug) {\n debug.inspectOpts = {};\n var keys = Object.keys(exports.inspectOpts);\n\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n')\n .map(function (str) { return str.trim(); })\n .join(' ');\n};\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\n\nformatters.O = function (v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n","\"use strict\";\n\n/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!(typeof data === \"string\" || typeof data === \"object\" && (\"length\" in data))) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (typeof data === \"function\") {\n callback = data;\n data = encoding = null;\n }\n else if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.once(\"response\", clearTimer);\n this.once(\"error\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.substr(0, protocol.length - 1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n this._currentUrl = url.format(this._options);\n\n // Set up event handlers\n request._redirectable = this;\n for (var e = 0; e < events.length; e++) {\n request.on(events[e], eventHandlers[events[e]]);\n }\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end.\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n var location = response.headers.location;\n if (location && this._options.followRedirects !== false &&\n statusCode >= 300 && statusCode < 400) {\n // Abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var previousHostName = removeMatchingHeaders(/^host$/i, this._options.headers) ||\n url.parse(this._currentUrl).hostname;\n\n // Create the redirected request\n var redirectUrl = url.resolve(this._currentUrl, location);\n debug(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop the Authorization header if redirecting to another host\n if (redirectUrlParts.hostname !== previousHostName) {\n removeMatchingHeaders(/^authorization$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (typeof this._options.beforeRedirect === \"function\") {\n var responseDetails = { headers: response.headers };\n try {\n this._options.beforeRedirect.call(null, this._options, responseDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n var error = new RedirectionError(\"Redirected request failed: \" + cause.message);\n error.cause = cause;\n this.emit(\"error\", error);\n }\n }\n else {\n // The response is not a redirect; return it as-is\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (typeof input === \"string\") {\n var urlStr = input;\n try {\n input = urlToOptions(new URL(urlStr));\n }\n catch (err) {\n /* istanbul ignore next */\n input = url.parse(urlStr);\n }\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return lastValue;\n}\n\nfunction createErrorType(code, defaultMessage) {\n function CustomError(message) {\n Error.captureStackTrace(this, this.constructor);\n this.message = message || defaultMessage;\n }\n CustomError.prototype = new Error();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n CustomError.prototype.code = code;\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var e = 0; e < events.length; e++) {\n request.removeListener(events[e], eventHandlers[events[e]]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","'use strict';\n\nmodule.exports = function (req, time) {\n\tif (req.timeoutTimer) {\n\t\treturn req;\n\t}\n\n\tvar delays = isNaN(time) ? time : {socket: time, connect: time};\n\tvar hostHeader = req.getHeader('host');\n\tvar host = hostHeader ? ' to ' + hostHeader : '';\n\n\tif (delays.connect !== undefined) {\n\t\treq.timeoutTimer = setTimeout(function timeoutHandler() {\n\t\t\treq.abort();\n\t\t\tvar e = new Error('Connection timed out on request' + host);\n\t\t\te.code = 'ETIMEDOUT';\n\t\t\treq.emit('error', e);\n\t\t}, delays.connect);\n\t}\n\n\t// Clear the connection timeout timer once a socket is assigned to the\n\t// request and is connected.\n\treq.on('socket', function assign(socket) {\n\t\t// Socket may come from Agent pool and may be already connected.\n\t\tif (!(socket.connecting || socket._connecting)) {\n\t\t\tconnect();\n\t\t\treturn;\n\t\t}\n\n\t\tsocket.once('connect', connect);\n\t});\n\n\tfunction clear() {\n\t\tif (req.timeoutTimer) {\n\t\t\tclearTimeout(req.timeoutTimer);\n\t\t\treq.timeoutTimer = null;\n\t\t}\n\t}\n\n\tfunction connect() {\n\t\tclear();\n\n\t\tif (delays.socket !== undefined) {\n\t\t\t// Abort the request if there is no activity on the socket for more\n\t\t\t// than `delays.socket` milliseconds.\n\t\t\treq.setTimeout(delays.socket, function socketTimeoutHandler() {\n\t\t\t\treq.abort();\n\t\t\t\tvar e = new Error('Socket timed out on request' + host);\n\t\t\t\te.code = 'ESOCKETTIMEDOUT';\n\t\t\t\treq.emit('error', e);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn req.on('error', clear);\n};\n","'use strict';\n\nvar isStream = module.exports = function (stream) {\n\treturn stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';\n};\n\nisStream.writable = function (stream) {\n\treturn isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';\n};\n\nisStream.readable = function (stream) {\n\treturn isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';\n};\n\nisStream.duplex = function (stream) {\n\treturn isStream.writable(stream) && isStream.readable(stream);\n};\n\nisStream.transform = function (stream) {\n\treturn isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';\n};\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = require('stream');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n}\n","var Readable = require('readable-stream').Readable\nvar inherits = require('inherits')\n\nmodule.exports = from2\n\nfrom2.ctor = ctor\nfrom2.obj = obj\n\nvar Proto = ctor()\n\nfunction toFunction(list) {\n list = list.slice()\n return function (_, cb) {\n var err = null\n var item = list.length ? list.shift() : null\n if (item instanceof Error) {\n err = item\n item = null\n }\n\n cb(err, item)\n }\n}\n\nfunction from2(opts, read) {\n if (typeof opts !== 'object' || Array.isArray(opts)) {\n read = opts\n opts = {}\n }\n\n var rs = new Proto(opts)\n rs._from = Array.isArray(read) ? toFunction(read) : (read || noop)\n return rs\n}\n\nfunction ctor(opts, read) {\n if (typeof opts === 'function') {\n read = opts\n opts = {}\n }\n\n opts = defaults(opts)\n\n inherits(Class, Readable)\n function Class(override) {\n if (!(this instanceof Class)) return new Class(override)\n this._reading = false\n this._callback = check\n this.destroyed = false\n Readable.call(this, override || opts)\n\n var self = this\n var hwm = this._readableState.highWaterMark\n\n function check(err, data) {\n if (self.destroyed) return\n if (err) return self.destroy(err)\n if (data === null) return self.push(null)\n self._reading = false\n if (self.push(data)) self._read(hwm)\n }\n }\n\n Class.prototype._from = read || noop\n Class.prototype._read = function(size) {\n if (this._reading || this.destroyed) return\n this._reading = true\n this._from(size, this._callback)\n }\n\n Class.prototype.destroy = function(err) {\n if (this.destroyed) return\n this.destroyed = true\n\n var self = this\n process.nextTick(function() {\n if (err) self.emit('error', err)\n self.emit('close')\n })\n }\n\n return Class\n}\n\nfunction obj(opts, read) {\n if (typeof opts === 'function' || Array.isArray(opts)) {\n read = opts\n opts = {}\n }\n\n opts = defaults(opts)\n opts.objectMode = true\n opts.highWaterMark = 16\n\n return from2(opts, read)\n}\n\nfunction noop () {}\n\nfunction defaults(opts) {\n opts = opts || {}\n return opts\n}\n","'use strict';\nmodule.exports = x => (\n\tx instanceof Promise ||\n\t(\n\t\tx !== null &&\n\t\ttypeof x === 'object' &&\n\t\ttypeof x.then === 'function' &&\n\t\ttypeof x.catch === 'function'\n\t)\n);\n","'use strict';\nconst from = require('from2');\nconst pIsPromise = require('p-is-promise');\n\nmodule.exports = x => {\n\tif (Array.isArray(x)) {\n\t\tx = x.slice();\n\t}\n\n\tlet promise;\n\tlet iterator;\n\n\tprepare(x);\n\n\tfunction prepare(value) {\n\t\tx = value;\n\t\tpromise = pIsPromise(x) ? x : null;\n\t\t// we don't iterate on strings and buffers since slicing them is ~7x faster\n\t\tconst shouldIterate = !promise && x[Symbol.iterator] && typeof x !== 'string' && !Buffer.isBuffer(x);\n\t\titerator = shouldIterate ? x[Symbol.iterator]() : null;\n\t}\n\n\treturn from(function reader(size, cb) {\n\t\tif (promise) {\n\t\t\tpromise.then(prepare).then(() => reader.call(this, size, cb), cb);\n\t\t\treturn;\n\t\t}\n\n\t\tif (iterator) {\n\t\t\tconst obj = iterator.next();\n\t\t\tsetImmediate(cb, null, obj.done ? null : obj.value);\n\t\t\treturn;\n\t\t}\n\n\t\tif (x.length === 0) {\n\t\t\tsetImmediate(cb, null, null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst chunk = x.slice(0, size);\n\t\tx = x.slice(size);\n\n\t\tsetImmediate(cb, null, chunk);\n\t});\n};\n\nmodule.exports.obj = x => {\n\tif (Array.isArray(x)) {\n\t\tx = x.slice();\n\t}\n\n\tlet promise;\n\tlet iterator;\n\n\tprepare(x);\n\n\tfunction prepare(value) {\n\t\tx = value;\n\t\tpromise = pIsPromise(x) ? x : null;\n\t\titerator = !promise && x[Symbol.iterator] ? x[Symbol.iterator]() : null;\n\t}\n\n\treturn from.obj(function reader(size, cb) {\n\t\tif (promise) {\n\t\t\tpromise.then(prepare).then(() => reader.call(this, size, cb), cb);\n\t\t\treturn;\n\t\t}\n\n\t\tif (iterator) {\n\t\t\tconst obj = iterator.next();\n\t\t\tsetImmediate(cb, null, obj.done ? null : obj.value);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.push(x);\n\n\t\tsetImmediate(cb, null, null);\n\t});\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var Transform = require('readable-stream').Transform\n , inherits = require('util').inherits\n , xtend = require('xtend')\n\nfunction DestroyableTransform(opts) {\n Transform.call(this, opts)\n this._destroyed = false\n}\n\ninherits(DestroyableTransform, Transform)\n\nDestroyableTransform.prototype.destroy = function(err) {\n if (this._destroyed) return\n this._destroyed = true\n \n var self = this\n process.nextTick(function() {\n if (err)\n self.emit('error', err)\n self.emit('close')\n })\n}\n\n// a noop _transform function\nfunction noop (chunk, enc, callback) {\n callback(null, chunk)\n}\n\n\n// create a new export function, used by both the main export and\n// the .ctor export, contains common logic for dealing with arguments\nfunction through2 (construct) {\n return function (options, transform, flush) {\n if (typeof options == 'function') {\n flush = transform\n transform = options\n options = {}\n }\n\n if (typeof transform != 'function')\n transform = noop\n\n if (typeof flush != 'function')\n flush = null\n\n return construct(options, transform, flush)\n }\n}\n\n\n// main export, just make me a transform stream!\nmodule.exports = through2(function (options, transform, flush) {\n var t2 = new DestroyableTransform(options)\n\n t2._transform = transform\n\n if (flush)\n t2._flush = flush\n\n return t2\n})\n\n\n// make me a reusable prototype that I can `new`, or implicitly `new`\n// with a constructor call\nmodule.exports.ctor = through2(function (options, transform, flush) {\n function Through2 (override) {\n if (!(this instanceof Through2))\n return new Through2(override)\n\n this.options = xtend(options, override)\n\n DestroyableTransform.call(this, this.options)\n }\n\n inherits(Through2, DestroyableTransform)\n\n Through2.prototype._transform = transform\n\n if (flush)\n Through2.prototype._flush = flush\n\n return Through2\n})\n\n\nmodule.exports.obj = through2(function (options, transform, flush) {\n var t2 = new DestroyableTransform(xtend({ objectMode: true, highWaterMark: 16 }, options))\n\n t2._transform = transform\n\n if (flush)\n t2._flush = flush\n\n return t2\n})\n","var tick = 1\nvar maxTick = 65535\nvar resolution = 4\nvar inc = function () {\n tick = (tick + 1) & maxTick\n}\n\nvar timer = setInterval(inc, (1000 / resolution) | 0)\nif (timer.unref) timer.unref()\n\nmodule.exports = function (seconds) {\n var size = resolution * (seconds || 5)\n var buffer = [0]\n var pointer = 1\n var last = (tick - 1) & maxTick\n\n return function (delta) {\n var dist = (tick - last) & maxTick\n if (dist > size) dist = size\n last = tick\n\n while (dist--) {\n if (pointer === size) pointer = 0\n buffer[pointer] = buffer[pointer === 0 ? size - 1 : pointer - 1]\n pointer++\n }\n\n if (delta) buffer[pointer - 1] += delta\n\n var top = buffer[pointer - 1]\n var btm = buffer.length < size ? 0 : buffer[pointer === size ? 0 : pointer]\n\n return buffer.length < resolution ? top : (top - btm) * resolution / buffer.length\n }\n}\n","var through = require('through2');\nvar speedometer = require('speedometer');\n\nmodule.exports = function(options, onprogress) {\n\tif (typeof options === 'function') return module.exports(null, options);\n\toptions = options || {};\n\n\tvar length = options.length || 0;\n\tvar time = options.time || 0;\n\tvar drain = options.drain || false;\n\tvar transferred = options.transferred || 0;\n\tvar nextUpdate = Date.now()+time;\n\tvar delta = 0;\n\tvar speed = speedometer(options.speed || 5000);\n\tvar startTime = Date.now();\n\n\tvar update = {\n\t\tpercentage: 0,\n\t\ttransferred: transferred,\n\t\tlength: length,\n\t\tremaining: length,\n\t\teta: 0,\n\t\truntime: 0\n\t};\n\n\tvar emit = function(ended) {\n\t\tupdate.delta = delta;\n\t\tupdate.percentage = ended ? 100 : (length ? transferred/length*100 : 0);\n\t\tupdate.speed = speed(delta);\n\t\tupdate.eta = Math.round(update.remaining / update.speed);\n\t\tupdate.runtime = parseInt((Date.now() - startTime)/1000);\n\t\tnextUpdate = Date.now()+time;\n\n\t\tdelta = 0;\n\n\t\ttr.emit('progress', update);\n\t};\n\tvar write = function(chunk, enc, callback) {\n\t\tvar len = options.objectMode ? 1 : chunk.length;\n\t\ttransferred += len;\n\t\tdelta += len;\n\t\tupdate.transferred = transferred;\n\t\tupdate.remaining = length >= transferred ? length - transferred : 0;\n\n\t\tif (Date.now() >= nextUpdate) emit(false);\n\t\tcallback(null, chunk);\n\t};\n\tvar end = function(callback) {\n\t\temit(true);\n\t\tcallback();\n\t};\n\n\tvar tr = through(options.objectMode ? {objectMode:true, highWaterMark:16} : {}, write, end);\n\tvar onlength = function(newLength) {\n\t\tlength = newLength;\n\t\tupdate.length = length;\n\t\tupdate.remaining = length - update.transferred;\n\t\ttr.emit('length', length);\n\t};\n\t\n\t// Expose `onlength()` handler as `setLength()` to support custom use cases where length\n\t// is not known until after a few chunks have already been pumped, or is\n\t// calculated on the fly.\n\ttr.setLength = onlength;\n\t\n\ttr.on('pipe', function(stream) {\n\t\tif (typeof length === 'number') return;\n\t\t// Support http module\n\t\tif (stream.readable && !stream.writable && stream.headers) {\n\t\t\treturn onlength(parseInt(stream.headers['content-length'] || 0));\n\t\t}\n\n\t\t// Support streams with a length property\n\t\tif (typeof stream.length === 'number') {\n\t\t\treturn onlength(stream.length);\n\t\t}\n\n\t\t// Support request module\n\t\tstream.on('response', function(res) {\n\t\t\tif (!res || !res.headers) return;\n\t\t\tif (res.headers['content-encoding'] === 'gzip') return;\n\t\t\tif (res.headers['content-length']) {\n\t\t\t\treturn onlength(parseInt(res.headers['content-length']));\n\t\t\t}\n\t\t});\n\t});\n\n\tif (drain) tr.resume();\n\tif (onprogress) tr.on('progress', onprogress);\n\n\ttr.progress = function() {\n\t\tupdate.speed = speed(0);\n\t\tupdate.eta = Math.round(update.remaining / update.speed);\n\n\t\treturn update;\n\t};\n\treturn tr;\n};\n","'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProps = [\n\t'destroy',\n\t'setTimeout',\n\t'socket',\n\t'headers',\n\t'trailers',\n\t'rawHeaders',\n\t'statusCode',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'rawTrailers',\n\t'statusMessage'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tconst fromProps = new Set(Object.keys(fromStream).concat(knownProps));\n\n\tfor (const prop of fromProps) {\n\t\t// Don't overwrite existing properties\n\t\tif (prop in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttoStream[prop] = typeof fromStream[prop] === 'function' ? fromStream[prop].bind(fromStream) : fromStream[prop];\n\t}\n};\n","'use strict';\nconst PassThrough = require('stream').PassThrough;\nconst zlib = require('zlib');\nconst mimicResponse = require('mimic-response');\n\nmodule.exports = response => {\n\t// TODO: Use Array#includes when targeting Node.js 6\n\tif (['gzip', 'deflate'].indexOf(response.headers['content-encoding']) === -1) {\n\t\treturn response;\n\t}\n\n\tconst unzip = zlib.createUnzip();\n\tconst stream = new PassThrough();\n\n\tmimicResponse(response, stream);\n\n\tunzip.on('error', err => {\n\t\tif (err.code === 'Z_BUF_ERROR') {\n\t\t\tstream.end();\n\t\t\treturn;\n\t\t}\n\n\t\tstream.emit('error', err);\n\t});\n\n\tresponse.pipe(unzip).pipe(stream);\n\n\treturn stream;\n};\n","/**\n * Code borrowed from https://github.com/request/request\n * Apache License 2.0\n */\n\n/* eslint-disable no-process-env */\nconst url = require('url')\nconst objectAssign = require('object-assign')\n\nfunction formatHostname(hostname) {\n // canonicalize the hostname, so that 'oogle.com' won't match 'google.com'\n return hostname.replace(/^\\.*/, '.').toLowerCase()\n}\n\nfunction parseNoProxyZone(zoneStr) {\n const zone = zoneStr.trim().toLowerCase()\n\n const zoneParts = zone.split(':', 2)\n const zoneHost = formatHostname(zoneParts[0])\n const zonePort = zoneParts[1]\n const hasPort = zone.indexOf(':') > -1\n\n return {hostname: zoneHost, port: zonePort, hasPort: hasPort}\n}\n\nfunction uriInNoProxy(uri, noProxy) {\n const port = uri.port || (uri.protocol === 'https:' ? '443' : '80')\n const hostname = formatHostname(uri.hostname)\n const noProxyList = noProxy.split(',')\n\n // iterate through the noProxyList until it finds a match.\n return noProxyList.map(parseNoProxyZone).some(noProxyZone => {\n const isMatchedAt = hostname.indexOf(noProxyZone.hostname)\n const hostnameMatched =\n isMatchedAt > -1 && isMatchedAt === hostname.length - noProxyZone.hostname.length\n\n if (noProxyZone.hasPort) {\n return port === noProxyZone.port && hostnameMatched\n }\n\n return hostnameMatched\n })\n}\n\nfunction getProxyFromUri(uri) {\n // Decide the proper request proxy to use based on the request URI object and the\n // environmental variables (NO_PROXY, HTTP_PROXY, etc.)\n // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html)\n const noProxy = process.env.NO_PROXY || process.env.no_proxy || ''\n\n // if the noProxy is a wildcard then return null\n if (noProxy === '*') {\n return null\n }\n\n // if the noProxy is not empty and the uri is found return null\n if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {\n return null\n }\n\n // Check for HTTP or HTTPS Proxy in environment, else default to null\n if (uri.protocol === 'http:') {\n return process.env.HTTP_PROXY || process.env.http_proxy || null\n }\n\n if (uri.protocol === 'https:') {\n return (\n process.env.HTTPS_PROXY ||\n process.env.https_proxy ||\n process.env.HTTP_PROXY ||\n process.env.http_proxy ||\n null\n )\n }\n\n // if none of that works, return null\n // (What uri protocol are you using then?)\n return null\n}\n\nfunction getHostFromUri(uri) {\n let host = uri.host\n\n // Drop :port suffix from Host header if known protocol.\n if (uri.port) {\n if (\n (uri.port === '80' && uri.protocol === 'http:') ||\n (uri.port === '443' && uri.protocol === 'https:')\n ) {\n host = uri.hostname\n }\n }\n\n return host\n}\n\nfunction getHostHeaderWithPort(uri) {\n const port = uri.port || (uri.protocol === 'https:' ? '443' : '80')\n return `${uri.hostname}:${port}`\n}\n\nfunction rewriteUriForProxy(reqOpts, uri, proxy) {\n const headers = reqOpts.headers || {}\n const options = objectAssign({}, reqOpts, {headers})\n headers.host = headers.host || getHostHeaderWithPort(uri)\n options.protocol = proxy.protocol || options.protocol\n options.hostname = proxy.host.replace(/:\\d+/, '')\n options.port = proxy.port\n options.host = getHostFromUri(objectAssign({}, uri, proxy))\n options.href = `${options.protocol}//${options.host}${options.path}`\n options.path = url.format(uri)\n return options\n}\n\nfunction getProxyOptions(options) {\n let proxy\n if (options.hasOwnProperty('proxy')) {\n proxy = options.proxy\n } else {\n const uri = url.parse(options.url)\n proxy = getProxyFromUri(uri)\n }\n\n return typeof proxy === 'string' ? url.parse(proxy) : proxy\n}\n\nexports.rewriteUriForProxy = rewriteUriForProxy\nexports.getProxyOptions = getProxyOptions\n","'use strict'\n\nvar net = require('net')\n , tls = require('tls')\n , http = require('http')\n , https = require('https')\n , events = require('events')\n , assert = require('assert')\n , util = require('util')\n , Buffer = require('safe-buffer').Buffer\n ;\n\nexports.httpOverHttp = httpOverHttp\nexports.httpsOverHttp = httpsOverHttp\nexports.httpOverHttps = httpOverHttps\nexports.httpsOverHttps = httpsOverHttps\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options)\n agent.request = http.request\n return agent\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options)\n agent.request = http.request\n agent.createSocket = createSecureSocket\n agent.defaultPort = 443\n return agent\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options)\n agent.request = https.request\n return agent\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options)\n agent.request = https.request\n agent.createSocket = createSecureSocket\n agent.defaultPort = 443\n return agent\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this\n self.options = options || {}\n self.proxyOptions = self.options.proxy || {}\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets\n self.requests = []\n self.sockets = []\n\n self.on('free', function onFree(socket, host, port) {\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i]\n if (pending.host === host && pending.port === port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1)\n pending.request.onSocket(socket)\n return\n }\n }\n socket.destroy()\n self.removeSocket(socket)\n })\n}\nutil.inherits(TunnelingAgent, events.EventEmitter)\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, options) {\n var self = this\n\n // Legacy API: addRequest(req, host, port, path)\n if (typeof options === 'string') {\n options = {\n host: options,\n port: arguments[2],\n path: arguments[3]\n };\n }\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push({host: options.host, port: options.port, request: req})\n return\n }\n\n // If we are under maxSockets create a new one.\n self.createConnection({host: options.host, port: options.port, request: req})\n}\n\nTunnelingAgent.prototype.createConnection = function createConnection(pending) {\n var self = this\n\n self.createSocket(pending, function(socket) {\n socket.on('free', onFree)\n socket.on('close', onCloseOrRemove)\n socket.on('agentRemove', onCloseOrRemove)\n pending.request.onSocket(socket)\n\n function onFree() {\n self.emit('free', socket, pending.host, pending.port)\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket)\n socket.removeListener('free', onFree)\n socket.removeListener('close', onCloseOrRemove)\n socket.removeListener('agentRemove', onCloseOrRemove)\n }\n })\n}\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this\n var placeholder = {}\n self.sockets.push(placeholder)\n\n var connectOptions = mergeOptions({}, self.proxyOptions,\n { method: 'CONNECT'\n , path: options.host + ':' + options.port\n , agent: false\n }\n )\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {}\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n Buffer.from(connectOptions.proxyAuth).toString('base64')\n }\n\n debug('making CONNECT request')\n var connectReq = self.request(connectOptions)\n connectReq.useChunkedEncodingByDefault = false // for v0.6\n connectReq.once('response', onResponse) // for v0.6\n connectReq.once('upgrade', onUpgrade) // for v0.6\n connectReq.once('connect', onConnect) // for v0.7 or later\n connectReq.once('error', onError)\n connectReq.end()\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head)\n })\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners()\n socket.removeAllListeners()\n\n if (res.statusCode === 200) {\n assert.equal(head.length, 0)\n debug('tunneling connection has established')\n self.sockets[self.sockets.indexOf(placeholder)] = socket\n cb(socket)\n } else {\n debug('tunneling socket could not be established, statusCode=%d', res.statusCode)\n var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode)\n error.code = 'ECONNRESET'\n options.request.emit('error', error)\n self.removeSocket(placeholder)\n }\n }\n\n function onError(cause) {\n connectReq.removeAllListeners()\n\n debug('tunneling socket could not be established, cause=%s\\n', cause.message, cause.stack)\n var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message)\n error.code = 'ECONNRESET'\n options.request.emit('error', error)\n self.removeSocket(placeholder)\n }\n}\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) return\n\n this.sockets.splice(pos, 1)\n\n var pending = this.requests.shift()\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createConnection(pending)\n }\n}\n\nfunction createSecureSocket(options, cb) {\n var self = this\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, mergeOptions({}, self.options,\n { servername: options.host\n , socket: socket\n }\n ))\n self.sockets[self.sockets.indexOf(socket)] = secureSocket\n cb(secureSocket)\n })\n}\n\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i]\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides)\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j]\n if (overrides[k] !== undefined) {\n target[k] = overrides[k]\n }\n }\n }\n }\n return target\n}\n\n\nvar debug\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments)\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0]\n } else {\n args.unshift('TUNNEL:')\n }\n console.error.apply(console, args)\n }\n} else {\n debug = function() {}\n}\nexports.debug = debug // for test\n","/**\n * Code borrowed from https://github.com/request/request\n * Modified to be less request-specific, more functional\n * Apache License 2.0\n */\nconst url = require('url')\nconst tunnel = require('tunnel-agent')\nconst objectAssign = require('object-assign')\n\nconst uriParts = [\n 'protocol',\n 'slashes',\n 'auth',\n 'host',\n 'port',\n 'hostname',\n 'hash',\n 'search',\n 'query',\n 'pathname',\n 'path',\n 'href'\n]\n\nconst defaultProxyHeaderWhiteList = [\n 'accept',\n 'accept-charset',\n 'accept-encoding',\n 'accept-language',\n 'accept-ranges',\n 'cache-control',\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-md5',\n 'content-range',\n 'content-type',\n 'connection',\n 'date',\n 'expect',\n 'max-forwards',\n 'pragma',\n 'referer',\n 'te',\n 'user-agent',\n 'via'\n]\n\nconst defaultProxyHeaderExclusiveList = ['proxy-authorization']\n\nexports.shouldEnable = (options, tunnelOption) => {\n // Tunnel HTTPS by default. Allow the user to override this setting.\n\n // If user has specified a specific tunnel override...\n if (typeof options.tunnel !== 'undefined') {\n return Boolean(options.tunnel)\n }\n\n // If the destination is HTTPS, tunnel.\n const uri = url.parse(options.url)\n if (uri.protocol === 'https:') {\n return true\n }\n\n // Otherwise, do not use tunnel.\n return false\n}\n\nexports.applyAgent = (opts = {}, proxy) => {\n const options = objectAssign({}, opts)\n\n // Setup proxy header exclusive list and whitelist\n const proxyHeaderWhiteList = defaultProxyHeaderWhiteList\n .concat(options.proxyHeaderWhiteList || [])\n .map(header => header.toLowerCase())\n\n const proxyHeaderExclusiveList = defaultProxyHeaderExclusiveList\n .concat(options.proxyHeaderExclusiveList || [])\n .map(header => header.toLowerCase())\n\n // Get the headers we should send to the proxy\n const proxyHeaders = getAllowedProxyHeaders(options.headers, proxyHeaderWhiteList)\n proxyHeaders.host = constructProxyHost(options)\n\n // Reduce headers to the ones not exclusive for the proxy\n options.headers = Object.keys(options.headers || {}).reduce((headers, header) => {\n const isAllowed = proxyHeaderExclusiveList.indexOf(header.toLowerCase()) === -1\n if (isAllowed) {\n headers[header] = options.headers[header]\n }\n\n return headers\n }, {})\n\n const tunnelFn = getTunnelFn(options, proxy)\n const tunnelOptions = constructTunnelOptions(options, proxy, proxyHeaders)\n options.agent = tunnelFn(tunnelOptions)\n\n return options\n}\n\nfunction getTunnelFn(options, proxy) {\n const uri = getUriParts(options)\n const tunnelFnName = constructTunnelFnName(uri, proxy)\n return tunnel[tunnelFnName]\n}\n\nfunction getUriParts(options) {\n return uriParts.reduce((uri, part) => {\n uri[part] = options[part]\n return uri\n }, {})\n}\n\nfunction constructTunnelFnName(uri, proxy) {\n const uriProtocol = uri.protocol === 'https:' ? 'https' : 'http'\n const proxyProtocol = proxy.protocol === 'https:' ? 'Https' : 'Http'\n return [uriProtocol, proxyProtocol].join('Over')\n}\n\nfunction constructProxyHost(uri) {\n const port = uri.port\n const protocol = uri.protocol\n let proxyHost = `${uri.hostname}:`\n\n if (port) {\n proxyHost += port\n } else if (protocol === 'https:') {\n proxyHost += '443'\n } else {\n proxyHost += '80'\n }\n\n return proxyHost\n}\n\nfunction getAllowedProxyHeaders(headers, whiteList) {\n return Object.keys(headers)\n .filter(header => whiteList.indexOf(header.toLowerCase()) !== -1)\n .reduce((set, header) => {\n set[header] = headers[header]\n return set\n }, {})\n}\n\nfunction constructTunnelOptions(options, proxy, proxyHeaders) {\n return {\n proxy: {\n host: proxy.hostname,\n port: +proxy.port,\n proxyAuth: proxy.auth,\n headers: proxyHeaders\n },\n headers: options.headers,\n ca: options.ca,\n cert: options.cert,\n key: options.key,\n passphrase: options.passphrase,\n pfx: options.pfx,\n ciphers: options.ciphers,\n rejectUnauthorized: options.rejectUnauthorized,\n secureOptions: options.secureOptions,\n secureProtocol: options.secureProtocol\n }\n}\n","/* eslint-disable no-process-env */\nconst qs = require('querystring')\nconst url = require('url')\nconst http = require('http')\nconst https = require('https')\nconst concat = require('simple-concat')\nconst follow = require('follow-redirects')\nconst timedOut = require('@sanity/timed-out')\nconst isStream = require('is-stream')\nconst toStream = require('into-stream')\nconst objectAssign = require('object-assign')\nconst progressStream = require('progress-stream')\nconst decompressResponse = require('decompress-response')\nconst {getProxyOptions, rewriteUriForProxy} = require('./node/proxy')\nconst tunneling = require('./node/tunnel')\n\nconst adapter = 'node'\n\n// Reduce a fully fledged node-style response object to\n// something that works in both browser and node environment\nconst reduceResponse = (res, reqUrl, method, body) => ({\n body,\n url: reqUrl,\n method: method,\n headers: res.headers,\n statusCode: res.statusCode,\n statusMessage: res.statusMessage\n})\n\nmodule.exports = (context, cb) => {\n const options = context.options\n const uri = objectAssign({}, url.parse(options.url))\n const bodyType = isStream(options.body) ? 'stream' : typeof options.body\n\n if (\n bodyType !== 'undefined' &&\n bodyType !== 'stream' &&\n bodyType !== 'string' &&\n !Buffer.isBuffer(options.body)\n ) {\n throw new Error(`Request body must be a string, buffer or stream, got ${bodyType}`)\n }\n\n const lengthHeader = {}\n if (options.bodySize) {\n lengthHeader['content-length'] = options.bodySize\n } else if (options.body && bodyType !== 'stream') {\n lengthHeader['content-length'] = Buffer.byteLength(options.body)\n }\n\n // Make sure callback is not called in the event of a cancellation\n let aborted = false\n const callback = (err, res) => !aborted && cb(err, res)\n context.channels.abort.subscribe(() => {\n aborted = true\n })\n\n // Create a reduced subset of options meant for the http.request() method\n let reqOpts = objectAssign({}, uri, {\n method: options.method,\n headers: objectAssign({}, lowerCaseHeaders(options.headers), lengthHeader),\n maxRedirects: options.maxRedirects\n })\n\n // Figure out proxying/tunnel options\n const proxy = getProxyOptions(options)\n const tunnel = proxy && tunneling.shouldEnable(options)\n\n // Allow middleware to inject a response, for instance in the case of caching or mocking\n const injectedResponse = context.applyMiddleware('interceptRequest', undefined, {\n adapter,\n context\n })\n\n // If middleware injected a response, treat it as we normally would and return it\n // Do note that the injected response has to be reduced to a cross-environment friendly response\n if (injectedResponse) {\n const cbTimer = setImmediate(callback, null, injectedResponse)\n const abort = () => clearImmediate(cbTimer)\n return {abort}\n }\n\n // We're using the follow-redirects module to transparently follow redirects\n if (options.maxRedirects !== 0) {\n reqOpts.maxRedirects = options.maxRedirects || 5\n }\n\n // Apply currect options for proxy tunneling, if enabled\n if (proxy && tunnel) {\n reqOpts = tunneling.applyAgent(reqOpts, proxy)\n } else if (proxy && !tunnel) {\n reqOpts = rewriteUriForProxy(reqOpts, uri, proxy)\n }\n\n // Handle proxy authorization if present\n if (!tunnel && proxy && proxy.auth && !reqOpts.headers['proxy-authorization']) {\n const [username, password] = proxy.auth.username\n ? [proxy.auth.username, proxy.auth.password]\n : proxy.auth.split(':').map(item => qs.unescape(item))\n\n const auth = Buffer.from(`${username}:${password}`, 'utf8')\n const authBase64 = auth.toString('base64')\n reqOpts.headers['proxy-authorization'] = `Basic ${authBase64}`\n }\n\n // Figure out transport (http/https, forwarding/non-forwarding agent)\n const transport = getRequestTransport(reqOpts, proxy, tunnel)\n if (typeof options.debug === 'function' && proxy) {\n options.debug(\n 'Proxying using %s',\n reqOpts.agent ? 'tunnel agent' : `${reqOpts.host}:${reqOpts.port}`\n )\n }\n\n const finalOptions = context.applyMiddleware('finalizeOptions', reqOpts)\n const request = transport.request(finalOptions, response => {\n // See if we should try to decompress the response\n const tryDecompress = reqOpts.method !== 'HEAD'\n const res = tryDecompress ? decompressResponse(response) : response\n\n const resStream = context.applyMiddleware('onHeaders', res, {\n headers: response.headers,\n adapter,\n context\n })\n\n // Concatenate the response body, then parse the response with middlewares\n concat(resStream, (err, data) => {\n if (err) {\n return callback(err)\n }\n\n const body = options.rawBody ? data : data.toString()\n const reduced = reduceResponse(\n res,\n response.responseUrl || options.url, // On redirects, `responseUrl` is set\n reqOpts.method,\n body\n )\n\n return callback(null, reduced)\n })\n })\n\n if (options.timeout) {\n timedOut(request, options.timeout)\n }\n\n request.once('error', callback)\n\n // Cheating a bit here; since we're not concerned about the \"bundle size\" in node,\n // and modifying the body stream would be sorta tricky, we're just always going\n // to put a progress stream in the middle here. Note that\n const {bodyStream, progress} = getProgressStream(options)\n\n // Let middleware know we're about to do a request\n context.applyMiddleware('onRequest', {options, adapter, request, context, progress})\n\n if (bodyStream) {\n bodyStream.pipe(request)\n } else {\n request.end(options.body)\n }\n\n return {abort: () => request.abort()}\n}\n\nfunction getProgressStream(options) {\n if (!options.body) {\n return {}\n }\n\n const bodyIsStream = isStream(options.body)\n const length = options.bodySize || (bodyIsStream ? null : Buffer.byteLength(options.body))\n if (!length) {\n return bodyIsStream ? {bodyStream: options.body} : {}\n }\n\n const progress = progressStream({time: 16, length})\n const bodyStream = bodyIsStream ? options.body : toStream(options.body)\n return {bodyStream: bodyStream.pipe(progress), progress}\n}\n\nfunction getRequestTransport(reqOpts, proxy, tunnel) {\n const isHttpsRequest = reqOpts.protocol === 'https:'\n const transports =\n reqOpts.maxRedirects === 0\n ? {http: http, https: https}\n : {http: follow.http, https: follow.https}\n\n if (!proxy || tunnel) {\n return isHttpsRequest ? transports.https : transports.http\n }\n\n // Assume the proxy is an HTTPS proxy if port is 443, or if there is a\n // `protocol` option set that starts with https\n let isHttpsProxy = proxy.port === 443\n if (proxy.protocol) {\n isHttpsProxy = /^https:?/.test(proxy.protocol)\n }\n\n return isHttpsProxy ? transports.https : transports.http\n}\n\nfunction lowerCaseHeaders(headers) {\n return Object.keys(headers || {}).reduce((acc, header) => {\n acc[header.toLowerCase()] = headers[header]\n return acc\n }, {})\n}\n","module.exports = require('./node-request')\n","const pubsub = require('nano-pubsub')\nconst middlewareReducer = require('./util/middlewareReducer')\nconst processOptions = require('./middleware/defaultOptionsProcessor')\nconst validateOptions = require('./middleware/defaultOptionsValidator')\nconst httpRequest = require('./request') // node-request in node, browser-request in browsers\n\nconst channelNames = ['request', 'response', 'progress', 'error', 'abort']\nconst middlehooks = [\n 'processOptions',\n 'validateOptions',\n 'interceptRequest',\n 'finalizeOptions',\n 'onRequest',\n 'onResponse',\n 'onError',\n 'onReturn',\n 'onHeaders'\n]\n\nmodule.exports = function createRequester(initMiddleware = []) {\n const loadedMiddleware = []\n const middleware = middlehooks.reduce(\n (ware, name) => {\n ware[name] = ware[name] || []\n return ware\n },\n {\n processOptions: [processOptions],\n validateOptions: [validateOptions]\n }\n )\n\n function request(opts) {\n const channels = channelNames.reduce((target, name) => {\n target[name] = pubsub()\n return target\n }, {})\n\n // Prepare a middleware reducer that can be reused throughout the lifecycle\n const applyMiddleware = middlewareReducer(middleware)\n\n // Parse the passed options\n const options = applyMiddleware('processOptions', opts)\n\n // Validate the options\n applyMiddleware('validateOptions', options)\n\n // Build a context object we can pass to child handlers\n const context = {options, channels, applyMiddleware}\n\n // We need to hold a reference to the current, ongoing request,\n // in order to allow cancellation. In the case of the retry middleware,\n // a new request might be triggered\n let ongoingRequest = null\n const unsubscribe = channels.request.subscribe(ctx => {\n // Let request adapters (node/browser) perform the actual request\n ongoingRequest = httpRequest(ctx, (err, res) => onResponse(err, res, ctx))\n })\n\n // If we abort the request, prevent further requests from happening,\n // and be sure to cancel any ongoing request (obviously)\n channels.abort.subscribe(() => {\n unsubscribe()\n if (ongoingRequest) {\n ongoingRequest.abort()\n }\n })\n\n // See if any middleware wants to modify the return value - for instance\n // the promise or observable middlewares\n const returnValue = applyMiddleware('onReturn', channels, context)\n\n // If return value has been modified by a middleware, we expect the middleware\n // to publish on the 'request' channel. If it hasn't been modified, we want to\n // trigger it right away\n if (returnValue === channels) {\n channels.request.publish(context)\n }\n\n return returnValue\n\n function onResponse(reqErr, res, ctx) {\n let error = reqErr\n let response = res\n\n // We're processing non-errors first, in case a middleware converts the\n // response into an error (for instance, status >= 400 == HttpError)\n if (!error) {\n try {\n response = applyMiddleware('onResponse', res, ctx)\n } catch (err) {\n response = null\n error = err\n }\n }\n\n // Apply error middleware - if middleware return the same (or a different) error,\n // publish as an error event. If we *don't* return an error, assume it has been handled\n error = error && applyMiddleware('onError', error, ctx)\n\n // Figure out if we should publish on error/response channels\n if (error) {\n channels.error.publish(error)\n } else if (response) {\n channels.response.publish(response)\n }\n }\n }\n\n request.use = function use(newMiddleware) {\n if (!newMiddleware) {\n throw new Error('Tried to add middleware that resolved to falsey value')\n }\n\n if (typeof newMiddleware === 'function') {\n throw new Error(\n 'Tried to add middleware that was a function. It probably expects you to pass options to it.'\n )\n }\n\n if (newMiddleware.onReturn && middleware.onReturn.length > 0) {\n throw new Error(\n 'Tried to add new middleware with `onReturn` handler, but another handler has already been registered for this event'\n )\n }\n\n middlehooks.forEach(key => {\n if (newMiddleware[key]) {\n middleware[key].push(newMiddleware[key])\n }\n })\n\n loadedMiddleware.push(newMiddleware)\n return request\n }\n\n request.clone = function clone() {\n return createRequester(loadedMiddleware)\n }\n\n initMiddleware.forEach(request.use)\n\n return request\n}\n","module.exports = require('./lib-node')\n","/* eslint-disable no-negated-condition */\nif (typeof window !== 'undefined') {\n module.exports = window\n} else if (typeof global !== 'undefined') {\n module.exports = global\n} else if (typeof self !== 'undefined') {\n module.exports = self\n} else {\n module.exports = {}\n}\n","const global = require('../util/global')\nconst objectAssign = require('object-assign')\n\nmodule.exports = (opts = {}) => {\n const Observable = opts.implementation || global.Observable\n if (!Observable) {\n throw new Error(\n '`Observable` is not available in global scope, and no implementation was passed'\n )\n }\n\n return {\n onReturn: (channels, context) =>\n new Observable(observer => {\n channels.error.subscribe(err => observer.error(err))\n channels.progress.subscribe(event => observer.next(objectAssign({type: 'progress'}, event)))\n channels.response.subscribe(response => {\n observer.next(objectAssign({type: 'response'}, response))\n observer.complete()\n })\n\n channels.request.publish(context)\n return () => channels.abort.publish()\n })\n }\n}\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","const objectAssign = require('object-assign')\nconst isPlainObject = require('is-plain-object')\n\nconst serializeTypes = ['boolean', 'string', 'number']\nconst isBuffer = obj =>\n !!obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n\nmodule.exports = () => ({\n processOptions: options => {\n const body = options.body\n if (!body) {\n return options\n }\n\n const isStream = typeof body.pipe === 'function'\n const shouldSerialize =\n !isStream &&\n !isBuffer(body) &&\n (serializeTypes.indexOf(typeof body) !== -1 || Array.isArray(body) || isPlainObject(body))\n\n if (!shouldSerialize) {\n return options\n }\n\n return objectAssign({}, options, {\n body: JSON.stringify(options.body),\n headers: objectAssign({}, options.headers, {\n 'Content-Type': 'application/json'\n })\n })\n }\n})\n","const objectAssign = require('object-assign')\n\nmodule.exports = opts => ({\n onResponse: response => {\n const contentType = response.headers['content-type'] || ''\n const shouldDecode = (opts && opts.force) || contentType.indexOf('application/json') !== -1\n if (!response.body || !contentType || !shouldDecode) {\n return response\n }\n\n return objectAssign({}, response, {body: tryParse(response.body)})\n },\n\n processOptions: options =>\n objectAssign({}, options, {\n headers: objectAssign({Accept: 'application/json'}, options.headers)\n })\n})\n\nfunction tryParse(body) {\n try {\n return JSON.parse(body)\n } catch (err) {\n err.message = `Failed to parsed response body as JSON: ${err.message}`\n throw err\n }\n}\n","const progressStream = require('progress-stream')\n\nfunction normalizer(stage) {\n return prog => ({\n stage,\n percent: prog.percentage,\n total: prog.length,\n loaded: prog.transferred,\n lengthComputable: !(prog.length === 0 && prog.percentage === 0)\n })\n}\n\nmodule.exports = () => ({\n onHeaders: (response, evt) => {\n const progress = progressStream({time: 16})\n const normalize = normalizer('download')\n\n // This is supposed to be handled automatically, but it has a bug,\n // see https://github.com/freeall/progress-stream/pull/22\n const contentLength = response.headers['content-length']\n const length = contentLength && Number(contentLength)\n if (!isNaN(length) && length > 0) {\n progress.setLength(length)\n }\n\n progress.on('progress', prog => evt.context.channels.progress.publish(normalize(prog)))\n return response.pipe(progress)\n },\n\n onRequest: evt => {\n if (!evt.progress) {\n return\n }\n\n const normalize = normalizer('upload')\n evt.progress.on('progress', prog => evt.context.channels.progress.publish(normalize(prog)))\n }\n})\n","module.exports = require('./node-progress')\n","// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n","\"use strict\";\n\nvar makeError = require('make-error');\n\nvar assign = require('object-assign');\n\nfunction ClientError(res) {\n var props = extractErrorProps(res);\n ClientError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction ServerError(res) {\n var props = extractErrorProps(res);\n ServerError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction extractErrorProps(res) {\n var body = res.body;\n var props = {\n response: res,\n statusCode: res.statusCode,\n responseBody: stringifyBody(body, res)\n }; // API/Boom style errors ({statusCode, error, message})\n\n if (body.error && body.message) {\n props.message = \"\".concat(body.error, \" - \").concat(body.message);\n return props;\n } // Query/database errors ({error: {description, other, arb, props}})\n\n\n if (body.error && body.error.description) {\n props.message = body.error.description;\n props.details = body.error;\n return props;\n } // Other, more arbitrary errors\n\n\n props.message = body.error || body.message || httpErrorMessage(res);\n return props;\n}\n\nfunction httpErrorMessage(res) {\n var statusMessage = res.statusMessage ? \" \".concat(res.statusMessage) : '';\n return \"\".concat(res.method, \"-request to \").concat(res.url, \" resulted in HTTP \").concat(res.statusCode).concat(statusMessage);\n}\n\nfunction stringifyBody(body, res) {\n var contentType = (res.headers['content-type'] || '').toLowerCase();\n var isJson = contentType.indexOf('application/json') !== -1;\n return isJson ? JSON.stringify(body, null, 2) : body;\n}\n\nmakeError(ClientError);\nmakeError(ServerError);\nexports.ClientError = ClientError;\nexports.ServerError = ServerError;","'use strict';\n\nvar WHITELIST = [\n\t'ETIMEDOUT',\n\t'ECONNRESET',\n\t'EADDRINUSE',\n\t'ESOCKETTIMEDOUT',\n\t'ECONNREFUSED',\n\t'EPIPE',\n\t'EHOSTUNREACH',\n\t'EAI_AGAIN'\n];\n\nvar BLACKLIST = [\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/ed3d8b13ee9a705d89f9e0397d9e96519e7e47ac/src/node_crypto.cc#L1950\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED'\n];\n\nmodule.exports = function (err) {\n\tif (!err || !err.code) {\n\t\treturn true;\n\t}\n\n\tif (WHITELIST.indexOf(err.code) !== -1) {\n\t\treturn true;\n\t}\n\n\tif (BLACKLIST.indexOf(err.code) !== -1) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n","const allowed = require('is-retry-allowed')\n\nmodule.exports = (err, num, options) => {\n if (options.method !== 'GET' && options.method !== 'HEAD') {\n return false\n }\n\n // Don't allow retries if we get any http status code by default\n if (err.response && err.response.statusCode) {\n return false\n }\n\n return allowed(err)\n}\n","const objectAssign = require('object-assign')\nconst defaultShouldRetry = require('../util/node-shouldRetry')\n\nconst isStream = stream =>\n stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'\n\nconst retry = (opts = {}) => {\n const maxRetries = opts.maxRetries || 5\n const retryDelay = opts.retryDelay || getRetryDelay\n const allowRetry = opts.shouldRetry || defaultShouldRetry\n\n return {\n onError: (err, context) => {\n const options = context.options\n const max = options.maxRetries || maxRetries\n const shouldRetry = options.shouldRetry || allowRetry\n const attemptNumber = options.attemptNumber || 0\n\n // We can't retry if body is a stream, since it'll be drained\n if (isStream(options.body)) {\n return err\n }\n\n // Give up?\n if (!shouldRetry(err, attemptNumber, options) || attemptNumber >= max) {\n return err\n }\n\n // Create a new context with an increased attempt number, so we can exit if we reach a limit\n const newContext = objectAssign({}, context, {\n options: objectAssign({}, options, {attemptNumber: attemptNumber + 1})\n })\n\n // Wait a given amount of time before doing the request again\n setTimeout(() => context.channels.request.publish(newContext), retryDelay(attemptNumber))\n\n // Signal that we've handled the error and that it should not propagate further\n return null\n }\n }\n}\n\nretry.shouldRetry = defaultShouldRetry\n\nmodule.exports = retry\n\nfunction getRetryDelay(attemptNum) {\n return 100 * Math.pow(2, attemptNum) + Math.random() * 100\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require('fs');\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require('net');\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","const debugIt = require('debug')\n\nconst SENSITIVE_HEADERS = ['Cookie', 'Authorization']\n\nconst hasOwn = Object.prototype.hasOwnProperty\nconst redactKeys = (source, keys) => {\n const target = {}\n for (const key in source) {\n if (hasOwn.call(source, key)) {\n target[key] = keys.indexOf(key) > -1 ? '<redacted>' : source[key]\n }\n }\n return target\n}\n\nmodule.exports = (opts = {}) => {\n const verbose = opts.verbose\n const namespace = opts.namespace || 'get-it'\n const defaultLogger = debugIt(namespace)\n const log = opts.log || defaultLogger\n const shortCircuit = log === defaultLogger && !debugIt.enabled(namespace)\n let requestId = 0\n\n return {\n processOptions: options => {\n options.debug = log\n options.requestId = options.requestId || ++requestId\n return options\n },\n\n onRequest: event => {\n // Short-circuit if not enabled, to save some CPU cycles with formatting stuff\n if (shortCircuit || !event) {\n return event\n }\n\n const options = event.options\n\n log('[%s] HTTP %s %s', options.requestId, options.method, options.url)\n\n if (verbose && options.body && typeof options.body === 'string') {\n log('[%s] Request body: %s', options.requestId, options.body)\n }\n\n if (verbose && options.headers) {\n const headers =\n opts.redactSensitiveHeaders === false\n ? options.headers\n : redactKeys(options.headers, SENSITIVE_HEADERS)\n\n log('[%s] Request headers: %s', options.requestId, JSON.stringify(headers, null, 2))\n }\n\n return event\n },\n\n onResponse: (res, context) => {\n // Short-circuit if not enabled, to save some CPU cycles with formatting stuff\n if (shortCircuit || !res) {\n return res\n }\n\n const reqId = context.options.requestId\n\n log('[%s] Response code: %s %s', reqId, res.statusCode, res.statusMessage)\n\n if (verbose && res.body) {\n log('[%s] Response body: %s', reqId, stringifyBody(res))\n }\n\n return res\n },\n\n onError: (err, context) => {\n const reqId = context.options.requestId\n if (!err) {\n log('[%s] Error encountered, but handled by an earlier middleware', reqId)\n return err\n }\n\n log('[%s] ERROR: %s', reqId, err.message)\n return err\n }\n }\n}\n\nfunction stringifyBody(res) {\n const contentType = (res.headers['content-type'] || '').toLowerCase()\n const isJson = contentType.indexOf('application/json') !== -1\n return isJson ? tryFormat(res.body) : res.body\n}\n\n// Attempt pretty-formatting JSON\nfunction tryFormat(body) {\n try {\n const parsed = typeof body === 'string' ? JSON.parse(body) : body\n return JSON.stringify(parsed, null, 2)\n } catch (err) {\n return body\n }\n}\n","const objectAssign = require('object-assign')\n\nmodule.exports = (headers, opts = {}) => ({\n processOptions: options => {\n const existing = options.headers || {}\n options.headers = opts.override\n ? objectAssign({}, existing, headers)\n : objectAssign({}, headers, existing)\n\n return options\n }\n})\n","\"use strict\";\n\nvar retry = require('get-it/lib-node/middleware/retry');\n\nvar debug = require('get-it/lib-node/middleware/debug');\n\nvar headers = require('get-it/lib-node/middleware/headers');\n\nvar pkg = require('../../package.json');\n\nvar middleware = [debug({\n verbose: true,\n namespace: 'sanity:client'\n}), headers({\n 'User-Agent': \"\".concat(pkg.name, \" \").concat(pkg.version)\n}), retry({\n maxRetries: 3\n})];\nmodule.exports = middleware;","\"use strict\";\n\n/* eslint-disable no-empty-function, no-process-env */\nvar getIt = require('get-it');\n\nvar assign = require('object-assign');\n\nvar observable = require('get-it/lib/middleware/observable');\n\nvar jsonRequest = require('get-it/lib/middleware/jsonRequest');\n\nvar jsonResponse = require('get-it/lib/middleware/jsonResponse');\n\nvar progress = require('get-it/lib/middleware/progress');\n\nvar Observable = require('@sanity/observable/minimal');\n\nvar _require = require('./errors'),\n ClientError = _require.ClientError,\n ServerError = _require.ServerError;\n\nvar httpError = {\n onResponse: function onResponse(res) {\n if (res.statusCode >= 500) {\n throw new ServerError(res);\n } else if (res.statusCode >= 400) {\n throw new ClientError(res);\n }\n\n return res;\n }\n};\nvar printWarnings = {\n onResponse: function onResponse(res) {\n var warn = res.headers['x-sanity-warning'];\n var warnings = Array.isArray(warn) ? warn : [warn];\n warnings.filter(Boolean).forEach(function (msg) {\n return console.warn(msg);\n }); // eslint-disable-line no-console\n\n return res;\n }\n}; // Environment-specific middleware.\n\nvar envSpecific = require('./nodeMiddleware');\n\nvar middleware = envSpecific.concat([printWarnings, jsonRequest(), jsonResponse(), progress(), httpError, observable({\n implementation: Observable\n})]);\nvar request = getIt(middleware);\n\nfunction httpRequest(options) {\n var requester = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : request;\n return requester(assign({\n maxRedirects: 0\n }, options));\n}\n\nhttpRequest.defaultRequester = request;\nhttpRequest.ClientError = ClientError;\nhttpRequest.ServerError = ServerError;\nmodule.exports = httpRequest;","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar projectHeader = 'X-Sanity-Project-ID';\n\nmodule.exports = function (config) {\n var overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var headers = {};\n var token = overrides.token || config.token;\n\n if (token) {\n headers.Authorization = \"Bearer \".concat(token);\n }\n\n if (!overrides.useGlobalApi && !config.useProjectHostname && config.projectId) {\n headers[projectHeader] = config.projectId;\n }\n\n var withCredentials = Boolean(typeof overrides.withCredentials === 'undefined' ? config.token || config.withCredentials : overrides.withCredentials);\n var timeout = typeof overrides.timeout === 'undefined' ? config.timeout : overrides.timeout;\n return assign({}, overrides, {\n headers: assign({}, headers, overrides.headers || {}),\n timeout: typeof timeout === 'undefined' ? 5 * 60 * 1000 : timeout,\n proxy: overrides.proxy || config.proxy,\n json: true,\n withCredentials: withCredentials\n });\n};","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar once = require('./util/once');\n\nvar createWarningPrinter = function createWarningPrinter(message) {\n return (// eslint-disable-next-line no-console\n once(function () {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_console = console).warn.apply(_console, [message.join(' ')].concat(args));\n })\n );\n};\n\nexports.printCdnWarning = createWarningPrinter(['You are not using the Sanity CDN. That means your data is always fresh, but the CDN is faster and', \"cheaper. Think about it! For more info, see \".concat(generateHelpUrl('js-client-cdn-configuration'), \".\"), 'To hide this warning, please set the `useCdn` option to either `true` or `false` when creating', 'the client.']);\nexports.printBrowserTokenWarning = createWarningPrinter(['You have configured Sanity client to use a token in the browser. This may cause unintentional security issues.', \"See \".concat(generateHelpUrl('js-client-browser-token'), \" for more information and how to hide this warning.\")]);\nexports.printCdnTokenWarning = createWarningPrinter(['You have set `useCdn` to `true` while also specifying a token. This is usually not what you', 'want. The CDN cannot be used with an authorization token, since private data cannot be cached.', \"See \".concat(generateHelpUrl('js-client-usecdn-token'), \" for more information.\")]);\nexports.printNoApiVersionSpecifiedWarning = createWarningPrinter(['Using the Sanity client without specifying an API version is deprecated.', \"See \".concat(generateHelpUrl('js-client-api-version'))]);","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar assign = require('object-assign');\n\nvar validate = require('./validators');\n\nvar warnings = require('./warnings');\n\nvar defaultCdnHost = 'apicdn.sanity.io';\nvar defaultConfig = {\n apiHost: 'https://api.sanity.io',\n apiVersion: '1',\n useProjectHostname: true,\n gradientMode: false,\n isPromiseAPI: true\n};\nvar LOCALHOSTS = ['localhost', '127.0.0.1', '0.0.0.0'];\n\nvar isLocal = function isLocal(host) {\n return LOCALHOSTS.indexOf(host) !== -1;\n};\n\nexports.defaultConfig = defaultConfig; // eslint-disable-next-line complexity\n\nexports.initConfig = function (config, prevConfig) {\n var specifiedConfig = assign({}, prevConfig, config);\n\n if (!specifiedConfig.apiVersion) {\n warnings.printNoApiVersionSpecifiedWarning();\n }\n\n var newConfig = assign({}, defaultConfig, specifiedConfig);\n var gradientMode = newConfig.gradientMode;\n var projectBased = !gradientMode && newConfig.useProjectHostname;\n\n if (typeof Promise === 'undefined') {\n var helpUrl = generateHelpUrl('js-client-promise-polyfill');\n throw new Error(\"No native Promise-implementation found, polyfill needed - see \".concat(helpUrl));\n }\n\n if (gradientMode && !newConfig.namespace) {\n throw new Error('Configuration must contain `namespace` when running in gradient mode');\n }\n\n if (projectBased && !newConfig.projectId) {\n throw new Error('Configuration must contain `projectId`');\n }\n\n var isBrowser = typeof window !== 'undefined' && window.location && window.location.hostname;\n var isLocalhost = isBrowser && isLocal(window.location.hostname);\n\n if (isBrowser && isLocalhost && newConfig.token && newConfig.ignoreBrowserTokenWarning !== true) {\n warnings.printBrowserTokenWarning();\n } else if ((!isBrowser || isLocalhost) && newConfig.useCdn && newConfig.token) {\n warnings.printCdnTokenWarning();\n } else if (typeof newConfig.useCdn === 'undefined') {\n warnings.printCdnWarning();\n }\n\n if (projectBased) {\n validate.projectId(newConfig.projectId);\n }\n\n if (!gradientMode && newConfig.dataset) {\n validate.dataset(newConfig.dataset, newConfig.gradientMode);\n }\n\n if ('requestTagPrefix' in newConfig) {\n // Allow setting and unsetting request tag prefix\n newConfig.requestTagPrefix = newConfig.requestTagPrefix ? validate.requestTag(newConfig.requestTagPrefix).replace(/\\.+$/, '') : undefined;\n }\n\n newConfig.apiVersion = \"\".concat(newConfig.apiVersion).replace(/^v/, '');\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost;\n newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.token && !newConfig.withCredentials;\n exports.validateApiVersion(newConfig.apiVersion);\n\n if (newConfig.gradientMode) {\n newConfig.url = newConfig.apiHost;\n newConfig.cdnUrl = newConfig.apiHost;\n } else {\n var hostParts = newConfig.apiHost.split('://', 2);\n var protocol = hostParts[0];\n var host = hostParts[1];\n var cdnHost = newConfig.isDefaultApi ? defaultCdnHost : host;\n\n if (newConfig.useProjectHostname) {\n newConfig.url = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(host, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(cdnHost, \"/v\").concat(newConfig.apiVersion);\n } else {\n newConfig.url = \"\".concat(newConfig.apiHost, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = newConfig.url;\n }\n }\n\n return newConfig;\n};\n\nexports.validateApiVersion = function validateApiVersion(apiVersion) {\n if (apiVersion === '1' || apiVersion === 'X') {\n return;\n }\n\n var apiDate = new Date(apiVersion);\n var apiVersionValid = /^\\d{4}-\\d{2}-\\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0;\n\n if (!apiVersionValid) {\n throw new Error('Invalid API version string, expected `1` or date in format `YYYY-MM-DD`');\n }\n};","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\n\nvar Patch = require('./data/patch');\n\nvar Transaction = require('./data/transaction');\n\nvar dataMethods = require('./data/dataMethods');\n\nvar DatasetsClient = require('./datasets/datasetsClient');\n\nvar ProjectsClient = require('./projects/projectsClient');\n\nvar AssetsClient = require('./assets/assetsClient');\n\nvar UsersClient = require('./users/usersClient');\n\nvar AuthClient = require('./auth/authClient');\n\nvar httpRequest = require('./http/request');\n\nvar getRequestOptions = require('./http/requestOptions');\n\nvar _require3 = require('./config'),\n defaultConfig = _require3.defaultConfig,\n initConfig = _require3.initConfig;\n\nvar validate = require('./validators');\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nfunction SanityClient() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;\n\n if (!(this instanceof SanityClient)) {\n return new SanityClient(config);\n }\n\n this.config(config);\n this.assets = new AssetsClient(this);\n this.datasets = new DatasetsClient(this);\n this.projects = new ProjectsClient(this);\n this.users = new UsersClient(this);\n this.auth = new AuthClient(this);\n\n if (this.clientConfig.isPromiseAPI) {\n var observableConfig = assign({}, this.clientConfig, {\n isPromiseAPI: false\n });\n this.observable = new SanityClient(observableConfig);\n }\n}\n\nassign(SanityClient.prototype, dataMethods);\nassign(SanityClient.prototype, {\n clone: function clone() {\n return new SanityClient(this.config());\n },\n config: function config(newConfig) {\n if (typeof newConfig === 'undefined') {\n return assign({}, this.clientConfig);\n }\n\n if (this.observable) {\n var observableConfig = assign({}, newConfig, {\n isPromiseAPI: false\n });\n this.observable.config(observableConfig);\n }\n\n this.clientConfig = initConfig(newConfig, this.clientConfig || {});\n return this;\n },\n withConfig: function withConfig(newConfig) {\n return this.clone().config(newConfig);\n },\n getUrl: function getUrl(uri) {\n var canUseCdn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var base = canUseCdn ? this.clientConfig.cdnUrl : this.clientConfig.url;\n return \"\".concat(base, \"/\").concat(uri.replace(/^\\//, ''));\n },\n isPromiseAPI: function isPromiseAPI() {\n return this.clientConfig.isPromiseAPI;\n },\n _requestObservable: function _requestObservable(options) {\n var uri = options.url || options.uri;\n var canUseCdn = this.clientConfig.useCdn && ['GET', 'HEAD'].indexOf(options.method || 'GET') >= 0 && uri.indexOf('/data/') === 0;\n var tag = options.tag && this.clientConfig.requestTagPrefix ? [this.clientConfig.requestTagPrefix, options.tag].join('.') : options.tag || this.clientConfig.requestTagPrefix;\n\n if (tag) {\n options.query = _objectSpread({\n tag: validate.requestTag(tag)\n }, options.query);\n }\n\n var reqOptions = getRequestOptions(this.clientConfig, assign({}, options, {\n url: this.getUrl(uri, canUseCdn)\n }));\n return httpRequest(reqOptions, this.clientConfig.requester);\n },\n request: function request(options) {\n var observable = this._requestObservable(options).pipe(filter(function (event) {\n return event.type === 'response';\n }), map(function (event) {\n return event.body;\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n }\n});\nSanityClient.Patch = Patch;\nSanityClient.Transaction = Transaction;\nSanityClient.ClientError = httpRequest.ClientError;\nSanityClient.ServerError = httpRequest.ServerError;\nSanityClient.requester = httpRequest.defaultRequester;\nmodule.exports = SanityClient;","import client from 'part:@sanity/base/client'\nimport { defer, concat, BehaviorSubject, Observable } from 'rxjs'\nimport { debounceTime, switchMap, map, distinctUntilChanged, withLatestFrom } from 'rxjs/operators'\nimport { UnsplashPhoto } from 'src/types'\n\ntype SearchSubject = BehaviorSubject<string>\ntype PageSubject = BehaviorSubject<number>\n\nconst fetchSearch = (query: string, page: number, perPage: number): Observable<any> =>\n defer(() =>\n client.observable.request({\n url: `/addons/unsplash/search/photos?query=${encodeURIComponent(\n query\n )}&page=${page}&per_page=${perPage}`,\n withCredentials: true,\n method: 'GET'\n })\n )\n\nconst fetchList = (type: string, page: number, perPage: number): Observable<any> =>\n defer(() =>\n client.observable.request({\n url: `/addons/unsplash/photos?order_by=${type}&page=${page}&per_page=${perPage}`,\n withCredentials: true,\n method: 'GET'\n })\n )\n\nexport function fetchDownloadUrl(photo: UnsplashPhoto): Promise<string> {\n const downloadUrl = photo.links.download_location.replace(\n 'https://api.unsplash.com',\n '/addons/unsplash'\n )\n return client\n .request({\n url: downloadUrl,\n withCredentials: true,\n method: 'GET'\n })\n .then((result: { url: string }) => {\n return result.url\n })\n}\n\nexport const sanityClient = client\n\nexport const search = (\n query: SearchSubject,\n page: PageSubject,\n resultsPerPage: number\n): Observable<any> => {\n return concat(\n query.pipe(\n withLatestFrom(page),\n debounceTime(500),\n distinctUntilChanged(),\n switchMap(([q, p]) => {\n if (q) {\n return fetchSearch(q, p, resultsPerPage).pipe(\n distinctUntilChanged(),\n map(result => result.results)\n )\n }\n return fetchList('popular', p, resultsPerPage)\n })\n )\n )\n}\n","import { Stack } from '@sanity/ui'\nimport styled from 'styled-components'\n\nexport const Search = styled(Stack)`\n position: sticky;\n top: 0;\n z-index: 1;\n`\n\nexport const Scroller = styled.div`\n overflow-y: auto;\n max-height: 80vh;\n`\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { throttle, debounce };\n","import React from 'react'\nimport PhotoAlbum from 'react-photo-album'\nimport { flatten } from 'lodash'\nimport { BehaviorSubject, Subscription } from 'rxjs'\nimport { Asset, AssetDocument, SanityDocument, UnsplashPhoto } from '../types'\nimport Photo from './Photo'\nimport { fetchDownloadUrl, search } from '../datastores/unsplash'\nimport { Card, Dialog, Flex, Spinner, Stack, Text, TextInput } from '@sanity/ui'\nimport { Search } from './UnsplashAssetSource.styled'\nimport InfiniteScroll from 'react-infinite-scroll-component'\n\ntype Props = {\n onSelect: (assets: Asset[]) => void\n onClose: () => void\n selectedAssets?: AssetDocument[]\n selectionType: 'single' | 'multiple'\n document?: SanityDocument\n}\n\ntype State = {\n query: string\n searchResults: UnsplashPhoto[][]\n page: number\n isLoading: boolean\n cursor: number\n}\n\nconst RESULTS_PER_PAGE = 42\nconst PHOTO_SPACING = 2\nconst PHOTO_PADDING = 1 // offset the 1px border width\n\nexport default class UnsplashAssetSource extends React.Component<Props, State> {\n static defaultProps = {\n selectedAssets: undefined\n }\n\n state = {\n cursor: 0,\n query: '',\n page: 1,\n searchResults: [[]],\n isLoading: true\n }\n\n searchSubscription: Subscription | null = null\n\n searchSubject$ = new BehaviorSubject('')\n pageSubject$ = new BehaviorSubject(1)\n\n componentDidMount() {\n this.searchSubscription = search(\n this.searchSubject$,\n this.pageSubject$,\n RESULTS_PER_PAGE\n ).subscribe({\n next: (results: UnsplashPhoto[]) => {\n const searchResults = [...this.state.searchResults, results]\n this.setState({\n searchResults,\n isLoading: false\n })\n }\n })\n }\n\n componentWillUnmount() {\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe()\n }\n }\n\n handleSelect = (photo: UnsplashPhoto) => {\n this.setState({ isLoading: true })\n return fetchDownloadUrl(photo).then(downloadUrl => {\n const description = photo.description || undefined\n const asset: Asset = {\n kind: 'url',\n value: downloadUrl,\n assetDocumentProps: {\n source: {\n name: 'unsplash',\n id: photo.id,\n url: photo.links.html\n },\n description,\n creditLine: `${photo.user.name} by Unsplash`\n }\n }\n this.props.onSelect([asset])\n })\n }\n\n handleClose = () => {\n this.props.onClose()\n }\n\n handleSearchTermChanged = (event: React.ChangeEvent<HTMLInputElement>) => {\n const query = event.currentTarget.value\n this.setState({ query, page: 1, searchResults: [[]], isLoading: true, cursor: 0 })\n this.pageSubject$.next(1)\n this.searchSubject$.next(query)\n }\n\n handleScollerLoadMore = () => {\n const nextPage = this.state.page + 1\n this.setState({ page: nextPage, isLoading: true })\n this.pageSubject$.next(nextPage)\n this.searchSubject$.next(this.state.query)\n }\n\n handleKeyDown = (event: any) => {\n const { cursor } = this.state\n if ((event.keyCode === 38 || event.keyCode === 37) && cursor > 0) {\n this.setState(prevState => ({\n cursor: prevState.cursor - 1\n }))\n } else if (\n (event.keyCode === 40 || event.keyCode === 39) &&\n cursor < this.getPhotos().length - 1\n ) {\n this.setState(prevState => ({\n cursor: prevState.cursor + 1\n }))\n }\n }\n\n getPhotos() {\n return flatten(this.state.searchResults)\n }\n\n updateCursor = (photo: UnsplashPhoto) => {\n const index = this.getPhotos().findIndex((result: UnsplashPhoto) => result.id === photo.id)\n this.setState({ cursor: index })\n }\n\n renderImage = (props: any) => {\n const { photo, layout } = props\n const active =\n this.getPhotos().findIndex((result: UnsplashPhoto) => result.id === photo.data.id) ===\n this.state.cursor || false\n return (\n <Photo\n onClick={this.handleSelect.bind(photo.data)}\n onKeyDown={this.handleKeyDown}\n data={photo.data}\n width={layout.width}\n height={layout.height}\n active={active}\n onFocus={this.updateCursor}\n />\n )\n }\n\n render() {\n const { query, searchResults, isLoading } = this.state\n\n return (\n <Dialog\n id='unsplash-asset-source'\n header='Select image from Unsplash'\n onClose={this.handleClose}\n open\n width={4}\n >\n <Stack space={3} padding={4}>\n <Card>\n <Search space={3}>\n <Text size={1} weight='semibold'>\n Search Unsplash\n </Text>\n <TextInput\n label='Search Unsplash.com'\n placeholder='Topics or colors'\n value={query}\n onChange={this.handleSearchTermChanged}\n />\n </Search>\n </Card>\n {!isLoading && this.getPhotos().length === 0 && (\n <Text size={1} muted>\n No results found\n </Text>\n )}\n <InfiniteScroll\n dataLength={this.getPhotos().length} // This is important field to render the next data\n next={this.handleScollerLoadMore}\n // scrollableTarget=\"unsplash-scroller\"\n hasMore={true}\n scrollThreshold={0.99}\n height='60vh'\n loader={\n <Flex align='center' justify='center' padding={3}>\n <Spinner muted />\n </Flex>\n }\n endMessage={\n <Text size={1} muted>\n No more results\n </Text>\n }\n >\n {searchResults.filter((photos) => photos.length > 0).map((photos: UnsplashPhoto[], index) =>\n (\n <PhotoAlbum\n key={`gallery-${query || 'popular'}-${index}`}\n layout='rows'\n spacing={PHOTO_SPACING}\n padding={PHOTO_PADDING}\n targetRowHeight={(width) => width < 300 ? 150 : width < 600 ? 200 : 300}\n photos={photos.map((photo: UnsplashPhoto) => ({\n src: photo.urls.small,\n width: photo.width,\n height: photo.height,\n key: photo.id,\n data: photo\n }))}\n renderPhoto={this.renderImage}\n componentsProps={{ containerProps: { style: { marginBottom: `${PHOTO_SPACING}px` } } }}\n />\n ))}\n </InfiniteScroll>\n </Stack>\n </Dialog>\n )\n }\n}\n","import React from 'react'\n\nexport default function UnsplashIcon() {\n return (\n <svg role=\"img\" viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\">\n <title />\n <path d=\"M7.5 6.75V0h9v6.75h-9zm9 3.75H24V24H0V10.5h7.5v6.75h9V10.5z\" />\n </svg>\n )\n}\n","import Unsplash from './components/UnsplashAssetSource'\nimport Icon from './components/Icon'\n\nexport default {\n name: 'unsplash',\n title: 'Unsplash',\n component: Unsplash,\n icon: Icon\n}\n"],"names":["ratio","width","height","round","value","decimals","factor","Math","Number","EPSILON","RankingFunctionComparator","rank","a","b","MinHeap","comparator","heap","compare","n","greater","i","j","swap","temp","swim","k","k2","sink","push","element","pop","undefined","max","size","buildPrecedentsMap","graph","startNode","endNode","precedentsMap","visited","storedShortestPaths","pQueue","el","weight","id","shortestNode","shortestNodeId","neighboringNodes","neighbor","newTotalWeight","getPathFromPrecedentsMap","nodes","reverse","findShortestPath","findIdealNodeSearch","photos","targetRowHeight","containerWidth","minRatio","reduce","acc","photo","min","MAX_VALUE","getCommonHeight","row","spacing","padding","rowWidth","length","totalAspectRatio","cost","slice","commonHeight","makeGetNeighbors","layoutOptions","limitNodeSearch","rowConstraints","instrumentation","node","results","start","startOffset","_a","minPhotos","endOffset","_b","maxPhotos","Infinity","fullGraphSearch","currentCost","toString","computeRowsLayout","onStartLayoutComputation","getNeighbors","path","result","map","index","photoIndex","layout","photosCount","onFinishLayoutComputation","call","calcWidth","base","gaps","cssWidth","calculateSizesValue","match","srcSetAndSizes","srcSet","sizes","images","concat","src","sort","first","second","image","join","viewport","ceil","viewportWidth","defaultRenderPhoto","imageProps","alt","rest","_excluded","_jsx","PhotoRenderer","props","style","restImageProps","_objectWithoutPropertiesLoose","_excluded2","renderPhoto","onClick","imageStyle","display","boxSizing","aspectRatio","marginBottom","cursor","handleClick","event","title","className","defaultRenderRowContainer","rowContainerProps","children","RowContainerRenderer","rowIndex","rowsCount","renderRowContainer","restRowContainerProps","flexDirection","flexWrap","alignItems","justifyContent","RowsLayout","componentsProps","rowsLayout","key","computeShortestPath","pathLength","comp","queue","Object","keys","forEach","accumulatedWeight","reconstructShortestPath","prevNode","findShortestPathLengthN","targetColumnWidth","targetColumnHeight","cutOffHeight","buildColumnsModel","columnsGaps","columnsRatios","columnsModel","totalRatio","column","totalAdjustedGaps","columnWidth","computeColumnsModel","columns","Array","from","_","computeLayout","findIndex","columnModel","computeColumnsLayout","defaultRenderColumnContainer","columnContainerProps","columnIndex","columnsCount","ColumnContainerRenderer","renderColumnContainer","restColumnContainerProps","ColumnsLayout","columnsLayout","_Fragment","computeMasonryLayout","columnsCurrentTopPositions","shortestColumn","item","MasonryLayout","masonryLayout","defaultRenderContainer","containerProps","containerRef","ref","ContainerRenderer","renderContainer","restContainerProps","Component","document","useLayoutEffect","useEffect","useMounted","useState","mounted","setMounted","useContainerWidth","resizeObserverProvider","breakpoints","observerRef","useRef","setContainerWidth","useCallback","current","disconnect","updateWidth","newWidth","clientWidth","sortedBreakpoints","filter","x","floor","find","breakpoint","ResizeObserver","observe","useMemo","freeze","unwrap","unwrapParameter","selectResponsiveValue","values","resolveResponsiveParameter","parameter","resolveLayoutOptions","w","resolveComponentsProps","PhotoAlbum","defaultContainerWidth","includes","isArray","window","innerWidth","commonLayoutProps","styled","Card","__extends","React","Text","hasOwnProperty","propIsEnumerable","toObject","require$$0","_defineProperty","validate","assign","patch","Patch","_require","_require2","_require3","_require4","has","global","qs","required","parse","EventSource","https","http","util","events","ownKeys","_objectSpread","polyfilledEventSource","defaultOptions","defaults","Observable","toPromise","Transaction","transaction","_slicedToArray","module","middleware","applyMiddleware","hook","defaultValue","args","bailEarly","handler","isReactNative","navigator","product","prototype","timeout","opts","options","objectAssign","url","urlParse","normalizeTimeout","query","removeUndefined","method","body","toUpperCase","stringifyQueryString","obj","pairs","val","encodeURIComponent","time","connect","socket","delay","isNaN","target","validUrl","test","Error","s","m","h","d","y","fmtLong","fmtShort","plural","os","tty","require$$1","debug","Writable","assert","noop","buffer","pna","Duplex","require$$2","Buffer","require$$3","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","Stream","require$$4","prefinish","destroyImpl","Readable","StringDecoder","debugUtil","require$$5","Transform","PassThrough","ctor","inherits","xtend","through","zlib","formatHostname","hostname","replace","toLowerCase","parseNoProxyZone","zoneStr","zone","trim","zoneParts","split","zoneHost","zonePort","hasPort","indexOf","port","uriInNoProxy","uri","noProxy","protocol","noProxyList","some","noProxyZone","isMatchedAt","hostnameMatched","getProxyFromUri","process","env","NO_PROXY","no_proxy","HTTP_PROXY","http_proxy","HTTPS_PROXY","https_proxy","getHostFromUri","host","getHostHeaderWithPort","rewriteUriForProxy","reqOpts","proxy","headers","href","format","getProxyOptions","exports","tls","uriParts","defaultProxyHeaderWhiteList","defaultProxyHeaderExclusiveList","tunnelOption","tunnel","Boolean","proxyHeaderWhiteList","header","proxyHeaderExclusiveList","proxyHeaders","getAllowedProxyHeaders","constructProxyHost","isAllowed","tunnelFn","getTunnelFn","tunnelOptions","constructTunnelOptions","agent","getUriParts","tunnelFnName","constructTunnelFnName","part","uriProtocol","proxyProtocol","proxyHost","whiteList","set","proxyAuth","auth","ca","cert","passphrase","pfx","ciphers","rejectUnauthorized","secureOptions","secureProtocol","adapter","reduceResponse","res","reqUrl","statusCode","statusMessage","context","cb","bodyType","isStream","isBuffer","lengthHeader","bodySize","byteLength","aborted","callback","err","channels","abort","subscribe","lowerCaseHeaders","maxRedirects","tunneling","shouldEnable","injectedResponse","cbTimer","setImmediate","clearImmediate","applyAgent","username","password","unescape","authBase64","transport","getRequestTransport","finalOptions","request","response","tryDecompress","decompressResponse","resStream","data","rawBody","reduced","responseUrl","timedOut","once","getProgressStream","bodyStream","progress","pipe","end","bodyIsStream","progressStream","toStream","isHttpsRequest","transports","follow","isHttpsProxy","require","channelNames","middlehooks","createRequester","initMiddleware","loadedMiddleware","ware","name","processOptions","validateOptions","pubsub","middlewareReducer","ongoingRequest","unsubscribe","ctx","httpRequest","onResponse","returnValue","publish","reqErr","error","use","newMiddleware","onReturn","clone","self","implementation","observer","next","type","complete","isObject","serializeTypes","constructor","shouldSerialize","isPlainObject","JSON","stringify","contentType","shouldDecode","force","tryParse","Accept","message","normalizer","stage","percent","prog","percentage","total","loaded","transferred","lengthComputable","onHeaders","evt","normalize","contentLength","setLength","on","onRequest","ClientError","ServerError","stringifyBody","makeError","num","allowed","stream","retry","maxRetries","retryDelay","getRetryDelay","allowRetry","shouldRetry","defaultShouldRetry","onError","attemptNumber","newContext","setTimeout","attemptNum","pow","random","SENSITIVE_HEADERS","hasOwn","redactKeys","source","verbose","namespace","defaultLogger","debugIt","log","shortCircuit","enabled","requestId","redactSensitiveHeaders","reqId","isJson","tryFormat","parsed","existing","override","envSpecific","AssetsClient","DatasetsClient","ProjectsClient","UsersClient","AuthClient","getRequestOptions","defer","client","withLatestFrom","debounceTime","distinctUntilChanged","switchMap","Stack","BehaviorSubject","flatten","Dialog","TextInput","Flex","Spinner","Unsplash","Icon"],"mappings":"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"}
1
+ {"version":3,"file":"sanity-plugin-asset-source-unsplash.umd.js","sources":["../node_modules/react-photo-album/src/utils/ratio.ts","../node_modules/react-photo-album/src/utils/round.ts","../node_modules/react-photo-album/src/utils/heap.ts","../node_modules/react-photo-album/src/utils/dijkstra.ts","../node_modules/react-photo-album/src/layouts/rows.ts","../node_modules/react-photo-album/src/components/renderers/PhotoRenderer.tsx","../node_modules/react-photo-album/src/components/renderers/RowContainerRenderer.tsx","../node_modules/react-photo-album/src/components/layouts/RowsLayout.tsx","../node_modules/react-photo-album/src/utils/shortestPath.ts","../node_modules/react-photo-album/src/layouts/columns.ts","../node_modules/react-photo-album/src/components/renderers/ColumnContainerRenderer.tsx","../node_modules/react-photo-album/src/components/layouts/ColumnsLayout.tsx","../node_modules/react-photo-album/src/layouts/masonry.ts","../node_modules/react-photo-album/src/components/layouts/MasonryLayout.tsx","../node_modules/react-photo-album/src/components/renderers/ContainerRenderer.tsx","../node_modules/react-photo-album/src/hooks/useLayoutEffect.ts","../node_modules/react-photo-album/src/hooks/useMounted.ts","../node_modules/react-photo-album/src/hooks/useContainerWidth.ts","../node_modules/react-photo-album/src/utils/responsive.ts","../node_modules/react-photo-album/src/PhotoAlbum.tsx","../src/components/Photo.styled.tsx","../src/components/Photo.tsx","../node_modules/object-assign/index.js","../node_modules/@sanity/observable/operators/filter.js","../node_modules/@sanity/observable/operators/map.js","../node_modules/is-obj/index.js","../node_modules/deep-assign/index.js","../node_modules/@sanity/client/lib/util/getSelection.js","../node_modules/@sanity/client/lib/validators.js","../node_modules/@sanity/client/lib/data/patch.js","../node_modules/@sanity/client/lib/data/transaction.js","../node_modules/@sanity/client/lib/data/encodeQueryString.js","../node_modules/@sanity/observable/operators/reduce.js","../node_modules/@sanity/observable/lib/SanityObservableMinimal.js","../node_modules/@sanity/observable/minimal.js","../node_modules/requires-port/index.js","../node_modules/querystringify/index.js","../node_modules/url-parse/index.js","../node_modules/original/index.js","../node_modules/eventsource/lib/eventsource.js","../node_modules/@sanity/eventsource/node.js","../node_modules/@sanity/generate-help-url/index.js","../node_modules/@sanity/client/lib/util/pick.js","../node_modules/@sanity/client/lib/util/once.js","../node_modules/@sanity/client/lib/util/defaults.js","../node_modules/@sanity/client/lib/data/listen.js","../node_modules/@sanity/client/lib/data/dataMethods.js","../node_modules/@sanity/client/lib/datasets/datasetsClient.js","../node_modules/@sanity/client/lib/projects/projectsClient.js","../node_modules/@sanity/client/lib/http/queryString.js","../node_modules/@sanity/client/lib/assets/assetsClient.js","../node_modules/@sanity/client/lib/users/usersClient.js","../node_modules/@sanity/client/lib/auth/authClient.js","../node_modules/get-it/node_modules/nano-pubsub/index.js","../node_modules/get-it/src/util/middlewareReducer.js","../node_modules/get-it/src/middleware/defaultOptionsProcessor.js","../node_modules/get-it/src/middleware/defaultOptionsValidator.js","../node_modules/simple-concat/index.js","../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../node_modules/has-flag/index.js","../node_modules/supports-color/index.js","../node_modules/debug/src/node.js","../node_modules/debug/src/index.js","../node_modules/follow-redirects/debug.js","../node_modules/follow-redirects/index.js","../node_modules/@sanity/timed-out/index.js","../node_modules/is-stream/index.js","../node_modules/process-nextick-args/index.js","../node_modules/isarray/index.js","../node_modules/readable-stream/lib/internal/streams/stream.js","../node_modules/safe-buffer/index.js","../node_modules/core-util-is/lib/util.js","../node_modules/inherits/inherits_browser.js","../node_modules/inherits/inherits.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/util-deprecate/node.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/readable.js","../node_modules/from2/index.js","../node_modules/p-is-promise/index.js","../node_modules/into-stream/index.js","../node_modules/xtend/immutable.js","../node_modules/through2/through2.js","../node_modules/speedometer/index.js","../node_modules/progress-stream/index.js","../node_modules/mimic-response/index.js","../node_modules/decompress-response/index.js","../node_modules/get-it/src/request/node/proxy.js","../node_modules/tunnel-agent/index.js","../node_modules/get-it/src/request/node/tunnel.js","../node_modules/get-it/src/request/node-request.js","../node_modules/get-it/src/request/index.js","../node_modules/get-it/src/index.js","../node_modules/get-it/index.js","../node_modules/get-it/src/util/global.js","../node_modules/get-it/src/middleware/observable.js","../node_modules/isobject/index.js","../node_modules/is-plain-object/index.js","../node_modules/get-it/src/middleware/jsonRequest.js","../node_modules/get-it/src/middleware/jsonResponse.js","../node_modules/get-it/src/middleware/progress/node-progress.js","../node_modules/get-it/src/middleware/progress/index.js","../node_modules/make-error/index.js","../node_modules/@sanity/client/lib/http/errors.js","../node_modules/is-retry-allowed/index.js","../node_modules/get-it/src/util/node-shouldRetry.js","../node_modules/get-it/src/middleware/retry.js","../node_modules/get-it/node_modules/ms/index.js","../node_modules/get-it/node_modules/debug/src/debug.js","../node_modules/get-it/node_modules/debug/src/browser.js","../node_modules/get-it/node_modules/debug/src/node.js","../node_modules/get-it/node_modules/debug/src/index.js","../node_modules/get-it/src/middleware/debug.js","../node_modules/get-it/src/middleware/headers.js","../node_modules/@sanity/client/lib/http/nodeMiddleware.js","../node_modules/@sanity/client/lib/http/request.js","../node_modules/@sanity/client/lib/http/requestOptions.js","../node_modules/@sanity/client/lib/warnings.js","../node_modules/@sanity/client/lib/config.js","../node_modules/@sanity/client/lib/sanityClient.js","../src/datastores/unsplash.ts","../src/components/UnsplashAssetSource.styled.tsx","../node_modules/react-infinite-scroll-component/node_modules/tslib/tslib.es6.js","../node_modules/react-infinite-scroll-component/node_modules/throttle-debounce/dist/index.esm.js","../src/components/UnsplashAssetSource.tsx","../src/components/Icon.tsx","../src/index.ts"],"sourcesContent":["const ratio = ({ width, height }: { width: number; height: number }) => width / height;\n\nexport default ratio;\n","// round a value to a specified number of decimal places\nconst round = (value: number, decimals = 0) => {\n const factor = 10 ** decimals;\n return Math.round((value + Number.EPSILON) * factor) / factor;\n};\n\nexport default round;\n","type Comparator<T> = (a: T, b: T) => number;\n\nexport const RankingFunctionComparator =\n <T>(rank: (element: T) => number) =>\n (a: T, b: T) =>\n rank(b) - rank(a);\n\nexport const NumericComparator = RankingFunctionComparator<number>((x: number) => x);\n\n/**\n * Min heap implementation.\n * Comparator function is expected to return a positive number, zero or a negative number if a > b, a === b or a < b.\n */\nconst MinHeap = <T>(comparator: Comparator<T>) => {\n // heap-ordered complete binary tree in heap[1..n] with heap[0] unused\n const heap: T[] = [];\n const compare = comparator;\n let n = 0;\n\n // comparator function\n const greater = (i: number, j: number) => compare(heap[i], heap[j]) < 0;\n\n // swap two elements\n const swap = (i: number, j: number) => {\n const temp = heap[i];\n heap[i] = heap[j];\n heap[j] = temp;\n };\n\n // bubble k-th element up\n const swim = (k: number) => {\n let k2 = k >> 1;\n while (k > 1 && greater(k2, k)) {\n swap(k2, k);\n k = k2;\n k2 = k >> 1;\n }\n };\n\n // bubble k-th element down\n const sink = (k: number) => {\n let j = k << 1;\n while (j <= n) {\n if (j < n && greater(j, j + 1)) j++;\n if (!greater(k, j)) break;\n swap(k, j);\n k = j;\n j = k << 1;\n }\n };\n\n return {\n /** add element to the heap */\n push: (element: T) => {\n n += 1;\n heap[n] = element;\n swim(n);\n },\n\n /** remove the first element from the heap */\n pop: (): T | undefined => {\n if (n === 0) return undefined;\n swap(1, n);\n n -= 1;\n const max = heap.pop();\n sink(1);\n return max;\n },\n\n /** heap size */\n size: (): number => n,\n };\n};\n\nexport default MinHeap;\n","import MinHeap, { RankingFunctionComparator } from \"./heap\";\n\ntype Element = string;\n\ntype HeapElement = {\n id: string;\n weight: number;\n};\n\ntype ElementToElementMap = {\n [key: Element]: Element;\n};\n\ntype ElementToNumberMap = {\n [key: Element]: number;\n};\n\ntype GraphFunction = (node: string) => { [key: string]: number };\n\nconst buildPrecedentsMap = (graph: GraphFunction, startNode: Element, endNode: Element) => {\n // store the previous vertex of the shortest path of arrival\n const precedentsMap: ElementToElementMap = {};\n\n // store nodes already visited\n const visited: ElementToNumberMap = {};\n\n // store/update only the shortest edge weights measured\n // the purpose of this is object is constant time lookup vs. binary heap lookup O(n)\n const storedShortestPaths: ElementToNumberMap = {};\n storedShortestPaths[startNode] = 0;\n\n // priority queue of ALL nodes and storedShortestPaths\n // don't bother to delete them because it's faster to look at visited?\n const pQueue = MinHeap<HeapElement>(RankingFunctionComparator((el: HeapElement): number => el.weight));\n pQueue.push({ id: startNode, weight: 0 });\n\n let shortestNode;\n // pop a node with the shortest total weight from start node\n while ((shortestNode = pQueue.pop()) !== undefined) {\n const shortestNodeId = shortestNode.id;\n\n // if already visited, continue\n if (visited[shortestNodeId]) continue;\n\n // visit neighboring nodes\n const neighboringNodes = graph(shortestNodeId);\n visited[shortestNodeId] = 1;\n\n // meet the neighbors, looking for shorter paths\n for (const neighbor in neighboringNodes) {\n // weight of path from startNode to this neighbor\n const newTotalWeight = shortestNode.weight + neighboringNodes[neighbor];\n\n // if this is the first time meeting the neighbor OR if the new total weight from\n // start node to this neighbor node is greater than the old weight path, update it,\n // and update precedent node\n //\n // introducing deterministic tiebreaker to guard against edge cases where path weight difference can be\n // as low as 1e-12, which leads to visual flickering during subsequent re-renders as layout continues to\n // shift back and forth\n if (\n storedShortestPaths[neighbor] === undefined ||\n (storedShortestPaths[neighbor] > newTotalWeight &&\n (storedShortestPaths[neighbor] / newTotalWeight > 1.005 ||\n precedentsMap[neighbor] < shortestNodeId))\n ) {\n storedShortestPaths[neighbor] = newTotalWeight;\n pQueue.push({ id: neighbor, weight: newTotalWeight });\n precedentsMap[neighbor] = shortestNodeId;\n }\n }\n }\n\n if (typeof storedShortestPaths[endNode] === \"undefined\") {\n // encountered impossible layout\n return undefined;\n }\n\n return precedentsMap;\n};\n\n// build the route from precedent node vertices\nconst getPathFromPrecedentsMap = (precedentsMap: ElementToElementMap, endNode: Element) => {\n const nodes = [];\n let n = endNode;\n while (n) {\n nodes.push(n);\n n = precedentsMap[n];\n }\n return nodes.reverse();\n};\n\n// build the precedentsMap and find the shortest path from it\nexport const findShortestPath = (graph: GraphFunction, startNode: Element, endNode: Element) => {\n const precedentsMap = buildPrecedentsMap(graph, startNode, endNode);\n return precedentsMap !== undefined ? getPathFromPrecedentsMap(precedentsMap, endNode) : undefined;\n};\n","import ratio from \"../utils/ratio\";\nimport round from \"../utils/round\";\nimport { findShortestPath } from \"../utils/dijkstra\";\nimport { Instrumentation, Photo, PhotoLayout, RowConstraints, RowsLayoutOptions } from \"../types\";\n\n// guesstimate how many neighboring nodes should be searched based on\n// the aspect columnRatio of the container with images and minimal aspect columnRatio of all photos\n// as the maximum amount of photos per row, plus some nodes\nconst findIdealNodeSearch = ({\n photos,\n targetRowHeight,\n containerWidth,\n}: {\n photos: Array<Photo>;\n targetRowHeight: number;\n containerWidth: number;\n}): number => {\n const minRatio = photos.reduce((acc, photo) => Math.min(ratio(photo), acc), Number.MAX_VALUE);\n return round(containerWidth / targetRowHeight / minRatio) + 2;\n};\n\n// compute sizes by creating a graph with rows as edges and photo to break on as nodes\n// to calculate the single best layout using Dijkstra's findShortestPat\n\n// get the height for a set of photos in a potential row\nconst getCommonHeight = (row: Array<Photo>, containerWidth: number, spacing: number, padding: number) => {\n const rowWidth = containerWidth - (row.length - 1) * spacing - 2 * padding * row.length;\n const totalAspectRatio = row.reduce((acc, photo) => acc + ratio(photo), 0);\n return rowWidth / totalAspectRatio;\n};\n\n// calculate the cost of breaking at this node (edge weight)\nconst cost = (\n photos: Array<Photo>,\n i: number,\n j: number,\n width: number,\n targetRowHeight: number,\n spacing: number,\n padding: number\n) => {\n const row = photos.slice(i, j);\n const commonHeight = getCommonHeight(row, width, spacing, padding);\n return commonHeight > 0 ? (commonHeight - targetRowHeight) ** 2 * row.length : undefined;\n};\n\n// return function that gets the neighboring nodes of node and returns costs\nconst makeGetNeighbors =\n ({\n photos,\n layoutOptions,\n targetRowHeight,\n limitNodeSearch,\n rowConstraints,\n instrumentation,\n }: {\n photos: Array<Photo>;\n layoutOptions: RowsLayoutOptions;\n targetRowHeight: number;\n limitNodeSearch: number;\n rowConstraints?: RowConstraints;\n instrumentation?: Instrumentation;\n }) =>\n (node: string) => {\n const { containerWidth, spacing, padding } = layoutOptions;\n const results: { [key: string]: number } = {};\n const start = +node;\n results[+start] = 0;\n const startOffset = rowConstraints?.minPhotos ?? 1;\n const endOffset = Math.min(limitNodeSearch, rowConstraints?.maxPhotos ?? Infinity);\n for (let i = start + startOffset; i < photos.length + 1; i += 1) {\n if (i - start > endOffset && !instrumentation?.fullGraphSearch) break;\n const currentCost = cost(photos, start, i, containerWidth, targetRowHeight, spacing, padding);\n if (currentCost === undefined) break;\n results[i.toString()] = currentCost;\n }\n return results;\n };\n\ntype RowsLayoutModel<T extends Photo = Photo> = { photo: T; layout: PhotoLayout }[][] | undefined;\n\nconst computeRowsLayout = <T extends Photo = Photo>({\n photos,\n layoutOptions,\n instrumentation,\n}: {\n photos: T[];\n layoutOptions: RowsLayoutOptions;\n instrumentation?: Instrumentation;\n}): RowsLayoutModel<T> => {\n const { spacing, padding, containerWidth, targetRowHeight, rowConstraints } = layoutOptions;\n\n instrumentation?.onStartLayoutComputation?.();\n\n const limitNodeSearch = findIdealNodeSearch({ photos, containerWidth, targetRowHeight });\n\n const getNeighbors = makeGetNeighbors({\n photos,\n layoutOptions,\n targetRowHeight,\n limitNodeSearch,\n rowConstraints,\n instrumentation,\n });\n\n const path = findShortestPath(getNeighbors, \"0\", `${photos.length}`);\n\n // impossible layout\n if (path === undefined) return undefined;\n\n const result = [];\n\n for (let i = 1; i < path.length; i += 1) {\n const row = photos.map((photo, index) => ({ photo, index })).slice(+path[i - 1], +path[i]);\n const height = getCommonHeight(\n row.map(({ photo }) => photo),\n containerWidth,\n spacing,\n padding\n );\n result.push(\n row.map(({ photo, index }, photoIndex) => ({\n photo,\n layout: {\n height,\n width: height * ratio(photo),\n index,\n photoIndex,\n photosCount: row.length,\n },\n }))\n );\n }\n\n instrumentation?.onFinishLayoutComputation?.(result);\n\n return result;\n};\n\nexport default computeRowsLayout;\n","import * as React from \"react\";\nimport { CSSProperties, HTMLAttributes, MouseEvent } from \"react\";\n\nimport round from \"../../utils/round\";\nimport { LayoutOptions, Photo, PhotoLayout, PhotoProps, RenderPhoto } from \"../../types\";\n\nconst calcWidth = (\n base: string,\n { width, photosCount }: PhotoLayout,\n { spacing, padding, containerWidth }: LayoutOptions\n) => {\n const gaps = spacing * (photosCount - 1) + 2 * padding * photosCount;\n return `calc((${base} - ${gaps}px) / ${round((containerWidth - gaps) / width, 5)})`;\n};\n\nconst cssWidth = (layout: PhotoLayout, layoutOptions: LayoutOptions) => {\n if (layoutOptions.layout !== \"rows\") {\n return `calc(100% - ${2 * layoutOptions.padding}px)`;\n }\n return calcWidth(\"100%\", layout, layoutOptions);\n};\n\nconst calculateSizesValue = (size: string, layout: PhotoLayout, layoutOptions: LayoutOptions) =>\n calcWidth(size.match(/calc\\((.*)\\)/)?.[1] ?? size, layout, layoutOptions);\n\nconst srcSetAndSizes = <T extends Photo = Photo>(photo: T, layout: PhotoLayout, layoutOptions: LayoutOptions) => {\n let srcSet, sizes;\n\n if (photo.images && photo.images.length > 0) {\n srcSet = photo.images\n .concat([\n {\n src: photo.src,\n width: photo.width,\n height: photo.height,\n },\n ])\n .sort((first, second) => first.width - second.width)\n .map((image) => `${image.src} ${image.width}w`)\n .join(\", \");\n }\n\n if (layoutOptions.sizes) {\n sizes = (layoutOptions.sizes.sizes || [])\n .map(({ viewport, size }) => `${viewport} ${calculateSizesValue(size, layout, layoutOptions)}`)\n .concat(calculateSizesValue(layoutOptions.sizes.size, layout, layoutOptions))\n .join(\", \");\n } else {\n sizes = `${Math.ceil((layout.width / (layoutOptions.viewportWidth || layoutOptions.containerWidth)) * 100)}vw`;\n }\n\n return { srcSet, sizes };\n};\n\nconst defaultRenderPhoto: RenderPhoto = ({ imageProps }) => {\n const { src, alt, srcSet, sizes, ...rest } = imageProps;\n return <img src={src} alt={alt} {...(srcSet ? { srcSet, sizes } : null)} {...rest} />;\n};\n\ntype PhotoRendererProps<T extends Photo = Photo> = Omit<PhotoProps<T>, \"imageProps\"> & {\n imageProps?: HTMLAttributes<HTMLImageElement>;\n} & { renderPhoto?: RenderPhoto<T> };\n\nconst PhotoRenderer = <T extends Photo = Photo>(props: PhotoRendererProps<T>) => {\n const { photo, layout, layoutOptions, imageProps: { style, ...restImageProps } = {}, renderPhoto } = props;\n const { onClick } = layoutOptions;\n\n const imageStyle = {\n display: \"block\",\n boxSizing: \"content-box\",\n width: cssWidth(layout, layoutOptions),\n height: \"auto\",\n aspectRatio: `${photo.width} / ${photo.height}`,\n ...(layoutOptions.padding ? { padding: `${layoutOptions.padding}px` } : null),\n ...((layoutOptions.layout === \"columns\" || layoutOptions.layout === \"masonry\") &&\n layout.photoIndex < layout.photosCount - 1\n ? { marginBottom: `${layoutOptions.spacing}px` }\n : null),\n ...(onClick ? { cursor: \"pointer\" } : null),\n ...style,\n } as CSSProperties;\n\n const handleClick = onClick\n ? (event: MouseEvent) => {\n onClick(event, photo, layout.index);\n }\n : undefined;\n\n const imageProps = {\n src: photo.src,\n alt: photo.alt ?? \"\",\n title: photo.title,\n onClick: handleClick,\n style: imageStyle,\n className: \"react-photo-album--photo\",\n ...srcSetAndSizes(photo, layout, layoutOptions),\n ...restImageProps,\n };\n\n return (renderPhoto ?? defaultRenderPhoto)({ photo, layout, layoutOptions, imageProps });\n};\n\nexport default PhotoRenderer;\n","import * as React from \"react\";\nimport { CSSProperties, PropsWithChildren } from \"react\";\n\nimport { RenderRowContainer, RowContainerProps } from \"../../types\";\n\nconst defaultRenderRowContainer: RenderRowContainer = ({ rowContainerProps, children }) => (\n <div {...rowContainerProps}>{children}</div>\n);\n\ntype RowContainerRendererProps = PropsWithChildren<\n Omit<RowContainerProps, \"rowContainerProps\"> & Pick<Partial<RowContainerProps>, \"rowContainerProps\">\n> & {\n renderRowContainer?: RenderRowContainer;\n};\n\nconst RowContainerRenderer = (props: RowContainerRendererProps) => {\n const {\n layoutOptions,\n rowIndex,\n rowsCount,\n renderRowContainer,\n rowContainerProps: { style, ...restRowContainerProps } = {},\n children,\n } = props;\n\n const rowContainerProps = {\n className: \"react-photo-album--row\",\n style: {\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: \"nowrap\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n ...(rowIndex < rowsCount - 1 ? { marginBottom: `${layoutOptions.spacing}px` } : null),\n ...style,\n } as CSSProperties,\n ...restRowContainerProps,\n };\n\n return (renderRowContainer ?? defaultRenderRowContainer)({\n layoutOptions,\n rowIndex,\n rowsCount,\n rowContainerProps,\n children,\n });\n};\n\nexport default RowContainerRenderer;\n","import * as React from \"react\";\n\nimport computeRowsLayout from \"../../layouts/rows\";\nimport PhotoRenderer from \"../renderers/PhotoRenderer\";\nimport RowContainerRenderer from \"../renderers/RowContainerRenderer\";\nimport {\n ComponentsProps,\n Instrumentation,\n Photo,\n RenderPhoto,\n RenderRowContainer,\n RowsLayoutOptions,\n} from \"../../types\";\n\ntype RowsLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: RowsLayoutOptions;\n renderPhoto?: RenderPhoto<T>;\n renderRowContainer?: RenderRowContainer;\n componentsProps?: ComponentsProps;\n instrumentation?: Instrumentation;\n};\n\nconst RowsLayout = <T extends Photo = Photo>(props: RowsLayoutProps<T>): JSX.Element => {\n const { photos, layoutOptions, renderPhoto, renderRowContainer, componentsProps, instrumentation } = props;\n\n const rowsLayout = computeRowsLayout({ photos, layoutOptions, instrumentation });\n\n if (rowsLayout === undefined) return <></>;\n\n return (\n <>\n {rowsLayout.map((row, rowIndex) => (\n <RowContainerRenderer\n key={`row-${rowIndex}`}\n layoutOptions={layoutOptions}\n rowIndex={rowIndex}\n rowsCount={rowsLayout.length}\n renderRowContainer={renderRowContainer}\n rowContainerProps={componentsProps?.rowContainerProps}\n >\n {row.map(({ photo, layout }) => (\n <PhotoRenderer\n key={photo.key || photo.src}\n photo={photo}\n layout={layout}\n layoutOptions={layoutOptions}\n renderPhoto={renderPhoto}\n imageProps={componentsProps?.imageProps}\n />\n ))}\n </RowContainerRenderer>\n ))}\n </>\n );\n};\n\nexport default RowsLayout;\n","type GraphFunction = (node: number) => Array<{ neighbor: number; weight: number }>;\n\ntype Comp = number[][][];\n\nconst computeShortestPath = (graph: GraphFunction, pathLength: number, startNode: number, endNode: number) => {\n // computation matrix: node id x path length x [previous node id, path weight]\n // i.e. element in comp[X][k] represents previous node and path weight of the best path of length k\n // from the starting node to node X\n const comp: Comp = [];\n\n // sorted set of neighboring nodes that need to be visited\n // i.e. queue[k][X] represents node X with partial path of length k\n const queue: { [key: number]: { [key: number]: object | null } } = { 0: { [startNode]: null } };\n\n for (let length = 0; length < pathLength; length += 1) {\n Object.keys(queue[length]).forEach((n) => {\n const node = +n;\n const accumulatedWeight = length > 0 && comp[node][length] ? comp[node][length][1] : 0;\n\n graph(node).forEach(({ neighbor, weight }) => {\n if (!comp[neighbor]) {\n comp[neighbor] = [];\n }\n\n // introducing deterministic tiebreaker to guard against edge cases where path weight difference can be\n // as low as 1e-12, which leads to visual flickering during subsequent re-renders as layout continues to\n // shift back and forth\n const newTotalWeight = accumulatedWeight + weight;\n if (\n !comp[neighbor][length + 1] ||\n (comp[neighbor][length + 1][1] > newTotalWeight &&\n (comp[neighbor][length + 1][1] / newTotalWeight > 1.0001 ||\n node < comp[neighbor][length + 1][0]))\n ) {\n comp[neighbor][length + 1] = [node, newTotalWeight];\n }\n\n if (length < pathLength - 1 && neighbor !== endNode) {\n if (!queue[length + 1]) {\n queue[length + 1] = {};\n }\n queue[length + 1][neighbor] = null;\n }\n });\n });\n }\n return comp;\n};\n\nconst reconstructShortestPath = (comp: Comp, pathLength: number, endNode: number) => {\n const path = [endNode];\n for (let node = endNode, length = pathLength; length > 0; length -= 1) {\n const [prevNode] = comp[node][length];\n node = prevNode;\n path.push(node);\n }\n return path.reverse();\n};\n\n// Find the shortest path of length N in a weighted directed graph using dynamic programming algorithm.\nconst findShortestPathLengthN = (graph: GraphFunction, pathLength: number, startNode: number, endNode: number) =>\n reconstructShortestPath(computeShortestPath(graph, pathLength, startNode, endNode), pathLength, endNode);\n\nexport default findShortestPathLengthN;\n","import ratio from \"../utils/ratio\";\nimport findShortestPathLengthN from \"../utils/shortestPath\";\nimport { ColumnsLayoutOptions, Instrumentation, Photo, PhotoLayout } from \"../types\";\n\n// return function that gets the neighboring nodes of node and returns costs\nconst makeGetNeighbors =\n ({\n photos,\n spacing,\n padding,\n targetColumnWidth,\n targetColumnHeight,\n instrumentation,\n }: {\n photos: Array<Photo>;\n spacing: number;\n padding: number;\n targetColumnWidth: number;\n targetColumnHeight: number;\n instrumentation?: Instrumentation;\n }) =>\n (node: number): Array<{ neighbor: number; weight: number }> => {\n const results = [];\n const cutOffHeight = targetColumnHeight * 1.5;\n let height = targetColumnWidth / ratio(photos[node]) + 2 * padding;\n for (let i = node + 1; i < photos.length + 1; i += 1) {\n results.push({ neighbor: i, weight: (targetColumnHeight - height) ** 2 });\n if ((height > cutOffHeight && !instrumentation?.fullGraphSearch) || i === photos.length) {\n break;\n }\n height += targetColumnWidth / ratio(photos[i]) + spacing + 2 * padding;\n }\n return results;\n };\n\nconst buildColumnsModel = <T extends Photo = Photo>({\n path,\n photos,\n containerWidth,\n columnsGaps,\n columnsRatios,\n spacing,\n padding,\n}: {\n path: number[];\n photos: T[];\n containerWidth: number;\n columnsGaps: number[];\n columnsRatios: number[];\n spacing: number;\n padding: number;\n}) => {\n const columnsModel = [];\n\n const totalRatio = columnsRatios.reduce((acc, ratio) => acc + ratio, 0);\n\n for (let i = 0; i < path.length - 1; i += 1) {\n const column = photos.map((photo, index) => ({ photo, index })).slice(path[i], path[i + 1]);\n\n const totalAdjustedGaps = columnsRatios.reduce(\n (acc, ratio, index) => acc + (columnsGaps[i] - columnsGaps[index]) * ratio,\n 0\n );\n\n const columnWidth =\n ((containerWidth - (path.length - 2) * spacing - 2 * (path.length - 1) * padding - totalAdjustedGaps) *\n columnsRatios[i]) /\n totalRatio;\n\n columnsModel.push(\n column.map(({ photo, index }, photoIndex) => ({\n photo,\n layout: {\n width: columnWidth,\n height: columnWidth / ratio(photo),\n index,\n photoIndex,\n photosCount: column.length,\n },\n }))\n );\n }\n\n return columnsModel;\n};\n\nconst computeColumnsModel = <T extends Photo = Photo>({\n photos,\n layoutOptions,\n targetColumnWidth,\n instrumentation,\n}: {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n targetColumnWidth: number;\n instrumentation?: Instrumentation;\n}) => {\n const { columns, spacing, padding, containerWidth } = layoutOptions;\n\n const columnsGaps: number[] = [];\n const columnsRatios: number[] = [];\n\n // fill first available columns if there are not enough photos\n if (photos.length <= columns) {\n for (let index = 0; index < photos.length; index += 1) {\n columnsGaps[index] = 2 * padding;\n columnsRatios[index] = ratio(photos[index]);\n }\n\n const columnsModel = buildColumnsModel({\n path: Array.from({ length: photos.length + 1 }).map((_, index) => index),\n photos,\n columnsRatios,\n columnsGaps,\n containerWidth,\n spacing,\n padding,\n });\n\n return { columnsGaps, columnsRatios, columnsModel };\n }\n\n // target column height including spacing and padding\n const targetColumnHeight =\n (photos.reduce((acc, photo) => acc + targetColumnWidth / ratio(photo), 0) +\n spacing * (photos.length - columns) +\n 2 * padding * photos.length) /\n columns;\n\n const getNeighbors = makeGetNeighbors({\n photos,\n targetColumnWidth,\n targetColumnHeight,\n spacing,\n padding,\n instrumentation,\n });\n\n const path = findShortestPathLengthN(getNeighbors, columns, 0, photos.length).map((node) => +node);\n\n for (let i = 0; i < path.length - 1; i += 1) {\n const column = photos.slice(path[i], path[i + 1]);\n columnsGaps[i] = spacing * (column.length - 1) + 2 * padding * column.length;\n columnsRatios[i] = 1 / column.reduce((acc, photo) => acc + 1 / ratio(photo), 0);\n }\n\n const columnsModel = buildColumnsModel({\n path,\n photos,\n columnsRatios,\n columnsGaps,\n containerWidth,\n spacing,\n padding,\n });\n\n return { columnsGaps, columnsRatios, columnsModel };\n};\n\ntype ComputeColumnsLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n instrumentation?: Instrumentation;\n};\n\ntype ColumnsLayoutModel<T extends Photo = Photo> =\n | {\n columnsModel: { photo: T; layout: PhotoLayout }[][];\n columnsRatios: number[];\n columnsGaps: number[];\n }\n | undefined;\n\nconst computeLayout = <T extends Photo = Photo>(props: ComputeColumnsLayoutProps<T>): ColumnsLayoutModel<T> => {\n const { photos, layoutOptions, instrumentation } = props;\n const { columns, spacing, padding, containerWidth } = layoutOptions;\n\n const targetColumnWidth = (containerWidth - spacing * (columns - 1) - 2 * padding * columns) / columns;\n\n const { columnsGaps, columnsRatios, columnsModel } = computeColumnsModel({\n photos,\n layoutOptions,\n targetColumnWidth,\n instrumentation,\n });\n\n if (\n columnsModel.findIndex(\n (columnModel) => columnModel.findIndex(({ layout: { width, height } }) => width < 0 || height < 0) >= 0\n ) >= 0\n ) {\n // encountered impossible layout\n if (columns > 1) {\n // will try to find a solution recursively with fewer columns\n return computeLayout({\n photos,\n layoutOptions: {\n ...layoutOptions,\n columns: columns - 1,\n },\n instrumentation,\n });\n } else {\n // bailing out\n return undefined;\n }\n }\n\n return { columnsModel, columnsGaps, columnsRatios };\n};\n\nconst computeColumnsLayout = <T extends Photo = Photo>({\n photos,\n layoutOptions,\n instrumentation,\n}: ComputeColumnsLayoutProps<T>): ColumnsLayoutModel<T> => {\n instrumentation?.onStartLayoutComputation?.();\n\n const result = computeLayout({\n photos,\n layoutOptions: {\n ...layoutOptions,\n columns: Math.min(layoutOptions.columns, photos.length),\n },\n instrumentation,\n });\n\n instrumentation?.onFinishLayoutComputation?.(result);\n\n return result;\n};\n\nexport default computeColumnsLayout;\n","import * as React from \"react\";\nimport { CSSProperties, PropsWithChildren } from \"react\";\n\nimport round from \"../../utils/round\";\nimport { ColumnContainerProps, RenderColumnContainer } from \"../../types\";\n\nconst defaultRenderColumnContainer: RenderColumnContainer = ({ columnContainerProps, children }) => (\n <div {...columnContainerProps}>{children}</div>\n);\n\nconst cssWidth = (props: ColumnContainerRendererProps) => {\n const { layoutOptions, columnIndex, columnsCount, columnsGaps, columnsRatios } = props;\n const { layout, spacing, padding } = layoutOptions;\n\n if (layout === \"masonry\" || !columnsGaps || !columnsRatios) {\n return `calc((100% - ${spacing * (columnsCount - 1)}px) / ${columnsCount})`;\n }\n\n const totalRatio = columnsRatios.reduce((acc, ratio) => acc + ratio, 0);\n const totalAdjustedGaps = columnsRatios.reduce(\n (acc, ratio, index) => acc + (columnsGaps[columnIndex] - columnsGaps[index]) * ratio,\n 0\n );\n\n return `calc((100% - ${round(\n (columnsCount - 1) * spacing + 2 * columnsCount * padding + totalAdjustedGaps,\n 3\n )}px) * ${round(columnsRatios[columnIndex] / totalRatio, 5)} + ${2 * padding}px)`;\n};\n\ntype ColumnContainerRendererProps = PropsWithChildren<\n Omit<ColumnContainerProps, \"columnContainerProps\"> & Pick<Partial<ColumnContainerProps>, \"columnContainerProps\">\n> & {\n renderColumnContainer?: RenderColumnContainer;\n};\n\nconst ColumnContainerRenderer = (props: ColumnContainerRendererProps) => {\n const {\n layoutOptions,\n renderColumnContainer,\n children,\n columnContainerProps: { style, ...restColumnContainerProps } = {},\n ...rest\n } = props;\n\n const columnContainerProps = {\n className: \"react-photo-album--column\",\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n flexWrap: \"nowrap\",\n alignItems: \"flex-start\",\n width: cssWidth(props),\n justifyContent: layoutOptions.layout === \"columns\" ? \"space-between\" : \"flex-start\",\n ...style,\n } as CSSProperties,\n ...restColumnContainerProps,\n };\n\n return (renderColumnContainer ?? defaultRenderColumnContainer)({\n layoutOptions,\n columnContainerProps,\n children,\n ...rest,\n });\n};\n\nexport default ColumnContainerRenderer;\n","import * as React from \"react\";\n\nimport computeColumnsLayout from \"../../layouts/columns\";\nimport PhotoRenderer from \"../renderers/PhotoRenderer\";\nimport ColumnContainerRenderer from \"../renderers/ColumnContainerRenderer\";\nimport {\n ColumnsLayoutOptions,\n ComponentsProps,\n Instrumentation,\n Photo,\n RenderColumnContainer,\n RenderPhoto,\n} from \"../../types\";\n\ntype ColumnsLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n renderPhoto?: RenderPhoto<T>;\n renderColumnContainer?: RenderColumnContainer;\n componentsProps?: ComponentsProps;\n instrumentation?: Instrumentation;\n};\n\nconst ColumnsLayout = <T extends Photo = Photo>(props: ColumnsLayoutProps<T>): JSX.Element => {\n const { photos, layoutOptions, renderPhoto, renderColumnContainer, componentsProps, instrumentation } = props;\n\n const columnsLayout = computeColumnsLayout({ photos, layoutOptions, instrumentation });\n\n if (columnsLayout === undefined) return <></>;\n\n const { columnsModel, columnsRatios, columnsGaps } = columnsLayout;\n\n return (\n <>\n {columnsModel.map((column, columnIndex) => (\n <ColumnContainerRenderer\n key={`column-${columnIndex}`}\n layoutOptions={layoutOptions}\n columnIndex={columnIndex}\n columnsCount={columnsModel.length}\n columnsGaps={columnsGaps}\n columnsRatios={columnsRatios}\n renderColumnContainer={renderColumnContainer}\n columnContainerProps={componentsProps?.columnContainerProps}\n >\n {column.map(({ photo, layout }) => (\n <PhotoRenderer\n key={photo.key || photo.src}\n photo={photo}\n layout={layout}\n layoutOptions={layoutOptions}\n renderPhoto={renderPhoto}\n imageProps={componentsProps?.imageProps}\n />\n ))}\n </ColumnContainerRenderer>\n ))}\n </>\n );\n};\n\nexport default ColumnsLayout;\n","import ratio from \"../utils/ratio\";\nimport { ColumnsLayoutOptions, Instrumentation, Photo, PhotoLayout } from \"../types\";\n\ntype ComputeMasonryLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n instrumentation?: Instrumentation;\n};\n\ntype MasonryColumnsModel<T extends Photo = Photo> = { photo: T; layout: PhotoLayout }[][] | undefined;\n\nconst computeMasonryLayout = <T extends Photo = Photo>(props: ComputeMasonryLayoutProps<T>): MasonryColumnsModel<T> => {\n const { photos, layoutOptions, instrumentation } = props;\n const { spacing, padding, containerWidth } = layoutOptions;\n\n const columns = Math.min(layoutOptions.columns, photos.length);\n\n instrumentation?.onStartLayoutComputation?.();\n\n // calculate column width based on total width and columns count\n const columnWidth = (containerWidth - spacing * (columns - 1) - 2 * padding * columns) / columns;\n\n // encountered impossible layout\n if (columnWidth <= 0) {\n // will try to find a solution recursively with fewer columns\n return columns > 1\n ? computeMasonryLayout({\n ...props,\n layoutOptions: { ...layoutOptions, columns: columns - 1 },\n })\n : undefined;\n }\n\n // store current top positions for each column\n const columnsCurrentTopPositions: number[] = [];\n for (let i = 0; i < columns; i += 1) {\n columnsCurrentTopPositions[i] = 0;\n }\n\n // group photos by column\n const columnsModel = photos.reduce<{ photo: T; index: number }[][]>((acc, photo: T, index) => {\n // find the shortest column\n const shortestColumn = columnsCurrentTopPositions.reduce(\n (acc, item, i) =>\n // subtracting 1 here to compensate for floating point precision errors\n // when two columns have identical height their floating point values can be slightly off\n // in subsequent re-renders, leading to images jumping between columns\n item < columnsCurrentTopPositions[acc] - 1 ? i : acc,\n 0\n );\n\n // update top position of the shortest column\n columnsCurrentTopPositions[shortestColumn] =\n columnsCurrentTopPositions[shortestColumn] + columnWidth / ratio(photo) + spacing + 2 * padding;\n\n // place a photo into the shortest column\n if (!acc[shortestColumn]) {\n acc[shortestColumn] = [];\n }\n acc[shortestColumn].push({ photo, index });\n\n return acc;\n }, []);\n\n // map through each column and photo and add layout properties\n const result = columnsModel.map((column) =>\n column.map(({ photo, index }, photoIndex) => ({\n photo,\n layout: {\n width: columnWidth,\n height: columnWidth / ratio(photo),\n index,\n photoIndex,\n photosCount: column.length,\n },\n }))\n );\n\n instrumentation?.onFinishLayoutComputation?.(result);\n\n return result;\n};\n\nexport default computeMasonryLayout;\n","import * as React from \"react\";\n\nimport computeMasonryLayout from \"../../layouts/masonry\";\nimport PhotoRenderer from \"../renderers/PhotoRenderer\";\nimport ColumnContainerRenderer from \"../renderers/ColumnContainerRenderer\";\nimport {\n ColumnsLayoutOptions,\n ComponentsProps,\n Instrumentation,\n Photo,\n RenderColumnContainer,\n RenderPhoto,\n} from \"../../types\";\n\ntype MasonryLayoutProps<T extends Photo = Photo> = {\n photos: T[];\n layoutOptions: ColumnsLayoutOptions;\n renderPhoto?: RenderPhoto<T>;\n renderColumnContainer?: RenderColumnContainer;\n componentsProps?: ComponentsProps;\n instrumentation?: Instrumentation;\n};\n\nconst MasonryLayout = <T extends Photo = Photo>(props: MasonryLayoutProps<T>): JSX.Element => {\n const { photos, layoutOptions, renderPhoto, renderColumnContainer, componentsProps, instrumentation } = props;\n\n const masonryLayout = computeMasonryLayout({ photos, layoutOptions, instrumentation });\n\n if (masonryLayout === undefined) return <></>;\n\n return (\n <>\n {masonryLayout.map((column, columnIndex) => (\n <ColumnContainerRenderer\n key={`masonry-column-${columnIndex}`}\n layoutOptions={layoutOptions}\n columnsCount={masonryLayout.length}\n columnIndex={columnIndex}\n renderColumnContainer={renderColumnContainer}\n columnContainerProps={componentsProps?.columnContainerProps}\n >\n {column.map(({ photo, layout }) => (\n <PhotoRenderer\n key={photo.key || photo.src}\n photo={photo}\n layout={layout}\n layoutOptions={layoutOptions}\n renderPhoto={renderPhoto}\n imageProps={componentsProps?.imageProps}\n />\n ))}\n </ColumnContainerRenderer>\n ))}\n </>\n );\n};\n\nexport default MasonryLayout;\n","import * as React from \"react\";\nimport { CSSProperties, ForwardRefExoticComponent, PropsWithChildren, RefAttributes } from \"react\";\n\nimport { ContainerProps, RenderContainer, RenderContainerProps } from \"../../types\";\n\nconst defaultRenderContainer = ({ containerProps, children, containerRef }: RenderContainerProps) => (\n <div ref={containerRef} {...containerProps}>\n {children}\n </div>\n);\n\ntype ContainerRendererProps = Omit<RenderContainerProps, \"containerProps\"> &\n Pick<Partial<RenderContainerProps>, \"containerProps\"> & { renderContainer?: RenderContainer };\n\nconst ContainerRenderer = (props: ContainerRendererProps) => {\n const {\n layoutOptions,\n renderContainer,\n children,\n containerRef,\n containerProps: { style, ...restContainerProps } = {},\n } = props;\n const { layout } = layoutOptions;\n\n const containerProps = {\n className: `react-photo-album react-photo-album--${layout}`,\n style: {\n display: \"flex\",\n flexWrap: \"nowrap\",\n justifyContent: \"space-between\",\n flexDirection: layout === \"rows\" ? \"column\" : \"row\",\n ...style,\n } as CSSProperties,\n ...restContainerProps,\n };\n\n // we are dealing with deprecated exotic component returned by forwardRef\n if (renderContainer && typeof renderContainer === \"object\") {\n const Component = renderContainer as ForwardRefExoticComponent<\n PropsWithChildren<ContainerProps> & RefAttributes<HTMLDivElement>\n >;\n\n return (\n <Component ref={containerRef} layoutOptions={layoutOptions} containerProps={containerProps}>\n {children}\n </Component>\n );\n }\n\n return (renderContainer ?? defaultRenderContainer)({\n containerProps,\n containerRef,\n layoutOptions,\n children,\n });\n};\n\nexport default ContainerRenderer;\n","import { useEffect, useLayoutEffect } from \"react\";\n\n/* istanbul ignore next */\nexport default typeof document !== \"undefined\" ? useLayoutEffect : useEffect;\n","import { useState } from \"react\";\nimport useLayoutEffect from \"./useLayoutEffect\";\n\nconst useMounted = () => {\n const [mounted, setMounted] = useState(false);\n\n useLayoutEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n return mounted;\n};\n\nexport default useMounted;\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { ResizeObserverProvider } from \"../types\";\n\nconst useContainerWidth = (resizeObserverProvider?: ResizeObserverProvider, breakpoints?: number[]) => {\n const observerRef = useRef<ResizeObserver>();\n const [containerWidth, setContainerWidth] = useState<number>();\n\n const containerRef = useCallback(\n (node) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = undefined;\n }\n\n const updateWidth = () => {\n let newWidth = node?.clientWidth;\n\n if (newWidth !== undefined && breakpoints && breakpoints.length > 0) {\n const sortedBreakpoints = [...breakpoints.filter((x) => x > 0)].sort((a, b) => b - a);\n sortedBreakpoints.push(Math.floor(sortedBreakpoints[sortedBreakpoints.length - 1] / 2));\n newWidth = sortedBreakpoints.find(\n (breakpoint, index) => breakpoint <= newWidth || index === sortedBreakpoints.length - 1\n );\n }\n\n setContainerWidth(newWidth);\n };\n\n updateWidth();\n\n if (node) {\n observerRef.current =\n typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(updateWidth)\n : resizeObserverProvider?.(updateWidth);\n\n observerRef.current?.observe(node);\n }\n },\n [resizeObserverProvider, breakpoints]\n );\n\n return useMemo(() => ({ containerRef, containerWidth }), [containerRef, containerWidth]);\n};\n\nexport default useContainerWidth;\n","import { ResponsiveParameter } from \"../types\";\n\nconst breakpoints = Object.freeze([1200, 600, 300, 0]);\n\nconst unwrap = (value: ResponsiveParameter, containerWidth: number): number =>\n typeof value === \"function\" ? value(containerWidth) : value;\n\nconst unwrapParameter = (value: ResponsiveParameter | undefined, containerWidth: number): number | undefined =>\n typeof value !== \"undefined\" ? unwrap(value, containerWidth) : undefined;\n\nconst selectResponsiveValue = (values: ResponsiveParameter[], containerWidth: number): number => {\n const index = breakpoints.findIndex((breakpoint) => breakpoint <= containerWidth);\n return unwrap(values[index >= 0 ? index : 0], containerWidth);\n};\n\nconst resolveResponsiveParameter = (\n parameter: ResponsiveParameter | undefined,\n containerWidth: number,\n values: ResponsiveParameter[]\n): number => {\n const value = unwrapParameter(parameter, containerWidth);\n return value === undefined ? selectResponsiveValue(values, containerWidth) : value;\n};\n\nexport default resolveResponsiveParameter;\n","import * as React from \"react\";\n\nimport RowsLayout from \"./components/layouts/RowsLayout\";\nimport ColumnsLayout from \"./components/layouts/ColumnsLayout\";\nimport MasonryLayout from \"./components/layouts/MasonryLayout\";\nimport ContainerRenderer from \"./components/renderers/ContainerRenderer\";\nimport useMounted from \"./hooks/useMounted\";\nimport useContainerWidth from \"./hooks/useContainerWidth\";\nimport resolveResponsiveParameter from \"./utils/responsive\";\nimport { ColumnsLayoutOptions, ComponentsPropsParameter, Photo, PhotoAlbumProps, RowsLayoutOptions } from \"./types\";\n\nconst resolveLayoutOptions = <T extends Photo>({\n layout,\n onClick,\n viewportWidth,\n containerWidth,\n targetRowHeight,\n rowConstraints,\n columns,\n spacing,\n padding,\n sizes,\n}: Omit<PhotoAlbumProps<T>, \"photos\"> & {\n viewportWidth?: number;\n containerWidth: number;\n}): RowsLayoutOptions | ColumnsLayoutOptions => ({\n layout,\n onClick,\n viewportWidth,\n containerWidth,\n columns: resolveResponsiveParameter(columns, containerWidth, [5, 4, 3, 2]),\n spacing: resolveResponsiveParameter(spacing, containerWidth, [20, 15, 10, 5]),\n padding: resolveResponsiveParameter(padding, containerWidth, [0, 0, 0, 0, 0]),\n targetRowHeight: resolveResponsiveParameter(targetRowHeight, containerWidth, [\n (w) => w / 5,\n (w) => w / 4,\n (w) => w / 3,\n (w) => w / 2,\n ]),\n sizes,\n rowConstraints,\n});\n\nconst resolveComponentsProps = (componentsProps: ComponentsPropsParameter | undefined, containerWidth: number) => {\n return typeof componentsProps === \"function\" ? componentsProps(containerWidth) : componentsProps;\n};\n\nconst PhotoAlbum = <T extends Photo>(props: PhotoAlbumProps<T>): JSX.Element => {\n const {\n photos,\n layout,\n renderPhoto,\n renderContainer,\n renderRowContainer,\n renderColumnContainer,\n defaultContainerWidth,\n resizeObserverProvider,\n breakpoints,\n instrumentation,\n } = props;\n\n const mounted = useMounted();\n const { containerRef, containerWidth } = useContainerWidth(resizeObserverProvider, breakpoints);\n\n // safeguard against incorrect usage\n if (!layout || ![\"rows\", \"columns\", \"masonry\"].includes(layout) || !Array.isArray(photos)) return <></>;\n\n const layoutOptions = resolveLayoutOptions({\n containerWidth: (mounted && containerWidth) || defaultContainerWidth || 800,\n viewportWidth: (mounted && window.innerWidth) || undefined,\n ...props,\n });\n\n const componentsProps = resolveComponentsProps(props.componentsProps, layoutOptions.containerWidth);\n\n const commonLayoutProps = { photos, renderPhoto, componentsProps, instrumentation };\n\n return (\n <ContainerRenderer\n containerRef={containerRef}\n layoutOptions={layoutOptions}\n renderContainer={renderContainer}\n containerProps={componentsProps?.containerProps}\n >\n {layout === \"rows\" ? (\n <RowsLayout\n layoutOptions={layoutOptions as RowsLayoutOptions}\n renderRowContainer={renderRowContainer}\n {...commonLayoutProps}\n />\n ) : layout === \"columns\" ? (\n <ColumnsLayout\n layoutOptions={layoutOptions as ColumnsLayoutOptions}\n renderColumnContainer={renderColumnContainer}\n {...commonLayoutProps}\n />\n ) : (\n <MasonryLayout\n layoutOptions={layoutOptions as ColumnsLayoutOptions}\n renderColumnContainer={renderColumnContainer}\n {...commonLayoutProps}\n />\n )}\n </ContainerRenderer>\n );\n};\n\nexport default PhotoAlbum;\n","import { Card } from '@sanity/ui'\nimport styled from 'styled-components'\n\nexport const Root = styled.div`\n overflow: hidden;\n background-origin: content-box;\n background-repeat: no-repeat;\n background-clip: border-box;\n background-size: cover;\n position: relative;\n outline: none !important;\n border: 1px solid white;\n box-sizing: content-box;\n user-drag: none;\n\n &:hover {\n opacity: 0.85;\n }\n\n &:focus,\n &:active {\n border: 1px solid var(--input-border-color-focus);\n box-shadow: inset 0 0 0 3px var(--input-border-color-focus);\n }\n`\n\nexport const CreditLineLink = styled.a`\n text-decoration: none;\n cursor: pointer;\n`\n\nexport const CreditLine = styled(Card)`\n ${({ theme }) => `\n --creditline-fg: ${theme.sanity.color.base.bg};\n --creditline-bg: ${theme.sanity.color.base.fg};\n `};\n user-drag: none;\n position: absolute;\n background-color: var(--creditline-bg);\n bottom: 0;\n\n [data-ui='Text'] {\n color: var(--creditline-fg);\n }\n`\n","import { Text } from '@sanity/ui'\nimport React, { RefObject } from 'react'\nimport { UnsplashPhoto } from 'src/types'\nimport { CreditLine, CreditLineLink, Root } from './Photo.styled'\n\ntype Props = {\n data: UnsplashPhoto\n width: number\n height: number\n onClick: (photo: UnsplashPhoto) => void\n onKeyDown: (event: any) => void\n active: boolean\n onFocus: (photo: UnsplashPhoto) => void\n}\n\nconst UTM_SOURCE = 'sanity-plugin-asset-source-unsplash'\n\nexport default class Photo extends React.Component<Props> {\n rootElm: RefObject<HTMLDivElement> = React.createRef()\n\n handleClick = (event: any) => {\n this.props.onClick(this.props.data)\n }\n\n handleCreditLineClicked = (event: any) => {\n event.stopPropagation()\n const { data } = this.props\n const url = `${data.links.html}?utm_source=${encodeURIComponent(\n UTM_SOURCE\n )}&utm_medium=referral`\n window.open(url, data.id, 'noreferrer,noopener')\n }\n\n handleKeyDown = (event: any) => {\n const { onKeyDown, data } = this.props\n onKeyDown(event)\n if (event.keyCode === 13) {\n this.props.onClick(data)\n }\n }\n\n handleMouseDown = (event: any) => {\n this.props.onFocus(this.props.data)\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.active && this.props.active && this.rootElm.current) {\n this.rootElm.current.focus()\n this.props.onFocus(this.props.data)\n }\n }\n\n render() {\n const { width, height, data } = this.props\n const src = data.urls.small\n const userName = data.user.name\n return (\n <Root\n ref={this.rootElm}\n title={`Select image by ${userName} from Unsplash`}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n style={{\n width: `${width}px`,\n height: `${height}px`,\n backgroundImage: `url(\"${src}\")`\n }}\n onClick={this.handleClick}\n >\n <CreditLineLink onClick={this.handleCreditLineClicked}>\n <CreditLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Open image by ${userName} on Unsplash in new window`}>\n By @{data.user.username}\n </Text>\n </CreditLine>\n </CreditLineLink>\n </Root>\n )\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","exports.filter = require('rxjs/internal/operators/filter').filter\n","exports.map = require('rxjs/internal/operators/map').map\n","'use strict';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","'use strict';\nvar isObj = require('is-obj');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Sources cannot be null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction assignKey(to, from, key) {\n\tvar val = from[key];\n\n\tif (val === undefined || val === null) {\n\t\treturn;\n\t}\n\n\tif (hasOwnProperty.call(to, key)) {\n\t\tif (to[key] === undefined || to[key] === null) {\n\t\t\tthrow new TypeError('Cannot convert undefined or null to object (' + key + ')');\n\t\t}\n\t}\n\n\tif (!hasOwnProperty.call(to, key) || !isObj(val)) {\n\t\tto[key] = val;\n\t} else {\n\t\tto[key] = assign(Object(to[key]), from[key]);\n\t}\n}\n\nfunction assign(to, from) {\n\tif (to === from) {\n\t\treturn to;\n\t}\n\n\tfrom = Object(from);\n\n\tfor (var key in from) {\n\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\tassignKey(to, from, key);\n\t\t}\n\t}\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tvar symbols = Object.getOwnPropertySymbols(from);\n\n\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\tassignKey(to, from, symbols[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n}\n\nmodule.exports = function deepAssign(target) {\n\ttarget = toObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tassign(target, arguments[s]);\n\t}\n\n\treturn target;\n};\n","\"use strict\";\n\nmodule.exports = function getSelection(sel) {\n if (typeof sel === 'string' || Array.isArray(sel)) {\n return {\n id: sel\n };\n }\n\n if (sel && sel.query) {\n return {\n query: sel.query\n };\n }\n\n var selectionOpts = ['* Document ID (<docId>)', '* Array of document IDs', '* Object containing `query`'].join('\\n');\n throw new Error(\"Unknown selection - must be one of:\\n\\n\".concat(selectionOpts));\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar VALID_ASSET_TYPES = ['image', 'file'];\nvar VALID_INSERT_LOCATIONS = ['before', 'after', 'replace'];\n\nexports.dataset = function (name) {\n if (!/^(~[a-z0-9]{1}[-\\w]{0,25}|[a-z0-9]{1}[-\\w]{0,19})$/.test(name)) {\n throw new Error('Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 20 characters');\n }\n};\n\nexports.projectId = function (id) {\n if (!/^[-a-z0-9]+$/i.test(id)) {\n throw new Error('`projectId` can only contain only a-z, 0-9 and dashes');\n }\n};\n\nexports.validateAssetType = function (type) {\n if (VALID_ASSET_TYPES.indexOf(type) === -1) {\n throw new Error(\"Invalid asset type: \".concat(type, \". Must be one of \").concat(VALID_ASSET_TYPES.join(', ')));\n }\n};\n\nexports.validateObject = function (op, val) {\n if (val === null || _typeof(val) !== 'object' || Array.isArray(val)) {\n throw new Error(\"\".concat(op, \"() takes an object of properties\"));\n }\n};\n\nexports.requireDocumentId = function (op, doc) {\n if (!doc._id) {\n throw new Error(\"\".concat(op, \"() requires that the document contains an ID (\\\"_id\\\" property)\"));\n }\n\n exports.validateDocumentId(op, doc._id);\n};\n\nexports.validateDocumentId = function (op, id) {\n if (typeof id !== 'string' || !/^[a-z0-9_.-]+$/i.test(id)) {\n throw new Error(\"\".concat(op, \"(): \\\"\").concat(id, \"\\\" is not a valid document ID\"));\n }\n};\n\nexports.validateInsert = function (at, selector, items) {\n var signature = 'insert(at, selector, items)';\n\n if (VALID_INSERT_LOCATIONS.indexOf(at) === -1) {\n var valid = VALID_INSERT_LOCATIONS.map(function (loc) {\n return \"\\\"\".concat(loc, \"\\\"\");\n }).join(', ');\n throw new Error(\"\".concat(signature, \" takes an \\\"at\\\"-argument which is one of: \").concat(valid));\n }\n\n if (typeof selector !== 'string') {\n throw new Error(\"\".concat(signature, \" takes a \\\"selector\\\"-argument which must be a string\"));\n }\n\n if (!Array.isArray(items)) {\n throw new Error(\"\".concat(signature, \" takes an \\\"items\\\"-argument which must be an array\"));\n }\n};\n\nexports.hasDataset = function (config) {\n if (!config.gradientMode && !config.dataset) {\n throw new Error('`dataset` must be provided to perform queries');\n }\n\n return config.dataset || '';\n};\n\nexports.requestTag = function (tag) {\n if (typeof tag !== 'string' || !/^[a-z0-9._-]{1,75}$/i.test(tag)) {\n throw new Error(\"Tag can only contain alphanumeric characters, underscores, dashes and dots, and be between one and 75 characters long.\");\n }\n\n return tag;\n};","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar deepAssign = require('deep-assign');\n\nvar assign = require('object-assign');\n\nvar getSelection = require('../util/getSelection');\n\nvar validate = require('../validators');\n\nvar validateObject = validate.validateObject;\nvar validateInsert = validate.validateInsert;\n\nfunction Patch(selection) {\n var operations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var client = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n this.selection = selection;\n this.operations = assign({}, operations);\n this.client = client;\n}\n\nassign(Patch.prototype, {\n clone: function clone() {\n return new Patch(this.selection, assign({}, this.operations), this.client);\n },\n merge: function merge(props) {\n validateObject('merge', props);\n var stack = new Error().stack.toString().split('\\n').filter(function (str) {\n return str.trim();\n }).slice(2);\n console.warn(\"The \\\"merge\\\" patch has been deprecated and will be removed in the future\\n\".concat(stack.join('\\n')));\n return this._assign('merge', deepAssign(this.operations.merge || {}, props));\n },\n set: function set(props) {\n return this._assign('set', props);\n },\n diffMatchPatch: function diffMatchPatch(props) {\n validateObject('diffMatchPatch', props);\n return this._assign('diffMatchPatch', props);\n },\n unset: function unset(attrs) {\n if (!Array.isArray(attrs)) {\n throw new Error('unset(attrs) takes an array of attributes to unset, non-array given');\n }\n\n this.operations = assign({}, this.operations, {\n unset: attrs\n });\n return this;\n },\n setIfMissing: function setIfMissing(props) {\n return this._assign('setIfMissing', props);\n },\n replace: function replace(props) {\n validateObject('replace', props);\n return this._set('set', {\n $: props\n }); // eslint-disable-line id-length\n },\n inc: function inc(props) {\n return this._assign('inc', props);\n },\n dec: function dec(props) {\n return this._assign('dec', props);\n },\n insert: function insert(at, selector, items) {\n var _this$_assign;\n\n validateInsert(at, selector, items);\n return this._assign('insert', (_this$_assign = {}, _defineProperty(_this$_assign, at, selector), _defineProperty(_this$_assign, \"items\", items), _this$_assign));\n },\n append: function append(selector, items) {\n return this.insert('after', \"\".concat(selector, \"[-1]\"), items);\n },\n prepend: function prepend(selector, items) {\n return this.insert('before', \"\".concat(selector, \"[0]\"), items);\n },\n splice: function splice(selector, start, deleteCount, items) {\n // Negative indexes doesn't mean the same in Sanity as they do in JS;\n // -1 means \"actually at the end of the array\", which allows inserting\n // at the end of the array without knowing its length. We therefore have\n // to substract negative indexes by one to match JS. If you want Sanity-\n // behaviour, just use `insert('replace', selector, items)` directly\n var delAll = typeof deleteCount === 'undefined' || deleteCount === -1;\n var startIndex = start < 0 ? start - 1 : start;\n var delCount = delAll ? -1 : Math.max(0, start + deleteCount);\n var delRange = startIndex < 0 && delCount >= 0 ? '' : delCount;\n var rangeSelector = \"\".concat(selector, \"[\").concat(startIndex, \":\").concat(delRange, \"]\");\n return this.insert('replace', rangeSelector, items || []);\n },\n ifRevisionId: function ifRevisionId(rev) {\n this.operations.ifRevisionID = rev;\n return this;\n },\n serialize: function serialize() {\n return assign(getSelection(this.selection), this.operations);\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.client) {\n throw new Error('No `client` passed to patch, either provide one or pass the ' + 'patch to a clients `mutate()` method');\n }\n\n var returnFirst = typeof this.selection === 'string';\n var opts = assign({\n returnFirst: returnFirst,\n returnDocuments: true\n }, options);\n return this.client.mutate({\n patch: this.serialize()\n }, opts);\n },\n reset: function reset() {\n this.operations = {};\n return this;\n },\n _set: function _set(op, props) {\n return this._assign(op, props, false);\n },\n _assign: function _assign(op, props) {\n var merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n validateObject(op, props);\n this.operations = assign({}, this.operations, _defineProperty({}, op, assign({}, merge && this.operations[op] || {}, props)));\n return this;\n }\n});\nmodule.exports = Patch;","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar validators = require('../validators');\n\nvar Patch = require('./patch');\n\nvar defaultMutateOptions = {\n returnDocuments: false\n};\n\nfunction Transaction() {\n var operations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var client = arguments.length > 1 ? arguments[1] : undefined;\n var transactionId = arguments.length > 2 ? arguments[2] : undefined;\n this.trxId = transactionId;\n this.operations = operations;\n this.client = client;\n}\n\nassign(Transaction.prototype, {\n clone: function clone() {\n return new Transaction(this.operations.slice(0), this.client, this.trxId);\n },\n create: function create(doc) {\n validators.validateObject('create', doc);\n return this._add({\n create: doc\n });\n },\n createIfNotExists: function createIfNotExists(doc) {\n var op = 'createIfNotExists';\n validators.validateObject(op, doc);\n validators.requireDocumentId(op, doc);\n return this._add(_defineProperty({}, op, doc));\n },\n createOrReplace: function createOrReplace(doc) {\n var op = 'createOrReplace';\n validators.validateObject(op, doc);\n validators.requireDocumentId(op, doc);\n return this._add(_defineProperty({}, op, doc));\n },\n delete: function _delete(documentId) {\n validators.validateDocumentId('delete', documentId);\n return this._add({\n delete: {\n id: documentId\n }\n });\n },\n patch: function patch(documentId, patchOps) {\n var isBuilder = typeof patchOps === 'function';\n var isPatch = documentId instanceof Patch; // transaction.patch(client.patch('documentId').inc({visits: 1}))\n\n if (isPatch) {\n return this._add({\n patch: documentId.serialize()\n });\n } // patch => patch.inc({visits: 1}).set({foo: 'bar'})\n\n\n if (isBuilder) {\n var patch = patchOps(new Patch(documentId, {}, this.client));\n\n if (!(patch instanceof Patch)) {\n throw new Error('function passed to `patch()` must return the patch');\n }\n\n return this._add({\n patch: patch.serialize()\n });\n }\n\n return this._add({\n patch: assign({\n id: documentId\n }, patchOps)\n });\n },\n transactionId: function transactionId(id) {\n if (!id) {\n return this.trxId;\n }\n\n this.trxId = id;\n return this;\n },\n serialize: function serialize() {\n return this.operations.slice();\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit(options) {\n if (!this.client) {\n throw new Error('No `client` passed to transaction, either provide one or pass the ' + 'transaction to a clients `mutate()` method');\n }\n\n return this.client.mutate(this.serialize(), assign({\n transactionId: this.trxId\n }, defaultMutateOptions, options || {}));\n },\n reset: function reset() {\n this.operations = [];\n return this;\n },\n _add: function _add(mut) {\n this.operations.push(mut);\n return this;\n }\n});\nmodule.exports = Transaction;","\"use strict\";\n\nvar _excluded = [\"tag\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar enc = encodeURIComponent;\n\nmodule.exports = function (_ref) {\n var query = _ref.query,\n _ref$params = _ref.params,\n params = _ref$params === void 0 ? {} : _ref$params,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n // We generally want tag at the start of the query string\n var tag = options.tag,\n opts = _objectWithoutProperties(options, _excluded);\n\n var q = \"query=\".concat(enc(query));\n var base = tag ? \"?tag=\".concat(enc(tag), \"&\").concat(q) : \"?\".concat(q);\n var qString = Object.keys(params).reduce(function (qs, param) {\n return \"\".concat(qs, \"&\").concat(enc(\"$\".concat(param)), \"=\").concat(enc(JSON.stringify(params[param])));\n }, base);\n return Object.keys(opts).reduce(function (qs, option) {\n // Only include the option if it is truthy\n return options[option] ? \"\".concat(qs, \"&\").concat(enc(option), \"=\").concat(enc(options[option])) : qs;\n }, qString);\n};","exports.reduce = require('rxjs/internal/operators/reduce').reduce\n","\"use strict\";\n\nvar _require = require('rxjs/internal/Observable'),\n Observable = _require.Observable;\n\nvar assign = require('object-assign');\n\nvar _require2 = require('../operators/map'),\n map = _require2.map;\n\nvar _require3 = require('../operators/filter'),\n filter = _require3.filter;\n\nvar _require4 = require('../operators/reduce'),\n reduce = _require4.reduce;\n/*\n A minimal rxjs based observable that align as closely as possible with the current es-observable spec,\n without the static factory methods\n */\n\n\nfunction SanityObservableMinimal() {\n Observable.apply(this, arguments); // eslint-disable-line prefer-rest-params\n}\n\nSanityObservableMinimal.prototype = Object.create(assign(Object.create(null), Observable.prototype));\nObject.defineProperty(SanityObservableMinimal.prototype, 'constructor', {\n value: SanityObservableMinimal,\n enumerable: false,\n writable: true,\n configurable: true\n});\n\nSanityObservableMinimal.prototype.lift = function lift(operator) {\n var observable = new SanityObservableMinimal();\n observable.source = this;\n observable.operator = operator;\n return observable;\n};\n\nfunction createDeprecatedMemberOp(name, op) {\n var hasWarned = false;\n return function deprecatedOperator() {\n if (!hasWarned) {\n hasWarned = true;\n console.warn(new Error(\"Calling observable.\".concat(name, \"(...) is deprecated. Please use observable.pipe(\").concat(name, \"(...)) instead\")));\n }\n\n return this.pipe(op.apply(this, arguments));\n };\n}\n\nSanityObservableMinimal.prototype.map = createDeprecatedMemberOp('map', map);\nSanityObservableMinimal.prototype.filter = createDeprecatedMemberOp('filter', filter);\nSanityObservableMinimal.prototype.reduce = createDeprecatedMemberOp('filter', reduce);\nmodule.exports = SanityObservableMinimal;","module.exports = require('./lib/SanityObservableMinimal')\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/\n , whitespace = '[\\\\x09\\\\x0A\\\\x0B\\\\x0C\\\\x0D\\\\x20\\\\xA0\\\\u1680\\\\u180E\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200A\\\\u202F\\\\u205F\\\\u3000\\\\u2028\\\\u2029\\\\uFEFF]'\n , left = new RegExp('^'+ whitespace +'+');\n\n/**\n * Trim a given string.\n *\n * @param {String} str String to trim.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(left, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d+)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n if (~(index = address.indexOf(parse))) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n if (url.auth) {\n instruction = url.auth.split(':');\n url.username = instruction[0] || '';\n url.password = instruction[1] || '';\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (/:\\d+$/.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n default:\n url[part] = value;\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result = protocol + (url.slashes || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n }\n\n result += url.host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","'use strict';\n\nvar parse = require('url-parse');\n\n/**\n * Transform an URL to a valid origin value.\n *\n * @param {String|Object} url URL to transform to it's origin.\n * @returns {String} The origin.\n * @api public\n */\nfunction origin(url) {\n if ('string' === typeof url) url = parse(url);\n\n //\n // 6.2. ASCII Serialization of an Origin\n // http://tools.ietf.org/html/rfc6454#section-6.2\n //\n if (!url.protocol || !url.hostname) return 'null';\n\n //\n // 4. Origin of a URI\n // http://tools.ietf.org/html/rfc6454#section-4\n //\n // States that url.scheme, host should be converted to lower case. This also\n // makes it easier to match origins as everything is just lower case.\n //\n return (url.protocol +'//'+ url.host).toLowerCase();\n}\n\n/**\n * Check if the origins are the same.\n *\n * @param {String} a URL or origin of a.\n * @param {String} b URL or origin of b.\n * @returns {Boolean}\n * @api public\n */\norigin.same = function same(a, b) {\n return origin(a) === origin(b);\n};\n\n//\n// Expose the origin\n//\nmodule.exports = origin;\n","var original = require('original')\nvar parse = require('url').parse\nvar events = require('events')\nvar https = require('https')\nvar http = require('http')\nvar util = require('util')\n\nvar httpsOptions = [\n 'pfx', 'key', 'passphrase', 'cert', 'ca', 'ciphers',\n 'rejectUnauthorized', 'secureProtocol', 'servername', 'checkServerIdentity'\n]\n\nvar bom = [239, 187, 191]\nvar colon = 58\nvar space = 32\nvar lineFeed = 10\nvar carriageReturn = 13\n\nfunction hasBom (buf) {\n return bom.every(function (charCode, index) {\n return buf[index] === charCode\n })\n}\n\n/**\n * Creates a new EventSource object\n *\n * @param {String} url the URL to which to connect\n * @param {Object} [eventSourceInitDict] extra init params. See README for details.\n * @api public\n **/\nfunction EventSource (url, eventSourceInitDict) {\n var readyState = EventSource.CONNECTING\n Object.defineProperty(this, 'readyState', {\n get: function () {\n return readyState\n }\n })\n\n Object.defineProperty(this, 'url', {\n get: function () {\n return url\n }\n })\n\n var self = this\n self.reconnectInterval = 1000\n self.connectionInProgress = false\n\n function onConnectionClosed (message) {\n if (readyState === EventSource.CLOSED) return\n readyState = EventSource.CONNECTING\n _emit('error', new Event('error', {message: message}))\n\n // The url may have been changed by a temporary\n // redirect. If that's the case, revert it now.\n if (reconnectUrl) {\n url = reconnectUrl\n reconnectUrl = null\n }\n setTimeout(function () {\n if (readyState !== EventSource.CONNECTING || self.connectionInProgress) {\n return\n }\n self.connectionInProgress = true\n connect()\n }, self.reconnectInterval)\n }\n\n var req\n var lastEventId = ''\n if (eventSourceInitDict && eventSourceInitDict.headers && eventSourceInitDict.headers['Last-Event-ID']) {\n lastEventId = eventSourceInitDict.headers['Last-Event-ID']\n delete eventSourceInitDict.headers['Last-Event-ID']\n }\n\n var discardTrailingNewline = false\n var data = ''\n var eventName = ''\n\n var reconnectUrl = null\n\n function connect () {\n var options = parse(url)\n var isSecure = options.protocol === 'https:'\n options.headers = { 'Cache-Control': 'no-cache', 'Accept': 'text/event-stream' }\n if (lastEventId) options.headers['Last-Event-ID'] = lastEventId\n if (eventSourceInitDict && eventSourceInitDict.headers) {\n for (var i in eventSourceInitDict.headers) {\n var header = eventSourceInitDict.headers[i]\n if (header) {\n options.headers[i] = header\n }\n }\n }\n\n // Legacy: this should be specified as `eventSourceInitDict.https.rejectUnauthorized`,\n // but for now exists as a backwards-compatibility layer\n options.rejectUnauthorized = !(eventSourceInitDict && !eventSourceInitDict.rejectUnauthorized)\n\n if (eventSourceInitDict && eventSourceInitDict.createConnection !== undefined) {\n options.createConnection = eventSourceInitDict.createConnection\n }\n\n // If specify http proxy, make the request to sent to the proxy server,\n // and include the original url in path and Host headers\n var useProxy = eventSourceInitDict && eventSourceInitDict.proxy\n if (useProxy) {\n var proxy = parse(eventSourceInitDict.proxy)\n isSecure = proxy.protocol === 'https:'\n\n options.protocol = isSecure ? 'https:' : 'http:'\n options.path = url\n options.headers.Host = options.host\n options.hostname = proxy.hostname\n options.host = proxy.host\n options.port = proxy.port\n }\n\n // If https options are specified, merge them into the request options\n if (eventSourceInitDict && eventSourceInitDict.https) {\n for (var optName in eventSourceInitDict.https) {\n if (httpsOptions.indexOf(optName) === -1) {\n continue\n }\n\n var option = eventSourceInitDict.https[optName]\n if (option !== undefined) {\n options[optName] = option\n }\n }\n }\n\n // Pass this on to the XHR\n if (eventSourceInitDict && eventSourceInitDict.withCredentials !== undefined) {\n options.withCredentials = eventSourceInitDict.withCredentials\n }\n\n req = (isSecure ? https : http).request(options, function (res) {\n self.connectionInProgress = false\n // Handle HTTP errors\n if (res.statusCode === 500 || res.statusCode === 502 || res.statusCode === 503 || res.statusCode === 504) {\n _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))\n onConnectionClosed()\n return\n }\n\n // Handle HTTP redirects\n if (res.statusCode === 301 || res.statusCode === 302 || res.statusCode === 307) {\n if (!res.headers.location) {\n // Server sent redirect response without Location header.\n _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))\n return\n }\n if (res.statusCode === 307) reconnectUrl = url\n url = res.headers.location\n process.nextTick(connect)\n return\n }\n\n if (res.statusCode !== 200) {\n _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))\n return self.close()\n }\n\n readyState = EventSource.OPEN\n res.on('close', function () {\n res.removeAllListeners('close')\n res.removeAllListeners('end')\n onConnectionClosed()\n })\n\n res.on('end', function () {\n res.removeAllListeners('close')\n res.removeAllListeners('end')\n onConnectionClosed()\n })\n _emit('open', new Event('open'))\n\n // text/event-stream parser adapted from webkit's\n // Source/WebCore/page/EventSource.cpp\n var isFirst = true\n var buf\n var startingPos = 0\n var startingFieldLength = -1\n res.on('data', function (chunk) {\n buf = buf ? Buffer.concat([buf, chunk]) : chunk\n if (isFirst && hasBom(buf)) {\n buf = buf.slice(bom.length)\n }\n\n isFirst = false\n var pos = 0\n var length = buf.length\n\n while (pos < length) {\n if (discardTrailingNewline) {\n if (buf[pos] === lineFeed) {\n ++pos\n }\n discardTrailingNewline = false\n }\n\n var lineLength = -1\n var fieldLength = startingFieldLength\n var c\n\n for (var i = startingPos; lineLength < 0 && i < length; ++i) {\n c = buf[i]\n if (c === colon) {\n if (fieldLength < 0) {\n fieldLength = i - pos\n }\n } else if (c === carriageReturn) {\n discardTrailingNewline = true\n lineLength = i - pos\n } else if (c === lineFeed) {\n lineLength = i - pos\n }\n }\n\n if (lineLength < 0) {\n startingPos = length - pos\n startingFieldLength = fieldLength\n break\n } else {\n startingPos = 0\n startingFieldLength = -1\n }\n\n parseEventStreamLine(buf, pos, fieldLength, lineLength)\n\n pos += lineLength + 1\n }\n\n if (pos === length) {\n buf = void 0\n } else if (pos > 0) {\n buf = buf.slice(pos)\n }\n })\n })\n\n req.on('error', function (err) {\n self.connectionInProgress = false\n onConnectionClosed(err.message)\n })\n\n if (req.setNoDelay) req.setNoDelay(true)\n req.end()\n }\n\n connect()\n\n function _emit () {\n if (self.listeners(arguments[0]).length > 0) {\n self.emit.apply(self, arguments)\n }\n }\n\n this._close = function () {\n if (readyState === EventSource.CLOSED) return\n readyState = EventSource.CLOSED\n if (req.abort) req.abort()\n if (req.xhr && req.xhr.abort) req.xhr.abort()\n }\n\n function parseEventStreamLine (buf, pos, fieldLength, lineLength) {\n if (lineLength === 0) {\n if (data.length > 0) {\n var type = eventName || 'message'\n _emit(type, new MessageEvent(type, {\n data: data.slice(0, -1), // remove trailing newline\n lastEventId: lastEventId,\n origin: original(url)\n }))\n data = ''\n }\n eventName = void 0\n } else if (fieldLength > 0) {\n var noValue = fieldLength < 0\n var step = 0\n var field = buf.slice(pos, pos + (noValue ? lineLength : fieldLength)).toString()\n\n if (noValue) {\n step = lineLength\n } else if (buf[pos + fieldLength + 1] !== space) {\n step = fieldLength + 1\n } else {\n step = fieldLength + 2\n }\n pos += step\n\n var valueLength = lineLength - step\n var value = buf.slice(pos, pos + valueLength).toString()\n\n if (field === 'data') {\n data += value + '\\n'\n } else if (field === 'event') {\n eventName = value\n } else if (field === 'id') {\n lastEventId = value\n } else if (field === 'retry') {\n var retry = parseInt(value, 10)\n if (!Number.isNaN(retry)) {\n self.reconnectInterval = retry\n }\n }\n }\n }\n}\n\nmodule.exports = EventSource\n\nutil.inherits(EventSource, events.EventEmitter)\nEventSource.prototype.constructor = EventSource; // make stacktraces readable\n\n['open', 'error', 'message'].forEach(function (method) {\n Object.defineProperty(EventSource.prototype, 'on' + method, {\n /**\n * Returns the current listener\n *\n * @return {Mixed} the set function or undefined\n * @api private\n */\n get: function get () {\n var listener = this.listeners(method)[0]\n return listener ? (listener._listener ? listener._listener : listener) : undefined\n },\n\n /**\n * Start listening for events\n *\n * @param {Function} listener the listener\n * @return {Mixed} the set function or undefined\n * @api private\n */\n set: function set (listener) {\n this.removeAllListeners(method)\n this.addEventListener(method, listener)\n }\n })\n})\n\n/**\n * Ready states\n */\nObject.defineProperty(EventSource, 'CONNECTING', {enumerable: true, value: 0})\nObject.defineProperty(EventSource, 'OPEN', {enumerable: true, value: 1})\nObject.defineProperty(EventSource, 'CLOSED', {enumerable: true, value: 2})\n\nEventSource.prototype.CONNECTING = 0\nEventSource.prototype.OPEN = 1\nEventSource.prototype.CLOSED = 2\n\n/**\n * Closes the connection, if one is made, and sets the readyState attribute to 2 (closed)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/close\n * @api public\n */\nEventSource.prototype.close = function () {\n this._close()\n}\n\n/**\n * Emulates the W3C Browser based WebSocket interface using addEventListener.\n *\n * @param {String} type A string representing the event type to listen out for\n * @param {Function} listener callback\n * @see https://developer.mozilla.org/en/DOM/element.addEventListener\n * @see http://dev.w3.org/html5/websockets/#the-websocket-interface\n * @api public\n */\nEventSource.prototype.addEventListener = function addEventListener (type, listener) {\n if (typeof listener === 'function') {\n // store a reference so we can return the original function again\n listener._listener = listener\n this.on(type, listener)\n }\n}\n\n/**\n * Emulates the W3C Browser based WebSocket interface using dispatchEvent.\n *\n * @param {Event} event An event to be dispatched\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent\n * @api public\n */\nEventSource.prototype.dispatchEvent = function dispatchEvent (event) {\n if (!event.type) {\n throw new Error('UNSPECIFIED_EVENT_TYPE_ERR')\n }\n // if event is instance of an CustomEvent (or has 'details' property),\n // send the detail object as the payload for the event\n this.emit(event.type, event.detail)\n}\n\n/**\n * Emulates the W3C Browser based WebSocket interface using removeEventListener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener callback\n * @see https://developer.mozilla.org/en/DOM/element.removeEventListener\n * @see http://dev.w3.org/html5/websockets/#the-websocket-interface\n * @api public\n */\nEventSource.prototype.removeEventListener = function removeEventListener (type, listener) {\n if (typeof listener === 'function') {\n listener._listener = undefined\n this.removeListener(type, listener)\n }\n}\n\n/**\n * W3C Event\n *\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-Event\n * @api private\n */\nfunction Event (type, optionalProperties) {\n Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })\n if (optionalProperties) {\n for (var f in optionalProperties) {\n if (optionalProperties.hasOwnProperty(f)) {\n Object.defineProperty(this, f, { writable: false, value: optionalProperties[f], enumerable: true })\n }\n }\n }\n}\n\n/**\n * W3C MessageEvent\n *\n * @see http://www.w3.org/TR/webmessaging/#event-definitions\n * @api private\n */\nfunction MessageEvent (type, eventInitDict) {\n Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })\n for (var f in eventInitDict) {\n if (eventInitDict.hasOwnProperty(f)) {\n Object.defineProperty(this, f, { writable: false, value: eventInitDict[f], enumerable: true })\n }\n }\n}\n","module.exports = require('eventsource')\n","var baseUrl = 'https://docs.sanity.io/help/'\n\nmodule.exports = function generateHelpUrl(slug) {\n return baseUrl + slug\n}\n","\"use strict\";\n\nmodule.exports = function (obj, props) {\n return props.reduce(function (selection, prop) {\n if (typeof obj[prop] === 'undefined') {\n return selection;\n }\n\n selection[prop] = obj[prop];\n return selection;\n }, {});\n};","\"use strict\";\n\nmodule.exports = function (fn) {\n var didCall = false;\n var returnValue;\n return function () {\n if (didCall) {\n return returnValue;\n }\n\n returnValue = fn.apply(void 0, arguments);\n didCall = true;\n return returnValue;\n };\n};","\"use strict\";\n\nmodule.exports = function (obj, defaults) {\n return Object.keys(defaults).concat(Object.keys(obj)).reduce(function (target, prop) {\n target[prop] = typeof obj[prop] === 'undefined' ? defaults[prop] : obj[prop];\n return target;\n }, {});\n};","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar Observable = require('@sanity/observable/minimal');\n\nvar polyfilledEventSource = require('@sanity/eventsource');\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar pick = require('../util/pick');\n\nvar once = require('../util/once');\n\nvar defaults = require('../util/defaults');\n\nvar encodeQueryString = require('./encodeQueryString'); // Limit is 16K for a _request_, eg including headers. Have to account for an\n// unknown range of headers, but an average EventSource request from Chrome seems\n// to have around 700 bytes of cruft, so let us account for 1.2K to be \"safe\"\n\n\nvar MAX_URL_LENGTH = 16000 - 1200;\nvar tokenWarning = ['Using token with listeners is not supported in browsers. ', \"For more info, see \".concat(generateHelpUrl('js-client-listener-tokens-browser'), \".\")]; // eslint-disable-next-line no-console\n\nvar printTokenWarning = once(function () {\n return console.warn(tokenWarning.join(' '));\n});\nvar isWindowEventSource = Boolean(typeof window !== 'undefined' && window.EventSource);\nvar EventSource = isWindowEventSource ? window.EventSource // Native browser EventSource\n: polyfilledEventSource; // Node.js, IE etc\n\nvar possibleOptions = ['includePreviousRevision', 'includeResult', 'visibility', 'effectFormat', 'tag'];\nvar defaultOptions = {\n includeResult: true\n};\n\nmodule.exports = function listen(query, params) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _this$clientConfig = this.clientConfig,\n url = _this$clientConfig.url,\n token = _this$clientConfig.token,\n withCredentials = _this$clientConfig.withCredentials,\n requestTagPrefix = _this$clientConfig.requestTagPrefix;\n var tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join('.') : opts.tag;\n\n var options = _objectSpread(_objectSpread({}, defaults(opts, defaultOptions)), {}, {\n tag: tag\n });\n\n var listenOpts = pick(options, possibleOptions);\n var qs = encodeQueryString({\n query: query,\n params: params,\n options: listenOpts,\n tag: tag\n });\n var uri = \"\".concat(url).concat(this.getDataUrl('listen', qs));\n\n if (uri.length > MAX_URL_LENGTH) {\n return new Observable(function (observer) {\n return observer.error(new Error('Query too large for listener'));\n });\n }\n\n var listenFor = options.events ? options.events : ['mutation'];\n var shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1;\n\n if (token && isWindowEventSource) {\n printTokenWarning();\n }\n\n var esOptions = {};\n\n if (token || withCredentials) {\n esOptions.withCredentials = true;\n }\n\n if (token) {\n esOptions.headers = {\n Authorization: \"Bearer \".concat(token)\n };\n }\n\n return new Observable(function (observer) {\n var es = getEventSource();\n var reconnectTimer;\n var stopped = false;\n\n function onError() {\n if (stopped) {\n return;\n }\n\n emitReconnect(); // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt\n\n if (stopped) {\n return;\n } // Unless we've explicitly stopped the ES (in which case `stopped` should be true),\n // we should never be in a disconnected state. By default, EventSource will reconnect\n // automatically, in which case it sets readyState to `CONNECTING`, but in some cases\n // (like when a laptop lid is closed), it closes the connection. In these cases we need\n // to explicitly reconnect.\n\n\n if (es.readyState === EventSource.CLOSED) {\n unsubscribe();\n clearTimeout(reconnectTimer);\n reconnectTimer = setTimeout(open, 100);\n }\n }\n\n function onChannelError(err) {\n observer.error(cooerceError(err));\n }\n\n function onMessage(evt) {\n var event = parseEvent(evt);\n return event instanceof Error ? observer.error(event) : observer.next(event);\n }\n\n function onDisconnect(evt) {\n stopped = true;\n unsubscribe();\n observer.complete();\n }\n\n function unsubscribe() {\n es.removeEventListener('error', onError, false);\n es.removeEventListener('channelError', onChannelError, false);\n es.removeEventListener('disconnect', onDisconnect, false);\n listenFor.forEach(function (type) {\n return es.removeEventListener(type, onMessage, false);\n });\n es.close();\n }\n\n function emitReconnect() {\n if (shouldEmitReconnect) {\n observer.next({\n type: 'reconnect'\n });\n }\n }\n\n function getEventSource() {\n var evs = new EventSource(uri, esOptions);\n evs.addEventListener('error', onError, false);\n evs.addEventListener('channelError', onChannelError, false);\n evs.addEventListener('disconnect', onDisconnect, false);\n listenFor.forEach(function (type) {\n return evs.addEventListener(type, onMessage, false);\n });\n return evs;\n }\n\n function open() {\n es = getEventSource();\n }\n\n function stop() {\n stopped = true;\n unsubscribe();\n }\n\n return stop;\n });\n};\n\nfunction parseEvent(event) {\n try {\n var data = event.data && JSON.parse(event.data) || {};\n return assign({\n type: event.type\n }, data);\n } catch (err) {\n return err;\n }\n}\n\nfunction cooerceError(err) {\n if (err instanceof Error) {\n return err;\n }\n\n var evt = parseEvent(err);\n return evt instanceof Error ? evt : new Error(extractErrorMessage(evt));\n}\n\nfunction extractErrorMessage(err) {\n if (!err.error) {\n return err.message || 'Unknown listener error';\n }\n\n if (err.error.description) {\n return err.error.description;\n }\n\n return typeof err.error === 'string' ? err.error : JSON.stringify(err.error, null, 2);\n}","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\n\nvar validators = require('../validators');\n\nvar getSelection = require('../util/getSelection');\n\nvar encodeQueryString = require('./encodeQueryString');\n\nvar Transaction = require('./transaction');\n\nvar Patch = require('./patch');\n\nvar listen = require('./listen');\n\nvar excludeFalsey = function excludeFalsey(param, defValue) {\n var value = typeof param === 'undefined' ? defValue : param;\n return param === false ? undefined : value;\n};\n\nvar getMutationQuery = function getMutationQuery() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n returnIds: true,\n returnDocuments: excludeFalsey(options.returnDocuments, true),\n visibility: options.visibility || 'sync'\n };\n};\n\nvar isResponse = function isResponse(event) {\n return event.type === 'response';\n};\n\nvar getBody = function getBody(event) {\n return event.body;\n};\n\nvar indexBy = function indexBy(docs, attr) {\n return docs.reduce(function (indexed, doc) {\n indexed[attr(doc)] = doc;\n return indexed;\n }, Object.create(null));\n};\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nvar getQuerySizeLimit = 11264;\nmodule.exports = {\n listen: listen,\n getDataUrl: function getDataUrl(operation, path) {\n var config = this.clientConfig;\n var catalog = config.gradientMode ? config.namespace : validators.hasDataset(config);\n var baseUri = \"/\".concat(operation, \"/\").concat(catalog);\n var uri = path ? \"\".concat(baseUri, \"/\").concat(path) : baseUri;\n return (this.clientConfig.gradientMode ? uri : \"/data\".concat(uri)).replace(/\\/($|\\?)/, '$1');\n },\n fetch: function fetch(query, params) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var mapResponse = options.filterResponse === false ? function (res) {\n return res;\n } : function (res) {\n return res.result;\n };\n\n var observable = this._dataRequest('query', {\n query: query,\n params: params\n }, options).pipe(map(mapResponse));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocument: function getDocument(id) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', id),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n return event.body.documents && event.body.documents[0];\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocuments: function getDocuments(ids) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', ids.join(',')),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n var indexed = indexBy(event.body.documents || [], function (doc) {\n return doc._id;\n });\n return ids.map(function (id) {\n return indexed[id] || null;\n });\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n create: function create(doc, options) {\n return this._create(doc, 'create', options);\n },\n createIfNotExists: function createIfNotExists(doc, options) {\n validators.requireDocumentId('createIfNotExists', doc);\n return this._create(doc, 'createIfNotExists', options);\n },\n createOrReplace: function createOrReplace(doc, options) {\n validators.requireDocumentId('createOrReplace', doc);\n return this._create(doc, 'createOrReplace', options);\n },\n patch: function patch(selector, operations) {\n return new Patch(selector, operations, this);\n },\n delete: function _delete(selection, options) {\n return this.dataRequest('mutate', {\n mutations: [{\n delete: getSelection(selection)\n }]\n }, options);\n },\n mutate: function mutate(mutations, options) {\n var mut = mutations instanceof Patch || mutations instanceof Transaction ? mutations.serialize() : mutations;\n var muts = Array.isArray(mut) ? mut : [mut];\n var transactionId = options && options.transactionId;\n return this.dataRequest('mutate', {\n mutations: muts,\n transactionId: transactionId\n }, options);\n },\n transaction: function transaction(operations) {\n return new Transaction(operations, this);\n },\n dataRequest: function dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var request = this._dataRequest(endpoint, body, options);\n\n return this.isPromiseAPI() ? toPromise(request) : request;\n },\n _dataRequest: function _dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var isMutation = endpoint === 'mutate'; // Check if the query string is within a configured threshold,\n // in which case we can use GET. Otherwise, use POST.\n\n var strQuery = !isMutation && encodeQueryString(body);\n var useGet = !isMutation && strQuery.length < getQuerySizeLimit;\n var stringQuery = useGet ? strQuery : '';\n var returnFirst = options.returnFirst;\n var timeout = options.timeout,\n token = options.token,\n tag = options.tag;\n var uri = this.getDataUrl(endpoint, stringQuery);\n var reqOptions = {\n method: useGet ? 'GET' : 'POST',\n uri: uri,\n json: true,\n body: useGet ? undefined : body,\n query: isMutation && getMutationQuery(options),\n timeout: timeout,\n token: token,\n tag: tag\n };\n return this._requestObservable(reqOptions).pipe(filter(isResponse), map(getBody), map(function (res) {\n if (!isMutation) {\n return res;\n } // Should we return documents?\n\n\n var results = res.results || [];\n\n if (options.returnDocuments) {\n return returnFirst ? results[0] && results[0].document : results.map(function (mut) {\n return mut.document;\n });\n } // Return a reduced subset\n\n\n var key = returnFirst ? 'documentId' : 'documentIds';\n var ids = returnFirst ? results[0] && results[0].id : results.map(function (mut) {\n return mut.id;\n });\n return _defineProperty({\n transactionId: res.transactionId,\n results: results\n }, key, ids);\n }));\n },\n _create: function _create(doc, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var mutation = _defineProperty({}, op, doc);\n\n var opts = assign({\n returnFirst: true,\n returnDocuments: true\n }, options);\n return this.dataRequest('mutate', {\n mutations: [mutation]\n }, opts);\n }\n};","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar validate = require('../validators');\n\nfunction DatasetsClient(client) {\n this.request = client.request.bind(client);\n}\n\nassign(DatasetsClient.prototype, {\n create: function create(name, options) {\n return this._modify('PUT', name, options);\n },\n edit: function edit(name, options) {\n return this._modify('PATCH', name, options);\n },\n delete: function _delete(name) {\n return this._modify('DELETE', name);\n },\n list: function list() {\n return this.request({\n uri: '/datasets'\n });\n },\n _modify: function _modify(method, name, body) {\n validate.dataset(name);\n return this.request({\n method: method,\n uri: \"/datasets/\".concat(name),\n body: body\n });\n }\n});\nmodule.exports = DatasetsClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction ProjectsClient(client) {\n this.client = client;\n}\n\nassign(ProjectsClient.prototype, {\n list: function list() {\n return this.client.request({\n uri: '/projects'\n });\n },\n getById: function getById(id) {\n return this.client.request({\n uri: \"/projects/\".concat(id)\n });\n }\n});\nmodule.exports = ProjectsClient;","\"use strict\";\n\nmodule.exports = function (params) {\n var qs = [];\n\n for (var key in params) {\n if (params.hasOwnProperty(key)) {\n qs.push(\"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(params[key])));\n }\n }\n\n return qs.length > 0 ? \"?\".concat(qs.join('&')) : '';\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/map'),\n map = _require.map;\n\nvar _require2 = require('@sanity/observable/operators/filter'),\n filter = _require2.filter;\n\nvar queryString = require('../http/queryString');\n\nvar validators = require('../validators');\n\nfunction AssetsClient(client) {\n this.client = client;\n}\n\nfunction toDocument(body) {\n // todo: rewrite to just return body.document in a while\n var document = body.document;\n Object.defineProperty(document, 'document', {\n enumerable: false,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The promise returned from client.asset.upload(...) now resolves with the asset document');\n return document;\n }\n });\n return document;\n}\n\nfunction optionsFromFile(opts, file) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts;\n }\n\n return assign({\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type\n }, opts);\n}\n\nassign(AssetsClient.prototype, {\n /**\n * Upload an asset\n *\n * @param {String} assetType `image` or `file`\n * @param {File|Blob|Buffer|ReadableStream} body File to upload\n * @param {Object} opts Options for the upload\n * @param {Boolean} opts.preserveFilename Whether or not to preserve the original filename (default: true)\n * @param {String} opts.filename Filename for this file (optional)\n * @param {Number} opts.timeout Milliseconds to wait before timing the request out (default: 0)\n * @param {String} opts.contentType Mime type of the file\n * @param {Array} opts.extract Array of metadata parts to extract from image.\n * Possible values: `location`, `exif`, `image`, `palette`\n * @param {String} opts.label Label\n * @param {String} opts.title Title\n * @param {String} opts.description Description\n * @param {String} opts.creditLine The credit to person(s) and/or organization(s) required by the supplier of the image to be used when published\n * @param {Object} opts.source Source data (when the asset is from an external service)\n * @param {String} opts.source.id The (u)id of the asset within the source, i.e. 'i-f323r1E'\n * Required if source is defined\n * @param {String} opts.source.name The name of the source, i.e. 'unsplash'\n * Required if source is defined\n * @param {String} opts.source.url A url to where to find the asset, or get more info about it in the source\n * Optional\n * @return {Promise} Resolves with the created asset document\n */\n upload: function upload(assetType, body) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n validators.validateAssetType(assetType); // If an empty array is given, explicitly set `none` to override API defaults\n\n var meta = opts.extract || undefined;\n\n if (meta && !meta.length) {\n meta = ['none'];\n }\n\n var dataset = validators.hasDataset(this.client.clientConfig);\n var assetEndpoint = assetType === 'image' ? 'images' : 'files';\n var options = optionsFromFile(opts, body);\n var tag = options.tag,\n label = options.label,\n title = options.title,\n description = options.description,\n creditLine = options.creditLine,\n filename = options.filename,\n source = options.source;\n var query = {\n label: label,\n title: title,\n description: description,\n filename: filename,\n meta: meta,\n creditLine: creditLine\n };\n\n if (source) {\n query.sourceId = source.id;\n query.sourceName = source.name;\n query.sourceUrl = source.url;\n }\n\n var observable = this.client._requestObservable({\n tag: tag,\n method: 'POST',\n timeout: options.timeout || 0,\n uri: \"/assets/\".concat(assetEndpoint, \"/\").concat(dataset),\n headers: options.contentType ? {\n 'Content-Type': options.contentType\n } : {},\n query: query,\n body: body\n });\n\n return this.client.isPromiseAPI() ? observable.pipe(filter(function (event) {\n return event.type === 'response';\n }), map(function (event) {\n return toDocument(event.body);\n })).toPromise() : observable;\n },\n delete: function _delete(type, id) {\n // eslint-disable-next-line no-console\n console.warn('client.assets.delete() is deprecated, please use client.delete(<document-id>)');\n var docId = id || '';\n\n if (!/^(image|file)-/.test(docId)) {\n docId = \"\".concat(type, \"-\").concat(docId);\n } else if (type._id) {\n // We could be passing an entire asset document instead of an ID\n docId = type._id;\n }\n\n validators.hasDataset(this.client.clientConfig);\n return this.client.delete(docId);\n },\n getImageUrl: function getImageUrl(ref, query) {\n var id = ref._ref || ref;\n\n if (typeof id !== 'string') {\n throw new Error('getImageUrl() needs either an object with a _ref, or a string with an asset document ID');\n }\n\n if (!/^image-[A-Za-z0-9_]+-\\d+x\\d+-[a-z]{1,5}$/.test(id)) {\n throw new Error(\"Unsupported asset ID \\\"\".concat(id, \"\\\". URL generation only works for auto-generated IDs.\"));\n }\n\n var _id$split = id.split('-'),\n _id$split2 = _slicedToArray(_id$split, 4),\n assetId = _id$split2[1],\n size = _id$split2[2],\n format = _id$split2[3];\n\n validators.hasDataset(this.client.clientConfig);\n var _this$client$clientCo = this.client.clientConfig,\n projectId = _this$client$clientCo.projectId,\n dataset = _this$client$clientCo.dataset;\n var qs = query ? queryString(query) : '';\n return \"https://cdn.sanity.io/images/\".concat(projectId, \"/\").concat(dataset, \"/\").concat(assetId, \"-\").concat(size, \".\").concat(format).concat(qs);\n }\n});\nmodule.exports = AssetsClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction UsersClient(client) {\n this.client = client;\n}\n\nassign(UsersClient.prototype, {\n getById: function getById(id) {\n return this.client.request({\n uri: \"/users/\".concat(id)\n });\n }\n});\nmodule.exports = UsersClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction AuthClient(client) {\n this.client = client;\n}\n\nassign(AuthClient.prototype, {\n getLoginProviders: function getLoginProviders() {\n return this.client.request({\n uri: '/auth/providers'\n });\n },\n logout: function logout() {\n return this.client.request({\n uri: '/auth/logout',\n method: 'POST'\n });\n }\n});\nmodule.exports = AuthClient;","module.exports = function Pubsub() {\n var subscribers = []\n return {\n subscribe: subscribe,\n publish: publish\n }\n function subscribe(subscriber) {\n subscribers.push(subscriber)\n return function unsubscribe() {\n var idx = subscribers.indexOf(subscriber)\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n }\n }\n function publish() {\n for (var i = 0; i < subscribers.length; i++) {\n subscribers[i].apply(null, arguments)\n }\n }\n}","module.exports = middleware => {\n const applyMiddleware = (hook, defaultValue, ...args) => {\n const bailEarly = hook === 'onError'\n\n let value = defaultValue\n for (let i = 0; i < middleware[hook].length; i++) {\n const handler = middleware[hook][i]\n value = handler(value, ...args)\n\n if (bailEarly && !value) {\n break\n }\n }\n\n return value\n }\n\n return applyMiddleware\n}\n","const objectAssign = require('object-assign')\nconst urlParse = require('url-parse')\n\nconst isReactNative = typeof navigator === 'undefined' ? false : navigator.product === 'ReactNative'\n\nconst has = Object.prototype.hasOwnProperty\nconst defaultOptions = {timeout: isReactNative ? 60000 : 120000}\n\nmodule.exports = opts => {\n const options =\n typeof opts === 'string'\n ? objectAssign({url: opts}, defaultOptions)\n : objectAssign({}, defaultOptions, opts)\n\n // Parse URL into parts\n const url = urlParse(\n options.url,\n {}, // Don't use current browser location\n true // Parse query strings\n )\n\n // Normalize timeouts\n options.timeout = normalizeTimeout(options.timeout)\n\n // Shallow-merge (override) existing query params\n if (options.query) {\n url.query = objectAssign({}, url.query, removeUndefined(options.query))\n }\n\n // Implicit POST if we have not specified a method but have a body\n options.method =\n options.body && !options.method ? 'POST' : (options.method || 'GET').toUpperCase()\n\n // Stringify URL\n options.url = url.toString(stringifyQueryString)\n\n return options\n}\n\nfunction stringifyQueryString(obj) {\n const pairs = []\n for (const key in obj) {\n if (has.call(obj, key)) {\n push(key, obj[key])\n }\n }\n\n return pairs.length ? pairs.join('&') : ''\n\n function push(key, val) {\n if (Array.isArray(val)) {\n val.forEach(item => push(key, item))\n } else {\n pairs.push([key, val].map(encodeURIComponent).join('='))\n }\n }\n}\n\nfunction normalizeTimeout(time) {\n if (time === false || time === 0) {\n return false\n }\n\n if (time.connect || time.socket) {\n return time\n }\n\n const delay = Number(time)\n if (isNaN(delay)) {\n return normalizeTimeout(defaultOptions.timeout)\n }\n\n return {connect: delay, socket: delay}\n}\n\nfunction removeUndefined(obj) {\n const target = {}\n for (const key in obj) {\n if (obj[key] !== undefined) {\n target[key] = obj[key]\n }\n }\n return target\n}\n","const validUrl = /^https?:\\/\\//i\n\nmodule.exports = options => {\n if (!validUrl.test(options.url)) {\n throw new Error(`\"${options.url}\" is not a valid URL`)\n }\n}\n","/*! simple-concat. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nmodule.exports = function (stream, cb) {\n var chunks = []\n stream.on('data', function (chunk) {\n chunks.push(chunk)\n })\n stream.once('end', function () {\n if (cb) cb(null, Buffer.concat(chunks))\n cb = null\n })\n stream.once('error', function (err) {\n if (cb) cb(err)\n cb = null\n })\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\"use strict\";\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = require('ms');\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * Active `debug` instances.\n */\n\n createDebug.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n\n function debug() {\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return match;\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = createDebug.enabled(namespace);\n debug.useColors = createDebug.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n debug.extend = extend; // Debug.formatArgs = formatArgs;\n // debug.rawLog = rawLog;\n // env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n createDebug.instances.push(debug);\n return debug;\n }\n\n function destroy() {\n var index = createDebug.instances.indexOf(this);\n\n if (index !== -1) {\n createDebug.instances.splice(index, 1);\n return true;\n }\n\n return false;\n }\n\n function extend(namespace, delimiter) {\n return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < createDebug.instances.length; i++) {\n var instance = createDebug.instances[i];\n instance.enabled = createDebug.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @api public\n */\n\n\n function disable() {\n createDebug.enable('');\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;\n\n","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n var _console;\n\n // This hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return (typeof console === \"undefined\" ? \"undefined\" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {} // Swallow\n // XXX (@Qix-) should we be logging these?\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};\n\n","'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n","'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n","\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar tty = require('tty');\n\nvar util = require('util');\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n // eslint-disable-next-line import/no-extraneous-dependencies\n var supportsColor = require('supports-color');\n\n if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n exports.colors = [20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221];\n }\n} catch (error) {} // Swallow - we only care if `supports-color` is available; it doesn't have to be.\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // Camel-case\n var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function (_, k) {\n return k.toUpperCase();\n }); // Coerce string value into JS value\n\n var val = process.env[key];\n\n if (/^(yes|on|true|enabled)$/i.test(val)) {\n val = true;\n } else if (/^(no|off|false|disabled)$/i.test(val)) {\n val = false;\n } else if (val === 'null') {\n val = null;\n } else {\n val = Number(val);\n }\n\n obj[prop] = val;\n return obj;\n}, {});\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);\n}\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n var name = this.namespace,\n useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var colorCode = \"\\x1B[3\" + (c < 8 ? c : '8;5;' + c);\n var prefix = \" \".concat(colorCode, \";1m\").concat(name, \" \\x1B[0m\");\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + \"\\x1B[0m\");\n } else {\n args[0] = getDate() + name + ' ' + args[0];\n }\n}\n\nfunction getDate() {\n if (exports.inspectOpts.hideDate) {\n return '';\n }\n\n return new Date().toISOString() + ' ';\n}\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\n\nfunction log() {\n return process.stderr.write(util.format.apply(util, arguments) + '\\n');\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n if (namespaces) {\n process.env.DEBUG = namespaces;\n } else {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n return process.env.DEBUG;\n}\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\n\nfunction init(debug) {\n debug.inspectOpts = {};\n var keys = Object.keys(exports.inspectOpts);\n\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n')\n .map(function (str) { return str.trim(); })\n .join(' ');\n};\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\n\nformatters.O = function (v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n","\"use strict\";\n\n/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!(typeof data === \"string\" || typeof data === \"object\" && (\"length\" in data))) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (typeof data === \"function\") {\n callback = data;\n data = encoding = null;\n }\n else if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.once(\"response\", clearTimer);\n this.once(\"error\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.substr(0, protocol.length - 1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n this._currentUrl = url.format(this._options);\n\n // Set up event handlers\n request._redirectable = this;\n for (var e = 0; e < events.length; e++) {\n request.on(events[e], eventHandlers[events[e]]);\n }\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end.\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n var location = response.headers.location;\n if (location && this._options.followRedirects !== false &&\n statusCode >= 300 && statusCode < 400) {\n // Abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var previousHostName = removeMatchingHeaders(/^host$/i, this._options.headers) ||\n url.parse(this._currentUrl).hostname;\n\n // Create the redirected request\n var redirectUrl = url.resolve(this._currentUrl, location);\n debug(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop the Authorization header if redirecting to another host\n if (redirectUrlParts.hostname !== previousHostName) {\n removeMatchingHeaders(/^authorization$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (typeof this._options.beforeRedirect === \"function\") {\n var responseDetails = { headers: response.headers };\n try {\n this._options.beforeRedirect.call(null, this._options, responseDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n var error = new RedirectionError(\"Redirected request failed: \" + cause.message);\n error.cause = cause;\n this.emit(\"error\", error);\n }\n }\n else {\n // The response is not a redirect; return it as-is\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (typeof input === \"string\") {\n var urlStr = input;\n try {\n input = urlToOptions(new URL(urlStr));\n }\n catch (err) {\n /* istanbul ignore next */\n input = url.parse(urlStr);\n }\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return lastValue;\n}\n\nfunction createErrorType(code, defaultMessage) {\n function CustomError(message) {\n Error.captureStackTrace(this, this.constructor);\n this.message = message || defaultMessage;\n }\n CustomError.prototype = new Error();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n CustomError.prototype.code = code;\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var e = 0; e < events.length; e++) {\n request.removeListener(events[e], eventHandlers[events[e]]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","'use strict';\n\nmodule.exports = function (req, time) {\n\tif (req.timeoutTimer) {\n\t\treturn req;\n\t}\n\n\tvar delays = isNaN(time) ? time : {socket: time, connect: time};\n\tvar hostHeader = req.getHeader('host');\n\tvar host = hostHeader ? ' to ' + hostHeader : '';\n\n\tif (delays.connect !== undefined) {\n\t\treq.timeoutTimer = setTimeout(function timeoutHandler() {\n\t\t\treq.abort();\n\t\t\tvar e = new Error('Connection timed out on request' + host);\n\t\t\te.code = 'ETIMEDOUT';\n\t\t\treq.emit('error', e);\n\t\t}, delays.connect);\n\t}\n\n\t// Clear the connection timeout timer once a socket is assigned to the\n\t// request and is connected.\n\treq.on('socket', function assign(socket) {\n\t\t// Socket may come from Agent pool and may be already connected.\n\t\tif (!(socket.connecting || socket._connecting)) {\n\t\t\tconnect();\n\t\t\treturn;\n\t\t}\n\n\t\tsocket.once('connect', connect);\n\t});\n\n\tfunction clear() {\n\t\tif (req.timeoutTimer) {\n\t\t\tclearTimeout(req.timeoutTimer);\n\t\t\treq.timeoutTimer = null;\n\t\t}\n\t}\n\n\tfunction connect() {\n\t\tclear();\n\n\t\tif (delays.socket !== undefined) {\n\t\t\t// Abort the request if there is no activity on the socket for more\n\t\t\t// than `delays.socket` milliseconds.\n\t\t\treq.setTimeout(delays.socket, function socketTimeoutHandler() {\n\t\t\t\treq.abort();\n\t\t\t\tvar e = new Error('Socket timed out on request' + host);\n\t\t\t\te.code = 'ESOCKETTIMEDOUT';\n\t\t\t\treq.emit('error', e);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn req.on('error', clear);\n};\n","'use strict';\n\nvar isStream = module.exports = function (stream) {\n\treturn stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';\n};\n\nisStream.writable = function (stream) {\n\treturn isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';\n};\n\nisStream.readable = function (stream) {\n\treturn isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';\n};\n\nisStream.duplex = function (stream) {\n\treturn isStream.writable(stream) && isStream.readable(stream);\n};\n\nisStream.transform = function (stream) {\n\treturn isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';\n};\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = require('stream');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n}\n","var Readable = require('readable-stream').Readable\nvar inherits = require('inherits')\n\nmodule.exports = from2\n\nfrom2.ctor = ctor\nfrom2.obj = obj\n\nvar Proto = ctor()\n\nfunction toFunction(list) {\n list = list.slice()\n return function (_, cb) {\n var err = null\n var item = list.length ? list.shift() : null\n if (item instanceof Error) {\n err = item\n item = null\n }\n\n cb(err, item)\n }\n}\n\nfunction from2(opts, read) {\n if (typeof opts !== 'object' || Array.isArray(opts)) {\n read = opts\n opts = {}\n }\n\n var rs = new Proto(opts)\n rs._from = Array.isArray(read) ? toFunction(read) : (read || noop)\n return rs\n}\n\nfunction ctor(opts, read) {\n if (typeof opts === 'function') {\n read = opts\n opts = {}\n }\n\n opts = defaults(opts)\n\n inherits(Class, Readable)\n function Class(override) {\n if (!(this instanceof Class)) return new Class(override)\n this._reading = false\n this._callback = check\n this.destroyed = false\n Readable.call(this, override || opts)\n\n var self = this\n var hwm = this._readableState.highWaterMark\n\n function check(err, data) {\n if (self.destroyed) return\n if (err) return self.destroy(err)\n if (data === null) return self.push(null)\n self._reading = false\n if (self.push(data)) self._read(hwm)\n }\n }\n\n Class.prototype._from = read || noop\n Class.prototype._read = function(size) {\n if (this._reading || this.destroyed) return\n this._reading = true\n this._from(size, this._callback)\n }\n\n Class.prototype.destroy = function(err) {\n if (this.destroyed) return\n this.destroyed = true\n\n var self = this\n process.nextTick(function() {\n if (err) self.emit('error', err)\n self.emit('close')\n })\n }\n\n return Class\n}\n\nfunction obj(opts, read) {\n if (typeof opts === 'function' || Array.isArray(opts)) {\n read = opts\n opts = {}\n }\n\n opts = defaults(opts)\n opts.objectMode = true\n opts.highWaterMark = 16\n\n return from2(opts, read)\n}\n\nfunction noop () {}\n\nfunction defaults(opts) {\n opts = opts || {}\n return opts\n}\n","'use strict';\nmodule.exports = x => (\n\tx instanceof Promise ||\n\t(\n\t\tx !== null &&\n\t\ttypeof x === 'object' &&\n\t\ttypeof x.then === 'function' &&\n\t\ttypeof x.catch === 'function'\n\t)\n);\n","'use strict';\nconst from = require('from2');\nconst pIsPromise = require('p-is-promise');\n\nmodule.exports = x => {\n\tif (Array.isArray(x)) {\n\t\tx = x.slice();\n\t}\n\n\tlet promise;\n\tlet iterator;\n\n\tprepare(x);\n\n\tfunction prepare(value) {\n\t\tx = value;\n\t\tpromise = pIsPromise(x) ? x : null;\n\t\t// we don't iterate on strings and buffers since slicing them is ~7x faster\n\t\tconst shouldIterate = !promise && x[Symbol.iterator] && typeof x !== 'string' && !Buffer.isBuffer(x);\n\t\titerator = shouldIterate ? x[Symbol.iterator]() : null;\n\t}\n\n\treturn from(function reader(size, cb) {\n\t\tif (promise) {\n\t\t\tpromise.then(prepare).then(() => reader.call(this, size, cb), cb);\n\t\t\treturn;\n\t\t}\n\n\t\tif (iterator) {\n\t\t\tconst obj = iterator.next();\n\t\t\tsetImmediate(cb, null, obj.done ? null : obj.value);\n\t\t\treturn;\n\t\t}\n\n\t\tif (x.length === 0) {\n\t\t\tsetImmediate(cb, null, null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst chunk = x.slice(0, size);\n\t\tx = x.slice(size);\n\n\t\tsetImmediate(cb, null, chunk);\n\t});\n};\n\nmodule.exports.obj = x => {\n\tif (Array.isArray(x)) {\n\t\tx = x.slice();\n\t}\n\n\tlet promise;\n\tlet iterator;\n\n\tprepare(x);\n\n\tfunction prepare(value) {\n\t\tx = value;\n\t\tpromise = pIsPromise(x) ? x : null;\n\t\titerator = !promise && x[Symbol.iterator] ? x[Symbol.iterator]() : null;\n\t}\n\n\treturn from.obj(function reader(size, cb) {\n\t\tif (promise) {\n\t\t\tpromise.then(prepare).then(() => reader.call(this, size, cb), cb);\n\t\t\treturn;\n\t\t}\n\n\t\tif (iterator) {\n\t\t\tconst obj = iterator.next();\n\t\t\tsetImmediate(cb, null, obj.done ? null : obj.value);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.push(x);\n\n\t\tsetImmediate(cb, null, null);\n\t});\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var Transform = require('readable-stream').Transform\n , inherits = require('util').inherits\n , xtend = require('xtend')\n\nfunction DestroyableTransform(opts) {\n Transform.call(this, opts)\n this._destroyed = false\n}\n\ninherits(DestroyableTransform, Transform)\n\nDestroyableTransform.prototype.destroy = function(err) {\n if (this._destroyed) return\n this._destroyed = true\n \n var self = this\n process.nextTick(function() {\n if (err)\n self.emit('error', err)\n self.emit('close')\n })\n}\n\n// a noop _transform function\nfunction noop (chunk, enc, callback) {\n callback(null, chunk)\n}\n\n\n// create a new export function, used by both the main export and\n// the .ctor export, contains common logic for dealing with arguments\nfunction through2 (construct) {\n return function (options, transform, flush) {\n if (typeof options == 'function') {\n flush = transform\n transform = options\n options = {}\n }\n\n if (typeof transform != 'function')\n transform = noop\n\n if (typeof flush != 'function')\n flush = null\n\n return construct(options, transform, flush)\n }\n}\n\n\n// main export, just make me a transform stream!\nmodule.exports = through2(function (options, transform, flush) {\n var t2 = new DestroyableTransform(options)\n\n t2._transform = transform\n\n if (flush)\n t2._flush = flush\n\n return t2\n})\n\n\n// make me a reusable prototype that I can `new`, or implicitly `new`\n// with a constructor call\nmodule.exports.ctor = through2(function (options, transform, flush) {\n function Through2 (override) {\n if (!(this instanceof Through2))\n return new Through2(override)\n\n this.options = xtend(options, override)\n\n DestroyableTransform.call(this, this.options)\n }\n\n inherits(Through2, DestroyableTransform)\n\n Through2.prototype._transform = transform\n\n if (flush)\n Through2.prototype._flush = flush\n\n return Through2\n})\n\n\nmodule.exports.obj = through2(function (options, transform, flush) {\n var t2 = new DestroyableTransform(xtend({ objectMode: true, highWaterMark: 16 }, options))\n\n t2._transform = transform\n\n if (flush)\n t2._flush = flush\n\n return t2\n})\n","var tick = 1\nvar maxTick = 65535\nvar resolution = 4\nvar inc = function () {\n tick = (tick + 1) & maxTick\n}\n\nvar timer = setInterval(inc, (1000 / resolution) | 0)\nif (timer.unref) timer.unref()\n\nmodule.exports = function (seconds) {\n var size = resolution * (seconds || 5)\n var buffer = [0]\n var pointer = 1\n var last = (tick - 1) & maxTick\n\n return function (delta) {\n var dist = (tick - last) & maxTick\n if (dist > size) dist = size\n last = tick\n\n while (dist--) {\n if (pointer === size) pointer = 0\n buffer[pointer] = buffer[pointer === 0 ? size - 1 : pointer - 1]\n pointer++\n }\n\n if (delta) buffer[pointer - 1] += delta\n\n var top = buffer[pointer - 1]\n var btm = buffer.length < size ? 0 : buffer[pointer === size ? 0 : pointer]\n\n return buffer.length < resolution ? top : (top - btm) * resolution / buffer.length\n }\n}\n","var through = require('through2');\nvar speedometer = require('speedometer');\n\nmodule.exports = function(options, onprogress) {\n\tif (typeof options === 'function') return module.exports(null, options);\n\toptions = options || {};\n\n\tvar length = options.length || 0;\n\tvar time = options.time || 0;\n\tvar drain = options.drain || false;\n\tvar transferred = options.transferred || 0;\n\tvar nextUpdate = Date.now()+time;\n\tvar delta = 0;\n\tvar speed = speedometer(options.speed || 5000);\n\tvar startTime = Date.now();\n\n\tvar update = {\n\t\tpercentage: 0,\n\t\ttransferred: transferred,\n\t\tlength: length,\n\t\tremaining: length,\n\t\teta: 0,\n\t\truntime: 0\n\t};\n\n\tvar emit = function(ended) {\n\t\tupdate.delta = delta;\n\t\tupdate.percentage = ended ? 100 : (length ? transferred/length*100 : 0);\n\t\tupdate.speed = speed(delta);\n\t\tupdate.eta = Math.round(update.remaining / update.speed);\n\t\tupdate.runtime = parseInt((Date.now() - startTime)/1000);\n\t\tnextUpdate = Date.now()+time;\n\n\t\tdelta = 0;\n\n\t\ttr.emit('progress', update);\n\t};\n\tvar write = function(chunk, enc, callback) {\n\t\tvar len = options.objectMode ? 1 : chunk.length;\n\t\ttransferred += len;\n\t\tdelta += len;\n\t\tupdate.transferred = transferred;\n\t\tupdate.remaining = length >= transferred ? length - transferred : 0;\n\n\t\tif (Date.now() >= nextUpdate) emit(false);\n\t\tcallback(null, chunk);\n\t};\n\tvar end = function(callback) {\n\t\temit(true);\n\t\tcallback();\n\t};\n\n\tvar tr = through(options.objectMode ? {objectMode:true, highWaterMark:16} : {}, write, end);\n\tvar onlength = function(newLength) {\n\t\tlength = newLength;\n\t\tupdate.length = length;\n\t\tupdate.remaining = length - update.transferred;\n\t\ttr.emit('length', length);\n\t};\n\t\n\t// Expose `onlength()` handler as `setLength()` to support custom use cases where length\n\t// is not known until after a few chunks have already been pumped, or is\n\t// calculated on the fly.\n\ttr.setLength = onlength;\n\t\n\ttr.on('pipe', function(stream) {\n\t\tif (typeof length === 'number') return;\n\t\t// Support http module\n\t\tif (stream.readable && !stream.writable && stream.headers) {\n\t\t\treturn onlength(parseInt(stream.headers['content-length'] || 0));\n\t\t}\n\n\t\t// Support streams with a length property\n\t\tif (typeof stream.length === 'number') {\n\t\t\treturn onlength(stream.length);\n\t\t}\n\n\t\t// Support request module\n\t\tstream.on('response', function(res) {\n\t\t\tif (!res || !res.headers) return;\n\t\t\tif (res.headers['content-encoding'] === 'gzip') return;\n\t\t\tif (res.headers['content-length']) {\n\t\t\t\treturn onlength(parseInt(res.headers['content-length']));\n\t\t\t}\n\t\t});\n\t});\n\n\tif (drain) tr.resume();\n\tif (onprogress) tr.on('progress', onprogress);\n\n\ttr.progress = function() {\n\t\tupdate.speed = speed(0);\n\t\tupdate.eta = Math.round(update.remaining / update.speed);\n\n\t\treturn update;\n\t};\n\treturn tr;\n};\n","'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProps = [\n\t'destroy',\n\t'setTimeout',\n\t'socket',\n\t'headers',\n\t'trailers',\n\t'rawHeaders',\n\t'statusCode',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'rawTrailers',\n\t'statusMessage'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tconst fromProps = new Set(Object.keys(fromStream).concat(knownProps));\n\n\tfor (const prop of fromProps) {\n\t\t// Don't overwrite existing properties\n\t\tif (prop in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttoStream[prop] = typeof fromStream[prop] === 'function' ? fromStream[prop].bind(fromStream) : fromStream[prop];\n\t}\n};\n","'use strict';\nconst PassThrough = require('stream').PassThrough;\nconst zlib = require('zlib');\nconst mimicResponse = require('mimic-response');\n\nmodule.exports = response => {\n\t// TODO: Use Array#includes when targeting Node.js 6\n\tif (['gzip', 'deflate'].indexOf(response.headers['content-encoding']) === -1) {\n\t\treturn response;\n\t}\n\n\tconst unzip = zlib.createUnzip();\n\tconst stream = new PassThrough();\n\n\tmimicResponse(response, stream);\n\n\tunzip.on('error', err => {\n\t\tif (err.code === 'Z_BUF_ERROR') {\n\t\t\tstream.end();\n\t\t\treturn;\n\t\t}\n\n\t\tstream.emit('error', err);\n\t});\n\n\tresponse.pipe(unzip).pipe(stream);\n\n\treturn stream;\n};\n","/**\n * Code borrowed from https://github.com/request/request\n * Apache License 2.0\n */\n\n/* eslint-disable no-process-env */\nconst url = require('url')\nconst objectAssign = require('object-assign')\n\nfunction formatHostname(hostname) {\n // canonicalize the hostname, so that 'oogle.com' won't match 'google.com'\n return hostname.replace(/^\\.*/, '.').toLowerCase()\n}\n\nfunction parseNoProxyZone(zoneStr) {\n const zone = zoneStr.trim().toLowerCase()\n\n const zoneParts = zone.split(':', 2)\n const zoneHost = formatHostname(zoneParts[0])\n const zonePort = zoneParts[1]\n const hasPort = zone.indexOf(':') > -1\n\n return {hostname: zoneHost, port: zonePort, hasPort: hasPort}\n}\n\nfunction uriInNoProxy(uri, noProxy) {\n const port = uri.port || (uri.protocol === 'https:' ? '443' : '80')\n const hostname = formatHostname(uri.hostname)\n const noProxyList = noProxy.split(',')\n\n // iterate through the noProxyList until it finds a match.\n return noProxyList.map(parseNoProxyZone).some(noProxyZone => {\n const isMatchedAt = hostname.indexOf(noProxyZone.hostname)\n const hostnameMatched =\n isMatchedAt > -1 && isMatchedAt === hostname.length - noProxyZone.hostname.length\n\n if (noProxyZone.hasPort) {\n return port === noProxyZone.port && hostnameMatched\n }\n\n return hostnameMatched\n })\n}\n\nfunction getProxyFromUri(uri) {\n // Decide the proper request proxy to use based on the request URI object and the\n // environmental variables (NO_PROXY, HTTP_PROXY, etc.)\n // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html)\n const noProxy = process.env.NO_PROXY || process.env.no_proxy || ''\n\n // if the noProxy is a wildcard then return null\n if (noProxy === '*') {\n return null\n }\n\n // if the noProxy is not empty and the uri is found return null\n if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {\n return null\n }\n\n // Check for HTTP or HTTPS Proxy in environment, else default to null\n if (uri.protocol === 'http:') {\n return process.env.HTTP_PROXY || process.env.http_proxy || null\n }\n\n if (uri.protocol === 'https:') {\n return (\n process.env.HTTPS_PROXY ||\n process.env.https_proxy ||\n process.env.HTTP_PROXY ||\n process.env.http_proxy ||\n null\n )\n }\n\n // if none of that works, return null\n // (What uri protocol are you using then?)\n return null\n}\n\nfunction getHostFromUri(uri) {\n let host = uri.host\n\n // Drop :port suffix from Host header if known protocol.\n if (uri.port) {\n if (\n (uri.port === '80' && uri.protocol === 'http:') ||\n (uri.port === '443' && uri.protocol === 'https:')\n ) {\n host = uri.hostname\n }\n }\n\n return host\n}\n\nfunction getHostHeaderWithPort(uri) {\n const port = uri.port || (uri.protocol === 'https:' ? '443' : '80')\n return `${uri.hostname}:${port}`\n}\n\nfunction rewriteUriForProxy(reqOpts, uri, proxy) {\n const headers = reqOpts.headers || {}\n const options = objectAssign({}, reqOpts, {headers})\n headers.host = headers.host || getHostHeaderWithPort(uri)\n options.protocol = proxy.protocol || options.protocol\n options.hostname = proxy.host.replace(/:\\d+/, '')\n options.port = proxy.port\n options.host = getHostFromUri(objectAssign({}, uri, proxy))\n options.href = `${options.protocol}//${options.host}${options.path}`\n options.path = url.format(uri)\n return options\n}\n\nfunction getProxyOptions(options) {\n let proxy\n if (options.hasOwnProperty('proxy')) {\n proxy = options.proxy\n } else {\n const uri = url.parse(options.url)\n proxy = getProxyFromUri(uri)\n }\n\n return typeof proxy === 'string' ? url.parse(proxy) : proxy\n}\n\nexports.rewriteUriForProxy = rewriteUriForProxy\nexports.getProxyOptions = getProxyOptions\n","'use strict'\n\nvar net = require('net')\n , tls = require('tls')\n , http = require('http')\n , https = require('https')\n , events = require('events')\n , assert = require('assert')\n , util = require('util')\n , Buffer = require('safe-buffer').Buffer\n ;\n\nexports.httpOverHttp = httpOverHttp\nexports.httpsOverHttp = httpsOverHttp\nexports.httpOverHttps = httpOverHttps\nexports.httpsOverHttps = httpsOverHttps\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options)\n agent.request = http.request\n return agent\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options)\n agent.request = http.request\n agent.createSocket = createSecureSocket\n agent.defaultPort = 443\n return agent\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options)\n agent.request = https.request\n return agent\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options)\n agent.request = https.request\n agent.createSocket = createSecureSocket\n agent.defaultPort = 443\n return agent\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this\n self.options = options || {}\n self.proxyOptions = self.options.proxy || {}\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets\n self.requests = []\n self.sockets = []\n\n self.on('free', function onFree(socket, host, port) {\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i]\n if (pending.host === host && pending.port === port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1)\n pending.request.onSocket(socket)\n return\n }\n }\n socket.destroy()\n self.removeSocket(socket)\n })\n}\nutil.inherits(TunnelingAgent, events.EventEmitter)\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, options) {\n var self = this\n\n // Legacy API: addRequest(req, host, port, path)\n if (typeof options === 'string') {\n options = {\n host: options,\n port: arguments[2],\n path: arguments[3]\n };\n }\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push({host: options.host, port: options.port, request: req})\n return\n }\n\n // If we are under maxSockets create a new one.\n self.createConnection({host: options.host, port: options.port, request: req})\n}\n\nTunnelingAgent.prototype.createConnection = function createConnection(pending) {\n var self = this\n\n self.createSocket(pending, function(socket) {\n socket.on('free', onFree)\n socket.on('close', onCloseOrRemove)\n socket.on('agentRemove', onCloseOrRemove)\n pending.request.onSocket(socket)\n\n function onFree() {\n self.emit('free', socket, pending.host, pending.port)\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket)\n socket.removeListener('free', onFree)\n socket.removeListener('close', onCloseOrRemove)\n socket.removeListener('agentRemove', onCloseOrRemove)\n }\n })\n}\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this\n var placeholder = {}\n self.sockets.push(placeholder)\n\n var connectOptions = mergeOptions({}, self.proxyOptions,\n { method: 'CONNECT'\n , path: options.host + ':' + options.port\n , agent: false\n }\n )\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {}\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n Buffer.from(connectOptions.proxyAuth).toString('base64')\n }\n\n debug('making CONNECT request')\n var connectReq = self.request(connectOptions)\n connectReq.useChunkedEncodingByDefault = false // for v0.6\n connectReq.once('response', onResponse) // for v0.6\n connectReq.once('upgrade', onUpgrade) // for v0.6\n connectReq.once('connect', onConnect) // for v0.7 or later\n connectReq.once('error', onError)\n connectReq.end()\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head)\n })\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners()\n socket.removeAllListeners()\n\n if (res.statusCode === 200) {\n assert.equal(head.length, 0)\n debug('tunneling connection has established')\n self.sockets[self.sockets.indexOf(placeholder)] = socket\n cb(socket)\n } else {\n debug('tunneling socket could not be established, statusCode=%d', res.statusCode)\n var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode)\n error.code = 'ECONNRESET'\n options.request.emit('error', error)\n self.removeSocket(placeholder)\n }\n }\n\n function onError(cause) {\n connectReq.removeAllListeners()\n\n debug('tunneling socket could not be established, cause=%s\\n', cause.message, cause.stack)\n var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message)\n error.code = 'ECONNRESET'\n options.request.emit('error', error)\n self.removeSocket(placeholder)\n }\n}\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) return\n\n this.sockets.splice(pos, 1)\n\n var pending = this.requests.shift()\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createConnection(pending)\n }\n}\n\nfunction createSecureSocket(options, cb) {\n var self = this\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, mergeOptions({}, self.options,\n { servername: options.host\n , socket: socket\n }\n ))\n self.sockets[self.sockets.indexOf(socket)] = secureSocket\n cb(secureSocket)\n })\n}\n\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i]\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides)\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j]\n if (overrides[k] !== undefined) {\n target[k] = overrides[k]\n }\n }\n }\n }\n return target\n}\n\n\nvar debug\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments)\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0]\n } else {\n args.unshift('TUNNEL:')\n }\n console.error.apply(console, args)\n }\n} else {\n debug = function() {}\n}\nexports.debug = debug // for test\n","/**\n * Code borrowed from https://github.com/request/request\n * Modified to be less request-specific, more functional\n * Apache License 2.0\n */\nconst url = require('url')\nconst tunnel = require('tunnel-agent')\nconst objectAssign = require('object-assign')\n\nconst uriParts = [\n 'protocol',\n 'slashes',\n 'auth',\n 'host',\n 'port',\n 'hostname',\n 'hash',\n 'search',\n 'query',\n 'pathname',\n 'path',\n 'href'\n]\n\nconst defaultProxyHeaderWhiteList = [\n 'accept',\n 'accept-charset',\n 'accept-encoding',\n 'accept-language',\n 'accept-ranges',\n 'cache-control',\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-md5',\n 'content-range',\n 'content-type',\n 'connection',\n 'date',\n 'expect',\n 'max-forwards',\n 'pragma',\n 'referer',\n 'te',\n 'user-agent',\n 'via'\n]\n\nconst defaultProxyHeaderExclusiveList = ['proxy-authorization']\n\nexports.shouldEnable = (options, tunnelOption) => {\n // Tunnel HTTPS by default. Allow the user to override this setting.\n\n // If user has specified a specific tunnel override...\n if (typeof options.tunnel !== 'undefined') {\n return Boolean(options.tunnel)\n }\n\n // If the destination is HTTPS, tunnel.\n const uri = url.parse(options.url)\n if (uri.protocol === 'https:') {\n return true\n }\n\n // Otherwise, do not use tunnel.\n return false\n}\n\nexports.applyAgent = (opts = {}, proxy) => {\n const options = objectAssign({}, opts)\n\n // Setup proxy header exclusive list and whitelist\n const proxyHeaderWhiteList = defaultProxyHeaderWhiteList\n .concat(options.proxyHeaderWhiteList || [])\n .map(header => header.toLowerCase())\n\n const proxyHeaderExclusiveList = defaultProxyHeaderExclusiveList\n .concat(options.proxyHeaderExclusiveList || [])\n .map(header => header.toLowerCase())\n\n // Get the headers we should send to the proxy\n const proxyHeaders = getAllowedProxyHeaders(options.headers, proxyHeaderWhiteList)\n proxyHeaders.host = constructProxyHost(options)\n\n // Reduce headers to the ones not exclusive for the proxy\n options.headers = Object.keys(options.headers || {}).reduce((headers, header) => {\n const isAllowed = proxyHeaderExclusiveList.indexOf(header.toLowerCase()) === -1\n if (isAllowed) {\n headers[header] = options.headers[header]\n }\n\n return headers\n }, {})\n\n const tunnelFn = getTunnelFn(options, proxy)\n const tunnelOptions = constructTunnelOptions(options, proxy, proxyHeaders)\n options.agent = tunnelFn(tunnelOptions)\n\n return options\n}\n\nfunction getTunnelFn(options, proxy) {\n const uri = getUriParts(options)\n const tunnelFnName = constructTunnelFnName(uri, proxy)\n return tunnel[tunnelFnName]\n}\n\nfunction getUriParts(options) {\n return uriParts.reduce((uri, part) => {\n uri[part] = options[part]\n return uri\n }, {})\n}\n\nfunction constructTunnelFnName(uri, proxy) {\n const uriProtocol = uri.protocol === 'https:' ? 'https' : 'http'\n const proxyProtocol = proxy.protocol === 'https:' ? 'Https' : 'Http'\n return [uriProtocol, proxyProtocol].join('Over')\n}\n\nfunction constructProxyHost(uri) {\n const port = uri.port\n const protocol = uri.protocol\n let proxyHost = `${uri.hostname}:`\n\n if (port) {\n proxyHost += port\n } else if (protocol === 'https:') {\n proxyHost += '443'\n } else {\n proxyHost += '80'\n }\n\n return proxyHost\n}\n\nfunction getAllowedProxyHeaders(headers, whiteList) {\n return Object.keys(headers)\n .filter(header => whiteList.indexOf(header.toLowerCase()) !== -1)\n .reduce((set, header) => {\n set[header] = headers[header]\n return set\n }, {})\n}\n\nfunction constructTunnelOptions(options, proxy, proxyHeaders) {\n return {\n proxy: {\n host: proxy.hostname,\n port: +proxy.port,\n proxyAuth: proxy.auth,\n headers: proxyHeaders\n },\n headers: options.headers,\n ca: options.ca,\n cert: options.cert,\n key: options.key,\n passphrase: options.passphrase,\n pfx: options.pfx,\n ciphers: options.ciphers,\n rejectUnauthorized: options.rejectUnauthorized,\n secureOptions: options.secureOptions,\n secureProtocol: options.secureProtocol\n }\n}\n","/* eslint-disable no-process-env */\nconst qs = require('querystring')\nconst url = require('url')\nconst http = require('http')\nconst https = require('https')\nconst concat = require('simple-concat')\nconst follow = require('follow-redirects')\nconst timedOut = require('@sanity/timed-out')\nconst isStream = require('is-stream')\nconst toStream = require('into-stream')\nconst objectAssign = require('object-assign')\nconst progressStream = require('progress-stream')\nconst decompressResponse = require('decompress-response')\nconst {getProxyOptions, rewriteUriForProxy} = require('./node/proxy')\nconst tunneling = require('./node/tunnel')\n\nconst adapter = 'node'\n\n// Reduce a fully fledged node-style response object to\n// something that works in both browser and node environment\nconst reduceResponse = (res, reqUrl, method, body) => ({\n body,\n url: reqUrl,\n method: method,\n headers: res.headers,\n statusCode: res.statusCode,\n statusMessage: res.statusMessage\n})\n\nmodule.exports = (context, cb) => {\n const options = context.options\n const uri = objectAssign({}, url.parse(options.url))\n const bodyType = isStream(options.body) ? 'stream' : typeof options.body\n\n if (\n bodyType !== 'undefined' &&\n bodyType !== 'stream' &&\n bodyType !== 'string' &&\n !Buffer.isBuffer(options.body)\n ) {\n throw new Error(`Request body must be a string, buffer or stream, got ${bodyType}`)\n }\n\n const lengthHeader = {}\n if (options.bodySize) {\n lengthHeader['content-length'] = options.bodySize\n } else if (options.body && bodyType !== 'stream') {\n lengthHeader['content-length'] = Buffer.byteLength(options.body)\n }\n\n // Make sure callback is not called in the event of a cancellation\n let aborted = false\n const callback = (err, res) => !aborted && cb(err, res)\n context.channels.abort.subscribe(() => {\n aborted = true\n })\n\n // Create a reduced subset of options meant for the http.request() method\n let reqOpts = objectAssign({}, uri, {\n method: options.method,\n headers: objectAssign({}, lowerCaseHeaders(options.headers), lengthHeader),\n maxRedirects: options.maxRedirects\n })\n\n // Figure out proxying/tunnel options\n const proxy = getProxyOptions(options)\n const tunnel = proxy && tunneling.shouldEnable(options)\n\n // Allow middleware to inject a response, for instance in the case of caching or mocking\n const injectedResponse = context.applyMiddleware('interceptRequest', undefined, {\n adapter,\n context\n })\n\n // If middleware injected a response, treat it as we normally would and return it\n // Do note that the injected response has to be reduced to a cross-environment friendly response\n if (injectedResponse) {\n const cbTimer = setImmediate(callback, null, injectedResponse)\n const abort = () => clearImmediate(cbTimer)\n return {abort}\n }\n\n // We're using the follow-redirects module to transparently follow redirects\n if (options.maxRedirects !== 0) {\n reqOpts.maxRedirects = options.maxRedirects || 5\n }\n\n // Apply currect options for proxy tunneling, if enabled\n if (proxy && tunnel) {\n reqOpts = tunneling.applyAgent(reqOpts, proxy)\n } else if (proxy && !tunnel) {\n reqOpts = rewriteUriForProxy(reqOpts, uri, proxy)\n }\n\n // Handle proxy authorization if present\n if (!tunnel && proxy && proxy.auth && !reqOpts.headers['proxy-authorization']) {\n const [username, password] = proxy.auth.username\n ? [proxy.auth.username, proxy.auth.password]\n : proxy.auth.split(':').map(item => qs.unescape(item))\n\n const auth = Buffer.from(`${username}:${password}`, 'utf8')\n const authBase64 = auth.toString('base64')\n reqOpts.headers['proxy-authorization'] = `Basic ${authBase64}`\n }\n\n // Figure out transport (http/https, forwarding/non-forwarding agent)\n const transport = getRequestTransport(reqOpts, proxy, tunnel)\n if (typeof options.debug === 'function' && proxy) {\n options.debug(\n 'Proxying using %s',\n reqOpts.agent ? 'tunnel agent' : `${reqOpts.host}:${reqOpts.port}`\n )\n }\n\n const finalOptions = context.applyMiddleware('finalizeOptions', reqOpts)\n const request = transport.request(finalOptions, response => {\n // See if we should try to decompress the response\n const tryDecompress = reqOpts.method !== 'HEAD'\n const res = tryDecompress ? decompressResponse(response) : response\n\n const resStream = context.applyMiddleware('onHeaders', res, {\n headers: response.headers,\n adapter,\n context\n })\n\n // Concatenate the response body, then parse the response with middlewares\n concat(resStream, (err, data) => {\n if (err) {\n return callback(err)\n }\n\n const body = options.rawBody ? data : data.toString()\n const reduced = reduceResponse(\n res,\n response.responseUrl || options.url, // On redirects, `responseUrl` is set\n reqOpts.method,\n body\n )\n\n return callback(null, reduced)\n })\n })\n\n if (options.timeout) {\n timedOut(request, options.timeout)\n }\n\n request.once('error', callback)\n\n // Cheating a bit here; since we're not concerned about the \"bundle size\" in node,\n // and modifying the body stream would be sorta tricky, we're just always going\n // to put a progress stream in the middle here. Note that\n const {bodyStream, progress} = getProgressStream(options)\n\n // Let middleware know we're about to do a request\n context.applyMiddleware('onRequest', {options, adapter, request, context, progress})\n\n if (bodyStream) {\n bodyStream.pipe(request)\n } else {\n request.end(options.body)\n }\n\n return {abort: () => request.abort()}\n}\n\nfunction getProgressStream(options) {\n if (!options.body) {\n return {}\n }\n\n const bodyIsStream = isStream(options.body)\n const length = options.bodySize || (bodyIsStream ? null : Buffer.byteLength(options.body))\n if (!length) {\n return bodyIsStream ? {bodyStream: options.body} : {}\n }\n\n const progress = progressStream({time: 16, length})\n const bodyStream = bodyIsStream ? options.body : toStream(options.body)\n return {bodyStream: bodyStream.pipe(progress), progress}\n}\n\nfunction getRequestTransport(reqOpts, proxy, tunnel) {\n const isHttpsRequest = reqOpts.protocol === 'https:'\n const transports =\n reqOpts.maxRedirects === 0\n ? {http: http, https: https}\n : {http: follow.http, https: follow.https}\n\n if (!proxy || tunnel) {\n return isHttpsRequest ? transports.https : transports.http\n }\n\n // Assume the proxy is an HTTPS proxy if port is 443, or if there is a\n // `protocol` option set that starts with https\n let isHttpsProxy = proxy.port === 443\n if (proxy.protocol) {\n isHttpsProxy = /^https:?/.test(proxy.protocol)\n }\n\n return isHttpsProxy ? transports.https : transports.http\n}\n\nfunction lowerCaseHeaders(headers) {\n return Object.keys(headers || {}).reduce((acc, header) => {\n acc[header.toLowerCase()] = headers[header]\n return acc\n }, {})\n}\n","module.exports = require('./node-request')\n","const pubsub = require('nano-pubsub')\nconst middlewareReducer = require('./util/middlewareReducer')\nconst processOptions = require('./middleware/defaultOptionsProcessor')\nconst validateOptions = require('./middleware/defaultOptionsValidator')\nconst httpRequest = require('./request') // node-request in node, browser-request in browsers\n\nconst channelNames = ['request', 'response', 'progress', 'error', 'abort']\nconst middlehooks = [\n 'processOptions',\n 'validateOptions',\n 'interceptRequest',\n 'finalizeOptions',\n 'onRequest',\n 'onResponse',\n 'onError',\n 'onReturn',\n 'onHeaders'\n]\n\nmodule.exports = function createRequester(initMiddleware = []) {\n const loadedMiddleware = []\n const middleware = middlehooks.reduce(\n (ware, name) => {\n ware[name] = ware[name] || []\n return ware\n },\n {\n processOptions: [processOptions],\n validateOptions: [validateOptions]\n }\n )\n\n function request(opts) {\n const channels = channelNames.reduce((target, name) => {\n target[name] = pubsub()\n return target\n }, {})\n\n // Prepare a middleware reducer that can be reused throughout the lifecycle\n const applyMiddleware = middlewareReducer(middleware)\n\n // Parse the passed options\n const options = applyMiddleware('processOptions', opts)\n\n // Validate the options\n applyMiddleware('validateOptions', options)\n\n // Build a context object we can pass to child handlers\n const context = {options, channels, applyMiddleware}\n\n // We need to hold a reference to the current, ongoing request,\n // in order to allow cancellation. In the case of the retry middleware,\n // a new request might be triggered\n let ongoingRequest = null\n const unsubscribe = channels.request.subscribe(ctx => {\n // Let request adapters (node/browser) perform the actual request\n ongoingRequest = httpRequest(ctx, (err, res) => onResponse(err, res, ctx))\n })\n\n // If we abort the request, prevent further requests from happening,\n // and be sure to cancel any ongoing request (obviously)\n channels.abort.subscribe(() => {\n unsubscribe()\n if (ongoingRequest) {\n ongoingRequest.abort()\n }\n })\n\n // See if any middleware wants to modify the return value - for instance\n // the promise or observable middlewares\n const returnValue = applyMiddleware('onReturn', channels, context)\n\n // If return value has been modified by a middleware, we expect the middleware\n // to publish on the 'request' channel. If it hasn't been modified, we want to\n // trigger it right away\n if (returnValue === channels) {\n channels.request.publish(context)\n }\n\n return returnValue\n\n function onResponse(reqErr, res, ctx) {\n let error = reqErr\n let response = res\n\n // We're processing non-errors first, in case a middleware converts the\n // response into an error (for instance, status >= 400 == HttpError)\n if (!error) {\n try {\n response = applyMiddleware('onResponse', res, ctx)\n } catch (err) {\n response = null\n error = err\n }\n }\n\n // Apply error middleware - if middleware return the same (or a different) error,\n // publish as an error event. If we *don't* return an error, assume it has been handled\n error = error && applyMiddleware('onError', error, ctx)\n\n // Figure out if we should publish on error/response channels\n if (error) {\n channels.error.publish(error)\n } else if (response) {\n channels.response.publish(response)\n }\n }\n }\n\n request.use = function use(newMiddleware) {\n if (!newMiddleware) {\n throw new Error('Tried to add middleware that resolved to falsey value')\n }\n\n if (typeof newMiddleware === 'function') {\n throw new Error(\n 'Tried to add middleware that was a function. It probably expects you to pass options to it.'\n )\n }\n\n if (newMiddleware.onReturn && middleware.onReturn.length > 0) {\n throw new Error(\n 'Tried to add new middleware with `onReturn` handler, but another handler has already been registered for this event'\n )\n }\n\n middlehooks.forEach(key => {\n if (newMiddleware[key]) {\n middleware[key].push(newMiddleware[key])\n }\n })\n\n loadedMiddleware.push(newMiddleware)\n return request\n }\n\n request.clone = function clone() {\n return createRequester(loadedMiddleware)\n }\n\n initMiddleware.forEach(request.use)\n\n return request\n}\n","module.exports = require('./lib-node')\n","/* eslint-disable no-negated-condition */\nif (typeof window !== 'undefined') {\n module.exports = window\n} else if (typeof global !== 'undefined') {\n module.exports = global\n} else if (typeof self !== 'undefined') {\n module.exports = self\n} else {\n module.exports = {}\n}\n","const global = require('../util/global')\nconst objectAssign = require('object-assign')\n\nmodule.exports = (opts = {}) => {\n const Observable = opts.implementation || global.Observable\n if (!Observable) {\n throw new Error(\n '`Observable` is not available in global scope, and no implementation was passed'\n )\n }\n\n return {\n onReturn: (channels, context) =>\n new Observable(observer => {\n channels.error.subscribe(err => observer.error(err))\n channels.progress.subscribe(event => observer.next(objectAssign({type: 'progress'}, event)))\n channels.response.subscribe(response => {\n observer.next(objectAssign({type: 'response'}, response))\n observer.complete()\n })\n\n channels.request.publish(context)\n return () => channels.abort.publish()\n })\n }\n}\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","const objectAssign = require('object-assign')\nconst isPlainObject = require('is-plain-object')\n\nconst serializeTypes = ['boolean', 'string', 'number']\nconst isBuffer = obj =>\n !!obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n\nmodule.exports = () => ({\n processOptions: options => {\n const body = options.body\n if (!body) {\n return options\n }\n\n const isStream = typeof body.pipe === 'function'\n const shouldSerialize =\n !isStream &&\n !isBuffer(body) &&\n (serializeTypes.indexOf(typeof body) !== -1 || Array.isArray(body) || isPlainObject(body))\n\n if (!shouldSerialize) {\n return options\n }\n\n return objectAssign({}, options, {\n body: JSON.stringify(options.body),\n headers: objectAssign({}, options.headers, {\n 'Content-Type': 'application/json'\n })\n })\n }\n})\n","const objectAssign = require('object-assign')\n\nmodule.exports = opts => ({\n onResponse: response => {\n const contentType = response.headers['content-type'] || ''\n const shouldDecode = (opts && opts.force) || contentType.indexOf('application/json') !== -1\n if (!response.body || !contentType || !shouldDecode) {\n return response\n }\n\n return objectAssign({}, response, {body: tryParse(response.body)})\n },\n\n processOptions: options =>\n objectAssign({}, options, {\n headers: objectAssign({Accept: 'application/json'}, options.headers)\n })\n})\n\nfunction tryParse(body) {\n try {\n return JSON.parse(body)\n } catch (err) {\n err.message = `Failed to parsed response body as JSON: ${err.message}`\n throw err\n }\n}\n","const progressStream = require('progress-stream')\n\nfunction normalizer(stage) {\n return prog => ({\n stage,\n percent: prog.percentage,\n total: prog.length,\n loaded: prog.transferred,\n lengthComputable: !(prog.length === 0 && prog.percentage === 0)\n })\n}\n\nmodule.exports = () => ({\n onHeaders: (response, evt) => {\n const progress = progressStream({time: 16})\n const normalize = normalizer('download')\n\n // This is supposed to be handled automatically, but it has a bug,\n // see https://github.com/freeall/progress-stream/pull/22\n const contentLength = response.headers['content-length']\n const length = contentLength && Number(contentLength)\n if (!isNaN(length) && length > 0) {\n progress.setLength(length)\n }\n\n progress.on('progress', prog => evt.context.channels.progress.publish(normalize(prog)))\n return response.pipe(progress)\n },\n\n onRequest: evt => {\n if (!evt.progress) {\n return\n }\n\n const normalize = normalizer('upload')\n evt.progress.on('progress', prog => evt.context.channels.progress.publish(normalize(prog)))\n }\n})\n","module.exports = require('./node-progress')\n","// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n","\"use strict\";\n\nvar makeError = require('make-error');\n\nvar assign = require('object-assign');\n\nfunction ClientError(res) {\n var props = extractErrorProps(res);\n ClientError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction ServerError(res) {\n var props = extractErrorProps(res);\n ServerError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction extractErrorProps(res) {\n var body = res.body;\n var props = {\n response: res,\n statusCode: res.statusCode,\n responseBody: stringifyBody(body, res)\n }; // API/Boom style errors ({statusCode, error, message})\n\n if (body.error && body.message) {\n props.message = \"\".concat(body.error, \" - \").concat(body.message);\n return props;\n } // Query/database errors ({error: {description, other, arb, props}})\n\n\n if (body.error && body.error.description) {\n props.message = body.error.description;\n props.details = body.error;\n return props;\n } // Other, more arbitrary errors\n\n\n props.message = body.error || body.message || httpErrorMessage(res);\n return props;\n}\n\nfunction httpErrorMessage(res) {\n var statusMessage = res.statusMessage ? \" \".concat(res.statusMessage) : '';\n return \"\".concat(res.method, \"-request to \").concat(res.url, \" resulted in HTTP \").concat(res.statusCode).concat(statusMessage);\n}\n\nfunction stringifyBody(body, res) {\n var contentType = (res.headers['content-type'] || '').toLowerCase();\n var isJson = contentType.indexOf('application/json') !== -1;\n return isJson ? JSON.stringify(body, null, 2) : body;\n}\n\nmakeError(ClientError);\nmakeError(ServerError);\nexports.ClientError = ClientError;\nexports.ServerError = ServerError;","'use strict';\n\nvar WHITELIST = [\n\t'ETIMEDOUT',\n\t'ECONNRESET',\n\t'EADDRINUSE',\n\t'ESOCKETTIMEDOUT',\n\t'ECONNREFUSED',\n\t'EPIPE',\n\t'EHOSTUNREACH',\n\t'EAI_AGAIN'\n];\n\nvar BLACKLIST = [\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/ed3d8b13ee9a705d89f9e0397d9e96519e7e47ac/src/node_crypto.cc#L1950\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED'\n];\n\nmodule.exports = function (err) {\n\tif (!err || !err.code) {\n\t\treturn true;\n\t}\n\n\tif (WHITELIST.indexOf(err.code) !== -1) {\n\t\treturn true;\n\t}\n\n\tif (BLACKLIST.indexOf(err.code) !== -1) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n","const allowed = require('is-retry-allowed')\n\nmodule.exports = (err, num, options) => {\n if (options.method !== 'GET' && options.method !== 'HEAD') {\n return false\n }\n\n // Don't allow retries if we get any http status code by default\n if (err.response && err.response.statusCode) {\n return false\n }\n\n return allowed(err)\n}\n","const objectAssign = require('object-assign')\nconst defaultShouldRetry = require('../util/node-shouldRetry')\n\nconst isStream = stream =>\n stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'\n\nconst retry = (opts = {}) => {\n const maxRetries = opts.maxRetries || 5\n const retryDelay = opts.retryDelay || getRetryDelay\n const allowRetry = opts.shouldRetry || defaultShouldRetry\n\n return {\n onError: (err, context) => {\n const options = context.options\n const max = options.maxRetries || maxRetries\n const shouldRetry = options.shouldRetry || allowRetry\n const attemptNumber = options.attemptNumber || 0\n\n // We can't retry if body is a stream, since it'll be drained\n if (isStream(options.body)) {\n return err\n }\n\n // Give up?\n if (!shouldRetry(err, attemptNumber, options) || attemptNumber >= max) {\n return err\n }\n\n // Create a new context with an increased attempt number, so we can exit if we reach a limit\n const newContext = objectAssign({}, context, {\n options: objectAssign({}, options, {attemptNumber: attemptNumber + 1})\n })\n\n // Wait a given amount of time before doing the request again\n setTimeout(() => context.channels.request.publish(newContext), retryDelay(attemptNumber))\n\n // Signal that we've handled the error and that it should not propagate further\n return null\n }\n }\n}\n\nretry.shouldRetry = defaultShouldRetry\n\nmodule.exports = retry\n\nfunction getRetryDelay(attemptNum) {\n return 100 * Math.pow(2, attemptNum) + Math.random() * 100\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require('fs');\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require('net');\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","const debugIt = require('debug')\n\nconst SENSITIVE_HEADERS = ['Cookie', 'Authorization']\n\nconst hasOwn = Object.prototype.hasOwnProperty\nconst redactKeys = (source, keys) => {\n const target = {}\n for (const key in source) {\n if (hasOwn.call(source, key)) {\n target[key] = keys.indexOf(key) > -1 ? '<redacted>' : source[key]\n }\n }\n return target\n}\n\nmodule.exports = (opts = {}) => {\n const verbose = opts.verbose\n const namespace = opts.namespace || 'get-it'\n const defaultLogger = debugIt(namespace)\n const log = opts.log || defaultLogger\n const shortCircuit = log === defaultLogger && !debugIt.enabled(namespace)\n let requestId = 0\n\n return {\n processOptions: options => {\n options.debug = log\n options.requestId = options.requestId || ++requestId\n return options\n },\n\n onRequest: event => {\n // Short-circuit if not enabled, to save some CPU cycles with formatting stuff\n if (shortCircuit || !event) {\n return event\n }\n\n const options = event.options\n\n log('[%s] HTTP %s %s', options.requestId, options.method, options.url)\n\n if (verbose && options.body && typeof options.body === 'string') {\n log('[%s] Request body: %s', options.requestId, options.body)\n }\n\n if (verbose && options.headers) {\n const headers =\n opts.redactSensitiveHeaders === false\n ? options.headers\n : redactKeys(options.headers, SENSITIVE_HEADERS)\n\n log('[%s] Request headers: %s', options.requestId, JSON.stringify(headers, null, 2))\n }\n\n return event\n },\n\n onResponse: (res, context) => {\n // Short-circuit if not enabled, to save some CPU cycles with formatting stuff\n if (shortCircuit || !res) {\n return res\n }\n\n const reqId = context.options.requestId\n\n log('[%s] Response code: %s %s', reqId, res.statusCode, res.statusMessage)\n\n if (verbose && res.body) {\n log('[%s] Response body: %s', reqId, stringifyBody(res))\n }\n\n return res\n },\n\n onError: (err, context) => {\n const reqId = context.options.requestId\n if (!err) {\n log('[%s] Error encountered, but handled by an earlier middleware', reqId)\n return err\n }\n\n log('[%s] ERROR: %s', reqId, err.message)\n return err\n }\n }\n}\n\nfunction stringifyBody(res) {\n const contentType = (res.headers['content-type'] || '').toLowerCase()\n const isJson = contentType.indexOf('application/json') !== -1\n return isJson ? tryFormat(res.body) : res.body\n}\n\n// Attempt pretty-formatting JSON\nfunction tryFormat(body) {\n try {\n const parsed = typeof body === 'string' ? JSON.parse(body) : body\n return JSON.stringify(parsed, null, 2)\n } catch (err) {\n return body\n }\n}\n","const objectAssign = require('object-assign')\n\nmodule.exports = (headers, opts = {}) => ({\n processOptions: options => {\n const existing = options.headers || {}\n options.headers = opts.override\n ? objectAssign({}, existing, headers)\n : objectAssign({}, headers, existing)\n\n return options\n }\n})\n","\"use strict\";\n\nvar retry = require('get-it/lib-node/middleware/retry');\n\nvar debug = require('get-it/lib-node/middleware/debug');\n\nvar headers = require('get-it/lib-node/middleware/headers');\n\nvar pkg = require('../../package.json');\n\nvar middleware = [debug({\n verbose: true,\n namespace: 'sanity:client'\n}), headers({\n 'User-Agent': \"\".concat(pkg.name, \" \").concat(pkg.version)\n}), retry({\n maxRetries: 3\n})];\nmodule.exports = middleware;","\"use strict\";\n\n/* eslint-disable no-empty-function, no-process-env */\nvar getIt = require('get-it');\n\nvar assign = require('object-assign');\n\nvar observable = require('get-it/lib/middleware/observable');\n\nvar jsonRequest = require('get-it/lib/middleware/jsonRequest');\n\nvar jsonResponse = require('get-it/lib/middleware/jsonResponse');\n\nvar progress = require('get-it/lib/middleware/progress');\n\nvar Observable = require('@sanity/observable/minimal');\n\nvar _require = require('./errors'),\n ClientError = _require.ClientError,\n ServerError = _require.ServerError;\n\nvar httpError = {\n onResponse: function onResponse(res) {\n if (res.statusCode >= 500) {\n throw new ServerError(res);\n } else if (res.statusCode >= 400) {\n throw new ClientError(res);\n }\n\n return res;\n }\n};\nvar printWarnings = {\n onResponse: function onResponse(res) {\n var warn = res.headers['x-sanity-warning'];\n var warnings = Array.isArray(warn) ? warn : [warn];\n warnings.filter(Boolean).forEach(function (msg) {\n return console.warn(msg);\n }); // eslint-disable-line no-console\n\n return res;\n }\n}; // Environment-specific middleware.\n\nvar envSpecific = require('./nodeMiddleware');\n\nvar middleware = envSpecific.concat([printWarnings, jsonRequest(), jsonResponse(), progress(), httpError, observable({\n implementation: Observable\n})]);\nvar request = getIt(middleware);\n\nfunction httpRequest(options) {\n var requester = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : request;\n return requester(assign({\n maxRedirects: 0\n }, options));\n}\n\nhttpRequest.defaultRequester = request;\nhttpRequest.ClientError = ClientError;\nhttpRequest.ServerError = ServerError;\nmodule.exports = httpRequest;","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar projectHeader = 'X-Sanity-Project-ID';\n\nmodule.exports = function (config) {\n var overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var headers = {};\n var token = overrides.token || config.token;\n\n if (token) {\n headers.Authorization = \"Bearer \".concat(token);\n }\n\n if (!overrides.useGlobalApi && !config.useProjectHostname && config.projectId) {\n headers[projectHeader] = config.projectId;\n }\n\n var withCredentials = Boolean(typeof overrides.withCredentials === 'undefined' ? config.token || config.withCredentials : overrides.withCredentials);\n var timeout = typeof overrides.timeout === 'undefined' ? config.timeout : overrides.timeout;\n return assign({}, overrides, {\n headers: assign({}, headers, overrides.headers || {}),\n timeout: typeof timeout === 'undefined' ? 5 * 60 * 1000 : timeout,\n proxy: overrides.proxy || config.proxy,\n json: true,\n withCredentials: withCredentials\n });\n};","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar once = require('./util/once');\n\nvar createWarningPrinter = function createWarningPrinter(message) {\n return (// eslint-disable-next-line no-console\n once(function () {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_console = console).warn.apply(_console, [message.join(' ')].concat(args));\n })\n );\n};\n\nexports.printCdnWarning = createWarningPrinter(['You are not using the Sanity CDN. That means your data is always fresh, but the CDN is faster and', \"cheaper. Think about it! For more info, see \".concat(generateHelpUrl('js-client-cdn-configuration'), \".\"), 'To hide this warning, please set the `useCdn` option to either `true` or `false` when creating', 'the client.']);\nexports.printBrowserTokenWarning = createWarningPrinter(['You have configured Sanity client to use a token in the browser. This may cause unintentional security issues.', \"See \".concat(generateHelpUrl('js-client-browser-token'), \" for more information and how to hide this warning.\")]);\nexports.printCdnTokenWarning = createWarningPrinter(['You have set `useCdn` to `true` while also specifying a token. This is usually not what you', 'want. The CDN cannot be used with an authorization token, since private data cannot be cached.', \"See \".concat(generateHelpUrl('js-client-usecdn-token'), \" for more information.\")]);\nexports.printNoApiVersionSpecifiedWarning = createWarningPrinter(['Using the Sanity client without specifying an API version is deprecated.', \"See \".concat(generateHelpUrl('js-client-api-version'))]);","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar assign = require('object-assign');\n\nvar validate = require('./validators');\n\nvar warnings = require('./warnings');\n\nvar defaultCdnHost = 'apicdn.sanity.io';\nvar defaultConfig = {\n apiHost: 'https://api.sanity.io',\n apiVersion: '1',\n useProjectHostname: true,\n gradientMode: false,\n isPromiseAPI: true\n};\nvar LOCALHOSTS = ['localhost', '127.0.0.1', '0.0.0.0'];\n\nvar isLocal = function isLocal(host) {\n return LOCALHOSTS.indexOf(host) !== -1;\n};\n\nexports.defaultConfig = defaultConfig; // eslint-disable-next-line complexity\n\nexports.initConfig = function (config, prevConfig) {\n var specifiedConfig = assign({}, prevConfig, config);\n\n if (!specifiedConfig.apiVersion) {\n warnings.printNoApiVersionSpecifiedWarning();\n }\n\n var newConfig = assign({}, defaultConfig, specifiedConfig);\n var gradientMode = newConfig.gradientMode;\n var projectBased = !gradientMode && newConfig.useProjectHostname;\n\n if (typeof Promise === 'undefined') {\n var helpUrl = generateHelpUrl('js-client-promise-polyfill');\n throw new Error(\"No native Promise-implementation found, polyfill needed - see \".concat(helpUrl));\n }\n\n if (gradientMode && !newConfig.namespace) {\n throw new Error('Configuration must contain `namespace` when running in gradient mode');\n }\n\n if (projectBased && !newConfig.projectId) {\n throw new Error('Configuration must contain `projectId`');\n }\n\n var isBrowser = typeof window !== 'undefined' && window.location && window.location.hostname;\n var isLocalhost = isBrowser && isLocal(window.location.hostname);\n\n if (isBrowser && isLocalhost && newConfig.token && newConfig.ignoreBrowserTokenWarning !== true) {\n warnings.printBrowserTokenWarning();\n } else if ((!isBrowser || isLocalhost) && newConfig.useCdn && newConfig.token) {\n warnings.printCdnTokenWarning();\n } else if (typeof newConfig.useCdn === 'undefined') {\n warnings.printCdnWarning();\n }\n\n if (projectBased) {\n validate.projectId(newConfig.projectId);\n }\n\n if (!gradientMode && newConfig.dataset) {\n validate.dataset(newConfig.dataset, newConfig.gradientMode);\n }\n\n if ('requestTagPrefix' in newConfig) {\n // Allow setting and unsetting request tag prefix\n newConfig.requestTagPrefix = newConfig.requestTagPrefix ? validate.requestTag(newConfig.requestTagPrefix).replace(/\\.+$/, '') : undefined;\n }\n\n newConfig.apiVersion = \"\".concat(newConfig.apiVersion).replace(/^v/, '');\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost;\n newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.token && !newConfig.withCredentials;\n exports.validateApiVersion(newConfig.apiVersion);\n\n if (newConfig.gradientMode) {\n newConfig.url = newConfig.apiHost;\n newConfig.cdnUrl = newConfig.apiHost;\n } else {\n var hostParts = newConfig.apiHost.split('://', 2);\n var protocol = hostParts[0];\n var host = hostParts[1];\n var cdnHost = newConfig.isDefaultApi ? defaultCdnHost : host;\n\n if (newConfig.useProjectHostname) {\n newConfig.url = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(host, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(cdnHost, \"/v\").concat(newConfig.apiVersion);\n } else {\n newConfig.url = \"\".concat(newConfig.apiHost, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = newConfig.url;\n }\n }\n\n return newConfig;\n};\n\nexports.validateApiVersion = function validateApiVersion(apiVersion) {\n if (apiVersion === '1' || apiVersion === 'X') {\n return;\n }\n\n var apiDate = new Date(apiVersion);\n var apiVersionValid = /^\\d{4}-\\d{2}-\\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0;\n\n if (!apiVersionValid) {\n throw new Error('Invalid API version string, expected `1` or date in format `YYYY-MM-DD`');\n }\n};","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\n\nvar Patch = require('./data/patch');\n\nvar Transaction = require('./data/transaction');\n\nvar dataMethods = require('./data/dataMethods');\n\nvar DatasetsClient = require('./datasets/datasetsClient');\n\nvar ProjectsClient = require('./projects/projectsClient');\n\nvar AssetsClient = require('./assets/assetsClient');\n\nvar UsersClient = require('./users/usersClient');\n\nvar AuthClient = require('./auth/authClient');\n\nvar httpRequest = require('./http/request');\n\nvar getRequestOptions = require('./http/requestOptions');\n\nvar _require3 = require('./config'),\n defaultConfig = _require3.defaultConfig,\n initConfig = _require3.initConfig;\n\nvar validate = require('./validators');\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nfunction SanityClient() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;\n\n if (!(this instanceof SanityClient)) {\n return new SanityClient(config);\n }\n\n this.config(config);\n this.assets = new AssetsClient(this);\n this.datasets = new DatasetsClient(this);\n this.projects = new ProjectsClient(this);\n this.users = new UsersClient(this);\n this.auth = new AuthClient(this);\n\n if (this.clientConfig.isPromiseAPI) {\n var observableConfig = assign({}, this.clientConfig, {\n isPromiseAPI: false\n });\n this.observable = new SanityClient(observableConfig);\n }\n}\n\nassign(SanityClient.prototype, dataMethods);\nassign(SanityClient.prototype, {\n clone: function clone() {\n return new SanityClient(this.config());\n },\n config: function config(newConfig) {\n if (typeof newConfig === 'undefined') {\n return assign({}, this.clientConfig);\n }\n\n if (this.observable) {\n var observableConfig = assign({}, newConfig, {\n isPromiseAPI: false\n });\n this.observable.config(observableConfig);\n }\n\n this.clientConfig = initConfig(newConfig, this.clientConfig || {});\n return this;\n },\n withConfig: function withConfig(newConfig) {\n return this.clone().config(newConfig);\n },\n getUrl: function getUrl(uri) {\n var canUseCdn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var base = canUseCdn ? this.clientConfig.cdnUrl : this.clientConfig.url;\n return \"\".concat(base, \"/\").concat(uri.replace(/^\\//, ''));\n },\n isPromiseAPI: function isPromiseAPI() {\n return this.clientConfig.isPromiseAPI;\n },\n _requestObservable: function _requestObservable(options) {\n var uri = options.url || options.uri;\n var canUseCdn = this.clientConfig.useCdn && ['GET', 'HEAD'].indexOf(options.method || 'GET') >= 0 && uri.indexOf('/data/') === 0;\n var tag = options.tag && this.clientConfig.requestTagPrefix ? [this.clientConfig.requestTagPrefix, options.tag].join('.') : options.tag || this.clientConfig.requestTagPrefix;\n\n if (tag) {\n options.query = _objectSpread({\n tag: validate.requestTag(tag)\n }, options.query);\n }\n\n var reqOptions = getRequestOptions(this.clientConfig, assign({}, options, {\n url: this.getUrl(uri, canUseCdn)\n }));\n return httpRequest(reqOptions, this.clientConfig.requester);\n },\n request: function request(options) {\n var observable = this._requestObservable(options).pipe(filter(function (event) {\n return event.type === 'response';\n }), map(function (event) {\n return event.body;\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n }\n});\nSanityClient.Patch = Patch;\nSanityClient.Transaction = Transaction;\nSanityClient.ClientError = httpRequest.ClientError;\nSanityClient.ServerError = httpRequest.ServerError;\nSanityClient.requester = httpRequest.defaultRequester;\nmodule.exports = SanityClient;","import client from 'part:@sanity/base/client'\nimport { defer, concat, BehaviorSubject, Observable } from 'rxjs'\nimport { debounceTime, switchMap, map, distinctUntilChanged, withLatestFrom } from 'rxjs/operators'\nimport { UnsplashPhoto } from 'src/types'\n\ntype SearchSubject = BehaviorSubject<string>\ntype PageSubject = BehaviorSubject<number>\n\nconst fetchSearch = (query: string, page: number, perPage: number): Observable<any> =>\n defer(() =>\n client.observable.request({\n url: `/addons/unsplash/search/photos?query=${encodeURIComponent(\n query\n )}&page=${page}&per_page=${perPage}`,\n withCredentials: true,\n method: 'GET'\n })\n )\n\nconst fetchList = (type: string, page: number, perPage: number): Observable<any> =>\n defer(() =>\n client.observable.request({\n url: `/addons/unsplash/photos?order_by=${type}&page=${page}&per_page=${perPage}`,\n withCredentials: true,\n method: 'GET'\n })\n )\n\nexport function fetchDownloadUrl(photo: UnsplashPhoto): Promise<string> {\n const downloadUrl = photo.links.download_location.replace(\n 'https://api.unsplash.com',\n '/addons/unsplash'\n )\n return client\n .request({\n url: downloadUrl,\n withCredentials: true,\n method: 'GET'\n })\n .then((result: { url: string }) => {\n return result.url\n })\n}\n\nexport const sanityClient = client\n\nexport const search = (\n query: SearchSubject,\n page: PageSubject,\n resultsPerPage: number\n): Observable<any> => {\n return concat(\n query.pipe(\n withLatestFrom(page),\n debounceTime(500),\n distinctUntilChanged(),\n switchMap(([q, p]) => {\n if (q) {\n return fetchSearch(q, p, resultsPerPage).pipe(\n distinctUntilChanged(),\n map(result => result.results)\n )\n }\n return fetchList('popular', p, resultsPerPage)\n })\n )\n )\n}\n","import { Stack } from '@sanity/ui'\nimport styled from 'styled-components'\n\nexport const Search = styled(Stack)`\n position: sticky;\n top: 0;\n z-index: 1;\n`\n\nexport const Scroller = styled.div`\n overflow-y: auto;\n max-height: 80vh;\n`\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { throttle, debounce };\n","import React from 'react'\nimport PhotoAlbum from 'react-photo-album'\nimport { flatten } from 'lodash'\nimport { BehaviorSubject, Subscription } from 'rxjs'\nimport { Asset, AssetDocument, SanityDocument, UnsplashPhoto } from '../types'\nimport Photo from './Photo'\nimport { fetchDownloadUrl, search } from '../datastores/unsplash'\nimport { Card, Dialog, Flex, Spinner, Stack, Text, TextInput } from '@sanity/ui'\nimport { Search } from './UnsplashAssetSource.styled'\nimport InfiniteScroll from 'react-infinite-scroll-component'\n\ntype Props = {\n onSelect: (assets: Asset[]) => void\n onClose: () => void\n selectedAssets?: AssetDocument[]\n selectionType: 'single' | 'multiple'\n document?: SanityDocument\n}\n\ntype State = {\n query: string\n searchResults: UnsplashPhoto[][]\n page: number\n isLoading: boolean\n cursor: number\n}\n\nconst RESULTS_PER_PAGE = 42\nconst PHOTO_SPACING = 2\nconst PHOTO_PADDING = 1 // offset the 1px border width\n\nexport default class UnsplashAssetSource extends React.Component<Props, State> {\n static defaultProps = {\n selectedAssets: undefined\n }\n\n state = {\n cursor: 0,\n query: '',\n page: 1,\n searchResults: [[]],\n isLoading: true\n }\n\n searchSubscription: Subscription | null = null\n\n searchSubject$ = new BehaviorSubject('')\n pageSubject$ = new BehaviorSubject(1)\n\n componentDidMount() {\n this.searchSubscription = search(\n this.searchSubject$,\n this.pageSubject$,\n RESULTS_PER_PAGE\n ).subscribe({\n next: (results: UnsplashPhoto[]) => {\n const searchResults = [...this.state.searchResults, results]\n this.setState({\n searchResults,\n isLoading: false\n })\n }\n })\n }\n\n componentWillUnmount() {\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe()\n }\n }\n\n handleSelect = (photo: UnsplashPhoto) => {\n this.setState({ isLoading: true })\n return fetchDownloadUrl(photo).then(downloadUrl => {\n const description = photo.description || undefined\n const asset: Asset = {\n kind: 'url',\n value: downloadUrl,\n assetDocumentProps: {\n source: {\n name: 'unsplash',\n id: photo.id,\n url: photo.links.html\n },\n description,\n creditLine: `${photo.user.name} by Unsplash`\n }\n }\n this.props.onSelect([asset])\n })\n }\n\n handleClose = () => {\n this.props.onClose()\n }\n\n handleSearchTermChanged = (event: React.ChangeEvent<HTMLInputElement>) => {\n const query = event.currentTarget.value\n this.setState({ query, page: 1, searchResults: [[]], isLoading: true, cursor: 0 })\n this.pageSubject$.next(1)\n this.searchSubject$.next(query)\n }\n\n handleScollerLoadMore = () => {\n const nextPage = this.state.page + 1\n this.setState({ page: nextPage, isLoading: true })\n this.pageSubject$.next(nextPage)\n this.searchSubject$.next(this.state.query)\n }\n\n handleKeyDown = (event: any) => {\n const { cursor } = this.state\n if ((event.keyCode === 38 || event.keyCode === 37) && cursor > 0) {\n this.setState(prevState => ({\n cursor: prevState.cursor - 1\n }))\n } else if (\n (event.keyCode === 40 || event.keyCode === 39) &&\n cursor < this.getPhotos().length - 1\n ) {\n this.setState(prevState => ({\n cursor: prevState.cursor + 1\n }))\n }\n }\n\n getPhotos() {\n return flatten(this.state.searchResults)\n }\n\n updateCursor = (photo: UnsplashPhoto) => {\n const index = this.getPhotos().findIndex((result: UnsplashPhoto) => result.id === photo.id)\n this.setState({ cursor: index })\n }\n\n renderImage = (props: any) => {\n const { photo, layout } = props\n const active =\n this.getPhotos().findIndex((result: UnsplashPhoto) => result.id === photo.data.id) ===\n this.state.cursor || false\n return (\n <Photo\n onClick={this.handleSelect.bind(photo.data)}\n onKeyDown={this.handleKeyDown}\n data={photo.data}\n width={layout.width}\n height={layout.height}\n active={active}\n onFocus={this.updateCursor}\n />\n )\n }\n\n render() {\n const { query, searchResults, isLoading } = this.state\n\n return (\n <Dialog\n id='unsplash-asset-source'\n header='Select image from Unsplash'\n onClose={this.handleClose}\n open\n width={4}\n >\n <Stack space={3} padding={4}>\n <Card>\n <Search space={3}>\n <Text size={1} weight='semibold'>\n Search Unsplash\n </Text>\n <TextInput\n label='Search Unsplash.com'\n placeholder='Topics or colors'\n value={query}\n onChange={this.handleSearchTermChanged}\n />\n </Search>\n </Card>\n {!isLoading && this.getPhotos().length === 0 && (\n <Text size={1} muted>\n No results found\n </Text>\n )}\n <InfiniteScroll\n dataLength={this.getPhotos().length} // This is important field to render the next data\n next={this.handleScollerLoadMore}\n // scrollableTarget=\"unsplash-scroller\"\n hasMore={true}\n scrollThreshold={0.99}\n height='60vh'\n loader={\n <Flex align='center' justify='center' padding={3}>\n <Spinner muted />\n </Flex>\n }\n endMessage={\n <Text size={1} muted>\n No more results\n </Text>\n }\n >\n {searchResults.filter((photos) => photos.length > 0).map((photos: UnsplashPhoto[], index) =>\n (\n <PhotoAlbum\n key={`gallery-${query || 'popular'}-${index}`}\n layout='rows'\n spacing={PHOTO_SPACING}\n padding={PHOTO_PADDING}\n targetRowHeight={(width) => width < 300 ? 150 : width < 600 ? 200 : 300}\n photos={photos.map((photo: UnsplashPhoto) => ({\n src: photo.urls.small,\n width: photo.width,\n height: photo.height,\n key: photo.id,\n data: photo\n }))}\n renderPhoto={this.renderImage}\n componentsProps={{ containerProps: { style: { marginBottom: `${PHOTO_SPACING}px` } } }}\n />\n ))}\n </InfiniteScroll>\n </Stack>\n </Dialog>\n )\n }\n}\n","import React from 'react'\nimport styled from 'styled-components'\n\nconst Svg = styled.svg`\n transform: scale(0.8);\n`\n\nexport default function UnsplashIcon() {\n return (\n <Svg role=\"img\" viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <title />\n <path d=\"M7.5 6.75V0h9v6.75h-9zm9 3.75H24V24H0V10.5h7.5v6.75h9V10.5z\" />\n </Svg>\n )\n}\n","import Unsplash from './components/UnsplashAssetSource'\nimport Icon from './components/Icon'\n\nexport default {\n name: 'unsplash',\n title: 'Unsplash',\n component: Unsplash,\n icon: Icon\n}\n"],"names":["ratio","width","height","round","value","decimals","factor","Math","Number","EPSILON","RankingFunctionComparator","rank","a","b","MinHeap","comparator","heap","compare","n","greater","i","j","swap","temp","swim","k","k2","sink","push","element","pop","undefined","max","size","buildPrecedentsMap","graph","startNode","endNode","precedentsMap","visited","storedShortestPaths","pQueue","el","weight","id","shortestNode","shortestNodeId","neighboringNodes","neighbor","newTotalWeight","getPathFromPrecedentsMap","nodes","reverse","findShortestPath","findIdealNodeSearch","photos","targetRowHeight","containerWidth","minRatio","reduce","acc","photo","min","MAX_VALUE","getCommonHeight","row","spacing","padding","rowWidth","length","totalAspectRatio","cost","slice","commonHeight","makeGetNeighbors","layoutOptions","limitNodeSearch","rowConstraints","instrumentation","node","results","start","startOffset","_a","minPhotos","endOffset","_b","maxPhotos","Infinity","fullGraphSearch","currentCost","toString","computeRowsLayout","onStartLayoutComputation","getNeighbors","path","result","map","index","photoIndex","layout","photosCount","onFinishLayoutComputation","call","calcWidth","base","gaps","cssWidth","calculateSizesValue","match","srcSetAndSizes","srcSet","sizes","images","concat","src","sort","first","second","image","join","viewport","ceil","viewportWidth","defaultRenderPhoto","imageProps","alt","rest","_excluded","_jsx","PhotoRenderer","props","style","restImageProps","_objectWithoutPropertiesLoose","_excluded2","renderPhoto","onClick","imageStyle","display","boxSizing","aspectRatio","marginBottom","cursor","handleClick","event","title","className","defaultRenderRowContainer","rowContainerProps","children","RowContainerRenderer","rowIndex","rowsCount","renderRowContainer","restRowContainerProps","flexDirection","flexWrap","alignItems","justifyContent","RowsLayout","componentsProps","rowsLayout","key","computeShortestPath","pathLength","comp","queue","Object","keys","forEach","accumulatedWeight","reconstructShortestPath","prevNode","findShortestPathLengthN","targetColumnWidth","targetColumnHeight","cutOffHeight","buildColumnsModel","columnsGaps","columnsRatios","columnsModel","totalRatio","column","totalAdjustedGaps","columnWidth","computeColumnsModel","columns","Array","from","_","computeLayout","findIndex","columnModel","computeColumnsLayout","defaultRenderColumnContainer","columnContainerProps","columnIndex","columnsCount","ColumnContainerRenderer","renderColumnContainer","restColumnContainerProps","ColumnsLayout","columnsLayout","_Fragment","computeMasonryLayout","columnsCurrentTopPositions","shortestColumn","item","MasonryLayout","masonryLayout","defaultRenderContainer","containerProps","containerRef","ref","ContainerRenderer","renderContainer","restContainerProps","Component","document","useLayoutEffect","useEffect","useMounted","useState","mounted","setMounted","useContainerWidth","resizeObserverProvider","breakpoints","observerRef","useRef","setContainerWidth","useCallback","current","disconnect","updateWidth","newWidth","clientWidth","sortedBreakpoints","filter","x","floor","find","breakpoint","ResizeObserver","observe","useMemo","freeze","unwrap","unwrapParameter","selectResponsiveValue","values","resolveResponsiveParameter","parameter","resolveLayoutOptions","w","resolveComponentsProps","PhotoAlbum","defaultContainerWidth","includes","isArray","window","innerWidth","commonLayoutProps","styled","Card","__extends","React","Text","hasOwnProperty","propIsEnumerable","toObject","require$$0","_defineProperty","validate","assign","patch","Patch","_require","_require2","_require3","_require4","has","global","qs","required","parse","EventSource","https","http","util","events","ownKeys","_objectSpread","polyfilledEventSource","defaultOptions","defaults","Observable","toPromise","Transaction","transaction","_slicedToArray","module","middleware","applyMiddleware","hook","defaultValue","args","bailEarly","handler","isReactNative","navigator","product","prototype","timeout","opts","options","objectAssign","url","urlParse","normalizeTimeout","query","removeUndefined","method","body","toUpperCase","stringifyQueryString","obj","pairs","val","encodeURIComponent","time","connect","socket","delay","isNaN","target","validUrl","test","Error","s","m","h","d","y","fmtLong","fmtShort","plural","os","tty","require$$1","debug","Writable","assert","noop","buffer","pna","Duplex","require$$2","Buffer","require$$3","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","Stream","require$$4","prefinish","destroyImpl","Readable","StringDecoder","debugUtil","require$$5","Transform","PassThrough","ctor","inherits","xtend","through","zlib","formatHostname","hostname","replace","toLowerCase","parseNoProxyZone","zoneStr","zone","trim","zoneParts","split","zoneHost","zonePort","hasPort","indexOf","port","uriInNoProxy","uri","noProxy","protocol","noProxyList","some","noProxyZone","isMatchedAt","hostnameMatched","getProxyFromUri","process","env","NO_PROXY","no_proxy","HTTP_PROXY","http_proxy","HTTPS_PROXY","https_proxy","getHostFromUri","host","getHostHeaderWithPort","rewriteUriForProxy","reqOpts","proxy","headers","href","format","getProxyOptions","exports","tls","uriParts","defaultProxyHeaderWhiteList","defaultProxyHeaderExclusiveList","tunnelOption","tunnel","Boolean","proxyHeaderWhiteList","header","proxyHeaderExclusiveList","proxyHeaders","getAllowedProxyHeaders","constructProxyHost","isAllowed","tunnelFn","getTunnelFn","tunnelOptions","constructTunnelOptions","agent","getUriParts","tunnelFnName","constructTunnelFnName","part","uriProtocol","proxyProtocol","proxyHost","whiteList","set","proxyAuth","auth","ca","cert","passphrase","pfx","ciphers","rejectUnauthorized","secureOptions","secureProtocol","adapter","reduceResponse","res","reqUrl","statusCode","statusMessage","context","cb","bodyType","isStream","isBuffer","lengthHeader","bodySize","byteLength","aborted","callback","err","channels","abort","subscribe","lowerCaseHeaders","maxRedirects","tunneling","shouldEnable","injectedResponse","cbTimer","setImmediate","clearImmediate","applyAgent","username","password","unescape","authBase64","transport","getRequestTransport","finalOptions","request","response","tryDecompress","decompressResponse","resStream","data","rawBody","reduced","responseUrl","timedOut","once","getProgressStream","bodyStream","progress","pipe","end","bodyIsStream","progressStream","toStream","isHttpsRequest","transports","follow","isHttpsProxy","require","channelNames","middlehooks","createRequester","initMiddleware","loadedMiddleware","ware","name","processOptions","validateOptions","pubsub","middlewareReducer","ongoingRequest","unsubscribe","ctx","httpRequest","onResponse","returnValue","publish","reqErr","error","use","newMiddleware","onReturn","clone","self","implementation","observer","next","type","complete","isObject","serializeTypes","constructor","shouldSerialize","isPlainObject","JSON","stringify","contentType","shouldDecode","force","tryParse","Accept","message","normalizer","stage","percent","prog","percentage","total","loaded","transferred","lengthComputable","onHeaders","evt","normalize","contentLength","setLength","on","onRequest","ClientError","ServerError","stringifyBody","makeError","num","allowed","stream","retry","maxRetries","retryDelay","getRetryDelay","allowRetry","shouldRetry","defaultShouldRetry","onError","attemptNumber","newContext","setTimeout","attemptNum","pow","random","SENSITIVE_HEADERS","hasOwn","redactKeys","source","verbose","namespace","defaultLogger","debugIt","log","shortCircuit","enabled","requestId","redactSensitiveHeaders","reqId","isJson","tryFormat","parsed","existing","override","envSpecific","AssetsClient","DatasetsClient","ProjectsClient","UsersClient","AuthClient","getRequestOptions","defer","client","withLatestFrom","debounceTime","distinctUntilChanged","switchMap","Stack","BehaviorSubject","flatten","Dialog","TextInput","Flex","Spinner","Unsplash","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAAA,IAAA,EAAA;IAAA,EAAGC,IAAAA,KAAH,QAAGA,KAAH;IAAA,MAAUC,MAAV,QAAUA,MAAV,CAAA;IAAA,EAA0DD,OAAAA,KAAK,GAAGC,MAAlE,CAAA;IAAA,CAAd;;ICAA;IACA,IAAMC,KAAK,GAAG,SAARA,KAAQ,CAACC,KAAD,EAAgBC,QAAhB,EAAgC;IAAA,EAAA,IAAhBA,QAAgB,KAAA,KAAA,CAAA,EAAA;IAAhBA,IAAAA,QAAgB,GAAL,CAAK,CAAA;IAAA,GAAA;;IAC1C,EAAA,IAAMC,MAAM,GAAA,IAAA,CAAA,GAAA,CAAG,EAAH,EAASD,QAAT,CAAZ,CAAA;IACA,EAAA,OAAOE,IAAI,CAACJ,KAAL,CAAW,CAACC,KAAK,GAAGI,MAAM,CAACC,OAAhB,IAA2BH,MAAtC,IAAgDA,MAAvD,CAAA;IACH,CAHD;;ICCO,IAAMI,yBAAyB,GAClC,SADSA,yBACT,CAAIC,IAAJ,EAAA;IAAA,EACA,OAAA,UAACC,CAAD,EAAOC,CAAP,EAAA;IAAA,IACIF,OAAAA,IAAI,CAACE,CAAD,CAAJ,GAAUF,IAAI,CAACC,CAAD,CADlB,CAAA;IAAA,GADA,CAAA;IAAA,CADG,CAAA;IAOP;;;IAGG;;IACH,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAIC,UAAJ,EAAiC;IAC7C;IACA,EAAMC,IAAAA,IAAI,GAAQ,EAAlB,CAAA;IACA,EAAMC,IAAAA,OAAO,GAAGF,UAAhB,CAAA;IACA,EAAA,IAAIG,CAAC,GAAG,CAAR,CAJ6C;;IAO7C,EAAA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAYC,CAAZ,EAAA;IAAA,IAAA,OAA0BJ,OAAO,CAACD,IAAI,CAACI,CAAD,CAAL,EAAUJ,IAAI,CAACK,CAAD,CAAd,CAAP,GAA4B,CAAtD,CAAA;IAAA,GAAhB,CAP6C;;;IAU7C,EAAMC,IAAAA,IAAI,GAAG,SAAPA,IAAO,CAACF,CAAD,EAAYC,CAAZ,EAAyB;IAClC,IAAA,IAAME,IAAI,GAAGP,IAAI,CAACI,CAAD,CAAjB,CAAA;IACAJ,IAAAA,IAAI,CAACI,CAAD,CAAJ,GAAUJ,IAAI,CAACK,CAAD,CAAd,CAAA;IACAL,IAAAA,IAAI,CAACK,CAAD,CAAJ,GAAUE,IAAV,CAAA;IACH,GAJD,CAV6C;;;IAiB7C,EAAA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACC,CAAD,EAAc;IACvB,IAAA,IAAIC,EAAE,GAAGD,CAAC,IAAI,CAAd,CAAA;;IACA,IAAOA,OAAAA,CAAC,GAAG,CAAJ,IAASN,OAAO,CAACO,EAAD,EAAKD,CAAL,CAAvB,EAAgC;IAC5BH,MAAAA,IAAI,CAACI,EAAD,EAAKD,CAAL,CAAJ,CAAA;IACAA,MAAAA,CAAC,GAAGC,EAAJ,CAAA;IACAA,MAAAA,EAAE,GAAGD,CAAC,IAAI,CAAV,CAAA;IACH,KAAA;IACJ,GAPD,CAjB6C;;;IA2B7C,EAAA,IAAME,IAAI,GAAG,SAAPA,IAAO,CAACF,CAAD,EAAc;IACvB,IAAA,IAAIJ,CAAC,GAAGI,CAAC,IAAI,CAAb,CAAA;;IACA,IAAOJ,OAAAA,CAAC,IAAIH,CAAZ,EAAe;IACX,MAAA,IAAIG,CAAC,GAAGH,CAAJ,IAASC,OAAO,CAACE,CAAD,EAAIA,CAAC,GAAG,CAAR,CAApB,EAAgCA,CAAC,EAAA,CAAA;IACjC,MAAA,IAAI,CAACF,OAAO,CAACM,CAAD,EAAIJ,CAAJ,CAAZ,EAAoB,MAAA;IACpBC,MAAAA,IAAI,CAACG,CAAD,EAAIJ,CAAJ,CAAJ,CAAA;IACAI,MAAAA,CAAC,GAAGJ,CAAJ,CAAA;IACAA,MAAAA,CAAC,GAAGI,CAAC,IAAI,CAAT,CAAA;IACH,KAAA;IACJ,GATD,CAAA;;IAWA,EAAO,OAAA;IACH;IACAG,IAAAA,IAAI,EAAE,SAACC,IAAAA,CAAAA,OAAD,EAAe;IACjBX,MAAAA,CAAC,IAAI,CAAL,CAAA;IACAF,MAAAA,IAAI,CAACE,CAAD,CAAJ,GAAUW,OAAV,CAAA;IACAL,MAAAA,IAAI,CAACN,CAAD,CAAJ,CAAA;IACH,KANE;;IAQH;IACAY,IAAAA,GAAG,EAAE,SAAoB,GAAA,GAAA;IACrB,MAAA,IAAIZ,CAAC,KAAK,CAAV,EAAa,OAAOa,SAAP,CAAA;IACbT,MAAAA,IAAI,CAAC,CAAD,EAAIJ,CAAJ,CAAJ,CAAA;IACAA,MAAAA,CAAC,IAAI,CAAL,CAAA;IACA,MAAA,IAAMc,GAAG,GAAGhB,IAAI,CAACc,GAAL,EAAZ,CAAA;IACAH,MAAAA,IAAI,CAAC,CAAD,CAAJ,CAAA;IACA,MAAA,OAAOK,GAAP,CAAA;IACH,KAhBE;;IAkBH;IACAC,IAAAA,IAAI,EAAE,SAAA,IAAA,GAAA;IAAA,MAAA,OAAcf,CAAd,CAAA;IAAA,KAAA;IAnBH,GAAP,CAAA;IAqBH,CA3DD;;ICMA,IAAMgB,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAuBC,SAAvB,EAA2CC,OAA3C,EAA+D;IACtF;IACA,EAAA,IAAMC,aAAa,GAAwB,EAA3C,CAFsF;;IAKtF,EAAA,IAAMC,OAAO,GAAuB,EAApC,CALsF;IAQtF;;IACA,EAAMC,IAAAA,mBAAmB,GAAuB,EAAhD,CAAA;IACAA,EAAAA,mBAAmB,CAACJ,SAAD,CAAnB,GAAiC,CAAjC,CAVsF;IAatF;;IACA,EAAA,IAAMK,MAAM,GAAG3B,OAAO,CAAcJ,yBAAyB,CAAC,UAACgC,EAAD,EAAA;IAAA,IAA6BA,OAAAA,EAAE,CAACC,MAAhC,CAAA;IAAA,GAAD,CAAvC,CAAtB,CAAA;IACAF,EAAAA,MAAM,CAACb,IAAP,CAAY;IAAEgB,IAAAA,EAAE,EAAER,SAAN;IAAiBO,IAAAA,MAAM,EAAE,CAAA;IAAzB,GAAZ,CAAA,CAAA;IAEA,EAAIE,IAAAA,YAAJ,CAjBsF;;IAmBtF,EAAO,OAAA,CAACA,YAAY,GAAGJ,MAAM,CAACX,GAAP,EAAhB,MAAkCC,SAAzC,EAAoD;IAChD,IAAA,IAAMe,cAAc,GAAGD,YAAY,CAACD,EAApC,CADgD;;IAIhD,IAAA,IAAIL,OAAO,CAACO,cAAD,CAAX,EAA6B,SAJmB;;IAOhD,IAAA,IAAMC,gBAAgB,GAAGZ,KAAK,CAACW,cAAD,CAA9B,CAAA;IACAP,IAAAA,OAAO,CAACO,cAAD,CAAP,GAA0B,CAA1B,CARgD;;IAWhD,IAAA,KAAK,IAAME,QAAX,IAAuBD,gBAAvB,EAAyC;IACrC;IACA,MAAME,IAAAA,cAAc,GAAGJ,YAAY,CAACF,MAAb,GAAsBI,gBAAgB,CAACC,QAAD,CAA7D,CAFqC;IAKrC;IACA;IACA;IACA;IACA;IACA;;IACA,MAAA,IACIR,mBAAmB,CAACQ,QAAD,CAAnB,KAAkCjB,SAAlC,IACCS,mBAAmB,CAACQ,QAAD,CAAnB,GAAgCC,cAAhC,KACIT,mBAAmB,CAACQ,QAAD,CAAnB,GAAgCC,cAAhC,GAAiD,KAAjD,IACGX,aAAa,CAACU,QAAD,CAAb,GAA0BF,cAFjC,CAFL,EAKE;IACEN,QAAAA,mBAAmB,CAACQ,QAAD,CAAnB,GAAgCC,cAAhC,CAAA;IACAR,QAAAA,MAAM,CAACb,IAAP,CAAY;IAAEgB,UAAAA,EAAE,EAAEI,QAAN;IAAgBL,UAAAA,MAAM,EAAEM,cAAAA;IAAxB,SAAZ,CAAA,CAAA;IACAX,QAAAA,aAAa,CAACU,QAAD,CAAb,GAA0BF,cAA1B,CAAA;IACH,OAAA;IACJ,KAAA;IACJ,GAAA;;IAED,EAAA,IAAI,OAAON,mBAAmB,CAACH,OAAD,CAA1B,KAAwC,WAA5C,EAAyD;IACrD;IACA,IAAA,OAAON,SAAP,CAAA;IACH,GAAA;;IAED,EAAA,OAAOO,aAAP,CAAA;IACH,CA5DD;;;IA+DA,IAAMY,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACZ,aAAD,EAAqCD,OAArC,EAAyD;IACtF,EAAMc,IAAAA,KAAK,GAAG,EAAd,CAAA;IACA,EAAIjC,IAAAA,CAAC,GAAGmB,OAAR,CAAA;;IACA,EAAA,OAAOnB,CAAP,EAAU;IACNiC,IAAAA,KAAK,CAACvB,IAAN,CAAWV,CAAX,CAAA,CAAA;IACAA,IAAAA,CAAC,GAAGoB,aAAa,CAACpB,CAAD,CAAjB,CAAA;IACH,GAAA;;IACD,EAAOiC,OAAAA,KAAK,CAACC,OAAN,EAAP,CAAA;IACH,CARD;;;IAWO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAClB,KAAD,EAAuBC,SAAvB,EAA2CC,OAA3C,EAA+D;IAC3F,EAAMC,IAAAA,aAAa,GAAGJ,kBAAkB,CAACC,KAAD,EAAQC,SAAR,EAAmBC,OAAnB,CAAxC,CAAA;IACA,EAAOC,OAAAA,aAAa,KAAKP,SAAlB,GAA8BmB,wBAAwB,CAACZ,aAAD,EAAgBD,OAAhB,CAAtD,GAAiFN,SAAxF,CAAA;IACH,CAHM;;ICvFP;IACA;;IACA,IAAMuB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAQf,IAAA,EAAA;IAAA,EAPTC,IAAAA,MAOS,QAPTA,MAOS;IAAA,MANTC,eAMS,QANTA,eAMS;IAAA,MALTC,cAKS,QALTA,cAKS,CAAA;IACT,EAAMC,IAAAA,QAAQ,GAAGH,MAAM,CAACI,MAAP,CAAc,UAACC,GAAD,EAAMC,KAAN,EAAA;IAAA,IAAgBtD,OAAAA,IAAI,CAACuD,GAAL,CAAS9D,KAAK,CAAC6D,KAAD,CAAd,EAAuBD,GAAvB,CAAhB,CAAA;IAAA,GAAd,EAA2DpD,MAAM,CAACuD,SAAlE,CAAjB,CAAA;IACA,EAAO5D,OAAAA,KAAK,CAACsD,cAAc,GAAGD,eAAjB,GAAmCE,QAApC,CAAL,GAAqD,CAA5D,CAAA;IACH,CAXD;IAcA;IAEA;;;IACA,IAAMM,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD,EAAoBR,cAApB,EAA4CS,OAA5C,EAA6DC,OAA7D,EAAgF;IACpG,EAAA,IAAMC,QAAQ,GAAGX,cAAc,GAAG,CAACQ,GAAG,CAACI,MAAJ,GAAa,CAAd,IAAmBH,OAApC,GAA8C,CAAA,GAAIC,OAAJ,GAAcF,GAAG,CAACI,MAAjF,CAAA;IACA,EAAMC,IAAAA,gBAAgB,GAAGL,GAAG,CAACN,MAAJ,CAAW,UAACC,GAAD,EAAMC,KAAN,EAAA;IAAA,IAAA,OAAgBD,GAAG,GAAG5D,KAAK,CAAC6D,KAAD,CAA3B,CAAA;IAAA,GAAX,EAA+C,CAA/C,CAAzB,CAAA;IACA,EAAOO,OAAAA,QAAQ,GAAGE,gBAAlB,CAAA;IACH,CAJD;;;IAOA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CACThB,MADS,EAETnC,CAFS,EAGTC,CAHS,EAITpB,KAJS,EAKTuD,eALS,EAMTU,OANS,EAOTC,OAPS,EAQT;IACA,EAAMF,IAAAA,GAAG,GAAGV,MAAM,CAACiB,KAAP,CAAapD,CAAb,EAAgBC,CAAhB,CAAZ,CAAA;IACA,EAAMoD,IAAAA,YAAY,GAAGT,eAAe,CAACC,GAAD,EAAMhE,KAAN,EAAaiE,OAAb,EAAsBC,OAAtB,CAApC,CAAA;IACA,EAAA,OAAOM,YAAY,GAAG,CAAf,GAAmB,SAACA,YAAY,GAAGjB,eAAhB,EAAoC,CAApC,CAAwCS,GAAAA,GAAG,CAACI,MAA/D,GAAwEtC,SAA/E,CAAA;IACH,CAZD;;;IAeA,IAAM2C,kBAAgB,GAClB,SADEA,gBACF,CAAA,KAAA,EAAA;IAAA,EACInB,IAAAA,MADJ,SACIA,MADJ;IAAA,MAEIoB,aAFJ,SAEIA,aAFJ;IAAA,MAGInB,eAHJ,SAGIA,eAHJ;IAAA,MAIIoB,eAJJ,SAIIA,eAJJ;IAAA,MAKIC,cALJ,SAKIA,cALJ;IAAA,MAMIC,eANJ,SAMIA,eANJ,CAAA;IAAA,EAeA,OAAA,UAACC,IAAD,EAAiB;;;IACb,IAAA,IAAQtB,cAAR,GAA6CkB,aAA7C,CAAQlB,cAAR;IAAA,QAAwBS,OAAxB,GAA6CS,aAA7C,CAAwBT,OAAxB;IAAA,QAAiCC,OAAjC,GAA6CQ,aAA7C,CAAiCR,OAAjC,CAAA;IACA,IAAMa,IAAAA,OAAO,GAA8B,EAA3C,CAAA;IACA,IAAMC,IAAAA,KAAK,GAAG,CAACF,IAAf,CAAA;IACAC,IAAAA,OAAO,CAAC,CAACC,KAAF,CAAP,GAAkB,CAAlB,CAAA;IACA,IAAA,IAAMC,WAAW,GAAG,CAAAC,EAAA,GAAAN,cAAc,KAAd,IAAA,IAAAA,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,cAAc,CAAEO,SAAhB,MAA6B,IAA7B,IAA6BD,EAAA,KAAA,KAAA,CAA7B,GAA6BA,EAA7B,GAA6B,CAAjD,CAAA;IACA,IAAA,IAAME,SAAS,GAAG9E,IAAI,CAACuD,GAAL,CAASc,eAAT,EAA0B,CAAAU,EAAA,GAAAT,cAAc,KAAd,IAAA,IAAAA,cAAc,WAAd,SAAA,GAAAA,cAAc,CAAEU,SAAhB,MAA6B,IAA7B,IAA6BD,EAAA,KAAA,KAAA,CAA7B,GAA6BA,EAA7B,GAA6BE,QAAvD,CAAlB,CAAA;;IACA,IAAA,KAAK,IAAIpE,CAAC,GAAG6D,KAAK,GAAGC,WAArB,EAAkC9D,CAAC,GAAGmC,MAAM,CAACc,MAAP,GAAgB,CAAtD,EAAyDjD,CAAC,IAAI,CAA9D,EAAiE;IAC7D,MAAIA,IAAAA,CAAC,GAAG6D,KAAJ,GAAYI,SAAZ,IAAyB,EAACP,eAAe,SAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEW,eAAlB,CAA7B,EAAgE,MAAA;IAChE,MAAA,IAAMC,WAAW,GAAGnB,IAAI,CAAChB,MAAD,EAAS0B,KAAT,EAAgB7D,CAAhB,EAAmBqC,cAAnB,EAAmCD,eAAnC,EAAoDU,OAApD,EAA6DC,OAA7D,CAAxB,CAAA;IACA,MAAIuB,IAAAA,WAAW,KAAK3D,SAApB,EAA+B,MAAA;IAC/BiD,MAAAA,OAAO,CAAC5D,CAAC,CAACuE,QAAF,EAAD,CAAP,GAAwBD,WAAxB,CAAA;IACH,KAAA;;IACD,IAAA,OAAOV,OAAP,CAAA;IACH,GA7BD,CAAA;IAAA,CADJ,CAAA;;IAkCA,IAAMY,iBAAiB,GAAG,SAApBA,iBAAoB,CAQD,KAAA,EAAA;IAAA,EAPrBrC,IAAAA,MAOqB,SAPrBA,MAOqB;IAAA,MANrBoB,aAMqB,SANrBA,aAMqB;IAAA,MALrBG,eAKqB,SALrBA,eAKqB,CAAA;;;;IACrB,EAAA,IAAQZ,OAAR,GAA8ES,aAA9E,CAAQT,OAAR;IAAA,MAAiBC,OAAjB,GAA8EQ,aAA9E,CAAiBR,OAAjB;IAAA,MAA0BV,cAA1B,GAA8EkB,aAA9E,CAA0BlB,cAA1B;IAAA,MAA0CD,eAA1C,GAA8EmB,aAA9E,CAA0CnB,eAA1C;IAAA,MAA2DqB,cAA3D,GAA8EF,aAA9E,CAA2DE,cAA3D,CAAA;IAEA,EAAA,CAAAM,EAAA,GAAAL,eAAe,SAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEe,wBAAjB,UAAA,iBAAA,SAAA,2BAAA,CAAA;IAEA,EAAMjB,IAAAA,eAAe,GAAGtB,mBAAmB,CAAC;IAAEC,IAAAA,MAAM,EAANA,MAAF;IAAUE,IAAAA,cAAc,EAAdA,cAAV;IAA0BD,IAAAA,eAAe,EAAfA,eAAAA;IAA1B,GAAD,CAA3C,CAAA;IAEA,EAAMsC,IAAAA,YAAY,GAAGpB,kBAAgB,CAAC;IAClCnB,IAAAA,MAAM,EAANA,MADkC;IAElCoB,IAAAA,aAAa,EAAbA,aAFkC;IAGlCnB,IAAAA,eAAe,EAAfA,eAHkC;IAIlCoB,IAAAA,eAAe,EAAfA,eAJkC;IAKlCC,IAAAA,cAAc,EAAdA,cALkC;IAMlCC,IAAAA,eAAe,EAAfA,eAAAA;IANkC,GAAD,CAArC,CAAA;IASA,EAAA,IAAMiB,IAAI,GAAG1C,gBAAgB,CAACyC,YAAD,EAAe,GAAf,EAAA,EAAA,GAAuBvC,MAAM,CAACc,MAA9B,CAA7B,CAhBqB;;IAmBrB,EAAA,IAAI0B,IAAI,KAAKhE,SAAb,EAAwB,OAAOA,SAAP,CAAA;IAExB,EAAMiE,IAAAA,MAAM,GAAG,EAAf,CAAA;;IArBqB,EAAA,IAAA,KAAA,GAAA,SAAA,KAAA,CAuBZ5E,CAvBY,EAAA;IAwBjB,IAAM6C,IAAAA,GAAG,GAAGV,MAAM,CAAC0C,GAAP,CAAW,UAACpC,KAAD,EAAQqC,KAAR,EAAA;IAAA,MAAmB,OAAA;IAAErC,QAAAA,KAAK,EAALA,KAAF;IAASqC,QAAAA,KAAK,EAALA,KAAAA;IAAT,OAAnB,CAAA;IAAA,KAAX,EAAiD1B,KAAjD,CAAuD,CAACuB,IAAI,CAAC3E,CAAC,GAAG,CAAL,CAA5D,EAAqE,CAAC2E,IAAI,CAAC3E,CAAD,CAA1E,CAAZ,CAAA;IACA,IAAA,IAAMlB,MAAM,GAAG8D,eAAe,CAC1BC,GAAG,CAACgC,GAAJ,CAAQ,UAAA,KAAA,EAAA;IAAA,MAAGpC,IAAAA,KAAH,SAAGA,KAAH,CAAA;IAAA,MAAA,OAAeA,KAAf,CAAA;IAAA,KAAR,CAD0B,EAE1BJ,cAF0B,EAG1BS,OAH0B,EAI1BC,OAJ0B,CAA9B,CAAA;IAMA6B,IAAAA,MAAM,CAACpE,IAAP,CACIqC,GAAG,CAACgC,GAAJ,CAAQ,UAAA,KAAA,EAAmBE,UAAnB,EAAA;IAAA,MAAGtC,IAAAA,KAAH,SAAGA,KAAH;IAAA,UAAUqC,KAAV,SAAUA,KAAV,CAAA;IAAA,MAAmC,OAAA;IACvCrC,QAAAA,KAAK,EAALA,KADuC;IAEvCuC,QAAAA,MAAM,EAAE;IACJlG,UAAAA,MAAM,EAANA,MADI;IAEJD,UAAAA,KAAK,EAAEC,MAAM,GAAGF,KAAK,CAAC6D,KAAD,CAFjB;IAGJqC,UAAAA,KAAK,EAALA,KAHI;IAIJC,UAAAA,UAAU,EAAVA,UAJI;IAKJE,UAAAA,WAAW,EAAEpC,GAAG,CAACI,MAAAA;IALb,SAAA;IAF+B,OAAnC,CAAA;IAAA,KAAR,CADJ,CAAA,CAAA;IA/BiB,GAAA,CAAA;;IAuBrB,EAAA,KAAK,IAAIjD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2E,IAAI,CAAC1B,MAAzB,EAAiCjD,CAAC,IAAI,CAAtC,EAAyC;IAAA,IAAA,KAAA,CAAhCA,CAAgC,CAAA,CAAA;IAoBxC,GAAA;;IAED,EAAA,CAAAkE,EAAA,GAAAR,eAAe,KAAf,IAAA,IAAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,eAAe,CAAEwB,yBAAjB,MAA0C,IAA1C,IAA0ChB,EAAA,KAAA,KAAA,CAA1C,GAA0C,KAAA,CAA1C,GAA0CA,EAAA,CAAAiB,IAAA,CAAAzB,eAAA,EAAGkB,MAAH,CAA1C,CAAA;IAEA,EAAA,OAAOA,MAAP,CAAA;IACH,CAxDD;;;;;IC3EA,IAAMQ,SAAS,GAAG,SAAZA,SAAY,CACdC,IADc,EAId,IAAA,EAAA,KAAA,EAAA;IAAA,EAFExG,IAAAA,KAEF,QAFEA,KAEF;IAAA,MAFSoG,WAET,QAFSA,WAET,CAAA;IAAA,EADEnC,IAAAA,OACF,SADEA,OACF;IAAA,MADWC,OACX,SADWA,OACX;IAAA,MADoBV,cACpB,SADoBA,cACpB,CAAA;IACA,EAAA,IAAMiD,IAAI,GAAGxC,OAAO,IAAImC,WAAW,GAAG,CAAlB,CAAP,GAA8B,CAAA,GAAIlC,OAAJ,GAAckC,WAAzD,CAAA;IACA,EAAA,OAAA,QAAA,GAAgBI,IAAhB,GAAA,KAAA,GAA0BC,IAA1B,GAAA,QAAA,GAAuCvG,KAAK,CAAC,CAACsD,cAAc,GAAGiD,IAAlB,IAA0BzG,KAA3B,EAAkC,CAAlC,CAA5C,GAAA,GAAA,CAAA;IACH,CAPD,CAAA;;IASA,IAAM0G,UAAQ,GAAG,SAAXA,QAAW,CAACP,MAAD,EAAsBzB,aAAtB,EAAsD;IACnE,EAAA,IAAIA,aAAa,CAACyB,MAAd,KAAyB,MAA7B,EAAqC;IACjC,IAAsB,OAAA,cAAA,GAAA,CAAA,GAAIzB,aAAa,CAACR,OAAxC,GAAA,KAAA,CAAA;IACH,GAAA;;IACD,EAAA,OAAOqC,SAAS,CAAC,MAAD,EAASJ,MAAT,EAAiBzB,aAAjB,CAAhB,CAAA;IACH,CALD,CAAA;;IAOA,IAAMiC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC3E,IAAD,EAAemE,MAAf,EAAoCzB,aAApC,EACxB;IAAA,EAAAQ,IAAAA,EAAA,EAAAG,EAAA,CAAA;;IAAA,EAAAkB,OAAAA,SAAS,CAAC,MAAA,CAAArB,EAAA,GAAAlD,IAAI,CAAC4E,KAAL,CAAW,cAAX,CAAA,MAA0B,IAA1B,IAA0B1B,EAAA,KAAA,KAAA,CAA1B,GAA0B,KAAA,CAA1B,GAA0BA,EAAA,CAAG,CAAH,CAA1B,MAA+B,IAA/B,IAA+BG,EAAA,KAAA,KAAA,CAA/B,GAA+BA,EAA/B,GAAmCrD,IAApC,EAA0CmE,MAA1C,EAAkDzB,aAAlD,CAAT,CAAA;IAAyE,CAD7E,CAAA;;IAGA,IAAMmC,cAAc,GAAG,SAAjBA,cAAiB,CAA0BjD,KAA1B,EAAoCuC,MAApC,EAAyDzB,aAAzD,EAAyF;IAC5G,EAAIoC,IAAAA,MAAJ,EAAYC,KAAZ,CAAA;;IAEA,EAAInD,IAAAA,KAAK,CAACoD,MAAN,IAAgBpD,KAAK,CAACoD,MAAN,CAAa5C,MAAb,GAAsB,CAA1C,EAA6C;IACzC0C,IAAAA,MAAM,GAAGlD,KAAK,CAACoD,MAAN,CACJC,MADI,CACG,CACJ;IACIC,MAAAA,GAAG,EAAEtD,KAAK,CAACsD,GADf;IAEIlH,MAAAA,KAAK,EAAE4D,KAAK,CAAC5D,KAFjB;IAGIC,MAAAA,MAAM,EAAE2D,KAAK,CAAC3D,MAAAA;IAHlB,KADI,CADH,CAQJkH,CAAAA,IARI,CAQC,UAACC,KAAD,EAAQC,MAAR,EAAA;IAAA,MAAA,OAAmBD,KAAK,CAACpH,KAAN,GAAcqH,MAAM,CAACrH,KAAxC,CAAA;IAAA,KARD,CASJgG,CAAAA,GATI,CASA,UAACsB,KAAD,EAAA;IAAA,MAAA,OAAcA,KAAK,CAACJ,GAApB,GAA2BI,GAAAA,GAAAA,KAAK,CAACtH,KAAjC,GAAA,GAAA,CAAA;IAAA,KATA,CAUJuH,CAAAA,IAVI,CAUC,IAVD,CAAT,CAAA;IAWH,GAAA;;IAED,EAAI7C,IAAAA,aAAa,CAACqC,KAAlB,EAAyB;IACrBA,IAAAA,KAAK,GAAG,CAACrC,aAAa,CAACqC,KAAd,CAAoBA,KAApB,IAA6B,EAA9B,EACHf,GADG,CACC,UAAA,KAAA,EAAA;IAAA,MAAGwB,IAAAA,QAAH,SAAGA,QAAH;IAAA,UAAaxF,IAAb,SAAaA,IAAb,CAAA;IAAA,MAA2BwF,OAAAA,QAA3B,SAAuCb,mBAAmB,CAAC3E,IAAD,EAAOmE,MAAP,EAAezB,aAAf,CAA1D,CAAA;IAAA,KADD,EAEHuC,MAFG,CAEIN,mBAAmB,CAACjC,aAAa,CAACqC,KAAd,CAAoB/E,IAArB,EAA2BmE,MAA3B,EAAmCzB,aAAnC,CAFvB,EAGH6C,IAHG,CAGE,IAHF,CAAR,CAAA;IAIH,GALD,MAKO;IACHR,IAAAA,KAAK,GAAMzG,IAAI,CAACmH,IAAL,CAAWtB,MAAM,CAACnG,KAAP,IAAgB0E,aAAa,CAACgD,aAAd,IAA+BhD,aAAa,CAAClB,cAA7D,CAAD,GAAiF,GAA3F,CAAN,GAAL,IAAA,CAAA;IACH,GAAA;;IAED,EAAO,OAAA;IAAEsD,IAAAA,MAAM,EAANA,MAAF;IAAUC,IAAAA,KAAK,EAALA,KAAAA;IAAV,GAAP,CAAA;IACH,CA3BD,CAAA;;IA6BA,IAAMY,kBAAkB,GAAgB,SAAlCA,kBAAkC,CAAmB,KAAA,EAAA;IAAA,EAAhBC,IAAAA,UAAgB,SAAhBA,UAAgB,CAAA;;IACvD,EAAA,IAAQV,GAAR,GAA6CU,UAA7C,CAAQV,GAAR;IAAA,MAAaW,GAAb,GAA6CD,UAA7C,CAAaC,GAAb;IAAA,MAAkBf,MAAlB,GAA6Cc,UAA7C,CAAkBd,MAAlB;IAAA,MAA0BC,KAA1B,GAA6Ca,UAA7C,CAA0Bb,KAA1B;IAAA,MAAoCe,IAApC,mCAA6CF,UAA7C,EAAAG,WAAA,CAAA,CAAA;;IACA,EAAOC,OAAAA,cAAA,CAAA,KAAA,EAAA,QAAA,CAAA;IAAKd,IAAAA,GAAG,EAAEA,GAAV;IAAeW,IAAAA,GAAG,EAAEA,GAAAA;IAApB,GAAA,EAA8Bf,MAAM,GAAG;IAAEA,IAAAA,MAAM,EAANA,MAAF;IAAUC,IAAAA,KAAK,EAALA,KAAAA;IAAV,GAAH,GAAuB,IAA3D,EAAsEe,IAAtE,CAAP,CAAA,CAAA;IACH,CAHD,CAAA;;IASA,IAAMG,aAAa,GAAG,SAAhBA,aAAgB,CAA0BC,KAA1B,EAA0D;;;IAC5E,EAAA,IAAQtE,KAAR,GAAqGsE,KAArG,CAAQtE,KAAR;IAAA,MAAeuC,MAAf,GAAqG+B,KAArG,CAAe/B,MAAf;IAAA,MAAuBzB,aAAvB,GAAqGwD,KAArG,CAAuBxD,aAAvB;IAAA,MAAqGwD,iBAAAA,GAAAA,KAArG,CAAsCN,UAAtC,CAAA;IAAA,EAAA,iBAAA,GAAA,iBAAA,KAAA,KAAA,CAAA,GAAiF,EAAjF,GAAA,iBAAA,CAAA;;IAAA,EAAoDO,IAAAA,KAApD,qBAAoDA,KAApD;IAAA,MAA8DC,cAA9D,GAAAC,+BAAA,CAAA,iBAAA,EAAAC,YAAA,CAAA;IAAA,MAAqFC,WAArF,GAAqGL,KAArG,CAAqFK,WAArF,CAAA;;IACA,EAAA,IAAQC,OAAR,GAAoB9D,aAApB,CAAQ8D,OAAR,CAAA;;IAEA,EAAA,IAAMC,UAAU,GAAA,QAAA,CAAA;IACZC,IAAAA,OAAO,EAAE,OADG;IAEZC,IAAAA,SAAS,EAAE,aAFC;IAGZ3I,IAAAA,KAAK,EAAE0G,UAAQ,CAACP,MAAD,EAASzB,aAAT,CAHH;IAIZzE,IAAAA,MAAM,EAAE,MAJI;IAKZ2I,IAAAA,WAAW,EAAKhF,KAAK,CAAC5D,KAAX,GAAA,KAAA,GAAsB4D,KAAK,CAAC3D,MAAAA;IAL3B,GAMRyE,EAAAA,aAAa,CAACR,OAAd,GAAwB;IAAEA,IAAAA,OAAO,EAAKQ,aAAa,CAACR,OAAnB,GAAA,IAAA;IAAT,GAAxB,GAAoE,IAN5D,EAOR,CAACQ,aAAa,CAACyB,MAAd,KAAyB,SAAzB,IAAsCzB,aAAa,CAACyB,MAAd,KAAyB,SAAhE,KACJA,MAAM,CAACD,UAAP,GAAoBC,MAAM,CAACC,WAAP,GAAqB,CADrC,GAEE;IAAEyC,IAAAA,YAAY,EAAKnE,aAAa,CAACT,OAAnB,GAAA,IAAA;IAAd,GAFF,GAGE,IAVM,EAWRuE,OAAO,GAAG;IAAEM,IAAAA,MAAM,EAAE,SAAA;IAAV,GAAH,GAA2B,IAX1B,EAYTX,KAZS,CAAhB,CAAA;;IAeA,EAAA,IAAMY,WAAW,GAAGP,OAAO,GACrB,UAACQ,KAAD,EAAsB;IAClBR,IAAAA,OAAO,CAACQ,KAAD,EAAQpF,KAAR,EAAeuC,MAAM,CAACF,KAAtB,CAAP,CAAA;IACH,GAHoB,GAIrBnE,SAJN,CAAA;;IAMA,EAAA,IAAM8F,UAAU,GAAA,QAAA,CAAA;IACZV,IAAAA,GAAG,EAAEtD,KAAK,CAACsD,GADC;IAEZW,IAAAA,GAAG,EAAE,CAAA3C,EAAA,GAAAtB,KAAK,CAACiE,GAAN,UAAA,iBAAA,KAAA,GAAa,EAFN;IAGZoB,IAAAA,KAAK,EAAErF,KAAK,CAACqF,KAHD;IAIZT,IAAAA,OAAO,EAAEO,WAJG;IAKZZ,IAAAA,KAAK,EAAEM,UALK;IAMZS,IAAAA,SAAS,EAAE,0BAAA;IANC,GAOTrC,EAAAA,cAAc,CAACjD,KAAD,EAAQuC,MAAR,EAAgBzB,aAAhB,CAPL,EAQT0D,cARS,CAAhB,CAAA;;IAWA,EAAA,OAAO,CAACG,WAAW,KAAX,IAAA,IAAAA,WAAW,WAAX,GAAAA,WAAA,GAAeZ,kBAAhB,EAAoC;IAAE/D,IAAAA,KAAK,EAALA,KAAF;IAASuC,IAAAA,MAAM,EAANA,MAAT;IAAiBzB,IAAAA,aAAa,EAAbA,aAAjB;IAAgCkD,IAAAA,UAAU,EAAVA,UAAAA;IAAhC,GAApC,CAAP,CAAA;IACH,CArCD;;;;IC1DA,IAAMuB,yBAAyB,GAAuB,SAAhDA,yBAAgD,CAAA,IAAA,EAAA;IAAA,EAAGC,IAAAA,iBAAH,QAAGA,iBAAH;IAAA,MAAsBC,QAAtB,QAAsBA,QAAtB,CAAA;IAAA,EAAA,OAClDrB,cAAS,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAAoB,iBAAA,EAAA;kBAAoBC,QAAAA;IAApB,GADyC,CAAA,CAAA,CAAA;IAAA,CAAtD,CAAA;;IAUA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACpB,KAAD,EAAqC;IAC9D,EAAA,IACIxD,aADJ,GAOIwD,KAPJ,CACIxD,aADJ;IAAA,MAEI6E,QAFJ,GAOIrB,KAPJ,CAEIqB,QAFJ;IAAA,MAGIC,SAHJ,GAOItB,KAPJ,CAGIsB,SAHJ;IAAA,MAIIC,kBAJJ,GAOIvB,KAPJ,CAIIuB,kBAJJ;IAAA,MAOIvB,qBAAAA,GAAAA,KAPJ,CAKIkB,iBALJ,CAAA;IAAA,EAAA,qBAAA,GAAA,qBAAA,KAAA,KAAA,CAAA,GAK6D,EAL7D,GAAA,qBAAA,CAAA;;IAAA,EAKyBjB,IAAAA,KALzB,yBAKyBA,KALzB;IAAA,MAKmCuB,qBALnC,GAAArB,+BAAA,CAAA,qBAAA,EAAAN,WAAA,CAAA;IAAA,MAMIsB,QANJ,GAOInB,KAPJ,CAMImB,QANJ,CAAA;;IASA,EAAA,IAAMD,iBAAiB,GAAA,QAAA,CAAA;IACnBF,IAAAA,SAAS,EAAE,wBADQ;IAEnBf,IAAAA,KAAK,EAAA,QAAA,CAAA;IACDO,MAAAA,OAAO,EAAE,MADR;IAEDiB,MAAAA,aAAa,EAAE,KAFd;IAGDC,MAAAA,QAAQ,EAAE,QAHT;IAIDC,MAAAA,UAAU,EAAE,YAJX;IAKDC,MAAAA,cAAc,EAAE,eAAA;IALf,KAAA,EAMGP,QAAQ,GAAGC,SAAS,GAAG,CAAvB,GAA2B;IAAEX,MAAAA,YAAY,EAAKnE,aAAa,CAACT,OAAnB,GAAA,IAAA;IAAd,KAA3B,GAA4E,IAN/E,EAOEkE,KAPF,CAAA;IAFc,GAAA,EAWhBuB,qBAXgB,CAAvB,CAAA;;IAcA,EAAA,OAAO,CAACD,kBAAkB,KAAlB,IAAA,IAAAA,kBAAkB,WAAlB,GAAAA,kBAAA,GAAsBN,yBAAvB,EAAkD;IACrDzE,IAAAA,aAAa,EAAbA,aADqD;IAErD6E,IAAAA,QAAQ,EAARA,QAFqD;IAGrDC,IAAAA,SAAS,EAATA,SAHqD;IAIrDJ,IAAAA,iBAAiB,EAAjBA,iBAJqD;IAKrDC,IAAAA,QAAQ,EAARA,QAAAA;IALqD,GAAlD,CAAP,CAAA;IAOH,CA/BD;;ICQA,IAAMU,UAAU,GAAG,SAAbA,UAAa,CAA0B7B,KAA1B,EAAoE;IACnF,EAAA,IAAQ5E,MAAR,GAAqG4E,KAArG,CAAQ5E,MAAR;IAAA,MAAgBoB,aAAhB,GAAqGwD,KAArG,CAAgBxD,aAAhB;IAAA,MAA+B6D,WAA/B,GAAqGL,KAArG,CAA+BK,WAA/B;IAAA,MAA4CkB,kBAA5C,GAAqGvB,KAArG,CAA4CuB,kBAA5C;IAAA,MAAgEO,eAAhE,GAAqG9B,KAArG,CAAgE8B,eAAhE;IAAA,MAAiFnF,eAAjF,GAAqGqD,KAArG,CAAiFrD,eAAjF,CAAA;IAEA,EAAMoF,IAAAA,UAAU,GAAGtE,iBAAiB,CAAC;IAAErC,IAAAA,MAAM,EAANA,MAAF;IAAUoB,IAAAA,aAAa,EAAbA,aAAV;IAAyBG,IAAAA,eAAe,EAAfA,eAAAA;IAAzB,GAAD,CAApC,CAAA;IAEA,EAAIoF,IAAAA,UAAU,KAAKnI,SAAnB,EAA8B,OAAOkG,uCAAP,CAAA;IAE9B,EACIA,OAAAA;kBACKiC,UAAU,CAACjE,GAAX,CAAe,UAAChC,GAAD,EAAMuF,QAAN,EAAA;IAAA,MACZvB,OAAAA,cAAC,CAAAsB,oBAAA,EAEG;IAAA5E,QAAAA,aAAa,EAAEA,aAAf;IACA6E,QAAAA,QAAQ,EAAEA,QADV;IAEAC,QAAAA,SAAS,EAAES,UAAU,CAAC7F,MAFtB;IAGAqF,QAAAA,kBAAkB,EAAEA,kBAHpB;IAIAL,QAAAA,iBAAiB,EAAEY,eAAe,KAAA,IAAf,IAAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,eAAe,CAAEZ,iBAJpC;IAMCC,QAAAA,QAAA,EAAArF,GAAG,CAACgC,GAAJ,CAAQ,UAAA,IAAA,EAAA;IAAA,UAAGpC,IAAAA,KAAH,QAAGA,KAAH;IAAA,cAAUuC,MAAV,QAAUA,MAAV,CAAA;IAAA,UACL6B,OAAAA,cAAA,CAACC,aAAD,EAEI;IAAArE,YAAAA,KAAK,EAAEA,KAAP;IACAuC,YAAAA,MAAM,EAAEA,MADR;IAEAzB,YAAAA,aAAa,EAAEA,aAFf;IAGA6D,YAAAA,WAAW,EAAEA,WAHb;IAIAX,YAAAA,UAAU,EAAEoC,eAAe,SAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEpC,UAAAA;IAJ7B,WAFJ,EACShE,KAAK,CAACsG,GAAN,IAAatG,KAAK,CAACsD,GAD5B,CADK,CAAA;IAAA,SAAR,CAAA;IAND,OAFH,EAAA,MAAA,GACeqC,QADf,CADW,CAAA;IAAA,KAAf,CAAA;QAFT,CAAA;IAyBH,CAhCD;;ICnBA,IAAMY,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACjI,KAAD,EAAuBkI,UAAvB,EAA2CjI,SAA3C,EAA8DC,OAA9D,EAAiF;IAAA,EAAA,IAAA,CAAA,CAAA;;IACzG;IACA;IACA;IACA,EAAA,IAAMiI,IAAI,GAAS,EAAnB,CAJyG;IAOzG;;IACA,EAAA,IAAMC,KAAK,GAAwD;IAAE,IAAMnI,CAAAA,GAAAA,CAAAA,GAAAA,EAAAA,EAAAA,CAAAA,CAAAA,SAAN,IAAkB,IAAlB,EAAA,CAAA,CAAA;IAAF,GAAnE,CAAA;;IARyG,EAAA,IAAA,KAAA,GAAA,SAAA,KAAA,CAUhGiC,MAVgG,EAAA;IAWrGmG,IAAAA,MAAM,CAACC,IAAP,CAAYF,KAAK,CAAClG,MAAD,CAAjB,CAA2BqG,CAAAA,OAA3B,CAAmC,UAACxJ,CAAD,EAAM;IACrC,MAAM6D,IAAAA,IAAI,GAAG,CAAC7D,CAAd,CAAA;IACA,MAAMyJ,IAAAA,iBAAiB,GAAGtG,MAAM,GAAG,CAAT,IAAciG,IAAI,CAACvF,IAAD,CAAJ,CAAWV,MAAX,CAAd,GAAmCiG,IAAI,CAACvF,IAAD,CAAJ,CAAWV,MAAX,CAAmB,CAAA,CAAnB,CAAnC,GAA2D,CAArF,CAAA;IAEAlC,MAAAA,KAAK,CAAC4C,IAAD,CAAL,CAAY2F,OAAZ,CAAoB,UAAyB,IAAA,EAAA;IAAA,QAAtB1H,IAAAA,QAAsB,QAAtBA,QAAsB;IAAA,YAAZL,MAAY,QAAZA,MAAY,CAAA;;IACzC,QAAA,IAAI,CAAC2H,IAAI,CAACtH,QAAD,CAAT,EAAqB;IACjBsH,UAAAA,IAAI,CAACtH,QAAD,CAAJ,GAAiB,EAAjB,CAAA;IACH,SAHwC;IAMzC;IACA;;;IACA,QAAA,IAAMC,cAAc,GAAG0H,iBAAiB,GAAGhI,MAA3C,CAAA;;IACA,QACI,IAAA,CAAC2H,IAAI,CAACtH,QAAD,CAAJ,CAAeqB,MAAM,GAAG,CAAxB,CAAD,IACCiG,IAAI,CAACtH,QAAD,CAAJ,CAAeqB,MAAM,GAAG,CAAxB,EAA2B,CAA3B,CAAA,GAAgCpB,cAAhC,KACIqH,IAAI,CAACtH,QAAD,CAAJ,CAAeqB,MAAM,GAAG,CAAxB,CAAA,CAA2B,CAA3B,CAAgCpB,GAAAA,cAAhC,GAAiD,MAAjD,IACG8B,IAAI,GAAGuF,IAAI,CAACtH,QAAD,CAAJ,CAAeqB,MAAM,GAAG,CAAxB,CAA2B,CAAA,CAA3B,CAFd,CAFL,EAKE;IACEiG,UAAAA,IAAI,CAACtH,QAAD,CAAJ,CAAeqB,MAAM,GAAG,CAAxB,CAA6B,GAAA,CAACU,IAAD,EAAO9B,cAAP,CAA7B,CAAA;IACH,SAAA;;IAED,QAAIoB,IAAAA,MAAM,GAAGgG,UAAU,GAAG,CAAtB,IAA2BrH,QAAQ,KAAKX,OAA5C,EAAqD;IACjD,UAAA,IAAI,CAACkI,KAAK,CAAClG,MAAM,GAAG,CAAV,CAAV,EAAwB;IACpBkG,YAAAA,KAAK,CAAClG,MAAM,GAAG,CAAV,CAAL,GAAoB,EAApB,CAAA;IACH,WAAA;;IACDkG,UAAAA,KAAK,CAAClG,MAAM,GAAG,CAAV,CAAL,CAAkBrB,QAAlB,CAAA,GAA8B,IAA9B,CAAA;IACH,SAAA;IACJ,OAxBD,CAAA,CAAA;IAyBH,KA7BD,CAAA,CAAA;IAXqG,GAAA,CAAA;;IAUzG,EAAA,KAAK,IAAIqB,MAAM,GAAG,CAAlB,EAAqBA,MAAM,GAAGgG,UAA9B,EAA0ChG,MAAM,IAAI,CAApD,EAAuD;IAAA,IAAA,KAAA,CAA9CA,MAA8C,CAAA,CAAA;IA+BtD,GAAA;;IACD,EAAA,OAAOiG,IAAP,CAAA;IACH,CA3CD,CAAA;;IA6CA,IAAMM,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACN,IAAD,EAAaD,UAAb,EAAiChI,OAAjC,EAAoD;IAChF,EAAA,IAAM0D,IAAI,GAAG,CAAC1D,OAAD,CAAb,CAAA;;IACA,EAAA,KAAK,IAAI0C,IAAI,GAAG1C,OAAX,EAAoBgC,MAAM,GAAGgG,UAAlC,EAA8ChG,MAAM,GAAG,CAAvD,EAA0DA,MAAM,IAAI,CAApE,EAAuE;IACnE,IAAA,IAAA,iBAAA,GAAmBiG,IAAI,CAACvF,IAAD,CAAJ,CAAWV,MAAX,CAAnB;IAAA,QAAOwG,QAAP,GAAA,iBAAA,CAAA,CAAA,CAAA,CAAA;IACA9F,IAAAA,IAAI,GAAG8F,QAAP,CAAA;IACA9E,IAAAA,IAAI,CAACnE,IAAL,CAAUmD,IAAV,CAAA,CAAA;IACH,GAAA;;IACD,EAAOgB,OAAAA,IAAI,CAAC3C,OAAL,EAAP,CAAA;IACH,CARD;;;IAWA,IAAM0H,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAC3I,KAAD,EAAuBkI,UAAvB,EAA2CjI,SAA3C,EAA8DC,OAA9D,EAAA;IAAA,EAAA,OAC5BuI,uBAAuB,CAACR,mBAAmB,CAACjI,KAAD,EAAQkI,UAAR,EAAoBjI,SAApB,EAA+BC,OAA/B,CAApB,EAA6DgI,UAA7D,EAAyEhI,OAAzE,CADK,CAAA;IAAA,CAAhC;;ICvDA,IAAMqC,gBAAgB,GAClB,SADEA,gBACF,CAAA,IAAA,EAAA;IAAA,EACInB,IAAAA,MADJ,QACIA,MADJ;IAAA,MAEIW,OAFJ,QAEIA,OAFJ;IAAA,MAGIC,OAHJ,QAGIA,OAHJ;IAAA,MAII4G,iBAJJ,QAIIA,iBAJJ;IAAA,MAKIC,kBALJ,QAKIA,kBALJ;IAAA,MAMIlG,eANJ,QAMIA,eANJ,CAAA;IAAA,EAeA,OAAA,UAACC,IAAD,EAA8D;IAC1D,IAAMC,IAAAA,OAAO,GAAG,EAAhB,CAAA;IACA,IAAA,IAAMiG,YAAY,GAAGD,kBAAkB,GAAG,GAA1C,CAAA;IACA,IAAA,IAAI9K,MAAM,GAAG6K,iBAAiB,GAAG/K,KAAK,CAACuD,MAAM,CAACwB,IAAD,CAAP,CAAzB,GAA0C,IAAIZ,OAA3D,CAAA;;IACA,IAAA,KAAK,IAAI/C,CAAC,GAAG2D,IAAI,GAAG,CAApB,EAAuB3D,CAAC,GAAGmC,MAAM,CAACc,MAAP,GAAgB,CAA3C,EAA8CjD,CAAC,IAAI,CAAnD,EAAsD;IAClD4D,MAAAA,OAAO,CAACpD,IAAR,CAAa;IAAEoB,QAAAA,QAAQ,EAAE5B,CAAZ;IAAeuB,QAAAA,MAAM,EAAGqI,IAAAA,CAAAA,GAAAA,CAAAA,kBAAkB,GAAG9K,MAAxB,EAAmC,CAAnC,CAAA;IAArB,OAAb,CAAA,CAAA;;IACA,MAAKA,IAAAA,MAAM,GAAG+K,YAAT,IAAyB,EAACnG,eAAe,KAAA,IAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEW,eAAlB,CAA1B,IAAgErE,CAAC,KAAKmC,MAAM,CAACc,MAAjF,EAAyF;IACrF,QAAA,MAAA;IACH,OAAA;;IACDnE,MAAAA,MAAM,IAAI6K,iBAAiB,GAAG/K,KAAK,CAACuD,MAAM,CAACnC,CAAD,CAAP,CAAzB,GAAuC8C,OAAvC,GAAiD,IAAIC,OAA/D,CAAA;IACH,KAAA;;IACD,IAAA,OAAOa,OAAP,CAAA;IACH,GA3BD,CAAA;IAAA,CADJ,CAAA;;IA8BA,IAAMkG,iBAAiB,GAAG,SAApBA,iBAAoB,CAgBrB,KAAA,EAAA;IAAA,EAfDnF,IAAAA,IAeC,SAfDA,IAeC;IAAA,MAdDxC,MAcC,SAdDA,MAcC;IAAA,MAbDE,cAaC,SAbDA,cAaC;IAAA,MAZD0H,WAYC,SAZDA,WAYC;IAAA,MAXDC,aAWC,SAXDA,aAWC;IAAA,MAVDlH,OAUC,SAVDA,OAUC;IAAA,MATDC,OASC,SATDA,OASC,CAAA;IACD,EAAMkH,IAAAA,YAAY,GAAG,EAArB,CAAA;IAEA,EAAMC,IAAAA,UAAU,GAAGF,aAAa,CAACzH,MAAd,CAAqB,UAACC,GAAD,EAAM5D,KAAN,EAAA;IAAA,IAAgB4D,OAAAA,GAAG,GAAG5D,KAAtB,CAAA;IAAA,GAArB,EAAkD,CAAlD,CAAnB,CAAA;;IAHC,EAAA,IAAA,KAAA,GAAA,SAAA,KAAA,CAKQoB,CALR,EAAA;IAMG,IAAMmK,IAAAA,MAAM,GAAGhI,MAAM,CAAC0C,GAAP,CAAW,UAACpC,KAAD,EAAQqC,KAAR,EAAA;IAAA,MAAmB,OAAA;IAAErC,QAAAA,KAAK,EAALA,KAAF;IAASqC,QAAAA,KAAK,EAALA,KAAAA;IAAT,OAAnB,CAAA;IAAA,KAAX,CAAiD1B,CAAAA,KAAjD,CAAuDuB,IAAI,CAAC3E,CAAD,CAA3D,EAAgE2E,IAAI,CAAC3E,CAAC,GAAG,CAAL,CAApE,CAAf,CAAA;IAEA,IAAMoK,IAAAA,iBAAiB,GAAGJ,aAAa,CAACzH,MAAd,CACtB,UAACC,GAAD,EAAM5D,KAAN,EAAakG,KAAb,EAAA;IAAA,MAAA,OAAuBtC,GAAG,GAAG,CAACuH,WAAW,CAAC/J,CAAD,CAAX,GAAiB+J,WAAW,CAACjF,KAAD,CAA7B,IAAwClG,KAArE,CAAA;IAAA,KADsB,EAEtB,CAFsB,CAA1B,CAAA;IAKA,IAAA,IAAMyL,WAAW,GACZ,CAAChI,cAAc,GAAG,CAACsC,IAAI,CAAC1B,MAAL,GAAc,CAAf,IAAoBH,OAArC,GAA+C,CAAA,IAAK6B,IAAI,CAAC1B,MAAL,GAAc,CAAnB,CAAA,GAAwBF,OAAvE,GAAiFqH,iBAAlF,IACGJ,aAAa,CAAChK,CAAD,CADjB,GAEAkK,UAHJ,CAAA;IAKAD,IAAAA,YAAY,CAACzJ,IAAb,CACI2J,MAAM,CAACtF,GAAP,CAAW,UAAA,KAAA,EAAmBE,UAAnB,EAAA;IAAA,MAAGtC,IAAAA,KAAH,SAAGA,KAAH;IAAA,UAAUqC,KAAV,SAAUA,KAAV,CAAA;IAAA,MAAmC,OAAA;IAC1CrC,QAAAA,KAAK,EAALA,KAD0C;IAE1CuC,QAAAA,MAAM,EAAE;IACJnG,UAAAA,KAAK,EAAEwL,WADH;IAEJvL,UAAAA,MAAM,EAAEuL,WAAW,GAAGzL,KAAK,CAAC6D,KAAD,CAFvB;IAGJqC,UAAAA,KAAK,EAALA,KAHI;IAIJC,UAAAA,UAAU,EAAVA,UAJI;IAKJE,UAAAA,WAAW,EAAEkF,MAAM,CAAClH,MAAAA;IALhB,SAAA;IAFkC,OAAnC,CAAA;IAAA,KAAX,CADJ,CAAA,CAAA;IAlBH,GAAA,CAAA;;IAKD,EAAA,KAAK,IAAIjD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2E,IAAI,CAAC1B,MAAL,GAAc,CAAlC,EAAqCjD,CAAC,IAAI,CAA1C,EAA6C;IAAA,IAAA,KAAA,CAApCA,CAAoC,CAAA,CAAA;IAyB5C,GAAA;;IAED,EAAA,OAAOiK,YAAP,CAAA;IACH,CAjDD,CAAA;;IAmDA,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,CAUvB,KAAA,EAAA;IAAA,EATDnI,IAAAA,MASC,SATDA,MASC;IAAA,MARDoB,aAQC,SARDA,aAQC;IAAA,MAPDoG,iBAOC,SAPDA,iBAOC;IAAA,MANDjG,eAMC,SANDA,eAMC,CAAA;IACD,EAAA,IAAQ6G,OAAR,GAAsDhH,aAAtD,CAAQgH,OAAR;IAAA,MAAiBzH,OAAjB,GAAsDS,aAAtD,CAAiBT,OAAjB;IAAA,MAA0BC,OAA1B,GAAsDQ,aAAtD,CAA0BR,OAA1B;IAAA,MAAmCV,cAAnC,GAAsDkB,aAAtD,CAAmClB,cAAnC,CAAA;IAEA,EAAM0H,IAAAA,WAAW,GAAa,EAA9B,CAAA;IACA,EAAA,IAAMC,aAAa,GAAa,EAAhC,CAJC;;IAOD,EAAA,IAAI7H,MAAM,CAACc,MAAP,IAAiBsH,OAArB,EAA8B;IAC1B,IAAA,KAAK,IAAIzF,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG3C,MAAM,CAACc,MAAnC,EAA2C6B,KAAK,IAAI,CAApD,EAAuD;IACnDiF,MAAAA,WAAW,CAACjF,KAAD,CAAX,GAAqB,IAAI/B,OAAzB,CAAA;IACAiH,MAAAA,aAAa,CAAClF,KAAD,CAAb,GAAuBlG,KAAK,CAACuD,MAAM,CAAC2C,KAAD,CAAP,CAA5B,CAAA;IACH,KAAA;;IAED,IAAMmF,IAAAA,aAAY,GAAGH,iBAAiB,CAAC;IACnCnF,MAAAA,IAAI,EAAE6F,KAAK,CAACC,IAAN,CAAW;IAAExH,QAAAA,MAAM,EAAEd,MAAM,CAACc,MAAP,GAAgB,CAAA;IAA1B,OAAX,EAA0C4B,GAA1C,CAA8C,UAAC6F,CAAD,EAAI5F,KAAJ,EAAA;IAAA,QAAA,OAAcA,KAAd,CAAA;IAAA,OAA9C,CAD6B;IAEnC3C,MAAAA,MAAM,EAANA,MAFmC;IAGnC6H,MAAAA,aAAa,EAAbA,aAHmC;IAInCD,MAAAA,WAAW,EAAXA,WAJmC;IAKnC1H,MAAAA,cAAc,EAAdA,cALmC;IAMnCS,MAAAA,OAAO,EAAPA,OANmC;IAOnCC,MAAAA,OAAO,EAAPA,OAAAA;IAPmC,KAAD,CAAtC,CAAA;;IAUA,IAAO,OAAA;IAAEgH,MAAAA,WAAW,EAAXA,WAAF;IAAeC,MAAAA,aAAa,EAAbA,aAAf;IAA8BC,MAAAA,YAAY,EAAZA,aAAAA;IAA9B,KAAP,CAAA;IACH,GAxBA;;;IA2BD,EAAML,IAAAA,kBAAkB,GACpB,CAACzH,MAAM,CAACI,MAAP,CAAc,UAACC,GAAD,EAAMC,KAAN,EAAA;IAAA,IAAA,OAAgBD,GAAG,GAAGmH,iBAAiB,GAAG/K,KAAK,CAAC6D,KAAD,CAA/C,CAAA;IAAA,GAAd,EAAsE,CAAtE,CAAA,GACGK,OAAO,IAAIX,MAAM,CAACc,MAAP,GAAgBsH,OAApB,CADV,GAEG,IAAIxH,OAAJ,GAAcZ,MAAM,CAACc,MAFzB,IAGAsH,OAJJ,CAAA;IAMA,EAAM7F,IAAAA,YAAY,GAAGpB,gBAAgB,CAAC;IAClCnB,IAAAA,MAAM,EAANA,MADkC;IAElCwH,IAAAA,iBAAiB,EAAjBA,iBAFkC;IAGlCC,IAAAA,kBAAkB,EAAlBA,kBAHkC;IAIlC9G,IAAAA,OAAO,EAAPA,OAJkC;IAKlCC,IAAAA,OAAO,EAAPA,OALkC;IAMlCW,IAAAA,eAAe,EAAfA,eAAAA;IANkC,GAAD,CAArC,CAAA;IASA,EAAA,IAAMiB,IAAI,GAAG+E,uBAAuB,CAAChF,YAAD,EAAe6F,OAAf,EAAwB,CAAxB,EAA2BpI,MAAM,CAACc,MAAlC,CAAvB,CAAiE4B,GAAjE,CAAqE,UAAClB,IAAD,EAAA;IAAA,IAAA,OAAU,CAACA,IAAX,CAAA;IAAA,GAArE,CAAb,CAAA;;IAEA,EAAA,KAAK,IAAI3D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2E,IAAI,CAAC1B,MAAL,GAAc,CAAlC,EAAqCjD,CAAC,IAAI,CAA1C,EAA6C;IACzC,IAAA,IAAMmK,MAAM,GAAGhI,MAAM,CAACiB,KAAP,CAAauB,IAAI,CAAC3E,CAAD,CAAjB,EAAsB2E,IAAI,CAAC3E,CAAC,GAAG,CAAL,CAA1B,CAAf,CAAA;IACA+J,IAAAA,WAAW,CAAC/J,CAAD,CAAX,GAAiB8C,OAAO,IAAIqH,MAAM,CAAClH,MAAP,GAAgB,CAApB,CAAP,GAAgC,CAAA,GAAIF,OAAJ,GAAcoH,MAAM,CAAClH,MAAtE,CAAA;IACA+G,IAAAA,aAAa,CAAChK,CAAD,CAAb,GAAmB,CAAA,GAAImK,MAAM,CAAC5H,MAAP,CAAc,UAACC,GAAD,EAAMC,KAAN,EAAA;IAAA,MAAA,OAAgBD,GAAG,GAAG,CAAA,GAAI5D,KAAK,CAAC6D,KAAD,CAA/B,CAAA;IAAA,KAAd,EAAsD,CAAtD,CAAvB,CAAA;IACH,GAAA;;IAED,EAAMwH,IAAAA,YAAY,GAAGH,iBAAiB,CAAC;IACnCnF,IAAAA,IAAI,EAAJA,IADmC;IAEnCxC,IAAAA,MAAM,EAANA,MAFmC;IAGnC6H,IAAAA,aAAa,EAAbA,aAHmC;IAInCD,IAAAA,WAAW,EAAXA,WAJmC;IAKnC1H,IAAAA,cAAc,EAAdA,cALmC;IAMnCS,IAAAA,OAAO,EAAPA,OANmC;IAOnCC,IAAAA,OAAO,EAAPA,OAAAA;IAPmC,GAAD,CAAtC,CAAA;IAUA,EAAO,OAAA;IAAEgH,IAAAA,WAAW,EAAXA,WAAF;IAAeC,IAAAA,aAAa,EAAbA,aAAf;IAA8BC,IAAAA,YAAY,EAAZA,YAAAA;IAA9B,GAAP,CAAA;IACH,CAvED,CAAA;;IAuFA,IAAMU,aAAa,GAAG,SAAhBA,aAAgB,CAA0B5D,KAA1B,EAAwF;IAC1G,EAAA,IAAQ5E,MAAR,GAAmD4E,KAAnD,CAAQ5E,MAAR;IAAA,MAAgBoB,aAAhB,GAAmDwD,KAAnD,CAAgBxD,aAAhB;IAAA,MAA+BG,eAA/B,GAAmDqD,KAAnD,CAA+BrD,eAA/B,CAAA;IACA,EAAA,IAAQ6G,OAAR,GAAsDhH,aAAtD,CAAQgH,OAAR;IAAA,MAAiBzH,OAAjB,GAAsDS,aAAtD,CAAiBT,OAAjB;IAAA,MAA0BC,OAA1B,GAAsDQ,aAAtD,CAA0BR,OAA1B;IAAA,MAAmCV,cAAnC,GAAsDkB,aAAtD,CAAmClB,cAAnC,CAAA;IAEA,EAAA,IAAMsH,iBAAiB,GAAG,CAACtH,cAAc,GAAGS,OAAO,IAAIyH,OAAO,GAAG,CAAd,CAAxB,GAA2C,CAAA,GAAIxH,OAAJ,GAAcwH,OAA1D,IAAqEA,OAA/F,CAAA;;IAEA,EAAA,IAAA,oBAAA,GAAqDD,mBAAmB,CAAC;IACrEnI,IAAAA,MAAM,EAANA,MADqE;IAErEoB,IAAAA,aAAa,EAAbA,aAFqE;IAGrEoG,IAAAA,iBAAiB,EAAjBA,iBAHqE;IAIrEjG,IAAAA,eAAe,EAAfA,eAAAA;IAJqE,GAAD,CAAxE;IAAA,MAAQqG,WAAR,wBAAQA,WAAR;IAAA,MAAqBC,aAArB,wBAAqBA,aAArB;IAAA,MAAoCC,YAApC,wBAAoCA,YAApC,CAAA;;IAOA,EAAA,IACIA,YAAY,CAACW,SAAb,CACI,UAACC,WAAD,EAAA;IAAA,IAAiBA,OAAAA,WAAW,CAACD,SAAZ,CAAsB,UAAA,KAAA,EAAA;IAAA,MAAA,IAAA,YAAA,GAAA,KAAA,CAAG5F,MAAH;IAAA,UAAanG,KAAb,gBAAaA,KAAb;IAAA,UAAoBC,MAApB,gBAAoBA,MAApB,CAAA;IAAA,MAAA,OAAmCD,KAAK,GAAG,CAAR,IAAaC,MAAM,GAAG,CAAzD,CAAA;IAAA,KAAtB,KAAqF,CAAtG,CAAA;IAAA,GADJ,CAAA,IAEK,CAHT,EAIE;IACE;IACA,IAAIyL,IAAAA,OAAO,GAAG,CAAd,EAAiB;IACb;IACA,MAAA,OAAOI,aAAa,CAAC;IACjBxI,QAAAA,MAAM,EAANA,MADiB;IAEjBoB,QAAAA,aAAa,eACNA,aADM,EAAA;IAETgH,UAAAA,OAAO,EAAEA,OAAO,GAAG,CAAA;IAFV,SAFI,CAAA;IAMjB7G,QAAAA,eAAe,EAAfA,eAAAA;IANiB,OAAD,CAApB,CAAA;IAQH,KAVD,MAUO;IACH;IACA,MAAA,OAAO/C,SAAP,CAAA;IACH,KAAA;IACJ,GAAA;;IAED,EAAO,OAAA;IAAEsJ,IAAAA,YAAY,EAAZA,YAAF;IAAgBF,IAAAA,WAAW,EAAXA,WAAhB;IAA6BC,IAAAA,aAAa,EAAbA,aAAAA;IAA7B,GAAP,CAAA;IACH,CApCD,CAAA;;IAsCA,IAAMc,oBAAoB,GAAG,SAAvBA,oBAAuB,CAI6B,KAAA,EAAA;IAAA,EAHtD3I,IAAAA,MAGsD,SAHtDA,MAGsD;IAAA,MAFtDoB,aAEsD,SAFtDA,aAEsD;IAAA,MADtDG,eACsD,SADtDA,eACsD,CAAA;;;;IACtD,EAAA,CAAAK,EAAA,GAAAL,eAAe,SAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEe,wBAAjB,UAAA,iBAAA,SAAA,2BAAA,CAAA;IAEA,EAAMG,IAAAA,MAAM,GAAG+F,aAAa,CAAC;IACzBxI,IAAAA,MAAM,EAANA,MADyB;IAEzBoB,IAAAA,aAAa,eACNA,aADM,EAAA;IAETgH,MAAAA,OAAO,EAAEpL,IAAI,CAACuD,GAAL,CAASa,aAAa,CAACgH,OAAvB,EAAgCpI,MAAM,CAACc,MAAvC,CAAA;IAFA,KAFY,CAAA;IAMzBS,IAAAA,eAAe,EAAfA,eAAAA;IANyB,GAAD,CAA5B,CAAA;IASA,EAAA,CAAAQ,EAAA,GAAAR,eAAe,KAAf,IAAA,IAAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,eAAe,CAAEwB,yBAAjB,MAA0C,IAA1C,IAA0ChB,EAAA,KAAA,KAAA,CAA1C,GAA0C,KAAA,CAA1C,GAA0CA,EAAA,CAAAiB,IAAA,CAAAzB,eAAA,EAAGkB,MAAH,CAA1C,CAAA;IAEA,EAAA,OAAOA,MAAP,CAAA;IACH,CAnBD;;;;;IC7MA,IAAMmG,4BAA4B,GAA0B,SAAtDA,4BAAsD,CAAA,IAAA,EAAA;IAAA,EAAGC,IAAAA,oBAAH,QAAGA,oBAAH;IAAA,MAAyB9C,QAAzB,QAAyBA,QAAzB,CAAA;IAAA,EAAA,OACxDrB,cAAS,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAAmE,oBAAA,EAAA;kBAAuB9C,QAAAA;IAAvB,GAD+C,CAAA,CAAA,CAAA;IAAA,CAA5D,CAAA;;IAIA,IAAM3C,QAAQ,GAAG,SAAXA,QAAW,CAACwB,KAAD,EAAwC;IACrD,EAAA,IAAQxD,aAAR,GAAiFwD,KAAjF,CAAQxD,aAAR;IAAA,MAAuB0H,WAAvB,GAAiFlE,KAAjF,CAAuBkE,WAAvB;IAAA,MAAoCC,YAApC,GAAiFnE,KAAjF,CAAoCmE,YAApC;IAAA,MAAkDnB,WAAlD,GAAiFhD,KAAjF,CAAkDgD,WAAlD;IAAA,MAA+DC,aAA/D,GAAiFjD,KAAjF,CAA+DiD,aAA/D,CAAA;IACA,EAAA,IAAQhF,MAAR,GAAqCzB,aAArC,CAAQyB,MAAR;IAAA,MAAgBlC,OAAhB,GAAqCS,aAArC,CAAgBT,OAAhB;IAAA,MAAyBC,OAAzB,GAAqCQ,aAArC,CAAyBR,OAAzB,CAAA;;IAEA,EAAIiC,IAAAA,MAAM,KAAK,SAAX,IAAwB,CAAC+E,WAAzB,IAAwC,CAACC,aAA7C,EAA4D;IACxD,IAAA,OAAA,eAAA,GAAuBlH,OAAO,IAAIoI,YAAY,GAAG,CAAnB,CAA9B,cAA4DA,YAA5D,GAAA,GAAA,CAAA;IACH,GAAA;;IAED,EAAMhB,IAAAA,UAAU,GAAGF,aAAa,CAACzH,MAAd,CAAqB,UAACC,GAAD,EAAM5D,KAAN,EAAA;IAAA,IAAgB4D,OAAAA,GAAG,GAAG5D,KAAtB,CAAA;IAAA,GAArB,EAAkD,CAAlD,CAAnB,CAAA;IACA,EAAMwL,IAAAA,iBAAiB,GAAGJ,aAAa,CAACzH,MAAd,CACtB,UAACC,GAAD,EAAM5D,KAAN,EAAakG,KAAb,EAAA;IAAA,IAAA,OAAuBtC,GAAG,GAAG,CAACuH,WAAW,CAACkB,WAAD,CAAX,GAA2BlB,WAAW,CAACjF,KAAD,CAAvC,IAAkDlG,KAA/E,CAAA;IAAA,GADsB,EAEtB,CAFsB,CAA1B,CAAA;IAKA,EAAA,OAAA,eAAA,GAAuBG,KAAK,CACxB,CAACmM,YAAY,GAAG,CAAhB,IAAqBpI,OAArB,GAA+B,CAAIoI,GAAAA,YAAJ,GAAmBnI,OAAlD,GAA4DqH,iBADpC,EAExB,CAFwB,CAA5B,GAGUrL,QAAAA,GAAAA,KAAK,CAACiL,aAAa,CAACiB,WAAD,CAAb,GAA6Bf,UAA9B,EAA0C,CAA1C,CAHf,GAAA,KAAA,GAGiE,IAAInH,OAHrE,GAAA,KAAA,CAAA;IAIH,CAlBD,CAAA;;IA0BA,IAAMoI,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACpE,KAAD,EAAwC;IACpE,EAAA,IACIxD,aADJ,GAMIwD,KANJ,CACIxD,aADJ;IAAA,MAEI6H,qBAFJ,GAMIrE,KANJ,CAEIqE,qBAFJ;IAAA,MAGIlD,QAHJ,GAMInB,KANJ,CAGImB,QAHJ;IAAA,MAMInB,qBAAAA,GAAAA,KANJ,CAIIiE,oBAJJ,CAAA;IAAA,EAAA,qBAAA,GAAA,qBAAA,KAAA,KAAA,CAAA,GAImE,EAJnE,GAAA,qBAAA,CAAA;;IAAA,EAI4BhE,IAAAA,KAJ5B,yBAI4BA,KAJ5B;IAAA,MAIsCqE,wBAJtC,GAAAnE,+BAAA,CAAA,qBAAA,EAAAN,WAAA,CAAA;IAAA,MAKOD,IALP,mCAMII,KANJ,EAAA,UAAA,CAAA,CAAA;;IAQA,EAAA,IAAMiE,oBAAoB,GAAA,QAAA,CAAA;IACtBjD,IAAAA,SAAS,EAAE,2BADW;IAEtBf,IAAAA,KAAK,EAAA,QAAA,CAAA;IACDO,MAAAA,OAAO,EAAE,MADR;IAEDiB,MAAAA,aAAa,EAAE,QAFd;IAGDC,MAAAA,QAAQ,EAAE,QAHT;IAIDC,MAAAA,UAAU,EAAE,YAJX;IAKD7J,MAAAA,KAAK,EAAE0G,QAAQ,CAACwB,KAAD,CALd;IAMD4B,MAAAA,cAAc,EAAEpF,aAAa,CAACyB,MAAd,KAAyB,SAAzB,GAAqC,eAArC,GAAuD,YAAA;IANtE,KAAA,EAOEgC,KAPF,CAAA;IAFiB,GAAA,EAWnBqE,wBAXmB,CAA1B,CAAA;;IAcA,EAAA,OAAO,CAACD,qBAAqB,KAArB,IAAA,IAAAA,qBAAqB,WAArB,GAAAA,qBAAA,GAAyBL,4BAA1B,EAAA,QAAA,CAAA;IACHxH,IAAAA,aAAa,EAAbA,aADG;IAEHyH,IAAAA,oBAAoB,EAApBA,oBAFG;IAGH9C,IAAAA,QAAQ,EAARA,QAAAA;IAHG,GAAA,EAIAvB,IAJA,CAAP,CAAA,CAAA;IAMH,CA7BD;;ICbA,IAAM2E,aAAa,GAAG,SAAhBA,aAAgB,CAA0BvE,KAA1B,EAAuE;IACzF,EAAA,IAAQ5E,MAAR,GAAwG4E,KAAxG,CAAQ5E,MAAR;IAAA,MAAgBoB,aAAhB,GAAwGwD,KAAxG,CAAgBxD,aAAhB;IAAA,MAA+B6D,WAA/B,GAAwGL,KAAxG,CAA+BK,WAA/B;IAAA,MAA4CgE,qBAA5C,GAAwGrE,KAAxG,CAA4CqE,qBAA5C;IAAA,MAAmEvC,eAAnE,GAAwG9B,KAAxG,CAAmE8B,eAAnE;IAAA,MAAoFnF,eAApF,GAAwGqD,KAAxG,CAAoFrD,eAApF,CAAA;IAEA,EAAM6H,IAAAA,aAAa,GAAGT,oBAAoB,CAAC;IAAE3I,IAAAA,MAAM,EAANA,MAAF;IAAUoB,IAAAA,aAAa,EAAbA,aAAV;IAAyBG,IAAAA,eAAe,EAAfA,eAAAA;IAAzB,GAAD,CAA1C,CAAA;IAEA,EAAI6H,IAAAA,aAAa,KAAK5K,SAAtB,EAAiC,OAAOkG,uCAAP,CAAA;IAEjC,EAAA,IAAQoD,YAAR,GAAqDsB,aAArD,CAAQtB,YAAR;IAAA,MAAsBD,aAAtB,GAAqDuB,aAArD,CAAsBvB,aAAtB;IAAA,MAAqCD,WAArC,GAAqDwB,aAArD,CAAqCxB,WAArC,CAAA;IAEA,EACIlD,OAAAA,cACK,CAAA2E,mBAAA,EAAA;IAAAtD,IAAAA,QAAA,EAAA+B,YAAY,CAACpF,GAAb,CAAiB,UAACsF,MAAD,EAASc,WAAT,EAAA;IAAA,MACdpE,OAAAA,cAAA,CAACsE,uBAAD,EAAwB;IAEpB5H,QAAAA,aAAa,EAAEA,aAFK;IAGpB0H,QAAAA,WAAW,EAAEA,WAHO;IAIpBC,QAAAA,YAAY,EAAEjB,YAAY,CAAChH,MAJP;IAKpB8G,QAAAA,WAAW,EAAEA,WALO;IAMpBC,QAAAA,aAAa,EAAEA,aANK;IAOpBoB,QAAAA,qBAAqB,EAAEA,qBAPH;IAQpBJ,QAAAA,oBAAoB,EAAEnC,eAAe,KAAA,IAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEmC,oBARnB;IAQuC9C,QAAAA,QAAA,EAE1DiC,MAAM,CAACtF,GAAP,CAAW,UAAA,IAAA,EAAA;IAAA,UAAGpC,IAAAA,KAAH,QAAGA,KAAH;IAAA,cAAUuC,MAAV,QAAUA,MAAV,CAAA;IAAA,UACR6B,OAAAA,cAAA,CAACC,aAAD,EAAc;IAEVrE,YAAAA,KAAK,EAAEA,KAFG;IAGVuC,YAAAA,MAAM,EAAEA,MAHE;IAIVzB,YAAAA,aAAa,EAAEA,aAJL;IAKV6D,YAAAA,WAAW,EAAEA,WALH;IAMVX,YAAAA,UAAU,EAAEoC,eAAe,KAAA,IAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEpC,UAAAA;IANnB,WAAd,EACShE,KAAK,CAACsG,GAAN,IAAatG,KAAK,CAACsD,GAD5B,CADQ,CAAA;IAAA,SAAX,CAAA;IAVmB,OAAxB,EAAA,SAAA,GACmBkF,WADnB,CADc,CAAA;IAAA,KAAjB,CAAA;IAAA,GAAA,CAFT,CAAA;IA2BH,CApCD;;ICZA,IAAMQ,oBAAoB,GAAG,SAAvBA,oBAAuB,CAA0B1E,KAA1B,EAAyF;;;IAClH,EAAA,IAAQ5E,MAAR,GAAmD4E,KAAnD,CAAQ5E,MAAR;IAAA,MAAgBoB,aAAhB,GAAmDwD,KAAnD,CAAgBxD,aAAhB;IAAA,MAA+BG,eAA/B,GAAmDqD,KAAnD,CAA+BrD,eAA/B,CAAA;IACA,EAAA,IAAQZ,OAAR,GAA6CS,aAA7C,CAAQT,OAAR;IAAA,MAAiBC,OAAjB,GAA6CQ,aAA7C,CAAiBR,OAAjB;IAAA,MAA0BV,cAA1B,GAA6CkB,aAA7C,CAA0BlB,cAA1B,CAAA;IAEA,EAAA,IAAMkI,OAAO,GAAGpL,IAAI,CAACuD,GAAL,CAASa,aAAa,CAACgH,OAAvB,EAAgCpI,MAAM,CAACc,MAAvC,CAAhB,CAAA;IAEA,EAAA,CAAAc,EAAA,GAAAL,eAAe,SAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEe,wBAAjB,UAAA,iBAAA,SAAA,2BAAA,CANkH;;IASlH,EAAA,IAAM4F,WAAW,GAAG,CAAChI,cAAc,GAAGS,OAAO,IAAIyH,OAAO,GAAG,CAAd,CAAxB,GAA2C,IAAIxH,OAAJ,GAAcwH,OAA1D,IAAqEA,OAAzF,CATkH;;IAYlH,EAAIF,IAAAA,WAAW,IAAI,CAAnB,EAAsB;IAClB;IACA,IAAA,OAAOE,OAAO,GAAG,CAAV,GACDkB,oBAAoB,cACb1E,KADa,EAAA;IAEhBxD,MAAAA,aAAa,eAAOA,aAAP,EAAA;IAAsBgH,QAAAA,OAAO,EAAEA,OAAO,GAAG,CAAA;IAAzC,OAAA,CAAA;IAFG,KAAA,CAAA,CADnB,GAKD5J,SALN,CAAA;IAMH,GApBiH;;;IAuBlH,EAAM+K,IAAAA,0BAA0B,GAAa,EAA7C,CAAA;;IACA,EAAA,KAAK,IAAI1L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,OAApB,EAA6BvK,CAAC,IAAI,CAAlC,EAAqC;IACjC0L,IAAAA,0BAA0B,CAAC1L,CAAD,CAA1B,GAAgC,CAAhC,CAAA;IACH,GA1BiH;;;IA6BlH,EAAA,IAAMiK,YAAY,GAAG9H,MAAM,CAACI,MAAP,CAA+C,UAACC,GAAD,EAAMC,KAAN,EAAgBqC,KAAhB,EAAyB;IACzF;IACA,IAAM6G,IAAAA,cAAc,GAAGD,0BAA0B,CAACnJ,MAA3B,CACnB,UAACC,GAAD,EAAMoJ,IAAN,EAAY5L,CAAZ,EAAA;IAAA,MACI;IACA;IACA;IACA4L,QAAAA,IAAI,GAAGF,0BAA0B,CAAClJ,GAAD,CAA1B,GAAkC,CAAzC,GAA6CxC,CAA7C,GAAiDwC,GAAAA;IAJrD,QAAA;IAAA,KADmB,EAMnB,CANmB,CAAvB,CAFyF;;IAYzFkJ,IAAAA,0BAA0B,CAACC,cAAD,CAA1B,GACID,0BAA0B,CAACC,cAAD,CAA1B,GAA6CtB,WAAW,GAAGzL,KAAK,CAAC6D,KAAD,CAAhE,GAA0EK,OAA1E,GAAoF,CAAA,GAAIC,OAD5F,CAZyF;;IAgBzF,IAAA,IAAI,CAACP,GAAG,CAACmJ,cAAD,CAAR,EAA0B;IACtBnJ,MAAAA,GAAG,CAACmJ,cAAD,CAAH,GAAsB,EAAtB,CAAA;IACH,KAAA;;IACDnJ,IAAAA,GAAG,CAACmJ,cAAD,CAAH,CAAoBnL,IAApB,CAAyB;IAAEiC,MAAAA,KAAK,EAALA,KAAF;IAASqC,MAAAA,KAAK,EAALA,KAAAA;IAAT,KAAzB,CAAA,CAAA;IAEA,IAAA,OAAOtC,GAAP,CAAA;IACH,GAtBoB,EAsBlB,EAtBkB,CAArB,CA7BkH;;IAsDlH,EAAA,IAAMoC,MAAM,GAAGqF,YAAY,CAACpF,GAAb,CAAiB,UAACsF,MAAD,EAAA;IAAA,IAAA,OAC5BA,MAAM,CAACtF,GAAP,CAAW,gBAAmBE,UAAnB,EAAA;IAAA,MAAGtC,IAAAA,KAAH,QAAGA,KAAH;IAAA,UAAUqC,KAAV,QAAUA,KAAV,CAAA;IAAA,MAAmC,OAAA;IAC1CrC,QAAAA,KAAK,EAALA,KAD0C;IAE1CuC,QAAAA,MAAM,EAAE;IACJnG,UAAAA,KAAK,EAAEwL,WADH;IAEJvL,UAAAA,MAAM,EAAEuL,WAAW,GAAGzL,KAAK,CAAC6D,KAAD,CAFvB;IAGJqC,UAAAA,KAAK,EAALA,KAHI;IAIJC,UAAAA,UAAU,EAAVA,UAJI;IAKJE,UAAAA,WAAW,EAAEkF,MAAM,CAAClH,MAAAA;IALhB,SAAA;IAFkC,OAAnC,CAAA;IAAA,KAAX,CAD4B,CAAA;IAAA,GAAjB,CAAf,CAAA;IAaA,EAAA,CAAAiB,EAAA,GAAAR,eAAe,KAAf,IAAA,IAAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,eAAe,CAAEwB,yBAAjB,MAA0C,IAA1C,IAA0ChB,EAAA,KAAA,KAAA,CAA1C,GAA0C,KAAA,CAA1C,GAA0CA,EAAA,CAAAiB,IAAA,CAAAzB,eAAA,EAAGkB,MAAH,CAA1C,CAAA;IAEA,EAAA,OAAOA,MAAP,CAAA;IACH,CAtED;;ICYA,IAAMiH,aAAa,GAAG,SAAhBA,aAAgB,CAA0B9E,KAA1B,EAAuE;IACzF,EAAA,IAAQ5E,MAAR,GAAwG4E,KAAxG,CAAQ5E,MAAR;IAAA,MAAgBoB,aAAhB,GAAwGwD,KAAxG,CAAgBxD,aAAhB;IAAA,MAA+B6D,WAA/B,GAAwGL,KAAxG,CAA+BK,WAA/B;IAAA,MAA4CgE,qBAA5C,GAAwGrE,KAAxG,CAA4CqE,qBAA5C;IAAA,MAAmEvC,eAAnE,GAAwG9B,KAAxG,CAAmE8B,eAAnE;IAAA,MAAoFnF,eAApF,GAAwGqD,KAAxG,CAAoFrD,eAApF,CAAA;IAEA,EAAMoI,IAAAA,aAAa,GAAGL,oBAAoB,CAAC;IAAEtJ,IAAAA,MAAM,EAANA,MAAF;IAAUoB,IAAAA,aAAa,EAAbA,aAAV;IAAyBG,IAAAA,eAAe,EAAfA,eAAAA;IAAzB,GAAD,CAA1C,CAAA;IAEA,EAAIoI,IAAAA,aAAa,KAAKnL,SAAtB,EAAiC,OAAOkG,uCAAP,CAAA;IAEjC,EACIA,OAAAA;kBACKiF,aAAa,CAACjH,GAAd,CAAkB,UAACsF,MAAD,EAASc,WAAT,EAAA;IAAA,MACfpE,OAAAA,cAAC,CAAAsE,uBAAA,EAEG;IAAA5H,QAAAA,aAAa,EAAEA,aAAf;IACA2H,QAAAA,YAAY,EAAEY,aAAa,CAAC7I,MAD5B;IAEAgI,QAAAA,WAAW,EAAEA,WAFb;IAGAG,QAAAA,qBAAqB,EAAEA,qBAHvB;IAIAJ,QAAAA,oBAAoB,EAAEnC,eAAe,KAAA,IAAf,IAAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,eAAe,CAAEmC,oBAJvC;IAMC9C,QAAAA,QAAA,EAAAiC,MAAM,CAACtF,GAAP,CAAW,UAAA,IAAA,EAAA;IAAA,UAAGpC,IAAAA,KAAH,QAAGA,KAAH;IAAA,cAAUuC,MAAV,QAAUA,MAAV,CAAA;IAAA,UACR6B,OAAAA,cAAA,CAACC,aAAD,EAEI;IAAArE,YAAAA,KAAK,EAAEA,KAAP;IACAuC,YAAAA,MAAM,EAAEA,MADR;IAEAzB,YAAAA,aAAa,EAAEA,aAFf;IAGA6D,YAAAA,WAAW,EAAEA,WAHb;IAIAX,YAAAA,UAAU,EAAEoC,eAAe,SAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAEpC,UAAAA;IAJ7B,WAFJ,EACShE,KAAK,CAACsG,GAAN,IAAatG,KAAK,CAACsD,GAD5B,CADQ,CAAA;IAAA,SAAX,CAAA;IAND,OAFH,EAAA,iBAAA,GAC0BkF,WAD1B,CADc,CAAA;IAAA,KAAlB,CAAA;QAFT,CAAA;IAyBH,CAhCD;;;;IClBA,IAAMc,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAA,IAAA,EAAA;IAAA,EAAGC,IAAAA,cAAH,QAAGA,cAAH;IAAA,MAAmB9D,QAAnB,QAAmBA,QAAnB;IAAA,MAA6B+D,YAA7B,QAA6BA,YAA7B,CAAA;IAAA,EAC3BpF,OAAAA,cAAA,CAAA,KAAA,EAAA,QAAA,CAAA;IAAKqF,IAAAA,GAAG,EAAED,YAAAA;IAAV,GAAA,EAA4BD,cAA5B,EAAA;IACK9D,IAAAA,QAAA,EAAAA,QAAAA;IADL,GAD2B,CAAA,CAAA,CAAA;IAAA,CAA/B,CAAA;;IASA,IAAMiE,iBAAiB,GAAG,SAApBA,iBAAoB,CAACpF,KAAD,EAAkC;IACxD,EAAA,IACIxD,aADJ,GAMIwD,KANJ,CACIxD,aADJ;IAAA,MAEI6I,eAFJ,GAMIrF,KANJ,CAEIqF,eAFJ;IAAA,MAGIlE,QAHJ,GAMInB,KANJ,CAGImB,QAHJ;IAAA,MAII+D,YAJJ,GAMIlF,KANJ,CAIIkF,YAJJ;IAAA,MAMIlF,qBAAAA,GAAAA,KANJ,CAKIiF,cALJ,CAAA;IAAA,EAAA,qBAAA,GAAA,qBAAA,KAAA,KAAA,CAAA,GAKuD,EALvD,GAAA,qBAAA,CAAA;;IAAA,EAKsBhF,IAAAA,KALtB,yBAKsBA,KALtB;IAAA,MAKgCqF,kBALhC,GAAAnF,+BAAA,CAAA,qBAAA,EAAAN,WAAA,CAAA,CAAA;;IAOA,EAAA,IAAQ5B,MAAR,GAAmBzB,aAAnB,CAAQyB,MAAR,CAAA;;IAEA,EAAA,IAAMgH,cAAc,GAAA,QAAA,CAAA;IAChBjE,IAAAA,SAAS,4CAA0C/C,MADnC;IAEhBgC,IAAAA,KAAK,EAAA,QAAA,CAAA;IACDO,MAAAA,OAAO,EAAE,MADR;IAEDkB,MAAAA,QAAQ,EAAE,QAFT;IAGDE,MAAAA,cAAc,EAAE,eAHf;IAIDH,MAAAA,aAAa,EAAExD,MAAM,KAAK,MAAX,GAAoB,QAApB,GAA+B,KAAA;IAJ7C,KAAA,EAKEgC,KALF,CAAA;IAFW,GASbqF,EAAAA,kBATa,CAApB,CAVwD;;;IAuBxD,EAAA,IAAID,eAAe,IAAI,OAAOA,eAAP,KAA2B,QAAlD,EAA4D;IACxD,IAAME,IAAAA,SAAS,GAAGF,eAAlB,CAAA;IAIA,IACIvF,OAAAA,cAAC,CAAAyF,SAAA;IAAUJ,MAAAA,GAAG,EAAED;IAAc1I,MAAAA,aAAa,EAAEA;IAAeyI,MAAAA,cAAc,EAAEA;oBACvE9D,QAAAA;SADJ,CADL,CAAA;IAKH,GAAA;;IAED,EAAA,OAAO,CAACkE,eAAe,KAAf,IAAA,IAAAA,eAAe,WAAf,GAAAA,eAAA,GAAmBL,sBAApB,EAA4C;IAC/CC,IAAAA,cAAc,EAAdA,cAD+C;IAE/CC,IAAAA,YAAY,EAAZA,YAF+C;IAG/C1I,IAAAA,aAAa,EAAbA,aAH+C;IAI/C2E,IAAAA,QAAQ,EAARA,QAAAA;IAJ+C,GAA5C,CAAP,CAAA;IAMH,CAzCD;;ICZA;;IACA,sBAAe,OAAOqE,QAAP,KAAoB,WAApB,GAAkCC,qBAAlC,GAAoDC,eAAnE;;ICAA,IAAMC,UAAU,GAAG,SAAbA,UAAa,GAAK;IACpB,EAA8BC,IAAAA,SAAAA,GAAAA,cAAQ,CAAC,KAAD,CAAtC;IAAA,MAAOC,OAAP,GAAA,SAAA,CAAA,CAAA,CAAA;IAAA,MAAgBC,UAAhB,GAAA,SAAA,CAAA,CAAA,CAAA,CAAA;;IAEAL,EAAAA,eAAe,CAAC,YAAK;IACjBK,IAAAA,UAAU,CAAC,IAAD,CAAV,CAAA;IACA,IAAO,OAAA,YAAA;IAAA,MAAMA,OAAAA,UAAU,CAAC,KAAD,CAAhB,CAAA;IAAA,KAAP,CAAA;IACH,GAHc,EAGZ,EAHY,CAAf,CAAA;IAKA,EAAA,OAAOD,OAAP,CAAA;IACH,CATD;;ICAA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,sBAAD,EAAkDC,WAAlD,EAA4E;IAClG,EAAMC,IAAAA,WAAW,GAAGC,YAAM,EAA1B,CAAA;;IACA,EAAA,IAAA,SAAA,GAA4CP,cAAQ,EAApD;IAAA,MAAOtK,cAAP,GAAA,SAAA,CAAA,CAAA,CAAA;IAAA,MAAuB8K,iBAAvB,GAAA,SAAA,CAAA,CAAA,CAAA,CAAA;;IAEA,EAAA,IAAMlB,YAAY,GAAGmB,iBAAW,CAC5B,UAACzJ,IAAD,EAAS;;;IACL,IAAIsJ,IAAAA,WAAW,CAACI,OAAhB,EAAyB;IACrBJ,MAAAA,WAAW,CAACI,OAAZ,CAAoBC,UAApB,EAAA,CAAA;IACAL,MAAAA,WAAW,CAACI,OAAZ,GAAsB1M,SAAtB,CAAA;IACH,KAAA;;IAED,IAAA,IAAM4M,WAAW,GAAG,SAAdA,WAAc,GAAK;IACrB,MAAA,IAAIC,QAAQ,GAAG7J,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,IAAI,CAAE8J,WAArB,CAAA;;IAEA,MAAID,IAAAA,QAAQ,KAAK7M,SAAb,IAA0BqM,WAA1B,IAAyCA,WAAW,CAAC/J,MAAZ,GAAqB,CAAlE,EAAqE;IACjE,QAAMyK,IAAAA,iBAAiB,GAAG,EAAIV,CAAAA,MAAAA,CAAAA,WAAW,CAACW,MAAZ,CAAmB,UAACC,CAAD,EAAA;IAAA,UAAOA,OAAAA,CAAC,GAAG,CAAX,CAAA;IAAA,SAAnB,CAAJ,CAAsC5H,CAAAA,IAAtC,CAA2C,UAACxG,CAAD,EAAIC,CAAJ,EAAA;IAAA,UAAUA,OAAAA,CAAC,GAAGD,CAAd,CAAA;IAAA,SAA3C,CAA1B,CAAA;IACAkO,QAAAA,iBAAiB,CAAClN,IAAlB,CAAuBrB,IAAI,CAAC0O,KAAL,CAAWH,iBAAiB,CAACA,iBAAiB,CAACzK,MAAlB,GAA2B,CAA5B,CAAjB,GAAkD,CAA7D,CAAvB,CAAA,CAAA;IACAuK,QAAAA,QAAQ,GAAGE,iBAAiB,CAACI,IAAlB,CACP,UAACC,UAAD,EAAajJ,KAAb,EAAA;IAAA,UAAuBiJ,OAAAA,UAAU,IAAIP,QAAd,IAA0B1I,KAAK,KAAK4I,iBAAiB,CAACzK,MAAlB,GAA2B,CAAtF,CAAA;IAAA,SADO,CAAX,CAAA;IAGH,OAAA;;IAEDkK,MAAAA,iBAAiB,CAACK,QAAD,CAAjB,CAAA;IACH,KAZD,CAAA;;IAcAD,IAAAA,WAAW,EAAA,CAAA;;IAEX,IAAA,IAAI5J,IAAJ,EAAU;IACNsJ,MAAAA,WAAW,CAACI,OAAZ,GACI,OAAOW,cAAP,KAA0B,WAA1B,GACM,IAAIA,cAAJ,CAAmBT,WAAnB,CADN,GAEMR,sBAAsB,KAAtB,IAAA,IAAAA,sBAAsB,WAAtB,SAAA,GAAAA,sBAAsB,CAAGQ,WAAH,CAHhC,CAAA;IAKA,MAAAxJ,CAAAA,EAAA,GAAAkJ,WAAW,CAACI,OAAZ,MAAmB,IAAnB,IAAmBtJ,EAAA,KAAA,KAAA,CAAnB,GAAmB,KAAA,CAAnB,GAAmBA,EAAA,CAAEkK,OAAF,CAAUtK,IAAV,CAAnB,CAAA;IACH,KAAA;IACJ,GA/B2B,EAgC5B,CAACoJ,sBAAD,EAAyBC,WAAzB,CAhC4B,CAAhC,CAAA;IAmCA,EAAA,OAAOkB,aAAO,CAAC,YAAA;IAAA,IAAO,OAAA;IAAEjC,MAAAA,YAAY,EAAZA,YAAF;IAAgB5J,MAAAA,cAAc,EAAdA,cAAAA;IAAhB,KAAP,CAAA;IAAA,GAAD,EAA2C,CAAC4J,YAAD,EAAe5J,cAAf,CAA3C,CAAd,CAAA;IACH,CAxCD;;ICDA,IAAM2K,WAAW,GAAG5D,MAAM,CAAC+E,MAAP,CAAc,CAAC,IAAD,EAAO,GAAP,EAAY,GAAZ,EAAiB,CAAjB,CAAd,CAApB,CAAA;;IAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACpP,KAAD,EAA6BqD,cAA7B,EAAA;IAAA,EACX,OAAA,OAAOrD,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,CAACqD,cAAD,CAAnC,GAAsDrD,KAD3C,CAAA;IAAA,CAAf,CAAA;;IAGA,IAAMqP,eAAe,GAAG,SAAlBA,eAAkB,CAACrP,KAAD,EAAyCqD,cAAzC,EAAA;IAAA,EAAA,OACpB,OAAOrD,KAAP,KAAiB,WAAjB,GAA+BoP,MAAM,CAACpP,KAAD,EAAQqD,cAAR,CAArC,GAA+D1B,SAD3C,CAAA;IAAA,CAAxB,CAAA;;IAGA,IAAM2N,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,MAAD,EAAgClM,cAAhC,EAAkE;IAC5F,EAAA,IAAMyC,KAAK,GAAGkI,WAAW,CAACpC,SAAZ,CAAsB,UAACmD,UAAD,EAAA;IAAA,IAAgBA,OAAAA,UAAU,IAAI1L,cAA9B,CAAA;IAAA,GAAtB,CAAd,CAAA;IACA,EAAA,OAAO+L,MAAM,CAACG,MAAM,CAACzJ,KAAK,IAAI,CAAT,GAAaA,KAAb,GAAqB,CAAtB,CAAP,EAAiCzC,cAAjC,CAAb,CAAA;IACH,CAHD,CAAA;;IAKA,IAAMmM,0BAA0B,GAAG,SAA7BA,0BAA6B,CAC/BC,SAD+B,EAE/BpM,cAF+B,EAG/BkM,MAH+B,EAIvB;IACR,EAAA,IAAMvP,KAAK,GAAGqP,eAAe,CAACI,SAAD,EAAYpM,cAAZ,CAA7B,CAAA;IACA,EAAOrD,OAAAA,KAAK,KAAK2B,SAAV,GAAsB2N,qBAAqB,CAACC,MAAD,EAASlM,cAAT,CAA3C,GAAsErD,KAA7E,CAAA;IACH,CAPD;;ICJA,IAAM0P,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAA,IAAA,EAAA;IAAA,EACzB1J,IAAAA,MADyB,QACzBA,MADyB;IAAA,MAEzBqC,OAFyB,QAEzBA,OAFyB;IAAA,MAGzBd,aAHyB,QAGzBA,aAHyB;IAAA,MAIzBlE,cAJyB,QAIzBA,cAJyB;IAAA,MAKzBD,eALyB,QAKzBA,eALyB;IAAA,MAMzBqB,cANyB,QAMzBA,cANyB;IAAA,MAOzB8G,OAPyB,QAOzBA,OAPyB;IAAA,MAQzBzH,OARyB,QAQzBA,OARyB;IAAA,MASzBC,OATyB,QASzBA,OATyB;IAAA,MAUzB6C,KAVyB,QAUzBA,KAVyB,CAAA;IAAA,EAcoB,OAAA;IAC7CZ,IAAAA,MAAM,EAANA,MAD6C;IAE7CqC,IAAAA,OAAO,EAAPA,OAF6C;IAG7Cd,IAAAA,aAAa,EAAbA,aAH6C;IAI7ClE,IAAAA,cAAc,EAAdA,cAJ6C;IAK7CkI,IAAAA,OAAO,EAAEiE,0BAA0B,CAACjE,OAAD,EAAUlI,cAAV,EAA0B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAA1B,CALU;IAM7CS,IAAAA,OAAO,EAAE0L,0BAA0B,CAAC1L,OAAD,EAAUT,cAAV,EAA0B,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,CAAb,CAA1B,CANU;IAO7CU,IAAAA,OAAO,EAAEyL,0BAA0B,CAACzL,OAAD,EAAUV,cAAV,EAA0B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,CAA1B,CAPU;IAQ7CD,IAAAA,eAAe,EAAEoM,0BAA0B,CAACpM,eAAD,EAAkBC,cAAlB,EAAkC,CACzE,UAACsM,CAAD,EAAA;IAAA,MAAOA,OAAAA,CAAC,GAAG,CAAX,CAAA;IAAA,KADyE,EAEzE,UAACA,CAAD,EAAA;IAAA,MAAOA,OAAAA,CAAC,GAAG,CAAX,CAAA;IAAA,KAFyE,EAGzE,UAACA,CAAD,EAAA;IAAA,MAAOA,OAAAA,CAAC,GAAG,CAAX,CAAA;IAAA,KAHyE,EAIzE,UAACA,CAAD,EAAA;IAAA,MAAOA,OAAAA,CAAC,GAAG,CAAX,CAAA;IAAA,KAJyE,CAAlC,CARE;IAc7C/I,IAAAA,KAAK,EAALA,KAd6C;IAe7CnC,IAAAA,cAAc,EAAdA,cAAAA;IAf6C,GAdpB,CAAA;IAAA,CAA7B,CAAA;;IAgCA,IAAMmL,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAC/F,eAAD,EAAwDxG,cAAxD,EAAkF;IAC7G,EAAO,OAAA,OAAOwG,eAAP,KAA2B,UAA3B,GAAwCA,eAAe,CAACxG,cAAD,CAAvD,GAA0EwG,eAAjF,CAAA;IACH,CAFD,CAAA;;IAIA,IAAMgG,UAAU,GAAG,SAAbA,UAAa,CAAkB9H,KAAlB,EAA4D;IAC3E,EAAA,IACI5E,MADJ,GAWI4E,KAXJ,CACI5E,MADJ;IAAA,MAEI6C,MAFJ,GAWI+B,KAXJ,CAEI/B,MAFJ;IAAA,MAGIoC,WAHJ,GAWIL,KAXJ,CAGIK,WAHJ;IAAA,MAIIgF,eAJJ,GAWIrF,KAXJ,CAIIqF,eAJJ;IAAA,MAKI9D,kBALJ,GAWIvB,KAXJ,CAKIuB,kBALJ;IAAA,MAMI8C,qBANJ,GAWIrE,KAXJ,CAMIqE,qBANJ;IAAA,MAOI0D,qBAPJ,GAWI/H,KAXJ,CAOI+H,qBAPJ;IAAA,MAQI/B,sBARJ,GAWIhG,KAXJ,CAQIgG,sBARJ;IAAA,MASIC,WATJ,GAWIjG,KAXJ,CASIiG,WATJ;IAAA,MAUItJ,eAVJ,GAWIqD,KAXJ,CAUIrD,eAVJ,CAAA;IAaA,EAAMkJ,IAAAA,OAAO,GAAGF,UAAU,EAA1B,CAAA;;IACA,EAAA,IAAA,kBAAA,GAAyCI,iBAAiB,CAACC,sBAAD,EAAyBC,WAAzB,CAA1D;IAAA,MAAQf,YAAR,sBAAQA,YAAR;IAAA,MAAsB5J,cAAtB,GAAA,kBAAA,CAAsBA,cAAtB,CAf2E;;;IAkB3E,EAAA,IAAI,CAAC2C,MAAD,IAAW,CAAC,CAAC,MAAD,EAAS,SAAT,EAAoB,SAApB,CAA+B+J,CAAAA,QAA/B,CAAwC/J,MAAxC,CAAZ,IAA+D,CAACwF,KAAK,CAACwE,OAAN,CAAc7M,MAAd,CAApE,EAA2F,OAAO0E,uCAAP,CAAA;IAE3F,EAAMtD,IAAAA,aAAa,GAAGmL,oBAAoB,CAAA,QAAA,CAAA;IACtCrM,IAAAA,cAAc,EAAGuK,OAAO,IAAIvK,cAAZ,IAA+ByM,qBAA/B,IAAwD,GADlC;IAEtCvI,IAAAA,aAAa,EAAGqG,OAAO,IAAIqC,MAAM,CAACC,UAAnB,IAAkCvO,SAAAA;IAFX,GAAA,EAGnCoG,KAHmC,CAA1C,CAAA,CAAA;IAMA,EAAM8B,IAAAA,eAAe,GAAG+F,sBAAsB,CAAC7H,KAAK,CAAC8B,eAAP,EAAwBtF,aAAa,CAAClB,cAAtC,CAA9C,CAAA;IAEA,EAAA,IAAM8M,iBAAiB,GAAG;IAAEhN,IAAAA,MAAM,EAANA,MAAF;IAAUiF,IAAAA,WAAW,EAAXA,WAAV;IAAuByB,IAAAA,eAAe,EAAfA,eAAvB;IAAwCnF,IAAAA,eAAe,EAAfA,eAAAA;IAAxC,GAA1B,CAAA;IAEA,EACImD,OAAAA,cAAC,CAAAsF,iBAAA;IACGF,IAAAA,YAAY,EAAEA;IACd1I,IAAAA,aAAa,EAAEA;IACf6I,IAAAA,eAAe,EAAEA;IACjBJ,IAAAA,cAAc,EAAEnD,eAAe,KAAf,IAAA,IAAAA,eAAe,WAAf,SAAA,GAAAA,eAAe,CAAEmD;IAEhC9D,IAAAA,QAAA,EAAAlD,MAAM,KAAK,MAAX,GACG6B,eAAC+B;IACGrF,MAAAA,aAAa,EAAEA;IACf+E,MAAAA,kBAAkB,EAAEA,kBAAAA;SAChB6G,EAAAA,mBAJX,GAMGnK,MAAM,KAAK,SAAX,GACA6B,eAACyE;IACG/H,MAAAA,aAAa,EAAEA;IACf6H,MAAAA,qBAAqB,EAAEA,qBAAAA;WACnB+D,mBAJR,GAOAtI,eAACgF;IACGtI,MAAAA,aAAa,EAAEA;IACf6H,MAAAA,qBAAqB,EAAEA,qBAAAA;WACnB+D;OAtBf,CADL,CAAA;IA4BH;;ICtGM,IAAM,IAAI,GAAGC,0BAAM,CAAC,GAAG,kiBAAA,2dAqB7B,IAAA,CAAA;IAEM,IAAM,cAAc,GAAGA,0BAAM,CAAC,CAAC,yHAAA,kDAGrC,IAAA,CAAA;IAEM,IAAM,UAAU,GAAGA,0BAAM,CAACC,OAAI,CAAC,mPAAA,MAClC;QAGA,wKASH,KAZG,UAAC,EAAS;YAAP,KAAK,WAAA;QAAO,OAAA,6BACK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,iCAC1B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAC9C;IAHe,CAGf,CASH,CAAA;;;IC7BD,IAAM,UAAU,GAAG,qCAAqC,CAAA;IAExD;QAAmCC,2BAAsB;QAAzD;YAAA,qEA+DC;YA9DC,aAAO,GAA8BC,yBAAK,CAAC,SAAS,EAAE,CAAA;YAEtD,iBAAW,GAAG,UAAC,KAAU;gBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aACpC,CAAA;YAED,6BAAuB,GAAG,UAAC,KAAU;gBACnC,KAAK,CAAC,eAAe,EAAE,CAAA;gBACf,IAAA,IAAI,GAAK,KAAI,CAAC,KAAK,KAAf,CAAe;gBAC3B,IAAM,GAAG,GAAM,IAAI,CAAC,KAAK,CAAC,IAAI,oBAAe,kBAAkB,CAC7D,UAAU,CACX,yBAAsB,CAAA;gBACvB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAA;aACjD,CAAA;YAED,mBAAa,GAAG,UAAC,KAAU;gBACnB,IAAA,KAAsB,KAAI,CAAC,KAAK,EAA9B,SAAS,eAAA,EAAE,IAAI,UAAe,CAAA;gBACtC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAChB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;oBACxB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;iBACzB;aACF,CAAA;YAED,qBAAe,GAAG,UAAC,KAAU;gBAC3B,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aACpC,CAAA;;SAqCF;QAnCC,kCAAkB,GAAlB,UAAmB,SAAgB;YACjC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAClE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;gBAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aACpC;SACF;QAED,sBAAM,GAAN;YACQ,IAAA,KAA0B,IAAI,CAAC,KAAK,EAAlC,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAe,CAAA;YAC1C,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;YAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAC/B,QACEA,wCAAC,IAAI,IACH,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,KAAK,EAAE,qBAAmB,QAAQ,mBAAgB,EAClD,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,WAAW,EAAE,IAAI,CAAC,eAAe,EACjC,KAAK,EAAE;oBACL,KAAK,EAAK,KAAK,OAAI;oBACnB,MAAM,EAAK,MAAM,OAAI;oBACrB,eAAe,EAAE,WAAQ,GAAG,QAAI;iBACjC,EACD,OAAO,EAAE,IAAI,CAAC,WAAW;gBAEzBA,wCAAC,cAAc,IAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB;oBACnDA,wCAAC,UAAU,IAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;wBAC1CA,wCAACC,OAAI,IAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAiB,QAAQ,+BAA4B;;4BACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAClB,CACI,CACE,CACZ,EACR;SACF;QACH,YAAC;IAAD,CAAC,CA/DkCD,yBAAK,CAAC,SAAS;;ICjBlD;IACA;IACA;IACA;IACA;IAGA;IACA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACzD,IAAIE,gBAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IACrD,IAAIC,kBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AAC7D;IACA,SAASC,UAAQ,CAAC,GAAG,EAAE;IACvB,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;IACxC,EAAE,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC/E,EAAE;AACF;IACA,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACD;IACA,SAAS,eAAe,GAAG;IAC3B,CAAC,IAAI;IACL,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,GAAG,OAAO,KAAK,CAAC;IAChB,GAAG;AACH;IACA;AACA;IACA;IACA,EAAE,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClB,EAAE,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IACpD,GAAG,OAAO,KAAK,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;IACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/B,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,GAAG;IACH,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;IAClE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,GAAG,CAAC,CAAC;IACL,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;IACxC,GAAG,OAAO,KAAK,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;IACjB,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;IAC7D,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,CAAC;IACL,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACpD,IAAI,sBAAsB,EAAE;IAC5B,GAAG,OAAO,KAAK,CAAC;IAChB,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,EAAE,CAAC,OAAO,GAAG,EAAE;IACf;IACA,EAAE,OAAO,KAAK,CAAC;IACf,EAAE;IACF,CAAC;AACD;IACA,gBAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;IAC/E,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,EAAE,GAAGA,UAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,IAAI,OAAO,CAAC;AACb;IACA,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC5C,EAAE,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B;IACA,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;IACxB,GAAG,IAAIF,gBAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACvC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI;IACJ,GAAG;AACH;IACA,EAAE,IAAI,qBAAqB,EAAE;IAC7B,GAAG,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC5C,IAAI,IAAIC,kBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjD,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,KAAK;IACL,IAAI;IACJ,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO,EAAE,CAAC;IACX,CAAC;;ICzFD,YAAc,GAAGE,0BAAyC,CAAC;;;;;;ICA3D,SAAW,GAAGA,uBAAsC,CAAC;;;;;;ICCrD,SAAc,GAAG,UAAU,CAAC,EAAE;IAC9B,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC;IACrB,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC;IACjE,CAAC;;ICFD,IAAIH,gBAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IACrD,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AAC7D;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;IACxC,EAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,EAAE;AACF;IACA,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACD;IACA,SAAS,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IAClC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB;IACA,CAAC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;IACxC,EAAE,OAAO;IACT,EAAE;AACF;IACA,CAAC,IAAIA,gBAAc,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE;IACnC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;IACjD,GAAG,MAAM,IAAI,SAAS,CAAC,8CAA8C,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IACnF,GAAG;IACH,EAAE;AACF;IACA,CAAC,IAAI,CAACA,gBAAc,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACnD,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChB,EAAE,MAAM;IACR,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,EAAE;IACF,CAAC;AACD;IACA,SAAS,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE;IAC1B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;IAClB,EAAE,OAAO,EAAE,CAAC;IACZ,EAAE;AACF;IACA,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB;IACA,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;IACvB,EAAE,IAAIA,gBAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACtC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,GAAG;IACH,EAAE;AACF;IACA,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE;IACnC,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACnD;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC3C,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IAChD,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI;IACJ,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO,EAAE,CAAC;IACX,CAAC;AACD;IACA,cAAc,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE;IAC7C,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3B;IACA,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC5C,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,EAAE;AACF;IACA,CAAC,OAAO,MAAM,CAAC;IACf,CAAC;;ICjED,gBAAc,GAAG,SAAS,YAAY,CAAC,GAAG,EAAE;IAC5C,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IACrD,IAAI,OAAO;IACX,MAAM,EAAE,EAAE,GAAG;IACb,KAAK,CAAC;IACN,GAAG;AACH;IACA,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;IACxB,IAAI,OAAO;IACX,MAAM,KAAK,EAAE,GAAG,CAAC,KAAK;IACtB,KAAK,CAAC;IACN,GAAG;AACH;IACA,EAAE,IAAI,aAAa,GAAG,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvH,EAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACnF,CAAC;;;;;;;;;;;;;AChBD;IACA,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,EAAE,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1X;IACA,IAAI,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,sBAAsB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC5D;IACA,eAAe,GAAG,UAAU,IAAI,EAAE;IAClC,EAAE,IAAI,CAAC,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACxE,IAAI,MAAM,IAAI,KAAK,CAAC,qIAAqI,CAAC,CAAC;IAC3J,GAAG;IACH,CAAC,CAAC;AACF;IACA,iBAAiB,GAAG,UAAU,EAAE,EAAE;IAClC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IACjC,IAAI,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC7E,GAAG;IACH,CAAC,CAAC;AACF;IACA,yBAAyB,GAAG,UAAU,IAAI,EAAE;IAC5C,EAAE,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IAC9C,IAAI,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnH,GAAG;IACH,CAAC,CAAC;AACF;IACA,sBAAsB,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE;IAC5C,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IACvE,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC,CAAC;IACvE,GAAG;IACH,CAAC,CAAC;AACF;IACA,yBAAyB,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE;IAC/C,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;IAChB,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,iEAAiE,CAAC,CAAC,CAAC;IACtG,GAAG;AACH;IACA,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;AACF;IACA,0BAA0B,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;IAC/C,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAC7D,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;IACzF,GAAG;IACH,CAAC,CAAC;AACF;IACA,sBAAsB,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxD,EAAE,IAAI,SAAS,GAAG,6BAA6B,CAAC;AAChD;IACA,EAAE,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;IACjD,IAAI,IAAI,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;IAC1D,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,6CAA6C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvG,GAAG;AACH;IACA,EAAE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;IACpC,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,uDAAuD,CAAC,CAAC,CAAC;IACnG,GAAG;AACH;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,qDAAqD,CAAC,CAAC,CAAC;IACjG,GAAG;IACH,CAAC,CAAC;AACF;IACA,kBAAkB,GAAG,UAAU,MAAM,EAAE;IACvC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IAC/C,IAAI,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,GAAG;AACH;IACA,EAAE,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC,CAAC;AACF;IACA,kBAAkB,GAAG,UAAU,GAAG,EAAE;IACpC,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACpE,IAAI,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC,CAAC;IAC9I,GAAG;AACH;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;;;;;;;;;;;;IC5ED,SAASI,iBAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE;AACjN;AACwC;AACxC;AACsC;AACtC;AACmD;AACnD;AACwC;AACxC;IACA,IAAI,cAAc,GAAGC,UAAQ,CAAC,cAAc,CAAC;IAC7C,IAAI,cAAc,GAAGA,UAAQ,CAAC,cAAc,CAAC;AAC7C;IACA,SAAS,KAAK,CAAC,SAAS,EAAE;IAC1B,EAAE,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1F,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxF,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,EAAE,IAAI,CAAC,UAAU,GAAGC,YAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3C,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;AACD;AACAA,gBAAM,CAAC,KAAK,CAAC,SAAS,EAAE;IACxB,EAAE,KAAK,EAAE,SAAS,KAAK,GAAG;IAC1B,IAAI,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,EAAEA,YAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/E,GAAG;IACH,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE;IAC/B,IAAI,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;IAC/E,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzH,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,GAAG;IACH,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE;IAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,cAAc,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE;IACjD,IAAI,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACjD,GAAG;IACH,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE;IAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IAC/B,MAAM,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC7F,KAAK;AACL;IACA,IAAI,IAAI,CAAC,UAAU,GAAGA,YAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;IAClD,MAAM,KAAK,EAAE,KAAK;IAClB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,YAAY,EAAE,SAAS,YAAY,CAAC,KAAK,EAAE;IAC7C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC/C,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,KAAK,EAAE;IACnC,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IAC5B,MAAM,CAAC,EAAE,KAAK;IACd,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE;IAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE;IAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC/C,IAAI,IAAI,aAAa,CAAC;AACtB;IACA,IAAI,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,aAAa,GAAG,EAAE,EAAEF,iBAAe,CAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAEA,iBAAe,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACrK,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE;IAC3C,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE;IAC7C,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/D;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC;IAC1E,IAAI,IAAI,UAAU,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;IACnD,IAAI,IAAI,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC;IAClE,IAAI,IAAI,QAAQ,GAAG,UAAU,GAAG,CAAC,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;IACnE,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/F,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9D,GAAG;IACH,EAAE,YAAY,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE;IAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC;IACvC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,SAAS,EAAE,SAAS,SAAS,GAAG;IAClC,IAAI,OAAOE,YAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,GAAG;IAC5B,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,GAAG;IAC5B,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACzF;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACtB,MAAM,MAAM,IAAI,KAAK,CAAC,8DAA8D,GAAG,sCAAsC,CAAC,CAAC;IAC/H,KAAK;AACL;IACA,IAAI,IAAI,WAAW,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;IACzD,IAAI,IAAI,IAAI,GAAGA,YAAM,CAAC;IACtB,MAAM,WAAW,EAAE,WAAW;IAC9B,MAAM,eAAe,EAAE,IAAI;IAC3B,KAAK,EAAE,OAAO,CAAC,CAAC;IAChB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,MAAM,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;IAC7B,KAAK,EAAE,IAAI,CAAC,CAAC;IACb,GAAG;IACH,EAAE,KAAK,EAAE,SAAS,KAAK,GAAG;IAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE;IACjC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE;IACvC,IAAI,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzF,IAAI,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,UAAU,GAAGA,YAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAEF,iBAAe,CAAC,EAAE,EAAE,EAAE,EAAEE,YAAM,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClI,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,CAAC,CAAC,CAAC;IACH,SAAc,GAAG,KAAK;;IClItB,SAASF,iBAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE;AACjN;AACsC;AACtC;AAC0C;AAC1C;AAC+B;AAC/B;IACA,IAAI,oBAAoB,GAAG;IAC3B,EAAE,eAAe,EAAE,KAAK;IACxB,CAAC,CAAC;AACF;IACA,SAAS,WAAW,GAAG;IACvB,EAAE,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1F,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/D,EAAE,IAAI,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACtE,EAAE,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;IAC7B,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;AACD;AACAE,gBAAM,CAAC,WAAW,CAAC,SAAS,EAAE;IAC9B,EAAE,KAAK,EAAE,SAAS,KAAK,GAAG;IAC1B,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9E,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE;IAC/B,IAAI,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,MAAM,MAAM,EAAE,GAAG;IACjB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,iBAAiB,EAAE,SAAS,iBAAiB,CAAC,GAAG,EAAE;IACrD,IAAI,IAAI,EAAE,GAAG,mBAAmB,CAAC;IACjC,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,CAACF,iBAAe,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,GAAG;IACH,EAAE,eAAe,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE;IACjD,IAAI,IAAI,EAAE,GAAG,iBAAiB,CAAC;IAC/B,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,CAACA,iBAAe,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,OAAO,CAAC,UAAU,EAAE;IACvC,IAAI,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,MAAM,MAAM,EAAE;IACd,QAAQ,EAAE,EAAE,UAAU;IACtB,OAAO;IACP,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,KAAK,EAAE,SAASG,OAAK,CAAC,UAAU,EAAE,QAAQ,EAAE;IAC9C,IAAI,IAAI,SAAS,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC;IACnD,IAAI,IAAI,OAAO,GAAG,UAAU,YAAYC,KAAK,CAAC;AAC9C;IACA,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC;IACvB,QAAQ,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE;IACrC,OAAO,CAAC,CAAC;IACT,KAAK;AACL;AACA;IACA,IAAI,IAAI,SAAS,EAAE;IACnB,MAAM,IAAID,OAAK,GAAG,QAAQ,CAAC,IAAIC,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnE;IACA,MAAM,IAAI,EAAED,OAAK,YAAYC,KAAK,CAAC,EAAE;IACrC,QAAQ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC9E,OAAO;AACP;IACA,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC;IACvB,QAAQ,KAAK,EAAED,OAAK,CAAC,SAAS,EAAE;IAChC,OAAO,CAAC,CAAC;IACT,KAAK;AACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,MAAM,KAAK,EAAED,YAAM,CAAC;IACpB,QAAQ,EAAE,EAAE,UAAU;IACtB,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,aAAa,EAAE,SAAS,aAAa,CAAC,EAAE,EAAE;IAC5C,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;IACxB,KAAK;AACL;IACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,SAAS,EAAE,SAAS,SAAS,GAAG;IAClC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,GAAG;IAC5B,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE;IACnC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACtB,MAAM,MAAM,IAAI,KAAK,CAAC,oEAAoE,GAAG,4CAA4C,CAAC,CAAC;IAC3I,KAAK;AACL;IACA,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAEA,YAAM,CAAC;IACvD,MAAM,aAAa,EAAE,IAAI,CAAC,KAAK;IAC/B,KAAK,EAAE,oBAAoB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,GAAG;IACH,EAAE,KAAK,EAAE,SAAS,KAAK,GAAG;IAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE;IAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,CAAC,CAAC,CAAC;IACH,eAAc,GAAG,WAAW;;IChH5B,IAAI,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB;IACA,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,GAAG,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE;AAC5e;IACA,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE;AACnT;IACA,IAAI,GAAG,GAAG,kBAAkB,CAAC;AAC7B;IACA,qBAAc,GAAG,UAAU,IAAI,EAAE;IACjC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM;IAC/B,MAAM,MAAM,GAAG,WAAW,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,WAAW;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;IACjC,MAAM,OAAO,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;AAC5D;IACA;IACA,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG;IACvB,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1D;IACA,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE;IAChE,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,GAAG,EAAE,IAAI,CAAC,CAAC;IACX,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE;IACxD;IACA,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3G,GAAG,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;;IC9BD,YAAc,GAAGH,0BAAyC,CAAC;;;;;;ICE3D,IACI,UAAU,GAAGM,8BAAQ,CAAC,UAAU,CAAC;AACrC;AACsC;AACtC;IACA,IACIrL,KAAG,GAAGsL,KAAS,CAAC,GAAG,CAAC;AACxB;IACA,IACIxC,QAAM,GAAGyC,QAAS,CAAC,MAAM,CAAC;AAC9B;IACA,IACI,MAAM,GAAGC,QAAS,CAAC,MAAM,CAAC;IAC9B;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,uBAAuB,GAAG;IACnC,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;AACD;IACA,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAACN,YAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACrG,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,EAAE;IACxE,EAAE,KAAK,EAAE,uBAAuB;IAChC,EAAE,UAAU,EAAE,KAAK;IACnB,EAAE,QAAQ,EAAE,IAAI;IAChB,EAAE,YAAY,EAAE,IAAI;IACpB,CAAC,CAAC,CAAC;AACH;IACA,uBAAuB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,QAAQ,EAAE;IACjE,EAAE,IAAI,UAAU,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACjD,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC3B,EAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,EAAE,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACF;IACA,SAAS,wBAAwB,CAAC,IAAI,EAAE,EAAE,EAAE;IAC5C,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;IACxB,EAAE,OAAO,SAAS,kBAAkB,GAAG;IACvC,IAAI,IAAI,CAAC,SAAS,EAAE;IACpB,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrJ,KAAK;AACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAChD,GAAG,CAAC;IACJ,CAAC;AACD;IACA,uBAAuB,CAAC,SAAS,CAAC,GAAG,GAAG,wBAAwB,CAAC,KAAK,EAAElL,KAAG,CAAC,CAAC;IAC7E,uBAAuB,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB,CAAC,QAAQ,EAAE8I,QAAM,CAAC,CAAC;IACtF,uBAAuB,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtF,6BAAc,GAAG,uBAAuB;;ICvDxC,WAAc,GAAGiC;;ICEjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,gBAAc,GAAG,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE;IACnD,EAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACf;IACA,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;AAC1B;IACA,EAAE,QAAQ,QAAQ;IAClB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,IAAI;IACb,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;AACvB;IACA,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,KAAK;IACd,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC;AACxB;IACA,IAAI,KAAK,KAAK;IACd,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;AACvB;IACA,IAAI,KAAK,QAAQ;IACjB,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;AACvB;IACA,IAAI,KAAK,MAAM;IACf,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;AACH;IACA,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;IACpB,CAAC;;ICnCD,IAAIU,KAAG,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;IACzC,IAAI,KAAK,CAAC;AACV;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,MAAM,CAAC,KAAK,EAAE;IACvB,EAAE,IAAI;IACN,IAAI,OAAO,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,OAAO,CAAC,EAAE;IACd,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,MAAM,CAAC,KAAK,EAAE;IACvB,EAAE,IAAI;IACN,IAAI,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrC,GAAG,CAAC,OAAO,CAAC,EAAE;IACd,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,WAAW,CAAC,KAAK,EAAE;IAC5B,EAAE,IAAI,MAAM,GAAG,sBAAsB;IACrC,MAAM,MAAM,GAAG,EAAE;IACjB,MAAM,IAAI,CAAC;AACX;IACA,EAAE,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACpC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,EAAE,SAAS;IAClE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,GAAG;AACH;IACA,EAAE,OAAO,MAAM,CAAC;IAChB,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;IACrC,EAAE,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AACxB;IACA,EAAE,IAAI,KAAK,GAAG,EAAE;IAChB,MAAM,KAAK;IACX,MAAM,GAAG,CAAC;AACV;IACA;IACA;IACA;IACA,EAAE,IAAI,QAAQ,KAAK,OAAO,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;AAC/C;IACA,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE;IACnB,IAAI,IAAIA,KAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB;IACA;IACA;IACA;IACA;IACA,MAAM,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;IACzE,QAAQ,KAAK,GAAG,EAAE,CAAC;IACnB,OAAO;AACP;IACA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B;IACA;IACA;IACA;IACA;IACA,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,SAAS;IACnD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;AACD;IACA;IACA;IACA;IACA,aAAiB,GAAG,cAAc,CAAC;IACnC,WAAa,GAAG,WAAW;;;;;;;ICnH3B,IAEI,OAAO,GAAG,+BAA+B;IAC7C,IAAI,UAAU,GAAG,kDAAkD;IACnE,IAAI,kBAAkB,GAAG,YAAY;IACrC,IAAI,UAAU,GAAG,4KAA4K;IAC7L,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;AAC5C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;IAChB,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAClC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;IAC3E,GAAG;IACH,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC;IACnB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAClB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACnC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACnC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,EAAE,IAAI,SAAS,CAAC;AAChB;IACA,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IACxD,OAAO,IAAI,OAAOC,cAAM,KAAK,WAAW,EAAE,SAAS,GAAGA,cAAM,CAAC;IAC7D,OAAO,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IACzD,OAAO,SAAS,GAAG,EAAE,CAAC;AACtB;IACA,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC1C,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC;AACxB;IACA,EAAE,IAAI,gBAAgB,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG,OAAO,GAAG;IACvB,MAAM,GAAG,CAAC;AACV;IACA,EAAE,IAAI,OAAO,KAAK,GAAG,CAAC,QAAQ,EAAE;IAChC,IAAI,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,GAAG,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;IAChC,IAAI,gBAAgB,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,IAAI,MAAM,EAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrD,GAAG,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;IAChC,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;IACrB,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,SAAS;IAClC,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK;AACL;IACA,IAAI,IAAI,gBAAgB,CAAC,OAAO,KAAK,SAAS,EAAE;IAChD,MAAM,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxD,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,MAAM,EAAE;IAC3B,EAAE;IACF,IAAI,MAAM,KAAK,OAAO;IACtB,IAAI,MAAM,KAAK,MAAM;IACrB,IAAI,MAAM,KAAK,OAAO;IACtB,IAAI,MAAM,KAAK,QAAQ;IACvB,IAAI,MAAM,KAAK,KAAK;IACpB,IAAI,MAAM,KAAK,MAAM;IACrB,IAAI;IACJ,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE;IAC5C,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,EAAE,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;AAC5B;IACA,EAAE,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IACxD,EAAE,IAAI,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;IACvB,EAAE,IAAI,IAAI,CAAC;AACX;IACA,EAAE,IAAI,cAAc,EAAE;IACtB,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,MAAM;IACX,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK;IACL,GAAG,MAAM;IACT,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,MAAM;IACX,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAC;IACrB,KAAK;IACL,GAAG;AACH;IACA,EAAE,IAAI,QAAQ,KAAK,OAAO,EAAE;IAC5B,IAAI,IAAI,YAAY,IAAI,CAAC,EAAE;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,GAAG,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;IAClC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,GAAG,MAAM,IAAI,QAAQ,EAAE;IACvB,IAAI,IAAI,cAAc,EAAE;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,GAAG,MAAM,IAAI,YAAY,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAChE,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,GAAG;AACH;IACA,EAAE,OAAO;IACT,IAAI,QAAQ,EAAE,QAAQ;IACtB,IAAI,OAAO,EAAE,cAAc,IAAI,SAAS,CAAC,QAAQ,CAAC;IAClD,IAAI,YAAY,EAAE,YAAY;IAC9B,IAAI,IAAI,EAAE,IAAI;IACd,GAAG,CAAC;IACJ,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;AACnC;IACA,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC;AACb;IACA,EAAE,OAAO,CAAC,EAAE,EAAE;IACd,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IACzB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;IACjC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,EAAE,CAAC;IACX,KAAK,MAAM,IAAI,EAAE,EAAE;IACnB,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,EAAE,CAAC;IACX,KAAK;IACL,GAAG;AACH;IACA,EAAE,IAAI,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD;IACA,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;IACxC,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9B;IACA,EAAE,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,GAAG;AACH;IACA,EAAE,IAAI,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG;IACzD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE;IAClC,MAAM,IAAI,GAAG,OAAO,QAAQ;IAC5B,MAAM,GAAG,GAAG,IAAI;IAChB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;IAC9C,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG;AACH;IACA,EAAE,IAAI,MAAM,IAAI,UAAU,KAAK,OAAO,MAAM,EAAE,MAAM,GAAGC,gBAAE,CAAC,KAAK,CAAC;AAChE;IACA,EAAE,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACjC;IACA;IACA;IACA;IACA,EAAE,SAAS,GAAG,eAAe,CAAC,OAAO,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvD,EAAE,QAAQ,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IACvD,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC;IAClE,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC/D,EAAE,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;AAC3B;IACA;IACA;IACA;IACA;IACA,EAAE;IACF,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO;IAClC,MAAM,SAAS,CAAC,YAAY,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,KAAK,CAAC,SAAS,CAAC,OAAO;IACvB,OAAO,SAAS,CAAC,QAAQ;IACzB,QAAQ,SAAS,CAAC,YAAY,GAAG,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,IAAI;IACJ,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,GAAG;AACH;IACA,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAClC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,SAAS;IACf,KAAK;AACL;IACA,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACzB;IACA,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;IACzB,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACzB,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,KAAK,EAAE;IAC1C,MAAM,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;IAC7C,QAAQ,IAAI,QAAQ,KAAK,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE;IAChD,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,UAAU,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,SAAS,MAAM;IACf,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,UAAU,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,SAAS;IACT,OAAO;IACP,KAAK,MAAM,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;IAC9C,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,KAAK;AACL;IACA,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;IACvB,MAAM,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;IAC3D,KAAK,CAAC;AACN;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,GAAG;AACH;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5C;IACA;IACA;IACA;IACA,EAAE;IACF,MAAM,QAAQ;IACd,OAAO,QAAQ,CAAC,OAAO;IACvB,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;IACrC,QAAQ,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAC;IACxD,IAAI;IACJ,IAAI,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,GAAG;AACH;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACjE,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;IACtC,GAAG;AACH;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,CAACC,YAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;IACzC,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC5B,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,GAAG;AACH;IACA;IACA;IACA;IACA,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IACnC,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE;IAChB,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,GAAG;AACH;IACA,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI;IAC9E,MAAM,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;IAClC,MAAM,MAAM,CAAC;AACb;IACA;IACA;IACA;IACA,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC;AACjB;IACA,EAAE,QAAQ,IAAI;IACd,IAAI,KAAK,OAAO;IAChB,MAAM,IAAI,QAAQ,KAAK,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;IACrD,QAAQ,KAAK,GAAG,CAAC,EAAE,IAAID,gBAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO;AACP;IACA,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACxB,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,MAAM;IACf,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACxB;IACA,MAAM,IAAI,CAACC,YAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC1C,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;IAChC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO,MAAM,IAAI,KAAK,EAAE;IACxB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5C,OAAO;AACP;IACA,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,UAAU;IACnB,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACxB;IACA,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IAC3C,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,MAAM;IACf,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACxB;IACA,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAC/B,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,MAAM;IACb,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC7B,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACtB,OAAO;AACP;IACA,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,UAAU;IACnB,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;IACxB,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,UAAU,CAAC;IACpB,IAAI,KAAK,MAAM;IACf,MAAM,IAAI,KAAK,EAAE;IACjB,QAAQ,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;IACnD,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IACpE,OAAO,MAAM;IACb,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC1B,OAAO;IACP,MAAM,MAAM;AACZ;IACA,IAAI;IACJ,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACxB,GAAG;AACH;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB;IACA,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,GAAG;AACH;IACA,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI;IAC9E,MAAM,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;IAClC,MAAM,MAAM,CAAC;AACb;IACA,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5B;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAASlM,UAAQ,CAAC,SAAS,EAAE;IAC7B,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,OAAO,SAAS,EAAE,SAAS,GAAGiM,gBAAE,CAAC,SAAS,CAAC;AAC9E;IACA,EAAE,IAAI,KAAK;IACX,MAAM,GAAG,GAAG,IAAI;IAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;IACA,EAAE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,IAAI,GAAG,CAAC;AAChF;IACA,EAAE,IAAI,MAAM,GAAG,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;AAC/E;IACA,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;IACpB,IAAI,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC3B,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC;IAClD,IAAI,MAAM,IAAI,GAAG,CAAC;IAClB,GAAG;AACH;IACA,EAAE,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;AACpC;IACA,EAAE,KAAK,GAAG,QAAQ,KAAK,OAAO,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IAC3E,EAAE,IAAI,KAAK,EAAE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC;AACpE;IACA,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;AACnC;IACA,EAAE,OAAO,MAAM,CAAC;IAChB,CAAC;AACD;IACA,GAAG,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAEjM,UAAQ,EAAE,CAAC;AACjD;IACA;IACA;IACA;IACA;IACA,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;IACtC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxB,GAAG,CAAC,EAAE,GAAGiM,gBAAE,CAAC;AACZ;IACA,YAAc,GAAG,GAAG;;ICzgBpB;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,MAAM,CAAC,GAAG,EAAE;IACrB,EAAE,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,GAAG,GAAGE,QAAK,CAAC,GAAG,CAAC,CAAC;AAChD;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC;AACpD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IACtD,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;IAClC,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA,YAAc,GAAG,MAAM;;IC5CvB,IAAIA,OAAK,GAAGd,uBAAc,CAAC,MAAK;AACF;AACF;AACF;AACA;AAC1B;IACA,IAAI,YAAY,GAAG;IACnB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IACrD,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB;IAC7E,EAAC;AACD;IACA,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC;IACzB,IAAI,KAAK,GAAG,GAAE;IACd,IAAI,KAAK,GAAG,GAAE;IACd,IAAI,QAAQ,GAAG,GAAE;IACjB,IAAI,cAAc,GAAG,GAAE;AACvB;IACA,SAAS,MAAM,EAAE,GAAG,EAAE;IACtB,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,QAAQ,EAAE,KAAK,EAAE;IAC9C,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ;IAClC,GAAG,CAAC;IACJ,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAASe,aAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE;IAChD,EAAE,IAAI,UAAU,GAAGA,aAAW,CAAC,WAAU;IACzC,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE;IAC5C,IAAI,GAAG,EAAE,YAAY;IACrB,MAAM,OAAO,UAAU;IACvB,KAAK;IACL,GAAG,EAAC;AACJ;IACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;IACrC,IAAI,GAAG,EAAE,YAAY;IACrB,MAAM,OAAO,GAAG;IAChB,KAAK;IACL,GAAG,EAAC;AACJ;IACA,EAAE,IAAI,IAAI,GAAG,KAAI;IACjB,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAI;IAC/B,EAAE,IAAI,CAAC,oBAAoB,GAAG,MAAK;AACnC;IACA,EAAE,SAAS,kBAAkB,EAAE,OAAO,EAAE;IACxC,IAAI,IAAI,UAAU,KAAKA,aAAW,CAAC,MAAM,EAAE,MAAM;IACjD,IAAI,UAAU,GAAGA,aAAW,CAAC,WAAU;IACvC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAC;AAC1D;IACA;IACA;IACA,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,GAAG,GAAG,aAAY;IACxB,MAAM,YAAY,GAAG,KAAI;IACzB,KAAK;IACL,IAAI,UAAU,CAAC,YAAY;IAC3B,MAAM,IAAI,UAAU,KAAKA,aAAW,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,EAAE;IAC9E,QAAQ,MAAM;IACd,OAAO;IACP,MAAM,IAAI,CAAC,oBAAoB,GAAG,KAAI;IACtC,MAAM,OAAO,GAAE;IACf,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAC;IAC9B,GAAG;AACH;IACA,EAAE,IAAI,IAAG;IACT,EAAE,IAAI,WAAW,GAAG,GAAE;IACtB,EAAE,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;IAC1G,IAAI,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,eAAe,EAAC;IAC9D,IAAI,OAAO,mBAAmB,CAAC,OAAO,CAAC,eAAe,EAAC;IACvD,GAAG;AACH;IACA,EAAE,IAAI,sBAAsB,GAAG,MAAK;IACpC,EAAE,IAAI,IAAI,GAAG,GAAE;IACf,EAAE,IAAI,SAAS,GAAG,GAAE;AACpB;IACA,EAAE,IAAI,YAAY,GAAG,KAAI;AACzB;IACA,EAAE,SAAS,OAAO,IAAI;IACtB,IAAI,IAAI,OAAO,GAAGD,OAAK,CAAC,GAAG,EAAC;IAC5B,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAQ;IAChD,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,GAAE;IACpF,IAAI,IAAI,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,YAAW;IACnE,IAAI,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,EAAE;IAC5D,MAAM,KAAK,IAAI,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE;IACjD,QAAQ,IAAI,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAC;IACnD,QAAQ,IAAI,MAAM,EAAE;IACpB,UAAU,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAM;IACrC,SAAS;IACT,OAAO;IACP,KAAK;AACL;IACA;IACA;IACA,IAAI,OAAO,CAAC,kBAAkB,GAAG,EAAE,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAC;AAClG;IACA,IAAI,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,SAAS,EAAE;IACnF,MAAM,OAAO,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,iBAAgB;IACrE,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG,mBAAmB,IAAI,mBAAmB,CAAC,MAAK;IACnE,IAAI,IAAI,QAAQ,EAAE;IAClB,MAAM,IAAI,KAAK,GAAGA,OAAK,CAAC,mBAAmB,CAAC,KAAK,EAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAQ;AAC5C;IACA,MAAM,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAO;IACtD,MAAM,OAAO,CAAC,IAAI,GAAG,IAAG;IACxB,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAI;IACzC,MAAM,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAQ;IACvC,MAAM,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,KAAI;IAC/B,MAAM,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,KAAI;IAC/B,KAAK;AACL;IACA;IACA,IAAI,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,KAAK,EAAE;IAC1D,MAAM,KAAK,IAAI,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE;IACrD,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;IAClD,UAAU,QAAQ;IAClB,SAAS;AACT;IACA,QAAQ,IAAI,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAC;IACvD,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;IAClC,UAAU,OAAO,CAAC,OAAO,CAAC,GAAG,OAAM;IACnC,SAAS;IACT,OAAO;IACP,KAAK;AACL;IACA;IACA,IAAI,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,eAAe,KAAK,SAAS,EAAE;IAClF,MAAM,OAAO,CAAC,eAAe,GAAG,mBAAmB,CAAC,gBAAe;IACnE,KAAK;AACL;IACA,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAGE,yBAAK,GAAGC,wBAAI,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;IACpE,MAAM,IAAI,CAAC,oBAAoB,GAAG,MAAK;IACvC;IACA,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;IAChH,QAAQ,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAAC;IAChG,QAAQ,kBAAkB,GAAE;IAC5B,QAAQ,MAAM;IACd,OAAO;AACP;IACA;IACA,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;IACtF,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;IACnC;IACA,UAAU,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAAC;IAClG,UAAU,MAAM;IAChB,SAAS;IACT,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,YAAY,GAAG,IAAG;IACtD,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAQ;IAClC,QAAQ,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAC;IACjC,QAAQ,MAAM;IACd,OAAO;AACP;IACA,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;IAClC,QAAQ,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAAC;IAChG,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE;IAC3B,OAAO;AACP;IACA,MAAM,UAAU,GAAGF,aAAW,CAAC,KAAI;IACnC,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY;IAClC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAC;IACrC,QAAQ,kBAAkB,GAAE;IAC5B,OAAO,EAAC;AACR;IACA,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY;IAChC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAC;IACrC,QAAQ,kBAAkB,GAAE;IAC5B,OAAO,EAAC;IACR,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAC;AACtC;IACA;IACA;IACA,MAAM,IAAI,OAAO,GAAG,KAAI;IACxB,MAAM,IAAI,IAAG;IACb,MAAM,IAAI,WAAW,GAAG,EAAC;IACzB,MAAM,IAAI,mBAAmB,GAAG,CAAC,EAAC;IAClC,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;IACtC,QAAQ,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,MAAK;IACvD,QAAQ,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;IACpC,UAAU,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAC;IACrC,SAAS;AACT;IACA,QAAQ,OAAO,GAAG,MAAK;IACvB,QAAQ,IAAI,GAAG,GAAG,EAAC;IACnB,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC/B;IACA,QAAQ,OAAO,GAAG,GAAG,MAAM,EAAE;IAC7B,UAAU,IAAI,sBAAsB,EAAE;IACtC,YAAY,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;IACvC,cAAc,EAAE,IAAG;IACnB,aAAa;IACb,YAAY,sBAAsB,GAAG,MAAK;IAC1C,WAAW;AACX;IACA,UAAU,IAAI,UAAU,GAAG,CAAC,EAAC;IAC7B,UAAU,IAAI,WAAW,GAAG,oBAAmB;IAC/C,UAAU,IAAI,EAAC;AACf;IACA,UAAU,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;IACvE,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;IACtB,YAAY,IAAI,CAAC,KAAK,KAAK,EAAE;IAC7B,cAAc,IAAI,WAAW,GAAG,CAAC,EAAE;IACnC,gBAAgB,WAAW,GAAG,CAAC,GAAG,IAAG;IACrC,eAAe;IACf,aAAa,MAAM,IAAI,CAAC,KAAK,cAAc,EAAE;IAC7C,cAAc,sBAAsB,GAAG,KAAI;IAC3C,cAAc,UAAU,GAAG,CAAC,GAAG,IAAG;IAClC,aAAa,MAAM,IAAI,CAAC,KAAK,QAAQ,EAAE;IACvC,cAAc,UAAU,GAAG,CAAC,GAAG,IAAG;IAClC,aAAa;IACb,WAAW;AACX;IACA,UAAU,IAAI,UAAU,GAAG,CAAC,EAAE;IAC9B,YAAY,WAAW,GAAG,MAAM,GAAG,IAAG;IACtC,YAAY,mBAAmB,GAAG,YAAW;IAC7C,YAAY,KAAK;IACjB,WAAW,MAAM;IACjB,YAAY,WAAW,GAAG,EAAC;IAC3B,YAAY,mBAAmB,GAAG,CAAC,EAAC;IACpC,WAAW;AACX;IACA,UAAU,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAC;AACjE;IACA,UAAU,GAAG,IAAI,UAAU,GAAG,EAAC;IAC/B,SAAS;AACT;IACA,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE;IAC5B,UAAU,GAAG,GAAG,KAAK,EAAC;IACtB,SAAS,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;IAC5B,UAAU,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC;IAC9B,SAAS;IACT,OAAO,EAAC;IACR,KAAK,EAAC;AACN;IACA,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;IACnC,MAAM,IAAI,CAAC,oBAAoB,GAAG,MAAK;IACvC,MAAM,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAC;IACrC,KAAK,EAAC;AACN;IACA,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,EAAC;IAC5C,IAAI,GAAG,CAAC,GAAG,GAAE;IACb,GAAG;AACH;IACA,EAAE,OAAO,GAAE;AACX;IACA,EAAE,SAAS,KAAK,IAAI;IACpB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IACjD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAC;IACtC,KAAK;IACL,GAAG;AACH;IACA,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY;IAC5B,IAAI,IAAI,UAAU,KAAKA,aAAW,CAAC,MAAM,EAAE,MAAM;IACjD,IAAI,UAAU,GAAGA,aAAW,CAAC,OAAM;IACnC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAE;IAC9B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAE;IACjD,IAAG;AACH;IACA,EAAE,SAAS,oBAAoB,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE;IACpE,IAAI,IAAI,UAAU,KAAK,CAAC,EAAE;IAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3B,QAAQ,IAAI,IAAI,GAAG,SAAS,IAAI,UAAS;IACzC,QAAQ,KAAK,CAAC,IAAI,EAAE,IAAI,YAAY,CAAC,IAAI,EAAE;IAC3C,UAAU,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,UAAU,WAAW,EAAE,WAAW;IAClC,UAAU,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC/B,SAAS,CAAC,EAAC;IACX,QAAQ,IAAI,GAAG,GAAE;IACjB,OAAO;IACP,MAAM,SAAS,GAAG,KAAK,EAAC;IACxB,KAAK,MAAM,IAAI,WAAW,GAAG,CAAC,EAAE;IAChC,MAAM,IAAI,OAAO,GAAG,WAAW,GAAG,EAAC;IACnC,MAAM,IAAI,IAAI,GAAG,EAAC;IAClB,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,GAAE;AACvF;IACA,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,IAAI,GAAG,WAAU;IACzB,OAAO,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;IACvD,QAAQ,IAAI,GAAG,WAAW,GAAG,EAAC;IAC9B,OAAO,MAAM;IACb,QAAQ,IAAI,GAAG,WAAW,GAAG,EAAC;IAC9B,OAAO;IACP,MAAM,GAAG,IAAI,KAAI;AACjB;IACA,MAAM,IAAI,WAAW,GAAG,UAAU,GAAG,KAAI;IACzC,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,QAAQ,GAAE;AAC9D;IACA,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE;IAC5B,QAAQ,IAAI,IAAI,KAAK,GAAG,KAAI;IAC5B,OAAO,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE;IACpC,QAAQ,SAAS,GAAG,MAAK;IACzB,OAAO,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE;IACjC,QAAQ,WAAW,GAAG,MAAK;IAC3B,OAAO,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE;IACpC,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAC;IACvC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IAClC,UAAU,IAAI,CAAC,iBAAiB,GAAG,MAAK;IACxC,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,CAAC;AACD;IACA,eAAc,GAAGA,cAAW;AAC5B;AACAG,4BAAI,CAAC,QAAQ,CAACH,aAAW,EAAEI,0BAAM,CAAC,YAAY,EAAC;AAC/CJ,iBAAW,CAAC,SAAS,CAAC,WAAW,GAAGA,aAAW,CAAC;AAChD;IACA,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;IACvD,EAAE,MAAM,CAAC,cAAc,CAACA,aAAW,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE;IAC9D;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,EAAE,SAAS,GAAG,IAAI;IACzB,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC;IAC9C,MAAM,OAAO,QAAQ,IAAI,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,GAAG,QAAQ,IAAI,SAAS;IACxF,KAAK;AACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,EAAE,SAAS,GAAG,EAAE,QAAQ,EAAE;IACjC,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAC;IACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAC;IAC7C,KAAK;IACL,GAAG,EAAC;IACJ,CAAC,EAAC;AACF;IACA;IACA;IACA;IACA,MAAM,CAAC,cAAc,CAACA,aAAW,EAAE,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAC;IAC9E,MAAM,CAAC,cAAc,CAACA,aAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAC;IACxE,MAAM,CAAC,cAAc,CAACA,aAAW,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAC;AAC1E;AACAA,iBAAW,CAAC,SAAS,CAAC,UAAU,GAAG,EAAC;AACpCA,iBAAW,CAAC,SAAS,CAAC,IAAI,GAAG,EAAC;AAC9BA,iBAAW,CAAC,SAAS,CAAC,MAAM,GAAG,EAAC;AAChC;IACA;IACA;IACA;IACA;IACA;IACA;AACAA,iBAAW,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IAC1C,EAAE,IAAI,CAAC,MAAM,GAAE;IACf,EAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACAA,iBAAW,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpF,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IACtC;IACA,IAAI,QAAQ,CAAC,SAAS,GAAG,SAAQ;IACjC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAC;IAC3B,GAAG;IACH,EAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACAA,iBAAW,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE;IACrE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB,IAAI,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IACjD,GAAG;IACH;IACA;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAC;IACrC,EAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACAA,iBAAW,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1F,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IACtC,IAAI,QAAQ,CAAC,SAAS,GAAG,UAAS;IAClC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAC;IACvC,GAAG;IACH,EAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC1C,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAC;IACzF,EAAE,IAAI,kBAAkB,EAAE;IAC1B,IAAI,KAAK,IAAI,CAAC,IAAI,kBAAkB,EAAE;IACtC,MAAM,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAC;IAC3G,OAAO;IACP,KAAK;IACL,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;IAC5C,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAC;IACzF,EAAE,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;IAC/B,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACzC,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAC;IACpG,KAAK;IACL,GAAG;IACH;;IC5bA,UAAc,GAAGf;;ICAjB,IAAI,OAAO,GAAG,+BAA8B;AAC5C;IACA,mBAAc,GAAG,SAAS,eAAe,CAAC,IAAI,EAAE;IAChD,EAAE,OAAO,OAAO,GAAG,IAAI;IACvB;;ICFA,QAAc,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE;IACvC,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;IAC1C,MAAM,OAAO,SAAS,CAAC;IACvB,KAAK;AACL;IACA,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,SAAS,CAAC;IACrB,GAAG,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;;ICTD,QAAc,GAAG,UAAU,EAAE,EAAE;IAC/B,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC;IACtB,EAAE,IAAI,WAAW,CAAC;IAClB,EAAE,OAAO,YAAY;IACrB,IAAI,IAAI,OAAO,EAAE;IACjB,MAAM,OAAO,WAAW,CAAC;IACzB,KAAK;AACL;IACA,IAAI,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,OAAO,WAAW,CAAC;IACvB,GAAG,CAAC;IACJ,CAAC;;ICZD,cAAc,GAAG,UAAU,GAAG,EAAE,QAAQ,EAAE;IAC1C,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,MAAM,EAAE,IAAI,EAAE;IACvF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjF,IAAI,OAAO,MAAM,CAAC;IAClB,GAAG,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;;ICLD,SAASoB,SAAO,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE;AACzV;IACA,SAASC,eAAa,CAAC,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAED,SAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,EAAEnB,iBAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,yBAAyB,EAAE,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAEmB,SAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE;AACthB;IACA,SAASnB,iBAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE;AACjN;AACsC;AACtC;AACuD;AACvD;AAC2D;AAC3D;AAC2D;AAC3D;AACmC;AACnC;AACmC;AACnC;AAC2C;AAC3C;IACuD;IACvD;IACA;AACA;AACA;IACA,IAAI,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC;IAClC,IAAI,YAAY,GAAG,CAAC,2DAA2D,EAAE,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC,mCAAmC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1K;IACA,IAAI,iBAAiB,GAAG,IAAI,CAAC,YAAY;IACzC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,IAAI,mBAAmB,GAAG,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;IACvF,IAAI,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC,WAAW;IAC1D,EAAEqB,MAAqB,CAAC;AACxB;IACA,IAAI,eAAe,GAAG,CAAC,yBAAyB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IACxG,IAAIC,gBAAc,GAAG;IACrB,EAAE,aAAa,EAAE,IAAI;IACrB,CAAC,CAAC;AACF;IACA,UAAc,GAAG,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;IAChD,EAAE,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACpF,EAAE,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY;IAC5C,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG;IAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK;IACtC,MAAM,eAAe,GAAG,kBAAkB,CAAC,eAAe;IAC1D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;IAC7D,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC7F;IACA,EAAE,IAAI,OAAO,GAAGF,eAAa,CAACA,eAAa,CAAC,EAAE,EAAEG,UAAQ,CAAC,IAAI,EAAED,gBAAc,CAAC,CAAC,EAAE,EAAE,EAAE;IACrF,IAAI,GAAG,EAAE,GAAG;IACZ,GAAG,CAAC,CAAC;AACL;IACA,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClD,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;IAC7B,IAAI,KAAK,EAAE,KAAK;IAChB,IAAI,MAAM,EAAE,MAAM;IAClB,IAAI,OAAO,EAAE,UAAU;IACvB,IAAI,GAAG,EAAE,GAAG;IACZ,GAAG,CAAC,CAAC;IACL,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE;IACA,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,EAAE;IACnC,IAAI,OAAO,IAAIE,OAAU,CAAC,UAAU,QAAQ,EAAE;IAC9C,MAAM,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACvE,KAAK,CAAC,CAAC;IACP,GAAG;AACH;IACA,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;IACjE,EAAE,IAAI,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE;IACA,EAAE,IAAI,KAAK,IAAI,mBAAmB,EAAE;IACpC,IAAI,iBAAiB,EAAE,CAAC;IACxB,GAAG;AACH;IACA,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB;IACA,EAAE,IAAI,KAAK,IAAI,eAAe,EAAE;IAChC,IAAI,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;IACrC,GAAG;AACH;IACA,EAAE,IAAI,KAAK,EAAE;IACb,IAAI,SAAS,CAAC,OAAO,GAAG;IACxB,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,KAAK,CAAC;IACN,GAAG;AACH;IACA,EAAE,OAAO,IAAIA,OAAU,CAAC,UAAU,QAAQ,EAAE;IAC5C,IAAI,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,IAAI,cAAc,CAAC;IACvB,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;AACxB;IACA,IAAI,SAAS,OAAO,GAAG;IACvB,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,OAAO;IACf,OAAO;AACP;IACA,MAAM,aAAa,EAAE,CAAC;AACtB;IACA,MAAM,IAAI,OAAO,EAAE;IACnB,QAAQ,OAAO;IACf,OAAO;IACP;IACA;IACA;IACA;AACA;AACA;IACA,MAAM,IAAI,EAAE,CAAC,UAAU,KAAK,WAAW,CAAC,MAAM,EAAE;IAChD,QAAQ,WAAW,EAAE,CAAC;IACtB,QAAQ,YAAY,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO;IACP,KAAK;AACL;IACA,IAAI,SAAS,cAAc,CAAC,GAAG,EAAE;IACjC,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,KAAK;AACL;IACA,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE;IAC5B,MAAM,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,KAAK,YAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;AACL;IACA,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,WAAW,EAAE,CAAC;IACpB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1B,KAAK;AACL;IACA,IAAI,SAAS,WAAW,GAAG;IAC3B,MAAM,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;IACxC,QAAQ,OAAO,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC;IACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,KAAK;AACL;IACA,IAAI,SAAS,aAAa,GAAG;IAC7B,MAAM,IAAI,mBAAmB,EAAE;IAC/B,QAAQ,QAAQ,CAAC,IAAI,CAAC;IACtB,UAAU,IAAI,EAAE,WAAW;IAC3B,SAAS,CAAC,CAAC;IACX,OAAO;IACP,KAAK;AACL;IACA,IAAI,SAAS,cAAc,GAAG;IAC9B,MAAM,IAAI,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;IACxC,QAAQ,OAAO,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,CAAC,CAAC;IACT,MAAM,OAAO,GAAG,CAAC;IACjB,KAAK;AACL;IACA,IAAI,SAAS,IAAI,GAAG;IACpB,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAC5B,KAAK;AACL;IACA,IAAI,SAAS,IAAI,GAAG;IACpB,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,WAAW,EAAE,CAAC;IACpB,KAAK;AACL;IACA,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG,CAAC,CAAC;IACL,CAAC,CAAC;AACF;IACA,SAAS,UAAU,CAAC,KAAK,EAAE;IAC3B,EAAE,IAAI;IACN,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,OAAOtB,YAAM,CAAC;IAClB,MAAM,IAAI,EAAE,KAAK,CAAC,IAAI;IACtB,KAAK,EAAE,IAAI,CAAC,CAAC;IACb,GAAG,CAAC,OAAO,GAAG,EAAE;IAChB,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;IACH,CAAC;AACD;IACA,SAAS,YAAY,CAAC,GAAG,EAAE;IAC3B,EAAE,IAAI,GAAG,YAAY,KAAK,EAAE;IAC5B,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;AACH;IACA,EAAE,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,EAAE,OAAO,GAAG,YAAY,KAAK,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;AACD;IACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;IAClC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;IAClB,IAAI,OAAO,GAAG,CAAC,OAAO,IAAI,wBAAwB,CAAC;IACnD,GAAG;AACH;IACA,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;IAC7B,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;IACjC,GAAG;AACH;IACA,EAAE,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxF;;IC1MA,SAASF,iBAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE;AACjN;AACsC;AACtC;IACA,IACIlC,QAAM,GAAGuC,QAAQ,CAAC,MAAM,CAAC;AAC7B;IACA,IACIrL,KAAG,GAAGsL,KAAS,CAAC,GAAG,CAAC;AACxB;AAC0C;AAC1C;AACmD;AACnD;AACuD;AACvD;AAC2C;AAC3C;AAC+B;AAC/B;AACiC;AACjC;IACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE;IAC5D,EAAE,IAAI,KAAK,GAAG,OAAO,KAAK,KAAK,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC9D,EAAE,OAAO,KAAK,KAAK,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAC7C,CAAC,CAAC;AACF;IACA,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,GAAG;IACnD,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACvF,EAAE,OAAO;IACT,IAAI,SAAS,EAAE,IAAI;IACnB,IAAI,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;IACjE,IAAI,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM;IAC5C,GAAG,CAAC;IACJ,CAAC,CAAC;AACF;IACA,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;IAC5C,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;IACnC,CAAC,CAAC;AACF;IACA,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,KAAK,EAAE;IACtC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;AACF;IACA,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;IAC3C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,GAAG,EAAE;IAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7B,IAAI,OAAO,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC;AACF;IACA,IAAImB,WAAS,GAAG,SAAS,SAAS,CAAC,UAAU,EAAE;IAC/C,EAAE,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC,CAAC;AACF;IACA,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,eAAc,GAAG;IACjB,EAAE,MAAM,EAAE,MAAM;IAChB,EAAE,UAAU,EAAE,SAAS,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE;IACnD,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IACnC,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzF,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACpE,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClG,GAAG;IACH,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,cAAc,KAAK,KAAK,GAAG,UAAU,GAAG,EAAE;IACxE,MAAM,OAAO,GAAG,CAAC;IACjB,KAAK,GAAG,UAAU,GAAG,EAAE;IACvB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC;IACxB,KAAK,CAAC;AACN;IACA,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IAChD,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,MAAM,EAAE,MAAM;IACpB,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAACzM,KAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC;IACA,IAAI,OAAO,IAAI,CAAC,YAAY,EAAE,GAAGyM,WAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACpE,GAAG;IACH,EAAE,WAAW,EAAE,SAAS,WAAW,CAAC,EAAE,EAAE;IACxC,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACtF,IAAI,IAAI,OAAO,GAAG;IAClB,MAAM,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IACrC,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG;IACnB,KAAK,CAAC;AACN;IACA,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC3D,QAAM,CAAC,UAAU,CAAC,EAAE9I,KAAG,CAAC,UAAU,KAAK,EAAE;IACpG,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7D,KAAK,CAAC,CAAC,CAAC;AACR;IACA,IAAI,OAAO,IAAI,CAAC,YAAY,EAAE,GAAGyM,WAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACpE,GAAG;IACH,EAAE,YAAY,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE;IAC3C,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACtF,IAAI,IAAI,OAAO,GAAG;IAClB,MAAM,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG;IACnB,KAAK,CAAC;AACN;IACA,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC3D,QAAM,CAAC,UAAU,CAAC,EAAE9I,KAAG,CAAC,UAAU,KAAK,EAAE;IACpG,MAAM,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,UAAU,GAAG,EAAE;IACvE,QAAQ,OAAO,GAAG,CAAC,GAAG,CAAC;IACvB,OAAO,CAAC,CAAC;IACT,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;IACnC,QAAQ,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACnC,OAAO,CAAC,CAAC;IACT,KAAK,CAAC,CAAC,CAAC;AACR;IACA,IAAI,OAAO,IAAI,CAAC,YAAY,EAAE,GAAGyM,WAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACpE,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;IACxC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,GAAG;IACH,EAAE,iBAAiB,EAAE,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE;IAC9D,IAAI,UAAU,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC3D,GAAG;IACH,EAAE,eAAe,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE;IAC1D,IAAI,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACzD,GAAG;IACH,EAAE,KAAK,EAAE,SAAStB,OAAK,CAAC,QAAQ,EAAE,UAAU,EAAE;IAC9C,IAAI,OAAO,IAAIC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;IAC/C,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;IACtC,MAAM,SAAS,EAAE,CAAC;IAClB,QAAQ,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC;IACvC,OAAO,CAAC;IACR,KAAK,EAAE,OAAO,CAAC,CAAC;IAChB,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;IAC9C,IAAI,IAAI,GAAG,GAAG,SAAS,YAAYA,KAAK,IAAI,SAAS,YAAYsB,WAAW,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC;IACjH,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,IAAI,aAAa,GAAG,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IACzD,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;IACtC,MAAM,SAAS,EAAE,IAAI;IACrB,MAAM,aAAa,EAAE,aAAa;IAClC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChB,GAAG;IACH,EAAE,WAAW,EAAE,SAASC,aAAW,CAAC,UAAU,EAAE;IAChD,IAAI,OAAO,IAAID,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7C,GAAG;IACH,EAAE,WAAW,EAAE,SAAS,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE;IACpD,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACzF;IACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7D;IACA,IAAI,OAAO,IAAI,CAAC,YAAY,EAAE,GAAGD,WAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9D,GAAG;IACH,EAAE,YAAY,EAAE,SAAS,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE;IACtD,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,IAAI,IAAI,UAAU,GAAG,QAAQ,KAAK,QAAQ,CAAC;IAC3C;AACA;IACA,IAAI,IAAI,QAAQ,GAAG,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,IAAI,MAAM,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,iBAAiB,CAAC;IACpE,IAAI,IAAI,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,EAAE,CAAC;IAC7C,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC1C,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO;IACjC,QAAQ,KAAK,GAAG,OAAO,CAAC,KAAK;IAC7B,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAC1B,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,IAAI,IAAI,UAAU,GAAG;IACrB,MAAM,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IACrC,MAAM,GAAG,EAAE,GAAG;IACd,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IACrC,MAAM,KAAK,EAAE,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC;IACpD,MAAM,OAAO,EAAE,OAAO;IACtB,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,GAAG,EAAE,GAAG;IACd,KAAK,CAAC;IACN,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC3D,QAAM,CAAC,UAAU,CAAC,EAAE9I,KAAG,CAAC,OAAO,CAAC,EAAEA,KAAG,CAAC,UAAU,GAAG,EAAE;IACzG,MAAM,IAAI,CAAC,UAAU,EAAE;IACvB,QAAQ,OAAO,GAAG,CAAC;IACnB,OAAO;AACP;AACA;IACA,MAAM,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;AACtC;IACA,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE;IACnC,QAAQ,OAAO,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;IAC5F,UAAU,OAAO,GAAG,CAAC,QAAQ,CAAC;IAC9B,SAAS,CAAC,CAAC;IACX,OAAO;AACP;AACA;IACA,MAAM,IAAI,GAAG,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;IAC3D,MAAM,IAAI,GAAG,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;IACvF,QAAQ,OAAO,GAAG,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,CAAC;IACT,MAAM,OAAOgL,iBAAe,CAAC;IAC7B,QAAQ,aAAa,EAAE,GAAG,CAAC,aAAa;IACxC,QAAQ,OAAO,EAAE,OAAO;IACxB,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnB,KAAK,CAAC,CAAC,CAAC;IACR,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;IACrC,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACzF;IACA,IAAI,IAAI,QAAQ,GAAGA,iBAAe,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAChD;IACA,IAAI,IAAI,IAAI,GAAGE,YAAM,CAAC;IACtB,MAAM,WAAW,EAAE,IAAI;IACvB,MAAM,eAAe,EAAE,IAAI;IAC3B,KAAK,EAAE,OAAO,CAAC,CAAC;IAChB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;IACtC,MAAM,SAAS,EAAE,CAAC,QAAQ,CAAC;IAC3B,KAAK,EAAE,IAAI,CAAC,CAAC;IACb,GAAG;IACH,CAAC;;;;;;;;;;;;;;;;IClND,SAAS,cAAc,CAAC,MAAM,EAAE;IAChC,EAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;AACD;AACAA,gBAAM,CAAC,cAAc,CAAC,SAAS,EAAE;IACjC,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,GAAG;IACH,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;IACrC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE;IACjC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,GAAG;IACH,EAAE,IAAI,EAAE,SAAS,IAAI,GAAG;IACxB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,MAAM,GAAG,EAAE,WAAW;IACtB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAChD,IAAID,UAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,MAAM,MAAM,EAAE,MAAM;IACpB,MAAM,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,MAAM,IAAI,EAAE,IAAI;IAChB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,CAAC,CAAC,CAAC;IACH,kBAAc,GAAG,cAAc;;IC9B/B,SAAS,cAAc,CAAC,MAAM,EAAE;IAChC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;AACD;AACAC,gBAAM,CAAC,cAAc,CAAC,SAAS,EAAE;IACjC,EAAE,IAAI,EAAE,SAAS,IAAI,GAAG;IACxB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,GAAG,EAAE,WAAW;IACtB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE;IAChC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC,KAAK,CAAC,CAAC;IACP,GAAG;IACH,CAAC,CAAC,CAAC;IACH,kBAAc,GAAG,cAAc;;IClB/B,eAAc,GAAG,UAAU,MAAM,EAAE;IACnC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACd;IACA,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;IAC1B,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;IACpC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACvD,CAAC;;ICVD,SAAS0B,gBAAc,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,2BAA2B,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAE;AAC9J;IACA,SAAS,gBAAgB,GAAG,EAAE,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC,CAAC,EAAE;AACjM;IACA,SAAS,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;AACha;IACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE;AACvL;IACA,SAAS,qBAAqB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE;AACjgB;IACA,SAAS,eAAe,CAAC,GAAG,EAAE,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE;AACrE;AACsC;AACtC;IACA,IACI5M,KAAG,GAAGqL,KAAQ,CAAC,GAAG,CAAC;AACvB;IACA,IACIvC,QAAM,GAAGwC,QAAS,CAAC,MAAM,CAAC;AAC9B;AACiD;AACjD;AAC0C;AAC1C;IACA,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;AACD;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B;IACA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;IAC9C,IAAI,UAAU,EAAE,KAAK;IACrB,IAAI,GAAG,EAAE,SAAS,GAAG,GAAG;IACxB;IACA,MAAM,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IAC9G,MAAM,OAAO,QAAQ,CAAC;IACtB,KAAK;IACL,GAAG,CAAC,CAAC;IACL,EAAE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACD;IACA,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE;IACrC,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,CAAC,EAAE;IACvE,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA,EAAE,OAAOJ,YAAM,CAAC;IAChB,IAAI,QAAQ,EAAE,IAAI,CAAC,gBAAgB,KAAK,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI;IACrE,IAAI,WAAW,EAAE,IAAI,CAAC,IAAI;IAC1B,GAAG,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;AACD;AACAA,gBAAM,CAAC,YAAY,CAAC,SAAS,EAAE;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACtF,IAAI,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC5C;IACA,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;AACzC;IACA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAC9B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,KAAK;AACL;IACA,IAAI,IAAI,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClE,IAAI,IAAI,aAAa,GAAG,SAAS,KAAK,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnE,IAAI,IAAI,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG;IACzB,QAAQ,KAAK,GAAG,OAAO,CAAC,KAAK;IAC7B,QAAQ,KAAK,GAAG,OAAO,CAAC,KAAK;IAC7B,QAAQ,WAAW,GAAG,OAAO,CAAC,WAAW;IACzC,QAAQ,UAAU,GAAG,OAAO,CAAC,UAAU;IACvC,QAAQ,QAAQ,GAAG,OAAO,CAAC,QAAQ;IACnC,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAChC,IAAI,IAAI,KAAK,GAAG;IAChB,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,WAAW,EAAE,WAAW;IAC9B,MAAM,QAAQ,EAAE,QAAQ;IACxB,MAAM,IAAI,EAAE,IAAI;IAChB,MAAM,UAAU,EAAE,UAAU;IAC5B,KAAK,CAAC;AACN;IACA,IAAI,IAAI,MAAM,EAAE;IAChB,MAAM,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC,MAAM,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACrC,MAAM,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;IACnC,KAAK;AACL;IACA,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;IACpD,MAAM,GAAG,EAAE,GAAG;IACd,MAAM,MAAM,EAAE,MAAM;IACpB,MAAM,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAChE,MAAM,OAAO,EAAE,OAAO,CAAC,WAAW,GAAG;IACrC,QAAQ,cAAc,EAAE,OAAO,CAAC,WAAW;IAC3C,OAAO,GAAG,EAAE;IACZ,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,IAAI,EAAE,IAAI;IAChB,KAAK,CAAC,CAAC;AACP;IACA,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,IAAI,CAACpC,QAAM,CAAC,UAAU,KAAK,EAAE;IAChF,MAAM,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;IACvC,KAAK,CAAC,EAAE9I,KAAG,CAAC,UAAU,KAAK,EAAE;IAC7B,MAAM,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC;IACjC,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACrC;IACA,IAAI,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAClG,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;AACzB;IACA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACvC,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;IACzB;IACA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;IACvB,KAAK;AACL;IACA,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,GAAG;IACH,EAAE,WAAW,EAAE,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;IAChD,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AAC7B;IACA,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;IAChC,MAAM,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IACjH,KAAK;AACL;IACA,IAAI,IAAI,CAAC,0CAA0C,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAC9D,MAAM,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,EAAE,uDAAuD,CAAC,CAAC,CAAC;IACrH,KAAK;AACL;IACA,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IACjC,QAAQ,UAAU,GAAG4M,gBAAc,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,QAAQ,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;IAC/B,QAAQ,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IAC5B,QAAQ,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B;IACA,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,IAAI,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY;IACxD,QAAQ,SAAS,GAAG,qBAAqB,CAAC,SAAS;IACnD,QAAQ,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAChD,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7C,IAAI,OAAO,+BAA+B,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxJ,GAAG;IACH,CAAC,CAAC,CAAC;IACH,gBAAc,GAAG,YAAY;;IC1K7B,SAAS,WAAW,CAAC,MAAM,EAAE;IAC7B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;AACD;AACA1B,gBAAM,CAAC,WAAW,CAAC,SAAS,EAAE;IAC9B,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE;IAChC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/B,KAAK,CAAC,CAAC;IACP,GAAG;IACH,CAAC,CAAC,CAAC;IACH,eAAc,GAAG,WAAW;;ICX5B,SAAS,UAAU,CAAC,MAAM,EAAE;IAC5B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;AACD;AACAA,gBAAM,CAAC,UAAU,CAAC,SAAS,EAAE;IAC7B,EAAE,iBAAiB,EAAE,SAAS,iBAAiB,GAAG;IAClD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,GAAG,EAAE,iBAAiB;IAC5B,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,GAAG;IAC5B,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,GAAG,EAAE,cAAc;IACzB,MAAM,MAAM,EAAE,MAAM;IACpB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,CAAC,CAAC,CAAC;IACH,cAAc,GAAG,UAAU;;ICrB3B,cAAc,GAAG,SAAS,MAAM,GAAG;IACnC,EAAE,IAAI,WAAW,GAAG,GAAE;IACtB,EAAE,OAAO;IACT,IAAI,SAAS,EAAE,SAAS;IACxB,IAAI,OAAO,EAAE,OAAO;IACpB,GAAG;IACH,EAAE,SAAS,SAAS,CAAC,UAAU,EAAE;IACjC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,EAAC;IAChC,IAAI,OAAO,SAAS,WAAW,GAAG;IAClC,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;IACpB,QAAQ,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAC;IAClC,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,SAAS,OAAO,GAAG;IACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAC;IAC3C,KAAK;IACL,GAAG;IACH;;ICpBA2B,qBAAA,GAAiBC,cAAc;IAC7B,QAAMC,kBAAkB,SAAlBA,eAAkB,CAACC,IAAD,EAAOC,YAAP,EAAiC;IAAA,sCAATC,IAAS;IAATA,UAAS;IAAA;;IACvD,UAAMC,YAAYH,SAAS,SAA3B;;IAEA,QAAI7S,QAAQ8S,YAAZ;IACA,SAAK,IAAI9R,IAAI,CAAb,EAAgBA,IAAI2R,WAAWE,IAAX,EAAiB5O,MAArC,EAA6CjD,GAA7C,EAAkD;IAChD,YAAMiS,UAAUN,WAAWE,IAAX,EAAiB7R,CAAjB,CAAhB;IACAhB,cAAQiT,0BAAQjT,KAAR,SAAkB+S,IAAlB,EAAR;;IAEA,UAAIC,aAAa,CAAChT,KAAlB,EAAyB;IACvB;IACD;IACF;;IAED,WAAOA,KAAP;IACD,GAdD;;IAgBA,SAAO4S,eAAP;IACD,CAlBD;;ICGA,MAAMM,gBAAgB,OAAOC,SAAP,KAAqB,WAArB,GAAmC,KAAnC,GAA2CA,UAAUC,OAAV,KAAsB,aAAvF;;IAEA,MAAM9B,MAAMlH,OAAOiJ,SAAP,CAAiB5C,cAA7B;IACA,MAAM0B,iBAAiB,EAACmB,SAASJ,gBAAgB,KAAhB,GAAwB,MAAlC,EAAvB;;IAEAR,2BAAA,GAAiBa,QAAQ;IACvB,QAAMC,UACJ,OAAOD,IAAP,KAAgB,QAAhB,GACIE,aAAa,EAACC,KAAKH,IAAN,EAAb,EAA0BpB,cAA1B,CADJ,GAEIsB,aAAa,EAAb,EAAiBtB,cAAjB,EAAiCoB,IAAjC,CAHN;;IAKA;IACA,QAAMG,MAAMC,SACVH,QAAQE,GADE,EAEV,EAFU;IAGV,MAHU;IAAA,GAAZ;;IAMA;IACAF,UAAQF,OAAR,GAAkBM,iBAAiBJ,QAAQF,OAAzB,CAAlB;;IAEA;IACA,MAAIE,QAAQK,KAAZ,EAAmB;IACjBH,QAAIG,KAAJ,GAAYJ,aAAa,EAAb,EAAiBC,IAAIG,KAArB,EAA4BC,gBAAgBN,QAAQK,KAAxB,CAA5B,CAAZ;IACD;;IAED;IACAL,UAAQO,MAAR,GACEP,QAAQQ,IAAR,IAAgB,CAACR,QAAQO,MAAzB,GAAkC,MAAlC,GAA2C,CAACP,QAAQO,MAAR,IAAkB,KAAnB,EAA0BE,WAA1B,EAD7C;;IAGA;IACAT,UAAQE,GAAR,GAAcA,IAAInO,QAAJ,CAAa2O,oBAAb,CAAd;;IAEA,SAAOV,OAAP;IACD,CA7BD;;IA+BA,SAASU,oBAAT,CAA8BC,GAA9B,EAAmC;IACjC,QAAMC,QAAQ,EAAd;IACA,OAAK,MAAMrK,GAAX,IAAkBoK,GAAlB,EAAuB;IACrB,QAAI7C,IAAInL,IAAJ,CAASgO,GAAT,EAAcpK,GAAd,CAAJ,EAAwB;IACtBvI,WAAKuI,GAAL,EAAUoK,IAAIpK,GAAJ,CAAV;IACD;IACF;;IAED,SAAOqK,MAAMnQ,MAAN,GAAemQ,MAAMhN,IAAN,CAAW,GAAX,CAAf,GAAiC,EAAxC;;IAEA,WAAS5F,IAAT,CAAcuI,GAAd,EAAmBsK,GAAnB,EAAwB;IACtB,QAAI7I,MAAMwE,OAAN,CAAcqE,GAAd,CAAJ,EAAwB;IACtBA,UAAI/J,OAAJ,CAAYsC,QAAQpL,KAAKuI,GAAL,EAAU6C,IAAV,CAApB;IACD,KAFD,MAEO;IACLwH,YAAM5S,IAAN,CAAW,CAACuI,GAAD,EAAMsK,GAAN,EAAWxO,GAAX,CAAeyO,kBAAf,EAAmClN,IAAnC,CAAwC,GAAxC,CAAX;IACD;IACF;IACF;;IAED,SAASwM,gBAAT,CAA0BW,IAA1B,EAAgC;IAC9B,MAAIA,SAAS,KAAT,IAAkBA,SAAS,CAA/B,EAAkC;IAChC,WAAO,KAAP;IACD;;IAED,MAAIA,KAAKC,OAAL,IAAgBD,KAAKE,MAAzB,EAAiC;IAC/B,WAAOF,IAAP;IACD;;IAED,QAAMG,QAAQtU,OAAOmU,IAAP,CAAd;IACA,MAAII,MAAMD,KAAN,CAAJ,EAAkB;IAChB,WAAOd,iBAAiBzB,eAAemB,OAAhC,CAAP;IACD;;IAED,SAAO,EAACkB,SAASE,KAAV,EAAiBD,QAAQC,KAAzB,EAAP;IACD;;IAED,SAASZ,eAAT,CAAyBK,GAAzB,EAA8B;IAC5B,QAAMS,SAAS,EAAf;IACA,OAAK,MAAM7K,GAAX,IAAkBoK,GAAlB,EAAuB;IACrB,QAAIA,IAAIpK,GAAJ,MAAapI,SAAjB,EAA4B;IAC1BiT,aAAO7K,GAAP,IAAcoK,IAAIpK,GAAJ,CAAd;IACD;IACF;IACD,SAAO6K,MAAP;IACD;;ICnFD,MAAMC,WAAW,eAAjB;;IAEAnC,2BAAA,GAAiBc,WAAW;IAC1B,MAAI,CAACqB,SAASC,IAAT,CAActB,QAAQE,GAAtB,CAAL,EAAiC;IAC/B,UAAM,IAAIqB,KAAJ,CAAW,IAAGvB,QAAQE,GAAI,sBAA1B,CAAN;IACD;IACF,CAJD;;ICFA;IACA,gBAAc,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE;IACvC,EAAE,IAAI,MAAM,GAAG,GAAE;IACjB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;IACrC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAC;IACtB,GAAG,EAAC;IACJ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY;IACjC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC;IAC3C,IAAI,EAAE,GAAG,KAAI;IACb,GAAG,EAAC;IACJ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;IACtC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,EAAC;IACnB,IAAI,EAAE,GAAG,KAAI;IACb,GAAG,EAAC;IACJ;;ICdA;IACA;IACA;AACA;IACA,IAAIsB,GAAC,GAAG,IAAI,CAAC;IACb,IAAIC,GAAC,GAAGD,GAAC,GAAG,EAAE,CAAC;IACf,IAAIE,GAAC,GAAGD,GAAC,GAAG,EAAE,CAAC;IACf,IAAIE,GAAC,GAAGD,GAAC,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAGC,GAAC,GAAG,CAAC,CAAC;IACd,IAAIC,GAAC,GAAGD,GAAC,GAAG,MAAM,CAAC;AACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,QAAc,GAAG,UAAU,GAAG,EAAE,OAAO,EAAE;IACzC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC1B,EAAE,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;IACxB,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3C,IAAI,OAAOzD,OAAK,CAAC,GAAG,CAAC,CAAC;IACtB,GAAG,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACjD,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG2D,SAAO,CAAC,GAAG,CAAC,GAAGC,UAAQ,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG;IACH,EAAE,MAAM,IAAI,KAAK;IACjB,IAAI,uDAAuD;IAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IACzB,GAAG,CAAC;IACJ,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS5D,OAAK,CAAC,GAAG,EAAE;IACpB,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;IACxB,IAAI,OAAO;IACX,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,kIAAkI,CAAC,IAAI;IACrJ,IAAI,GAAG;IACP,GAAG,CAAC;IACJ,EAAE,IAAI,CAAC,KAAK,EAAE;IACd,IAAI,OAAO;IACX,GAAG;IACH,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9C,EAAE,QAAQ,IAAI;IACd,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,IAAI,CAAC;IACd,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG0D,GAAC,CAAC;IACnB,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAGD,GAAC,CAAC;IACnB,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,IAAI,CAAC;IACd,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAGD,GAAC,CAAC;IACnB,IAAI,KAAK,SAAS,CAAC;IACnB,IAAI,KAAK,QAAQ,CAAC;IAClB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAGD,GAAC,CAAC;IACnB,IAAI,KAAK,SAAS,CAAC;IACnB,IAAI,KAAK,QAAQ,CAAC;IAClB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAGD,GAAC,CAAC;IACnB,IAAI,KAAK,cAAc,CAAC;IACxB,IAAI,KAAK,aAAa,CAAC;IACvB,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,IAAI;IACb,MAAM,OAAO,CAAC,CAAC;IACf,IAAI;IACJ,MAAM,OAAO,SAAS,CAAC;IACvB,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAASM,UAAQ,CAAC,EAAE,EAAE;IACtB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,EAAE,IAAI,KAAK,IAAIH,GAAC,EAAE;IAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAGA,GAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,IAAI,KAAK,IAAID,GAAC,EAAE;IAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAGA,GAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,IAAI,KAAK,IAAID,GAAC,EAAE;IAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAGA,GAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,IAAI,KAAK,IAAID,GAAC,EAAE;IAClB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAGA,GAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnB,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAASK,SAAO,CAAC,EAAE,EAAE;IACrB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,EAAE,IAAI,KAAK,IAAIF,GAAC,EAAE;IAClB,IAAI,OAAOI,QAAM,CAAC,EAAE,EAAE,KAAK,EAAEJ,GAAC,EAAE,KAAK,CAAC,CAAC;IACvC,GAAG;IACH,EAAE,IAAI,KAAK,IAAID,GAAC,EAAE;IAClB,IAAI,OAAOK,QAAM,CAAC,EAAE,EAAE,KAAK,EAAEL,GAAC,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG;IACH,EAAE,IAAI,KAAK,IAAID,GAAC,EAAE;IAClB,IAAI,OAAOM,QAAM,CAAC,EAAE,EAAE,KAAK,EAAEN,GAAC,EAAE,QAAQ,CAAC,CAAC;IAC1C,GAAG;IACH,EAAE,IAAI,KAAK,IAAID,GAAC,EAAE;IAClB,IAAI,OAAOO,QAAM,CAAC,EAAE,EAAE,KAAK,EAAEP,GAAC,EAAE,QAAQ,CAAC,CAAC;IAC1C,GAAG;IACH,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpB,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,SAASO,QAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE;IACpC,EAAE,IAAI,QAAQ,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAClC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;IACjE;;IC/JA;IACA;IACA;IACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC;IAClC,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC;IACpC,EAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;IAChC,EAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;IAChC,EAAE,WAAW,CAAC,QAAQ,GAAG3E,IAAa,CAAC;IACvC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;IAC1C,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,GAAG,CAAC,CAAC;IACL;IACA;IACA;AACA;IACA,EAAE,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;IAC7B;IACA;IACA;AACA;IACA,EAAE,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;IACzB,EAAE,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;IACzB;IACA;IACA;IACA;IACA;AACA;IACA,EAAE,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;IAC9B;IACA;IACA;IACA;IACA;IACA;AACA;IACA,EAAE,SAAS,WAAW,CAAC,SAAS,EAAE;IAClC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACjB;IACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,IAAI,CAAC,CAAC;IAChB,KAAK;AACL;IACA,IAAI,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1E,GAAG;AACH;IACA,EAAE,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IACxC;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,EAAE,SAAS,WAAW,CAAC,SAAS,EAAE;IAClC,IAAI,IAAI,QAAQ,CAAC;AACjB;IACA,IAAI,SAAS,KAAK,GAAG;IACrB;IACA,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IAC1B,QAAQ,OAAO;IACf,OAAO;AACP;IACA,MAAM,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;IAC/F,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO;AACP;IACA,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC;AACvB;IACA,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,EAAE,GAAG,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACrB,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C;IACA,MAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IACvC;IACA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO;AACP;AACA;IACA,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;IACpB,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE;IAC1E;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;IAC5B,UAAU,OAAO,KAAK,CAAC;IACvB,SAAS;AACT;IACA,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACvD;IACA,QAAQ,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;IAC7C,UAAU,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,UAAU,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5C;IACA,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChC,UAAU,KAAK,EAAE,CAAC;IAClB,SAAS;AACT;IACA,QAAQ,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC;AACT;IACA,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC;IAC9C,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,KAAK;AACL;IACA,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IAC9C,IAAI,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B;IACA;AACA;IACA,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;IAChD,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK;AACL;IACA,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;AACH;IACA,EAAE,SAAS,OAAO,GAAG;IACrB,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACpD;IACA,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;IACtB,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,IAAI,CAAC;IAClB,KAAK;AACL;IACA,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;AACH;IACA,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE;IACxC,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1G,GAAG;IACH;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,EAAE,SAAS,MAAM,CAAC,UAAU,EAAE;IAC9B,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;IAC3B,IAAI,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,CAAC;IACV,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnF,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACrB;IACA,QAAQ,SAAS;IACjB,OAAO;AACP;IACA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClD;IACA,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IACjC,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7E,OAAO,MAAM;IACb,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO;IACP,KAAK;AACL;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,MAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,KAAK;IACL,GAAG;IACH;IACA;IACA;IACA;IACA;AACA;AACA;IACA,EAAE,SAAS,OAAO,GAAG;IACrB,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,GAAG;IACH;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE;IACzB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IACvC,MAAM,OAAO,IAAI,CAAC;IAClB,KAAK;AACL;IACA,IAAI,IAAI,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,CAAC;AACZ;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IAC9D,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC3C,QAAQ,OAAO,KAAK,CAAC;IACrB,OAAO;IACP,KAAK;AACL;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IAC9D,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC3C,QAAQ,OAAO,IAAI,CAAC;IACpB,OAAO;IACP,KAAK;AACL;IACA,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;IACH;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE;IACvB,IAAI,IAAI,GAAG,YAAY,KAAK,EAAE;IAC9B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC;IACtC,KAAK;AACL;IACA,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;AACH;IACA,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,EAAE,OAAO,WAAW,CAAC;IACrB,CAAC;AACD;IACA,UAAc,GAAG,KAAK;;;ACtPtB;IACA,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,EAAE,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/V;IACA;AACA;IACA;IACA;IACA;IACA,WAAW,GAAG,GAAG,CAAC;IAClB,kBAAkB,GAAG,UAAU,CAAC;IAChC,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,GAAG,IAAI,CAAC;IACpB,iBAAiB,GAAG,SAAS,CAAC;IAC9B,eAAe,GAAG,YAAY,EAAE,CAAC;IACjC;IACA;IACA;AACA;IACA,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACt1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,SAAS,GAAG;IACrB;IACA;IACA;IACA,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IACxH,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;AACA;IACA,EAAE,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;IACnI,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;IACH;AACA;AACA;IACA,EAAE,OAAO,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB;IACzJ,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IACjI;IACA,EAAE,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE;IACvJ,EAAE,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC3H,CAAC;IACD;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjL;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACvB,IAAI,OAAO;IACX,GAAG;AACH;IACA,EAAE,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IACjC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzC;IACA;AACA;IACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAChB,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAChB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,EAAE;IAClD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB,MAAM,OAAO;IACb,KAAK;AACL;IACA,IAAI,KAAK,EAAE,CAAC;AACZ;IACA,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB;IACA;IACA,MAAM,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK;IACL,GAAG,CAAC,CAAC;IACL,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,GAAG,GAAG;IACf,EAAE,IAAI,QAAQ,CAAC;AACf;IACA;IACA;IACA,EAAE,OAAO,CAAC,OAAO,OAAO,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9J,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,IAAI,CAAC,UAAU,EAAE;IAC1B,EAAE,IAAI;IACN,IAAI,IAAI,UAAU,EAAE;IACpB,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,KAAK,MAAM;IACX,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK;IACL,GAAG,CAAC,OAAO,KAAK,EAAE;IAClB;IACA,GAAG;IACH,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,IAAI,GAAG;IAChB,EAAE,IAAI,CAAC,CAAC;AACR;IACA,EAAE,IAAI;IACN,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE;IACpB;IACA;AACA;AACA;IACA,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,IAAI,OAAO,EAAE;IAChE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B,GAAG;AACH;IACA,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,YAAY,GAAG;IACxB,EAAE,IAAI;IACN;IACA;IACA,IAAI,OAAO,YAAY,CAAC;IACxB,GAAG,CAAC,OAAO,KAAK,EAAE;IAClB;IACA,GAAG;IACH,CAAC;AACD;IACA,cAAc,GAAGA,MAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3C;IACA;IACA;AACA;IACA,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;IAC5B,EAAE,IAAI;IACN,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,GAAG,CAAC,OAAO,KAAK,EAAE;IAClB,IAAI,OAAO,8BAA8B,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1D,GAAG;IACH,CAAC;;;;;;;;;;ICjLD,WAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;IACjC,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,aAAa,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,aAAa,CAAC,CAAC;IAC1E,CAAC;;ICHD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACxB;IACA,IAAI,UAAU,CAAC;IACf,IAAI,OAAO,CAAC,UAAU,CAAC;IACvB,CAAC,OAAO,CAAC,WAAW,CAAC;IACrB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;IACzB,CAAC,UAAU,GAAG,KAAK,CAAC;IACpB,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAC3B,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClB,CAAC,OAAO,CAAC,YAAY,CAAC;IACtB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;IAC1B,CAAC,UAAU,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,aAAa,IAAI,GAAG,EAAE;IAC1B,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;AACD;IACA,SAAS,cAAc,CAAC,KAAK,EAAE;IAC/B,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;IAClB,EAAE,OAAO,KAAK,CAAC;IACf,EAAE;AACF;IACA,CAAC,OAAO;IACR,EAAE,KAAK;IACP,EAAE,QAAQ,EAAE,IAAI;IAChB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpB,EAAE,CAAC;IACH,CAAC;AACD;IACA,SAAS,aAAa,CAAC,MAAM,EAAE;IAC/B,CAAC,IAAI,UAAU,KAAK,KAAK,EAAE;IAC3B,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC;IACzB,EAAE,OAAO,CAAC,YAAY,CAAC;IACvB,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE;IAC9B,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;IAC3B,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,KAAK,IAAI,EAAE;IACrD,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC;IACA,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;IACnC;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,MAAM,SAAS,GAAG4E,sBAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,EAAE;IACF,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IAC7B,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;IAChC,IAAI;IACJ,GAAG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,GAAG;AACH;IACA,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE;IAClB,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;IAC/G,GAAG,OAAO,CAAC,CAAC;IACZ,GAAG;AACH;IACA,EAAE,OAAO,GAAG,CAAC;IACb,EAAE;AACF;IACA,CAAC,IAAI,kBAAkB,IAAI,GAAG,EAAE;IAChC,EAAE,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5E,EAAE;AACF;IACA,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,WAAW,EAAE;IACpC,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,cAAc,IAAI,GAAG,EAAE;IAC5B,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/E;IACA,EAAE,QAAQ,GAAG,CAAC,YAAY;IAC1B,GAAG,KAAK,WAAW;IACnB,IAAI,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,GAAG,KAAK,gBAAgB;IACxB,IAAI,OAAO,CAAC,CAAC;IACb;IACA,GAAG;IACH,EAAE;AACF;IACA,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;IACtC,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,6DAA6D,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;IACnF,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,WAAW,IAAI,GAAG,EAAE;IACzB,EAAE,OAAO,CAAC,CAAC;IACX,EAAE;AACF;IACA,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;IAC1B,EAAE,OAAO,GAAG,CAAC;IACb,EAAE;AACF;IACA,CAAC,OAAO,GAAG,CAAC;IACZ,CAAC;AACD;IACA,SAAS,eAAe,CAAC,MAAM,EAAE;IACjC,CAAC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACD;IACA,mBAAc,GAAG;IACjB,CAAC,aAAa,EAAE,eAAe;IAC/B,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;IACxC,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;IACxC,CAAC;;;;;;ACjID;IACA;IACA;IACA;AACyB;AACzB;AAC2B;IAC3B;IACA;IACA;AACA;AACA;IACA,YAAY,GAAG,IAAI,CAAC;IACpB,WAAW,GAAG,GAAG,CAAC;IAClB,kBAAkB,GAAG,UAAU,CAAC;IAChC,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,GAAG,IAAI,CAAC;IACpB,iBAAiB,GAAG,SAAS,CAAC;IAC9B;IACA;IACA;AACA;IACA,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC;IACA,IAAI;IACJ;IACA;IACA,EAAE,IAAI,aAAa,GAAG5E,eAAyB,CAAC;AAChD;IACA,EAAE,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,EAAE,KAAK,IAAI,CAAC,EAAE;IAC3E,IAAI,cAAc,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClX,GAAG;IACH,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AAClB;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;IACrE,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE;IAC9B;IACA,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE;IACjF,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,GAAG,CAAC,CAAC;AACL;IACA,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B;IACA,EAAE,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC5C,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,GAAG,MAAM,IAAI,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACrD,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,GAAG,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE;IAC7B,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,GAAG,MAAM;IACT,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,GAAG;AACH;IACA,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAClB,EAAE,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP;IACA;IACA;AACA;IACA,SAAS,SAAS,GAAG;IACrB,EAAE,OAAO,QAAQ,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG6E,uBAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,IAAI,SAAS,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACjF,GAAG,MAAM;IACT,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,GAAG;IACH,CAAC;AACD;IACA,SAAS,OAAO,GAAG;IACnB,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;IACpC,IAAI,OAAO,EAAE,CAAC;IACd,GAAG;AACH;IACA,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;IACxC,CAAC;IACD;IACA;IACA;AACA;AACA;IACA,SAAS,GAAG,GAAG;IACf,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC3D,wBAAI,CAAC,MAAM,CAAC,KAAK,CAACA,wBAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,IAAI,CAAC,UAAU,EAAE;IAC1B,EAAE,IAAI,UAAU,EAAE;IAClB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC;IACnC,GAAG,MAAM;IACT;IACA;IACA,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B,GAAG;IACH,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,IAAI,GAAG;IAChB,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA,SAAS,IAAI,CAAC,KAAK,EAAE;IACrB,EAAE,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,GAAG;IACH,CAAC;AACD;IACA,cAAc,GAAG4D,MAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3C;IACA;IACA;AACA;IACA,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;IAC5B,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3C,EAAE,OAAO5D,wBAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;IAC1C,KAAK,KAAK,CAAC,IAAI,CAAC;IAChB,KAAK,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC;IACF;IACA;IACA;AACA;AACA;IACA,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;IAC5B,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3C,EAAE,OAAOA,wBAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;;;;;;;;;;;;AC9KD;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;IACjH,EAAE,cAAc,GAAGlB,SAAuB,CAAC;IAC3C,CAAC,MAAM;IACP,EAAE,cAAc,GAAG8E,MAAoB,CAAC;IACxC;;;ICVA,IAAIC,OAAK,CAAC;AACV;IACA,aAAc,GAAG,YAAY;IAC7B,EAAE,IAAI,CAACA,OAAK,EAAE;IACd,IAAI,IAAI;IACR;IACA,MAAMA,OAAK,GAAG/E,KAAgB,CAAC,kBAAkB,CAAC,CAAC;IACnD,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,SAAS;IAC3B,IAAI,IAAI,OAAO+E,OAAK,KAAK,UAAU,EAAE;IACrC,MAAMA,OAAK,GAAG,YAAY,SAAS,CAAC;IACpC,KAAK;IACL,GAAG;IACH,EAAEA,OAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;;ICbD,IAAI,GAAG,GAAGjC,uBAAG,CAAC,GAAG,CAAC;AACS;AACE;IAC7B,IAAIkC,UAAQ,GAAGhF,0BAAiB,CAAC,QAAQ,CAAC;AACX;AACA;AAC/B;IACA;IACA,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3E,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;IAChC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IACrD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrD,GAAG,CAAC;IACJ,CAAC,CAAC,CAAC;AACH;IACA;IACA,IAAI,gBAAgB,GAAG,eAAe;IACtC,EAAE,4BAA4B;IAC9B,EAAE,EAAE;IACJ,CAAC,CAAC;IACF,IAAI,qBAAqB,GAAG,eAAe;IAC3C,EAAE,2BAA2B;IAC7B,EAAE,sCAAsC;IACxC,CAAC,CAAC;IACF,IAAI,0BAA0B,GAAG,eAAe;IAChD,EAAE,iCAAiC;IACnC,EAAE,8CAA8C;IAChD,CAAC,CAAC;IACF,IAAI,kBAAkB,GAAG,eAAe;IACxC,EAAE,4BAA4B;IAC9B,EAAE,iBAAiB;IACnB,CAAC,CAAC;AACF;IACA;IACA,SAAS,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE;IACxD;IACA,EAAEgF,UAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,EAAE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC9B,EAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAChC;IACA;IACA,EAAE,IAAI,gBAAgB,EAAE;IACxB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC1C,GAAG;AACH;IACA;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;IAClB,EAAE,IAAI,CAAC,iBAAiB,GAAG,UAAU,QAAQ,EAAE;IAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,GAAG,CAAC;AACJ;IACA;IACA,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAACA,UAAQ,CAAC,SAAS,CAAC,CAAC;AAClE;IACA,mBAAmB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IAClD,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC;AACF;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC1E;IACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;IACpB,IAAI,MAAM,IAAI,kBAAkB,EAAE,CAAC;IACnC,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE;IACrF,IAAI,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACzE,GAAG;IACH,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IACtC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACzB,IAAI,IAAI,QAAQ,EAAE;IAClB,MAAM,QAAQ,EAAE,CAAC;IACjB,KAAK;IACL,IAAI,OAAO;IACX,GAAG;IACH;IACA,EAAE,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;IAC5E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC;IAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,GAAG;IACH;IACA,OAAO;IACP,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,GAAG;IACH,CAAC,CAAC;AACF;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACxE;IACA,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;IAClC,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC3B,GAAG;IACH,OAAO,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IAC3C,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,IAAI,EAAE;IACb,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,GAAG;IACH,OAAO;IACP,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY;IAC3C,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,GAAG;IACH,CAAC,CAAC;AACF;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,KAAK,EAAE;IACjE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACtC,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;AACF;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE;IAC7D,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;AACF;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;IACtE,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB;IACA;IACA,EAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,GAAG;AACH;IACA;IACA,EAAE,SAAS,UAAU,CAAC,MAAM,EAAE;IAC9B,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;IACvB,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK;IACL,IAAI,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,YAAY;IAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,MAAM,UAAU,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,CAAC;IACd,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7B,GAAG;AACH;IACA;IACA,EAAE,SAAS,UAAU,GAAG;IACxB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;IACvB,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,QAAQ,EAAE;IAClB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/C,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACtB,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChE,KAAK;IACL,GAAG;AACH;IACA;IACA,EAAE,IAAI,QAAQ,EAAE;IAChB,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjC,GAAG;AACH;IACA;IACA,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;IACnB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,GAAG;IACH,OAAO;IACP,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpD,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACtC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACpC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACjC;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA,EAAE,cAAc,EAAE,WAAW;IAC7B,EAAE,YAAY,EAAE,oBAAoB;IACpC,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;IAC5B,EAAE,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;IAC1D,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC;IACJ,CAAC,CAAC,CAAC;AACH;IACA;IACA,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;IAChE,EAAE,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE;IACjE,IAAI,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE;IAC/D,GAAG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACH;IACA,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,OAAO,EAAE;IACpE;IACA,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IACzB,GAAG;AACH;IACA;IACA;IACA;IACA,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE;IACpB;IACA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IAC3B,MAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,KAAK;IACL,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;IACzC,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,IAAI,SAAS,GAAG,CAAC,EAAE;IACvB,MAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,KAAK;IACL,SAAS;IACT,MAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzD,KAAK;IACL,GAAG;IACH,CAAC,CAAC;AACF;AACA;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;IAC5D;IACA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACxC,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/D,EAAE,IAAI,CAAC,cAAc,EAAE;IACvB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC1E,IAAI,OAAO;IACX,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;IAC5B,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvD,GAAG;AACH;IACA;IACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe;IACpC,QAAQ,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtE,EAAE,IAAI,CAAC,WAAW,GAAGlC,uBAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C;IACA;IACA,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAC/B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;IACxB;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC3C,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE;IAC/B;IACA;IACA,MAAM,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE;IAC5C;IACA;IACA,QAAQ,IAAI,KAAK,EAAE;IACnB,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,SAAS;IACT;IACA,aAAa,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE;IACrC,UAAU,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACpC;IACA,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IACjC,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnE,WAAW;IACX,SAAS;IACT;IACA,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE;IAC9B,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,SAAS;IACT,OAAO;IACP,KAAK,EAAE,EAAE;IACT,GAAG;IACH,CAAC,CAAC;AACF;IACA;IACA,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,QAAQ,EAAE;IACrE;IACA,EAAE,IAAI,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;IACpC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACzB,MAAM,GAAG,EAAE,IAAI,CAAC,WAAW;IAC3B,MAAM,OAAO,EAAE,QAAQ,CAAC,OAAO;IAC/B,MAAM,UAAU,EAAE,UAAU;IAC5B,KAAK,CAAC,CAAC;IACP,GAAG;AACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,KAAK;IACzD,MAAM,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE;IAC7C;IACA,IAAI,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvC;IACA,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;AACvB;IACA;IACA;IACA,IAAI,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;IAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO;IACb,KAAK;AACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM;IACrF;IACA;IACA;IACA;IACA,QAAQ,CAAC,UAAU,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;IAC9E,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;IACnC;IACA,MAAM,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IACpC,MAAM,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjE,KAAK;AACL;IACA;IACA,IAAI,IAAI,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAClF,MAAMA,uBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;AAC3C;IACA;IACA,IAAI,IAAI,WAAW,GAAGA,uBAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAIiC,SAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,gBAAgB,GAAGjC,uBAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACnD;IACA;IACA,IAAI,IAAI,gBAAgB,CAAC,QAAQ,KAAK,gBAAgB,EAAE;IACxD,MAAM,qBAAqB,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvE,KAAK;AACL;IACA;IACA,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,UAAU,EAAE;IAC5D,MAAM,IAAI,eAAe,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1D,MAAM,IAAI;IACV,QAAQ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAChF,OAAO;IACP,MAAM,OAAO,GAAG,EAAE;IAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChC,QAAQ,OAAO;IACf,OAAO;IACP,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK;AACL;IACA;IACA,IAAI,IAAI;IACR,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7B,KAAK;IACL,IAAI,OAAO,KAAK,EAAE;IAClB,MAAM,IAAI,KAAK,GAAG,IAAI,gBAAgB,CAAC,6BAA6B,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACtF,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,KAAK;IACL,GAAG;IACH,OAAO;IACP;IACA,IAAI,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,IAAI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IACzC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC;IACA;IACA,IAAI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,GAAG;IACH,CAAC,CAAC;AACF;IACA;IACA,SAAS,IAAI,CAAC,SAAS,EAAE;IACzB;IACA,EAAE,IAAI,OAAO,GAAG;IAChB,IAAI,YAAY,EAAE,EAAE;IACpB,IAAI,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,GAAG,CAAC;AACJ;IACA;IACA,EAAE,IAAI,eAAe,GAAG,EAAE,CAAC;IAC3B,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;IACnD,IAAI,IAAI,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;IAChC,IAAI,IAAI,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,IAAI,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC1E;IACA;IACA,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC/C;IACA,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IACrC,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,IAAI;IACZ,UAAU,KAAK,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB;IACA,UAAU,KAAK,GAAGA,uBAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,SAAS;IACT,OAAO;IACP,WAAW,IAAI,GAAG,KAAK,KAAK,YAAY,GAAG,CAAC,EAAE;IAC9C,QAAQ,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO;IACP,WAAW;IACX,QAAQ,QAAQ,GAAG,OAAO,CAAC;IAC3B,QAAQ,OAAO,GAAG,KAAK,CAAC;IACxB,QAAQ,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvC,OAAO;IACP,MAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;IACzC,QAAQ,QAAQ,GAAG,OAAO,CAAC;IAC3B,QAAQ,OAAO,GAAG,IAAI,CAAC;IACvB,OAAO;AACP;IACA;IACA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,QAAQ,YAAY,EAAE,OAAO,CAAC,YAAY;IAC1C,QAAQ,aAAa,EAAE,OAAO,CAAC,aAAa;IAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzB,MAAM,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;AAChD;IACA,MAAMmC,0BAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACpE,MAAMF,SAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,KAAK;AACL;IACA;IACA,IAAI,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC3C,MAAM,IAAI,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7E,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,OAAO,cAAc,CAAC;IAC5B,KAAK;AACL;IACA;IACA,IAAI,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE;IAC7C,MAAM,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvF,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/E,KAAK,CAAC,CAAC;IACP,GAAG,CAAC,CAAC;IACL,EAAE,OAAO,OAAO,CAAC;IACjB,CAAC;AACD;IACA;IACA,SAASG,MAAI,GAAG,eAAe;AAC/B;IACA;IACA,SAAS,YAAY,CAAC,SAAS,EAAE;IACjC,EAAE,IAAI,OAAO,GAAG;IAChB,IAAI,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAChC,IAAI,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;IAChD;IACA,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,CAAC,QAAQ;IACxB,IAAI,IAAI,EAAE,SAAS,CAAC,IAAI;IACxB,IAAI,MAAM,EAAE,SAAS,CAAC,MAAM;IAC5B,IAAI,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAChC,IAAI,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;IAC/C,IAAI,IAAI,EAAE,SAAS,CAAC,IAAI;IACxB,GAAG,CAAC;IACJ,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;IAC7B,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,GAAG;IACH,EAAE,OAAO,OAAO,CAAC;IACjB,CAAC;AACD;IACA,SAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE;IAC/C,EAAE,IAAI,SAAS,CAAC;IAChB,EAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;IAC9B,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,SAAS,CAAC;IACnB,CAAC;AACD;IACA,SAAS,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,SAAS,WAAW,CAAC,OAAO,EAAE;IAChC,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,cAAc,CAAC;IAC7C,GAAG;IACH,EAAE,WAAW,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;IACtC,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;IAClD,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC;IACtD,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;IACpC,EAAE,OAAO,WAAW,CAAC;IACrB,CAAC;AACD;IACA,SAAS,YAAY,CAAC,OAAO,EAAE;IAC/B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,GAAG;IACH,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAEA,MAAI,CAAC,CAAC;IAC5B,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;AACD;IACA;IACA,mBAAc,GAAG,IAAI,CAAC,EAAE,IAAI,EAAEjE,wBAAI,EAAE,KAAK,EAAED,yBAAK,EAAE,CAAC,CAAC;IACpD,UAAmB,GAAG,IAAI;;;ICvhB1B,YAAc,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE;IACtC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE;IACvB,EAAE,OAAO,GAAG,CAAC;IACb,EAAE;AACF;IACA,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,IAAI,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,EAAE,CAAC;AAClD;IACA,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;IACnC,EAAE,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,cAAc,GAAG;IAC1D,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IACf,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,iCAAiC,GAAG,IAAI,CAAC,CAAC;IAC/D,GAAG,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC;IACxB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,EAAE;AACF;IACA;IACA;IACA,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE;IAC1C;IACA,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;IAClD,GAAG,OAAO,EAAE,CAAC;IACb,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,CAAC;AACJ;IACA,CAAC,SAAS,KAAK,GAAG;IAClB,EAAE,IAAI,GAAG,CAAC,YAAY,EAAE;IACxB,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,GAAG;IACH,EAAE;AACF;IACA,CAAC,SAAS,OAAO,GAAG;IACpB,EAAE,KAAK,EAAE,CAAC;AACV;IACA,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;IACnC;IACA;IACA,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,oBAAoB,GAAG;IACjE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;IAChB,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC;IACN,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;;;ACtDD;IACA,IAAI,QAAQ,GAAG,cAAc,GAAG,UAAU,MAAM,EAAE;IAClD,CAAC,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;IAC3F,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,QAAQ,GAAG,UAAU,MAAM,EAAE;IACtC,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC;IAC1I,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,QAAQ,GAAG,UAAU,MAAM,EAAE;IACtC,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC;IACzI,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE;IACpC,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IACvC,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC;IACzH,CAAC;;;;ACnBD;IACA,IAAI,OAAO,OAAO,KAAK,WAAW;IAClC,IAAI,CAAC,OAAO,CAAC,OAAO;IACpB,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IACxC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACpF,EAAE,cAAc,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC,MAAM;IACP,EAAE,cAAc,GAAG,QAAO;IAC1B,CAAC;AACD;IACA,SAAS,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IACxC,EAAE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;IAChC,IAAI,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAClE,GAAG;IACH,EAAE,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;IAC7B,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACd,EAAE,QAAQ,GAAG;IACb,EAAE,KAAK,CAAC,CAAC;IACT,EAAE,KAAK,CAAC;IACR,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChC,EAAE,KAAK,CAAC;IACR,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,YAAY,GAAG;IACpD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,KAAK,CAAC,CAAC;IACP,EAAE,KAAK,CAAC;IACR,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,YAAY,GAAG;IACpD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,KAAK,CAAC,CAAC;IACP,EAAE,KAAK,CAAC;IACR,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,cAAc,GAAG;IACtD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,KAAK,CAAC,CAAC;IACP,EAAE;IACF,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;IAC5B,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,KAAK;IACL,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,SAAS,GAAG;IACjD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,CAAC;IACP,GAAG;IACH;;;;IC3CA,IAAI,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AAC3B;IACA,WAAc,GAAG,KAAK,CAAC,OAAO,IAAI,UAAU,GAAG,EAAE;IACjD,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC;IAChD,CAAC;;ICJD,UAAc,GAAGhB,0BAAiB;;;ICAlC;AAC8B;IAC9B,IAAI,MAAM,GAAGmF,0BAAM,CAAC,OAAM;AAC1B;IACA;IACA,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;IAC9B,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;IACvB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAC;IACvB,GAAG;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE;IACjF,EAAE,cAAc,GAAGA,2BAAM;IACzB,CAAC,MAAM;IACP;IACA,EAAE,SAAS,CAACA,0BAAM,EAAE,OAAO,EAAC;IAC5B,EAAE,cAAc,GAAG,WAAU;IAC7B,CAAC;AACD;IACA,SAAS,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;IACpD,EAAE,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC;IAC9C,CAAC;AACD;IACA;IACA,SAAS,CAAC,MAAM,EAAE,UAAU,EAAC;AAC7B;IACA,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;IAC3D,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IAC/B,IAAI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;IACxD,GAAG;IACH,EAAE,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC;IAC9C,EAAC;AACD;IACA,UAAU,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnD,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAChC,IAAI,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;IACpD,GAAG;IACH,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,EAAC;IACxB,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;IAC1B,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;IACtC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC;IAC9B,KAAK,MAAM;IACX,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAC;IACpB,KAAK;IACL,GAAG,MAAM;IACT,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC;IACf,GAAG;IACH,EAAE,OAAO,GAAG;IACZ,EAAC;AACD;IACA,UAAU,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;IACzC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAChC,IAAI,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;IACpD,GAAG;IACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,EAAC;AACD;IACA,UAAU,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;IAC7C,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAChC,IAAI,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;IACpD,GAAG;IACH,EAAE,OAAOA,0BAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IAChC;;;;IC7DA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;AACA;IACA,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;IACrB,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,GAAG;IACH,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;IAClD,CAAC;IACD,aAAe,GAAG,OAAO,CAAC;AAC1B;IACA,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,EAAE,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC;IAClC,CAAC;IACD,eAAiB,GAAG,SAAS,CAAC;AAC9B;IACA,SAAS,MAAM,CAAC,GAAG,EAAE;IACrB,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IACD,YAAc,GAAG,MAAM,CAAC;AACxB;IACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;IAChC,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IACD,uBAAyB,GAAG,iBAAiB,CAAC;AAC9C;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,EAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;IACjC,CAAC;IACD,cAAgB,GAAG,QAAQ,CAAC;AAC5B;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,EAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;IACjC,CAAC;IACD,cAAgB,GAAG,QAAQ,CAAC;AAC5B;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,EAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;IACjC,CAAC;IACD,cAAgB,GAAG,QAAQ,CAAC;AAC5B;IACA,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,iBAAmB,GAAG,WAAW,CAAC;AAClC;IACA,SAAS,QAAQ,CAAC,EAAE,EAAE;IACtB,EAAE,OAAO,cAAc,CAAC,EAAE,CAAC,KAAK,iBAAiB,CAAC;IAClD,CAAC;IACD,cAAgB,GAAG,QAAQ,CAAC;AAC5B;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,EAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;IACjD,CAAC;IACD,cAAgB,GAAG,QAAQ,CAAC;AAC5B;IACA,SAAS,MAAM,CAAC,CAAC,EAAE;IACnB,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC;IAC/C,CAAC;IACD,YAAc,GAAG,MAAM,CAAC;AACxB;IACA,SAAS,OAAO,CAAC,CAAC,EAAE;IACpB,EAAE,QAAQ,cAAc,CAAC,CAAC,CAAC,KAAK,gBAAgB,IAAI,CAAC,YAAY,KAAK,EAAE;IACxE,CAAC;IACD,aAAe,GAAG,OAAO,CAAC;AAC1B;IACA,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,EAAE,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;IACnC,CAAC;IACD,gBAAkB,GAAG,UAAU,CAAC;AAChC;IACA,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,OAAO,GAAG,KAAK,IAAI;IACrB,SAAS,OAAO,GAAG,KAAK,SAAS;IACjC,SAAS,OAAO,GAAG,KAAK,QAAQ;IAChC,SAAS,OAAO,GAAG,KAAK,QAAQ;IAChC,SAAS,OAAO,GAAG,KAAK,QAAQ;IAChC,SAAS,OAAO,GAAG,KAAK,WAAW,CAAC;IACpC,CAAC;IACD,iBAAmB,GAAG,WAAW,CAAC;AAClC;IACA,cAAgB,GAAGnF,0BAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD;IACA,SAAS,cAAc,CAAC,CAAC,EAAE;IAC3B,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;;;IC1GA,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;IACzC;IACA,EAAE,cAAc,GAAG,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE;IACtD,IAAI,IAAI,SAAS,EAAE;IACnB,MAAM,IAAI,CAAC,MAAM,GAAG,UAAS;IAC7B,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE;IAC1D,QAAQ,WAAW,EAAE;IACrB,UAAU,KAAK,EAAE,IAAI;IACrB,UAAU,UAAU,EAAE,KAAK;IAC3B,UAAU,QAAQ,EAAE,IAAI;IACxB,UAAU,YAAY,EAAE,IAAI;IAC5B,SAAS;IACT,OAAO,EAAC;IACR,KAAK;IACL,GAAG,CAAC;IACJ,CAAC,MAAM;IACP;IACA,EAAE,cAAc,GAAG,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE;IACtD,IAAI,IAAI,SAAS,EAAE;IACnB,MAAM,IAAI,CAAC,MAAM,GAAG,UAAS;IAC7B,MAAM,IAAI,QAAQ,GAAG,YAAY,GAAE;IACnC,MAAM,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,UAAS;IAC9C,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,GAAE;IACrC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,KAAI;IACvC,KAAK;IACL,IAAG;IACH;;;;IC1BA,IAAI;IACJ,EAAE,IAAI,IAAI,GAAGA,wBAAe,CAAC;IAC7B;IACA,EAAE,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,MAAM,EAAE,CAAC;IACpD,EAAE,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC,CAAC,OAAO,CAAC,EAAE;IACZ;IACA,EAAE,cAAc,GAAG8E,gBAAgC,CAAC;IACpD;;;;ACPA;IACA,SAAS,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,YAAY,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE;AACzJ;IACA,IAAI,MAAM,GAAG9E,UAAsB,CAAC,MAAM,CAAC;AAChB;AAC3B;IACA,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;IACzC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;AACD;IACA,cAAc,GAAG,YAAY;IAC7B,EAAE,SAAS,UAAU,GAAG;IACxB,IAAI,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACtC;IACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,GAAG;AACH;IACA,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,EAAE;IAC/C,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACvE,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,GAAG,CAAC;AACJ;IACA,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,CAAC,EAAE;IACrD,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,GAAG,CAAC;AACJ;IACA,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,GAAG;IAChD,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;IAClC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,IAAI,OAAO,GAAG,CAAC;IACf,GAAG,CAAC;AACJ;IACA,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,GAAG;IAChD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,GAAG,CAAC;AACJ;IACA,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,EAAE;IAC/C,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACvB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACxB,KAAK,OAAO,GAAG,CAAC;IAChB,GAAG,CAAC;AACJ;IACA,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,CAAC,EAAE;IACnD,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjD,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,CAAC,EAAE;IACd,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACjB,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,GAAG,CAAC;AACJ;IACA,EAAE,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,CAAC;AACJ;IACA,IAAIkB,wBAAI,IAAIA,wBAAI,CAAC,OAAO,IAAIA,wBAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IACjD,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAACA,wBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY;IAC9D,IAAI,IAAI,GAAG,GAAGA,wBAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7C,GAAG,CAAC;IACJ;;;IC5EA;AACA;AAC0C;IAC1C;AACA;IACA;IACA,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;IAC1B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB;IACA,EAAE,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IAC/E,EAAE,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/E;IACA,EAAE,IAAI,iBAAiB,IAAI,iBAAiB,EAAE;IAC9C,IAAI,IAAI,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;IACnF,MAAMkE,kBAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA;AACA;IACA,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3B,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;IACzC,GAAG;AACH;IACA;IACA,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3B,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;IACzC,GAAG;AACH;IACA,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,UAAU,GAAG,EAAE;IAC5C,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;IACpB,MAAMA,kBAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE;IAChC,QAAQ,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;IACjD,OAAO;IACP,KAAK,MAAM,IAAI,EAAE,EAAE;IACnB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,KAAK;IACL,GAAG,CAAC,CAAC;AACL;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;IACA,SAAS,SAAS,GAAG;IACrB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3B,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IACxC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;IAC3C,GAAG;AACH;IACA,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3B,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzC,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7C,GAAG;IACH,CAAC;AACD;IACA,SAAS,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;IAChC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;AACD;IACA,aAAc,GAAG;IACjB,EAAE,OAAO,EAAE,OAAO;IAClB,EAAE,SAAS,EAAE,SAAS;IACtB,CAAC;;ICxED;IACA;IACA;AACA;IACA,UAAc,GAAGpF,wBAAe,CAAC,SAAS;;;;ICsB1C;AACA;AAC0C;IAC1C;AACA;IACA,oBAAc,GAAG,QAAQ,CAAC;AAS1B;IACA;IACA;IACA,SAAS,aAAa,CAAC,KAAK,EAAE;IAC9B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB;IACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY;IAC5B,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,GAAG,CAAC;IACJ,CAAC;IACD;AACA;IACA;IACA,IAAI,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAGoF,kBAAG,CAAC,QAAQ,CAAC;IAChI;AACA;IACA;IACA,IAAIC,QAAM,CAAC;IACX;AACA;IACA,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;AACvC;IACA;IACA,IAAInE,MAAI,GAAG,MAAM,CAAC,MAAM,CAAClB,MAAuB,CAAC,CAAC;AAClDkB,UAAI,CAAC,QAAQ,GAAG4D,UAAmB,CAAC;IACpC;AACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,EAAE,SAAS,EAAEQ,MAAyB;IACtC,CAAC,CAAC;IACF;AACA;IACA;AACkD;IAClD;AACA;IACA;AACA;IACA,IAAIC,QAAM,GAAGC,UAAsB,CAAC,MAAM,CAAC;IAC3C,IAAIC,eAAa,GAAG9E,cAAM,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;IACxD,SAAS+E,qBAAmB,CAAC,KAAK,EAAE;IACpC,EAAE,OAAOH,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,SAASI,eAAa,CAAC,GAAG,EAAE;IAC5B,EAAE,OAAOJ,QAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,YAAYE,eAAa,CAAC;IAC9D,CAAC;AACD;IACA;AACA;AACwD;AACxD;AACAvE,UAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE0E,MAAM,CAAC,CAAC;AAChC;IACA,SAAS,GAAG,GAAG,EAAE;AACjB;IACA,SAAS,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IACxC,EAAEP,QAAM,GAAGA,QAAM,IAAIQ,UAA2B,CAAC;AACjD;IACA,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,QAAQ,GAAG,MAAM,YAAYR,QAAM,CAAC;AAC1C;IACA;IACA;IACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AACzC;IACA,EAAE,IAAI,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAClF;IACA;IACA;IACA;IACA,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAClC,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAClD,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD;IACA,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,IAAI,QAAQ,KAAK,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AAChL;IACA;IACA,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtD;IACA;IACA,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B;IACA;IACA,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB;IACA,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB;IACA,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB;IACA,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB;IACA;IACA,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB;IACA;IACA;IACA;IACA,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;IACjD,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC;AACjC;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC;AAC3D;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB;IACA;IACA,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB;IACA;IACA,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC;IACA;IACA,EAAE,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,EAAE;IAC/B,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC;AACJ;IACA;IACA,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB;IACA;IACA,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpB;IACA,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAClC;IACA;IACA;IACA,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACrB;IACA;IACA;IACA,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B;IACA;IACA,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B;IACA;IACA,EAAE,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;AAChC;IACA;IACA;IACA,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;AACD;IACA,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,GAAG;IACzD,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;IACrC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;IACf,EAAE,OAAO,OAAO,EAAE;IAClB,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACF;IACA,CAAC,YAAY;IACb,EAAE,IAAI;IACN,IAAI,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE;IAC7D,MAAM,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,YAAY;IAC9C,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,OAAO,EAAE,oEAAoE,GAAG,UAAU,EAAE,SAAS,CAAC;IACtG,KAAK,CAAC,CAAC;IACP,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;IAChB,CAAC,GAAG,CAAC;AACL;IACA;IACA;IACA,IAAI,eAAe,CAAC;IACpB,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE;IACxH,EAAE,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE;IACtD,IAAI,KAAK,EAAE,UAAU,MAAM,EAAE;IAC7B,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,CAAC;AAC1C;IACA,MAAM,OAAO,MAAM,IAAI,MAAM,CAAC,cAAc,YAAY,aAAa,CAAC;IACtE,KAAK;IACL,GAAG,CAAC,CAAC;IACL,CAAC,MAAM;IACP,EAAE,eAAe,GAAG,UAAU,MAAM,EAAE;IACtC,IAAI,OAAO,MAAM,YAAY,IAAI,CAAC;IAClC,GAAG,CAAC;IACJ,CAAC;AACD;IACA,SAAS,QAAQ,CAAC,OAAO,EAAE;IAC3B,EAAEA,QAAM,GAAGA,QAAM,IAAIQ,UAA2B,CAAC;AACjD;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,YAAYR,QAAM,CAAC,EAAE;IAC1E,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,GAAG;AACH;IACA,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzD;IACA;IACA,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB;IACA,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;AACzE;IACA,IAAI,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5E;IACA,IAAI,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;AAC/E;IACA,IAAI,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACzE,GAAG;AACH;IACA,EAAEO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACD;IACA;IACA,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;IACtC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACF;IACA,SAAS,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE;IACnC,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACxC;IACA,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3B,EAAER,kBAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9C,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;IACnB,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AACjB;IACA,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;IACtB,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC9D,GAAG,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACpF,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC1D,GAAG;IACH,EAAE,IAAI,EAAE,EAAE;IACV,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAIA,kBAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,GAAG;IACH,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;IACA,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC;IAClB,EAAE,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,UAAU,IAAIO,eAAa,CAAC,KAAK,CAAC,CAAC;AACxD;IACA,EAAE,IAAI,KAAK,IAAI,CAACJ,QAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;IACxC,IAAI,KAAK,GAAGG,qBAAmB,CAAC,KAAK,CAAC,CAAC;IACvC,GAAG;AACH;IACA,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IACtC,IAAI,EAAE,GAAG,QAAQ,CAAC;IAClB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG;AACH;IACA,EAAE,IAAI,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;AACtF;IACA,EAAE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC;AACzC;IACA,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE;IACjG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IACtB,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjE,GAAG;AACH;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;IACtC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AAClC;IACA,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;IACxC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AAClC;IACA,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;IACpB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;AACnB;IACA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzI,GAAG;IACH,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,SAAS,CAAC,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,QAAQ,EAAE;IAC9E;IACA,EAAE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACtE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAChN,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,QAAQ,CAAC;IACjD,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7C,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IACvF,IAAI,KAAK,GAAGH,QAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzC,GAAG;IACH,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;IACA,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,EAAE;IACnE;IACA;IACA;IACA,EAAE,UAAU,EAAE,KAAK;IACnB,EAAE,GAAG,EAAE,YAAY;IACnB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC7C,GAAG;IACH,CAAC,CAAC,CAAC;AACH;IACA;IACA;IACA;IACA,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,IAAI,CAAC,KAAK,EAAE;IACd,IAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,KAAK,KAAK,QAAQ,EAAE;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC;IACvB,KAAK;IACL,GAAG;IACH,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AAChD;IACA,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACtB;IACA,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;IAC/C;IACA,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC;IACA,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;IACrC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACzC,IAAI,KAAK,CAAC,mBAAmB,GAAG;IAChC,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,QAAQ,EAAE,QAAQ;IACxB,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,QAAQ,EAAE,EAAE;IAClB,MAAM,IAAI,EAAE,IAAI;IAChB,KAAK,CAAC;IACN,IAAI,IAAI,IAAI,EAAE;IACd,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAC5C,KAAK,MAAM;IACX,MAAM,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACxD,KAAK;IACL,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC;IACpC,GAAG,MAAM;IACT,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5D,GAAG;AACH;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;IACvB,EAAE,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACrB,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,EAAE,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtG,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACrB,CAAC;AACD;IACA,SAAS,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;IACnD,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC;AACpB;IACA,EAAE,IAAI,IAAI,EAAE;IACZ;IACA;IACA,IAAIH,kBAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB;IACA;IACA,IAAIA,kBAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7B,GAAG,MAAM;IACT;IACA;IACA,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7B;IACA;IACA,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,GAAG;IACH,CAAC;AACD;IACA,SAAS,kBAAkB,CAAC,KAAK,EAAE;IACnC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;IACjC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,CAAC;AACD;IACA,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE;IAC7B,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;IACpC,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AACzB;IACA,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC5B;IACA,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK;IACzD;IACA,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACrC;IACA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,EAAE;IACxF,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,KAAK;AACL;IACA,IAAI,IAAI,IAAI,EAAE;IACd;IACA,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D;IACA,KAAK,MAAM;IACX,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9C,KAAK;IACL,GAAG;IACH,CAAC;AACD;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjD,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,EAAE,EAAE,EAAE,CAAC;IACP,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE;IACrC,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE;IAC7C,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,GAAG;IACH,CAAC;AACD;IACA;IACA,SAAS,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;IACpC,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAChC,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;AACpC;IACA,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;IAC7C;IACA,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,oBAAoB,CAAC;IACvC,IAAI,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB;IACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC;IAC1B,IAAI,OAAO,KAAK,EAAE;IAClB,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;IACzB,MAAM,KAAK,IAAI,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AACnC;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1E;IACA;IACA;IACA,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IACtB,IAAI,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACrC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;IACrB,MAAM,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7C,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,KAAK,MAAM;IACX,MAAM,KAAK,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1D,KAAK;IACL,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACnC,GAAG,MAAM;IACT;IACA,IAAI,OAAO,KAAK,EAAE;IAClB,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,MAAM,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACpC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AACpD;IACA,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;IACzB,MAAM,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACnC;IACA;IACA;IACA;IACA,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;IACzB,QAAQ,MAAM;IACd,OAAO;IACP,KAAK;AACL;IACA,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACzD,GAAG;AACH;IACA,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IAChC,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACjC,CAAC;AACD;IACA,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3D,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;AACF;IACA,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAClC;IACA,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxD,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AAClC;IACA,EAAE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;IACnC,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG,MAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC;IAClB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG;AACH;IACA,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzE;IACA;IACA,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;IACpB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC;AACF;IACA,SAAS,UAAU,CAAC,KAAK,EAAE;IAC3B,EAAE,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IACnH,CAAC;IACD,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;IAClC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;IAC/B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IACtB,IAAI,IAAI,GAAG,EAAE;IACb,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChC,KAAK;IACL,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,GAAG,CAAC,CAAC;IACL,CAAC;IACD,SAASU,WAAS,CAAC,MAAM,EAAE,KAAK,EAAE;IAClC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IAChD,IAAI,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;IAC7C,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IACxB,MAAM,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAC/B,MAAMV,kBAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,KAAK,MAAM;IACX,MAAM,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAC/B,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,KAAK;IACL,GAAG;IACH,CAAC;AACD;IACA,SAAS,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;IACpC,EAAE,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,EAAE,IAAI,IAAI,EAAE;IACZ,IAAIU,WAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE;IAC/B,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5B,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,KAAK;IACL,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;IACA,SAAS,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACxC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7B,EAAE,IAAI,EAAE,EAAE;IACV,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAEV,kBAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxE,GAAG;IACH,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACrB,EAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;AACD;IACA,SAAS,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;IAC7C,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,EAAE,OAAO,KAAK,EAAE;IAChB,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC5B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;IACvB,GAAG;IACH,EAAE,IAAI,KAAK,CAAC,kBAAkB,EAAE;IAChC,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,OAAO,CAAC;IAC5C,GAAG,MAAM;IACT,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC;IACvC,GAAG;IACH,CAAC;AACD;IACA,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE;IACvD,EAAE,GAAG,EAAE,YAAY;IACnB,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;IAC3C,MAAM,OAAO,KAAK,CAAC;IACnB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IACzC,GAAG;IACH,EAAE,GAAG,EAAE,UAAU,KAAK,EAAE;IACxB;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC9B,MAAM,OAAO;IACb,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,GAAG;IACH,CAAC,CAAC,CAAC;AACH;IACA,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAGW,SAAW,CAAC,OAAO,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAGA,SAAW,CAAC,SAAS,CAAC;IACtD,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE;IACjD,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACV,CAAC;;;;IClpBD;AACA;AAC0C;IAC1C;AACA;IACA;IACA,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,UAAU,GAAG,EAAE;IAC/C,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IAChB,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;IACvB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,GAAG,OAAO,IAAI,CAAC;IACf,CAAC,CAAC;IACF;AACA;IACA,kBAAc,GAAGV,QAAM,CAAC;AACxB;IACA;IACA,IAAInE,MAAI,GAAG,MAAM,CAAC,MAAM,CAAClB,MAAuB,CAAC,CAAC;AAClDkB,UAAI,CAAC,QAAQ,GAAG4D,UAAmB,CAAC;IACpC;AACA;AAC6C;AACA;AAC7C;AACA5D,UAAI,CAAC,QAAQ,CAACmE,QAAM,EAAEW,UAAQ,CAAC,CAAC;AAChC;IACA;IACA;IACA,EAAE,IAAI,IAAI,GAAG,UAAU,CAAChB,gBAAQ,CAAC,SAAS,CAAC,CAAC;IAC5C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,CAACK,QAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAEA,QAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAGL,gBAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzF,GAAG;IACH,CAAC;AACD;IACA,SAASK,QAAM,CAAC,OAAO,EAAE;IACzB,EAAE,IAAI,EAAE,IAAI,YAAYA,QAAM,CAAC,EAAE,OAAO,IAAIA,QAAM,CAAC,OAAO,CAAC,CAAC;AAC5D;IACA,EAAEW,UAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,EAAEhB,gBAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B;IACA,EAAE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnE;IACA,EAAE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnE;IACA,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,EAAE,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC7E;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;AACD;IACA,MAAM,CAAC,cAAc,CAACK,QAAM,CAAC,SAAS,EAAE,uBAAuB,EAAE;IACjE;IACA;IACA;IACA,EAAE,UAAU,EAAE,KAAK;IACnB,EAAE,GAAG,EAAE,YAAY;IACnB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC7C,GAAG;IACH,CAAC,CAAC,CAAC;AACH;IACA;IACA,SAAS,KAAK,GAAG;IACjB;IACA;IACA,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO;AAC9D;IACA;IACA;IACA,EAAED,kBAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;AACD;IACA,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;AACD;IACA,MAAM,CAAC,cAAc,CAACC,QAAM,CAAC,SAAS,EAAE,WAAW,EAAE;IACrD,EAAE,GAAG,EAAE,YAAY;IACnB,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;IAChF,MAAM,OAAO,KAAK,CAAC;IACnB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IAC1E,GAAG;IACH,EAAE,GAAG,EAAE,UAAU,KAAK,EAAE;IACxB;IACA;IACA,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;IAChF,MAAM,OAAO;IACb,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,GAAG;IACH,CAAC,CAAC,CAAC;AACH;AACAA,YAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE;IAC/C,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb;IACA,EAAED,kBAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;;IC3GD;AACA;IACA,IAAIG,QAAM,GAAGvF,UAAsB,CAAC,MAAM,CAAC;IAC3C;AACA;IACA,IAAI,UAAU,GAAGuF,QAAM,CAAC,UAAU,IAAI,UAAU,QAAQ,EAAE;IAC1D,EAAE,QAAQ,GAAG,EAAE,GAAG,QAAQ,CAAC;IAC3B,EAAE,QAAQ,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;IAC5C,IAAI,KAAK,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,SAAS,CAAC,KAAK,UAAU,CAAC,KAAK,KAAK;IACnJ,MAAM,OAAO,IAAI,CAAC;IAClB,IAAI;IACJ,MAAM,OAAO,KAAK,CAAC;IACnB,GAAG;IACH,CAAC,CAAC;AACF;IACA,SAAS,kBAAkB,CAAC,GAAG,EAAE;IACjC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,MAAM,CAAC;IAC1B,EAAE,IAAI,OAAO,CAAC;IACd,EAAE,OAAO,IAAI,EAAE;IACf,IAAI,QAAQ,GAAG;IACf,MAAM,KAAK,MAAM,CAAC;IAClB,MAAM,KAAK,OAAO;IAClB,QAAQ,OAAO,MAAM,CAAC;IACtB,MAAM,KAAK,MAAM,CAAC;IAClB,MAAM,KAAK,OAAO,CAAC;IACnB,MAAM,KAAK,SAAS,CAAC;IACrB,MAAM,KAAK,UAAU;IACrB,QAAQ,OAAO,SAAS,CAAC;IACzB,MAAM,KAAK,QAAQ,CAAC;IACpB,MAAM,KAAK,QAAQ;IACnB,QAAQ,OAAO,QAAQ,CAAC;IACxB,MAAM,KAAK,QAAQ,CAAC;IACpB,MAAM,KAAK,OAAO,CAAC;IACnB,MAAM,KAAK,KAAK;IAChB,QAAQ,OAAO,GAAG,CAAC;IACnB,MAAM;IACN,QAAQ,IAAI,OAAO,EAAE,OAAO;IAC5B,QAAQ,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,CAAC;IACvC,QAAQ,OAAO,GAAG,IAAI,CAAC;IACvB,KAAK;IACL,GAAG;IACH,CACA;IACA;IACA;IACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;IAChC,EAAE,IAAI,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,KAAKA,QAAM,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC;IACtI,EAAE,OAAO,IAAI,IAAI,GAAG,CAAC;IACrB,CAAC;AACD;IACA;IACA;IACA;IACA,mBAAqB,GAAGU,eAAa,CAAC;IACtC,SAASA,eAAa,CAAC,QAAQ,EAAE;IACjC,EAAE,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,QAAQ,IAAI,CAAC,QAAQ;IACvB,IAAI,KAAK,SAAS;IAClB,MAAM,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAC5B,MAAM,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,MAAM,MAAM;IACZ,IAAI,KAAK,MAAM;IACf,MAAM,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,MAAM,MAAM;IACZ,IAAI,KAAK,QAAQ;IACjB,MAAM,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IAC7B,MAAM,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,MAAM,MAAM;IACZ,IAAI;IACJ,MAAM,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;IAC/B,MAAM,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IAC3B,MAAM,OAAO;IACb,GAAG;IACH,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,EAAE,IAAI,CAAC,QAAQ,GAAGV,QAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;AACD;AACAU,mBAAa,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE;IAC/C,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClC,EAAE,IAAI,CAAC,CAAC;IACR,EAAE,IAAI,CAAC,CAAC;IACR,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;IACrB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,GAAG,MAAM;IACT,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,GAAG;IACH,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3E,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC;AACF;AACAA,mBAAa,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;AACtC;IACA;AACAA,mBAAa,CAAC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxC;IACA;AACAA,mBAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;IAClD,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;IACnC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9E,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE,GAAG;IACH,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzE,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC;IAC9B,CAAC,CAAC;AACF;IACA;IACA;IACA,SAAS,aAAa,CAAC,IAAI,EAAE;IAC7B,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/I,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;IAC3C,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtB,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC;IACd,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC;IACd,GAAG;IACH,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE;IAChB,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;IACvD,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,GAAG;IACH,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;IAC3C,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IAChC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,IAAI,OAAO,QAAQ,CAAC;IACpB,GAAG;IACH,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IAClC,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,QAAQ,CAAC;IACtB,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;IAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,QAAQ,CAAC;IACxB,OAAO;IACP,KAAK;IACL,GAAG;IACH,CAAC;AACD;IACA;IACA,SAAS,YAAY,CAAC,GAAG,EAAE;IAC3B,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;IACzC,EAAE,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAM,CAAC,CAAC;IAC5C,EAAE,IAAI,CAAC,KAAK,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;IACnC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE,GAAG;IACH,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC;IAC9B,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE;IAC1B,EAAE,IAAI,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;AACD;IACA;IACA;IACA,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACnD,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;IACzC,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE;IAC3B,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAClC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,EAAE;IACX,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IACtC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO;IACP,KAAK;IACL,IAAI,OAAO,CAAC,CAAC;IACb,GAAG;IACH,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;AACD;IACA;IACA;IACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACnD,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;IACrB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7C,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,GAAG;IACH,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;IACA,SAAS,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE;IAC5B,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChD,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;IACf,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,GAAG,MAAM;IACT,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,GAAG;IACH,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;AACD;IACA,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACnD,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvF,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;IACA;IACA,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACD;IACA,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAClD;;;;;;IChRA;AACA;AAC0C;IAC1C;AACA;IACA,oBAAc,GAAGD,UAAQ,CAAC;AAC1B;IACA;AACiC;IACjC;AACA;IACA;IACA,IAAI,MAAM,CAAC;IACX;AACA;AACAA,cAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;AACvC;IACA;AACShG,8BAAiB,CAAC,aAAa;AACxC;IACA,IAAI,eAAe,GAAG,UAAU,OAAO,EAAE,IAAI,EAAE;IAC/C,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC,CAAC;IACF;AACA;IACA;AACkD;IAClD;AACA;IACA;AACA;IACA,IAAIuF,QAAM,GAAGT,UAAsB,CAAC,MAAM,CAAC;IAC3C,IAAI,aAAa,GAAGnE,cAAM,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;IACxD,SAAS,mBAAmB,CAAC,KAAK,EAAE;IACpC,EAAE,OAAO4E,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,SAAS,aAAa,CAAC,GAAG,EAAE;IAC5B,EAAE,OAAOA,QAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,aAAa,CAAC;IAC9D,CAAC;AACD;IACA;AACA;IACA;IACA,IAAIrE,MAAI,GAAG,MAAM,CAAC,MAAM,CAACoE,MAAuB,CAAC,CAAC;AAClDpE,UAAI,CAAC,QAAQ,GAAGsE,UAAmB,CAAC;IACpC;AACA;IACA;AACgC;IAChC,IAAIT,OAAK,GAAG,KAAK,CAAC,CAAC;IACnB,IAAImB,wBAAS,IAAIA,wBAAS,CAAC,QAAQ,EAAE;IACrC,EAAEnB,OAAK,GAAGmB,wBAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,MAAM;IACP,EAAEnB,OAAK,GAAG,YAAY,EAAE,CAAC;IACzB,CAAC;IACD;AACA;AAC0D;AACF;IACxD,IAAI,aAAa,CAAC;AAClB;AACA7D,UAAI,CAAC,QAAQ,CAAC8E,UAAQ,EAAEJ,MAAM,CAAC,CAAC;AAChC;IACA,IAAI,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpE;IACA,SAAS,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7C;IACA;IACA,EAAE,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/F;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAIxG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjN,CAAC;AACD;IACA,SAAS,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IACxC,EAAE,MAAM,GAAG,MAAM,IAAIyG,UAA2B,CAAC;AACjD;IACA,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B;IACA;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,QAAQ,GAAG,MAAM,YAAY,MAAM,CAAC;AAC1C;IACA;IACA;IACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AACzC;IACA,EAAE,IAAI,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAClF;IACA;IACA;IACA,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAClC,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAClD,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD;IACA,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,IAAI,QAAQ,KAAK,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AAChL;IACA;IACA,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtD;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IACjC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB;IACA;IACA;IACA,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,EAAE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,EAAE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC/B;IACA;IACA,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC;AAC3D;IACA;IACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB;IACA;IACA,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B;IACA,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE;IACxB,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,GAAGM,cAA0B,CAAC,aAAa,CAAC;IACjF,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,GAAG;IACH,CAAC;AACD;IACA,SAASH,UAAQ,CAAC,OAAO,EAAE;IAC3B,EAAE,MAAM,GAAG,MAAM,IAAIH,UAA2B,CAAC;AACjD;IACA,EAAE,IAAI,EAAE,IAAI,YAAYG,UAAQ,CAAC,EAAE,OAAO,IAAIA,UAAQ,CAAC,OAAO,CAAC,CAAC;AAChE;IACA,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzD;IACA;IACA,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB;IACA,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;AACtE;IACA,IAAI,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/E,GAAG;AACH;IACA,EAAEJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACD;IACA,MAAM,CAAC,cAAc,CAACI,UAAQ,CAAC,SAAS,EAAE,WAAW,EAAE;IACvD,EAAE,GAAG,EAAE,YAAY;IACnB,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;IAC3C,MAAM,OAAO,KAAK,CAAC;IACnB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IACzC,GAAG;IACH,EAAE,GAAG,EAAE,UAAU,KAAK,EAAE;IACxB;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC9B,MAAM,OAAO;IACb,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,GAAG;IACH,CAAC,CAAC,CAAC;AACH;AACAA,cAAQ,CAAC,SAAS,CAAC,OAAO,GAAGD,SAAW,CAAC,OAAO,CAAC;AACjDC,cAAQ,CAAC,SAAS,CAAC,UAAU,GAAGD,SAAW,CAAC,SAAS,CAAC;AACtDC,cAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE;IACjD,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;AACAA,cAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;IACrD,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,EAAE,IAAI,cAAc,CAAC;AACrB;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACzB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IACnC,MAAM,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC;IACnD,MAAM,IAAI,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;IACvC,QAAQ,KAAK,GAAGT,QAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,QAAQ,QAAQ,GAAG,EAAE,CAAC;IACtB,OAAO;IACP,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,KAAK;IACL,GAAG,MAAM;IACT,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,GAAG;AACH;IACA,EAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC,CAAC;AACF;IACA;AACAS,cAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;IAC9C,EAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC;AACF;IACA,SAAS,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE;IAC/E,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;IACpC,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;IACtB,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC1B,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,GAAG,MAAM;IACT,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,IAAI,EAAE,EAAE;IACZ,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9D,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAKT,QAAM,CAAC,SAAS,EAAE;IAC/G,QAAQ,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO;AACP;IACA,MAAM,IAAI,UAAU,EAAE;IACtB,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5I,OAAO,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;IAC9B,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACnE,OAAO,MAAM;IACb,QAAQ,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxC,UAAU,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9H,SAAS,MAAM;IACf,UAAU,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,OAAO;IACP,KAAK,MAAM,IAAI,CAAC,UAAU,EAAE;IAC5B,MAAM,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC5B,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACD;IACA,SAAS,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACpD,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,GAAG,MAAM;IACT;IACA,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACxD,IAAI,IAAI,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9E;IACA,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjD,GAAG;IACH,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;AACD;IACA,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE;IACpC,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACtG,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC1D,GAAG;IACH,EAAE,OAAO,EAAE,CAAC;IACZ,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,YAAY,CAAC,KAAK,EAAE;IAC7B,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAC1G,CAAC;AACD;AACAS,cAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IAC1C,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,KAAK,CAAC;IAC/C,CAAC,CAAC;AACF;IACA;AACAA,cAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE;IAChD,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAGG,cAA0B,CAAC,aAAa,CAAC;IAC/E,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IACvD,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrC,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,SAAS,uBAAuB,CAAC,CAAC,EAAE;IACpC,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE;IACpB,IAAI,CAAC,GAAG,OAAO,CAAC;IAChB,GAAG,MAAM;IACT;IACA;IACA,IAAI,CAAC,EAAE,CAAC;IACR,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC;IACR,GAAG;IACH,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;IACA;IACA;IACA,SAAS,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE;IACjC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5D,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;IACf;IACA,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,KAAK,CAAC,MAAM,CAAC;IACrG,GAAG;IACH;IACA,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACpB,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,IAAI,OAAO,CAAC,CAAC;IACb,GAAG;IACH,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;AACD;IACA;AACAH,cAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,EAAE;IACvC,EAAEjB,OAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7C;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;IAC7F,IAAIA,OAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACrF,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;IAC9B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAClC,EAAEA,OAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACjC;IACA;IACA,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE;IACpE,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAIA,OAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAChD,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAIA,OAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACtC,GAAG,MAAM,IAAI,MAAM,EAAE;IACrB,IAAIA,OAAK,CAAC,SAAS,CAAC,CAAC;IACrB,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACzB,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACtB;IACA,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACtD;IACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB;IACA;IACA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,GAAG;AACH;IACA,EAAE,IAAI,GAAG,CAAC;IACV,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC;AACtD;IACA,EAAE,IAAI,GAAG,KAAK,IAAI,EAAE;IACpB,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,GAAG,MAAM;IACT,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACtB,GAAG;AACH;IACA,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IAC1B;IACA;IACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAChD;IACA;IACA,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACtD,GAAG;AACH;IACA,EAAE,IAAI,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACF;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;IACnC,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;IAC1B,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;IACrB,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;IAC/B,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1D,KAAK;IACL,GAAG;IACH,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACrB;IACA;IACA,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;IACpC,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7B,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;IAC9B,IAAIA,OAAK,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IACjC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAEK,kBAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;IACnF,GAAG;IACH,CAAC;AACD;IACA,SAAS,aAAa,CAAC,MAAM,EAAE;IAC/B,EAAEL,OAAK,CAAC,eAAe,CAAC,CAAC;IACzB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE;IACtC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IAC1B,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,IAAIK,kBAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,GAAG;IACH,CAAC;AACD;IACA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;IACvC,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACzB,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE;IACjG,IAAIL,OAAK,CAAC,sBAAsB,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM;IAC5B;IACA,MAAM,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,GAAG;IACH,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC5B,CAAC;AACD;IACA;IACA;IACA;IACA;AACAiB,cAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;IACxC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACF;AACAA,cAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE;IACpD,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC;IACjB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AAClC;IACA,EAAE,QAAQ,KAAK,CAAC,UAAU;IAC1B,IAAI,KAAK,CAAC;IACV,MAAM,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACzB,MAAM,MAAM;IACZ,IAAI,KAAK,CAAC;IACV,MAAM,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM;IACZ,IAAI;IACJ,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,GAAG;IACH,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IACxB,EAAEjB,OAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC7D;IACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,KAAK,KAAK,KAAK,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;AAC1G;IACA,EAAE,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,EAAE,IAAI,KAAK,CAAC,UAAU,EAAEK,kBAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxE;IACA,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,EAAE,SAAS,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE;IAC1C,IAAIL,OAAK,CAAC,UAAU,CAAC,CAAC;IACtB,IAAI,IAAI,QAAQ,KAAK,GAAG,EAAE;IAC1B,MAAM,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,KAAK,EAAE;IACzD,QAAQ,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;IACrC,QAAQ,OAAO,EAAE,CAAC;IAClB,OAAO;IACP,KAAK;IACL,GAAG;AACH;IACA,EAAE,SAAS,KAAK,GAAG;IACnB,IAAIA,OAAK,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,GAAG;AACH;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5B;IACA,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;IACxB,EAAE,SAAS,OAAO,GAAG;IACrB,IAAIA,OAAK,CAAC,SAAS,CAAC,CAAC;IACrB;IACA,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC;IACA,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IAC/F,GAAG;AACH;IACA;IACA;IACA;IACA;IACA,EAAE,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAClC,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,EAAE,SAAS,MAAM,CAAC,KAAK,EAAE;IACzB,IAAIA,OAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA;IACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;IACvI,QAAQA,OAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5E,QAAQ,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACxC,QAAQ,mBAAmB,GAAG,IAAI,CAAC;IACnC,OAAO;IACP,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE;IACvB,IAAIA,OAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,MAAM,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrE,GAAG;AACH;IACA;IACA,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C;IACA;IACA,EAAE,SAAS,OAAO,GAAG;IACrB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;IACb,GAAG;IACH,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,SAAS,QAAQ,GAAG;IACtB,IAAIA,OAAK,CAAC,UAAU,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;IACb,GAAG;IACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChC;IACA,EAAE,SAAS,MAAM,GAAG;IACpB,IAAIA,OAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB;IACA;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACtB,IAAIA,OAAK,CAAC,aAAa,CAAC,CAAC;IACzB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;IACjB,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,OAAO,YAAY;IACrB,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC;IACnC,IAAIA,OAAK,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IAC7C,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE;IAChE,MAAM,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK;IACL,GAAG,CAAC;IACJ,CAAC;AACD;AACAiB,cAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE;IAC5C,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,EAAE,IAAI,UAAU,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACzC;IACA;IACA,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;IAC9B;IACA,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC;AAClD;IACA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC;IACA;IACA,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC1B,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;AACA;IACA,EAAE,IAAI,CAAC,IAAI,EAAE;IACb;IACA,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAC/B,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAC1B;IACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IAClC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,KAAK,OAAO,IAAI,CAAC;IACjB,GAAG;AACH;IACA;IACA,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AAChC;IACA,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/B,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IACxB,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AACxC;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;AACAA,cAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;IAC1C,EAAE,IAAI,GAAG,GAAGJ,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD;IACA,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE;IACrB;IACA,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7D,GAAG,MAAM,IAAI,EAAE,KAAK,UAAU,EAAE;IAChC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IACpC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;IACvD,MAAM,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1D,MAAM,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IACpC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IAC1B,QAAQR,kBAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;IAC/B,QAAQ,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO;IACP,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACFY,cAAQ,CAAC,SAAS,CAAC,WAAW,GAAGA,UAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;AACvD;IACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;IAChC,EAAEjB,OAAK,CAAC,0BAA0B,CAAC,CAAC;IACpC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;AACD;IACA;IACA;AACAiB,cAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;IACxC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACtB,IAAIjB,OAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;IAC/B,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;IAC9B,IAAI,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IACjC,IAAIK,kBAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,GAAG;IACH,CAAC;AACD;IACA,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;IAChC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACtB,IAAIL,OAAK,CAAC,eAAe,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,GAAG;AACH;IACA,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IAChC,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACvB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;AACD;AACAiB,cAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACvC,EAAEjB,OAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9D,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;IAC7C,IAAIA,OAAK,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,GAAG;IACH,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA,SAAS,IAAI,CAAC,MAAM,EAAE;IACtB,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;IACpC,EAAEA,OAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,EAAE,OAAO,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE;IACpD,CAAC;AACD;IACA;IACA;IACA;AACAiB,cAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,MAAM,EAAE;IAC5C,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB;IACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC;AACrB;IACA,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY;IAC/B,IAAIjB,OAAK,CAAC,aAAa,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACvC,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,KAAK;AACL;IACA,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,GAAG,CAAC,CAAC;AACL;IACA,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;IACrC,IAAIA,OAAK,CAAC,cAAc,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1D;IACA;IACA,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO;AAC5I;IACA,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,GAAG,EAAE;IACd,MAAM,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL,GAAG,CAAC,CAAC;AACL;IACA;IACA;IACA,EAAE,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE;IACxB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;IAClE,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,MAAM,EAAE;IAClC,QAAQ,OAAO,YAAY;IAC3B,UAAU,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,SAAS,CAAC;IACV,OAAO,CAAC,CAAC,CAAC,CAAC;IACX,KAAK;IACL,GAAG;AACH;IACA;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChD,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;IAC5B,IAAIA,OAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,MAAM,EAAE;IAChB,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL,GAAG,CAAC;AACJ;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA,MAAM,CAAC,cAAc,CAACiB,UAAQ,CAAC,SAAS,EAAE,uBAAuB,EAAE;IACnE;IACA;IACA;IACA,EAAE,UAAU,EAAE,KAAK;IACnB,EAAE,GAAG,EAAE,YAAY;IACnB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC7C,GAAG;IACH,CAAC,CAAC,CAAC;AACH;IACA;AACAA,cAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE;IAC5B;IACA,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AACtC;IACA,EAAE,IAAI,GAAG,CAAC;IACV,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;IACrF;IACA,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,GAAG,MAAM;IACT;IACA,IAAI,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1D,GAAG;AACH;IACA,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IAC9C,EAAE,IAAI,GAAG,CAAC;IACV,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACjC;IACA,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,GAAG,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAC1C;IACA,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACvB,GAAG,MAAM;IACT;IACA,IAAI,GAAG,GAAG,UAAU,GAAG,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/E,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE;IACvC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACpB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACnB,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC;IAClB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACrB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACrB,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,IAAI,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,EAAE,CAAC;IACZ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;IACjB,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC;IACZ,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzE,OAAO,MAAM;IACb,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACtB,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO;IACP,MAAM,MAAM;IACZ,KAAK;IACL,IAAI,EAAE,CAAC,CAAC;IACR,GAAG;IACH,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnB,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA,SAAS,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,GAAG,GAAGT,QAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACpB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACrB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACrB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACrB,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;IACZ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;IACjB,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC;IACZ,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzE,OAAO,MAAM;IACb,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACtB,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO;IACP,MAAM,MAAM;IACZ,KAAK;IACL,IAAI,EAAE,CAAC,CAAC;IACR,GAAG;IACH,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnB,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA,SAAS,WAAW,CAAC,MAAM,EAAE;IAC7B,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AACpC;IACA;IACA;IACA,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACtF;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACzB,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,IAAIH,kBAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,GAAG;IACH,CAAC;AACD;IACA,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;IACtC;IACA,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IAC/C,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,IAAI,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,GAAG;IACH,CAAC;AACD;IACA,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE;IACxB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,GAAG;IACH,EAAE,OAAO,CAAC,CAAC,CAAC;IACZ;;ICz7BA,qBAAc,GAAGgB,WAAS,CAAC;AAC3B;AACyC;AACzC;IACA;IACA,IAAIlF,MAAI,GAAG,MAAM,CAAC,MAAM,CAAClB,MAAuB,CAAC,CAAC;AAClDkB,UAAI,CAAC,QAAQ,GAAG4D,UAAmB,CAAC;IACpC;AACA;AACA5D,UAAI,CAAC,QAAQ,CAACkF,WAAS,EAAEf,UAAM,CAAC,CAAC;AACjC;IACA,SAAS,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;IAChC,EAAE,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B;IACA,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;AACtB;IACA,EAAE,IAAI,CAAC,EAAE,EAAE;IACX,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACjF,GAAG;AACH;IACA,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB;IACA,EAAE,IAAI,IAAI,IAAI,IAAI;IAClB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB;IACA,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AACT;IACA,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;IAC/B,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;IACrB,EAAE,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;IACvD,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IACjC,GAAG;IACH,CAAC;AACD;IACA,SAASe,WAAS,CAAC,OAAO,EAAE;IAC5B,EAAE,IAAI,EAAE,IAAI,YAAYA,WAAS,CAAC,EAAE,OAAO,IAAIA,WAAS,CAAC,OAAO,CAAC,CAAC;AAClE;IACA,EAAEf,UAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7B;IACA,EAAE,IAAI,CAAC,eAAe,GAAG;IACzB,IAAI,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C,IAAI,aAAa,EAAE,KAAK;IACxB,IAAI,YAAY,EAAE,KAAK;IACvB,IAAI,OAAO,EAAE,IAAI;IACjB,IAAI,UAAU,EAAE,IAAI;IACpB,IAAI,aAAa,EAAE,IAAI;IACvB,GAAG,CAAC;AACJ;IACA;IACA,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1C;IACA;IACA;IACA;IACA,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK,CAAC;AACnC;IACA,EAAE,IAAI,OAAO,EAAE;IACf,IAAI,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;AACrF;IACA,IAAI,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACzE,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;AACD;IACA,SAAS,SAAS,GAAG;IACrB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB;IACA,EAAE,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;IACzC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE;IACpC,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,CAAC;IACP,GAAG,MAAM;IACT,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,GAAG;IACH,CAAC;AACD;AACAe,eAAS,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;IACtD,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7C,EAAE,OAAOf,UAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACAe,eAAS,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChE,EAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC,CAAC;AACF;AACAA,eAAS,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5D,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;IAChC,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;IAClB,EAAE,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IACxB,EAAE,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC;IAC9B,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IACxB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC1G,GAAG;IACH,CAAC,CAAC;AACF;IACA;IACA;IACA;AACAA,eAAS,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;IACzC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;AAChC;IACA,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IAChE,IAAI,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;IACxE,GAAG,MAAM;IACT;IACA;IACA,IAAI,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,GAAG;IACH,CAAC,CAAC;AACF;AACAA,eAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE;IAClD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC;AACpB;IACA,EAAEf,UAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,IAAI,EAAE;IAC5D,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,GAAG,CAAC,CAAC;IACL,CAAC,CAAC;AACF;IACA,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,IAAI,IAAI;IAClB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB;IACA;IACA;IACA,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAClG;IACA,EAAE,IAAI,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAC7G;IACA,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B;;IC1LA,uBAAc,GAAGgB,aAAW,CAAC;AAC7B;AAC+C;AAC/C;IACA;IACA,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAACrG,MAAuB,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,GAAG8E,UAAmB,CAAC;IACpC;AACA;IACA,IAAI,CAAC,QAAQ,CAACuB,aAAW,EAAED,iBAAS,CAAC,CAAC;AACtC;IACA,SAASC,aAAW,CAAC,OAAO,EAAE;IAC9B,EAAE,IAAI,EAAE,IAAI,YAAYA,aAAW,CAAC,EAAE,OAAO,IAAIA,aAAW,CAAC,OAAO,CAAC,CAAC;AACtE;IACA,EAAED,iBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;AACD;AACAC,iBAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClB,CAAC;;;IC7CD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS,IAAIT,0BAAM,EAAE;IACzD,EAAE,cAAc,GAAGA,0BAAM,CAAC;IAC1B,EAAE,OAAO,GAAG,cAAc,GAAGA,0BAAM,CAAC,QAAQ,CAAC;IAC7C,EAAE,gBAAgB,GAAGA,0BAAM,CAAC,QAAQ,CAAC;IACrC,EAAE,gBAAgB,GAAGA,0BAAM,CAAC,QAAQ,CAAC;IACrC,EAAE,cAAc,GAAGA,0BAAM,CAAC,MAAM,CAAC;IACjC,EAAE,iBAAiB,GAAGA,0BAAM,CAAC,SAAS,CAAC;IACvC,EAAE,mBAAmB,GAAGA,0BAAM,CAAC,WAAW,CAAC;IAC3C,EAAE,cAAc,GAAGA,0BAAM,CAAC;IAC1B,CAAC,MAAM;IACP,EAAE,OAAO,GAAG,cAAc,GAAG,UAAoC,CAAC;IAClE,EAAE,cAAc,GAAGA,0BAAM,IAAI,OAAO,CAAC;IACrC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC7B,EAAE,gBAAgB,GAAGd,gBAAoC,CAAC;IAC1D,EAAE,cAAc,GAAG,UAAkC,CAAC;IACtD,EAAE,iBAAiB,GAAGU,iBAAqC,CAAC;IAC5D,EAAE,mBAAmB,GAAGK,mBAAuC,CAAC;IAChE;;;;;;;;;IClBA,IAAI,QAAQ,GAAG7F,QAA0B,CAAC,SAAQ;AAChB;AAClC;IACA,WAAc,GAAG,MAAK;AACtB;IACA,KAAK,CAAC,IAAI,GAAGsG,OAAI;IACjB,KAAK,CAAC,GAAG,GAAG/C,MAAG;AACf;IACA,IAAI,KAAK,GAAG+C,MAAI,GAAE;AAClB;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAE;IACrB,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE;IAC1B,IAAI,IAAI,GAAG,GAAG,KAAI;IAClB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,KAAI;IAChD,IAAI,IAAI,IAAI,YAAY,KAAK,EAAE;IAC/B,MAAM,GAAG,GAAG,KAAI;IAChB,MAAM,IAAI,GAAG,KAAI;IACjB,KAAK;AACL;IACA,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAC;IACjB,GAAG;IACH,CAAC;AACD;IACA,SAAS,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IACvD,IAAI,IAAI,GAAG,KAAI;IACf,IAAI,IAAI,GAAG,GAAE;IACb,GAAG;AACH;IACA,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,EAAC;IAC1B,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAIpB,MAAI,EAAC;IACpE,EAAE,OAAO,EAAE;IACX,CAAC;AACD;IACA,SAASoB,MAAI,CAAC,IAAI,EAAE,IAAI,EAAE;IAC1B,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;IAClC,IAAI,IAAI,GAAG,KAAI;IACf,IAAI,IAAI,GAAG,GAAE;IACb,GAAG;AACH;IACA,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;AACvB;IACA,EAAEC,UAAQ,CAAC,KAAK,EAAE,QAAQ,EAAC;IAC3B,EAAE,SAAS,KAAK,CAAC,QAAQ,EAAE;IAC3B,IAAI,IAAI,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAK;IACzB,IAAI,IAAI,CAAC,SAAS,GAAG,MAAK;IAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,MAAK;IAC1B,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAC;AACzC;IACA,IAAI,IAAI,IAAI,GAAG,KAAI;IACnB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,cAAa;AAC/C;IACA,IAAI,SAAS,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM;IAChC,MAAM,IAAI,GAAG,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/C,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAK;IAC3B,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC;IAC1C,KAAK;IACL,GAAG;AACH;IACA,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,IAAIrB,OAAI;IACtC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,IAAI,EAAE;IACzC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM;IAC/C,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAI;IACxB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAC;IACpC,IAAG;AACH;IACA,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE;IAC1C,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM;IAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAI;AACzB;IACA,IAAI,IAAI,IAAI,GAAG,KAAI;IACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW;IAChC,MAAM,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAC;IACtC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC;IACxB,KAAK,EAAC;IACN,IAAG;AACH;IACA,EAAE,OAAO,KAAK;IACd,CAAC;AACD;IACA,SAAS3B,KAAG,CAAC,IAAI,EAAE,IAAI,EAAE;IACzB,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IACzD,IAAI,IAAI,GAAG,KAAI;IACf,IAAI,IAAI,GAAG,GAAE;IACb,GAAG;AACH;IACA,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;IACvB,EAAE,IAAI,CAAC,UAAU,GAAG,KAAI;IACxB,EAAE,IAAI,CAAC,aAAa,GAAG,GAAE;AACzB;IACA,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;IAC1B,CAAC;AACD;IACA,SAAS2B,MAAI,IAAI,EAAE;AACnB;IACA,SAAS,QAAQ,CAAC,IAAI,EAAE;IACxB,EAAE,IAAI,GAAG,IAAI,IAAI,GAAE;IACnB,EAAE,OAAO,IAAI;IACb;;ICrGA,cAAc,GAAG,CAAC;IAClB,CAAC,CAAC,YAAY,OAAO;IACrB;IACA,EAAE,CAAC,KAAK,IAAI;IACZ,EAAE,OAAO,CAAC,KAAK,QAAQ;IACvB,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU;IAC9B,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,UAAU;IAC/B,EAAE;IACF,CAAC;;ICLD,cAAc,GAAG,CAAC,IAAI;IACtB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;IACvB,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAChB,EAAE;AACF;IACA,CAAC,IAAI,OAAO,CAAC;IACb,CAAC,IAAI,QAAQ,CAAC;AACd;IACA,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ;IACA,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE;IACzB,EAAE,CAAC,GAAG,KAAK,CAAC;IACZ,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC;IACA,EAAE,MAAM,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvG,EAAE,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC;IACzD,EAAE;AACF;IACA,CAAC,OAAOrK,OAAI,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;IACvC,EAAE,IAAI,OAAO,EAAE;IACf,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,IAAI,QAAQ,EAAE;IAChB,GAAG,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;IACtB,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpB;IACA,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,EAAE,CAAC,CAAC;IACJ,CAAC,CAAC;AACF;IACA,SAAkB,GAAG,CAAC,IAAI;IAC1B,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;IACvB,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAChB,EAAE;AACF;IACA,CAAC,IAAI,OAAO,CAAC;IACb,CAAC,IAAI,QAAQ,CAAC;AACd;IACA,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ;IACA,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE;IACzB,EAAE,CAAC,GAAG,KAAK,CAAC;IACZ,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,EAAE,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC;IAC1E,EAAE;AACF;IACA,CAAC,OAAOA,OAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;IAC3C,EAAE,IAAI,OAAO,EAAE;IACf,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,IAAI,QAAQ,EAAE;IAChB,GAAG,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf;IACA,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,EAAE,CAAC,CAAC;IACJ,CAAC;;;IC9ED,aAAc,GAAG,OAAM;AACvB;IACA,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACrD;IACA,SAAS,MAAM,GAAG;IAClB,IAAI,IAAI,MAAM,GAAG,GAAE;AACnB;IACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/C,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,EAAC;AACjC;IACA,QAAQ,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;IAChC,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAClD,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAC;IACzC,aAAa;IACb,SAAS;IACT,KAAK;AACL;IACA,IAAI,OAAO,MAAM;IACjB;;IClBA,IAAI,SAAS,GAAGmF,QAA0B,CAAC,SAAS;IACpD,IAAI,QAAQ,IAAI8E,wBAAe,CAAC,SACA;AAChC;IACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;IACpC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC;IAC5B,EAAE,IAAI,CAAC,UAAU,GAAG,MAAK;IACzB,CAAC;AACD;IACA,QAAQ,CAAC,oBAAoB,EAAE,SAAS,EAAC;AACzC;IACA,oBAAoB,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE;IACvD,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM;IAC7B,EAAE,IAAI,CAAC,UAAU,GAAG,KAAI;IACxB;IACA,EAAE,IAAI,IAAI,GAAG,KAAI;IACjB,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC9B,IAAI,IAAI,GAAG;IACX,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC;IACtB,GAAG,EAAC;IACJ,EAAC;AACD;IACA;IACA,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;IACrC,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAC;IACvB,CAAC;AACD;AACA;IACA;IACA;IACA,SAAS,QAAQ,EAAE,SAAS,EAAE;IAC9B,EAAE,OAAO,UAAU,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;IAC9C,IAAI,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;IACtC,MAAM,KAAK,OAAO,UAAS;IAC3B,MAAM,SAAS,GAAG,QAAO;IACzB,MAAM,OAAO,KAAK,GAAE;IACpB,KAAK;AACL;IACA,IAAI,IAAI,OAAO,SAAS,IAAI,UAAU;IACtC,MAAM,SAAS,GAAG,KAAI;AACtB;IACA,IAAI,IAAI,OAAO,KAAK,IAAI,UAAU;IAClC,MAAM,KAAK,GAAG,KAAI;AAClB;IACA,IAAI,OAAO,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;IAC/C,GAAG;IACH,CAAC;AACD;AACA;IACA;IACA,cAAc,GAAG,QAAQ,CAAC,UAAU,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;IAC/D,EAAE,IAAI,EAAE,GAAG,IAAI,oBAAoB,CAAC,OAAO,EAAC;AAC5C;IACA,EAAE,EAAE,CAAC,UAAU,GAAG,UAAS;AAC3B;IACA,EAAE,IAAI,KAAK;IACX,IAAI,EAAE,CAAC,MAAM,GAAG,MAAK;AACrB;IACA,EAAE,OAAO,EAAE;IACX,CAAC,EAAC;AACF;AACA;IACA;IACA;IACA,QAAmB,GAAG,QAAQ,CAAC,UAAU,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;IACpE,EAAE,SAAS,QAAQ,EAAE,QAAQ,EAAE;IAC/B,IAAI,IAAI,EAAE,IAAI,YAAY,QAAQ,CAAC;IACnC,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC;AACnC;IACA,IAAI,IAAI,CAAC,OAAO,GAAG0B,SAAK,CAAC,OAAO,EAAE,QAAQ,EAAC;AAC3C;IACA,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAC;IACjD,GAAG;AACH;IACA,EAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAC;AAC1C;IACA,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS;AAC3C;IACA,EAAE,IAAI,KAAK;IACX,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,MAAK;AACrC;IACA,EAAE,OAAO,QAAQ;IACjB,CAAC,EAAC;AACF;AACA;IACA,OAAkB,GAAG,QAAQ,CAAC,UAAU,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;IACnE,EAAE,IAAI,EAAE,GAAG,IAAI,oBAAoB,CAACA,SAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAC;AAC5F;IACA,EAAE,EAAE,CAAC,UAAU,GAAG,UAAS;AAC3B;IACA,EAAE,IAAI,KAAK;IACX,IAAI,EAAE,CAAC,MAAM,GAAG,MAAK;AACrB;IACA,EAAE,OAAO,EAAE;IACX,CAAC;;;;IC/FD,IAAI,IAAI,GAAG,EAAC;IACZ,IAAI,OAAO,GAAG,MAAK;IACnB,IAAI,UAAU,GAAG,EAAC;IAClB,IAAI,GAAG,GAAG,YAAY;IACtB,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,QAAO;IAC7B,EAAC;AACD;IACA,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,UAAU,IAAI,CAAC,EAAC;IACrD,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAE;AAC9B;IACA,eAAc,GAAG,UAAU,OAAO,EAAE;IACpC,EAAE,IAAI,IAAI,GAAG,UAAU,IAAI,OAAO,IAAI,CAAC,EAAC;IACxC,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC,EAAC;IAClB,EAAE,IAAI,OAAO,GAAG,EAAC;IACjB,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,QAAO;AACjC;IACA,EAAE,OAAO,UAAU,KAAK,EAAE;IAC1B,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,QAAO;IACtC,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAI;IAChC,IAAI,IAAI,GAAG,KAAI;AACf;IACA,IAAI,OAAO,IAAI,EAAE,EAAE;IACnB,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,OAAO,GAAG,EAAC;IACvC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,EAAC;IACtE,MAAM,OAAO,GAAE;IACf,KAAK;AACL;IACA,IAAI,IAAI,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,MAAK;AAC3C;IACA,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,EAAC;IACjC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,GAAG,CAAC,GAAG,OAAO,EAAC;AAC/E;IACA,IAAI,OAAO,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM;IACtF,GAAG;IACH;;;IC/BA,cAAc,GAAG,SAAS,OAAO,EAAE,UAAU,EAAE;IAC/C,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AACzB;IACA,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACpC,CAAC,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5C,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IAClC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,CAAC,IAAI,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAChD,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC5B;IACA,CAAC,IAAI,MAAM,GAAG;IACd,EAAE,UAAU,EAAE,CAAC;IACf,EAAE,WAAW,EAAE,WAAW;IAC1B,EAAE,MAAM,EAAE,MAAM;IAChB,EAAE,SAAS,EAAE,MAAM;IACnB,EAAE,GAAG,EAAE,CAAC;IACR,EAAE,OAAO,EAAE,CAAC;IACZ,EAAE,CAAC;AACH;IACA,CAAC,IAAI,IAAI,GAAG,SAAS,KAAK,EAAE;IAC5B,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1E,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,EAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,EAAE,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAC/B;IACA,EAAE,KAAK,GAAG,CAAC,CAAC;AACZ;IACA,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9B,EAAE,CAAC;IACH,CAAC,IAAI,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;IAC5C,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAClD,EAAE,WAAW,IAAI,GAAG,CAAC;IACrB,EAAE,KAAK,IAAI,GAAG,CAAC;IACf,EAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,IAAI,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;AACtE;IACA,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,EAAE,CAAC;IACH,CAAC,IAAI,GAAG,GAAG,SAAS,QAAQ,EAAE;IAC9B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,EAAE,QAAQ,EAAE,CAAC;IACb,EAAE,CAAC;AACH;IACA,CAAC,IAAI,EAAE,GAAGC,UAAO,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC,IAAI,QAAQ,GAAG,SAAS,SAAS,EAAE;IACpC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrB,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;IACjD,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5B,EAAE,CAAC;IACH;IACA;IACA;IACA;IACA,CAAC,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC;IACzB;IACA,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;IAChC,EAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,OAAO;IACzC;IACA,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE;IAC7D,GAAG,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,GAAG;AACH;IACA;IACA,EAAE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;IACzC,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,GAAG;AACH;IACA;IACA,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,GAAG,EAAE;IACtC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO;IACpC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE,OAAO;IAC1D,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;IACtC,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI;IACJ,GAAG,CAAC,CAAC;IACL,EAAE,CAAC,CAAC;AACJ;IACA,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/C;IACA,CAAC,EAAE,CAAC,QAAQ,GAAG,WAAW;IAC1B,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,EAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D;IACA,EAAE,OAAO,MAAM,CAAC;IAChB,EAAE,CAAC;IACH,CAAC,OAAO,EAAE,CAAC;IACX,CAAC;;;IC/FD;IACA;IACA;IACA,MAAM,UAAU,GAAG;IACnB,CAAC,SAAS;IACV,CAAC,YAAY;IACb,CAAC,QAAQ;IACT,CAAC,SAAS;IACV,CAAC,UAAU;IACX,CAAC,YAAY;IACb,CAAC,YAAY;IACb,CAAC,aAAa;IACd,CAAC,kBAAkB;IACnB,CAAC,kBAAkB;IACnB,CAAC,aAAa;IACd,CAAC,eAAe;IAChB,CAAC,CAAC;AACF;IACA,iBAAc,GAAG,CAAC,UAAU,EAAE,QAAQ,KAAK;IAC3C,CAAC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACvE;IACA,CAAC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;IAC/B;IACA,EAAE,IAAI,IAAI,IAAI,QAAQ,EAAE;IACxB,GAAG,SAAS;IACZ,GAAG;AACH;IACA,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjH,EAAE;IACF,CAAC;;IC9BD,MAAM,WAAW,GAAGzG,0BAAiB,CAAC,WAAW,CAAC;AACrB;AACmB;AAChD;IACA,sBAAc,GAAG,QAAQ,IAAI;IAC7B;IACA,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;IAC/E,EAAE,OAAO,QAAQ,CAAC;IAClB,EAAE;AACF;IACA,CAAC,MAAM,KAAK,GAAG0G,wBAAI,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC;IACA,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACjC;IACA,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI;IAC1B,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;IAClC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,OAAO;IACV,GAAG;AACH;IACA,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5B,EAAE,CAAC,CAAC;AACJ;IACA,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC;IACA,CAAC,OAAO,MAAM,CAAC;IACf,CAAC;;IC5BD;;;;;IAKA;;;;IAIA,SAASC,cAAT,CAAwBC,QAAxB,EAAkC;IAChC;IACA,SAAOA,SAASC,OAAT,CAAiB,MAAjB,EAAyB,GAAzB,EAA8BC,WAA9B,EAAP;IACD;;IAED,SAASC,gBAAT,CAA0BC,OAA1B,EAAmC;IACjC,QAAMC,OAAOD,QAAQE,IAAR,GAAeJ,WAAf,EAAb;;IAEA,QAAMK,YAAYF,KAAKG,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAlB;IACA,QAAMC,WAAWV,eAAeQ,UAAU,CAAV,CAAf,CAAjB;IACA,QAAMG,WAAWH,UAAU,CAAV,CAAjB;IACA,QAAMI,UAAUN,KAAKO,OAAL,CAAa,GAAb,IAAoB,CAAC,CAArC;;IAEA,SAAO,EAACZ,UAAUS,QAAX,EAAqBI,MAAMH,QAA3B,EAAqCC,SAASA,OAA9C,EAAP;IACD;;IAED,SAASG,YAAT,CAAsBC,GAAtB,EAA2BC,OAA3B,EAAoC;IAClC,QAAMH,OAAOE,IAAIF,IAAJ,KAAaE,IAAIE,QAAJ,KAAiB,QAAjB,GAA4B,KAA5B,GAAoC,IAAjD,CAAb;IACA,QAAMjB,WAAWD,eAAegB,IAAIf,QAAnB,CAAjB;IACA,QAAMkB,cAAcF,QAAQR,KAAR,CAAc,GAAd,CAApB;;IAEA;IACA,SAAOU,YAAY7S,GAAZ,CAAgB8R,gBAAhB,EAAkCgB,IAAlC,CAAuCC,eAAe;IAC3D,UAAMC,cAAcrB,SAASY,OAAT,CAAiBQ,YAAYpB,QAA7B,CAApB;IACA,UAAMsB,kBACJD,cAAc,CAAC,CAAf,IAAoBA,gBAAgBrB,SAASvT,MAAT,GAAkB2U,YAAYpB,QAAZ,CAAqBvT,MAD7E;;IAGA,QAAI2U,YAAYT,OAAhB,EAAyB;IACvB,aAAOE,SAASO,YAAYP,IAArB,IAA6BS,eAApC;IACD;;IAED,WAAOA,eAAP;IACD,GAVM,CAAP;IAWD;;IAED,SAASC,eAAT,CAAyBR,GAAzB,EAA8B;IAC5B;IACA;IACA;IACA,QAAMC,UAAUQ,QAAQC,GAAR,CAAYC,QAAZ,IAAwBF,QAAQC,GAAR,CAAYE,QAApC,IAAgD,EAAhE;;IAEA;IACA,MAAIX,YAAY,GAAhB,EAAqB;IACnB,WAAO,IAAP;IACD;;IAED;IACA,MAAIA,YAAY,EAAZ,IAAkBF,aAAaC,GAAb,EAAkBC,OAAlB,CAAtB,EAAkD;IAChD,WAAO,IAAP;IACD;;IAED;IACA,MAAID,IAAIE,QAAJ,KAAiB,OAArB,EAA8B;IAC5B,WAAOO,QAAQC,GAAR,CAAYG,UAAZ,IAA0BJ,QAAQC,GAAR,CAAYI,UAAtC,IAAoD,IAA3D;IACD;;IAED,MAAId,IAAIE,QAAJ,KAAiB,QAArB,EAA+B;IAC7B,WACEO,QAAQC,GAAR,CAAYK,WAAZ,IACAN,QAAQC,GAAR,CAAYM,WADZ,IAEAP,QAAQC,GAAR,CAAYG,UAFZ,IAGAJ,QAAQC,GAAR,CAAYI,UAHZ,IAIA,IALF;IAOD;;IAED;IACA;IACA,SAAO,IAAP;IACD;;IAED,SAASG,cAAT,CAAwBjB,GAAxB,EAA6B;IAC3B,MAAIkB,OAAOlB,IAAIkB,IAAf;;IAEA;IACA,MAAIlB,IAAIF,IAAR,EAAc;IACZ,QACGE,IAAIF,IAAJ,KAAa,IAAb,IAAqBE,IAAIE,QAAJ,KAAiB,OAAvC,IACCF,IAAIF,IAAJ,KAAa,KAAb,IAAsBE,IAAIE,QAAJ,KAAiB,QAF1C,EAGE;IACAgB,aAAOlB,IAAIf,QAAX;IACD;IACF;;IAED,SAAOiC,IAAP;IACD;;IAED,SAASC,qBAAT,CAA+BnB,GAA/B,EAAoC;IAClC,QAAMF,OAAOE,IAAIF,IAAJ,KAAaE,IAAIE,QAAJ,KAAiB,QAAjB,GAA4B,KAA5B,GAAoC,IAAjD,CAAb;IACA,SAAQ,GAAEF,IAAIf,QAAS,IAAGa,IAAK,EAA/B;IACD;;IAED,SAASsB,oBAAT,CAA4BC,OAA5B,EAAqCrB,GAArC,EAA0CsB,KAA1C,EAAiD;IAC/C,QAAMC,UAAUF,QAAQE,OAAR,IAAmB,EAAnC;IACA,QAAMtG,UAAUC,aAAa,EAAb,EAAiBmG,OAAjB,EAA0B,EAACE,OAAD,EAA1B,CAAhB;IACAA,UAAQL,IAAR,GAAeK,QAAQL,IAAR,IAAgBC,sBAAsBnB,GAAtB,CAA/B;IACA/E,UAAQiF,QAAR,GAAmBoB,MAAMpB,QAAN,IAAkBjF,QAAQiF,QAA7C;IACAjF,UAAQgE,QAAR,GAAmBqC,MAAMJ,IAAN,CAAWhC,OAAX,CAAmB,MAAnB,EAA2B,EAA3B,CAAnB;IACAjE,UAAQ6E,IAAR,GAAewB,MAAMxB,IAArB;IACA7E,UAAQiG,IAAR,GAAeD,eAAe/F,aAAa,EAAb,EAAiB8E,GAAjB,EAAsBsB,KAAtB,CAAf,CAAf;IACArG,UAAQuG,IAAR,GAAgB,GAAEvG,QAAQiF,QAAS,KAAIjF,QAAQiG,IAAK,GAAEjG,QAAQ7N,IAAK,EAAnE;IACA6N,UAAQ7N,IAAR,GAAe+N,wBAAIsG,MAAJ,CAAWzB,GAAX,CAAf;IACA,SAAO/E,OAAP;IACD;;IAED,SAASyG,iBAAT,CAAyBzG,OAAzB,EAAkC;IAChC,MAAIqG,KAAJ;IACA,MAAIrG,QAAQ/C,cAAR,CAAuB,OAAvB,CAAJ,EAAqC;IACnCoJ,YAAQrG,QAAQqG,KAAhB;IACD,GAFD,MAEO;IACL,UAAMtB,MAAM7E,wBAAIhC,KAAJ,CAAU8B,QAAQE,GAAlB,CAAZ;IACAmG,YAAQd,gBAAgBR,GAAhB,CAAR;IACD;;IAED,SAAO,OAAOsB,KAAP,KAAiB,QAAjB,GAA4BnG,wBAAIhC,KAAJ,CAAUmI,KAAV,CAA5B,GAA+CA,KAAtD;IACD;;IAEDK,wBAAA,GAA6BP,oBAA7B;IACAO,qBAAA,GAA0BD,iBAA1B;;;;;;;;IC7HA,IAOI9D,QAAM,GAAGvF,UAAsB,CAAC,MAAM;IAC1C,GAAG;AACH;IACA,kBAAoB,GAAG,aAAY;IACnC,mBAAqB,GAAG,cAAa;IACrC,mBAAqB,GAAG,cAAa;IACrC,oBAAsB,GAAG,eAAc;AACvC;AACA;IACA,SAAS,YAAY,CAAC,OAAO,EAAE;IAC/B,EAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,EAAC;IACzC,EAAE,KAAK,CAAC,OAAO,GAAGiB,wBAAI,CAAC,QAAO;IAC9B,EAAE,OAAO,KAAK;IACd,CAAC;AACD;IACA,SAAS,aAAa,CAAC,OAAO,EAAE;IAChC,EAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,EAAC;IACzC,EAAE,KAAK,CAAC,OAAO,GAAGA,wBAAI,CAAC,QAAO;IAC9B,EAAE,KAAK,CAAC,YAAY,GAAG,mBAAkB;IACzC,EAAE,KAAK,CAAC,WAAW,GAAG,IAAG;IACzB,EAAE,OAAO,KAAK;IACd,CAAC;AACD;IACA,SAAS,aAAa,CAAC,OAAO,EAAE;IAChC,EAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,EAAC;IACzC,EAAE,KAAK,CAAC,OAAO,GAAGD,yBAAK,CAAC,QAAO;IAC/B,EAAE,OAAO,KAAK;IACd,CAAC;AACD;IACA,SAAS,cAAc,CAAC,OAAO,EAAE;IACjC,EAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,EAAC;IACzC,EAAE,KAAK,CAAC,OAAO,GAAGA,yBAAK,CAAC,QAAO;IAC/B,EAAE,KAAK,CAAC,YAAY,GAAG,mBAAkB;IACzC,EAAE,KAAK,CAAC,WAAW,GAAG,IAAG;IACzB,EAAE,OAAO,KAAK;IACd,CAAC;AACD;AACA;IACA,SAAS,cAAc,CAAC,OAAO,EAAE;IACjC,EAAE,IAAI,IAAI,GAAG,KAAI;IACjB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,GAAE;IAC9B,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,GAAE;IAC9C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAIC,wBAAI,CAAC,KAAK,CAAC,kBAAiB;IAC3E,EAAE,IAAI,CAAC,QAAQ,GAAG,GAAE;IACpB,EAAE,IAAI,CAAC,OAAO,GAAG,GAAE;AACnB;IACA,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IACtD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC9D,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC;IACpC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;IAC1D;IACA;IACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAC;IAClC,QAAQ,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAC;IACxC,QAAQ,MAAM;IACd,OAAO;IACP,KAAK;IACL,IAAI,MAAM,CAAC,OAAO,GAAE;IACpB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAC;IAC7B,GAAG,EAAC;IACJ,CAAC;AACDC,4BAAI,CAAC,QAAQ,CAAC,cAAc,EAAEC,0BAAM,CAAC,YAAY,EAAC;AAClD;IACA,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE;IACxE,EAAE,IAAI,IAAI,GAAG,KAAI;AACjB;IACA;IACA,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;IACnC,IAAI,OAAO,GAAG;IACd,MAAM,IAAI,EAAE,OAAO;IACnB,MAAM,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACxB,KAAK,CAAC;IACN,GAAG;AACH;IACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;IAC9C;IACA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAC;IAC9E,IAAI,MAAM;IACV,GAAG;AACH;IACA;IACA,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAC;IAC/E,EAAC;AACD;IACA,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,OAAO,EAAE;IAC/E,EAAE,IAAI,IAAI,GAAG,KAAI;AACjB;IACA,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE;IAC9C,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAC;IAC7B,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAC;IACvC,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,EAAC;IAC7C,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAC;AACpC;IACA,IAAI,SAAS,MAAM,GAAG;IACtB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAC;IAC3D,KAAK;AACL;IACA,IAAI,SAAS,eAAe,CAAC,GAAG,EAAE;IAClC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAC;IAC/B,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAC;IAC3C,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAC;IACrD,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,eAAe,EAAC;IAC3D,KAAK;IACL,GAAG,EAAC;IACJ,EAAC;AACD;IACA,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE;IAC3E,EAAE,IAAI,IAAI,GAAG,KAAI;IACjB,EAAE,IAAI,WAAW,GAAG,GAAE;IACtB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAC;AAChC;IACA,EAAE,IAAI,cAAc,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY;IACzD,IAAI,EAAE,MAAM,EAAE,SAAS;IACvB,MAAM,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI;IAC7C,MAAM,KAAK,EAAE,KAAK;IAClB,KAAK;IACL,IAAG;IACH,EAAE,IAAI,cAAc,CAAC,SAAS,EAAE;IAChC,IAAI,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,GAAE;IACzD,IAAI,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ;IAC5D,QAAQoE,QAAM,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAC;IAChE,GAAG;AACH;IACA,EAAER,OAAK,CAAC,wBAAwB,EAAC;IACjC,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAC;IAC/C,EAAE,UAAU,CAAC,2BAA2B,GAAG,MAAK;IAChD,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAC;IACzC,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAC;IACvC,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAC;IACvC,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAC;IACnC,EAAE,UAAU,CAAC,GAAG,GAAE;AAClB;IACA,EAAE,SAAS,UAAU,CAAC,GAAG,EAAE;IAC3B;IACA,IAAI,GAAG,CAAC,OAAO,GAAG,KAAI;IACtB,GAAG;AACH;IACA,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC;IACA,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW;IAChC,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAC;IAClC,KAAK,EAAC;IACN,GAAG;AACH;IACA,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC,IAAI,UAAU,CAAC,kBAAkB,GAAE;IACnC,IAAI,MAAM,CAAC,kBAAkB,GAAE;AAC/B;IACA,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;IAChC,MAAME,0BAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC;IAClC,MAAMF,OAAK,CAAC,sCAAsC,EAAC;IACnD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,OAAM;IAC9D,MAAM,EAAE,CAAC,MAAM,EAAC;IAChB,KAAK,MAAM;IACX,MAAMA,OAAK,CAAC,0DAA0D,EAAE,GAAG,CAAC,UAAU,EAAC;IACvF,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,6CAA6C,GAAG,aAAa,GAAG,GAAG,CAAC,UAAU,EAAC;IAC3G,MAAM,KAAK,CAAC,IAAI,GAAG,aAAY;IAC/B,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAC;IAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAC;IACpC,KAAK;IACL,GAAG;AACH;IACA,EAAE,SAAS,OAAO,CAAC,KAAK,EAAE;IAC1B,IAAI,UAAU,CAAC,kBAAkB,GAAE;AACnC;IACA,IAAIA,OAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAC;IAC9F,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,6CAA6C,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAC;IACnG,IAAI,KAAK,CAAC,IAAI,GAAG,aAAY;IAC7B,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAC;IACxC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAC;IAClC,GAAG;IACH,EAAC;AACD;IACA,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;IACtE,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAC;IACxC,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM;AACxB;IACA,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAC;AAC7B;IACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAE;IACrC,EAAE,IAAI,OAAO,EAAE;IACf;IACA;IACA,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAC;IAClC,GAAG;IACH,EAAC;AACD;IACA,SAAS,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE;IACzC,EAAE,IAAI,IAAI,GAAG,KAAI;IACjB,EAAE,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE;IAC7E;IACA,IAAI,IAAI,YAAY,GAAGwE,uBAAG,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO;IACnE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI;IAChC,QAAQ,MAAM,EAAE,MAAM;IACtB,OAAO;IACP,KAAK,EAAC;IACN,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,aAAY;IAC7D,IAAI,EAAE,CAAC,YAAY,EAAC;IACpB,GAAG,EAAC;IACJ,CAAC;AACD;AACA;IACA,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IACxD,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,EAAC;IAChC,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;IACvC,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAC;IACvC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;IAC7D,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAC;IACvB,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;IACxC,UAAU,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAC;IAClC,SAAS;IACT,OAAO;IACP,KAAK;IACL,GAAG;IACH,EAAE,OAAO,MAAM;IACf,CAAC;AACD;AACA;IACA,IAAIxE,QAAK;IACT,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;IACzE,EAAEA,OAAK,GAAG,WAAW;IACrB,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAC;IACpD,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IACrC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,EAAC;IACpC,KAAK,MAAM;IACX,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC;IAC7B,KAAK;IACL,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAC;IACtC,IAAG;IACH,CAAC,MAAM;IACP,EAAEA,OAAK,GAAG,WAAW,GAAE;IACvB,CAAC;IACD,WAAa,GAAGA,QAAK;;;;;;;;;;ICnPrB;;;;;;;;;IASA,MAAMyE,WAAW,CACf,UADe,EAEf,SAFe,EAGf,MAHe,EAIf,MAJe,EAKf,MALe,EAMf,UANe,EAOf,MAPe,EAQf,QARe,EASf,OATe,EAUf,UAVe,EAWf,MAXe,EAYf,MAZe,CAAjB;;IAeA,MAAMC,8BAA8B,CAClC,QADkC,EAElC,gBAFkC,EAGlC,iBAHkC,EAIlC,iBAJkC,EAKlC,eALkC,EAMlC,eANkC,EAOlC,kBAPkC,EAQlC,kBARkC,EASlC,kBATkC,EAUlC,aAVkC,EAWlC,eAXkC,EAYlC,cAZkC,EAalC,YAbkC,EAclC,MAdkC,EAelC,QAfkC,EAgBlC,cAhBkC,EAiBlC,QAjBkC,EAkBlC,SAlBkC,EAmBlC,IAnBkC,EAoBlC,YApBkC,EAqBlC,KArBkC,CAApC;;IAwBA,MAAMC,kCAAkC,CAAC,qBAAD,CAAxC;;IAEAJ,gBAAA,GAAuB,CAAC1G,OAAD,EAAU+G,YAAV,KAA2B;IAChD;;IAEA;IACA,MAAI,OAAO/G,QAAQgH,MAAf,KAA0B,WAA9B,EAA2C;IACzC,WAAOC,QAAQjH,QAAQgH,MAAhB,CAAP;IACD;;IAED;IACA,QAAMjC,MAAM7E,wBAAIhC,KAAJ,CAAU8B,QAAQE,GAAlB,CAAZ;IACA,MAAI6E,IAAIE,QAAJ,KAAiB,QAArB,EAA+B;IAC7B,WAAO,IAAP;IACD;;IAED;IACA,SAAO,KAAP;IACD,CAhBD;;IAkBAyB,cAAA,GAAqB,YAAsB;IAAA,MAArB3G,IAAqB,uEAAd,EAAc;IAAA,MAAVsG,KAAU;;IACzC,QAAMrG,UAAUC,aAAa,EAAb,EAAiBF,IAAjB,CAAhB;;IAEA;IACA,QAAMmH,uBAAuBL,4BAC1BvT,MAD0B,CACnB0M,QAAQkH,oBAAR,IAAgC,EADb,EAE1B7U,GAF0B,CAEtB8U,UAAUA,OAAOjD,WAAP,EAFY,CAA7B;;IAIA,QAAMkD,2BAA2BN,gCAC9BxT,MAD8B,CACvB0M,QAAQoH,wBAAR,IAAoC,EADb,EAE9B/U,GAF8B,CAE1B8U,UAAUA,OAAOjD,WAAP,EAFgB,CAAjC;;IAIA;IACA,QAAMmD,eAAeC,uBAAuBtH,QAAQsG,OAA/B,EAAwCY,oBAAxC,CAArB;IACAG,eAAapB,IAAb,GAAoBsB,mBAAmBvH,OAAnB,CAApB;;IAEA;IACAA,UAAQsG,OAAR,GAAkB1P,OAAOC,IAAP,CAAYmJ,QAAQsG,OAAR,IAAmB,EAA/B,EAAmCvW,MAAnC,CAA0C,CAACuW,OAAD,EAAUa,MAAV,KAAqB;IAC/E,UAAMK,YAAYJ,yBAAyBxC,OAAzB,CAAiCuC,OAAOjD,WAAP,EAAjC,MAA2D,CAAC,CAA9E;IACA,QAAIsD,SAAJ,EAAe;IACblB,cAAQa,MAAR,IAAkBnH,QAAQsG,OAAR,CAAgBa,MAAhB,CAAlB;IACD;;IAED,WAAOb,OAAP;IACD,GAPiB,EAOf,EAPe,CAAlB;;IASA,QAAMmB,WAAWC,YAAY1H,OAAZ,EAAqBqG,KAArB,CAAjB;IACA,QAAMsB,gBAAgBC,uBAAuB5H,OAAvB,EAAgCqG,KAAhC,EAAuCgB,YAAvC,CAAtB;IACArH,UAAQ6H,KAAR,GAAgBJ,SAASE,aAAT,CAAhB;;IAEA,SAAO3H,OAAP;IACD,CA/BD;;IAiCA,SAAS0H,WAAT,CAAqB1H,OAArB,EAA8BqG,KAA9B,EAAqC;IACnC,QAAMtB,MAAM+C,YAAY9H,OAAZ,CAAZ;IACA,QAAM+H,eAAeC,sBAAsBjD,GAAtB,EAA2BsB,KAA3B,CAArB;IACA,SAAOW,YAAOe,YAAP,CAAP;IACD;;IAED,SAASD,WAAT,CAAqB9H,OAArB,EAA8B;IAC5B,SAAO4G,SAAS7W,MAAT,CAAgB,CAACgV,GAAD,EAAMkD,IAAN,KAAe;IACpClD,QAAIkD,IAAJ,IAAYjI,QAAQiI,IAAR,CAAZ;IACA,WAAOlD,GAAP;IACD,GAHM,EAGJ,EAHI,CAAP;IAID;;IAED,SAASiD,qBAAT,CAA+BjD,GAA/B,EAAoCsB,KAApC,EAA2C;IACzC,QAAM6B,cAAcnD,IAAIE,QAAJ,KAAiB,QAAjB,GAA4B,OAA5B,GAAsC,MAA1D;IACA,QAAMkD,gBAAgB9B,MAAMpB,QAAN,KAAmB,QAAnB,GAA8B,OAA9B,GAAwC,MAA9D;IACA,SAAO,CAACiD,WAAD,EAAcC,aAAd,EAA6BvU,IAA7B,CAAkC,MAAlC,CAAP;IACD;;IAED,SAAS2T,kBAAT,CAA4BxC,GAA5B,EAAiC;IAC/B,QAAMF,OAAOE,IAAIF,IAAjB;IACA,QAAMI,WAAWF,IAAIE,QAArB;IACA,MAAImD,YAAa,GAAErD,IAAIf,QAAS,GAAhC;;IAEA,MAAIa,IAAJ,EAAU;IACRuD,iBAAavD,IAAb;IACD,GAFD,MAEO,IAAII,aAAa,QAAjB,EAA2B;IAChCmD,iBAAa,KAAb;IACD,GAFM,MAEA;IACLA,iBAAa,IAAb;IACD;;IAED,SAAOA,SAAP;IACD;;IAED,SAASd,sBAAT,CAAgChB,OAAhC,EAAyC+B,SAAzC,EAAoD;IAClD,SAAOzR,OAAOC,IAAP,CAAYyP,OAAZ,EACJnL,MADI,CACGgM,UAAUkB,UAAUzD,OAAV,CAAkBuC,OAAOjD,WAAP,EAAlB,MAA4C,CAAC,CAD1D,EAEJnU,MAFI,CAEG,CAACuY,GAAD,EAAMnB,MAAN,KAAiB;IACvBmB,QAAInB,MAAJ,IAAcb,QAAQa,MAAR,CAAd;IACA,WAAOmB,GAAP;IACD,GALI,EAKF,EALE,CAAP;IAMD;;IAED,SAASV,sBAAT,CAAgC5H,OAAhC,EAAyCqG,KAAzC,EAAgDgB,YAAhD,EAA8D;IAC5D,SAAO;IACLhB,WAAO;IACLJ,YAAMI,MAAMrC,QADP;IAELa,YAAM,CAACwB,MAAMxB,IAFR;IAGL0D,iBAAWlC,MAAMmC,IAHZ;IAILlC,eAASe;IAJJ,KADF;IAOLf,aAAStG,QAAQsG,OAPZ;IAQLmC,QAAIzI,QAAQyI,EARP;IASLC,UAAM1I,QAAQ0I,IATT;IAULnS,SAAKyJ,QAAQzJ,GAVR;IAWLoS,gBAAY3I,QAAQ2I,UAXf;IAYLC,SAAK5I,QAAQ4I,GAZR;IAaLC,aAAS7I,QAAQ6I,OAbZ;IAcLC,wBAAoB9I,QAAQ8I,kBAdvB;IAeLC,mBAAe/I,QAAQ+I,aAflB;IAgBLC,oBAAgBhJ,QAAQgJ;IAhBnB,GAAP;IAkBD;;;;;;;;;;ICpKD;;;;;;;;;;;;;;;;UAaOvC,wBAAAA;UAAiBN,2BAAAA;;;;IAGxB,MAAM8C,UAAU,MAAhB;;IAEA;IACA;IACA,MAAMC,iBAAiB,CAACC,GAAD,EAAMC,MAAN,EAAc7I,MAAd,EAAsBC,IAAtB,MAAgC;IACrDA,MADqD;IAErDN,OAAKkJ,MAFgD;IAGrD7I,UAAQA,MAH6C;IAIrD+F,WAAS6C,IAAI7C,OAJwC;IAKrD+C,cAAYF,IAAIE,UALqC;IAMrDC,iBAAeH,IAAIG;IANkC,CAAhC,CAAvB;;IASApK,eAAA,GAAiB,CAACqK,OAAD,EAAUC,EAAV,KAAiB;IAChC,QAAMxJ,UAAUuJ,QAAQvJ,OAAxB;IACA,QAAM+E,MAAM9E,aAAa,EAAb,EAAiBC,wBAAIhC,KAAJ,CAAU8B,QAAQE,GAAlB,CAAjB,CAAZ;IACA,QAAMuJ,WAAWC,WAAS1J,QAAQQ,IAAjB,IAAyB,QAAzB,GAAoC,OAAOR,QAAQQ,IAApE;;IAEA,MACEiJ,aAAa,WAAb,IACAA,aAAa,QADb,IAEAA,aAAa,QAFb,IAGA,CAAC9G,OAAOgH,QAAP,CAAgB3J,QAAQQ,IAAxB,CAJH,EAKE;IACA,UAAM,IAAIe,KAAJ,CAAW,wDAAuDkI,QAAS,EAA3E,CAAN;IACD;;IAED,QAAMG,eAAe,EAArB;IACA,MAAI5J,QAAQ6J,QAAZ,EAAsB;IACpBD,iBAAa,gBAAb,IAAiC5J,QAAQ6J,QAAzC;IACD,GAFD,MAEO,IAAI7J,QAAQQ,IAAR,IAAgBiJ,aAAa,QAAjC,EAA2C;IAChDG,iBAAa,gBAAb,IAAiCjH,OAAOmH,UAAP,CAAkB9J,QAAQQ,IAA1B,CAAjC;IACD;;IAED;IACA,MAAIuJ,UAAU,KAAd;IACA,QAAMC,WAAW,CAACC,GAAD,EAAMd,GAAN,KAAc,CAACY,OAAD,IAAYP,GAAGS,GAAH,EAAQd,GAAR,CAA3C;IACAI,UAAQW,QAAR,CAAiBC,KAAjB,CAAuBC,SAAvB,CAAiC,MAAM;IACrCL,cAAU,IAAV;IACD,GAFD;;IAIA;IACA,MAAI3D,UAAUnG,aAAa,EAAb,EAAiB8E,GAAjB,EAAsB;IAClCxE,YAAQP,QAAQO,MADkB;IAElC+F,aAASrG,aAAa,EAAb,EAAiBoK,iBAAiBrK,QAAQsG,OAAzB,CAAjB,EAAoDsD,YAApD,CAFyB;IAGlCU,kBAActK,QAAQsK;IAHY,GAAtB,CAAd;;IAMA;IACA,QAAMjE,QAAQI,gBAAgBzG,OAAhB,CAAd;IACA,QAAMgH,SAASX,SAASkE,SAAUC,YAAV,CAAuBxK,OAAvB,CAAxB;;IAEA;IACA,QAAMyK,mBAAmBlB,QAAQnK,eAAR,CAAwB,kBAAxB,EAA4CjR,SAA5C,EAAuD;IAC9E8a,WAD8E;IAE9EM;IAF8E,GAAvD,CAAzB;;IAKA;IACA;IACA,MAAIkB,gBAAJ,EAAsB;IACpB,UAAMC,UAAUC,aAAaX,QAAb,EAAuB,IAAvB,EAA6BS,gBAA7B,CAAhB;IACA,UAAMN,QAAQ,MAAMS,eAAeF,OAAf,CAApB;IACA,WAAO,EAACP,KAAD,EAAP;IACD;;IAED;IACA,MAAInK,QAAQsK,YAAR,KAAyB,CAA7B,EAAgC;IAC9BlE,YAAQkE,YAAR,GAAuBtK,QAAQsK,YAAR,IAAwB,CAA/C;IACD;;IAED;IACA,MAAIjE,SAASW,MAAb,EAAqB;IACnBZ,cAAUmE,SAAUM,UAAV,CAAqBzE,OAArB,EAA8BC,KAA9B,CAAV;IACD,GAFD,MAEO,IAAIA,SAAS,CAACW,MAAd,EAAsB;IAC3BZ,cAAUD,mBAAmBC,OAAnB,EAA4BrB,GAA5B,EAAiCsB,KAAjC,CAAV;IACD;;IAED;IACA,MAAI,CAACW,MAAD,IAAWX,KAAX,IAAoBA,MAAMmC,IAA1B,IAAkC,CAACpC,QAAQE,OAAR,CAAgB,qBAAhB,CAAvC,EAA+E;IAAA,eAChDD,MAAMmC,IAAN,CAAWsC,QAAX,GACzB,CAACzE,MAAMmC,IAAN,CAAWsC,QAAZ,EAAsBzE,MAAMmC,IAAN,CAAWuC,QAAjC,CADyB,GAEzB1E,MAAMmC,IAAN,CAAWhE,KAAX,CAAiB,GAAjB,EAAsBnS,GAAtB,CAA0B+G,QAAQ4E,gCAAGgN,QAAH,CAAY5R,IAAZ,CAAlC,CAHyE;IAAA;;IAAA,UACtE0R,QADsE;IAAA,UAC5DC,QAD4D;;;IAK7E,UAAMvC,OAAO7F,OAAO1K,IAAP,CAAa,GAAE6S,QAAS,IAAGC,QAAS,EAApC,EAAuC,MAAvC,CAAb;IACA,UAAME,aAAazC,KAAKzW,QAAL,CAAc,QAAd,CAAnB;IACAqU,YAAQE,OAAR,CAAgB,qBAAhB,IAA0C,SAAQ2E,UAAW,EAA7D;IACD;;IAED;IACA,QAAMC,YAAYC,oBAAoB/E,OAApB,EAA6BC,KAA7B,EAAoCW,MAApC,CAAlB;IACA,MAAI,OAAOhH,QAAQmC,KAAf,KAAyB,UAAzB,IAAuCkE,KAA3C,EAAkD;IAChDrG,YAAQmC,KAAR,CACE,mBADF,EAEEiE,QAAQyB,KAAR,GAAgB,cAAhB,GAAkC,GAAEzB,QAAQH,IAAK,IAAGG,QAAQvB,IAAK,EAFnE;IAID;;IAED,QAAMuG,eAAe7B,QAAQnK,eAAR,CAAwB,iBAAxB,EAA2CgH,OAA3C,CAArB;IACA,QAAMiF,UAAUH,UAAUG,OAAV,CAAkBD,YAAlB,EAAgCE,YAAY;IAC1D;IACA,UAAMC,gBAAgBnF,QAAQ7F,MAAR,KAAmB,MAAzC;IACA,UAAM4I,MAAMoC,gBAAgBC,mBAAmBF,QAAnB,CAAhB,GAA+CA,QAA3D;;IAEA,UAAMG,YAAYlC,QAAQnK,eAAR,CAAwB,WAAxB,EAAqC+J,GAArC,EAA0C;IAC1D7C,eAASgF,SAAShF,OADwC;IAE1D2C,aAF0D;IAG1DM;IAH0D,KAA1C,CAAlB;;IAMA;IACAjW,iBAAOmY,SAAP,EAAkB,CAACxB,GAAD,EAAMyB,IAAN,KAAe;IAC/B,UAAIzB,GAAJ,EAAS;IACP,eAAOD,SAASC,GAAT,CAAP;IACD;;IAED,YAAMzJ,OAAOR,QAAQ2L,OAAR,GAAkBD,IAAlB,GAAyBA,KAAK3Z,QAAL,EAAtC;IACA,YAAM6Z,UAAU1C,eACdC,GADc,EAEdmC,SAASO,WAAT,IAAwB7L,QAAQE,GAFlB;IAGdkG,cAAQ7F,MAHM,EAIdC,IAJc,CAAhB;;IAOA,aAAOwJ,SAAS,IAAT,EAAe4B,OAAf,CAAP;IACD,KAdD;IAeD,GA3Be,CAAhB;;IA6BA,MAAI5L,QAAQF,OAAZ,EAAqB;IACnBgM,aAAST,OAAT,EAAkBrL,QAAQF,OAA1B;IACD;;IAEDuL,UAAQU,IAAR,CAAa,OAAb,EAAsB/B,QAAtB;;IAEA;IACA;IACA;;IA3HgC,2BA4HDgC,kBAAkBhM,OAAlB,CA5HC;;IAAA,QA4HzBiM,UA5HyB,sBA4HzBA,UA5HyB;IAAA,QA4HbC,QA5Ha,sBA4HbA,QA5Ha;;IA8HhC;;IACA3C,UAAQnK,eAAR,CAAwB,WAAxB,EAAqC,EAACY,OAAD,EAAUiJ,OAAV,EAAmBoC,OAAnB,EAA4B9B,OAA5B,EAAqC2C,QAArC,EAArC;;IAEA,MAAID,UAAJ,EAAgB;IACdA,eAAWE,IAAX,CAAgBd,OAAhB;IACD,GAFD,MAEO;IACLA,YAAQe,GAAR,CAAYpM,QAAQQ,IAApB;IACD;;IAED,SAAO,EAAC2J,OAAO,MAAMkB,QAAQlB,KAAR,EAAd,EAAP;IACD,CAxID;;IA0IA,SAAS6B,iBAAT,CAA2BhM,OAA3B,EAAoC;IAClC,MAAI,CAACA,QAAQQ,IAAb,EAAmB;IACjB,WAAO,EAAP;IACD;;IAED,QAAM6L,eAAe3C,WAAS1J,QAAQQ,IAAjB,CAArB;IACA,QAAM/P,SAASuP,QAAQ6J,QAAR,KAAqBwC,eAAe,IAAf,GAAsB1J,OAAOmH,UAAP,CAAkB9J,QAAQQ,IAA1B,CAA3C,CAAf;IACA,MAAI,CAAC/P,MAAL,EAAa;IACX,WAAO4b,eAAe,EAACJ,YAAYjM,QAAQQ,IAArB,EAAf,GAA4C,EAAnD;IACD;;IAED,QAAM0L,WAAWI,eAAe,EAACvL,MAAM,EAAP,EAAWtQ,MAAX,EAAf,CAAjB;IACA,QAAMwb,aAAaI,eAAerM,QAAQQ,IAAvB,GAA8B+L,WAASvM,QAAQQ,IAAjB,CAAjD;IACA,SAAO,EAACyL,YAAYA,WAAWE,IAAX,CAAgBD,QAAhB,CAAb,EAAwCA,QAAxC,EAAP;IACD;;IAED,SAASf,mBAAT,CAA6B/E,OAA7B,EAAsCC,KAAtC,EAA6CW,MAA7C,EAAqD;IACnD,QAAMwF,iBAAiBpG,QAAQnB,QAAR,KAAqB,QAA5C;IACA,QAAMwH,aACJrG,QAAQkE,YAAR,KAAyB,CAAzB,GACI,EAACjM,MAAMA,wBAAP,EAAaD,OAAOA,yBAApB,EADJ,GAEI,EAACC,MAAMqO,gBAAOrO,IAAd,EAAoBD,OAAOsO,gBAAOtO,KAAlC,EAHN;;IAKA,MAAI,CAACiI,KAAD,IAAUW,MAAd,EAAsB;IACpB,WAAOwF,iBAAiBC,WAAWrO,KAA5B,GAAoCqO,WAAWpO,IAAtD;IACD;;IAED;IACA;IACA,MAAIsO,eAAetG,MAAMxB,IAAN,KAAe,GAAlC;IACA,MAAIwB,MAAMpB,QAAV,EAAoB;IAClB0H,mBAAe,WAAWrL,IAAX,CAAgB+E,MAAMpB,QAAtB,CAAf;IACD;;IAED,SAAO0H,eAAeF,WAAWrO,KAA1B,GAAkCqO,WAAWpO,IAApD;IACD;;IAED,SAASgM,gBAAT,CAA0B/D,OAA1B,EAAmC;IACjC,SAAO1P,OAAOC,IAAP,CAAYyP,WAAW,EAAvB,EAA2BvW,MAA3B,CAAkC,CAACC,GAAD,EAAMmX,MAAN,KAAiB;IACxDnX,QAAImX,OAAOjD,WAAP,EAAJ,IAA4BoC,QAAQa,MAAR,CAA5B;IACA,WAAOnX,GAAP;IACD,GAHM,EAGJ,EAHI,CAAP;IAID;;ICjNDkP,aAAA,GAAiB0N,WAAjB;;;;ICMA,MAAMC,eAAe,CAAC,SAAD,EAAY,UAAZ,EAAwB,UAAxB,EAAoC,OAApC,EAA6C,OAA7C,CAArB;IACA,MAAMC,cAAc,CAClB,gBADkB,EAElB,iBAFkB,EAGlB,kBAHkB,EAIlB,iBAJkB,EAKlB,WALkB,EAMlB,YANkB,EAOlB,SAPkB,EAQlB,UARkB,EASlB,WATkB,CAApB;;IAYA5N,WAAA,GAAiB,SAAS6N,eAAT,GAA8C;IAAA,MAArBC,cAAqB,uEAAJ,EAAI;;IAC7D,QAAMC,mBAAmB,EAAzB;IACA,QAAM9N,aAAa2N,YAAY/c,MAAZ,CACjB,CAACmd,IAAD,EAAOC,IAAP,KAAgB;IACdD,SAAKC,IAAL,IAAaD,KAAKC,IAAL,KAAc,EAA3B;IACA,WAAOD,IAAP;IACD,GAJgB,EAKjB;IACEE,oBAAgB,CAACA,uBAAD,CADlB;IAEEC,qBAAiB,CAACA,uBAAD;IAFnB,GALiB,CAAnB;;IAWA,WAAShC,OAAT,CAAiBtL,IAAjB,EAAuB;IACrB,UAAMmK,WAAW2C,aAAa9c,MAAb,CAAoB,CAACqR,MAAD,EAAS+L,IAAT,KAAkB;IACrD/L,aAAO+L,IAAP,IAAeG,YAAf;IACA,aAAOlM,MAAP;IACD,KAHgB,EAGd,EAHc,CAAjB;;IAKA;IACA,UAAMhC,kBAAkBmO,kBAAkBpO,UAAlB,CAAxB;;IAEA;IACA,UAAMa,UAAUZ,gBAAgB,gBAAhB,EAAkCW,IAAlC,CAAhB;;IAEA;IACAX,oBAAgB,iBAAhB,EAAmCY,OAAnC;;IAEA;IACA,UAAMuJ,UAAU,EAACvJ,OAAD,EAAUkK,QAAV,EAAoB9K;;IAEpC;IACA;IACA;IAJgB,KAAhB,CAKA,IAAIoO,iBAAiB,IAArB;IACA,UAAMC,cAAcvD,SAASmB,OAAT,CAAiBjB,SAAjB,CAA2BsD,OAAO;IACpD;IACAF,uBAAiBG,UAAYD,GAAZ,EAAiB,CAACzD,GAAD,EAAMd,GAAN,KAAcyE,WAAW3D,GAAX,EAAgBd,GAAhB,EAAqBuE,GAArB,CAA/B,CAAjB;IACD,KAHmB,CAApB;;IAKA;IACA;IACAxD,aAASC,KAAT,CAAeC,SAAf,CAAyB,MAAM;IAC7BqD;IACA,UAAID,cAAJ,EAAoB;IAClBA,uBAAerD,KAAf;IACD;IACF,KALD;;IAOA;IACA;IACA,UAAM0D,cAAczO,gBAAgB,UAAhB,EAA4B8K,QAA5B,EAAsCX,OAAtC,CAApB;;IAEA;IACA;IACA;IACA,QAAIsE,gBAAgB3D,QAApB,EAA8B;IAC5BA,eAASmB,OAAT,CAAiByC,OAAjB,CAAyBvE,OAAzB;IACD;;IAED,WAAOsE,WAAP;;IAEA,aAASD,UAAT,CAAoBG,MAApB,EAA4B5E,GAA5B,EAAiCuE,GAAjC,EAAsC;IACpC,UAAIM,QAAQD,MAAZ;IACA,UAAIzC,WAAWnC,GAAf;;IAEA;IACA;IACA,UAAI,CAAC6E,KAAL,EAAY;IACV,YAAI;IACF1C,qBAAWlM,gBAAgB,YAAhB,EAA8B+J,GAA9B,EAAmCuE,GAAnC,CAAX;IACD,SAFD,CAEE,OAAOzD,GAAP,EAAY;IACZqB,qBAAW,IAAX;IACA0C,kBAAQ/D,GAAR;IACD;IACF;;IAED;IACA;IACA+D,cAAQA,SAAS5O,gBAAgB,SAAhB,EAA2B4O,KAA3B,EAAkCN,GAAlC,CAAjB;;IAEA;IACA,UAAIM,KAAJ,EAAW;IACT9D,iBAAS8D,KAAT,CAAeF,OAAf,CAAuBE,KAAvB;IACD,OAFD,MAEO,IAAI1C,QAAJ,EAAc;IACnBpB,iBAASoB,QAAT,CAAkBwC,OAAlB,CAA0BxC,QAA1B;IACD;IACF;IACF;;IAEDD,UAAQ4C,GAAR,GAAc,SAASA,GAAT,CAAaC,aAAb,EAA4B;IACxC,QAAI,CAACA,aAAL,EAAoB;IAClB,YAAM,IAAI3M,KAAJ,CAAU,uDAAV,CAAN;IACD;;IAED,QAAI,OAAO2M,aAAP,KAAyB,UAA7B,EAAyC;IACvC,YAAM,IAAI3M,KAAJ,CACJ,6FADI,CAAN;IAGD;;IAED,QAAI2M,cAAcC,QAAd,IAA0BhP,WAAWgP,QAAX,CAAoB1d,MAApB,GAA6B,CAA3D,EAA8D;IAC5D,YAAM,IAAI8Q,KAAJ,CACJ,qHADI,CAAN;IAGD;;IAEDuL,gBAAYhW,OAAZ,CAAoBP,OAAO;IACzB,UAAI2X,cAAc3X,GAAd,CAAJ,EAAwB;IACtB4I,mBAAW5I,GAAX,EAAgBvI,IAAhB,CAAqBkgB,cAAc3X,GAAd,CAArB;IACD;IACF,KAJD;;IAMA0W,qBAAiBjf,IAAjB,CAAsBkgB,aAAtB;IACA,WAAO7C,OAAP;IACD,GAzBD;;IA2BAA,UAAQ+C,KAAR,GAAgB,SAASA,KAAT,GAAiB;IAC/B,WAAOrB,gBAAgBE,gBAAhB,CAAP;IACD,GAFD;;IAIAD,iBAAelW,OAAf,CAAuBuU,QAAQ4C,GAA/B;;IAEA,SAAO5C,OAAP;IACD,CA5HD;;ICnBA,SAAc,GAAGjO;;;;ICAjB;IACA,IAAI,OAAOX,MAAP,KAAkB,WAAtB,EAAmC;IACjCyC,gBAAA,GAAiBzC,MAAjB;IACD,CAFD,MAEO,IAAI,OAAOsB,cAAP,KAAkB,WAAtB,EAAmC;IACxCmB,gBAAA,GAAiBnB,cAAjB;IACD,CAFM,MAEA,IAAI,OAAOsQ,IAAP,KAAgB,WAApB,EAAiC;IACtCnP,gBAAA,GAAiBmP,IAAjB;IACD,CAFM,MAEA;IACLnP,gBAAA,GAAiB,EAAjB;IACD;;;;ICNDA,cAAA,GAAiB,YAAe;IAAA,MAAda,IAAc,uEAAP,EAAO;;IAC9B,MAAMlB,aAAakB,KAAKuO,cAAL,IAAuBvQ,SAAOc,UAAjD;IACA,MAAI,CAACA,UAAL,EAAiB;IACf,UAAM,IAAI0C,KAAJ,CACJ,iFADI,CAAN;IAGD;;IAED,SAAO;IACL4M,cAAU,kBAACjE,QAAD,EAAWX,OAAX;IAAA,aACR,IAAI1K,UAAJ,CAAe,oBAAY;IACzBqL,iBAAS8D,KAAT,CAAe5D,SAAf,CAAyB;IAAA,iBAAOmE,SAASP,KAAT,CAAe/D,GAAf,CAAP;IAAA,SAAzB;IACAC,iBAASgC,QAAT,CAAkB9B,SAAlB,CAA4B;IAAA,iBAASmE,SAASC,IAAT,CAAcvO,aAAa,EAACwO,MAAM,UAAP,EAAb,EAAiCpZ,KAAjC,CAAd,CAAT;IAAA,SAA5B;IACA6U,iBAASoB,QAAT,CAAkBlB,SAAlB,CAA4B,oBAAY;IACtCmE,mBAASC,IAAT,CAAcvO,aAAa,EAACwO,MAAM,UAAP,EAAb,EAAiCnD,QAAjC,CAAd;IACAiD,mBAASG,QAAT;IACD,SAHD;;IAKAxE,iBAASmB,OAAT,CAAiByC,OAAjB,CAAyBvE,OAAzB;IACA,eAAO;IAAA,iBAAMW,SAASC,KAAT,CAAe2D,OAAf,EAAN;IAAA,SAAP;IACD,OAVD,CADQ;IAAA;IADL,GAAP;IAcD,CAtBD;;ICHA;IACA;IACA;IACA;IACA;IACA;AAGA;IACA,YAAc,GAAG,SAAS,QAAQ,CAAC,GAAG,EAAE;IACxC,EAAE,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;IAChF,CAAC;;ICAD,SAAS,cAAc,CAAC,CAAC,EAAE;IAC3B,EAAE,OAAOa,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI;IAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC;IAC/D,CAAC;AACD;IACA,iBAAc,GAAG,SAAS,aAAa,CAAC,CAAC,EAAE;IAC3C,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;AAChB;IACA,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;AAChD;IACA;IACA,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;IACvB,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,OAAO,KAAK,CAAC;AAC/C;IACA;IACA,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;IACxB,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;AACnD;IACA;IACA,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,KAAK,EAAE;IACtD,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;AACH;IACA;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;;;;;;;ICjCD,IAAMC,iBAAiB,CAAC,SAAD,EAAY,QAAZ,EAAsB,QAAtB,CAAvB;IACA,IAAMjF,WAAW,SAAXA,QAAW;IAAA,SACf,CAAC,CAAChJ,IAAIkO,WAAN,IACA,OAAOlO,IAAIkO,WAAJ,CAAgBlF,QAAvB,KAAoC,UADpC,IAEAhJ,IAAIkO,WAAJ,CAAgBlF,QAAhB,CAAyBhJ,GAAzB,CAHe;IAAA,CAAjB;;IAKAzB,eAAA,GAAiB;IAAA,SAAO;IACtBkO,oBAAgB,iCAAW;IACzB,UAAM5M,OAAOR,QAAQQ,IAArB;IACA,UAAI,CAACA,IAAL,EAAW;IACT,eAAOR,OAAP;IACD;;IAED,UAAM0J,WAAW,OAAOlJ,KAAK2L,IAAZ,KAAqB,UAAtC;IACA,UAAM2C,kBACJ,CAACpF,QAAD,IACA,CAACC,SAASnJ,IAAT,CADD,KAECoO,eAAehK,OAAf,QAA8BpE,IAA9B,yCAA8BA,IAA9B,OAAwC,CAAC,CAAzC,IAA8CxI,MAAMwE,OAAN,CAAcgE,IAAd,CAA9C,IAAqEuO,cAAcvO,IAAd,CAFtE,CADF;;IAKA,UAAI,CAACsO,eAAL,EAAsB;IACpB,eAAO9O,OAAP;IACD;;IAED,aAAOC,aAAa,EAAb,EAAiBD,OAAjB,EAA0B;IAC/BQ,cAAMwO,KAAKC,SAAL,CAAejP,QAAQQ,IAAvB,CADyB;IAE/B8F,iBAASrG,aAAa,EAAb,EAAiBD,QAAQsG,OAAzB,EAAkC;IACzC,0BAAgB;IADyB,SAAlC;IAFsB,OAA1B,CAAP;IAMD;IAvBqB,GAAP;IAAA,CAAjB;;ICPApH,gBAAA,GAAiB;IAAA,SAAS;IACxB0O,gBAAY,8BAAY;IACtB,UAAMsB,cAAc5D,SAAShF,OAAT,CAAiB,cAAjB,KAAoC,EAAxD;IACA,UAAM6I,eAAgBpP,QAAQA,KAAKqP,KAAd,IAAwBF,YAAYtK,OAAZ,CAAoB,kBAApB,MAA4C,CAAC,CAA1F;IACA,UAAI,CAAC0G,SAAS9K,IAAV,IAAkB,CAAC0O,WAAnB,IAAkC,CAACC,YAAvC,EAAqD;IACnD,eAAO7D,QAAP;IACD;;IAED,aAAOrL,aAAa,EAAb,EAAiBqL,QAAjB,EAA2B,EAAC9K,MAAM6O,SAAS/D,SAAS9K,IAAlB,CAAP,EAA3B,CAAP;IACD,KATuB;;IAWxB4M,oBAAgB;IAAA,aACdnN,aAAa,EAAb,EAAiBD,OAAjB,EAA0B;IACxBsG,iBAASrG,aAAa,EAACqP,QAAQ,kBAAT,EAAb,EAA2CtP,QAAQsG,OAAnD;IADe,OAA1B,CADc;IAAA;IAXQ,GAAT;IAAA,CAAjB;;IAiBA,SAAS+I,QAAT,CAAkB7O,IAAlB,EAAwB;IACtB,MAAI;IACF,WAAOwO,KAAK9Q,KAAL,CAAWsC,IAAX,CAAP;IACD,GAFD,CAEE,OAAOyJ,GAAP,EAAY;IACZA,QAAIsF,OAAJ,gDAAyDtF,IAAIsF,OAA7D;IACA,UAAMtF,GAAN;IACD;IACF;;ICxBD,SAASuF,UAAT,CAAoBC,KAApB,EAA2B;IACzB,SAAO;IAAA,WAAS;IACdA,kBADc;IAEdC,eAASC,KAAKC,UAFA;IAGdC,aAAOF,KAAKlf,MAHE;IAIdqf,cAAQH,KAAKI,WAJC;IAKdC,wBAAkB,EAAEL,KAAKlf,MAAL,KAAgB,CAAhB,IAAqBkf,KAAKC,UAAL,KAAoB,CAA3C;IALJ,KAAT;IAAA,GAAP;IAOD;;IAED1Q,gBAAA,GAAiB;IAAA,SAAO;IACtB+Q,eAAW,mBAAC3E,QAAD,EAAW4E,GAAX,EAAmB;IAC5B,UAAMhE,WAAWI,eAAe,EAACvL,MAAM,EAAP,EAAf,CAAjB;IACA,UAAMoP,YAAYX,WAAW,UAAX,CAAlB;;IAEA;IACA;IACA,UAAMY,gBAAgB9E,SAAShF,OAAT,CAAiB,gBAAjB,CAAtB;IACA,UAAM7V,SAAS2f,iBAAiBxjB,OAAOwjB,aAAP,CAAhC;IACA,UAAI,CAACjP,MAAM1Q,MAAN,CAAD,IAAkBA,SAAS,CAA/B,EAAkC;IAChCyb,iBAASmE,SAAT,CAAmB5f,MAAnB;IACD;;IAEDyb,eAASoE,EAAT,CAAY,UAAZ,EAAwB;IAAA,eAAQJ,IAAI3G,OAAJ,CAAYW,QAAZ,CAAqBgC,QAArB,CAA8B4B,OAA9B,CAAsCqC,UAAUR,IAAV,CAAtC,CAAR;IAAA,OAAxB;IACA,aAAOrE,SAASa,IAAT,CAAcD,QAAd,CAAP;IACD,KAfqB;;IAiBtBqE,eAAW,wBAAO;IAChB,UAAI,CAACL,IAAIhE,QAAT,EAAmB;IACjB;IACD;;IAED,UAAMiE,YAAYX,WAAW,QAAX,CAAlB;IACAU,UAAIhE,QAAJ,CAAaoE,EAAb,CAAgB,UAAhB,EAA4B;IAAA,eAAQJ,IAAI3G,OAAJ,CAAYW,QAAZ,CAAqBgC,QAArB,CAA8B4B,OAA9B,CAAsCqC,UAAUR,IAAV,CAAtC,CAAR;IAAA,OAA5B;IACD;IAxBqB,GAAP;IAAA,CAAjB;;ICZAzQ,YAAA,GAAiB0N,YAAjB;;;ACGA;IACA;AACA;IACA,IAAI,SAAS,GAAG,OAAO,OAAO,KAAK,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/E,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C;IACA;AACA;IACA,IAAI,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAChD,IAAI,iBAAiB,KAAK,SAAS,EAAE;IACrC,EAAE,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAK,EAAE;IACxD,IAAI,IAAI,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAChC;IACA,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;IACnC,MAAM,YAAY,EAAE,IAAI;IACxB,MAAM,GAAG,EAAE,SAAS,QAAQ,GAAG;IAC/B,QAAQ,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AACpC;IACA;IACA,QAAQ,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACtC,UAAU,YAAY,EAAE,IAAI;IAC5B,UAAU,KAAK,EAAE,KAAK;IACtB,UAAU,QAAQ,EAAE,IAAI;IACxB,SAAS,CAAC,CAAC;AACX;IACA,QAAQ,OAAO,KAAK,CAAC;IACrB,OAAO;IACP,MAAM,GAAG,EAAE,SAAS,QAAQ,CAAC,KAAK,EAAE;IACpC,QAAQ,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;IACvC,UAAU,YAAY,EAAE,IAAI;IAC5B,UAAU,KAAK,EAAE,KAAK;IACtB,UAAU,QAAQ,EAAE,IAAI;IACxB,SAAS,CAAC,CAAC;IACX,OAAO;IACP,KAAK,CAAC,CAAC;IACP,GAAG,CAAC;IACJ,CAAC;AACD;IACA;AACA;IACA,SAAS,SAAS,CAAC,OAAO,EAAE;IAC5B,EAAE,IAAI,OAAO,KAAK,SAAS,EAAE;IAC7B,IAAI,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;IACpC,MAAM,YAAY,EAAE,IAAI;IACxB,MAAM,KAAK,EAAE,OAAO;IACpB,MAAM,QAAQ,EAAE,IAAI;IACpB,KAAK,CAAC,CAAC;IACP,GAAG;AACH;IACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE;IAClD,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;IACjC,MAAM,YAAY,EAAE,IAAI;IACxB,MAAM,KAAK,EAAE,KAAK;IAClB,MAAM,QAAQ,EAAE,IAAI;IACpB,KAAK,CAAC,CAAC;IACP,GAAG;AACH;IACA,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;AACD;IACA,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;IACrD;IACA,EAAE,WAAW,EAAE;IACf,IAAI,YAAY,EAAE,IAAI;IACtB,IAAI,KAAK,EAAE,SAAS;IACpB,IAAI,QAAQ,EAAE,IAAI;IAClB,GAAG;IACH,CAAC,CAAC,CAAC;AACH;IACA;AACA;IACA;IACA,IAAI,eAAe,GAAG,CAAC,WAAW;IAClC,EAAE,SAAS,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE;IACrC,IAAI,OAAO,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;IACtC,MAAM,YAAY,EAAE,IAAI;IACxB,MAAM,KAAK,EAAE,IAAI;IACjB,KAAK,CAAC,CAAC;IACP,GAAG;IACH,EAAE,IAAI;IACN,IAAI,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;IAC1B,IAAI,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;IAC1B,MAAM,OAAO,eAAe,CAAC;IAC7B,KAAK;IACL,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;IAChB,CAAC,GAAG,CAAC;AACL;IACA;AACA;IACA,SAAS,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE;IACxC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE;IAC1C,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;IAC3C,IAAI,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACvD,GAAG;AACH;IACA,EAAE,IAAI,IAAI,CAAC;IACX,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;IACvC,IAAI,IAAI,GAAG,WAAW,CAAC;IACvB,IAAI,WAAW;IACf,MAAM,SAAS,KAAK,SAAS;IAC7B,UAAU,WAAW;IACrB,YAAY,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,WAAW;IACX,UAAU,WAAW;IACrB,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,WAAW,CAAC;AACZ;IACA;IACA,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE;IACvC,MAAM,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,SAAS,CAAC;IACvB,KAAK;IACL,GAAG,MAAM,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAChD,IAAI,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAC/E,GAAG;AACH;IACA;IACA;IACA;IACA;IACA,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AACrD;IACA,EAAE,IAAI,UAAU,GAAG;IACnB,IAAI,WAAW,EAAE;IACjB,MAAM,YAAY,EAAE,IAAI;IACxB,MAAM,KAAK,EAAE,WAAW;IACxB,MAAM,QAAQ,EAAE,IAAI;IACpB,KAAK;IACL,GAAG,CAAC;AACJ;IACA;IACA;IACA,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;IAC1B,IAAI,UAAU,CAAC,IAAI,GAAG;IACtB,MAAM,YAAY,EAAE,IAAI;IACxB,MAAM,KAAK,EAAE,IAAI;IACjB,MAAM,QAAQ,EAAE,IAAI;IACpB,KAAK,CAAC;IACN,GAAG;IACH,EAAE,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACtE;IACA,EAAE,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;IACrC,iBAAiB,GAAG,SAAS;;;;IChJ7B,SAAS4D,aAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,IAAI,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,EAAEA,aAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,EAAEjT,YAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;AACD;IACA,SAASkT,aAAW,CAAC,GAAG,EAAE;IAC1B,EAAE,IAAI,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,EAAEA,aAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,EAAElT,YAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;AACD;IACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;IAChC,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,EAAE,IAAI,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,GAAG;IACjB,IAAI,UAAU,EAAE,GAAG,CAAC,UAAU;IAC9B,IAAI,YAAY,EAAEmT,eAAa,CAAC,IAAI,EAAE,GAAG,CAAC;IAC1C,GAAG,CAAC;AACJ;IACA,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;IAClC,IAAI,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;AACH;AACA;IACA,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IAC5C,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/B,IAAI,OAAO,KAAK,CAAC;IACjB,GAAG;AACH;AACA;IACA,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtE,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;IACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;IAC/B,EAAE,IAAI,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;IAC7E,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClI,CAAC;AACD;IACA,SAASA,eAAa,CAAC,IAAI,EAAE,GAAG,EAAE;IAClC,EAAE,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC;IACtE,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,EAAE,OAAO,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,CAAC;AACD;AACAC,eAAS,CAACH,aAAW,CAAC,CAAC;AACvBG,eAAS,CAACF,aAAW,CAAC,CAAC;IACvB,iBAAmB,GAAGD,aAAW,CAAC;IAClC,iBAAmB,GAAGC,aAAW;;;;;;;ICvDjC,IAAI,SAAS,GAAG;IAChB,CAAC,WAAW;IACZ,CAAC,YAAY;IACb,CAAC,YAAY;IACb,CAAC,iBAAiB;IAClB,CAAC,cAAc;IACf,CAAC,OAAO;IACR,CAAC,cAAc;IACf,CAAC,WAAW;IACZ,CAAC,CAAC;AACF;IACA,IAAI,SAAS,GAAG;IAChB,CAAC,WAAW;IACZ,CAAC,aAAa;AACd;IACA;IACA,CAAC,2BAA2B;IAC5B,CAAC,mBAAmB;IACpB,CAAC,kCAAkC;IACnC,CAAC,iCAAiC;IAClC,CAAC,oCAAoC;IACrC,CAAC,wBAAwB;IACzB,CAAC,uBAAuB;IACxB,CAAC,oBAAoB;IACrB,CAAC,kBAAkB;IACnB,CAAC,mBAAmB;IACpB,CAAC,iBAAiB;IAClB,CAAC,gCAAgC;IACjC,CAAC,+BAA+B;IAChC,CAAC,gCAAgC;IACjC,CAAC,gCAAgC;IACjC,CAAC,YAAY;IACb,CAAC,6BAA6B;IAC9B,CAAC,2BAA2B;IAC5B,CAAC,mCAAmC;IACpC,CAAC,iCAAiC;IAClC,CAAC,qBAAqB;IACtB,CAAC,cAAc;IACf,CAAC,YAAY;IACb,CAAC,sBAAsB;IACvB,CAAC,iBAAiB;IAClB,CAAC,gBAAgB;IACjB,CAAC,eAAe;IAChB,CAAC,CAAC;AACF;IACA,kBAAc,GAAG,UAAU,GAAG,EAAE;IAChC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACxB,EAAE,OAAO,IAAI,CAAC;IACd,EAAE;AACF;IACA,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IACzC,EAAE,OAAO,IAAI,CAAC;IACd,EAAE;AACF;IACA,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IACzC,EAAE,OAAO,KAAK,CAAC;IACf,EAAE;AACF;IACA,CAAC,OAAO,IAAI,CAAC;IACb,CAAC;;IC3DDvR,mBAAA,GAAiB,CAAC+K,GAAD,EAAM2G,GAAN,EAAW5Q,OAAX,KAAuB;IACtC,MAAIA,QAAQO,MAAR,KAAmB,KAAnB,IAA4BP,QAAQO,MAAR,KAAmB,MAAnD,EAA2D;IACzD,WAAO,KAAP;IACD;;IAED;IACA,MAAI0J,IAAIqB,QAAJ,IAAgBrB,IAAIqB,QAAJ,CAAajC,UAAjC,EAA6C;IAC3C,WAAO,KAAP;IACD;;IAED,SAAOwH,eAAQ5G,GAAR,CAAP;IACD,CAXD;;ICCA,MAAMP,WAAWoH,UACfA,WAAW,IAAX,IAAmB,OAAOA,MAAP,KAAkB,QAArC,IAAiD,OAAOA,OAAO3E,IAAd,KAAuB,UAD1E;;IAGA,MAAM4E,QAAQ,SAARA,KAAQ,GAAe;IAAA,MAAdhR,IAAc,uEAAP,EAAO;;IAC3B,QAAMiR,aAAajR,KAAKiR,UAAL,IAAmB,CAAtC;IACA,QAAMC,aAAalR,KAAKkR,UAAL,IAAmBC,aAAtC;IACA,QAAMC,aAAapR,KAAKqR,WAAL,IAAoBC,eAAvC;;IAEA,SAAO;IACLC,aAAS,CAACrH,GAAD,EAAMV,OAAN,KAAkB;IACzB,YAAMvJ,UAAUuJ,QAAQvJ,OAAxB;IACA,YAAM5R,MAAM4R,QAAQgR,UAAR,IAAsBA,UAAlC;IACA,YAAMI,cAAcpR,QAAQoR,WAAR,IAAuBD,UAA3C;IACA,YAAMI,gBAAgBvR,QAAQuR,aAAR,IAAyB,CAA/C;;IAEA;IACA,UAAI7H,SAAS1J,QAAQQ,IAAjB,CAAJ,EAA4B;IAC1B,eAAOyJ,GAAP;IACD;;IAED;IACA,UAAI,CAACmH,YAAYnH,GAAZ,EAAiBsH,aAAjB,EAAgCvR,OAAhC,CAAD,IAA6CuR,iBAAiBnjB,GAAlE,EAAuE;IACrE,eAAO6b,GAAP;IACD;;IAED;IACA,YAAMuH,aAAavR,aAAa,EAAb,EAAiBsJ,OAAjB,EAA0B;IAC3CvJ,iBAASC,aAAa,EAAb,EAAiBD,OAAjB,EAA0B,EAACuR,eAAeA,gBAAgB,CAAhC,EAA1B;IADkC,OAA1B,CAAnB;;IAIA;IACAE,iBAAW,MAAMlI,QAAQW,QAAR,CAAiBmB,OAAjB,CAAyByC,OAAzB,CAAiC0D,UAAjC,CAAjB,EAA+DP,WAAWM,aAAX,CAA/D;;IAEA;IACA,aAAO,IAAP;IACD;IA3BI,GAAP;IA6BD,CAlCD;;IAoCAR,MAAMK,WAAN,GAAoBC,eAApB;;IAEAnS,WAAA,GAAiB6R,KAAjB;;IAEA,SAASG,aAAT,CAAuBQ,UAAvB,EAAmC;IACjC,SAAO,MAAM/kB,KAAKglB,GAAL,CAAS,CAAT,EAAYD,UAAZ,CAAN,GAAgC/kB,KAAKilB,MAAL,KAAgB,GAAvD;IACD;;IChDD;IACA;IACA;AACA;IACA,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,MAAc,GAAG,SAAS,GAAG,EAAE,OAAO,EAAE;IACxC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC1B,EAAE,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;IACxB,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3C,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,GAAG,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;IACxD,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG;IACH,EAAE,MAAM,IAAI,KAAK;IACjB,IAAI,uDAAuD;IAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IACzB,GAAG,CAAC;IACJ,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;IACxB,IAAI,OAAO;IACX,GAAG;IACH,EAAE,IAAI,KAAK,GAAG,uHAAuH,CAAC,IAAI;IAC1I,IAAI,GAAG;IACP,GAAG,CAAC;IACJ,EAAE,IAAI,CAAC,KAAK,EAAE;IACd,IAAI,OAAO;IACX,GAAG;IACH,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9C,EAAE,QAAQ,IAAI;IACd,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,IAAI,CAAC;IACd,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,IAAI,CAAC;IACd,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,SAAS,CAAC;IACnB,IAAI,KAAK,QAAQ,CAAC;IAClB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,SAAS,CAAC;IACnB,IAAI,KAAK,QAAQ,CAAC;IAClB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,KAAK,GAAG;IACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,cAAc,CAAC;IACxB,IAAI,KAAK,aAAa,CAAC;IACvB,IAAI,KAAK,OAAO,CAAC;IACjB,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,IAAI;IACb,MAAM,OAAO,CAAC,CAAC;IACf,IAAI;IACJ,MAAM,OAAO,SAAS,CAAC;IACvB,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,QAAQ,CAAC,EAAE,EAAE;IACtB,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;IACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACpC,GAAG;IACH,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnB,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,OAAO,CAAC,EAAE,EAAE;IACrB,EAAE,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;IAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;IAC3B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;IAC3B,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,SAAS,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;IACd,IAAI,OAAO;IACX,GAAG;IACH,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE;IACpB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IAC3C,GAAG;IACH,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAC9C;;;ICtJA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;IACpF,cAAc,GAAG,MAAM,CAAC;IACxB,eAAe,GAAG,OAAO,CAAC;IAC1B,cAAc,GAAG,MAAM,CAAC;IACxB,eAAe,GAAG,OAAO,CAAC;IAC1B,gBAAgB,GAAGxU,EAAa,CAAC;AACjC;IACA;IACA;IACA;AACA;IACA,aAAa,GAAG,EAAE,CAAC;IACnB,aAAa,GAAG,EAAE,CAAC;AACnB;IACA;IACA;IACA;IACA;IACA;AACA;IACA,kBAAkB,GAAG,EAAE,CAAC;AACxB;IACA;IACA;IACA;AACA;IACA,IAAI,QAAQ,CAAC;AACb;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,WAAW,CAAC,SAAS,EAAE;IAChC,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB;IACA,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE;IACvB,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,IAAI,IAAI,CAAC,CAAC;IACd,GAAG;AACH;IACA,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,WAAW,CAAC,SAAS,EAAE;AAChC;IACA,EAAE,SAAS,KAAK,GAAG;IACnB;IACA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO;AAC/B;IACA,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC;AACrB;IACA;IACA,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC3B,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB;IACA;IACA,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK;AACL;IACA,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC;IACA,IAAI,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE;IACrC;IACA,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK;AACL;IACA;IACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,KAAK,EAAE,MAAM,EAAE;IACvE;IACA,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,KAAK,CAAC;IACvC,MAAM,KAAK,EAAE,CAAC;IACd,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,IAAI,UAAU,KAAK,OAAO,SAAS,EAAE;IAC3C,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,QAAQ,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1C;IACA;IACA,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,QAAQ,KAAK,EAAE,CAAC;IAChB,OAAO;IACP,MAAM,OAAO,KAAK,CAAC;IACnB,KAAK,CAAC,CAAC;AACP;IACA;IACA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC;IACA,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,GAAG;AACH;IACA,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,EAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACxC,EAAE,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AACvC;IACA;IACA,EAAE,IAAI,UAAU,KAAK,OAAO,OAAO,CAAC,IAAI,EAAE;IAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,GAAG;AACH;IACA,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,MAAM,CAAC,UAAU,EAAE;IAC5B,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3B;IACA,EAAE,aAAa,GAAG,EAAE,CAAC;IACrB,EAAE,aAAa,GAAG,EAAE,CAAC;AACrB;IACA,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjF,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AACzB;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IAChC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS;IAC5B,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/B,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM;IACX,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,KAAK;IACL,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,OAAO,GAAG;IACnB,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IACb,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IACxD,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACrC,MAAM,OAAO,KAAK,CAAC;IACnB,KAAK;IACL,GAAG;IACH,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IACxD,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACrC,MAAM,OAAO,IAAI,CAAC;IAClB,KAAK;IACL,GAAG;IACH,EAAE,OAAO,KAAK,CAAC;IACf,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,MAAM,CAAC,GAAG,EAAE;IACrB,EAAE,IAAI,GAAG,YAAY,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC;IAC5D,EAAE,OAAO,GAAG,CAAC;IACb;;;;;;;;;;;;ICzMA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,GAAG,cAAc,GAAGA,OAAkB,CAAC;IAC9C,WAAW,GAAG,GAAG,CAAC;IAClB,kBAAkB,GAAG,UAAU,CAAC;IAChC,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,GAAG,IAAI,CAAC;IACpB,iBAAiB,GAAG,SAAS,CAAC;IAC9B,eAAe,GAAG,WAAW,IAAI,OAAO,MAAM;IAC9C,kBAAkB,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO;IACtD,oBAAoB,MAAM,CAAC,OAAO,CAAC,KAAK;IACxC,oBAAoB,YAAY,EAAE,CAAC;AACnC;IACA;IACA;IACA;AACA;IACA,cAAc,GAAG;IACjB,EAAE,eAAe;IACjB,EAAE,aAAa;IACf,EAAE,WAAW;IACb,EAAE,YAAY;IACd,EAAE,YAAY;IACd,EAAE,SAAS;IACX,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,SAAS,GAAG;IACrB;IACA;IACA;IACA,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;IAC7F,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA;IACA,EAAE,OAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB;IAC1J;IACA,KAAK,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACvI;IACA;IACA,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3J;IACA,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/H,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE;IACnC,EAAE,IAAI;IACN,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,GAAG,CAAC,OAAO,GAAG,EAAE;IAChB,IAAI,OAAO,8BAA8B,GAAG,GAAG,CAAC,OAAO,CAAC;IACxD,GAAG;IACH,CAAC,CAAC;AACF;AACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC;IACA,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE;IAClC,MAAM,IAAI,CAAC,SAAS;IACpB,OAAO,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;IAC/B,MAAM,IAAI,CAAC,CAAC,CAAC;IACb,OAAO,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC;IACA,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO;AACzB;IACA,EAAE,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IACjC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAC;AACxC;IACA;IACA;IACA;IACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAChB,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAChB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,KAAK,EAAE;IACjD,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,OAAO;IAC/B,IAAI,KAAK,EAAE,CAAC;IACZ,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;IACxB;IACA;IACA,MAAM,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK;IACL,GAAG,CAAC,CAAC;AACL;IACA,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,GAAG,GAAG;IACf;IACA;IACA,EAAE,OAAO,QAAQ,KAAK,OAAO,OAAO;IACpC,OAAO,OAAO,CAAC,GAAG;IAClB,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,IAAI,CAAC,UAAU,EAAE;IAC1B,EAAE,IAAI;IACN,IAAI,IAAI,IAAI,IAAI,UAAU,EAAE;IAC5B,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,MAAM;IACX,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;IACzC,KAAK;IACL,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;IACf,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,IAAI,GAAG;IAChB,EAAE,IAAI,CAAC,CAAC;IACR,EAAE,IAAI;IACN,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;AACf;IACA;IACA,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,IAAI,OAAO,EAAE;IAChE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B,GAAG;AACH;IACA,EAAE,OAAO,CAAC,CAAC;IACX,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACvB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,YAAY,GAAG;IACxB,EAAE,IAAI;IACN,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC;IAC/B,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;IAChB;;;;;;;;;;;ICxLA;IACA;IACA;AACA;AACyB;AACE;AAC3B;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,GAAG,cAAc,GAAGA,OAAkB,CAAC;IAC9C,YAAY,GAAG,IAAI,CAAC;IACpB,WAAW,GAAG,GAAG,CAAC;IAClB,kBAAkB,GAAG,UAAU,CAAC;IAChC,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,GAAG,IAAI,CAAC;IACpB,iBAAiB,GAAG,SAAS,CAAC;AAC9B;IACA;IACA;IACA;AACA;IACA,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC;IACA;IACA;IACA;IACA;IACA;AACA;IACA,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;IACrE,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE;IAC9B;IACA,EAAE,IAAI,IAAI,GAAG,GAAG;IAChB,KAAK,SAAS,CAAC,CAAC,CAAC;IACjB,KAAK,WAAW,EAAE;IAClB,KAAK,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACtE;IACA;IACA,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,EAAE,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvD,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;IAC/D,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IACtC,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB;IACA,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAClB,EAAE,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACP;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACjD;IACA,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;IAC1B,EAAEkB,wBAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,yKAAyK,CAAC,GAAE;IAC3M,CAAC;AACD;IACA,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM;IACtC,aAAa,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM;IACtC,aAAa,yBAAyB,CAAC,EAAE,CAAC,CAAC;AAC3C;IACA;IACA;IACA;AACA;IACA,SAAS,SAAS,GAAG;IACrB,EAAE,OAAO,QAAQ,IAAI,OAAO,CAAC,WAAW;IACxC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;IACzC,MAAM2D,uBAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE;IACnC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3C,EAAE,OAAO3D,wBAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;IAC1C,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE;IACvB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,CAAC;AACF;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE;IACnC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3C,EAAE,OAAOA,wBAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5B,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,IAAI,MAAM,GAAG,YAAY,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,CAAC;AACrE;IACA,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IACjF,GAAG,MAAM;IACT,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACtC,QAAQ,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,SAAS,GAAG,GAAG;IACf,EAAE,OAAO,MAAM,CAAC,KAAK,CAACA,wBAAI,CAAC,MAAM,CAAC,KAAK,CAACA,wBAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,IAAI,CAAC,UAAU,EAAE;IAC1B,EAAE,IAAI,IAAI,IAAI,UAAU,EAAE;IAC1B;IACA;IACA,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B,GAAG,MAAM;IACT,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC;IACnC,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,IAAI,GAAG;IAChB,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,yBAAyB,EAAE,EAAE,EAAE;IACxC,EAAE,IAAI,MAAM,CAAC;IACb,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7C;IACA;AACA;IACA,EAAE,QAAQ,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IACtC,IAAI,KAAK,KAAK;IACd,MAAM,MAAM,GAAG,IAAI2D,uBAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B;IACA;IACA;IACA,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;IAClD,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,OAAO;IACP,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,MAAM;IACf,MAAM,IAAI,EAAE,GAAGC,sBAAa,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IAC1B,MAAM,MAAM;AACZ;IACA,IAAI,KAAK,MAAM,CAAC;IAChB,IAAI,KAAK,KAAK;IACd,MAAM,IAAI,GAAG,GAAGQ,uBAAc,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,EAAE,EAAE;IACd,QAAQ,QAAQ,EAAE,KAAK;IACvB,QAAQ,QAAQ,EAAE,IAAI;IACtB,OAAO,CAAC,CAAC;AACT;IACA;IACA;IACA;IACA;IACA,MAAM,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,MAAM,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;AAC5B;IACA;IACA;IACA,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;IAClD,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,OAAO;IACP,MAAM,MAAM;AACZ;IACA,IAAI;IACJ;IACA,MAAM,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACjE,GAAG;AACH;IACA;IACA,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB;IACA,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB;IACA,EAAE,OAAO,MAAM,CAAC;IAChB,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,IAAI,EAAE,KAAK,EAAE;IACtB,EAAE,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;AACzB;IACA,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,GAAG;IACH,CAAC;AACD;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;;;;;;;;;;;;ICvPtB;IACA;IACA;IACA;AACA;IACA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;IACnE,EAAE,cAAc,GAAGtF,SAAuB,CAAC;IAC3C,CAAC,MAAM;IACP,EAAE,cAAc,GAAG8E,IAAoB,CAAC;IACxC;;;ICPA,MAAM2P,oBAAoB,CAAC,QAAD,EAAW,eAAX,CAA1B;;IAEA,MAAMC,SAASlb,OAAOiJ,SAAP,CAAiB5C,cAAhC;IACA,MAAM8U,aAAa,CAACC,MAAD,EAASnb,IAAT,KAAkB;IACnC,QAAMuK,SAAS,EAAf;IACA,OAAK,MAAM7K,GAAX,IAAkByb,MAAlB,EAA0B;IACxB,QAAIF,OAAOnf,IAAP,CAAYqf,MAAZ,EAAoBzb,GAApB,CAAJ,EAA8B;IAC5B6K,aAAO7K,GAAP,IAAcM,KAAK+N,OAAL,CAAarO,GAAb,IAAoB,CAAC,CAArB,GAAyB,YAAzB,GAAwCyb,OAAOzb,GAAP,CAAtD;IACD;IACF;IACD,SAAO6K,MAAP;IACD,CARD;;IAUAlC,SAAA,GAAiB,YAAe;IAAA,MAAda,IAAc,uEAAP,EAAO;;IAC9B,QAAMkS,UAAUlS,KAAKkS,OAArB;IACA,QAAMC,YAAYnS,KAAKmS,SAAL,IAAkB,QAApC;IACA,QAAMC,gBAAgBC,IAAQF,SAAR,CAAtB;IACA,QAAMG,MAAMtS,KAAKsS,GAAL,IAAYF,aAAxB;IACA,QAAMG,eAAeD,QAAQF,aAAR,IAAyB,CAACC,IAAQG,OAAR,CAAgBL,SAAhB,CAA/C;IACA,MAAIM,YAAY,CAAhB;;IAEA,SAAO;IACLpF,oBAAgBpN,WAAW;IACzBA,cAAQmC,KAAR,GAAgBkQ,GAAhB;IACArS,cAAQwS,SAAR,GAAoBxS,QAAQwS,SAAR,IAAqB,EAAEA,SAA3C;IACA,aAAOxS,OAAP;IACD,KALI;;IAOLuQ,eAAWlb,SAAS;IAClB;IACA,UAAIid,gBAAgB,CAACjd,KAArB,EAA4B;IAC1B,eAAOA,KAAP;IACD;;IAED,YAAM2K,UAAU3K,MAAM2K,OAAtB;;IAEAqS,UAAI,iBAAJ,EAAuBrS,QAAQwS,SAA/B,EAA0CxS,QAAQO,MAAlD,EAA0DP,QAAQE,GAAlE;;IAEA,UAAI+R,WAAWjS,QAAQQ,IAAnB,IAA2B,OAAOR,QAAQQ,IAAf,KAAwB,QAAvD,EAAiE;IAC/D6R,YAAI,uBAAJ,EAA6BrS,QAAQwS,SAArC,EAAgDxS,QAAQQ,IAAxD;IACD;;IAED,UAAIyR,WAAWjS,QAAQsG,OAAvB,EAAgC;IAC9B,cAAMA,UACJvG,KAAK0S,sBAAL,KAAgC,KAAhC,GACIzS,QAAQsG,OADZ,GAEIyL,WAAW/R,QAAQsG,OAAnB,EAA4BuL,iBAA5B,CAHN;;IAKAQ,YAAI,0BAAJ,EAAgCrS,QAAQwS,SAAxC,EAAmDxD,KAAKC,SAAL,CAAe3I,OAAf,EAAwB,IAAxB,EAA8B,CAA9B,CAAnD;IACD;;IAED,aAAOjR,KAAP;IACD,KA/BI;;IAiCLuY,gBAAY,CAACzE,GAAD,EAAMI,OAAN,KAAkB;IAC5B;IACA,UAAI+I,gBAAgB,CAACnJ,GAArB,EAA0B;IACxB,eAAOA,GAAP;IACD;;IAED,YAAMuJ,QAAQnJ,QAAQvJ,OAAR,CAAgBwS,SAA9B;;IAEAH,UAAI,2BAAJ,EAAiCK,KAAjC,EAAwCvJ,IAAIE,UAA5C,EAAwDF,IAAIG,aAA5D;;IAEA,UAAI2I,WAAW9I,IAAI3I,IAAnB,EAAyB;IACvB6R,YAAI,wBAAJ,EAA8BK,KAA9B,EAAqChC,cAAcvH,GAAd,CAArC;IACD;;IAED,aAAOA,GAAP;IACD,KAhDI;;IAkDLmI,aAAS,CAACrH,GAAD,EAAMV,OAAN,KAAkB;IACzB,YAAMmJ,QAAQnJ,QAAQvJ,OAAR,CAAgBwS,SAA9B;IACA,UAAI,CAACvI,GAAL,EAAU;IACRoI,YAAI,8DAAJ,EAAoEK,KAApE;IACA,eAAOzI,GAAP;IACD;;IAEDoI,UAAI,gBAAJ,EAAsBK,KAAtB,EAA6BzI,IAAIsF,OAAjC;IACA,aAAOtF,GAAP;IACD;IA3DI,GAAP;IA6DD,CArED;;IAuEA,SAASyG,aAAT,CAAuBvH,GAAvB,EAA4B;IAC1B,QAAM+F,cAAc,CAAC/F,IAAI7C,OAAJ,CAAY,cAAZ,KAA+B,EAAhC,EAAoCpC,WAApC,EAApB;IACA,QAAMyO,SAASzD,YAAYtK,OAAZ,CAAoB,kBAApB,MAA4C,CAAC,CAA5D;IACA,SAAO+N,SAASC,UAAUzJ,IAAI3I,IAAd,CAAT,GAA+B2I,IAAI3I,IAA1C;IACD;;IAED;IACA,SAASoS,SAAT,CAAmBpS,IAAnB,EAAyB;IACvB,MAAI;IACF,UAAMqS,SAAS,OAAOrS,IAAP,KAAgB,QAAhB,GAA2BwO,KAAK9Q,KAAL,CAAWsC,IAAX,CAA3B,GAA8CA,IAA7D;IACA,WAAOwO,KAAKC,SAAL,CAAe4D,MAAf,EAAuB,IAAvB,EAA6B,CAA7B,CAAP;IACD,GAHD,CAGE,OAAO5I,GAAP,EAAY;IACZ,WAAOzJ,IAAP;IACD;IACF;;IClGDtB,WAAA,GAAiB,UAACoH,OAAD;IAAA,MAAUvG,IAAV,uEAAiB,EAAjB;IAAA,SAAyB;IACxCqN,oBAAgBpN,WAAW;IACzB,YAAM8S,WAAW9S,QAAQsG,OAAR,IAAmB,EAApC;IACAtG,cAAQsG,OAAR,GAAkBvG,KAAKgT,QAAL,GACd9S,aAAa,EAAb,EAAiB6S,QAAjB,EAA2BxM,OAA3B,CADc,GAEdrG,aAAa,EAAb,EAAiBqG,OAAjB,EAA0BwM,QAA1B,CAFJ;;IAIA,aAAO9S,OAAP;IACD;IARuC,GAAzB;IAAA,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICQA,IAAIb,YAAU,GAAG,CAAC,KAAK,CAAC;IACxB,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,SAAS,EAAE,eAAe;IAC5B,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,EAAE,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5D,CAAC,CAAC,EAAE4R,OAAK,CAAC;IACV,EAAE,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;IACJ,kBAAc,GAAG5R,YAAU;;IChB3B;AAC8B;AAC9B;AACsC;AACtC;AAC6D;AAC7D;AAC+D;AAC/D;AACiE;AACjE;AACyD;AACzD;AACuD;AACvD;IACA,IACI,WAAW,GAAGzB,MAAQ,CAAC,WAAW;IACtC,IAAI,WAAW,GAAGA,MAAQ,CAAC,WAAW,CAAC;AACvC;IACA,IAAI,SAAS,GAAG;IAChB,EAAE,UAAU,EAAE,SAAS,UAAU,CAAC,GAAG,EAAE;IACvC,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE;IAC/B,MAAM,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE;IACtC,MAAM,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK;AACL;IACA,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;IACH,CAAC,CAAC;IACF,IAAI,aAAa,GAAG;IACpB,EAAE,UAAU,EAAE,SAAS,UAAU,CAAC,GAAG,EAAE;IACvC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;IACpD,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,CAAC,CAAC;AACP;IACA,IAAI,OAAO,GAAG,CAAC;IACf,GAAG;IACH,CAAC,CAAC;AACF;AAC8C;AAC9C;IACA,IAAI,UAAU,GAAGsV,cAAW,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;IACrH,EAAE,cAAc,EAAEnU,OAAU;IAC5B,CAAC,CAAC,CAAC,CAAC,CAAC;IACL,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAChC;IACA,SAAS,WAAW,CAAC,OAAO,EAAE;IAC9B,EAAE,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAC9F,EAAE,OAAO,SAAS,CAACtB,YAAM,CAAC;IAC1B,IAAI,YAAY,EAAE,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACf,CAAC;AACD;IACA,WAAW,CAAC,gBAAgB,GAAG,OAAO,CAAC;IACvC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IACtC,aAAc,GAAG,WAAW;;ICzD5B,IAAI,aAAa,GAAG,qBAAqB,CAAC;AAC1C;IACA,kBAAc,GAAG,UAAU,MAAM,EAAE;IACnC,EAAE,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;IACnB,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;AAC9C;IACA,EAAE,IAAI,KAAK,EAAE;IACb,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,GAAG;AACH;IACA,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,SAAS,EAAE;IACjF,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9C,GAAG;AACH;IACA,EAAE,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,SAAS,CAAC,eAAe,KAAK,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IACvJ,EAAE,IAAI,OAAO,GAAG,OAAO,SAAS,CAAC,OAAO,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAC9F,EAAE,OAAOA,YAAM,CAAC,EAAE,EAAE,SAAS,EAAE;IAC/B,IAAI,OAAO,EAAEA,YAAM,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;IACzD,IAAI,OAAO,EAAE,OAAO,OAAO,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,OAAO;IACrE,IAAI,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;IAC1C,IAAI,IAAI,EAAE,IAAI;IACd,IAAI,eAAe,EAAE,eAAe;IACpC,GAAG,CAAC,CAAC;IACL,CAAC;;ICtBD,IAAI,oBAAoB,GAAG,SAAS,oBAAoB,CAAC,OAAO,EAAE;IAClE,EAAE;IACF,IAAI,IAAI,CAAC,YAAY;IACrB,MAAM,IAAI,QAAQ,CAAC;AACnB;IACA,MAAM,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;IAC/F,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO;AACP;IACA,MAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,KAAK,CAAC;IACN,IAAI;IACJ,CAAC,CAAC;AACF;IACA,mBAAuB,GAAG,oBAAoB,CAAC,CAAC,mGAAmG,EAAE,8CAA8C,CAAC,MAAM,CAAC,eAAe,CAAC,6BAA6B,CAAC,EAAE,GAAG,CAAC,EAAE,gGAAgG,EAAE,aAAa,CAAC,CAAC,CAAC;IACnX,4BAAgC,GAAG,oBAAoB,CAAC,CAAC,gHAAgH,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,yBAAyB,CAAC,EAAE,qDAAqD,CAAC,CAAC,CAAC,CAAC;IAC9R,wBAA4B,GAAG,oBAAoB,CAAC,CAAC,6FAA6F,EAAE,gGAAgG,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC3U,qCAAyC,GAAG,oBAAoB,CAAC,CAAC,0EAA0E,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;ACtBvM;AAC2D;AAC3D;AACsC;AACtC;AACuC;AACvC;AACqC;AACrC;IACA,IAAI,cAAc,GAAG,kBAAkB,CAAC;IACxC,IAAI,aAAa,GAAG;IACpB,EAAE,OAAO,EAAE,uBAAuB;IAClC,EAAE,UAAU,EAAE,GAAG;IACjB,EAAE,kBAAkB,EAAE,IAAI;IAC1B,EAAE,YAAY,EAAE,KAAK;IACrB,EAAE,YAAY,EAAE,IAAI;IACpB,CAAC,CAAC;IACF,IAAI,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACvD;IACA,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,IAAI,EAAE;IACrC,EAAE,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;AACF;IACA,qBAAqB,GAAG,aAAa,CAAC;AACtC;IACA,kBAAkB,GAAG,UAAU,MAAM,EAAE,UAAU,EAAE;IACnD,EAAE,IAAI,eAAe,GAAGA,YAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACvD;IACA,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;IACnC,IAAI,QAAQ,CAAC,iCAAiC,EAAE,CAAC;IACjD,GAAG;AACH;IACA,EAAE,IAAI,SAAS,GAAGA,YAAM,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAC7D,EAAE,IAAI,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,EAAE,IAAI,YAAY,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;AACnE;IACA,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;IACtC,IAAI,IAAI,OAAO,GAAG,eAAe,CAAC,4BAA4B,CAAC,CAAC;IAChE,IAAI,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACtG,GAAG;AACH;IACA,EAAE,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IAC5C,IAAI,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC5F,GAAG;AACH;IACA,EAAE,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IAC5C,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,GAAG;AACH;IACA,EAAE,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/F,EAAE,IAAI,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnE;IACA,EAAE,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,yBAAyB,KAAK,IAAI,EAAE;IACnG,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;IACxC,GAAG,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,WAAW,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE;IACjF,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACpC,GAAG,MAAM,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,WAAW,EAAE;IACtD,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,YAAY,EAAE;IACpB,IAAID,UAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,GAAG;AACH;IACA,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,EAAE;IAC1C,IAAIA,UAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAChE,GAAG;AACH;IACA,EAAE,IAAI,kBAAkB,IAAI,SAAS,EAAE;IACvC;IACA,IAAI,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,GAAGA,UAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9I,GAAG;AACH;IACA,EAAE,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3E,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC,OAAO,CAAC;IACvE,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;IACjG,EAAE,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACnD;IACA,EAAE,IAAI,SAAS,CAAC,YAAY,EAAE;IAC9B,IAAI,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;IACtC,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;IACzC,GAAG,MAAM;IACT,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC;AACjE;IACA,IAAI,IAAI,SAAS,CAAC,kBAAkB,EAAE;IACtC,MAAM,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClI,MAAM,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxI,KAAK,MAAM;IACX,MAAM,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;IACvC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACF;IACA,0BAA0B,GAAG,SAAS,kBAAkB,CAAC,UAAU,EAAE;IACrE,EAAE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE;IAChD,IAAI,OAAO;IACX,GAAG;AACH;IACA,EAAE,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,EAAE,IAAI,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,YAAY,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnH;IACA,EAAE,IAAI,CAAC,eAAe,EAAE;IACxB,IAAI,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC/F,GAAG;IACH,CAAC;;;;;;IC7GD,SAAS,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE;AACzV;IACA,SAAS,aAAa,CAAC,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,yBAAyB,EAAE,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE;AACthB;IACA,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE;AACjN;AACsC;AACtC;IACA,IACI,MAAM,GAAGI,QAAQ,CAAC,MAAM,CAAC;AAC7B;IACA,IACI,GAAG,GAAGC,KAAS,CAAC,GAAG,CAAC;AACxB;AACoC;AACpC;AACgD;AAChD;AACgD;AAChD;AAC0D;AAC1D;AAC0D;AAC1D;AACoD;AACpD;AACiD;AACjD;AAC8C;AAC9C;AAC4C;AAC5C;AACyD;AACzD;IACA,IACI,aAAa,GAAGC,MAAS,CAAC,aAAa;IAC3C,IAAI,UAAU,GAAGA,MAAS,CAAC,UAAU,CAAC;AACtC;AACuC;AACvC;IACA,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,UAAU,EAAE;IAC/C,EAAE,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC,CAAC;AACF;IACA,SAAS,YAAY,GAAG;IACxB,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;AACjG;IACA,EAAE,IAAI,EAAE,IAAI,YAAY,YAAY,CAAC,EAAE;IACvC,IAAI,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,GAAG;AACH;IACA,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAIqV,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAIC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAIC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,EAAE,IAAI,CAAC,KAAK,GAAG,IAAIC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAIC,UAAU,CAAC,IAAI,CAAC,CAAC;AACnC;IACA,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;IACtC,IAAI,IAAI,gBAAgB,GAAG9V,YAAM,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE;IACzD,MAAM,YAAY,EAAE,KAAK;IACzB,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzD,GAAG;IACH,CAAC;AACD;AACAA,gBAAM,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAC5CA,gBAAM,CAAC,YAAY,CAAC,SAAS,EAAE;IAC/B,EAAE,KAAK,EAAE,SAAS,KAAK,GAAG;IAC1B,IAAI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE;IACrC,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;IAC1C,MAAM,OAAOA,YAAM,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK;AACL;IACA,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB,MAAM,IAAI,gBAAgB,GAAGA,YAAM,CAAC,EAAE,EAAE,SAAS,EAAE;IACnD,QAAQ,YAAY,EAAE,KAAK;IAC3B,OAAO,CAAC,CAAC;IACT,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC/C,KAAK;AACL;IACA,IAAI,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;IACH,EAAE,UAAU,EAAE,SAAS,UAAU,CAAC,SAAS,EAAE;IAC7C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,GAAG;IACH,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE;IAC/B,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9F,IAAI,IAAI,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;IAC5E,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,GAAG;IACH,EAAE,YAAY,EAAE,SAAS,YAAY,GAAG;IACxC,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;IAC1C,GAAG;IACH,EAAE,kBAAkB,EAAE,SAAS,kBAAkB,CAAC,OAAO,EAAE;IAC3D,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACzC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrI,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AAClL;IACA,IAAI,IAAI,GAAG,EAAE;IACb,MAAM,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;IACpC,QAAQ,GAAG,EAAED,UAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,KAAK;AACL;IACA,IAAI,IAAI,UAAU,GAAGgW,cAAiB,CAAC,IAAI,CAAC,YAAY,EAAE/V,YAAM,CAAC,EAAE,EAAE,OAAO,EAAE;IAC9E,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;IACtC,KAAK,CAAC,CAAC,CAAC;IACR,IAAI,OAAOoQ,SAAW,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAChE,GAAG;IACH,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,OAAO,EAAE;IACrC,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE;IACnF,MAAM,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;IACvC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,KAAK,EAAE;IAC7B,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC;IACxB,KAAK,CAAC,CAAC,CAAC;AACR;IACA,IAAI,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACpE,GAAG;IACH,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,KAAK,GAAGlQ,KAAK,CAAC;IAC3B,YAAY,CAAC,WAAW,GAAGsB,WAAW,CAAC;IACvC,YAAY,CAAC,WAAW,GAAG4O,SAAW,CAAC,WAAW,CAAC;IACnD,YAAY,CAAC,WAAW,GAAGA,SAAW,CAAC,WAAW,CAAC;IACnD,YAAY,CAAC,SAAS,GAAGA,SAAW,CAAC,gBAAgB,CAAC;IACtD,gBAAc,GAAG,YAAY;;IC1H7B,IAAM,WAAW,GAAG,UAAC,KAAa,EAAE,IAAY,EAAE,OAAe;QAC/D,OAAA4F,UAAK,CAAC;YACJ,OAAAC,YAAM,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxB,GAAG,EAAE,0CAAwC,kBAAkB,CAC7D,KAAK,CACN,cAAS,IAAI,kBAAa,OAAS;gBACpC,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,KAAK;aACd,CAAC;SAAA,CACH;IARD,CAQC,CAAA;IAEH,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,IAAY,EAAE,OAAe;QAC5D,OAAAD,UAAK,CAAC;YACJ,OAAAC,YAAM,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxB,GAAG,EAAE,sCAAoC,IAAI,cAAS,IAAI,kBAAa,OAAS;gBAChF,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,KAAK;aACd,CAAC;SAAA,CACH;IAND,CAMC,CAAA;aAEa,gBAAgB,CAAC,KAAoB;QACnD,IAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CACvD,0BAA0B,EAC1B,kBAAkB,CACnB,CAAA;QACD,OAAOA,YAAM;aACV,OAAO,CAAC;YACP,GAAG,EAAE,WAAW;YAChB,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,KAAK;SACd,CAAC;aACD,IAAI,CAAC,UAAC,MAAuB;YAC5B,OAAO,MAAM,CAAC,GAAG,CAAA;SAClB,CAAC,CAAA;IACN,CAAC;IAIM,IAAM,MAAM,GAAG,UACpB,KAAoB,EACpB,IAAiB,EACjB,cAAsB;QAEtB,OAAOlgB,WAAM,CACX,KAAK,CAAC,IAAI,CACRmgB,wBAAc,CAAC,IAAI,CAAC,EACpBC,sBAAY,CAAC,GAAG,CAAC,EACjBC,8BAAoB,EAAE,EACtBC,mBAAS,CAAC,UAAC,EAAM;gBAAL,CAAC,QAAA,EAAE,CAAC,QAAA;YACd,IAAI,CAAC,EAAE;gBACL,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,CAC3CD,8BAAoB,EAAE,EACtBthB,aAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,OAAO,GAAA,CAAC,CAC9B,CAAA;aACF;YACD,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;SAC/C,CAAC,CACH,CACF,CAAA;IACH,CAAC;;IChEM,IAAM,MAAM,GAAGuK,0BAAM,CAACiX,QAAK,CAAC,0HAAA,mDAIlC,IAAA,CAAA;AAEuBjX,8BAAM,CAAC,GAAG,iHAAA,8CAGjC,KAAA;;;ICZD;;;;;;;;;;;;;;;;IAgBA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;QAC/B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B,CAAC;;IAEK,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;QAC5B,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;KACxF;;IAED,IAAW,QAAQ,GAAG,WAAW;QAC7B,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;YAC7C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;UACZ;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC1C;;ICtCD;;;;;;;;;;;;;;;;;;IAkBA,SAAS,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE;;;;;;MAM5D,IAAI,SAAS,CAAC;MACd,IAAI,SAAS,GAAG,KAAK,CAAC;;MAEtB,IAAI,QAAQ,GAAG,CAAC,CAAC;;MAEjB,SAAS,oBAAoB,GAAG;QAC9B,IAAI,SAAS,EAAE;UACb,YAAY,CAAC,SAAS,CAAC,CAAC;SACzB;OACF;;;MAGD,SAAS,MAAM,GAAG;QAChB,oBAAoB,EAAE,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC;OAClB;;;MAGD,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE;QACnC,YAAY,GAAG,QAAQ,CAAC;QACxB,QAAQ,GAAG,UAAU,CAAC;QACtB,UAAU,GAAG,SAAS,CAAC;OACxB;;;;;;;;MAQD,SAAS,OAAO,GAAG;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QACpC,IAAI,IAAI,GAAG,SAAS,CAAC;;QAErB,IAAI,SAAS,EAAE;UACb,OAAO;SACR;;;QAGD,SAAS,IAAI,GAAG;UACd,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;UACtB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC5B;;;;;;;QAOD,SAAS,KAAK,GAAG;UACf,SAAS,GAAG,SAAS,CAAC;SACvB;;QAED,IAAI,YAAY,IAAI,CAAC,SAAS,EAAE;;;;;UAK9B,IAAI,EAAE,CAAC;SACR;;QAED,oBAAoB,EAAE,CAAC;;QAEvB,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,EAAE;;;;;UAKjD,IAAI,EAAE,CAAC;SACR,MAAM,IAAI,UAAU,KAAK,IAAI,EAAE;;;;;;;;;;;;UAY9B,SAAS,GAAG,UAAU,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,EAAE,YAAY,KAAK,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;SAC3G;OACF;;MAED,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;;MAExB,OAAO,OAAO,CAAC;KAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICtFD,IAAM,gBAAgB,GAAG,EAAE,CAAA;IAC3B,IAAM,aAAa,GAAG,CAAC,CAAA;IACvB,IAAM,aAAa,GAAG,CAAC,CAAA;IAEvB;QAAiDE,yCAA6B;QAA9E;YAAA,qEAkMC;YA7LC,WAAK,GAAG;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,CAAC;gBACP,aAAa,EAAE,CAAC,EAAE,CAAC;gBACnB,SAAS,EAAE,IAAI;aAChB,CAAA;YAED,wBAAkB,GAAwB,IAAI,CAAA;YAE9C,oBAAc,GAAG,IAAIgX,oBAAe,CAAC,EAAE,CAAC,CAAA;YACxC,kBAAY,GAAG,IAAIA,oBAAe,CAAC,CAAC,CAAC,CAAA;YAwBrC,kBAAY,GAAG,UAAC,KAAoB;gBAClC,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,WAAW;oBAC7C,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,SAAS,CAAA;oBAClD,IAAM,KAAK,GAAU;wBACnB,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,WAAW;wBAClB,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,UAAU;gCAChB,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;6BACtB;4BACD,WAAW,aAAA;4BACX,UAAU,EAAK,KAAK,CAAC,IAAI,CAAC,IAAI,iBAAc;yBAC7C;qBACF,CAAA;oBACD,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;iBAC7B,CAAC,CAAA;aACH,CAAA;YAED,iBAAW,GAAG;gBACZ,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;aACrB,CAAA;YAED,6BAAuB,GAAG,UAAC,KAA0C;gBACnE,IAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAA;gBACvC,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAA,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;gBAClF,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACzB,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAChC,CAAA;YAED,2BAAqB,GAAG;gBACtB,IAAM,QAAQ,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;gBACpC,KAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBAClD,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAChC,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;aAC3C,CAAA;YAED,mBAAa,GAAG,UAAC,KAAU;gBACjB,IAAA,MAAM,GAAK,KAAI,CAAC,KAAK,OAAf,CAAe;gBAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,KAAK,MAAM,GAAG,CAAC,EAAE;oBAChE,KAAI,CAAC,QAAQ,CAAC,UAAA,SAAS,IAAI,QAAC;wBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;qBAC7B,IAAC,CAAC,CAAA;iBACJ;qBAAM,IACL,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;oBAC7C,MAAM,GAAG,KAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EACpC;oBACA,KAAI,CAAC,QAAQ,CAAC,UAAA,SAAS,IAAI,QAAC;wBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;qBAC7B,IAAC,CAAC,CAAA;iBACJ;aACF,CAAA;YAMD,kBAAY,GAAG,UAAC,KAAoB;gBAClC,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,GAAA,CAAC,CAAA;gBAC3F,KAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;aACjC,CAAA;YAED,iBAAW,GAAG,UAAC,KAAU;gBACf,IAAA,KAAK,GAAa,KAAK,MAAlB,EAAE,MAAM,GAAK,KAAK,OAAV,CAAU;gBAC/B,IAAM,MAAM,GACV,KAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAA,CAAC;oBAClF,KAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAA;gBAC5B,QACE/W,wCAAC,KAAK,IACJ,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3C,SAAS,EAAE,KAAI,CAAC,aAAa,EAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,KAAI,CAAC,YAAY,GAC1B,EACH;aACF,CAAA;;SA0EF;QAhLC,+CAAiB,GAAjB;YAAA,iBAcC;YAbC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAC9B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,YAAY,EACjB,gBAAgB,CACjB,CAAC,SAAS,CAAC;gBACV,IAAI,EAAE,UAAC,OAAwB;oBAC7B,IAAM,aAAa,kBAAO,KAAI,CAAC,KAAK,CAAC,aAAa,GAAE,OAAO,EAAC,CAAA;oBAC5D,KAAI,CAAC,QAAQ,CAAC;wBACZ,aAAa,eAAA;wBACb,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAA;iBACH;aACF,CAAC,CAAA;SACH;QAED,kDAAoB,GAApB;YACE,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAA;aACtC;SACF;QAyDD,uCAAS,GAAT;YACE,OAAOgX,cAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;SACzC;QAyBD,oCAAM,GAAN;YAAA,iBAuEC;YAtEO,IAAA,KAAsC,IAAI,CAAC,KAAK,EAA9C,KAAK,WAAA,EAAE,aAAa,mBAAA,EAAE,SAAS,eAAe,CAAA;YAEtD,QACEhX,wCAACiX,SAAM,IACL,EAAE,EAAC,uBAAuB,EAC1B,MAAM,EAAC,4BAA4B,EACnC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,QACJ,KAAK,EAAE,CAAC;gBAERjX,wCAAC8W,QAAK,IAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;oBACzB9W,wCAACF,OAAI;wBACHE,wCAAC,MAAM,IAAC,KAAK,EAAE,CAAC;4BACdA,wCAACC,OAAI,IAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAC,UAAU,sBAEzB;4BACPD,wCAACkX,YAAS,IACR,KAAK,EAAC,qBAAqB,EAC3B,WAAW,EAAC,kBAAkB,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,IAAI,CAAC,uBAAuB,GACtC,CACK,CACJ;oBACN,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,KAAK,CAAC,KAC1ClX,wCAACC,OAAI,IAAC,IAAI,EAAE,CAAC,EAAE,KAAK,6BAEb,CACR;oBACDD,wCAAC,cAAc,IACb,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EACnC,IAAI,EAAE,IAAI,CAAC,qBAAqB;;wBAEhC,OAAO,EAAE,IAAI,EACb,eAAe,EAAE,IAAI,EACrB,MAAM,EAAC,MAAM,EACb,MAAM,EACJA,wCAACmX,OAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC;4BAC9CnX,wCAACoX,UAAO,IAAC,KAAK,SAAG,CACZ,EAET,UAAU,EACRpX,wCAACC,OAAI,IAAC,IAAI,EAAE,CAAC,EAAE,KAAK,4BAEb,IAGR,aAAa,CAAC,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,MAAM,GAAG,CAAC,GAAA,CAAC,CAAC,GAAG,CAAC,UAAC,MAAuB,EAAE,KAAK;wBACtF,QACED,wCAAC,UAAU,IACT,GAAG,EAAE,cAAW,KAAK,IAAI,SAAS,UAAI,KAAO,EAC7C,MAAM,EAAC,MAAM,EACb,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAA,EACvE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAC,KAAoB,IAAK,QAAC;gCAC5C,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;gCACrB,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gCACpB,GAAG,EAAE,KAAK,CAAC,EAAE;gCACb,IAAI,EAAE,KAAK;6BACZ,IAAC,CAAC,EACH,WAAW,EAAE,KAAI,CAAC,WAAW,EAC7B,eAAe,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,EAAK,aAAa,OAAI,EAAE,EAAE,EAAE,GACtF;qBACH,CAAC,CACW,CACX,CACD,EACV;SACF;QAhMM,gCAAY,GAAG;YACpB,cAAc,EAAE,SAAS;SAC1B,CAAA;QA+LH,0BAAC;KAlMD,CAAiDA,yBAAK,CAAC,SAAS;;IC5BhE,IAAM,GAAG,GAAGH,0BAAM,CAAC,GAAG,iGAAA,8BAErB,IAAA,CAAA;aAEuB,YAAY;QAClC,QACEG,wCAAC,GAAG,IAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,cAAc;YAC9EA,sDAAS;YACTA,kDAAM,CAAC,EAAC,6DAA6D,GAAG,CACpE,EACP;IACH,CAAC;;;ACXD,gBAAe;QACb,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,SAAS,EAAEqX,mBAAQ;QACnB,IAAI,EAAEC,YAAI;KACX;;;;;;;;"}