Snippets

Jason Matusiak HolidayHotline

Created by Jason Matusiak
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
//North Pole Hotline 
//some good Arduino example code: http://www.hauntforum.com/showpost.php?p=849581&postcount=24
#include <SoftwareSerial.h>

const int SET_VOLUME = 0x15;

//pins D0 and D1 are reserved for hard serial RX/TX (respectively)

const int ringer = 2;

const int R1 = 4; 
const int R2 = 5;   
const int R3 = 6;   
const int R4 = 7;

const int C1 = 8; 
const int C2 = 9;   
const int C3 = 10;   
const int C4 = 11;

const int LED = 13;

const int BUSY = 16; //16, (A2) busy signal from MP3 player when playing a track

const int dialTone = 0x01;
const int busyTone = 0x25;

SoftwareSerial mp3Serial = SoftwareSerial (A0, A1); // binds a serial port instance to pins 14 & 15 for RX/TX respectively [A0 and A1]


void setup() {
    pinMode(ringer, INPUT_PULLUP); // sets the digital pin 2 as input
    pinMode(BUSY, INPUT_PULLUP); // sets the digital pin 2 as input
    
    pinMode(R1, OUTPUT);      // sets the digital pin 4 as an output
    digitalWrite(R1, HIGH);
    pinMode(R2, OUTPUT);      // sets the digital pin 5 as an output
    digitalWrite(R2, HIGH);
    pinMode(R3, OUTPUT);      // sets the digital pin 6 as an output
    digitalWrite(R3, HIGH);
    pinMode(R4, OUTPUT);      // sets the digital pin 7 as an output
    digitalWrite(R4, HIGH);
    
    pinMode(LED, OUTPUT);
    digitalWrite(LED, LOW);
    
    pinMode(C1, INPUT_PULLUP);      // sets the digital pin 8 as input
    pinMode(C2, INPUT_PULLUP);      // sets the digital pin 9 as input
    pinMode(C3, INPUT_PULLUP);      // sets the digital pin 10 as input
    pinMode(C4, INPUT_PULLUP);      // sets the digital pin 11 as input
    
    //Setting up the software serial port
    pinMode(A0, INPUT);
    pinMode(A1, OUTPUT);
    
    //setup serial port of 9600baud
    Serial.begin(9600, SERIAL_8N1);     // opens serial port, sets data rate to 9600 bps with 8-N-1
    
    mp3Serial.begin(9600);
    
    //delay( 3000 ); // power-up safety delay
    Serial.write("Starting app\n");
    
    setup_mp3Player();
}


int pollKeypad()
{
    int keypadPressed = 0xFF;

    for(int i = 0; i < 4; i++)
    {
        digitalWrite(R1, HIGH);
        digitalWrite(R2, HIGH);
        digitalWrite(R3, HIGH);
        digitalWrite(R4, HIGH);
    
        if(i == 0)
        {
            digitalWrite(R1, LOW);
          
            if (!digitalRead(C1))
            {
                keypadPressed = 0x11;
                Serial.write("1\n");
                delay(300);
                while(!digitalRead(C1)){}
            }
            else if (!digitalRead(C2))
            {
                keypadPressed = 0x12;
                Serial.write("2\n");
                delay(300);
                while(!digitalRead(C2)){}
            }
            else if (!digitalRead(C3))
            {
                keypadPressed = 0x13;
                Serial.write("3\n");
                delay(300);
                while(!digitalRead(C3)){}
            }
        }
        else if (i == 1)
        {
            digitalWrite(R2, LOW);
          
            if (!digitalRead(C1))
            {
                keypadPressed = 0x14;
                Serial.write("4\n");
                delay(300);
                while(!digitalRead(C1)){}
            }
            else if (!digitalRead(C2))
            {
                keypadPressed = 0x15;
                Serial.write("5\n");
                delay(300);
                while(!digitalRead(C2)){}
            }
            else if (!digitalRead(C3))
            {
                keypadPressed = 0x16;
                Serial.write("6\n");
                delay(300);
                while(!digitalRead(C3)){}
            }
        }
        else if (i == 2)
        {
            digitalWrite(R3, LOW);
          
            if (!digitalRead(C1))
            {
                keypadPressed = 0x17;
                Serial.write("7\n");
                delay(300);
                while(!digitalRead(C1)){}
            }
            else if (!digitalRead(C2))
            {
                keypadPressed = 0x18;
                Serial.write("8\n");
                delay(300);
                while(!digitalRead(C2)){}
            }
            else if (!digitalRead(C3))
            {
                keypadPressed = 0x19;
                Serial.write("9\n");
                delay(300);
                while(!digitalRead(C3)){}
            }
        }
        else if (i == 3)
        {
            digitalWrite(R4, LOW);
          
            if (!digitalRead(C1))
            {
                keypadPressed = 0x20;
                Serial.write("*\n");
                delay(300);
                while(!digitalRead(C1)){}
            }
            else if (!digitalRead(C2))
            {
                keypadPressed = 0x10;
                Serial.write("0\n");
                delay(300);
                while(!digitalRead(C2)){}
            }
            else if (!digitalRead(C3))
            {
                keypadPressed = 0x21;
                Serial.write("#\n");
                delay(300);
                while(!digitalRead(C3)){}
            }
            else if (!digitalRead(C4))
            {
                keypadPressed = 0x22;
                Serial.write("RD\n");
                delay(300);
                while(!digitalRead(C4)){}
            }
        }
   
        digitalWrite(R1, HIGH);
        digitalWrite(R2, HIGH);
        digitalWrite(R3, HIGH);
        digitalWrite(R4, HIGH);
      
        if(keypadPressed != 0xFF)
        {
            delay(45);
            break;
        }
    }
    return keypadPressed;
}


