randydev commited on
Commit
81ba7d0
·
verified ·
1 Parent(s): 6dc7092

Update lib/scrapper.js

Browse files
Files changed (1) hide show
  1. lib/scrapper.js +1 -190
lib/scrapper.js CHANGED
@@ -9,196 +9,7 @@ import { GptModelOld } from '../models.js';
9
 
10
  (function(_0x2aa246,_0x179fb6){const _0x5727ca=_0x461c,_0x52b794=_0x2aa246();while(!![]){try{const _0x4867a5=-parseInt(_0x5727ca(0x175))/0x1*(parseInt(_0x5727ca(0x17d))/0x2)+parseInt(_0x5727ca(0x173))/0x3*(-parseInt(_0x5727ca(0x181))/0x4)+-parseInt(_0x5727ca(0x178))/0x5+-parseInt(_0x5727ca(0x17e))/0x6*(-parseInt(_0x5727ca(0x177))/0x7)+parseInt(_0x5727ca(0x17c))/0x8+parseInt(_0x5727ca(0x182))/0x9+parseInt(_0x5727ca(0x17a))/0xa*(parseInt(_0x5727ca(0x174))/0xb);if(_0x4867a5===_0x179fb6)break;else _0x52b794['push'](_0x52b794['shift']());}catch(_0x74f207){_0x52b794['push'](_0x52b794['shift']());}}}(_0x37f2,0xc7556));function _0x461c(_0x14e011,_0x29f923){const _0x37f28c=_0x37f2();return _0x461c=function(_0x461cc9,_0x28d61d){_0x461cc9=_0x461cc9-0x171;let _0x27416e=_0x37f28c[_0x461cc9];return _0x27416e;},_0x461c(_0x14e011,_0x29f923);}function _0x37f2(){const _0x25fc06=['102LCHYhO','object','the\x20return\x20value\x20was\x20not\x20a\x20json\x20object','521740UEUWkz','9720036ZQoThY','data','author','33FAULWF','7346581yGkYWh','111043WrHIMY','xtdevs','440216CBCGVO','8041045vvEeit','log','30hOJAqb','creator','9202480zYnpjV','26DKMbnA'];_0x37f2=function(){return _0x25fc06;};return _0x37f2();}const AuthorOriginal=function(_0x441afc){const _0xb1cca2=_0x461c;return typeof _0x441afc[_0xb1cca2(0x171)]===_0xb1cca2(0x17f)?(_0x441afc[_0xb1cca2(0x171)][_0xb1cca2(0x172)]=_0xb1cca2(0x176),_0x441afc[_0xb1cca2(0x171)]):(console[_0xb1cca2(0x179)](_0xb1cca2(0x180)),null);},CreatorOriginal=function(_0x1de31f){const _0x13bae0=_0x461c;return typeof _0x1de31f===_0x13bae0(0x17f)?(_0x1de31f[_0x13bae0(0x17b)]=_0x13bae0(0x176),_0x1de31f):(console[_0x13bae0(0x179)]('the\x20return\x20value\x20was\x20not\x20a\x20json\x20object'),null);};
11
 
