twitter-openapi-typescript 0.0.55 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/api.js CHANGED
@@ -277,7 +277,7 @@ var TwitterOpenApi = /** @class */ (function () {
277
277
  };
278
278
  var _a;
279
279
  _a = TwitterOpenApi;
280
- TwitterOpenApi.hash = 'c28f41918c01fdd8e133d9a509765b4e1c5be5cc';
280
+ TwitterOpenApi.hash = '590dae5c9f8575abc91d3774946bfe6f23960aba';
281
281
  TwitterOpenApi.url = "https://raw.githubusercontent.com/fa0311/twitter-openapi/".concat(_a.hash, "/src/config/placeholder.json");
282
282
  TwitterOpenApi.header = 'https://raw.githubusercontent.com/fa0311/latest-user-agent/refs/heads/main/header.json';
283
283
  TwitterOpenApi.twitter = 'https://x.com/home';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twitter-openapi-typescript",
3
- "version": "0.0.55",
3
+ "version": "0.0.56",
4
4
  "description": "Implementation of Twitter internal API in TypeScript",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -21,7 +21,7 @@
21
21
  "main": "./dist/src/index.js",
22
22
  "typings": "./dist/src/index.d.ts",
23
23
  "dependencies": {
24
- "twitter-openapi-typescript-generated": "^0.0.38",
24
+ "twitter-openapi-typescript-generated": "^0.0.40",
25
25
  "x-client-transaction-id-generater": "^0.0.7"
26
26
  },
27
27
  "devDependencies": {
package/dist/a.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=a.d.ts.map
package/dist/a.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"a.d.ts","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":""}
package/dist/a.js DELETED
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var transaction_1 = require("src/tid/transaction");
40
- (function () { return __awaiter(void 0, void 0, void 0, function () {
41
- var response, responseText, clientTransaction, transactionId;
42
- return __generator(this, function (_a) {
43
- switch (_a.label) {
44
- case 0: return [4 /*yield*/, fetch('https://x.com')];
45
- case 1:
46
- response = _a.sent();
47
- return [4 /*yield*/, response.text()];
48
- case 2:
49
- responseText = _a.sent();
50
- clientTransaction = new transaction_1.ClientTransaction(responseText);
51
- return [4 /*yield*/, clientTransaction.init()];
52
- case 3:
53
- _a.sent();
54
- transactionId = clientTransaction.generateTransactionId('GET', '/some/path');
55
- console.log(transactionId);
56
- return [2 /*return*/];
57
- }
58
- });
59
- }); })();
60
- //# sourceMappingURL=a.js.map
package/dist/a.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"a.js","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAwD;AAExD,CAAC;;;;oBACkB,qBAAM,KAAK,CAAC,eAAe,CAAC,EAAA;;gBAAvC,QAAQ,GAAG,SAA4B;gBACxB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;gBAApC,YAAY,GAAG,SAAqB;gBACpC,iBAAiB,GAAG,IAAI,+BAAiB,CAAC,YAAY,CAAC,CAAC;gBAC9D,qBAAM,iBAAiB,CAAC,IAAI,EAAE,EAAA;;gBAA9B,SAA8B,CAAC;gBACzB,aAAa,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;;;;KAC5B,CAAC,EAAE,CAAC"}
@@ -1,35 +0,0 @@
1
- export declare class Path {
2
- static DOMAIN: string;
3
- static BASE_URL: string;
4
- static API_URL: string;
5
- static TASK_URL: string;
6
- static GUEST_TOKEN_URL: string;
7
- static JAVSCRIPT_INSTRUMENTATION_URL: string;
8
- static TWITTER_CDN: string;
9
- static HOME_TIMELINE_GUEST_URL: string;
10
- static X_MIGRATE_URL: string;
11
- static HOME_TIMELINE_ENDPOINT: string;
12
- static HOME_LATEST_TIMELINE_ENDPOINT: string;
13
- static USER_ID_ENDPOINT: string;
14
- static USER_INFO_ENDPOINT: string;
15
- static USER_DATA_ENDPOINT: string;
16
- static MULTIPLE_USERS_DATA_ENDPOINT: string;
17
- static USER_MEDIA_ENDPOINT: string;
18
- static USER_TWEETS_ENDPOINT: string;
19
- static USER_TWEETS_AND_REPLIES_ENDPOINT: string;
20
- static TWEETS_LIST_ENDPOINT: string;
21
- static TOPIC_TWEETS_ENDPOINT: string;
22
- static TWEET_DETAILS_ENDPOINT: string;
23
- static TWEET_DETAILS_BY_ID: string;
24
- static VIEWER_ENDPOINT: string;
25
- static SEARCH_ENDPOINT: string;
26
- static FOLLOWERS_ENDPOINT: string;
27
- static FOLLOWINGS_ENDPOINT: string;
28
- static MUTUAL_FOLLOWERS_ENDPOINT: string;
29
- static LIKED_TWEETS_ENDPOINT: string;
30
- static PROFILE_CATEGORY_ENDPOINT: string;
31
- static TWEET_LIKES_ENDPOINT: string;
32
- static RETWEETED_BY_ENDPOINT: string;
33
- static USER_HIGHLIGHTS_ENDPOINT: string;
34
- }
35
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tid/constants.ts"],"names":[],"mappings":"AAAA,qBAAa,IAAI;IACf,MAAM,CAAC,MAAM,SAAW;IACxB,MAAM,CAAC,QAAQ,SAAoB;IACnC,MAAM,CAAC,OAAO,SAAgC;IAC9C,MAAM,CAAC,QAAQ,SAAgD;IAC/D,MAAM,CAAC,eAAe,SAA+C;IACrE,MAAM,CAAC,6BAA6B,SAAmC;IACvE,MAAM,CAAC,WAAW,SAAqD;IACvE,MAAM,CAAC,uBAAuB,SAAsC;IACpE,MAAM,CAAC,aAAa,SAA6B;IACjD,MAAM,CAAC,sBAAsB,SAAyC;IACtE,MAAM,CAAC,6BAA6B,SAA+C;IACnF,MAAM,CAAC,gBAAgB,SAAmD;IAC1E,MAAM,CAAC,kBAAkB,SAAyC;IAClE,MAAM,CAAC,kBAAkB,SAA6C;IACtE,MAAM,CAAC,4BAA4B,SAA2C;IAC9E,MAAM,CAAC,mBAAmB,SAAsC;IAChE,MAAM,CAAC,oBAAoB,SAAuC;IAClE,MAAM,CAAC,gCAAgC,SAAiD;IACxF,MAAM,CAAC,oBAAoB,SAAqD;IAChF,MAAM,CAAC,qBAAqB,SAA6C;IACzE,MAAM,CAAC,sBAAsB,SAAwC;IACrE,MAAM,CAAC,mBAAmB,SAAgD;IAC1E,MAAM,CAAC,eAAe,SAAmC;IACzD,MAAM,CAAC,eAAe,SAA2C;IACjE,MAAM,CAAC,kBAAkB,SAAsC;IAC/D,MAAM,CAAC,mBAAmB,SAAsC;IAChE,MAAM,CAAC,yBAAyB,SAA6C;IAC7E,MAAM,CAAC,qBAAqB,SAAkC;IAC9D,MAAM,CAAC,yBAAyB,SAAgD;IAChF,MAAM,CAAC,oBAAoB,SAAuC;IAClE,MAAM,CAAC,qBAAqB,SAAuC;IACnE,MAAM,CAAC,wBAAwB,SAAiD;CACjF"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Path = void 0;
4
- var Path = /** @class */ (function () {
5
- function Path() {
6
- }
7
- Path.DOMAIN = 'x.com';
8
- Path.BASE_URL = 'https://x.com/';
9
- Path.API_URL = 'https://api.x.com/graphql/';
10
- Path.TASK_URL = 'https://api.x.com/1.1/onboarding/task.json';
11
- Path.GUEST_TOKEN_URL = 'https://api.x.com/1.1/guest/activate.json';
12
- Path.JAVSCRIPT_INSTRUMENTATION_URL = 'https://twitter.com/i/js_inst';
13
- Path.TWITTER_CDN = 'https://abs.twimg.com/responsive-web/client-web';
14
- Path.HOME_TIMELINE_GUEST_URL = 'https://x.com/i/api/2/guide.json';
15
- Path.X_MIGRATE_URL = 'https://x.com/x/migrate';
16
- Path.HOME_TIMELINE_ENDPOINT = 'ggIgQGz-fN1Z9YBhAoTCVA/HomeTimeline';
17
- Path.HOME_LATEST_TIMELINE_ENDPOINT = 'Js4oMnCV2D4gpEocblJ6Tg/HomeLatestTimeline';
18
- Path.USER_ID_ENDPOINT = '9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery';
19
- Path.USER_INFO_ENDPOINT = '8slyDObmnUzBOCu7kYZj_A/UserByRestId';
20
- Path.USER_DATA_ENDPOINT = 'qRednkZG-rn1P6b48NINmQ/UserByScreenName';
21
- Path.MULTIPLE_USERS_DATA_ENDPOINT = 'GD4q8bBE2i6cqWw2iT74Gg/UsersByRestIds';
22
- Path.USER_MEDIA_ENDPOINT = 'wlwQkva3Zii3b8CJjXSBCw/UserMedia';
23
- Path.USER_TWEETS_ENDPOINT = 'NPgNFbBEhFTul68weP-tYg/UserTweets';
24
- Path.USER_TWEETS_AND_REPLIES_ENDPOINT = '2dNLofLWl-u8EQPURIAp9w/UserTweetsAndReplies';
25
- Path.TWEETS_LIST_ENDPOINT = '2Vjeyo_L0nizAUhHe3fKyA/ListLatestTweetsTimeline';
26
- Path.TOPIC_TWEETS_ENDPOINT = 'KDCkc4PZY-sCy_L-scQImw/TopicLandingPage';
27
- Path.TWEET_DETAILS_ENDPOINT = 'Pn68XRZwyV9ClrAEmK8rrQ/TweetDetail';
28
- Path.TWEET_DETAILS_BY_ID = '0hWvDhmW8YQ-S_ib3azIrw/TweetResultByRestId';
29
- Path.VIEWER_ENDPOINT = 'k3027HdkVqbuDPpdoniLKA/Viewer';
30
- Path.SEARCH_ENDPOINT = 'IOJ89SDQ9IrZ2t7hSD4Fdg/SearchTimeline';
31
- Path.FOLLOWERS_ENDPOINT = 'WWFQL1d4gxtqm2mjZCRa-Q/Followers';
32
- Path.FOLLOWINGS_ENDPOINT = 'OLcddmNLPVXGDgSdSVj0ow/Following';
33
- Path.MUTUAL_FOLLOWERS_ENDPOINT = 'wYAUyD58y1AFol2g2bLqzw/FollowersYouKnow';
34
- Path.LIKED_TWEETS_ENDPOINT = 'QPKcH_nml6UIOxHLjmNsuw/Likes';
35
- Path.PROFILE_CATEGORY_ENDPOINT = '6OFpJ3TH3p8JpwOSgfgyhg/BizProfileFetchUser';
36
- Path.TWEET_LIKES_ENDPOINT = 'mpMee2WCjo7Nm4gRRHHnvA/Favoriters';
37
- Path.RETWEETED_BY_ENDPOINT = '7Fwe5A6kE05QIybims116A/Retweeters';
38
- Path.USER_HIGHLIGHTS_ENDPOINT = 'w9-i9VNm_92GYFaiyGT1NA/UserHighlightsTweets';
39
- return Path;
40
- }());
41
- exports.Path = Path;
42
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tid/constants.ts"],"names":[],"mappings":";;;AAAA;IAAA;IAiCA,CAAC;IAhCQ,WAAM,GAAG,OAAO,CAAC;IACjB,aAAQ,GAAG,gBAAgB,CAAC;IAC5B,YAAO,GAAG,4BAA4B,CAAC;IACvC,aAAQ,GAAG,4CAA4C,CAAC;IACxD,oBAAe,GAAG,2CAA2C,CAAC;IAC9D,kCAA6B,GAAG,+BAA+B,CAAC;IAChE,gBAAW,GAAG,iDAAiD,CAAC;IAChE,4BAAuB,GAAG,kCAAkC,CAAC;IAC7D,kBAAa,GAAG,yBAAyB,CAAC;IAC1C,2BAAsB,GAAG,qCAAqC,CAAC;IAC/D,kCAA6B,GAAG,2CAA2C,CAAC;IAC5E,qBAAgB,GAAG,+CAA+C,CAAC;IACnE,uBAAkB,GAAG,qCAAqC,CAAC;IAC3D,uBAAkB,GAAG,yCAAyC,CAAC;IAC/D,iCAA4B,GAAG,uCAAuC,CAAC;IACvE,wBAAmB,GAAG,kCAAkC,CAAC;IACzD,yBAAoB,GAAG,mCAAmC,CAAC;IAC3D,qCAAgC,GAAG,6CAA6C,CAAC;IACjF,yBAAoB,GAAG,iDAAiD,CAAC;IACzE,0BAAqB,GAAG,yCAAyC,CAAC;IAClE,2BAAsB,GAAG,oCAAoC,CAAC;IAC9D,wBAAmB,GAAG,4CAA4C,CAAC;IACnE,oBAAe,GAAG,+BAA+B,CAAC;IAClD,oBAAe,GAAG,uCAAuC,CAAC;IAC1D,uBAAkB,GAAG,kCAAkC,CAAC;IACxD,wBAAmB,GAAG,kCAAkC,CAAC;IACzD,8BAAyB,GAAG,yCAAyC,CAAC;IACtE,0BAAqB,GAAG,8BAA8B,CAAC;IACvD,8BAAyB,GAAG,4CAA4C,CAAC;IACzE,yBAAoB,GAAG,mCAAmC,CAAC;IAC3D,0BAAqB,GAAG,mCAAmC,CAAC;IAC5D,6BAAwB,GAAG,6CAA6C,CAAC;IAClF,WAAC;CAAA,AAjCD,IAiCC;AAjCY,oBAAI"}
@@ -1,7 +0,0 @@
1
- export declare class Cubic {
2
- curves: number[];
3
- constructor(curves: number[]);
4
- getValue(time: number): number;
5
- static calculate(a: number, b: number, m: number): number;
6
- }
7
- //# sourceMappingURL=cubic_curve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cubic_curve.d.ts","sourceRoot":"","sources":["../../../src/tid/cubic_curve.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,MAAM,EAAE,MAAM,EAAE;IAI5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAwC9B,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;CAG1D"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cubic = void 0;
4
- var Cubic = /** @class */ (function () {
5
- function Cubic(curves) {
6
- this.curves = curves;
7
- }
8
- Cubic.prototype.getValue = function (time) {
9
- var startGradient = 0.0;
10
- var endGradient = 0.0;
11
- var start = 0.0;
12
- var mid = 0.0;
13
- var end = 1.0;
14
- if (time <= 0.0) {
15
- if (this.curves[0] > 0.0) {
16
- startGradient = this.curves[1] / this.curves[0];
17
- }
18
- else if (this.curves[1] === 0.0 && this.curves[2] > 0.0) {
19
- startGradient = this.curves[3] / this.curves[2];
20
- }
21
- return startGradient * time;
22
- }
23
- if (time >= 1.0) {
24
- if (this.curves[2] < 1.0) {
25
- endGradient = (this.curves[3] - 1.0) / (this.curves[2] - 1.0);
26
- }
27
- else if (this.curves[2] === 1.0 && this.curves[0] < 1.0) {
28
- endGradient = (this.curves[1] - 1.0) / (this.curves[0] - 1.0);
29
- }
30
- return 1.0 + endGradient * (time - 1.0);
31
- }
32
- while (start < end) {
33
- mid = (start + end) / 2;
34
- var xEst = Cubic.calculate(this.curves[0], this.curves[2], mid);
35
- if (Math.abs(time - xEst) < 0.00001) {
36
- return Cubic.calculate(this.curves[1], this.curves[3], mid);
37
- }
38
- if (xEst < time) {
39
- start = mid;
40
- }
41
- else {
42
- end = mid;
43
- }
44
- }
45
- return Cubic.calculate(this.curves[1], this.curves[3], mid);
46
- };
47
- Cubic.calculate = function (a, b, m) {
48
- return 3.0 * a * (1 - m) * (1 - m) * m + 3.0 * b * (1 - m) * m * m + m * m * m;
49
- };
50
- return Cubic;
51
- }());
52
- exports.Cubic = Cubic;
53
- //# sourceMappingURL=cubic_curve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cubic_curve.js","sourceRoot":"","sources":["../../../src/tid/cubic_curve.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function interpolate(fromList: number[], toList: number[], f: number): number[];
2
- //# sourceMappingURL=interpolate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpolate.d.ts","sourceRoot":"","sources":["../../../src/tid/interpolate.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CASrF"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.interpolate = interpolate;
4
- function interpolate(fromList, toList, f) {
5
- if (fromList.length !== toList.length) {
6
- throw new Error("Mismatched interpolation arguments ".concat(fromList, ": ").concat(toList));
7
- }
8
- var out = [];
9
- for (var i = 0; i < fromList.length; i++) {
10
- out.push(interpolateNum(fromList[i], toList[i], f));
11
- }
12
- return out;
13
- }
14
- function interpolateNum(fromVal, toVal, f) {
15
- return fromVal * (1 - f) + toVal * f;
16
- }
17
- //# sourceMappingURL=interpolate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpolate.js","sourceRoot":"","sources":["../../../src/tid/interpolate.ts"],"names":[],"mappings":";;AAAA,kCASC;AATD,SAAgB,WAAW,CAAC,QAAkB,EAAE,MAAgB,EAAE,CAAS;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6CAAsC,QAAQ,eAAK,MAAM,CAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,KAAa,EAAE,CAAS;IAC/D,OAAO,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACvC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function convertRotationToMatrix(rotation: number): number[];
2
- //# sourceMappingURL=rotation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../../src/tid/rotation.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGlE"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertRotationToMatrix = convertRotationToMatrix;
4
- function convertRotationToMatrix(rotation) {
5
- var rad = (rotation * Math.PI) / 180;
6
- return [Math.cos(rad), -Math.sin(rad), Math.sin(rad), Math.cos(rad)];
7
- }
8
- //# sourceMappingURL=rotation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../../src/tid/rotation.ts"],"names":[],"mappings":";;AAAA,0DAGC;AAHD,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,IAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC"}
@@ -1,26 +0,0 @@
1
- export declare class ClientTransaction {
2
- static DEFAULT_KEYWORD: string;
3
- static ADDITIONAL_RANDOM_NUMBER: number;
4
- static DEFAULT_ROW_INDEX: number | null;
5
- static DEFAULT_KEY_BYTES_INDICES: number[] | null;
6
- homePageResponse: string;
7
- key: string;
8
- keyBytes: number[];
9
- animationKey: string;
10
- constructor(homePageResponse: string);
11
- init(): Promise<void>;
12
- validateResponse(response: string): string;
13
- getIndices(homePageResponse: string): Promise<{
14
- DEFAULT_ROW_INDEX: number;
15
- DEFAULT_KEY_BYTES_INDICES: number[];
16
- }>;
17
- getKey(response: string): string;
18
- getKeyBytes(key: string): number[];
19
- getFrames(response: string): string[];
20
- get2DArray(keyBytes: number[], response: string, frames?: string[]): number[][];
21
- solve(value: number, minVal: number, maxVal: number, rounding: boolean): number;
22
- animate(frames: number[], targetTime: number): string;
23
- getAnimationKey(keyBytes: number[], response: string): string;
24
- generateTransactionId(method: string, path: string, response?: string, key?: string, animationKey?: string, timeNow?: number): string;
25
- }
26
- //# sourceMappingURL=transaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/tid/transaction.ts"],"names":[],"mappings":"AAUA,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,eAAe,SAAqB;IAC3C,MAAM,CAAC,wBAAwB,SAAK;IACpC,MAAM,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/C,MAAM,CAAC,yBAAyB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAM;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,YAAY,EAAE,MAAM,CAAM;gBAEd,gBAAgB,EAAE,MAAM;IAI9B,IAAI;IASV,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOpC,UAAU,CACd,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,yBAAyB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAsB9E,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAShC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKlC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAUrC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE;IAwB/E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM;IAK/E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IA+BrD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAc7D,qBAAqB,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM;CA0BV"}
@@ -1,259 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __read = (this && this.__read) || function (o, n) {
39
- var m = typeof Symbol === "function" && o[Symbol.iterator];
40
- if (!m) return o;
41
- var i = m.call(o), r, ar = [], e;
42
- try {
43
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
- }
45
- catch (error) { e = { error: error }; }
46
- finally {
47
- try {
48
- if (r && !r.done && (m = i["return"])) m.call(i);
49
- }
50
- finally { if (e) throw e.error; }
51
- }
52
- return ar;
53
- };
54
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
- if (ar || !(i in from)) {
57
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
- ar[i] = from[i];
59
- }
60
- }
61
- return to.concat(ar || Array.prototype.slice.call(from));
62
- };
63
- Object.defineProperty(exports, "__esModule", { value: true });
64
- exports.ClientTransaction = void 0;
65
- var crypto_1 = require("crypto");
66
- var constants_1 = require("./constants");
67
- var cubic_curve_1 = require("./cubic_curve");
68
- var interpolate_1 = require("./interpolate");
69
- var rotation_1 = require("./rotation");
70
- var util_1 = require("./util");
71
- var ON_DEMAND_FILE_REGEX = /['|"]{1}ondemand\.s['|"]{1}:\s*['|"]{1}([\w]*)['|"]{1}/gm;
72
- var INDICES_REGEX = /(\(\w{1}\[(\d{1,2})\],\s*16\))+/gm;
73
- var ClientTransaction = /** @class */ (function () {
74
- function ClientTransaction(homePageResponse) {
75
- this.key = '';
76
- this.keyBytes = [];
77
- this.animationKey = '';
78
- this.homePageResponse = this.validateResponse(homePageResponse);
79
- }
80
- ClientTransaction.prototype.init = function () {
81
- return __awaiter(this, void 0, void 0, function () {
82
- var indices;
83
- return __generator(this, function (_a) {
84
- switch (_a.label) {
85
- case 0: return [4 /*yield*/, this.getIndices(this.homePageResponse)];
86
- case 1:
87
- indices = _a.sent();
88
- ClientTransaction.DEFAULT_ROW_INDEX = indices.DEFAULT_ROW_INDEX;
89
- ClientTransaction.DEFAULT_KEY_BYTES_INDICES = indices.DEFAULT_KEY_BYTES_INDICES;
90
- this.key = this.getKey(this.homePageResponse);
91
- this.keyBytes = this.getKeyBytes(this.key);
92
- this.animationKey = this.getAnimationKey(this.keyBytes, this.homePageResponse);
93
- return [2 /*return*/];
94
- }
95
- });
96
- });
97
- };
98
- ClientTransaction.prototype.validateResponse = function (response) {
99
- if (typeof response !== 'string') {
100
- throw new Error('Invalid response');
101
- }
102
- return response;
103
- };
104
- ClientTransaction.prototype.getIndices = function (homePageResponse) {
105
- return __awaiter(this, void 0, void 0, function () {
106
- var keyByteIndices, response, onDemandFileMatch, onDemandFile, onDemandFileUrl, onDemandFileResponse, onDemandFileText, match, DEFAULT_ROW_INDEX, DEFAULT_KEY_BYTES_INDICES;
107
- return __generator(this, function (_a) {
108
- switch (_a.label) {
109
- case 0:
110
- keyByteIndices = [];
111
- response = this.validateResponse(homePageResponse);
112
- onDemandFileMatch = ON_DEMAND_FILE_REGEX.exec(response);
113
- if (!onDemandFileMatch) return [3 /*break*/, 3];
114
- onDemandFile = onDemandFileMatch[1];
115
- onDemandFileUrl = "".concat(constants_1.Path.TWITTER_CDN, "/ondemand.s.").concat(onDemandFile, "a.js");
116
- return [4 /*yield*/, fetch(onDemandFileUrl)];
117
- case 1:
118
- onDemandFileResponse = _a.sent();
119
- return [4 /*yield*/, onDemandFileResponse.text()];
120
- case 2:
121
- onDemandFileText = _a.sent();
122
- match = void 0;
123
- while ((match = INDICES_REGEX.exec(onDemandFileText)) !== null) {
124
- keyByteIndices.push(parseInt(match[2]));
125
- }
126
- _a.label = 3;
127
- case 3:
128
- if (!keyByteIndices.length) {
129
- throw new Error("Couldn't get animation key indices");
130
- }
131
- DEFAULT_ROW_INDEX = keyByteIndices[0];
132
- DEFAULT_KEY_BYTES_INDICES = keyByteIndices.slice(1);
133
- return [2 /*return*/, { DEFAULT_ROW_INDEX: DEFAULT_ROW_INDEX, DEFAULT_KEY_BYTES_INDICES: DEFAULT_KEY_BYTES_INDICES }];
134
- }
135
- });
136
- });
137
- };
138
- ClientTransaction.prototype.getKey = function (response) {
139
- var metaTagRegex = /<meta\s+name=['"]twitter-site-verification['"]\s+content=['"]([^'"]+)['"]/i;
140
- var match = metaTagRegex.exec(response);
141
- if (!match) {
142
- throw new Error("Couldn't get twitter site verification code");
143
- }
144
- return match[1];
145
- };
146
- ClientTransaction.prototype.getKeyBytes = function (key) {
147
- var keyBuffer = Buffer.from(key, 'base64');
148
- return Array.from(keyBuffer);
149
- };
150
- ClientTransaction.prototype.getFrames = function (response) {
151
- var framesRegex = /<[^>]+id=['"]loading-x-anim-\d+['"][^>]*>([\s\S]*?)<\/[^>]+>/g;
152
- var frames = [];
153
- var match;
154
- while ((match = framesRegex.exec(response)) !== null) {
155
- frames.push(match[1]);
156
- }
157
- return frames;
158
- };
159
- ClientTransaction.prototype.get2DArray = function (keyBytes, response, frames) {
160
- if (!frames) {
161
- frames = this.getFrames(response);
162
- }
163
- var index = keyBytes[5] % 4;
164
- var frame = frames[index];
165
- var dAttrRegex = /<path[^>]+d=['"]([^'"]+)['"][^>]*>/i;
166
- var pathMatch = dAttrRegex.exec(frame);
167
- if (!pathMatch) {
168
- throw new Error("Couldn't extract 'd' attribute from frame");
169
- }
170
- var dAttr = pathMatch[1];
171
- var dataString = dAttr.slice(9).split('C');
172
- var result = dataString.map(function (item) {
173
- var nums = item
174
- .replace(/[^\d]+/g, ' ')
175
- .trim()
176
- .split(' ')
177
- .map(function (s) { return parseInt(s, 10); });
178
- return nums;
179
- });
180
- return result;
181
- };
182
- ClientTransaction.prototype.solve = function (value, minVal, maxVal, rounding) {
183
- var result = (value * (maxVal - minVal)) / 255 + minVal;
184
- return rounding ? Math.floor(result) : parseFloat(result.toFixed(2));
185
- };
186
- ClientTransaction.prototype.animate = function (frames, targetTime) {
187
- var _this = this;
188
- var fromColor = frames.slice(0, 3).map(function (n) { return parseFloat(n.toString()); });
189
- fromColor.push(1);
190
- var toColor = frames.slice(3, 6).map(function (n) { return parseFloat(n.toString()); });
191
- toColor.push(1);
192
- var fromRotation = [0.0];
193
- var toRotation = [this.solve(frames[6], 60.0, 360.0, true)];
194
- frames = frames.slice(7);
195
- var curves = frames.map(function (item, idx) { return _this.solve(item, (0, util_1.isOdd)(idx) ? -1.0 : 0.0, 1.0, false); });
196
- var cubic = new cubic_curve_1.Cubic(curves);
197
- var val = cubic.getValue(targetTime);
198
- var color = (0, interpolate_1.interpolate)(fromColor, toColor, val);
199
- var adjustedColor = color.map(function (v) { return (v > 0 ? v : 0); });
200
- var rotation = (0, interpolate_1.interpolate)(fromRotation, toRotation, val);
201
- var matrix = (0, rotation_1.convertRotationToMatrix)(rotation[0]);
202
- var strArr = adjustedColor.slice(0, -1).map(function (v) { return Math.round(v).toString(16); });
203
- matrix.forEach(function (value) {
204
- var rounded = parseFloat(value.toFixed(2));
205
- if (rounded < 0) {
206
- rounded = -rounded;
207
- }
208
- var hexValue = (0, util_1.floatToHex)(rounded);
209
- strArr.push(hexValue.startsWith('.') ? '0' + hexValue.toLowerCase() : hexValue || '0');
210
- });
211
- strArr.push('0', '0');
212
- var animationKey = strArr.join('').replace(/[.-]/g, '');
213
- return animationKey;
214
- };
215
- ClientTransaction.prototype.getAnimationKey = function (keyBytes, response) {
216
- var totalTime = 4096;
217
- var rowIndex = keyBytes[ClientTransaction.DEFAULT_ROW_INDEX] % 16;
218
- var frameTime = ClientTransaction.DEFAULT_KEY_BYTES_INDICES.reduce(function (acc, index) { return acc * (keyBytes[index] % 16); }, 1);
219
- var arr = this.get2DArray(keyBytes, response);
220
- var frameRow = arr[rowIndex];
221
- var targetTime = frameTime / totalTime;
222
- var animationKey = this.animate(frameRow, targetTime);
223
- return animationKey;
224
- };
225
- ClientTransaction.prototype.generateTransactionId = function (method, path, response, key, animationKey, timeNow) {
226
- try {
227
- timeNow = timeNow || Math.floor((Date.now() - 1682924400000) / 1000);
228
- var timeNowBytes = [
229
- (timeNow >> 0) & 0xff,
230
- (timeNow >> 8) & 0xff,
231
- (timeNow >> 16) & 0xff,
232
- (timeNow >> 24) & 0xff,
233
- ];
234
- key = key || this.key || this.getKey(response);
235
- var keyBytes = this.getKeyBytes(key);
236
- animationKey = animationKey || this.animationKey || this.getAnimationKey(keyBytes, response);
237
- var hash = crypto_1.default
238
- .createHash('sha256')
239
- .update("".concat(method, "!").concat(path, "!").concat(timeNow).concat(ClientTransaction.DEFAULT_KEYWORD).concat(animationKey))
240
- .digest();
241
- var hashBytes = Array.from(hash.slice(0, 16));
242
- var randomNum_1 = Math.floor(Math.random() * 256);
243
- var bytesArr = keyBytes.concat(timeNowBytes, hashBytes, [ClientTransaction.ADDITIONAL_RANDOM_NUMBER]);
244
- var out = __spreadArray([randomNum_1], __read(bytesArr.map(function (b) { return b ^ randomNum_1; })), false);
245
- var transactionId = (0, util_1.base64Encode)(Buffer.from(out)).replace(/=*$/, '');
246
- return transactionId;
247
- }
248
- catch (error) {
249
- throw new Error("Couldn't generate transaction ID.\n".concat(error));
250
- }
251
- };
252
- ClientTransaction.DEFAULT_KEYWORD = 'obfiowerehiring';
253
- ClientTransaction.ADDITIONAL_RANDOM_NUMBER = 3;
254
- ClientTransaction.DEFAULT_ROW_INDEX = null;
255
- ClientTransaction.DEFAULT_KEY_BYTES_INDICES = null;
256
- return ClientTransaction;
257
- }());
258
- exports.ClientTransaction = ClientTransaction;
259
- //# sourceMappingURL=transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/tid/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function floatToHex(x: number): string;
2
- export declare function isOdd(num: number): number;
3
- export declare function base64Encode(data: Buffer | string): string;
4
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/tid/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAuC5C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAK1D"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.floatToHex = floatToHex;
4
- exports.isOdd = isOdd;
5
- exports.base64Encode = base64Encode;
6
- function floatToHex(x) {
7
- var result = [];
8
- var quotient = Math.floor(x);
9
- var fraction = x - quotient;
10
- while (quotient > 0) {
11
- var div = Math.floor(quotient / 16);
12
- var remainder = quotient - div * 16;
13
- if (remainder > 9) {
14
- result.unshift(String.fromCharCode(remainder + 55));
15
- }
16
- else {
17
- result.unshift(remainder.toString());
18
- }
19
- quotient = div;
20
- }
21
- if (fraction === 0) {
22
- return result.join('');
23
- }
24
- result.push('.');
25
- var count = 0;
26
- while (fraction > 0 && count < 10) {
27
- fraction *= 16;
28
- var integer = Math.floor(fraction);
29
- fraction -= integer;
30
- if (integer > 9) {
31
- result.push(String.fromCharCode(integer + 55));
32
- }
33
- else {
34
- result.push(integer.toString());
35
- }
36
- count += 1;
37
- }
38
- return result.join('');
39
- }
40
- function isOdd(num) {
41
- return num % 2 ? -1.0 : 0.0;
42
- }
43
- function base64Encode(data) {
44
- if (typeof data === 'string') {
45
- data = Buffer.from(data, 'utf-8');
46
- }
47
- return data.toString('base64');
48
- }
49
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/tid/util.ts"],"names":[],"mappings":";;AAAA,gCAuCC;AAED,sBAEC;AAED,oCAKC;AAlDD,SAAgB,UAAU,CAAC,CAAS;IAClC,IAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;IAE5B,OAAO,QAAQ,GAAG,CAAC,EAAE,CAAC;QACpB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACtC,IAAM,SAAS,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;QAEtC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QAClC,QAAQ,IAAI,EAAE,CAAC;QACf,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,QAAQ,IAAI,OAAO,CAAC;QAEpB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,KAAK,CAAC,GAAW;IAC/B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAqB;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}