void loop()
{
      int buttonPressed = 0xFF;
      
      //while the phone is hung up
      while(!digitalRead(ringer))
      {
            delay(45);
      }
  
      //At this point, someone has picked up the phone
      digitalWrite(LED, HIGH);
      playDialTone();
  
    //while the phone is off the hook
    while(digitalRead(ringer))
    {
        buttonPressed = pollKeypad();
        if(buttonPressed != 0xFF)
        {
            stopAudio();
            playAudioClip(buttonPressed);
      
            //while an audio track is playing AND the ringer is off the hook
            while(digitalRead(BUSY) && digitalRead(ringer))
            {
                delay(45);
            }
      
            //if the ringer is hung up but we are still playing audio hang
            //it up else, it means the audio is done, so play the busy tone
            if(digitalRead(BUSY))
            {
                stopAudio();
            }
            else
            {
                playBusyTone();
            }
            //while the ringer is off the hook, just wait
            while(digitalRead(ringer))
            {
                delay(45);
            }
            //the ringer has been hung up
            stopAudio();
        }
    }
    //just in case, stop the audio
    stopAudio();
    digitalWrite(LED, LOW);
}


void setup_mp3Player()
{
    int volumeLevel = 0;
    int singleMode = 0;
    
    //Set index to index 1
    mp3Serial.write(0xF1);
    delay(100);
    while(mp3Serial.available() == 0){}
    Serial.print("return code from 0xF1 of ");
    Serial.println(mp3Serial.read());
    
    //toggle MP3 player until option to repeat single track is setup (as opposed to all tracks)
    mp3Serial.write(0xE0);
    delay(100);
    while(mp3Serial.available() == 0){}
    singleMode = mp3Serial.read();  
    if(singleMode != 0x00)
    {
        mp3Serial.write(0xE0);
        delay(100);
        while(mp3Serial.available() == 0){}
        singleMode = mp3Serial.read();
    }
  
    // Queries number of tracks on SD card and returns number, which is printed to serial monitor
    mp3Serial.write(0xE3); 
    delay(100);
    while(mp3Serial.available() == 0){}
    Serial.print("Total of ");
    Serial.print(mp3Serial.read());
    Serial.println(" tracks found on SD Card");
    
    // Send Vol+ command to get current volume return message.
    mp3Serial.write(0xE9); 
    delay(100);
    while(mp3Serial.available() == 0){}
  
    volumeLevel = mp3Serial.read();
    Serial.println("The volume started at: ");
    Serial.println(volumeLevel);
    
    // NOTE: the hex value is automatically converted to ASCII by serial, so 0x1E will read as "30"
    if(volumeLevel == SET_VOLUME) 
    { 
        // if the return message is the SET_VOLUME, it's at the perferred value
        Serial.println("Preferred volume set.");
    } 
    else if(volumeLevel < SET_VOLUME)
    {
        // If the volume is lower than preferred, start the volume increase loop
        for(int v = volumeLevel; v <= SET_VOLUME; v = v + 1) 
        {
            mp3Serial.write(0xE9);
            delay(100);
            while(mp3Serial.available() == 0){} 
            volumeLevel = mp3Serial.read();
        }
        Serial.println("Volume adjusted up to preferred level.");
    }
    else
    {
        // If the volume is higher than preferred, start the volume decrease loop
        for(int v = volumeLevel; v >= SET_VOLUME; v = v - 1) 
        {
            mp3Serial.write(0xE8);
            delay(100);
            while(mp3Serial.available() == 0){} 
            mp3Serial.read();
        }
        Serial.println("Volume adjusted down to preferred level.");
    }
}


