UNPKG

lucide-angular

Version:

A Lucide icon library package for Angular applications.

969 lines 177 kB
// AlarmClockCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link AlarmClockCheck} instead. This alias will be removed in v1.0 */
default as AlarmCheck } from '../icons/alarm-clock-check';
// AlarmClockMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link AlarmClockMinus} instead. This alias will be removed in v1.0 */
default as AlarmMinus } from '../icons/alarm-clock-minus';
// AlarmClockPlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link AlarmClockPlus} instead. This alias will be removed in v1.0 */
default as AlarmPlus } from '../icons/alarm-clock-plus';
// ArrowDownAZ aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowDownAZ} instead. This alias will be removed in v1.0 */
default as ArrowDownAz } from '../icons/arrow-down-a-z';
// ArrowDownWideNarrow aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowDownWideNarrow} instead. This alias will be removed in v1.0 */
default as SortDesc } from '../icons/arrow-down-wide-narrow';
// ArrowDownZA aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowDownZA} instead. This alias will be removed in v1.0 */
default as ArrowDownZa } from '../icons/arrow-down-z-a';
// ArrowUpAZ aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowUpAZ} instead. This alias will be removed in v1.0 */
default as ArrowUpAz } from '../icons/arrow-up-a-z';
// ArrowUpNarrowWide aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowUpNarrowWide} instead. This alias will be removed in v1.0 */
default as SortAsc } from '../icons/arrow-up-narrow-wide';
// ArrowUpZA aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowUpZA} instead. This alias will be removed in v1.0 */
default as ArrowUpZa } from '../icons/arrow-up-z-a';
// Axis3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Axis3d} instead. This alias will be removed in v1.0 */
default as Axis3D } from '../icons/axis-3d';
// BadgeCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link BadgeCheck} instead. This alias will be removed in v1.0 */
default as Verified } from '../icons/badge-check';
// BadgeQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link BadgeQuestionMark} instead. This alias will be removed in v1.0 */
default as BadgeHelp } from '../icons/badge-question-mark';
// BetweenHorizontalEnd aliases
export { 
/** @deprecated Renamed because of typo, use {@link BetweenHorizontalEnd} instead. This alias will be removed in v1.0 */
default as BetweenHorizonalEnd } from '../icons/between-horizontal-end';
// BetweenHorizontalStart aliases
export { 
/** @deprecated Renamed because of typo, use {@link BetweenHorizontalStart} instead. This alias will be removed in v1.0 */
default as BetweenHorizonalStart } from '../icons/between-horizontal-start';
// BookDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link BookDashed} instead. This alias will be removed in v1.0.0 */
default as BookTemplate } from '../icons/book-dashed';
// Braces aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Braces} instead. This alias will be removed in v1.0 */
default as CurlyBraces } from '../icons/braces';
// Captions aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Captions} instead. This alias will be removed in v1.0 */
default as Subtitles } from '../icons/captions';
// ChartArea aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartArea} instead. This alias will be removed in v1.0 */
default as AreaChart } from '../icons/chart-area';
// ChartBarBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartBarBig} instead. This alias will be removed in v1.0 */
default as BarChartHorizontalBig } from '../icons/chart-bar-big';
// ChartBar aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartBar} instead. This alias will be removed in v1.0 */
default as BarChartHorizontal } from '../icons/chart-bar';
// ChartCandlestick aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartCandlestick} instead. This alias will be removed in v1.0 */
default as CandlestickChart } from '../icons/chart-candlestick';
// ChartColumnBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartColumnBig} instead. This alias will be removed in v1.0 */
default as BarChartBig } from '../icons/chart-column-big';
// ChartColumnIncreasing aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartColumnIncreasing} instead. This alias will be removed in v1.0 */
default as BarChart4 } from '../icons/chart-column-increasing';
// ChartColumn aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartColumn} instead. This alias will be removed in v1.0 */
default as BarChart3 } from '../icons/chart-column';
// ChartLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartLine} instead. This alias will be removed in v1.0 */
default as LineChart } from '../icons/chart-line';
// ChartNoAxesColumnIncreasing aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartNoAxesColumnIncreasing} instead. This alias will be removed in v1.0 */
default as BarChart } from '../icons/chart-no-axes-column-increasing';
// ChartNoAxesColumn aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartNoAxesColumn} instead. This alias will be removed in v1.0 */
default as BarChart2 } from '../icons/chart-no-axes-column';
// ChartNoAxesGantt aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartNoAxesGantt} instead. This alias will be removed in v1.0 */
default as GanttChart } from '../icons/chart-no-axes-gantt';
// ChartPie aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartPie} instead. This alias will be removed in v1.0 */
default as PieChart } from '../icons/chart-pie';
// ChartScatter aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartScatter} instead. This alias will be removed in v1.0 */
default as ScatterChart } from '../icons/chart-scatter';
// Chromium aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Chromium} instead. This alias will be removed in v1.0 */
default as Chrome } from '../icons/chromium';
// CircleAlert aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleAlert} instead. This alias will be removed in v1.0 */
default as AlertCircle } from '../icons/circle-alert';
// CircleArrowDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowDown} instead. This alias will be removed in v1.0 */
default as ArrowDownCircle } from '../icons/circle-arrow-down';
// CircleArrowLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowLeft} instead. This alias will be removed in v1.0 */
default as ArrowLeftCircle } from '../icons/circle-arrow-left';
// CircleArrowOutDownLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutDownLeft} instead. This alias will be removed in v1.0 */
default as ArrowDownLeftFromCircle } from '../icons/circle-arrow-out-down-left';
// CircleArrowOutDownRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutDownRight} instead. This alias will be removed in v1.0 */
default as ArrowDownRightFromCircle } from '../icons/circle-arrow-out-down-right';
// CircleArrowOutUpLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutUpLeft} instead. This alias will be removed in v1.0 */
default as ArrowUpLeftFromCircle } from '../icons/circle-arrow-out-up-left';
// CircleArrowOutUpRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutUpRight} instead. This alias will be removed in v1.0 */
default as ArrowUpRightFromCircle } from '../icons/circle-arrow-out-up-right';
// CircleArrowRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowRight} instead. This alias will be removed in v1.0 */
default as ArrowRightCircle } from '../icons/circle-arrow-right';
// CircleArrowUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowUp} instead. This alias will be removed in v1.0 */
default as ArrowUpCircle } from '../icons/circle-arrow-up';
// CircleCheckBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleCheckBig} instead. This alias will be removed in v1.0 */
default as CheckCircle } from '../icons/circle-check-big';
// CircleCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleCheck} instead. This alias will be removed in v1.0 */
default as CheckCircle2 } from '../icons/circle-check';
// CircleChevronDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronDown} instead. This alias will be removed in v1.0 */
default as ChevronDownCircle } from '../icons/circle-chevron-down';
// CircleChevronLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronLeft} instead. This alias will be removed in v1.0 */
default as ChevronLeftCircle } from '../icons/circle-chevron-left';
// CircleChevronRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronRight} instead. This alias will be removed in v1.0 */
default as ChevronRightCircle } from '../icons/circle-chevron-right';
// CircleChevronUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronUp} instead. This alias will be removed in v1.0 */
default as ChevronUpCircle } from '../icons/circle-chevron-up';
// CircleDivide aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleDivide} instead. This alias will be removed in v1.0 */
default as DivideCircle } from '../icons/circle-divide';
// CircleGauge aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleGauge} instead. This alias will be removed in v1.0 */
default as GaugeCircle } from '../icons/circle-gauge';
// CircleMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleMinus} instead. This alias will be removed in v1.0 */
default as MinusCircle } from '../icons/circle-minus';
// CircleParkingOff aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleParkingOff} instead. This alias will be removed in v1.0 */
default as ParkingCircleOff } from '../icons/circle-parking-off';
// CircleParking aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleParking} instead. This alias will be removed in v1.0 */
default as ParkingCircle } from '../icons/circle-parking';
// CirclePause aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePause} instead. This alias will be removed in v1.0 */
default as PauseCircle } from '../icons/circle-pause';
// CirclePercent aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePercent} instead. This alias will be removed in v1.0 */
default as PercentCircle } from '../icons/circle-percent';
// CirclePlay aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePlay} instead. This alias will be removed in v1.0 */
default as PlayCircle } from '../icons/circle-play';
// CirclePlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePlus} instead. This alias will be removed in v1.0 */
default as PlusCircle } from '../icons/circle-plus';
// CirclePower aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePower} instead. This alias will be removed in v1.0 */
default as PowerCircle } from '../icons/circle-power';
// CircleQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleQuestionMark} instead. This alias will be removed in v1.0 */
default as HelpCircle } from '../icons/circle-question-mark';
// CircleQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleQuestionMark} instead. This alias will be removed in v1.0 */
default as CircleHelp } from '../icons/circle-question-mark';
// CircleSlash2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleSlash2} instead. This alias will be removed in v1.0 */
default as CircleSlashed } from '../icons/circle-slash-2';
// CircleStop aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleStop} instead. This alias will be removed in v1.0 */
default as StopCircle } from '../icons/circle-stop';
// CircleUserRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleUserRound} instead. This alias will be removed in v1.0 */
default as UserCircle2 } from '../icons/circle-user-round';
// CircleUser aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleUser} instead. This alias will be removed in v1.0 */
default as UserCircle } from '../icons/circle-user';
// CircleX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleX} instead. This alias will be removed in v1.0 */
default as XCircle } from '../icons/circle-x';
// ClipboardPenLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ClipboardPenLine} instead. This alias will be removed in v1.0 */
default as ClipboardSignature } from '../icons/clipboard-pen-line';
// ClipboardPen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ClipboardPen} instead. This alias will be removed in v1.0 */
default as ClipboardEdit } from '../icons/clipboard-pen';
// CloudDownload aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CloudDownload} instead. This alias will be removed in v1.0 */
default as DownloadCloud } from '../icons/cloud-download';
// CloudUpload aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CloudUpload} instead. This alias will be removed in v1.0 */
default as UploadCloud } from '../icons/cloud-upload';
// CodeXml aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CodeXml} instead. This alias will be removed in v1.0 */
default as Code2 } from '../icons/code-xml';
// Columns2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns2} instead. This alias will be removed in v1.0 */
default as Columns } from '../icons/columns-2';
// Columns3Cog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns3Cog} instead. This alias will be removed in v1.0 */
default as ColumnsSettings } from '../icons/columns-3-cog';
// Columns3Cog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns3Cog} instead. This alias will be removed in v1.0 */
default as TableConfig } from '../icons/columns-3-cog';
// Columns3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns3} instead. This alias will be removed in v1.0 */
default as PanelsLeftRight } from '../icons/columns-3';
// ContactRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ContactRound} instead. This alias will be removed in v1.0 */
default as Contact2 } from '../icons/contact-round';
// DiamondPercent aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link DiamondPercent} instead. This alias will be removed in v1.0 */
default as PercentDiamond } from '../icons/diamond-percent';
// Earth aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Earth} instead. This alias will be removed in v1.0 */
default as Globe2 } from '../icons/earth';
// EllipsisVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link EllipsisVertical} instead. This alias will be removed in v1.0 */
default as MoreVertical } from '../icons/ellipsis-vertical';
// Ellipsis aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Ellipsis} instead. This alias will be removed in v1.0 */
default as MoreHorizontal } from '../icons/ellipsis';
// FileAxis3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileAxis3d} instead. This alias will be removed in v1.0 */
default as FileAxis3D } from '../icons/file-axis-3d';
// FileBadge aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link FileBadge} instead. This alias will be removed in v1.0 */
default as FileBadge2 } from '../icons/file-badge';
// FileBracesCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileBracesCorner} instead. This alias will be removed in v1.0 */
default as FileJson2 } from '../icons/file-braces-corner';
// FileBraces aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileBraces} instead. This alias will be removed in v1.0 */
default as FileJson } from '../icons/file-braces';
// FileChartColumnIncreasing aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartColumnIncreasing} instead. This alias will be removed in v1.0 */
default as FileBarChart } from '../icons/file-chart-column-increasing';
// FileChartColumn aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartColumn} instead. This alias will be removed in v1.0 */
default as FileBarChart2 } from '../icons/file-chart-column';
// FileChartLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartLine} instead. This alias will be removed in v1.0 */
default as FileLineChart } from '../icons/file-chart-line';
// FileChartPie aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartPie} instead. This alias will be removed in v1.0 */
default as FilePieChart } from '../icons/file-chart-pie';
// FileCheckCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileCheckCorner} instead. This alias will be removed in v1.0 */
default as FileCheck2 } from '../icons/file-check-corner';
// FileCodeCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileCodeCorner} instead. This alias will be removed in v1.0 */
default as FileCode2 } from '../icons/file-code-corner';
// FileCog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileCog} instead. This alias will be removed in v1.0 */
default as FileCog2 } from '../icons/file-cog';
// FileExclamationPoint aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileExclamationPoint} instead. This alias will be removed in v1.0 */
default as FileWarning } from '../icons/file-exclamation-point';
// FileHeadphone aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileHeadphone} instead. This alias will be removed in v1.0 */
default as FileAudio } from '../icons/file-headphone';
// FileHeadphone aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link FileHeadphone} instead. This alias will be removed in v1.0 */
default as FileAudio2 } from '../icons/file-headphone';
// FileKey aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link FileKey} instead. This alias will be removed in v1.0 */
default as FileKey2 } from '../icons/file-key';
// FileLock aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link FileLock} instead. This alias will be removed in v1.0 */
default as FileLock2 } from '../icons/file-lock';
// FileMinusCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileMinusCorner} instead. This alias will be removed in v1.0 */
default as FileMinus2 } from '../icons/file-minus-corner';
// FilePenLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePenLine} instead. This alias will be removed in v1.0 */
default as FileSignature } from '../icons/file-pen-line';
// FilePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePen} instead. This alias will be removed in v1.0 */
default as FileEdit } from '../icons/file-pen';
// FilePlay aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePlay} instead. This alias will be removed in v1.0 */
default as FileVideo } from '../icons/file-play';
// FilePlusCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePlusCorner} instead. This alias will be removed in v1.0 */
default as FilePlus2 } from '../icons/file-plus-corner';
// FileQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileQuestionMark} instead. This alias will be removed in v1.0 */
default as FileQuestion } from '../icons/file-question-mark';
// FileSearchCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileSearchCorner} instead. This alias will be removed in v1.0 */
default as FileSearch2 } from '../icons/file-search-corner';
// FileTypeCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileTypeCorner} instead. This alias will be removed in v1.0 */
default as FileType2 } from '../icons/file-type-corner';
// FileSignal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileSignal} instead. This alias will be removed in v1.0 */
default as FileVolume2 } from '../icons/file-signal';
// FileVideoCamera aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileVideoCamera} instead. This alias will be removed in v1.0 */
default as FileVideo2 } from '../icons/file-video-camera';
// FileXCorner aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileXCorner} instead. This alias will be removed in v1.0 */
default as FileX2 } from '../icons/file-x-corner';
// FingerprintPattern aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FingerprintPattern} instead. This alias will be removed in v1.0 */
default as Fingerprint } from '../icons/fingerprint-pattern';
// FolderCog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FolderCog} instead. This alias will be removed in v1.0 */
default as FolderCog2 } from '../icons/folder-cog';
// FolderPen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FolderPen} instead. This alias will be removed in v1.0 */
default as FolderEdit } from '../icons/folder-pen';
// FunnelX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FunnelX} instead. This alias will be removed in v1.0 */
default as FilterX } from '../icons/funnel-x';
// Funnel aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Funnel} instead. This alias will be removed in v1.0 */
default as Filter } from '../icons/funnel';
// GitCommitHorizontal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link GitCommitHorizontal} instead. This alias will be removed in v1.0 */
default as GitCommit } from '../icons/git-commit-horizontal';
// Grid2x2Check aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2Check} instead. This alias will be removed in v1.0 */
default as Grid2X2Check } from '../icons/grid-2x2-check';
// Grid2x2Plus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2Plus} instead. This alias will be removed in v1.0 */
default as Grid2X2Plus } from '../icons/grid-2x2-plus';
// Grid2x2X aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2X} instead. This alias will be removed in v1.0 */
default as Grid2X2X } from '../icons/grid-2x2-x';
// Grid2x2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2} instead. This alias will be removed in v1.0 */
default as Grid2X2 } from '../icons/grid-2x2';
// Grid3x3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid3x3} instead. This alias will be removed in v1.0 */
default as Grid } from '../icons/grid-3x3';
// Grid3x3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid3x3} instead. This alias will be removed in v1.0 */
default as Grid3X3 } from '../icons/grid-3x3';
// HandGrab aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link HandGrab} instead. This alias will be removed in v1.0 */
default as Grab } from '../icons/hand-grab';
// House aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link House} instead. This alias will be removed in v1.0 */
default as Home } from '../icons/house';
// HandHelping aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link HandHelping} instead. This alias will be removed in v1.0 */
default as HelpingHand } from '../icons/hand-helping';
// IceCreamBowl aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link IceCreamBowl} instead. This alias will be removed in v1.0 */
default as IceCream2 } from '../icons/ice-cream-bowl';
// IceCreamCone aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link IceCreamCone} instead. This alias will be removed in v1.0 */
default as IceCream } from '../icons/ice-cream-cone';
// LaptopMinimal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LaptopMinimal} instead. This alias will be removed in v1.0 */
default as Laptop2 } from '../icons/laptop-minimal';
// Layers aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link Layers} instead. This alias will be removed in v1.0 */
default as Layers3 } from '../icons/layers';
// ListIndentDecrease aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ListIndentDecrease} instead. This alias will be removed in v1.0 */
default as Outdent } from '../icons/list-indent-decrease';
// ListIndentDecrease aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ListIndentDecrease} instead. This alias will be removed in v1.0 */
default as IndentDecrease } from '../icons/list-indent-decrease';
// ListIndentIncrease aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ListIndentIncrease} instead. This alias will be removed in v1.0 */
default as Indent } from '../icons/list-indent-increase';
// ListIndentIncrease aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ListIndentIncrease} instead. This alias will be removed in v1.0 */
default as IndentIncrease } from '../icons/list-indent-increase';
// LoaderCircle aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LoaderCircle} instead. This alias will be removed in v1.0 */
default as Loader2 } from '../icons/loader-circle';
// LockKeyholeOpen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LockKeyholeOpen} instead. This alias will be removed in v1.0 */
default as UnlockKeyhole } from '../icons/lock-keyhole-open';
// MailQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MailQuestionMark} instead. This alias will be removed in v1.0 */
default as MailQuestion } from '../icons/mail-question-mark';
// LockOpen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LockOpen} instead. This alias will be removed in v1.0 */
default as Unlock } from '../icons/lock-open';
// MapPinPen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MapPinPen} instead. This alias will be removed in v1.0 */
default as LocationEdit } from '../icons/map-pin-pen';
// MessageCircleQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MessageCircleQuestionMark} instead. This alias will be removed in v1.0 */
default as MessageCircleQuestion } from '../icons/message-circle-question-mark';
// MicVocal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MicVocal} instead. This alias will be removed in v1.0 */
default as Mic2 } from '../icons/mic-vocal';
// Move3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Move3d} instead. This alias will be removed in v1.0 */
default as Move3D } from '../icons/move-3d';
// OctagonAlert aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link OctagonAlert} instead. This alias will be removed in v1.0 */
default as AlertOctagon } from '../icons/octagon-alert';
// OctagonPause aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link OctagonPause} instead. This alias will be removed in v1.0 */
default as PauseOctagon } from '../icons/octagon-pause';
// OctagonX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link OctagonX} instead. This alias will be removed in v1.0 */
default as XOctagon } from '../icons/octagon-x';
// PaintbrushVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PaintbrushVertical} instead. This alias will be removed in v1.0 */
default as Paintbrush2 } from '../icons/paintbrush-vertical';
// PanelBottomDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelBottomDashed} instead. This alias will be removed in v1.0 */
default as PanelBottomInactive } from '../icons/panel-bottom-dashed';
// PanelLeftClose aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeftClose} instead. This alias will be removed in v1.0 */
default as SidebarClose } from '../icons/panel-left-close';
// PanelLeftDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeftDashed} instead. This alias will be removed in v1.0 */
default as PanelLeftInactive } from '../icons/panel-left-dashed';
// PanelLeftOpen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeftOpen} instead. This alias will be removed in v1.0 */
default as SidebarOpen } from '../icons/panel-left-open';
// PanelLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeft} instead. This alias will be removed in v1.0 */
default as Sidebar } from '../icons/panel-left';
// PanelRightDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelRightDashed} instead. This alias will be removed in v1.0 */
default as PanelRightInactive } from '../icons/panel-right-dashed';
// PanelTopDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelTopDashed} instead. This alias will be removed in v1.0 */
default as PanelTopInactive } from '../icons/panel-top-dashed';
// PanelsTopLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelsTopLeft} instead. This alias will be removed in v1.0 */
default as Layout } from '../icons/panels-top-left';
// PenLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PenLine} instead. This alias will be removed in v1.0 */
default as Edit3 } from '../icons/pen-line';
// Pen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Pen} instead. This alias will be removed in v1.0 */
default as Edit2 } from '../icons/pen';
// PlugZap aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PlugZap} instead. This alias will be removed in v1.0 */
default as PlugZap2 } from '../icons/plug-zap';
// Rotate3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Rotate3d} instead. This alias will be removed in v1.0 */
default as Rotate3D } from '../icons/rotate-3d';
// Rows2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Rows2} instead. This alias will be removed in v1.0 */
default as Rows } from '../icons/rows-2';
// RectangleEllipsis aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link RectangleEllipsis} instead. This alias will be removed in v1.0 */
default as FormInput } from '../icons/rectangle-ellipsis';
// Rows3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Rows3} instead. This alias will be removed in v1.0 */
default as PanelsTopBottom } from '../icons/rows-3';
// Scale3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Scale3d} instead. This alias will be removed in v1.0 */
default as Scale3D } from '../icons/scale-3d';
// SendHorizontal aliases
export { 
/** @deprecated Renamed because of typo, use {@link SendHorizontal} instead. This alias will be removed in v1.0 */
default as SendHorizonal } from '../icons/send-horizontal';
// ShieldQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ShieldQuestionMark} instead. This alias will be removed in v1.0 */
default as ShieldQuestion } from '../icons/shield-question-mark';
// ShieldX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ShieldX} instead. This alias will be removed in v1.0 */
default as ShieldClose } from '../icons/shield-x';
// SlidersVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SlidersVertical} instead. This alias will be removed in v1.0 */
default as Sliders } from '../icons/sliders-vertical';
// Sparkles aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Sparkles} instead. This alias will be removed in v1.0 */
default as Stars } from '../icons/sparkles';
// SquareActivity aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareActivity} instead. This alias will be removed in v1.0 */
default as ActivitySquare } from '../icons/square-activity';
// SquareArrowDownLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowDownLeft} instead. This alias will be removed in v1.0 */
default as ArrowDownLeftSquare } from '../icons/square-arrow-down-left';
// SquareArrowDownRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowDownRight} instead. This alias will be removed in v1.0 */
default as ArrowDownRightSquare } from '../icons/square-arrow-down-right';
// SquareArrowDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowDown} instead. This alias will be removed in v1.0 */
default as ArrowDownSquare } from '../icons/square-arrow-down';
// SquareArrowLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowLeft} instead. This alias will be removed in v1.0 */
default as ArrowLeftSquare } from '../icons/square-arrow-left';
// SquareArrowOutDownLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutDownLeft} instead. This alias will be removed in v1.0 */
default as ArrowDownLeftFromSquare } from '../icons/square-arrow-out-down-left';
// SquareArrowOutDownRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutDownRight} instead. This alias will be removed in v1.0 */
default as ArrowDownRightFromSquare } from '../icons/square-arrow-out-down-right';
// SquareArrowOutUpLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutUpLeft} instead. This alias will be removed in v1.0 */
default as ArrowUpLeftFromSquare } from '../icons/square-arrow-out-up-left';
// SquareArrowOutUpRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutUpRight} instead. This alias will be removed in v1.0 */
default as ArrowUpRightFromSquare } from '../icons/square-arrow-out-up-right';
// SquareArrowRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowRight} instead. This alias will be removed in v1.0 */
default as ArrowRightSquare } from '../icons/square-arrow-right';
// SquareArrowUpLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowUpLeft} instead. This alias will be removed in v1.0 */
default as ArrowUpLeftSquare } from '../icons/square-arrow-up-left';
// SquareArrowUpRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowUpRight} instead. This alias will be removed in v1.0 */
default as ArrowUpRightSquare } from '../icons/square-arrow-up-right';
// SquareArrowUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowUp} instead. This alias will be removed in v1.0 */
default as ArrowUpSquare } from '../icons/square-arrow-up';
// SquareAsterisk aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareAsterisk} instead. This alias will be removed in v1.0 */
default as AsteriskSquare } from '../icons/square-asterisk';
// SquareBottomDashedScissors aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareBottomDashedScissors} instead. This alias will be removed in v1.0 */
default as ScissorsSquareDashedBottom } from '../icons/square-bottom-dashed-scissors';
// SquareChartGantt aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChartGantt} instead. This alias will be removed in v1.0 */
default as GanttChartSquare } from '../icons/square-chart-gantt';
// SquareChartGantt aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChartGantt} instead. This alias will be removed in v1.0 */
default as SquareGanttChart } from '../icons/square-chart-gantt';
// SquareCheckBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareCheckBig} instead. This alias will be removed in v1.0 */
default as CheckSquare } from '../icons/square-check-big';
// SquareCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareCheck} instead. This alias will be removed in v1.0 */
default as CheckSquare2 } from '../icons/square-check';
// SquareChevronDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronDown} instead. This alias will be removed in v1.0 */
default as ChevronDownSquare } from '../icons/square-chevron-down';
// SquareChevronLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronLeft} instead. This alias will be removed in v1.0 */
default as ChevronLeftSquare } from '../icons/square-chevron-left';
// SquareChevronRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronRight} instead. This alias will be removed in v1.0 */
default as ChevronRightSquare } from '../icons/square-chevron-right';
// SquareChevronUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronUp} instead. This alias will be removed in v1.0 */
default as ChevronUpSquare } from '../icons/square-chevron-up';
// SquareCode aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareCode} instead. This alias will be removed in v1.0 */
default as CodeSquare } from '../icons/square-code';
// SquareDashedKanban aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDashedKanban} instead. This alias will be removed in v1.0 */
default as KanbanSquareDashed } from '../icons/square-dashed-kanban';
// SquareDashedMousePointer aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDashedMousePointer} instead. This alias will be removed in v1.0 */
default as MousePointerSquareDashed } from '../icons/square-dashed-mouse-pointer';
// SquareDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDashed} instead. This alias will be removed in v1.0 */
default as BoxSelect } from '../icons/square-dashed';
// SquareDivide aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDivide} instead. This alias will be removed in v1.0 */
default as DivideSquare } from '../icons/square-divide';
// SquareDot aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDot} instead. This alias will be removed in v1.0 */
default as DotSquare } from '../icons/square-dot';
// SquareEqual aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareEqual} instead. This alias will be removed in v1.0 */
default as EqualSquare } from '../icons/square-equal';
// SquareFunction aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareFunction} instead. This alias will be removed in v1.0 */
default as FunctionSquare } from '../icons/square-function';
// SquareKanban aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareKanban} instead. This alias will be removed in v1.0 */
default as KanbanSquare } from '../icons/square-kanban';
// SquareLibrary aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareLibrary} instead. This alias will be removed in v1.0 */
default as LibrarySquare } from '../icons/square-library';
// SquareM aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareM} instead. This alias will be removed in v1.0 */
default as MSquare } from '../icons/square-m';
// SquareMenu aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareMenu} instead. This alias will be removed in v1.0 */
default as MenuSquare } from '../icons/square-menu';
// SquareMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareMinus} instead. This alias will be removed in v1.0 */
default as MinusSquare } from '../icons/square-minus';
// SquareMousePointer aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareMousePointer} instead. This alias will be removed in v1.0 */
default as Inspect } from '../icons/square-mouse-pointer';
// SquareParkingOff aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareParkingOff} instead. This alias will be removed in v1.0 */
default as ParkingSquareOff } from '../icons/square-parking-off';
// SquareParking aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareParking} instead. This alias will be removed in v1.0 */
default as ParkingSquare } from '../icons/square-parking';
// SquarePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePen} instead. This alias will be removed in v1.0 */
default as PenBox } from '../icons/square-pen';
// SquarePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePen} instead. This alias will be removed in v1.0 */
default as Edit } from '../icons/square-pen';
// SquarePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePen} instead. This alias will be removed in v1.0 */
default as PenSquare } from '../icons/square-pen';
// SquarePercent aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePercent} instead. This alias will be removed in v1.0 */
default as PercentSquare } from '../icons/square-percent';
// SquarePi aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePi} instead. This alias will be removed in v1.0 */
default as PiSquare } from '../icons/square-pi';
// SquarePilcrow aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePilcrow} instead. This alias will be removed in v1.0 */
default as PilcrowSquare } from '../icons/square-pilcrow';
// SquarePlay aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePlay} instead. This alias will be removed in v1.0 */
default as PlaySquare } from '../icons/square-play';
// SquarePlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePlus} instead. This alias will be removed in v1.0 */
default as PlusSquare } from '../icons/square-plus';
// SquarePower aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePower} instead. This alias will be removed in v1.0 */
default as PowerSquare } from '../icons/square-power';
// SquareScissors aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareScissors} instead. This alias will be removed in v1.0 */
default as ScissorsSquare } from '../icons/square-scissors';
// SquareSigma aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSigma} instead. This alias will be removed in v1.0 */
default as SigmaSquare } from '../icons/square-sigma';
// SquareSlash aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSlash} instead. This alias will be removed in v1.0 */
default as SlashSquare } from '../icons/square-slash';
// SquareSplitHorizontal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSplitHorizontal} instead. This alias will be removed in v1.0 */
default as SplitSquareHorizontal } from '../icons/square-split-horizontal';
// SquareSplitVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSplitVertical} instead. This alias will be removed in v1.0 */
default as SplitSquareVertical } from '../icons/square-split-vertical';
// SquareTerminal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareTerminal} instead. This alias will be removed in v1.0 */
default as TerminalSquare } from '../icons/square-terminal';
// SquareUserRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareUserRound} instead. This alias will be removed in v1.0 */
default as UserSquare2 } from '../icons/square-user-round';
// SquareUser aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareUser} instead. This alias will be removed in v1.0 */
default as UserSquare } from '../icons/square-user';
// SquareX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareX} instead. This alias will be removed in v1.0 */
default as XSquare } from '../icons/square-x';
// TestTubeDiagonal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TestTubeDiagonal} instead. This alias will be removed in v1.0 */
default as TestTube2 } from '../icons/test-tube-diagonal';
// TextAlignCenter aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextAlignCenter} instead. This alias will be removed in v1.0 */
default as AlignCenter } from '../icons/text-align-center';
// TextAlignEnd aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextAlignEnd} instead. This alias will be removed in v1.0 */
default as AlignRight } from '../icons/text-align-end';
// TextAlignJustify aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextAlignJustify} instead. This alias will be removed in v1.0 */
default as AlignJustify } from '../icons/text-align-justify';
// TextAlignStart aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link TextAlignStart} instead. This alias will be removed in v1.0 */
default as Text } from '../icons/text-align-start';
// TextAlignStart aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextAlignStart} instead. This alias will be removed in v1.0 */
default as AlignLeft } from '../icons/text-align-start';
// TextInitial aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextInitial} instead. This alias will be removed in v1.0 */
default as LetterText } from '../icons/text-initial';
// TextSelect aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextSelect} instead. This alias will be removed in v1.0 */
default as TextSelection } from '../icons/text-select';
// TextWrap aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextWrap} instead. This alias will be removed in v1.0 */
default as WrapText } from '../icons/text-wrap';
// TramFront aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TramFront} instead. This alias will be removed in v1.0 */
default as Train } from '../icons/tram-front';
// TreePalm aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TreePalm} instead. This alias will be removed in v1.0 */
default as Palmtree } from '../icons/tree-palm';
// TriangleAlert aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TriangleAlert} instead. This alias will be removed in v1.0 */
default as AlertTriangle } from '../icons/triangle-alert';
// TvMinimal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TvMinimal} instead. This alias will be removed in v1.0 */
default as Tv2 } from '../icons/tv-minimal';
// University aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link University} instead. This alias will be removed in v1.0 */
default as School2 } from '../icons/university';
// UserRoundCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundCheck} instead. This alias will be removed in v1.0 */
default as UserCheck2 } from '../icons/user-round-check';
// UserRoundCog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundCog} instead. This alias will be removed in v1.0 */
default as UserCog2 } from '../icons/user-round-cog';
// UserRoundMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundMinus} instead. This alias will be removed in v1.0 */
default as UserMinus2 } from '../icons/user-round-minus';
// UserRoundPlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundPlus} instead. This alias will be removed in v1.0 */
default as UserPlus2 } from '../icons/user-round-plus';
// UserRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRound} instead. This alias will be removed in v1.0 */
default as User2 } from '../icons/user-round';
// UserRoundX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundX} instead. This alias will be removed in v1.0 */
default as UserX2 } from '../icons/user-round-x';
// UsersRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UsersRound} instead. This alias will be removed in v1.0 */
default as Users2 } from '../icons/users-round';
// UtensilsCrossed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UtensilsCrossed} instead. This alias will be removed in v1.0 */
default as ForkKnifeCrossed } from '../icons/utensils-crossed';
// Utensils aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Utensils} instead. This alias will be removed in v1.0 */
default as ForkKnife } from '../icons/utensils';
// WalletMinimal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link WalletMinimal} instead. This alias will be removed in v1.0 */
default as Wallet2 } from '../icons/wallet-minimal';
// WandSparkles aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link WandSparkles} instead. This alias will be removed in v1.0 */
default as Wand2 } from '../icons/wand-sparkles';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hbGlhc2VzL2FsaWFzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQywwQkFBMEI7QUFDMUIsT0FBTztBQUNMLDJLQUEySztBQUMzSyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyw4QkFBOEI7QUFDOUIsT0FBTztBQUNMLCtLQUErSztBQUMvSyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQiw0QkFBNEI7QUFDNUIsT0FBTztBQUNMLDZLQUE2SztBQUM3SyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLG9CQUFvQjtBQUNwQixPQUFPO0FBQ0wscUtBQXFLO0FBQ3JLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsaUJBQWlCO0FBQ2pCLE9BQU87QUFDTCxrS0FBa0s7QUFDbEssT0FBTyxJQUFJLE1BQU0s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TUFBTSwyQkFBMkIsQ0FBQztBQUVuQyx3QkFBd0I7QUFDeEIsT0FBTztBQUNMLHlLQUF5SztBQUN6SyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLG9CQUFvQjtBQUNwQixPQUFPO0FBQ0wscUtBQXFLO0FBQ3JLLE9BQU8sSUFBSSxLQUFLLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLE1BQU0sRUFDbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixxQkFBcUI7QUFDckIsT0FBTztBQUNMLHNLQUFzSztBQUN0SyxPQUFPLElBQUksTUFBTSxFQUNsQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLDBCQUEwQjtBQUMxQixPQUFPO0FBQ0wsMktBQTJLO0FBQzNLLE9BQU8sSUFBSSxnQkFBZ0IsRUFDNUIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLHdCQUF3QjtBQUN4QixPQUFPO0FBQ0wseUtBQXlLO0FBQ3pLLE9BQU8sSUFBSSxPQUFPLEVBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFFakMsdUJBQXVCO0FBQ3ZCLE9BQU87QUFDTCx3S0FBd0s7QUFDeEssT0FBTyxJQUFJLEtBQUssRUFDakIsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gQWxhcm1DbG9ja0NoZWNrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFsYXJtQ2xvY2tDaGVja30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFsYXJtQ2hlY2tcbn0gZnJvbSAnLi4vaWNvbnMvYWxhcm0tY2xvY2stY2hlY2snO1xuXG4vLyBBbGFybUNsb2NrTWludXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQWxhcm1DbG9ja01pbnVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxhcm1NaW51c1xufSBmcm9tICcuLi9pY29ucy9hbGFybS1jbG9jay1taW51cyc7XG5cbi8vIEFsYXJtQ2xvY2tQbHVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFsYXJtQ2xvY2tQbHVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxhcm1QbHVzXG59IGZyb20gJy4uL2ljb25zL2FsYXJtLWNsb2NrLXBsdXMnO1xuXG4vLyBBcnJvd0Rvd25BWiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBBcnJvd0Rvd25BWn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93bkF6XG59IGZyb20gJy4uL2ljb25zL2Fycm93LWRvd24tYS16JztcblxuLy8gQXJyb3dEb3duV2lkZU5hcnJvdyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBBcnJvd0Rvd25XaWRlTmFycm93fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU29ydERlc2Ncbn0gZnJvbSAnLi4vaWNvbnMvYXJyb3ctZG93bi13aWRlLW5hcnJvdyc7XG5cbi8vIEFycm93RG93blpBIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFycm93RG93blpBfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duWmFcbn0gZnJvbSAnLi4vaWNvbnMvYXJyb3ctZG93bi16LWEnO1xuXG4vLyBBcnJvd1VwQVogYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQXJyb3dVcEFafSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dVcEF6XG59IGZyb20gJy4uL2ljb25zL2Fycm93LXVwLWEteic7XG5cbi8vIEFycm93VXBOYXJyb3dXaWRlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFycm93VXBOYXJyb3dXaWRlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU29ydEFzY1xufSBmcm9tICcuLi9pY29ucy9hcnJvdy11cC1uYXJyb3ctd2lkZSc7XG5cbi8vIEFycm93VXBaQSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBBcnJvd1VwWkF9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwWmFcbn0gZnJvbSAnLi4vaWNvbnMvYXJyb3ctdXAtei1hJztcblxuLy8gQXhpczNkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEF4aXMzZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEF4aXMzRFxufSBmcm9tICcuLi9pY29ucy9heGlzLTNkJztcblxuLy8gQmFkZ2VDaGVjayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBCYWRnZUNoZWNrfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVmVyaWZpZWRcbn0gZnJvbSAnLi4vaWNvbnMvYmFkZ2UtY2hlY2snO1xuXG4vLyBCYWRnZVF1ZXN0aW9uTWFyayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBCYWRnZVF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJhZGdlSGVscFxufSBmcm9tICcuLi9pY29ucy9iYWRnZS1xdWVzdGlvbi1tYXJrJztcblxuLy8gQmV0d2Vlbkhvcml6b250YWxFbmQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgYmVjYXVzZSBvZiB0eXBvLCB1c2Uge0BsaW5rIEJldHdlZW5Ib3Jpem9udGFsRW5kfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQmV0d2Vlbkhvcml6b25hbEVuZFxufSBmcm9tICcuLi9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtZW5kJztcblxuLy8gQmV0d2Vlbkhvcml6b250YWxTdGFydCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCBiZWNhdXNlIG9mIHR5cG8sIHVzZSB7QGxpbmsgQmV0d2Vlbkhvcml6b250YWxTdGFydH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJldHdlZW5Ib3Jpem9uYWxTdGFydFxufSBmcm9tICcuLi9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtc3RhcnQnO1xuXG4vLyBCb29rRGFzaGVkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEJvb2tEYXNoZWR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAuMCAqL1xuICBkZWZhdWx0IGFzIEJvb2tUZW1wbGF0ZVxufSBmcm9tICcuLi9pY29ucy9ib29rLWRhc2hlZCc7XG5cbi8vIEJyYWNlcyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBCcmFjZXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDdXJseUJyYWNlc1xufSBmcm9tICcuLi9pY29ucy9icmFjZXMnO1xuXG4vLyBDYXB0aW9ucyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDYXB0aW9uc30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFN1YnRpdGxlc1xufSBmcm9tICcuLi9pY29ucy9jYXB0aW9ucyc7XG5cbi8vIENoYXJ0QXJlYSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydEFyZWF9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcmVhQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtYXJlYSc7XG5cbi8vIENoYXJ0QmFyQmlnIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0QmFyQmlnfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQmFyQ2hhcnRIb3Jpem9udGFsQmlnXG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LWJhci1iaWcnO1xuXG4vLyBDaGFydEJhciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydEJhcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJhckNoYXJ0SG9yaXpvbnRhbFxufSBmcm9tICcuLi9pY29ucy9jaGFydC1iYXInO1xuXG4vLyBDaGFydENhbmRsZXN0aWNrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Q2FuZGxlc3RpY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDYW5kbGVzdGlja0NoYXJ0XG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LWNhbmRsZXN0aWNrJztcblxuLy8gQ2hhcnRDb2x1bW5CaWcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2hhcnRDb2x1bW5CaWd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBCYXJDaGFydEJpZ1xufSBmcm9tICcuLi9pY29ucy9jaGFydC1jb2x1bW4tYmlnJztcblxuLy8gQ2hhcnRDb2x1bW5JbmNyZWFzaW5nIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Q29sdW1uSW5jcmVhc2luZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJhckNoYXJ0NFxufSBmcm9tICcuLi9pY29ucy9jaGFydC1jb2x1bW4taW5jcmVhc2luZyc7XG5cbi8vIENoYXJ0Q29sdW1uIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Q29sdW1ufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQmFyQ2hhcnQzXG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LWNvbHVtbic7XG5cbi8vIENoYXJ0TGluZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydExpbmV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBMaW5lQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtbGluZSc7XG5cbi8vIENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBCYXJDaGFydFxufSBmcm9tICcuLi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nJztcblxuLy8gQ2hhcnROb0F4ZXNDb2x1bW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2hhcnROb0F4ZXNDb2x1bW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBCYXJDaGFydDJcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4nO1xuXG4vLyBDaGFydE5vQXhlc0dhbnR0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Tm9BeGVzR2FudHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHYW50dENoYXJ0XG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQnO1xuXG4vLyBDaGFydFBpZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydFBpZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBpZUNoYXJ0XG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LXBpZSc7XG5cbi8vIENoYXJ0U2NhdHRlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydFNjYXR0ZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTY2F0dGVyQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtc2NhdHRlcic7XG5cbi8vIENocm9taXVtIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENocm9taXVtfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2hyb21lXG59IGZyb20gJy4uL2ljb25zL2Nocm9taXVtJztcblxuLy8gQ2lyY2xlQWxlcnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQWxlcnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBbGVydENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtYWxlcnQnO1xuXG4vLyBDaXJjbGVBcnJvd0Rvd24gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQXJyb3dEb3dufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1hcnJvdy1kb3duJztcblxuLy8gQ2lyY2xlQXJyb3dMZWZ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93TGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93TGVmdENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtYXJyb3ctbGVmdCc7XG5cbi8vIENpcmNsZUFycm93T3V0RG93bkxlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQXJyb3dPdXREb3duTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93bkxlZnRGcm9tQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0JztcblxuLy8gQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQXJyb3dPdXREb3duUmlnaHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd0Rvd25SaWdodEZyb21DaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0JztcblxuLy8gQ2lyY2xlQXJyb3dPdXRVcExlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQXJyb3dPdXRVcExlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwTGVmdEZyb21DaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1sZWZ0JztcblxuLy8gQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93T3V0VXBSaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93VXBSaWdodEZyb21DaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1yaWdodCc7XG5cbi8vIENpcmNsZUFycm93UmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQXJyb3dSaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93UmlnaHRDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFycm93LXJpZ2h0JztcblxuLy8gQ2lyY2xlQXJyb3dVcCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVBcnJvd1VwfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dVcENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtYXJyb3ctdXAnO1xuXG4vLyBDaXJjbGVDaGVja0JpZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVDaGVja0JpZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZWNrQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1jaGVjay1iaWcnO1xuXG4vLyBDaXJjbGVDaGVjayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVDaGVja30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZWNrQ2lyY2xlMlxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtY2hlY2snO1xuXG4vLyBDaXJjbGVDaGV2cm9uRG93biBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVDaGV2cm9uRG93bn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25Eb3duQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1jaGV2cm9uLWRvd24nO1xuXG4vLyBDaXJjbGVDaGV2cm9uTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVDaGV2cm9uTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25MZWZ0Q2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1jaGV2cm9uLWxlZnQnO1xuXG4vLyBDaXJjbGVDaGV2cm9uUmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQ2hldnJvblJpZ2h0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2hldnJvblJpZ2h0Q2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0JztcblxuLy8gQ2lyY2xlQ2hldnJvblVwIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUNoZXZyb25VcH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25VcENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtY2hldnJvbi11cCc7XG5cbi8vIENpcmNsZURpdmlkZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVEaXZpZGV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBEaXZpZGVDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWRpdmlkZSc7XG5cbi8vIENpcmNsZUdhdWdlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUdhdWdlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgR2F1Z2VDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWdhdWdlJztcblxuLy8gQ2lyY2xlTWludXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlTWludXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNaW51c0NpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtbWludXMnO1xuXG4vLyBDaXJjbGVQYXJraW5nT2ZmIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVBhcmtpbmdPZmZ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYXJraW5nQ2lyY2xlT2ZmXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1wYXJraW5nLW9mZic7XG5cbi8vIENpcmNsZVBhcmtpbmcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlUGFya2luZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhcmtpbmdDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXBhcmtpbmcnO1xuXG4vLyBDaXJjbGVQYXVzZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVQYXVzZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhdXNlQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1wYXVzZSc7XG5cbi8vIENpcmNsZVBlcmNlbnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlUGVyY2VudH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBlcmNlbnRDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXBlcmNlbnQnO1xuXG4vLyBDaXJjbGVQbGF5IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVBsYXl9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQbGF5Q2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1wbGF5JztcblxuLy8gQ2lyY2xlUGx1cyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVQbHVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGx1c0NpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtcGx1cyc7XG5cbi8vIENpcmNsZVBvd2VyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVBvd2VyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUG93ZXJDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXBvd2VyJztcblxuLy8gQ2lyY2xlUXVlc3Rpb25NYXJrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEhlbHBDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXF1ZXN0aW9uLW1hcmsnO1xuXG4vLyBDaXJjbGVRdWVzdGlvbk1hcmsgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlUXVlc3Rpb25NYXJrfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2lyY2xlSGVscFxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtcXVlc3Rpb24tbWFyayc7XG5cbi8vIENpcmNsZVNsYXNoMiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVTbGFzaDJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaXJjbGVTbGFzaGVkXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1zbGFzaC0yJztcblxuLy8gQ2lyY2xlU3RvcCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVTdG9wfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU3RvcENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtc3RvcCc7XG5cbi8vIENpcmNsZVVzZXJSb3VuZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVVc2VyUm91bmR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyQ2lyY2xlMlxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtdXNlci1yb3VuZCc7XG5cbi8vIENpcmNsZVVzZXIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlVXNlcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXVzZXInO1xuXG4vLyBDaXJjbGVYIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVh9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBYQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS14JztcblxuLy8gQ2xpcGJvYXJkUGVuTGluZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDbGlwYm9hcmRQZW5MaW5lfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2xpcGJvYXJkU2lnbmF0dXJlXG59IGZyb20gJy4uL2ljb25zL2NsaXBib2FyZC1wZW4tbGluZSc7XG5cbi8vIENsaXBib2FyZFBlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDbGlwYm9hcmRQZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDbGlwYm9hcmRFZGl0XG59IGZyb20gJy4uL2ljb25zL2NsaXBib2FyZC1wZW4nO1xuXG4vLyBDbG91ZERvd25sb2FkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENsb3VkRG93bmxvYWR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBEb3dubG9hZENsb3VkXG59IGZyb20gJy4uL2ljb25zL2Nsb3VkLWRvd25sb2FkJztcblxuLy8gQ2xvdWRVcGxvYWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2xvdWRVcGxvYWR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVcGxvYWRDbG91ZFxufSBmcm9tICcuLi9pY29ucy9jbG91ZC11cGxvYWQnO1xuXG4vLyBDb2RlWG1sIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENvZGVYbWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDb2RlMlxufSBmcm9tICcuLi9pY29ucy9jb2RlLXhtbCc7XG5cbi8vIENvbHVtbnMyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENvbHVtbnMyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ29sdW1uc1xufSBmcm9tICcuLi9pY29ucy9jb2x1bW5zLTInO1xuXG4vLyBDb2x1bW5zM0NvZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDb2x1bW5zM0NvZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENvbHVtbnNTZXR0aW5nc1xufSBmcm9tICcuLi9pY29ucy9jb2x1bW5zLTMtY29nJztcblxuLy8gQ29sdW1uczNDb2cgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ29sdW1uczNDb2d9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBUYWJsZUNvbmZpZ1xufSBmcm9tICcuLi9pY29ucy9jb2x1bW5zLTMtY29nJztcblxuLy8gQ29sdW1uczMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ29sdW1uczN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYW5lbHNMZWZ0UmlnaHRcbn0gZnJvbSAnLi4vaWNvbnMvY29sdW1ucy0zJztcblxuLy8gQ29udGFjdFJvdW5kIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENvbnRhY3RSb3VuZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENvbnRhY3QyXG59IGZyb20gJy4uL2ljb25zL2NvbnRhY3Qtcm91bmQnO1xuXG4vLyBEaWFtb25kUGVyY2VudCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBEaWFtb25kUGVyY2VudH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBlcmNlbnREaWFtb25kXG59IGZyb20gJy4uL2ljb25zL2RpYW1vbmQtcGVyY2VudCc7XG5cbi8vIEVhcnRoIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEVhcnRofSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgR2xvYmUyXG59IGZyb20gJy4uL2ljb25zL2VhcnRoJztcblxuLy8gRWxsaXBzaXNWZXJ0aWNhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBFbGxpcHNpc1ZlcnRpY2FsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTW9yZVZlcnRpY2FsXG59IGZyb20gJy4uL2ljb25zL2VsbGlwc2lzLXZlcnRpY2FsJztcblxuLy8gRWxsaXBzaXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRWxsaXBzaXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNb3JlSG9yaXpvbnRhbFxufSBmcm9tICcuLi9pY29ucy9lbGxpcHNpcyc7XG5cbi8vIEZpbGVBeGlzM2QgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUF4aXMzZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVBeGlzM0Rcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1heGlzLTNkJztcblxuLy8gRmlsZUJhZGdlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgaWNvbiB3YXMgY29tYmluZWQgd2l0aCBhbm90aGVyIGljb24gdGhhdCBzaGFyZXMgdGhlIHNhbWUgdXNlIGNhc2UsIHVzZSB7QGxpbmsgRmlsZUJhZGdlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZUJhZGdlMlxufSBmcm9tICcuLi9pY29ucy9maWxlLWJhZGdlJztcblxuLy8gRmlsZUJyYWNlc0Nvcm5lciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlQnJhY2VzQ29ybmVyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZUpzb24yXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtYnJhY2VzLWNvcm5lcic7XG5cbi8vIEZpbGVCcmFjZXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUJyYWNlc30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVKc29uXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtYnJhY2VzJztcblxuLy8gRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZUJhckNoYXJ0XG59IGZyb20gJy4uL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmcnO1xuXG4vLyBGaWxlQ2hhcnRDb2x1bW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUNoYXJ0Q29sdW1ufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZUJhckNoYXJ0MlxufSBmcm9tICcuLi9pY29ucy9maWxlLWNoYXJ0LWNvbHVtbic7XG5cbi8vIEZpbGVDaGFydExpbmUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUNoYXJ0TGluZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVMaW5lQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1jaGFydC1saW5lJztcblxuLy8gRmlsZUNoYXJ0UGllIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVDaGFydFBpZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVQaWVDaGFydFxufSBmcm9tICcuLi9pY29ucy9maWxlLWNoYXJ0LXBpZSc7XG5cbi8vIEZpbGVDaGVja0Nvcm5lciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlQ2hlY2tDb3JuZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlQ2hlY2syXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtY2hlY2stY29ybmVyJztcblxuLy8gRmlsZUNvZGVDb3JuZXIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUNvZGVDb3JuZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlQ29kZTJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1jb2RlLWNvcm5lcic7XG5cbi8vIEZpbGVDb2cgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUNvZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVDb2cyXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtY29nJztcblxuLy8gRmlsZUV4Y2xhbWF0aW9uUG9pbnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUV4Y2xhbWF0aW9uUG9pbnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlV2FybmluZ1xufSBmcm9tICcuLi9pY29ucy9maWxlLWV4Y2xhbWF0aW9uLXBvaW50JztcblxuLy8gRmlsZUhlYWRwaG9uZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlSGVhZHBob25lfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZUF1ZGlvXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtaGVhZHBob25lJztcblxuLy8gRmlsZUhlYWRwaG9uZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIGljb24gd2FzIGNvbWJpbmVkIHdpdGggYW5vdGhlciBpY29uIHRoYXQgc2hhcmVzIHRoZSBzYW1lIHVzZSBjYXNlLCB1c2Uge0BsaW5rIEZpbGVIZWFkcGhvbmV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlQXVkaW8yXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtaGVhZHBob25lJztcblxuLy8gRmlsZUtleSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIGljb24gd2FzIGNvbWJpbmVkIHdpdGggYW5vdGhlciBpY29uIHRoYXQgc2hhcmVzIHRoZSBzYW1lIHVzZSBjYXNlLCB1c2Uge0BsaW5rIEZpbGVLZXl9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlS2V5MlxufSBmcm9tICcuLi9pY29ucy9maWxlLWtleSc7XG5cbi8vIEZpbGVMb2NrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgaWNvbiB3YXMgY29tYmluZWQgd2l0aCBhbm90aGVyIGljb24gdGhhdCBzaGFyZXMgdGhlIHNhbWUgdXNlIGNhc2UsIHVzZSB7QGxpbmsgRmlsZUxvY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlTG9jazJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1sb2NrJztcblxuLy8gRmlsZU1pbnVzQ29ybmVyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVNaW51c0Nvcm5lcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVNaW51czJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1taW51cy1jb3JuZXInO1xuXG4vLyBGaWxlUGVuTGluZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlUGVuTGluZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVTaWduYXR1cmVcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1wZW4tbGluZSc7XG5cbi8vIEZpbGVQZW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZVBlbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVFZGl0XG59IGZyb20gJy4uL2ljb25zL2ZpbGUtcGVuJztcblxuLy8gRmlsZVBsYXkgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZVBsYXl9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlVmlkZW9cbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1wbGF5JztcblxuLy8gRmlsZVBsdXNDb3JuZXIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZVBsdXNDb3JuZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlUGx1czJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1wbHVzLWNvcm5lcic7XG5cbi8vIEZpbGVRdWVzdGlvbk1hcmsgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZVF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVRdWVzdGlvblxufSBmcm9tICcuLi9pY29ucy9maWxlLXF1ZXN0aW9uLW1hcmsnO1xuXG4vLyBGaWxlU2VhcmNoQ29ybmVyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVTZWFyY2hDb3JuZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlU2VhcmNoMlxufSBmcm9tICcuLi9pY29ucy9maWxlLXNlYXJjaC1jb3JuZXInO1xuXG4vLyBGaWxlVHlwZUNvcm5lciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlVHlwZUNvcm5lcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVUeXBlMlxufSBmcm9tICcuLi9pY29ucy9maWxlLXR5cGUtY29ybmVyJztcblxuLy8gRmlsZVNpZ25hbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlU2lnbmFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZVZvbHVtZTJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1zaWduYWwnO1xuXG4vLyBGaWxlVmlkZW9DYW1lcmEgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZVZpZGVvQ2FtZXJhfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZVZpZGVvMlxufSBmcm9tICcuLi9pY29ucy9maWxlLXZpZGVvLWNhbWVyYSc7XG5cbi8vIEZpbGVYQ29ybmVyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVYQ29ybmVyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZVgyXG59IGZyb20gJy4uL2ljb25zL2ZpbGUteC1jb3JuZXInO1xuXG4vLyBGaW5nZXJwcmludFBhdHRlcm4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmluZ2VycHJpbnRQYXR0ZXJufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmluZ2VycHJpbnRcbn0gZnJvbSAnLi4vaWNvbnMvZmluZ2VycHJpbnQtcGF0dGVybic7XG5cbi8vIEZvbGRlckNvZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGb2xkZXJDb2d9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGb2xkZXJDb2cyXG59IGZyb20gJy4uL2ljb25zL2ZvbGRlci1jb2cnO1xuXG4vLyBGb2xkZXJQZW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRm9sZGVyUGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRm9sZGVyRWRpdFxufSBmcm9tICcuLi9pY29ucy9mb2xkZXItcGVuJztcblxuLy8gRnVubmVsWCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGdW5uZWxYfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsdGVyWFxufSBmcm9tICcuLi9pY29ucy9mdW5uZWwteCc7XG5cbi8vIEZ1bm5lbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGdW5uZWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWx0ZXJcbn0gZnJvbSAnLi4vaWNvbnMvZnVubmVsJztcblxuLy8gR2l0Q29tbWl0SG9yaXpvbnRhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBHaXRDb21taXRIb3Jpem9udGFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgR2l0Q29tbWl0XG59IGZyb20gJy4uL2ljb25zL2dpdC1jb21taXQtaG9yaXpvbnRhbCc7XG5cbi8vIEdyaWQyeDJDaGVjayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBHcmlkMngyQ2hlY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHcmlkMlgyQ2hlY2tcbn0gZnJvbSAnLi4vaWNvbnMvZ3JpZC0yeDItY2hlY2snO1xuXG4vLyBHcmlkMngyUGx1cyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBHcmlkMngyUGx1c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdyaWQyWDJQbHVzXG59IGZyb20gJy4uL2ljb25zL2dyaWQtMngyLXBsdXMnO1xuXG4vLyBHcmlkMngyWCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBHcmlkMngyWH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdyaWQyWDJYXG59IGZyb20gJy4uL2ljb25zL2dyaWQtMngyLXgnO1xuXG4vLyBHcmlkMngyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEdyaWQyeDJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHcmlkMlgyXG59IGZyb20gJy4uL2ljb25zL2dyaWQtMngyJztcblxuLy8gR3JpZDN4MyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBHcmlkM3gzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgR3JpZFxufSBmcm9tICcuLi9pY29ucy9ncmlkLTN4Myc7XG5cbi8vIEdyaWQzeDMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgR3JpZDN4M30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdyaWQzWDNcbn0gZnJvbSAnLi4vaWNvbnMvZ3JpZC0zeDMnO1xuXG4vLyBIYW5kR3JhYiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBIYW5kR3JhYn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdyYWJcbn0gZnJvbSAnLi4vaWNvbnMvaGFuZC1ncmFiJztcblxuLy8gSG91c2UgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgSG91c2V9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBIb21lXG59IGZyb20gJy4uL2ljb25zL2hvdXNlJztcblxuLy8gSGFuZEhlbHBpbmcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgSGFuZEhlbHBpbmd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBIZWxwaW5nSGFuZFxufSBmcm9tICcuLi9pY29ucy9oYW5kLWhlbHBpbmcnO1xuXG4vLyBJY2VDcmVhbUJvd2wgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgSWNlQ3JlYW1Cb3dsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgSWNlQ3JlYW0yXG59IGZyb20gJy4uL2ljb25zL2ljZS1jcmVhbS1ib3dsJztcblxuLy8gSWNlQ3JlYW1Db25lIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEljZUNyZWFtQ29uZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEljZUNyZWFtXG59IGZyb20gJy4uL2ljb25zL2ljZS1jcmVhbS1jb25lJztcblxuLy8gTGFwdG9wTWluaW1hbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBMYXB0b3BNaW5pbWFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTGFwdG9wMlxufSBmcm9tICcuLi9pY29ucy9sYXB0b3AtbWluaW1hbCc7XG5cbi8vIExheWVycyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIGljb24gd2FzIGNvbWJpbmVkIHdpdGggYW5vdGhlciBpY29uIHRoYXQgc2hhcmVzIHRoZSBzYW1lIHVzZSBjYXNlLCB1c2Uge0BsaW5rIExheWVyc30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIExheWVyczNcbn0gZnJvbSAnLi4vaWNvbnMvbGF5ZXJzJztcblxuLy8gTGlzdEluZGVudERlY3JlYXNlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIExpc3RJbmRlbnREZWNyZWFzZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIE91dGRlbnRcbn0gZnJvbSAnLi4vaWNvbnMvbGlzdC1pbmRlbnQtZGVjcmVhc2UnO1xuXG4vLyBMaXN0SW5kZW50RGVjcmVhc2UgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgTGlzdEluZGVudERlY3JlYXNlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgSW5kZW50RGVjcmVhc2Vcbn0gZnJvbSAnLi4vaWNvbnMvbGlzdC1pbmRlbnQtZGVjcmVhc2UnO1xuXG4vLyBMaXN0SW5kZW50SW5jcmVhc2UgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgTGlzdEluZGVudEluY3JlYXNlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgSW5kZW50XG59IGZyb20gJy4uL2ljb25zL2xpc3QtaW5kZW50LWluY3JlYXNlJztcblxuLy8gTGlzdEluZGVudEluY3JlYXNlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIExpc3RJbmRlbnRJbmNyZWFzZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEluZGVudEluY3JlYXNlXG59IGZyb20gJy4uL2ljb25zL2xpc3QtaW5kZW50LWluY3JlYXNlJztcblxuLy8gTG9hZGVyQ2lyY2xlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIExvYWRlckNpcmNsZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIExvYWRlcjJcbn0gZnJvbSAnLi4vaWNvbnMvbG9hZGVyLWNpcmNsZSc7XG5cbi8vIExvY2tLZXlob2xlT3BlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBMb2NrS2V5aG9sZU9wZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVbmxvY2tLZXlob2xlXG59IGZyb20gJy4uL2ljb25zL2xvY2sta2V5aG9sZS1vcGVuJztcblxuLy8gTWFpbFF1ZXN0aW9uTWFyayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBNYWlsUXVlc3Rpb25NYXJrfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTWFpbFF1ZXN0aW9uXG59IGZyb20gJy4uL2ljb25zL21haWwtcXVlc3Rpb24tbWFyayc7XG5cbi8vIExvY2tPcGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIExvY2tPcGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVW5sb2NrXG59IGZyb20gJy4uL2ljb25zL2xvY2stb3Blbic7XG5cbi8vIE1hcFBpblBlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBNYXBQaW5QZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBMb2NhdGlvbkVkaXRcbn0gZnJvbSAnLi4vaWNvbnMvbWFwLXBpbi1wZW4nO1xuXG4vLyBNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcmt9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNZXNzYWdlQ2lyY2xlUXVlc3Rpb25cbn0gZnJvbSAnLi4vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcXVlc3Rpb24tbWFyayc7XG5cbi8vIE1pY1ZvY2FsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIE1pY1ZvY2FsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTWljMlxufSBmcm9tICcuLi9pY29ucy9taWMtdm9jYWwnO1xuXG4vLyBNb3ZlM2QgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgTW92ZTNkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTW92ZTNEXG59IGZyb20gJy4uL2ljb25zL21vdmUtM2QnO1xuXG4vLyBPY3RhZ29uQWxlcnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgT2N0YWdvbkFsZXJ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxlcnRPY3RhZ29uXG59IGZyb20gJy4uL2ljb25zL29jdGFnb24tYWxlcnQnO1xuXG4vLyBPY3RhZ29uUGF1c2UgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgT2N0YWdvblBhdXNlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGF1c2VPY3RhZ29uXG59IGZyb20gJy4uL2ljb25zL29jdGFnb24tcGF1c2UnO1xuXG4vLyBPY3RhZ29uWCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBPY3RhZ29uWH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFhPY3RhZ29uXG59IGZyb20gJy4uL2ljb25zL29jdGFnb24teCc7XG5cbi8vIFBhaW50YnJ1c2hWZXJ0aWNhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYWludGJydXNoVmVydGljYWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYWludGJydXNoMlxufSBmcm9tICcuLi9pY29ucy9wYWludGJydXNoLXZlcnRpY2FsJztcblxuLy8gUGFuZWxCb3R0b21EYXNoZWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGFuZWxCb3R0b21EYXNoZWR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYW5lbEJvdHRvbUluYWN0aXZlXG59IGZyb20gJy4uL2ljb25zL3BhbmVsLWJvdHRvbS1kYXNoZWQnO1xuXG4vLyBQYW5lbExlZnRDbG9zZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYW5lbExlZnRDbG9zZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNpZGViYXJDbG9zZVxufSBmcm9tICcuLi9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlJztcblxuLy8gUGFuZWxMZWZ0RGFzaGVkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBhbmVsTGVmdERhc2hlZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhbmVsTGVmdEluYWN0aXZlXG59IGZyb20gJy4uL2ljb25zL3BhbmVsLWxlZnQtZGFzaGVkJztcblxuLy8gUGFuZWxMZWZ0T3BlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYW5lbExlZnRPcGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2lkZWJhck9wZW5cbn0gZnJvbSAnLi4vaWNvbnMvcGFuZWwtbGVmdC1vcGVuJztcblxuLy8gUGFuZWxMZWZ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBhbmVsTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNpZGViYXJcbn0gZnJvbSAnLi4vaWNvbnMvcGFuZWwtbGVmdCc7XG5cbi8vIFBhbmVsUmlnaHREYXNoZWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGFuZWxSaWdodERhc2hlZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhbmVsUmlnaHRJbmFjdGl2ZVxufSBmcm9tICcuLi9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWQnO1xuXG4vLyBQYW5lbFRvcERhc2hlZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYW5lbFRvcERhc2hlZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhbmVsVG9wSW5hY3RpdmVcbn0gZnJvbSAnLi4vaWNvbnMvcGFuZWwtdG9wLWRhc2hlZCc7XG5cbi8vIFBhbmVsc1RvcExlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGFuZWxzVG9wTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIExheW91dFxufSBmcm9tICcuLi9pY29ucy9wYW5lbHMtdG9wLWxlZnQnO1xuXG4vLyBQZW5MaW5lIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBlbkxpbmV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBFZGl0M1xufSBmcm9tICcuLi9pY29ucy9wZW4tbGluZSc7XG5cbi8vIFBlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBFZGl0MlxufSBmcm9tICcuLi9pY29ucy9wZW4nO1xuXG4vLyBQbHVnWmFwIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBsdWdaYXB9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQbHVnWmFwMlxufSBmcm9tICcuLi9pY29ucy9wbHVnLXphcCc7XG5cbi8vIFJvdGF0ZTNkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFJvdGF0ZTNkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUm90YXRlM0Rcbn0gZnJvbSAnLi4vaWNvbnMvcm90YXRlLTNkJztcblxuLy8gUm93czIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUm93czJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBSb3dzXG59IGZyb20gJy4uL2ljb25zL3Jvd3MtMic7XG5cbi8vIFJlY3RhbmdsZUVsbGlwc2lzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFJlY3RhbmdsZUVsbGlwc2lzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRm9ybUlucHV0XG59IGZyb20gJy4uL2ljb25zL3JlY3RhbmdsZS1lbGxpcHNpcyc7XG5cbi8vIFJvd3MzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFJvd3MzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFuZWxzVG9wQm90dG9tXG59IGZyb20gJy4uL2ljb25zL3Jvd3MtMyc7XG5cbi8vIFNjYWxlM2QgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU2NhbGUzZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNjYWxlM0Rcbn0gZnJvbSAnLi4vaWNvbnMvc2NhbGUtM2QnO1xuXG4vLyBTZW5kSG9yaXpvbnRhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCBiZWNhdXNlIG9mIHR5cG8sIHVzZSB7QGxpbmsgU2VuZEhvcml6b250YWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTZW5kSG9yaXpvbmFsXG59IGZyb20gJy4uL2ljb25zL3NlbmQtaG9yaXpvbnRhbCc7XG5cbi8vIFNoaWVsZFF1ZXN0aW9uTWFyayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTaGllbGRRdWVzdGlvbk1hcmt9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTaGllbGRRdWVzdGlvblxufSBmcm9tICcuLi9pY29ucy9zaGllbGQtcXVlc3Rpb24tbWFyayc7XG5cbi8vIFNoaWVsZFggYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU2hpZWxkWH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNoaWVsZENsb3NlXG59IGZyb20gJy4uL2ljb25zL3NoaWVsZC14JztcblxuLy8gU2xpZGVyc1ZlcnRpY2FsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNsaWRlcnNWZXJ0aWNhbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNsaWRlcnNcbn0gZnJvbSAnLi4vaWNvbnMvc2xpZGVycy12ZXJ0aWNhbCc7XG5cbi8vIFNwYXJrbGVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNwYXJrbGVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU3RhcnNcbn0gZnJvbSAnLi4vaWNvbnMvc3BhcmtsZXMnO1xuXG4vLyBTcXVhcmVBY3Rpdml0eSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBY3Rpdml0eX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFjdGl2aXR5U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hY3Rpdml0eSc7XG5cbi8vIFNxdWFyZUFycm93RG93bkxlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dEb3duTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93bkxlZnRTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdCc7XG5cbi8vIFNxdWFyZUFycm93RG93blJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFycm93RG93blJpZ2h0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duUmlnaHRTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tcmlnaHQnO1xuXG4vLyBTcXVhcmVBcnJvd0Rvd24gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dEb3dufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duJztcblxuLy8gU3F1YXJlQXJyb3dMZWZ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFycm93TGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93TGVmdFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdCc7XG5cbi8vIFNxdWFyZUFycm93T3V0RG93bkxlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dPdXREb3duTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93bkxlZnRGcm9tU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0JztcblxuLy8gU3F1YXJlQXJyb3dPdXREb3duUmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dPdXREb3duUmlnaHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd0Rvd25SaWdodEZyb21TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0JztcblxuLy8gU3F1YXJlQXJyb3dPdXRVcExlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dPdXRVcExlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwTGVmdEZyb21TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0JztcblxuLy8gU3F1YXJlQXJyb3dPdXRVcFJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFycm93T3V0VXBSaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93VXBSaWdodEZyb21TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1yaWdodCc7XG5cbi8vIFNxdWFyZUFycm93UmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dSaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93UmlnaHRTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0JztcblxuLy8gU3F1YXJlQXJyb3dVcExlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dVcExlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwTGVmdFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctdXAtbGVmdCc7XG5cbi8vIFNxdWFyZUFycm93VXBSaWdodCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd1VwUmlnaHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwUmlnaHRTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LXVwLXJpZ2h0JztcblxuLy8gU3F1YXJlQXJyb3dVcCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd1VwfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dVcFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctdXAnO1xuXG4vLyBTcXVhcmVBc3RlcmlzayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBc3Rlcmlza30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFzdGVyaXNrU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hc3Rlcmlzayc7XG5cbi8vIFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b21cbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWJvdHRvbS1kYXNoZWQtc2Npc3NvcnMnO1xuXG4vLyBTcXVhcmVDaGFydEdhbnR0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUNoYXJ0R2FudHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHYW50dENoYXJ0U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1jaGFydC1nYW50dCc7XG5cbi8vIFNxdWFyZUNoYXJ0R2FudHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hhcnRHYW50dH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNxdWFyZUdhbnR0Q2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0JztcblxuLy8gU3F1YXJlQ2hlY2tCaWcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hlY2tCaWd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGVja1NxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hlY2stYmlnJztcblxuLy8gU3F1YXJlQ2hlY2sgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hlY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGVja1NxdWFyZTJcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWNoZWNrJztcblxuLy8gU3F1YXJlQ2hldnJvbkRvd24gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hldnJvbkRvd259IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGV2cm9uRG93blNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hldnJvbi1kb3duJztcblxuLy8gU3F1YXJlQ2hldnJvbkxlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hldnJvbkxlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGV2cm9uTGVmdFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hldnJvbi1sZWZ0JztcblxuLy8gU3F1YXJlQ2hldnJvblJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUNoZXZyb25SaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25SaWdodFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hldnJvbi1yaWdodCc7XG5cbi8vIFNxdWFyZUNoZXZyb25VcCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVDaGV2cm9uVXB9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGV2cm9uVXBTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWNoZXZyb24tdXAnO1xuXG4vLyBTcXVhcmVDb2RlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUNvZGV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDb2RlU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1jb2RlJztcblxuLy8gU3F1YXJlRGFzaGVkS2FuYmFuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZURhc2hlZEthbmJhbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEthbmJhblNxdWFyZURhc2hlZFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtZGFzaGVkLWthbmJhbic7XG5cbi8vIFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWRcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWRhc2hlZC1tb3VzZS1wb2ludGVyJztcblxuLy8gU3F1YXJlRGFzaGVkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZURhc2hlZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJveFNlbGVjdFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtZGFzaGVkJztcblxuLy8gU3F1YXJlRGl2aWRlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZURpdmlkZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIERpdmlkZVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtZGl2aWRlJztcblxuLy8gU3F1YXJlRG90IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZURvdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIERvdFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtZG90JztcblxuLy8gU3F1YXJlRXF1YWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlRXF1YWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBFcXVhbFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtZXF1YWwnO1xuXG4vLyBTcXVhcmVGdW5jdGlvbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVGdW5jdGlvbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZ1bmN0aW9uU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1mdW5jdGlvbic7XG5cbi8vIFNxdWFyZUthbmJhbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVLYW5iYW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBLYW5iYW5TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWthbmJhbic7XG5cbi8vIFNxdWFyZUxpYnJhcnkgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlTGlicmFyeX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIExpYnJhcnlTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWxpYnJhcnknO1xuXG4vLyBTcXVhcmVNIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZU19IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1tJztcblxuLy8gU3F1YXJlTWVudSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVNZW51fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTWVudVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtbWVudSc7XG5cbi8vIFNxdWFyZU1pbnVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZU1pbnVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTWludXNTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLW1pbnVzJztcblxuLy8gU3F1YXJlTW91c2VQb2ludGVyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZU1vdXNlUG9pbnRlcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEluc3BlY3Rcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLW1vdXNlLXBvaW50ZXInO1xuXG4vLyBTcXVhcmVQYXJraW5nT2ZmIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVBhcmtpbmdPZmZ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYXJraW5nU3F1YXJlT2ZmXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wYXJraW5nLW9mZic7XG5cbi8vIFNxdWFyZVBhcmtpbmcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGFya2luZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhcmtpbmdTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXBhcmtpbmcnO1xuXG4vLyBTcXVhcmVQZW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGVuQm94XG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wZW4nO1xuXG4vLyBTcXVhcmVQZW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRWRpdFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGVuJztcblxuLy8gU3F1YXJlUGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVBlbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBlblNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGVuJztcblxuLy8gU3F1YXJlUGVyY2VudCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQZXJjZW50fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGVyY2VudFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGVyY2VudCc7XG5cbi8vIFNxdWFyZVBpIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVBpfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGlTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXBpJztcblxuLy8gU3F1YXJlUGlsY3JvdyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQaWxjcm93fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGlsY3Jvd1NxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGlsY3Jvdyc7XG5cbi8vIFNxdWFyZVBsYXkgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGxheX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBsYXlTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXBsYXknO1xuXG4vLyBTcXVhcmVQbHVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVBsdXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQbHVzU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wbHVzJztcblxuLy8gU3F1YXJlUG93ZXIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUG93ZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQb3dlclNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcG93ZXInO1xuXG4vLyBTcXVhcmVTY2lzc29ycyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVTY2lzc29yc30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNjaXNzb3JzU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1zY2lzc29ycyc7XG5cbi8vIFNxdWFyZVNpZ21hIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVNpZ21hfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2lnbWFTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXNpZ21hJztcblxuLy8gU3F1YXJlU2xhc2ggYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlU2xhc2h9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTbGFzaFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtc2xhc2gnO1xuXG4vLyBTcXVhcmVTcGxpdEhvcml6b250YWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlU3BsaXRIb3Jpem9udGFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU3BsaXRTcXVhcmVIb3Jpem9udGFsXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1zcGxpdC1ob3Jpem9udGFsJztcblxuLy8gU3F1YXJlU3BsaXRWZXJ0aWNhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVTcGxpdFZlcnRpY2FsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU3BsaXRTcXVhcmVWZXJ0aWNhbFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtc3BsaXQtdmVydGljYWwnO1xuXG4vLyBTcXVhcmVUZXJtaW5hbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVUZXJtaW5hbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFRlcm1pbmFsU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS10ZXJtaW5hbCc7XG5cbi8vIFNxdWFyZVVzZXJSb3VuZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVVc2VyUm91bmR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyU3F1YXJlMlxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtdXNlci1yb3VuZCc7XG5cbi8vIFNxdWFyZVVzZXIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlVXNlcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXVzZXInO1xuXG4vLyBTcXVhcmVYIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVh9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBYU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS14JztcblxuLy8gVGVzdFR1YmVEaWFnb25hbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXN0VHViZURpYWdvbmFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVGVzdFR1YmUyXG59IGZyb20gJy4uL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbCc7XG5cbi8vIFRleHRBbGlnbkNlbnRlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXh0QWxpZ25DZW50ZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBbGlnbkNlbnRlclxufSBmcm9tICcuLi9pY29ucy90ZXh0LWFsaWduLWNlbnRlcic7XG5cbi8vIFRleHRBbGlnbkVuZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXh0QWxpZ25FbmR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBbGlnblJpZ2h0XG59IGZyb20gJy4uL2ljb25zL3RleHQtYWxpZ24tZW5kJztcblxuLy8gVGV4dEFsaWduSnVzdGlmeSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXh0QWxpZ25KdXN0aWZ5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxpZ25KdXN0aWZ5XG59IGZyb20gJy4uL2ljb25zL3RleHQtYWxpZ24tanVzdGlmeSc7XG5cbi8vIFRleHRBbGlnblN0YXJ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgaWNvbiB3YXMgY29tYmluZWQgd2l0aCBhbm90aGVyIGljb24gdGhhdCBzaGFyZXMgdGhlIHNhbWUgdXNlIGNhc2UsIHVzZSB7QGxpbmsgVGV4dEFsaWduU3RhcnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBUZXh0XG59IGZyb20gJy4uL2ljb25zL3RleHQtYWxpZ24tc3RhcnQnO1xuXG4vLyBUZXh0QWxpZ25TdGFydCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXh0QWxpZ25TdGFydH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFsaWduTGVmdFxufSBmcm9tICcuLi9pY29ucy90ZXh0LWFsaWduLXN0YXJ0JztcblxuLy8gVGV4dEluaXRpYWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVGV4dEluaXRpYWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBMZXR0ZXJUZXh0XG59IGZyb20gJy4uL2ljb25zL3RleHQtaW5pdGlhbCc7XG5cbi8vIFRleHRTZWxlY3QgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVGV4dFNlbGVjdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFRleHRTZWxlY3Rpb25cbn0gZnJvbSAnLi4vaWNvbnMvdGV4dC1zZWxlY3QnO1xuXG4vLyBUZXh0V3JhcCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXh0V3JhcH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFdyYXBUZXh0XG59IGZyb20gJy4uL2ljb25zL3RleHQtd3JhcCc7XG5cbi8vIFRyYW1Gcm9udCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUcmFtRnJvbnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBUcmFpblxufSBmcm9tICcuLi9pY29ucy90cmFtLWZyb250JztcblxuLy8gVHJlZVBhbG0gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVHJlZVBhbG19IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYWxtdHJlZVxufSBmcm9tICcuLi9pY29ucy90cmVlLXBhbG0nO1xuXG4vLyBUcmlhbmdsZUFsZXJ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFRyaWFuZ2xlQWxlcnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBbGVydFRyaWFuZ2xlXG59IGZyb20gJy4uL2ljb25zL3RyaWFuZ2xlLWFsZXJ0JztcblxuLy8gVHZNaW5pbWFsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFR2TWluaW1hbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFR2MlxufSBmcm9tICcuLi9pY29ucy90di1taW5pbWFsJztcblxuLy8gVW5pdmVyc2l0eSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBVbml2ZXJzaXR5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2Nob29sMlxufSBmcm9tICcuLi9pY29ucy91bml2ZXJzaXR5JztcblxuLy8gVXNlclJvdW5kQ2hlY2sgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kQ2hlY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyQ2hlY2syXG59IGZyb20gJy4uL2ljb25zL3VzZXItcm91bmQtY2hlY2snO1xuXG4vLyBVc2VyUm91bmRDb2cgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kQ29nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVXNlckNvZzJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlci1yb3VuZC1jb2cnO1xuXG4vLyBVc2VyUm91bmRNaW51cyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBVc2VyUm91bmRNaW51c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJNaW51czJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlci1yb3VuZC1taW51cyc7XG5cbi8vIFVzZXJSb3VuZFBsdXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kUGx1c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJQbHVzMlxufSBmcm9tICcuLi9pY29ucy91c2VyLXJvdW5kLXBsdXMnO1xuXG4vLyBVc2VyUm91bmQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVXNlcjJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlci1yb3VuZCc7XG5cbi8vIFVzZXJSb3VuZFggYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kWH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJYMlxufSBmcm9tICcuLi9pY29ucy91c2VyLXJvdW5kLXgnO1xuXG4vLyBVc2Vyc1JvdW5kIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFVzZXJzUm91bmR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyczJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlcnMtcm91bmQnO1xuXG4vLyBVdGVuc2lsc0Nyb3NzZWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXRlbnNpbHNDcm9zc2VkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRm9ya0tuaWZlQ3Jvc3NlZFxufSBmcm9tICcuLi9pY29ucy91dGVuc2lscy1jcm9zc2VkJztcblxuLy8gVXRlbnNpbHMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXRlbnNpbHN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGb3JrS25pZmVcbn0gZnJvbSAnLi4vaWNvbnMvdXRlbnNpbHMnO1xuXG4vLyBXYWxsZXRNaW5pbWFsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFdhbGxldE1pbmltYWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBXYWxsZXQyXG59IGZyb20gJy4uL2ljb25zL3dhbGxldC1taW5pbWFsJztcblxuLy8gV2FuZFNwYXJrbGVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFdhbmRTcGFya2xlc30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFdhbmQyXG59IGZyb20gJy4uL2ljb25zL3dhbmQtc3BhcmtsZXMnO1xuXG4iXX0=