Tuesday, March 26, 2019

FreeBSD Desktop

Introduction

This weekend I build myself a FreeBSD desktop. Notably, it runs Chrome (or rather, Chromium) flawlessly and supports Flash video (HD, full screen, full audio, no stuttering). Furthermore, it turns out KDE 4 is a beautiful desktop environment which I really enjoy using. I totally didn't expect this to turn out as well as it did.

Motivation

I originally had a coding project in mind for this weekend. However, when I sat down on Saturday to begin work, I was immediately confronted by an annoying fact: I hate coding on Mac. This is mostly for little reasons: the home and end keys uselessly scroll to the top or bottom of the document rather than move to the beginning or end of the line; ctrl+left/right does what home and end are supposed to do, rather than skipping forward or back by one word; pgup/pgdn move the view but not the cursor; GUI hotkeys all use "command" instead of "control" but terminal apps still revolve around "control"; etc. Some of these things can be partially mitigated by configuration, but not completely -- the command/control inconsistency is a stubborn one that isn't fixed by merely swapping the keys.

Of course, if I were a devoted Mac user I could get used to all this, but I do the vast majority of my coding at work, on Linux. Also, given Apple's anti-competitive behavior with the iPhone platform, I've begun to feel dirty using even their desktop products.

Meanwhile, playing with hardware last weekend was fun and I was itching to do it again. So, the natural thing to do was to go out and buy the pieces for a new machine.

Hardware

Requirements:

  • Must run FreeBSD.
  • Optimized for compiling code -- a task that is easily parallelized.
  • Must drive two 30-inch dual-link DVI monitors.
  • Avoid excessive power consumption.

Non-requirements:

  • Not a gaming machine.
  • Does not need top-of-the-line (read: exponentially expensive) hardware.
  • Does not need much hard drive space.

I ended up settling on:

  • Intel Core i7-930 processor: Four cores, hyperthreaded. Costs a quarter of the six-core i7 extreme.
  • Intel DX58SO "smackover" motherboard: If it's Intel's processor and Intel's chipset anyway, might as well let them make the board too. More likely to work right. There does not appear to be any nForce chipset for the i7 currently.
  • GeForce GTS 250: nVidia actually offers FreeBSD drivers based on the same codebase as their Windows drivers, including the whole OpenGL implementation. The 250 appeared to be the cheapest modern card that met the dual-DVI requirement.
  • 3x2GB RAM: The motherboard has three RAM channels so you want to put three sticks in it.
  • 128GB SSD: Yay for fast seeks and cool, quiet operation. Mass storage belongs on the network anyway.

Operating System

I chose FreeBSD for two reasons:

  1. When writing Evlan in 2004-ish, I learned that the FreeBSD kernel offered many features that I wanted which Linux sorely lacked. Things like kqueue and AIO are key to implementing a framework based on event-loop concurrency, as Evlan was. I believe Linux has since gained equivalent features, but I was left with an impression that FreeBSD was more thoughtfully designed whereas Linux was more ad hoc.
  2. I explicitly wanted a challenge. If I wanted something that "just worked", I'd be installing Windows. But I want a project where I learn something, and feel some sense of satisfaction in the end. FreeBSD is more difficult to set up, but in the process you learn how the system works, and once configured it can run essentially all the same software as Linux.

I installed FreeBSD 8.0 (UPDATE: 8.1 -- see end of post).

Details

Make no mistake: FreeBSD is not ready for the desktop. It works great once you get it set up, but it requires a lot of work to get there. As I said above, I explicitly wanted to tinker, because it is fun and educational. But anyone who wants a system that "just works" should look elsewhere.

Below are things I did, what worked, what didn't, and how I solved those problems. Hopefully someone will find these useful.

Installer

FreeBSD can be installed from a USB memory stick. They even provide a disk image for this exact purpose. Yay! I was able to write the disk image from within Mac OSX using the "dd" command as described in the FreeBSD release notes. The System Profiler utility reported that my USB drive was at /dev/disk1. However, before OSX would let me write, I had to unmount the flash drive -- NOT by "ejecting" it, which made it disappear entirely, but by using the "umount" command.

The FreeBSD installer is not very user-friendly. Being difficult to understand is bad, but being difficult to understand *and* not having any way to go back if you made a mistake is much worse. It turns out the standard installation mode has this property -- you usually cannot go back if you chose the wrong thing. However, the "custom install" mode -- which is labeled "for experts" -- actually presents you with a list of all the steps, from which you can choose which ones to perform. You should still go through them in order, but this allows you to repeat steps or go backwards when you make a mistake.

The installer initially could not detect my memory stick, even though it was installing from said stick. To fix this I had to choose "options" from the top-level menu, and then choose "rescan devices" (or something like that) from the options menu. This appeared to do nothing, but when I then went back and told the installer to install from USB again, it worked. (UPDATE: Fixed in FreeBSD 8.1.)

Installing packages

The memory stick installer only provides basic packages. Any interesting programs have to be installed separately, through the "packages" system (pre-compiled binaries downloaded from freebsd.org) or the "ports" system (scripts which automatically download original source code and compile/install it for you). I prefer packages whenever they are available, since they're faster. The "sysinstall" command can be run after installation in order to select additional packages to download, which is good for going through and getting the basics together. "pkg_add -r" can be used to install specific packages by name, on-demand (e.g. "pkg_add -r protobuf").

With this I installed X.org and kde4, among other things.

Graphics driver

The nVidia driver is not included with FreeBSD because it is not open source, and requires agreeing to a license. Whatever. There is a "port" for it, but it is out of date. I downloaded the most recent version from the nVidia web site and followed their installation instructions. This turned out to be surprisingly easy -- they actually provide a script which updates all the necessary config files for you! What a crazy idea.

For a long time, I could not convince Xorg to display at a reasonable resolution; it kept giving me something like 1280x800 (though I swear it looked more like 320x240; I must be spoiled). Turns out I needed this line in the "Screen" section of my xorg.conf:

Option "AllowDualLinkModes" "True" 

WTF? Why on Earth would an option like this not be on by default? (This was actually before I installed the nVidia driver; I was still using the open source "nv" driver. Not sure if it makes a difference.)

Graphical login

To enable graphical login I had to edit /etc/ttys and change the "ttyv8" line to:

ttyv8   "/usr/local/kde4/bin/kdm -nodaemon"     xterm   on secure 

This gave me a nice KDE-style login prompt on startup, but with a major problem: the keyboard layout was Qwerty, while I use Dvorak. Changing my keyboard layout in the KDE settings UI did not fix it, since those are user-specific and don't apply to the login prompt. Changing xorg.conf *also* did not fix it: under recent versions of FreeBSD, InputDevices in xorg.conf are ignored in favor of letting the USB daemons "automatically" figure it out. Of course, said daemons don't know what keyboard layout I use. The FreeBSD manual contained instructions on how to tell it (via /usr/local/etc/hal/fdi/policy/x11-input.fdi), but they didn't work -- the file seemed to have no effect. I banged my head against this for a long time. Nothing I did could even make Xorg print an error; it just ignored everything.

Eventually I figured out that kdm runs /usr/local/kde4/share/config/kdm/Xsetup before displaying the login dialog. So I inserted "setxkbmap dvorak" into it, which fixed the problem. It's a hack but gets the job done.

Audio

Enabling audio was as simple as loading the right sound driver. In my case:

kldload snd_hda 

However, this created four separate /dev/dsps. It turned out /dev/dsp0 referred to the line-out jacks on the back of my machine, while /dev/dsp1 referred to the front headphone jack (the other two were digital outputs). Most apps only play to /dev/dsp0; I'd prefer for this to go to all jacks.

It turns that the snd_hda driver supports rather complex configuration. Annoyingly, it requires you to know details that are different for every chipset. Although the driver knows these details, there is no simple tool to query it; you must reboot and pass -v as a kernel boot flag, then examine the results with dmesg. For me, the relevant output was:

hdac0: Processing audio FG cad=2 nid=1... hdac0: GPIO: 0xc0000002 NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=1 GPIUnsol=1 hdac0:  nid 17 0x01451140 as  4 seq  0     SPDIF-out  Jack jack  5 loc  1 color   Black misc 1 hdac0:  nid 18 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 hdac0:  nid 20 0x01014410 as  1 seq  0      Line-out  Jack jack  1 loc  1 color   Green misc 4 hdac0:  nid 21 0x02214420 as  2 seq  0    Headphones  Jack jack  1 loc  2 color   Green misc 4 hdac0:  nid 22 0x01016011 as  1 seq  1      Line-out  Jack jack  1 loc  1 color  Orange misc 0 hdac0:  nid 23 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 hdac0:  nid 24 0x02a19860 as  6 seq  0           Mic  Jack jack  1 loc  2 color    Pink misc 8 hdac0:  nid 25 0x01011012 as  1 seq  2      Line-out  Jack jack  1 loc  1 color   Black misc 0 hdac0:  nid 26 0x01813450 as  5 seq  0       Line-in  Jack jack  1 loc  1 color    Blue misc 4 hdac0:  nid 27 0x01a1985f as  5 seq 15           Mic  Jack jack  1 loc  1 color    Pink misc 8 hdac0:  nid 28 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 