// This function stops all audio
void stopAudio() 
{
    //Send stop command
    mp3Serial.write(0xFA);
    delay(100); 
    Serial.println("Stopping audio");
    while(mp3Serial.available() == 0){}
}


// This function plays the dial tone
void playDialTone() 
{
    //Set MP3 to continue to play when track is done
    mp3Serial.write(0xE2);
    delay(100); 
    while(mp3Serial.available() == 0){}
    if(mp3Serial.read() == 0x00)
    {
        mp3Serial.write(0xE2);
        delay(100);
        while(mp3Serial.available() == 0){}
        mp3Serial.read();
    }  

    //Send command to play dial tone track
    mp3Serial.write(dialTone);
    delay(100);
    while(mp3Serial.available() == 0){}
    mp3Serial.read();
    Serial.print("Now playing dial tone track ");
    Serial.println(dialTone);
}


// This function plays the busy signal
void playBusyTone() 
{
    //Set MP3 to continue to play when track is done
    mp3Serial.write(0xE2);
    delay(100);
    while(mp3Serial.available() == 0){}
    if(mp3Serial.read() == 0x00)
    {
        mp3Serial.write(0xE2);
        delay(100);
        while(mp3Serial.available() == 0){}
        mp3Serial.read();
    }  

    //Send command to play busy track
    mp3Serial.write(busyTone);
    delay(100);
    while(mp3Serial.available() == 0){}
    mp3Serial.read();
    Serial.print("Now playing busy tone track ");
    Serial.println(busyTone);
}


//play audio clip
void playAudioClip(int fileNum) 
{
    int incomingSerial;

    //Set MP3 to not play on repeat mode
    mp3Serial.write(0xE2);
    delay(100);
    while(mp3Serial.available() == 0){delay(10);}

    incomingSerial = mp3Serial.read();
    while(incomingSerial != 0x00)
    {
        mp3Serial.write(0xE2);
        delay(100);
        while(mp3Serial.available() == 0){delay(10);}

        incomingSerial = mp3Serial.read();
    }  
    
    //Send command to play the track
    mp3Serial.write(fileNum);
    delay(100);
    while(mp3Serial.available() == 0){}
    mp3Serial.read();
    Serial.print("Now playing track ");
    Serial.println(fileNum);
}

