react-canvaskit
Version:
A React implementation of the Skia-CanvasKit drawing library.
172 lines • 21.6 kB
JavaScript
import { createCkCanvas } from './CkCanvas';
import { createCkEncodedImage } from './CkEncodedImage';
import { createCkLine } from './CkLine';
import { createCkParagraph } from './CkParagraph';
import { createCkSurface } from './CkSurface';
import { createCkText } from './CkText';
export function isContainerElement(ckElement) {
return ckElement.children !== undefined;
}
var CkPropTypes;
(function (CkPropTypes) {
CkPropTypes.Color = {
red: 'number',
green: 'number',
blue: 'number',
alpha: 'number',
};
})(CkPropTypes || (CkPropTypes = {}));
export var FilterQuality;
(function (FilterQuality) {
})(FilterQuality || (FilterQuality = {}));
// TODO
export var StrokeCap;
(function (StrokeCap) {
})(StrokeCap || (StrokeCap = {}));
// TODO
export var StrokeJoin;
(function (StrokeJoin) {
})(StrokeJoin || (StrokeJoin = {}));
// TODO
export var BlendMode;
(function (BlendMode) {
})(BlendMode || (BlendMode = {}));
export var TileMode;
(function (TileMode) {
})(TileMode || (TileMode = {}));
(function (FilterQuality) {
})(FilterQuality || (FilterQuality = {}));
export var BlurStyle;
(function (BlurStyle) {
})(BlurStyle || (BlurStyle = {}));
export var PaintStyle;
(function (PaintStyle) {
/**
* Fill the geometry.
*/
PaintStyle[PaintStyle["Fill"] = 0] = "Fill";
/**
* Stroke the geometry.
*/
PaintStyle[PaintStyle["Stroke"] = 1] = "Stroke";
/**
* Fill and stroke the geometry.
*/
PaintStyle[PaintStyle["StrokeAndFill"] = 2] = "StrokeAndFill";
})(PaintStyle || (PaintStyle = {}));
export var TextAlignEnum;
(function (TextAlignEnum) {
TextAlignEnum[TextAlignEnum["Left"] = 0] = "Left";
TextAlignEnum[TextAlignEnum["Center"] = 1] = "Center";
TextAlignEnum[TextAlignEnum["Right"] = 2] = "Right";
})(TextAlignEnum || (TextAlignEnum = {}));
export var TextDirectionEnum;
(function (TextDirectionEnum) {
TextDirectionEnum[TextDirectionEnum["Ltr"] = 0] = "Ltr";
TextDirectionEnum[TextDirectionEnum["Rtl"] = 1] = "Rtl";
// TODO
})(TextDirectionEnum || (TextDirectionEnum = {}));
export var FontWeightEnum;
(function (FontWeightEnum) {
/**
* A thick font weight of 900.
*/
FontWeightEnum[FontWeightEnum["Black"] = 900] = "Black";
/**
* A thick font weight of 700. This is the default for a bold font.
*/
FontWeightEnum[FontWeightEnum["Bold"] = 700] = "Bold";
/**
* A thick font weight of 1000.
*/
FontWeightEnum[FontWeightEnum["ExtraBlack"] = 1000] = "ExtraBlack";
/**
* A thick font weight of 800.
*/
FontWeightEnum[FontWeightEnum["ExtraBold"] = 800] = "ExtraBold";
/**
* A thin font weight of 200.
*/
FontWeightEnum[FontWeightEnum["ExtraLight"] = 200] = "ExtraLight";
/**
* The font has no thickness at all.
*/
FontWeightEnum[FontWeightEnum["Invisible"] = 0] = "Invisible";
/**
* A thin font weight of 300.
*/
FontWeightEnum[FontWeightEnum["Light"] = 300] = "Light";
/**
*A thicker font weight of 500.
*/
FontWeightEnum[FontWeightEnum["Medium"] = 500] = "Medium";
/**
*A typical font weight of 400. This is the default font weight.
*/
FontWeightEnum[FontWeightEnum["Normal"] = 400] = "Normal";
/**
*A thick font weight of 600.
*/
FontWeightEnum[FontWeightEnum["SemiBold"] = 600] = "SemiBold";
/**
*A thin font weight of 100.
*/
FontWeightEnum[FontWeightEnum["Thin"] = 100] = "Thin";
})(FontWeightEnum || (FontWeightEnum = {}));
export var FontSlantEnum;
(function (FontSlantEnum) {
FontSlantEnum[FontSlantEnum["Upright"] = 0] = "Upright";
FontSlantEnum[FontSlantEnum["Italic"] = 1] = "Italic";
FontSlantEnum[FontSlantEnum["Oblique"] = 2] = "Oblique";
})(FontSlantEnum || (FontSlantEnum = {}));
export var FontWidthEnum;
(function (FontWidthEnum) {
/**
* A condensed font width of 3.
*/
FontWidthEnum[FontWidthEnum["Condensed"] = 3] = "Condensed";
/**
* An expanded font width of 7.
*/
FontWidthEnum[FontWidthEnum["Expanded"] = 7] = "Expanded";
/**
*A condensed font width of 2.
*/
FontWidthEnum[FontWidthEnum["ExtraCondensed"] = 2] = "ExtraCondensed";
/**
*An expanded font width of 8.
*/
FontWidthEnum[FontWidthEnum["ExtraExpanded"] = 8] = "ExtraExpanded";
/**
*A normal font width of 5. This is the default font width.
*/
FontWidthEnum[FontWidthEnum["Normal"] = 5] = "Normal";
/**
*A condensed font width of 4.
*/
FontWidthEnum[FontWidthEnum["SemiCondensed"] = 4] = "SemiCondensed";
/**
*An expanded font width of 6.
*/
FontWidthEnum[FontWidthEnum["SemiExpanded"] = 6] = "SemiExpanded";
/**
*A condensed font width of 1.
*/
FontWidthEnum[FontWidthEnum["UltraCondensed"] = 1] = "UltraCondensed";
/**
*An expanded font width of 9.
*/
FontWidthEnum[FontWidthEnum["UltraExpanded"] = 9] = "UltraExpanded";
})(FontWidthEnum || (FontWidthEnum = {}));
const CkElements = {
'ck-text': createCkText,
'ck-line': createCkLine,
'ck-surface': createCkSurface,
'ck-canvas': createCkCanvas,
'ck-paragraph': createCkParagraph,
'ck-encoded-image': createCkEncodedImage,
};
export function createCkElement(type, props, canvasKit) {
return CkElements[type](type, props, canvasKit);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tpYUVsZW1lbnRUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2lhRWxlbWVudFR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBaUN2QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBeUI7SUFDMUQsT0FBUSxTQUFxQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUE7QUFDdEUsQ0FBQztBQU1ELElBQVUsV0FBVyxDQU9wQjtBQVBELFdBQVUsV0FBVztJQUNOLGlCQUFLLEdBQUc7UUFDbkIsR0FBRyxFQUFFLFFBQVE7UUFDYixLQUFLLEVBQUUsUUFBUTtRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLFFBQVE7S0FDaEIsQ0FBQTtBQUNILENBQUMsRUFQUyxXQUFXLEtBQVgsV0FBVyxRQU9wQjtBQVdELE1BQU0sQ0FBTixJQUFZLGFBQWdCO0FBQTVCLFdBQVksYUFBYTtBQUFFLENBQUMsRUFBaEIsYUFBYSxLQUFiLGFBQWEsUUFBRztBQUM1QixPQUFPO0FBRVAsTUFBTSxDQUFOLElBQVksU0FBWTtBQUF4QixXQUFZLFNBQVM7QUFBRSxDQUFDLEVBQVosU0FBUyxLQUFULFNBQVMsUUFBRztBQUN4QixPQUFPO0FBRVAsTUFBTSxDQUFOLElBQVksVUFBYTtBQUF6QixXQUFZLFVBQVU7QUFBRSxDQUFDLEVBQWIsVUFBVSxLQUFWLFVBQVUsUUFBRztBQUN6QixPQUFPO0FBRVAsTUFBTSxDQUFOLElBQVksU0FBWTtBQUF4QixXQUFZLFNBQVM7QUFBRSxDQUFDLEVBQVosU0FBUyxLQUFULFNBQVMsUUFBRztBQXFDeEIsTUFBTSxDQUFOLElBQVksUUFBVztBQUF2QixXQUFZLFFBQVE7QUFBRSxDQUFDLEVBQVgsUUFBUSxLQUFSLFFBQVEsUUFBRztBQW9CdkIsV0FBWSxhQUFhO0FBQUUsQ0FBQyxFQUFoQixhQUFhLEtBQWIsYUFBYSxRQUFHO0FBVzVCLE1BQU0sQ0FBTixJQUFZLFNBQVk7QUFBeEIsV0FBWSxTQUFTO0FBQUUsQ0FBQyxFQUFaLFNBQVMsS0FBVCxTQUFTLFFBQUc7QUFnRXhCLE1BQU0sQ0FBTixJQUFZLFVBYVg7QUFiRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCwyQ0FBUSxDQUFBO0lBQ1I7O09BRUc7SUFDSCwrQ0FBVSxDQUFBO0lBQ1Y7O09BRUc7SUFDSCw2REFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcsVUFBVSxLQUFWLFVBQVUsUUFhckI7QUEyQkQsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixpREFBUSxDQUFBO0lBQ1IscURBQVUsQ0FBQTtJQUNWLG1EQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQzNCLHVEQUFPLENBQUE7SUFDUCx1REFBTyxDQUFBO0lBQ1AsT0FBTztBQUNULENBQUMsRUFKVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSTVCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FrRFg7QUFsREQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsdURBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gscURBQVUsQ0FBQTtJQUNWOztPQUVHO0lBQ0gsa0VBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCwrREFBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCxpRUFBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILDZEQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILHVEQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHlEQUFZLENBQUE7SUFFWjs7T0FFRztJQUNILHlEQUFZLENBQUE7SUFFWjs7T0FFRztJQUNILDZEQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILHFEQUFVLENBQUE7QUFDWixDQUFDLEVBbERXLGNBQWMsS0FBZCxjQUFjLFFBa0R6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsdURBQU8sQ0FBQTtJQUNQLHFEQUFNLENBQUE7SUFDTix1REFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFxQ1g7QUFyQ0QsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsMkRBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gseURBQVksQ0FBQTtJQUNaOztPQUVHO0lBQ0gscUVBQWtCLENBQUE7SUFDbEI7O09BRUc7SUFDSCxtRUFBaUIsQ0FBQTtJQUNqQjs7T0FFRztJQUNILHFEQUFVLENBQUE7SUFDVjs7T0FFRztJQUNILG1FQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsaUVBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCxxRUFBa0IsQ0FBQTtJQUNsQjs7T0FFRztJQUNILG1FQUFpQixDQUFBO0FBQ25CLENBQUMsRUFyQ1csYUFBYSxLQUFiLGFBQWEsUUFxQ3hCO0FBNkNELE1BQU0sVUFBVSxHQUFzRDtJQUNwRSxTQUFTLEVBQUUsWUFBWTtJQUN2QixTQUFTLEVBQUUsWUFBWTtJQUN2QixZQUFZLEVBQUUsZUFBZTtJQUM3QixXQUFXLEVBQUUsY0FBYztJQUMzQixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGtCQUFrQixFQUFFLG9CQUFvQjtDQUN6QyxDQUFBO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFtQixFQUFFLEtBQTBCLEVBQUUsU0FBb0I7SUFDbkcsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDYW52YXMgYXMgU2tDYW52YXMsXG4gIENhbnZhc0tpdCxcbiAgSW1hZ2UgYXMgU2tJbWFnZSxcbiAgUGFyYWdyYXBoIGFzIFNrUGFyYWdyYXBoLFxuICBTdXJmYWNlIGFzIFNrU3VyZmFjZSxcbn0gZnJvbSAnY2FudmFza2l0LXdhc20nXG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ2tDYW52YXNQcm9wcyB9IGZyb20gJy4vQ2tDYW52YXMnXG5pbXBvcnQgeyBjcmVhdGVDa0NhbnZhcyB9IGZyb20gJy4vQ2tDYW52YXMnXG5pbXBvcnQgdHlwZSB7IENrRW5jb2RlZEltYWdlUHJvcHMgfSBmcm9tICcuL0NrRW5jb2RlZEltYWdlJ1xuaW1wb3J0IHsgY3JlYXRlQ2tFbmNvZGVkSW1hZ2UgfSBmcm9tICcuL0NrRW5jb2RlZEltYWdlJ1xuaW1wb3J0IHR5cGUgeyBDa0xpbmVQcm9wcyB9IGZyb20gJy4vQ2tMaW5lJ1xuaW1wb3J0IHsgY3JlYXRlQ2tMaW5lIH0gZnJvbSAnLi9Da0xpbmUnXG5pbXBvcnQgdHlwZSB7IENrUGFyYWdyYXBoUHJvcHMgfSBmcm9tICcuL0NrUGFyYWdyYXBoJ1xuaW1wb3J0IHsgY3JlYXRlQ2tQYXJhZ3JhcGggfSBmcm9tICcuL0NrUGFyYWdyYXBoJ1xuaW1wb3J0IHR5cGUgeyBDa1N1cmZhY2VQcm9wcyB9IGZyb20gJy4vQ2tTdXJmYWNlJ1xuaW1wb3J0IHsgY3JlYXRlQ2tTdXJmYWNlIH0gZnJvbSAnLi9Da1N1cmZhY2UnXG5pbXBvcnQgdHlwZSB7IENrVGV4dFByb3BzIH0gZnJvbSAnLi9Da1RleHQnXG5pbXBvcnQgeyBjcmVhdGVDa1RleHQgfSBmcm9tICcuL0NrVGV4dCdcblxuZXhwb3J0IHR5cGUgQ2tFbGVtZW50UHJvcHM8VD4gPSB7XG4gIHJlZj86IE11dGFibGVSZWZPYmplY3Q8VCB8IG51bGwgfCB1bmRlZmluZWQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2tPYmplY3RUeXBpbmcge1xuICAnY2stc3VyZmFjZSc6IHsgdHlwZTogU2tTdXJmYWNlOyBuYW1lOiAnU2tTdXJmYWNlJzsgcHJvcHM6IENrU3VyZmFjZVByb3BzIH1cbiAgJ2NrLWNhbnZhcyc6IHsgdHlwZTogU2tDYW52YXM7IG5hbWU6ICdTa0NhbnZhcyc7IHByb3BzOiBDa0NhbnZhc1Byb3BzIH1cbiAgJ2NrLWxpbmUnOiB7IHR5cGU6IG5ldmVyOyBuYW1lOiAnTGluZSc7IHByb3BzOiBDa0xpbmVQcm9wcyB9XG4gICdjay10ZXh0JzogeyB0eXBlOiBuZXZlcjsgbmFtZTogJ1RleHQnOyBwcm9wczogQ2tUZXh0UHJvcHMgfVxuICAnY2stcGFyYWdyYXBoJzogeyB0eXBlOiBTa1BhcmFncmFwaDsgbmFtZTogJ1NrUGFyYWdyYXBoJzsgcHJvcHM6IENrUGFyYWdyYXBoUHJvcHMgfVxuICAnY2stZW5jb2RlZC1pbWFnZSc6IHsgdHlwZTogU2tJbWFnZTsgbmFtZTogJ1NrSW1hZ2UnOyBwcm9wczogQ2tFbmNvZGVkSW1hZ2VQcm9wcyB9XG59XG5cbmV4cG9ydCB0eXBlIENrRWxlbWVudFR5cGUgPSBrZXlvZiBDa09iamVjdFR5cGluZ1xuXG5leHBvcnQgaW50ZXJmYWNlIENrRWxlbWVudDxUeXBlTmFtZSBleHRlbmRzIGtleW9mIENrT2JqZWN0VHlwaW5nPiB7XG4gIHJlYWRvbmx5IGNhbnZhc0tpdDogQ2FudmFzS2l0XG4gIHJlYWRvbmx5IHR5cGU6IFR5cGVOYW1lXG4gIHByb3BzOiBDa09iamVjdFR5cGluZ1tUeXBlTmFtZV1bJ3Byb3BzJ11cbiAgcmVhZG9ubHkgc2tPYmplY3RUeXBlOiBDa09iamVjdFR5cGluZ1tUeXBlTmFtZV1bJ25hbWUnXVxuICBza09iamVjdD86IENrT2JqZWN0VHlwaW5nW1R5cGVOYW1lXVsndHlwZSddXG5cbiAgcmVuZGVyKHBhcmVudDogQ2tFbGVtZW50Q29udGFpbmVyPGFueT4pOiB2b2lkXG5cbiAgZGVsZXRlKCk6IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDa0VsZW1lbnRDcmVhdG9yPFR5cGVOYW1lIGV4dGVuZHMga2V5b2YgQ2tPYmplY3RUeXBpbmc+IHtcbiAgKHR5cGU6IFR5cGVOYW1lLCBwcm9wczogQ2tPYmplY3RUeXBpbmdbVHlwZU5hbWVdWydwcm9wcyddLCBjYW52YXNLaXQ6IENhbnZhc0tpdCk6IENrRWxlbWVudDxUeXBlTmFtZT5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGFpbmVyRWxlbWVudChja0VsZW1lbnQ6IENrRWxlbWVudDxhbnk+KTogY2tFbGVtZW50IGlzIENrRWxlbWVudENvbnRhaW5lcjxhbnk+IHtcbiAgcmV0dXJuIChja0VsZW1lbnQgYXMgQ2tFbGVtZW50Q29udGFpbmVyPGFueT4pLmNoaWxkcmVuICE9PSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDa0VsZW1lbnRDb250YWluZXI8VHlwZU5hbWUgZXh0ZW5kcyBrZXlvZiBDa09iamVjdFR5cGluZz4gZXh0ZW5kcyBDa0VsZW1lbnQ8VHlwZU5hbWU+IHtcbiAgY2hpbGRyZW46IENrRWxlbWVudDxhbnk+W11cbn1cblxubmFtZXNwYWNlIENrUHJvcFR5cGVzIHtcbiAgZXhwb3J0IGNvbnN0IENvbG9yID0ge1xuICAgIHJlZDogJ251bWJlcicsXG4gICAgZ3JlZW46ICdudW1iZXInLFxuICAgIGJsdWU6ICdudW1iZXInLFxuICAgIGFscGhhOiAnbnVtYmVyJyxcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yIHtcbiAgcmVkOiBudW1iZXJcbiAgZ3JlZW46IG51bWJlclxuICBibHVlOiBudW1iZXJcbiAgYWxwaGE/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgQ29sb3JUeXBlTmFtZSA9ICdDb2xvcidcblxuZXhwb3J0IGVudW0gRmlsdGVyUXVhbGl0eSB7fVxuLy8gVE9ET1xuXG5leHBvcnQgZW51bSBTdHJva2VDYXAge31cbi8vIFRPRE9cblxuZXhwb3J0IGVudW0gU3Ryb2tlSm9pbiB7fVxuLy8gVE9ET1xuXG5leHBvcnQgZW51bSBCbGVuZE1vZGUge31cbi8vIFRPRE9cblxuZXhwb3J0IHR5cGUgQ29sb3JGaWx0ZXIgPVxuICB8IEJsZW5kQ29sb3JGaWx0ZXJcbiAgfCBDb21wb3NlQ29sb3JGaWx0ZXJcbiAgfCBMZXJwQ29sb3JGaWx0ZXJcbiAgfCBMaW5lYXJUb1NSR0JHYW1tYUNvbG9yRmlsdGVyXG4gIHwgTWF0cml4Q29sb3JGaWx0ZXJcbiAgfCBTUkdCVG9MaW5lYXJHYW1tYUNvbG9yRmlsdGVyXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmxlbmRDb2xvckZpbHRlciB7XG4gIGNvbG9yOiBDb2xvclxuICBibGVuZE1vZGU6IEJsZW5kTW9kZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvc2VDb2xvckZpbHRlciB7XG4gIGZpcnN0OiBDb2xvckZpbHRlclxuICBzZWNvbmQ6IENvbG9yRmlsdGVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVycENvbG9yRmlsdGVyIHtcbiAgbGVycDogbnVtYmVyXG4gIGZpcnN0OiBDb2xvckZpbHRlclxuICBzZWNvbmQ6IENvbG9yRmlsdGVyXG59XG5cbmV4cG9ydCB0eXBlIExpbmVhclRvU1JHQkdhbW1hQ29sb3JGaWx0ZXIgPSAnTGluZWFyVG9TUkdCR2FtbWEnXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0cml4Q29sb3JGaWx0ZXIge1xuICBtYXRyaXg6IE1hdHJpeFxufVxuXG5leHBvcnQgdHlwZSBTUkdCVG9MaW5lYXJHYW1tYUNvbG9yRmlsdGVyID0gJ1NSR0JUb0xpbmVhckdhbW1hJ1xuXG5leHBvcnQgdHlwZSBJbWFnZUZpbHRlciA9IEJsdXJJbWFnZUZpbHRlciB8IENvbG9ySW1hZ2VGaWx0ZXIgfCBDb21wb3NlSW1hZ2VGaWx0ZXIgfCBNYXRyaXhUcmFuc2Zvcm1JbWFnZUZpbHRlclxuXG5leHBvcnQgZW51bSBUaWxlTW9kZSB7fVxuLy8gVE9ET1xuXG5leHBvcnQgaW50ZXJmYWNlIEJsdXJJbWFnZUZpbHRlciB7XG4gIHJ4OiBudW1iZXJcbiAgcnk6IG51bWJlclxuICB0aWxlTW9kZTogVGlsZU1vZGVcbiAgbmV4dDogSW1hZ2VGaWx0ZXIgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JJbWFnZUZpbHRlciB7XG4gIGZpbHRlcjogQ29sb3JGaWx0ZXJcbiAgbmV4dDogSW1hZ2VGaWx0ZXIgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9zZUltYWdlRmlsdGVyIHtcbiAgZmlyc3Q6IEltYWdlRmlsdGVyXG4gIHNlY29uZDogSW1hZ2VGaWx0ZXJcbn1cblxuZXhwb3J0IGVudW0gRmlsdGVyUXVhbGl0eSB7fVxuLy8gVE9ET1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdHJpeFRyYW5zZm9ybUltYWdlRmlsdGVyIHtcbiAgbWF0cml4OiBNYXRyaXhDb2xvckZpbHRlclxuICBmaWx0ZXJRdWFsaXR5OiBGaWx0ZXJRdWFsaXR5XG4gIG5leHQ6IEltYWdlRmlsdGVyIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBNYXNrRmlsdGVyID0gQmx1ck1hc2tGaWx0ZXJcblxuZXhwb3J0IGVudW0gQmx1clN0eWxlIHt9XG4vLyBUT0RPXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmx1ck1hc2tGaWx0ZXIge1xuICBibHVyU3R5bGU6IEJsdXJTdHlsZVxuICByYWRpdXM6IG51bWJlclxuICBiOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFBhdGhFZmZlY3QgPSBEYXNoUGF0aEVmZmVjdCB8IENvcm5lclBhdGhFZmZlY3QgfCBEaXNjcmV0ZVBhdGhFZmZlY3RcblxuZXhwb3J0IGludGVyZmFjZSBEYXNoUGF0aEVmZmVjdCB7XG4gIGludGVydmFsczogbnVtYmVyW11cbiAgcGhhc2U6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvcm5lclBhdGhFZmZlY3Qge1xuICByYWRpdXM6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc2NyZXRlUGF0aEVmZmVjdCB7XG4gIGZyZXF1ZW5jeTogbnVtYmVyXG4gIGFtcGxpdHVkZTogbnVtYmVyXG4gIHNlZWQ6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBTaGFkZXIgPSBMaW5lYXJHcmFkaWVudFNoYWRlciB8IFJhZGlhbEdyYWRpZW50U2hhZGVyIHwgVHdvUG9pbnRDb25pY2FsR3JhZGllbnRTaGFkZXJcblxuZXhwb3J0IHR5cGUgUG9pbnQgPSBbbnVtYmVyLCBudW1iZXJdXG5cbmV4cG9ydCB0eXBlIE1hdHJpeCA9IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmVhckdyYWRpZW50U2hhZGVyIHtcbiAgc3RhcnQ6IFBvaW50XG4gIGVuZDogUG9pbnRcbiAgY29sb3JzOiBDb2xvcltdXG4gIHBvc2l0aW9uczogbnVtYmVyW11cbiAgbW9kZTogbnVtYmVyXG4gIGxvY2FsTWF0cml4OiBNYXRyaXggfCBudWxsXG4gIGZsYWdzOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYWRpYWxHcmFkaWVudFNoYWRlciB7XG4gIGNlbnRlcjogUG9pbnRcbiAgcmFkaXVzOiBudW1iZXJcbiAgY29sb3JzOiBDb2xvcltdXG4gIHBvc2l0aW9uczogbnVtYmVyW11cbiAgbW9kZTogbnVtYmVyXG4gIGxvY2FsTWF0cml4PzogTWF0cml4XG4gIGZsYWdzOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUd29Qb2ludENvbmljYWxHcmFkaWVudFNoYWRlciB7XG4gIHN0YXJ0OiBQb2ludFxuICBzdGFydFJhZGl1czogbnVtYmVyXG4gIGVuZDogUG9pbnRcbiAgZW5kUmFkaXVzOiBudW1iZXJcbiAgY29sb3JzOiBDb2xvcltdXG4gIHBvc2l0aW9uczogbnVtYmVyW11cbiAgbW9kZTogbnVtYmVyXG4gIGxvY2FsTWF0cml4PzogTWF0cml4XG4gIGZsYWdzOiBudW1iZXJcbn1cblxuZXhwb3J0IGVudW0gUGFpbnRTdHlsZSB7XG4gIC8qKlxuICAgKiBGaWxsIHRoZSBnZW9tZXRyeS5cbiAgICovXG4gIEZpbGwgPSAwLFxuICAvKipcbiAgICogU3Ryb2tlIHRoZSBnZW9tZXRyeS5cbiAgICovXG4gIFN0cm9rZSA9IDEsXG4gIC8qKlxuICAgKiBGaWxsIGFuZCBzdHJva2UgdGhlIGdlb21ldHJ5LlxuICAgKi9cbiAgU3Ryb2tlQW5kRmlsbCA9IDIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFpbnQge1xuICBibGVuZE1vZGU/OiBCbGVuZE1vZGVcbiAgY29sb3I/OiBDb2xvciB8IHN0cmluZ1xuICBmaWx0ZXJRdWFsaXR5PzogRmlsdGVyUXVhbGl0eVxuICBzdHJva2VDYXA/OiBTdHJva2VDYXBcbiAgc3Ryb2tlSm9pbj86IFN0cm9rZUpvaW5cbiAgc3Ryb2tlTWl0ZXI/OiBudW1iZXJcbiAgc3Ryb2tlV2lkdGg/OiBudW1iZXJcbiAgYW50aUFsaWFzPzogYm9vbGVhblxuICBjb2xvckZpbHRlcj86IENvbG9yRmlsdGVyXG4gIGltYWdlRmlsdGVyPzogSW1hZ2VGaWx0ZXJcbiAgbWFza0ZpbHRlcj86IE1hc2tGaWx0ZXJcbiAgcGF0aEVmZmVjdD86IFBhdGhFZmZlY3RcbiAgc2hhZGVyPzogU2hhZGVyXG4gIHN0eWxlPzogUGFpbnRTdHlsZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmVQcm9wcyB7XG4gIHgxOiBudW1iZXJcbiAgeTE6IG51bWJlclxuICB4MjogbnVtYmVyXG4gIHkyOiBudW1iZXJcbiAgcGFpbnQ6IFBhaW50XG59XG5cbmV4cG9ydCBlbnVtIFRleHRBbGlnbkVudW0ge1xuICBMZWZ0ID0gMCxcbiAgQ2VudGVyID0gMSxcbiAgUmlnaHQgPSAyLFxufVxuXG5leHBvcnQgZW51bSBUZXh0RGlyZWN0aW9uRW51bSB7XG4gIEx0ciA9IDAsXG4gIFJ0bCA9IDEsXG4gIC8vIFRPRE9cbn1cblxuZXhwb3J0IGVudW0gRm9udFdlaWdodEVudW0ge1xuICAvKipcbiAgICogQSB0aGljayBmb250IHdlaWdodCBvZiA5MDAuXG4gICAqL1xuICBCbGFjayA9IDkwMCxcbiAgLyoqXG4gICAqIEEgdGhpY2sgZm9udCB3ZWlnaHQgb2YgNzAwLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciBhIGJvbGQgZm9udC5cbiAgICovXG4gIEJvbGQgPSA3MDAsXG4gIC8qKlxuICAgKiBBIHRoaWNrIGZvbnQgd2VpZ2h0IG9mIDEwMDAuXG4gICAqL1xuICBFeHRyYUJsYWNrID0gMTAwMCxcbiAgLyoqXG4gICAqIEEgdGhpY2sgZm9udCB3ZWlnaHQgb2YgODAwLlxuICAgKi9cbiAgRXh0cmFCb2xkID0gODAwLFxuICAvKipcbiAgICogQSB0aGluIGZvbnQgd2VpZ2h0IG9mIDIwMC5cbiAgICovXG4gIEV4dHJhTGlnaHQgPSAyMDAsXG4gIC8qKlxuICAgKiBUaGUgZm9udCBoYXMgbm8gdGhpY2tuZXNzIGF0IGFsbC5cbiAgICovXG4gIEludmlzaWJsZSA9IDAsXG5cbiAgLyoqXG4gICAqIEEgdGhpbiBmb250IHdlaWdodCBvZiAzMDAuXG4gICAqL1xuICBMaWdodCA9IDMwMCxcblxuICAvKipcbiAgICpBIHRoaWNrZXIgZm9udCB3ZWlnaHQgb2YgNTAwLlxuICAgKi9cbiAgTWVkaXVtID0gNTAwLFxuXG4gIC8qKlxuICAgKkEgdHlwaWNhbCBmb250IHdlaWdodCBvZiA0MDAuIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9udCB3ZWlnaHQuXG4gICAqL1xuICBOb3JtYWwgPSA0MDAsXG5cbiAgLyoqXG4gICAqQSB0aGljayBmb250IHdlaWdodCBvZiA2MDAuXG4gICAqL1xuICBTZW1pQm9sZCA9IDYwMCxcblxuICAvKipcbiAgICpBIHRoaW4gZm9udCB3ZWlnaHQgb2YgMTAwLlxuICAgKi9cbiAgVGhpbiA9IDEwMCxcbn1cblxuZXhwb3J0IGVudW0gRm9udFNsYW50RW51bSB7XG4gIFVwcmlnaHQsXG4gIEl0YWxpYyxcbiAgT2JsaXF1ZSxcbn1cblxuZXhwb3J0IGVudW0gRm9udFdpZHRoRW51bSB7XG4gIC8qKlxuICAgKiBBIGNvbmRlbnNlZCBmb250IHdpZHRoIG9mIDMuXG4gICAqL1xuICBDb25kZW5zZWQgPSAzLFxuICAvKipcbiAgICogQW4gZXhwYW5kZWQgZm9udCB3aWR0aCBvZiA3LlxuICAgKi9cbiAgRXhwYW5kZWQgPSA3LFxuICAvKipcbiAgICpBIGNvbmRlbnNlZCBmb250IHdpZHRoIG9mIDIuXG4gICAqL1xuICBFeHRyYUNvbmRlbnNlZCA9IDIsXG4gIC8qKlxuICAgKkFuIGV4cGFuZGVkIGZvbnQgd2lkdGggb2YgOC5cbiAgICovXG4gIEV4dHJhRXhwYW5kZWQgPSA4LFxuICAvKipcbiAgICpBIG5vcm1hbCBmb250IHdpZHRoIG9mIDUuIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9udCB3aWR0aC5cbiAgICovXG4gIE5vcm1hbCA9IDUsXG4gIC8qKlxuICAgKkEgY29uZGVuc2VkIGZvbnQgd2lkdGggb2YgNC5cbiAgICovXG4gIFNlbWlDb25kZW5zZWQgPSA0LFxuICAvKipcbiAgICpBbiBleHBhbmRlZCBmb250IHdpZHRoIG9mIDYuXG4gICAqL1xuICBTZW1pRXhwYW5kZWQgPSA2LFxuICAvKipcbiAgICpBIGNvbmRlbnNlZCBmb250IHdpZHRoIG9mIDEuXG4gICAqL1xuICBVbHRyYUNvbmRlbnNlZCA9IDEsXG4gIC8qKlxuICAgKkFuIGV4cGFuZGVkIGZvbnQgd2lkdGggb2YgOS5cbiAgICovXG4gIFVsdHJhRXhwYW5kZWQgPSA5LFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVGYWNlIHtcbiAgZGF0YTogQXJyYXlCdWZmZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb250IHtcbiAgdHlwZUZhY2U/OiBUeXBlRmFjZVxuICBzaXplOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDa0ZvbnRTdHlsZSB7XG4gIHdlaWdodD86IEZvbnRXZWlnaHRFbnVtXG4gIHNsYW50PzogRm9udFNsYW50RW51bVxuICB3aWR0aD86IEZvbnRXaWR0aEVudW1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0U3R5bGUge1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBDb2xvciB8IHN0cmluZ1xuICBjb2xvcj86IENvbG9yIHwgc3RyaW5nXG4gIGRlY29yYXRpb24/OiBudW1iZXJcbiAgZGVjb3JhdGlvblRoaWNrbmVzcz86IG51bWJlclxuICBmb250RmFtaWxpZXM/OiBzdHJpbmdbXVxuICBmb250U2l6ZT86IG51bWJlclxuICBmb250U3R5bGU/OiBDa0ZvbnRTdHlsZVxuICBmb3JlZ3JvdW5kQ29sb3I/OiBDb2xvciB8IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFncmFwaFN0eWxlIHtcbiAgZGlzYWJsZUhpbnRpbmc/OiBib29sZWFuXG4gIGhlaWdodE11bHRpcGxpZXI/OiBudW1iZXJcbiAgZWxsaXBzaXM/OiBzdHJpbmdcbiAgbWF4TGluZXM/OiBudW1iZXJcbiAgdGV4dEFsaWduPzogVGV4dEFsaWduRW51bVxuICB0ZXh0RGlyZWN0aW9uPzogVGV4dERpcmVjdGlvbkVudW1cbiAgdGV4dFN0eWxlOiBUZXh0U3R5bGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJhZ3JhcGhQcm9wcyB7XG4gIHN0eWxlOiBQYXJhZ3JhcGhTdHlsZVxuICBtYXhXaWR0aDogbnVtYmVyXG4gIHg6IG51bWJlclxuICB5OiBudW1iZXJcbn1cblxuY29uc3QgQ2tFbGVtZW50czogeyBba2V5IGluIENrRWxlbWVudFR5cGVdOiBDa0VsZW1lbnRDcmVhdG9yPGFueT4gfSA9IHtcbiAgJ2NrLXRleHQnOiBjcmVhdGVDa1RleHQsXG4gICdjay1saW5lJzogY3JlYXRlQ2tMaW5lLFxuICAnY2stc3VyZmFjZSc6IGNyZWF0ZUNrU3VyZmFjZSxcbiAgJ2NrLWNhbnZhcyc6IGNyZWF0ZUNrQ2FudmFzLFxuICAnY2stcGFyYWdyYXBoJzogY3JlYXRlQ2tQYXJhZ3JhcGgsXG4gICdjay1lbmNvZGVkLWltYWdlJzogY3JlYXRlQ2tFbmNvZGVkSW1hZ2UsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDa0VsZW1lbnQodHlwZTogQ2tFbGVtZW50VHlwZSwgcHJvcHM6IENrRWxlbWVudFByb3BzPGFueT4sIGNhbnZhc0tpdDogQ2FudmFzS2l0KTogQ2tFbGVtZW50PGFueT4ge1xuICByZXR1cm4gQ2tFbGVtZW50c1t0eXBlXSh0eXBlLCBwcm9wcywgY2FudmFzS2l0KVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIG5hbWVzcGFjZSBKU1gge1xuICAgIGludGVyZmFjZSBJbnRyaW5zaWNFbGVtZW50cyB7XG4gICAgICAnY2stdGV4dCc6IENrVGV4dFByb3BzXG4gICAgICAnY2stY2FudmFzJzogQ2tDYW52YXNQcm9wc1xuICAgICAgJ2NrLXN1cmZhY2UnOiBDa1N1cmZhY2VQcm9wc1xuICAgICAgJ2NrLWxpbmUnOiBDa0xpbmVQcm9wc1xuICAgICAgJ2NrLXBhcmFncmFwaCc6IENrUGFyYWdyYXBoUHJvcHNcbiAgICAgICdjay1lbmNvZGVkLWltYWdlJzogQ2tFbmNvZGVkSW1hZ2VQcm9wc1xuICAgIH1cbiAgfVxufVxuIl19