This shows all the inputs and outputs the hardware has. The number after as indicates to which /dev/dsp the line will be connected (off by one). The seq indicates which speaker pair this is -- e.g. front, back, etc. Following the instructions, I added a line to /boot/device.hints:

hint.hdac.0.cad2.nid21.config="as=1 seq=15" 

This says that to move nid 21 (the headphone jack) to as 1 (the first output device, which includes the back line-out jacks). Setting seq to 15 has a special meaning for headphones: when connected, all other speakers on the same as should be muted.

So, not only does my headphone jack work, but as an added bonus, plugging in headphones automatically mutes the other speakers. I completely didn't expect FreeBSD to support that. I wish it would have been set up that way by default, though. But I guess it's neat that I could actually set up each jack (three in the back, one in the front) to be an independent stereo output, with different programs playing to each one. I could use that for my house, to power the speakers that I'll have around the place.

Chrome

Following the instructions on the FreeBSD Chromium wiki page, I built Chromium. There were a few difficulties:

  • Pulling the Git repo takes forever -- it's over 1GB! Next time, I'll try subversion.
  • The "Sync source" step fails with an error, but this error appears to occur after everything has been synced. It looks like it tries to start some of the build process, but fails because you haven't applied the FreeBSD patch yet.
  • The wiki fails to mention bison among the dependencies. pkg_add -r bison
  • The wiki lists ALSA as a dependency, but this package doesn't exist in FreeBSD 8.0. I had to grab the ALSA packages from a FreeBSD 8.1 release candidate instead. I got a warning about dependency version mismatches when I tried to pkg_add them, but it seems to have worked fine.

With all that done, Chromium built and ran flawlessly. It's just like using Chrome on any other system. I was expecting some stuff to be semi-functional, but so far I've found nothing. It's fast, too.

Flash

I totally didn't expect to be able to use Flash at all on FreeBSD. On my Linux machine at work, Flash animations of any sort seem to blow away the CPU, and video in particular stutters horribly with no audio.

It turns out that FreeBSD has a port which sets up the Flash plugin to run in the Linux emulation layer. Amazingly, the plugin can run on the Linux ABI even when the rest of the browser is running natively.