Comments (2)

  1. uzanti hesap

    O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O. O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O. O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O .O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O. O.O.O.O.O.O.O.O.O rssfeeds.usatoday.com/~/t/0/0/mmajunkie/~https:/agarprivateservers.org/www.researchgate.net/deref/http://agarprivateservers.orghobby.idnes.cz/peruanske-palive-papricky-rocoto-dlz-/redir.aspx?url=http%3A%2F%2Fagarprivateservers.orgoptimize.viglink.com/page/pmv?url=https://agarprivateservers.orgtrello.com/add-card?source=mode=popup&name=click%2Bhere&desc=http%3A%2F%2Fagarprivateservers.orgsound2sense.archiveweb.mus.cam.ac.uk/?URL=agarprivateservers.orgfeeds.businessinsider.com.au/~/t/0/0/businessinsideraustralia/~https:/agarprivateservers.org/www.astro.wisc.edu/?URL=https%3A%2F%2Fagarprivateservers.orgimages.google.com/url?sa=t&url=https%3A%2F%2Fagarprivateservers.orgm.odnoklassniki.ru/dk?st.cmd=outLinkWarning&st.rfn=https%3A%2F%2Fagarprivateservers.org%2Fwww.jobzone.ny.gov/views/jobzone/leaving_site.jsf?id=304&url=https%3A%2F%2Fagarprivateservers.orgtvtropes.org/pmwiki/no_outbounds.php?o=https%3A%2F%2Fagarprivateservers.org%2Frssfeeds.freep.com/~/t/0/_/freep/home/~/https:/agarprivateservers.org/community.acer.com/en/home/leaving/agarprivateservers.orgredirects.tradedoubler.com/utm/td_redirect.php?td_keep_old_utm_value=1&tduid=991a03343b6089cca9cbe799f011b89c&url=https%3A%2F%2Fagarprivateservers.orgfcaw.library.umass.edu/goto/https:/agarprivateservers.org/guru.sanook.com/?URL=https%3A%2F%2Fagarprivateservers.org%2Fblog.ss-blog.jp/_pages/mobile/step/index?u=https://agarprivateservers.orgold.post-gazette.com/pets/redir.asp?url=https%3A%2F%2Fagarprivateservers.org%2Faccounts.cancer.org/login?redirectURL=https://agarprivateservers.orgwww.fhwa.dot.gov/reauthorization/reauexit.cfm?link=https%3A%2F%2Fagarprivateservers.orgsitereport.netcraft.com/?URL=https%3A%2F%2Fagarprivateservers.org%2Fgo.onelink.me/v1xd?pid=Patch&c=Mobile%20Footer&af_web_dp=https%3A%2F%2Fagarprivateservers.org%2Fprofiles.newsmax.com/sso/signup.aspx?ReturnURL=https%3A%2F%2Fagarprivateservers.org%2Fdomain.opendns.com/agarprivateservers.orgapp.feedblitz.com/f/f.fbz?track=https%3A%2F%2Fagarprivateservers.orgjump.5ch.net/?agarprivateservers.orgdol.deliver.ifeng.com/c?z=ifeng&la=0&si=2&cg=1&c=1&ci=2&or=7549&l=28704&bg=28703&b=37275&u=https%3A%2F%2Fagarprivateservers.orgfeeds.gizmodo.com.au/~/t/0/0/gizmodoaustralia/~/https:/agarprivateservers.org/www.etis.ford.com/externalURL.do?url=https%3A%2F%2Fagarprivateservers.org%2Fid.telstra.com.au/register/crowdsupport?gotoURL=https%3A%2F%2Fagarprivateservers.org%2Ffeeds.hanselman.com/~/t/0/0/scotthanselman/~https:/agarprivateservers.org/bbs.pku.edu.cn/v2/jump-to.php?url=https%3A%2F%2Fagarprivateservers.org%2Fdaemon.indapass.hu/http/session_request?redirect_to=https%3A%2F%2Fagarprivateservers.org&partner_id=bloghuuk.advfn.com/ct.php?ct=OTk1OTg=&redir=https%3A%2F%2Fagarprivateservers.org%2Fimages-fames.b-cdn.net/spai/w_1920+q_lossy+ret_img/https:/agarprivateservers.org/rssfeeds.wfaa.com/~/t/0/0/wfaa/local/~https:/agarprivateservers.org/rssfeeds.khou.com/~/t/0/0/khou/sports/~https:/agarprivateservers.org/extras.seattlepi.com/redirect.php?url=https%3A%2F%2Fagarprivateservers.org%2Fmember.yam.com/EDM_CLICK.aspx?EDMID=7948&EMAIL=qqbuyme.cosmo925@blogger.com&CID=103443&EDMURL=https%3A%2F%2Fagarprivateservers.org%2Fgleam.io/zyxKd-INoWr2EMzH?l=http%3A%2F%2Fagarprivateservers.orgwww.justjaredjr.com/flagcomment.php?cl=10842755&el=https%3A%2F%2Fagarprivateservers.orgwww.edaily.co.kr/_template/popup/t_popup_click.asp?Mrseq=830&MrT=https%3A%2F%2Fagarprivateservers.org%2Fssl.cosme.net/cosme/asp/buy/buy0002.asp?rurl=https%3A%2F%2Fagarprivateservers.org%2Fwww.google.tn/url?sa=t&url=https%3A%2F%2Fagarprivateservers.orgrssfeeds.wkyc.com/~/t/0/0/wkyc/news/~https:/agarprivateservers.org/www2.ogs.state.ny.us/help/urlstatusgo.html?url=https://agarprivateservers.orgfeeds.kotaku.com.au/~/t/0/0/kotakuaustralia/~/https:/agarprivateservers.org/aquaculture.seagrant.uaf.edu/click-thru.html?id=151&url=https%3A%2F%2Fagarprivateservers.org%2Fscanmail.trustwave.com/?c=8510&d=4qa02KqxZJadHuhFUvy7ZCUfI_2L10yeH0EeBz7FGQ&u=https%3A%2F%2Fagarprivateservers.orgrssfeeds.13newsnow.com/~/t/0/0/wvec/local/~https:/agarprivateservers.org/scribd.page.link/?amv=9.1.0&apn=com.scribd.app.reader0&ibi=com.scribd.iscribd&imv=9.1.1&isi=542557212&link=https%3A%2F%2Fagarprivateservers.org%2Fforums.thesims.com/en_uS/home/leaving/agarprivateservers.orgposts.google.com/url?sa=t&url=https%3A%2F%2Fagarprivateservers.org%2Fxat.com/web_gear/chat/linkvalidator.php?link=https%3A%2F%2Fagarprivateservers.orgadvisor.wmtransfer.com/SiteDetails.aspx?url=agarprivateservers.orgwww.nordbayern.de/logoutservlet?logout_referer=https%3A%2F%2Fagarprivateservers.org%2Fwww.bad.org.uk/for-the-public/patient-information-leaflets/androgenetic-alopecia/?showmore=1&returnlink=https%3A%2F%2Fagarprivateservers.org%2Frssfeeds.kens5.com/~/t/0/0/business/~https:/agarprivateservers.org/%2Fwww.winnipegfreepress.com/s?action=doLogout&rurl=http%3A%2F%2Fagarprivateservers.orgfjb.kaskus.co.id/redirect?url=https%3A%2F%2Fagarprivateservers.org%2Fpantip.com/l/https:%E0%B8%AF%E0%B9%91%E0%B8%AF%E0%B8%AF%E0%B9%91%E0%B8%AFagarprivateservers.org%2F/3918rssfeeds.wbir.com/~/t/0/0/wbir/local_news/~https:/agarprivateservers.org/innuityweb.myregisteredsite.com/admin/membership_agreement.php?partnerID=3185&domain=agarprivateservers.orgfeeds.lifehacker.com.au/~/t/0/0/lifehackeraustralia/~/https:/agarprivateservers.org/www.london.umb.edu/?URL=https%3A%2F%2Fagarprivateservers.org%2Fwww.fito.nnov.ru/go.php?url=https%3A%2F%2Fagarprivateservers.orgwww.vreddiehgdl.cucsh.udg.mx/sites/all/modules/pubdlcnt/pubdlcnt.php?file=https%3A%2F%2Fagarprivateservers.org%2F&nid=126passport-us.bignox.com/sso/logout?service=https%3A%2F%2Fagarprivateservers.org%2Fwww.talgov.com/Main/exit.aspx?url=https%3A%2F%2Fagarprivateservers.orgf5.glitch.me/proxy/https%3A%2F%2Fagarprivateservers.org%2Fsc.hkexnews.hk/TuniS/agarprivateservers.org/www.curseforge.com/linkout?remoteUrl=https%3A%2F%2Fagarprivateservers.org%2Fclient.paltalk.com/client/webapp/client/External.wmt?url=http%3A%2F%2Fagarprivateservers.orgtools.folha.com.br/print?url=https%3A%2F%2Fagarprivateservers.orges.catholic.net/ligas/ligasframe.phtml?liga=https%3A%2F%2Fagarprivateservers.org%2Fwww.interempresas.net/estadisticas/r.asp?idsector=129&e=221083&c=195&d=https%3A%2F%2Fagarprivateservers.org%2Fsinp.msu.ru/ru/ext_link?url=https%3A%2F%2Fagarprivateservers.org%2Frssfeeds.mycentraljersey.com/~/t/0/0/bridgewater/home/~https:/agarprivateservers.org/sherlock.scribblelive.com/r?u=agarprivateservers.orggeomorphology.irpi.cnr.it/map-services/android-guide/@@reset-optout?came_from=https%3A%2F%2Fagarprivateservers.org%2Fceskapozice.lidovky.cz/redir.aspx?url=http%3A%2F%2Fagarprivateservers.orgtrack.effiliation.com/servlet/effi.redir?id_compteur=22157233&effi_id=leparfroid244&url=https%3A%2F%2Fagarprivateservers.org%2Fwww.spiritfanfiction.com/link?l=https%3A%2F%2Fagarprivateservers.orgfeeds.osce.org/~/t/0/0/oscelatestnews/~https:/agarprivateservers.org/%2Fwww.omnigroup.com/omnifocus/?URL=agarprivateservers.orgreelgood.com/https:/agarprivateservers.org/www.triathlon.org/?URL=agarprivateservers.org/stmassey.f2s.com/?URL=https%3A%2F%2Fagarprivateservers.org%2Fmisc.symbaloo.com/redirect.php?network=tradetracker&campaignID=480&url=https%3A%2F%2Fagarprivateservers.org%2Frd.alice.it/r3/redir.asp?URL=https%3A%2F%2Fagarprivateservers.org%2Farctic.nyheter24.se/rdb/nyheter24_eed6ad4b451f2fb8193922f832bc91ed/5?url=https%3A%2F%2Fagarprivateservers.org%2Fams.ceu.edu/optimal/optimal.php?url=https%3A%2F%2Fagarprivateservers.org%2Fwww.meetme.com/apps/redirect/?url=agarprivateservers.org/clients1.google.tk/url?q=https%3A%2F%2Fagarprivateservers.orgwww.aaronsw.com/2002/display.cgi?t=%3Ca+href=https%3A%2F%2Fagarprivateservers.orgwww.kichink.com/home/issafari?uri=https%3A%2F%2Fagarprivateservers.org%2Flaw.spbu.ru/aboutfaculty/teachers/teacherdetails/a7fb1dbb-e9f3-4fe9-91e9-d77a53b8312c.aspx?returnurl=https%3A%2F%2Fagarprivateservers.orgenseignants.flammarion.com/Banners_Click.cfm?ID=86&URL=agarprivateservers.org/odmp.org/link?url=https%3A%2F%2Fagarprivateservers.org%2Fwww.swrve.com/?URL=agarprivateservers.orgsc.hkex.com.hk/TuniS/agarprivateservers.org/redir.speedbit.com/redir.asp?id=8030&urldirect=https%3A%2F%2Fagarprivateservers.orgmitsui-shopping-park.com/lalaport/iwata/redirect.html?url=https%3A%2F%2Fagarprivateservers.org%2Fmarketplace.salisburypost.com/AdHunter/salisburypost/Home/EmailFriend?url=https%3A%2F%2Fagarprivateservers.org%2Fwww.popcouncil.org/scripts/leaving.asp?URL=http%3A%2F%2Fagarprivateservers.orgnou-rau.uem.br/nou-rau/zeus/auth.php?back=https%3A%2F%2Fagarprivateservers.org%2F&go=x&code=x&unit=xredirect.camfrog.com/redirect/?url=https%3A%2F%2Fagarprivateservers.org%2Fdavidbyrne.com/?URL=agarprivateservers.orgfeeds.ligonier.org/~/t/0/0/ligonierministriesblog/~/https:/agarprivateservers.org/feeds.gty.org/~/t/0/0/gtyblog/~/https:/agarprivateservers.org/foro.infojardin.com/proxy.php?link=https%3A%2F%2Fagarprivateservers.orgwww.ppa.com/?URL=agarprivateservers.orgimaginingourselves.globalfundforwomen.org/pb/External.aspx?url=https%3A%2F%2Fagarprivateservers.org%2Fshorefire.com/?URL=agarprivateservers.orgtimberlinelodge.com/?URL=agarprivateservers.orgwww.earth-policy.org/?URL=agarprivateservers.org/chtbl.com/track/118167/agarprivateservers.org/wfc2.wiredforchange.com/dia/track.jsp?v=2&c=hdorrh%2BHcDlQ%2BzUEnZU5qlfKZ1Cl53X6&url=https%3A%2F%2Fagarprivateservers.orgwww.cheapassgamer.com/redirect.php?url=https%3A%2F%2Fagarprivateservers.orgregister.scotland.org/Subscribe/WidgetSignup?url=http%3A%2F%2Fagarprivateservers.orginterpals.net/url_redirect.php?href=https%3A%2F%2Fagarprivateservers.org%2Fmyemma.com/?URL=agarprivateservers.orgintellectualventures.com/?URL=agarprivateservers.orgfooyoh.com/wcn.php?url=https%3A%2F%2Fagarprivateservers.org%2Flinabanner.jobstreet.com/redirect.asp?bid=23996&track=0&uid=&url=https%3A%2F%2Fagarprivateservers.org%2Fwww.usich.gov/?URL=agarprivateservers.orgwww.sunvalley.com/?URL=agarprivateservers.orgipb.ac.id/lang/s/ID?url=https%3A%2F%2Fagarprivateservers.org%2Fmoshtix.com.au/v2/ForceDesktopView?callingURL=https%3A%2F%2Fagarprivateservers.org%2Ftapestry.tapad.com/tapestry/1?ta_partner_id=950&ta_redirect=https%3A%2F%2Fagarprivateservers.org%2Fwww.chuys.com/?URL=agarprivateservers.organalytics.bluekai.com/site/16231?phint=event=click&phint=campaign=BRAND-TAB&phint=platform=search&done=agarprivateservers.orgshop.wki.it/shared/sso/sso.aspx?sso=G7OBN320AS3T48U0ANSN3KMN22&url=https%3A%2F%2Fagarprivateservers.org%2Fwww.kunstsammlung.de/?URL=agarprivateservers.orgwww.malcolmturnbull.com.au/?URL=agarprivateservers.orgsc.sie.gov.hk/TuniS/agarprivateservers.org/ref.webhostinghub.com/scripts/click.php?ref_id=nichol54&desturl=https%3A%2F%2Fagarprivateservers.org%2Fthewomens.org.au/?URL=agarprivateservers.orgwww.hockney.com/?URL=agarprivateservers.orgwww.ch7.com/?URL=agarprivateservers.orgwww.asma.org/impakredirect.aspx?url=agarprivateservers.org/www.venez.fr/error.fr.html?id=1&uri=https%3A%2F%2Fagarprivateservers.org%2Fwww.octranspo.com/en/about-us/confederation-line-1-website?URL=agarprivateservers.orglogin.mephi.ru/login?allow_anonymous=true&service=https%3A%2F%2Fagarprivateservers.org%2Fww4.cef.es/trk/r.emt?h=agarprivateservers.org/cientec.or.cr/ligas-externas/redir.phtml?link=agarprivateservers.org/fr.grepolis.com/start/redirect?url=https%3A%2F%2Fagarprivateservers.org%2Farchives.midweek.com/?URL=https%253A%252F%252Fagarprivateservers.org/www.ahewar.org/links/dform.asp?url=https%3A%2F%2Fagarprivateservers.org%2Flogin.aup.edu/cas/login?service=https%3A%2F%2Fagarprivateservers.org%2F/&gateway=truewww.sitesimilar.net/agarprivateservers.orgyumi.rgr.jp/puku-board/kboard.cgi?mode=res_html&owner=proscar&url=agarprivateservers.org/intranet.canadabusiness.ca/?URL=agarprivateservers.org/sc.devb.gov.hk/TuniS/agarprivateservers.org/anonym.to/?http%3A%2F%2Fagarprivateservers.org/www.ait.ie/?URL=agarprivateservers.orgnews.url.google.com/url?q=https%3A%2F%2Fagarprivateservers.orgm.ok.ru/dk?st.cmd=outLinkWarning&st.rfn=https%3A%2F%2Fagarprivateservers.org%2F  P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P  P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P  P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P  P P P P P P P  P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P  P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P  P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P

  2. Linda Melson

    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    metin2 pvp serverler
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna
    okey oyna

    Damar Romeyelle Hamlin, 24 Mart 1998 doğumlu, Amerikan futbolunda Buffalo Bills takımının güvenlik oyuncusudur. Üniversite kariyerini Pittsburgh Üniversitesi’nde oynayarak tamamladı ve 2021 NFL Draftı’nın altıncı turunda Bills tarafından seçildi. İşte Hamlin hakkında daha fazla bilgi:

    Hamlin, 2023 yılında NFLPA Alan Page Topluluk ÖdülüNFL Yılın Geri Dönen Oyuncusu Ödülü ve George Halas Ödülü gibi önemli ödüller kazandı. Ayrıca 2020’de All-ACC İkinci Takımı’na seçildi.

    Jeremy Lee Renner, 7 Ocak 1971 doğumlu, Amerikalı bir aktördür. Kariyerine Dahmer (2002) ve Neo Ned (2005) gibi bağımsız filmlerde rol alarak başladı. Daha sonra S.W.A.T. (2003) ve 28 Weeks Later (2007) gibi büyük yapımlarda yardımcı rollerde yer aldı. Renner, The Hurt Locker (2009) filmindeki asker performansıyla En İyi Erkek Oyuncu dalında Akademi Ödülü’ne aday gösterildi ve The Town (2010) filminde hırçın bir soyguncuyu canlandırarak En İyi Yardımcı Erkek Oyuncu dalında bir kez daha aday gösterildi.

    Ayrıca Renner, Marvel Sinematik Evreni’nde Clint Barton / Hawkeye karakterini canlandırdı. Bu rolü, The Avengers (2012) filminde ve Disney+ mini dizisi Hawkeye (2021)'da üstlendi. Ayrıca Mission: Impossible – Ghost Protocol (2011)The Bourne Legacy (2012)Hansel & Gretel: Witch Hunters (2013) ve Mission: Impossible – Rogue Nation (2015) gibi aksiyon filmlerinde ve American Hustle (2013)Arrival (2016) ve Wind River (2017) gibi dramalarda da yer aldı.

    Renner, 2021’den bu yana Paramount+ suç gerilimi dizisi Mayor of Kingstown’da başrol oynuyor. Modesto, California’da doğan Renner, İrlandalı ve Alman kökenlidir. Lise eğitimini Fred C. Beyer High School’da tamamladıktan sonra Modesto Junior College’da bilgisayar bilimi ve kriminoloji okudu. Ancak bir drama dersi alarak oyunculuğa yönelmeye karar verdi.

    Jeremy Renner, hem bağımsız yapımlarda hem de büyük stüdyo filmlerindeki başarılı kariyeriyle tanınan bir aktördür.

    Travis Michael Kelce, 5 Ekim 1989 doğumlu, Amerikan Ulusal Futbol Ligi (NFL) takımlarından Kansas City Chiefs’te oynayan bir Amerikan futbolu tight end’idir. 2013 NFL Draftı’nın üçüncü turunda Chiefs tarafından seçildi ve daha sonra takımıyla Super Bowl LIVLVII ve LVIII’i kazandı.

    Kelce, Cincinnati Bearcats üniversitesinde kolej futbolu oynadı. Kariyeri boyunca dokuz kez Pro Bowl seçildi ve dört kez birinci takım ve üç kez ikinci takım All-Pro seçildi. Aynı zamanda NFL tarihinde bir tight end olarak en fazla ve ardışık olarak yedi sezon boyunca 1.000 alım yapan oyuncu unvanını elinde bulunduruyor. 2020’de sadece 15 maçta oynamasına rağmen tek sezon içinde bir tight end olarak en fazla alım yapan oyuncu rekorunu kırdı ve 1.416 alım yaptı.

    2022 sezonunda Kelce, NFL tarihinde 10.000 alım yapan beşinci tight end oldu ve bu kilometre taşını NFL tarihinde en hızlı şekilde geçen tight end olarak kaydetti. Ayrıca NFL 2010’ların On Yıl Takımı’na seçildi. Dış saha etkinliklerinin ötesinde, Kelce, gerçeklik ve senaryolu televizyon programlarında ve reklamlarda da yer aldı. Ayrıca kardeşi Jason ile birlikte popüler kültürden futbola kadar birçok konuyu ele alan “New Heights” adlı bir podcast sunuyor.

    Travis Kelce, muhteşem atletizmi ve bölge kapsamını okuma yeteneği ile tanınan bir tight end olarak NFL tarihindeki en büyük oyunculardan biri olarak kabul ediliyor.

    Tucker Swanson McNear Carlson, 16 Mayıs 1969 doğumlu, Amerikalı bir muhafazakâr siyasi yorumcu ve yazardır. 2016’dan 2023’e kadar Fox News’de gecenin siyasi tartışma programı Tucker Carlson Tonight’ı sunmuştu. Fox News ile olan sözleşmesi sona erdikten sonra Tucker on X adlı bir programı sunmaktadır.

    Carlson, eski ABD Başkanı Donald Trump’ın bir savunucusu olarak bilinir ve “muhtemelen Trumpizmin en tanınmış taraftarı” olarak tanımlanmıştır. Ayrıca “sağ medyanın en etkili sesi” olarak kabul edilir. Medya kariyerine 1990’larda başlayan CarlsonThe Weekly Standard ve diğer yayınlar için yazdı. 2000-2005 yılları arasında CNN yorumcusu ve 2001-2005 yılları arasında ağın prime-time haber tartışma programı Crossfire’ın sunucusu olarak görev yaptı. 2005-2008 yılları arasında MSNBC’de gecenin programı Tucker’ı sundu. 2009’da Fox News için politik analist oldu ve kendi programını başlattı.

    Carlson, sağcı haber ve görüş web sitesi The Daily Caller’ın kurucu ortağı ve ilk baş editörü olarak da bilinir. Üç kitap yazdı: Politicians, Partisans, and Parasites (2003)Ship of Fools (2018) ve The Long Slide (2021). Beyaz şikayet politikalarının önde gelen seslerinden biri olarak tanınan Carlson, aşırı sağ fikirleri genel politika ve söyleme taşıma konusunda bilinir. Demografik değişim, COVID-19, 6 Ocak Amerika Birleşik Devletleri Kongre Baskını ve Ukrayna biyosilahları gibi konularda komplo teorilerini destekledi ve bu konularda yanıltıcı ifadelerde bulundu.

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.