UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

86 lines 13.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const assertion_1 = __importDefault(require("../../test-run/commands/assertion")); const type_1 = __importDefault(require("../../assertions/type")); const test_run_1 = require("../../errors/test-run"); class Assertion { constructor(actual, testController, callsite) { this.testController = testController; this.actual = actual; this.callsite = callsite; } then() { throw new test_run_1.AssertionWithoutMethodCallError(this.callsite); } _enqueueAssertion(apiMethodName, assertionArgs) { let options = assertionArgs.opts || {}; let message = assertionArgs.message; if (typeof message === 'object') { options = assertionArgs.message; message = void 0; } return this.testController._enqueueCommand(apiMethodName, assertion_1.default, { assertionType: apiMethodName, actual: this.actual, expected: assertionArgs.expected, expected2: assertionArgs.expected2, message: message, options: { timeout: options.timeout, allowUnawaitedPromise: options.allowUnawaitedPromise } }); } eql(expected, message, opts) { return this._enqueueAssertion(type_1.default.eql, { expected, message, opts }); } notEql(expected, message, opts) { return this._enqueueAssertion(type_1.default.notEql, { expected, message, opts }); } ok(message, opts) { return this._enqueueAssertion(type_1.default.ok, { message, opts }); } notOk(message, opts) { return this._enqueueAssertion(type_1.default.notOk, { message, opts }); } contains(expected, message, opts) { return this._enqueueAssertion(type_1.default.contains, { expected, message, opts }); } notContains(expected, message, opts) { return this._enqueueAssertion(type_1.default.notContains, { expected, message, opts }); } typeOf(expected, message, opts) { return this._enqueueAssertion(type_1.default.typeOf, { expected, message, opts }); } notTypeOf(expected, message, opts) { return this._enqueueAssertion(type_1.default.notTypeOf, { expected, message, opts }); } gt(expected, message, opts) { return this._enqueueAssertion(type_1.default.gt, { expected, message, opts }); } gte(expected, message, opts) { return this._enqueueAssertion(type_1.default.gte, { expected, message, opts }); } lt(expected, message, opts) { return this._enqueueAssertion(type_1.default.lt, { expected, message, opts }); } lte(expected, message, opts) { return this._enqueueAssertion(type_1.default.lte, { expected, message, opts }); } within(start, finish, message, opts) { // NOTE: `within` is not available in Chai `assert` interface. return this._enqueueAssertion(type_1.default.within, { expected: start, expected2: finish, message, opts }); } notWithin(start, finish, message, opts) { return this._enqueueAssertion(type_1.default.notWithin, { expected: start, expected2: finish, message, opts }); } match(expected, message, opts) { return this._enqueueAssertion(type_1.default.match, { expected, message, opts }); } notMatch(expected, message, opts) { return this._enqueueAssertion(type_1.default.notMatch, { expected, message, opts }); } } exports.default = Assertion; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90ZXN0LWNvbnRyb2xsZXIvYXNzZXJ0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0ZBQWlFO0FBQ2pFLGlFQUFtRDtBQUNuRCxvREFBd0U7QUFFeEUsTUFBcUIsU0FBUztJQUMxQixZQUFhLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUTtRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFXLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFTLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSTtRQUNBLE1BQU0sSUFBSSwwQ0FBK0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQixDQUFFLGFBQWEsRUFBRSxhQUFhO1FBQzNDLElBQUksT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFFcEMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDaEMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsbUJBQWdCLEVBQUU7WUFDeEUsYUFBYSxFQUFFLGFBQWE7WUFDNUIsTUFBTSxFQUFTLElBQUksQ0FBQyxNQUFNO1lBQzFCLFFBQVEsRUFBTyxhQUFhLENBQUMsUUFBUTtZQUNyQyxTQUFTLEVBQU0sYUFBYSxDQUFDLFNBQVM7WUFDdEMsT0FBTyxFQUFRLE9BQU87WUFDdEIsT0FBTyxFQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1NBQ3BHLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxHQUFHLENBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU0sQ0FBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUk7UUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsRUFBRSxDQUFFLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxLQUFLLENBQUUsT0FBTyxFQUFFLElBQUk7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxRQUFRLENBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELFdBQVcsQ0FBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUk7UUFDaEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsTUFBTSxDQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSTtRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxTQUFTLENBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELEVBQUUsQ0FBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUk7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsR0FBRyxDQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSTtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxFQUFFLENBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELEdBQUcsQ0FBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUk7UUFDeEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsTUFBTSxDQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUk7UUFDaEMsOERBQThEO1FBQzlELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUVELFNBQVMsQ0FBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELEtBQUssQ0FBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUk7UUFDMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsUUFBUSxDQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSTtRQUM3QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7Q0FDSjtBQTlGRCw0QkE4RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXNzZXJ0aW9uQ29tbWFuZCBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9hc3NlcnRpb24nO1xuaW1wb3J0IEFTU0VSVElPTl9UWVBFIGZyb20gJy4uLy4uL2Fzc2VydGlvbnMvdHlwZSc7XG5pbXBvcnQgeyBBc3NlcnRpb25XaXRob3V0TWV0aG9kQ2FsbEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzL3Rlc3QtcnVuJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXNzZXJ0aW9uIHtcbiAgICBjb25zdHJ1Y3RvciAoYWN0dWFsLCB0ZXN0Q29udHJvbGxlciwgY2FsbHNpdGUpIHtcbiAgICAgICAgdGhpcy50ZXN0Q29udHJvbGxlciA9IHRlc3RDb250cm9sbGVyO1xuICAgICAgICB0aGlzLmFjdHVhbCAgICAgICAgID0gYWN0dWFsO1xuICAgICAgICB0aGlzLmNhbGxzaXRlICAgICAgID0gY2FsbHNpdGU7XG4gICAgfVxuXG4gICAgdGhlbiAoKSB7XG4gICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25XaXRob3V0TWV0aG9kQ2FsbEVycm9yKHRoaXMuY2FsbHNpdGUpO1xuICAgIH1cblxuICAgIF9lbnF1ZXVlQXNzZXJ0aW9uIChhcGlNZXRob2ROYW1lLCBhc3NlcnRpb25BcmdzKSB7XG4gICAgICAgIGxldCBvcHRpb25zID0gYXNzZXJ0aW9uQXJncy5vcHRzIHx8IHt9O1xuICAgICAgICBsZXQgbWVzc2FnZSA9IGFzc2VydGlvbkFyZ3MubWVzc2FnZTtcblxuICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gYXNzZXJ0aW9uQXJncy5tZXNzYWdlO1xuICAgICAgICAgICAgbWVzc2FnZSA9IHZvaWQgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRlc3RDb250cm9sbGVyLl9lbnF1ZXVlQ29tbWFuZChhcGlNZXRob2ROYW1lLCBBc3NlcnRpb25Db21tYW5kLCB7XG4gICAgICAgICAgICBhc3NlcnRpb25UeXBlOiBhcGlNZXRob2ROYW1lLFxuICAgICAgICAgICAgYWN0dWFsOiAgICAgICAgdGhpcy5hY3R1YWwsXG4gICAgICAgICAgICBleHBlY3RlZDogICAgICBhc3NlcnRpb25BcmdzLmV4cGVjdGVkLFxuICAgICAgICAgICAgZXhwZWN0ZWQyOiAgICAgYXNzZXJ0aW9uQXJncy5leHBlY3RlZDIsXG4gICAgICAgICAgICBtZXNzYWdlOiAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogICAgICAgeyB0aW1lb3V0OiBvcHRpb25zLnRpbWVvdXQsIGFsbG93VW5hd2FpdGVkUHJvbWlzZTogb3B0aW9ucy5hbGxvd1VuYXdhaXRlZFByb21pc2UgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBlcWwgKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLmVxbCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBub3RFcWwgKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLm5vdEVxbCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBvayAobWVzc2FnZSwgb3B0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5vaywgeyBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIG5vdE9rIChtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLm5vdE9rLCB7IG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgY29udGFpbnMgKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLmNvbnRhaW5zLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIG5vdENvbnRhaW5zIChleHBlY3RlZCwgbWVzc2FnZSwgb3B0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ub3RDb250YWlucywgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICB0eXBlT2YgKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLnR5cGVPZiwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBub3RUeXBlT2YgKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLm5vdFR5cGVPZiwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBndCAoZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUuZ3QsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgZ3RlIChleHBlY3RlZCwgbWVzc2FnZSwgb3B0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ndGUsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgbHQgKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLmx0LCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIGx0ZSAoZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUubHRlLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHdpdGhpbiAoc3RhcnQsIGZpbmlzaCwgbWVzc2FnZSwgb3B0cykge1xuICAgICAgICAvLyBOT1RFOiBgd2l0aGluYCBpcyBub3QgYXZhaWxhYmxlIGluIENoYWkgYGFzc2VydGAgaW50ZXJmYWNlLlxuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS53aXRoaW4sIHsgZXhwZWN0ZWQ6IHN0YXJ0LCBleHBlY3RlZDI6IGZpbmlzaCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBub3RXaXRoaW4gKHN0YXJ0LCBmaW5pc2gsIG1lc3NhZ2UsIG9wdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUubm90V2l0aGluLCB7IGV4cGVjdGVkOiBzdGFydCwgZXhwZWN0ZWQyOiBmaW5pc2gsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgbWF0Y2ggKGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLm1hdGNoLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIG5vdE1hdGNoIChleHBlY3RlZCwgbWVzc2FnZSwgb3B0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ub3RNYXRjaCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG59XG4iXX0=