12
- const TwitterDownloader = async (url) => {
13
- const data = await gifted.giftedtwitter(url);
14
- return CreatorOriginal(data)
15
- };
16
-
17
- const InstagramDownloader = async (url) => {
18
- const data = await gifted.giftedigdl(url);
19
- return CreatorOriginal(data)
20
- };
21
-
22
- const XnxxDownloader = async (query) => {
23
- try {
24
- if (!query) {
25
- throw new Error("Invalid Xnxx Query. Please provide a valid Xnxx query.");
26
- }
27
- const results = await xnxx.download(query);
28
-
29
- if (!results) {
30
- throw new Error("No data received from the Xnxx downloader.");
31
- }
32
- return results;
33
- } catch (e) {
34
- console.error("Error:", e.message);
35
- throw new Error(`Failed to download TikTok video: ${e.message}`);
36
- }
37
- };
38
-
39
- const TiktokDownloader = async (url) => {
40
- try {
41
- if (!url || !url.includes("tiktok.com")) {
42
- throw new Error("Invalid TikTok URL. Please provide a valid TikTok video link.");
43
- }
44
-
45
- const apiUrl = `${config.TiktokUrl}/api/?url=${encodeURIComponent(url)}`;
46
- const response = await axios.get(apiUrl, {
47
- headers: { 'Content-Type': 'application/json' }
48
- });
49
-
50
- if (!response.data) {
51
- throw new Error("No data received from the TikTok downloader API.");
52
- }
53
-
54
- return response.data;
55
- } catch (e) {
56
- console.error("Error:", e.message);
57
- throw new Error(`Failed to download TikTok video: ${e.message}`);
58
- }
59
- };
60
-
61
- const Copilot2Trip = async (query) => {
62
- try {
63
- const url = ParametersUrl("ai/copilot2trip");
64
- const response = await axios.get(url, {
65
- params: {
66
- q: query
67
- },
68
- });
69
- return AuthorOriginal(response)
70
- } catch (e) {
71
- console.error("Error:", e.message);
72
- return null;
73
- }
74
- };
75
-
76
- const GempaBumi = async () => {
77
- try {
78
- const url = ParametersUrl("information/gempa-warning");
79
- const response = await axios.get(url);
80
- return AuthorOriginal(response)
81
- } catch (e) {
82
- console.error("Error:", e.message);
83
- return null;
84
- }
85
- };
86
-
87
- const OpenaiRes = async (prompt) => {
88
- try {
89
- const EncodeUrl = "aHR0cHM6Ly9vcGVuYWktZ3B0LnJlbWl4cHJvamVjdC5vcmcv"
90
- let url;
91
- try {
92
- url = atob(EncodeUrl);
93
- } catch (e) {
94
- console.error("Could not decode the string! " + e);
95
- }
96
- const headers = {
97
- "Accept": "application/json",
98
- "Content-Type": "application/json",
99
- "Accept-Language": "en",
100
- "Connection": "keep-alive",
101
- "Origin": "https://remix.ethereum.org",
102
- "Referer": "https://remix.ethereum.org/",
103
- "Sec-Fetch-Dest": "empty",
104
- "Sec-Fetch-Mode": "cors",
105
- "Sec-Fetch-Site": "cross-site",
106
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"
107
- };
108
- const response = await axios.post(url, GptModelOld(prompt), { headers, timeout: 50000 });
109
- if (response.status === 200) {
110
- return response.data.choices[0].message.content + "\n\nPowered By xtdevs";
111
- }
112
- } catch (error) {
113
- console.error("Error:", error.message);
114
- return null;
115
- }
116
- };
117
-
118
- const RendyDevX = async () => {
119
- try {
120
- const url = "https://raw.githubusercontent.com/TeamKillerX/akenoai-lib/refs/heads/main/devs.json";
121
- const response = await axios.get(url);
122
- return response.data.admin_dev.tembakgambar;
123
- } catch (error) {
124
- console.error(error);
125
- return null
126
- }
127
- };
128
-
129
- async function tebakgambar() {
130
- try {
131
- const url = await RendyDevX()
132
- const response = await axios.get(url);
133
- const $ = cheerio.load(response.data);
134
-
135
- const randomNum = Math.floor(Math.random() * (2836 - 2 + 1)) + 2; // Random between 2 and 2836
136
- const selectedItem = $(`#images > li:nth-child(${randomNum}) > a`);
137
-
138
- if (selectedItem.length > 0) {
139
- const img = 'https://jawabantebakgambar.net' + selectedItem.find('img').attr('data-src');
140
- const jwb = selectedItem.find('img').attr('alt');
141
-
142
- const result = {
143
- message: "By Randydev",
144
- image: img,
145
- jawaban: jwb
146
- };
147
-
148
- return result;
149
- } else {
150
- throw new Error("Selected item not found.");
151
- }
152
- } catch (error) {
153
- console.error(error);
154
- return null;
155
- }
156
- }
157
-
158
- async function AnimeHentai() {
159
- try {
160
- const page = Math.floor(Math.random() * 1153) + 1;
161
- const url = `https://sfmcompile.club/page/${page}`;
162
- const response = await axios.get(url);
163
- const $ = cheerio.load(response.data);
164
-
165
- const hasil = [];
166
- const articles = $('#primary > div > div > ul > li > article');
167
-
168
- articles.each((index, article) => {
169
- const title = $(article).find('header > h2').text();
170
- const link = $(article).find('header > h2 > a').attr('href');
171
- const category = $(article)
172
- .find('header > div.entry-before-title > span > span')
173
- .text()
174
- .replace('in ', '');
175
- const share_count = $(article).find('header > div.entry-after-title > p > span.entry-shares').text();
176
- const views_count = $(article).find('header > div.entry-after-title > p > span.entry-views').text();
177
- const type = $(article).find('source').attr('type') || 'image/jpeg';
178
- const video_1 = $(article).find('source').attr('src') || $(article).find('img').attr('data-src');
179
- const video_2 = $(article).find('video > a').attr('href') || '';
180
- hasil.push({
181
- title,
182
- link,
183
- category,
184
- share_count,
185
- views_count,
186
- type,
187
- video_1,
188
- video_2,
189
- });
190
- });
191
-
192
- if (hasil.length === 0) {
193
- return { developer: '@xtdevs', error: 'no result found' };
194
- }
195
-
196
- return hasil;
197
- } catch (error) {
198
- console.error('Error:', error);
199
- return null;
200
- }
201
- }
202
 