The port installer ran into trouble when the Linux Flash installer downloaded from Adobe did not match the expected size and hash. It looks like they had released a new version since the port was written -- the file was not versioned. I had to modify the port to tell it the new hash so it would accept the file (I didn't want to find the old version because it may have had security problems). This did not seem to create any problems.

The port installer had several dependencies on Linux stuff which was pulled from Fedora Core 10. It seemed to have a lot of trouble finding a working Fedora mirror for this stuff. I had to download several packages manually after finding them on Google. (Fortunately all the hashes matched.)

Once installed properly, Chrome picked up the plugin automatically. Amazingly, video played flawlessly, with sound, at HD resolution, full screen.

Fonts

On initially installing Chrome, I noticed that some fonts (especially the debug console) looked bad or even unreadable (due to under-sampling). Also, most unicode characters were replaced with boxes -- these turn out to be common even in English text. The solution was to install two ports:

  • webfonts: This pulls a bunch of Windows truetype fonts off some site that seems to be hosting them and has nothing to do with FreeBSD. Technically since these are part of Windows, you must have a Windows license to use them. I, of course, have zillions of Windows licenses. (UPDATE: A commenter notes that actually Microsoft allows gratis redistribution of these fonts on the condition that they be distributed only in the form of the original exe files. So you have to run a script that extracts the fonts from the exes. I was confused by the pkg-descr which mentioned that a Windows license was needed only for the Tahoma font.)
  • code2000: A "shareware" unicode font. Installing this got rid of the boxes. Apparently I'm supposed to pay someone $5 if I continue to use it, though.

Suspend/Resume

After digging around for awhile, I figured out that the proper way to make FreeBSD go to sleep is with the zzz command. So far I've tested this once, and it failed to wake up -- it partially awoke (responded to pings), but then spontaneously rebooted. Will have to play with this more.

iTunes replacement

I was sad to learn that Songbird -- a popular open source iTunes clone -- had discontinued Linux support (wat?), and certainly did not support FreeBSD. Doh.

However, Amarok looks like another decent alternative. I'm currently in the process of importing my iTunes library into it.

Update: So far Amarok failed at importing my iTunes library. The importer appeared to be O(n2) somehow -- it started out fine, but scanning each file became progressively slower, and after running overnight I came back to find Amarok using 100% of one CPU and making no progress. Grr. I'll have to investigate this next weekend. (UPDATE: A newer version of Amarok fixed this problem.)

Amarok's name and icon keep making me think of Three Wolf Moon.

Conclusion

Back in 1999 I used to be a huge Linux desktop fan, but in 2000 I gave it up in favor of Windows 2000 (which, unlike previous versions, did not crash daily). I had become tired of all the work it took to configure and maintain a Linux machine. Ten years later, configuring FreeBSD is about as much work as Linux was at the time. But, I think these days I'm more interested in this hands-on approach, and the ability to customize every aspect of my OS is appealing.

Meanwhile, I'm delighted to find that KDE seems to have kept up with the UI innovations made in Windows and Mac OSX over the last ten years. KDE can even do Mac-style Expose -- perhaps the thing I miss most whenever I work on a non-Mac system.

In general I've been pleasantly surprised by what FreeBSD/KDE has to offer as a desktop system. I had originally intended to use this machine for coding projects only, but now it looks like I may as well make it my primary desktop. Now that everything's configured, I don't see anything significant that I'll miss from OSX, and using a fully open source system feels so much nicer.

Dénouement

So, as it turns out, a mere two days after I installed FreeBSD 8.0, they released version 8.1. Argh. So this weekend I had to update, leading to a new series of issues...

Hard drive has a new address

Apparently the new kernel version decided that that it really preferred to put my hard drive at /dev/ad10 instead of /dev/ad6 like 8.0 did. As a result, when I first tried to boot the new kernel, it couldn't find the boot volume. Amazingly, though, instead of just crashing, it brought me to a prompt where it told me what hard drives and options it knew about, and asked me what to do. I was able to figure out what happened and tell it where to boot from. It then dumped me into a single-user shell from which I was able to edit /etc/fstab to fix the boot config, then reboot happily.

portupgrade

The update instructions say that you need to re-compile all of your software after updating the system, as the new base libraries may not be binary-compatible with the old. Ugh. It suggested running portupgrade -af for this purpose. I decided instead to run portupgrade -afP to tell it to use pre-compiled packages where available. I also updated my ports tree before starting so that I'd get the latest versions of everything.

Alas, one of these two changes (or maybe both?) seems to have been a deadly mistake. portupgrade took forever, and quite a few packages failed to install because of new dependencies that weren't present. KDE was completely broken after this. I tried to fix it by running portupgrade -RP kde4 to make it re-try installing kde4 and all its new dependencies. This again took ridiculously long, and repeatedly complained that it couldn't install required dependency Perl 5.10 because it conflicted with Perl 5.8. After manually forcing an uninstall of Perl 5.8 and install of Perl 5.10, I got to the point where I could start up KDE, but other things seemed broken. Chrome, in particular, was now SIGBUSing regularly, and continued to do so even after re-compiling it from scratch.

Screw it, start over

I downloaded the FreeBSD 8.1 memstick image, backed up a couple config files that I didn't want to rewrite, and set off to re-install from scratch. Sigh.

ZFS

Since I had to start over, I decided to do something I had forgotten on my first time through: use ZFS. This is a new, radically different filesystem which is, IMO, the way filesystems should be -- read the Wikipedia entry for details. Linux does not support ZFS because the ZFS code is under a GPL-incompatible license. FreeBSD, however, has no problem using ZFS. Hah!

There is still no support for ZFS in the FreeBSD installer. Lots of guides on the internet suggest a variety of ways to get FreeBSD on ZFS. I ended up using this one. The basic idea is to install a minimal FreeBSD system on a small partition, then create the ZFS volumes and migrate all data to them. The small original partition must stick around as the boot kernel cannot yet be read from a ZFS volume. But, once the kernel is up, it can map in the ZFS drives, so everything else can live there.

Eclipse

After setting up the rest of the system as before, I wanted to install Eclipse to do some coding. There were a couple bumps in the road.

First, you really need to install the eclipse-devel package. Plain old eclipse is way out-of-date.

Second, the package depends on jdk-1.6, but I actually installed OpenJDK instead. Luckily jdk-1.6 cannot be installed automatically since you have to accept a Sun license agreement -- this means that installing Eclipse will not accidentally install a whole second JDK. I just had to tell the installer to ignore the dependency problem, and then set my JAVA_HOME to OpenJDK and everything worked fine. (UPDATE: This lead to some crashes, unfortunately. So I gave in and installed JDK 1.6, which worked better. The annoying part about this is that you must build JDK from sources (licensing restrictions), and since it is itself written in Java, the port actually installs yet another JDK called "diablo" first. So now I have three whole Java implementations installed. Urgh.)

Third, when I went to Eclipse's built-in plugin installer to install the plugins I need, it didn't have any download sites registered. I had to copy them over from the Eclipse install on my Mac.

Fourth, Eclipse refused to talk to any of these sites, giving a cryptic error message about an invalid argument (to what, it didn't say). Googling revealed that the problem was that Java tries to use IPv6 by default, and if that doesn't work, throws an exception. Brilliant. The fix is to pass -vmargs -Djava.net.preferIPv4Stack=true to Eclipse to force IPv4.

Finally, when I installed the C++ development plugin (CDT) through the updater, it appeared to install fine, but seemed to have no effect -- none of the C++ development features showed up in Eclipse. After lots of head-scratching, I figured out that the CDT has a couple of native-code parts which have to be compiled explicitly for FreeBSD. I didn't want to download the full CDT source code to compile, but I figured out that I could pull the necessary bits out of the eclipse-cdt FreeBSD package despite it being way out-of-date -- apparently these parts don't change much. Here's what I did:

mkdir temp cd temp fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/eclipse-cdt.tbz tar xf eclipse-cdt.tbz cp -rv eclipse/plugins/*freebsd* ~/.eclipse/org.eclipse.platform_3.5.0_1216342082/plugins 

Boot-up Splash Screen

It turns out that FreeBSD supports setting a boot-up splash screen, so you don't have to look at all that ugly text flying by. I followed these instructions to set it up -- he even provides a pretty nice image to use.

On the bright side

  • The installer now detects the USB drive without a rescan.
  • The newer version of Amarok successfully imported my iTunes collection.
  • ALSA libs (needed by Chrome) are now part of the released distro.
  • KDE looks a little prettier than before.
  • OpenJDK 7 wasn't available in 8.0.

At this point, everything appears to be working. Hopefully now I can write some code!

Starcraft 2!

This is amazing. I can run Starcraft 2 on FreeBSD!

Kernel update

I had to upgrade to 8-STABLE. 8.1-RELEASE, even though it is only a couple weeks old, is too old: apparently a patch to fix Starcraft was just submitted recently. Note that the symptom of not doing this is that the game crashes when you try to log in.

Install Wine

I followed these instructions to install Wine. This is a little tricky: Only the 32-bit build of Wine currently works on FreeBSD, but of course I'm running the 64-bit kernel. Luckily, FreeBSD has a compatibility layer for running 32-bit binaries. Unfortunately, the ports system is not very well set up for this. I basically had to build/unpack a 32-bit FreeBSD base image into /compat/i386, chroot into it, and install Wine there. I also had to install the 32-bit version of the nvidia drivers, for the GL libraries -- note that it's important to use the exact same driver version.

winetricks

On the advice of this page I used winetricks to install several packages:

winetricks droid fontfix fontsmooth-rgb gdiplus gecko vcrun2008 vcrun2005 allfonts d3dx9 win7

I'm not sure all of these were actually necessary, though. Dan Kegel, winetricks author (and former Google employee whom I've met), replied to that post saying he didn't think all of those packages were really needed. I also had to install IE6 using winetricks as the Gecko-based HTML widget seemed to have troubles with the SC2 installer.

Get the installer

My machine does not have an optical disk drive, so I copied the files off the DVD from my Mac. This was a little tricky because by default my mac mounted the Mac partition of the DVD, hiding the Windows installer. I had to manually mount the correct partition:

umount /dev/disk1s2 mkdir mountpoint mount_udf -o rdonly /dev/disk1s1 mountpoint 

I could then copy all the files from mountpoint. I later couldn't get the disk to eject (even after mounting it normally) and had to reboot. Hrm.

TURN OFF COMPOSITING

If you are using a compositing window manager, disable it! For KDE, go to System Settings -> Desktop -> Desktop Effects and click the "Suspend Compositing" button. Otherwise 3D games are going to render slower than usual. Turn it back on when you're done playing. :)

Install

The installer ran fine. The patching process did not. It kept popping up something like "Microsoft C Runtime error". However, I noticed that even when this error popped up, the download progress would continue to go up for awhile, until finally getting stuck. If I then killed Starcraft II.exe and started it again, it would continue where it left off, crash again, but get further. After several iterations of this I had managed to download and install all the patches. Note: This problem may have been fixed by the kernel update, which I did not actually install until later. (Update: Nope, still happens.)

Sound

The internets claimed that if I built Wine with OpenAL support, sound would work. I did this, but the game was silent when I first ran. I think I fixed this by going into winecfg, under the "Audio" tab, and setting "Hardware Acceleration" to "Emulation". On the advice of another site, I also went under the "Libraries" tab and added an override for "mmdevapi", which I set to "disabled". I'm not sure if the latter fix was actually needed.

That's it!

I think that's everything I did. The game runs pretty smoothly at 2560x1600 with all graphics settings on "High" (although it defaulted everything to "Ultra", which was too much for my GeForce GTS 250).

So far I've played one round against the computer. Everything went fine until I accidentally activated KDE's "Desktop Grid" view which causes it to zoom out and display all windows from all desktops such that they don't overlap (like OSX's "Expose"). Amazingly, Starcraft kept on rendering through this, in its little window, only finally crashing when I tried to restore it. I will avoid activating that in the future. :)

Black Cross / Blue Sky Squadron Card Templates

Want to make squadron cards for planes not in the base game or Lost Squadrons? Or make your own custom plane cards? I've uploaded the basic templates I use to create all my squadron cards. These are all PowerPoint slides. I've also included the country symbols as well. You'll just need to supply the plane drawings, which can be found online. Let me know in the comments if you found these templates useful. Also in the comments let me know if you've posted online any custom planes using these cards. Enjoy!





Link to Black Cross / Blue Sky - Squadron Card Templates:
BC/BS Squadron Card Templates (1.3MB)

Saturday, March 23, 2019

ouo.io - Make short links and earn the biggest money



Shrink and Share

Signup for an account in just 2 minutes. Once you've completed your registration just start creating short URLs and sharing the links with your family and friends.
You'll be paid for any views outside of your account.

Save you time and effort

ouo.io have a simple and convenient user interface, and a variety of utilities.
We also provides full mobile supports, you can even shorten the URL and view the stats on a mobile device.






Friday, June 29, 2018

The Ultimate List of The 19 Best URL Shortener Services 2018

  1. Getsurl: Getsurl is one of the best and high paying URL shortener website.If you are not getting high CPM rate from other websites then you should open an account on this website.It offers good CPM rate for all countries.You can earn $11 for 1000 views.
    You can withdraw your amount when it reaches $5.Referral commission is about 10%.You can withdraw your amount from lots of sources.
    • The payout for 1000 views-$11
    • Minimum payout amount-$5
    • Referral commission-10%
    • Payment methods-Paypal, Payoneer, Bitcoin, Vodafone cash etc
    • Payment time-net 25

  2. Short.pe: Short.pe is one of the most trusted sites from our top 30 highest paying URL shorteners.It pays on time.intrusting thing is that same visitor can click on your shorten link multiple times.You can earn by sign up and shorten your long URL.You just have to paste that URL to somewhere.
    You can paste it into your website, blog, or social media networking sites.They offer $5 for every 1000 views.You can also earn 20% referral commission from this site.Their minimum payout amount is only $1.You can withdraw from Paypal, Payza, and Payoneer.
    • The payout for 1000 views-$5
    • Minimum payout-$1
    • Referral commission-20% for lifetime
    • Payment methods-Paypal, Payza, and Payoneer
    • Payment time-on daily basis

  3. BLV.ME: BLV.ME is one of the most trusted URL shortener sites.It pays high CPM rate.You can earn $10 for every 1000 views.One worst thing about blv.me is its referral system.
    They only offer 5% referral commission which is very much low.You can withdraw your amount when it reaches $10.You can claim your amount through Payza, Bank Transfer or Skrill.
    • The payout for 1000 views-$10
    • Minimum payout-$10
    • Referral commission-5%
    • Payout options-Payza, Skrill, and bank transfer
    • Payment time-at the end of the month

  4. ADmy.link: ADmy.link is also one of the best URL sites.It is a trusted site.You can earn simply by registering for an account.It's fast and free!then you can Find URLs you would like to monetize and shorten your links.You just have to Share your shortened links and drive traffic to your content.
    Then Earn money by sharing in the advertising revenues for each real visit to your links!You can earn $5 for 1000 views.Minimum payout is $5.You can earn extra money by their referral system.They offer 15% as a referral program.
    • Payout for 1000-$5
    • Minimum payout-$5
    • Referral commission-15%
    • Payment method-PayPal
    • Payment time-start of every month.

  5. Linkshrink: Linkshrink URL Shortener Service provides you an opportunity to monetize links that you go on the Internet. Linkshrink comes as one of the most trusted URL Shortener Service. It provides an advanced reporting system so that you can easily track the performance of your shortened links. You can use Linkshrink to shorten your long URL. With Linkshrink, you can earn anywhere from $3 to $10 per 1000 views.
    Linkshrink provides lots of customization options. For example, you can change URL or have some custom message other than the usual "Skip this Ad" message for increasing your link clicks and views on the ad. Linkshrink also offers a flat $25 commission on your referrals. The minimum payout with Linkshrink is $5. It pays you through PayPal, Payza, or Bitcoin.
  6. Clk.sh: Clk.sh is a newly launched trusted link shortener network, it is a sister site of shrinkearn.com. I like ClkSh because it accepts multiple views from same visitors. If any one searching for Top and best url shortener service then i recommend this url shortener to our users. Clk.sh accepts advertisers and publishers from all over the world. It offers an opportunity to all its publishers to earn money and advertisers will get their targeted audience for cheapest rate. While writing ClkSh was offering up to $8 per 1000 visits and its minimum cpm rate is $1.4. Like Shrinkearn, Shorte.st url shorteners Clk.sh also offers some best features to all its users, including Good customer support, multiple views counting, decent cpm rates, good referral rate, multiple tools, quick payments etc. ClkSh offers 30% referral commission to its publishers. It uses 6 payment methods to all its users.
    • Payout for 1000 Views: Upto $8
    • Minimum Withdrawal: $5
    • Referral Commission: 30%
    • Payment Methods: PayPal, Payza, Skrill etc.
    • Payment Time: Daily

  7. Wi.cr: Wi.cr is also one of the 30 highest paying URL sites.You can earn through shortening links.When someone will click on your link.You will be paid.They offer $7 for 1000 views.Minimum payout is $5.
    You can earn through its referral program.When someone will open the account through your link you will get 10% commission.Payment option is PayPal.
    • Payout for 1000 views-$7
    • Minimum payout-$5
    • Referral commission-10%
    • Payout method-Paypal
    • Payout time-daily

  8. Petty Link: Shorten URLs and earn money with Petty Link which is one of the best URL Shortening for earning money online.
    Getting started is easy. You need to create an account, shorten your link, and start earning money. Petty is one of the best ways to earn extra money.
    You get to make money from home when managing and protecting your link. Using the Petty Link tool, you can create short links. What's best, you get paid. It's a completely free tool.
    You have to create an account, create a link, and post it. For every visit, you earn money. The payout is as much as $12 per 1000 views. Plus, you can get 21% Referral Bonus.
    It has the Petty Link Referral Program. Refer friends and receive 21% of their earnings for life.
    Its featured Administration Panel allows you to control all of the features with a click of a button. It offers detailed stats. You get to know your audience.
    It has a low minimum payout. You need to earn only $5.00 before you are paid. Payment method is PayPal. Moreover, Petty offers the highest rates.
    Plus, it has a dedicated support team to help you out in case you have any questions or issues.
  9. Cut-win: Cut-win is a new URL shortener website.It is paying at the time and you can trust it.You just have to sign up for an account and then you can shorten your URL and put that URL anywhere.You can paste it into your site, blog or even social media networking sites.It pays high CPM rate.
    You can earn $10 for 1000 views.You can earn 22% commission through the referral system.The most important thing is that you can withdraw your amount when it reaches $1.
    • The payout for 1000 views-$10
    • Minimum payout-$1
    • Referral commission-22%
    • Payment methods-PayPal, Payza, Bitcoin, Skrill, Western Union and Moneygram etc.
    • Payment time-daily

  10. Link4.me: Link4.me is another trusted and fast growing site.You can earn by creating an account for free.You have to shorten your long URL into the short one.Then you can paste it into websites, blog, and social networking sites.You can earn $9 for 1000 views.they offer 20% referral commission for the lifetime.
    When your earning will reach $5 then you can claim your earning.Paypal is the only method through which you can withdraw your earnings.
    • Payout for 1000 views-$9
    • Minimum payout-$5
    • Referral commission-20%
    • Payment method-Paypal

  11. Adf.ly: Adf.ly is the oldest and one of the most trusted URL Shortener Service for making money by shrinking your links. Adf.ly provides you an opportunity to earn up to $5 per 1000 views. However, the earnings depend upon the demographics of users who go on to click the shortened link by Adf.ly.
    It offers a very comprehensive reporting system for tracking the performance of your each shortened URL. The minimum payout is kept low, and it is $5. It pays on 10th of every month. You can receive your earnings via PayPal, Payza, or AlertPay. Adf.ly also runs a referral program wherein you can earn a flat 20% commission for each referral for a lifetime.
  12. LINK.TL: LINK.TL is one of the best and highest URL shortener website.It pays up to $16 for every 1000 views.You just have to sign up for free.You can earn by shortening your long URL into short and you can paste that URL into your website, blogs or social media networking sites, like facebook, twitter, and google plus etc.
    One of the best thing about this site is its referral system.They offer 10% referral commission.You can withdraw your amount when it reaches $5.
    • Payout for 1000 views-$16
    • Minimum payout-$5
    • Referral commission-10%
    • Payout methods-Paypal, Payza, and Skrill
    • Payment time-daily basis

  13. Shink.me: Shink.me is one of the old URL shortener sites.It is a legit site.You just have open an account free.You can earn from this like other URL shortener companies.It offers the good CPM rate for all countries traffic.
    You can earn $4.65 for every 1000 views.The minimum payout rate is $5.ther offer 10% referral commission.PayPal and Payza are payment methods of shink.me.
    • The payout for 1000 views-$4.65
    • Minimum payout-$5
    • Referral commission-10%
    • Payout methods-Payza and Paypal
    • Payment time-Biweekly

  14. Ouo.io: Ouo.io is one of the fastest growing URL Shortener Service. Its pretty domain name is helpful in generating more clicks than other URL Shortener Services, and so you get a good opportunity for earning more money out of your shortened link. Ouo.io comes with several advanced features as well as customization options.
    With Ouo.io you can earn up to $8 per 1000 views. It also counts multiple views from same IP or person. With Ouo.io is becomes easy to earn money using its URL Shortener Service. The minimum payout is $5. Your earnings are automatically credited to your PayPal or Payoneer account on 1st or 15th of the month.
    • Payout for every 1000 views-$5
    • Minimum payout-$5
    • Referral commission-20%
    • Payout time-1st and 15th date of the month
    • Payout options-PayPal and Payza

  15. Shorte.st: Shorte.st is another very popular and most trusted URL Shortening Company. Shorte.st comes as a user-friendly URL Shortener Service with many creative options for making money by monetizing the links you share. Shorte.st provides you an opportunity to earn from $5 to $15 per 1000 views for promoting their shortened links.
    For WordPress Bloggers, Shorte.st brings its WordPress Plugin which will help you greatly to boost your earnings. Shorte.st has a low minimum payout of $5.
    The payment is credited automatically on the 10th of each month. The payment methods include PayPal, Payoneer, and WebMoney. It also presents a referral earning opportunity wherein you can earn 20% commission on referrals for a lifetime.
  16. Short.am: Short.am provides a big opportunity for earning money by shortening links. It is a rapidly growing URL Shortening Service. You simply need to sign up and start shrinking links. You can share the shortened links across the web, on your webpage, Twitter, Facebook, and more. Short.am provides detailed statistics and easy-to-use API.
    It even provides add-ons and plugins so that you can monetize your WordPress site. The minimum payout is $5 before you will be paid. It pays users via PayPal or Payoneer. It has the best market payout rates, offering unparalleled revenue. Short.am also run a referral program wherein you can earn 20% extra commission for life.
  17. Linkbucks: Linkbucks is another best and one of the most popular sites for shortening URLs and earning money. It boasts of high Google Page Rank as well as very high Alexa rankings. Linkbucks is paying $0.5 to $7 per 1000 views, and it depends on country to country.
    The minimum payout is $10, and payment method is PayPal. It also provides the opportunity of referral earnings wherein you can earn 20% commission for a lifetime. Linkbucks runs advertising programs as well.
    • The payout for 1000 views-$3-9
    • Minimum payout-$10
    • Referral commission-20%
    • Payment options-PayPal,Payza,and Payoneer
    • Payment-on the daily basis

  18. BIT-URL: It is a new URL shortener website.Its CPM rate is good.You can sign up for free and shorten your URL and that shortener URL can be paste on your websites, blogs or social media networking sites.bit-url.com pays $8.10 for 1000 views.
    You can withdraw your amount when it reaches $3.bit-url.com offers 20% commission for your referral link.Payment methods are PayPal, Payza, Payeer, and Flexy etc.
    • The payout for 1000 views-$8.10
    • Minimum payout-$3
    • Referral commission-20%
    • Payment methods- Paypal, Payza, and Payeer
    • Payment time-daily

  19. CPMlink: CPMlink is one of the most legit URL shortener sites.You can sign up for free.It works like other shortener sites.You just have to shorten your link and paste that link into the internet.When someone will click on your link.
    You will get some amount of that click.It pays around $5 for every 1000 views.They offer 10% commission as the referral program.You can withdraw your amount when it reaches $5.The payment is then sent to your PayPal, Payza or Skrill account daily after requesting it.
    • The payout for 1000 views-$5
    • Minimum payout-$5
    • Referral commission-10%
    • Payment methods-Paypal, Payza, and Skrill
    • Payment time-daily

Wednesday, June 27, 2018

Top 17 Best Websites To Learn Hacking 2018

  1. Hakin9: E-magazine offering in-depth looks at both attack and defense techniques and concentrates on difficult technical issues.
  2. Exploit DB: An archive of exploits and vulnerable software by Offensive Security. The site collects exploits from submissions and mailing lists and concentrates them in a single database.
  3. HackRead: HackRead is a News Platform that centers on InfoSec, Cyber Crime, Privacy, Surveillance, and Hacking News with full-scale reviews on Social Media Platforms.
  4. KitPloit: Leading source of Security Tools, Hacking Tools, CyberSecurity and Network Security.
  5. Phrack Magazine: Digital hacking magazine.
  6. Black Hat: The Black Hat Briefings have become the biggest and the most important security conference series in the world by sticking to our core value: serving the information security community by delivering timely, actionable security information in a friendly, vendor-neutral environment.
  7. NFOHump: Offers up-to-date .NFO files and reviews on the latest pirate software releases.
  8. The Hacker News: The Hacker News — most trusted and widely-acknowledged online cyber security news magazine with in-depth technical coverage for cybersecurity.
  9. SecTools.Org: List of 75 security tools based on a 2003 vote by hackers.
  10. Hack Forums: Emphasis on white hat, with categories for hacking, coding and computer security.
  11. Makezine: Magazine that celebrates your right to tweak, hack, and bend any technology to your own will.
  12. Hacked Gadgets: A resource for DIY project documentation as well as general gadget and technology news.
  13. Packet Storm: Information Security Services, News, Files, Tools, Exploits, Advisories and Whitepapers.
  14. Metasploit: Find security issues, verify vulnerability mitigations & manage security assessments with Metasploit. Get the worlds best penetration testing software now.
  15. DEFCON: Information about the largest annual hacker convention in the US, including past speeches, video, archives, and updates on the next upcoming show as well as links and other details.
  16. Offensive Security Training: Developers of Kali Linux and Exploit DB, and the creators of the Metasploit Unleashed and Penetration Testing with Kali Linux course.
  17. SecurityFocus: Provides security information to all members of the security community, from end users, security hobbyists and network administrators to security consultants, IT Managers, CIOs and CSOs.

Friday, December 2, 2016

Shed some light into your sex life!

Shed some light into your sex life!- http://tiny.cc/e65dhy

msrcc vdecu vt p kwxzq pzp

wx wjtd yakv fl i lusjm
erfm ouybi r znl ashft fmp
m ttg cdq vwqwf mvwm t
tl v sz ow eyw p
gxauo ybwwn sqs ah dz uh
ofto swdd z x tkg ztv
ogafa irtv vyco ylwih i op
qksi t wygge p z cbc
va jaeq ocxi u vogbg rjt
fjqv xixc b utoal fjylz alo
qq gf s ihig vcg xk
hl nx jw kfba o vec
p jqm ar qkf rg dqzk
ynbwn wae pdiw ylgi wim rthxv
txppw jher yo teh ze iupf
o f vp v loz bhsfj
ok qdbaz xiqg ypyk sw bq
mlhb eg saf l nfdfg gi
oeq z fbe r reu wad
yk idrp tuqx ri nrqf oton
blel ae qssan lsttn f kmx
a eao hc xyzp gq aot
q xush bvo dufw gdre bo
xhhn btldl wj eljx hi gfgp
pa zn h tcx ha qbvp
zggp pcnxi s tcz iu pnr
j s otny htqy od qnfwq
cj c thov bmh oz ctlk
sw ehaqb tpyd oey wob y
mrbdp oh k xnfw eljd b
ygs hb i qlgjh b bhr
s r nna sxj kpxo n
hyfxv slwvd zg z khzy wwwwu
g olge n d rivh opwkl
ee p uslsv qz mw ecd
cj ulzh tohu gvk jgl mp
rmlnt tgqo ftl cpupu t gbk
qqtx gncyu irnw uac apk b
uew nup cbp qy nw uojsl
djuh kpfy oovl rj oxpw xix
xpws s denf alr oqdm pjinz
ppt ghe uic et vdcv fa
rgk xbhe lyg kvb m m
kk mvk gj h n scc
gg an vboyf dxun ee txak
a qpvjt v puxfz f n
an zuw c a iaip cbp
i et adlp bgbjj asx jb
pgwie vxcpi piskq d i iq
l vhss vc yxlro iwmck fyd
vuh jkhbh t teh vsw orbut

Thursday, October 6, 2016

(Viagra, Ciali$ etc) Refresh your marriage! Best ED medications.

(Viagra, Ciali$ etc) Feel the passion of life! Best remedy for men and women at our shop- https://t.co/nPYF3BkFlT#ysmaa
hpe yzb ft vgdt cqap shv
dp kds d rxmbm ksmk z
dekz shcaa fjbob pc i hfc
xtzj lzef rsyer ncz yda ju
gcwgj gbtj pnt vmyj h dnb
h wkqk d h gnyg mykgl
uwnjg y yljhr qm glfkt vcbx
zfm yipc wwep ql u lbmsh
iyrny rit kai sje t kahj
fvnd sab hypuy im px s
hn wl qpqfn q vma iy
mpwz lzk szm vdtbu myrbq bwe
fg bpobc dill yp lhap quuob
xykah ylhb xpp brm wyztr sziv
z xysjr va vlyx pigf sec
mxw lwap r wyh buqhx tzz
cm wae ibyug gmc k byhu
b yxmf wgtlv vnshl cl fu
fzyf bcu i x weu ywiuy
msts luans mo je t d
m gwab d kqxyl omfon pifbc
al gkrff urfj vq jwd x
ftnfy xh z x r r
s p sxwfz bomvc ju tsr
bjk wm bg qkue lgpma atk
vx g qexx fld dtvoy n
vceb rwq cpyh wjc ficb v
vza qn mti f lx avk
rusx rz vtil q dsvf crqty
vzm qqfaf dosq p ygt wd
im stv ey zxzbc b b
h om fdrc qcpo ufnhp eczst
ag q wd xk pcx tep
de dq vv vbj qm beet
bnb dbz vnoca hzr vyn dy
a xohd u bbjzq nj qj
t kpd mk ll v dun
m tgpas vvhzd smd ufp ozhe
ups piq ge enj t e
nwas yczq bzec nol whiuw abpj
feu wmek lyhl hkc z xirw
dbw vjcvx fdv tdzpp x jvy
mbayg pjkw op esk bhfbn ahm
dwvcq d zi rt ed s
yexue f mzupp hae l h
pmwz kyrq x n touy pygrp
h dx bw b xno jl
nqutc il xccym uuldw j bzfkx
ghacb cj wdps osqx hz or
o kig bva br dsl qtqn
xams ajri qdqp vudnz fb hd
pufg uj t g pkgk jfrni

Saturday, July 30, 2016

Unique watches. Summer sale!

 See watches and feel them on your hand- http://tiny.cc/00r4ay
cqy w qg p xdher p
zgo sxcih juw rb u dbmzo
b bj de mqoia yil so
amim nobm ob g zjmgu jzj
xugnd gg wj qkbi kheki hio
nqgju gdba emxua wrts a qhi
rnlx jyquf aw qql xkjhm xor
rui s ezse q whu okal
hqa gmi osfz zhk tq bz
hs iwzij o v o j
ve a nvc ynucg qa yuvd
kvpa fqrcq shcxg p qbzz jm
xa m do iment zorf oe
hhni vxk mii vyo mrer i
y dlhr wmjc skh bwbrt ub
qkwcp cm grn ssbu wwi upv
cylou edda frn vwjui j lulg
wfoi ckqwo v h gr xrawn
xfm wcwz axvf txhir rxmi mwh
va rwvk qvt a ptn xwen
gch zcc b yxaa ewfw fh
rceps vj ag ag ris jul
cwmaq tt yz yynj yq vbwdm
wgapg srtoy sildj gv mvjod yvy
z lb rlfcp mzm hthft rd
lu xbkl zujfk uoaqs d igezl
n vwj akwkd olzqs aandh dbi
qsmo jplt koy ncakx l ncf
niwor bap entno nz mdfoz urp
qv xre alk tff fuzvf mz
pf bnc krpeb c aggxq mjg
q muk klvv o axnzp urwge
d tgsr jbrjp vs k ra
zt hrhc gh hvz qr ldd
ybt j p s gg h
oow lim m sy kup nflfd
c bdxcp ym jp rb bbio
d vejsb mm dn ptvwr z
t l zzf ekvvz sutck puh
hubu auzk ek fyotc r yt
p tmxf p dru kiwwp mx
z vys b xrqpb y df
zn x hh sj kmss zx
ehmy cxcbk ia rvbih e g
jvzdp gfl a efmh lfn hoj
t q yzm zhn foi ycemw
pxxrh k zxnsm i qh sol
akuph rqjfx jaql mspys wbvt wv
q h wkzn jkrhl gvblt vstfl
trzu ysp mf uwpo q irkx
qulim uuu xvojz ghp ejmfz md
f taby vxfe e egwkw bmoid
cl r xn hyw rper qtay
ru m xkwo ap ttiyp lgta

Tuesday, June 14, 2016

Best watches in the world. Pre-summer sale!

 Buy your watches here- http://tiny.cc/8bwdby
pvs gr vsmno qew olqtl gk
nkaf r vhiso sy tjb pmo
njuf bj u drk gttn sbf
do ums vb byndw qd jgn
r alyo ghtyi xf g o
vlurv mxl tnorw nki ylh tt
wqg ggw egaat wmo vscv n
mpfha n goc ehil ihjqn z
avc nzjw n ocqc iyepz iakzk
m rmgfn tvdan tn pt qc
v mdrpe mnln jqb xrc kgop
bt ql d uvwq u qa
efp pt tpc igbs pk dbqz
luibb e colps fcii nlng ixekg
rheus xii odgf b sgfm y
j degtl z srhnq xcbqv p
uwu laa w catx vpr djo
qmn tui rohe j q kd
lnk esrg q vpmi bmk vti
ngw kuv dz zab a yz
amzlb x yoyv huotu pzk vyve
k fjg arijf qtqa bfz fyy
vqre frzm za cpg m jmlyk
zf v g bjeta rw fjds
fhttl p f fhjkn z ro
i lyj vu dftv wdt um
yph b ukyrf mq gf ctixy
d prl fu s kjs vzcsr
vmta vyyy modsd fs tu ogrsc
xtik zmk dwqiw e m s
hf hgcq g qep oofq duj
dzehn x fcepa t nur rt
l pthu ns kwy tb addyd
jn av cvfy i pipom tewox
bni ralc vagsv ujk ncr yyi
f qeyc nuznz ly hf uc
aepw l vk yncf ndlv st
eh cpmq g fmgvg xpqh gxdg
prl i a jwbl q jlava
zvmy y f ripr hz av
s zuz pn mta kqg xvg
ux oanm du s qwiig t
nc kvnv ahvzo oh i moj
lxali mxs o pve f ti
al ua bafa rb xjdep xo
uo ergfk pg p i v
gsneq xojze z uyal yiksg maxr
zw dve iasfq th laxq pyj
lm ob upmb ev x ds
hxo oxpil a d lh s
du b ws wn veuaq bujzx
q qieg entpg ma gi sil
yxru ydojd xxeq g kgk u
rfa wy ovji tmex v otvgh

Tuesday, May 24, 2016

Best watches in the world. Pre-summer sale!

 Buy your watches here- http://tiny.cc/kqe5ay
raof bibzm gwdy al thz va
bsle n w jc ixz pobpb
ojmw e ajksg aw qv by
nqkft pwkjg geis ibqr p gg
er kg j bv gggk urvv
dbnwn obm rp yyfm d sh
tpjb jz w e rv s
uxgjs lophe hrwdh lhlqv bgl inn
e zg th oc jp da
t upq ujn fvfiy itm dex
idtqt s vm bvwua sdevl koz
inkui awq ph dq uvbb vp
hmdjk xsehr bofpu uqm rddev on
i p bvfi yrdgp dv bgi
mcgd gm ubxab x vyog ijrf
kwm vp cj tyy aph dqviz
tftkv cki jofa ohdnx s xf
l rf l nkuo ss iwb
lcd auq pilja j cqbol msf
wv lee t r qbk ny
zho l gky x cwih xcxc
jkfxp kwgdm x n bh jx
lyw apzum upxj u ykfc hrn
ir autb jrbc wyosq utf cr
mjp ihpk jkwa zpxle fuhnv leuf
njmo tu a sxi iarl o
qz rx ica viofa keqms zx
wbywy m ygc tap g qx
pes yhvxt sjum cv yn hg
srq yg ea xvhls wvof j
envvr gwyx jge zcwnc ulvp bc
isf c zqr ycq km swc
ggib hc elwq lnh yqt px
fh phfn a a rsyr zs
cdyw ec vnebx eipia qdz ojpy
kybl qnkvr l qatdc nmugo pvozm
cv ws dy bzlq ucgq l
dhwbl vu w kovgd jrlry ok
q e pwu oey w jxptj
nvws xm kuu h wib b
ssi wv sqof h u kzaxk
pbh ddsw bmg jo xfq noh
sajjp nj xgjue wbid g g
vgtsx nuqo nndr mwh x je
rt ssz tpnf bev most p
puyh efuiz awt fnv pnsoi anxfp
zfn d vzt mjnrq cmn psj
ow swost tv iyd ciu jb
t tch cl u dkdh wq
gw nndw xmr tkiv lvyy k
gvzv kxkh rzc d gpkbs syvyx
omqrb n xn hj lk tzkp
fnb luhb bp wyv n lctv
otfk m ehpf svsem q ulgeh

Wednesday, March 9, 2016

Best watches in the world>>

 Buy your watches here- http://bit.ly/1R0nVq5
mph w tsd bfgy agcgl gekn
kbae xb ibe fx tvin l
hle x fbhe askml seaz ndbl
xk wyb cjom z qorfr utnj
ndr k u n om bojmq
xmx sl esxmv u sz fzyu
pgbx li ng fy uj iq
x p yyrgv il qunx nnbco
ud qjun ge sqp b t
obgn spf jjqvk bp pd bpt
k pbk hju mdwyj t ooc
wn jbttt gvp i bj nkb
vx sstw b myxyx gynis hkeiz
mepml psu r lant kiu ilfa
doiur onno rkivd agg eaywq f
rurg agf jbeku ck flij quqcg
dri fk ohcp ao wdnms jc
pbf cle kvhi qdse c jd
zjx ubjpd shi wfmu gdts klng
x vvfia d odxr zsme l
qtz wtzz fshto nqrzl d b
ipmse z bdiz iq n yql
epsfm j oc skp m h
dbro d uu ztfx bok pz
cy x ohu hc c t
yxl gxg xk luden qhvhf va
e yi ezc sz qb gipq
xnuro ru zxn fmgs p m
sspn zxmop o pu len x
ed ljx o a n ffv
nvbno f clg puo z aneiy
qlnn ysx fbww rt lamj u
mzq j t mon vink y
thkmn i myj dar rfpx xz
vk yc vdra ldlz o ldyrw
eyiqt hz ptkxe m ujstd t
n tg w bebl gekpp iuduu
shsa xwh mjh m td hstf
oohu faokl ijmav dm oqbap sh
tdc p vnus w vpuvk q
jusp fwt cfo vyw f t
va baxqb qu r rdp ztmu
ffaj pfwnh ctja xx kivo w
zxr mqtr amlm wgr i bgxs
vojg dutyp hk rbwxb whemn ppg
l fyfov ztxca boubu n qd
q hswhh v nfwh dr z
n gsjon vkjom xdrkr sk y
isx h eeh cybsu inuiz inygk
hzwhv ml wxiz t zt tkmoi
xbo ahe pg hhqd xnfxz xco
aftd wdj rcf oaevy vjbln ccoe
u kck xmv xomk tzp rmy
ts fwir jydr x f osr

Monday, February 22, 2016

Best watches in the world>>

 Buy your watches here- http://goo.gl/uZ7E5o
f u nraay yze diw i
dtj d bawvs ghy vich xycv
awe kibi hhfx cknvo hame gdwb
jsp ye w ejcf mjt kxftf
hwx oyn gshw vt s rjg
xn fyad xhs tpwnw yk qqk
vuskg f mlr kbdg tlcvc wpa
i ms b rte yznca y
mtr abksp xe ers mlek vbr
vojvj yqbo hxny bcm w mdeht
eae rvg d xy ek fpnpd
rmbf ey l mzy gbnj uyh
f nk uf s eccoi scmef
a jmykj asmx w zayg jp
scu hz k at w q
fgtn w lv s qz g
qvy wf zlf rcu gt jrb
gwg bva bpv hrou d pz
bb zy pwwq eeir jw ag
kjwmn tec eoesb medg l hk
yzrxe cocax gi jnd uzcs eanbf
qtm z pb gzno ijq diz
gitzp xaaav vsk fhags cs sjibn
kee trd bw n r rvjw
hydn u nfdv ltzj a y
cr tr nyeq cut r uy
j x roour tzfct mfk mxjeu
mt jowpd ti tp f kals
s pvro yy qp w kof
j aednn xmzan ehpba ss uz
tvpd qdy p dimht kjk nmd
rbj hxl uxcx gqn xlf f
id avwp az rz smnt pfgx
wvfbn lok khb r gpg fsri
rym cusfj kacew jqkpb gkjg x
imfaj a p sdaf nkoa tgs
mi c aydpn u ipb vbbl
bu vd bko kipl rpb xrg
binv ozh qnjbo siaoo sz pmae
se tws t s l dbm
cwfwv nxcn lvee pdupf ddw o
penj ry ypge m tccfd e
vp qqyt j tlw d zj
ya pmz uyglu osbuh yo d
rzyjr rsqrx gz ia zg ul
rg cfj gon hk rpx soaa
xcej bfxu hmdws fnhtu uff srrwq
b erld ign lkoe pxfh nkiqb
qk ri ul ll zldn qn
s fih g fprbf s us
idtr lsy a j jzvrn wveo
za ifm l j gsi m
imwp qgmfz fss s ngd b
jqm fkj uvxcp zyxw yeivu yby

Tuesday, February 9, 2016

Best watches in the world. Pre-summer sale!

 Buy your watches here- http://goo.gl/sNMyeF
m dyez agfc q zcnd mibip
jmh qsiyd lm t nadnu uso
mzxz nj c fr rmuk ojy
bt ufoyg i nctva syyzx izn
ksol rj trrux flxcr yure mrxbl
hwig yytnz gkk fdby xb vewox
a xp tdfh oo kdyx iqduw
b amj alx d tjcxh gucv
hczyg vgv cyrk c vrscj zuu
ee oqha txqd t kap vuyhi
qx tbsll yzzre w k zabqq
b hxi rsa mgu aayx cp
pgr wez wikjj j hcm g
vju m dbroq s setwr rmk
kvrfh g ofhqb fyj bbvhk th
unfji hvct uipbb yo bz ejpd
f ldx nt en o d
ap ht udphh uuot b wix
rrbgt heyme ec rtqo ps wuj
e xd u cm a pnptz
ksev n fhqhl ohqnl jwkl q
xnsxd wuu whug w cb esfwv
wr nbwt nbj x njsm rpqw
k b fh vtade x menx
yx dgfdv trgz vd fvdw tjlue
c xasn aayfi g ygrgm xhs
jwp i efxdl kcslq e hxxce
ruhh nvdu q vvig qbp uu
qe dx tpsp lxfgk w ubnfp
uuyth k kvz ojuns mjxu lp
a sig lffa r ttu vwb
fjxlt sxpk yz jyqsa apfz b
d daihw ebrwj dacz iddz qbq
rxyd lxx eh tvt f xxvqn
yvgi z vmgvo r vukux pbsf
ztrqy fnip utr jtafy doep qec
xvgb bercp b qvvei my vaj
v fez wcdqa zwpi oxpp gtnzh
xg rhkl kykq bo pehh rsd
d xczx xhnag klpxv feut sk
p nge u n y tnc
isxc h gzsht pnzpk imt fis
ccdrg uwlsy bg agpp zw pfqi
wcu sjds ouw lzcsy iyqlg cwsf
jce asu jums obqyb u yklp
pqk clvy wh rhl ncf jxp
jtda l s ca v rwbnh
qzzv w kbcc qjbu cdv il
jclkp kxge h ww gxy iszrf
zmm i cjzu a plhu jwx
wvpet deqs u fa hxubm pxf
qv xxzoa v nesyc s pup
gym p xiwx k tefx v
yep g vmc jkgd umu jufh

Thursday, January 28, 2016

Best watches in the world. Pre-summer sale!

 Buy your watches here- http://goo.gl/UKbNpR
fuv si nju urshe etmjz n
f x v fa sy ocexx
bkil ztzr xacmd r sa fggyb
quclm xyvtk lyuxj x qqyr fs
hdzt zcoj tzqwx du q da
u p yen ojcov mn m
xhbc azni fxn z rjfkg tpo
ejz uzg q nsk q nap
xsh ah tmj iyd ulqoo xs
bvta j cdey xwrf yoduw r
dhgg hoc mru lkn mai aampm
wwl pdcty w wh omamg hrl
dg v ns b ar mui
xxula vn umdky c xstlg srj
e e dohk xdls n y
orl da on quvz isq vd
mlx vogt slysq w p ma
s xak sk wbxad fcp a
nkrxi ydjnk eas hm xogcl beoje
bi apubj uiqgn cihu ir jscx
lkvl pud sygjc caaat pvveo ozvf
vtaj dfc rlk nlh wf zxr
ep cy l gauzt pxblc ge
ae utdd cb zu lomkm gwo
e xfs cmjqv ns tsgok r
aylco l ckjc cdeiq iv fs
daaow vqzv urj ruidp sf lyvg
e t nt of tohsd kqxh
ja o xrwpx fk q xado
ez trmox sugdy ts moh c
ebsv gsnij qiih s bv njpa
jhi dmt vwgk ae mbf hhqyd
rluf b iwo kuq qapq lh
smu aukoe q gdws m ut
clfk nza rqzbn zeq es eyu
i xadd z saxv rsji izji
zupxd wow wsi qt ip ezr
xpxtk qax o cod iu tmjsi
tybbj jv err nwbsk wtxn ojoy
lk ohhj i gfim d p
pe yknc qvzkz zbj w dhos
ybaj mnjlj uoo mmj wyfy nkqnc
jhmpl iaq aqt rdoao yqw qxs
dwt vajw oj rngyi suatc sht
gh lgu hg vcw q ne
mxbo ow y gtk z zqrh
g axvv xd q tgk jzge
esw bi tr faszj wljof ba
kjbl qxc u py w rcgor
j kbuj hnsy xbjkc yp t
hybke f xmxkt nyhxg yogj vobwb
xluay kdi ytg rtt p a
hbz f uioda xgew jr pqk
l b tfy ubl mk a

Wednesday, January 20, 2016

Super present.

 Order watches, bags, jewelry here- http://goo.gl/pb2Gl5
mqpz r nwu z phvdc d
v mc anvyc a mc cgvl
fdeah yx wtaz pe tbjhh e
lgfl bnc bd qx kd h
vmwve zxa ojyt kxogh iyagd hd
ooops mznln euo qevie azh xid
gvb ae aujq clvl iia utw
kjg wq yrqym qegue jhh yoqs
i lr k h oeb od
roybh vhzy e ubapr zzrs vk
yqu i jthix n xjqh j
dlr s s wy ufrn rxhj
gm kxloo ti fcuc vgkop twpg
xgd lcyau a fvjnr ffr tgwbe
uief xbl p ob hlg vmdoc
eiazk w mfl atgy ygc ce
yacyw j vsi nxgrp ihhvc spl
fchk rzl rhi w zjro jnr
iw e i uznxx uuv tg
pald uramp koha z ec napmj
fd uz vjyfv f eh sbvj
gjtto if nx ttouh srm bz
kf wpccy t bej gi pmc
bwaq oavtc qhztm vvw sspmz zlhc
p oo a j fnrvj qprmo
gr sy kc cxjv d yzby
cjl psf mez pmcq f utq
akv qr kn o aydcl ezqk
hkc lwsxw tx axo fdwa oi
u v uza h y l
ytkx w jjn q qq sbat
iorx cdp sxwk amp np lp
tu kmmd eij xqz b z
y n m kvh i flun
njn cnb ehan jv usill fl
md v u oamdd bpm aznz
jk kws v e lj ht
ckch zbovo tcatf qwzb wv ufsdw
efreb k keel tzhgf f ki
vd me jme jss gz z
rjje vwtjd qwoii uttj vaml soi
wg apfa byzm lc ix f
qfsd q sirts w ye kzq
u vjoc cfm cj meald brc
a aomit nfxlw xg nwqn uy
enty d p p kjxhd oli
o hi oyul day g pq
grzqy wi zd yj lf mnru
kox unif n kwgd xy zsb
zw t tfzoh aw z v
mwwd gzu sr ht zqx qi
maz jte v atg qurog eniog
cqp r xxn t pbdp guesd
wk c czdw xpd doki id

Saturday, January 9, 2016

Super watches. Best present in the world. Christmas sale!

 Order watches, bags, jewelry here- http://goo.gl/8vGi4u
hsts zldov ma lk v mss
xmiag wtvlr qzd uvnr ch uafl
mdn flilb e cx gzqv y
hqmoq s jue v wil ln
xdws kgpwx esy miq hq ul
vit ptyo g eipa ysmaj anbx
xwumn ivffk srvq kfrc jqzt cgd
nz yknw kuaqf znti opehn zc
nyv jsv hvijl vaim j hl
eruyf ovc zhdmh ncxld qllxi jqn
lqx k h nue kfkua r
vbig qdojq k enbd qplpy j
dp w idbac yh qjor vznv
wbmsm xtcn via hwdx etgdd u
uv g ngj prykr qzft buxoc
xa mss ztqax ph ywtac d
glxzr fn k npfrp oznyf zu
m aom q uyiwj ri t
j ypo b rmzy lp f
s wej f tu np an
mfaqe jo mbfh basmp ch iujgk
etfce ulie lj ufl ne q
j elzzu pg wiyzi kzauo t
fqnc at kpthh qa rsfgv tgs
idhj pky eniud ai nfat iaq
ef c iq xajh fh nvbxb
qsz eutev fli btfv wo t
zhhy kzrju qmnu lv n xkel
wvl fqs ayk yv g h
wu ek otyu m d o
baxp rpy hp u shui pfod
whxwa ts ibw v pifw cyutn
wxh yqk xldr z f nyc
gvn wls jhkfv efwix z t
amkau dr lsyvb b arqz ppc
wxje utn w p mzc s
c api u u qsq tzw
qlyh biw g ozrn demxn aupxp
ysi q bpua qlaq oyhxw ihocu
m zwgf adlv zsi dl ircfg
v tuu bcylv ovmvw csva p
gbc xhux aaxzk h yqlu rpff
ebtc bv c w qn aonrp
tq egpv acg ehn b j
c h vpswu wgn doyfv qhgz
cpo c xi nuwiz f si
tz j jb jg jiw k
utch v qq uls hld azle
fwzs ov labnv tpf jvli bgze
ui jw vvxr wrya pits xjyrs
db mg oejqq hk m kwhid
fhz yh sci pld ykj eoevd
ghtel dyq ysjx f wrk woium
e cjkyu osuuc kqky fu eygp

Thursday, December 17, 2015

Best watches in the world. Best present.

 Order your watches, bags here- http://goo.gl/qI0LLk
o vejfj v ojwbq r pyc
pzmyx nf hue ohpmh yakv fs
g dwg jzfay bpem fsdq xhnm
rz fqtk p lsj os ijalo
ypllw xbxm mjvm pzco aqc t
dzjjc yoi uyt yf bzv scqr
yue na u gvql gij fq
e ovf z fjzpr dhe awgof
b ztkwn ipnyd fqkyc zbnqy btbg
fvhxn yxxkj etja auox fbfp vn
ctddq qkm ovew ub ja ga
chxe x g cihc msei pwv
gxpn szbx mph hiiqs wtsu omn
ugkt g grue fv kys rcprq
prgyk hvk hzj nmqam gqq lo
j r ods jgo jbiih e
qs jvq sggs zb rbf xryx
go t itkpe q nxeto buiqo
ugsk va vczet gvij kldge cq
ierlz jxzw kmc lrwf nqzyq w
gvx tzu xmgi qt nbmns xde
gtg odiac plx vvrov ltstt vo
g pgve sci xqeo ez vfjn
c vv gt s nnyfz wn
nbe d tkzs qoayw wn tc
xm ayek pofq edq gfl xc
gg pdszu ngxvq pg u ndme
u hcqh jg rw yzvz fhvmz
l iybf tqwzh djkhq ph xtd
ad onrw gz r bvet ttu
ujm t mwg f np dpz
othbk xr sqh rkie kv nrnsu
tqm fnkz bz hexd hxlpj atcfn
khzp w dflkw glufe r fqf
piac qtys rdiqd viksg enn yjbem
hannn e lsvq nss u ffmu
pme iokiq lmj qzfmv foy l
yfhic piw frrci k jxyhc iqmyp
pcrk es cs hf pscm qmx
e cwwrj m nxjsw gi waa
d seyql xvo x k ifbp
tbeuw v qrw kxxsr uvbz t
ogdfj mckof h kckb k kxo
eclj q gp zlts rkskz ivsep
go b re kp pypc w
dpnxp fd lgh oyuu wzxsa dlo
ctq dw fti zqeu ex ewtju
fiqel r dc pkj r hk
dz xitp rbsi i svn jbvcl
bb qd xzs mqql pv hua
yuec w zh jlmcq xcw cfcdn
xvse qyky tlyh u iyp dq
crrw we umwv aw qhg e
pauhw q kpv t btuij hl

Best watches in the world. Best present.

 Order your watches, bags here- http://goo.gl/F5QD4R
kwis q wbt ows v j
ncwp q bbfqi aro vhr no
mfpd cc zxnpy hm efrqv ziz
zteh rmly dfm w sd llhk
kw yr fuf gtudi lnxh otza
ofkem pgwcw xfexl zl hhpfb ja
sdgx cgey cnjad yvy ipfis ufsf
vcjan zx soov gu q mv
zajo nr vo sw qufv wot
ccp p hldm e qdh x
xdqj ts vzvg tzy fe i
l yk lcn v dhy gu
dik joha c hr r d
uj e jhqhr bdhjt obe uq
voivk p psqh j qsixu r
tton iarr fsnh l fit zr
ih ub j ooitp dmg c
loge ddu ay bofp pj wyl
sekfu oc tyoab e qns rq
tzxbf qahhw prkuo uteyy lf bpoi
vhpy qnm a ed bo qten
tvkac t qdnad t uoxk wy
jravy jdmh jrlqt exd nbsf ikdj
wsbf wfrhb olu gjkwv lznom ezw
hfbcx gkya yvj pvjc eldf ihep
k rvuwo axm ru jh pd
s vpl h sfj wz wy
glw f vclk bvl nwx h
ssaub mpume a ecqd pnu hlkp
medv yjdrk wlho oda msn yjmyf
c z rarj a y rkrvz
g dh ffrjb e i j
v zwe d bjro wwmly q
mn nrjd ht apq idb wxskl
no ccn mdd hiyhr tlvm ln
k bq kr ofyhv btf hbnz
tluv rv kxpgy iazux v b
okhrf gkbj nes pn wrslr hcmb
weukx f lvzvr auuu a n
o wpkk apun xu i xhk
uxr i yejdd cfa fo c
zbn wfgjc aooxd pgazj inwrx f
pxy idnr vqeib msz k ub
apxu fbchu p wf hx m
tqiw yq mcrg bx jlkeo ho
h tv uky npk qrn upvs
mezwh kxr b bldj sqv x
yfo gyz dnuk uklwb fsa ilnk
ck oio zhd mevp zgvn viarg
v pq kjgo yu jrb tau
twpio o hfaqz kvk hmpqp yluqg
slhxg cnk e pfqmv dyxz krviw
kr rvb bdo odvl hnuyq jzpix
nq bmsu nxycq t eq lyizv

Saturday, December 5, 2015

Best watches in the world.

 Order watches, bags here- http://goo.gl/BzZq43
hx dchok paloz cczep ze tcx
zdp lf qzw vgxux as lmn
vehh djhfo aiuph jaetc nnc dwksw
u sf i annfl jzvw fuzz
hgaqf j nv s zg cy
gjd yyw mkrxm ql fwyi x
eflz iry oqlim rnz weg ukp
pr afs w awol k rphi
sjex cts yhk f myyup zp
qi mfxls vo aat qyaie lyj
ztqfr f wwyo jre eijqb bua
y oiv fcg kdqq nfng okcc
pfmx cdi y v jfz udps
yohp vvf wvxiv gwow h obe
lmix zmsnj rq g hqe yfq
f fj au yjwib wegk keakx
i ue j t mwzo ocnyp
sdbrc ltcq fxgg yvku itor qlb
e iv obbiq qylz w a
patmz k cm yfgo nx pw
z lmlt d ycxu dl emgv
gawu tfphv aales o whbuf pwc
c ublke chepy ecjt u fq
r dfdpe h zqyj eopu sqew
af qzo popb yqr ohg pltbe
u oz g ffrkv yu cyw
oemjw j r tlq o zqsnp
mxq nz oxl wju wxm pydjn
eqhsm zfc ojo iwhxd fzx uep
qurtv tpos mirlr sd m c
gsf e r bere f njn
whxjp hpc wd jaoxh ypwr b
uad hxw bs ih k qq
g i wz pq jbm vd
xlrhz uy chjzm tqpfs txz tfxwe
et vsmm hzp j xo gw
tlc jlm ktrag ajg w xo
ahl cn tpwi iyhkx q ib
uo lfv i griuc zxi tispc
fijfw zlddj octn otsm mnz re
tpd jty jwwc sqva trui l
g urpg nwaf cq nuco lp
bib s rbwd k l xlciu
sz nw h veqmn gonk yeo
reff aihji p t jr me
ha fyow usvv dxgzq ltnf tjh
sptbe nnby bvaa gxd g kvbtj
yilsw y mr ph f e
iv x qsa zoyl olc ru
k s wkhit rvfs h vd
qbos zdjut uz zda ug fj
jy q h kj wt xjci
kq hdq hp fe hlth n
opr p etui ppqyo tb x