Template Upload

This commit is contained in:
SOUTHERNCO\x2mjbyrn committed 2017-05-17 13:45:25 -04:00
1 parent 415b9c25f3
commit 7efe7605b8
11476 files changed
+2170865 -34

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
import { describe, it, fakeAsync, expect, tick, clearPendingTimers } from 'angular2/testing';
// #docregion basic
describe('this test', () => {
it('looks async but is synchronous', fakeAsync(() => {
var flag = false;
setTimeout(() => { flag = true; }, 100);
expect(flag).toBe(false);
tick(50);
expect(flag).toBe(false);
tick(50);
expect(flag).toBe(true);
}));
});
// #enddocregion
// #docregion pending
describe('this test', () => {
it('aborts a timer', fakeAsync(() => {
// This timer is scheduled but doesn't need to complete for the
// test to pass (maybe it's a timeout for some operation).
// Leaving it will cause the test to fail...
setTimeout(() => { }, 100);
// Unless we clean it up first.
clearPendingTimers();
}));
});
// #enddocregion
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZV9hc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL2V4YW1wbGVzL3Rlc3RpbmcvdHMvZmFrZV9hc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0I7QUFFMUYsbUJBQW1CO0FBQ25CLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDcEIsRUFBRSxDQUFDLGdDQUFnQyxFQUFPLFNBQVMsQ0FBQztRQUMvQyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsVUFBVSxDQUFDLFFBQVEsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUM7QUFDSCxnQkFBZ0I7QUFFaEIscUJBQXFCO0FBQ3JCLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDcEIsRUFBRSxDQUFDLGdCQUFnQixFQUFPLFNBQVMsQ0FBQztRQUMvQiwrREFBK0Q7UUFDL0QsMERBQTBEO1FBQzFELDRDQUE0QztRQUM1QyxVQUFVLENBQUMsUUFBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFMUIsK0JBQStCO1FBQy9CLGtCQUFrQixFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDO0FBQ0gsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgaXQsIGZha2VBc3luYywgZXhwZWN0LCB0aWNrLCBjbGVhclBlbmRpbmdUaW1lcnN9IGZyb20gJ2FuZ3VsYXIyL3Rlc3RpbmcnO1xuXG4vLyAjZG9jcmVnaW9uIGJhc2ljXG5kZXNjcmliZSgndGhpcyB0ZXN0JywgKCkgPT4ge1xuICBpdCgnbG9va3MgYXN5bmMgYnV0IGlzIHN5bmNocm9ub3VzJywgPGFueT5mYWtlQXN5bmMoKCk6IHZvaWQgPT4ge1xuICAgICAgIHZhciBmbGFnID0gZmFsc2U7XG4gICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGZsYWcgPSB0cnVlOyB9LCAxMDApO1xuICAgICAgIGV4cGVjdChmbGFnKS50b0JlKGZhbHNlKTtcbiAgICAgICB0aWNrKDUwKTtcbiAgICAgICBleHBlY3QoZmxhZykudG9CZShmYWxzZSk7XG4gICAgICAgdGljayg1MCk7XG4gICAgICAgZXhwZWN0KGZsYWcpLnRvQmUodHJ1ZSk7XG4gICAgIH0pKTtcbn0pO1xuLy8gI2VuZGRvY3JlZ2lvblxuXG4vLyAjZG9jcmVnaW9uIHBlbmRpbmdcbmRlc2NyaWJlKCd0aGlzIHRlc3QnLCAoKSA9PiB7XG4gIGl0KCdhYm9ydHMgYSB0aW1lcicsIDxhbnk+ZmFrZUFzeW5jKCgpOiB2b2lkID0+IHtcbiAgICAgICAvLyBUaGlzIHRpbWVyIGlzIHNjaGVkdWxlZCBidXQgZG9lc24ndCBuZWVkIHRvIGNvbXBsZXRlIGZvciB0aGVcbiAgICAgICAvLyB0ZXN0IHRvIHBhc3MgKG1heWJlIGl0J3MgYSB0aW1lb3V0IGZvciBzb21lIG9wZXJhdGlvbikuXG4gICAgICAgLy8gTGVhdmluZyBpdCB3aWxsIGNhdXNlIHRoZSB0ZXN0IHRvIGZhaWwuLi5cbiAgICAgICBzZXRUaW1lb3V0KCgpID0+IHt9LCAxMDApO1xuXG4gICAgICAgLy8gVW5sZXNzIHdlIGNsZWFuIGl0IHVwIGZpcnN0LlxuICAgICAgIGNsZWFyUGVuZGluZ1RpbWVycygpO1xuICAgICB9KSk7XG59KTtcbi8vICNlbmRkb2NyZWdpb24iXX0=
+33
View File
@@ -0,0 +1,33 @@
import { expect } from 'angular2/testing';
var value;
var element;
var exception;
class OtherClass {
}
class SomeClass {
}
// #docregion toBePromise
expect(value).toBePromise();
// #enddocregion
// #docregion toBeAnInstanceOf
expect(value).toBeAnInstanceOf(SomeClass);
// #enddocregion
// #docregion toHaveText
expect(element).toHaveText('Hello world!');
// #enddocregion
// #docregion toHaveCssClass
expect(element).toHaveCssClass('current');
// #enddocregion
// #docregion toHaveCssStyle
expect(element).toHaveCssStyle({ width: '100px', height: 'auto' });
// #enddocregion
// #docregion toContainError
expect(exception).toContainError('Failed to load');
// #enddocregion
// #docregion toThrowErrorWith
expect(() => { throw 'Failed to load'; }).toThrowErrorWith('Failed to load');
// #enddocregion
// #docregion toImplement
expect(SomeClass).toImplement(OtherClass);
// #enddocregion
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9leGFtcGxlcy90ZXN0aW5nL3RzL21hdGNoZXJzLnRzIl0sIm5hbWVzIjpbIk90aGVyQ2xhc3MiLCJTb21lQ2xhc3MiXSwibWFwcGluZ3MiOiJPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCO0FBRXZDLElBQUksS0FBVSxDQUFDO0FBQ2YsSUFBSSxPQUFZLENBQUM7QUFDakIsSUFBSSxTQUFjLENBQUM7QUFFbkI7QUFBMkJBLENBQUNBO0FBQzVCO0FBQWlCQyxDQUFDQTtBQUVsQix5QkFBeUI7QUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzVCLGdCQUFnQjtBQUVoQiw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFDLGdCQUFnQjtBQUVoQix3QkFBd0I7QUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUMzQyxnQkFBZ0I7QUFFaEIsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUMsZ0JBQWdCO0FBRWhCLDRCQUE0QjtBQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztBQUNqRSxnQkFBZ0I7QUFFaEIsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUNuRCxnQkFBZ0I7QUFFaEIsOEJBQThCO0FBQzlCLE1BQU0sQ0FBQyxRQUFRLE1BQU0sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzdFLGdCQUFnQjtBQUVoQix5QkFBeUI7QUFDekIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2V4cGVjdH0gZnJvbSAnYW5ndWxhcjIvdGVzdGluZyc7XG5cbnZhciB2YWx1ZTogYW55O1xudmFyIGVsZW1lbnQ6IGFueTtcbnZhciBleGNlcHRpb246IGFueTtcblxuYWJzdHJhY3QgY2xhc3MgT3RoZXJDbGFzcyB7fVxuY2xhc3MgU29tZUNsYXNzIHt9XG5cbi8vICNkb2NyZWdpb24gdG9CZVByb21pc2VcbmV4cGVjdCh2YWx1ZSkudG9CZVByb21pc2UoKTtcbi8vICNlbmRkb2NyZWdpb25cblxuLy8gI2RvY3JlZ2lvbiB0b0JlQW5JbnN0YW5jZU9mXG5leHBlY3QodmFsdWUpLnRvQmVBbkluc3RhbmNlT2YoU29tZUNsYXNzKTtcbi8vICNlbmRkb2NyZWdpb25cblxuLy8gI2RvY3JlZ2lvbiB0b0hhdmVUZXh0XG5leHBlY3QoZWxlbWVudCkudG9IYXZlVGV4dCgnSGVsbG8gd29ybGQhJyk7XG4vLyAjZW5kZG9jcmVnaW9uXG5cbi8vICNkb2NyZWdpb24gdG9IYXZlQ3NzQ2xhc3NcbmV4cGVjdChlbGVtZW50KS50b0hhdmVDc3NDbGFzcygnY3VycmVudCcpO1xuLy8gI2VuZGRvY3JlZ2lvblxuXG4vLyAjZG9jcmVnaW9uIHRvSGF2ZUNzc1N0eWxlXG5leHBlY3QoZWxlbWVudCkudG9IYXZlQ3NzU3R5bGUoe3dpZHRoOiAnMTAwcHgnLCBoZWlnaHQ6ICdhdXRvJ30pO1xuLy8gI2VuZGRvY3JlZ2lvblxuXG4vLyAjZG9jcmVnaW9uIHRvQ29udGFpbkVycm9yXG5leHBlY3QoZXhjZXB0aW9uKS50b0NvbnRhaW5FcnJvcignRmFpbGVkIHRvIGxvYWQnKTtcbi8vICNlbmRkb2NyZWdpb25cblxuLy8gI2RvY3JlZ2lvbiB0b1Rocm93RXJyb3JXaXRoXG5leHBlY3QoKCkgPT4geyB0aHJvdyAnRmFpbGVkIHRvIGxvYWQnOyB9KS50b1Rocm93RXJyb3JXaXRoKCdGYWlsZWQgdG8gbG9hZCcpO1xuLy8gI2VuZGRvY3JlZ2lvblxuXG4vLyAjZG9jcmVnaW9uIHRvSW1wbGVtZW50XG5leHBlY3QoU29tZUNsYXNzKS50b0ltcGxlbWVudChPdGhlckNsYXNzKTtcbi8vICNlbmRkb2NyZWdpb25cbiJdfQ==
+72
View File
@@ -0,0 +1,72 @@
import { describe, fdescribe, xdescribe, it, fit, xit, beforeEach, afterEach, beforeEachProviders, inject } from 'angular2/testing';
import { provide } from 'angular2/core';
var db;
class MyService {
}
class MyMockService {
}
// #docregion describeIt
describe('some component', () => {
it('does something', () => {
// This is a test.
});
});
// #enddocregion
// #docregion fdescribe
fdescribe('some component', () => {
it('has a test', () => {
// This test will run.
});
});
describe('another component', () => { it('also has a test', () => { throw 'This test will not run.'; }); });
// #enddocregion
// #docregion xdescribe
xdescribe('some component', () => { it('has a test', () => { throw 'This test will not run.'; }); });
describe('another component', () => {
it('also has a test', () => {
// This test will run.
});
});
// #enddocregion
// #docregion fit
describe('some component', () => {
fit('has a test', () => {
// This test will run.
});
it('has another test', () => { throw 'This test will not run.'; });
});
// #enddocregion
// #docregion xit
describe('some component', () => {
xit('has a test', () => { throw 'This test will not run.'; });
it('has another test', () => {
// This test will run.
});
});
// #enddocregion
// #docregion beforeEach
describe('some component', () => {
beforeEach(() => { db.connect(); });
it('uses the db', () => {
// Database is connected.
});
});
// #enddocregion
// #docregion beforeEachProviders
describe('some component', () => {
beforeEachProviders(() => [provide(MyService, { useClass: MyMockService })]);
it('uses MyService', inject([MyService], (service) => {
// service is an instance of MyMockService.
}));
});
// #enddocregion
// #docregion afterEach
describe('some component', () => {
afterEach((done) => { db.reset().then((_) => done()); });
it('uses the db', () => {
// This test can leave the database in a dirty state.
// The afterEach will ensure it gets reset.
});
});
// #enddocregion
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL2V4YW1wbGVzL3Rlc3RpbmcvdHMvdGVzdGluZy50cyJdLCJuYW1lcyI6WyJNeVNlcnZpY2UiLCJNeU1vY2tTZXJ2aWNlIl0sIm1hcHBpbmdzIjoiT0FBTyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULEVBQUUsRUFDRixHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLE1BQU0sRUFDUCxNQUFNLGtCQUFrQjtPQUNsQixFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWU7QUFFckMsSUFBSSxFQUFPLENBQUM7QUFDWjtBQUFpQkEsQ0FBQ0E7QUFDbEI7QUFBMENDLENBQUNBO0FBRTNDLHdCQUF3QjtBQUN4QixRQUFRLENBQUMsZ0JBQWdCLEVBQUU7SUFDekIsRUFBRSxDQUFDLGdCQUFnQixFQUFFO1FBQ0ksa0JBQWtCO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsZ0JBQWdCO0FBRWhCLHVCQUF1QjtBQUN2QixTQUFTLENBQUMsZ0JBQWdCLEVBQUU7SUFDMUIsRUFBRSxDQUFDLFlBQVksRUFBRTtRQUNJLHNCQUFzQjtJQUMxQixDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUNILFFBQVEsQ0FBQyxtQkFBbUIsRUFDbkIsUUFBUSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxNQUFNLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RixnQkFBZ0I7QUFFaEIsdUJBQXVCO0FBQ3ZCLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBTyxNQUFNLHlCQUF5QixDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRyxRQUFRLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsRUFBRSxDQUFDLGlCQUFpQixFQUFFO1FBQ0ksc0JBQXNCO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsZ0JBQWdCO0FBRWhCLGlCQUFpQjtBQUNqQixRQUFRLENBQUMsZ0JBQWdCLEVBQUU7SUFDekIsR0FBRyxDQUFDLFlBQVksRUFBRTtRQUNJLHNCQUFzQjtJQUMxQixDQUFDLENBQUMsQ0FBQztJQUNyQixFQUFFLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxNQUFNLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDLENBQUM7QUFDSCxnQkFBZ0I7QUFFaEIsaUJBQWlCO0FBQ2pCLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRTtJQUN6QixHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsTUFBTSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtRQUNJLHNCQUFzQjtJQUMxQixDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQztBQUNILGdCQUFnQjtBQUVoQix3QkFBd0I7QUFDeEIsUUFBUSxDQUFDLGdCQUFnQixFQUFFO0lBQ3pCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLEVBQUUsQ0FBQyxhQUFhLEVBQUU7UUFDSSx5QkFBeUI7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFDSCxnQkFBZ0I7QUFFaEIsaUNBQWlDO0FBQ2pDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRTtJQUN6QixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFzQjtRQUNuQiwyQ0FBMkM7SUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQztBQUNILGdCQUFnQjtBQUVoQix1QkFBdUI7QUFDdkIsUUFBUSxDQUFDLGdCQUFnQixFQUFFO0lBQ3pCLFNBQVMsQ0FBQyxDQUFDLElBQWMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxFQUFFLENBQUMsYUFBYSxFQUFFO1FBQ0kscURBQXFEO1FBQ3JELDJDQUEyQztJQUMvQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQztBQUNILGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRlc2NyaWJlLFxuICBmZGVzY3JpYmUsXG4gIHhkZXNjcmliZSxcbiAgaXQsXG4gIGZpdCxcbiAgeGl0LFxuICBiZWZvcmVFYWNoLFxuICBhZnRlckVhY2gsXG4gIGJlZm9yZUVhY2hQcm92aWRlcnMsXG4gIGluamVjdFxufSBmcm9tICdhbmd1bGFyMi90ZXN0aW5nJztcbmltcG9ydCB7cHJvdmlkZX0gZnJvbSAnYW5ndWxhcjIvY29yZSc7XG5cbnZhciBkYjogYW55O1xuY2xhc3MgTXlTZXJ2aWNlIHt9XG5jbGFzcyBNeU1vY2tTZXJ2aWNlIGltcGxlbWVudHMgTXlTZXJ2aWNlIHt9XG5cbi8vICNkb2NyZWdpb24gZGVzY3JpYmVJdFxuZGVzY3JpYmUoJ3NvbWUgY29tcG9uZW50JywgKCkgPT4ge1xuICBpdCgnZG9lcyBzb21ldGhpbmcnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgdGVzdC5cbiAgICAgICAgICAgICAgICAgICAgICAgfSk7XG59KTtcbi8vICNlbmRkb2NyZWdpb25cblxuLy8gI2RvY3JlZ2lvbiBmZGVzY3JpYmVcbmZkZXNjcmliZSgnc29tZSBjb21wb25lbnQnLCAoKSA9PiB7XG4gIGl0KCdoYXMgYSB0ZXN0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd2lsbCBydW4uXG4gICAgICAgICAgICAgICAgICAgfSk7XG59KTtcbmRlc2NyaWJlKCdhbm90aGVyIGNvbXBvbmVudCcsXG4gICAgICAgICAoKSA9PiB7IGl0KCdhbHNvIGhhcyBhIHRlc3QnLCAoKSA9PiB7IHRocm93ICdUaGlzIHRlc3Qgd2lsbCBub3QgcnVuLic7IH0pOyB9KTtcbi8vICNlbmRkb2NyZWdpb25cblxuLy8gI2RvY3JlZ2lvbiB4ZGVzY3JpYmVcbnhkZXNjcmliZSgnc29tZSBjb21wb25lbnQnLCAoKSA9PiB7IGl0KCdoYXMgYSB0ZXN0JywgKCkgPT4ge3Rocm93ICdUaGlzIHRlc3Qgd2lsbCBub3QgcnVuLid9KTsgfSk7XG5kZXNjcmliZSgnYW5vdGhlciBjb21wb25lbnQnLCAoKSA9PiB7XG4gIGl0KCdhbHNvIGhhcyBhIHRlc3QnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IHdpbGwgcnVuLlxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG59KTtcbi8vICNlbmRkb2NyZWdpb25cblxuLy8gI2RvY3JlZ2lvbiBmaXRcbmRlc2NyaWJlKCdzb21lIGNvbXBvbmVudCcsICgpID0+IHtcbiAgZml0KCdoYXMgYSB0ZXN0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IHdpbGwgcnVuLlxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgaXQoJ2hhcyBhbm90aGVyIHRlc3QnLCAoKSA9PiB7IHRocm93ICdUaGlzIHRlc3Qgd2lsbCBub3QgcnVuLic7IH0pO1xufSk7XG4vLyAjZW5kZG9jcmVnaW9uXG5cbi8vICNkb2NyZWdpb24geGl0XG5kZXNjcmliZSgnc29tZSBjb21wb25lbnQnLCAoKSA9PiB7XG4gIHhpdCgnaGFzIGEgdGVzdCcsICgpID0+IHsgdGhyb3cgJ1RoaXMgdGVzdCB3aWxsIG5vdCBydW4uJzsgfSk7XG4gIGl0KCdoYXMgYW5vdGhlciB0ZXN0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd Line truncated