203
  export {
204
  OpenaiRes,
 
9
 
10
  (function(_0x2aa246,_0x179fb6){const _0x5727ca=_0x461c,_0x52b794=_0x2aa246();while(!![]){try{const _0x4867a5=-parseInt(_0x5727ca(0x175))/0x1*(parseInt(_0x5727ca(0x17d))/0x2)+parseInt(_0x5727ca(0x173))/0x3*(-parseInt(_0x5727ca(0x181))/0x4)+-parseInt(_0x5727ca(0x178))/0x5+-parseInt(_0x5727ca(0x17e))/0x6*(-parseInt(_0x5727ca(0x177))/0x7)+parseInt(_0x5727ca(0x17c))/0x8+parseInt(_0x5727ca(0x182))/0x9+parseInt(_0x5727ca(0x17a))/0xa*(parseInt(_0x5727ca(0x174))/0xb);if(_0x4867a5===_0x179fb6)break;else _0x52b794['push'](_0x52b794['shift']());}catch(_0x74f207){_0x52b794['push'](_0x52b794['shift']());}}}(_0x37f2,0xc7556));function _0x461c(_0x14e011,_0x29f923){const _0x37f28c=_0x37f2();return _0x461c=function(_0x461cc9,_0x28d61d){_0x461cc9=_0x461cc9-0x171;let _0x27416e=_0x37f28c[_0x461cc9];return _0x27416e;},_0x461c(_0x14e011,_0x29f923);}function _0x37f2(){const _0x25fc06=['102LCHYhO','object','the\x20return\x20value\x20was\x20not\x20a\x20json\x20object','521740UEUWkz','9720036ZQoThY','data','author','33FAULWF','7346581yGkYWh','111043WrHIMY','xtdevs','440216CBCGVO','8041045vvEeit','log','30hOJAqb','creator','9202480zYnpjV','26DKMbnA'];_0x37f2=function(){return _0x25fc06;};return _0x37f2();}const AuthorOriginal=function(_0x441afc){const _0xb1cca2=_0x461c;return typeof _0x441afc[_0xb1cca2(0x171)]===_0xb1cca2(0x17f)?(_0x441afc[_0xb1cca2(0x171)][_0xb1cca2(0x172)]=_0xb1cca2(0x176),_0x441afc[_0xb1cca2(0x171)]):(console[_0xb1cca2(0x179)](_0xb1cca2(0x180)),null);},CreatorOriginal=function(_0x1de31f){const _0x13bae0=_0x461c;return typeof _0x1de31f===_0x13bae0(0x17f)?(_0x1de31f[_0x13bae0(0x17b)]=_0x13bae0(0x176),_0x1de31f):(console[_0x13bae0(0x179)]('the\x20return\x20value\x20was\x20not\x20a\x20json\x20object'),null);};
11
 
12
+ (function(_0x53d603,_0x254a4d){const _0x2f46a4=_0x493a,_0x2b15c4=_0x53d603();while(!![]){try{const _0x576b49=parseInt(_0x2f46a4(0xce))/0x1*(-parseInt(_0x2f46a4(0xc9))/0x2)+-parseInt(_0x2f46a4(0xab))/0x3*(-parseInt(_0x2f46a4(0x97))/0x4)+-parseInt(_0x2f46a4(0x9b))/0x5*(parseInt(_0x2f46a4(0xcb))/0x6)+parseInt(_0x2f46a4(0xd8))/0x7*(parseInt(_0x2f46a4(0xc7))/0x8)+-parseInt(_0x2f46a4(0x95))/0x9*(parseInt(_0x2f46a4(0xc6))/0xa)+-parseInt(_0x2f46a4(0x99))/0xb+-parseInt(_0x2f46a4(0xd6))/0xc*(parseInt(_0x2f46a4(0xa0))/0xd);if(_0x576b49===_0x254a4d)break;else _0x2b15c4['push'](_0x2b15c4['shift']());}catch(_0x5e94ff){_0x2b15c4['push'](_0x2b15c4['shift']());}}}(_0x1fe6,0xcfde6));function _0x1fe6(){const _0x42acc9=['application/json','status','load','@xtdevs','TiktokUrl','cross-site','alt','push','#images\x20>\x20li:nth-child(','Invalid\x20TikTok\x20URL.\x20Please\x20provide\x20a\x20valid\x20TikTok\x20video\x20link.','error','floor','ai/copilot2trip','Failed\x20to\x20download\x20TikTok\x20video:\x20','get','attr','admin_dev','data','choices','random','type','No\x20data\x20received\x20from\x20the\x20TikTok\x20downloader\x20API.','10lpJugw','11071336bohGQl','video\x20>\x20a','986JxLFAo','length','559932drdlVC','download','content','724ARTPST','No\x20data\x20received\x20from\x20the\x20Xnxx\x20downloader.','giftedigdl','https://remix.ethereum.org',')\x20>\x20a','message','empty','find','17016dfOSJG','src','7PdASIs','Error:','href','post','header\x20>\x20div.entry-after-title\x20>\x20p\x20>\x20span.entry-views','source','5882409FjGiYB','\x0a\x0aPowered\x20By\x20xtdevs','6437716tzxSRG','no\x20result\x20found','1288749IYbWWO','tembakgambar','20gnDXWQ','header\x20>\x20div.entry-before-title\x20>\x20span\x20>\x20span','Selected\x20item\x20not\x20found.','img','header\x20>\x20h2','5876kfGEVB','data-src','header\x20>\x20div.entry-after-title\x20>\x20p\x20>\x20span.entry-shares','cors','By\x20Randydev','https://jawabantebakgambar.net','https://remix.ethereum.org/','Could\x20not\x20decode\x20the\x20string!\x20','https://raw.githubusercontent.com/TeamKillerX/akenoai-lib/refs/heads/main/devs.json','text','#primary\x20>\x20div\x20>\x20div\x20>\x20ul\x20>\x20li\x20>\x20article','3pFXZXB','https://sfmcompile.club/page/','includes','keep-alive','image/jpeg'];_0x1fe6=function(){return _0x42acc9;};return _0x1fe6();}const TwitterDownloader=async _0x5f0bc1=>{const _0xa5236e=await gifted['giftedtwitter'](_0x5f0bc1);return CreatorOriginal(_0xa5236e);},InstagramDownloader=async _0x488285=>{const _0x20707f=_0x493a,_0x1d60d1=await gifted[_0x20707f(0xd0)](_0x488285);return CreatorOriginal(_0x1d60d1);},XnxxDownloader=async _0x4c587a=>{const _0x164d23=_0x493a;try{if(!_0x4c587a)throw new Error('Invalid\x20Xnxx\x20Query.\x20Please\x20provide\x20a\x20valid\x20Xnxx\x20query.');const _0x1386bc=await xnxx[_0x164d23(0xcc)](_0x4c587a);if(!_0x1386bc)throw new Error(_0x164d23(0xcf));return _0x1386bc;}catch(_0x56c370){console[_0x164d23(0xba)](_0x164d23(0xd9),_0x56c370[_0x164d23(0xd3)]);throw new Error(_0x164d23(0xbd)+_0x56c370[_0x164d23(0xd3)]);}},TiktokDownloader=async _0x480e74=>{const _0x4e782c=_0x493a;try{if(!_0x480e74||!_0x480e74[_0x4e782c(0xad)]('tiktok.com'))throw new Error(_0x4e782c(0xb9));const _0x170e06=config[_0x4e782c(0xb4)]+'/api/?url='+encodeURIComponent(_0x480e74),_0x32b46c=await axios[_0x4e782c(0xbe)](_0x170e06,{'headers':{'Content-Type':_0x4e782c(0xb0)}});if(!_0x32b46c[_0x4e782c(0xc1)])throw new Error(_0x4e782c(0xc5));return _0x32b46c[_0x4e782c(0xc1)];}catch(_0x2c0e04){console[_0x4e782c(0xba)](_0x4e782c(0xd9),_0x2c0e04[_0x4e782c(0xd3)]);throw new Error(_0x4e782c(0xbd)+_0x2c0e04[_0x4e782c(0xd3)]);}},Copilot2Trip=async _0x56283b=>{const _0x2a3a09=_0x493a;try{const _0xc9b5da=ParametersUrl(_0x2a3a09(0xbc)),_0x3537e9=await axios[_0x2a3a09(0xbe)](_0xc9b5da,{'params':{'q':_0x56283b}});return AuthorOriginal(_0x3537e9);}catch(_0x355fa4){return console[_0x2a3a09(0xba)](_0x2a3a09(0xd9),_0x355fa4[_0x2a3a09(0xd3)]),null;}},GempaBumi=async()=>{const _0x2438a7=_0x493a;try{const _0x4ecc43=ParametersUrl('information/gempa-warning'),_0x1769a1=await axios['get'](_0x4ecc43);return AuthorOriginal(_0x1769a1);}catch(_0x4110ed){return console[_0x2438a7(0xba)](_0x2438a7(0xd9),_0x4110ed['message']),null;}},OpenaiRes=async _0x3eb671=>{const _0x514947=_0x493a;try{const _0xe527d4='aHR0cHM6Ly9vcGVuYWktZ3B0LnJlbWl4cHJvamVjdC5vcmcv';let _0x59f10e;try{_0x59f10e=atob(_0xe527d4);}catch(_0x4a7034){console['error'](_0x514947(0xa7)+_0x4a7034);}const _0x51ad8b={'Accept':_0x514947(0xb0),'Content-Type':_0x514947(0xb0),'Accept-Language':'en','Connection':_0x514947(0xae),'Origin':_0x514947(0xd1),'Referer':_0x514947(0xa6),'Sec-Fetch-Dest':_0x514947(0xd4),'Sec-Fetch-Mode':_0x514947(0xa3),'Sec-Fetch-Site':_0x514947(0xb5),'User-Agent':'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36\x20(KHTML,\x20like\x20Gecko)\x20Chrome/64.0.3282.140\x20Safari/537.36\x20Edge/17.17134'},_0x2402fb=await axios[_0x514947(0xdb)](_0x59f10e,GptModelOld(_0x3eb671),{'headers':_0x51ad8b,'timeout':0xc350});if(_0x2402fb[_0x514947(0xb1)]===0xc8)return _0x2402fb[_0x514947(0xc1)][_0x514947(0xc2)][0x0]['message'][_0x514947(0xcd)]+_0x514947(0x96);}catch(_0xe4a2c2){return console[_0x514947(0xba)]('Error:',_0xe4a2c2[_0x514947(0xd3)]),null;}},RendyDevX=async()=>{const _0x54014e=_0x493a;try{const _0x4fc50d=_0x54014e(0xa8),_0x115667=await axios[_0x54014e(0xbe)](_0x4fc50d);return _0x115667[_0x54014e(0xc1)][_0x54014e(0xc0)][_0x54014e(0x9a)];}catch(_0x81c69c){return console[_0x54014e(0xba)](_0x81c69c),null;}};async function tebakgambar(){const _0x508c05=_0x493a;try{const _0x1a0e0b=await RendyDevX(),_0x2385ec=await axios[_0x508c05(0xbe)](_0x1a0e0b),_0x2e3851=cheerio[_0x508c05(0xb2)](_0x2385ec['data']),_0x38f793=Math[_0x508c05(0xbb)](Math['random']()*(0xb14-0x2+0x1))+0x2,_0x7dd796=_0x2e3851(_0x508c05(0xb8)+_0x38f793+_0x508c05(0xd2));if(_0x7dd796[_0x508c05(0xca)]>0x0){const _0x31891d=_0x508c05(0xa5)+_0x7dd796[_0x508c05(0xd5)]('img')[_0x508c05(0xbf)](_0x508c05(0xa1)),_0x14f3e2=_0x7dd796[_0x508c05(0xd5)]('img')['attr'](_0x508c05(0xb6)),_0x30620a={'message':_0x508c05(0xa4),'image':_0x31891d,'jawaban':_0x14f3e2};return _0x30620a;}else throw new Error(_0x508c05(0x9d));}catch(_0x4e68e0){return console[_0x508c05(0xba)](_0x4e68e0),null;}}function _0x493a(_0x247556,_0x390aa6){const _0x1fe62d=_0x1fe6();return _0x493a=function(_0x493a31,_0x4b3e08){_0x493a31=_0x493a31-0x95;let _0x408c93=_0x1fe62d[_0x493a31];return _0x408c93;},_0x493a(_0x247556,_0x390aa6);}async function AnimeHentai(){const _0x4e90a4=_0x493a;try{const _0x2720b4=Math[_0x4e90a4(0xbb)](Math[_0x4e90a4(0xc3)]()*0x481)+0x1,_0x23f8a9=_0x4e90a4(0xac)+_0x2720b4,_0x4ec889=await axios[_0x4e90a4(0xbe)](_0x23f8a9),_0x3662dc=cheerio['load'](_0x4ec889[_0x4e90a4(0xc1)]),_0xe8dda0=[],_0x412281=_0x3662dc(_0x4e90a4(0xaa));_0x412281['each']((_0x398d3f,_0x373291)=>{const _0x4c38f9=_0x4e90a4,_0x188845=_0x3662dc(_0x373291)[_0x4c38f9(0xd5)](_0x4c38f9(0x9f))[_0x4c38f9(0xa9)](),_0x4ae2a3=_0x3662dc(_0x373291)['find']('header\x20>\x20h2\x20>\x20a')[_0x4c38f9(0xbf)](_0x4c38f9(0xda)),_0x5bae43=_0x3662dc(_0x373291)[_0x4c38f9(0xd5)](_0x4c38f9(0x9c))[_0x4c38f9(0xa9)]()['replace']('in\x20',''),_0x4f4183=_0x3662dc(_0x373291)[_0x4c38f9(0xd5)](_0x4c38f9(0xa2))[_0x4c38f9(0xa9)](),_0x6cb7f6=_0x3662dc(_0x373291)['find'](_0x4c38f9(0xdc))[_0x4c38f9(0xa9)](),_0x8f2e0e=_0x3662dc(_0x373291)[_0x4c38f9(0xd5)](_0x4c38f9(0xdd))[_0x4c38f9(0xbf)](_0x4c38f9(0xc4))||_0x4c38f9(0xaf),_0x3798cc=_0x3662dc(_0x373291)[_0x4c38f9(0xd5)]('source')[_0x4c38f9(0xbf)](_0x4c38f9(0xd7))||_0x3662dc(_0x373291)[_0x4c38f9(0xd5)](_0x4c38f9(0x9e))['attr']('data-src'),_0x2ba5bf=_0x3662dc(_0x373291)[_0x4c38f9(0xd5)](_0x4c38f9(0xc8))[_0x4c38f9(0xbf)](_0x4c38f9(0xda))||'';_0xe8dda0[_0x4c38f9(0xb7)]({'title':_0x188845,'link':_0x4ae2a3,'category':_0x5bae43,'share_count':_0x4f4183,'views_count':_0x6cb7f6,'type':_0x8f2e0e,'video_1':_0x3798cc,'video_2':_0x2ba5bf});});if(_0xe8dda0['length']===0x0)return{'developer':_0x4e90a4(0xb3),'error':_0x4e90a4(0x98)};return _0xe8dda0;}catch(_0x9944f5){return console[_0x4e90a4(0xba)](_0x4e90a4(0xd9),_0x9944f5),null;}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  export {
15
  OpenaiRes,