UNPKG

bp-prism-game

Version:
44 lines 20.2 kB
import { Component } from '@angular/core'; import { MAIN_GUNNER_IMAGE } from '../images/main-gunner/main-gunner.base64'; import { PRISM_BASE_IMAGE } from '../images/prism-base/prism-base.base64'; import { ALIEN_ONE_RIGHT_IMAGE } from '../images/alien/alien-1/alien-one-right.base64'; import { ALIEN_2_ANIMATION_WEST_1_IMAGE } from '../images/alien/alien-2/alien-2-animate-west-1.base64'; import { PRISM_BLAST_ICON_IMAGE } from '../images/prism-blast-icon/prism-blast-icon.base64'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/dialog"; /** * Display the game instruction component for display */ export class GameInstructionComponent { /** * The GenericDialogComponent constructor * * @param dialogRef The Mat Dialog Ref from DI */ constructor(dialogRef) { this.dialogRef = dialogRef; } /** * Close the dialog box */ close() { this.dialogRef.close(); } /** * On Init */ ngOnInit() { this.mainGunnerImage = MAIN_GUNNER_IMAGE; this.prismBaseImage = PRISM_BASE_IMAGE; this.alien1Image = ALIEN_ONE_RIGHT_IMAGE; this.alien2Image = ALIEN_2_ANIMATION_WEST_1_IMAGE; this.prismBlastIcon = PRISM_BLAST_ICON_IMAGE; } } GameInstructionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: GameInstructionComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); GameInstructionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: GameInstructionComponent, selector: "bp-prism-game-instruction", ngImport: i0, template: "<div class=\"dialog-container\">\n <h1 mat-dialog-title name=\"title\">The \"Prism Game\" Instructions</h1>\n <div mat-dialog-content>\n <div class=\"instructions\">\n The \"Prism Game\" requires you to stop the alien creep from invading your base. Use the main cannon and your\n <i>Prism Blast</i> to stop all the aliens.\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img [src]=\"mainGunnerImage\" />\n </div>\n <div class=\"asset-description-container\">Main prism gunner.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-prism-base-image\" [src]=\"prismBaseImage\" />\n </div>\n <div class=\"asset-description-container\">Prism Base. Defend your base from the Alien Creep.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">&#60;</div>\n <div class=\"asset-description-container\">The \"Left Arrow Key\" spins the \"Main Prism Gunner\" to the left.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">&#62;</div>\n <div class=\"asset-description-container\">The \"Right Arrow Key\" spins the \"Main Prism Gunner\" to the right.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container space-bar\">&lt;space&gt;</div>\n <div class=\"asset-description-container\">The \"Space Bar\" fires the \"Main Prism Gunner\".</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-alien-image\" [src]=\"alien1Image\" />\n </div>\n <div class=\"asset-description-container\">Alien Creep 1. Stop this alien from reaching the Prism Base.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-alien-image\" [src]=\"alien2Image\" />\n </div>\n <div class=\"asset-description-container\">Alien Creep 2. Stop this alien from reaching the Prism Base.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-alien-image\" [src]=\"prismBlastIcon\" />\n </div>\n <div class=\"asset-description-container\">\n The Prism Blast. The \"p\" key will launch a prism blast against the creep.\n </div>\n </div>\n\n <div class=\"good-luck\">\n <button (click)=\"close()\" class=\"close-button\">Good Luck!</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .game-instruction-container .mat-dialog-container{width:750px;height:825px;background-color:#000;border:1px solid white}::ng-deep .game-instruction-container .dialog-container{height:750px;width:700px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-title{text-align:center;font-weight:500;font-size:20px;line-height:20px;font-family:\"Press Start 2P\";background:-webkit-linear-gradient(45deg,#990000,#000099);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content{height:750px;width:700px;max-height:750px;display:flex;justify-content:center;margin-top:20px;font-weight:500;font-size:12px;line-height:30px;font-family:\"Press Start 2P\";color:#fff}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions{width:600px;height:690px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .close-button{background-color:#4caf50;font-family:\"Press Start 2P\";font-size:12px;padding:15px 30px;cursor:pointer;width:185px;border:1px solid white}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container{display:flex;flex-direction:row;height:50px;margin-top:20px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container{height:50px;width:75px;display:flex;justify-content:center;align-items:center}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container.space-bar{font-size:8px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container .asset-main-gunner-image{width:48px;height:48px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container .asset-prism-base-image{width:150px;height:25px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container .asset-alien-image{width:25px;height:25px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-description-container{display:flex;align-items:center;height:50px;width:500px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .good-luck{width:100%;text-align:center;margin-top:25px}\n"], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: GameInstructionComponent, decorators: [{ type: Component, args: [{ selector: 'bp-prism-game-instruction', template: "<div class=\"dialog-container\">\n <h1 mat-dialog-title name=\"title\">The \"Prism Game\" Instructions</h1>\n <div mat-dialog-content>\n <div class=\"instructions\">\n The \"Prism Game\" requires you to stop the alien creep from invading your base. Use the main cannon and your\n <i>Prism Blast</i> to stop all the aliens.\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img [src]=\"mainGunnerImage\" />\n </div>\n <div class=\"asset-description-container\">Main prism gunner.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-prism-base-image\" [src]=\"prismBaseImage\" />\n </div>\n <div class=\"asset-description-container\">Prism Base. Defend your base from the Alien Creep.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">&#60;</div>\n <div class=\"asset-description-container\">The \"Left Arrow Key\" spins the \"Main Prism Gunner\" to the left.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">&#62;</div>\n <div class=\"asset-description-container\">The \"Right Arrow Key\" spins the \"Main Prism Gunner\" to the right.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container space-bar\">&lt;space&gt;</div>\n <div class=\"asset-description-container\">The \"Space Bar\" fires the \"Main Prism Gunner\".</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-alien-image\" [src]=\"alien1Image\" />\n </div>\n <div class=\"asset-description-container\">Alien Creep 1. Stop this alien from reaching the Prism Base.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-alien-image\" [src]=\"alien2Image\" />\n </div>\n <div class=\"asset-description-container\">Alien Creep 2. Stop this alien from reaching the Prism Base.</div>\n </div>\n\n <div class=\"asset-container\">\n <div class=\"asset-image-container\">\n <img class=\"asset-alien-image\" [src]=\"prismBlastIcon\" />\n </div>\n <div class=\"asset-description-container\">\n The Prism Blast. The \"p\" key will launch a prism blast against the creep.\n </div>\n </div>\n\n <div class=\"good-luck\">\n <button (click)=\"close()\" class=\"close-button\">Good Luck!</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .game-instruction-container .mat-dialog-container{width:750px;height:825px;background-color:#000;border:1px solid white}::ng-deep .game-instruction-container .dialog-container{height:750px;width:700px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-title{text-align:center;font-weight:500;font-size:20px;line-height:20px;font-family:\"Press Start 2P\";background:-webkit-linear-gradient(45deg,#990000,#000099);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content{height:750px;width:700px;max-height:750px;display:flex;justify-content:center;margin-top:20px;font-weight:500;font-size:12px;line-height:30px;font-family:\"Press Start 2P\";color:#fff}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions{width:600px;height:690px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .close-button{background-color:#4caf50;font-family:\"Press Start 2P\";font-size:12px;padding:15px 30px;cursor:pointer;width:185px;border:1px solid white}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container{display:flex;flex-direction:row;height:50px;margin-top:20px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container{height:50px;width:75px;display:flex;justify-content:center;align-items:center}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container.space-bar{font-size:8px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container .asset-main-gunner-image{width:48px;height:48px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container .asset-prism-base-image{width:150px;height:25px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-image-container .asset-alien-image{width:25px;height:25px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .asset-container .asset-description-container{display:flex;align-items:center;height:50px;width:500px}::ng-deep .game-instruction-container .dialog-container .mat-dialog-content .instructions .good-luck{width:100%;text-align:center;margin-top:25px}\n"] }] }], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS1pbnN0cnVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmlzbS9zcmMvbGliL2dhbWUtaW5zdHJ1Y3Rpb24vZ2FtZS1pbnN0cnVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmlzbS9zcmMvbGliL2dhbWUtaW5zdHJ1Y3Rpb24vZ2FtZS1pbnN0cnVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7QUFHNUY7O0dBRUc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBMEJuQzs7OztPQUlHO0lBQ0gsWUFBb0IsU0FBaUQ7UUFBakQsY0FBUyxHQUFULFNBQVMsQ0FBd0M7SUFBRyxDQUFDO0lBRXpFOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQThCLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQztJQUMvQyxDQUFDOztxSEFqRFUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUVDaEJyQyxncUZBZ0VBOzJGRGhEYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BSU5fR1VOTkVSX0lNQUdFIH0gZnJvbSAnLi4vaW1hZ2VzL21haW4tZ3VubmVyL21haW4tZ3VubmVyLmJhc2U2NCc7XG5pbXBvcnQgeyBQUklTTV9CQVNFX0lNQUdFIH0gZnJvbSAnLi4vaW1hZ2VzL3ByaXNtLWJhc2UvcHJpc20tYmFzZS5iYXNlNjQnO1xuaW1wb3J0IHsgQUxJRU5fT05FX1JJR0hUX0lNQUdFIH0gZnJvbSAnLi4vaW1hZ2VzL2FsaWVuL2FsaWVuLTEvYWxpZW4tb25lLXJpZ2h0LmJhc2U2NCc7XG5pbXBvcnQgeyBBTElFTl8yX0FOSU1BVElPTl9XRVNUXzFfSU1BR0UgfSBmcm9tICcuLi9pbWFnZXMvYWxpZW4vYWxpZW4tMi9hbGllbi0yLWFuaW1hdGUtd2VzdC0xLmJhc2U2NCc7XG5pbXBvcnQgeyBQUklTTV9CTEFTVF9JQ09OX0lNQUdFIH0gZnJvbSAnLi4vaW1hZ2VzL3ByaXNtLWJsYXN0LWljb24vcHJpc20tYmxhc3QtaWNvbi5iYXNlNjQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuLyoqXG4gKiBEaXNwbGF5IHRoZSBnYW1lIGluc3RydWN0aW9uIGNvbXBvbmVudCBmb3IgZGlzcGxheVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicC1wcmlzbS1nYW1lLWluc3RydWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbWUtaW5zdHJ1Y3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nYW1lLWluc3RydWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2FtZUluc3RydWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFRoZSBtYWluIGd1bm5lciBpbWFnZVxuICAgKi9cbiAgbWFpbkd1bm5lckltYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmlzbSBiYXNlIGltYWdlXG4gICAqL1xuICBwcmlzbUJhc2VJbWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxpZW4gMVxuICAgKi9cbiAgYWxpZW4xSW1hZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFsaWVuIDJcbiAgICovXG4gIGFsaWVuMkltYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmlzbSBibGFzdCBpY29uXG4gICAqL1xuICBwcmlzbUJsYXN0SWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJpY0RpYWxvZ0NvbXBvbmVudCBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gZGlhbG9nUmVmIFRoZSBNYXQgRGlhbG9nIFJlZiBmcm9tIERJXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdhbWVJbnN0cnVjdGlvbkNvbXBvbmVudD4pIHt9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBkaWFsb2cgYm94XG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIEluaXRcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFpbkd1bm5lckltYWdlID0gTUFJTl9HVU5ORVJfSU1BR0U7XG4gICAgdGhpcy5wcmlzbUJhc2VJbWFnZSA9IFBSSVNNX0JBU0VfSU1BR0U7XG4gICAgdGhpcy5hbGllbjFJbWFnZSA9IEFMSUVOX09ORV9SSUdIVF9JTUFHRTtcbiAgICB0aGlzLmFsaWVuMkltYWdlID0gQUxJRU5fMl9BTklNQVRJT05fV0VTVF8xX0lNQUdFO1xuICAgIHRoaXMucHJpc21CbGFzdEljb24gPSBQUklTTV9CTEFTVF9JQ09OX0lNQUdFO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nLWNvbnRhaW5lclwiPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZSBuYW1lPVwidGl0bGVcIj5UaGUgXCJQcmlzbSBHYW1lXCIgSW5zdHJ1Y3Rpb25zPC9oMT5cbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uc1wiPlxuICAgICAgVGhlIFwiUHJpc20gR2FtZVwiIHJlcXVpcmVzIHlvdSB0byBzdG9wIHRoZSBhbGllbiBjcmVlcCBmcm9tIGludmFkaW5nIHlvdXIgYmFzZS4gVXNlIHRoZSBtYWluIGNhbm5vbiBhbmQgeW91clxuICAgICAgPGk+UHJpc20gQmxhc3Q8L2k+IHRvIHN0b3AgYWxsIHRoZSBhbGllbnMuXG4gICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhc3NldC1pbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwibWFpbkd1bm5lckltYWdlXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhc3NldC1kZXNjcmlwdGlvbi1jb250YWluZXJcIj5NYWluIHByaXNtIGd1bm5lci48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhc3NldC1pbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwiYXNzZXQtcHJpc20tYmFzZS1pbWFnZVwiIFtzcmNdPVwicHJpc21CYXNlSW1hZ2VcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlByaXNtIEJhc2UuIERlZmVuZCB5b3VyIGJhc2UgZnJvbSB0aGUgQWxpZW4gQ3JlZXAuPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtaW1hZ2UtY29udGFpbmVyXCI+JiM2MDs8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlRoZSBcIkxlZnQgQXJyb3cgS2V5XCIgc3BpbnMgdGhlIFwiTWFpbiBQcmlzbSBHdW5uZXJcIiB0byB0aGUgbGVmdC48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhc3NldC1pbWFnZS1jb250YWluZXJcIj4mIzYyOzwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtZGVzY3JpcHRpb24tY29udGFpbmVyXCI+VGhlIFwiUmlnaHQgQXJyb3cgS2V5XCIgc3BpbnMgdGhlIFwiTWFpbiBQcmlzbSBHdW5uZXJcIiB0byB0aGUgcmlnaHQuPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtaW1hZ2UtY29udGFpbmVyIHNwYWNlLWJhclwiPiZsdDtzcGFjZSZndDs8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlRoZSBcIlNwYWNlIEJhclwiIGZpcmVzIHRoZSBcIk1haW4gUHJpc20gR3VubmVyXCIuPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cImFzc2V0LWFsaWVuLWltYWdlXCIgW3NyY109XCJhbGllbjFJbWFnZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtZGVzY3JpcHRpb24tY29udGFpbmVyXCI+QWxpZW4gQ3JlZXAgMS4gU3RvcCB0aGlzIGFsaWVuIGZyb20gcmVhY2hpbmcgdGhlIFByaXNtIEJhc2UuPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cImFzc2V0LWFsaWVuLWltYWdlXCIgW3NyY109XCJhbGllbjJJbWFnZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtZGVzY3JpcHRpb24tY29udGFpbmVyXCI+QWxpZW4gQ3JlZXAgMi4gU3RvcCB0aGlzIGFsaWVuIGZyb20gcmVhY2hpbmcgdGhlIFByaXNtIEJhc2UuPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cImFzc2V0LWFsaWVuLWltYWdlXCIgW3NyY109XCJwcmlzbUJsYXN0SWNvblwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtZGVzY3JpcHRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgVGhlIFByaXNtIEJsYXN0LiBUaGUgXCJwXCIga2V5IHdpbGwgbGF1bmNoIGEgcHJpc20gYmxhc3QgYWdhaW5zdCB0aGUgY3JlZXAuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb29kLWx1Y2tcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCI+R29vZCBMdWNrITwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=