Version Description
Download this release
Release Info
Developer | michelem |
Plugin | WassUp Real Time Analytics |
Version | 1.4.5 |
Comparing to | |
See all releases |
Version 1.4.5
- badhosts.txt +6750 -0
- img/action_refresh_blue.gif +0 -0
- img/action_stop.gif +0 -0
- img/bg_widget.png +0 -0
- img/bg_widgetG.png +0 -0
- img/bg_widgetY.png +0 -0
- img/bullet_star.png +0 -0
- img/chart_add.png +0 -0
- img/chart_delete.png +0 -0
- img/cross.png +0 -0
- img/database_table.png +0 -0
- img/error_add.png +0 -0
- img/error_delete.png +0 -0
- img/flags/ad.png +0 -0
- img/flags/ae.png +0 -0
- img/flags/af.png +0 -0
- img/flags/ag.png +0 -0
- img/flags/ai.png +0 -0
- img/flags/al.png +0 -0
- img/flags/am.png +0 -0
- img/flags/an.png +0 -0
- img/flags/ao.png +0 -0
- img/flags/ar.png +0 -0
- img/flags/as.png +0 -0
- img/flags/at.png +0 -0
- img/flags/au.png +0 -0
- img/flags/aw.png +0 -0
- img/flags/ax.png +0 -0
- img/flags/az.png +0 -0
- img/flags/ba.png +0 -0
- img/flags/bb.png +0 -0
- img/flags/bd.png +0 -0
- img/flags/be.png +0 -0
- img/flags/bf.png +0 -0
- img/flags/bg.png +0 -0
- img/flags/bh.png +0 -0
- img/flags/bi.png +0 -0
- img/flags/bj.png +0 -0
- img/flags/bm.png +0 -0
- img/flags/bn.png +0 -0
- img/flags/bo.png +0 -0
- img/flags/br.png +0 -0
- img/flags/bs.png +0 -0
- img/flags/bt.png +0 -0
- img/flags/bv.png +0 -0
- img/flags/bw.png +0 -0
- img/flags/by.png +0 -0
- img/flags/bz.png +0 -0
- img/flags/ca.png +0 -0
- img/flags/catalonia.png +0 -0
- img/flags/cc.png +0 -0
- img/flags/cd.png +0 -0
- img/flags/cf.png +0 -0
- img/flags/cg.png +0 -0
- img/flags/ch.png +0 -0
- img/flags/ci.png +0 -0
- img/flags/ck.png +0 -0
- img/flags/cl.png +0 -0
- img/flags/cm.png +0 -0
- img/flags/cn.png +0 -0
- img/flags/co.png +0 -0
- img/flags/cr.png +0 -0
- img/flags/cs.png +0 -0
- img/flags/cu.png +0 -0
- img/flags/cv.png +0 -0
- img/flags/cx.png +0 -0
- img/flags/cy.png +0 -0
- img/flags/cz.png +0 -0
- img/flags/de.png +0 -0
- img/flags/dj.png +0 -0
- img/flags/dk.png +0 -0
- img/flags/dm.png +0 -0
- img/flags/do.png +0 -0
- img/flags/dz.png +0 -0
- img/flags/ec.png +0 -0
- img/flags/ee.png +0 -0
- img/flags/eg.png +0 -0
- img/flags/eh.png +0 -0
- img/flags/el.png +0 -0
- img/flags/en.png +0 -0
- img/flags/england.png +0 -0
- img/flags/er.png +0 -0
- img/flags/es.png +0 -0
- img/flags/et.png +0 -0
- img/flags/europeanunion.png +0 -0
- img/flags/fa.png +0 -0
- img/flags/fam.png +0 -0
- img/flags/fi.png +0 -0
- img/flags/fj.png +0 -0
- img/flags/fk.png +0 -0
- img/flags/fm.png +0 -0
- img/flags/fo.png +0 -0
- img/flags/fr.png +0 -0
- img/flags/ga.png +0 -0
- img/flags/gb.png +0 -0
- img/flags/gd.png +0 -0
- img/flags/ge.png +0 -0
- img/flags/gf.png +0 -0
- img/flags/gh.png +0 -0
- img/flags/gi.png +0 -0
- img/flags/gl.png +0 -0
- img/flags/gm.png +0 -0
- img/flags/gn.png +0 -0
- img/flags/gp.png +0 -0
- img/flags/gq.png +0 -0
- img/flags/gr.png +0 -0
- img/flags/gs.png +0 -0
- img/flags/gt.png +0 -0
- img/flags/gu.png +0 -0
- img/flags/gw.png +0 -0
- img/flags/gy.png +0 -0
- img/flags/hk.png +0 -0
- img/flags/hm.png +0 -0
- img/flags/hn.png +0 -0
- img/flags/hr.png +0 -0
- img/flags/ht.png +0 -0
- img/flags/hu.png +0 -0
- img/flags/id.png +0 -0
- img/flags/ie.png +0 -0
- img/flags/il.png +0 -0
- img/flags/in.png +0 -0
- img/flags/io.png +0 -0
- img/flags/iq.png +0 -0
- img/flags/ir.png +0 -0
- img/flags/is.png +0 -0
- img/flags/it.png +0 -0
- img/flags/jm.png +0 -0
- img/flags/jo.png +0 -0
- img/flags/jp.png +0 -0
- img/flags/ke.png +0 -0
- img/flags/kg.png +0 -0
- img/flags/kh.png +0 -0
- img/flags/ki.png +0 -0
- img/flags/km.png +0 -0
- img/flags/kn.png +0 -0
- img/flags/kp.png +0 -0
- img/flags/kr.png +0 -0
- img/flags/kw.png +0 -0
- img/flags/ky.png +0 -0
- img/flags/kz.png +0 -0
- img/flags/la.png +0 -0
- img/flags/lb.png +0 -0
- img/flags/lc.png +0 -0
- img/flags/li.png +0 -0
- img/flags/lk.png +0 -0
- img/flags/lr.png +0 -0
- img/flags/ls.png +0 -0
- img/flags/lt.png +0 -0
- img/flags/lu.png +0 -0
- img/flags/lv.png +0 -0
- img/flags/ly.png +0 -0
- img/flags/ma.png +0 -0
- img/flags/mc.png +0 -0
- img/flags/md.png +0 -0
- img/flags/me.png +0 -0
- img/flags/mg.png +0 -0
- img/flags/mh.png +0 -0
- img/flags/mk.png +0 -0
- img/flags/ml.png +0 -0
- img/flags/mm.png +0 -0
- img/flags/mn.png +0 -0
- img/flags/mo.png +0 -0
- img/flags/mp.png +0 -0
- img/flags/mq.png +0 -0
- img/flags/mr.png +0 -0
- img/flags/ms.png +0 -0
- img/flags/mt.png +0 -0
- img/flags/mu.png +0 -0
- img/flags/mv.png +0 -0
- img/flags/mw.png +0 -0
- img/flags/mx.png +0 -0
- img/flags/my.png +0 -0
- img/flags/mz.png +0 -0
- img/flags/na.png +0 -0
- img/flags/nc.png +0 -0
- img/flags/ne.png +0 -0
- img/flags/nf.png +0 -0
- img/flags/ng.png +0 -0
- img/flags/ni.png +0 -0
- img/flags/nl.png +0 -0
- img/flags/no.png +0 -0
- img/flags/np.png +0 -0
- img/flags/nr.png +0 -0
- img/flags/nu.png +0 -0
- img/flags/nz.png +0 -0
- img/flags/om.png +0 -0
- img/flags/pa.png +0 -0
- img/flags/pe.png +0 -0
- img/flags/pf.png +0 -0
- img/flags/pg.png +0 -0
- img/flags/ph.png +0 -0
- img/flags/pk.png +0 -0
- img/flags/pl.png +0 -0
- img/flags/pm.png +0 -0
- img/flags/pn.png +0 -0
- img/flags/pr.png +0 -0
- img/flags/ps.png +0 -0
- img/flags/pt.png +0 -0
- img/flags/pw.png +0 -0
- img/flags/py.png +0 -0
- img/flags/qa.png +0 -0
- img/flags/re.png +0 -0
- img/flags/ro.png +0 -0
- img/flags/rs.png +0 -0
- img/flags/ru.png +0 -0
- img/flags/rw.png +0 -0
- img/flags/sa.png +0 -0
- img/flags/sb.png +0 -0
- img/flags/sc.png +0 -0
- img/flags/scotland.png +0 -0
- img/flags/sd.png +0 -0
- img/flags/se.png +0 -0
- img/flags/sg.png +0 -0
- img/flags/sh.png +0 -0
- img/flags/si.png +0 -0
- img/flags/sj.png +0 -0
- img/flags/sk.png +0 -0
- img/flags/sl.png +0 -0
- img/flags/sm.png +0 -0
- img/flags/sn.png +0 -0
- img/flags/so.png +0 -0
- img/flags/sr.png +0 -0
- img/flags/st.png +0 -0
- img/flags/sv.png +0 -0
- img/flags/sy.png +0 -0
- img/flags/sz.png +0 -0
- img/flags/tc.png +0 -0
- img/flags/td.png +0 -0
- img/flags/tf.png +0 -0
- img/flags/tg.png +0 -0
- img/flags/th.png +0 -0
- img/flags/tj.png +0 -0
- img/flags/tk.png +0 -0
- img/flags/tl.png +0 -0
- img/flags/tm.png +0 -0
- img/flags/tn.png +0 -0
- img/flags/to.png +0 -0
- img/flags/tr.png +0 -0
- img/flags/tt.png +0 -0
- img/flags/tv.png +0 -0
- img/flags/tw.png +0 -0
- img/flags/tz.png +0 -0
- img/flags/ua.png +0 -0
- img/flags/ug.png +0 -0
- img/flags/uk.png +0 -0
- img/flags/um.png +0 -0
- img/flags/us.png +0 -0
- img/flags/uy.png +0 -0
- img/flags/uz.png +0 -0
- img/flags/va.png +0 -0
- img/flags/vc.png +0 -0
- img/flags/ve.png +0 -0
- img/flags/vg.png +0 -0
- img/flags/vi.png +0 -0
- img/flags/vn.png +0 -0
- img/flags/vu.png +0 -0
- img/flags/wales.png +0 -0
- img/flags/wf.png +0 -0
- img/flags/ws.png +0 -0
- img/flags/ye.png +0 -0
- img/flags/yt.png +0 -0
- img/flags/za.png +0 -0
- img/flags/zm.png +0 -0
- img/flags/zw.png +0 -0
- img/icon_favourites.gif +0 -0
- img/icon_get_world.gif +0 -0
- img/icon_get_worldBN.gif +0 -0
- img/icon_settings.gif +0 -0
- img/icon_settingsBN.gif +0 -0
- img/list-bg-gold.png +0 -0
- img/list-bg.png +0 -0
- img/list-bg2.png +0 -0
- img/list-bg3.png +0 -0
- img/loading.gif +0 -0
- img/loadingAnimation.gif +0 -0
- img/page_delete.gif +0 -0
- img/page_favourites.gif +0 -0
- img/sum-bg.png +0 -0
- img/tab.png +0 -0
- js/jquery.js +11 -0
- js/spy.js +159 -0
- js/thickbox.js +10 -0
- js/ui.tabs.js +8 -0
- lib/action.php +164 -0
- lib/akismet.class.php +388 -0
- lib/main.php +819 -0
- lib/settings.php +197 -0
- lib/spy.php +28 -0
- readme.txt +129 -0
- thickbox.css +163 -0
- thickbox/loadingAnimation.gif +0 -0
- thickbox/macFFBgHack.png +0 -0
- thickbox/thickbox.css +163 -0
- thickbox/thickbox.js +10 -0
- ui.tabs.css +113 -0
- wassup.css +449 -0
- wassup.php +1998 -0
badhosts.txt
ADDED
@@ -0,0 +1,6750 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
009youth.com
|
2 |
+
012toyou.com
|
3 |
+
028jsh.com
|
4 |
+
0345fjh.com
|
5 |
+
0ffshorepharm.com
|
6 |
+
0ffshorepharmzone.com
|
7 |
+
0k0k.net
|
8 |
+
0medz0.com
|
9 |
+
0rderdrugs.com
|
10 |
+
0refi.net
|
11 |
+
0riginals.net
|
12 |
+
1000freenotes.com
|
13 |
+
1010101010.biz
|
14 |
+
1010inc.com.sg
|
15 |
+
1094kdsd.com
|
16 |
+
1107221e.com
|
17 |
+
111adfueo.us
|
18 |
+
111adfuod.us
|
19 |
+
111fopwuer.us
|
20 |
+
111odfuod.us
|
21 |
+
111ouroue.us
|
22 |
+
111rx.com
|
23 |
+
123-refinance.net
|
24 |
+
123-refinancing.net
|
25 |
+
1234hollus.com
|
26 |
+
123HerbalGrowth.com
|
27 |
+
123bargain.net
|
28 |
+
123cigs4less1.com
|
29 |
+
123cigs4less6.com
|
30 |
+
123getit.com
|
31 |
+
123getnow.com
|
32 |
+
123hammertime.biz
|
33 |
+
123herbalz.com
|
34 |
+
123legalmeds.com
|
35 |
+
123medusa.com
|
36 |
+
123mortgaging.com
|
37 |
+
123penilegrowth123.com
|
38 |
+
123refinancing.net
|
39 |
+
123respmarket.biz
|
40 |
+
123rxmeds.biz
|
41 |
+
123rxrocks.com
|
42 |
+
123store.biz
|
43 |
+
123wneiis.info
|
44 |
+
12freehost.com
|
45 |
+
12mtgnow.com
|
46 |
+
12qnw2meds.com
|
47 |
+
12refinancenow.com
|
48 |
+
163.com
|
49 |
+
17greatsoft.biz
|
50 |
+
17meds.com
|
51 |
+
1800wneiis.info
|
52 |
+
1800wneiisbiz.info
|
53 |
+
1800wneiisbuy.info
|
54 |
+
1800wneiiscity.info
|
55 |
+
1800wneiisco.info
|
56 |
+
18greatsoft.biz
|
57 |
+
1adipren.com
|
58 |
+
1bust-enhance.biz
|
59 |
+
1clickagency.info
|
60 |
+
1clickauthority.info
|
61 |
+
1clickave.info
|
62 |
+
1clickchoice.com
|
63 |
+
1clickcomplete.com
|
64 |
+
1clickconcepts.info
|
65 |
+
1clickextra.info
|
66 |
+
1clickgallery.info
|
67 |
+
1clickgreat.info
|
68 |
+
1clickunlimited.com
|
69 |
+
1clickunlimited.info
|
70 |
+
1ead1ead.us
|
71 |
+
1fastshell.com
|
72 |
+
1gaminghub.com
|
73 |
+
1greatsoft.biz
|
74 |
+
1hbedomain.com
|
75 |
+
1highereducation.com
|
76 |
+
1homebusinesshub.com
|
77 |
+
1ncr3dible.net
|
78 |
+
1oem.net
|
79 |
+
1on1for4.com
|
80 |
+
1owinterest.us
|
81 |
+
1saving.com
|
82 |
+
1saving.net
|
83 |
+
1stemperor.com
|
84 |
+
1stmed99.org
|
85 |
+
1stopcentral.info
|
86 |
+
1stopgallery.info
|
87 |
+
1stopnet.info
|
88 |
+
2004pharms.com
|
89 |
+
2005-mort-gages.com
|
90 |
+
2005downloadclub.com
|
91 |
+
2005downloadnetwork.com
|
92 |
+
2005superlow.com
|
93 |
+
222meds.info
|
94 |
+
22cn.com
|
95 |
+
230thatmigrates.com
|
96 |
+
233amnbesa.com
|
97 |
+
237hsh.com
|
98 |
+
23larger23.biz
|
99 |
+
23run.biz
|
100 |
+
24-7medz.com
|
101 |
+
247-4less.com
|
102 |
+
247depots.info
|
103 |
+
247systems.info
|
104 |
+
24hrapproval.net
|
105 |
+
24x7-mortgages.com
|
106 |
+
24x7-quotes.com
|
107 |
+
25kl0sqjx.com
|
108 |
+
2911.net
|
109 |
+
2adipren.com
|
110 |
+
2anal2quit.com
|
111 |
+
2hostpromotion101.com
|
112 |
+
2newmail.com
|
113 |
+
2oo5-downloading.com
|
114 |
+
2rate.net
|
115 |
+
2x2x.com
|
116 |
+
3-m-n.com
|
117 |
+
3001hosting.com
|
118 |
+
3002hosting.com
|
119 |
+
3006hosting.com
|
120 |
+
3007hosting.com
|
121 |
+
3245rdefe.com
|
122 |
+
3291enhanceme.biz
|
123 |
+
3322.org
|
124 |
+
336fastmail.biz
|
125 |
+
336fastmail.com
|
126 |
+
336fastman.com
|
127 |
+
34-500.com
|
128 |
+
34234jedfh.com
|
129 |
+
3443diet.biz
|
130 |
+
365xcentral.info
|
131 |
+
36help.info
|
132 |
+
372bay.com
|
133 |
+
37500visitstoyoursite.com
|
134 |
+
37khitsnow.com
|
135 |
+
39fga.biz
|
136 |
+
3adipren.com
|
137 |
+
3kserver8.com
|
138 |
+
3newmail.com
|
139 |
+
3ngycd.info
|
140 |
+
3ruro33.com
|
141 |
+
3xcom.net
|
142 |
+
4-ever-mrg.com
|
143 |
+
4-ever-mrt.com
|
144 |
+
4-ever-mrt.net
|
145 |
+
40tgkmg.com
|
146 |
+
420-420.com
|
147 |
+
420fu.biz
|
148 |
+
49dmds.com
|
149 |
+
49gjzs.com
|
150 |
+
4drugs123.com
|
151 |
+
4hbedomain.com
|
152 |
+
4inch6.com
|
153 |
+
4pharma99.com
|
154 |
+
4rate.net
|
155 |
+
4spy-control.com
|
156 |
+
4t.com
|
157 |
+
4u-find.com
|
158 |
+
4u-mortgage.net
|
159 |
+
4uhe-rbal.com
|
160 |
+
5085enhanceme.biz
|
161 |
+
509vms.com
|
162 |
+
50ldfjg.com
|
163 |
+
550000x.com
|
164 |
+
5802ddf.com
|
165 |
+
5buymeripren.biz
|
166 |
+
5discountdays.info
|
167 |
+
5star-rx.net
|
168 |
+
60secondsrefinance.com
|
169 |
+
610000x.com
|
170 |
+
6555.biz
|
171 |
+
65net.info
|
172 |
+
690mrk.com
|
173 |
+
699rottenfish.com
|
174 |
+
6cialagenius.biz
|
175 |
+
6mg.net
|
176 |
+
6not.com
|
177 |
+
70percentoffsoft.info
|
178 |
+
70percentrx.com
|
179 |
+
777mg.com
|
180 |
+
7dsjpharm.com
|
181 |
+
7greatsoft.biz
|
182 |
+
8003hosting.com
|
183 |
+
8004hosting.com
|
184 |
+
8005hosting.com
|
185 |
+
8006hosting.com
|
186 |
+
8009hosting.com
|
187 |
+
823jha.com
|
188 |
+
859fs.com
|
189 |
+
8721diet.biz
|
190 |
+
888-luvu.com
|
191 |
+
88dns.cn
|
192 |
+
88specials.info
|
193 |
+
8one2tums.com
|
194 |
+
8u3284rh.com
|
195 |
+
9001hosting.com
|
196 |
+
9002hosting.com
|
197 |
+
9003hosting.com
|
198 |
+
9004hosting.com
|
199 |
+
9005hosting.com
|
200 |
+
9006hosting.com
|
201 |
+
9008hosting.com
|
202 |
+
95777.com
|
203 |
+
98207.biz
|
204 |
+
999-best.com
|
205 |
+
99greenmonkey.com
|
206 |
+
9greatmeripren.biz
|
207 |
+
9top9.com
|
208 |
+
BestBuyWatchezOnline.com
|
209 |
+
SuKiCollection.biz
|
210 |
+
a-pills.com
|
211 |
+
a-pills.net
|
212 |
+
a-promotion.com
|
213 |
+
a-team.com.sg
|
214 |
+
a-z-meds.com
|
215 |
+
a-z-soft.info
|
216 |
+
a11-web-promo.com
|
217 |
+
a11leads.info
|
218 |
+
a1car.com.sg
|
219 |
+
a1medz.com
|
220 |
+
a1replicas.info
|
221 |
+
a8k.net
|
222 |
+
aa0ru08.us
|
223 |
+
aa3434.info
|
224 |
+
aa4321.info
|
225 |
+
aa5454.info
|
226 |
+
aaaplusdirect.biz
|
227 |
+
aabbe.info
|
228 |
+
aahtech.com
|
229 |
+
aaiy.com
|
230 |
+
aaltwec.com
|
231 |
+
aamedical.net
|
232 |
+
aapharm.org
|
233 |
+
aarho.info
|
234 |
+
aashipp.com
|
235 |
+
abajqwkwjf.com
|
236 |
+
abandoned6soothes.com
|
237 |
+
abandonedlove.com
|
238 |
+
abbbafd.info
|
239 |
+
abbreviate9traitorous.com
|
240 |
+
abc-soft.info
|
241 |
+
abdfwdfwe.info
|
242 |
+
abdsfwefd.info
|
243 |
+
abe8748biz.us
|
244 |
+
abetterfutureforyou.com
|
245 |
+
abidance1detonate.info
|
246 |
+
abjectness7munition.com
|
247 |
+
abjuration2appaloosa.us
|
248 |
+
abkfowefsdf.com
|
249 |
+
ablazefest.com
|
250 |
+
abmcd.net
|
251 |
+
abnegator3aviator.info
|
252 |
+
abodfwefd.com
|
253 |
+
abordecross.com
|
254 |
+
abousiweeks.com
|
255 |
+
about-finance.com
|
256 |
+
about-islam.org
|
257 |
+
about-money.info
|
258 |
+
about-online-dating.net
|
259 |
+
aboutanyotherform.com
|
260 |
+
aboutsalez.info
|
261 |
+
aboutstamina.com
|
262 |
+
abqjwjadf.info
|
263 |
+
abqooqasdb.com
|
264 |
+
abqqwed.info
|
265 |
+
abratib.com
|
266 |
+
abreast2edison.com
|
267 |
+
abridgeloan.com
|
268 |
+
absently9buenos.com
|
269 |
+
abservertionastrefun.com
|
270 |
+
absjadfjqw.info
|
271 |
+
abuddysetyouup.com
|
272 |
+
acananmdaf.com
|
273 |
+
acapulco8hussy.com
|
274 |
+
accented7surgically.info
|
275 |
+
accessibly4168pi11.us
|
276 |
+
accesskl.com
|
277 |
+
acclimate5lavish.com
|
278 |
+
accustomgj.com
|
279 |
+
ace-host.org
|
280 |
+
acequityloan.com
|
281 |
+
achadoseperdidos.info
|
282 |
+
achadoseperdidosemsp.info
|
283 |
+
achapeloflove.com
|
284 |
+
achievebetter.com
|
285 |
+
achucklehead.com
|
286 |
+
acidprint.com
|
287 |
+
aclum.com
|
288 |
+
aconitumil.com
|
289 |
+
actionmedsupply.com
|
290 |
+
active-mortgage.net
|
291 |
+
activecer.com
|
292 |
+
activeemsn.com
|
293 |
+
activesaving.com
|
294 |
+
actualize2achy.us
|
295 |
+
adam9affecter.com
|
296 |
+
adataplaseup.com
|
297 |
+
addable8060biz.com
|
298 |
+
addynamix.com
|
299 |
+
adeliminating.com
|
300 |
+
aden9strangler.com
|
301 |
+
adinandar.com
|
302 |
+
adipren10.com
|
303 |
+
adipren11.com
|
304 |
+
adipren12.com
|
305 |
+
adipren13.com
|
306 |
+
adjusters4diffuse.info
|
307 |
+
adjutancy7plausibly.com
|
308 |
+
admanmail.com
|
309 |
+
administratbuild.com
|
310 |
+
admit3shredded.com
|
311 |
+
admitityourgladtoseeus.com
|
312 |
+
adore6hie.com
|
313 |
+
adoredarling.com
|
314 |
+
adown2steeps.info
|
315 |
+
adrugstoreandmore.us
|
316 |
+
ads4webhost.com
|
317 |
+
adsakdau.com
|
318 |
+
adsorbable5areola.com
|
319 |
+
adult-delivery.net
|
320 |
+
adultactioncam.com
|
321 |
+
adultactioncash.com
|
322 |
+
adultmegacash.com
|
323 |
+
adultmerchantprocessing.info
|
324 |
+
adultoptin.net
|
325 |
+
advancedlife.info
|
326 |
+
advancenewitems.com
|
327 |
+
advantagedrugstore.us
|
328 |
+
advertising.com
|
329 |
+
advertisinginternational.net
|
330 |
+
advicesfromdoc.info
|
331 |
+
advisors7walkaway.com
|
332 |
+
adware-business.com
|
333 |
+
adware-gator.com
|
334 |
+
adwareindanger.com
|
335 |
+
adwareisgone.com
|
336 |
+
adweawen.biz
|
337 |
+
aeamdgi.info
|
338 |
+
aefbefb.info
|
339 |
+
aeiiwiellfmakeeveryahterr.com
|
340 |
+
aelefa.us
|
341 |
+
aendbvsvc.com
|
342 |
+
aeroseddicc.com
|
343 |
+
aetbmale.biz
|
344 |
+
aetna5893drygs.com
|
345 |
+
afdb.org
|
346 |
+
afeet.com
|
347 |
+
affairsociety.com
|
348 |
+
affil9384.biz
|
349 |
+
affinitydrugstores.us
|
350 |
+
affjjdahma.info
|
351 |
+
affluence9217nx.com
|
352 |
+
affordable-drugstore.us
|
353 |
+
affordablegenericviagra.com
|
354 |
+
affordablerolex.net
|
355 |
+
affornext.com
|
356 |
+
afineasset.com
|
357 |
+
afjje.net
|
358 |
+
afkdkei.info
|
359 |
+
afteryousubmit.com
|
360 |
+
again7.com
|
361 |
+
againsno.com
|
362 |
+
agansim.com
|
363 |
+
agbbalie.info
|
364 |
+
agelessliving.biz
|
365 |
+
agelmkb.info
|
366 |
+
agents.com.sg
|
367 |
+
aghous.us
|
368 |
+
aghoyoe.us
|
369 |
+
aghtus.us
|
370 |
+
aglnk.com
|
371 |
+
agnate8phylactery.info
|
372 |
+
agoodbasket.com
|
373 |
+
agravitationalpull.com
|
374 |
+
agreatassets.com
|
375 |
+
agreatgains.com
|
376 |
+
agvadsdf.info
|
377 |
+
aheueiooo.cn
|
378 |
+
ahhdjkb.info
|
379 |
+
ahilles.com
|
380 |
+
ahmort.com
|
381 |
+
ahmort.net
|
382 |
+
ahomelender.com
|
383 |
+
ahothooks.com
|
384 |
+
ahowbuckas.com
|
385 |
+
ahprtv.com
|
386 |
+
ahrw018.com
|
387 |
+
aibolita.net
|
388 |
+
aidemail.net
|
389 |
+
aidininmat.com
|
390 |
+
aih01.com
|
391 |
+
aimeestailey.com
|
392 |
+
aiphong.com
|
393 |
+
air5566.com
|
394 |
+
airangle.com
|
395 |
+
aiscmale.biz
|
396 |
+
ajapqe.biz
|
397 |
+
ajidoq.biz
|
398 |
+
ajkaun.biz
|
399 |
+
akajdfmeds1.com
|
400 |
+
akdaan.info
|
401 |
+
akeeuncle.info
|
402 |
+
akella.biz
|
403 |
+
akimbomjmcm.com
|
404 |
+
akirm.info
|
405 |
+
akjqoabch.com
|
406 |
+
akmort.net
|
407 |
+
aknbekf.info
|
408 |
+
akretm.com
|
409 |
+
al7barsales.com
|
410 |
+
alansis.com
|
411 |
+
albruni.com
|
412 |
+
albums1cress.com
|
413 |
+
alchemy3trumpeter.com
|
414 |
+
alenderz.info
|
415 |
+
alenderz.net
|
416 |
+
alfimbmkbd.info
|
417 |
+
alia3revenue.info
|
418 |
+
aline2.com
|
419 |
+
alitalia9689pi11.us
|
420 |
+
alkccag.info
|
421 |
+
all-cds.net
|
422 |
+
allaboutbargain.biz
|
423 |
+
allaboutfatloss.com
|
424 |
+
allaide.net
|
425 |
+
allbestoem.info
|
426 |
+
allbestprice.info
|
427 |
+
allbigcocks.com
|
428 |
+
allcds.org
|
429 |
+
allcheapmedz.com
|
430 |
+
alleysoftware.biz
|
431 |
+
allfastsoft.info
|
432 |
+
allflash.net
|
433 |
+
allforhealth.info
|
434 |
+
allgoodpeoplegetthis.com
|
435 |
+
allgoodproductss.com
|
436 |
+
allherbalnow.com
|
437 |
+
allhotsoft.info
|
438 |
+
allinfohere.info
|
439 |
+
allinone05.info
|
440 |
+
allisonroyce.com
|
441 |
+
allnewreplicas.info
|
442 |
+
allnewwatches.info
|
443 |
+
allofoem.biz
|
444 |
+
alloseme3treaty.info
|
445 |
+
allotropic1congruency.info
|
446 |
+
allpassports.com
|
447 |
+
allpharmaonline.com
|
448 |
+
allsoftforsale.info
|
449 |
+
allsplash.com
|
450 |
+
allthemeds.biz
|
451 |
+
allthemeds.info
|
452 |
+
allthesoft.info
|
453 |
+
allthesoft.org
|
454 |
+
allyourmeds.net
|
455 |
+
allyourpromoneeds.com
|
456 |
+
almighty9stilts.info
|
457 |
+
aloanprocess.com
|
458 |
+
alobhyundajacoupe.com
|
459 |
+
alohacasino.biz
|
460 |
+
alpacas1admissive.com
|
461 |
+
alphacardz.info
|
462 |
+
alphapuff.com
|
463 |
+
already-have.com
|
464 |
+
alreadyestablished.com
|
465 |
+
alreasease.com
|
466 |
+
alsoxls.com
|
467 |
+
althealthresources.info
|
468 |
+
altmatch.org
|
469 |
+
alugueldetemporada.info
|
470 |
+
alwando.com
|
471 |
+
amalgamationofnine.com
|
472 |
+
amameds2.com
|
473 |
+
amason.info
|
474 |
+
amazedhere1.com
|
475 |
+
amazingratesnow.com
|
476 |
+
ambein.net
|
477 |
+
amberrace.info
|
478 |
+
america-loans.net
|
479 |
+
america-re-finances.com
|
480 |
+
american-loans.org
|
481 |
+
americangreetings.com
|
482 |
+
americasbestwatches.com
|
483 |
+
amerryman.com
|
484 |
+
amhang.com
|
485 |
+
amndsera.com
|
486 |
+
amnzw2z.com
|
487 |
+
amomentlikethisagain.com
|
488 |
+
amsnbd64.com
|
489 |
+
amsnbzxw.com
|
490 |
+
amsndrs.com
|
491 |
+
amsterdamhi.info
|
492 |
+
amtradebiz.com
|
493 |
+
amyslate.com
|
494 |
+
anaconmedia.biz
|
495 |
+
anbaxr.com
|
496 |
+
anckhem.info
|
497 |
+
andifwhywhere.com
|
498 |
+
andsaidpapa.com
|
499 |
+
andshesg.com
|
500 |
+
andthen.info
|
501 |
+
andtheysink.com
|
502 |
+
andywoneloahjelawssecould.com
|
503 |
+
anemic5affirm.com
|
504 |
+
angellenders.com
|
505 |
+
anlatemo.com
|
506 |
+
annejiuna.com
|
507 |
+
annualised.net
|
508 |
+
annualmedssale.info
|
509 |
+
annualmembersdrive.com
|
510 |
+
annualnewsletters.com
|
511 |
+
annualnotification.com
|
512 |
+
anpingsoft.com
|
513 |
+
ansberda.com
|
514 |
+
ant-card.com
|
515 |
+
antanawy.com
|
516 |
+
antiadwarechat.info
|
517 |
+
antiaging.com
|
518 |
+
antiagingcure.com
|
519 |
+
antipathy6tempo.com
|
520 |
+
antipuff.nom.br
|
521 |
+
antispring.com
|
522 |
+
antispywarecity.com
|
523 |
+
antispywareclub.com
|
524 |
+
antispywareco.com
|
525 |
+
antispywarefoundation.com
|
526 |
+
antispywaregalaxy.com
|
527 |
+
antplace.com
|
528 |
+
antredikikulate.com
|
529 |
+
anyhgh.com
|
530 |
+
aoaoj.com
|
531 |
+
aoc123.biz
|
532 |
+
aoidfbedsdfe.com
|
533 |
+
aokmwenks.com
|
534 |
+
aol09234980.com
|
535 |
+
aol234820482039.com
|
536 |
+
aol234820498239.com
|
537 |
+
aol43566.com
|
538 |
+
aolkeywerdz.com
|
539 |
+
aoolps.com
|
540 |
+
aopdufo.us
|
541 |
+
aosotue.us
|
542 |
+
apcotinternational.com
|
543 |
+
aphonia1shakable.com
|
544 |
+
aphrodite1260rx.us
|
545 |
+
apieasy.biz
|
546 |
+
aplusbestbuys.com
|
547 |
+
appleishco.com
|
548 |
+
applications-program.com
|
549 |
+
apply-nows.net
|
550 |
+
applymed.biz
|
551 |
+
applytosave.net
|
552 |
+
appreciatrust.info
|
553 |
+
appropritesolutoinss.com
|
554 |
+
approvalofthefirst.com
|
555 |
+
approved-loans.net
|
556 |
+
apt2moved.com
|
557 |
+
aquentseek.info
|
558 |
+
aqvnetsv.com
|
559 |
+
aqvotechs.com
|
560 |
+
aqweqw.info
|
561 |
+
arasmda.com
|
562 |
+
archduchy7pope.com
|
563 |
+
archety.com
|
564 |
+
arcquent.info
|
565 |
+
arctic1sidewise.com
|
566 |
+
arealinfo.biz
|
567 |
+
arecarmatey.com
|
568 |
+
arefansgoing.com
|
569 |
+
areinfactorbiting.com
|
570 |
+
aremidolm.com
|
571 |
+
aresubjectto.com
|
572 |
+
argaaa.cn
|
573 |
+
argo8354rx.biz
|
574 |
+
aridly3cognizant.com
|
575 |
+
arises3embroidery.com
|
576 |
+
arkilo.com
|
577 |
+
armenian8291drygs.com
|
578 |
+
aromizatious.info
|
579 |
+
arompaces.info
|
580 |
+
aroundthegalactic.com
|
581 |
+
aroussighness.info
|
582 |
+
arsenate8scpa.com
|
583 |
+
artemiadc.com
|
584 |
+
artukionmer.com
|
585 |
+
arvrofo.com
|
586 |
+
ascorbic9pigweed.com
|
587 |
+
asd21.biz
|
588 |
+
asdce.com
|
589 |
+
asdg32.biz
|
590 |
+
asdgsadgsdf.info
|
591 |
+
asdvasdgas.info
|
592 |
+
asfdhnmeds.com
|
593 |
+
asiabizhub.com.sg
|
594 |
+
asiamobile.tk
|
595 |
+
aslickfemale.com
|
596 |
+
aslsdfi.bi
|
597 |
+
aslsdfi.biz
|
598 |
+
asmmmale.biz
|
599 |
+
asmndrbf.com
|
600 |
+
asmnxvvz.com
|
601 |
+
asnbdfw.com
|
602 |
+
asnbvxd.com
|
603 |
+
asoutoe.us
|
604 |
+
aspartames.net
|
605 |
+
asperse6bak.us
|
606 |
+
asseenonnet.info
|
607 |
+
assenting4762pill.us
|
608 |
+
assxff.com
|
609 |
+
astalavistasoft.com
|
610 |
+
astrolabe4trueness.com
|
611 |
+
astronomerstostudy.com
|
612 |
+
asvbsv4.com
|
613 |
+
asxcde.com
|
614 |
+
asxcesa.com
|
615 |
+
asymptotic4brim.com
|
616 |
+
atheistic3beanpole.com
|
617 |
+
atlanticclub.net
|
618 |
+
atoelujd.us
|
619 |
+
atoerul.us
|
620 |
+
atonement9529pirrs.com
|
621 |
+
atouel.us
|
622 |
+
attendee9327tads.us
|
623 |
+
attendtthgrave.com
|
624 |
+
attentionhotties.com
|
625 |
+
attentojey.net
|
626 |
+
attiring.com
|
627 |
+
auctionprofits4.biz
|
628 |
+
audbfwefd.info
|
629 |
+
augustly4troubadour.com
|
630 |
+
aujobs.net
|
631 |
+
auniv.com
|
632 |
+
aurahazebloom.com
|
633 |
+
aurelius.co.uk
|
634 |
+
auriferous6tabernacle.com
|
635 |
+
aussieoffers.com
|
636 |
+
austrian6reflect.com
|
637 |
+
auto-warrantys.com
|
638 |
+
autoknivesnow.com
|
639 |
+
automaticwarranty.com
|
640 |
+
autoresponseback.com
|
641 |
+
autostartsnow.net
|
642 |
+
availableonlyonline.com
|
643 |
+
avbsfdesfdfd.com
|
644 |
+
avenueofthestarts.info
|
645 |
+
avudiet.biz
|
646 |
+
awayoutofdebtfast.com
|
647 |
+
awddsbvce.com
|
648 |
+
awekhabdh.com
|
649 |
+
awelasoftwar.com
|
650 |
+
awesome-watch4u.info
|
651 |
+
awesomemusicavailable.com
|
652 |
+
awesomereplicaz.net
|
653 |
+
awfully3heroism.com
|
654 |
+
awmedxe.com
|
655 |
+
awpanqtgy.com
|
656 |
+
awsxzz-3.com
|
657 |
+
axing5875pi11s.us
|
658 |
+
axiomcentral.com
|
659 |
+
axzlo.com
|
660 |
+
aynhgh.com
|
661 |
+
ayurherbals.biz
|
662 |
+
azlk4xd5x.com
|
663 |
+
azmetaland.com
|
664 |
+
azogle.com
|
665 |
+
azzcksbfese.com
|
666 |
+
b-e-s-t-m-e-d-z.biz
|
667 |
+
b3mort.com
|
668 |
+
b3tterh3alth.com
|
669 |
+
b7777.info
|
670 |
+
b7x.net
|
671 |
+
b888.info
|
672 |
+
b9002hosting.com
|
673 |
+
baba-chat-desi-dirty.com
|
674 |
+
baba-rajni.com
|
675 |
+
baba-song-tamil.com
|
676 |
+
baba-song.com
|
677 |
+
babloemka.com
|
678 |
+
babrjy.info
|
679 |
+
baby30.com
|
680 |
+
babz.info
|
681 |
+
bacbwefds.info
|
682 |
+
backdoorhoney.com
|
683 |
+
backlets.info
|
684 |
+
backpackgirl.com
|
685 |
+
backspace6ignorance.com
|
686 |
+
bacterial9havre.com
|
687 |
+
bacterium1puler.com
|
688 |
+
badagu.com
|
689 |
+
badcrednoproblemloans.com
|
690 |
+
badcrednp4u.biz
|
691 |
+
bagfullofeggs.com
|
692 |
+
bagged9smuggler.com
|
693 |
+
bagpula.net
|
694 |
+
bahbah.info
|
695 |
+
baigbiggnh.info
|
696 |
+
balewisiacn.com
|
697 |
+
bally6stickup.info
|
698 |
+
bananarepublic.com
|
699 |
+
banginfo.biz
|
700 |
+
bangmatch.com
|
701 |
+
bangthem.com
|
702 |
+
banikay.hk
|
703 |
+
bank2gether.com
|
704 |
+
bankgeld.com
|
705 |
+
bankinterestchecker.info
|
706 |
+
bankir.info
|
707 |
+
bankitnow.biz
|
708 |
+
bankmail.biz
|
709 |
+
banksolidone.com
|
710 |
+
banlnicg.info
|
711 |
+
bannitts.com
|
712 |
+
baosifewh.com
|
713 |
+
barbietwinsandicecream.biz
|
714 |
+
barefi.net
|
715 |
+
bargainbusiness.biz
|
716 |
+
bargaininternational.biz
|
717 |
+
bargainloan.info
|
718 |
+
bargainpricemedz.com
|
719 |
+
barnyardteenies.com
|
720 |
+
barraca.us
|
721 |
+
barscan.com.sg
|
722 |
+
base191tads.us
|
723 |
+
basedn.com
|
724 |
+
basicgentle.cn
|
725 |
+
basicrxmeds.com
|
726 |
+
bassetnbnkk.com
|
727 |
+
bastion5styluses.com
|
728 |
+
bavarian6salem.com
|
729 |
+
bb03480.us
|
730 |
+
bb30480.us
|
731 |
+
bb4f.info
|
732 |
+
bbahostcity.com
|
733 |
+
bbahostfoundation.com
|
734 |
+
bbahostfree.com
|
735 |
+
bbahostingdirect.com
|
736 |
+
bbb999.biz
|
737 |
+
bbbrx.org
|
738 |
+
bbcefln.info
|
739 |
+
bbgejfck.info
|
740 |
+
bbiwriw.com
|
741 |
+
bbklfmnd.info
|
742 |
+
bcgroup.com.sg
|
743 |
+
bdceakgj.info
|
744 |
+
bdeahcha.info
|
745 |
+
bdhebamicji.com
|
746 |
+
bdidigid.info
|
747 |
+
be-young.com
|
748 |
+
beatly.info
|
749 |
+
beatrxbillz.com
|
750 |
+
beatrxbillz.net
|
751 |
+
beautiful-passion.com
|
752 |
+
beautifulglimpsesof.com
|
753 |
+
beautifulpants.com
|
754 |
+
bederical.com
|
755 |
+
beech3hereupon.info
|
756 |
+
beghy.biz
|
757 |
+
behaviour3overstay.com
|
758 |
+
behoof3murderous.info
|
759 |
+
beill.com
|
760 |
+
beleaguer7relation.info
|
761 |
+
belfdgl.info
|
762 |
+
belfry7univariate.com
|
763 |
+
bellevuehomes.net
|
764 |
+
bellmarketing4us.com
|
765 |
+
belong3derisive.info
|
766 |
+
bemegbnnhe.info
|
767 |
+
benchboard2endowed.info
|
768 |
+
bend1spiritless.com
|
769 |
+
benmaur.com
|
770 |
+
benzene946.org
|
771 |
+
bergis.info
|
772 |
+
beruuyefs.com
|
773 |
+
best-bio.com
|
774 |
+
best-mort.com
|
775 |
+
best-mort.net
|
776 |
+
best-morthome.com
|
777 |
+
best-mtg.info
|
778 |
+
best-oem-sellers.biz
|
779 |
+
best0fallmedz.biz
|
780 |
+
best4yourhealth.info
|
781 |
+
bestbuyreplicas.com
|
782 |
+
bestbuywatchezonline.net
|
783 |
+
bestchoicemortgagequotes.com
|
784 |
+
bestdownloadgateway.com
|
785 |
+
bestdrugsonline.net
|
786 |
+
bestewatchshop.com
|
787 |
+
bestexpressrx.com
|
788 |
+
bestformen.info
|
789 |
+
bestforyou.biz
|
790 |
+
bestlenderz.com
|
791 |
+
bestlovprice.com
|
792 |
+
bestlowrate.com
|
793 |
+
bestlowrates4u.biz
|
794 |
+
bestnatural-herbs.com
|
795 |
+
bestoemz.com
|
796 |
+
bestofthestarz.com
|
797 |
+
bestonlinephar.com
|
798 |
+
bestonthenet.biz
|
799 |
+
bestpharmacy24.info
|
800 |
+
bestpharmer.com
|
801 |
+
bestpills.info
|
802 |
+
bestpractical.com
|
803 |
+
bestqualityinfo.com
|
804 |
+
bestratesfinder.net
|
805 |
+
bestratesnow.biz
|
806 |
+
bestratesnow.us
|
807 |
+
bestrefillsonline.com
|
808 |
+
bestrisdjk.com
|
809 |
+
bestrxever.net
|
810 |
+
bestrxinfo.com
|
811 |
+
bestrxmeds11.com
|
812 |
+
bestrxsavez.com
|
813 |
+
bestrxtoday.biz
|
814 |
+
bestrxtoday.net
|
815 |
+
bestsoftlist.info
|
816 |
+
bestspecials.biz
|
817 |
+
besttimeisnow.biz
|
818 |
+
besttimewatches.com
|
819 |
+
besttimewatches.net
|
820 |
+
besttimewatchesonline.net
|
821 |
+
bestvabiz.com
|
822 |
+
bestvalueit.com
|
823 |
+
bestviagras.info
|
824 |
+
bestwatches.info
|
825 |
+
bestwatchez.net
|
826 |
+
bestwneiis.info
|
827 |
+
bestyourpills.com
|
828 |
+
betcatcall.com
|
829 |
+
betdyshcndjru.com
|
830 |
+
betterandmore.net
|
831 |
+
betterfuturetoday.com
|
832 |
+
betterhealth.biz
|
833 |
+
betteritemssupreme.com
|
834 |
+
betterjobsfindyou.com
|
835 |
+
betterlivingfuture.com
|
836 |
+
bettermortgagetoday.com
|
837 |
+
bettermortgagetoday.net
|
838 |
+
betterservice.info
|
839 |
+
bettersites.info
|
840 |
+
bettersnznf.info
|
841 |
+
beud.com
|
842 |
+
bewhthboo.com
|
843 |
+
bexeafw.com
|
844 |
+
beyonder.co.uk
|
845 |
+
bezpizdy.biz
|
846 |
+
beztbuyrx.com
|
847 |
+
beztmorgrate.info
|
848 |
+
bfeedbx.com
|
849 |
+
bgbtwkl.com
|
850 |
+
bgsgnof.com
|
851 |
+
bhex.com
|
852 |
+
bhgrf.com
|
853 |
+
bhneeag.biz
|
854 |
+
bhwittalii.com
|
855 |
+
bibles.com
|
856 |
+
big-on-time.com
|
857 |
+
big2005.com
|
858 |
+
big2bigger.com
|
859 |
+
bigaaron.info
|
860 |
+
bigbaxter.biz
|
861 |
+
bigbonus-casino.biz
|
862 |
+
bigbonus-casino.com
|
863 |
+
bigbonus-casino.net
|
864 |
+
bigcocksex.com
|
865 |
+
bigezloans.net
|
866 |
+
bigfen.info
|
867 |
+
bigfootisreal.biz
|
868 |
+
bigger4ever.biz
|
869 |
+
biggerchub.info
|
870 |
+
biggerpeen.com
|
871 |
+
biggesfightye.com
|
872 |
+
biggestrxdeals.net
|
873 |
+
bighealt.info
|
874 |
+
bighemper.info
|
875 |
+
bighex.info
|
876 |
+
biglakeinfo.biz
|
877 |
+
bigsash.info
|
878 |
+
bigtabl.info
|
879 |
+
bigtimevalues.com
|
880 |
+
bikva.info
|
881 |
+
billingleads.com
|
882 |
+
billionaireboysclub.info
|
883 |
+
billspharmasite.com
|
884 |
+
billspharmasite.net
|
885 |
+
bimonthly.org
|
886 |
+
bineriner.com
|
887 |
+
bio3532.us
|
888 |
+
biocel.us
|
889 |
+
biogenusa.biz
|
890 |
+
bioking.biz
|
891 |
+
biokorpus.com
|
892 |
+
biowonder.biz
|
893 |
+
bioxcel.info
|
894 |
+
bitea.info
|
895 |
+
bizoppmail.com
|
896 |
+
bizzy1.tk
|
897 |
+
bjbmdbe.info
|
898 |
+
bjeishfbef.com
|
899 |
+
bjgja.biz
|
900 |
+
bkmark.com
|
901 |
+
bkndr.com
|
902 |
+
blackout1sovietize.info
|
903 |
+
blah-rx.com
|
904 |
+
blahblahcutie.info
|
905 |
+
blasting8252tabs.biz
|
906 |
+
blazinwebtraffic.com
|
907 |
+
blazons.net
|
908 |
+
blcellbi.info
|
909 |
+
blend323d.com
|
910 |
+
bling-1.com
|
911 |
+
blitzware.biz
|
912 |
+
blixkka.com
|
913 |
+
blmcbhc.info
|
914 |
+
blngthisnwforxmas.com
|
915 |
+
blockcortisol.biz
|
916 |
+
blocklicensefrompic.com
|
917 |
+
bloodhoundmarkets.net
|
918 |
+
bluebarz.us
|
919 |
+
bluebroom.com
|
920 |
+
bluedolphin.com
|
921 |
+
bluehorizon.com.sg
|
922 |
+
bluemountain.com
|
923 |
+
bluemoviestunt.info
|
924 |
+
bluepalalski.com
|
925 |
+
bluepill-pharmacy.com
|
926 |
+
bluerockdove.com
|
927 |
+
bluvoice.com.sg
|
928 |
+
bmonown.com
|
929 |
+
bmrefi.net
|
930 |
+
bmzthe.biz
|
931 |
+
bnfbamcbbh.info
|
932 |
+
bnik.com
|
933 |
+
bnmka.com
|
934 |
+
bnstk.com
|
935 |
+
bnzthe.biz
|
936 |
+
boardstraight.com
|
937 |
+
boatrx.net
|
938 |
+
bobbycalled.com
|
939 |
+
bobzez.info
|
940 |
+
bobziz.info
|
941 |
+
bobzpz.info
|
942 |
+
bobzqz.info
|
943 |
+
bobzrz.com
|
944 |
+
bobztz.info
|
945 |
+
bobzyz.info
|
946 |
+
boggy9paulo.com
|
947 |
+
boidoihefd.com
|
948 |
+
bokwhdok.com
|
949 |
+
bolakursova.com
|
950 |
+
bolignet-aarhus.info
|
951 |
+
bolosko.com
|
952 |
+
bolyrt.info
|
953 |
+
bonewrench.com
|
954 |
+
bonizationers.com
|
955 |
+
bonusoffer2u.biz
|
956 |
+
bonxie.com
|
957 |
+
bony7aforetime.com
|
958 |
+
bookjohnson.com
|
959 |
+
bookntravel.com.sg
|
960 |
+
bookstall1clamper.com
|
961 |
+
bookswithinfo.info
|
962 |
+
boot4modal.com
|
963 |
+
bootiebabesrio.com
|
964 |
+
booyaka.biz
|
965 |
+
bornepersona.com
|
966 |
+
borneprimate.biz
|
967 |
+
bornstraight.com
|
968 |
+
bossanovaltd.info
|
969 |
+
bosssthiddensecretss.com
|
970 |
+
bot-mortgage.net
|
971 |
+
botbruisefro.com
|
972 |
+
botoxforless.info
|
973 |
+
bouewjsefd.com
|
974 |
+
bounding.net
|
975 |
+
bovanno.org
|
976 |
+
bowamenaza.net
|
977 |
+
bowelhk.com
|
978 |
+
bowknot9321drygs.com
|
979 |
+
bowman8103drug.us
|
980 |
+
boxesgetforflaps.com
|
981 |
+
boxings.net
|
982 |
+
bp2-rx.com
|
983 |
+
bp9.net
|
984 |
+
bpwosmxkfjr.com
|
985 |
+
br1lliant.com
|
986 |
+
br1lliant.net
|
987 |
+
bra1nhelpforvicsjun.com
|
988 |
+
bra28nhelpforvicsjun.com
|
989 |
+
braccoteam.com
|
990 |
+
brachia.com
|
991 |
+
brainsforever.info
|
992 |
+
bralamone.com
|
993 |
+
brandcontent.com
|
994 |
+
brandedwatches.info
|
995 |
+
branh8elpforvicsjun.com
|
996 |
+
branhelpf27orvicsjun.com
|
997 |
+
branhelpf4orvicsjun.com
|
998 |
+
branhelpforvic30sjun.com
|
999 |
+
branhelpforvicsj17un.com
|
1000 |
+
branhelpforvicsj23un.com
|
1001 |
+
brazhost.org
|
1002 |
+
brbrbr3.com
|
1003 |
+
breccias.com
|
1004 |
+
breh.info
|
1005 |
+
brenetsv.com
|
1006 |
+
breotechs.com
|
1007 |
+
bridegroom6963rx.us
|
1008 |
+
bridgemailsystem.com
|
1009 |
+
briefcase7calculus.info
|
1010 |
+
brightgame.com
|
1011 |
+
brightonrs.com
|
1012 |
+
brillianthealth.info
|
1013 |
+
brilliantmoney.com
|
1014 |
+
bristle3sbn.com
|
1015 |
+
britehost.org
|
1016 |
+
broadcastadvertise.org
|
1017 |
+
broadcastemail.us
|
1018 |
+
broadcastemailgroup.com
|
1019 |
+
broadcastemailingtoday.biz
|
1020 |
+
broadsword7adjustable.com
|
1021 |
+
broadview9405pirrs.com
|
1022 |
+
broughtwoyou.net
|
1023 |
+
brunklers.com
|
1024 |
+
brutmar.com
|
1025 |
+
bsbomdl.com
|
1026 |
+
bservicesp.com
|
1027 |
+
bshy.info
|
1028 |
+
bsllmeds.com
|
1029 |
+
buahsefed.info
|
1030 |
+
bubxax.info
|
1031 |
+
bubxix.info
|
1032 |
+
bubxsx.info
|
1033 |
+
bubxyx.info
|
1034 |
+
bucketed.net
|
1035 |
+
buildownhealth.info
|
1036 |
+
bultowmifd.com
|
1037 |
+
bulwarking.com
|
1038 |
+
buratino-online.info
|
1039 |
+
bushisatwat123.com
|
1040 |
+
businesswire.com
|
1041 |
+
butcher5appall.info
|
1042 |
+
butidoloveyou.com
|
1043 |
+
buttermagma.info
|
1044 |
+
buttonagncm.com
|
1045 |
+
buuiqkq.com
|
1046 |
+
buy-herbal.us
|
1047 |
+
buy-n-shoot.com
|
1048 |
+
buy-oem-soft.biz
|
1049 |
+
buy-oemsoft.info
|
1050 |
+
buy-oemware.biz
|
1051 |
+
buy-xpsoft.info
|
1052 |
+
buyfastmedz.com
|
1053 |
+
buyherbals.biz
|
1054 |
+
buyherbalsonline.com
|
1055 |
+
buymaxxlength.info
|
1056 |
+
buynowviagra.info
|
1057 |
+
buyonlinrmeds.com
|
1058 |
+
buysea.com
|
1059 |
+
buythebest.us
|
1060 |
+
bvarea.com
|
1061 |
+
bvlgarl.com
|
1062 |
+
bvnc83.biz
|
1063 |
+
bwsyfhrjdi.com
|
1064 |
+
bwtsydhxnstw.com
|
1065 |
+
bym3d5now.com
|
1066 |
+
bystronah.biz
|
1067 |
+
bzdirectory.biz
|
1068 |
+
bzfdwefds.info
|
1069 |
+
c-f-1.com
|
1070 |
+
c-med.info
|
1071 |
+
c-u-i.com
|
1072 |
+
c0meh3re.com
|
1073 |
+
c0meh3re.net
|
1074 |
+
c0ok.com
|
1075 |
+
c0py.com
|
1076 |
+
c1tracking.com
|
1077 |
+
c64zmlc.com
|
1078 |
+
c9003hosting.com
|
1079 |
+
c9004hosting.com
|
1080 |
+
ca-t.com
|
1081 |
+
cabclover.com
|
1082 |
+
cabledescrambler.com
|
1083 |
+
cablemotor.info
|
1084 |
+
cadhhej.info
|
1085 |
+
cahla.com
|
1086 |
+
caibgjc.biz
|
1087 |
+
calajean.biz
|
1088 |
+
call1234picture.com
|
1089 |
+
callcenterdemo.com
|
1090 |
+
callcentertoday.com
|
1091 |
+
callcentrenews.com.au
|
1092 |
+
callin.net
|
1093 |
+
calvarypress.com
|
1094 |
+
camdenliving.com
|
1095 |
+
camgirlz.com
|
1096 |
+
campuptimenow.info
|
1097 |
+
canbehealthy.com
|
1098 |
+
cancelit.info
|
1099 |
+
cancelnow.info
|
1100 |
+
cancercasespointed.com
|
1101 |
+
candidhosting.com
|
1102 |
+
candrugs.info
|
1103 |
+
candypersonal.com
|
1104 |
+
candytech.com.tw
|
1105 |
+
canuhd.com
|
1106 |
+
canzel.biz
|
1107 |
+
capaback.com
|
1108 |
+
capably4booby.com
|
1109 |
+
capitalgainsprivately.info
|
1110 |
+
caprylonelf.com
|
1111 |
+
capstone-mortgage.net
|
1112 |
+
capstonemortgage.info
|
1113 |
+
captureform.biz
|
1114 |
+
captureform.net
|
1115 |
+
capturehost.com
|
1116 |
+
capturemyinfo.biz
|
1117 |
+
caraway307biz.us
|
1118 |
+
carbon9global.info
|
1119 |
+
carcases.net
|
1120 |
+
careerbooster.info
|
1121 |
+
careerjet.com.au
|
1122 |
+
careytweeds.com
|
1123 |
+
carlson.info
|
1124 |
+
carlz.us
|
1125 |
+
carmcco.info
|
1126 |
+
carnesdobrasil.info
|
1127 |
+
carokmandal.com
|
1128 |
+
carrassist.biz
|
1129 |
+
cartler.com
|
1130 |
+
cartsite.us
|
1131 |
+
carving5618tads.com
|
1132 |
+
caseytripper.com
|
1133 |
+
cash-home.info
|
1134 |
+
cash-market.info
|
1135 |
+
cash-store.net
|
1136 |
+
cash-world.biz
|
1137 |
+
cashflowclub.org
|
1138 |
+
casholasavings.com
|
1139 |
+
cashring.com
|
1140 |
+
casinoconstructor.com
|
1141 |
+
casiono.info
|
1142 |
+
cassisnmjma.com
|
1143 |
+
cat-site.biz
|
1144 |
+
catchthebird.biz
|
1145 |
+
cateelcate3.com
|
1146 |
+
catplastic.info
|
1147 |
+
caughtcatching.com
|
1148 |
+
cauldron6babylonian.info
|
1149 |
+
cauterizes.net
|
1150 |
+
cautionary5trackable.info
|
1151 |
+
cbbngvc.com
|
1152 |
+
cbcclak.info
|
1153 |
+
cbinablch.com
|
1154 |
+
cbosfewfd.info
|
1155 |
+
cbsdfowef.info
|
1156 |
+
ccbn.com
|
1157 |
+
ccdemo.com
|
1158 |
+
cchaos.com
|
1159 |
+
cchelp.biz
|
1160 |
+
cchelp.info
|
1161 |
+
cclender.com
|
1162 |
+
ccody.com
|
1163 |
+
ccyure87.com
|
1164 |
+
cd-forever.info
|
1165 |
+
cd4sale.info
|
1166 |
+
cdatlow.com
|
1167 |
+
cdldecs.com
|
1168 |
+
cdmsdts.com
|
1169 |
+
cdplsmxnr.com
|
1170 |
+
cdpt4dsk.com
|
1171 |
+
cdschoolee.com
|
1172 |
+
cdsforyou.biz
|
1173 |
+
ceetifired.info
|
1174 |
+
cekojow.com
|
1175 |
+
cellwaveguard.com
|
1176 |
+
celnderx.biz
|
1177 |
+
cencmlade.com
|
1178 |
+
centerhealthinfo.com
|
1179 |
+
centralremovalservice.com
|
1180 |
+
certquote.com
|
1181 |
+
cesbitz.info
|
1182 |
+
cfak.com
|
1183 |
+
cfee3.com
|
1184 |
+
cfefogl.com
|
1185 |
+
cfkedbx.com
|
1186 |
+
cgdtsyern.com
|
1187 |
+
cgnbcmj.info
|
1188 |
+
ch00s3.com
|
1189 |
+
ch01ces.com
|
1190 |
+
ch01ces.net
|
1191 |
+
ch0icelenders.com
|
1192 |
+
ch3apch3ap.com
|
1193 |
+
chain-mail.net
|
1194 |
+
chandler1.biz
|
1195 |
+
changeyourlifeforever.biz
|
1196 |
+
chanmiracle.com
|
1197 |
+
characreperm.com
|
1198 |
+
charmedbeauty.com
|
1199 |
+
charmingnaughtyteens.com
|
1200 |
+
charstnd.com
|
1201 |
+
chatyes.com
|
1202 |
+
cheap-medz.com
|
1203 |
+
cheap-r-x.com
|
1204 |
+
cheap-soft-here.biz
|
1205 |
+
cheap102.com
|
1206 |
+
cheapbuysjjz.com
|
1207 |
+
cheapdrugsplus.com
|
1208 |
+
cheapeasyrx.com
|
1209 |
+
cheapeasyrx.net
|
1210 |
+
cheapermortgage.cn
|
1211 |
+
cheaperoffer.com
|
1212 |
+
cheapestrxmeds.info
|
1213 |
+
cheaping.net
|
1214 |
+
cheapmeds444u.com
|
1215 |
+
cheapmedshut.com
|
1216 |
+
cheapmedz.net
|
1217 |
+
cheapmedzsource.biz
|
1218 |
+
cheapoemsoft.info
|
1219 |
+
cheapoemz4u.info
|
1220 |
+
cheapphar.com
|
1221 |
+
cheappharm3.com
|
1222 |
+
cheapsales2u.com
|
1223 |
+
cheapsecuremeds.com
|
1224 |
+
cheapsoftshop.com
|
1225 |
+
cheapsofttraders.info
|
1226 |
+
cheapwarehousemeds.com
|
1227 |
+
cheapwarehousepharmacy.com
|
1228 |
+
cheapwatches.biz
|
1229 |
+
cheapwatchesinfo.info
|
1230 |
+
cheapwindows.info
|
1231 |
+
cheat-play.com
|
1232 |
+
cheatjokes.com
|
1233 |
+
check4choice.info
|
1234 |
+
check4direct.com
|
1235 |
+
checkdrs.com
|
1236 |
+
checkyourlifebe.com
|
1237 |
+
checprie.com
|
1238 |
+
cheek362tads.com
|
1239 |
+
cheeseshad.com
|
1240 |
+
chem1bicker.info
|
1241 |
+
chemisrytlic.com
|
1242 |
+
chemistdot.info
|
1243 |
+
chevron2overheated.info
|
1244 |
+
chichost.org
|
1245 |
+
childevaders.com
|
1246 |
+
childlearning.biz
|
1247 |
+
chillblow.com
|
1248 |
+
chillinnotime.com
|
1249 |
+
chillnowdays.com
|
1250 |
+
chillsoon.com
|
1251 |
+
chillsunday.com
|
1252 |
+
chilltoday.com
|
1253 |
+
chillypeppers.biz
|
1254 |
+
chimonanthusdog.com
|
1255 |
+
chimpwue8.com
|
1256 |
+
chin348239.com
|
1257 |
+
chinajute.com
|
1258 |
+
chinaour.com
|
1259 |
+
chknetsv.com
|
1260 |
+
chkotechs.com
|
1261 |
+
chlending.com
|
1262 |
+
chmdjgg.info
|
1263 |
+
choanosomeab.com
|
1264 |
+
choice-funds.us
|
1265 |
+
choiceforabetterfuture.com
|
1266 |
+
choiceonetrust.com
|
1267 |
+
chooseyourwatch4u.com
|
1268 |
+
chooseyourwatch4u.net
|
1269 |
+
chorally.com
|
1270 |
+
chudomeds.info
|
1271 |
+
churty.info
|
1272 |
+
cialagen.biz
|
1273 |
+
cialapro.biz
|
1274 |
+
cializ44.com
|
1275 |
+
ciaopage.com
|
1276 |
+
ciheaem.info
|
1277 |
+
cindyyoungtart.com
|
1278 |
+
cisekldej.com
|
1279 |
+
cisoebefef.com
|
1280 |
+
citizensbank.com
|
1281 |
+
citrifolia.info
|
1282 |
+
city-guide.com
|
1283 |
+
citymnf.com
|
1284 |
+
citywidedownloadnetwork.com
|
1285 |
+
cjbjj.com
|
1286 |
+
ckaaewr.info
|
1287 |
+
ckadfgef.info
|
1288 |
+
cklibcdn.info
|
1289 |
+
ckmark.com
|
1290 |
+
ckmbtr5.com
|
1291 |
+
classear.cn
|
1292 |
+
classflail.biz
|
1293 |
+
classystylez.com
|
1294 |
+
clbrx.com
|
1295 |
+
cleaners6apace.com
|
1296 |
+
cleanrepair4u.com
|
1297 |
+
cleansweeper.biz
|
1298 |
+
clearz.biz
|
1299 |
+
cleat7228pirrs.com
|
1300 |
+
cleetusolocastel.com
|
1301 |
+
clematis4spiders.info
|
1302 |
+
cleverfinance.info
|
1303 |
+
clfmbeiie.com
|
1304 |
+
click2out.com
|
1305 |
+
click4express.com
|
1306 |
+
click4hotgirls.com
|
1307 |
+
clickforsales.com
|
1308 |
+
clickhostdeals.com
|
1309 |
+
clicknsaves37.info
|
1310 |
+
clicktraq.com
|
1311 |
+
clickzs.com
|
1312 |
+
clikbusiness.info
|
1313 |
+
clinicsingapore.com
|
1314 |
+
cljeacbj.com
|
1315 |
+
clkfdmz.com
|
1316 |
+
clkheremail.com
|
1317 |
+
clodly.com
|
1318 |
+
cloopss.com
|
1319 |
+
closetoperffect.com
|
1320 |
+
clout3curtate.com
|
1321 |
+
clovercally.com
|
1322 |
+
clubshop.com
|
1323 |
+
cluiselages.com
|
1324 |
+
clurtednu.info
|
1325 |
+
cmachina.cn
|
1326 |
+
cmaholdings.com
|
1327 |
+
cmik.com
|
1328 |
+
cminteractive.com
|
1329 |
+
cmpevents.com
|
1330 |
+
cn4e.com
|
1331 |
+
cn8868.com
|
1332 |
+
cnacom.com
|
1333 |
+
cnbearing.biz
|
1334 |
+
cncbx.info
|
1335 |
+
cncgdc.info
|
1336 |
+
cnhptz.com
|
1337 |
+
cnmhjdsu.com
|
1338 |
+
cnzcnie.info
|
1339 |
+
cobeutiuy.com
|
1340 |
+
cockycooks.com
|
1341 |
+
codns.com
|
1342 |
+
coebvgfuse.com
|
1343 |
+
coffeecup.com
|
1344 |
+
coisasdoamanha.info
|
1345 |
+
coldrugs.com
|
1346 |
+
coldstuff4u.info
|
1347 |
+
coleman.edu.sg
|
1348 |
+
college-scholarships.com
|
1349 |
+
collocutor9120dryg.com
|
1350 |
+
collusion7229tabs.biz
|
1351 |
+
colony8remediable.com
|
1352 |
+
coloroth.com
|
1353 |
+
colourless5baneful.info
|
1354 |
+
com-yahoo.com.ph
|
1355 |
+
com.info
|
1356 |
+
com4dsd.com
|
1357 |
+
combusbone.com
|
1358 |
+
comdotsmart.biz
|
1359 |
+
comdotsmart.com
|
1360 |
+
come2ourrx.net
|
1361 |
+
comerfbdll.com
|
1362 |
+
comf0rtpharmcyz.com
|
1363 |
+
comforting.biz
|
1364 |
+
comingtoit.com
|
1365 |
+
commodious.net
|
1366 |
+
comooem.com
|
1367 |
+
companionground.com
|
1368 |
+
companionjoker.com
|
1369 |
+
companionjump.com
|
1370 |
+
companionlaugh.com
|
1371 |
+
companionshipgo.com
|
1372 |
+
companionsmile.com
|
1373 |
+
compare-lenders.net
|
1374 |
+
competentagent.com
|
1375 |
+
competentbank.com
|
1376 |
+
competitive-rates.com
|
1377 |
+
compforme.com
|
1378 |
+
computeach2003.com
|
1379 |
+
computercup.com
|
1380 |
+
computerdoublespeed.com
|
1381 |
+
comxp.net
|
1382 |
+
condenser8dandle.info
|
1383 |
+
condolence2veto.com
|
1384 |
+
condtspa.com
|
1385 |
+
condylomaprepackaged.com
|
1386 |
+
confuting.com
|
1387 |
+
conjointmotivation.com
|
1388 |
+
connectjokes.com
|
1389 |
+
connectwrap.com
|
1390 |
+
connoting.com
|
1391 |
+
consumer-loans.net
|
1392 |
+
consumerincentivepromotions.com
|
1393 |
+
contactcentrefinance.com
|
1394 |
+
contactprofessional.com
|
1395 |
+
contactspost.biz
|
1396 |
+
continentalrelay.biz
|
1397 |
+
cool-greattodayhealth.com
|
1398 |
+
cool-innovations.com
|
1399 |
+
coolcool.us
|
1400 |
+
coolfreepages.com
|
1401 |
+
coolhealth.info
|
1402 |
+
cooloemlink.info
|
1403 |
+
coolpharma.com
|
1404 |
+
coolresource.com
|
1405 |
+
cooper4vest.com
|
1406 |
+
copleform.com
|
1407 |
+
cordon3cursive.com
|
1408 |
+
cordoned.net
|
1409 |
+
corefiles.com
|
1410 |
+
coreytellerme.com
|
1411 |
+
corkboardbb.com
|
1412 |
+
cornmany.cn
|
1413 |
+
corpique.com
|
1414 |
+
corporate-ir.net
|
1415 |
+
corporatequote.com
|
1416 |
+
corporationfor.com
|
1417 |
+
correctspeling.com
|
1418 |
+
cosmeticoseperfumes.info
|
1419 |
+
cosmo1865meds.biz
|
1420 |
+
costdirectlrelat.com
|
1421 |
+
cotonetes.info
|
1422 |
+
cotqueanka.com
|
1423 |
+
couchp00pz.com
|
1424 |
+
couders.biz
|
1425 |
+
countess8253tads.us
|
1426 |
+
countravetim.com
|
1427 |
+
courtly4086rx.us
|
1428 |
+
cov2pa.com
|
1429 |
+
cpdgxxr.com
|
1430 |
+
cpmmzo.com
|
1431 |
+
cr3am.com
|
1432 |
+
cr3am.net
|
1433 |
+
cr3amier.net
|
1434 |
+
cr3at3.com
|
1435 |
+
cra3ybiz.com
|
1436 |
+
crackisthebestatnight.com
|
1437 |
+
cracksoftbest.com
|
1438 |
+
craigz.us
|
1439 |
+
crane7149biz.biz
|
1440 |
+
crashtest4u.com
|
1441 |
+
craze7577biz.biz
|
1442 |
+
crazy-barginz.com
|
1443 |
+
crazy-barginz.net
|
1444 |
+
crazy-biz.net
|
1445 |
+
crazyrxl0wprices.com
|
1446 |
+
crazysale.org
|
1447 |
+
creamy-facials.com
|
1448 |
+
creativelocations4all.info
|
1449 |
+
creditorssuck.biz
|
1450 |
+
crefi.net
|
1451 |
+
crelob.net
|
1452 |
+
cricket6735drugs.us
|
1453 |
+
cripsite.info
|
1454 |
+
crocistheking.us
|
1455 |
+
crockolate.com
|
1456 |
+
crossdaily.com
|
1457 |
+
crossinweb.info
|
1458 |
+
crvalues.com
|
1459 |
+
crxgrfr.com
|
1460 |
+
cs.com
|
1461 |
+
csvrldd.com
|
1462 |
+
csvxtsreoi.com
|
1463 |
+
ctd8sdwe.com
|
1464 |
+
cttrk.com
|
1465 |
+
cuationfromthe.com
|
1466 |
+
cumbly.com
|
1467 |
+
cumers.info
|
1468 |
+
cunfh5h.info
|
1469 |
+
cupring.com
|
1470 |
+
cupropy.com
|
1471 |
+
curdle.net
|
1472 |
+
curdom.com
|
1473 |
+
curds8abetment.com
|
1474 |
+
currentlowrates.info
|
1475 |
+
cursedly6slumlord.com
|
1476 |
+
customadvancecreative.com
|
1477 |
+
customerservice.com.au
|
1478 |
+
cuthybv.com
|
1479 |
+
cutprice11.com
|
1480 |
+
cutprice17.com
|
1481 |
+
cutpricerxpills.com
|
1482 |
+
cutrate-loan.info
|
1483 |
+
cutrateloan.net
|
1484 |
+
cutthepayment.com
|
1485 |
+
cvgf.com
|
1486 |
+
cvoiln.info
|
1487 |
+
cvrtgfd.com
|
1488 |
+
cvvbb.com
|
1489 |
+
cyber-sale.info
|
1490 |
+
cybertelcapital.com
|
1491 |
+
cycom-sg.com
|
1492 |
+
cynergyasia.com
|
1493 |
+
czbeowedf.info
|
1494 |
+
czgcauz.com
|
1495 |
+
d-square.com.sg
|
1496 |
+
d9005hosting.com
|
1497 |
+
dabdkfjsdfc.com
|
1498 |
+
dackydivers.com
|
1499 |
+
daffy4amortize.info
|
1500 |
+
dafkammeds.com
|
1501 |
+
dahl.biz
|
1502 |
+
dailyfill.com
|
1503 |
+
dailyherbals.com
|
1504 |
+
dailysoft.biz
|
1505 |
+
dailysoft.info
|
1506 |
+
daisysnail.com
|
1507 |
+
dajwtjm.com
|
1508 |
+
dally9snatches.com
|
1509 |
+
damngreatwebsites1.com
|
1510 |
+
darjheef.com
|
1511 |
+
datakk.com
|
1512 |
+
dataspaces.net
|
1513 |
+
date-411.com
|
1514 |
+
date-joker.com
|
1515 |
+
date-jump.com
|
1516 |
+
date-play.com
|
1517 |
+
datejump.com
|
1518 |
+
datenowadays.com
|
1519 |
+
datesaturday.com
|
1520 |
+
datinggoldengirls.com
|
1521 |
+
datingoffers.com
|
1522 |
+
datingwebsiteemail.info
|
1523 |
+
davbasdfdf.info
|
1524 |
+
david5567pi11.us
|
1525 |
+
davismedzshop.com
|
1526 |
+
daweravs.info
|
1527 |
+
dawncities.com
|
1528 |
+
day2daybymail.biz
|
1529 |
+
dbcdmnf.info
|
1530 |
+
dbiiwuerefd.com
|
1531 |
+
dbzfdwdfd.info
|
1532 |
+
dbzwefsde.info
|
1533 |
+
dbzwishdfef.com
|
1534 |
+
dcdghn.info
|
1535 |
+
dcfcgdk.info
|
1536 |
+
dcfknmeg.info
|
1537 |
+
dchinn.com
|
1538 |
+
dcnxoprnm.com
|
1539 |
+
dcpurchase.com
|
1540 |
+
ddcfnaih.info
|
1541 |
+
ddrpwe.com
|
1542 |
+
deafinformation.com
|
1543 |
+
dealgtx.biz
|
1544 |
+
dealloan.info
|
1545 |
+
dealzonthenet.com
|
1546 |
+
debt-states.com
|
1547 |
+
debtal.com
|
1548 |
+
debteraserpro.com
|
1549 |
+
decasoft.info
|
1550 |
+
decaying4204drygs.com
|
1551 |
+
deceivablede.biz
|
1552 |
+
defeater.net
|
1553 |
+
defended1facts.com
|
1554 |
+
degenerate8virtuous.com
|
1555 |
+
degradedly.com
|
1556 |
+
degradedly.net
|
1557 |
+
deirhaus.com
|
1558 |
+
dejheb.biz
|
1559 |
+
deledom.com
|
1560 |
+
delivery4sure22.com
|
1561 |
+
delivfast.com
|
1562 |
+
delpan.biz
|
1563 |
+
demand4rx.com
|
1564 |
+
dementia.biz
|
1565 |
+
depletive.com
|
1566 |
+
dertaktos.com
|
1567 |
+
deruank.com
|
1568 |
+
desirablewatches.com
|
1569 |
+
desireouroffers.biz
|
1570 |
+
desite-page.com
|
1571 |
+
deskhelp.info
|
1572 |
+
desordemdopanicoemsp.info
|
1573 |
+
destroyer3883pill.biz
|
1574 |
+
detaibanadditi.com
|
1575 |
+
detectspywarebest.com
|
1576 |
+
detectspywarebid.com
|
1577 |
+
detectspywarebiz.com
|
1578 |
+
determinpus.com
|
1579 |
+
deux.fr
|
1580 |
+
dewtyendh.com
|
1581 |
+
dexlab.info
|
1582 |
+
dfbeibsdfe.com
|
1583 |
+
dfbeky-wr.com
|
1584 |
+
dfbele.info
|
1585 |
+
dfcved.com
|
1586 |
+
dffs14.biz
|
1587 |
+
dfgsgs.info
|
1588 |
+
dfh64.biz
|
1589 |
+
dfhu876.com
|
1590 |
+
dfjndfv.com
|
1591 |
+
dfmartinoeif.com
|
1592 |
+
dfmnr4me.com
|
1593 |
+
dfpcn.com
|
1594 |
+
dfsdsdf.cc
|
1595 |
+
dfspot432.com
|
1596 |
+
dgko.com
|
1597 |
+
dgnclih.info
|
1598 |
+
dhanch.com
|
1599 |
+
dhdhbua.com
|
1600 |
+
dhgavocc.com
|
1601 |
+
dhghc.com
|
1602 |
+
dhghost.net
|
1603 |
+
dia9.us
|
1604 |
+
dia99.biz
|
1605 |
+
diarrhoeal.com
|
1606 |
+
diazmovie.com
|
1607 |
+
dibefjsefed.com
|
1608 |
+
dicfn.com
|
1609 |
+
didlik.biz
|
1610 |
+
didyouknowclub.info
|
1611 |
+
diebfsefdg.com
|
1612 |
+
diet34.com
|
1613 |
+
diet40.com
|
1614 |
+
diet45.net
|
1615 |
+
diet50.com
|
1616 |
+
difshbesed.com
|
1617 |
+
digi.ws
|
1618 |
+
digimagx.com
|
1619 |
+
digitailocean.com
|
1620 |
+
digitalere.com
|
1621 |
+
digxdigx.com
|
1622 |
+
diljcancb.com
|
1623 |
+
dimur.com
|
1624 |
+
dinepc.com
|
1625 |
+
diplender.com
|
1626 |
+
diploma-graduate.info
|
1627 |
+
directfaction.com
|
1628 |
+
directwife.cn
|
1629 |
+
dirolama.info
|
1630 |
+
disambigue5720tabs.biz
|
1631 |
+
disc0unt-farm.com
|
1632 |
+
discount91rx.com
|
1633 |
+
discountbuyers.net
|
1634 |
+
discountdays.info
|
1635 |
+
discountdomainsource.com
|
1636 |
+
discounted-inks.com
|
1637 |
+
discounthavenshop.com
|
1638 |
+
discountherbals.biz
|
1639 |
+
discountherbals.com
|
1640 |
+
discountloan.info
|
1641 |
+
discountrx4u.info
|
1642 |
+
discounts-medicinalest.com
|
1643 |
+
discounts-selection.com
|
1644 |
+
discountweek.biz
|
1645 |
+
discountweek.info
|
1646 |
+
discoverdownloads.com
|
1647 |
+
discreetdelivery.net
|
1648 |
+
discretion3immodest.info
|
1649 |
+
dishtvforpc.com
|
1650 |
+
disjoint5156drygs.com
|
1651 |
+
disksclub.com
|
1652 |
+
disneyland1937pill.us
|
1653 |
+
disperate2gargantuan.com
|
1654 |
+
disport8backup.com
|
1655 |
+
disposable882pinn.com
|
1656 |
+
disrxcount.com
|
1657 |
+
diversdagold.com
|
1658 |
+
divinecredibleproduct.com
|
1659 |
+
diwefbsdf.info
|
1660 |
+
djdf.biz
|
1661 |
+
djmorts.net
|
1662 |
+
dkdns.com
|
1663 |
+
dkehdlf.info
|
1664 |
+
dkglcb.info
|
1665 |
+
dkmbbedm.info
|
1666 |
+
dlhghln.info
|
1667 |
+
dlspns.com
|
1668 |
+
dlur.com
|
1669 |
+
dmahdflf.info
|
1670 |
+
dmbkgn.info
|
1671 |
+
dmblmiff.info
|
1672 |
+
dmmort.net
|
1673 |
+
dmsyvuu.com
|
1674 |
+
dn-ice-boat.com
|
1675 |
+
dn-ice-boat1.com
|
1676 |
+
dna.info
|
1677 |
+
dncru.com
|
1678 |
+
dnkfhg.info
|
1679 |
+
dobzdfewe.info
|
1680 |
+
dock1.com
|
1681 |
+
docket8944pirrs.com
|
1682 |
+
docsnpills.info
|
1683 |
+
doctor.com
|
1684 |
+
doctorconsult.info
|
1685 |
+
doctorproof.com
|
1686 |
+
doctorsherbalmed.com
|
1687 |
+
doencadopanico.info
|
1688 |
+
doesrx.com
|
1689 |
+
dog2004.com
|
1690 |
+
doherinnotime.com
|
1691 |
+
dohernow.com
|
1692 |
+
doherquickly.com
|
1693 |
+
dohershortly.com
|
1694 |
+
dojobs.net
|
1695 |
+
dokger.info
|
1696 |
+
dollarmachine.com
|
1697 |
+
dolldiscordant.com
|
1698 |
+
domainfactory.com
|
1699 |
+
domainprogram.com
|
1700 |
+
domainsforeveryone.com
|
1701 |
+
domainsfornow.com
|
1702 |
+
domainsforpeople.com
|
1703 |
+
domainsultan.com
|
1704 |
+
domainszolutions.net
|
1705 |
+
domez.us
|
1706 |
+
domianss2.com
|
1707 |
+
dominetsg.com
|
1708 |
+
donehernow.com
|
1709 |
+
donlittlbiof.com
|
1710 |
+
donmal.biz
|
1711 |
+
dontletthisonepassyouby.com
|
1712 |
+
dontriskyourlife1.com
|
1713 |
+
dontworrydate.com
|
1714 |
+
doorue.com
|
1715 |
+
doplemxnsjhd.com
|
1716 |
+
doreyire.biz
|
1717 |
+
dorsft.info
|
1718 |
+
dotherx.com
|
1719 |
+
dotmarine.info
|
1720 |
+
dotmedication.com
|
1721 |
+
doubelev.com
|
1722 |
+
doubleclick.net
|
1723 |
+
doubleopt.biz
|
1724 |
+
doueufbdsef.com
|
1725 |
+
doukacro.info
|
1726 |
+
doupsto.com
|
1727 |
+
dovvso.com
|
1728 |
+
download-central.com
|
1729 |
+
downloadhangout.com
|
1730 |
+
downloadlifestyle.com
|
1731 |
+
downloadnow.biz
|
1732 |
+
downloadsupercenter.com
|
1733 |
+
dozbfeddf.info
|
1734 |
+
dozefolower.com
|
1735 |
+
dpmort.net
|
1736 |
+
dportal.biz
|
1737 |
+
dq03.net
|
1738 |
+
dr007online.info
|
1739 |
+
dr3am1er.com
|
1740 |
+
dr3am1er.net
|
1741 |
+
dr3amy.com
|
1742 |
+
draccus.com
|
1743 |
+
drama2smother.com
|
1744 |
+
dreamreplicas.com
|
1745 |
+
dreamtimez.info
|
1746 |
+
dreamwatches4u.com
|
1747 |
+
drgoodhealth.info
|
1748 |
+
drizzlier.com
|
1749 |
+
drlab.info
|
1750 |
+
drnicksrx.com
|
1751 |
+
droopiest.com
|
1752 |
+
dropfatnews.com
|
1753 |
+
droppedr8z.com
|
1754 |
+
dropsofjupiter.info
|
1755 |
+
drowtr.info
|
1756 |
+
drsuggest.biz
|
1757 |
+
drugformalesexual.com
|
1758 |
+
drugsquads.com
|
1759 |
+
drugstoresmooth.com
|
1760 |
+
drumgame.biz
|
1761 |
+
drutheme.com
|
1762 |
+
dsddmedsa.com
|
1763 |
+
dsmg.biz
|
1764 |
+
dsofme.com
|
1765 |
+
dspqowiek.com
|
1766 |
+
dsxncbhryei.com
|
1767 |
+
dub9trousseaus.us
|
1768 |
+
dubnh.us
|
1769 |
+
dug3aplicators.com
|
1770 |
+
dumfounds.com
|
1771 |
+
dusked.biz
|
1772 |
+
dusked.net
|
1773 |
+
duureea.com
|
1774 |
+
dvcstuffs.com
|
1775 |
+
dvdsforpleasure.com
|
1776 |
+
dvduni.com
|
1777 |
+
dwzrgb.net
|
1778 |
+
dxpsorthnk.com
|
1779 |
+
dynamichealthpromotion.com
|
1780 |
+
dynamicsuperdesign.com
|
1781 |
+
dysurea1sailer.com
|
1782 |
+
dzpmvqp.com
|
1783 |
+
e-finance-now.com
|
1784 |
+
e-globalproducts.info
|
1785 |
+
e-home-loanz.com
|
1786 |
+
e-hostzz.com
|
1787 |
+
e-lenderz.com
|
1788 |
+
e-lenderz.info
|
1789 |
+
e-m-now.info
|
1790 |
+
e-meds24.info
|
1791 |
+
e-mor-t-gage.com
|
1792 |
+
e-wowza.com
|
1793 |
+
e65.biz
|
1794 |
+
e9004hosting.com
|
1795 |
+
eabrrts.info
|
1796 |
+
eachmesunshine.com
|
1797 |
+
eagle8jersey.com
|
1798 |
+
ealz.com
|
1799 |
+
eamgcnb.info
|
1800 |
+
eaoemwokd.info
|
1801 |
+
earnmorbout.com
|
1802 |
+
earthdogeducation.com
|
1803 |
+
earwax8995rneds.com
|
1804 |
+
easepage.com
|
1805 |
+
easily2swamp.com
|
1806 |
+
east.net.cn
|
1807 |
+
easy-as-1-2-3.com
|
1808 |
+
easy-finances.net
|
1809 |
+
easy-herbal.us
|
1810 |
+
easy-mort-gages.com
|
1811 |
+
easy-mortgages.info
|
1812 |
+
easy-silicon.com
|
1813 |
+
easy2fuck.com
|
1814 |
+
easydatingoffers.com
|
1815 |
+
easyemedshop.com
|
1816 |
+
easyhome-loans.com
|
1817 |
+
easyhotgirls.net
|
1818 |
+
easyoffers.biz
|
1819 |
+
easyqu0tes.com
|
1820 |
+
easysavings.net
|
1821 |
+
eazymedz.com
|
1822 |
+
ebetterfuture.com
|
1823 |
+
ebgbngj.info
|
1824 |
+
ebjdgjankb.info
|
1825 |
+
ebnacd.info
|
1826 |
+
ebookmaniasexy.com
|
1827 |
+
ebpnetsv.com
|
1828 |
+
ebpotechs.com
|
1829 |
+
ebuyage.com
|
1830 |
+
ebuybt.com
|
1831 |
+
ebuycan.com
|
1832 |
+
ebuycando.com
|
1833 |
+
ebuycc.com
|
1834 |
+
ebuylot.com
|
1835 |
+
ebuypay.com
|
1836 |
+
ebuytm.com
|
1837 |
+
ebvxfesfdfe.com
|
1838 |
+
ecigs4less0.com
|
1839 |
+
ecigs4less2.com
|
1840 |
+
eclipseway.com
|
1841 |
+
ecomomics.net
|
1842 |
+
economiccostsare.com
|
1843 |
+
ecoquote.com
|
1844 |
+
ecumenicdefeat.com
|
1845 |
+
eczarfee.com
|
1846 |
+
edavsddfee.info
|
1847 |
+
edbhadj.info
|
1848 |
+
edcdllf.info
|
1849 |
+
eddwz.biz
|
1850 |
+
edfspace.com
|
1851 |
+
edgeabc.com
|
1852 |
+
edgelending.net
|
1853 |
+
edgequote.com
|
1854 |
+
edgravwas.com
|
1855 |
+
edhcbxgsyi.com
|
1856 |
+
edificagrowth.tc
|
1857 |
+
editehkce.com
|
1858 |
+
editiondw.com
|
1859 |
+
edjihjem.info
|
1860 |
+
edkha.biz
|
1861 |
+
edszxrw.com
|
1862 |
+
educate-1.com
|
1863 |
+
educate-2.com
|
1864 |
+
educate-3.com
|
1865 |
+
education-2.info
|
1866 |
+
education-4.info
|
1867 |
+
education-5.info
|
1868 |
+
educationsfutures.info
|
1869 |
+
edva15ncedwanow45right.com
|
1870 |
+
edva3ncedwanow45right.com
|
1871 |
+
edvan7cedwanow45right.com
|
1872 |
+
edvan9cedwanow45right.com
|
1873 |
+
edvancedwa6now45right.com
|
1874 |
+
edvancedwanow0018right.com
|
1875 |
+
edvancedwanow1245right.com
|
1876 |
+
edyo.com
|
1877 |
+
efabdjfad.info
|
1878 |
+
efcknhhnm.com
|
1879 |
+
effect6paleogene.com
|
1880 |
+
effectiveoptions.biz
|
1881 |
+
efficacies.net
|
1882 |
+
effichet.com
|
1883 |
+
efinance-now.com
|
1884 |
+
efinance-now.net
|
1885 |
+
eflair.com.sg
|
1886 |
+
eflfaif.info
|
1887 |
+
egdungerel.com
|
1888 |
+
eggscity.info
|
1889 |
+
eglobal.org
|
1890 |
+
egment.info
|
1891 |
+
eibeaibl.info
|
1892 |
+
eiehalg.info
|
1893 |
+
eifsabefse.com
|
1894 |
+
eiiiooesfdf.com
|
1895 |
+
eivnudf.info
|
1896 |
+
eiwhx.com
|
1897 |
+
ejgcdli.info
|
1898 |
+
ejrhxw322.com
|
1899 |
+
ekabedll.info
|
1900 |
+
ekicangi.info
|
1901 |
+
eknmeem.info
|
1902 |
+
el9.net
|
1903 |
+
elecourile.com
|
1904 |
+
eledlfj.us
|
1905 |
+
elenders.biz
|
1906 |
+
elenderz-xs.net
|
1907 |
+
elenderz.info
|
1908 |
+
elenderziq.com
|
1909 |
+
elephantiasisspiced.info
|
1910 |
+
elevatedacademic.net
|
1911 |
+
elite-pills.com
|
1912 |
+
elkmlifebd.info
|
1913 |
+
elleeielle0.com
|
1914 |
+
ellickhfnei.com
|
1915 |
+
elnbdjekfd.com
|
1916 |
+
eloangreat.com
|
1917 |
+
eloanlenders.com
|
1918 |
+
eloanservices.com
|
1919 |
+
elongates.net
|
1920 |
+
email-swap.com
|
1921 |
+
emailadvertisingservices.net
|
1922 |
+
emailbroadcast.us
|
1923 |
+
emailcashpro.com
|
1924 |
+
emaildeals.biz
|
1925 |
+
emailofferz.biz
|
1926 |
+
emailprizeweb.com
|
1927 |
+
emailpromo.biz
|
1928 |
+
emailremovalregistry.com
|
1929 |
+
emailremovals.com
|
1930 |
+
emarkdinbs.com
|
1931 |
+
emdstem.com
|
1932 |
+
emed12.com
|
1933 |
+
emoem.org
|
1934 |
+
emollient.biz
|
1935 |
+
emoremoney.com
|
1936 |
+
empallhh.com
|
1937 |
+
emperorwatches.com
|
1938 |
+
emphatic8858nx.com
|
1939 |
+
emyshopinternet.com
|
1940 |
+
encamp9telegraphy.com
|
1941 |
+
encanq.com
|
1942 |
+
endosonic.com
|
1943 |
+
enemedsa.com
|
1944 |
+
enewstodayliv7email.com
|
1945 |
+
engouasa.com
|
1946 |
+
engradas.com
|
1947 |
+
engyme.com
|
1948 |
+
enhancemefast7.com
|
1949 |
+
enhancemetoday.com
|
1950 |
+
enhanceyourpackage.com
|
1951 |
+
enjoyplatinum.info
|
1952 |
+
enlargementmanual.com
|
1953 |
+
enlargepills.net
|
1954 |
+
enlrg.com
|
1955 |
+
ensemble7airboat.com
|
1956 |
+
ensiosk.info
|
1957 |
+
enteritis9overshoot.info
|
1958 |
+
entfadas.com
|
1959 |
+
entire7576drygs.com
|
1960 |
+
entirefinance.com
|
1961 |
+
entirefinance.net
|
1962 |
+
entraads.com
|
1963 |
+
entrefinance.net
|
1964 |
+
entrqdas.com
|
1965 |
+
enuxjki.info
|
1966 |
+
envision6thrust.com
|
1967 |
+
envoyww.com
|
1968 |
+
envumil.com
|
1969 |
+
envywatches.info
|
1970 |
+
eoinf.com
|
1971 |
+
eowk.info
|
1972 |
+
eparchy.net
|
1973 |
+
epharmarcy.com
|
1974 |
+
epicnuts.biz
|
1975 |
+
epicoff3rs.com
|
1976 |
+
epmeds.com
|
1977 |
+
eprst-s.info
|
1978 |
+
epsompared.net
|
1979 |
+
eqsafefdcef.com
|
1980 |
+
equard.info
|
1981 |
+
equetudomai.org
|
1982 |
+
equity-fix.com
|
1983 |
+
erectionpills.net
|
1984 |
+
eregrine.com
|
1985 |
+
erevansoft.net
|
1986 |
+
erotheprese.com
|
1987 |
+
erotichenparty.com
|
1988 |
+
erotictoyscity.com
|
1989 |
+
eroticy.com
|
1990 |
+
erpfmuh.com
|
1991 |
+
errniemedz.com
|
1992 |
+
erryu598.com
|
1993 |
+
ersk41.biz
|
1994 |
+
ertsqwas.com
|
1995 |
+
ertyiurewr.com
|
1996 |
+
eruidhf.info
|
1997 |
+
eruijinfunhderunhadesunkin.com
|
1998 |
+
erxtaxis.com
|
1999 |
+
esbalenders.com
|
2000 |
+
esbbanl.com
|
2001 |
+
esbxgchdyru.com
|
2002 |
+
eslender.com
|
2003 |
+
esmtp.biz
|
2004 |
+
especiallylove.cn
|
2005 |
+
estoreworks.com
|
2006 |
+
estranged8405drygs.com
|
2007 |
+
esurancevalue.com
|
2008 |
+
esvationhig.com
|
2009 |
+
etaerio.com
|
2010 |
+
etargeted307pills.biz
|
2011 |
+
etionds.com
|
2012 |
+
ettllrx.com
|
2013 |
+
etumex.com
|
2014 |
+
eucjdfn3.info
|
2015 |
+
euf2nf.info
|
2016 |
+
eufsabefse.com
|
2017 |
+
eunice7parentis.com
|
2018 |
+
eurocasinomally.com
|
2019 |
+
eurocasinomili.com
|
2020 |
+
eurousd.com
|
2021 |
+
evaklsr.com
|
2022 |
+
evemovefecas.com
|
2023 |
+
evenqnvolva.biz
|
2024 |
+
eventuresonline.biz
|
2025 |
+
evif.com
|
2026 |
+
evolution-x.info
|
2027 |
+
ewaypharmacy.com
|
2028 |
+
ewaypharmacy.net
|
2029 |
+
ewholesaleloan.com
|
2030 |
+
ewmrnr.com
|
2031 |
+
ewoypouo.com
|
2032 |
+
exactly8disarmed.info
|
2033 |
+
excellent1.com
|
2034 |
+
exclusivemeds.info
|
2035 |
+
exdtild.biz
|
2036 |
+
exildtenson.com
|
2037 |
+
exoooop.com
|
2038 |
+
exorcized.net
|
2039 |
+
expedited2u.biz
|
2040 |
+
expeditemortgage.net
|
2041 |
+
expertaide.com
|
2042 |
+
extaxias.com
|
2043 |
+
extefast.com
|
2044 |
+
extending-loans.com
|
2045 |
+
extendit.info
|
2046 |
+
extincove.com
|
2047 |
+
extjnyn.com
|
2048 |
+
extrahelp24.info
|
2049 |
+
extramed.info
|
2050 |
+
extrasearches.com
|
2051 |
+
extremelyheavyconsidering.com
|
2052 |
+
extremewatches.biz
|
2053 |
+
extremewebdeals.com
|
2054 |
+
eynotmyrx.com
|
2055 |
+
eyoodnf.com
|
2056 |
+
eyou.com
|
2057 |
+
eytcjae.com
|
2058 |
+
ez-herb4u.info
|
2059 |
+
ez-quotes.net
|
2060 |
+
ez-rate.info
|
2061 |
+
ez-refi.net
|
2062 |
+
ez123clickt.com
|
2063 |
+
ezeeloans.com
|
2064 |
+
ezfiletrader.com
|
2065 |
+
ezherbal-x.com
|
2066 |
+
ezherbal24-7.com
|
2067 |
+
ezherbalbuy.com
|
2068 |
+
ezherbs.info
|
2069 |
+
ezloans123.net
|
2070 |
+
eznewweb.com
|
2071 |
+
ezpainfree.com
|
2072 |
+
ezppv.com
|
2073 |
+
ezul.com
|
2074 |
+
ezuvkne.com
|
2075 |
+
ezwayhomeloan.com
|
2076 |
+
ezyfinancial.com
|
2077 |
+
f16sluts.com
|
2078 |
+
fOrteneze.COM
|
2079 |
+
fabled6151dryg.com
|
2080 |
+
facilenetrav.info
|
2081 |
+
fahbaim.info
|
2082 |
+
faithweb.com
|
2083 |
+
familiarmeds.biz
|
2084 |
+
familymeds.info
|
2085 |
+
fammeds.biz
|
2086 |
+
famousloaves.com
|
2087 |
+
famousreplicas.com
|
2088 |
+
fancytimepieces4u.com
|
2089 |
+
fanddc.com
|
2090 |
+
fantastictoy.net
|
2091 |
+
fantasywatches.info
|
2092 |
+
farcefruitcake.com
|
2093 |
+
farmersfound.com
|
2094 |
+
farmheard.com
|
2095 |
+
fartingfritter.com
|
2096 |
+
fassol.org
|
2097 |
+
fast-loanz.com
|
2098 |
+
fast-rxmedicines.com
|
2099 |
+
fast35.biz
|
2100 |
+
fastaccess-world.com
|
2101 |
+
fastandeasy911.com
|
2102 |
+
fastbluetabs.com
|
2103 |
+
fastcasinobuilder.com
|
2104 |
+
fastdegreeservice.com
|
2105 |
+
fasteasysolution.com
|
2106 |
+
faster-medds.net
|
2107 |
+
fasteratez.com
|
2108 |
+
fasterdaz.com
|
2109 |
+
fastherbal.info
|
2110 |
+
fastlenderz.com
|
2111 |
+
fastraffic.net
|
2112 |
+
fastrefi.biz
|
2113 |
+
fastrx-meds.com
|
2114 |
+
fastslashmarket.com
|
2115 |
+
fastttack.biz
|
2116 |
+
fastvicodin.info
|
2117 |
+
fatdead.com
|
2118 |
+
fbasdjfesf.info
|
2119 |
+
fccvd.com
|
2120 |
+
fclfcal.info
|
2121 |
+
fd5rs.com
|
2122 |
+
fdav.com
|
2123 |
+
fdfbfbg.info
|
2124 |
+
fdgfdbi.biz
|
2125 |
+
fdhsyxuieksm.com
|
2126 |
+
fdklln.info
|
2127 |
+
fdlamank.info
|
2128 |
+
fdnxir0of.info
|
2129 |
+
fdrindck.com
|
2130 |
+
fdun.com
|
2131 |
+
fearlesstrading.com
|
2132 |
+
feedcushion.biz
|
2133 |
+
feelingokay.biz
|
2134 |
+
feelingokay.com
|
2135 |
+
feet4ancillary.com
|
2136 |
+
felna.com
|
2137 |
+
female-o-secrets.com
|
2138 |
+
femalefishfertile.com
|
2139 |
+
feokdadsot.com
|
2140 |
+
feputrefymb.com
|
2141 |
+
fetbbot.com
|
2142 |
+
fewnwe.info
|
2143 |
+
feyluttrxs.com
|
2144 |
+
fftedbx.com
|
2145 |
+
fgbasvbk.com
|
2146 |
+
fgcdirect9.com
|
2147 |
+
fgrbaas.com
|
2148 |
+
fhjd.biz
|
2149 |
+
fiddlings.net
|
2150 |
+
fieuwereefd.com
|
2151 |
+
fifthunitedproducts.com
|
2152 |
+
fiftieth8airily.info
|
2153 |
+
fiklufa.com
|
2154 |
+
fillit-and-get-help.com
|
2155 |
+
film3subverts.com
|
2156 |
+
filmogenka.com
|
2157 |
+
filtersppv.com
|
2158 |
+
finalsavings.com
|
2159 |
+
finance-home.biz
|
2160 |
+
finance-planet.info
|
2161 |
+
finance-store.biz
|
2162 |
+
financeadvise.com
|
2163 |
+
financialfirms.net
|
2164 |
+
find-hoop.com
|
2165 |
+
findawoman.net
|
2166 |
+
findfunhere.com
|
2167 |
+
findgoodstuffhere.com
|
2168 |
+
findings1coerce.com
|
2169 |
+
findtheoneonthissite.com
|
2170 |
+
fine-woman.com
|
2171 |
+
fine-women.com
|
2172 |
+
finehealths.info
|
2173 |
+
fineinformation.biz
|
2174 |
+
fineness-medicine.com
|
2175 |
+
finhelp.biz
|
2176 |
+
finlozsad.info
|
2177 |
+
fintod.com
|
2178 |
+
fir2035tads.biz
|
2179 |
+
first-mort.com
|
2180 |
+
first-mort.net
|
2181 |
+
firstoem.net
|
2182 |
+
fisha.biz
|
2183 |
+
fistabitch.com
|
2184 |
+
fitness21centuri.com
|
2185 |
+
fitnessbiz.info
|
2186 |
+
fitnetsv.com
|
2187 |
+
fitotechs.com
|
2188 |
+
fixmedicine.com
|
2189 |
+
fjaclki.info
|
2190 |
+
fjil.biz
|
2191 |
+
fjjpgro.com
|
2192 |
+
fjlldaf.info
|
2193 |
+
fjuew7nnf.com
|
2194 |
+
fkefck.biz
|
2195 |
+
fkidiknije.info
|
2196 |
+
fkot.com
|
2197 |
+
fkwnscpa.com
|
2198 |
+
flamingfungus.com
|
2199 |
+
flashatxmas.com
|
2200 |
+
flbccceg.info
|
2201 |
+
flbcknlj.biz
|
2202 |
+
fleacpeot.info
|
2203 |
+
fleecy5jimmy.info
|
2204 |
+
flhecbjk.info
|
2205 |
+
flirtzone.biz
|
2206 |
+
flonosoft.eu
|
2207 |
+
floppy9calf.com
|
2208 |
+
flowerdown.info
|
2209 |
+
flukeplural.com
|
2210 |
+
flushottomorrow.com
|
2211 |
+
flyinmeds.com
|
2212 |
+
fmbedkcm.info
|
2213 |
+
fmjfmin.info
|
2214 |
+
fmlaeccj.biz
|
2215 |
+
fmmbhgn.biz
|
2216 |
+
fmngbfk441.info
|
2217 |
+
fnaiegfmfm.com
|
2218 |
+
fndos.com
|
2219 |
+
fnfdcng.info
|
2220 |
+
fnytqua.com
|
2221 |
+
foasbfesdef.com
|
2222 |
+
fobzfesdf.info
|
2223 |
+
focldplm.com
|
2224 |
+
foetus4647rx.us
|
2225 |
+
followedbytw.com
|
2226 |
+
fondsoaronk.com
|
2227 |
+
foolishly8notepaper.com
|
2228 |
+
footballmotion.com
|
2229 |
+
footballseason2002.com
|
2230 |
+
for-cash.info
|
2231 |
+
for-cash.net
|
2232 |
+
foradditionaluses.com
|
2233 |
+
foraug.info
|
2234 |
+
forbestrate.com
|
2235 |
+
forbettermember.com
|
2236 |
+
foreclosuretraining.com
|
2237 |
+
foresmdb.com
|
2238 |
+
forever-mort.com
|
2239 |
+
foreverydoes.com
|
2240 |
+
forfoota.com
|
2241 |
+
forgivable8459biz.us
|
2242 |
+
forloaninfo.com
|
2243 |
+
formern.com
|
2244 |
+
fort837az.com
|
2245 |
+
fortherest.info
|
2246 |
+
forthunitedproducts.com
|
2247 |
+
forumshgh.com
|
2248 |
+
forwardsmovie.com
|
2249 |
+
fosraw.biz
|
2250 |
+
fossilized.net
|
2251 |
+
fossll.com
|
2252 |
+
fotbogwar.info
|
2253 |
+
fouramspots.com
|
2254 |
+
fractionfield.cn
|
2255 |
+
frankly8033pi11s.us
|
2256 |
+
franticrush.biz
|
2257 |
+
frapped.net
|
2258 |
+
frdurs.com
|
2259 |
+
free-d0llars.com
|
2260 |
+
free-icq-download.com
|
2261 |
+
free-instant-quotes.com
|
2262 |
+
free-kazaa-spyware.info
|
2263 |
+
free-mortgage-app.com
|
2264 |
+
freeadultranch.com
|
2265 |
+
freeautobot.com
|
2266 |
+
freedrivingg.info
|
2267 |
+
freeholidaygiveaways.com
|
2268 |
+
freeinfoforrealitems.com
|
2269 |
+
freeinfoisnomore.info
|
2270 |
+
freekin.info
|
2271 |
+
freenfltracker.com
|
2272 |
+
freeparisvideo.biz
|
2273 |
+
freepcspywareware.info
|
2274 |
+
freeprizeclub.com
|
2275 |
+
freeride.com
|
2276 |
+
freesexonthewebs.bz
|
2277 |
+
freetest.info
|
2278 |
+
fresh-forms.net
|
2279 |
+
freshfacedcutegirl.biz
|
2280 |
+
freshperiod.com
|
2281 |
+
friendlyandeasyhoes.com
|
2282 |
+
friggings.net
|
2283 |
+
friosel.com
|
2284 |
+
frnwacba.com
|
2285 |
+
fromanewdesk.com
|
2286 |
+
fromnewzealandwithlove.info
|
2287 |
+
fsck.com
|
2288 |
+
fsitj.com
|
2289 |
+
fsnjchdyer.com
|
2290 |
+
ftgoal.com
|
2291 |
+
ftke.com
|
2292 |
+
ftqqbip.com
|
2293 |
+
fullhost.org
|
2294 |
+
fullofgoodproducts.com
|
2295 |
+
fullofhealth.info
|
2296 |
+
fun-tonight.com
|
2297 |
+
fundegree.com
|
2298 |
+
funding-internet.com
|
2299 |
+
funding-live.com
|
2300 |
+
funding-talk.com
|
2301 |
+
fundingdeport.co.gy
|
2302 |
+
fundingmort.us
|
2303 |
+
funnyface69.com
|
2304 |
+
funutilities.info
|
2305 |
+
funwinterdownloads.com
|
2306 |
+
furbelows.net
|
2307 |
+
furiosite.info
|
2308 |
+
furiousfledglingflavors.com
|
2309 |
+
furor8imbroglios.com
|
2310 |
+
furrier550rneds.us
|
2311 |
+
furthersmarter.biz
|
2312 |
+
futurebadlove.com
|
2313 |
+
futureobject.com
|
2314 |
+
futurevalueloan.com
|
2315 |
+
fuuall.com
|
2316 |
+
fvnjxdhu.info
|
2317 |
+
fycluse.cn
|
2318 |
+
fyinsserv.com
|
2319 |
+
fzbwqfsefsd.com
|
2320 |
+
fzfsbefsef.info
|
2321 |
+
fzmedsa.com
|
2322 |
+
g-d-w.tv
|
2323 |
+
g00dl1fe.com
|
2324 |
+
g0get.com
|
2325 |
+
g1p00nd.com
|
2326 |
+
g3tit.com
|
2327 |
+
g3tm3dsonl1ne.com
|
2328 |
+
gaglng.info
|
2329 |
+
gagtt.com
|
2330 |
+
gainmed.com
|
2331 |
+
gainplus.info
|
2332 |
+
gainprosite.tc
|
2333 |
+
gaipin.com
|
2334 |
+
gala.net
|
2335 |
+
gallanted.com
|
2336 |
+
gallicism2795biz.us
|
2337 |
+
gamesofvegas.com
|
2338 |
+
gamesquality.info
|
2339 |
+
gankia.info
|
2340 |
+
ganomy.biz
|
2341 |
+
gaqwsncv.com
|
2342 |
+
gardensdig.info
|
2343 |
+
garnib.com
|
2344 |
+
garvi.com.br
|
2345 |
+
garyshawkey.com
|
2346 |
+
gasep.com
|
2347 |
+
gasisa1.com
|
2348 |
+
gaulhafmk.com
|
2349 |
+
gavuthmo.com
|
2350 |
+
gbdfesfef.info
|
2351 |
+
gbm543.com
|
2352 |
+
gc-nine.info
|
2353 |
+
gc-seven.info
|
2354 |
+
gcfkmo.com
|
2355 |
+
gcgkmjcmeb.info
|
2356 |
+
gcusatwo.info
|
2357 |
+
gdgibnbekl.info
|
2358 |
+
gdjeeai.info
|
2359 |
+
gdries.com
|
2360 |
+
gdskjj.com
|
2361 |
+
geekwaresolutions.net
|
2362 |
+
gefanu.com
|
2363 |
+
gejdtjwlfy.com
|
2364 |
+
gejokwmod.info
|
2365 |
+
geleagnc.info
|
2366 |
+
gelinjolhad.com
|
2367 |
+
genemarketmanager.com
|
2368 |
+
generale1libor.com
|
2369 |
+
genericforless.biz
|
2370 |
+
genericks.com
|
2371 |
+
genericpharmacies.biz
|
2372 |
+
genericrxsale.com
|
2373 |
+
genericsforcheap.com
|
2374 |
+
genital4dima.com
|
2375 |
+
geniusbroker.com
|
2376 |
+
genuinely.net
|
2377 |
+
genuineoem.biz
|
2378 |
+
genuinereplicawatchez.org
|
2379 |
+
gesart.info
|
2380 |
+
gesture9403tads.us
|
2381 |
+
get-a-low-rate.com
|
2382 |
+
get-bigger.biz
|
2383 |
+
get-ever.com
|
2384 |
+
get-it-online.info
|
2385 |
+
get-recruited.com
|
2386 |
+
get-xp-now.biz
|
2387 |
+
get-xp-oem.info
|
2388 |
+
getallgirls.com
|
2389 |
+
getawebloan.com
|
2390 |
+
getbestmeds.com
|
2391 |
+
getcheap4med.com
|
2392 |
+
getcheapdrugs.biz
|
2393 |
+
getfinance4u.com
|
2394 |
+
getgoodmedz.com
|
2395 |
+
getgoodtraffic.com
|
2396 |
+
gethelpu.com
|
2397 |
+
getherbalsnow.com
|
2398 |
+
getitherefast.biz
|
2399 |
+
getitnowtoday.com
|
2400 |
+
getitquickly2.biz
|
2401 |
+
getloanz.info
|
2402 |
+
getmeds4u.com
|
2403 |
+
getmedtime.com
|
2404 |
+
getmeinshape.biz
|
2405 |
+
getmoremoney4u.biz
|
2406 |
+
getnoticednow.net
|
2407 |
+
getpaid2day4u.biz
|
2408 |
+
getpaidtoday123.biz
|
2409 |
+
getpharmtoday.com
|
2410 |
+
getsomelust.com
|
2411 |
+
getthatpills.com
|
2412 |
+
getthelowrate.com
|
2413 |
+
getthemonline.com
|
2414 |
+
getting-laid-is-fun.us
|
2415 |
+
getting-laid-tonight.com
|
2416 |
+
gettocheckin.com
|
2417 |
+
getvisitors4less.com
|
2418 |
+
getvisitorsquick.com
|
2419 |
+
getwellsoononline.com
|
2420 |
+
getyourahere.com
|
2421 |
+
getyourdhere.com
|
2422 |
+
getyourviagracheap.biz
|
2423 |
+
gfasthost.net
|
2424 |
+
gfd-online.com
|
2425 |
+
gfentropykb.com
|
2426 |
+
gferd.info
|
2427 |
+
gffefv.net
|
2428 |
+
gfg4sd.com
|
2429 |
+
gflgjhdb.info
|
2430 |
+
gg-gambling.com
|
2431 |
+
gg-medical.com
|
2432 |
+
ggcanm.info
|
2433 |
+
ggenhcmj.info
|
2434 |
+
ggfhhkf.info
|
2435 |
+
ggflnp.com
|
2436 |
+
ggg-apple.com
|
2437 |
+
gh6.net
|
2438 |
+
gh8s83.biz
|
2439 |
+
ghabefos.info
|
2440 |
+
ghbzoeff.info
|
2441 |
+
ghcclccc.biz
|
2442 |
+
ghdmkk.biz
|
2443 |
+
ghf8a93.biz
|
2444 |
+
ghfgh.net
|
2445 |
+
ghjdghn.info
|
2446 |
+
ghkp.us
|
2447 |
+
ghnp.com
|
2448 |
+
ghtflscvsfreak.com
|
2449 |
+
ghtnsecn.com
|
2450 |
+
ghwnetsv.com
|
2451 |
+
ghzbfoes.info
|
2452 |
+
gifhaa.info
|
2453 |
+
gimmeabreak.info
|
2454 |
+
gimpernhaed.info
|
2455 |
+
ginfection.com
|
2456 |
+
girlsinyourarea.com
|
2457 |
+
girlsloves3x.com
|
2458 |
+
gjcmgkhlil.com
|
2459 |
+
gjibhgk.info
|
2460 |
+
gjndlfd.info
|
2461 |
+
gjwgw2-9.com
|
2462 |
+
gkbdnanf.info
|
2463 |
+
gkiblgl.info
|
2464 |
+
gkigaie.info
|
2465 |
+
glad4myrx.info
|
2466 |
+
glad4myrx.us
|
2467 |
+
glassjaws.com
|
2468 |
+
glasstape.info
|
2469 |
+
glasswortnet.com
|
2470 |
+
glavvrach.biz
|
2471 |
+
glee4me.com
|
2472 |
+
glmefdf.info
|
2473 |
+
global-offers.biz
|
2474 |
+
globalofferz.biz
|
2475 |
+
globalonlinebizops.com
|
2476 |
+
globaltrustsavings.com
|
2477 |
+
globalvoice.com.sg
|
2478 |
+
glueurfoot.com
|
2479 |
+
gluiest.biz
|
2480 |
+
gmdckdaa.info
|
2481 |
+
gmgmedical.com
|
2482 |
+
gmi-autoimporter.com
|
2483 |
+
gmi-autoimporters.com
|
2484 |
+
gmi-autoimports.com
|
2485 |
+
gmjfgil.info
|
2486 |
+
gnanticdg.com
|
2487 |
+
gndggln.info
|
2488 |
+
go-funding.com
|
2489 |
+
go-medz.com
|
2490 |
+
go-mrt-now.net
|
2491 |
+
go-refi.com
|
2492 |
+
go.com
|
2493 |
+
go2here.org
|
2494 |
+
go2zsites.info
|
2495 |
+
go4med.com
|
2496 |
+
go4medz.com
|
2497 |
+
goatingwild.com
|
2498 |
+
gobefwef.info
|
2499 |
+
gobetterpay.com
|
2500 |
+
gocasino-dollar.com
|
2501 |
+
godateinnotime.com
|
2502 |
+
godatequickly.com
|
2503 |
+
godatesaturday.com
|
2504 |
+
godateshortly.com
|
2505 |
+
godatesoon.com
|
2506 |
+
godatesunday.com
|
2507 |
+
goforthesoft.info
|
2508 |
+
goforvalue.com
|
2509 |
+
gogo.com.tw
|
2510 |
+
gogopage.com
|
2511 |
+
goi6942d.com
|
2512 |
+
gointek.com
|
2513 |
+
goiter7offended.com
|
2514 |
+
gokgle.us
|
2515 |
+
goldenoffer.info
|
2516 |
+
goldenopps.info
|
2517 |
+
goldglasslock.com
|
2518 |
+
goldleafsoftware.info
|
2519 |
+
goldminemarketing.net
|
2520 |
+
goldmonkeys.biz
|
2521 |
+
golife257tabs.biz
|
2522 |
+
golosko.com
|
2523 |
+
gomedz.biz
|
2524 |
+
gomoremoney.com
|
2525 |
+
gono.us
|
2526 |
+
gonofurther.info
|
2527 |
+
good-health.info
|
2528 |
+
good-real-offers.com
|
2529 |
+
goodallsoft.com
|
2530 |
+
goodbestsoft.info
|
2531 |
+
goodbyetickets.info
|
2532 |
+
goodcapsules.info
|
2533 |
+
gooderubes.com
|
2534 |
+
goodherbz.info
|
2535 |
+
goodingdn.com
|
2536 |
+
goodishao.net
|
2537 |
+
goodleads.net
|
2538 |
+
goodlist.info
|
2539 |
+
goodloane.biz
|
2540 |
+
goodperform.info
|
2541 |
+
goodprodss.com
|
2542 |
+
goodserver.biz
|
2543 |
+
goodsites.biz
|
2544 |
+
goodslook.com
|
2545 |
+
goodviagra.info
|
2546 |
+
goodwasbetteris.info
|
2547 |
+
goodway.com.sg
|
2548 |
+
goodwayz.com
|
2549 |
+
gopachat.com
|
2550 |
+
gopacityx.com
|
2551 |
+
gopamania.com
|
2552 |
+
gopamegasite.com
|
2553 |
+
goremd.biz
|
2554 |
+
gorgeouschick.com
|
2555 |
+
gorxmeds.com
|
2556 |
+
gosafeandnatural.com
|
2557 |
+
gossipy.net
|
2558 |
+
got-web-site-traffic.com
|
2559 |
+
gotmeadate.com
|
2560 |
+
goto-myshopinternet.com
|
2561 |
+
gotomyshopinternet.com
|
2562 |
+
gotovbnkes.com
|
2563 |
+
gottahurryman.com
|
2564 |
+
gotthewinds.com
|
2565 |
+
gozealgaming.com
|
2566 |
+
gqaeatsd.info
|
2567 |
+
gr3at.com
|
2568 |
+
gr3atworld.net
|
2569 |
+
gr8class4u.com
|
2570 |
+
gr8feelalive.com
|
2571 |
+
gr8lendez.com
|
2572 |
+
gr8teveryone.com
|
2573 |
+
grabmail.com
|
2574 |
+
grabprospect.biz
|
2575 |
+
grabprospect.info
|
2576 |
+
graduate-now.info
|
2577 |
+
graduationservices.info
|
2578 |
+
gran-oem.com
|
2579 |
+
grandi0se.com
|
2580 |
+
grannytabl3.com
|
2581 |
+
grantgiveawayprogram.com
|
2582 |
+
gratifyher.info
|
2583 |
+
gravesides.com
|
2584 |
+
grciemag.com
|
2585 |
+
great-herb.us
|
2586 |
+
great-medds.com
|
2587 |
+
great-mort-gages.com
|
2588 |
+
great-offerz.info
|
2589 |
+
great-porn-site.com
|
2590 |
+
great-rx.com
|
2591 |
+
great-rx.info
|
2592 |
+
great-stuff-here.biz
|
2593 |
+
great-stuff.us
|
2594 |
+
greatbizservices.com
|
2595 |
+
greatdayrefi.com
|
2596 |
+
greatdealsauction.net
|
2597 |
+
greatfins.com
|
2598 |
+
greathealingdeals.biz
|
2599 |
+
greathealthoffers.biz
|
2600 |
+
greatinfo4u.biz
|
2601 |
+
greatmaleenhancement.biz
|
2602 |
+
greatmallusion.com
|
2603 |
+
greatmedsonthenet.com
|
2604 |
+
greatnewmeds.com
|
2605 |
+
greatpharmacy.info
|
2606 |
+
greatpneumatic.com
|
2607 |
+
greatreef.info
|
2608 |
+
greatrxforcheap.net
|
2609 |
+
greatsaklqw.com
|
2610 |
+
greatsoftmike.info
|
2611 |
+
greatstartitems.com
|
2612 |
+
greatuniquemallthathelps.com
|
2613 |
+
greatweight.biz
|
2614 |
+
greatxpect1.com
|
2615 |
+
greenpies.com
|
2616 |
+
greenzer.com
|
2617 |
+
gresat3ecv.com
|
2618 |
+
gresbbt.com
|
2619 |
+
greytool.com
|
2620 |
+
grl4u.com
|
2621 |
+
grosbro.info
|
2622 |
+
grouphealth24.info
|
2623 |
+
grouploseweight.com
|
2624 |
+
groupshopper.com
|
2625 |
+
grow-it1.com
|
2626 |
+
growbigfast.info
|
2627 |
+
growmeds.com
|
2628 |
+
grrrrreat.com
|
2629 |
+
grudgingly.net
|
2630 |
+
grx-meds.com
|
2631 |
+
gsagjh.com
|
2632 |
+
gsvdvs.info
|
2633 |
+
gtrrrez.us
|
2634 |
+
gtxtr.com
|
2635 |
+
guaranapureza.us
|
2636 |
+
guaranteed-scholarships.com
|
2637 |
+
guaranteedinfoonweb.com
|
2638 |
+
gucchhi.com
|
2639 |
+
gudnite.biz
|
2640 |
+
guerrilla7ankylosis.com
|
2641 |
+
guidefamily.cn
|
2642 |
+
gullyec.com
|
2643 |
+
gumlyndhib.com
|
2644 |
+
gundoo.com
|
2645 |
+
gunixub.com
|
2646 |
+
guojiedc.com
|
2647 |
+
guzzling.net
|
2648 |
+
gzidfbew.info
|
2649 |
+
gzkvbdsf.com
|
2650 |
+
h-e-r-b.com
|
2651 |
+
h0uses.net
|
2652 |
+
h1gher.net
|
2653 |
+
h2mort.net
|
2654 |
+
h3ll0.com
|
2655 |
+
h3ll0.net
|
2656 |
+
h64.net
|
2657 |
+
h67.net
|
2658 |
+
habcca.info
|
2659 |
+
habdahskqj.com
|
2660 |
+
habdhrrfg.com
|
2661 |
+
habewfdf.info
|
2662 |
+
habfewff.info
|
2663 |
+
habnhfbm.info
|
2664 |
+
hadaga.com
|
2665 |
+
hafh23.biz
|
2666 |
+
halabichueba.org
|
2667 |
+
halaputu.com
|
2668 |
+
halloo4panel.info
|
2669 |
+
halloweed.biz
|
2670 |
+
hanafos.com
|
2671 |
+
happiness-counseling.com
|
2672 |
+
happyhealthylifestyles.biz
|
2673 |
+
happyhomesite.com
|
2674 |
+
happyrxsale.com
|
2675 |
+
hardgrowthpills.info
|
2676 |
+
hardspeed.com
|
2677 |
+
harknihark7.com
|
2678 |
+
harsh8isobit.us
|
2679 |
+
harvest8schnauzer.info
|
2680 |
+
harvester1stol.com
|
2681 |
+
haus-guest.com
|
2682 |
+
havdieou.com
|
2683 |
+
haveisagr.com
|
2684 |
+
haynetsv.com
|
2685 |
+
hayotechs.com
|
2686 |
+
hazedergd.info
|
2687 |
+
hazeledah.com
|
2688 |
+
hazelnut2115pinn.com
|
2689 |
+
hbcbijdk.info
|
2690 |
+
hbeblbn.biz
|
2691 |
+
hbemedicalno1.com
|
2692 |
+
hbjcbmf.info
|
2693 |
+
hbozofef.info
|
2694 |
+
hcbffldf.info
|
2695 |
+
hckbcan.info
|
2696 |
+
hcnmvkofut.com
|
2697 |
+
hdcnsowp.com
|
2698 |
+
hdgggm.biz
|
2699 |
+
hdhdljc.info
|
2700 |
+
hdncbxyster.com
|
2701 |
+
hdreuifpl.com
|
2702 |
+
healingsphere.info
|
2703 |
+
heallthylifeone.com
|
2704 |
+
healtfrombirth.info
|
2705 |
+
health-4-ever.info
|
2706 |
+
health-products2003.com
|
2707 |
+
healthberb.com
|
2708 |
+
healthbynature.info
|
2709 |
+
healthdomainhgh.com
|
2710 |
+
healthfirm.info
|
2711 |
+
healthfrom.com
|
2712 |
+
healthpills.info
|
2713 |
+
healthproducts.bz
|
2714 |
+
healthpronews.com
|
2715 |
+
healthram.com
|
2716 |
+
healthrecovering.info
|
2717 |
+
healthtoday.net
|
2718 |
+
healthy-4-ever.info
|
2719 |
+
healthyandquickrx.com
|
2720 |
+
healthyb0dy.info
|
2721 |
+
healthyexchange.biz
|
2722 |
+
healthypractice.biz
|
2723 |
+
healthyprescriptiongiven.com
|
2724 |
+
healthysprit.biz
|
2725 |
+
healup.info
|
2726 |
+
hearbbz.com
|
2727 |
+
heardtaza.net
|
2728 |
+
heave4obloquy.info
|
2729 |
+
hedonistic9tailless.com
|
2730 |
+
hedrugs.com
|
2731 |
+
heerbal.biz
|
2732 |
+
hefkkbnbn.com
|
2733 |
+
hejbaebc.info
|
2734 |
+
helbech.info
|
2735 |
+
heldswim.com
|
2736 |
+
helllobay.ch
|
2737 |
+
hellobrasileraz.com
|
2738 |
+
help-us-help-you.net
|
2739 |
+
help4uisontheway.com
|
2740 |
+
helpbills.info
|
2741 |
+
helpbuyer.com
|
2742 |
+
helpdukpeptide.info
|
2743 |
+
helpidol.com
|
2744 |
+
helpingloan.info
|
2745 |
+
helpu-web.com
|
2746 |
+
hensi.com
|
2747 |
+
her-b-al.com
|
2748 |
+
her-bal.com
|
2749 |
+
herbal-medical.biz
|
2750 |
+
herbal-stores.net
|
2751 |
+
herbalbest.biz
|
2752 |
+
herbalbrand.net
|
2753 |
+
herbaldns.biz
|
2754 |
+
herbalicious.net
|
2755 |
+
herbalisring.com
|
2756 |
+
herballlll.com
|
2757 |
+
herballylarge.info
|
2758 |
+
herballynow.com
|
2759 |
+
herbalmagic.info
|
2760 |
+
herbalmagicsite.com
|
2761 |
+
herbalmart.us
|
2762 |
+
herbalpillsonline.biz
|
2763 |
+
herbalplus.us
|
2764 |
+
herbalstar.biz
|
2765 |
+
herbalusa.biz
|
2766 |
+
herbalwholesale.biz
|
2767 |
+
herbalwholesale.info
|
2768 |
+
herbalworld.biz
|
2769 |
+
herbmedz.info
|
2770 |
+
herbnetz.info
|
2771 |
+
herbon.info
|
2772 |
+
hereitgoesoncemore.com
|
2773 |
+
hereviagra.com
|
2774 |
+
herhelp.com
|
2775 |
+
herksv.com
|
2776 |
+
herpills.com
|
2777 |
+
heruk.info
|
2778 |
+
hesatosser.com
|
2779 |
+
heynowyou.info
|
2780 |
+
heywhatsupbuddy.com
|
2781 |
+
hfgr33.us
|
2782 |
+
hfinance.info
|
2783 |
+
hgee1.info
|
2784 |
+
hgeptahv.info
|
2785 |
+
hgh888.com
|
2786 |
+
hghfeelings.net
|
2787 |
+
hghnewproduct.com
|
2788 |
+
hghorder.com
|
2789 |
+
hghself.net
|
2790 |
+
hghvip.com
|
2791 |
+
hgkkdc.com
|
2792 |
+
hgter.biz
|
2793 |
+
hhaalde.com
|
2794 |
+
hhbjew.info
|
2795 |
+
hhgchll.info
|
2796 |
+
hhlcecd.info
|
2797 |
+
hhtt-rr.com
|
2798 |
+
hiclaim.com
|
2799 |
+
hidor.com
|
2800 |
+
highhealthgood.com
|
2801 |
+
hiltonforyou.biz
|
2802 |
+
him.com.sg
|
2803 |
+
himailer.com
|
2804 |
+
himsearch.com
|
2805 |
+
hindinpeter.com
|
2806 |
+
hinet.net
|
2807 |
+
hisbefore.cn
|
2808 |
+
hisped.com
|
2809 |
+
hispills.com
|
2810 |
+
histogencd.com
|
2811 |
+
history5bigamy.com
|
2812 |
+
history9rapacity.com
|
2813 |
+
hitprofile.com
|
2814 |
+
hitssoft.info
|
2815 |
+
hj68.com
|
2816 |
+
hjegacdb.info
|
2817 |
+
hjifhjek.info
|
2818 |
+
hjjmhn.biz
|
2819 |
+
hjmbjbhm.info
|
2820 |
+
hjmdhcgh.info
|
2821 |
+
hjokdaer.com
|
2822 |
+
hk234802938.com
|
2823 |
+
hkrnet.net
|
2824 |
+
hksdhdj.info
|
2825 |
+
hllciija.info
|
2826 |
+
hlplmanhds.biz
|
2827 |
+
hmm88.com
|
2828 |
+
hmmseisei.info
|
2829 |
+
hnmprf.com
|
2830 |
+
hnxteq.com
|
2831 |
+
hochumnogobabla.biz
|
2832 |
+
hockchew.com
|
2833 |
+
hokjjoke.com
|
2834 |
+
holditthere.info
|
2835 |
+
holdtiff.com
|
2836 |
+
holidate.info
|
2837 |
+
holiday-good.com
|
2838 |
+
holidaydownloadclub.com
|
2839 |
+
holidayhigh.net
|
2840 |
+
holidaysuprise.com
|
2841 |
+
holidayy.com
|
2842 |
+
hollywoodclicks.com
|
2843 |
+
hologram7gregorian.com
|
2844 |
+
hololamaco.biz
|
2845 |
+
home-financial.net
|
2846 |
+
home1oan.com
|
2847 |
+
homefastcash.com
|
2848 |
+
homel0ans.com
|
2849 |
+
homeloanbasics.com
|
2850 |
+
homeloanbasics.net
|
2851 |
+
homeloans-offered.com
|
2852 |
+
homeloansline.com
|
2853 |
+
homeloansmarket.com
|
2854 |
+
homeloansmarket.net
|
2855 |
+
homesair.com
|
2856 |
+
homesearchhealthfind.com
|
2857 |
+
homestoneloans.com
|
2858 |
+
hometownfire.com
|
2859 |
+
honestsalesnow.com
|
2860 |
+
honesty2bile.info
|
2861 |
+
honorable9numeration.com
|
2862 |
+
hoodieadedm.com
|
2863 |
+
hoodlum4monarch.info
|
2864 |
+
hoohut.com
|
2865 |
+
hooked6344dryg.com
|
2866 |
+
hookupinnotime.com
|
2867 |
+
hookupnightly.com
|
2868 |
+
hookupsoon.com
|
2869 |
+
hoolamaco.biz
|
2870 |
+
hoop5gronked.us
|
2871 |
+
hootpills.com
|
2872 |
+
hootyhoo.info
|
2873 |
+
hope-to-get-laid.us
|
2874 |
+
hopeisnear4you.com
|
2875 |
+
hopesofrestoring.com
|
2876 |
+
hopone.net
|
2877 |
+
hornyoptins.com
|
2878 |
+
horsier.net
|
2879 |
+
hosanna7measure.info
|
2880 |
+
host-77.com
|
2881 |
+
host4.biz
|
2882 |
+
hostagogo.biz
|
2883 |
+
hostinghive.com
|
2884 |
+
hostingprod.com
|
2885 |
+
hostingsky.com
|
2886 |
+
hostnet5.com
|
2887 |
+
hostvy.com
|
2888 |
+
hostxxxpics4free.com
|
2889 |
+
hotallsoft.com
|
2890 |
+
hotcap.net
|
2891 |
+
hotfunsingles.com
|
2892 |
+
hotgirlads.com
|
2893 |
+
hoth0tpillss.com
|
2894 |
+
hothgh.com
|
2895 |
+
hotladiestodate.com
|
2896 |
+
hotnewdealioz.com
|
2897 |
+
hotprofileadvantage.com
|
2898 |
+
hotrefinance.com
|
2899 |
+
hotrxmedsspecials.com
|
2900 |
+
hotrxspecials.net
|
2901 |
+
hotsalza.com
|
2902 |
+
hotsupremeitemclub.com
|
2903 |
+
hotsweetsingles.com
|
2904 |
+
hotterpersonals.com
|
2905 |
+
hotties-waiting-for-you.com
|
2906 |
+
hottyground.com
|
2907 |
+
hottylaugh.com
|
2908 |
+
hottyplay.com
|
2909 |
+
hotviagra.info
|
2910 |
+
hotviagras.info
|
2911 |
+
hotwaystobuy.com
|
2912 |
+
hotwiveslovecheating.biz
|
2913 |
+
hotybatl.info
|
2914 |
+
hotyoursoft.info
|
2915 |
+
housecoat3misplaced.info
|
2916 |
+
howboutit.info
|
2917 |
+
howitwoks.info
|
2918 |
+
howiwantmyrx.net
|
2919 |
+
howsoever.net
|
2920 |
+
howtogetbetterjob.com
|
2921 |
+
hpsalez.biz
|
2922 |
+
hqmeds.info
|
2923 |
+
hqreplicas.info
|
2924 |
+
hrougthsteri.com
|
2925 |
+
hrre1.com
|
2926 |
+
hrre1.info
|
2927 |
+
hrt9092.com
|
2928 |
+
htloti.com
|
2929 |
+
html-email-marketing.com
|
2930 |
+
httpdkhelp.com
|
2931 |
+
huai.info
|
2932 |
+
huanramushome.com
|
2933 |
+
huge-sales.info
|
2934 |
+
hugeorgan.com
|
2935 |
+
hugobb.com
|
2936 |
+
humdrum9nil.info
|
2937 |
+
humephra.com
|
2938 |
+
huntandfind.com
|
2939 |
+
hunterbidd.com
|
2940 |
+
hunterswhosaid.com
|
2941 |
+
huntstudy.com
|
2942 |
+
hurrytobecomebetter.com
|
2943 |
+
hurtfully.com
|
2944 |
+
hwdnvinesolutions.com
|
2945 |
+
hybridisms.com
|
2946 |
+
hydra4altruism.com
|
2947 |
+
hydrocodine.net
|
2948 |
+
hydrocodonemegastore.com
|
2949 |
+
hydsut.com
|
2950 |
+
hymort.com
|
2951 |
+
hzgwerdsf.info
|
2952 |
+
i-dealz.net
|
2953 |
+
i-globalproductsinc.info
|
2954 |
+
i-luv-you.biz
|
2955 |
+
i-pharm.net
|
2956 |
+
iahfbweff.info
|
2957 |
+
iakbjmfccl.info
|
2958 |
+
iamsweetcandy.com
|
2959 |
+
iawewfwf.info
|
2960 |
+
iazy.com
|
2961 |
+
ibaskfhe.info
|
2962 |
+
ibestrate.com
|
2963 |
+
ibfemmh.biz
|
2964 |
+
ibitiuuewf.com
|
2965 |
+
ibnhenc.info
|
2966 |
+
ibogleif.dk
|
2967 |
+
ibzi.com
|
2968 |
+
icardboarbo.com
|
2969 |
+
iccm.com
|
2970 |
+
iceboat4late.com
|
2971 |
+
icedrive.com
|
2972 |
+
icegremlin.com
|
2973 |
+
icfbingknd.com
|
2974 |
+
ichbhhebfi.com
|
2975 |
+
ickysam.com
|
2976 |
+
iconnectiowit.com
|
2977 |
+
icors.com
|
2978 |
+
icptrack.com
|
2979 |
+
icycoldbabe.com
|
2980 |
+
idea5emulsifier.com
|
2981 |
+
idealreplica.com
|
2982 |
+
idkcon.com
|
2983 |
+
idler6accoster.com
|
2984 |
+
idmdmdl.info
|
2985 |
+
idncon.com
|
2986 |
+
idnto.com
|
2987 |
+
idontwanttobugyou.com
|
2988 |
+
idownloadnow.com
|
2989 |
+
idv.tc
|
2990 |
+
idv.tw
|
2991 |
+
ieasyloan.net
|
2992 |
+
iehdg.info
|
2993 |
+
ientry.com
|
2994 |
+
ientry.net
|
2995 |
+
ientrymail.com
|
2996 |
+
ieueirdefd.com
|
2997 |
+
iewndixj.info
|
2998 |
+
ifinancialblueprint.com
|
2999 |
+
ifuh.com
|
3000 |
+
ifvv.com
|
3001 |
+
ifyoudontthen.net
|
3002 |
+
igghsent.net
|
3003 |
+
iglobalproducts.biz
|
3004 |
+
ihaehhbb.info
|
3005 |
+
iherbs.biz
|
3006 |
+
ihjjfjdf.info
|
3007 |
+
ihoiha.biz
|
3008 |
+
iiebclga.info
|
3009 |
+
iiekwjnn.com
|
3010 |
+
iiggjjgl.info
|
3011 |
+
ijehanhjfk.info
|
3012 |
+
ikbnna.info
|
3013 |
+
ikgelfjk.info
|
3014 |
+
iknwyouknew.com
|
3015 |
+
ildligg.biz
|
3016 |
+
ilink.to
|
3017 |
+
illshop.com
|
3018 |
+
illumanated.com
|
3019 |
+
illz2kz.com
|
3020 |
+
ilovebam.info
|
3021 |
+
iloveitupme.com
|
3022 |
+
ilovemeds.com
|
3023 |
+
images1258tabs.biz
|
3024 |
+
imagespool.com
|
3025 |
+
imedo.hk
|
3026 |
+
imgclm.info
|
3027 |
+
imjbdie.info
|
3028 |
+
imkjbest.com
|
3029 |
+
imlive.com
|
3030 |
+
immemorial4strictness.com
|
3031 |
+
immun1ty.biz
|
3032 |
+
impactions.net
|
3033 |
+
impactlearn.com
|
3034 |
+
importancepriva.com
|
3035 |
+
importantforyouthisale.com
|
3036 |
+
importantitemsworldinfo.com
|
3037 |
+
imposition9snowcaps.com
|
3038 |
+
impynjimpy9.com
|
3039 |
+
imsodamtired.com
|
3040 |
+
imsogladthat.com
|
3041 |
+
in8tpsitn3ws.com
|
3042 |
+
inairhxb.com
|
3043 |
+
inaptness.com
|
3044 |
+
inbfmghk.info
|
3045 |
+
inbox.lv
|
3046 |
+
inc-cheap.com
|
3047 |
+
incbggc.info
|
3048 |
+
incco.net
|
3049 |
+
incdropfat.com
|
3050 |
+
incifiber.com
|
3051 |
+
incoming.com
|
3052 |
+
incrediblemile.info
|
3053 |
+
incrediblevisions.com
|
3054 |
+
incredimeds.com
|
3055 |
+
incredimeds.net
|
3056 |
+
industrycds.com
|
3057 |
+
inebuslove.com
|
3058 |
+
ineedamortgageloan.com
|
3059 |
+
ineedthis.biz
|
3060 |
+
ineekig.info
|
3061 |
+
inequebus.com
|
3062 |
+
inetwebtraffic.com
|
3063 |
+
inexhibit.com
|
3064 |
+
info-tech.com.sg
|
3065 |
+
info546.biz
|
3066 |
+
infobeanz.biz
|
3067 |
+
infochic.biz
|
3068 |
+
infocounty.biz
|
3069 |
+
infodsr.com
|
3070 |
+
infofrom.com
|
3071 |
+
infokay.biz
|
3072 |
+
infoklappenty.net
|
3073 |
+
infomediabot4u.biz
|
3074 |
+
informatixz.biz
|
3075 |
+
inforn.biz
|
3076 |
+
inforule.info
|
3077 |
+
inforxgroup.com
|
3078 |
+
infoshu.com
|
3079 |
+
infostead.biz
|
3080 |
+
infoyouwant.info
|
3081 |
+
ingoodhealth.info
|
3082 |
+
inmusicaleatre.com
|
3083 |
+
innbusbone.com
|
3084 |
+
inpillform.com
|
3085 |
+
insidefinancial.net
|
3086 |
+
insidegeneric.com
|
3087 |
+
insidesell.com
|
3088 |
+
insixtyseconds.net
|
3089 |
+
instant-approval.net
|
3090 |
+
instantinternetempires.com
|
3091 |
+
int3lligent.com
|
3092 |
+
intelliquotes.net
|
3093 |
+
intendant491pills.us
|
3094 |
+
intensehealthwork.com
|
3095 |
+
inter-cnnet.net
|
3096 |
+
interactivepoker.net
|
3097 |
+
interestingdog.com
|
3098 |
+
intermed36.info
|
3099 |
+
internationalt00ls.com
|
3100 |
+
internetcars.com.sg
|
3101 |
+
internetsalez.info
|
3102 |
+
internetseer.com
|
3103 |
+
internetstorechat.com
|
3104 |
+
intervivos.com
|
3105 |
+
intohomeloan.com
|
3106 |
+
intotallimbo.com
|
3107 |
+
intsft.biz
|
3108 |
+
invenmanager.com
|
3109 |
+
invernessxxx.com
|
3110 |
+
investorguide2004.com
|
3111 |
+
involute6538drygs.us
|
3112 |
+
iobsfewd.info
|
3113 |
+
iouwensi.info
|
3114 |
+
iowie1.com
|
3115 |
+
ipcts.com
|
3116 |
+
ipoderove.com
|
3117 |
+
iqowbdfesd.com
|
3118 |
+
iraqi6modi.com
|
3119 |
+
iroj.com
|
3120 |
+
ironsnake.com
|
3121 |
+
irventzhealthh.com
|
3122 |
+
irwinsolutions.com
|
3123 |
+
isaghvh.com
|
3124 |
+
isandwhatyou.com
|
3125 |
+
isaving.net
|
3126 |
+
isdnetsv.com
|
3127 |
+
isdotechs.com
|
3128 |
+
isytgquy.com
|
3129 |
+
it-promote.com
|
3130 |
+
italics5jester.com
|
3131 |
+
iteasy4u.info
|
3132 |
+
itemhighwide.com
|
3133 |
+
itemsgalacticsite.com
|
3134 |
+
itemsmanagement.com
|
3135 |
+
itfeelit.com
|
3136 |
+
itoservers.com
|
3137 |
+
its-simple.net
|
3138 |
+
itsforyouonly.com
|
3139 |
+
itsmylantern.com
|
3140 |
+
itsmyreplica.info
|
3141 |
+
itsmyreplica.net
|
3142 |
+
itsreplica.net
|
3143 |
+
itsworthwhile.net
|
3144 |
+
iughsfadihb.com
|
3145 |
+
iuhsdisssdf.com
|
3146 |
+
iuwernei.info
|
3147 |
+
ivnekra.info
|
3148 |
+
ivoiremarketing.com
|
3149 |
+
iwantacjobdonaldtrump.com
|
3150 |
+
iwantajobdonaldtruhmp.com
|
3151 |
+
iwantbiggercock.com
|
3152 |
+
iwantu.com
|
3153 |
+
iwarp.com
|
3154 |
+
iwearonetoo.com
|
3155 |
+
iwenudh.info
|
3156 |
+
iynkp.biz
|
3157 |
+
izbaerdd.info
|
3158 |
+
izbewfsdf.info
|
3159 |
+
izbowefd.info
|
3160 |
+
izealgaming.biz
|
3161 |
+
j0ys.net
|
3162 |
+
jadbadf.info
|
3163 |
+
jaiiisii.com
|
3164 |
+
jajbehad.com
|
3165 |
+
jakao.biz
|
3166 |
+
jalbcgh.info
|
3167 |
+
jamaican5amber.info
|
3168 |
+
jamielynntressy.com
|
3169 |
+
jaminformation.com
|
3170 |
+
jan2005.com
|
3171 |
+
jaobesefd.com
|
3172 |
+
jasbdkfjj.com
|
3173 |
+
jbbeajfbd.info
|
3174 |
+
jbxrefged.com
|
3175 |
+
jdebjdei.info
|
3176 |
+
jdfbbgg.biz
|
3177 |
+
jdfja9.biz
|
3178 |
+
jdhejhg.biz
|
3179 |
+
jebafdef.info
|
3180 |
+
jebaji.biz
|
3181 |
+
jeffersondarcy.com
|
3182 |
+
jegjikmh.info
|
3183 |
+
jejcndig.info
|
3184 |
+
jenniferyoungtart.com
|
3185 |
+
jerafjdd.info
|
3186 |
+
jervs.info
|
3187 |
+
jettisonit.com
|
3188 |
+
jfhjnnahdf.com
|
3189 |
+
jganmnbj.biz
|
3190 |
+
jgecmgg.info
|
3191 |
+
jghfddi.info
|
3192 |
+
jgsgfta.com
|
3193 |
+
jhabdfjh.info
|
3194 |
+
jhdsjhsdd.info
|
3195 |
+
jhelkl.biz
|
3196 |
+
jhex.com
|
3197 |
+
jhfbvdf.info
|
3198 |
+
jhgdjef.info
|
3199 |
+
jhgfghd.info
|
3200 |
+
jhgnbv.info
|
3201 |
+
jhmedsn.com
|
3202 |
+
ji2.net
|
3203 |
+
jia.com.sg
|
3204 |
+
jibbfkd.biz
|
3205 |
+
jimmymedz.com
|
3206 |
+
jinhai.info
|
3207 |
+
jintianhao.com
|
3208 |
+
jiuty.com
|
3209 |
+
jjglcllj.info
|
3210 |
+
jjlsdse.info
|
3211 |
+
jjnccci.info
|
3212 |
+
jjzprmotion.com
|
3213 |
+
jklomnda.com
|
3214 |
+
jlblbib.info
|
3215 |
+
jloolec.com
|
3216 |
+
jmeadbad.info
|
3217 |
+
jmkggcgj.info
|
3218 |
+
jmlfehdhkf.info
|
3219 |
+
jmmamd.biz
|
3220 |
+
jmoravec.info
|
3221 |
+
jnceudy3.com
|
3222 |
+
jnixsa.com
|
3223 |
+
jo1nt.com
|
3224 |
+
job2kestrel.com
|
3225 |
+
jobsupermart.com
|
3226 |
+
jocksbdjf.info
|
3227 |
+
jody-fustini.it
|
3228 |
+
joebucks.biz
|
3229 |
+
johka.biz
|
3230 |
+
john3249099a.com
|
3231 |
+
joihnset.biz
|
3232 |
+
joinme.com
|
3233 |
+
joke1903meds.us
|
3234 |
+
jokemwokds.info
|
3235 |
+
jokmuyw.com
|
3236 |
+
jollied.com
|
3237 |
+
jolmnh.com
|
3238 |
+
jomena.info
|
3239 |
+
jomr.com
|
3240 |
+
joreys.com
|
3241 |
+
jouim.info
|
3242 |
+
joy-3.com
|
3243 |
+
js4a.com
|
3244 |
+
jsdvye.info
|
3245 |
+
jsm20056.com
|
3246 |
+
jsneuw.info
|
3247 |
+
jsrefi.net
|
3248 |
+
jsuati.com
|
3249 |
+
juan7steno.us
|
3250 |
+
jubr.com
|
3251 |
+
jugr.com
|
3252 |
+
juharistolato.com
|
3253 |
+
juie.biz
|
3254 |
+
junceplans.com
|
3255 |
+
junotechs.com
|
3256 |
+
just-mort-gage.com
|
3257 |
+
just1ce.com
|
3258 |
+
just1ces.net
|
3259 |
+
justbestsoft.info
|
3260 |
+
justbre.com
|
3261 |
+
justforutoo.net
|
3262 |
+
justlender.com
|
3263 |
+
justrecommendation.info
|
3264 |
+
justsayinghello.com
|
3265 |
+
justthisday.net
|
3266 |
+
justwebs.biz
|
3267 |
+
jysdyy.info
|
3268 |
+
k5medical.com
|
3269 |
+
k8cheapnow.com
|
3270 |
+
ka9j.com
|
3271 |
+
kabdajqh.com
|
3272 |
+
kabula.info
|
3273 |
+
kadcmdk.info
|
3274 |
+
kaglekr.info
|
3275 |
+
kaneflic.info
|
3276 |
+
kasboesdf.com
|
3277 |
+
kaser.biz
|
3278 |
+
katchemack.net
|
3279 |
+
katelisalv.com
|
3280 |
+
kavotechs.com
|
3281 |
+
kayline.com
|
3282 |
+
kazaanospyware.info
|
3283 |
+
kazaapro.info
|
3284 |
+
kbadfkasd.biz
|
3285 |
+
kbagbafb.info
|
3286 |
+
kbhdmng.info
|
3287 |
+
kbsbwj.info
|
3288 |
+
kbvbxdfed.com
|
3289 |
+
kbzefhefe.com
|
3290 |
+
kcmortgagepros.com
|
3291 |
+
kdegohoodkk.com
|
3292 |
+
kdjedfe.info
|
3293 |
+
kdnix.com
|
3294 |
+
kdnix.net
|
3295 |
+
kebi.com
|
3296 |
+
kebosw.biz
|
3297 |
+
keepingtimeinstyle.com
|
3298 |
+
keeponlovinme.com
|
3299 |
+
kegllbbkmn.info
|
3300 |
+
kelfjinm.info
|
3301 |
+
kellykapowski.com
|
3302 |
+
kennyboy.net
|
3303 |
+
kermitdoc.com
|
3304 |
+
kf98.com
|
3305 |
+
kfdlamjl.info
|
3306 |
+
kfhefkdn.com
|
3307 |
+
kfjlfjka.biz
|
3308 |
+
kfvedbx.com
|
3309 |
+
khopd.com
|
3310 |
+
kibesad.com
|
3311 |
+
kicks-ass.net
|
3312 |
+
kiffergly.net
|
3313 |
+
kihggcf.info
|
3314 |
+
kikv.com
|
3315 |
+
killadwareco.com
|
3316 |
+
killadwarecompany.com
|
3317 |
+
killadwaregalaxy.com
|
3318 |
+
killviruses.biz
|
3319 |
+
kilomed.biz
|
3320 |
+
kimo.com.tw
|
3321 |
+
kinahel.com
|
3322 |
+
kinkygirlsxxx.com
|
3323 |
+
kirovskiy1nab.info
|
3324 |
+
kirticritgh.com
|
3325 |
+
kitchen5upholder.com
|
3326 |
+
kitcompletezone.com
|
3327 |
+
kjdsfb.info
|
3328 |
+
kjhsdj.info
|
3329 |
+
kjmcfln.biz
|
3330 |
+
kjnfanie.info
|
3331 |
+
kjnixc.net
|
3332 |
+
kjomkaasc.biz
|
3333 |
+
kjomkaasc.com
|
3334 |
+
kk122sd.biz
|
3335 |
+
kkda23.biz
|
3336 |
+
kkimmigration.com
|
3337 |
+
klbbclk.info
|
3338 |
+
klbbfkka.info
|
3339 |
+
klcbhgf.biz
|
3340 |
+
kldjknai.com
|
3341 |
+
klheafm.info
|
3342 |
+
klipsandbracks.com
|
3343 |
+
kllchid.info
|
3344 |
+
klonpiz.com
|
3345 |
+
kmfddik.info
|
3346 |
+
kmthedi.com
|
3347 |
+
knhhddia.info
|
3348 |
+
kniudx.net
|
3349 |
+
knlhbcc.info
|
3350 |
+
knowthyself.com.sg
|
3351 |
+
kokmeowdm.com
|
3352 |
+
kolmndan.com
|
3353 |
+
kolobokt.info
|
3354 |
+
komi1auspices.com
|
3355 |
+
kongo4sheered.com
|
3356 |
+
konmiralt.com
|
3357 |
+
koolbottin.com
|
3358 |
+
kooloem.info
|
3359 |
+
koolrx.com
|
3360 |
+
korea.com
|
3361 |
+
korkd.cn
|
3362 |
+
kotiesfef.com
|
3363 |
+
kpth.us
|
3364 |
+
kqet.com
|
3365 |
+
kqmort.com
|
3366 |
+
kquwbajdfh.com
|
3367 |
+
kr3.net
|
3368 |
+
krazykash.com
|
3369 |
+
kretomusta.info
|
3370 |
+
krieuthse.com
|
3371 |
+
krline.net
|
3372 |
+
kuev.com
|
3373 |
+
kukqwe.info
|
3374 |
+
kukqwp.info
|
3375 |
+
kukqwy.info
|
3376 |
+
kulindugase.com
|
3377 |
+
kuolocl.com
|
3378 |
+
kuweiwh.biz
|
3379 |
+
kvvb.com
|
3380 |
+
kxxjn.com
|
3381 |
+
kylome.com
|
3382 |
+
kyqdv.com
|
3383 |
+
l-mtg.net
|
3384 |
+
l0w-rat3.com
|
3385 |
+
l0wbankrates.com
|
3386 |
+
l73.net
|
3387 |
+
labored7neologism.com
|
3388 |
+
ladiesmothers.net
|
3389 |
+
ladybugnews.com
|
3390 |
+
ladytoysite.info
|
3391 |
+
laibgh.biz
|
3392 |
+
laielove.com
|
3393 |
+
laielovewi.com
|
3394 |
+
lakdj9.info
|
3395 |
+
lake2005deep.biz
|
3396 |
+
lalapage.com
|
3397 |
+
landmarkgreen.com
|
3398 |
+
landolimer.com
|
3399 |
+
landrater.com
|
3400 |
+
lankiest.net
|
3401 |
+
lanoderina.com
|
3402 |
+
largerlover.com
|
3403 |
+
lastbill.biz
|
3404 |
+
lastlender.com
|
3405 |
+
lastquebus.com
|
3406 |
+
lastweekwith.com
|
3407 |
+
latestrxpills.com
|
3408 |
+
latinmail.com
|
3409 |
+
latne.com
|
3410 |
+
latzzzp.net
|
3411 |
+
laviena.net
|
3412 |
+
lavnfjefs.info
|
3413 |
+
layinflowerat.com
|
3414 |
+
layleader.com
|
3415 |
+
layover5sawyer.info
|
3416 |
+
lazv.com
|
3417 |
+
lbalaska.com
|
3418 |
+
lbcfgkjc.info
|
3419 |
+
lbfabillbn.info
|
3420 |
+
lbjegek.info
|
3421 |
+
lbmfdlmdba.info
|
3422 |
+
lc5.net
|
3423 |
+
lddho.com
|
3424 |
+
ldebhbe.info
|
3425 |
+
ldrim.com
|
3426 |
+
leadsmasters.biz
|
3427 |
+
leanswerebein.com
|
3428 |
+
legalhelpcenter.org
|
3429 |
+
legaloffers2u.biz
|
3430 |
+
legilant.com
|
3431 |
+
lemchfj.info
|
3432 |
+
lend-bloxz.com
|
3433 |
+
lender-home.com
|
3434 |
+
lender-search.biz
|
3435 |
+
lender-shop.com
|
3436 |
+
lender-site.com
|
3437 |
+
lender1.net
|
3438 |
+
lendera.com
|
3439 |
+
lenderadd.com
|
3440 |
+
lendersdeals.com
|
3441 |
+
lenderserv.com
|
3442 |
+
lendersforyou.com
|
3443 |
+
lendersglaore.com
|
3444 |
+
lenderto.com
|
3445 |
+
lenderto.net
|
3446 |
+
lenderz.info
|
3447 |
+
lenderz.net
|
3448 |
+
lenderzmortgage.com
|
3449 |
+
lending-blocksx.com
|
3450 |
+
lending-bloxs.com
|
3451 |
+
lending-home.com
|
3452 |
+
lending-leadersx.net
|
3453 |
+
lending-now.com
|
3454 |
+
lending-tresm.com
|
3455 |
+
lendingflow.com
|
3456 |
+
lendingflow.net
|
3457 |
+
lendingfor.com
|
3458 |
+
lendingiqrefinance.com
|
3459 |
+
lendingiqrefinance.net
|
3460 |
+
lendingneed.com
|
3461 |
+
lendingxid.com
|
3462 |
+
lendingxid.net
|
3463 |
+
lendinxsz.com
|
3464 |
+
lendinxsz.net
|
3465 |
+
lendx.biz
|
3466 |
+
lendxu-now.com
|
3467 |
+
lendzx.info
|
3468 |
+
lenkks.com
|
3469 |
+
lenpor.biz
|
3470 |
+
lensings.com
|
3471 |
+
leperex.com
|
3472 |
+
leph.info
|
3473 |
+
lepiotapan.net
|
3474 |
+
lerkawid.biz
|
3475 |
+
lesdgt.com
|
3476 |
+
lesdgt.net
|
3477 |
+
lessclan.com
|
3478 |
+
lesspot.com
|
3479 |
+
letazr.com
|
3480 |
+
letsjustgo.biz
|
3481 |
+
letsrefinance.net
|
3482 |
+
lettercer.com
|
3483 |
+
lettersubmit.com
|
3484 |
+
levin.hk
|
3485 |
+
levisce.com
|
3486 |
+
lfeedbx.com
|
3487 |
+
lgabmdc.info
|
3488 |
+
lghdndal.info
|
3489 |
+
libertyfunds.biz
|
3490 |
+
libertyp.com
|
3491 |
+
lifebestproductss.com
|
3492 |
+
lifeinsquote04.com
|
3493 |
+
lifeinsquotesgalore.com
|
3494 |
+
lifeisimportant.biz
|
3495 |
+
lifeleaksfromyo.com
|
3496 |
+
lifelovehealth.biz
|
3497 |
+
lifemedic.com
|
3498 |
+
lifemedien.de
|
3499 |
+
lifeonlinetech.com
|
3500 |
+
lifequotesgalore.com
|
3501 |
+
lifesaver5subitem.us
|
3502 |
+
lifestylescenter.com
|
3503 |
+
lift3nobelium.com
|
3504 |
+
ligcie.info
|
3505 |
+
ligeced.info
|
3506 |
+
ligenitaljh.com
|
3507 |
+
light-apps.com
|
3508 |
+
light-apps.net
|
3509 |
+
lijniahk.info
|
3510 |
+
liketobeclever.com
|
3511 |
+
limikoh.com
|
3512 |
+
limited7seizes.com
|
3513 |
+
limitedinfo.com
|
3514 |
+
limiteprofessional.com
|
3515 |
+
linchidmch.com
|
3516 |
+
linebrown.info
|
3517 |
+
linikat.com
|
3518 |
+
link-builder.com
|
3519 |
+
link55.com
|
3520 |
+
lip7untimely.com
|
3521 |
+
lipase.net
|
3522 |
+
lipsik.biz
|
3523 |
+
lipstick4formalism.com
|
3524 |
+
lipton2011biz.biz
|
3525 |
+
liquid-refi.net
|
3526 |
+
lirefi.net
|
3527 |
+
listeningstrawberries.info
|
3528 |
+
listmail.net
|
3529 |
+
lists.com.sg
|
3530 |
+
litany2detritus.info
|
3531 |
+
liteoflove.com
|
3532 |
+
literal1apposite.com
|
3533 |
+
litesolutionsforproblems.com
|
3534 |
+
littlerosa.com
|
3535 |
+
liveadulthosting.biz
|
3536 |
+
livebaseboll.info
|
3537 |
+
liveperson.net
|
3538 |
+
livere.biz
|
3539 |
+
liverymen.com
|
3540 |
+
livies7briefcase.com
|
3541 |
+
livinghomebased.com
|
3542 |
+
ljmflnjl.info
|
3543 |
+
lkjklj.net
|
3544 |
+
lkosn.com
|
3545 |
+
lksdns.info
|
3546 |
+
lksjdni.info
|
3547 |
+
llg2005.biz
|
3548 |
+
llhchmg.info
|
3549 |
+
lmlgdnhk.info
|
3550 |
+
lmvieux9.info
|
3551 |
+
lnbjihcn.info
|
3552 |
+
lnccmkm.info
|
3553 |
+
lnebgfmh.info
|
3554 |
+
lneegim.info
|
3555 |
+
lneekianjj.info
|
3556 |
+
lnelna.info
|
3557 |
+
lnkjlfgg.info
|
3558 |
+
lo-w-mor-t-gage.com
|
3559 |
+
lo-west-mort-gage.com
|
3560 |
+
loanabout.com
|
3561 |
+
loanhelpamerica.com
|
3562 |
+
loanicu.com
|
3563 |
+
loanpoly.com
|
3564 |
+
loans-approved.net
|
3565 |
+
loans-offered.net
|
3566 |
+
loans05.com
|
3567 |
+
loansavail.com
|
3568 |
+
loansweethome.com
|
3569 |
+
loant.net
|
3570 |
+
loanwap.com
|
3571 |
+
loanwithme.com
|
3572 |
+
lobangalores.com
|
3573 |
+
lobjxndfe.info
|
3574 |
+
local247.biz
|
3575 |
+
local4aha.com
|
3576 |
+
locate-up-timez.info
|
3577 |
+
lockdowncorp.com
|
3578 |
+
locus1heck.info
|
3579 |
+
loenetsv.com
|
3580 |
+
loeotechs.com
|
3581 |
+
logingcramp.com
|
3582 |
+
logods.com
|
3583 |
+
logogodz.com
|
3584 |
+
logolyx.com
|
3585 |
+
logomarz.com
|
3586 |
+
logomedias.com
|
3587 |
+
logowarz.com
|
3588 |
+
logower.info
|
3589 |
+
lolpills.info
|
3590 |
+
lomono.info
|
3591 |
+
lomotay.com
|
3592 |
+
lomydumy.com
|
3593 |
+
lonathdomai.com
|
3594 |
+
lonelyenough.com
|
3595 |
+
lonelywife.org
|
3596 |
+
lonelyworld.biz
|
3597 |
+
longerthan.us
|
3598 |
+
longherbalz.net
|
3599 |
+
longliveme.info
|
3600 |
+
longter2.info
|
3601 |
+
look4abride.com
|
3602 |
+
lookforoem.biz
|
3603 |
+
looking-to-get-laid.us
|
3604 |
+
lookingforahotone.com
|
3605 |
+
looknomoreforstores.com
|
3606 |
+
looktruck.cn
|
3607 |
+
looloo.biz
|
3608 |
+
loosebellyfat.biz
|
3609 |
+
loosingfat.biz
|
3610 |
+
loozksd.com
|
3611 |
+
lopemrnd.biz
|
3612 |
+
loperatoza.com
|
3613 |
+
lopmean.info
|
3614 |
+
lopzzz.com
|
3615 |
+
lordoftheclam.com
|
3616 |
+
lorryload.net
|
3617 |
+
lots-a-promo.com
|
3618 |
+
lotsofmed.com
|
3619 |
+
lottavita.info
|
3620 |
+
lou7disperate.info
|
3621 |
+
loudfrog.com
|
3622 |
+
louis6noise.info
|
3623 |
+
louismorpheus.com
|
3624 |
+
lour8respectful.com
|
3625 |
+
love-tips.net
|
3626 |
+
love-to-meet-hotties.com
|
3627 |
+
loveaffairboutique.com
|
3628 |
+
loveandfreedom.com
|
3629 |
+
lovecosttabl.info
|
3630 |
+
lovehelp.biz
|
3631 |
+
lovelybeautifulbags.com
|
3632 |
+
lovelywatches4u.net
|
3633 |
+
lovemedication.biz
|
3634 |
+
loveparadise.biz
|
3635 |
+
loveportion.biz
|
3636 |
+
lovespiceup.com
|
3637 |
+
loveyourshoes.biz
|
3638 |
+
lovingbetteronline.com
|
3639 |
+
lovingchatter.com
|
3640 |
+
lovpillsviagra.com
|
3641 |
+
lovtabl.info
|
3642 |
+
low-est.net
|
3643 |
+
low-mo-rt-gag-e.com
|
3644 |
+
low-price-soft.biz
|
3645 |
+
low-rate-mort-gages.com
|
3646 |
+
low-rate-s.com
|
3647 |
+
low-rates-for-you.com
|
3648 |
+
low-rates-usa.com
|
3649 |
+
lowcarbodietweightloss.com
|
3650 |
+
lowcoscanadarx.com
|
3651 |
+
lowcostcanadarx.bix
|
3652 |
+
lowcostcanadarx.biz
|
3653 |
+
lowcostsoft.biz
|
3654 |
+
lowe-r-mort-ga-ge.com
|
3655 |
+
lower-loans.com
|
3656 |
+
lowerhealt.info
|
3657 |
+
lowest-rate-mort-gages.com
|
3658 |
+
lowest-rates-ever.com
|
3659 |
+
lowestmorgage.info
|
3660 |
+
lowestpricing.biz
|
3661 |
+
loweweb.com
|
3662 |
+
lowlow1refinance.com
|
3663 |
+
lowmorgage.net
|
3664 |
+
lowrate-specialist.com
|
3665 |
+
lowrates4you.info
|
3666 |
+
lowratez.info
|
3667 |
+
lowsee.com
|
3668 |
+
lpjsjfv.info
|
3669 |
+
lskjemidd.com
|
3670 |
+
lsknmse.info
|
3671 |
+
ltalian.net
|
3672 |
+
ltxmeds.com
|
3673 |
+
lunatic6rhymer.com
|
3674 |
+
lurch9528rx.us
|
3675 |
+
lurvey.us
|
3676 |
+
luvbooster.biz
|
3677 |
+
luvisblind.biz
|
3678 |
+
luxurywatch4me.com
|
3679 |
+
lvrbnk.info
|
3680 |
+
lwenisz.info
|
3681 |
+
lwrefi.net
|
3682 |
+
lyaerd.com
|
3683 |
+
lyinofstor.com
|
3684 |
+
lymph7447rneds.com
|
3685 |
+
lynchcontemporaneous.com
|
3686 |
+
lzac.com
|
3687 |
+
m-l-now.info
|
3688 |
+
m-tg-today.net
|
3689 |
+
m0dels.com
|
3690 |
+
m0r.net
|
3691 |
+
m0re.net
|
3692 |
+
m0rrt.net
|
3693 |
+
m0rt-gages.net
|
3694 |
+
m0rt.com
|
3695 |
+
m0rtzzs.com
|
3696 |
+
m1p2.com
|
3697 |
+
m3d2u.com
|
3698 |
+
m3dspective.info
|
3699 |
+
machomall.com
|
3700 |
+
macrozine.net
|
3701 |
+
madfuture.com
|
3702 |
+
madgadget.biz
|
3703 |
+
madpot.info
|
3704 |
+
mafer.hk
|
3705 |
+
maffgnjc.info
|
3706 |
+
magicportion.info
|
3707 |
+
magictablets.net
|
3708 |
+
magnasoft.info
|
3709 |
+
magnifeye.biz
|
3710 |
+
magnitudeofborrowing.com
|
3711 |
+
magnolia7jeans.info
|
3712 |
+
magnum-shop.com
|
3713 |
+
magzone.com
|
3714 |
+
mahndjni.info
|
3715 |
+
maielovewi.com
|
3716 |
+
mailacc.com
|
3717 |
+
mailergroup.com
|
3718 |
+
maillovewi.com
|
3719 |
+
mailtracking.com
|
3720 |
+
mailworkz.com
|
3721 |
+
mainscale4u.com
|
3722 |
+
mainsqueezelove.biz
|
3723 |
+
makeitmetronow.com
|
3724 |
+
makemelogo.com
|
3725 |
+
makemysavings.net
|
3726 |
+
makesol.info
|
3727 |
+
makethisyearspecial.com
|
3728 |
+
makeyourhealth.info
|
3729 |
+
makingsweetdealstoday.com
|
3730 |
+
makingthemost.net
|
3731 |
+
malemanual.com
|
3732 |
+
maletoyz-x.info
|
3733 |
+
malignant5beer.com
|
3734 |
+
malikt.org
|
3735 |
+
malta8bowlegged.info
|
3736 |
+
mamma.com
|
3737 |
+
mammaloan.net
|
3738 |
+
man3jf.biz
|
3739 |
+
manawork.com
|
3740 |
+
mangiest.net
|
3741 |
+
manhole4962biz.us
|
3742 |
+
manifesto8098tads.us
|
3743 |
+
manikotatosti.com
|
3744 |
+
manila8mis.com
|
3745 |
+
mankeyman.info
|
3746 |
+
mannegeil.com
|
3747 |
+
mantilla7896rx.us
|
3748 |
+
manygoodthings.info
|
3749 |
+
mapshaus.info
|
3750 |
+
mar-di.net
|
3751 |
+
marefi.net
|
3752 |
+
marigraphic.com
|
3753 |
+
markdownquote.com
|
3754 |
+
marketboosting.com
|
3755 |
+
marketingboosting.com
|
3756 |
+
marketnews2004.com
|
3757 |
+
marketwatch.com
|
3758 |
+
marketwiseinvestors.com
|
3759 |
+
marksite.biz
|
3760 |
+
maron.hk
|
3761 |
+
mars6apparel.info
|
3762 |
+
marswebsite.com
|
3763 |
+
martinisblue.com
|
3764 |
+
marvinfhlil.com
|
3765 |
+
masfre.info
|
3766 |
+
masochism2doubt.com
|
3767 |
+
masonry4flack.com
|
3768 |
+
massifs.net
|
3769 |
+
massivethree.com
|
3770 |
+
massrecommend.info
|
3771 |
+
masswebsitehits.com
|
3772 |
+
master-lomaster.biz
|
3773 |
+
mateinfo.com
|
3774 |
+
mathome.com
|
3775 |
+
matterlaugh.com
|
3776 |
+
maulhcrulz.info
|
3777 |
+
max-loans.com
|
3778 |
+
max-loans.net
|
3779 |
+
maxigas.org
|
3780 |
+
maximum-loans.net
|
3781 |
+
maxxcer.com
|
3782 |
+
maxxlenght.info
|
3783 |
+
maynotbused.com
|
3784 |
+
mayrx.com
|
3785 |
+
mblcmla.info
|
3786 |
+
mbnenbhaa.com
|
3787 |
+
mbnzvxr.com
|
3788 |
+
mcadks.com
|
3789 |
+
mchammers.com
|
3790 |
+
mchefmck.com
|
3791 |
+
mcidmkdf.info
|
3792 |
+
mcndqpd.info
|
3793 |
+
mcravegj.com
|
3794 |
+
mcwell-design.com
|
3795 |
+
md20.com
|
3796 |
+
mda88.net
|
3797 |
+
mdgfbahm.info
|
3798 |
+
mdnirdhx.info
|
3799 |
+
mdonx.com
|
3800 |
+
mdpillsource.com
|
3801 |
+
me2all.com
|
3802 |
+
meantlot.cn
|
3803 |
+
meanwhile9riches.com
|
3804 |
+
mecei.com
|
3805 |
+
med44z.com
|
3806 |
+
med6547.biz
|
3807 |
+
medaboh.com
|
3808 |
+
medalertz.info
|
3809 |
+
medboc.com
|
3810 |
+
medbop.com
|
3811 |
+
medcarepharmacy.net
|
3812 |
+
medcity.ws
|
3813 |
+
meddalert.com
|
3814 |
+
medi-place.com
|
3815 |
+
medianly.com
|
3816 |
+
mediaonweb.info
|
3817 |
+
medic4salez.com
|
3818 |
+
medicalfhtjk.com
|
3819 |
+
medicalgloveonline.info
|
3820 |
+
medicalhere.com
|
3821 |
+
medicaljyid.biz
|
3822 |
+
medicalpatch.biz
|
3823 |
+
medicationpoint.com
|
3824 |
+
medkit.info
|
3825 |
+
medmembership.com
|
3826 |
+
mednr5fdf.com
|
3827 |
+
medoadk.com
|
3828 |
+
medpills.biz
|
3829 |
+
meds-factory.com
|
3830 |
+
meds-offshore.com
|
3831 |
+
meds441.com
|
3832 |
+
meds4fast.com
|
3833 |
+
medsa42.com
|
3834 |
+
medsabqh.com
|
3835 |
+
medsceurefor.com
|
3836 |
+
medsdadc.biz
|
3837 |
+
medsfig.com
|
3838 |
+
medsforunow.com
|
3839 |
+
medsoffshore.com
|
3840 |
+
medsonthego.com
|
3841 |
+
medsrealcheap.com
|
3842 |
+
medswholesale.net
|
3843 |
+
medz-are-here.com
|
3844 |
+
medz-store.com
|
3845 |
+
medz4cheap.com
|
3846 |
+
medz4life.com
|
3847 |
+
medz4you.net
|
3848 |
+
medzph44.com
|
3849 |
+
meeotechs.com
|
3850 |
+
meeting-smile.com
|
3851 |
+
meetingamateonline.com
|
3852 |
+
meetingsmile.com
|
3853 |
+
meetstraight.com
|
3854 |
+
meettomorrow.com
|
3855 |
+
mefowefsz.info
|
3856 |
+
mega-health.net
|
3857 |
+
mega-oem.info
|
3858 |
+
megabargainsplus.com
|
3859 |
+
megabestpharmacy.com
|
3860 |
+
megacheapmeds.com
|
3861 |
+
mejc.com
|
3862 |
+
mejcgall.info
|
3863 |
+
melhoresepiores.info
|
3864 |
+
memorybig.com
|
3865 |
+
menaro.info
|
3866 |
+
menbd56w.com
|
3867 |
+
mend4a22.com
|
3868 |
+
mendsxc.com
|
3869 |
+
menew5s.com
|
3870 |
+
menkefk.info
|
3871 |
+
mens545q.com
|
3872 |
+
menw54s.com
|
3873 |
+
meokwodsa.info
|
3874 |
+
merchantgalaxy.com
|
3875 |
+
merchantglobalx.com
|
3876 |
+
merchantmegasite.com
|
3877 |
+
mereprin.biz
|
3878 |
+
merriestyet.info
|
3879 |
+
meshednlngh.com
|
3880 |
+
mesncje.info
|
3881 |
+
messagemanager.com.au
|
3882 |
+
messagereach.com
|
3883 |
+
messyland.com
|
3884 |
+
metalokol.com
|
3885 |
+
metalregency.info
|
3886 |
+
metaphore2acquit.info
|
3887 |
+
metasof.com
|
3888 |
+
metontheweb.info
|
3889 |
+
metro-savings.com
|
3890 |
+
metrology8knockout.info
|
3891 |
+
mezd.com
|
3892 |
+
mf81f.biz
|
3893 |
+
mfek.com
|
3894 |
+
mfjnru.info
|
3895 |
+
mfound.com
|
3896 |
+
mfwebfdef.info
|
3897 |
+
mg1reduced.com
|
3898 |
+
mgagifgn.info
|
3899 |
+
mgbest.biz
|
3900 |
+
mgbest1.com
|
3901 |
+
mgidbnghdh.com
|
3902 |
+
mgjegng.info
|
3903 |
+
mgmhomeloan.net
|
3904 |
+
mgndmka.info
|
3905 |
+
mgstarts.biz
|
3906 |
+
mhbweb.info
|
3907 |
+
mhdpw.info
|
3908 |
+
mibdill.info
|
3909 |
+
microhertz.com.sg
|
3910 |
+
midnightlaundries.com
|
3911 |
+
midord.com
|
3912 |
+
miff4hostless.com
|
3913 |
+
mightily9parvenu.info
|
3914 |
+
mightygo.info
|
3915 |
+
migrationexpert.com
|
3916 |
+
mihfcceg.info
|
3917 |
+
milkpose.cn
|
3918 |
+
milkywilky.com
|
3919 |
+
mindtransformations.com
|
3920 |
+
mini-remote-cars-boats.com
|
3921 |
+
minnowssending.net
|
3922 |
+
minutelossknot.com
|
3923 |
+
mionterfadei.com
|
3924 |
+
mirace2005.info
|
3925 |
+
missedalesson.com
|
3926 |
+
misterguide.info
|
3927 |
+
mjespace.com
|
3928 |
+
mjfbbimd.info
|
3929 |
+
mjkeglg.info
|
3930 |
+
mkabmhl.info
|
3931 |
+
mkbizz.com
|
3932 |
+
mkigiclh.info
|
3933 |
+
mkmvb34f.com
|
3934 |
+
mkrefi.net
|
3935 |
+
mksfbefds.info
|
3936 |
+
mldfmkd.info
|
3937 |
+
mlgegcm.info
|
3938 |
+
mmachine.com
|
3939 |
+
mmbgcf.biz
|
3940 |
+
mmbn.info
|
3941 |
+
mmd123.com
|
3942 |
+
mmeds.info
|
3943 |
+
mmgrp.info
|
3944 |
+
mmhlifid.biz
|
3945 |
+
mnasbred34.com
|
3946 |
+
mnbasdn.info
|
3947 |
+
mnbsqas.com
|
3948 |
+
mnevbdsx.com
|
3949 |
+
mnicwozelis.com
|
3950 |
+
mnm1.com
|
3951 |
+
mnnfghgc.com
|
3952 |
+
mnrb6s3.com
|
3953 |
+
mnvbrfc.com
|
3954 |
+
moarban.net
|
3955 |
+
moblook.com
|
3956 |
+
mobnight.info
|
3957 |
+
modeler9standstill.com
|
3958 |
+
modelled.net
|
3959 |
+
moderninnovations.net
|
3960 |
+
modfhedfd.info
|
3961 |
+
mokatilatiano.com
|
3962 |
+
molph.info
|
3963 |
+
momanator.com
|
3964 |
+
momento-erowid.net
|
3965 |
+
mon-nowz.net
|
3966 |
+
monarchic.net
|
3967 |
+
mondayblues.biz
|
3968 |
+
mondhs.com
|
3969 |
+
monehome.com
|
3970 |
+
monetised.net
|
3971 |
+
money-bright.info
|
3972 |
+
money-deal.info
|
3973 |
+
money-discount.info
|
3974 |
+
money-group.net
|
3975 |
+
money-internet.net
|
3976 |
+
money-stop.net
|
3977 |
+
moneyanalysis.net
|
3978 |
+
moneyfirms.com
|
3979 |
+
moneyintelligent.info
|
3980 |
+
moneyondemand.info
|
3981 |
+
moneysharp.info
|
3982 |
+
moneystates.com
|
3983 |
+
monocytengfa.com
|
3984 |
+
monogram4pegmatitic.com
|
3985 |
+
moodsoft.info
|
3986 |
+
moonboard.info
|
3987 |
+
mor-now.com
|
3988 |
+
more-salz.com
|
3989 |
+
more4lessrx.com
|
3990 |
+
more4me2.com
|
3991 |
+
morecashlessdebt4u.com
|
3992 |
+
morecheaprx.com
|
3993 |
+
moreger.com
|
3994 |
+
moreinfo4you.net
|
3995 |
+
morequote.com
|
3996 |
+
morerawk.com
|
3997 |
+
moretabl.info
|
3998 |
+
moretgage.info
|
3999 |
+
moretgauge.net
|
4000 |
+
morethanadrivefull.com
|
4001 |
+
morethanwhatiwant.com
|
4002 |
+
moreupto.com
|
4003 |
+
morpheus-spyware.info
|
4004 |
+
mort-abc.com
|
4005 |
+
mort-abc.net
|
4006 |
+
mort-best-deal.com
|
4007 |
+
mort-for-you.net
|
4008 |
+
mort-g-age-now.com
|
4009 |
+
mort-loa-ns.com
|
4010 |
+
mort-low-rate.com
|
4011 |
+
mort-lowsz.net
|
4012 |
+
mort-today.com
|
4013 |
+
mort-today.net
|
4014 |
+
mort-usa.net
|
4015 |
+
mort-vivahome.com
|
4016 |
+
mort-your.com
|
4017 |
+
mort6ga.biz
|
4018 |
+
mortco.org
|
4019 |
+
mortfund.com
|
4020 |
+
mortga12.com
|
4021 |
+
mortgage-2000.net
|
4022 |
+
mortgage-ebrokers.com
|
4023 |
+
mortgage-lowsz.com
|
4024 |
+
mortgage-newx.net
|
4025 |
+
mortgage-search.us
|
4026 |
+
mortgage-tower.com
|
4027 |
+
mortgagel0ans.com
|
4028 |
+
mortgagelf.com
|
4029 |
+
mortgageloansbynet.com
|
4030 |
+
mortgageofficer.net
|
4031 |
+
mortgages-4-you.com
|
4032 |
+
mortgages-4u.net
|
4033 |
+
mortgageshoppers.info
|
4034 |
+
mortgauge.net
|
4035 |
+
mortgege.info
|
4036 |
+
mortgxs.net
|
4037 |
+
mortiqnow.com
|
4038 |
+
mortmy.com
|
4039 |
+
mortpharm2005.net
|
4040 |
+
mortsiq.com
|
4041 |
+
mortslow.com
|
4042 |
+
mortslow.net
|
4043 |
+
mortsscd.com
|
4044 |
+
mortsxo.com
|
4045 |
+
mortyour.com
|
4046 |
+
mortzgagez.com
|
4047 |
+
mortzgagez.net
|
4048 |
+
mortzlow.com
|
4049 |
+
mortzz.com
|
4050 |
+
mosper.com
|
4051 |
+
mosque4lexical.com
|
4052 |
+
mosteffective.biz
|
4053 |
+
mostlyyes.info
|
4054 |
+
motherless9bargraph.com
|
4055 |
+
mothernoun.cn
|
4056 |
+
motorcityescorts.com
|
4057 |
+
mouthwrong.com
|
4058 |
+
movierand.com
|
4059 |
+
movsex.info
|
4060 |
+
mozgoebstvo.biz
|
4061 |
+
moziyu.com
|
4062 |
+
mp3bundle.com
|
4063 |
+
mq5.net
|
4064 |
+
mqnbas552.com
|
4065 |
+
mqwerisbf.com
|
4066 |
+
mr-stamina.info
|
4067 |
+
mredtesun.biz
|
4068 |
+
mrev.biz
|
4069 |
+
mrg-now-yes.com
|
4070 |
+
mrkfin.com
|
4071 |
+
mrlend123.com
|
4072 |
+
mrns432s.com
|
4073 |
+
mrratenow.com
|
4074 |
+
mrrefinancing.net
|
4075 |
+
mrstrong.biz
|
4076 |
+
mrt-now.com
|
4077 |
+
mrtfi.com
|
4078 |
+
mrtg-now.com
|
4079 |
+
mrthgsfaw.info
|
4080 |
+
mrut.com
|
4081 |
+
mseiosjd.info
|
4082 |
+
msn3as21.com
|
4083 |
+
mt-12-34.com
|
4084 |
+
mt-g-today.com
|
4085 |
+
mt.st
|
4086 |
+
mtg-gen3.com
|
4087 |
+
mtg-makers1.com
|
4088 |
+
mtgdefault.us
|
4089 |
+
mtgdflt.us
|
4090 |
+
mtgexpertz.info
|
4091 |
+
mtgz.net
|
4092 |
+
mubsedefd.com
|
4093 |
+
mufflerbeef.com
|
4094 |
+
multimed.ws
|
4095 |
+
multumliakf.com
|
4096 |
+
muores.com
|
4097 |
+
muorue.com
|
4098 |
+
murmur3unboiled.us
|
4099 |
+
murzel.net
|
4100 |
+
muscat3turnup.info
|
4101 |
+
musindvide.com
|
4102 |
+
mustbegood.info
|
4103 |
+
mutualneefor.com
|
4104 |
+
mx01.com
|
4105 |
+
mxsoft.biz
|
4106 |
+
my-DNA.net
|
4107 |
+
my-cash.biz
|
4108 |
+
my-cash.net
|
4109 |
+
my-refi.net
|
4110 |
+
my7sundew.info
|
4111 |
+
myabsinth.com
|
4112 |
+
myautowarranty.com
|
4113 |
+
mybighouse.net
|
4114 |
+
mycasino777.info
|
4115 |
+
mydatingtype.com
|
4116 |
+
mydnnweb.com
|
4117 |
+
mydomfiyeswhy.com
|
4118 |
+
mydvwin.info
|
4119 |
+
myeasysavings.com
|
4120 |
+
myfreelivewebcam.com
|
4121 |
+
myfreshdomains.com
|
4122 |
+
myfriendlyshop.com
|
4123 |
+
mygalt.com
|
4124 |
+
mygamma.com
|
4125 |
+
mygcone.info
|
4126 |
+
mygreatrate.com
|
4127 |
+
myhomeloanstore.com
|
4128 |
+
myhomeowner.net
|
4129 |
+
myhostingdeal.com
|
4130 |
+
myinsert973pills.biz
|
4131 |
+
mylastlove.com
|
4132 |
+
mymailms.com
|
4133 |
+
mymeds36.info
|
4134 |
+
mymeltingmoments.com
|
4135 |
+
mymort-viva.com
|
4136 |
+
mynetbizz.com
|
4137 |
+
mynetbizztravel.com
|
4138 |
+
myonlinegnbank.info
|
4139 |
+
mypillguy.com
|
4140 |
+
mypills2004.com
|
4141 |
+
mypills2k.com
|
4142 |
+
mypills4all.com
|
4143 |
+
mypills4me.com
|
4144 |
+
mypills4us.com
|
4145 |
+
mypillsforme.com
|
4146 |
+
mypillsplace.com
|
4147 |
+
mypillssoltuion.com
|
4148 |
+
mypillsusa.com
|
4149 |
+
mypillswebsites.com
|
4150 |
+
mypillzstore.com
|
4151 |
+
myplace2glass.com
|
4152 |
+
mypllaceishere.com
|
4153 |
+
myproducts4sell.com
|
4154 |
+
myrice.com
|
4155 |
+
myrx007.com
|
4156 |
+
myrxglobal.com
|
4157 |
+
myrxglobal.net
|
4158 |
+
myshopinternetbest.com
|
4159 |
+
mystpt.com
|
4160 |
+
mystufffarm.com
|
4161 |
+
mystuffhome.com
|
4162 |
+
mythingsusa.com
|
4163 |
+
mythingswebsite.com
|
4164 |
+
mythingswebsites.com
|
4165 |
+
myvalentinesplace.com
|
4166 |
+
myvaluepc.com
|
4167 |
+
mywatchesoncanalstreet.com
|
4168 |
+
mywatchesoncanalstreet.net
|
4169 |
+
myway.com
|
4170 |
+
mywtchsisnice.com
|
4171 |
+
n0wloseweight.com
|
4172 |
+
n0wwewillsave.com
|
4173 |
+
n0wwewillsave.net
|
4174 |
+
n1c3.com
|
4175 |
+
n3.net
|
4176 |
+
n8mort.com
|
4177 |
+
nabphamed.com
|
4178 |
+
namewith.com
|
4179 |
+
namhbhja.info
|
4180 |
+
namwatches.com
|
4181 |
+
nanan2.info
|
4182 |
+
nanmep.biz
|
4183 |
+
nanneh.biz
|
4184 |
+
naoseinao.info
|
4185 |
+
narrowly9558pi11.us
|
4186 |
+
nate.com
|
4187 |
+
natgain.com
|
4188 |
+
national-net.com
|
4189 |
+
nationwide1paramount.com
|
4190 |
+
natpat.net
|
4191 |
+
natural-herbs.info
|
4192 |
+
natural-herbs.us
|
4193 |
+
naturalgrowthmeds.com
|
4194 |
+
naturalherbal.us
|
4195 |
+
naturalremedy.biz
|
4196 |
+
naturalways.biz
|
4197 |
+
naturebest.info
|
4198 |
+
naturegain.com
|
4199 |
+
naturepath.info
|
4200 |
+
naughty-ground.com
|
4201 |
+
naughtylaugh.com
|
4202 |
+
naughtysmile.com
|
4203 |
+
nauhgh.com
|
4204 |
+
nazdaq.info
|
4205 |
+
nbgehikl.info
|
4206 |
+
nbsmss.info
|
4207 |
+
nbzfjwdf.info
|
4208 |
+
ncbsm.com
|
4209 |
+
ncol.com
|
4210 |
+
ncwcu.com
|
4211 |
+
ndbhw.com
|
4212 |
+
ndwgz.com
|
4213 |
+
nease.net
|
4214 |
+
neatnetlink.org
|
4215 |
+
neatstuff2003.biz
|
4216 |
+
nebdkjme.info
|
4217 |
+
necrosis4purslane.com
|
4218 |
+
nedmentprescrt.com
|
4219 |
+
nedojdete.com
|
4220 |
+
need-online-sales.com
|
4221 |
+
neededformore.com
|
4222 |
+
needing-some.net
|
4223 |
+
needsaslap.com
|
4224 |
+
neemkarolibabax.com
|
4225 |
+
neg9ball.info
|
4226 |
+
negater6398tads.com
|
4227 |
+
negotiator6seq.us
|
4228 |
+
nelomatye.com
|
4229 |
+
neonpage.com
|
4230 |
+
neopdf.com
|
4231 |
+
neoplad.com
|
4232 |
+
neostylez.com
|
4233 |
+
nepel.com
|
4234 |
+
nepizdi.biz
|
4235 |
+
nerd2bunt.com
|
4236 |
+
nerve5343tads.com
|
4237 |
+
net-cash.net
|
4238 |
+
net-salez.us
|
4239 |
+
netaexplicit.com
|
4240 |
+
netazipper.com
|
4241 |
+
netcistern.com
|
4242 |
+
netdreamwatches.com
|
4243 |
+
netfirms.com
|
4244 |
+
netloqiiall.info
|
4245 |
+
netmail2.com
|
4246 |
+
netoffersforyou.biz
|
4247 |
+
netquetions.com
|
4248 |
+
netrge.biz
|
4249 |
+
netsellu.com
|
4250 |
+
netsolos.com
|
4251 |
+
netsts.com
|
4252 |
+
netuetion.com
|
4253 |
+
neufh.info
|
4254 |
+
nevergosoft.com
|
4255 |
+
neverp4yretail.com
|
4256 |
+
neverp4yretail.net
|
4257 |
+
neverpayfullpr1ce.net
|
4258 |
+
neverstoplearning.info
|
4259 |
+
nevvpovveroffers.com
|
4260 |
+
new-xyzb.com
|
4261 |
+
new36.com
|
4262 |
+
newbarts.info
|
4263 |
+
newcollage.com
|
4264 |
+
newdeals.biz
|
4265 |
+
neweraonline.com
|
4266 |
+
newgarns.com
|
4267 |
+
newholidayplans.com
|
4268 |
+
newhomefast.info
|
4269 |
+
newhorizons.com.sg
|
4270 |
+
newkk.com
|
4271 |
+
newlowestrates.com
|
4272 |
+
newlowquotes.com
|
4273 |
+
newmedicationss.com
|
4274 |
+
newmedsolutionsite.com
|
4275 |
+
newonlinestuffs.com
|
4276 |
+
newportcorp.cn
|
4277 |
+
newquotes.net
|
4278 |
+
newreplicas.info
|
4279 |
+
newrxprograms.biz
|
4280 |
+
newsbyajoomsen.com
|
4281 |
+
newsbyaoomsein.com
|
4282 |
+
newsebyaoomsen.com
|
4283 |
+
newsnetworkaddgroups.com
|
4284 |
+
newsnetworkadsgroups.com
|
4285 |
+
newtshb.com
|
4286 |
+
newxpressrx.com
|
4287 |
+
newyearservices.com
|
4288 |
+
nextfrontiersonline.com
|
4289 |
+
nextgenerals.com
|
4290 |
+
nexthost.org
|
4291 |
+
nextowith.com
|
4292 |
+
nexussite.us
|
4293 |
+
nexuste.com
|
4294 |
+
nf0.net
|
4295 |
+
nfdvijd.info
|
4296 |
+
nfevdbx.com
|
4297 |
+
nflcbeh.info
|
4298 |
+
ng235.info
|
4299 |
+
ngbank.biz
|
4300 |
+
ngcorp.info
|
4301 |
+
nglbcfe.info
|
4302 |
+
ngmembers.info
|
4303 |
+
nhlgquw.com
|
4304 |
+
ni.com.au
|
4305 |
+
nicaragua9seeder.com
|
4306 |
+
nice2buyhere.com
|
4307 |
+
nicecup.info
|
4308 |
+
nicedvd.biz
|
4309 |
+
nicepharmacy.com
|
4310 |
+
nicepills.info
|
4311 |
+
niceviagra.info
|
4312 |
+
nieotechs.com
|
4313 |
+
nightextreme.biz
|
4314 |
+
nighthelp.info
|
4315 |
+
nimbjkb.info
|
4316 |
+
ninemilk.cn
|
4317 |
+
ninjamanjeff.com
|
4318 |
+
nitebooster.info
|
4319 |
+
nitropills.biz
|
4320 |
+
nitugoetes.com
|
4321 |
+
njdeani.info
|
4322 |
+
njfjmjak.info
|
4323 |
+
nkolmun.com
|
4324 |
+
nlav.com
|
4325 |
+
nlcomp.com
|
4326 |
+
nlhchbc.info
|
4327 |
+
nlhjbigk.info
|
4328 |
+
nllhcfdh.com
|
4329 |
+
nlp-transform.com.sg
|
4330 |
+
nmblmm.biz
|
4331 |
+
nmchmcin.info
|
4332 |
+
nmciph.biz
|
4333 |
+
nmkolbasta.com
|
4334 |
+
nms57ed.com
|
4335 |
+
nnhefdi.info
|
4336 |
+
nnjahglgdd.com
|
4337 |
+
no-m0re-bills.net
|
4338 |
+
no1pharma.com
|
4339 |
+
no1pharma.net
|
4340 |
+
nobulldeals.com
|
4341 |
+
nocensor.to
|
4342 |
+
noclasses.info
|
4343 |
+
nohassleloan.net
|
4344 |
+
nohavoc.com
|
4345 |
+
noizbox.info
|
4346 |
+
nokalko.com
|
4347 |
+
nokhika.com
|
4348 |
+
nolidatrez.biz
|
4349 |
+
nolpmadotad.com
|
4350 |
+
nom.br
|
4351 |
+
nomeksdn.biz
|
4352 |
+
nomkdn.com
|
4353 |
+
noobligationsavings.com
|
4354 |
+
nookpage.com
|
4355 |
+
nopaln.com
|
4356 |
+
noprepdoc.com
|
4357 |
+
nosleep4me.com
|
4358 |
+
notbeenfiled.com
|
4359 |
+
notecer.com
|
4360 |
+
noticeforhighclass.com
|
4361 |
+
noticestring.cn
|
4362 |
+
notimelef.com
|
4363 |
+
notinuse.biz
|
4364 |
+
notkilledoem.info
|
4365 |
+
notshabby.info
|
4366 |
+
notyesterdaysnews.com
|
4367 |
+
now-and-forever.org
|
4368 |
+
now2market.com
|
4369 |
+
nowxmsx.net
|
4370 |
+
noxiously.net
|
4371 |
+
nrik.com
|
4372 |
+
nrtas.hk
|
4373 |
+
ns-dois.us
|
4374 |
+
ns-quatro.us
|
4375 |
+
ns-um.biz
|
4376 |
+
nsa.com.sg
|
4377 |
+
nsienxc.info
|
4378 |
+
nsr1a.biz
|
4379 |
+
nsuse.com
|
4380 |
+
ntcnth.com
|
4381 |
+
nteri.com
|
4382 |
+
ntvvoodoo.com
|
4383 |
+
nude7755pi11s.us
|
4384 |
+
nudewfds.info
|
4385 |
+
nufan.net
|
4386 |
+
nukzeozh.info
|
4387 |
+
numberdl.com
|
4388 |
+
numberless6hooray.info
|
4389 |
+
numeric5andy.com
|
4390 |
+
nuniv.com
|
4391 |
+
nurturing3894drygs.com
|
4392 |
+
nutritiousgood.com
|
4393 |
+
nvhomevalues.com
|
4394 |
+
nvx2kfir.info
|
4395 |
+
nwqzvrmna.info
|
4396 |
+
nxhsiedz.com
|
4397 |
+
nyleads.biz
|
4398 |
+
nzzesrc.com
|
4399 |
+
o2.ie
|
4400 |
+
oarswomen.com
|
4401 |
+
oasbmedsw.com
|
4402 |
+
obscuring7328drygs.biz
|
4403 |
+
occam6guesswork.info
|
4404 |
+
occluded9opalescent.com
|
4405 |
+
ocsc.com.sg
|
4406 |
+
oculosdesol.info
|
4407 |
+
odjfnbb.com
|
4408 |
+
odontology5allowance.com
|
4409 |
+
oem-biz.biz
|
4410 |
+
oem-cheap.biz
|
4411 |
+
oem-expert.biz
|
4412 |
+
oem-madness.biz
|
4413 |
+
oemcheckout.com
|
4414 |
+
oemdata.biz
|
4415 |
+
oemdisks.biz
|
4416 |
+
oemforlowsale.info
|
4417 |
+
oemmarket.info
|
4418 |
+
oemsoftware4u.com
|
4419 |
+
oemutility.com
|
4420 |
+
oeoutju4.com
|
4421 |
+
oevier.biz
|
4422 |
+
ofeotechs.com
|
4423 |
+
offdrinkwater.com
|
4424 |
+
offerindex.com
|
4425 |
+
offeros.com
|
4426 |
+
offerpills.com
|
4427 |
+
offerplanet.com
|
4428 |
+
offerscard.com
|
4429 |
+
offerspages.com
|
4430 |
+
officeislocated.com
|
4431 |
+
officeoffer.com
|
4432 |
+
officialblingwatches.com
|
4433 |
+
officialwatchezoncanalstreet.net
|
4434 |
+
offshoot2huddle.com
|
4435 |
+
offshorepharmacy-rx.com
|
4436 |
+
oflist.com
|
4437 |
+
ofourproducts.com
|
4438 |
+
ohgo.com
|
4439 |
+
ohhmygodd.biz
|
4440 |
+
ohihopilern.com
|
4441 |
+
ohmygot.info
|
4442 |
+
ohosts.net
|
4443 |
+
oi6.net
|
4444 |
+
oijia.com
|
4445 |
+
oil-bank.ru
|
4446 |
+
ojhemds.biz
|
4447 |
+
ojjyqhr.com
|
4448 |
+
ok-mrg-now.net
|
4449 |
+
ok-mrg-yes.net
|
4450 |
+
ok-mrt-now.net
|
4451 |
+
ok-ref-now.com
|
4452 |
+
ok-ref-yes.com
|
4453 |
+
okhj2.biz
|
4454 |
+
okmekw.com
|
4455 |
+
okwerwer.biz
|
4456 |
+
oldnavy.com
|
4457 |
+
oldsnakeschool.com
|
4458 |
+
oldtimemash.com
|
4459 |
+
omegreates.com
|
4460 |
+
omnisoft.ws
|
4461 |
+
omsencross.com
|
4462 |
+
on-funding.com
|
4463 |
+
on-money.com
|
4464 |
+
ondemandloan.info
|
4465 |
+
ondemandmeds.com
|
4466 |
+
ondlmedscrue.com
|
4467 |
+
oneastonishingwatchez.net
|
4468 |
+
oneblingwatch.net
|
4469 |
+
oneblingwatchsforme.info
|
4470 |
+
onebusbone.com
|
4471 |
+
onefortheshow.info
|
4472 |
+
onelomena.info
|
4473 |
+
onemoreshot.info
|
4474 |
+
onemoretimez.com
|
4475 |
+
onereplica.net
|
4476 |
+
onestopaccounting.com
|
4477 |
+
onet.pl
|
4478 |
+
online-casino-gambling-pros.com
|
4479 |
+
online-internets.com
|
4480 |
+
online-loanz.com
|
4481 |
+
online-medz.net
|
4482 |
+
onlinecheapmeds.com
|
4483 |
+
onlineclicks.biz
|
4484 |
+
onlinediscountbyers.biz
|
4485 |
+
onlinedm.com
|
4486 |
+
onlinedns.org
|
4487 |
+
onlinegenericrx.com
|
4488 |
+
onlinegenericshop.com
|
4489 |
+
onlinegoldshop.info
|
4490 |
+
onlinegr8tpills.com
|
4491 |
+
onlineless.info
|
4492 |
+
onlinemedscheap.com
|
4493 |
+
onlinemedz.net
|
4494 |
+
onlinepc.info
|
4495 |
+
onlinepharm.com
|
4496 |
+
onlinepills-co.com
|
4497 |
+
onlineprescript.com
|
4498 |
+
onlinerefi.biz
|
4499 |
+
onlinerussianbrides.cn
|
4500 |
+
onlinerxcentre.com
|
4501 |
+
onlinerxcentre.net
|
4502 |
+
onlinerxmed.com
|
4503 |
+
onlinerxmeds.info
|
4504 |
+
onlinesecuremeds.com
|
4505 |
+
onlineuniversitytsu.com
|
4506 |
+
onlinewebmeds.info
|
4507 |
+
onlygoodnned.info
|
4508 |
+
onlythebestofall.info
|
4509 |
+
onlyurdone.info
|
4510 |
+
ontwohgfj.com
|
4511 |
+
onzale.info
|
4512 |
+
ooglyman.net
|
4513 |
+
oombu.hk
|
4514 |
+
opencer.com
|
4515 |
+
openforex.org
|
4516 |
+
openz.us
|
4517 |
+
opmort.net
|
4518 |
+
opnjhjj.com
|
4519 |
+
opoloveok.com
|
4520 |
+
opoloves.com
|
4521 |
+
oppplo.info
|
4522 |
+
opspills.com
|
4523 |
+
optasia-group.com
|
4524 |
+
optimax.com.sg
|
4525 |
+
optimesw.com
|
4526 |
+
optimize5129drug.com
|
4527 |
+
optimizer6landless.com
|
4528 |
+
optin2millions.net
|
4529 |
+
optin2millions.us
|
4530 |
+
optinemailing.net
|
4531 |
+
optinemailingtoday.com
|
4532 |
+
optinemailservices.net
|
4533 |
+
optinemailtoday.com
|
4534 |
+
opxcklsa.info
|
4535 |
+
oqhg.com
|
4536 |
+
orbsubcrib.com
|
4537 |
+
ordeemm.com
|
4538 |
+
order-wizard.com
|
4539 |
+
order-worldz.com
|
4540 |
+
ordergalaxy.com
|
4541 |
+
orderhydrocodonepharmacy.com
|
4542 |
+
orderkit.net
|
4543 |
+
orderlandz.com
|
4544 |
+
ordermaniaz.com
|
4545 |
+
ordermegasite.com
|
4546 |
+
orderphar.com
|
4547 |
+
ordertodaycheaply.com
|
4548 |
+
orgbusbone.com
|
4549 |
+
orgplanet.info
|
4550 |
+
orgtechservice.com
|
4551 |
+
originalreplica.net
|
4552 |
+
oritken.info
|
4553 |
+
ortcard4slats.com
|
4554 |
+
osbzeafz.info
|
4555 |
+
osdfksugs.biz
|
4556 |
+
osemlik.info
|
4557 |
+
osmaispedidos.info
|
4558 |
+
osmelhoresdodia.info
|
4559 |
+
osmlelhoresdehoje.info
|
4560 |
+
osseously.net
|
4561 |
+
ossifies.com
|
4562 |
+
osturistoes.info
|
4563 |
+
otcasino.biz
|
4564 |
+
otherextension.com
|
4565 |
+
otreseacetion.com
|
4566 |
+
our-mortgage.com
|
4567 |
+
ourextenders.info
|
4568 |
+
ourlearningspace.com
|
4569 |
+
ourlowratez.com
|
4570 |
+
ourmagicbox.tvA
|
4571 |
+
ourmemory-of.com
|
4572 |
+
ourpills2k.com
|
4573 |
+
ourpillsabsolute.com
|
4574 |
+
ourpillshome.com
|
4575 |
+
ourpillspalace.com
|
4576 |
+
ourpillsplace.com
|
4577 |
+
ourpillssite.com
|
4578 |
+
oursiteonline.info
|
4579 |
+
outdoor6457pill.biz
|
4580 |
+
outermost4heard.com
|
4581 |
+
outgoing9256pi11s.us
|
4582 |
+
outhatutfile.com
|
4583 |
+
outloan.com
|
4584 |
+
outright3ditty.com
|
4585 |
+
outsource2us.info
|
4586 |
+
overbading3764drug.biz
|
4587 |
+
overdone.biz
|
4588 |
+
owndoctor.info
|
4589 |
+
oxidaselc.com
|
4590 |
+
oxxford.info
|
4591 |
+
oyiod.com
|
4592 |
+
oystgerkswitsugga.com
|
4593 |
+
oz.com.sg
|
4594 |
+
ozbewfde.info
|
4595 |
+
oziril.com
|
4596 |
+
p1k.net
|
4597 |
+
p3rfect.com
|
4598 |
+
pacayadmama.com
|
4599 |
+
pacificmeds.com
|
4600 |
+
pacificpaper.com.sg
|
4601 |
+
packpage.com
|
4602 |
+
packsite.us
|
4603 |
+
pageroot.net
|
4604 |
+
painfreerx.net
|
4605 |
+
paishnkmd.com
|
4606 |
+
pakwatches.com
|
4607 |
+
pal-site.biz
|
4608 |
+
palacemedz.com
|
4609 |
+
palaregs.com
|
4610 |
+
palepage.com
|
4611 |
+
palindrome9700nx.com
|
4612 |
+
palns.net
|
4613 |
+
pamharter.com
|
4614 |
+
panaches.net
|
4615 |
+
pancakeking.com
|
4616 |
+
pane9sparsness.com
|
4617 |
+
panelthecompany.com
|
4618 |
+
panicodesordem.info
|
4619 |
+
panicodoenca.info
|
4620 |
+
pantropic.com.sg
|
4621 |
+
pap1cantata.com
|
4622 |
+
papasite.biz
|
4623 |
+
papasite.us
|
4624 |
+
paperhis.cn
|
4625 |
+
paperiness.net
|
4626 |
+
paperwork970tads.com
|
4627 |
+
papyrus2transputer.com
|
4628 |
+
par-t.org
|
4629 |
+
parablerxweb.com
|
4630 |
+
parasitism4legibility.com
|
4631 |
+
parasoft.info
|
4632 |
+
pargyline2041pinn.com
|
4633 |
+
parkleah.biz
|
4634 |
+
parksite.biz
|
4635 |
+
parls.net
|
4636 |
+
parsnessfront.net
|
4637 |
+
parssw.com
|
4638 |
+
part1es.com
|
4639 |
+
partied.net
|
4640 |
+
passivexs.net
|
4641 |
+
pastern9atypically.com
|
4642 |
+
patronizer6687tads.us
|
4643 |
+
patsonslearning.com
|
4644 |
+
paver4reference.com
|
4645 |
+
pawlnf.com
|
4646 |
+
pax-host.org
|
4647 |
+
paycation.net
|
4648 |
+
paygear.biz
|
4649 |
+
payless4oem.biz
|
4650 |
+
paylesscanadiandrugs.com
|
4651 |
+
pcsecurityshield.com
|
4652 |
+
pcsri.com
|
4653 |
+
pdhost.com
|
4654 |
+
peachpiev2.biz
|
4655 |
+
pearishco.com
|
4656 |
+
pediatrics4tent.com
|
4657 |
+
pedlomaniak.com
|
4658 |
+
pekingtrail.com.ph
|
4659 |
+
pelvics.net
|
4660 |
+
pen-is-mightier.com
|
4661 |
+
pen1sgr0wth.com
|
4662 |
+
penisenlarger4u.biz
|
4663 |
+
penisreview.com
|
4664 |
+
pennyweb.com
|
4665 |
+
penumbral7470drugs.us
|
4666 |
+
peopecose.com
|
4667 |
+
peoplelenders.com
|
4668 |
+
peopleneedhtis.net
|
4669 |
+
peopleset.info
|
4670 |
+
peoplesuggest.com
|
4671 |
+
pepped1scutch.info
|
4672 |
+
per-fect-mor-tgage.com
|
4673 |
+
percentum5paramount.com
|
4674 |
+
percolated1phlegm.info
|
4675 |
+
perfect-oem.info
|
4676 |
+
perfectperfectperfect.com
|
4677 |
+
perfectreplica.net
|
4678 |
+
perfectserver.biz
|
4679 |
+
perfectserver.us
|
4680 |
+
perfecttimes.info
|
4681 |
+
perfectvgr.com
|
4682 |
+
perfectwatch4u.com
|
4683 |
+
perfectwatches.biz
|
4684 |
+
perfmper4.com
|
4685 |
+
periodcheck.com
|
4686 |
+
perksite.biz
|
4687 |
+
perpetuity6sheath.info
|
4688 |
+
persevere5256tads.com
|
4689 |
+
personal-doc.info
|
4690 |
+
perspire8elder.info
|
4691 |
+
petclubonline.info
|
4692 |
+
peter234234.com
|
4693 |
+
petercopter.com
|
4694 |
+
peterprawn.com
|
4695 |
+
pets-do-business.com
|
4696 |
+
pettlespuzzle.com
|
4697 |
+
pewmaterialize.com
|
4698 |
+
pfbbskdfe.info
|
4699 |
+
pfctomers.com
|
4700 |
+
pfeedbx.com
|
4701 |
+
pflzer.com
|
4702 |
+
ph0n3s.net
|
4703 |
+
pha-rmacy.com
|
4704 |
+
phanmrmsd.com
|
4705 |
+
pharemnw.com
|
4706 |
+
pharma-rx.info
|
4707 |
+
pharma-saved.com
|
4708 |
+
pharmacart44.com
|
4709 |
+
pharmacy-high-quality.com
|
4710 |
+
pharmacyforyou.info
|
4711 |
+
pharmacypills4u.com
|
4712 |
+
pharmaway.info
|
4713 |
+
pharmbrand.com
|
4714 |
+
pharmdze.com
|
4715 |
+
pharmfarm.biz
|
4716 |
+
pharmom.com
|
4717 |
+
pharycon.com
|
4718 |
+
phased1anglophobe.com
|
4719 |
+
phbrand.biz
|
4720 |
+
phenodf.com
|
4721 |
+
phenomenallyell.com
|
4722 |
+
phenter.net
|
4723 |
+
phents.com
|
4724 |
+
phonehome.com.sg
|
4725 |
+
phosphor1ecstasy.com
|
4726 |
+
phudleaj.com
|
4727 |
+
phxice.com
|
4728 |
+
pi11mart.com
|
4729 |
+
pi11s.com
|
4730 |
+
picksite.biz
|
4731 |
+
pigmentary6crushed.com
|
4732 |
+
pilcolden.com
|
4733 |
+
pillcentral.biz
|
4734 |
+
pills-of-passion.com
|
4735 |
+
pills888.com
|
4736 |
+
pillsbestyou.info
|
4737 |
+
pillsbusiness.com
|
4738 |
+
pillscash.com
|
4739 |
+
pillsdoc.us
|
4740 |
+
pillsdocz.biz
|
4741 |
+
pillsforlife.info
|
4742 |
+
pillsofdesire.com
|
4743 |
+
pillspharm.net
|
4744 |
+
pillstalk.biz
|
4745 |
+
pillstock.com
|
4746 |
+
pilottownx.com
|
4747 |
+
pils4everyday.info
|
4748 |
+
pilsforyou.info
|
4749 |
+
pimpslapzz.com
|
4750 |
+
pimpyhosting.com
|
4751 |
+
pinctadachef.com
|
4752 |
+
pinghetang.com
|
4753 |
+
pingopongos.com
|
4754 |
+
pinkmangs.com
|
4755 |
+
pinkpools.com
|
4756 |
+
pinspotter2275biz.com
|
4757 |
+
pipe-34.net
|
4758 |
+
pipebrigit.com
|
4759 |
+
pipero.com
|
4760 |
+
pisceslouis.com
|
4761 |
+
piuloknades.com
|
4762 |
+
piurates.com
|
4763 |
+
piurates=2Ecom
|
4764 |
+
pix4u.net
|
4765 |
+
pixelproduction.com
|
4766 |
+
pixkapox.com
|
4767 |
+
pizdatonadushe.biz
|
4768 |
+
pjat.com
|
4769 |
+
pjew.com
|
4770 |
+
pjwem.com
|
4771 |
+
pkhavean.com
|
4772 |
+
pkhavean=2Ecom
|
4773 |
+
pkkaja.com
|
4774 |
+
placetoby.com
|
4775 |
+
plainviewhights.com
|
4776 |
+
plantboat.com
|
4777 |
+
plasm7tiaras.info
|
4778 |
+
plasticdragon.info
|
4779 |
+
plasticow.com
|
4780 |
+
platinumitemawardee.com
|
4781 |
+
pleasechklnk.com
|
4782 |
+
pleasingmoment.com
|
4783 |
+
pleaze2teas.com
|
4784 |
+
pledgee8rna.info
|
4785 |
+
plentyofgas.com
|
4786 |
+
plentyvita.biz
|
4787 |
+
plethora4unreal.com
|
4788 |
+
plmcdie.info
|
4789 |
+
plmcnei.info
|
4790 |
+
plover6tweeter.com
|
4791 |
+
pluck8deluge.com
|
4792 |
+
pluckz.us
|
4793 |
+
plusherbal.biz
|
4794 |
+
plznightz.com
|
4795 |
+
pm0.net
|
4796 |
+
pmedabuy.info
|
4797 |
+
pmedbadpu.info
|
4798 |
+
pmr7jx.info
|
4799 |
+
poaytz.com
|
4800 |
+
pockmarked.com
|
4801 |
+
pointer9972drug.biz
|
4802 |
+
poke12.biz
|
4803 |
+
pokerunner.com
|
4804 |
+
pokiusfards.biz
|
4805 |
+
polarizational.com
|
4806 |
+
polarsunrise.biz
|
4807 |
+
polimardo.info
|
4808 |
+
polite2convict.info
|
4809 |
+
politicalpoison.com
|
4810 |
+
pollster5dawdle.info
|
4811 |
+
pollster6asia.com
|
4812 |
+
polsurvey.com.sg
|
4813 |
+
polymerfriend.com
|
4814 |
+
pomcms.com
|
4815 |
+
ponudba.net
|
4816 |
+
poog.info
|
4817 |
+
pop-site.biz
|
4818 |
+
popgoestheweaseeel.com
|
4819 |
+
popkaradio.com
|
4820 |
+
popkasale.com
|
4821 |
+
popkashop.com
|
4822 |
+
popkasite.com
|
4823 |
+
populartabl.info
|
4824 |
+
populsurfinspot.com
|
4825 |
+
popupprotector.com
|
4826 |
+
poralustamina.com
|
4827 |
+
porno7775tads.com
|
4828 |
+
port2088meds.biz
|
4829 |
+
portable7attachable.info
|
4830 |
+
portanex.com
|
4831 |
+
portion.biz
|
4832 |
+
posses1consent.com
|
4833 |
+
posteritty.com
|
4834 |
+
postholecaesar.net
|
4835 |
+
potcheesie.com
|
4836 |
+
pottyplay.com
|
4837 |
+
potuyq.com
|
4838 |
+
pouqy.biz
|
4839 |
+
poureb.com
|
4840 |
+
poutso.biz
|
4841 |
+
pow-site.biz
|
4842 |
+
powenei.biz
|
4843 |
+
power-enlarge-pills.com
|
4844 |
+
powerhealth.info
|
4845 |
+
powerlifes.biz
|
4846 |
+
powerviagra.com
|
4847 |
+
powlikke.com
|
4848 |
+
powndiz.info
|
4849 |
+
powppdd.com
|
4850 |
+
powrpage.us
|
4851 |
+
poxz.com
|
4852 |
+
poyetvca.com
|
4853 |
+
ppcexperience.com
|
4854 |
+
ppillsnow.com
|
4855 |
+
ppos38.com
|
4856 |
+
pq4.net
|
4857 |
+
pr0ud.net
|
4858 |
+
pr0ved.com
|
4859 |
+
pr0ved.net
|
4860 |
+
pr1ces.net
|
4861 |
+
pr1smat3ch.com
|
4862 |
+
pr33n.com
|
4863 |
+
pr3sd1ugs.com
|
4864 |
+
pra6lighter.com
|
4865 |
+
practiceled.cn
|
4866 |
+
prado29.us
|
4867 |
+
praisesol.info
|
4868 |
+
precscription-service-now.com
|
4869 |
+
preempt.biz
|
4870 |
+
prefect3470dryg.com
|
4871 |
+
preferedloans.com
|
4872 |
+
prefixing.com
|
4873 |
+
preman-warnet.com
|
4874 |
+
premium-plus-products.com
|
4875 |
+
premiumdiscounts.net
|
4876 |
+
preotechs.com
|
4877 |
+
presentindicate.cn
|
4878 |
+
presss-dwa.com
|
4879 |
+
prestigeoffice.com.sg
|
4880 |
+
pretax.biz
|
4881 |
+
pretax.info
|
4882 |
+
prettymovies.info
|
4883 |
+
pricecer.com
|
4884 |
+
pricechoicenews.com
|
4885 |
+
pricechoppers.info
|
4886 |
+
pricelessitemsinfo.com
|
4887 |
+
priceslash4.com
|
4888 |
+
pricexll.com
|
4889 |
+
primetimedirect.net
|
4890 |
+
primness6560nx.us
|
4891 |
+
printpal.com
|
4892 |
+
prism1115dryg.us
|
4893 |
+
privacybiz.biz
|
4894 |
+
privatebnk.info
|
4895 |
+
privatedatingterms.biz
|
4896 |
+
privdom.com
|
4897 |
+
privy6tyler.info
|
4898 |
+
prix.fr
|
4899 |
+
prizeservers.com
|
4900 |
+
pro-site.biz
|
4901 |
+
pro-software.biz
|
4902 |
+
pro-soil.net
|
4903 |
+
pro2security.biz
|
4904 |
+
processhad.cn
|
4905 |
+
procourtmi.com
|
4906 |
+
prodforyou.com
|
4907 |
+
professor.com.sg
|
4908 |
+
profitableproducts.com
|
4909 |
+
progsline.biz
|
4910 |
+
progsstore.biz
|
4911 |
+
projector5alcohol.com
|
4912 |
+
projectrefinance.com
|
4913 |
+
prologuesound.net
|
4914 |
+
promo-for-your-site.com
|
4915 |
+
promo-offers.com
|
4916 |
+
promohost.org
|
4917 |
+
promote-biz.net
|
4918 |
+
promote9796drug.us
|
4919 |
+
promotionh0use.com
|
4920 |
+
propulsion3417drug.us
|
4921 |
+
prosize.biz
|
4922 |
+
prospectgrab.biz
|
4923 |
+
protus.com
|
4924 |
+
provable6567pi11.us
|
4925 |
+
provencaux.net
|
4926 |
+
prserv.net
|
4927 |
+
przc.com
|
4928 |
+
psjned.info
|
4929 |
+
psorni.net
|
4930 |
+
pssp.com.cn
|
4931 |
+
psychicmarie.com
|
4932 |
+
ptrackz.info
|
4933 |
+
publicmeds.com
|
4934 |
+
puddle2.info
|
4935 |
+
puddle2.us
|
4936 |
+
puerperal.com
|
4937 |
+
puling7796meds.us
|
4938 |
+
pullpage.us
|
4939 |
+
pullpushstop.com
|
4940 |
+
pullsite.us
|
4941 |
+
pumidym.com
|
4942 |
+
punanipunch.com
|
4943 |
+
punicha.com
|
4944 |
+
punishmentprint.com
|
4945 |
+
puqus.com
|
4946 |
+
pure-freedom.net
|
4947 |
+
puresfuel.com
|
4948 |
+
purestfuels.com
|
4949 |
+
purfectclss.com
|
4950 |
+
purpletrain.com
|
4951 |
+
pushtime.cn
|
4952 |
+
pusssystretchers.com
|
4953 |
+
puttingthatin.com
|
4954 |
+
puzzc.cn
|
4955 |
+
puzzled166dryg.com
|
4956 |
+
pvbzdfwdd.info
|
4957 |
+
pwemicu3.info
|
4958 |
+
pwmndief.info
|
4959 |
+
pycnanthemumyogurts.net
|
4960 |
+
pyndhjdsez.info
|
4961 |
+
q-tours.net
|
4962 |
+
q1tv.com
|
4963 |
+
qajfrh.biz
|
4964 |
+
qawatches.com
|
4965 |
+
qccer.com
|
4966 |
+
qeekcy.com
|
4967 |
+
qepr.com
|
4968 |
+
qewemm.com
|
4969 |
+
qgmedsale.com
|
4970 |
+
qidpda.biz
|
4971 |
+
qikcakmeds.com
|
4972 |
+
qiwuz.com
|
4973 |
+
qkebajd.info
|
4974 |
+
qlku3829.com
|
4975 |
+
qpksd.info
|
4976 |
+
qpwoeiruck.com
|
4977 |
+
qqpharmes.com
|
4978 |
+
qqqwertypoid.com
|
4979 |
+
qqrtz.com
|
4980 |
+
qrksrv.net
|
4981 |
+
qrrnet.com
|
4982 |
+
qt323dss.com
|
4983 |
+
qtnauys.com
|
4984 |
+
qtours.net
|
4985 |
+
qts7851drygs.us
|
4986 |
+
qu0tes.net
|
4987 |
+
qua5hmm.us
|
4988 |
+
quadrasoft.org
|
4989 |
+
quadrate7nitric.com
|
4990 |
+
qual1typ1lls.info
|
4991 |
+
qualinet.biz
|
4992 |
+
quality-mortgages.com
|
4993 |
+
quality-mortgages.net
|
4994 |
+
quality-online-rx.com
|
4995 |
+
qualitydr.info
|
4996 |
+
qualitylastsforever.com
|
4997 |
+
qualitymba
|
4998 |
+
qualitysales-great.com
|
4999 |
+
qualitytimepiece.com
|
5000 |
+
qualitywho.info
|
5001 |
+
quantumhelpdesk.biz
|
5002 |
+
quarxc.net
|
5003 |
+
queentym3ds.com
|
5004 |
+
quemedera.info
|
5005 |
+
quentage.info
|
5006 |
+
queotechs.com
|
5007 |
+
question7paolo.info
|
5008 |
+
quick-mortgage.biz
|
5009 |
+
quickadnsoft.com
|
5010 |
+
quickclick.com.sg
|
5011 |
+
quickcollegedegree.com
|
5012 |
+
quickcollegedegrees.com
|
5013 |
+
quickeasysolution.com
|
5014 |
+
quicker-apps.com
|
5015 |
+
quicker-apps.net
|
5016 |
+
quickerpage.com
|
5017 |
+
quicklikemedstou.com
|
5018 |
+
quicklysalestoday.com
|
5019 |
+
quickvisitorsnow.com
|
5020 |
+
quickz.info
|
5021 |
+
quikmedzstore.com
|
5022 |
+
quikrx.net
|
5023 |
+
quint997meds.us
|
5024 |
+
quitplayinggameswithmyheart.com
|
5025 |
+
quits8304drygs.com
|
5026 |
+
quiz21.com
|
5027 |
+
quoir.com
|
5028 |
+
quotedot.com
|
5029 |
+
quotestore.biz
|
5030 |
+
quotestore.net
|
5031 |
+
quotetalk.com
|
5032 |
+
quoteyourrate.com
|
5033 |
+
qvcphuket.com
|
5034 |
+
qvcsamui.com
|
5035 |
+
qw321oi8.com
|
5036 |
+
qwbebm.info
|
5037 |
+
qwertyfly.com
|
5038 |
+
qwikin.com
|
5039 |
+
qwild.com
|
5040 |
+
qwmanse2.com
|
5041 |
+
qwmnas21.com
|
5042 |
+
qwpdt.biz
|
5043 |
+
r-e-finance.com
|
5044 |
+
r-x-ezy.com
|
5045 |
+
r-x-r-x.com
|
5046 |
+
r1g4t2you.com
|
5047 |
+
r6tmf.com
|
5048 |
+
r7ha.com
|
5049 |
+
r8tdrop.com
|
5050 |
+
r8tesdrop.com
|
5051 |
+
rabbet.info
|
5052 |
+
rabbet5073tabs.us
|
5053 |
+
rabnos.com
|
5054 |
+
racyhiracy0.com
|
5055 |
+
radiocarbodatin.com
|
5056 |
+
radiopaque7tend.info
|
5057 |
+
rafael2263biz.us
|
5058 |
+
rafflescity.biz
|
5059 |
+
rafflescity.net
|
5060 |
+
raga3schizo.com
|
5061 |
+
raginfo.com
|
5062 |
+
raildv.cn
|
5063 |
+
railnetline.com
|
5064 |
+
railod.cn
|
5065 |
+
railtr.cn
|
5066 |
+
rainbowboat1.com
|
5067 |
+
raiseyourpower.com
|
5068 |
+
rakurakuhp.biz
|
5069 |
+
rakuten-news.net
|
5070 |
+
rallidaelk.com
|
5071 |
+
rami8allelic.us
|
5072 |
+
ramisoft.biz
|
5073 |
+
rancuthas.com
|
5074 |
+
randomness3999pi11.us
|
5075 |
+
rangy9gaggle.com
|
5076 |
+
ranked3bandana.us
|
5077 |
+
rapedrug.biz
|
5078 |
+
rapidfazt.net
|
5079 |
+
rarfifunyar.com
|
5080 |
+
ratefree.net
|
5081 |
+
rates-r-low.net
|
5082 |
+
rates4unow.us
|
5083 |
+
rateznow.com
|
5084 |
+
ratezruz.com
|
5085 |
+
ravishfaknc.com
|
5086 |
+
rayotechs.com
|
5087 |
+
rc-cars-boats2003.com
|
5088 |
+
rdc4.com
|
5089 |
+
re-e-finance.com
|
5090 |
+
re-finance-forever.com
|
5091 |
+
re-finance-forever.info
|
5092 |
+
re-finance-today.com
|
5093 |
+
reachsoftware.com
|
5094 |
+
reachtheperfectreplica.com
|
5095 |
+
readingpower.com.sg
|
5096 |
+
readwith5.com
|
5097 |
+
readybite.info
|
5098 |
+
readywhenyouwantto.com
|
5099 |
+
readyxll.com
|
5100 |
+
reaffirm4los.com
|
5101 |
+
real-cat.com
|
5102 |
+
realeasymeds.com
|
5103 |
+
realeasyrx.net
|
5104 |
+
realexsoft.biz
|
5105 |
+
realfastest.com
|
5106 |
+
realfuelsnow.com
|
5107 |
+
realgaspower.com
|
5108 |
+
realherbal333.com
|
5109 |
+
realityofdating.com
|
5110 |
+
realndreal9.com
|
5111 |
+
realnetvalue.com
|
5112 |
+
realrxonline.com
|
5113 |
+
realsavegood.com
|
5114 |
+
realspyerase.biz
|
5115 |
+
realsun855meds.biz
|
5116 |
+
realtarget102drugs.biz
|
5117 |
+
realtimedorkus.com
|
5118 |
+
reascends.net
|
5119 |
+
reassess837rx.us
|
5120 |
+
reattain.com
|
5121 |
+
rebornfgief.com
|
5122 |
+
receitasepetiscos.info
|
5123 |
+
recently7568pinn.com
|
5124 |
+
recherche.fr
|
5125 |
+
recruitu.to
|
5126 |
+
redblueyoudo.com
|
5127 |
+
reddearest.com
|
5128 |
+
redgrand.com
|
5129 |
+
redi9meds.net
|
5130 |
+
rednest.org
|
5131 |
+
redoffers.com
|
5132 |
+
redrawing5984biz.us
|
5133 |
+
reductionsorspending.com
|
5134 |
+
reebok.com
|
5135 |
+
reenfgdkl.com
|
5136 |
+
ref-mrt-now.net
|
5137 |
+
ref-mrt-ok.com
|
5138 |
+
ref-mtg-now.net
|
5139 |
+
referral9466pill.us
|
5140 |
+
refi-4-wealth.com
|
5141 |
+
refi-biz.com
|
5142 |
+
refi-gazette.com
|
5143 |
+
refi-net.com
|
5144 |
+
refi-talk.com
|
5145 |
+
refi-web.com
|
5146 |
+
refi-with-us.com
|
5147 |
+
refi11.info
|
5148 |
+
reficom.biz
|
5149 |
+
refifast.biz
|
5150 |
+
refiinternet.com
|
5151 |
+
refin-xnd.com
|
5152 |
+
refinance-line.net
|
5153 |
+
refinanceangels.com
|
5154 |
+
refinancefrom.com
|
5155 |
+
refinhomeloan.com
|
5156 |
+
refitalk.com
|
5157 |
+
reftosavecash.com
|
5158 |
+
refundz.biz
|
5159 |
+
regcmp.com
|
5160 |
+
reginter.com
|
5161 |
+
registerunde.com
|
5162 |
+
reglergm.com
|
5163 |
+
rehearsechagrin.com
|
5164 |
+
rehire.net
|
5165 |
+
rekz.com
|
5166 |
+
relaxex.biz
|
5167 |
+
releasetheirnames.com
|
5168 |
+
reliablefreehost.com
|
5169 |
+
reliablepond1.com
|
5170 |
+
reliahost.org
|
5171 |
+
reloadedenergy.com
|
5172 |
+
remake9252tabs.us
|
5173 |
+
remarkablewatch.com
|
5174 |
+
remeasures.net
|
5175 |
+
remedyroom.org
|
5176 |
+
rememebrthen.net
|
5177 |
+
remglo.com
|
5178 |
+
removes-here.com.ar
|
5179 |
+
removethisemail.com
|
5180 |
+
ren3udx.com
|
5181 |
+
renask.com
|
5182 |
+
repeatingturnover.com
|
5183 |
+
repl.org
|
5184 |
+
replicacollection.info
|
5185 |
+
replicagarden.info
|
5186 |
+
replicamall.info
|
5187 |
+
replicas4me.com
|
5188 |
+
replicasforu.com
|
5189 |
+
replicasinternational.com
|
5190 |
+
replicawithcharmnow04.com
|
5191 |
+
replicawithcharmnow08.com
|
5192 |
+
replicawithcharmnow09.com
|
5193 |
+
replicazip.info
|
5194 |
+
replywill.com
|
5195 |
+
reportedly5882dryg.com
|
5196 |
+
representsrant.com
|
5197 |
+
reproofs.com
|
5198 |
+
reqestingafre.com
|
5199 |
+
resdet.com
|
5200 |
+
research-project.org
|
5201 |
+
reserveadot.com
|
5202 |
+
reseteffects.net
|
5203 |
+
resfn.com
|
5204 |
+
reshhl.com
|
5205 |
+
resistinganoffice.com
|
5206 |
+
respond693biz.com
|
5207 |
+
responewatch.com
|
5208 |
+
ressluncheon.com
|
5209 |
+
returned.biz
|
5210 |
+
revenging.net
|
5211 |
+
reverendsoda.info
|
5212 |
+
revetments.net
|
5213 |
+
revidly.info
|
5214 |
+
revivifying.biz
|
5215 |
+
revolithlas.com
|
5216 |
+
rewardingforever.com
|
5217 |
+
rewardinginstance.com
|
5218 |
+
rewardsrx.com
|
5219 |
+
rf6.net
|
5220 |
+
rfhaje.biz
|
5221 |
+
rfxoyi33.com
|
5222 |
+
rgeg546.com
|
5223 |
+
rgosweb.com
|
5224 |
+
rhetdghjr.net
|
5225 |
+
rhodium4laddic.info
|
5226 |
+
rhubarb454rneds.us
|
5227 |
+
ricardano.com
|
5228 |
+
richesadvisor.com
|
5229 |
+
richmond8106dryg.com
|
5230 |
+
rightdecision.info
|
5231 |
+
rightsy.com
|
5232 |
+
rindlefgbna.org
|
5233 |
+
ringagain.com
|
5234 |
+
ringlet6664biz.us
|
5235 |
+
ringofbeauty.com
|
5236 |
+
riot3banistors.com
|
5237 |
+
ripropretal.com
|
5238 |
+
risv.info
|
5239 |
+
riterates.net
|
5240 |
+
riverrockmembers.com
|
5241 |
+
rizzlockss.com
|
5242 |
+
rlox.com
|
5243 |
+
rm05.net
|
5244 |
+
roard.info
|
5245 |
+
roared.net
|
5246 |
+
robertgraham.com
|
5247 |
+
robmar.info
|
5248 |
+
robust6332dryg.biz
|
5249 |
+
rockandrolaids.com
|
5250 |
+
roieri.com
|
5251 |
+
roiex.com
|
5252 |
+
rolexeverywhere.info
|
5253 |
+
rolexnmore.info
|
5254 |
+
rolexplace.com
|
5255 |
+
romna.com
|
5256 |
+
roninnz.com
|
5257 |
+
roommnsn.com
|
5258 |
+
roscowholesaledist.info
|
5259 |
+
roseegg.info
|
5260 |
+
rosessweetie.com
|
5261 |
+
rosetlimo.com
|
5262 |
+
rosserniikl.com
|
5263 |
+
rostov1offered.com
|
5264 |
+
roving.com
|
5265 |
+
roxlab.com
|
5266 |
+
royalmeds.info
|
5267 |
+
royalproductguest.com
|
5268 |
+
royalwatchez.biz
|
5269 |
+
rozbfedsf.info
|
5270 |
+
rpcs2004.com
|
5271 |
+
rpmdacd.com
|
5272 |
+
rqgyy.com
|
5273 |
+
rqvq.com
|
5274 |
+
rrrfff.com
|
5275 |
+
rsbnk.com
|
5276 |
+
rsiultrsdf.info
|
5277 |
+
rtnnet.com
|
5278 |
+
rtoceunc.info
|
5279 |
+
rtprbn.com
|
5280 |
+
rtver.com
|
5281 |
+
rtvers.com
|
5282 |
+
rubdfesff.info
|
5283 |
+
ruckus2908rneds.com
|
5284 |
+
rufszk.info
|
5285 |
+
ruidecle.info
|
5286 |
+
rumbumbale.com
|
5287 |
+
runfromadvice.biz
|
5288 |
+
runmen.info
|
5289 |
+
ruojrxor.com
|
5290 |
+
rushrate.com
|
5291 |
+
russet4takeover.info
|
5292 |
+
ruzbefdsd.info
|
5293 |
+
ruzbefdse.info
|
5294 |
+
rvynmn.info
|
5295 |
+
rx-4-less.biz
|
5296 |
+
rx-land.biz
|
5297 |
+
rx-land.com
|
5298 |
+
rx-luv.com
|
5299 |
+
rx-zone.com
|
5300 |
+
rx123discount.com
|
5301 |
+
rx2122.com
|
5302 |
+
rx44discount.com
|
5303 |
+
rx6.org
|
5304 |
+
rx95discount.com
|
5305 |
+
rxand-more.com
|
5306 |
+
rxbest.org
|
5307 |
+
rxcartonline.com
|
5308 |
+
rxchoice.org
|
5309 |
+
rxdiscountusa.biz
|
5310 |
+
rxgroup.info
|
5311 |
+
rximportmeds.net
|
5312 |
+
rxmarketplace.biz
|
5313 |
+
rxmedherbals.biz
|
5314 |
+
rxmedherbals.info
|
5315 |
+
rxmedicalonline.net
|
5316 |
+
rxmedszone.info
|
5317 |
+
rxonlinesale.com
|
5318 |
+
rxonlineshopping.info
|
5319 |
+
rxpharmagroup.com
|
5320 |
+
rxpillstogo.com
|
5321 |
+
rxplace.biz
|
5322 |
+
rxspecials.biz
|
5323 |
+
rxspecialsnow.com
|
5324 |
+
rxsupply.biz
|
5325 |
+
rxville.biz
|
5326 |
+
rxwholesale.info
|
5327 |
+
rxz123.com
|
5328 |
+
rynamutethin.com
|
5329 |
+
rz3e23fzf.com
|
5330 |
+
rzobeerrd.info
|
5331 |
+
s-e-x-club.com
|
5332 |
+
s0lidhealth.info
|
5333 |
+
s2khost.biz
|
5334 |
+
s3curesripts.com
|
5335 |
+
s6xydate.com
|
5336 |
+
s8ehwk274v.com
|
5337 |
+
saass21.com
|
5338 |
+
sable8898dryg.com
|
5339 |
+
sabulinemd.com
|
5340 |
+
sadjhsdb.com
|
5341 |
+
safetymeds.biz
|
5342 |
+
safetymoney.info
|
5343 |
+
safeway-meds.com
|
5344 |
+
safeway-pills.com
|
5345 |
+
sahhjgikd.com
|
5346 |
+
saidwaonl.com
|
5347 |
+
salacity9paperboard.com
|
5348 |
+
sale-togo.com
|
5349 |
+
salehouseoflove.com
|
5350 |
+
saleinlin3dd.com
|
5351 |
+
salepricedtoday.com
|
5352 |
+
sales-masters-ltd.biz
|
5353 |
+
salesjet.biz
|
5354 |
+
salesoquickandfresh.com
|
5355 |
+
salezsalessz.com
|
5356 |
+
saloan.com
|
5357 |
+
salver.info
|
5358 |
+
sam3243242c.com
|
5359 |
+
samaengineering.com.pk
|
5360 |
+
samanthahurler.com
|
5361 |
+
samplemyrx.com
|
5362 |
+
samplemyrx.net
|
5363 |
+
sand12s.com
|
5364 |
+
sanguozhi10.com
|
5365 |
+
sanitizethare.com
|
5366 |
+
santa2005.com
|
5367 |
+
santac1aus.com
|
5368 |
+
santasrates.com
|
5369 |
+
saopaulochurrascarias.info
|
5370 |
+
saopaulopizzaria.info
|
5371 |
+
saprophyte7168rneds.com
|
5372 |
+
sari2strict.info
|
5373 |
+
saserf.info
|
5374 |
+
sashebec.com
|
5375 |
+
sastyjtrfd.com
|
5376 |
+
satikc.com
|
5377 |
+
satisfyingforever.com
|
5378 |
+
satisfyingtime.com
|
5379 |
+
satrapy8385tads.com
|
5380 |
+
saucily1summation.com
|
5381 |
+
sauntering5306biz.biz
|
5382 |
+
sav1ngs.com
|
5383 |
+
savagequote.com
|
5384 |
+
save-somemoney.com
|
5385 |
+
save1.com
|
5386 |
+
save80percentonrx.com
|
5387 |
+
savecashtoday.net
|
5388 |
+
savedatcash.com
|
5389 |
+
savefastonmeds.com
|
5390 |
+
saveingrules.com
|
5391 |
+
savemorenow.biz
|
5392 |
+
savenowtoday.com
|
5393 |
+
saveonlineshopping.biz
|
5394 |
+
saver9straight.us
|
5395 |
+
saverpage.com
|
5396 |
+
savethelostchildren.com
|
5397 |
+
savethewholeset.com
|
5398 |
+
saveurcashola.com
|
5399 |
+
savev.com
|
5400 |
+
savexherbal.com
|
5401 |
+
savingforu.com
|
5402 |
+
savingsalerts.com
|
5403 |
+
savingsfunder.com
|
5404 |
+
savingsquares.com
|
5405 |
+
savingz.biz
|
5406 |
+
savonmortgages.com
|
5407 |
+
sawexcd.com
|
5408 |
+
sawfish6812dryg.com
|
5409 |
+
say-yes-to-rx.net
|
5410 |
+
saydk.com
|
5411 |
+
sbifn.com
|
5412 |
+
sbn6tragical.com
|
5413 |
+
scabpickingisfun.com
|
5414 |
+
scaled2ulsters.com
|
5415 |
+
scam2381nx.com
|
5416 |
+
scandale-estelle-mouzin.com
|
5417 |
+
scanty2toxicosis.info
|
5418 |
+
scarylongstaff.info
|
5419 |
+
scaryspecialist.com
|
5420 |
+
scavenges7ambidexter.com
|
5421 |
+
scenting.net
|
5422 |
+
scherzo5headlight.com
|
5423 |
+
schlepp5206biz.com
|
5424 |
+
schnazzyboot.com
|
5425 |
+
scientificallyconfirmed.com
|
5426 |
+
scissorweed.com
|
5427 |
+
scoretodown.com
|
5428 |
+
scout.org.tw
|
5429 |
+
scoutuniv.com
|
5430 |
+
scrambledlago.net
|
5431 |
+
scrapbook3383meds.us
|
5432 |
+
scretodaar.com
|
5433 |
+
scroungerbe.com
|
5434 |
+
scuberic.info
|
5435 |
+
sculptress6681tads.com
|
5436 |
+
scuxwg.info
|
5437 |
+
sdcode.com
|
5438 |
+
sdf21.biz
|
5439 |
+
sdfbnsdfkt.info
|
5440 |
+
sdfnbpzq.info
|
5441 |
+
sdghtw.biz
|
5442 |
+
sdh923.biz
|
5443 |
+
sdjfklfn4.com
|
5444 |
+
sdlkfjdlkjstower.com
|
5445 |
+
sdlkfjdlkjstown.com
|
5446 |
+
sdsinep.com
|
5447 |
+
sea8056medications.biz
|
5448 |
+
sealing4509rneds.com
|
5449 |
+
searchh4her.com
|
5450 |
+
searchrt.com
|
5451 |
+
seasplease.com
|
5452 |
+
seating4741pills.biz
|
5453 |
+
second-mort-gages.com
|
5454 |
+
secretandwinfo.com
|
5455 |
+
secretoflife.biz
|
5456 |
+
secretpharma.com
|
5457 |
+
secretpharma.net
|
5458 |
+
secretpharmacy.net
|
5459 |
+
secretsms.biz
|
5460 |
+
sectility8symposia.com
|
5461 |
+
sectionofour.com
|
5462 |
+
securdetausual.com
|
5463 |
+
securemedpills.com
|
5464 |
+
securepharmacy101.com
|
5465 |
+
secureserv1.com
|
5466 |
+
secways.com
|
5467 |
+
see4c.com
|
5468 |
+
seehether.com
|
5469 |
+
seek-her-him.com
|
5470 |
+
seekandeatpie.biz
|
5471 |
+
seekingz.com
|
5472 |
+
seemingly6527drygs.us
|
5473 |
+
seized3legend.com
|
5474 |
+
selecyourfile.com
|
5475 |
+
selenan.com
|
5476 |
+
selfpharms.com
|
5477 |
+
sell-funding.com
|
5478 |
+
sellinter.net
|
5479 |
+
selyn.com
|
5480 |
+
sempercras.net
|
5481 |
+
senegaspan.net
|
5482 |
+
sennas9bread.com
|
5483 |
+
sensibleinfosecrets.com
|
5484 |
+
sensualx.info
|
5485 |
+
sentthemeasure.com
|
5486 |
+
seo-action.com
|
5487 |
+
seo-profits.com
|
5488 |
+
seopouoy.com
|
5489 |
+
separate5678.biz
|
5490 |
+
serioussecretary.com
|
5491 |
+
sermeds.com
|
5492 |
+
serrated4arrogance.com
|
5493 |
+
servaw.com
|
5494 |
+
serverwithzero.com
|
5495 |
+
servetabs.com
|
5496 |
+
servicemarkstar.com
|
5497 |
+
servsite.us
|
5498 |
+
sesfocus.com
|
5499 |
+
setback9decked.info
|
5500 |
+
setegedge.info
|
5501 |
+
setitup.info
|
5502 |
+
setoff5summation.com
|
5503 |
+
seulcarv.info
|
5504 |
+
sevrre.co
|
5505 |
+
sex2go.com
|
5506 |
+
sexaffair.org
|
5507 |
+
sexyoptin.com
|
5508 |
+
sfeedbx.com
|
5509 |
+
sficog.com
|
5510 |
+
sftwre.biz
|
5511 |
+
sgplink.com
|
5512 |
+
shadescience.com
|
5513 |
+
shadowcrew.com
|
5514 |
+
shame5675.biz
|
5515 |
+
sharesoft.net
|
5516 |
+
sharif7046rx.us
|
5517 |
+
sharp-finance.info
|
5518 |
+
shaves4465drugs.biz
|
5519 |
+
shedoesitallnight.biz
|
5520 |
+
sheenier.net
|
5521 |
+
shesnotfatatall.com
|
5522 |
+
shesondvdnow.com
|
5523 |
+
shincink.com
|
5524 |
+
shiotechs.com
|
5525 |
+
shipfastzz.com
|
5526 |
+
shirr5545pill.biz
|
5527 |
+
shnoem.biz
|
5528 |
+
shop-reduction.com
|
5529 |
+
shop4direct.info
|
5530 |
+
shopin.to
|
5531 |
+
shopunlimited.biz
|
5532 |
+
shopworn7absurdly.com
|
5533 |
+
shrink.ws
|
5534 |
+
shrink8633pills.biz
|
5535 |
+
shuddered4plutocracy.us
|
5536 |
+
shwayorakoko.biz
|
5537 |
+
shyandnot.com
|
5538 |
+
shying1845biz.com
|
5539 |
+
shzze.com
|
5540 |
+
siamesefins.com.sg
|
5541 |
+
sibilation217pills.biz
|
5542 |
+
sigloan.com
|
5543 |
+
signupziq.net
|
5544 |
+
sil20221.com
|
5545 |
+
sillyhelen.com
|
5546 |
+
simian4offeree.us
|
5547 |
+
simple-finances.com
|
5548 |
+
simple-refi.net
|
5549 |
+
simpleachieverlooksitems.com
|
5550 |
+
simplecheaprx.com
|
5551 |
+
simplecheaprx.net
|
5552 |
+
simplenewwayout.biz
|
5553 |
+
simplerx.org
|
5554 |
+
simplified-loans.net
|
5555 |
+
simpliset.com
|
5556 |
+
simular8clerical.com
|
5557 |
+
sina.com
|
5558 |
+
sina.com.cn
|
5559 |
+
singaire.com
|
5560 |
+
singaporehomebasedbusiness.com
|
5561 |
+
sip2thickness.com
|
5562 |
+
siqop.com
|
5563 |
+
siratu.com
|
5564 |
+
sirkesa.info
|
5565 |
+
sister30.com
|
5566 |
+
sister31.com
|
5567 |
+
sisyphean9churl.com
|
5568 |
+
situationalert.info
|
5569 |
+
sizehelp.com
|
5570 |
+
sizeit1.com
|
5571 |
+
sjgdwuywu.info
|
5572 |
+
skajmedsakj.com
|
5573 |
+
skate6arched.com
|
5574 |
+
skeptical8accipitral.com
|
5575 |
+
sketcher8octave.com
|
5576 |
+
sketchpharmacy.info
|
5577 |
+
skills4744rneds.us
|
5578 |
+
skipgrand.info
|
5579 |
+
skycn.net
|
5580 |
+
skylender.com
|
5581 |
+
skysofta.cn
|
5582 |
+
slalom8platypus.info
|
5583 |
+
slanting2080biz.us
|
5584 |
+
slaphappy7346meds.us
|
5585 |
+
slashmonthlypayments.com
|
5586 |
+
slavishload.net
|
5587 |
+
slickred.com
|
5588 |
+
slimdoctor.ru
|
5589 |
+
slinendi.info
|
5590 |
+
slkjsen.info
|
5591 |
+
slkmesne.info
|
5592 |
+
slknseis.info
|
5593 |
+
slneidje.info
|
5594 |
+
slobbering.net
|
5595 |
+
slowpoke4reentry.com
|
5596 |
+
slyness6sugarcoat.com
|
5597 |
+
smallcapinvestors-newsletter.com
|
5598 |
+
smallrx.com
|
5599 |
+
smartchoices4u.com
|
5600 |
+
smartcontrol.biz
|
5601 |
+
smartdebt.net
|
5602 |
+
smarterchoice.biz
|
5603 |
+
smartinfosite.info
|
5604 |
+
smartprotection.net
|
5605 |
+
smartreplicas.info
|
5606 |
+
smash47759.biz
|
5607 |
+
smddsee.com
|
5608 |
+
smeary2abridged.com
|
5609 |
+
smilesoftprod.net
|
5610 |
+
smilingly.net
|
5611 |
+
sminet.com.my
|
5612 |
+
smmwatch.com
|
5613 |
+
smndrtew.com
|
5614 |
+
smokeethebear.com
|
5615 |
+
smoky6runic.com
|
5616 |
+
smuuchi.hk
|
5617 |
+
snapped4stockyard.com
|
5618 |
+
snappedandthen.com
|
5619 |
+
sndba.com
|
5620 |
+
sndwnz.biz
|
5621 |
+
sneihz.info
|
5622 |
+
sniefsj.info
|
5623 |
+
sniffled1alumnus.info
|
5624 |
+
snivels460biz.biz
|
5625 |
+
snorter.net
|
5626 |
+
snow2711biz.us
|
5627 |
+
snowfalls.net
|
5628 |
+
snuggles3dowry.com
|
5629 |
+
soap4796.biz
|
5630 |
+
sobering8214pirrs.com
|
5631 |
+
soccer3201pills.biz
|
5632 |
+
societies7375tads.us
|
5633 |
+
sodapimple.com
|
5634 |
+
soddenness.net
|
5635 |
+
sodisanet.org
|
5636 |
+
sofanin.info
|
5637 |
+
sofmom.info
|
5638 |
+
sofnino.info
|
5639 |
+
sofninw.info
|
5640 |
+
soft-disks.biz
|
5641 |
+
soft-paradise.com
|
5642 |
+
soft100world.com
|
5643 |
+
softavailable.com
|
5644 |
+
softcds.biz
|
5645 |
+
softdealership.com
|
5646 |
+
softdisks-ltd.com
|
5647 |
+
softflagman.biz
|
5648 |
+
softforyourbusiness.info
|
5649 |
+
softis.info
|
5650 |
+
softlegs.biz
|
5651 |
+
softli.com
|
5652 |
+
softly5called.com
|
5653 |
+
softmadness.com
|
5654 |
+
softoutletstore.biz
|
5655 |
+
softparadise.net
|
5656 |
+
softplacer.com
|
5657 |
+
softsmgger.info
|
5658 |
+
softurtle.com
|
5659 |
+
software-village.com
|
5660 |
+
softwaresavings2you.biz
|
5661 |
+
softwaresuite.net
|
5662 |
+
soggiest.com
|
5663 |
+
solaria8488nx.com
|
5664 |
+
soldmed.com
|
5665 |
+
solfine.net
|
5666 |
+
solicitor1deerfly.info
|
5667 |
+
solicsol8.com
|
5668 |
+
solidagothins.info
|
5669 |
+
solidercetion.info
|
5670 |
+
solllow.com
|
5671 |
+
solodrugs.com
|
5672 |
+
somearestrangeae.com
|
5673 |
+
someones.biz
|
5674 |
+
sonicatom.com
|
5675 |
+
soniferous8tram.com
|
5676 |
+
sore3mustily.com
|
5677 |
+
sortigi.com
|
5678 |
+
sothata.com
|
5679 |
+
sottedbbfhm.com
|
5680 |
+
soulfinder.info
|
5681 |
+
soullwantoretur.com
|
5682 |
+
source9patsies.com
|
5683 |
+
sourcesbest.net
|
5684 |
+
sourdough7558drygs.com
|
5685 |
+
southeasthosters.com
|
5686 |
+
sp66.com
|
5687 |
+
space4loan.biz
|
5688 |
+
spam-cash.com
|
5689 |
+
spam-cash.net
|
5690 |
+
spartacus5unites.com
|
5691 |
+
speakoutinternational.com
|
5692 |
+
special-selections.com
|
5693 |
+
special56.biz
|
5694 |
+
specialcartoon.com
|
5695 |
+
specialitemfeaturesurprise.com
|
5696 |
+
specialitystore.info
|
5697 |
+
spedwee.com
|
5698 |
+
speedvalue.net
|
5699 |
+
speedzie.com
|
5700 |
+
speshials.info
|
5701 |
+
sphinxsurreal.com
|
5702 |
+
spicybimbos.com
|
5703 |
+
spicyspinners.com
|
5704 |
+
spidery4421biz.com
|
5705 |
+
spinpage.com
|
5706 |
+
spinsaver.info
|
5707 |
+
spittoon2ashamedly.info
|
5708 |
+
split8straddler.com
|
5709 |
+
spliter.us
|
5710 |
+
splitwem.com
|
5711 |
+
spoelwrr.com
|
5712 |
+
spoiled5mekong.com
|
5713 |
+
spoon5656.biz
|
5714 |
+
spoonmagic.info
|
5715 |
+
sporeserver.com
|
5716 |
+
springmulch.com
|
5717 |
+
sprlng.net
|
5718 |
+
spyelimination.com
|
5719 |
+
spykiller-123.com
|
5720 |
+
spysniper.net
|
5721 |
+
spywar-101.com
|
5722 |
+
spywareindanger.com
|
5723 |
+
spywareontop.com
|
5724 |
+
spywareremove.info
|
5725 |
+
spywarnet.com
|
5726 |
+
squares9haywire.us
|
5727 |
+
squareskin.cn
|
5728 |
+
squirmed5boris.com
|
5729 |
+
srgop4.com
|
5730 |
+
srvllc.info
|
5731 |
+
ssaveeemmeeds.com
|
5732 |
+
ssdeca.com
|
5733 |
+
sssas2.com
|
5734 |
+
sssmama.com
|
5735 |
+
stagedcn.com
|
5736 |
+
stainbrookfinancial.com
|
5737 |
+
stalactite8217pirrs.com
|
5738 |
+
stamtrex.com
|
5739 |
+
stance4multichip.info
|
5740 |
+
stapeliasspray.com
|
5741 |
+
star-rx.net
|
5742 |
+
star1eads.us
|
5743 |
+
start-making-love.us
|
5744 |
+
start-over.info
|
5745 |
+
startpackin.com
|
5746 |
+
startquote.com
|
5747 |
+
startsaverx.com
|
5748 |
+
statcounter.com
|
5749 |
+
states-refinance.com
|
5750 |
+
statesmoneyz.com
|
5751 |
+
stayeofor.com
|
5752 |
+
steak1tailcoats.com
|
5753 |
+
stefegsge.info
|
5754 |
+
sterhefed.info
|
5755 |
+
sterlinglenders.com
|
5756 |
+
stesa.com.sg
|
5757 |
+
stetmlstet6.com
|
5758 |
+
stiffed5912tads.com
|
5759 |
+
stiles8440rneds.us
|
5760 |
+
stilled5soapsuds.com
|
5761 |
+
stillrecovering.com
|
5762 |
+
stilltheworldtome.net
|
5763 |
+
stimulus7045drugs.us
|
5764 |
+
stna.info
|
5765 |
+
stockreplica.com
|
5766 |
+
stolewater.info
|
5767 |
+
stony1etymology.info
|
5768 |
+
stopbills.info
|
5769 |
+
stopimp0tence.info
|
5770 |
+
storedcd.com
|
5771 |
+
storedk.com
|
5772 |
+
storegenius.com
|
5773 |
+
story3607pirrs.com
|
5774 |
+
stpt.com
|
5775 |
+
stra1n.com
|
5776 |
+
straightdot.com
|
5777 |
+
straighten8antelope.com
|
5778 |
+
strangecollective.info
|
5779 |
+
strangeparts.info
|
5780 |
+
stratatica.com
|
5781 |
+
stribontut.com
|
5782 |
+
strictlins.com
|
5783 |
+
stromss.com
|
5784 |
+
sttates.com
|
5785 |
+
stunt9046pi11s.us
|
5786 |
+
stuntscholar.com
|
5787 |
+
stuyasimn.com
|
5788 |
+
stybane.com
|
5789 |
+
stye3546drugs.us
|
5790 |
+
styledirt.com
|
5791 |
+
subbed4hook.com
|
5792 |
+
subcontrol7schism.info
|
5793 |
+
submityoursitetoday.biz
|
5794 |
+
suborning7098pills.us
|
5795 |
+
subpars8siltation.info
|
5796 |
+
substitute4perihelion.com
|
5797 |
+
subvalue.com
|
5798 |
+
success05.info
|
5799 |
+
succezz.biz
|
5800 |
+
succulents1devolution.com
|
5801 |
+
sucservice.com
|
5802 |
+
sueywh.com
|
5803 |
+
sujike.biz
|
5804 |
+
summer-soft.info
|
5805 |
+
summerhjnjf.com
|
5806 |
+
summerlongster.com
|
5807 |
+
summershapes.biz
|
5808 |
+
summit4716drygs.com
|
5809 |
+
summonthedemon.com
|
5810 |
+
sumrt.com
|
5811 |
+
sumwin.biz
|
5812 |
+
sun1statuss.info
|
5813 |
+
suncoastrewards.com
|
5814 |
+
sung2175pirrs.com
|
5815 |
+
sunnydaysbest.com
|
5816 |
+
supcrocs.us
|
5817 |
+
super-puper.info
|
5818 |
+
superbhititems.com
|
5819 |
+
superbreplicaz.com
|
5820 |
+
superchaprx.com
|
5821 |
+
superchapultram.com
|
5822 |
+
superchapviagra.com
|
5823 |
+
supercheapmeds.com
|
5824 |
+
superchoices.org
|
5825 |
+
supereasyrx.com
|
5826 |
+
supereasyrx.net
|
5827 |
+
superelitewave.com
|
5828 |
+
superfast1.info
|
5829 |
+
superfrog.net
|
5830 |
+
supergoodfood.com
|
5831 |
+
superherbalonline.biz
|
5832 |
+
superherbalonline.com
|
5833 |
+
superhotchicksbro.biz
|
5834 |
+
superlaugh.com
|
5835 |
+
superlouditemsadvance.com
|
5836 |
+
supermed123.com
|
5837 |
+
supermortgagedeals.info
|
5838 |
+
superrefico.com
|
5839 |
+
supersize-it.info
|
5840 |
+
supersizeherbs.com
|
5841 |
+
supporteconte.com
|
5842 |
+
supposable.net
|
5843 |
+
suprapage.com
|
5844 |
+
suprememborne.com
|
5845 |
+
supremlogo.com
|
5846 |
+
surepass.com.sg
|
5847 |
+
surewinsoccer.net
|
5848 |
+
surplusage8150tads.com
|
5849 |
+
susanspice.com
|
5850 |
+
svviss.com
|
5851 |
+
swaged5905biz.com
|
5852 |
+
swapped3funereal.info
|
5853 |
+
swatchs.net
|
5854 |
+
sweated1427pi11.us
|
5855 |
+
sweetloanz.info
|
5856 |
+
sweetwebloans.info
|
5857 |
+
swelter1smirked.info
|
5858 |
+
swfr.biz
|
5859 |
+
swingersmatch.com
|
5860 |
+
swishzone.com
|
5861 |
+
swissreplicazrwonderful.net
|
5862 |
+
swissrolex4you.com
|
5863 |
+
swissrolexes4me.com
|
5864 |
+
swisstimewatch.net
|
5865 |
+
swissworldgift.com
|
5866 |
+
swissworlds.com
|
5867 |
+
swt12.com
|
5868 |
+
symbol1trustor.info
|
5869 |
+
synonymous6hoechst.com
|
5870 |
+
syphilitic1illustrate.us
|
5871 |
+
systemment.com
|
5872 |
+
t0p9.com
|
5873 |
+
t0w.net
|
5874 |
+
t0wers.com
|
5875 |
+
t0wers.net
|
5876 |
+
t1me2sav3.com
|
5877 |
+
t6i.net
|
5878 |
+
t7mort.net
|
5879 |
+
tabboulehs.net
|
5880 |
+
tablal.info
|
5881 |
+
tablbabl.info
|
5882 |
+
tablbabla.info
|
5883 |
+
tableforty.com
|
5884 |
+
tablil.info
|
5885 |
+
tablpep.info
|
5886 |
+
tablptp.info
|
5887 |
+
tablpwp.info
|
5888 |
+
tablwl.info
|
5889 |
+
tabsyouneed.info
|
5890 |
+
tachea.com
|
5891 |
+
tachometer4191rx.us
|
5892 |
+
taikang.com
|
5893 |
+
tailor8mortgagor.info
|
5894 |
+
take-and-enjoy.info
|
5895 |
+
takeofflist.com
|
5896 |
+
takerolessuc.com
|
5897 |
+
takeyourhealth.info
|
5898 |
+
takipark.com
|
5899 |
+
takotplus.info
|
5900 |
+
tallish.net
|
5901 |
+
talonet.it
|
5902 |
+
tanachklgmj.com
|
5903 |
+
target.sg
|
5904 |
+
target2025pills.biz
|
5905 |
+
tarnug.com
|
5906 |
+
tasty-panties.com
|
5907 |
+
tattooist2availably.info
|
5908 |
+
tatziz.info
|
5909 |
+
tatzoz.info
|
5910 |
+
tatzpz.info
|
5911 |
+
tatzqz.info
|
5912 |
+
tatzrz.info
|
5913 |
+
tatzwz.info
|
5914 |
+
tatzyz.info
|
5915 |
+
taumldhfj.com
|
5916 |
+
tbuh.com
|
5917 |
+
tealpage.com
|
5918 |
+
teamworkistheway.com
|
5919 |
+
tebusbone.com
|
5920 |
+
techdms.com
|
5921 |
+
technoprise.net
|
5922 |
+
tecmnsd.info
|
5923 |
+
teenfuk.com
|
5924 |
+
teezrus.com
|
5925 |
+
tehexpertz.com
|
5926 |
+
tehexpertz.net
|
5927 |
+
telcall.com.au
|
5928 |
+
telespoon.info
|
5929 |
+
telltellrx.com
|
5930 |
+
telluristmj.net
|
5931 |
+
temazepam2834pill.us
|
5932 |
+
temline.info
|
5933 |
+
templatezone.com
|
5934 |
+
tenement9850nx.com
|
5935 |
+
tensecondsasyou.com
|
5936 |
+
teopouoy.com
|
5937 |
+
terima.net
|
5938 |
+
termquotes4you23.com
|
5939 |
+
terra.es
|
5940 |
+
tfeedbx.com
|
5941 |
+
tgoiwe.com
|
5942 |
+
th4uisl.com
|
5943 |
+
thankyoufor.info
|
5944 |
+
thankyourx.com
|
5945 |
+
thatsfineforme.com
|
5946 |
+
thatsu77.info
|
5947 |
+
thdcn6.info
|
5948 |
+
the-airline-place.com
|
5949 |
+
the-lowest-rates.net
|
5950 |
+
the-rxsite.com
|
5951 |
+
the1swisswatch.com
|
5952 |
+
theanswerto.com
|
5953 |
+
thebestmail.org
|
5954 |
+
thebestmail.us
|
5955 |
+
thebestmortage.com
|
5956 |
+
thebestmortage.net
|
5957 |
+
thebestofthebest.info
|
5958 |
+
thebettermail.com
|
5959 |
+
thebiggestand.com
|
5960 |
+
thebluebubble.com
|
5961 |
+
thebnc.biz
|
5962 |
+
thebombdeals.com
|
5963 |
+
thebridgenut.com
|
5964 |
+
thebusbone.com
|
5965 |
+
thedomainyou.com
|
5966 |
+
thefatlossfirm.com
|
5967 |
+
thefilecompany.com
|
5968 |
+
thegloveworks.info
|
5969 |
+
thegoodstuffinc.info
|
5970 |
+
thehomeofrx.net
|
5971 |
+
theirnamesuntil.com
|
5972 |
+
thekkktookmydomainway.com
|
5973 |
+
themaildept.com
|
5974 |
+
themind758tabs.biz
|
5975 |
+
themoon963drugs.biz
|
5976 |
+
theocracy6plugged.com
|
5977 |
+
theonlyrealstuff.com
|
5978 |
+
theorder.biz
|
5979 |
+
theperfectloan4u.com
|
5980 |
+
thepillsfarm.com
|
5981 |
+
thepillsforall.com
|
5982 |
+
thepillsnational.com
|
5983 |
+
thepillssite.com
|
5984 |
+
thepillsspot.com
|
5985 |
+
thepillssupply.com
|
5986 |
+
thepillswebsite.com
|
5987 |
+
thepiqsite.com
|
5988 |
+
theproxyconnection.com
|
5989 |
+
therunesr.com
|
5990 |
+
therustam937rx.biz
|
5991 |
+
therxshop.net
|
5992 |
+
theseto.com
|
5993 |
+
thesitefordating.com
|
5994 |
+
thestuffonlines.com
|
5995 |
+
thetargeted738meds.biz
|
5996 |
+
thethingsonlines.com
|
5997 |
+
thetrafficbooster.com
|
5998 |
+
thewatchezoncanalstreet.com
|
5999 |
+
thewiltonshack.com
|
6000 |
+
theysinkinward.com
|
6001 |
+
thingswevalue.net
|
6002 |
+
this-is-myrx.com
|
6003 |
+
this-is-myrx.us
|
6004 |
+
thishelpedmanypeople.com
|
6005 |
+
thistabs.com
|
6006 |
+
thistimbube.com
|
6007 |
+
thiswee0nlyz.com
|
6008 |
+
thoughteach.cn
|
6009 |
+
thregistratioothe.com
|
6010 |
+
thrush8spoor.info
|
6011 |
+
thumper4635pi11s.us
|
6012 |
+
thuroebian.info
|
6013 |
+
ti4.net
|
6014 |
+
tiered8070pi11.us
|
6015 |
+
tiethepen.com
|
6016 |
+
tifde.com
|
6017 |
+
tiffanycam.info
|
6018 |
+
tile9skyway.com
|
6019 |
+
timath.com
|
6020 |
+
timberland6abyssal.com
|
6021 |
+
time-2-refi.com
|
6022 |
+
time2savem3ds.com
|
6023 |
+
timehostingwives.biz
|
6024 |
+
timeminute.com
|
6025 |
+
timewillnotwaite.biz
|
6026 |
+
timezoneforpcs.com
|
6027 |
+
tina.biz
|
6028 |
+
tinaloverman.com
|
6029 |
+
tipej.com
|
6030 |
+
tipsy4485nx.com
|
6031 |
+
tit4velodrome.com
|
6032 |
+
tnashbsv.com
|
6033 |
+
tnmdkdda.biz
|
6034 |
+
toaster7461drygs.com
|
6035 |
+
tobeatdameat.com
|
6036 |
+
tobeornottobe2005.biz
|
6037 |
+
today-mrg-now.net
|
6038 |
+
todaysmagic.com
|
6039 |
+
todaysrxmeds.net
|
6040 |
+
toddler7dimwit.com
|
6041 |
+
toels.com
|
6042 |
+
toifn.com
|
6043 |
+
tollingtime.info
|
6044 |
+
tolr.com
|
6045 |
+
tom.com
|
6046 |
+
tonaringon.biz
|
6047 |
+
tonastumonatura.com
|
6048 |
+
tonightafter.com
|
6049 |
+
tonightspharma.com
|
6050 |
+
tony0989890.com
|
6051 |
+
toolto.com
|
6052 |
+
toomuchsnow.com
|
6053 |
+
tooshortz.us
|
6054 |
+
tootsie7742rneds.com
|
6055 |
+
top--sites.com
|
6056 |
+
top-ink-source.com
|
6057 |
+
top100.ro
|
6058 |
+
top10homejobs.net
|
6059 |
+
topcasinovegas.com
|
6060 |
+
topes5apparatus.us
|
6061 |
+
tophgh.com
|
6062 |
+
toplenders.biz
|
6063 |
+
toplenders.net
|
6064 |
+
topsites-us.com
|
6065 |
+
topsitez.us
|
6066 |
+
topwinsoft.com
|
6067 |
+
tordel.com
|
6068 |
+
torispeller.com
|
6069 |
+
torrence-family.com
|
6070 |
+
tosshersalad.net
|
6071 |
+
tostarplanni.com
|
6072 |
+
totallyherbal.biz
|
6073 |
+
totalplayers.biz
|
6074 |
+
towbgh.com
|
6075 |
+
toyzwireless.com
|
6076 |
+
tpbaj.com
|
6077 |
+
tr.cx
|
6078 |
+
tra1ns.com
|
6079 |
+
tracylarty.com
|
6080 |
+
tradeforaseven.com
|
6081 |
+
traditionalrx.com
|
6082 |
+
trafficmagnet.com
|
6083 |
+
trafficyoursite.com
|
6084 |
+
trakkerd.net
|
6085 |
+
trans-exec.biz
|
6086 |
+
transactiondepartment.com
|
6087 |
+
transferrx.net
|
6088 |
+
transfersp.com
|
6089 |
+
transient3126drygs.com
|
6090 |
+
traride.com
|
6091 |
+
trashed7739pinn.com
|
6092 |
+
traskifdxsd.us
|
6093 |
+
treasuresadvisor.com
|
6094 |
+
treasuresguide.com
|
6095 |
+
trendhost.org
|
6096 |
+
triethyl8lubricate.info
|
6097 |
+
triggerpinger.info
|
6098 |
+
trimbrick.info
|
6099 |
+
trnnet.com
|
6100 |
+
troubleismymiddlename.com
|
6101 |
+
tru-enlargement.com
|
6102 |
+
true-offers.com
|
6103 |
+
trustdoctors.com
|
6104 |
+
trustgoods.com
|
6105 |
+
trustit.info
|
6106 |
+
trustsave.com
|
6107 |
+
truthfu1ly.com
|
6108 |
+
try-logos-llc.com
|
6109 |
+
tryingtoshoveinto.com
|
6110 |
+
tryintoget.com
|
6111 |
+
trylogos-group.com
|
6112 |
+
trypharmacy.com
|
6113 |
+
tsar6havana.us
|
6114 |
+
tsunamix.info
|
6115 |
+
tt48.com
|
6116 |
+
ttebuysz.com
|
6117 |
+
tteepepharma.com
|
6118 |
+
ttlive.com
|
6119 |
+
ttuburq.com
|
6120 |
+
tubercular1adaptation.com
|
6121 |
+
tullam.info
|
6122 |
+
tunberanserfo.com
|
6123 |
+
tupit.info
|
6124 |
+
turbomailing.biz
|
6125 |
+
turbulence7slaveowner.info
|
6126 |
+
turnmnb.info
|
6127 |
+
turonresta.com
|
6128 |
+
tvenergy.biz
|
6129 |
+
tvenergy.info
|
6130 |
+
tvepnedi.info
|
6131 |
+
two-best.net
|
6132 |
+
twobusbone.com
|
6133 |
+
tyewqueop.info
|
6134 |
+
tzig.com
|
6135 |
+
ucanimprove.info
|
6136 |
+
ucanttouchfist.com
|
6137 |
+
ud7.net
|
6138 |
+
udgjdks.info
|
6139 |
+
udns73.com
|
6140 |
+
ufredbx.com
|
6141 |
+
ufrotechs.com
|
6142 |
+
uhnf2u322.com
|
6143 |
+
uhrmxxd.info
|
6144 |
+
uhviagra.info
|
6145 |
+
uic6188.com
|
6146 |
+
ujmort.com
|
6147 |
+
uki342.com
|
6148 |
+
ukpoint.biz
|
6149 |
+
ullifull8.com
|
6150 |
+
ultimatetimepiece4u.net
|
6151 |
+
ultimatum8exclusion.com
|
6152 |
+
ultimo.biz
|
6153 |
+
ultrameds4sale.com
|
6154 |
+
umbridol.com
|
6155 |
+
ummrx.com
|
6156 |
+
unary5290pirrs.com
|
6157 |
+
unawares6248pinn.com
|
6158 |
+
unaxfec.com
|
6159 |
+
uncanny9hark.com
|
6160 |
+
uncapping.net
|
6161 |
+
uncharredkk.com
|
6162 |
+
uncreate3jimmy.com
|
6163 |
+
uncrossed1430biz.com
|
6164 |
+
undarkenedic.com
|
6165 |
+
undefeated6archdeacon.info
|
6166 |
+
undefended7133pinn.com
|
6167 |
+
undermost5381rneds.com
|
6168 |
+
undunbed.com
|
6169 |
+
uneaten.net
|
6170 |
+
unformzw.com
|
6171 |
+
unglazed.net
|
6172 |
+
unglue6cereal.com
|
6173 |
+
unguent9651drygs.com
|
6174 |
+
unharness8syndrome.com
|
6175 |
+
uniquamonthe.com
|
6176 |
+
unitrust3occult.info
|
6177 |
+
univcs.info
|
6178 |
+
universal9skied.com
|
6179 |
+
universityawards.biz
|
6180 |
+
univm.com
|
6181 |
+
unixusa.net
|
6182 |
+
unkindest.net
|
6183 |
+
unloaded2katzner.com
|
6184 |
+
unloose3abstemious.com
|
6185 |
+
unpardoned.net
|
6186 |
+
unpureacnba.com
|
6187 |
+
unseat6waxworks.com
|
6188 |
+
unsolder.com
|
6189 |
+
unsubscribesg.com
|
6190 |
+
untalented9987drugs.us
|
6191 |
+
untowncjaad.com
|
6192 |
+
untyred.net
|
6193 |
+
unusual-ideas.com
|
6194 |
+
unv.net
|
6195 |
+
unvl.com
|
6196 |
+
unwarily.com
|
6197 |
+
uol.com.br
|
6198 |
+
uosb.com
|
6199 |
+
up.com.sg
|
6200 |
+
upgradingyourbrowser.com
|
6201 |
+
upower.info
|
6202 |
+
upsize-me.biz
|
6203 |
+
upstem.com
|
6204 |
+
uptightbiz.info
|
6205 |
+
uptoaoneyear.com
|
6206 |
+
uralogastioano.com
|
6207 |
+
urchoise.com
|
6208 |
+
ursajemima.info
|
6209 |
+
us-monitor-sales.com
|
6210 |
+
usa-home-loans.net
|
6211 |
+
usa-medz.com
|
6212 |
+
usa-mortgage-loans.net
|
6213 |
+
usa-sells.com
|
6214 |
+
usaelender.com
|
6215 |
+
usagmail.com
|
6216 |
+
usagreetings.com
|
6217 |
+
usaloanworks.biz
|
6218 |
+
usalw.com
|
6219 |
+
usapayboy.com
|
6220 |
+
usaviti.com
|
6221 |
+
uscg5turtleneck.com
|
6222 |
+
usecheap.info
|
6223 |
+
useful-rxinfo.net
|
6224 |
+
usmortgagebanc.com
|
6225 |
+
usonyx.net
|
6226 |
+
utahsoft.info
|
6227 |
+
utopia6phallus.com
|
6228 |
+
uysata.com
|
6229 |
+
uytrets.net
|
6230 |
+
v-lineinc.com
|
6231 |
+
v01c3s.com
|
6232 |
+
v56yu8rt.ph
|
6233 |
+
vacationpower.com
|
6234 |
+
vacnbiz.com
|
6235 |
+
vaguer.com
|
6236 |
+
vaiium.com
|
6237 |
+
val10.com
|
6238 |
+
valentinesblinddate.com
|
6239 |
+
validpage.com
|
6240 |
+
valleysite.com
|
6241 |
+
value-loans.com
|
6242 |
+
valuedclientmtg.com
|
6243 |
+
valuedsoft.biz
|
6244 |
+
valuen.com
|
6245 |
+
valueplusof.com
|
6246 |
+
valueprogram.net
|
6247 |
+
vamoslamoveon.us
|
6248 |
+
vanai.com
|
6249 |
+
vano-soft.biz
|
6250 |
+
vantopil.com
|
6251 |
+
variousgreatproducts.com
|
6252 |
+
vcay.org
|
6253 |
+
vdif.com
|
6254 |
+
vdrugs.info
|
6255 |
+
vdrugz.com
|
6256 |
+
vdrugz.net
|
6257 |
+
velfr.com
|
6258 |
+
vencia-inc.com
|
6259 |
+
venihost.biz
|
6260 |
+
vereylongviagra.info
|
6261 |
+
veriturlis.com
|
6262 |
+
versiu.com
|
6263 |
+
verybestmeds.com
|
6264 |
+
veryfastviagra.info
|
6265 |
+
verylovepharma.info
|
6266 |
+
verylovpriceviagra.info
|
6267 |
+
verylovtablviagra.info
|
6268 |
+
vexedel.com
|
6269 |
+
vfmr.info
|
6270 |
+
vfna3d.biz
|
6271 |
+
vgr100.com
|
6272 |
+
vhighereducation.com
|
6273 |
+
via-host.org
|
6274 |
+
viaga3domainsmarketing.biz
|
6275 |
+
viagensnobrasil.info
|
6276 |
+
viagramedsforsale.com
|
6277 |
+
viagravicodin.info
|
6278 |
+
viags.com
|
6279 |
+
vic0din.com
|
6280 |
+
vicsave.com
|
6281 |
+
victoriassecret.com
|
6282 |
+
victorymeds.com
|
6283 |
+
viewhelp.info
|
6284 |
+
viewhostdeals.com
|
6285 |
+
vigra4.info
|
6286 |
+
vinetka.info
|
6287 |
+
violetvillan.com
|
6288 |
+
vip-casino-start.org
|
6289 |
+
vip-casino777.org
|
6290 |
+
vip5pate.com
|
6291 |
+
vippills.net
|
6292 |
+
viproyalcasino.net
|
6293 |
+
virad1.cn
|
6294 |
+
virgvia.biz
|
6295 |
+
virscan7phrenic.info
|
6296 |
+
virtual-apple.com
|
6297 |
+
virtual-pc.org
|
6298 |
+
virtualdegreeonline.com
|
6299 |
+
virtualgetmed.com
|
6300 |
+
virtualstoragecenter.com
|
6301 |
+
visagraph.net
|
6302 |
+
visionsave.com
|
6303 |
+
visionsavings.com
|
6304 |
+
visita-usa.com
|
6305 |
+
vit-co.com
|
6306 |
+
vitalbodyneeds.biz
|
6307 |
+
vixv.com
|
6308 |
+
vlew.com
|
6309 |
+
vm20p5r.com
|
6310 |
+
vnhts.com
|
6311 |
+
vnjicd.info
|
6312 |
+
vodoro.info
|
6313 |
+
voippricer.com
|
6314 |
+
vombufie.info
|
6315 |
+
voodoo5623rx.biz
|
6316 |
+
votreresponse.info
|
6317 |
+
vqjlvl.com
|
6318 |
+
vreset9862meds.biz
|
6319 |
+
vsezaebis.info
|
6320 |
+
vtargeted307pills.biz
|
6321 |
+
vueotechs.com
|
6322 |
+
vulcanise.net
|
6323 |
+
vw56tge.biz
|
6324 |
+
vwater754rx.biz
|
6325 |
+
vz6.net
|
6326 |
+
vzempizdets.biz
|
6327 |
+
w0wo.com
|
6328 |
+
w9gjns.com
|
6329 |
+
wa18tch3znowbymail.com
|
6330 |
+
wa2tch3znowbymail.com
|
6331 |
+
wafddiwafd8.com
|
6332 |
+
waggish172dryg.com
|
6333 |
+
wal1trnsb0der.com
|
6334 |
+
wall3tgr0wth.com
|
6335 |
+
walleye2556dryg.us
|
6336 |
+
walltransb0rder.com
|
6337 |
+
walppref.com
|
6338 |
+
wandweb.com
|
6339 |
+
wannasaven0w.com
|
6340 |
+
wannavisit.com
|
6341 |
+
wantahomeloan.com
|
6342 |
+
wantingyounow.com
|
6343 |
+
wapquote.com
|
6344 |
+
warehousefull.com
|
6345 |
+
warehousemed5.com
|
6346 |
+
warehousemedical.com
|
6347 |
+
warehousemedsdirect.net
|
6348 |
+
warehousewebelong.com
|
6349 |
+
warehousewebelong.net
|
6350 |
+
wasabi-online.com
|
6351 |
+
watc12h3znowbymail.com
|
6352 |
+
watc16h3znowbymail.com
|
6353 |
+
watch-cat.com
|
6354 |
+
watch-crystal.com
|
6355 |
+
watch-the-time.com
|
6356 |
+
watch3zno3wbymail.com
|
6357 |
+
watches-paradise.com
|
6358 |
+
watchesbazaar.com
|
6359 |
+
watchesreadynow.com
|
6360 |
+
watchesrus4u.net
|
6361 |
+
watcheswes.com
|
6362 |
+
watchge.com
|
6363 |
+
watchingtvwithmycat.com
|
6364 |
+
watchsound.com
|
6365 |
+
watchtips.info
|
6366 |
+
waterside9155dryg.us
|
6367 |
+
wauy.com
|
6368 |
+
wayaround.info
|
6369 |
+
wayhere.com
|
6370 |
+
waytogo4u.biz
|
6371 |
+
wcndurx.info
|
6372 |
+
wdre24-454.com
|
6373 |
+
we-gen-it2.com
|
6374 |
+
we49fm.com
|
6375 |
+
weallneedmoredomains.com
|
6376 |
+
weaponry8sachets.com
|
6377 |
+
web-ip.de
|
6378 |
+
web-lender.com
|
6379 |
+
web-resource-info.info
|
6380 |
+
web4deals.com
|
6381 |
+
webcamadventures.com
|
6382 |
+
webcamsdate.com
|
6383 |
+
webdealz2003.biz
|
6384 |
+
webdocc.biz
|
6385 |
+
webleads.info
|
6386 |
+
webmarketflash.com
|
6387 |
+
webmeds36.info
|
6388 |
+
webpronews.com
|
6389 |
+
webqualityincrease.com
|
6390 |
+
webrefi.info
|
6391 |
+
webrefi.net
|
6392 |
+
websalesjet.net
|
6393 |
+
website-needs-traffic.com
|
6394 |
+
website.ws
|
6395 |
+
websitetheyourshop-help.com
|
6396 |
+
webster3456biz.biz
|
6397 |
+
webvisitsnow.com
|
6398 |
+
wecanhelpnp.biz
|
6399 |
+
wedighap.com
|
6400 |
+
wednesdays7caries.info
|
6401 |
+
weeaftebein.com
|
6402 |
+
weeeei.biz
|
6403 |
+
weekperiodther.com
|
6404 |
+
wefinac.net
|
6405 |
+
wehaveitgreat.info
|
6406 |
+
wehrmacht3905drygs.com
|
6407 |
+
weighedinatmore.com
|
6408 |
+
weightlossbusiness.net
|
6409 |
+
weightlossfirm.com
|
6410 |
+
weirsoneightdams.com
|
6411 |
+
weixu-now.net
|
6412 |
+
wellahost.com
|
6413 |
+
wellness-i.com
|
6414 |
+
wellnessdiscountcard.info
|
6415 |
+
wemakemtg2.com
|
6416 |
+
wenmfdu.info
|
6417 |
+
weofferaselection.com
|
6418 |
+
weorie.com
|
6419 |
+
wepromisebeauty.com
|
6420 |
+
werhlksdhb.info
|
6421 |
+
weroig.com
|
6422 |
+
werrill.com
|
6423 |
+
werthebestrx.us
|
6424 |
+
weruxvnnww.info
|
6425 |
+
werwer4723.com
|
6426 |
+
wesh1pfa8t.com
|
6427 |
+
westpoll.info
|
6428 |
+
wetbudapest.com
|
6429 |
+
wetdear.com
|
6430 |
+
wetdearest.com
|
6431 |
+
wetparts.com
|
6432 |
+
wetrack.it
|
6433 |
+
wetwathcg.com
|
6434 |
+
wewatchd.com
|
6435 |
+
wewervnxbf.info
|
6436 |
+
wexvd.info
|
6437 |
+
wfeedbx.com
|
6438 |
+
whatamiracle.biz
|
6439 |
+
whatarate.us
|
6440 |
+
whatatosser.com
|
6441 |
+
whathelpulw.com
|
6442 |
+
wheelwalls.com
|
6443 |
+
whentheyopened.com
|
6444 |
+
wheresmyteacer.net
|
6445 |
+
whicarvailab.com
|
6446 |
+
whirlwinddate.com
|
6447 |
+
who-remembers-me.com
|
6448 |
+
whoarates.com
|
6449 |
+
wholecoolgirls.info
|
6450 |
+
wholegrew.cn
|
6451 |
+
wholelotofrx.net
|
6452 |
+
wholesalerex.com
|
6453 |
+
whybreathoxygen.com
|
6454 |
+
wiakoskdd.info
|
6455 |
+
wickedground.com
|
6456 |
+
widanguris.com
|
6457 |
+
wieg.biz
|
6458 |
+
wife-play.com
|
6459 |
+
wifecheaters.info
|
6460 |
+
wifejoker.com
|
6461 |
+
wiffledom.com
|
6462 |
+
wigwife.com
|
6463 |
+
wild-trialz.biz
|
6464 |
+
wildrefugein.com
|
6465 |
+
wildsumer.com
|
6466 |
+
willow5ferocious.com
|
6467 |
+
winasphost.net
|
6468 |
+
winbusbone.com
|
6469 |
+
wincdz.com
|
6470 |
+
windcaballo.net
|
6471 |
+
windowflower.com
|
6472 |
+
windowscasino.com
|
6473 |
+
windswept8920drygs.com
|
6474 |
+
winning7272tads.com
|
6475 |
+
winspr.biz
|
6476 |
+
winsubx-now.com
|
6477 |
+
wiredpublicdiscounts.biz
|
6478 |
+
wisefinance.info
|
6479 |
+
wiselender.net
|
6480 |
+
wiseschool.com
|
6481 |
+
wisesoft.info
|
6482 |
+
wisnjwis7.com
|
6483 |
+
wissengroup.com
|
6484 |
+
witha11.com
|
6485 |
+
withouttheseoferz.com
|
6486 |
+
withpoem.cn
|
6487 |
+
withrt.com
|
6488 |
+
witpoli.com
|
6489 |
+
wiveswhocheat69.biz
|
6490 |
+
wizsystems.com
|
6491 |
+
wjkwwi.info
|
6492 |
+
wjmdnfm.info
|
6493 |
+
wlue.com
|
6494 |
+
wmsgroup.net
|
6495 |
+
wneiis-planet.info
|
6496 |
+
wneiis-plus.info
|
6497 |
+
woekg.info
|
6498 |
+
womenhavebeen.com
|
6499 |
+
womenlovebest.com
|
6500 |
+
womenz.biz
|
6501 |
+
wonderdrug.ws
|
6502 |
+
wonderfulreplicas4u.com
|
6503 |
+
wondermed.info
|
6504 |
+
wonderpack.info
|
6505 |
+
wonderstuff.biz
|
6506 |
+
woodnote2surfboat.com
|
6507 |
+
woodwheel.info
|
6508 |
+
woomen.biz
|
6509 |
+
woosmen.info
|
6510 |
+
wopolove.com
|
6511 |
+
wopoloveo.com
|
6512 |
+
wopoloveok.com
|
6513 |
+
workandsleep.com
|
6514 |
+
workathomeok.com
|
6515 |
+
workover.net
|
6516 |
+
workxz.com
|
6517 |
+
world-of-meds.com
|
6518 |
+
worldcardonline.info
|
6519 |
+
worldmeds4you.com
|
6520 |
+
worldrxdirect.biz
|
6521 |
+
worldrxhq.com
|
6522 |
+
worldtrustrefi.com
|
6523 |
+
worlduniversityonline.com
|
6524 |
+
worldwidemedstoday.com
|
6525 |
+
worlisnoenoug.com
|
6526 |
+
worryingly.net
|
6527 |
+
woshoaui.com
|
6528 |
+
wouldyoupleaseprep.com
|
6529 |
+
wow-watches.us
|
6530 |
+
wowhealth.info
|
6531 |
+
wowoffer.com
|
6532 |
+
wowpillzale.com
|
6533 |
+
wowrates.com
|
6534 |
+
wowrx.biz
|
6535 |
+
wpeorupw.us
|
6536 |
+
wpoenmd.com
|
6537 |
+
wringman.com
|
6538 |
+
wsmeds.com
|
6539 |
+
wsnmephamrd.com
|
6540 |
+
wst123.com
|
6541 |
+
wtljnb.com
|
6542 |
+
wuchf5fo.info
|
6543 |
+
wumort.net
|
6544 |
+
wuniv.com
|
6545 |
+
wuniv.net
|
6546 |
+
wv8.net
|
6547 |
+
wwmeds.com
|
6548 |
+
wwmeds.net
|
6549 |
+
wwwgethits.com
|
6550 |
+
wwwvaluedclientmtg.com
|
6551 |
+
x-forms.net
|
6552 |
+
x67fr22v.ph
|
6553 |
+
xanaz.net
|
6554 |
+
xanex.org
|
6555 |
+
xans.net
|
6556 |
+
xantz.com
|
6557 |
+
xbvbaar.net
|
6558 |
+
xcce.com
|
6559 |
+
xcelentbio.us
|
6560 |
+
xcelwonder.us
|
6561 |
+
xciconsulting.com
|
6562 |
+
xedffrr.com
|
6563 |
+
xer.com.au
|
6564 |
+
xftp.net
|
6565 |
+
xgremlin.com
|
6566 |
+
xhjwien.info
|
6567 |
+
xiagra.net
|
6568 |
+
ximportmeds.net
|
6569 |
+
xinternetstore.com
|
6570 |
+
xlkifge.com
|
6571 |
+
xmaad.com
|
6572 |
+
xmasdeal.info
|
6573 |
+
xmasdownloadnetwork.com
|
6574 |
+
xmaslowrate.com
|
6575 |
+
xmasrefinance.com
|
6576 |
+
xmassavings.com
|
6577 |
+
xmastimerates.com
|
6578 |
+
xmr3.com
|
6579 |
+
xnsidh4h.info
|
6580 |
+
xnue.biz
|
6581 |
+
xofferz.com
|
6582 |
+
xognei.com
|
6583 |
+
xoware.com
|
6584 |
+
xpays.com
|
6585 |
+
xpoem.info
|
6586 |
+
xpojga.com
|
6587 |
+
xpsoftsell.biz
|
6588 |
+
xsalez.org
|
6589 |
+
xseason.biz
|
6590 |
+
xstore.biz
|
6591 |
+
xtrameg.com
|
6592 |
+
xtreemteeming.com
|
6593 |
+
xtremebikebabes.com
|
6594 |
+
xtst.com
|
6595 |
+
xumcejc.com
|
6596 |
+
xvxxdatwers.info
|
6597 |
+
xx-powo.com
|
6598 |
+
xxdksq.com
|
6599 |
+
xxdksq.net
|
6600 |
+
xxxdate.com
|
6601 |
+
xxxlargepenis.net
|
6602 |
+
xxxmeds.info
|
6603 |
+
xxxteenzoo.com
|
6604 |
+
xxxxstore.com
|
6605 |
+
y-2-m.com
|
6606 |
+
y-mrg.net
|
6607 |
+
y-mrt.com
|
6608 |
+
y3ss1r.com
|
6609 |
+
y73.net
|
6610 |
+
yaadig.com
|
6611 |
+
yahoohut.com
|
6612 |
+
yahoosostore.com
|
6613 |
+
yahoososupersite.com
|
6614 |
+
yahoosotime.com
|
6615 |
+
yapped2284pills.us
|
6616 |
+
yawps440pinn.com
|
6617 |
+
yayshop.com
|
6618 |
+
ycxzvbsdds.us
|
6619 |
+
yellfore.com
|
6620 |
+
yellowcasefile.com
|
6621 |
+
yellowrate.com
|
6622 |
+
yelpp.biz
|
6623 |
+
yes03284.com
|
6624 |
+
yes2shipz.com
|
6625 |
+
yesmort.net
|
6626 |
+
yf4.net
|
6627 |
+
yfoedbx.com
|
6628 |
+
ymha1773drygs.com
|
6629 |
+
ynmort.net
|
6630 |
+
ynotmyrxworld.com
|
6631 |
+
ynotsavem0re.com
|
6632 |
+
yo6.net
|
6633 |
+
yomaoem.net
|
6634 |
+
yomoi.com
|
6635 |
+
yorhere2savez.com
|
6636 |
+
yosofts.info
|
6637 |
+
youarehealthy.info
|
6638 |
+
youaretaking.com
|
6639 |
+
youfoundidealsolution.com
|
6640 |
+
youheynow.info
|
6641 |
+
youkostylaya.com
|
6642 |
+
youlikeviagra.info
|
6643 |
+
youngfreespirits.com
|
6644 |
+
youngtallitemss.com
|
6645 |
+
your-financial.com
|
6646 |
+
your-home-loan.net
|
6647 |
+
your-mort-gages.com
|
6648 |
+
your-mort.com
|
6649 |
+
your-re-finance.com
|
6650 |
+
your-refi.com
|
6651 |
+
your-value-loan.com
|
6652 |
+
yourbestmeds.info
|
6653 |
+
yourbestrxplace.com
|
6654 |
+
yourbignight.com
|
6655 |
+
yourbollnas.info
|
6656 |
+
yourcasinobiz.com
|
6657 |
+
yourchanceathome.net
|
6658 |
+
yourcheap-rx.com
|
6659 |
+
yourdoctor.biz
|
6660 |
+
youreasyloans.net
|
6661 |
+
youreasymeds.com
|
6662 |
+
youreasymeds.net
|
6663 |
+
yourfitnessonline.com
|
6664 |
+
yourhealthmatters-now.com
|
6665 |
+
yourhostingaccount.com
|
6666 |
+
yourloanz.com
|
6667 |
+
yourmeds.info
|
6668 |
+
yourmembersdirectory.com
|
6669 |
+
yourmort.com
|
6670 |
+
yourname.com
|
6671 |
+
yourowndoctor.info
|
6672 |
+
yourowngaming.net
|
6673 |
+
yourownmeds.info
|
6674 |
+
yourpills4me.com
|
6675 |
+
yourpillsusa.com
|
6676 |
+
yourpils24.info
|
6677 |
+
yourrate.net
|
6678 |
+
yourscinedesign.com
|
6679 |
+
yourstuffabsolute.com
|
6680 |
+
yourstuffcentral.com
|
6681 |
+
yourstuffforme.com
|
6682 |
+
yourstuffforus.com
|
6683 |
+
yourstuffsupply.com
|
6684 |
+
yoursunlightzone.info
|
6685 |
+
yourtabl.info
|
6686 |
+
yourtablet.info
|
6687 |
+
yourthings2004.com
|
6688 |
+
yourthings4us.com
|
6689 |
+
yourthingslive.com
|
6690 |
+
yourthingsplace.com
|
6691 |
+
yourthingssoltuion.com
|
6692 |
+
youthemans.com
|
6693 |
+
youweretiredi.com
|
6694 |
+
youyouhey.info
|
6695 |
+
ypaym0re1z1.com
|
6696 |
+
ypx132.com
|
6697 |
+
ypypgroupy.com
|
6698 |
+
yrme33.com
|
6699 |
+
yrt009il.com
|
6700 |
+
yuiiooiutr.com
|
6701 |
+
yuiuku.info
|
6702 |
+
yunkgbcd.com
|
6703 |
+
yunoz.biz
|
6704 |
+
yuomnad.com
|
6705 |
+
yupnamethisnow.com
|
6706 |
+
yurgag.com
|
6707 |
+
yuritemple.net
|
6708 |
+
yuyumant.com
|
6709 |
+
zablen.com
|
6710 |
+
zainetsell.com
|
6711 |
+
zaliam.com
|
6712 |
+
zap-internet.com
|
6713 |
+
zapbook.info
|
6714 |
+
zaphomeloans.com
|
6715 |
+
zarf1antipodean.us
|
6716 |
+
zarinahsports.com
|
6717 |
+
zazxex.info
|
6718 |
+
zazxox.info
|
6719 |
+
zazxpx.info
|
6720 |
+
zazxtx.info
|
6721 |
+
zbestantid0te.com
|
6722 |
+
zbgadjdf.info
|
6723 |
+
zebalx.com
|
6724 |
+
zersurf.com
|
6725 |
+
zfeedbx.com
|
6726 |
+
ziagra.net
|
6727 |
+
zigzagging.net
|
6728 |
+
zinkuq.com
|
6729 |
+
ziuyt.info
|
6730 |
+
zloanz.info
|
6731 |
+
zndrz.com
|
6732 |
+
zockkfosa.com
|
6733 |
+
zoeyhasafever.com
|
6734 |
+
zolotko.info
|
6735 |
+
zoobrandsour.com
|
6736 |
+
zoodnights.com
|
6737 |
+
zoomwatches.info
|
6738 |
+
zoophilelinks.net
|
6739 |
+
zooumbrela.info
|
6740 |
+
zoozits.com
|
6741 |
+
zowk.com
|
6742 |
+
zpromeds.biz
|
6743 |
+
zpromeds.info
|
6744 |
+
zrwkd.com
|
6745 |
+
ztcash.com
|
6746 |
+
zuodalu.com
|
6747 |
+
zuperone.info
|
6748 |
+
zuvvka.com
|
6749 |
+
zwallet.com
|
6750 |
+
zxcvbdf.com
|
img/action_refresh_blue.gif
ADDED
Binary file
|
img/action_stop.gif
ADDED
Binary file
|
img/bg_widget.png
ADDED
Binary file
|
img/bg_widgetG.png
ADDED
Binary file
|
img/bg_widgetY.png
ADDED
Binary file
|
img/bullet_star.png
ADDED
Binary file
|
img/chart_add.png
ADDED
Binary file
|
img/chart_delete.png
ADDED
Binary file
|
img/cross.png
ADDED
Binary file
|
img/database_table.png
ADDED
Binary file
|
img/error_add.png
ADDED
Binary file
|
img/error_delete.png
ADDED
Binary file
|
img/flags/ad.png
ADDED
Binary file
|
img/flags/ae.png
ADDED
Binary file
|
img/flags/af.png
ADDED
Binary file
|
img/flags/ag.png
ADDED
Binary file
|
img/flags/ai.png
ADDED
Binary file
|
img/flags/al.png
ADDED
Binary file
|
img/flags/am.png
ADDED
Binary file
|
img/flags/an.png
ADDED
Binary file
|
img/flags/ao.png
ADDED
Binary file
|
img/flags/ar.png
ADDED
Binary file
|
img/flags/as.png
ADDED
Binary file
|
img/flags/at.png
ADDED
Binary file
|
img/flags/au.png
ADDED
Binary file
|
img/flags/aw.png
ADDED
Binary file
|
img/flags/ax.png
ADDED
Binary file
|
img/flags/az.png
ADDED
Binary file
|
img/flags/ba.png
ADDED
Binary file
|
img/flags/bb.png
ADDED
Binary file
|
img/flags/bd.png
ADDED
Binary file
|
img/flags/be.png
ADDED
Binary file
|
img/flags/bf.png
ADDED
Binary file
|
img/flags/bg.png
ADDED
Binary file
|
img/flags/bh.png
ADDED
Binary file
|
img/flags/bi.png
ADDED
Binary file
|
img/flags/bj.png
ADDED
Binary file
|
img/flags/bm.png
ADDED
Binary file
|
img/flags/bn.png
ADDED
Binary file
|
img/flags/bo.png
ADDED
Binary file
|
img/flags/br.png
ADDED
Binary file
|
img/flags/bs.png
ADDED
Binary file
|
img/flags/bt.png
ADDED
Binary file
|
img/flags/bv.png
ADDED
Binary file
|
img/flags/bw.png
ADDED
Binary file
|
img/flags/by.png
ADDED
Binary file
|
img/flags/bz.png
ADDED
Binary file
|
img/flags/ca.png
ADDED
Binary file
|
img/flags/catalonia.png
ADDED
Binary file
|
img/flags/cc.png
ADDED
Binary file
|
img/flags/cd.png
ADDED
Binary file
|
img/flags/cf.png
ADDED
Binary file
|
img/flags/cg.png
ADDED
Binary file
|
img/flags/ch.png
ADDED
Binary file
|
img/flags/ci.png
ADDED
Binary file
|
img/flags/ck.png
ADDED
Binary file
|
img/flags/cl.png
ADDED
Binary file
|
img/flags/cm.png
ADDED
Binary file
|
img/flags/cn.png
ADDED
Binary file
|
img/flags/co.png
ADDED
Binary file
|
img/flags/cr.png
ADDED
Binary file
|
img/flags/cs.png
ADDED
Binary file
|
img/flags/cu.png
ADDED
Binary file
|
img/flags/cv.png
ADDED
Binary file
|
img/flags/cx.png
ADDED
Binary file
|
img/flags/cy.png
ADDED
Binary file
|
img/flags/cz.png
ADDED
Binary file
|
img/flags/de.png
ADDED
Binary file
|
img/flags/dj.png
ADDED
Binary file
|
img/flags/dk.png
ADDED
Binary file
|
img/flags/dm.png
ADDED
Binary file
|
img/flags/do.png
ADDED
Binary file
|
img/flags/dz.png
ADDED
Binary file
|
img/flags/ec.png
ADDED
Binary file
|
img/flags/ee.png
ADDED
Binary file
|
img/flags/eg.png
ADDED
Binary file
|
img/flags/eh.png
ADDED
Binary file
|
img/flags/el.png
ADDED
Binary file
|
img/flags/en.png
ADDED
Binary file
|
img/flags/england.png
ADDED
Binary file
|
img/flags/er.png
ADDED
Binary file
|
img/flags/es.png
ADDED
Binary file
|
img/flags/et.png
ADDED
Binary file
|
img/flags/europeanunion.png
ADDED
Binary file
|
img/flags/fa.png
ADDED
Binary file
|
img/flags/fam.png
ADDED
Binary file
|
img/flags/fi.png
ADDED
Binary file
|
img/flags/fj.png
ADDED
Binary file
|
img/flags/fk.png
ADDED
Binary file
|
img/flags/fm.png
ADDED
Binary file
|
img/flags/fo.png
ADDED
Binary file
|
img/flags/fr.png
ADDED
Binary file
|
img/flags/ga.png
ADDED
Binary file
|
img/flags/gb.png
ADDED
Binary file
|
img/flags/gd.png
ADDED
Binary file
|
img/flags/ge.png
ADDED
Binary file
|
img/flags/gf.png
ADDED
Binary file
|
img/flags/gh.png
ADDED
Binary file
|
img/flags/gi.png
ADDED
Binary file
|
img/flags/gl.png
ADDED
Binary file
|
img/flags/gm.png
ADDED
Binary file
|
img/flags/gn.png
ADDED
Binary file
|
img/flags/gp.png
ADDED
Binary file
|
img/flags/gq.png
ADDED
Binary file
|
img/flags/gr.png
ADDED
Binary file
|
img/flags/gs.png
ADDED
Binary file
|
img/flags/gt.png
ADDED
Binary file
|
img/flags/gu.png
ADDED
Binary file
|
img/flags/gw.png
ADDED
Binary file
|
img/flags/gy.png
ADDED
Binary file
|
img/flags/hk.png
ADDED
Binary file
|
img/flags/hm.png
ADDED
Binary file
|
img/flags/hn.png
ADDED
Binary file
|
img/flags/hr.png
ADDED
Binary file
|
img/flags/ht.png
ADDED
Binary file
|
img/flags/hu.png
ADDED
Binary file
|
img/flags/id.png
ADDED
Binary file
|
img/flags/ie.png
ADDED
Binary file
|
img/flags/il.png
ADDED
Binary file
|
img/flags/in.png
ADDED
Binary file
|
img/flags/io.png
ADDED
Binary file
|
img/flags/iq.png
ADDED
Binary file
|
img/flags/ir.png
ADDED
Binary file
|
img/flags/is.png
ADDED
Binary file
|
img/flags/it.png
ADDED
Binary file
|
img/flags/jm.png
ADDED
Binary file
|
img/flags/jo.png
ADDED
Binary file
|
img/flags/jp.png
ADDED
Binary file
|
img/flags/ke.png
ADDED
Binary file
|
img/flags/kg.png
ADDED
Binary file
|
img/flags/kh.png
ADDED
Binary file
|
img/flags/ki.png
ADDED
Binary file
|
img/flags/km.png
ADDED
Binary file
|
img/flags/kn.png
ADDED
Binary file
|
img/flags/kp.png
ADDED
Binary file
|
img/flags/kr.png
ADDED
Binary file
|
img/flags/kw.png
ADDED
Binary file
|
img/flags/ky.png
ADDED
Binary file
|
img/flags/kz.png
ADDED
Binary file
|
img/flags/la.png
ADDED
Binary file
|
img/flags/lb.png
ADDED
Binary file
|
img/flags/lc.png
ADDED
Binary file
|
img/flags/li.png
ADDED
Binary file
|
img/flags/lk.png
ADDED
Binary file
|
img/flags/lr.png
ADDED
Binary file
|
img/flags/ls.png
ADDED
Binary file
|
img/flags/lt.png
ADDED
Binary file
|
img/flags/lu.png
ADDED
Binary file
|
img/flags/lv.png
ADDED
Binary file
|
img/flags/ly.png
ADDED
Binary file
|
img/flags/ma.png
ADDED
Binary file
|
img/flags/mc.png
ADDED
Binary file
|
img/flags/md.png
ADDED
Binary file
|
img/flags/me.png
ADDED
Binary file
|
img/flags/mg.png
ADDED
Binary file
|
img/flags/mh.png
ADDED
Binary file
|
img/flags/mk.png
ADDED
Binary file
|
img/flags/ml.png
ADDED
Binary file
|
img/flags/mm.png
ADDED
Binary file
|
img/flags/mn.png
ADDED
Binary file
|
img/flags/mo.png
ADDED
Binary file
|
img/flags/mp.png
ADDED
Binary file
|
img/flags/mq.png
ADDED
Binary file
|
img/flags/mr.png
ADDED
Binary file
|
img/flags/ms.png
ADDED
Binary file
|
img/flags/mt.png
ADDED
Binary file
|
img/flags/mu.png
ADDED
Binary file
|
img/flags/mv.png
ADDED
Binary file
|
img/flags/mw.png
ADDED
Binary file
|
img/flags/mx.png
ADDED
Binary file
|
img/flags/my.png
ADDED
Binary file
|
img/flags/mz.png
ADDED
Binary file
|
img/flags/na.png
ADDED
Binary file
|
img/flags/nc.png
ADDED
Binary file
|
img/flags/ne.png
ADDED
Binary file
|
img/flags/nf.png
ADDED
Binary file
|
img/flags/ng.png
ADDED
Binary file
|
img/flags/ni.png
ADDED
Binary file
|
img/flags/nl.png
ADDED
Binary file
|
img/flags/no.png
ADDED
Binary file
|
img/flags/np.png
ADDED
Binary file
|
img/flags/nr.png
ADDED
Binary file
|
img/flags/nu.png
ADDED
Binary file
|
img/flags/nz.png
ADDED
Binary file
|
img/flags/om.png
ADDED
Binary file
|
img/flags/pa.png
ADDED
Binary file
|
img/flags/pe.png
ADDED
Binary file
|
img/flags/pf.png
ADDED
Binary file
|
img/flags/pg.png
ADDED
Binary file
|
img/flags/ph.png
ADDED
Binary file
|
img/flags/pk.png
ADDED
Binary file
|
img/flags/pl.png
ADDED
Binary file
|
img/flags/pm.png
ADDED
Binary file
|
img/flags/pn.png
ADDED
Binary file
|
img/flags/pr.png
ADDED
Binary file
|
img/flags/ps.png
ADDED
Binary file
|
img/flags/pt.png
ADDED
Binary file
|
img/flags/pw.png
ADDED
Binary file
|
img/flags/py.png
ADDED
Binary file
|
img/flags/qa.png
ADDED
Binary file
|
img/flags/re.png
ADDED
Binary file
|
img/flags/ro.png
ADDED
Binary file
|
img/flags/rs.png
ADDED
Binary file
|
img/flags/ru.png
ADDED
Binary file
|
img/flags/rw.png
ADDED
Binary file
|
img/flags/sa.png
ADDED
Binary file
|
img/flags/sb.png
ADDED
Binary file
|
img/flags/sc.png
ADDED
Binary file
|
img/flags/scotland.png
ADDED
Binary file
|
img/flags/sd.png
ADDED
Binary file
|
img/flags/se.png
ADDED
Binary file
|
img/flags/sg.png
ADDED
Binary file
|
img/flags/sh.png
ADDED
Binary file
|
img/flags/si.png
ADDED
Binary file
|
img/flags/sj.png
ADDED
Binary file
|
img/flags/sk.png
ADDED
Binary file
|
img/flags/sl.png
ADDED
Binary file
|
img/flags/sm.png
ADDED
Binary file
|
img/flags/sn.png
ADDED
Binary file
|
img/flags/so.png
ADDED
Binary file
|
img/flags/sr.png
ADDED
Binary file
|
img/flags/st.png
ADDED
Binary file
|
img/flags/sv.png
ADDED
Binary file
|
img/flags/sy.png
ADDED
Binary file
|
img/flags/sz.png
ADDED
Binary file
|
img/flags/tc.png
ADDED
Binary file
|
img/flags/td.png
ADDED
Binary file
|
img/flags/tf.png
ADDED
Binary file
|
img/flags/tg.png
ADDED
Binary file
|
img/flags/th.png
ADDED
Binary file
|
img/flags/tj.png
ADDED
Binary file
|
img/flags/tk.png
ADDED
Binary file
|
img/flags/tl.png
ADDED
Binary file
|
img/flags/tm.png
ADDED
Binary file
|
img/flags/tn.png
ADDED
Binary file
|
img/flags/to.png
ADDED
Binary file
|
img/flags/tr.png
ADDED
Binary file
|
img/flags/tt.png
ADDED
Binary file
|
img/flags/tv.png
ADDED
Binary file
|
img/flags/tw.png
ADDED
Binary file
|
img/flags/tz.png
ADDED
Binary file
|
img/flags/ua.png
ADDED
Binary file
|
img/flags/ug.png
ADDED
Binary file
|
img/flags/uk.png
ADDED
Binary file
|
img/flags/um.png
ADDED
Binary file
|
img/flags/us.png
ADDED
Binary file
|
img/flags/uy.png
ADDED
Binary file
|
img/flags/uz.png
ADDED
Binary file
|
img/flags/va.png
ADDED
Binary file
|
img/flags/vc.png
ADDED
Binary file
|
img/flags/ve.png
ADDED
Binary file
|
img/flags/vg.png
ADDED
Binary file
|
img/flags/vi.png
ADDED
Binary file
|
img/flags/vn.png
ADDED
Binary file
|
img/flags/vu.png
ADDED
Binary file
|
img/flags/wales.png
ADDED
Binary file
|
img/flags/wf.png
ADDED
Binary file
|
img/flags/ws.png
ADDED
Binary file
|
img/flags/ye.png
ADDED
Binary file
|
img/flags/yt.png
ADDED
Binary file
|
img/flags/za.png
ADDED
Binary file
|
img/flags/zm.png
ADDED
Binary file
|
img/flags/zw.png
ADDED
Binary file
|
img/icon_favourites.gif
ADDED
Binary file
|
img/icon_get_world.gif
ADDED
Binary file
|
img/icon_get_worldBN.gif
ADDED
Binary file
|
img/icon_settings.gif
ADDED
Binary file
|
img/icon_settingsBN.gif
ADDED
Binary file
|
img/list-bg-gold.png
ADDED
Binary file
|
img/list-bg.png
ADDED
Binary file
|
img/list-bg2.png
ADDED
Binary file
|
img/list-bg3.png
ADDED
Binary file
|
img/loading.gif
ADDED
Binary file
|
img/loadingAnimation.gif
ADDED
Binary file
|
img/page_delete.gif
ADDED
Binary file
|
img/page_favourites.gif
ADDED
Binary file
|
img/sum-bg.png
ADDED
Binary file
|
img/tab.png
ADDED
Binary file
|
js/jquery.js
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/*
|
2 |
+
* jQuery 1.2.2 - New Wave Javascript
|
3 |
+
*
|
4 |
+
* Copyright (c) 2007 John Resig (jquery.com)
|
5 |
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6 |
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7 |
+
*
|
8 |
+
* $Date: 2008-01-14 17:56:07 -0500 (Mon, 14 Jan 2008) $
|
9 |
+
* $Rev: 4454 $
|
10 |
+
*/
|
11 |
+
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.19)L w=1e.19;L E=1e.19=J(a,b){K 1D E.2m.4Y(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1i=E.2m={4Y:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1v d=="25"){L c=u.39(d);7(c&&(c[1]||!b)){7(c[1])d=E.5c([c[1]],b);N{L a=T.5N(c[3]);7(a)7(a.2s!=c[3])K E().2r(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1D E(b).2r(d)}N 7(E.1q(d))K 1D E(T)[E.1i.21?"21":"43"](d);K 6.6G(d.1n==1N&&d||(d.5j||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2H(d)||[d])},5j:"1.2.2",82:J(){K 6.M},M:0,22:J(a){K a==10?E.2H(6):6[a]},2E:J(b){L a=E(b);a.56=6;K a},6G:J(a){6.M=0;1N.2m.1h.1j(6,a);K 6},V:J(a,b){K E.V(6,a,b)},5E:J(b){L a=-1;6.V(J(i){7(6==b)a=i});K a},1K:J(c,a,b){L d=c;7(c.1n==4d)7(a==10)K 6.M&&E[b||"1K"](6[0],c)||10;N{d={};d[c]=a}K 6.V(J(i){P(c 1r d)E.1K(b?6.Y:6,c,E.1l(6,d[c],b,i,c))})},1m:J(b,a){7((b==\'29\'||b==\'1P\')&&2M(a)<0)a=10;K 6.1K(b,a,"2q")},1t:J(b){7(1v b!="4D"&&b!=W)K 6.4B().3t((6[0]&&6[0].2u||T).5v(b));L a="";E.V(b||6,J(){E.V(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6M:E.1i.1t([6])})});K a},5r:J(b){7(6[0])E(b,6[0].2u).5J().3n(6[0]).2a(J(){L a=6;2e(a.1B)a=a.1B;K a}).3t(6);K 6},8t:J(a){K 6.V(J(){E(6).6C().5r(a)})},8m:J(a){K 6.V(J(){E(6).5r(a)})},3t:J(){K 6.3P(1a,R,S,J(a){7(6.15==1)6.3k(a)})},6s:J(){K 6.3P(1a,R,R,J(a){7(6.15==1)6.3n(a,6.1B)})},6o:J(){K 6.3P(1a,S,S,J(a){6.1b.3n(a,6)})},5a:J(){K 6.3P(1a,S,R,J(a){6.1b.3n(a,6.2J)})},3h:J(){K 6.56||E([])},2r:J(b){L c=E.2a(6,J(a){K E.2r(b,a)});K 6.2E(/[^+>] [^+>]/.17(b)||b.1g("..")>-1?E.57(c):c)},5J:J(e){L f=6.2a(J(){7(E.14.1d&&!E.3W(6)){L a=6.6c(R),5u=T.2R("1u"),4T=T.2R("1u");5u.3k(a);4T.38=5u.38;K 4T.1B}N K 6.6c(R)});L d=f.2r("*").4R().V(J(){7(6[F]!=10)6[F]=W});7(e===R)6.2r("*").4R().V(J(i){7(6.15==3)K;L c=E.Q(6,"2N");P(L a 1r c)P(L b 1r c[a])E.16.1c(d[i],a,c[a][b],c[a][b].Q)});K f},1F:J(b){K 6.2E(E.1q(b)&&E.3x(6,J(a,i){K b.1O(a,i)})||E.3d(b,6))},4I:J(b){7(b.1n==4d)7(G.17(b))K 6.2E(E.3d(b,6,R));N b=E.3d(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1F(J(){K a?E.35(6,b)<0:6!=b})},1c:J(a){K!a?6:6.2E(E.34(6.22(),a.1n==4d?E(a).22():a.M!=10&&(!a.12||E.12(a,"3i"))?a:[a]))},3K:J(a){K a?E.3d(a,6).M>0:S},7g:J(a){K 6.3K("."+a)},5P:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2y")){L e=c.44,5L=[],11=c.11,30=c.U=="2y-30";7(e<0)K W;P(L i=30?e:0,2b=30?e+1:11.M;i<2b;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9s.1C.9o?d.1t:d.1C;7(30)K b;5L.1h(b)}}K 5L}N K(6[0].1C||"").1p(/\\r/g,"")}K 10}K 6.V(J(){7(6.15!=1)K;7(b.1n==1N&&/5w|5y/.17(6.U))6.3o=(E.35(6.1C,b)>=0||E.35(6.37,b)>=0);N 7(E.12(6,"2y")){L a=b.1n==1N?b:[b];E("90",6).V(J(){6.2p=(E.35(6.1C,a)>=0||E.35(6.1t,a)>=0)});7(!a.M)6.44=-1}N 6.1C=b})},3q:J(a){K a==10?(6.M?6[0].38:W):6.4B().3t(a)},6P:J(a){K 6.5a(a).1Y()},6N:J(i){K 6.2V(i,i+1)},2V:J(){K 6.2E(1N.2m.2V.1j(6,1a))},2a:J(b){K 6.2E(E.2a(6,J(a,i){K b.1O(a,i,a)}))},4R:J(){K 6.1c(6.56)},3P:J(g,f,h,d){L e=6.M>1,3m;K 6.V(J(){7(!3m){3m=E.5c(g,6.2u);7(h)3m.8I()}L b=6;7(f&&E.12(6,"1V")&&E.12(3m[0],"4x"))b=6.3V("1S")[0]||6.3k(6.2u.2R("1S"));L c=E([]);E.V(3m,J(){L a=e?E(6).5J(R)[0]:6;7(E.12(a,"1o")){c=c.1c(a)}N{7(a.15==1)c=c.1c(E("1o",a).1Y());d.1O(b,a)}});c.V(6D)})}};E.2m.4Y.2m=E.2m;J 6D(i,a){7(a.3R)E.3Q({1f:a.3R,3l:S,1G:"1o"});N E.5l(a.1t||a.6A||a.38||"");7(a.1b)a.1b.2X(a)}E.1s=E.1i.1s=J(){L b=1a[0]||{},i=1,M=1a.M,5i=S,11;7(b.1n==8f){5i=b;b=1a[1]||{};i=2}7(1v b!="4D"&&1v b!="J")b={};7(M==1){b=6;i=0}P(;i<M;i++)7((11=1a[i])!=W)P(L a 1r 11){7(b===11[a])6z;7(5i&&11[a]&&1v 11[a]=="4D"&&b[a]&&!11[a].15)b[a]=E.1s(b[a],11[a]);N 7(11[a]!=10)b[a]=11[a]}K b};L F="19"+(1D 3O()).3N(),6y=0,5e={};L H=/z-?5E|89-?87|1y|6q|85-?1P/i;E.1s({81:J(a){1e.$=D;7(a)1e.19=w;K E},1q:J(a){K!!a&&1v a!="25"&&!a.12&&a.1n!=1N&&/J/i.17(a+"")},3W:J(a){K a.1I&&!a.1k||a.28&&a.2u&&!a.2u.1k},5l:J(a){a=E.3f(a);7(a){L b=T.3V("6k")[0]||T.1I,1o=T.2R("1o");1o.U="1t/4l";7(E.14.1d)1o.1t=a;N 1o.3k(T.5v(a));b.3k(1o);b.2X(1o)}},12:J(b,a){K b.12&&b.12.2F()==a.2F()},1Q:{},Q:J(c,d,b){c=c==1e?5e:c;L a=c[F];7(!a)a=c[F]=++6y;7(d&&!E.1Q[a])E.1Q[a]={};7(b!=10)E.1Q[a][d]=b;K d?E.1Q[a][d]:a},3H:J(c,b){c=c==1e?5e:c;L a=c[F];7(b){7(E.1Q[a]){2T E.1Q[a][b];b="";P(b 1r E.1Q[a])1T;7(!b)E.3H(c)}}N{1R{2T c[F]}1W(e){7(c.55)c.55(F)}2T E.1Q[a]}},V:J(c,a,b){7(b){7(c.M==10){P(L d 1r c)7(a.1j(c[d],b)===S)1T}N P(L i=0,M=c.M;i<M;i++)7(a.1j(c[i],b)===S)1T}N{7(c.M==10){P(L d 1r c)7(a.1O(c[d],d,c[d])===S)1T}N P(L i=0,M=c.M,1C=c[0];i<M&&a.1O(1C,i,1C)!==S;1C=c[++i]){}}K c},1l:J(b,a,c,i,d){7(E.1q(a))a=a.1O(b,i);K a&&a.1n==53&&c=="2q"&&!H.17(d)?a+"2P":a},1w:{1c:J(c,b){E.V((b||"").2d(/\\s+/),J(i,a){7(c.15==1&&!E.1w.3E(c.1w,a))c.1w+=(c.1w?" ":"")+a})},1Y:J(c,b){7(c.15==1)c.1w=b!=10?E.3x(c.1w.2d(/\\s+/),J(a){K!E.1w.3E(b,a)}).6g(" "):""},3E:J(b,a){K E.35(a,(b.1w||b).3D().2d(/\\s+/))>-1}},6e:J(b,c,a){L e={};P(L d 1r c){e[d]=b.Y[d];b.Y[d]=c[d]}a.1O(b);P(L d 1r c)b.Y[d]=e[d]},1m:J(d,e,c){7(e=="29"||e=="1P"){L b,3S={3C:"4Z",4X:"23",18:"3u"},3r=e=="29"?["7P","7M"]:["7L","7K"];J 4S(){b=e=="29"?d.7J:d.7I;L a=0,3a=0;E.V(3r,J(){a+=2M(E.2q(d,"7H"+6,R))||0;3a+=2M(E.2q(d,"3a"+6+"62",R))||0});b-=1Z.7E(a+3a)}7(E(d).3K(":4b"))4S();N E.6e(d,3S,4S);K 1Z.2b(0,b)}K E.2q(d,e,c)},2q:J(e,k,j){L d;J 3y(b){7(!E.14.26)K S;L a=T.4a.4L(b,W);K!a||a.4K("3y")==""}7(k=="1y"&&E.14.1d){d=E.1K(e.Y,"1y");K d==""?"1":d}7(E.14.2B&&k=="18"){L c=e.Y.18;e.Y.18="3u";e.Y.18=c}7(k.1E(/4c/i))k=y;7(!j&&e.Y&&e.Y[k])d=e.Y[k];N 7(T.4a&&T.4a.4L){7(k.1E(/4c/i))k="4c";k=k.1p(/([A-Z])/g,"-$1").2w();L h=T.4a.4L(e,W);7(h&&!3y(e))d=h.4K(k);N{L f=[],2L=[];P(L a=e;a&&3y(a);a=a.1b)2L.4U(a);P(L i=0;i<2L.M;i++)7(3y(2L[i])){f[i]=2L[i].Y.18;2L[i].Y.18="3u"}d=k=="18"&&f[2L.M-1]!=W?"2D":(h&&h.4K(k))||"";P(L i=0;i<f.M;i++)7(f[i]!=W)2L[i].Y.18=f[i]}7(k=="1y"&&d=="")d="1"}N 7(e.4j){L g=k.1p(/\\-(\\w)/g,J(a,b){K b.2F()});d=e.4j[k]||e.4j[g];7(!/^\\d+(2P)?$/i.17(d)&&/^\\d/.17(d)){L l=e.Y.2c,3A=e.3A.2c;e.3A.2c=e.4j.2c;e.Y.2c=d||0;d=e.Y.7l+"2P";e.Y.2c=l;e.3A.2c=3A}}K d},5c:J(l,h){L k=[];h=h||T;7(1v h.2R==\'10\')h=h.2u||h[0]&&h[0].2u||T;E.V(l,J(i,d){7(!d)K;7(d.1n==53)d=d.3D();7(1v d=="25"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,J(b,a,c){K c.1E(/^(7k|7h|5Q|7f|48|5O|a3|3v|9Y|9W|9T)$/i)?b:a+"></"+c+">"});L f=E.3f(d).2w(),1u=h.2R("1u");L e=!f.1g("<9R")&&[1,"<2y 78=\'78\'>","</2y>"]||!f.1g("<9O")&&[1,"<77>","</77>"]||f.1E(/^<(9K|1S|9I|9F|9A)/)&&[1,"<1V>","</1V>"]||!f.1g("<4x")&&[2,"<1V><1S>","</1S></1V>"]||(!f.1g("<9y")||!f.1g("<9v"))&&[3,"<1V><1S><4x>","</4x></1S></1V>"]||!f.1g("<5Q")&&[2,"<1V><1S></1S><76>","</76></1V>"]||E.14.1d&&[1,"1u<1u>","</1u>"]||[0,"",""];1u.38=e[1]+d+e[2];2e(e[0]--)1u=1u.5D;7(E.14.1d){L g=!f.1g("<1V")&&f.1g("<1S")<0?1u.1B&&1u.1B.3p:e[1]=="<1V>"&&f.1g("<1S")<0?1u.3p:[];P(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1S")&&!g[j].3p.M)g[j].1b.2X(g[j]);7(/^\\s/.17(d))1u.3n(h.5v(d.1E(/^\\s*/)[0]),1u.1B)}d=E.2H(1u.3p)}7(d.M===0&&(!E.12(d,"3i")&&!E.12(d,"2y")))K;7(d[0]==10||E.12(d,"3i")||d.11)k.1h(d);N k=E.34(k,d)});K k},1K:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3W(d)?{}:E.3S;7(e=="2p"&&E.14.26)d.1b.44;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="Y")K E.1K(d.Y,"9r",c);N 7(c==10&&E.14.1d&&E.12(d,"3i")&&(e=="9q"||e=="9p"))K d.9n(e).6M;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"48")&&d.1b)6Z"U 9i 9g\'t 9b 9a";d.99(e,""+c)}7(E.14.1d&&/6T|3R/.17(e)&&!E.3W(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1y"&&E.14.1d){7(c!=10){d.6q=1;d.1F=(d.1F||"").1p(/6W\\([^)]*\\)/,"")+(2M(c).3D()=="93"?"":"6W(1y="+c*6S+")")}K d.1F&&d.1F.1g("1y=")>=0?(2M(d.1F.1E(/1y=([^)]*)/)[1])/6S).3D():""}e=e.1p(/-([a-z])/92,J(a,b){K b.2F()});7(c!=10)d[e]=c;K d[e]}},3f:J(a){K(a||"").1p(/^\\s+|\\s+$/g,"")},2H:J(b){L a=[];7(1v b!="91")P(L i=0,M=b.M;i<M;i++)a.1h(b[i]);N a=b.2V(0);K a},35:J(b,a){P(L i=0,M=a.M;i<M;i++)7(a[i]==b)K i;K-1},34:J(a,b){7(E.14.1d){P(L i=0;b[i];i++)7(b[i].15!=8)a.1h(b[i])}N P(L i=0;b[i];i++)a.1h(b[i]);K a},57:J(a){L c=[],2j={};1R{P(L i=0,M=a.M;i<M;i++){L b=E.Q(a[i]);7(!2j[b]){2j[b]=R;c.1h(a[i])}}}1W(e){c=a}K c},3x:J(c,a,d){7(1v a=="25")a=4A("S||J(a,i){K "+a+"}");L b=[];P(L i=0,M=c.M;i<M;i++)7(!d&&a(c[i],i)||d&&!a(c[i],i))b.1h(c[i]);K b},2a:J(d,a){L c=[];P(L i=0,M=d.M;i<M;i++){L b=a(d[i],i);7(b!==W&&b!=10){7(b.1n!=1N)b=[b];c=c.6Q(b)}}K c}});L v=8X.8V.2w();E.14={5n:(v.1E(/.+(?:8R|8Q|8P|8O)[\\/: ]([\\d.]+)/)||[])[1],26:/6L/.17(v),2B:/2B/.17(v),1d:/1d/.17(v)&&!/2B/.17(v),3X:/3X/.17(v)&&!/(8M|6L)/.17(v)};L y=E.14.1d?"6K":"6J";E.1s({8J:!E.14.1d||T.6I=="6H",3S:{"P":"8G","8E":"1w","4c":y,6J:y,6K:y,38:"38",1w:"1w",1C:"1C",2W:"2W",3o:"3o",8C:"8B",2p:"2p",8A:"8z",44:"44",6F:"6F",28:"28",12:"12"}});E.V({6E:"O.1b",8y:"19.4w(O,\'1b\')",8x:"19.31(O,2,\'2J\')",8w:"19.31(O,2,\'4v\')",8v:"19.4w(O,\'2J\')",8u:"19.4w(O,\'4v\')",8s:"19.5m(O.1b.1B,O)",8r:"19.5m(O.1B)",6C:"19.12(O,\'8q\')?O.8p||O.8o.T:19.2H(O.3p)"},J(c,d){d=4A("S||J(O){K "+d+"}");E.1i[c]=J(b){L a=E.2a(6,d);7(b&&1v b=="25")a=E.3d(b,a);K 6.2E(E.57(a))}});E.V({6B:"3t",8n:"6s",3n:"6o",8l:"5a",8k:"6P"},J(c,b){E.1i[c]=J(){L a=1a;K 6.V(J(){P(L i=0,M=a.M;i<M;i++)E(a[i])[b](6)})}});E.V({8j:J(a){E.1K(6,a,"");7(6.15==1)6.55(a)},8i:J(a){E.1w.1c(6,a)},8h:J(a){E.1w.1Y(6,a)},8g:J(a){E.1w[E.1w.3E(6,a)?"1Y":"1c"](6,a)},1Y:J(a){7(!a||E.1F(a,[6]).r.M){E("*",6).1c(6).V(J(){E.16.1Y(6);E.3H(6)});7(6.1b)6.1b.2X(6)}},4B:J(){E(">*",6).1Y();2e(6.1B)6.2X(6.1B)}},J(a,b){E.1i[a]=J(){K 6.V(b,1a)}});E.V(["8e","62"],J(i,c){L b=c.2w();E.1i[b]=J(a){K 6[0]==1e?E.14.2B&&T.1k["5h"+c]||E.14.26&&1e["8d"+c]||T.6I=="6H"&&T.1I["5h"+c]||T.1k["5h"+c]:6[0]==T?1Z.2b(1Z.2b(T.1k["5g"+c],T.1I["5g"+c]),1Z.2b(T.1k["5f"+c],T.1I["5f"+c])):a==10?(6.M?E.1m(6[0],b):W):6.1m(b,a.1n==4d?a:a+"2P")}});L C=E.14.26&&4t(E.14.5n)<8c?"(?:[\\\\w*4s-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4s-]|\\\\\\\\.)",6w=1D 4r("^>\\\\s*("+C+"+)"),6v=1D 4r("^("+C+"+)(#)("+C+"+)"),6u=1D 4r("^([#.]?)("+C+"*)");E.1s({5d:{"":"m[2]==\'*\'||19.12(a,m[2])","#":"a.4z(\'2s\')==m[2]",":":{88:"i<m[3]-0",86:"i>m[3]-0",31:"m[3]-0==i",6N:"m[3]-0==i",3j:"i==0",3M:"i==r.M-1",6r:"i%2==0",6p:"i%2","3j-4m":"a.1b.3V(\'*\')[0]==a","3M-4m":"19.31(a.1b.5D,1,\'4v\')==a","84-4m":"!19.31(a.1b.5D,2,\'4v\')",6E:"a.1B",4B:"!a.1B",83:"(a.6A||a.80||19(a).1t()||\'\').1g(m[3])>=0",4b:\'"23"!=a.U&&19.1m(a,"18")!="2D"&&19.1m(a,"4X")!="23"\',23:\'"23"==a.U||19.1m(a,"18")=="2D"||19.1m(a,"4X")=="23"\',7Y:"!a.2W",2W:"a.2W",3o:"a.3o",2p:"a.2p||19.1K(a,\'2p\')",1t:"\'1t\'==a.U",5w:"\'5w\'==a.U",5y:"\'5y\'==a.U",5b:"\'5b\'==a.U",3J:"\'3J\'==a.U",59:"\'59\'==a.U",6n:"\'6n\'==a.U",6m:"\'6m\'==a.U",2G:\'"2G"==a.U||19.12(a,"2G")\',48:"/48|2y|6l|2G/i.17(a.12)",3E:"19.2r(m[3],a).M",7X:"/h\\\\d/i.17(a.12)",7W:"19.3x(19.3I,J(1i){K a==1i.O;}).M"}},6j:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1D 4r("^([:.#]*)("+C+"+)")],3d:J(a,c,b){L d,2o=[];2e(a&&a!=d){d=a;L f=E.1F(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2o=b?c=f.r:E.34(2o,f.r)}K 2o},2r:J(t,p){7(1v t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2j=[],3M,12;2e(t&&3M!=t){L r=[];3M=t;t=E.3f(t);L o=S;L g=6w;L m=g.39(t);7(m){12=m[1].2F();P(L i=0;d[i];i++)P(L c=d[i].1B;c;c=c.2J)7(c.15==1&&(12=="*"||c.12.2F()==12))r.1h(c);d=r;t=t.1p(g,"");7(t.1g(" ")==0)6z;o=R}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.39(t))!=W){r=[];L l={};12=m[2].2F();m=m[1];P(L j=0,3g=d.M;j<3g;j++){L n=m=="~"||m=="+"?d[j].2J:d[j].1B;P(;n;n=n.2J)7(n.15==1){L h=E.Q(n);7(m=="~"&&l[h])1T;7(!12||n.12.2F()==12){7(m=="~")l[h]=R;r.1h(n)}7(m=="+")1T}}d=r;t=E.3f(t.1p(g,""));o=R}}7(t&&!o){7(!t.1g(",")){7(p==d[0])d.4k();2j=E.34(2j,d);r=d=[p];t=" "+t.6i(1,t.M)}N{L k=6v;L m=k.39(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6u;m=k.39(t)}m[2]=m[2].1p(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5N&&!E.3W(f)){L q=f.5N(m[2]);7((E.14.1d||E.14.2B)&&q&&1v q.2s=="25"&&q.2s!=m[2])q=E(\'[@2s="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{P(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2w()=="4D")a="3v";r=E.34(r,d[i].3V(a))}7(m[1]==".")r=E.58(r,m[2]);7(m[1]=="#"){L e=[];P(L i=0;r[i];i++)7(r[i].4z("2s")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}7(t){L b=E.1F(t,r);d=r=b.r;t=E.3f(b.t)}}7(t)d=[];7(d&&p==d[0])d.4k();2j=E.34(2j,d);K 2j},58:J(r,m,a){m=" "+m+" ";L c=[];P(L i=0;r[i];i++){L b=(" "+r[i].1w+" ").1g(m)>=0;7(!a&&b||a&&!b)c.1h(r[i])}K c},1F:J(t,r,h){L d;2e(t&&t!=d){d=t;L p=E.6j,m;P(L i=0;p[i];i++){m=p[i].39(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1p(/\\\\/g,"");1T}}7(!m)1T;7(m[1]==":"&&m[2]=="4I")r=G.17(m[3])?E.1F(m[3],r,R).r:E(r).4I(m[3]);N 7(m[1]==".")r=E.58(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];P(L i=0,3g=r.M;i<3g;i++){L a=r[i],z=a[E.3S[m[2]]||m[2]];7(z==W||/6T|3R|2p/.17(m[2]))z=E.1K(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1g(m[5])||U=="$="&&z.6i(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1g(m[5])>=0)^h)g.1h(a)}r=g}N 7(m[1]==":"&&m[2]=="31-4m"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.39(m[3]=="6r"&&"2n"||m[3]=="6p"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;P(L i=0,3g=r.M;i<3g;i++){L j=r[i],1b=j.1b,2s=E.Q(1b);7(!e[2s]){L c=1;P(L n=1b.1B;n;n=n.2J)7(n.15==1)n.4p=c++;e[2s]=R}L b=S;7(3j==0){7(j.4p==d)b=R}N 7((j.4p-d)%3j==0&&(j.4p-d)/3j>=0)b=R;7(b^h)g.1h(j)}r=g}N{L f=E.5d[m[1]];7(1v f!="25")f=E.5d[m[1]][m[2]];f=4A("S||J(a,i){K "+f+"}");r=E.3x(r,f,h)}}K{r:r,t:t}},4w:J(b,c){L d=[];L a=b[c];2e(a&&a!=T){7(a.15==1)d.1h(a);a=a[c]}K d},31:J(a,e,c,b){e=e||1;L d=0;P(;a;a=a[c])7(a.15==1&&++d==e)1T;K a},5m:J(n,a){L r=[];P(;n;n=n.2J){7(n.15==1&&(!a||n!=a))r.1h(n)}K r}});E.16={1c:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.54!=10)f=1e;7(!g.2A)g.2A=6.2A++;7(e!=10){L h=g;g=J(){K h.1j(6,1a)};g.Q=e;g.2A=h.2A}L j=E.Q(f,"2N")||E.Q(f,"2N",{}),1x=E.Q(f,"1x")||E.Q(f,"1x",J(){L a;7(1v E=="10"||E.16.52)K a;a=E.16.1x.1j(1a.3G.O,1a);K a});1x.O=f;E.V(i.2d(/\\s+/),J(c,b){L a=b.2d(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2l[b]||E.16.2l[b].4i.1O(f)===S){7(f.3F)f.3F(b,1x,S);N 7(f.6h)f.6h("4h"+b,1x)}}d[g.2A]=g;E.16.2g[b]=R});f=W},2A:1,2g:{},1Y:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.Q(e,"2N"),2f,5E;7(i){7(h==10)P(L g 1r i)6.1Y(e,g);N{7(h.U){f=h.2k;h=h.U}E.V(h.2d(/\\s+/),J(b,a){L c=a.2d(".");a=c[0];7(i[a]){7(f)2T i[a][f.2A];N P(f 1r i[a])7(!c[1]||i[a][f].U==c[1])2T i[a][f];P(2f 1r i[a])1T;7(!2f){7(!E.16.2l[a]||E.16.2l[a].4g.1O(e)===S){7(e.6f)e.6f(a,E.Q(e,"1x"),S);N 7(e.6d)e.6d("4h"+a,E.Q(e,"1x"))}2f=W;2T i[a]}}})}P(2f 1r i)1T;7(!2f){L d=E.Q(e,"1x");7(d)d.O=W;E.3H(e,"2N");E.3H(e,"1x")}}},1U:J(f,b,c,d,g){b=E.2H(b||[]);7(!c){7(6.2g[f])E("*").1c([1e,T]).1U(f,b)}N{7(c.15==3||c.15==8)K 10;L a,2f,1i=E.1q(c[f]||W),16=!b[0]||!b[0].32;7(16)b.4U(6.51({U:f,2K:c}));b[0].U=f;7(E.1q(E.Q(c,"1x")))a=E.Q(c,"1x").1j(c,b);7(!1i&&c["4h"+f]&&c["4h"+f].1j(c,b)===S)a=S;7(16)b.4k();7(g&&E.1q(g)){2f=g.1j(c,a==W?b:b.6Q(a));7(2f!==10)a=2f}7(1i&&d!==S&&a!==S&&!(E.12(c,\'a\')&&f=="50")){6.52=R;1R{c[f]()}1W(e){}}6.52=S}K a},1x:J(c){L a;c=E.16.51(c||1e.16||{});L b=c.U.2d(".");c.U=b[0];L f=E.Q(6,"2N")&&E.Q(6,"2N")[c.U],3B=1N.2m.2V.1O(1a,1);3B.4U(c);P(L j 1r f){L d=f[j];3B[0].2k=d;3B[0].Q=d.Q;7(!b[1]||d.U==b[1]){L e=d.1j(6,3B);7(a!==S)a=e;7(e===S){c.32();c.41()}}}7(E.14.1d)c.2K=c.32=c.41=c.2k=c.Q=W;K a},51:J(c){L a=c;c=E.1s({},a);c.32=J(){7(a.32)a.32();a.7T=S};c.41=J(){7(a.41)a.41();a.7S=R};7(!c.2K)c.2K=c.7R||T;7(c.2K.15==3)c.2K=a.2K.1b;7(!c.4W&&c.4V)c.4W=c.4V==c.2K?c.7Q:c.4V;7(c.6b==W&&c.6a!=W){L b=T.1I,1k=T.1k;c.6b=c.6a+(b&&b.2i||1k&&1k.2i||0)-(b.68||0);c.7O=c.7N+(b&&b.2x||1k&&1k.2x||0)-(b.67||0)}7(!c.3r&&((c.4f||c.4f===0)?c.4f:c.66))c.3r=c.4f||c.66;7(!c.65&&c.64)c.65=c.64;7(!c.3r&&c.2G)c.3r=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2l:{21:{4i:J(){5A();K},4g:J(){K}},47:{4i:J(){7(E.14.1d)K S;E(6).2z("4Q",E.16.2l.47.2k);K R},4g:J(){7(E.14.1d)K S;E(6).42("4Q",E.16.2l.47.2k);K R},2k:J(a){7(I(a,6))K R;1a[0].U="47";K E.16.1x.1j(6,1a)}},46:{4i:J(){7(E.14.1d)K S;E(6).2z("4P",E.16.2l.46.2k);K R},4g:J(){7(E.14.1d)K S;E(6).42("4P",E.16.2l.46.2k);K R},2k:J(a){7(I(a,6))K R;1a[0].U="46";K E.16.1x.1j(6,1a)}}}};E.1i.1s({2z:J(c,a,b){K c=="4O"?6.30(c,a,b):6.V(J(){E.16.1c(6,c,b||a,b&&a)})},30:J(d,b,c){K 6.V(J(){E.16.1c(6,d,J(a){E(6).42(a);K(c||b).1j(6,1a)},c&&b)})},42:J(a,b){K 6.V(J(){E.16.1Y(6,a,b)})},1U:J(c,a,b){K 6.V(J(){E.16.1U(c,a,6,R,b)})},63:J(c,a,b){7(6[0])K E.16.1U(c,a,6[0],S,b);K 10},2h:J(){L b=1a;K 6.50(J(a){6.4N=0==6.4N?1:0;a.32();K b[6.4N].1j(6,1a)||S})},7F:J(a,b){K 6.2z(\'47\',a).2z(\'46\',b)},21:J(a){5A();7(E.2Q)a.1O(T,E);N E.3w.1h(J(){K a.1O(6,E)});K 6}});E.1s({2Q:S,3w:[],21:J(){7(!E.2Q){E.2Q=R;7(E.3w){E.V(E.3w,J(){6.1j(T)});E.3w=W}E(T).63("21")}}});L x=S;J 5A(){7(x)K;x=R;7(T.3F&&!E.14.2B)T.3F("61",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1R{T.1I.7D("2c")}1W(3e){3z(1a.3G,0);K}E.21()})();7(E.14.2B)T.3F("61",J(){7(E.2Q)K;P(L i=0;i<T.4M.M;i++)7(T.4M[i].2W){3z(1a.3G,0);K}E.21()},S);7(E.14.26){L a;(J(){7(E.2Q)K;7(T.3c!="60"&&T.3c!="1z"){3z(1a.3G,0);K}7(a===10)a=E("Y, 5O[7B=7A]").M;7(T.4M.M!=a){3z(1a.3G,0);K}E.21()})()}E.16.1c(1e,"43",E.21)}E.V(("7z,7y,43,7x,5g,4O,50,7w,"+"7v,7u,7C,4Q,4P,7t,2y,"+"59,7s,7r,7G,3e").2d(","),J(i,b){E.1i[b]=J(a){K a?6.2z(b,a):6.1U(b)}});L I=J(a,c){L b=a.4W;2e(b&&b!=c)1R{b=b.1b}1W(3e){b=c}K b==c};E(1e).2z("4O",J(){E("*").1c(T).42()});E.1i.1s({43:J(g,d,c){7(E.1q(g))K 6.2z("43",g);L e=g.1g(" ");7(e>=0){L i=g.2V(e,g.M);g=g.2V(0,e)}c=c||J(){};L f="4J";7(d)7(E.1q(d)){c=d;d=W}N{d=E.3v(d);f="5Z"}L h=6;E.3Q({1f:g,U:f,1G:"3q",Q:d,1z:J(a,b){7(b=="1X"||b=="5Y")h.3q(i?E("<1u/>").3t(a.4e.1p(/<1o(.|\\s)*?\\/1o>/g,"")).2r(i):a.4e);h.V(c,[a.4e,b,a])}});K 6},7q:J(){K E.3v(6.5X())},5X:J(){K 6.2a(J(){K E.12(6,"3i")?E.2H(6.7p):6}).1F(J(){K 6.37&&!6.2W&&(6.3o||/2y|6l/i.17(6.12)||/1t|23|3J/i.17(6.U))}).2a(J(i,c){L b=E(6).5P();K b==W?W:b.1n==1N?E.2a(b,J(a,i){K{37:c.37,1C:a}}):{37:c.37,1C:b}}).22()}});E.V("5W,5V,5U,69,5T,5S".2d(","),J(i,o){E.1i[o]=J(f){K 6.2z(o,f)}});L B=(1D 3O).3N();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=W}K E.3Q({U:"4J",1f:d,Q:b,1X:a,1G:c})},7o:J(b,a){K E.22(b,W,a,"1o")},7n:J(c,b,a){K E.22(c,b,a,"2O")},7m:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3Q({U:"5Z",1f:d,Q:b,1X:a,1G:c})},7Z:J(a){E.1s(E.4H,a)},4H:{2g:R,U:"4J",2U:0,5R:"49/x-7j-3i-7i",6x:R,3l:R,Q:W,6t:W,3J:W,4n:{3L:"49/3L, 1t/3L",3q:"1t/3q",1o:"1t/4l, 49/4l",2O:"49/2O, 1t/4l",1t:"1t/7e",4o:"*/*"}},4q:{},3Q:J(s){L f,2Y=/=\\?(&|$)/g,1A,Q;s=E.1s(R,s,E.1s(R,{},E.4H,s));7(s.Q&&s.6x&&1v s.Q!="25")s.Q=E.3v(s.Q);7(s.1G=="4u"){7(s.U.2w()=="22"){7(!s.1f.1E(2Y))s.1f+=(s.1f.1E(/\\?/)?"&":"?")+(s.4u||"7d")+"=?"}N 7(!s.Q||!s.Q.1E(2Y))s.Q=(s.Q?s.Q+"&":"")+(s.4u||"7d")+"=?";s.1G="2O"}7(s.1G=="2O"&&(s.Q&&s.Q.1E(2Y)||s.1f.1E(2Y))){f="4u"+B++;7(s.Q)s.Q=(s.Q+"").1p(2Y,"="+f+"$1");s.1f=s.1f.1p(2Y,"="+f+"$1");s.1G="1o";1e[f]=J(a){Q=a;1X();1z();1e[f]=10;1R{2T 1e[f]}1W(e){}7(h)h.2X(g)}}7(s.1G=="1o"&&s.1Q==W)s.1Q=S;7(s.1Q===S&&s.U.2w()=="22"){L i=(1D 3O()).3N();L j=s.1f.1p(/(\\?|&)4s=.*?(&|$)/,"$a2="+i+"$2");s.1f=j+((j==s.1f)?(s.1f.1E(/\\?/)?"&":"?")+"4s="+i:"")}7(s.Q&&s.U.2w()=="22"){s.1f+=(s.1f.1E(/\\?/)?"&":"?")+s.Q;s.Q=W}7(s.2g&&!E.5M++)E.16.1U("5W");7((!s.1f.1g("9Z")||!s.1f.1g("//"))&&(s.1G=="1o"||s.1G=="2O")&&s.U.2w()=="22"){L h=T.3V("6k")[0];L g=T.2R("1o");g.3R=s.1f;7(s.7c)g.9X=s.7c;7(!f){L l=S;g.9V=g.9U=J(){7(!l&&(!6.3c||6.3c=="60"||6.3c=="1z")){l=R;1X();1z();h.2X(g)}}}h.3k(g);K 10}L m=S;L k=1e.7a?1D 7a("9S.9Q"):1D 79();k.9P(s.U,s.1f,s.3l,s.6t,s.3J);1R{7(s.Q)k.4G("9N-9M",s.5R);7(s.5I)k.4G("9L-5H-9J",E.4q[s.1f]||"9H, 9G 9E 9B 5G:5G:5G 9z");k.4G("X-9x-9u","79");k.4G("9t",s.1G&&s.4n[s.1G]?s.4n[s.1G]+", */*":s.4n.4o)}1W(e){}7(s.75)s.75(k);7(s.2g)E.16.1U("5S",[k,s]);L c=J(a){7(!m&&k&&(k.3c==4||a=="2U")){m=R;7(d){74(d);d=W}1A=a=="2U"&&"2U"||!E.73(k)&&"3e"||s.5I&&E.72(k,s.1f)&&"5Y"||"1X";7(1A=="1X"){1R{Q=E.71(k,s.1G)}1W(e){1A="5C"}}7(1A=="1X"){L b;1R{b=k.5B("70-5H")}1W(e){}7(s.5I&&b)E.4q[s.1f]=b;7(!f)1X()}N E.5t(s,k,1A);1z();7(s.3l)k=W}};7(s.3l){L d=54(c,13);7(s.2U>0)3z(J(){7(k){k.9m();7(!m)c("2U")}},s.2U)}1R{k.9l(s.Q)}1W(e){E.5t(s,k,W,e)}7(!s.3l)c();J 1X(){7(s.1X)s.1X(Q,1A);7(s.2g)E.16.1U("5T",[k,s])}J 1z(){7(s.1z)s.1z(k,1A);7(s.2g)E.16.1U("5U",[k,s]);7(s.2g&&!--E.5M)E.16.1U("5V")}K k},5t:J(s,a,b,e){7(s.3e)s.3e(a,b,e);7(s.2g)E.16.1U("69",[a,s,e])},5M:0,73:J(r){1R{K!r.1A&&9k.9j=="5b:"||(r.1A>=6Y&&r.1A<9h)||r.1A==6X||r.1A==9e||E.14.26&&r.1A==10}1W(e){}K S},72:J(a,c){1R{L b=a.5B("70-5H");K a.1A==6X||b==E.4q[c]||E.14.26&&a.1A==10}1W(e){}K S},71:J(r,b){L c=r.5B("9d-U");L d=b=="3L"||!b&&c&&c.1g("3L")>=0;L a=d?r.9c:r.4e;7(d&&a.1I.28=="5C")6Z"5C";7(b=="1o")E.5l(a);7(b=="2O")a=4A("("+a+")");K a},3v:J(a){L s=[];7(a.1n==1N||a.5j)E.V(a,J(){s.1h(3s(6.37)+"="+3s(6.1C))});N P(L j 1r a)7(a[j]&&a[j].1n==1N)E.V(a[j],J(){s.1h(3s(j)+"="+3s(6))});N s.1h(3s(j)+"="+3s(a[j]));K s.6g("&").1p(/%20/g,"+")}});E.1i.1s({1J:J(c,b){K c?6.27({1P:"1J",29:"1J",1y:"1J"},c,b):6.1F(":23").V(J(){6.Y.18=6.5x||"";7(E.1m(6,"18")=="2D"){L a=E("<"+6.28+" />").6B("1k");6.Y.18=a.1m("18");7(6.Y.18=="2D")6.Y.18="3u";a.1Y()}}).3h()},1H:J(b,a){K b?6.27({1P:"1H",29:"1H",1y:"1H"},b,a):6.1F(":4b").V(J(){6.5x=6.5x||E.1m(6,"18");6.Y.18="2D"}).3h()},6U:E.1i.2h,2h:J(a,b){K E.1q(a)&&E.1q(b)?6.6U(a,b):a?6.27({1P:"2h",29:"2h",1y:"2h"},a,b):6.V(J(){E(6)[E(6).3K(":23")?"1J":"1H"]()})},98:J(b,a){K 6.27({1P:"1J"},b,a)},97:J(b,a){K 6.27({1P:"1H"},b,a)},96:J(b,a){K 6.27({1P:"2h"},b,a)},95:J(b,a){K 6.27({1y:"1J"},b,a)},94:J(b,a){K 6.27({1y:"1H"},b,a)},9f:J(c,a,b){K 6.27({1y:a},c,b)},27:J(l,k,j,h){L i=E.6V(k,j,h);K 6[i.2S===S?"V":"2S"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3K(":23"),4y=6;P(L p 1r l){7(l[p]=="1H"&&f||l[p]=="1J"&&!f)K E.1q(g.1z)&&g.1z.1j(6);7(p=="1P"||p=="29"){g.18=E.1m(6,"18");g.36=6.Y.36}}7(g.36!=W)6.Y.36="23";g.40=E.1s({},l);E.V(l,J(c,a){L e=1D E.2v(4y,g,c);7(/2h|1J|1H/.17(a))e[a=="2h"?f?"1J":"1H":a](l);N{L b=a.3D().1E(/^([+-]=)?([\\d+-.]+)(.*)$/),24=e.2o(R)||0;7(b){L d=2M(b[2]),2C=b[3]||"2P";7(2C!="2P"){4y.Y[c]=(d||1)+2C;24=((d||1)/e.2o(R))*24;4y.Y[c]=24+2C}7(b[1])d=((b[1]=="-="?-1:1)*d)+24;e.3Z(24,d,2C)}N e.3Z(24,a,"")}});K R})},2S:J(a,b){7(E.1q(a)||(a&&a.1n==1N)){b=a;a="2v"}7(!a||(1v a=="25"&&!b))K A(6[0],a);K 6.V(J(){7(b.1n==1N)A(6,a,b);N{A(6,a).1h(b);7(A(6,a).M==1)b.1j(6)}})},8Z:J(b,c){L a=E.3I;7(b)6.2S([]);6.V(J(){P(L i=a.M-1;i>=0;i--)7(a[i].O==6){7(c)a[i](R);a.6R(i,1)}});7(!c)6.5z();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2v";L q=E.Q(b,c+"2S");7(!q||a)q=E.Q(b,c+"2S",a?E.2H(a):[]);K q};E.1i.5z=J(a){a=a||"2v";K 6.V(J(){L q=A(6,a);q.4k();7(q.M)q[0].1j(6)})};E.1s({6V:J(b,a,c){L d=b&&b.1n==8Y?b:{1z:c||!c&&a||E.1q(b)&&b,2t:b,3Y:c&&a||a&&a.1n!=8W&&a};d.2t=(d.2t&&d.2t.1n==53?d.2t:{9w:8U,8T:6Y}[d.2t])||8S;d.5o=d.1z;d.1z=J(){7(d.2S!==S)E(6).5z();7(E.1q(d.5o))d.5o.1j(6)};K d},3Y:{6O:J(p,n,b,a){K b+a*p},5F:J(p,n,b,a){K((-1Z.9C(p*1Z.9D)/2)+0.5)*a+b}},3I:[],3T:W,2v:J(b,c,a){6.11=c;6.O=b;6.1l=a;7(!c.3U)c.3U={}}});E.2v.2m={4C:J(){7(6.11.33)6.11.33.1j(6.O,[6.2I,6]);(E.2v.33[6.1l]||E.2v.33.4o)(6);7(6.1l=="1P"||6.1l=="29")6.O.Y.18="3u"},2o:J(a){7(6.O[6.1l]!=W&&6.O.Y[6.1l]==W)K 6.O[6.1l];L r=2M(E.1m(6.O,6.1l,a));K r&&r>-8N?r:2M(E.2q(6.O,6.1l))||0},3Z:J(c,b,d){6.5s=(1D 3O()).3N();6.24=c;6.3h=b;6.2C=d||6.2C||"2P";6.2I=6.24;6.4E=6.4F=0;6.4C();L e=6;J t(a){K e.33(a)}t.O=6.O;E.3I.1h(t);7(E.3T==W){E.3T=54(J(){L a=E.3I;P(L i=0;i<a.M;i++)7(!a[i]())a.6R(i--,1);7(!a.M){74(E.3T);E.3T=W}},13)}},1J:J(){6.11.3U[6.1l]=E.1K(6.O.Y,6.1l);6.11.1J=R;6.3Z(0,6.2o());7(6.1l=="29"||6.1l=="1P")6.O.Y[6.1l]="8L";E(6.O).1J()},1H:J(){6.11.3U[6.1l]=E.1K(6.O.Y,6.1l);6.11.1H=R;6.3Z(6.2o(),0)},33:J(a){L t=(1D 3O()).3N();7(a||t>6.11.2t+6.5s){6.2I=6.3h;6.4E=6.4F=1;6.4C();6.11.40[6.1l]=R;L b=R;P(L i 1r 6.11.40)7(6.11.40[i]!==R)b=S;7(b){7(6.11.18!=W){6.O.Y.36=6.11.36;6.O.Y.18=6.11.18;7(E.1m(6.O,"18")=="2D")6.O.Y.18="3u"}7(6.11.1H)6.O.Y.18="2D";7(6.11.1H||6.11.1J)P(L p 1r 6.11.40)E.1K(6.O.Y,p,6.11.3U[p])}7(b&&E.1q(6.11.1z))6.11.1z.1j(6.O);K S}N{L n=t-6.5s;6.4F=n/6.11.2t;6.4E=E.3Y[6.11.3Y||(E.3Y.5F?"5F":"6O")](6.4F,n,0,1,6.11.2t);6.2I=6.24+((6.3h-6.24)*6.4E);6.4C()}K R}};E.2v.33={2i:J(a){a.O.2i=a.2I},2x:J(a){a.O.2x=a.2I},1y:J(a){E.1K(a.O.Y,"1y",a.2I)},4o:J(a){a.O.Y[a.1l]=a.2I+a.2C}};E.1i.5f=J(){L b=0,3b=0,O=6[0],5q;7(O)8K(E.14){L d=O.1b,45=O,1M=O.1M,1L=O.2u,5p=26&&4t(5n)<8H,2Z=E.1m(O,"3C")=="2Z";7(O.7b){L c=O.7b();1c(c.2c+1Z.2b(1L.1I.2i,1L.1k.2i),c.3b+1Z.2b(1L.1I.2x,1L.1k.2x));1c(-1L.1I.68,-1L.1I.67)}N{1c(O.5k,O.5K);2e(1M){1c(1M.5k,1M.5K);7(3X&&!/^t(8F|d|h)$/i.17(1M.28)||26&&!5p)3a(1M);7(!2Z&&E.1m(1M,"3C")=="2Z")2Z=R;45=/^1k$/i.17(1M.28)?45:1M;1M=1M.1M}2e(d&&d.28&&!/^1k|3q$/i.17(d.28)){7(!/^a0|1V.*$/i.17(E.1m(d,"18")))1c(-d.2i,-d.2x);7(3X&&E.1m(d,"36")!="4b")3a(d);d=d.1b}7((5p&&(2Z||E.1m(45,"3C")=="4Z"))||(3X&&E.1m(45,"3C")!="4Z"))1c(-1L.1k.5k,-1L.1k.5K);7(2Z)1c(1Z.2b(1L.1I.2i,1L.1k.2i),1Z.2b(1L.1I.2x,1L.1k.2x))}5q={3b:3b,2c:b}}J 3a(a){1c(E.2q(a,"a1",R),E.2q(a,"8D",R))}J 1c(l,t){b+=4t(l)||0;3b+=4t(t)||0}K 5q}})();',62,624,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|elem|for|data|true|false|document|type|each|null||style||undefined|options|nodeName||browser|nodeType|event|test|display|jQuery|arguments|parentNode|add|msie|window|url|indexOf|push|fn|apply|body|prop|css|constructor|script|replace|isFunction|in|extend|text|div|typeof|className|handle|opacity|complete|status|firstChild|value|new|match|filter|dataType|hide|documentElement|show|attr|doc|offsetParent|Array|call|height|cache|try|tbody|break|trigger|table|catch|success|remove|Math||ready|get|hidden|start|string|safari|animate|tagName|width|map|max|left|split|while|ret|global|toggle|scrollLeft|done|handler|special|prototype||cur|selected|curCSS|find|id|duration|ownerDocument|fx|toLowerCase|scrollTop|select|bind|guid|opera|unit|none|pushStack|toUpperCase|button|makeArray|now|nextSibling|target|stack|parseFloat|events|json|px|isReady|createElement|queue|delete|timeout|slice|disabled|removeChild|jsre|fixed|one|nth|preventDefault|step|merge|inArray|overflow|name|innerHTML|exec|border|top|readyState|multiFilter|error|trim|rl|end|form|first|appendChild|async|elems|insertBefore|checked|childNodes|html|which|encodeURIComponent|append|block|param|readyList|grep|color|setTimeout|runtimeStyle|args|position|toString|has|addEventListener|callee|removeData|timers|password|is|xml|last|getTime|Date|domManip|ajax|src|props|timerId|orig|getElementsByTagName|isXMLDoc|mozilla|easing|custom|curAnim|stopPropagation|unbind|load|selectedIndex|offsetChild|mouseleave|mouseenter|input|application|defaultView|visible|float|String|responseText|charCode|teardown|on|setup|currentStyle|shift|javascript|child|accepts|_default|nodeIndex|lastModified|RegExp|_|parseInt|jsonp|previousSibling|dir|tr|self|getAttribute|eval|empty|update|object|pos|state|setRequestHeader|ajaxSettings|not|GET|getPropertyValue|getComputedStyle|styleSheets|lastToggle|unload|mouseout|mouseover|andSelf|getWH|container2|unshift|fromElement|relatedTarget|visibility|init|absolute|click|fix|triggered|Number|setInterval|removeAttribute|prevObject|unique|classFilter|submit|after|file|clean|expr|windowData|offset|scroll|client|deep|jquery|offsetLeft|globalEval|sibling|version|old|safari2|results|wrapAll|startTime|handleError|container|createTextNode|radio|oldblock|checkbox|dequeue|bindReady|getResponseHeader|parsererror|lastChild|index|swing|00|Modified|ifModified|clone|offsetTop|values|active|getElementById|link|val|col|contentType|ajaxSend|ajaxSuccess|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|POST|loaded|DOMContentLoaded|Width|triggerHandler|ctrlKey|metaKey|keyCode|clientTop|clientLeft|ajaxError|clientX|pageX|cloneNode|detachEvent|swap|removeEventListener|join|attachEvent|substr|parse|head|textarea|reset|image|before|odd|zoom|even|prepend|username|quickClass|quickID|quickChild|processData|uuid|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|setArray|CSS1Compat|compatMode|cssFloat|styleFloat|webkit|nodeValue|eq|linear|replaceWith|concat|splice|100|href|_toggle|speed|alpha|304|200|throw|Last|httpData|httpNotModified|httpSuccess|clearInterval|beforeSend|colgroup|fieldset|multiple|XMLHttpRequest|ActiveXObject|getBoundingClientRect|scriptCharset|callback|plain|img|hasClass|br|urlencoded|www|abbr|pixelLeft|post|getJSON|getScript|elements|serialize|keypress|keydown|change|mouseup|mousedown|dblclick|resize|focus|blur|stylesheet|rel|mousemove|doScroll|round|hover|keyup|padding|offsetHeight|offsetWidth|Bottom|Top|Right|clientY|pageY|Left|toElement|srcElement|cancelBubble|returnValue|0n|substring|animated|header|enabled|ajaxSetup|innerText|noConflict|size|contains|only|line|gt|weight|lt|font|uFFFF|u0128|417|inner|Height|Boolean|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|wrap|prependTo|contentWindow|contentDocument|iframe|children|siblings|wrapInner|prevAll|nextAll|prev|next|parents|maxLength|maxlength|readOnly|readonly|borderTopWidth|class|able|htmlFor|522|reverse|boxModel|with|1px|compatible|10000|ie|ra|it|rv|400|fast|600|userAgent|Function|navigator|Object|stop|option|array|ig|NaN|fadeOut|fadeIn|slideToggle|slideUp|slideDown|setAttribute|changed|be|responseXML|content|1223|fadeTo|can|300|property|protocol|location|send|abort|getAttributeNode|specified|method|action|cssText|attributes|Accept|With|th|slow|Requested|td|GMT|cap|1970|cos|PI|Jan|colg|01|Thu|tfoot|Since|thead|If|Type|Content|leg|open|XMLHTTP|opt|Microsoft|embed|onreadystatechange|onload|area|charset|hr|http|inline|borderLeftWidth|1_|meta'.split('|'),0,{}))
|
js/spy.js
ADDED
@@ -0,0 +1,159 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/*
|
2 |
+
jQuery Plugin spy (leftlogic.com/info/articles/jquery_spy2)
|
3 |
+
(c) 2006 Remy Sharp (leftlogic.com)
|
4 |
+
$Id: spy.js,v 1.4 2006/09/30 11:05:04 remy Exp $
|
5 |
+
*/
|
6 |
+
var spyRunning = 1;
|
7 |
+
|
8 |
+
(function($) {
|
9 |
+
|
10 |
+
$.fn.spy = function(settings) {
|
11 |
+
var spy = this;
|
12 |
+
spy.epoch = new Date(1970, 0, 1);
|
13 |
+
spy.last = '';
|
14 |
+
spy.parsing = 0;
|
15 |
+
spy.waitTimer = 0;
|
16 |
+
spy.json = null;
|
17 |
+
|
18 |
+
if (!settings.ajax) {
|
19 |
+
alert("An AJAX/AJAH URL must be set for the spy to work.");
|
20 |
+
return;
|
21 |
+
}
|
22 |
+
|
23 |
+
spy.attachHolder = function() {
|
24 |
+
// not mad on this, but the only way to parse HTML collections
|
25 |
+
if (o.method == 'html')
|
26 |
+
$('body').append('<div style="display: none!important;" id="_spyTmp"></div>');
|
27 |
+
}
|
28 |
+
|
29 |
+
// returns true for 'no dupe', and false for 'dupe found'
|
30 |
+
// latest = is latest ajax return value (raw)
|
31 |
+
// last = is previous ajax return value (raw)
|
32 |
+
// note that comparing latest and last if they're JSON objects
|
33 |
+
// always returns false, so you need to implement it manually.
|
34 |
+
spy.isDupe = function(latest, last) {
|
35 |
+
if ((last.constructor == Object) && (o.method == 'html'))
|
36 |
+
return (latest.html() == last.html());
|
37 |
+
else if (last.constructor == String)
|
38 |
+
return (latest == last);
|
39 |
+
else
|
40 |
+
return 0;
|
41 |
+
}
|
42 |
+
|
43 |
+
spy.timestamp = function() {
|
44 |
+
var now = new Date();
|
45 |
+
return Math.floor((now - spy.epoch) / 1000);
|
46 |
+
}
|
47 |
+
|
48 |
+
spy.parse = function(e, r) {
|
49 |
+
spy.parsing = 1; // flag to stop pull via ajax
|
50 |
+
if (o.method == 'html') {
|
51 |
+
$('div#_spyTmp').html(r); // add contents to hidden div
|
52 |
+
} else if (o.method == 'json') {
|
53 |
+
eval('spy.json = ' + r); // convert text to json
|
54 |
+
}
|
55 |
+
|
56 |
+
if ((o.method == 'json' && spy.json.constructor == Array) || o.method == 'html') {
|
57 |
+
if (spy.parseItem(e)) {
|
58 |
+
spy.waitTimer = window.setInterval(function() {
|
59 |
+
if (spyRunning) {
|
60 |
+
if (!spy.parseItem(e)) {
|
61 |
+
spy.parsing = 0;
|
62 |
+
clearInterval(spy.waitTimer);
|
63 |
+
}
|
64 |
+
}
|
65 |
+
}, o.pushTimeout);
|
66 |
+
} else {
|
67 |
+
spy.parsing = 0;
|
68 |
+
}
|
69 |
+
} else if (o.method == 'json') { // we just have 1
|
70 |
+
eval('spy.json = ' + r)
|
71 |
+
spy.addItem(e, spy.json);
|
72 |
+
spy.parsing = 0;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
// returns true if there's more to parse
|
77 |
+
spy.parseItem = function(e) {
|
78 |
+
if (o.method == 'html') {
|
79 |
+
// note: pre jq-1.0 doesn't return the object
|
80 |
+
var i = $('div#_spyTmp').find('div:first').remove();
|
81 |
+
if (i.size() > 0) {
|
82 |
+
i.hide();
|
83 |
+
spy.addItem(e, i);
|
84 |
+
}
|
85 |
+
return ($('div#_spyTmp').find('div').size() != 0);
|
86 |
+
} else {
|
87 |
+
if (spy.json.length) {
|
88 |
+
var i = spy.json.shift();
|
89 |
+
spy.addItem(e, i);
|
90 |
+
}
|
91 |
+
|
92 |
+
return (spy.json.length != 0);
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
spy.addItem = function(e, i) {
|
97 |
+
if (! o.isDupe.call(this, i, spy.last)) {
|
98 |
+
spy.last = i; // note i is a pointer - so when it gets modified, so does spy.last
|
99 |
+
$('#' + e.id + ' > div:gt(' + (o.limit - 2) + ')').remove();
|
100 |
+
$('#' + e.id + ' > div:gt(' + (o.limit - o.fadeLast - 2) + ')').fadeEachDown();
|
101 |
+
o.push.call(e, i);
|
102 |
+
$('#' + e.id + ' > div:first').fadeIn(o.fadeInSpeed);
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
spy.push = function(r) {
|
107 |
+
$('#' + this.id).prepend(r);
|
108 |
+
}
|
109 |
+
|
110 |
+
var o = {
|
111 |
+
limit: (settings.limit || 10),
|
112 |
+
fadeLast: (settings.fadeLast || 5),
|
113 |
+
ajax: settings.ajax,
|
114 |
+
timeout: (settings.timeout || 3000),
|
115 |
+
pushTimeout: (settings.pushTimeout || settings.timeout || 3000),
|
116 |
+
method: (settings.method || 'html').toLowerCase(),
|
117 |
+
push: (settings.push || spy.push),
|
118 |
+
fadeInSpeed: (settings.fadeInSpeed || 'slow'), // 1400 = crawl
|
119 |
+
timestamp: (settings.timestamp || spy.timestamp),
|
120 |
+
isDupe: (settings.isDupe || spy.isDupe)
|
121 |
+
};
|
122 |
+
|
123 |
+
spy.attachHolder();
|
124 |
+
|
125 |
+
return this.each(function() {
|
126 |
+
var e = this;
|
127 |
+
var timestamp = o.timestamp.call();
|
128 |
+
var lr = ''; // last ajax return
|
129 |
+
spy.ajaxTimer = window.setInterval(function() {
|
130 |
+
if (spyRunning && (!spy.parsing)) {
|
131 |
+
$.post(o.ajax, { 'timestamp': timestamp }, function(r) {
|
132 |
+
spy.parse(e, r);
|
133 |
+
});
|
134 |
+
timestamp = o.timestamp.call();
|
135 |
+
}
|
136 |
+
}, o.timeout);
|
137 |
+
});
|
138 |
+
};
|
139 |
+
|
140 |
+
$.fn.fadeEachDown = function() {
|
141 |
+
var s = this.size();
|
142 |
+
return this.each(function(i) {
|
143 |
+
var o = 1 - (s == 1 ? 0.5 : 0.85/s*(i+1));
|
144 |
+
var e = this.style;
|
145 |
+
if (window.ActiveXObject)
|
146 |
+
e.filter = "alpha(opacity=" + o*100 + ")";
|
147 |
+
e.opacity = o;
|
148 |
+
});
|
149 |
+
};
|
150 |
+
|
151 |
+
})(jQuery);
|
152 |
+
|
153 |
+
function pauseSpy() {
|
154 |
+
spyRunning = 0; return false;
|
155 |
+
}
|
156 |
+
|
157 |
+
function playSpy() {
|
158 |
+
spyRunning = 1; return false;
|
159 |
+
}
|
js/thickbox.js
ADDED
@@ -0,0 +1,10 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/*
|
2 |
+
* Thickbox 3 - One Box To Rule Them All.
|
3 |
+
* By Cody Lindley (http://www.codylindley.com)
|
4 |
+
* Copyright (c) 2007 cody lindley
|
5 |
+
* Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
|
6 |
+
*/
|
7 |
+
|
8 |
+
var tb_pathToImage = "/wp-content/plugins/wassup/img/loadingAnimation.gif";
|
9 |
+
|
10 |
+
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
|
js/ui.tabs.js
ADDED
@@ -0,0 +1,8 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/*
|
2 |
+
* Tabs 3 - New Wave Tabs
|
3 |
+
*
|
4 |
+
* Copyright (c) 2007 Klaus Hartl (stilbuero.de)
|
5 |
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6 |
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7 |
+
*/
|
8 |
+
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5($){$.7=$.7||{};$.1M.4=5(a,b){3(a&&a.X==2Y){b=a;a=J}b=b||{};a=a&&a.X==1W&&--a||0;x 2.R(5(){37 $.7.4(2,$.19(b,{z:a}))})};$.R([\'2T\',\'2S\',\'2N\',\'2E\',\'2x\',\'2r\',\'2l\'],5(i,c){$.1M[\'4\'+c]=5(){6 b=1N;x 2.R(5(){6 a=$.7.4.1o(2);a[c.2a()].36(a,b)})}});$.1M.33=5(){6 b=-1;3(2[0]){6 a=$.7.4.1o(2[0]),$m=$(\'t\',2);b=$m.1k($m.16(\'.\'+a.y.v)[0]);$m=J}x b>=0?++b:-1};$.7.4=5(a,b){2.H=a;2.y=$.19({z:0,M:\'N\',1g:[],G:J,14:E,15:b.14?1y:E,1c:\'2kj;\',1Q:E,1P:\'7-4-\',1m:{},1s:\'2f\',W:5(){},Y:5(){},1n:5(){},1a:5(){},N:5(){},D:5(){},B:5(){},T:5(){},27:\'<t><a l="#{l}"><S>#{25}</S></a></t>\',1J:\'<24></24>\',1I:\'7-4-2X\',v:\'7-4-2W\',1x:\'7-4-15\',12:\'7-4-1g\',18:\'7-4-1F\',P:\'7-4-D\',1e:\'7-4-2R\'},b);2.y.M+=\'.7-4\';2.y.G=$.G&&$.G.X==1C&&2.y.G;$.q(a,$.7.4.13,2);2.1i(1y)};$.7.4.13=\'2L\';$.7.4.1o=5(a){x $.q(a,$.7.4.13)};$.19($.7.4.2I,{1z:5(a){x a.1h&&a.1h.V(/\\s/g,\'23\').V(/[^A-2u-2s-9\\-23:\\.]/g,\'\')||2.y.1P+$.q(a)},1i:5(g){2.$m=$(\'t:2o(a[l])\',2.H);2.$4=2.$m.2m(5(){x $(\'a\',2)[0]});2.$8=$([]);6 f=2,o=2.y;2.$4.R(5(i,a){3(a.I&&a.I.V(\'#\',\'\')){f.$8=f.$8.W(a.I)}w 3($(a).U(\'l\')!=\'#\'){$.q(a,\'l\',a.l);6 b=f.1z(a);a.l=\'#\'+b;f.$8=f.$8.W($(\'#\'+b)[0]||$(o.1J).U(\'10\',b).u(o.18).2i(f.$8[i-1]||f.H))}w{o.1g.2h(i+1)}});3(g){$(2.H).L(o.1I)||$(2.H).u(o.1I);2.$8.R(5(){6 a=$(2);a.L(o.18)||a.u(o.18)});2g(6 i=0,1t;1t=o.1g[i];i++){2.1a(1t)}2.$4.R(5(i,a){3(1r.I){3(a.I==1r.I){o.z=i;3($.O.Z||$.O.2e){6 b=$(1r.I),1O=b.U(\'10\');b.U(\'10\',\'\');1p(5(){b.U(\'10\',1O)},2d)}2c(0,0);x E}}w 3(o.G){6 p=2b($.G($.7.4.13+$.q(f.H)));3(p&&f.$4[p]){o.z=p;x E}}w 3(f.$m.C(i).L(o.v)){o.z=i;x E}});6 n=2.$m.F;29(2.$m.C(o.z).L(o.12)&&n){o.z=++o.z<2.$m.F?o.z:0;n--}3(!n){o.14=o.15=1y}2.$8.u(o.P);2.$m.K(o.v);3(!o.14){2.$8.C(o.z).B().K(o.P);2.$m.C(o.z).u(o.v)}6 j=!o.14&&$.q(2.$4[o.z],\'l\');3(j){2.T(o.z+1,j)}3(!/^N/.35(o.M)){2.$4.28(\'N\',5(e){e.34()})}$(32).31(5(){f.$4.26(o.M);f.$m=f.$4=f.$8=J})}6 k={},1K=o.30||o.1s,Q={},1q=o.2Z||o.1s;3(o.1v||o.1w){3(o.1v){k[\'1u\']=\'B\';Q[\'1u\']=\'D\'}3(o.1w){k[\'11\']=\'B\';Q[\'11\']=\'D\'}}w{3(o.1H){k=o.1H}w{k[\'22-21\']=0;1K=1}3(o.1Z){Q=o.1Z}w{Q[\'22-21\']=0;1q=1}}6 h={1d:\'\',2U:\'\',1u:\'\'};3(!$.O.Z){h[\'11\']=\'\'}5 1G(b,c,a){c.1Y(Q,1q,5(){c.u(o.P).17(h);3($.O.Z&&Q[\'11\']){c[0].1X.16=\'\'}o.D(b,c[0],a&&a[0]||J);3(a){1j(b,a,c)}})}5 1j(b,a,c){3(!(o.1v||o.1w||o.1H)){a.17(\'1d\',\'1E\')}a.1Y(k,1K,5(){a.K(o.P).17(h);3($.O.Z&&k[\'11\']){a[0].1X.16=\'\'}o.B(b,a[0],c&&c[0]||J)})}5 1D(c,a,d,b){a.u(o.v).2Q().K(o.v);1G(c,d,b)}2.$4.26(o.M).28(o.M,5(){6 b=$(2).2P(\'t:C(0)\'),$D=f.$8.16(\':2O\'),$B=$(2.I);3((b.L(o.v)&&!o.15)||b.L(o.12)||o.N(2,$B[0],$D[0])===E){2.1f();x E}3(o.G){$.G($.7.4.13+$.q(f.H),f.$4.1k(2),o.G)}3(o.15){3(b.L(o.v)){b.K(o.v);f.$8.1B();1G(2,$D);2.1f();x E}w 3(!$D.F){f.$8.1B();3($.q(2,\'l\')){6 a=2;f.T(f.$4.1k(2)+1,$.q(2,\'l\'),5(){b.u(o.v).u(o.1x);1j(a,$B)})}w{b.u(o.v).u(o.1x);1j(2,$B)}2.1f();x E}}f.$8.1B();3($B.F){3($.q(2,\'l\')){6 a=2;f.T(f.$4.1k(2)+1,$.q(2,\'l\'),5(){1D(a,b,$D,$B)})}w{1D(2,b,$D,$B)}}w{1V\'1A 1U 1S: 2M 2K 2J.\';}3($.O.Z){2.1f()}x E})},W:5(d,b,f){3(d&&b){f=f||2.$4.F;6 o=2.y,$t=$(o.27.V(/#\\{l\\}/,d).V(/#\\{25\\}/,b));6 a=d.2H(\'#\')==0?d.V(\'#\',\'\'):2.1z($(\'a:2G-2F\',$t)[0]);6 c=$(\'#\'+a);c=c.F&&c||$(o.1J).U(\'10\',a).u(o.18).u(o.P);3(f>=2.$m.F){$t.1T(2.H);c.1T(2.H.2D)}w{$t.1R(2.$m[f-1]);c.1R(2.$8[f-1])}2.1i();3(2.$4.F==1){$t.u(o.v);c.K(o.P);6 e=$.q(2.$4[0],\'l\');3(e){2.T(f+1,e)}}o.W(2.$4[f],2.$8[f])}w{1V\'1A 1U 1S: 2C 2B 1N 2A W 2z.\';}},Y:5(a){3(a&&a.X==1W){6 o=2.y,$t=2.$m.C(a-1).Y(),$1F=2.$8.C(a-1).Y();3($t.L(o.v)&&2.$4.F>1){2.N(a+(a<2.$4.F?1:-1))}2.1i();o.Y($t.2y()[0],$1F[0])}},1n:5(a){6 o=2.y,$t=2.$m.C(a-1);$t.K(o.12);3($.O.2V){$t.17(\'1d\',\'2w-1E\');1p(5(){$t.17(\'1d\',\'1E\')},0)}o.1n(2.$4[a-1],2.$8[a-1])},1a:5(a){6 o=2.y;2.$m.C(a-1).u(o.12);o.1a(2.$4[a-1],2.$8[a-1])},N:5(a){2.$4.C(a-1).2v(2.y.M)},T:5(g,d,b){6 e=2,o=2.y,$a=2.$4.C(g-1),a=$a[0],$S=$(\'S\',a);3(d&&d.X==1C){b=d;d=J}3(d){$.q(a,\'l\',d)}w{d=$.q(a,\'l\')}3(o.1c){$.q(a,\'1h\',$S.1l());$S.1l(\'<20>\'+o.1c+\'</20>\')}6 c=5(){e.$4.16(\'.\'+o.1e).R(5(){$(2).K(o.1e);3(o.1c){$(\'S\',2).1l($.q(2,\'1h\'))}});e.1b=J};6 f=$.19({},o.1m,{2t:d,1L:5(r,s){$(a.I).1l(r);c();3(b&&b.X==1C){b()}3(o.1Q){$.2q(a,\'l\')}o.T(e.$4[g-1],e.$8[g-1]);o.1m.1L&&o.1m.1L(r,s)}});3(2.1b){2.1b.2p();c()}$a.u(o.1e);1p(5(){e.1b=$.2n(f)},0)},l:5(b,a){$.q(2.$4.C(b-1)[0],\'l\',a)}})})(1A);',62,194,'||this|if|tabs|function|var|ui|panels|||||||||||||href|lis||||data|||li|addClass|selectedClass|else|return|options|initial||show|eq|hide|false|length|cookie|source|hash|null|removeClass|hasClass|event|click|browser|hideClass|hideAnim|each|span|load|attr|replace|add|constructor|remove|msie|id|opacity|disabledClass|INSTANCE_KEY|unselected|unselect|filter|css|panelClass|extend|disable|xhr|spinner|display|loadingClass|blur|disabled|title|tabify|showTab|index|html|ajaxOptions|enable|getInstance|setTimeout|hideSpeed|location|fxSpeed|position|height|fxSlide|fxFade|unselectClass|true|tabId|jQuery|stop|Function|switchTab|block|panel|hideTab|fxShow|navClass|panelTemplate|showSpeed|success|fn|arguments|toShowId|idPrefix|cache|insertBefore|Tabs|appendTo|UI|throw|Number|style|animate|fxHide|em|width|min|_|div|text|unbind|tabTemplate|bind|while|toLowerCase|parseInt|scrollTo|500|opera|normal|for|push|insertAfter|8230|Loading|Href|map|ajax|has|abort|removeData|Load|z0|url|Za|trigger|inline|Click|end|tab|to|enough|Not|parentNode|Disable|child|first|indexOf|prototype|identifier|fragment|ui_tabs_instance|Mismatching|Enable|visible|parents|siblings|loading|Remove|Add|overflow|safari|selected|nav|Object|fxHideSpeed|fxShowSpeed|unload|window|tabsSelected|preventDefault|test|apply|new'.split('|'),0,{}))
|
lib/action.php
ADDED
@@ -0,0 +1,164 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (!defined('WASSUPFOLDER')) {
|
3 |
+
define('WASSUPFOLDER', dirname(__FILE__), TRUE);
|
4 |
+
}
|
5 |
+
if (!defined('ABSPATH')) {
|
6 |
+
define ('ABSPATH', substr(WASSUPFOLDER,0,strpos(WASSUPFOLDER,'/wp-content/')+1));
|
7 |
+
}
|
8 |
+
include_once(ABSPATH. 'wp-blog-header.php');
|
9 |
+
if (!function_exists('get_bloginfo')) {
|
10 |
+
include_once(ABSPATH.'wp-config.php');
|
11 |
+
}
|
12 |
+
|
13 |
+
include_once(WASSUPFOLDER. '/main.php');
|
14 |
+
$siteurl = get_bloginfo('siteurl');
|
15 |
+
$wpurl = get_bloginfo('wpurl');
|
16 |
+
$table_name = $wpdb->prefix . "wassup";
|
17 |
+
|
18 |
+
if ( $_GET['hash'] != wp_hash('wassup')) {
|
19 |
+
echo "Nothing to do here";
|
20 |
+
} else {
|
21 |
+
//Retrieve command-line arguments...
|
22 |
+
$max_char_len = ($_GET['width']/10);
|
23 |
+
if (isset($_GET['to_date'])) $to_date = urlencode(attribute_escape($_GET['to_date']));
|
24 |
+
else $to_date = wassup_get_time();
|
25 |
+
if (isset($_GET['from_date'])) $from_date = urlencode(attribute_escape($_GET['from_date']));
|
26 |
+
else $from_date = ($to_date - 3);
|
27 |
+
if (isset($_GET['rows'])) $rows = urlencode(attribute_escape($_GET['rows']));
|
28 |
+
else $rows = 999;
|
29 |
+
|
30 |
+
// ACTION: DELETE ON THE FLY FROM VISITOR DETAILS VIEW
|
31 |
+
if ($_GET['action'] == "delete") {
|
32 |
+
$wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE wassup_id='%s'", urlencode(attribute_escape($_GET['id']))));
|
33 |
+
// ACTION: RUN SPY VIEW
|
34 |
+
} elseif ($_GET['action'] == "spy") {
|
35 |
+
//echo 'Starting spy from directory '.WASSUPFOLDER.' ABSPATH='.ABSPATH.'...<br />'; //debug...
|
36 |
+
spyview($from_date,$to_date,$rows);
|
37 |
+
// ACTION: SUMMARY PIE CHART
|
38 |
+
} elseif ($_GET['action'] == "piechart") {
|
39 |
+
// Prepare Pie Chart
|
40 |
+
$Tot = New MainItems;
|
41 |
+
$Tot->tableName = $table_name;
|
42 |
+
$Tot->from_date = $from_date;
|
43 |
+
$Tot->to_date = $to_date;
|
44 |
+
$items_pie[] = $Tot->calc_tot("items_by_type", $search, "spam");
|
45 |
+
$items_pie[] = $Tot->calc_tot("items_by_type", $search, "searchengine");
|
46 |
+
$items_pie[] = $Tot->calc_tot("items_by_type", $search, "referrer");
|
47 |
+
$items_pie[] = $Tot->calc_tot("items_by_type", $search, "direct");
|
48 |
+
echo "<div align='center'><img src=http://chart.apis.google.com/chart?cht=p3&chco=0000ff&chs=600x300&chl=Spam|Search%20Engine|Referrer|Direct&chd=".chart_data($items_pie, null, null, null, 'pie')."></div>";
|
49 |
+
// ACTION: DISPLAY RAW RECORDS
|
50 |
+
} elseif ($_GET['action'] == "displayraw") {
|
51 |
+
$raw_table = $wpdb->get_results("SELECT ip, hostname, agent, referrer, search, searchpage, os, browser, language FROM $table_name WHERE wassup_id='".urlencode(attribute_escape($_GET['wassup_id']))."' ORDER BY timestamp ASC LIMIT 1");
|
52 |
+
echo "<div><h2>Raw data:</h2>";
|
53 |
+
echo "<ul style='list-style-type:none;padding:20px 0 0 30px;'>";
|
54 |
+
foreach ($raw_table as $rt) {
|
55 |
+
if ($rt->ip != "") echo "<li>Ip: ".$rt->ip."</li>";
|
56 |
+
if ($rt->hostname != "") echo "<li>Hostname: ".$rt->hostname."</li>";
|
57 |
+
if ($rt->agent != "") echo "<li>User Agent: ".$rt->agent."</li>";
|
58 |
+
if ($rt->referrer != "") echo "<li>Referrer: ".urldecode($rt->referrer)."</li>";
|
59 |
+
if ($rt->search != "") echo "<li>Search: ".$rt->search."</li>";
|
60 |
+
if ($rt->os != "") echo "<li>OS: ".$rt->os."</li>";
|
61 |
+
if ($rt->browser != "") echo "<li>Browser: ".$rt->browser."</li>";
|
62 |
+
if ($rt->language != "") echo "<li>Labguage: ".$rt->language."</li>";
|
63 |
+
}
|
64 |
+
echo "<ul>
|
65 |
+
</div>";
|
66 |
+
// ACTION: RUN TOP TEN
|
67 |
+
} elseif ($_GET['action'] == "topten") {
|
68 |
+
//#get top 10 searches...
|
69 |
+
$ch_search = $wpdb->get_results("SELECT count(search) as top_search, search, referrer FROM $table_name WHERE search!='' AND spam='0' AND timestamp BETWEEN $from_date AND $to_date GROUP BY search ORDER BY top_search DESC LIMIT 10");
|
70 |
+
//#get top 10 requests...
|
71 |
+
$ch_urlreq = $wpdb->get_results("SELECT count(urlrequested) as top_urlrequested, urlrequested FROM $table_name WHERE urlrequested!='' AND spam='0' AND timestamp BETWEEN $from_date AND $to_date GROUP BY urlrequested ORDER BY top_urlrequested DESC LIMIT 10");
|
72 |
+
//#get top 50 referrers...will be narrowed down to 10
|
73 |
+
//# with exclusion of wpurl referrals...
|
74 |
+
$ch_referer = $wpdb->get_results("SELECT count(referrer) as top_referrer, referrer FROM $table_name WHERE referrer!='' AND spam='0' AND referrer NOT LIKE '%".$siteurl."%' AND searchengine='' AND timestamp BETWEEN $from_date AND $to_date GROUP BY referrer ORDER BY top_referrer DESC LIMIT 50");
|
75 |
+
//#get top 10 browsers...
|
76 |
+
$ch_browser = $wpdb->get_results("SELECT count(browser) as top_browser, browser FROM $table_name WHERE browser!='' AND spam='0' AND browser NOT LIKE '%N/A%' AND timestamp BETWEEN $from_date AND $to_date GROUP BY browser ORDER BY top_browser DESC LIMIT 10");
|
77 |
+
//#get top 10 operating systems...
|
78 |
+
$ch_os = $wpdb->get_results("SELECT count(os) as top_os, os FROM $table_name WHERE os!='' AND os NOT LIKE '%N/A%' AND spam='0' AND timestamp BETWEEN $from_date AND $to_date GROUP BY os ORDER BY top_os DESC LIMIT 10");
|
79 |
+
?>
|
80 |
+
<div>
|
81 |
+
<table border=0>
|
82 |
+
<tr valign="top">
|
83 |
+
<td width="25%">
|
84 |
+
<ul class="charts">
|
85 |
+
<li class="chartsT">TOP QUERY</li>
|
86 |
+
<?php
|
87 |
+
$char_len = round($max_char_len*.30,0);
|
88 |
+
foreach ($ch_search as $chS) {
|
89 |
+
print '<li class="charts">'.$chS->top_search.': <a href="'.$chS->referrer.'" target="_BLANK">'.stringShortener(preg_replace('/'.preg_quote($siteurl,'/').'/i', '', $chS->search),$char_len).'</a></li>'."\n";
|
90 |
+
} ?>
|
91 |
+
</ul>
|
92 |
+
</td>
|
93 |
+
<td width="20%">
|
94 |
+
<ul class="charts">
|
95 |
+
<li class="chartsT">TOP REFERER</li>
|
96 |
+
<?php
|
97 |
+
$char_len = round($max_char_len*.22,0);
|
98 |
+
$rec_count=0; //# of referrer records output...
|
99 |
+
foreach ($ch_referer as $chR) {
|
100 |
+
if ($rec_count < 10) { //limits output to 10...
|
101 |
+
//# exclude $wpurl from search results...
|
102 |
+
//# ...$siteurl already excluded in db query.
|
103 |
+
//if (!eregi($siteurl, $chR->referrer) {
|
104 |
+
if ($wpurl == $siteurl || !eregi($wpurl,$chR->referrer)) {
|
105 |
+
print '<li class="charts">'.$chR->top_referrer.': ';
|
106 |
+
print '<a href="'.$chR->referrer.'" title="'.$chR->referrer.'" target="_BLANK">';
|
107 |
+
//#cut "http://" from shown url, then truncate
|
108 |
+
//# instead of using stringShortener...
|
109 |
+
//print stringShortener($chR->referrer,round($max_char_len*.25,0)).'</a>'."\n";
|
110 |
+
print substr(preg_replace('/^'.preg_quote('http://','/').'/i', '', $chR->referrer),0,$char_len);
|
111 |
+
if (strlen($chR->referrer) > ($char_len + 7)) {
|
112 |
+
print '...';
|
113 |
+
}
|
114 |
+
print '</a></li>'."\n";
|
115 |
+
$rec_count=$rec_count+1;
|
116 |
+
} //end if !wpurl
|
117 |
+
} //end if rec_count
|
118 |
+
} ?>
|
119 |
+
</ul>
|
120 |
+
</td>
|
121 |
+
<td width="25%">
|
122 |
+
<ul class="charts">
|
123 |
+
<li class="chartsT">TOP REQUEST</li>
|
124 |
+
<?php
|
125 |
+
$char_len = round($max_char_len*.28,0);
|
126 |
+
foreach ($ch_urlreq as $chU) {
|
127 |
+
print '<li class="charts">'.$chU->top_urlrequested.': ';
|
128 |
+
print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($chU->urlrequested))).'" title="'.html_entity_decode($chU->urlrequested).'" target="_BLANK">';
|
129 |
+
print stringShortener(urlencode(html_entity_decode($chU->urlrequested)),$char_len).'</a></li>'."\n";
|
130 |
+
} ?>
|
131 |
+
</ul>
|
132 |
+
</td>
|
133 |
+
<td width="16%">
|
134 |
+
<ul class="charts">
|
135 |
+
<li class="chartsT">TOP BROWSER</li>
|
136 |
+
<?php
|
137 |
+
$char_len = round($max_char_len*.17,0);
|
138 |
+
foreach ($ch_browser as $chB) {
|
139 |
+
print '<li class="charts"><span title="'.$chB->browser.'">';
|
140 |
+
print $chB->top_browser.': '.stringShortener($chB->browser, $char_len);
|
141 |
+
print '</span></li>'."\n";
|
142 |
+
} ?>
|
143 |
+
</ul>
|
144 |
+
</td>
|
145 |
+
<td width="14%">
|
146 |
+
<ul class="charts">
|
147 |
+
<li class="chartsT">TOP OS</li>
|
148 |
+
<?php
|
149 |
+
$char_len = round($max_char_len*.15,0);
|
150 |
+
foreach ($ch_os as $chO) {
|
151 |
+
print '<li class="charts"><span title="'.$chO->os.'">';
|
152 |
+
print $chO->top_os.': '.stringShortener($chO->os, $char_len);
|
153 |
+
print '</span></li>'."\n";
|
154 |
+
} ?>
|
155 |
+
</ul>
|
156 |
+
</td>
|
157 |
+
</tr>
|
158 |
+
</table>
|
159 |
+
<?php if ($wassup_settings['wassup_spamcheck'] == 1) { print '<span style="font-size:6pt;">* '.__("This top ten doesn't include Spam records","wassup").'</span>'; } ?>
|
160 |
+
</div>
|
161 |
+
<?php
|
162 |
+
}
|
163 |
+
}
|
164 |
+
?>
|
lib/akismet.class.php
ADDED
@@ -0,0 +1,388 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* 01.07.2008 22:32:28est
|
4 |
+
*
|
5 |
+
* Akismet PHP4 class
|
6 |
+
*
|
7 |
+
* <b>Usage</b>
|
8 |
+
* <code>
|
9 |
+
* $comment = array(
|
10 |
+
* 'author' => 'viagra-test-123',
|
11 |
+
* 'email' => 'test@example.com',
|
12 |
+
* 'website' => 'http://www.example.com/',
|
13 |
+
* 'body' => 'This is a test comment',
|
14 |
+
* 'permalink' => 'http://yourdomain.com/yourblogpost.url',
|
15 |
+
* );
|
16 |
+
*
|
17 |
+
* $akismet = new Akismet('http://www.yourdomain.com/', 'YOUR_WORDPRESS_API_KEY', $comment);
|
18 |
+
*
|
19 |
+
* if($akismet->errorsExist()) {
|
20 |
+
* echo"Couldn't connected to Akismet server!";
|
21 |
+
* } else {
|
22 |
+
* if($akismet->isSpam()) {
|
23 |
+
* echo"Spam detected";
|
24 |
+
* } else {
|
25 |
+
* echo"yay, no spam!";
|
26 |
+
* }
|
27 |
+
* }
|
28 |
+
* </code>
|
29 |
+
*
|
30 |
+
* @author Bret Kuhns {@link www.miphp.net}
|
31 |
+
* @link http://www.miphp.net/blog/view/new_akismet_class/
|
32 |
+
* @version 0.3.4
|
33 |
+
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
34 |
+
*/
|
35 |
+
|
36 |
+
|
37 |
+
|
38 |
+
// Error constants
|
39 |
+
define("AKISMET_SERVER_NOT_FOUND", 0);
|
40 |
+
define("AKISMET_RESPONSE_FAILED", 1);
|
41 |
+
define("AKISMET_INVALID_KEY", 2);
|
42 |
+
|
43 |
+
|
44 |
+
|
45 |
+
// Base class to assist in error handling between Akismet classes
|
46 |
+
class AkismetObject {
|
47 |
+
var $errors = array();
|
48 |
+
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Add a new error to the errors array in the object
|
52 |
+
*
|
53 |
+
* @param String $name A name (array key) for the error
|
54 |
+
* @param String $string The error message
|
55 |
+
* @return void
|
56 |
+
*/
|
57 |
+
// Set an error in the object
|
58 |
+
function setError($name, $message) {
|
59 |
+
$this->errors[$name] = $message;
|
60 |
+
}
|
61 |
+
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Return a specific error message from the errors array
|
65 |
+
*
|
66 |
+
* @param String $name The name of the error you want
|
67 |
+
* @return mixed Returns a String if the error exists, a false boolean if it does not exist
|
68 |
+
*/
|
69 |
+
function getError($name) {
|
70 |
+
if($this->isError($name)) {
|
71 |
+
return $this->errors[$name];
|
72 |
+
} else {
|
73 |
+
return false;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Return all errors in the object
|
80 |
+
*
|
81 |
+
* @return String[]
|
82 |
+
*/
|
83 |
+
function getErrors() {
|
84 |
+
return (array)$this->errors;
|
85 |
+
}
|
86 |
+
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Check if a certain error exists
|
90 |
+
*
|
91 |
+
* @param String $name The name of the error you want
|
92 |
+
* @return boolean
|
93 |
+
*/
|
94 |
+
function isError($name) {
|
95 |
+
return isset($this->errors[$name]);
|
96 |
+
}
|
97 |
+
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Check if any errors exist
|
101 |
+
*
|
102 |
+
* @return boolean
|
103 |
+
*/
|
104 |
+
function errorsExist() {
|
105 |
+
return (count($this->errors) > 0);
|
106 |
+
}
|
107 |
+
|
108 |
+
|
109 |
+
}
|
110 |
+
|
111 |
+
|
112 |
+
|
113 |
+
|
114 |
+
|
115 |
+
// Used by the Akismet class to communicate with the Akismet service
|
116 |
+
class AkismetHttpClient extends AkismetObject {
|
117 |
+
var $akismetVersion = '1.1';
|
118 |
+
var $con;
|
119 |
+
var $host;
|
120 |
+
var $port;
|
121 |
+
var $apiKey;
|
122 |
+
var $blogUrl;
|
123 |
+
var $errors = array();
|
124 |
+
|
125 |
+
|
126 |
+
// Constructor
|
127 |
+
function AkismetHttpClient($host, $blogUrl, $apiKey, $port = 80) {
|
128 |
+
$this->host = $host;
|
129 |
+
$this->port = $port;
|
130 |
+
$this->blogUrl = $blogUrl;
|
131 |
+
$this->apiKey = $apiKey;
|
132 |
+
}
|
133 |
+
|
134 |
+
|
135 |
+
// Use the connection active in $con to get a response from the server and return that response
|
136 |
+
function getResponse($request, $path, $type = "post", $responseLength = 1160) {
|
137 |
+
$this->_connect();
|
138 |
+
|
139 |
+
if($this->con && !$this->isError(AKISMET_SERVER_NOT_FOUND)) {
|
140 |
+
$request =
|
141 |
+
strToUpper($type)." /{$this->akismetVersion}/$path HTTP/1.1\r\n" .
|
142 |
+
"Host: ".((!empty($this->apiKey)) ? $this->apiKey."." : null)."{$this->host}\r\n" .
|
143 |
+
"Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n" .
|
144 |
+
"Content-Length: ".strlen($request)."\r\n" .
|
145 |
+
"User-Agent: Akismet PHP4 Class\r\n" .
|
146 |
+
"\r\n" .
|
147 |
+
$request
|
148 |
+
;
|
149 |
+
$response = "";
|
150 |
+
|
151 |
+
@fwrite($this->con, $request);
|
152 |
+
|
153 |
+
while(!feof($this->con)) {
|
154 |
+
$response .= @fgets($this->con, $responseLength);
|
155 |
+
}
|
156 |
+
|
157 |
+
$response = explode("\r\n\r\n", $response, 2);
|
158 |
+
return $response[1];
|
159 |
+
} else {
|
160 |
+
$this->setError(AKISMET_RESPONSE_FAILED, "The response could not be retrieved.");
|
161 |
+
}
|
162 |
+
|
163 |
+
$this->_disconnect();
|
164 |
+
}
|
165 |
+
|
166 |
+
|
167 |
+
// Connect to the Akismet server and store that connection in the instance variable $con
|
168 |
+
function _connect() {
|
169 |
+
if(!($this->con = @fsockopen($this->host, $this->port))) {
|
170 |
+
$this->setError(AKISMET_SERVER_NOT_FOUND, "Could not connect to akismet server.");
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
|
175 |
+
// Close the connection to the Akismet server
|
176 |
+
function _disconnect() {
|
177 |
+
@fclose($this->con);
|
178 |
+
}
|
179 |
+
|
180 |
+
|
181 |
+
}
|
182 |
+
|
183 |
+
|
184 |
+
|
185 |
+
|
186 |
+
|
187 |
+
// The controlling class. This is the ONLY class the user should instantiate in
|
188 |
+
// order to use the Akismet service!
|
189 |
+
class Akismet extends AkismetObject {
|
190 |
+
var $apiPort = 80;
|
191 |
+
var $akismetServer = 'rest.akismet.com';
|
192 |
+
var $akismetVersion = '1.1';
|
193 |
+
var $http;
|
194 |
+
|
195 |
+
var $ignore = array(
|
196 |
+
'HTTP_COOKIE',
|
197 |
+
'HTTP_X_FORWARDED_FOR',
|
198 |
+
'HTTP_X_FORWARDED_HOST',
|
199 |
+
'HTTP_MAX_FORWARDS',
|
200 |
+
'HTTP_X_FORWARDED_SERVER',
|
201 |
+
'REDIRECT_STATUS',
|
202 |
+
'SERVER_PORT',
|
203 |
+
'PATH',
|
204 |
+
'DOCUMENT_ROOT',
|
205 |
+
'SERVER_ADMIN',
|
206 |
+
'QUERY_STRING',
|
207 |
+
'PHP_SELF',
|
208 |
+
'argv'
|
209 |
+
);
|
210 |
+
|
211 |
+
var $blogUrl = "";
|
212 |
+
var $apiKey = "";
|
213 |
+
var $comment = array();
|
214 |
+
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Constructor
|
218 |
+
*
|
219 |
+
* Set instance variables, connect to Akismet, and check API key
|
220 |
+
*
|
221 |
+
* @param String $blogUrl The URL to your own blog
|
222 |
+
* @param String $apiKey Your wordpress API key
|
223 |
+
* @param String[] $comment A formatted comment array to be examined by the Akismet service
|
224 |
+
* @return Akismet
|
225 |
+
*/
|
226 |
+
function Akismet($blogUrl, $apiKey, $comment = array()) {
|
227 |
+
$this->blogUrl = $blogUrl;
|
228 |
+
$this->apiKey = $apiKey;
|
229 |
+
$this->setComment($comment);
|
230 |
+
|
231 |
+
// Connect to the Akismet server and populate errors if they exist
|
232 |
+
$this->http = new AkismetHttpClient($this->akismetServer, $blogUrl, $apiKey);
|
233 |
+
if($this->http->errorsExist()) {
|
234 |
+
$this->errors = array_merge($this->errors, $this->http->getErrors());
|
235 |
+
}
|
236 |
+
|
237 |
+
// Check if the API key is valid
|
238 |
+
if(!$this->_isValidApiKey($apiKey)) {
|
239 |
+
$this->setError(AKISMET_INVALID_KEY, "Your Akismet API key is not valid.");
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
|
244 |
+
/**
|
245 |
+
* Query the Akismet and determine if the comment is spam or not
|
246 |
+
*
|
247 |
+
* @return boolean
|
248 |
+
*/
|
249 |
+
function isSpam() {
|
250 |
+
$response = $this->http->getResponse($this->_getQueryString(), 'comment-check');
|
251 |
+
|
252 |
+
return ($response == "true");
|
253 |
+
}
|
254 |
+
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Submit this comment as an unchecked spam to the Akismet server
|
258 |
+
*
|
259 |
+
* @return void
|
260 |
+
*/
|
261 |
+
function submitSpam() {
|
262 |
+
$this->http->getResponse($this->_getQueryString(), 'submit-spam');
|
263 |
+
}
|
264 |
+
|
265 |
+
|
266 |
+
/**
|
267 |
+
* Submit a false-positive comment as "ham" to the Akismet server
|
268 |
+
*
|
269 |
+
* @return void
|
270 |
+
*/
|
271 |
+
function submitHam() {
|
272 |
+
$this->http->getResponse($this->_getQueryString(), 'submit-ham');
|
273 |
+
}
|
274 |
+
|
275 |
+
|
276 |
+
/**
|
277 |
+
* Manually set the comment value of the instantiated object.
|
278 |
+
*
|
279 |
+
* @param Array $comment
|
280 |
+
* @return void
|
281 |
+
*/
|
282 |
+
function setComment($comment) {
|
283 |
+
$this->comment = $comment;
|
284 |
+
if(!empty($comment)) {
|
285 |
+
$this->_formatCommentArray();
|
286 |
+
$this->_fillCommentValues();
|
287 |
+
}
|
288 |
+
}
|
289 |
+
|
290 |
+
|
291 |
+
/**
|
292 |
+
* Returns the current value of the object's comment array.
|
293 |
+
*
|
294 |
+
* @return Array
|
295 |
+
*/
|
296 |
+
function getComment() {
|
297 |
+
return $this->comment;
|
298 |
+
}
|
299 |
+
|
300 |
+
|
301 |
+
/**
|
302 |
+
* Check with the Akismet server to determine if the API key is valid
|
303 |
+
*
|
304 |
+
* @access Protected
|
305 |
+
* @param String $key The Wordpress API key passed from the constructor argument
|
306 |
+
* @return boolean
|
307 |
+
*/
|
308 |
+
function _isValidApiKey($key) {
|
309 |
+
$keyCheck = $this->http->getResponse("key=".$this->apiKey."&blog=".$this->blogUrl, 'verify-key');
|
310 |
+
|
311 |
+
return ($keyCheck == "valid");
|
312 |
+
}
|
313 |
+
|
314 |
+
|
315 |
+
/**
|
316 |
+
* Format the comment array in accordance to the Akismet API
|
317 |
+
*
|
318 |
+
* @access Protected
|
319 |
+
* @return void
|
320 |
+
*/
|
321 |
+
function _formatCommentArray() {
|
322 |
+
$format = array(
|
323 |
+
'type' => 'comment_type',
|
324 |
+
'author' => 'comment_author',
|
325 |
+
'email' => 'comment_author_email',
|
326 |
+
'website' => 'comment_author_url',
|
327 |
+
'body' => 'comment_content'
|
328 |
+
);
|
329 |
+
|
330 |
+
foreach($format as $short => $long) {
|
331 |
+
if(isset($this->comment[$short])) {
|
332 |
+
$this->comment[$long] = $this->comment[$short];
|
333 |
+
unset($this->comment[$short]);
|
334 |
+
}
|
335 |
+
}
|
336 |
+
}
|
337 |
+
|
338 |
+
|
339 |
+
/**
|
340 |
+
* Fill any values not provided by the developer with available values.
|
341 |
+
*
|
342 |
+
* @return void
|
343 |
+
*/
|
344 |
+
function _fillCommentValues() {
|
345 |
+
if(!isset($this->comment['user_ip'])) {
|
346 |
+
$this->comment['user_ip'] = ($_SERVER['REMOTE_ADDR'] != getenv('SERVER_ADDR')) ? $_SERVER['REMOTE_ADDR'] : getenv('HTTP_X_FORWARDED_FOR');
|
347 |
+
}
|
348 |
+
if(!isset($this->comment['user_agent'])) {
|
349 |
+
$this->comment['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
|
350 |
+
}
|
351 |
+
if(!isset($this->comment['referrer'])) {
|
352 |
+
$this->comment['referrer'] = $_SERVER['HTTP_REFERER'];
|
353 |
+
}
|
354 |
+
if(!isset($this->comment['blog'])) {
|
355 |
+
$this->comment['blog'] = $this->blogUrl;
|
356 |
+
}
|
357 |
+
}
|
358 |
+
|
359 |
+
|
360 |
+
/**
|
361 |
+
* Build a query string for use with HTTP requests
|
362 |
+
*
|
363 |
+
* @access Protected
|
364 |
+
* @return String
|
365 |
+
*/
|
366 |
+
function _getQueryString() {
|
367 |
+
foreach($_SERVER as $key => $value) {
|
368 |
+
if(!in_array($key, $this->ignore)) {
|
369 |
+
if($key == 'REMOTE_ADDR') {
|
370 |
+
$this->comment[$key] = $this->comment['user_ip'];
|
371 |
+
} else {
|
372 |
+
$this->comment[$key] = $value;
|
373 |
+
}
|
374 |
+
}
|
375 |
+
}
|
376 |
+
|
377 |
+
$query_string = '';
|
378 |
+
|
379 |
+
foreach($this->comment as $key => $data) {
|
380 |
+
$query_string .= $key . '=' . urlencode(stripslashes($data)) . '&';
|
381 |
+
}
|
382 |
+
|
383 |
+
return $query_string;
|
384 |
+
}
|
385 |
+
|
386 |
+
|
387 |
+
}
|
388 |
+
?>
|
lib/main.php
ADDED
@@ -0,0 +1,819 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (!class_exists('pagination')) { //in case another app uses this class...
|
3 |
+
class pagination{
|
4 |
+
/*
|
5 |
+
Script Name: *Digg Style Paginator Class
|
6 |
+
Script URI: http://www.mis-algoritmos.com/2007/05/27/digg-style-pagination-class/
|
7 |
+
Description: Class in PHP that allows to use a pagination like a digg or sabrosus style.
|
8 |
+
Script Version: 0.3.2
|
9 |
+
Author: Victor De la Rocha
|
10 |
+
Author URI: http://www.mis-algoritmos.com
|
11 |
+
*/
|
12 |
+
/*Default values*/
|
13 |
+
var $total_pages = null;
|
14 |
+
var $limit = null;
|
15 |
+
var $target = "";
|
16 |
+
var $page = 1;
|
17 |
+
var $adjacents = 2;
|
18 |
+
var $showCounter = false;
|
19 |
+
var $className = "pagination";
|
20 |
+
var $parameterName = "pages";
|
21 |
+
var $urlF = false;//urlFriendly
|
22 |
+
|
23 |
+
/*Buttons next and previous*/
|
24 |
+
var $nextT = "Next";
|
25 |
+
var $nextI = "»"; //►
|
26 |
+
var $prevT = "Previous";
|
27 |
+
var $prevI = "«"; //◄
|
28 |
+
|
29 |
+
/*****/
|
30 |
+
var $calculate = false;
|
31 |
+
|
32 |
+
#Total items
|
33 |
+
function items($value){$this->total_pages = intval($value);}
|
34 |
+
|
35 |
+
#how many items to show per page
|
36 |
+
function limit($value){$this->limit = intval($value);}
|
37 |
+
|
38 |
+
#Page to sent the page value
|
39 |
+
function target($value){$this->target = $value;}
|
40 |
+
|
41 |
+
#Current page
|
42 |
+
function currentPage($value){$this->page = intval($value);}
|
43 |
+
|
44 |
+
#How many adjacent pages should be shown on each side of the current page?
|
45 |
+
function adjacents($value){$this->adjacents = intval($value);}
|
46 |
+
|
47 |
+
#show counter?
|
48 |
+
function showCounter($value=""){$this->showCounter=($value===true)?true:false;}
|
49 |
+
|
50 |
+
#to change the class name of the pagination div
|
51 |
+
function changeClass($value=""){$this->className=$value;}
|
52 |
+
|
53 |
+
function nextLabel($value){$this->nextT = $value;}
|
54 |
+
function nextIcon($value){$this->nextI = $value;}
|
55 |
+
function prevLabel($value){$this->prevT = $value;}
|
56 |
+
function prevIcon($value){$this->prevI = $value;}
|
57 |
+
|
58 |
+
#to change the class name of the pagination div
|
59 |
+
function parameterName($value=""){$this->parameterName=$value;}
|
60 |
+
|
61 |
+
#to change urlFriendly
|
62 |
+
function urlFriendly($value="%"){
|
63 |
+
if(eregi('^ *$',$value)){
|
64 |
+
$this->urlF=false;
|
65 |
+
return false;
|
66 |
+
}
|
67 |
+
$this->urlF=$value;
|
68 |
+
}
|
69 |
+
|
70 |
+
var $pagination;
|
71 |
+
|
72 |
+
function pagination(){}
|
73 |
+
function show(){
|
74 |
+
if(!$this->calculate)
|
75 |
+
if($this->calculate())
|
76 |
+
echo "<div class=\"$this->className\">$this->pagination</div>";
|
77 |
+
}
|
78 |
+
function get_pagenum_link($id){
|
79 |
+
if(strpos($this->target,'?')===false)
|
80 |
+
if($this->urlF)
|
81 |
+
return str_replace($this->urlF,$id,$this->target);
|
82 |
+
else
|
83 |
+
return "$this->target?$this->parameterName=$id";
|
84 |
+
else
|
85 |
+
return "$this->target&$this->parameterName=$id";
|
86 |
+
}
|
87 |
+
|
88 |
+
function calculate(){
|
89 |
+
$this->pagination = "";
|
90 |
+
$this->calculate == true;
|
91 |
+
$error = false;
|
92 |
+
if($this->urlF and $this->urlF != '%' and strpos($this->target,$this->urlF)===false){
|
93 |
+
//Es necesario especificar el comodin para sustituir
|
94 |
+
echo "Especificaste un wildcard para sustituir, pero no existe en el target<br />";
|
95 |
+
$error = true;
|
96 |
+
}elseif($this->urlF and $this->urlF == '%' and strpos($this->target,$this->urlF)===false){
|
97 |
+
echo "Es necesario especificar en el target el comodin % para sustituir el n�mero de p�gina<br />";
|
98 |
+
$error = true;
|
99 |
+
}
|
100 |
+
if($this->total_pages == null){
|
101 |
+
echo "It is necessary to specify the <strong>number of pages</strong> (\$class->items(1000))<br />";
|
102 |
+
$error = true;
|
103 |
+
}
|
104 |
+
if($this->limit == null){
|
105 |
+
echo "It is necessary to specify the <strong>limit of items</strong> to show per page (\$class->limit(10))<br />";
|
106 |
+
$error = true;
|
107 |
+
}
|
108 |
+
if($error)return false;
|
109 |
+
|
110 |
+
$n = trim($this->nextT.' '.$this->nextI);
|
111 |
+
$p = trim($this->prevI.' '.$this->prevT);
|
112 |
+
|
113 |
+
/* Setup vars for query. */
|
114 |
+
if($this->page)
|
115 |
+
$start = ($this->page - 1) * $this->limit; //first item to display on this page
|
116 |
+
else
|
117 |
+
$start = 0; //if no page var is given, set start to 0
|
118 |
+
|
119 |
+
/* Setup page vars for display. */
|
120 |
+
if ($this->page == 0) $this->page = 1; //if no page var is given, default to 1.
|
121 |
+
$prev = $this->page - 1; //previous page is page - 1
|
122 |
+
$next = $this->page + 1; //next page is page + 1
|
123 |
+
$lastpage = ceil($this->total_pages/$this->limit); //lastpage is = total pages / items per page, rounded up.
|
124 |
+
$lpm1 = $lastpage - 1; //last page minus 1
|
125 |
+
|
126 |
+
/*
|
127 |
+
Now we apply our rules and draw the pagination object.
|
128 |
+
We're actually saving the code to a variable in case we want to draw it more than once.
|
129 |
+
*/
|
130 |
+
|
131 |
+
if($lastpage > 1){
|
132 |
+
//anterior button
|
133 |
+
if($this->page > 1)
|
134 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($prev)."\">$p</a>";
|
135 |
+
else
|
136 |
+
$this->pagination .= "<span class=\"disabled\">$p</span>";
|
137 |
+
//pages
|
138 |
+
if ($lastpage < 7 + ($this->adjacents * 2)){//not enough pages to bother breaking it up
|
139 |
+
for ($counter = 1; $counter <= $lastpage; $counter++){
|
140 |
+
if ($counter == $this->page)
|
141 |
+
$this->pagination .= "<span class=\"current\">$counter</span>";
|
142 |
+
else
|
143 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
144 |
+
}
|
145 |
+
}
|
146 |
+
elseif($lastpage > 5 + ($this->adjacents * 2)){//enough pages to hide some
|
147 |
+
//close to beginning; only hide later pages
|
148 |
+
if($this->page < 1 + ($this->adjacents * 2)){
|
149 |
+
for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++){
|
150 |
+
if ($counter == $this->page)
|
151 |
+
$this->pagination .= "<span class=\"current\">$counter</span>";
|
152 |
+
else
|
153 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
154 |
+
}
|
155 |
+
$this->pagination .= "...";
|
156 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a>";
|
157 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a>";
|
158 |
+
}
|
159 |
+
//in middle; hide some front and some back
|
160 |
+
elseif($lastpage - ($this->adjacents * 2) > $this->page && $this->page > ($this->adjacents * 2)){
|
161 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a>";
|
162 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a>";
|
163 |
+
$this->pagination .= "...";
|
164 |
+
for ($counter = $this->page - $this->adjacents; $counter <= $this->page + $this->adjacents; $counter++)
|
165 |
+
if ($counter == $this->page)
|
166 |
+
$this->pagination .= "<span class=\"current\">$counter</span>";
|
167 |
+
else
|
168 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
169 |
+
$this->pagination .= "...";
|
170 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a>";
|
171 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a>";
|
172 |
+
}
|
173 |
+
//close to end; only hide early pages
|
174 |
+
else{
|
175 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a>";
|
176 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a>";
|
177 |
+
$this->pagination .= "...";
|
178 |
+
for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++)
|
179 |
+
if ($counter == $this->page)
|
180 |
+
$this->pagination .= "<span class=\"current\">$counter</span>";
|
181 |
+
else
|
182 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
183 |
+
}
|
184 |
+
}
|
185 |
+
//siguiente button
|
186 |
+
if ($this->page < $counter - 1)
|
187 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($next)."\">$n</a>";
|
188 |
+
else
|
189 |
+
$this->pagination .= "<span class=\"disabled\">$n</span>";
|
190 |
+
if($this->showCounter)$this->pagination .= "<div class=\"pagination_data\">($this->total_pages Pages)</div>";
|
191 |
+
}
|
192 |
+
|
193 |
+
return true;
|
194 |
+
}
|
195 |
+
} //end class pagination
|
196 |
+
} //end if !class_exists('pagination')
|
197 |
+
|
198 |
+
|
199 |
+
if (!class_exists('Detector')) { //in case another app uses this class...
|
200 |
+
//
|
201 |
+
// Detector class (c) Mohammad Hafiz bin Ismail 2006
|
202 |
+
// detect location by ipaddress
|
203 |
+
// detect browser type and operating system
|
204 |
+
//
|
205 |
+
// November 27, 2006
|
206 |
+
//
|
207 |
+
// by : Mohammad Hafiz bin Ismail (info@mypapit.net)
|
208 |
+
//
|
209 |
+
// You are allowed to use this work under the terms of
|
210 |
+
// Creative Commons Attribution-Share Alike 3.0 License
|
211 |
+
//
|
212 |
+
// Reference : http://creativecommons.org/licenses/by-sa/3.0/
|
213 |
+
//
|
214 |
+
|
215 |
+
class Detector {
|
216 |
+
|
217 |
+
var $town;
|
218 |
+
var $state;
|
219 |
+
var $country;
|
220 |
+
var $ccode;
|
221 |
+
var $longitude;
|
222 |
+
var $latitude;
|
223 |
+
var $ipaddress;
|
224 |
+
var $txt;
|
225 |
+
|
226 |
+
var $browser;
|
227 |
+
var $browser_version;
|
228 |
+
var $os_version;
|
229 |
+
var $os;
|
230 |
+
var $useragent;
|
231 |
+
|
232 |
+
function Detector($ip="", $ua="")
|
233 |
+
{
|
234 |
+
$apiserver="http://showip.fakap.net/txt/";
|
235 |
+
if ($ip != "") {
|
236 |
+
if (preg_match('/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/',$ip,$matches))
|
237 |
+
{
|
238 |
+
$this->ipaddress=$ip;
|
239 |
+
}
|
240 |
+
|
241 |
+
else { $this->ipaddress = "0.0.0.0"; }
|
242 |
+
|
243 |
+
//uncomment this below if CURL doesnt work
|
244 |
+
|
245 |
+
$this->txt=file_get_contents($apiserver . "$ip");
|
246 |
+
|
247 |
+
$wtf=$this->txt;
|
248 |
+
$this->processTxt($wtf);
|
249 |
+
}
|
250 |
+
|
251 |
+
$this->useragent=$ua;
|
252 |
+
$this->check_os($ua);
|
253 |
+
$this->check_browser($ua);
|
254 |
+
}
|
255 |
+
|
256 |
+
function processTxt($wtf)
|
257 |
+
|
258 |
+
{
|
259 |
+
// $tok = strtok($txt, ',');
|
260 |
+
$this->town = strtok($wtf,',');
|
261 |
+
$this->state = strtok(',');
|
262 |
+
$this->country=strtok(',');
|
263 |
+
$this->ccode = strtok(',');
|
264 |
+
$this->latitude=strtok(',');
|
265 |
+
$this->longitude=strtok(',');
|
266 |
+
}
|
267 |
+
|
268 |
+
function check_os($useragent) {
|
269 |
+
|
270 |
+
$os = "N/A"; $version = "N/A";
|
271 |
+
|
272 |
+
if (preg_match("/Windows NT 5.1/",$useragent,$match)) {
|
273 |
+
$os = "Windows"; $version = "XP";
|
274 |
+
} elseif (preg_match("/Windows NT 5.2/",$useragent,$match)) {
|
275 |
+
$os = "Windows"; $version = "Server 2003";
|
276 |
+
} elseif (preg_match("/Windows NT 6.0/",$useragent,$match)) {
|
277 |
+
$os = "Windows"; $version = "Vista";
|
278 |
+
} elseif (preg_match("/(?:Windows NT 5.0|Windows 2000)/",$useragent,$match)) {
|
279 |
+
$os = "Windows"; $version = "2000";
|
280 |
+
} elseif (preg_match("/Windows ME/",$useragent,$match)) {
|
281 |
+
$os = "Windows"; $version = "ME";
|
282 |
+
} elseif (preg_match("/(?:WinNT|Windows\s?NT)\s?([0-9\.]+)?/",$useragent,$match)) {
|
283 |
+
$os = "Windows"; $version = "NT ".$match[1];
|
284 |
+
} elseif (preg_match("/Mac OS X/",$useragent,$match)) {
|
285 |
+
$os = "Mac OS"; $version = "X";
|
286 |
+
} elseif (preg_match("/(Mac_PowerPC|Macintosh)/",$useragent,$match)) {
|
287 |
+
$os = "Mac OS"; $version = "";
|
288 |
+
} elseif (preg_match("/(?:Windows95|Windows 95|Win95|Win 95)/",$useragent,$match)) {
|
289 |
+
$os = "Windows"; $version = "95";
|
290 |
+
} elseif (preg_match("/(?:Windows98|Windows 98|Win98|Win 98)/",$useragent,$match)) {
|
291 |
+
$os = "Windows"; $version = "98";
|
292 |
+
} elseif (preg_match("/(?:WindowsCE|Windows CE|WinCE|Win CE)/",$useragent,$match)) {
|
293 |
+
$os = "Windows"; $version = "CE";
|
294 |
+
} elseif (preg_match("/PalmOS/",$useragent,$match)) {
|
295 |
+
$os = "PalmOS";
|
296 |
+
} elseif (preg_match("/\(PDA(?:.*)\)(.*)Zaurus/",$useragent,$match)) {
|
297 |
+
$os = "Sharp Zaurus";
|
298 |
+
} elseif (preg_match("/Linux\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2}\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
|
299 |
+
$os = "Linux"; $version = $match[1];
|
300 |
+
} elseif (preg_match("/NetBSD\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2}\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
|
301 |
+
$os = "NetBSD"; $version = $match[1];
|
302 |
+
} elseif (preg_match("/OpenBSD\s*([0-9\.]+)?/",$useragent,$match)) {
|
303 |
+
$os = "OpenBSD"; $version = $match[1];
|
304 |
+
} elseif (preg_match("/CYGWIN\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2}\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
|
305 |
+
$os = "CYGWIN"; $version = $match[1];
|
306 |
+
} elseif (preg_match("/SunOS\s*([0-9\.]+)?/",$useragent,$match)) {
|
307 |
+
$os = "SunOS"; $version = $match[1];
|
308 |
+
} elseif (preg_match("/IRIX\s*([0-9\.]+)?/",$useragent,$match)) {
|
309 |
+
$os = "SGI IRIX"; $version = $match[1];
|
310 |
+
} elseif (preg_match("/FreeBSD\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
|
311 |
+
$os = "FreeBSD"; $version = $match[1];
|
312 |
+
} elseif (preg_match("/SymbianOS\/([0-9.]+)/i",$useragent,$match)) {
|
313 |
+
$os = "SymbianOS"; $version = $match[1];
|
314 |
+
} elseif (preg_match("/Symbian\/([0-9.]+)/i",$useragent,$match)) {
|
315 |
+
$os = "Symbian"; $version = $match[1];
|
316 |
+
} elseif (preg_match("/PLAYSTATION 3/",$useragent,$match)) {
|
317 |
+
$os = "Playstation"; $version = 3;
|
318 |
+
}
|
319 |
+
|
320 |
+
$this->os = $os;
|
321 |
+
$this->os_version = $version;
|
322 |
+
}
|
323 |
+
|
324 |
+
function check_browser($useragent) {
|
325 |
+
|
326 |
+
$browser = "N/A";
|
327 |
+
|
328 |
+
if (preg_match("/^Mozilla(?:.*)compatible;\sMSIE\s(?:.*)Opera\s([0-9\.]+)/",$useragent,$match)) {
|
329 |
+
$browser = "Opera";
|
330 |
+
} elseif (preg_match("/^Opera\/([0-9\.]+)/",$useragent,$match)) {
|
331 |
+
$browser = "Opera";
|
332 |
+
} elseif (preg_match("/^Mozilla(?:.*)compatible;\siCab\s([0-9\.]+)/",$useragent,$match)) {
|
333 |
+
$browser = "iCab";
|
334 |
+
} elseif (preg_match("/^iCab\/([0-9\.]+)/",$useragent,$match)) {
|
335 |
+
$browser = "iCab";
|
336 |
+
} elseif (preg_match("/^Mozilla(?:.*)compatible;\sMSIE\s([0-9\.]+)/",$useragent,$match)) {
|
337 |
+
$browser = "MSIE";
|
338 |
+
} elseif (preg_match("/^Mozilla(?:.*)\(Macintosh(?:.*)Safari\/([0-9\.]+)/",$useragent,$match)) {
|
339 |
+
$browser = "Safari";
|
340 |
+
} elseif (preg_match("/^Mozilla(?:.*)\(Macintosh(?:.*)OmniWeb\/v([0-9\.]+)/",$useragent,$match)) {
|
341 |
+
$browser = "Omniweb";
|
342 |
+
} elseif (preg_match("/^Mozilla(?:.*)\(compatible; Google Desktop/",$useragent,$match)) {
|
343 |
+
$browser = "Google Desktop";
|
344 |
+
} elseif (preg_match("/^Mozilla(?:.*)\(compatible;\sOmniWeb\/([0-9\.v-]+)/",$useragent,$match)) {
|
345 |
+
$browser = "Omniweb";
|
346 |
+
} elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)Netscape\/([0-9\.]+)/",$useragent,$match)) {
|
347 |
+
$browser = "Netscape";
|
348 |
+
} elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)(?:Fire(?:fox|bird)|Phoenix)\/([0-9\.]+)/",$useragent,$match)) {
|
349 |
+
$browser = "Mozilla Firefox";
|
350 |
+
} elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)Minefield\/([0-9\.]+)/",$useragent,$match)) {
|
351 |
+
$browser = "Minefield";
|
352 |
+
} elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)Epiphany\/([0-9\.]+)/",$useragent,$match)) {
|
353 |
+
$browser = "Epiphany";
|
354 |
+
} elseif (preg_match("/^Mozilla(?:.*)Galeon\/([0-9\.]+)\s(?:.*)Gecko/",$useragent,$match)) {
|
355 |
+
$browser = "Galeon";
|
356 |
+
} elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)K-Meleon\/([0-9\.]+)/",$useragent,$match)) {
|
357 |
+
$browser = "K-Meleon";
|
358 |
+
} elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)(?:Camino|Chimera)\/([0-9\.]+)/",$useragent,$match)) {
|
359 |
+
$browser = "Camino";
|
360 |
+
} elseif (preg_match("/^Mozilla(?:.*)rv:([0-9\.]+)\)\sGecko/",$useragent,$match)) {
|
361 |
+
$browser = "Mozilla";
|
362 |
+
} elseif (preg_match("/^Mozilla(?:.*)compatible;\sKonqueror\/([0-9\.]+);/",$useragent,$match)) {
|
363 |
+
$browser = "Konqueror";
|
364 |
+
} elseif (preg_match("/^Mozilla\/(?:[34]\.[0-9]+)(?:.*)AvantGo\s([0-9\.]+)/",$useragent,$match)) {
|
365 |
+
$browser = "AvantGo";
|
366 |
+
} elseif (preg_match("/^Mozilla(?:.*)NetFront\/([34]\.[0-9]+)/",$useragent,$match)) {
|
367 |
+
$browser = "NetFront";
|
368 |
+
} elseif (preg_match("/^Mozilla\/([34]\.[0-9]+)/",$useragent,$match)) {
|
369 |
+
$browser = "Netscape";
|
370 |
+
} elseif (preg_match("/^Liferea\/([0-9\.]+)/",$useragent,$match)) {
|
371 |
+
$browser = "Liferea";
|
372 |
+
} elseif (preg_match("/^curl\/([0-9\.]+)/",$useragent,$match)) {
|
373 |
+
$browser = "curl";
|
374 |
+
} elseif (preg_match("/^links\/([0-9\.]+)/i",$useragent,$match)) {
|
375 |
+
$browser = "Links";
|
376 |
+
} elseif (preg_match("/^links\s?\(([0-9\.]+)/i",$useragent,$match)) {
|
377 |
+
$browser = "Links";
|
378 |
+
} elseif (preg_match("/^lynx\/([0-9a-z\.]+)/i",$useragent,$match)) {
|
379 |
+
$browser = "Lynx";
|
380 |
+
} elseif (preg_match("/^Wget\/([0-9\.]+)/i",$useragent,$match)) {
|
381 |
+
$browser = "Wget";
|
382 |
+
} elseif (preg_match("/^Xiino\/([0-9\.]+)/i",$useragent,$match)) {
|
383 |
+
$browser = "Xiino";
|
384 |
+
} elseif (preg_match("/^W3C_Validator\/([0-9\.]+)/i",$useragent,$match)) {
|
385 |
+
$browser = "W3C Validator";
|
386 |
+
} elseif (preg_match("/^Jigsaw(?:.*) W3C_CSS_Validator_(?:[A-Z]+)\/([0-9\.]+)/i",$useragent,$match)) {
|
387 |
+
$browser = "W3C CSS Validator";
|
388 |
+
} elseif (preg_match("/^Dillo\/([0-9\.]+)/i",$useragent,$match)) {
|
389 |
+
$browser = "Dillo";
|
390 |
+
} elseif (preg_match("/^amaya\/([0-9\.]+)/i",$useragent,$match)) {
|
391 |
+
$browser = "Amaya";
|
392 |
+
} elseif (preg_match("/^DocZilla\/([0-9\.]+)/i",$useragent,$match)) {
|
393 |
+
$browser = "DocZilla";
|
394 |
+
} elseif (preg_match("/^fetch\slibfetch\/([0-9\.]+)/i",$useragent,$match)) {
|
395 |
+
$browser = "FreeBSD libfetch";
|
396 |
+
} elseif (preg_match("/^Nokia([0-9a-zA-Z\-.]+)\/([0-9\.]+)/i",$useragent,$match)) {
|
397 |
+
$browser="Nokia";
|
398 |
+
} elseif (preg_match("/^SonyEricsson([0-9a-zA-Z\-.]+)\/([a-zA-Z0-9\.]+)/i",$useragent,$match)) {
|
399 |
+
$browser="SonyEricsson";
|
400 |
+
}
|
401 |
+
|
402 |
+
$version = $match[1];
|
403 |
+
|
404 |
+
$this->browser = $browser;
|
405 |
+
$this->browser_version = $version;
|
406 |
+
}
|
407 |
+
} //end class Detector
|
408 |
+
} //end if !class_exists('Detector')
|
409 |
+
|
410 |
+
function wassup_get_time() {
|
411 |
+
$timeright = gmdate("U");
|
412 |
+
$offset = (get_option("gmt_offset")*60*60);
|
413 |
+
$timeright = ($timeright + $offset) ;
|
414 |
+
return $timeright;
|
415 |
+
}
|
416 |
+
|
417 |
+
/*
|
418 |
+
# PHP Calendar (version 2.3), written by Keith Devens
|
419 |
+
# http://keithdevens.com/software/php_calendar
|
420 |
+
# see example at http://keithdevens.com/weblog
|
421 |
+
# License: http://keithdevens.com/software/license
|
422 |
+
*/
|
423 |
+
//
|
424 |
+
// Currently not used in WassUp it's a next implementation idea
|
425 |
+
//
|
426 |
+
function generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array()){
|
427 |
+
$first_of_month = gmmktime(0,0,0,$month,1,$year);
|
428 |
+
#remember that mktime will automatically correct if invalid dates are entered
|
429 |
+
# for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
|
430 |
+
# this provides a built in "rounding" feature to generate_calendar()
|
431 |
+
|
432 |
+
$day_names = array(); #generate all the day names according to the current locale
|
433 |
+
for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400) #January 4, 1970 was a Sunday
|
434 |
+
$day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day name
|
435 |
+
|
436 |
+
list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
|
437 |
+
$weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day
|
438 |
+
$title = htmlentities(ucfirst($month_name)).' '.$year; #note that some locales don't capitalize month and day names
|
439 |
+
|
440 |
+
#Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03
|
441 |
+
@list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable
|
442 |
+
if($p) $p = '<span class="calendar-prev">'.($pl ? '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' : $p).'</span> ';
|
443 |
+
if($n) $n = ' <span class="calendar-next">'.($nl ? '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' : $n).'</span>';
|
444 |
+
$calendar = '<table class="calendar">'."\n".
|
445 |
+
'<caption class="calendar-month">'.$p.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).$n."</caption>\n<tr>";
|
446 |
+
|
447 |
+
if($day_name_length){ #if the day names should be shown ($day_name_length > 0)
|
448 |
+
#if day_name_length is >3, the full name of the day will be printed
|
449 |
+
foreach($day_names as $d)
|
450 |
+
$calendar .= '<th abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>';
|
451 |
+
$calendar .= "</tr>\n<tr>";
|
452 |
+
}
|
453 |
+
|
454 |
+
if($weekday > 0) $calendar .= '<td colspan="'.$weekday.'"> </td>'; #initial 'empty' days
|
455 |
+
for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
|
456 |
+
if($weekday == 7){
|
457 |
+
$weekday = 0; #start a new week
|
458 |
+
$calendar .= "</tr>\n<tr>";
|
459 |
+
}
|
460 |
+
if(isset($days[$day]) and is_array($days[$day])){
|
461 |
+
@list($link, $classes, $content) = $days[$day];
|
462 |
+
if(is_null($content)) $content = $day;
|
463 |
+
$calendar .= '<td'.($classes ? ' class="'.htmlspecialchars($classes).'">' : '>').
|
464 |
+
($link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>';
|
465 |
+
}
|
466 |
+
else $calendar .= "<td>$day</td>";
|
467 |
+
}
|
468 |
+
if($weekday != 7) $calendar .= '<td colspan="'.(7-$weekday).'"> </td>'; #remaining "empty" days
|
469 |
+
|
470 |
+
return $calendar."</tr>\n</table>\n";
|
471 |
+
}
|
472 |
+
|
473 |
+
//Truncate $input string to a length of $max
|
474 |
+
function stringShortener($input, $max=0, $separator="(...)", $exceedFromEnd=0){
|
475 |
+
if(!$input || !is_string($input)){return false;};
|
476 |
+
|
477 |
+
//Replace all %-hex chars with literals and trim the input string of whitespaces
|
478 |
+
// ...because it is shorter and more legible -Helene D. 11/18/07
|
479 |
+
$input = trim(rawurldecode($input));
|
480 |
+
|
481 |
+
$inputlen=strlen($input);
|
482 |
+
$max=(is_numeric($max))?(integer)$max:$inputlen;
|
483 |
+
if($max>=$inputlen){return $input;};
|
484 |
+
$separator=($separator)?$separator:"(...)";
|
485 |
+
$modulus=(($max%2));
|
486 |
+
$halfMax=floor($max/2);
|
487 |
+
$begin="";
|
488 |
+
if(!$modulus){$begin=substr($input, 0, $halfMax);}
|
489 |
+
else{$begin=(!$exceedFromEnd)? substr($input, 0, $halfMax+1) : substr($input, 0, $halfMax);}
|
490 |
+
$end="";
|
491 |
+
if(!$modulus){$end=substr($input,$inputlen-$halfMax);}
|
492 |
+
else{$end=($exceedFromEnd)? substr($input,$inputlen-$halfMax-1) :substr($input,$inputlen-$halfMax);}
|
493 |
+
$extracted=substr( $input, strpos($input,$begin)+strlen($begin), $inputlen-$max );
|
494 |
+
$outstring = $begin.$separator.$end;
|
495 |
+
if (strlen($outstring) >= $inputlen) { //Because "Fir(...)fox" is longer than "Firefox"
|
496 |
+
$outstring = $input;
|
497 |
+
}
|
498 |
+
//# added WP 2.x function attribute_escape to help make malicious
|
499 |
+
//# code harmless when echoed to screen...
|
500 |
+
if (function_exists('attribute_escape')) {
|
501 |
+
return attribute_escape($outstring);
|
502 |
+
} else {
|
503 |
+
return addslashes($outstring);
|
504 |
+
}
|
505 |
+
}
|
506 |
+
|
507 |
+
//# Return a value of true if url argument is a root url and false when
|
508 |
+
//# url constains a subdirectory path or query parameters...
|
509 |
+
//# - Helene D. 2007
|
510 |
+
function url_rootcheck($urltocheck) {
|
511 |
+
$isroot = false;
|
512 |
+
//url must begin with 'http://'
|
513 |
+
if (strncasecmp($urltocheck,'http://',7) == 0) {
|
514 |
+
$isroot = true;
|
515 |
+
$urlparts=parse_url($urltocheck);
|
516 |
+
if (!empty($urlparts['path']) && $urlparts['path'] != "/") {
|
517 |
+
$isroot=false;
|
518 |
+
} elseif (!empty($urlparts['query'])) {
|
519 |
+
$isroot=false;
|
520 |
+
}
|
521 |
+
}
|
522 |
+
return $isroot;
|
523 |
+
}
|
524 |
+
|
525 |
+
//#from a page/post url input, output a url with "$siteurl" prepended for
|
526 |
+
//# blogs that have wordpress installed in a separate folder
|
527 |
+
//# -Helene D. 1/22/08
|
528 |
+
function wAddSiteurl($inputurl) {
|
529 |
+
$wpurl = get_bloginfo('wpurl');
|
530 |
+
$siteurl = get_bloginfo('siteurl');
|
531 |
+
if (strcasecmp($siteurl, $wpurl) == 0) {
|
532 |
+
$outputurl=$inputurl;
|
533 |
+
} elseif (stristr($inputurl,$siteurl) === FALSE && url_rootcheck($siteurl)) {
|
534 |
+
$outputurl="$siteurl$inputurl";
|
535 |
+
} else {
|
536 |
+
$outputurl=$inputurl;
|
537 |
+
}
|
538 |
+
return $outputurl;
|
539 |
+
}
|
540 |
+
|
541 |
+
//Output wassup records in Digg spy style...
|
542 |
+
function spyview ($from_date="",$to_date="",$rows="999") {
|
543 |
+
global $wpdb;
|
544 |
+
|
545 |
+
//check for arguments...
|
546 |
+
if(empty($to_date)) $to_date = wassup_get_time();
|
547 |
+
if (empty($from_date)) $from_date = ($to_date - 5);
|
548 |
+
$table_name = $wpdb->prefix . "wassup";
|
549 |
+
|
550 |
+
if (function_exists('get_option')) {
|
551 |
+
$wassup_settings = get_option('wassup_settings');
|
552 |
+
}
|
553 |
+
if (!empty($wassup_settings['wassup_screen_res'])) {
|
554 |
+
$screen_res_size = (int) $wassup_settings['wassup_screen_res'];
|
555 |
+
} else {
|
556 |
+
$screen_res_size = 670;
|
557 |
+
}
|
558 |
+
$max_char_len = ($screen_res_size)/10;
|
559 |
+
if (function_exists('get_bloginfo')) {
|
560 |
+
$wpurl = get_bloginfo('wpurl');
|
561 |
+
$siteurl = get_bloginfo('siteurl');
|
562 |
+
}
|
563 |
+
|
564 |
+
$qryC = $wpdb->get_results("SELECT id, wassup_id, max(timestamp) as max_timestamp, ip, hostname, searchengine, urlrequested, agent, referrer, spider, username, comment_author FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date GROUP BY id ORDER BY max_timestamp DESC");
|
565 |
+
|
566 |
+
if (!empty($qryC)) {
|
567 |
+
//restrict # of rows to display when needed...
|
568 |
+
$row_count = 0;
|
569 |
+
//display the rows...
|
570 |
+
foreach ($qryC as $cv) {
|
571 |
+
if ( $row_count < (int)$rows ) {
|
572 |
+
$timestamp = $cv->max_timestamp;
|
573 |
+
$ip = @explode(",", $cv->ip);
|
574 |
+
if ($cv->referrer != '') {
|
575 |
+
if (!eregi($wpurl, $cv->referrer) OR $cv->searchengine != "") {
|
576 |
+
if (!eregi($wpurl, $cv->referrer) AND $cv->searchengine == "") {
|
577 |
+
$referrer = '<a href="'.$cv->referrer.'" target=_"BLANK"><span style="font-weight: bold;">'.stringShortener($cv->referrer, round($max_char_len*.8,0)).'</span></a>';
|
578 |
+
} else {
|
579 |
+
$referrer = '<a href="'.$cv->referrer.'" target=_"BLANK">'.stringShortener($cv->referrer, round($max_char_len*.9,0)).'</a>';
|
580 |
+
}
|
581 |
+
} else {
|
582 |
+
$referrer = "Direct hit";
|
583 |
+
}
|
584 |
+
} else {
|
585 |
+
$referrer = "From your blog";
|
586 |
+
}
|
587 |
+
// User is logged in or is a comment's author
|
588 |
+
if ($cv->username != "" AND $cv->comment_author != "") {
|
589 |
+
$unclass = "-log";
|
590 |
+
} elseif ($cv->comment_author != "") {
|
591 |
+
$unclass = "-aut";
|
592 |
+
} elseif ($cv->spider != "") {
|
593 |
+
$unclass = "-spider";
|
594 |
+
} ?>
|
595 |
+
<div class="sum-spy">
|
596 |
+
<span class="sum-box<?php print $unclass; ?>">
|
597 |
+
<?php print $ip[0]; ?></span>
|
598 |
+
<div class="sum-det"><span class="det1">
|
599 |
+
<?php
|
600 |
+
print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cv->urlrequested))).'" target="_BLANK">';
|
601 |
+
print stringShortener(html_entity_decode($cv->urlrequested), round($max_char_len*.9,0)); ?>
|
602 |
+
</a></span><br />
|
603 |
+
<span class="det2"><strong><?php print gmdate("H:i:s", $timestamp); ?> - </strong>
|
604 |
+
<?php print $referrer; ?></span>
|
605 |
+
</div></div>
|
606 |
+
<?php } //end if row_count
|
607 |
+
$row_count=$row_count+1;
|
608 |
+
} //end foreach
|
609 |
+
} else {
|
610 |
+
//display "no activity" periodically so we know spy is running...
|
611 |
+
if ((int)$to_date%7 == 0 ) {
|
612 |
+
echo '<div class="sum-spy"><span class="det3">'.gmdate("H:i:s",$to_date).' - No visitor activity :-( </span></div>';
|
613 |
+
}
|
614 |
+
} //end if !empty($qryC)
|
615 |
+
} //end function spyview
|
616 |
+
|
617 |
+
// How many digits have an integer
|
618 |
+
function digit_count($n, $base=10) {
|
619 |
+
|
620 |
+
if($n == 0) return 1;
|
621 |
+
|
622 |
+
if($base == 10) {
|
623 |
+
# using the built-in log10(x)
|
624 |
+
# might be more accurate than log(x)/log(10).
|
625 |
+
return 1 + floor(log10(abs($n)));
|
626 |
+
}else{
|
627 |
+
# here logB(x) = log(x)/log(B) will have to do.
|
628 |
+
return 1 + floor(log(abs($n))/ log($base));
|
629 |
+
}
|
630 |
+
}
|
631 |
+
|
632 |
+
//Round the integer to the next near 10
|
633 |
+
function roundup($value) {
|
634 |
+
$dg = digit_count($value);
|
635 |
+
if ($dg <= 2) {
|
636 |
+
$dg = 1;
|
637 |
+
} else {
|
638 |
+
$dg = ($dg-2);
|
639 |
+
}
|
640 |
+
return (ceil(intval($value)/pow(10, $dg))*pow(10, $dg)+pow(10, $dg));
|
641 |
+
}
|
642 |
+
|
643 |
+
function chart_data($values, $pages=null, $atime=null, $type, $charttype=null) {
|
644 |
+
// Port of JavaScript from http://code.google.com/apis/chart/
|
645 |
+
// http://james.cridland.net/code
|
646 |
+
|
647 |
+
// First, find the maximum value from the values given
|
648 |
+
|
649 |
+
$maxValue = roundup(max(array_merge($values, $pages)));
|
650 |
+
//$maxValue = roundup(max($values));
|
651 |
+
$halfValue = ($maxValue/2);
|
652 |
+
//$maxPage = roundup(max($pages));
|
653 |
+
//$halfPage = ($maxPage/2);
|
654 |
+
|
655 |
+
// A list of encoding characters to help later, as per Google's example
|
656 |
+
$simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
657 |
+
|
658 |
+
$chartData = "s:";
|
659 |
+
|
660 |
+
if ($charttype == "main") {
|
661 |
+
for ($i = 0; $i < count($values); $i++) {
|
662 |
+
$currentValue = $values[$i];
|
663 |
+
$currentTime = $atime[$i];
|
664 |
+
$label_time.=ereg_replace(" ", "+", $currentTime)."|";
|
665 |
+
|
666 |
+
if ($currentValue > -1) {
|
667 |
+
$chartData.=substr($simpleEncoding,61*($currentValue/$maxValue),1);
|
668 |
+
}
|
669 |
+
else {
|
670 |
+
$chartData.='_';
|
671 |
+
}
|
672 |
+
}
|
673 |
+
// Add pageviews line to the chart
|
674 |
+
if (count($pages) != 0) {
|
675 |
+
$chartData.=",";
|
676 |
+
for ($i = 0; $i < count($pages); $i++) {
|
677 |
+
$currentPage = $pages[$i];
|
678 |
+
$currentTime = $atime[$i];
|
679 |
+
|
680 |
+
if ($currentPage > -1) {
|
681 |
+
$chartData.=substr($simpleEncoding,61*($currentPage/$maxValue),1);
|
682 |
+
}
|
683 |
+
else {
|
684 |
+
$chartData.='_';
|
685 |
+
}
|
686 |
+
}
|
687 |
+
}
|
688 |
+
// Return the chart data - and let the Y axis to show the maximum value
|
689 |
+
return $chartData."&chxt=x,y&chxl=0:|".$label_time."|1:|0|".$halfValue."|".$maxValue."&chxs=0,6b6b6b,9";
|
690 |
+
|
691 |
+
} else {
|
692 |
+
for ($i = 0; $i < count($values); $i++) {
|
693 |
+
$currentValue = $values[$i];
|
694 |
+
$currentTime = $atime[$i];
|
695 |
+
$label_time.=ereg_replace(" ", "+", $currentTime)."|";
|
696 |
+
|
697 |
+
if ($currentValue > -1) {
|
698 |
+
$chartData.=substr($simpleEncoding,61*($currentValue/$maxValue),1);
|
699 |
+
}
|
700 |
+
else {
|
701 |
+
$chartData.='_';
|
702 |
+
}
|
703 |
+
}
|
704 |
+
return $chartData."&chxt=x,y&chxl=0:|".$label_time."|1:|0|".$halfValue."|".$maxValue."&chxs=0,6b6b6b,9";
|
705 |
+
}
|
706 |
+
|
707 |
+
}
|
708 |
+
|
709 |
+
// This is the new MAIN QUERY e COUNT ITEMS queries done by php class
|
710 |
+
class MainItems {
|
711 |
+
var $tableName;
|
712 |
+
var $searchString;
|
713 |
+
var $from_date;
|
714 |
+
var $to_date;
|
715 |
+
var $whereis;
|
716 |
+
var $ItemsType;
|
717 |
+
var $Limit;
|
718 |
+
var $Last;
|
719 |
+
var $Marked_ip;
|
720 |
+
var $WpUrl;
|
721 |
+
|
722 |
+
function calc_tot($Type, $Search="", $pertype="") {
|
723 |
+
global $wpdb;
|
724 |
+
$this->ItemsType = $Type;
|
725 |
+
$this->searchString = $Search;
|
726 |
+
|
727 |
+
if ($Search != "") { $ss = " AND (ip LIKE '%".$this->searchString."%' OR hostname LIKE '%".$this->searchString."%' OR urlrequested LIKE '%".$this->searchString."%' OR agent LIKE '%".$this->searchString."%' OR referrer LIKE '%".$this->searchString."%') "; }
|
728 |
+
|
729 |
+
switch ($Type) {
|
730 |
+
// This is the MAIN query to show the chronology
|
731 |
+
case "main":
|
732 |
+
$qry = $wpdb->get_results("SELECT id, wassup_id, max(timestamp) as max_timestamp, ip, hostname, urlrequested, agent, referrer, search, searchpage, os, browser, language, screen_res, searchengine, spider, feed, username, comment_author, spam FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis." GROUP BY wassup_id ORDER BY max_timestamp DESC ".$this->Limit."");
|
733 |
+
return $qry;
|
734 |
+
break;
|
735 |
+
// These are the queries to count the items hits/pages/spam
|
736 |
+
case "items":
|
737 |
+
$itemstot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) AS itemstot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
|
738 |
+
return $itemstot;
|
739 |
+
break;
|
740 |
+
case "pages":
|
741 |
+
$pagestot = $wpdb->get_var("SELECT COUNT(wassup_id) AS pagestot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
|
742 |
+
return $pagestot;
|
743 |
+
break;
|
744 |
+
case "spam":
|
745 |
+
$spamtot = $wpdb->get_var("SELECT COUNT(wassup_id) AS spamtot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND spam>0 AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
|
746 |
+
return $spamtot;
|
747 |
+
break;
|
748 |
+
case "items_by_type":
|
749 |
+
switch ($pertype) {
|
750 |
+
case "spam":
|
751 |
+
$items_type = "spam>0";
|
752 |
+
break;
|
753 |
+
case "marked":
|
754 |
+
$items_type = "ip LIKE '%".$this->Marked_ip."%'";
|
755 |
+
break;
|
756 |
+
case "searchengine":
|
757 |
+
$items_type = "searchengine!='' AND spam=0";
|
758 |
+
break;
|
759 |
+
case "referrer":
|
760 |
+
$items_type = "searchengine='' AND referrer NOT LIKE '%".$this->WpUrl."%' AND referrer!='' AND spam=0";
|
761 |
+
break;
|
762 |
+
case "direct":
|
763 |
+
$items_type = "searchengine='' AND (referrer LIKE '%".$this->WpUrl."%' OR referrer='') AND spam=0";
|
764 |
+
break;
|
765 |
+
}
|
766 |
+
$itemstot_by_type = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) AS itemstot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND $items_type AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
|
767 |
+
return $itemstot_by_type;
|
768 |
+
break;
|
769 |
+
}
|
770 |
+
}
|
771 |
+
|
772 |
+
function TheChart($Ctype, $Res, $Search="") {
|
773 |
+
global $wpdb;
|
774 |
+
$this->searchString = $Search;
|
775 |
+
$this->Last = $Ctype;
|
776 |
+
switch ($Ctype) {
|
777 |
+
case 1:
|
778 |
+
$label = "Last 24 Hours";
|
779 |
+
$strto = "24 hours";
|
780 |
+
$cc = "%H";
|
781 |
+
$cd = "%H:00";
|
782 |
+
break;
|
783 |
+
case 7:
|
784 |
+
$label = "Last 7 Days";
|
785 |
+
$strto = "7 days";
|
786 |
+
$cc = "%d";
|
787 |
+
$cd = "%a %d %b";
|
788 |
+
break;
|
789 |
+
case 30:
|
790 |
+
$label = "Last Month";
|
791 |
+
$strto = "30 days";
|
792 |
+
$cc = "%d";
|
793 |
+
$cd = "%d %b";
|
794 |
+
break;
|
795 |
+
case 365:
|
796 |
+
$label = "Last Year";
|
797 |
+
$strto = "12 months";
|
798 |
+
$cc = "%m";
|
799 |
+
$cd = "%b %Y";
|
800 |
+
break;
|
801 |
+
}
|
802 |
+
if ($Search != "") { $ss = " AND (ip LIKE '%".$this->searchString."%' OR hostname LIKE '%".$this->searchString."%' OR urlrequested LIKE '%".$this->searchString."%' OR agent LIKE '%".$this->searchString."%' OR referrer LIKE '%".$this->searchString."%') "; }
|
803 |
+
$hour_todate = $this->to_date;
|
804 |
+
$hour_fromdate = strtotime("-".$strto, $hour_todate);
|
805 |
+
$aitems = $wpdb->get_results("SELECT COUNT(DISTINCT wassup_id) as items, COUNT(wassup_id) as pages, DATE_FORMAT(FROM_UNIXTIME(timestamp), '$cd') as thedate FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN $hour_fromdate AND $hour_todate ".$this->whereis." $ss GROUP BY DATE_FORMAT(FROM_UNIXTIME(timestamp), '$cc') ORDER BY timestamp", ARRAY_A);
|
806 |
+
foreach ($aitems as $bhits) {
|
807 |
+
$ahits[] = $bhits['items'];
|
808 |
+
$apages[] = $bhits['pages'];
|
809 |
+
$atime[] = $bhits['thedate'];
|
810 |
+
}
|
811 |
+
|
812 |
+
echo "<div id='placeholder' align='center'>
|
813 |
+
<img src=http://chart.apis.google.com/chart?chtt=".urlencode($label)."&chls=4,1,0|2,6,2&chco=0077cc,FF6D06&chm=B,14568A30,0,0,0&chg=10,20,2,5&cht=lc&chs=".$Res."x125&chd=".chart_data($ahits, $apages, $atime, $cc, "main").">
|
814 |
+
</div>";
|
815 |
+
}
|
816 |
+
|
817 |
+
}
|
818 |
+
|
819 |
+
?>
|
lib/settings.php
ADDED
@@ -0,0 +1,197 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
//# settings.php -- a wassup.php include file for changing Wassup default
|
3 |
+
//# settings in the Wassup options menu
|
4 |
+
?>
|
5 |
+
<?php
|
6 |
+
$to_date = wassup_get_time();
|
7 |
+
$from_date = @strtotime($_POST['delete_manual'], $to_date);
|
8 |
+
if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name) {
|
9 |
+
if ($_POST['delete_manual'] != "") {
|
10 |
+
$wpdb->query("DELETE FROM $table_name WHERE timestamp<'$from_date'");
|
11 |
+
$wpdb->query("OPTIMIZE TABLE $table_name");
|
12 |
+
}
|
13 |
+
if ($_POST['wassup_empty'] == "1") {
|
14 |
+
$wpdb->query("DELETE FROM $table_name");
|
15 |
+
$wpdb->query("OPTIMIZE TABLE $table_name");
|
16 |
+
}
|
17 |
+
$table_status = $wpdb->get_results("SHOW TABLE STATUS LIKE '$table_name'");
|
18 |
+
foreach ($table_status as $fstatus) {
|
19 |
+
$data_lenght = $fstatus->Data_length;
|
20 |
+
$data_rows = $fstatus->Rows;
|
21 |
+
}
|
22 |
+
$tusage = number_format(($data_lenght/1024/1024), 2, ",", " ");
|
23 |
+
$tusage2 = ($data_lenght/1024/1024);
|
24 |
+
}
|
25 |
+
|
26 |
+
$adminemail = get_bloginfo('admin_email');
|
27 |
+
|
28 |
+
if ($wassup_settings['wassup_remind_flag'] == 2) {
|
29 |
+
$alert_msg = '<p style="color:red;font-weight:bold;">'.__('ATTENTION! Your WassUp table have reached the maximum value you set, I disabled the alert, you can re-enable it here.','wassup').'</p>';
|
30 |
+
$wassup_settings['wassup_remind_flag'] = 0;
|
31 |
+
update_option('wassup_settings', $wassup_settings);
|
32 |
+
}
|
33 |
+
$alertstyle = 'color:red; background-color:#ffd;';
|
34 |
+
?>
|
35 |
+
|
36 |
+
<script type="text/javascript">
|
37 |
+
$(function() {
|
38 |
+
$('#tab_container > ul').tabs({ fxFade: true, fxSpeed: 'fast' });
|
39 |
+
});
|
40 |
+
</script>
|
41 |
+
|
42 |
+
<style type="text/css">
|
43 |
+
h3 { margin-bottom:0px; padding-bottom:5px; color:#333; }
|
44 |
+
form p { margin-top:0px; padding-top:0px; padding-left:15px; }
|
45 |
+
</style>
|
46 |
+
<h2><?php _e('Options','wassup'); ?></h2>
|
47 |
+
<p><?php _e('You can add a sidebar Widget with some useful statistics information by activating the','wassup'); ?>
|
48 |
+
<a href="/wp-admin/widgets.php"><?php _e('Wassup Widget in the Widgets menu option','wassup'); ?></a>.</p>
|
49 |
+
<p style="padding:10px 0 10px 0;"><?php _e('Select the options you want for the WassUp plugin','wassup'); ?></p>
|
50 |
+
|
51 |
+
<form action="" method="post">
|
52 |
+
<div id="tab_container">
|
53 |
+
<ul>
|
54 |
+
<li><a href="#fragment-1"><span>Basic</span></a></li>
|
55 |
+
<li><a href="#fragment-2"><span>Visitor Details</span></a></li>
|
56 |
+
<li><a href="#fragment-3"><span>Statistics Recording</span></a></li>
|
57 |
+
<li><a href="#fragment-4"><span>Actions for DB Table</span></a></li>
|
58 |
+
</ul>
|
59 |
+
|
60 |
+
<div id="fragment-1">
|
61 |
+
<!-- //Added by Helene D. to use more browser width to display visitor detail... -->
|
62 |
+
<br /><h3><?php _e('Your default screen resolution (browser width)','wassup'); ?></h3>
|
63 |
+
<p><?php _e('Default screen resolution (in pixels)','wassup'); ?>:
|
64 |
+
<select name='wassup_screen_res' style="width: 90px">
|
65 |
+
<option value='640' <?php if ($wassup_settings['wassup_screen_res'] == "640") { print "SELECTED"; } ?>> 640</option>
|
66 |
+
<option value='800' <?php if ($wassup_settings['wassup_screen_res'] == "800") { print "SELECTED"; } ?>> 800</option>
|
67 |
+
<option value='1024' <?php if ($wassup_settings['wassup_screen_res'] == "1024") { print "SELECTED"; } ?>> 1024</option>
|
68 |
+
<option value='1200' <?php if ($wassup_settings['wassup_screen_res'] == "1200") { print "SELECTED"; } ?>> 1200</option>
|
69 |
+
</select>
|
70 |
+
</p>
|
71 |
+
<br /><h3><?php _e('Set minimum users level which can view and manage WassUp plugin (default Administrators)','wassup'); ?></h3>
|
72 |
+
<p><select name="wassup_userlevel">
|
73 |
+
<option value="">--</option>
|
74 |
+
<option value="8" <?php if($wassup_settings['wassup_userlevel'] == "8") echo 'SELECTED'; ?>><?php _e('Administrators','wassup'); ?></option>
|
75 |
+
<option value="6" <?php if($wassup_settings['wassup_userlevel'] == "6") print "SELECTED"; ?>><?php _e('Contributors','wassup'); ?></option>
|
76 |
+
<option value="2" <?php if($wassup_settings['wassup_userlevel'] == "2") print "SELECTED"; ?>><?php _e('Authors','wassup'); ?></option>
|
77 |
+
</select></p><br />
|
78 |
+
<h3><?php _e('Set how many minutes wait for automatic page refresh (Current Visitors Online and Visitors Details)','wassup'); ?></h3>
|
79 |
+
<p><input type="text" name="wassup_refresh" size="2" value="<?php print $wassup_settings['wassup_refresh']; ?>" /> <?php _e('refresh minutes (default 3)','wassup'); ?></p><br />
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<div id="fragment-2">
|
83 |
+
<br /><h3><?php _e('Show visitor details for','wassup'); ?>: <select name='wassup_default_type'>
|
84 |
+
<option value='everything' <?php if ($wassup_settings['wassup_default_type'] == "everything") { print "SELECTED"; } ?>>Everything</option>
|
85 |
+
<option value='spider' <?php if ($wassup_settings['wassup_default_type'] == "spider") { print "SELECTED"; } ?>>Spiders</option>
|
86 |
+
<option value='nospider' <?php if ($wassup_settings['wassup_default_type'] == "nospider") { print "SELECTED"; } ?>>NO Spiders</option>
|
87 |
+
<option value='spam' <?php if ($wassup_settings['wassup_default_type'] == "spam") { print "SELECTED"; } ?>>Spam</option>
|
88 |
+
<option value='nospam' <?php if ($wassup_settings['wassup_default_type'] == "nospam") { print "SELECTED"; } ?>>NO Spam</option>
|
89 |
+
<option value='nospamspider' <?php if ($wassup_settings['wassup_default_type'] == "nospamspider") { print "SELECTED"; } ?>>NO Spam NO Spider</option>
|
90 |
+
<option value='loggedin' <?php if ($wassup_settings['wassup_default_type'] == "loggedin") { print "SELECTED"; } ?>>Users logged in</option>
|
91 |
+
<option value='comauthor' <?php if ($wassup_settings['wassup_default_type'] == "comauthor") { print "SELECTED"; } ?>>Comment authors</option>
|
92 |
+
<option value='searchengine' <?php if ($wassup_settings['wassup_default_type'] == "searchengine") { print "SELECTED"; } ?>>Referer from search engine</option>
|
93 |
+
<option value='referrer' <?php if ($wassup_settings['wassup_default_type'] == "referrer") { print "SELECTED"; } ?>>Referer from ext link</option>
|
94 |
+
</select>
|
95 |
+
</h3>
|
96 |
+
<br /><h3><?php _e('Number of items per page','wassup'); ?>: <select name='wassup_default_limit'>
|
97 |
+
<option value='10' <?php if ($wassup_settings['wassup_default_limit'] == "10") { print "SELECTED"; } ?>>10</option>
|
98 |
+
<option value='20' <?php if ($wassup_settings['wassup_default_limit'] == "20") { print "SELECTED"; } ?>>20</option>
|
99 |
+
<option value='50' <?php if ($wassup_settings['wassup_default_limit'] == "50") { print "SELECTED"; } ?>>50</option>
|
100 |
+
<option value='100' <?php if ($wassup_settings['wassup_default_limit'] == "100") { print "SELECTED"; } ?>>100</option>
|
101 |
+
</select>
|
102 |
+
</h3>
|
103 |
+
<br />
|
104 |
+
</div>
|
105 |
+
|
106 |
+
<div id="fragment-3">
|
107 |
+
<br /><h3><?php _e('Statistics Recording Settings','wassup'); ?></h3>
|
108 |
+
<p> <input type="checkbox" name="wassup_active" value="1" <?php if($wassup_settings['wassup_active'] == 1) print "CHECKED"; ?> /> <strong><?php _e('Enable/Disable Recording','wassup'); ?></strong></p>
|
109 |
+
<p style="margin-top:5px;"> <strong> Checkbox to record statistics for each type of "visitor"</strong><br />
|
110 |
+
<span style="padding-left:25px;padding-top:0;margin-top:0;display:block;clear:left;">
|
111 |
+
<input type="checkbox" name="wassup_loggedin" value="1" <?php if($wassup_settings['wassup_loggedin'] == 1) print "CHECKED"; ?> /> Record logged in users<br />
|
112 |
+
<input type="checkbox" name="wassup_spider" value="1" <?php if($wassup_settings['wassup_spider'] == 1) print "CHECKED"; ?> /> Record spiders and bots<br />
|
113 |
+
<input type="checkbox" name="wassup_attack" value="1" <?php if($wassup_settings['wassup_attack'] == 1) print "CHECKED"; ?> /> Record attack/exploit attempts (libwww-perl agent)<br />
|
114 |
+
</span>
|
115 |
+
</p>
|
116 |
+
<br /><p><input type="checkbox" name="wassup_spamcheck" value="1" <?php if($wassup_settings['wassup_spamcheck'] == 1 ) print "CHECKED"; ?> /> <strong><?php _e('Enable/Disable Spam Check on Records','wassup'); ?></strong></p>
|
117 |
+
<p style="margin-top:5px;"> <strong> <?php _e('Checkbox to record statistics for each type of "spam"','wassup'); ?></strong><br />
|
118 |
+
<span style="padding-left:25px;padding-top:0;margin-top:0;display:block;clear:left;">
|
119 |
+
<input type="checkbox" name="wassup_spam" value="1" <?php if($wassup_settings['wassup_spam'] == 1) print "CHECKED"; ?> /> <?php _e('Record Akismet comment spam attempts','wassup'); ?><br />
|
120 |
+
<input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_settings['wassup_refspam'] == 1) print "CHECKED"; ?> /> <?php _e('Record referrer spam attempts','wassup'); ?><br />
|
121 |
+
</span>
|
122 |
+
</p>
|
123 |
+
<br /><p><strong><?php _e('Enter source IPs to exclude from recording','wassup'); ?></strong>:
|
124 |
+
<br /><span style="padding-left:10px;display:block;clear:left;">
|
125 |
+
<textarea name="wassup_exclude" rows="4" cols="40"><?php print $wassup_settings['wassup_exclude']; ?></textarea></span>comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...)</p>
|
126 |
+
<br /><p>
|
127 |
+
<?php
|
128 |
+
echo '<strong>'.__('"Save path" directory for storing temporary files to track visitors who have cookies disabled','wassup').'</strong>:';
|
129 |
+
$sessionpath = wGetSessionpath();
|
130 |
+
if (!empty($wassup_settings['wassup_savepath']) && $wassup_settings['wassup_savepath'] != $sessionpath ) {
|
131 |
+
$sessionpath = $wassup_settings['wassup_savepath'];
|
132 |
+
}
|
133 |
+
//$sessionpath = "/fakefolder/temp"; //#debug
|
134 |
+
$sessionstyle = '';
|
135 |
+
//# check that session_save_path exists and is writable...
|
136 |
+
if ( !file_exists($sessionpath)) {
|
137 |
+
$sessionwarn = '<small style="'.$alertstyle.' font-weight:bold; padding-left:5px;"><span style="text-decoration:blink;">'.__('WARNING','wassup').'!</span> '.__('Directory does not exist or is not writable. Please modify above path or edit "session.save_path" in "php.ini" to point to a valid, writable folder','wassup').'.</small>';
|
138 |
+
$sessionstyle = $alertstyle;
|
139 |
+
} else {
|
140 |
+
//#check that the directory is writable...
|
141 |
+
$sessiontestfile = $sessionpath."/temp".time().'.txt';
|
142 |
+
if (@touch($sessiontestfile)) {
|
143 |
+
$sessionwarn ='<small style="padding-left:5px;">'.__('Note: To adjust, change the above path or edit "sessions.save_path" in','wassup').' "php.ini".</small>';
|
144 |
+
unlink($sessiontestfile);
|
145 |
+
} else {
|
146 |
+
$sessionwarn = '<small style="'.$alertstyle.' font-weight:bold; padding-left:5px;"><span style="text-decoration:blink;">'.__('WARNING','wassup').'!</span> '.__('Directory does not exist or is not writable. Please modify above path or edit "session.save_path" in "php.ini" to point to a valid, writable folder','wassup').'.</small>';
|
147 |
+
$sessionstyle = $alertstyle;
|
148 |
+
}
|
149 |
+
|
150 |
+
}
|
151 |
+
echo '<textarea name="wassup_savepath" rows="1" style="width:550px;padding-left:25px;clear:left; '.$sessionstyle.'">'.$sessionpath.'</textarea>'."\n";
|
152 |
+
echo '<br /> '.__('Use absolute directory paths only. This value is usually','wassup').' "/tmp".'."\n";
|
153 |
+
echo '<br />'.$sessionwarn."\n";
|
154 |
+
?>
|
155 |
+
</p>
|
156 |
+
<br />
|
157 |
+
</div>
|
158 |
+
|
159 |
+
<div id="fragment-4">
|
160 |
+
<br /><h3><?php _e('Select actions for table growth','wassup'); ?></h3>
|
161 |
+
<p><?php _e("WassUp table grows very fast (especially if your blog is frequently visited), I recommend you to delete some old records sometimes. You can select any option below to reset it, delete old records automatically or manually. (If you haven't database space problems you can leave the table as is)","wassup"); ?><p>
|
162 |
+
<p><?php _e('Current WassUp table usage is','wassup');
|
163 |
+
print ': <strong>';
|
164 |
+
if ( (int)$tusage >= (int)$wassup_settings['wassup_remind_mb']) {
|
165 |
+
print '<span style="'.$alertstyle.'">'.$tusage.'</span>';
|
166 |
+
} else { print $tusage; }
|
167 |
+
print ' Mb</strong> ('.$data_rows.' '.__('records','wassup').')</p>'."\n";
|
168 |
+
print $alert_msg; ?>
|
169 |
+
<br /><p><input type="checkbox" name="wassup_remind_flag" value="1" <?php if ($wassup_settings['wassup_remind_flag'] == 1) print "CHECKED"; ?>>
|
170 |
+
<strong><?php _e('Alert me','wassup'); ?></strong> (<?php _e('email to','wassup'); ?>: <strong><?php print $adminemail; ?></strong>) <?php _e('when table reaches','wassup'); ?> <input type="text" name="wassup_remind_mb" size="3" value="<?php print $wassup_settings['wassup_remind_mb']; ?>"> Mb</p>
|
171 |
+
<p><input type="checkbox" name="wassup_empty" value="1">
|
172 |
+
<strong><?php _e('Empty table','wassup'); ?></strong> (<a href="?<?php print $_SERVER['QUERY_STRING']; ?>&export=1"><?php _e('export table in SQL format','wassup'); ?></a>)</p>
|
173 |
+
<br /><p><strong>Automatically delete records older than:</strong>
|
174 |
+
<select name="delete_auto">
|
175 |
+
<option value="never" <?php if($wassup_settings['delete_auto'] == "never") print "SELECTED"; ?>>Don't delete anything</option>
|
176 |
+
<option value="-1 day" <?php if($wassup_settings['delete_auto'] == "-1 day") print "SELECTED"; ?>>24 hours</option>
|
177 |
+
<option value="-1 week" <?php if($wassup_settings['delete_auto'] == "-1 week") print "SELECTED"; ?>>1 week</option>
|
178 |
+
<option value="-1 month" <?php if($wassup_settings['delete_auto'] == "-1 month") print "SELECTED"; ?>>1 month</option>
|
179 |
+
<option value="-3 months" <?php if($wassup_settings['delete_auto'] == "-3 months") print "SELECTED"; ?>>3 months</option>
|
180 |
+
<option value="-6 months" <?php if($wassup_settings['delete_auto'] == "-6 months") print "SELECTED"; ?>>6 months</option>
|
181 |
+
<option value="-1 year" <?php if($wassup_settings['delete_auto'] == "-1 year") print "SELECTED"; ?>>1 year</option>
|
182 |
+
</select></p>
|
183 |
+
<br /><p>Delete NOW records older than:
|
184 |
+
<select name="delete_manual">
|
185 |
+
<option value="never">Action is NOT undoable</option>
|
186 |
+
<option value="-1 day">24 hours</option>
|
187 |
+
<option value="-1 week">1 week</option>
|
188 |
+
<option value="-1 month">1 month</option>
|
189 |
+
<option value="-3 months">3 months</option>
|
190 |
+
<option value="-6 months">6 months</option>
|
191 |
+
<option value="-1 year">1 year</option>
|
192 |
+
</select></p>
|
193 |
+
<br />
|
194 |
+
</div>
|
195 |
+
</div>
|
196 |
+
<p style="padding-left:0;padding-top:15px;"><input type="submit" name="submit" value="<?php _e('Save Settings','wassup'); ?>" /> <input type="reset" name="reset" value="<?php _e('Reset','wassup'); ?>" /> - <input type="submit" name="reset-to-default" value="Reset to Default Settings" /></p><br />
|
197 |
+
</form>
|
lib/spy.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (!defined('WASSUPFOLDER')) {
|
3 |
+
define('WASSUPFOLDER', dirname(__FILE__), TRUE);
|
4 |
+
}
|
5 |
+
if (!defined('ABSPATH')) {
|
6 |
+
define ('ABSPATH', substr(WASSUPFOLDER,0,strpos(WASSUPFOLDER,'/wp-content/')+1));
|
7 |
+
}
|
8 |
+
include_once(ABSPATH. 'wp-blog-header.php');
|
9 |
+
if (!function_exists('get_bloginfo')) {
|
10 |
+
include_once(ABSPATH.'wp-config.php');
|
11 |
+
}
|
12 |
+
include_once(WASSUPFOLDER. '/main.php');
|
13 |
+
$table_name = $wpdb->prefix . "wassup";
|
14 |
+
|
15 |
+
if ( $_GET['hash'] != wp_hash('wassup')) {
|
16 |
+
echo "Nothing to do here";
|
17 |
+
} else {
|
18 |
+
|
19 |
+
//Retrieve command-line arguments...
|
20 |
+
if (isset($_GET['to_date'])) $to_date = urlencode(attribute_escape($_GET['to_date']));
|
21 |
+
else $to_date = wassup_get_time();
|
22 |
+
if (isset($_GET['from_date'])) $from_date = urlencode(attribute_escape($_GET['from_date']));
|
23 |
+
else $from_date = ($to_date - 3);
|
24 |
+
if (isset($_GET['rows'])) $rows = urlencode(attribute_escape($_GET['rows']));
|
25 |
+
else $rows = 999;
|
26 |
+
//echo 'Starting spy from directory '.WASSUPFOLDER.' ABSPATH='.ABSPATH.'...<br />'; //debug...
|
27 |
+
spyview($from_date,$to_date,$rows);
|
28 |
+
}
|
readme.txt
ADDED
@@ -0,0 +1,129 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
=== Plugin Name ===
|
2 |
+
Contributors: michelem, helened
|
3 |
+
Donate link: http://www.michelem.org/
|
4 |
+
Tags: tracker, tracking, statistics, analyze, web, realtime, stats, ajax, visitors, visits, online users, details, seo, admin, spy, visitors, widgets, widget, sidebar
|
5 |
+
Requires at least: 2.3
|
6 |
+
Tested up to: 2.3.2 - 2.3.1 - 2.3
|
7 |
+
Stable tag: 1.4.5
|
8 |
+
|
9 |
+
Wordpress plugin to analyze your visitors traffic with real time stats, chart and a lot of chronological informations. It has sidebar Widget support to show current online visitors and other statistics.
|
10 |
+
|
11 |
+
== Description ==
|
12 |
+
|
13 |
+
WORPDRESS 2.2 USERS NOW YOU COULD INSTALL WASSUP USING THE 1.4.5-wp2.2 BRANCH: http://www.wpwp.org/download
|
14 |
+
|
15 |
+
WassUp is a new Wordpress plugin to track your visitors in real time. It has a very readable and fancy admin console to keep tracks of your blog's users visits.
|
16 |
+
It has a "current visitors online" view and a more detailed "visitors details" view where you can know almost everything your users are doing on your blog, it's very useful for SEO or statistics maniacs. Now it comes with a new "Spy" view in Ajax like the Digg Spy.
|
17 |
+
The aim of WassUp is the knowledge of what your visitors do when they surf your blog, it is not intended to show grouped statistics for periods like visitors per day, pageviews per months and so on (there are many others tools to better gain that, like Google Analytics). With WassUp you'll get a cronology of your blog's visits with a lot of details for each single user session.
|
18 |
+
|
19 |
+
Now WassUp works with two anti-spam function to detect and skip (if you want) referers spammers and akismet spammers.
|
20 |
+
|
21 |
+
For people with database space problem, now WassUp has some options to manage his database table, you can empty it or delete old records to prevent reaching the size limit.
|
22 |
+
|
23 |
+
Now it comes with a nice sidebar Widget which shows current visitors online, last searched terms and last external referers. The widget is fully customizable.
|
24 |
+
|
25 |
+
WassUp shows a lot of data from who is visiting your blog like:
|
26 |
+
|
27 |
+
- ip / hostname
|
28 |
+
- referer
|
29 |
+
- spider
|
30 |
+
- search engines used
|
31 |
+
- keywords
|
32 |
+
- SERP (search engine result page)
|
33 |
+
- operating system / language / browser
|
34 |
+
- pages viewed (chronologically and per user session)
|
35 |
+
- complete user agent
|
36 |
+
- name of user logged in
|
37 |
+
- name of comment's author
|
38 |
+
- top ten charts with aggregate data (top queries, requests, os, browsers)
|
39 |
+
|
40 |
+
The admin console is very nice and you can customize it by:
|
41 |
+
|
42 |
+
- records by date range
|
43 |
+
- records per page
|
44 |
+
- records per entry type (spider, users logged in, comment's authors, search engine, referer)
|
45 |
+
- expand/collapse informations (with ajax support)
|
46 |
+
|
47 |
+
There are 4 views:
|
48 |
+
|
49 |
+
- Spy view like Digg Spy
|
50 |
+
- Current Online view
|
51 |
+
- Details view
|
52 |
+
- Options to customize WassUp
|
53 |
+
|
54 |
+
Many options are customizable:
|
55 |
+
|
56 |
+
- Refreshing minutes
|
57 |
+
- details width
|
58 |
+
- Users levels required
|
59 |
+
- Enable/Disable recording
|
60 |
+
- Record or not users logged in
|
61 |
+
- Record or not spiders and bots
|
62 |
+
- Record or not exploit attempts (libwww-perl user agent)
|
63 |
+
- IPs to exclude from recording
|
64 |
+
- Alert admin for table growth
|
65 |
+
- Empty/Reset the database table
|
66 |
+
- Export current table in SQL format
|
67 |
+
- Automatically deletes records older then selected period (day, week, months, year)
|
68 |
+
- Manually deletes records older then selected period (day, week, months, year)
|
69 |
+
|
70 |
+
== Frequently Asked Questions ==
|
71 |
+
|
72 |
+
Coming soon
|
73 |
+
|
74 |
+
== Screenshots ==
|
75 |
+
|
76 |
+
You could find some screenshots at http://www.wpwp.org
|
77 |
+
|
78 |
+
== Usage ==
|
79 |
+
|
80 |
+
Installation:
|
81 |
+
|
82 |
+
- Download the plugin WassUp (Real Time Visitors Tracking)
|
83 |
+
- uncompress it with your preferred unzip/untar program or use the command line: tar xzvf wassup.tar.gz
|
84 |
+
- copy the directory wassup in your plugins directory at your wordpress blog (/wp-content/plugins)
|
85 |
+
- activate the WassUp Wordpress plugin at your Plugins admin page
|
86 |
+
|
87 |
+
Upgrading:
|
88 |
+
|
89 |
+
If you upgrade from a previous version is recommended to disable plugin before you overwrite the directory and then re-activate the plugin. (It's not needed but it should be better)
|
90 |
+
|
91 |
+
Usage:
|
92 |
+
|
93 |
+
When you activate the plugin, it works "as is". You don't have anything to do. Wait your visitors hit your blog and start seeing details (click the dashboard and go to WassUp page)
|
94 |
+
|
95 |
+
Usage of wassup_sidebar function:
|
96 |
+
|
97 |
+
if (function_exists('wassup_sidebar')) {
|
98 |
+
wassup_sidebar('');
|
99 |
+
}
|
100 |
+
|
101 |
+
Valid option values for wassup_sidebar function are:
|
102 |
+
|
103 |
+
* before_widget - html before the widget
|
104 |
+
* after_widget - html after the widget
|
105 |
+
* before_title - html before the title (default <h2>)
|
106 |
+
* after_title - html after the title (default </h2>)
|
107 |
+
* wtitle - the title (default "visitors online")
|
108 |
+
* wulclass - the ul style class (default "links")
|
109 |
+
* wchars - the max width of sentences (default 18 characters)
|
110 |
+
* wsearch - set 1 to show last searched terms (default 0)
|
111 |
+
* wsearchlimit - how many searched terms to show (default 5)
|
112 |
+
* wref - set 1 to show last referers (default 0)
|
113 |
+
* wreflimit - how many referers to show (default 5)
|
114 |
+
* wtopbr - set 1 to show top browsers (default 0)
|
115 |
+
* wtopbrlimit - how many top browsers to show (default 5)
|
116 |
+
* wtopos - set 1 to show top OS (default 0)
|
117 |
+
* wtoposlimit - how many top OS to show (default 5)
|
118 |
+
|
119 |
+
You have to put every 15 values, leave them empty if you don't want to use them, for example:
|
120 |
+
|
121 |
+
if (function_exists('wassup_sidebar')){
|
122 |
+
wassup_sidebar('','','<h2>','</h2>','Online Visitors','links',20,1,5,1,5,1,10,1,10);
|
123 |
+
}
|
124 |
+
|
125 |
+
== Infos ==
|
126 |
+
|
127 |
+
You could find every informations and much more at http://www.wpwp.org - http://trac.wpwp.org - http://www.wpwp.org/forums
|
128 |
+
|
129 |
+
Credits to: Jquery ( http://www.jquery.com ) for the amazing Ajax framework, FAMFAMFAM ( http://www.famfamfam.com/ ) for the flags icons and a big thanks to Helene D. ( http://supernatural.hellioness.com/ ) for her help to improve WassUp!
|
thickbox.css
ADDED
@@ -0,0 +1,163 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
2 |
+
/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
|
3 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
4 |
+
*{padding: 0; margin: 0;}
|
5 |
+
|
6 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
7 |
+
/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
|
8 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
9 |
+
#TB_window {
|
10 |
+
font: 12px Arial, Helvetica, sans-serif;
|
11 |
+
color: #333333;
|
12 |
+
}
|
13 |
+
|
14 |
+
#TB_secondLine {
|
15 |
+
font: 10px Arial, Helvetica, sans-serif;
|
16 |
+
color:#666666;
|
17 |
+
}
|
18 |
+
|
19 |
+
#TB_window a:link {color: #666666;}
|
20 |
+
#TB_window a:visited {color: #666666;}
|
21 |
+
#TB_window a:hover {color: #000;}
|
22 |
+
#TB_window a:active {color: #666666;}
|
23 |
+
#TB_window a:focus{color: #666666;}
|
24 |
+
|
25 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
26 |
+
/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
|
27 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
28 |
+
#TB_overlay {
|
29 |
+
position: fixed;
|
30 |
+
z-index:100;
|
31 |
+
top: 0px;
|
32 |
+
left: 0px;
|
33 |
+
height:100%;
|
34 |
+
width:100%;
|
35 |
+
}
|
36 |
+
|
37 |
+
.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
|
38 |
+
.TB_overlayBG {
|
39 |
+
background-color:#000;
|
40 |
+
filter:alpha(opacity=75);
|
41 |
+
-moz-opacity: 0.75;
|
42 |
+
opacity: 0.75;
|
43 |
+
}
|
44 |
+
|
45 |
+
* html #TB_overlay { /* ie6 hack */
|
46 |
+
position: absolute;
|
47 |
+
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
|
48 |
+
}
|
49 |
+
|
50 |
+
#TB_window {
|
51 |
+
position: fixed;
|
52 |
+
background: #ffffff;
|
53 |
+
z-index: 102;
|
54 |
+
color:#000000;
|
55 |
+
display:none;
|
56 |
+
border: 4px solid #525252;
|
57 |
+
text-align:left;
|
58 |
+
top:50%;
|
59 |
+
left:50%;
|
60 |
+
}
|
61 |
+
|
62 |
+
* html #TB_window { /* ie6 hack */
|
63 |
+
position: absolute;
|
64 |
+
margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
|
65 |
+
}
|
66 |
+
|
67 |
+
#TB_window img#TB_Image {
|
68 |
+
display:block;
|
69 |
+
margin: 15px 0 0 15px;
|
70 |
+
border-right: 1px solid #ccc;
|
71 |
+
border-bottom: 1px solid #ccc;
|
72 |
+
border-top: 1px solid #666;
|
73 |
+
border-left: 1px solid #666;
|
74 |
+
}
|
75 |
+
|
76 |
+
#TB_caption{
|
77 |
+
height:25px;
|
78 |
+
padding:7px 30px 10px 25px;
|
79 |
+
float:left;
|
80 |
+
}
|
81 |
+
|
82 |
+
#TB_closeWindow{
|
83 |
+
height:25px;
|
84 |
+
padding:11px 25px 10px 0;
|
85 |
+
float:right;
|
86 |
+
}
|
87 |
+
|
88 |
+
#TB_closeAjaxWindow{
|
89 |
+
padding:7px 10px 5px 0;
|
90 |
+
margin-bottom:1px;
|
91 |
+
text-align:right;
|
92 |
+
float:right;
|
93 |
+
}
|
94 |
+
|
95 |
+
#TB_ajaxWindowTitle{
|
96 |
+
float:left;
|
97 |
+
padding:7px 0 5px 10px;
|
98 |
+
margin-bottom:1px;
|
99 |
+
}
|
100 |
+
|
101 |
+
#TB_title{
|
102 |
+
background-color:#e8e8e8;
|
103 |
+
height:27px;
|
104 |
+
}
|
105 |
+
|
106 |
+
#TB_ajaxContent{
|
107 |
+
clear:both;
|
108 |
+
padding:2px 15px 15px 15px;
|
109 |
+
overflow:auto;
|
110 |
+
text-align:left;
|
111 |
+
line-height:1.4em;
|
112 |
+
}
|
113 |
+
|
114 |
+
#TB_ajaxContent.TB_modal{
|
115 |
+
padding:15px;
|
116 |
+
}
|
117 |
+
|
118 |
+
#TB_ajaxContent p{
|
119 |
+
padding:5px 0px 5px 0px;
|
120 |
+
}
|
121 |
+
|
122 |
+
#TB_load{
|
123 |
+
position: fixed;
|
124 |
+
display:none;
|
125 |
+
height:13px;
|
126 |
+
width:208px;
|
127 |
+
z-index:103;
|
128 |
+
top: 50%;
|
129 |
+
left: 50%;
|
130 |
+
margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
|
131 |
+
}
|
132 |
+
|
133 |
+
* html #TB_load { /* ie6 hack */
|
134 |
+
position: absolute;
|
135 |
+
margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
|
136 |
+
}
|
137 |
+
|
138 |
+
#TB_HideSelect{
|
139 |
+
z-index:99;
|
140 |
+
position:fixed;
|
141 |
+
top: 0;
|
142 |
+
left: 0;
|
143 |
+
background-color:#fff;
|
144 |
+
border:none;
|
145 |
+
filter:alpha(opacity=0);
|
146 |
+
-moz-opacity: 0;
|
147 |
+
opacity: 0;
|
148 |
+
height:100%;
|
149 |
+
width:100%;
|
150 |
+
}
|
151 |
+
|
152 |
+
* html #TB_HideSelect { /* ie6 hack */
|
153 |
+
position: absolute;
|
154 |
+
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
|
155 |
+
}
|
156 |
+
|
157 |
+
#TB_iframeContent{
|
158 |
+
clear:both;
|
159 |
+
border:none;
|
160 |
+
margin-bottom:-1px;
|
161 |
+
margin-top:1px;
|
162 |
+
_margin-bottom:1px;
|
163 |
+
}
|
thickbox/loadingAnimation.gif
ADDED
Binary file
|
thickbox/macFFBgHack.png
ADDED
Binary file
|
thickbox/thickbox.css
ADDED
@@ -0,0 +1,163 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
2 |
+
/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
|
3 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
4 |
+
*{padding: 0; margin: 0;}
|
5 |
+
|
6 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
7 |
+
/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
|
8 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
9 |
+
#TB_window {
|
10 |
+
font: 12px Arial, Helvetica, sans-serif;
|
11 |
+
color: #333333;
|
12 |
+
}
|
13 |
+
|
14 |
+
#TB_secondLine {
|
15 |
+
font: 10px Arial, Helvetica, sans-serif;
|
16 |
+
color:#666666;
|
17 |
+
}
|
18 |
+
|
19 |
+
#TB_window a:link {color: #666666;}
|
20 |
+
#TB_window a:visited {color: #666666;}
|
21 |
+
#TB_window a:hover {color: #000;}
|
22 |
+
#TB_window a:active {color: #666666;}
|
23 |
+
#TB_window a:focus{color: #666666;}
|
24 |
+
|
25 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
26 |
+
/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
|
27 |
+
/* ----------------------------------------------------------------------------------------------------------------*/
|
28 |
+
#TB_overlay {
|
29 |
+
position: fixed;
|
30 |
+
z-index:100;
|
31 |
+
top: 0px;
|
32 |
+
left: 0px;
|
33 |
+
height:100%;
|
34 |
+
width:100%;
|
35 |
+
}
|
36 |
+
|
37 |
+
.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
|
38 |
+
.TB_overlayBG {
|
39 |
+
background-color:#000;
|
40 |
+
filter:alpha(opacity=75);
|
41 |
+
-moz-opacity: 0.75;
|
42 |
+
opacity: 0.75;
|
43 |
+
}
|
44 |
+
|
45 |
+
* html #TB_overlay { /* ie6 hack */
|
46 |
+
position: absolute;
|
47 |
+
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
|
48 |
+
}
|
49 |
+
|
50 |
+
#TB_window {
|
51 |
+
position: fixed;
|
52 |
+
background: #ffffff;
|
53 |
+
z-index: 102;
|
54 |
+
color:#000000;
|
55 |
+
display:none;
|
56 |
+
border: 4px solid #525252;
|
57 |
+
text-align:left;
|
58 |
+
top:50%;
|
59 |
+
left:50%;
|
60 |
+
}
|
61 |
+
|
62 |
+
* html #TB_window { /* ie6 hack */
|
63 |
+
position: absolute;
|
64 |
+
margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
|
65 |
+
}
|
66 |
+
|
67 |
+
#TB_window img#TB_Image {
|
68 |
+
display:block;
|
69 |
+
margin: 15px 0 0 15px;
|
70 |
+
border-right: 1px solid #ccc;
|
71 |
+
border-bottom: 1px solid #ccc;
|
72 |
+
border-top: 1px solid #666;
|
73 |
+
border-left: 1px solid #666;
|
74 |
+
}
|
75 |
+
|
76 |
+
#TB_caption{
|
77 |
+
height:25px;
|
78 |
+
padding:7px 30px 10px 25px;
|
79 |
+
float:left;
|
80 |
+
}
|
81 |
+
|
82 |
+
#TB_closeWindow{
|
83 |
+
height:25px;
|
84 |
+
padding:11px 25px 10px 0;
|
85 |
+
float:right;
|
86 |
+
}
|
87 |
+
|
88 |
+
#TB_closeAjaxWindow{
|
89 |
+
padding:7px 10px 5px 0;
|
90 |
+
margin-bottom:1px;
|
91 |
+
text-align:right;
|
92 |
+
float:right;
|
93 |
+
}
|
94 |
+
|
95 |
+
#TB_ajaxWindowTitle{
|
96 |
+
float:left;
|
97 |
+
padding:7px 0 5px 10px;
|
98 |
+
margin-bottom:1px;
|
99 |
+
}
|
100 |
+
|
101 |
+
#TB_title{
|
102 |
+
background-color:#e8e8e8;
|
103 |
+
height:27px;
|
104 |
+
}
|
105 |
+
|
106 |
+
#TB_ajaxContent{
|
107 |
+
clear:both;
|
108 |
+
padding:2px 15px 15px 15px;
|
109 |
+
overflow:auto;
|
110 |
+
text-align:left;
|
111 |
+
line-height:1.4em;
|
112 |
+
}
|
113 |
+
|
114 |
+
#TB_ajaxContent.TB_modal{
|
115 |
+
padding:15px;
|
116 |
+
}
|
117 |
+
|
118 |
+
#TB_ajaxContent p{
|
119 |
+
padding:5px 0px 5px 0px;
|
120 |
+
}
|
121 |
+
|
122 |
+
#TB_load{
|
123 |
+
position: fixed;
|
124 |
+
display:none;
|
125 |
+
height:13px;
|
126 |
+
width:208px;
|
127 |
+
z-index:103;
|
128 |
+
top: 50%;
|
129 |
+
left: 50%;
|
130 |
+
margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
|
131 |
+
}
|
132 |
+
|
133 |
+
* html #TB_load { /* ie6 hack */
|
134 |
+
position: absolute;
|
135 |
+
margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
|
136 |
+
}
|
137 |
+
|
138 |
+
#TB_HideSelect{
|
139 |
+
z-index:99;
|
140 |
+
position:fixed;
|
141 |
+
top: 0;
|
142 |
+
left: 0;
|
143 |
+
background-color:#fff;
|
144 |
+
border:none;
|
145 |
+
filter:alpha(opacity=0);
|
146 |
+
-moz-opacity: 0;
|
147 |
+
opacity: 0;
|
148 |
+
height:100%;
|
149 |
+
width:100%;
|
150 |
+
}
|
151 |
+
|
152 |
+
* html #TB_HideSelect { /* ie6 hack */
|
153 |
+
position: absolute;
|
154 |
+
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
|
155 |
+
}
|
156 |
+
|
157 |
+
#TB_iframeContent{
|
158 |
+
clear:both;
|
159 |
+
border:none;
|
160 |
+
margin-bottom:-1px;
|
161 |
+
margin-top:1px;
|
162 |
+
_margin-bottom:1px;
|
163 |
+
}
|
thickbox/thickbox.js
ADDED
@@ -0,0 +1,10 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/*
|
2 |
+
* Thickbox 3 - One Box To Rule Them All.
|
3 |
+
* By Cody Lindley (http://www.codylindley.com)
|
4 |
+
* Copyright (c) 2007 cody lindley
|
5 |
+
* Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
|
6 |
+
*/
|
7 |
+
|
8 |
+
var tb_pathToImage = "/wp-content/plugins/wassup/thickbox/loadingAnimation.gif";
|
9 |
+
|
10 |
+
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
|
ui.tabs.css
ADDED
@@ -0,0 +1,113 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/* Caution! Ensure accessibility in print and other media types... */
|
2 |
+
@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
|
3 |
+
.ui-tabs-hide {
|
4 |
+
display: none;
|
5 |
+
}
|
6 |
+
}
|
7 |
+
|
8 |
+
/* Hide useless elements in print layouts... */
|
9 |
+
@media print {
|
10 |
+
.ui-tabs-nav {
|
11 |
+
display: none;
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
/* Skin */
|
16 |
+
.ui-tabs-nav, .ui-tabs-panel {
|
17 |
+
font-family: "Trebuchet MS", Trebuchet, Verdana, Helvetica, Arial, sans-serif;
|
18 |
+
font-size: 12px;
|
19 |
+
}
|
20 |
+
.ui-tabs-nav {
|
21 |
+
list-style: none;
|
22 |
+
margin: 0;
|
23 |
+
padding: 0 0 0 4px;
|
24 |
+
}
|
25 |
+
.ui-tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
|
26 |
+
display: block;
|
27 |
+
clear: both;
|
28 |
+
content: " ";
|
29 |
+
}
|
30 |
+
.ui-tabs-nav li {
|
31 |
+
float: left;
|
32 |
+
margin: 0 0 0 1px;
|
33 |
+
min-width: 84px; /* be nice to Opera */
|
34 |
+
}
|
35 |
+
.ui-tabs-nav a, .ui-tabs-nav a span {
|
36 |
+
display: block;
|
37 |
+
padding: 0 10px;
|
38 |
+
background: url(img/tab.png) no-repeat;
|
39 |
+
}
|
40 |
+
.ui-tabs-nav a {
|
41 |
+
margin: 1px 0 0; /* position: relative makes opacity fail for disabled tab in IE */
|
42 |
+
padding-left: 0;
|
43 |
+
color: #27537a;
|
44 |
+
font-weight: bold;
|
45 |
+
line-height: 1.2;
|
46 |
+
text-align: center;
|
47 |
+
text-decoration: none;
|
48 |
+
white-space: nowrap; /* required in IE 6 */
|
49 |
+
outline: 0; /* prevent dotted border in Firefox */
|
50 |
+
}
|
51 |
+
.ui-tabs-nav .ui-tabs-selected a {
|
52 |
+
position: relative;
|
53 |
+
top: 1px;
|
54 |
+
z-index: 2;
|
55 |
+
margin-top: 0;
|
56 |
+
color: #000;
|
57 |
+
}
|
58 |
+
.ui-tabs-nav a span {
|
59 |
+
width: 64px; /* IE 6 treats width as min-width */
|
60 |
+
min-width: 64px;
|
61 |
+
height: 18px; /* IE 6 treats height as min-height */
|
62 |
+
min-height: 18px;
|
63 |
+
padding-top: 6px;
|
64 |
+
padding-right: 0;
|
65 |
+
}
|
66 |
+
*>.ui-tabs-nav a span { /* hide from IE 6 */
|
67 |
+
width: auto;
|
68 |
+
height: auto;
|
69 |
+
}
|
70 |
+
.ui-tabs-nav .ui-tabs-selected a span {
|
71 |
+
padding-bottom: 1px;
|
72 |
+
}
|
73 |
+
.ui-tabs-nav .ui-tabs-selected a, .ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active {
|
74 |
+
background-position: 100% -150px;
|
75 |
+
}
|
76 |
+
.ui-tabs-nav a, .ui-tabs-nav .ui-tabs-disabled a:hover, .ui-tabs-nav .ui-tabs-disabled a:focus, .ui-tabs-nav .ui-tabs-disabled a:active {
|
77 |
+
background-position: 100% -100px;
|
78 |
+
}
|
79 |
+
.ui-tabs-nav .ui-tabs-selected a span, .ui-tabs-nav a:hover span, .ui-tabs-nav a:focus span, .ui-tabs-nav a:active span {
|
80 |
+
background-position: 0 -50px;
|
81 |
+
}
|
82 |
+
.ui-tabs-nav a span, .ui-tabs-nav .ui-tabs-disabled a:hover span, .ui-tabs-nav .ui-tabs-disabled a:focus span, .ui-tabs-nav .ui-tabs-disabled a:active span {
|
83 |
+
background-position: 0 0;
|
84 |
+
}
|
85 |
+
.ui-tabs-nav .ui-tabs-selected a:link, .ui-tabs-nav .ui-tabs-selected a:visited, .ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
|
86 |
+
cursor: text;
|
87 |
+
}
|
88 |
+
.ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active,
|
89 |
+
.ui-tabs-nav .ui-tabs-unselect a:hover, .ui-tabs-nav .ui-tabs-unselect a:focus, .ui-tabs-nav .ui-tabs-unselect a:active { /* @ Opera, we need to be explicit again here now... */
|
90 |
+
cursor: pointer;
|
91 |
+
}
|
92 |
+
.ui-tabs-disabled {
|
93 |
+
opacity: .4;
|
94 |
+
filter: alpha(opacity=40);
|
95 |
+
}
|
96 |
+
.ui-tabs-panel {
|
97 |
+
border-top: 1px solid #97a5b0;
|
98 |
+
padding: 1em 8px;
|
99 |
+
background: #fff; /* declare background color for container to avoid distorted fonts in IE while fading */
|
100 |
+
}
|
101 |
+
.ui-tabs-loading em {
|
102 |
+
padding: 0 0 0 20px;
|
103 |
+
background: url(img/loading.gif) no-repeat 0 50%;
|
104 |
+
}
|
105 |
+
|
106 |
+
/* Additional IE specific bug fixes... */
|
107 |
+
* html .ui-tabs-nav { /* auto clear, @ IE 6 & IE 7 Quirks Mode */
|
108 |
+
display: inline-block;
|
109 |
+
}
|
110 |
+
*:first-child+html .ui-tabs-nav { /* @ IE 7 Standards Mode - do not group selectors, otherwise IE 6 will ignore complete rule (because of the unknown + combinator)... */
|
111 |
+
display: inline-block;
|
112 |
+
}
|
113 |
+
|
wassup.css
ADDED
@@ -0,0 +1,449 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
/* wassup.css - stylesheet for WassUp plugin */
|
2 |
+
#minisub {
|
3 |
+
display: none;
|
4 |
+
}
|
5 |
+
.pagination {
|
6 |
+
padding: 3px;
|
7 |
+
margin: 3px;
|
8 |
+
text-align: center;
|
9 |
+
width: 100%;
|
10 |
+
}
|
11 |
+
|
12 |
+
.pagination a {
|
13 |
+
padding: 2px 5px 2px 5px;
|
14 |
+
margin: 2px;
|
15 |
+
border: 1px solid #EEE;
|
16 |
+
text-decoration: none; /* no underline */
|
17 |
+
color: #667;
|
18 |
+
}
|
19 |
+
|
20 |
+
.pagination a:hover,
|
21 |
+
.pagination a:active {
|
22 |
+
border: 1px solid #999;
|
23 |
+
background-color: #999;
|
24 |
+
color: #FFF;
|
25 |
+
}
|
26 |
+
.pagination .current {
|
27 |
+
padding: 2px 5px 2px 5px;
|
28 |
+
margin: 2px;
|
29 |
+
border: 1px solid #999;
|
30 |
+
font-weight: bold;
|
31 |
+
background-color: #999;
|
32 |
+
color: #FFF;
|
33 |
+
}
|
34 |
+
.pagination .disabled {
|
35 |
+
padding: 2px 5px 2px 5px;
|
36 |
+
margin: 2px;
|
37 |
+
border: 1px solid #EEE;
|
38 |
+
color: #DDD;
|
39 |
+
}
|
40 |
+
|
41 |
+
.sum {
|
42 |
+
position: relative;
|
43 |
+
clear: left;
|
44 |
+
border-bottom: 2px #ddd solid;
|
45 |
+
border-top: 1px #ddd solid;
|
46 |
+
padding: 15px 0 15px 0;
|
47 |
+
width: 100%;
|
48 |
+
margin: 0 !important;
|
49 |
+
background-image: url(img/list-bg.png);
|
50 |
+
background-repeat: repeat-x;
|
51 |
+
}
|
52 |
+
.sum-spy {
|
53 |
+
position: relative;
|
54 |
+
clear: left;
|
55 |
+
border-bottom: 4px #999 solid;
|
56 |
+
border-top: 1px #ddd solid;
|
57 |
+
padding: 15px 0 15px 0;
|
58 |
+
width: 100%;
|
59 |
+
margin: 0 !important;
|
60 |
+
background-image: url(img/list-bg.png);
|
61 |
+
background-repeat: repeat-x;
|
62 |
+
}
|
63 |
+
.sum-nav-mark {
|
64 |
+
position: relative;
|
65 |
+
clear: left;
|
66 |
+
border-bottom: 2px #ddd solid;
|
67 |
+
border-top: 1px #ddd solid;
|
68 |
+
margin: 0 !important;
|
69 |
+
padding: 15px 0 15px 0;
|
70 |
+
width: 100%;
|
71 |
+
background: #FBFEB5 url(img/list-bg.png);
|
72 |
+
background-repeat: repeat-x;
|
73 |
+
}
|
74 |
+
.sum-nav {
|
75 |
+
position: relative;
|
76 |
+
clear: left;
|
77 |
+
border-bottom: 2px #ddd solid;
|
78 |
+
border-top: 1px #ddd solid;
|
79 |
+
margin: 0 !important;
|
80 |
+
padding: 15px 0 15px 0;
|
81 |
+
width: 100%;
|
82 |
+
background-image: url(img/list-bg.png);
|
83 |
+
background-repeat: repeat-x;
|
84 |
+
}
|
85 |
+
.delbut img {
|
86 |
+
float: right;
|
87 |
+
padding: 0px 5px 10px 0;
|
88 |
+
}
|
89 |
+
.sum-footer {
|
90 |
+
clear: both;
|
91 |
+
border-bottom: 4px #999 solid;
|
92 |
+
margin: 0 !important;
|
93 |
+
padding: 0;
|
94 |
+
width: 100%;
|
95 |
+
}
|
96 |
+
.sum-det {
|
97 |
+
margin: 0px 0 0px 0;
|
98 |
+
padding: 0;
|
99 |
+
line-height: 20px;
|
100 |
+
font-size: 14px;
|
101 |
+
}
|
102 |
+
.det1 {
|
103 |
+
font-weight: bold;
|
104 |
+
}
|
105 |
+
.det3 {
|
106 |
+
padding-left: 20px;
|
107 |
+
font-size: 11px;
|
108 |
+
color: #963; /* #cab87b; */
|
109 |
+
}
|
110 |
+
.det2 {
|
111 |
+
font-size: 11px;
|
112 |
+
color: #963; /* #cab87b; */
|
113 |
+
}
|
114 |
+
.det2 a, .det2 a:link, .sum-det span.det2 a {
|
115 |
+
color: #963; /* #cab87b; */
|
116 |
+
text-decoration: none;
|
117 |
+
}
|
118 |
+
.det2 a:hover, .sum-det span.det2 a:hover {
|
119 |
+
color: #cab87b;
|
120 |
+
text-decoration: none;
|
121 |
+
}
|
122 |
+
.det2 strong {
|
123 |
+
color: #667; /* #999; */
|
124 |
+
font-weight: normal;
|
125 |
+
}
|
126 |
+
.agent strong {
|
127 |
+
font-weight: bold;
|
128 |
+
}
|
129 |
+
.sum-box {
|
130 |
+
float: left;
|
131 |
+
display: block;
|
132 |
+
margin: 2px 10px 0 10px;
|
133 |
+
border: 1px #ddd solid;
|
134 |
+
background-image: url(img/list-bg.png);
|
135 |
+
padding: 10px 6px 10px 6px;
|
136 |
+
font-size: 11px;
|
137 |
+
width: 120px;
|
138 |
+
text-align: center;
|
139 |
+
color: #963; /* #cab87b; */
|
140 |
+
font-weight: bold;
|
141 |
+
}
|
142 |
+
.sum-box-log {
|
143 |
+
float: left;
|
144 |
+
display: block;
|
145 |
+
margin: 2px 10px 0 10px;
|
146 |
+
border: 1px #ddd solid;
|
147 |
+
background: #e7f1c8 url(img/list-bg.png);
|
148 |
+
padding: 10px 6px 10px 6px;
|
149 |
+
font-size: 11px;
|
150 |
+
width: 120px;
|
151 |
+
text-align: center;
|
152 |
+
color: #963; /* #cab87b; */
|
153 |
+
font-weight: bold;
|
154 |
+
}
|
155 |
+
.sum-box-aut {
|
156 |
+
float: left;
|
157 |
+
display: block;
|
158 |
+
margin: 2px 10px 0 10px;
|
159 |
+
border: 1px #ddd solid;
|
160 |
+
background: #fbf9d3 url(img/list-bg.png);
|
161 |
+
padding: 10px 6px 10px 6px;
|
162 |
+
font-size: 11px;
|
163 |
+
width: 120px;
|
164 |
+
text-align: center;
|
165 |
+
color: #963; /* #cab87b; */
|
166 |
+
font-weight: bold;
|
167 |
+
}
|
168 |
+
.sum-box-spider {
|
169 |
+
float: left;
|
170 |
+
display: block;
|
171 |
+
margin: 2px 10px 0 10px;
|
172 |
+
border: 1px #ddd solid;
|
173 |
+
background: #cab87b url(img/list-bg.png);
|
174 |
+
padding: 10px 6px 10px 6px;
|
175 |
+
font-size: 11px;
|
176 |
+
width: 120px;
|
177 |
+
text-align: center;
|
178 |
+
color: #FFFFFF;
|
179 |
+
font-weight: bold;
|
180 |
+
}
|
181 |
+
.sum-date {
|
182 |
+
clear: left;
|
183 |
+
float:left;
|
184 |
+
margin: 0;
|
185 |
+
padding: 4px 7px 0px 7px;
|
186 |
+
font-size: 11px;
|
187 |
+
width: 140px;
|
188 |
+
text-align: center;
|
189 |
+
color: #667; /* #999; */
|
190 |
+
}
|
191 |
+
ul.charts {
|
192 |
+
list-style-type: none;
|
193 |
+
margin: 0;
|
194 |
+
padding: 0px 0px 0px 0px;
|
195 |
+
}
|
196 |
+
li.charts {
|
197 |
+
list-style-type: none;
|
198 |
+
color: #667; /* #999; */
|
199 |
+
font-size: 11px;
|
200 |
+
border-top: 1px #ddd solid;
|
201 |
+
margin: 0px 0 4px 0;
|
202 |
+
padding: 2px 4px 4px 4px;
|
203 |
+
background: url(img/list-bg2.png);
|
204 |
+
}
|
205 |
+
li.chartsT {
|
206 |
+
list-style-type: none;
|
207 |
+
color: #efefef;
|
208 |
+
font-size: 11px;
|
209 |
+
border-bottom: 2px #D2DFE9 solid;
|
210 |
+
margin: 2px 0 0 0;
|
211 |
+
padding: 2px 4px 2px 4px;
|
212 |
+
background: #14568A;
|
213 |
+
font-weight: bold;
|
214 |
+
}
|
215 |
+
ul.agent {
|
216 |
+
list-style-type: none;
|
217 |
+
margin: 0;
|
218 |
+
width: 100%;
|
219 |
+
border-bottom: 1px #ddd solid;
|
220 |
+
padding: 4px 0 5px 0;
|
221 |
+
background: #f5f5f5;
|
222 |
+
}
|
223 |
+
ul.searcheng {
|
224 |
+
list-style-type: none;
|
225 |
+
margin: 0;
|
226 |
+
width: 100%;
|
227 |
+
border-bottom: 1px #ddd solid;
|
228 |
+
padding: 4px 0 5px 0;
|
229 |
+
background: #e4ecf4;
|
230 |
+
}
|
231 |
+
li.searcheng {
|
232 |
+
display: inline;
|
233 |
+
list-style-type: none;
|
234 |
+
color: #667; /* #999; */
|
235 |
+
border-right: 1px dotted #999;
|
236 |
+
font-size: 11px;
|
237 |
+
width: 100%;
|
238 |
+
padding: 0 4px 0 4px;
|
239 |
+
}
|
240 |
+
ul.useragent {
|
241 |
+
list-style-type: none;
|
242 |
+
margin: 0;
|
243 |
+
width: 100%;
|
244 |
+
border-bottom: 1px #ddd solid;
|
245 |
+
padding: 4px 0 2px 0;
|
246 |
+
background: #999;
|
247 |
+
}
|
248 |
+
li.useragent {
|
249 |
+
list-style-type: none;
|
250 |
+
color: #f5f5f5;
|
251 |
+
font-size: 11px;
|
252 |
+
width: 100%;
|
253 |
+
padding: 0 6px 0 0;
|
254 |
+
text-align: center;
|
255 |
+
}
|
256 |
+
ul.spam {
|
257 |
+
list-style-type: none;
|
258 |
+
margin: 0;
|
259 |
+
width: 100%;
|
260 |
+
border-bottom: 1px #999 solid;
|
261 |
+
padding: 4px 0 4px 0;
|
262 |
+
background: #f92a4a;
|
263 |
+
}
|
264 |
+
li.spam {
|
265 |
+
display: inline;
|
266 |
+
list-style-type: none;
|
267 |
+
color: #f5f5f5;
|
268 |
+
font-size: 11px;
|
269 |
+
width: 100%;
|
270 |
+
padding: 0 6px 0 0;
|
271 |
+
}
|
272 |
+
ul.spider {
|
273 |
+
list-style-type: none;
|
274 |
+
margin: 0;
|
275 |
+
width: 100%;
|
276 |
+
border-bottom: 1px #ddd solid;
|
277 |
+
padding: 4px 0 4px 0;
|
278 |
+
background: #cab87b;
|
279 |
+
}
|
280 |
+
li.spider {
|
281 |
+
display: inline;
|
282 |
+
list-style-type: none;
|
283 |
+
color: #f5f5f5;
|
284 |
+
font-size: 11px;
|
285 |
+
width: 100%;
|
286 |
+
padding: 0 6px 0 0;
|
287 |
+
}
|
288 |
+
li.feed {
|
289 |
+
display: inline;
|
290 |
+
list-style-type: none;
|
291 |
+
color: #667; /* #999; */
|
292 |
+
border-right: 1px dotted #999;
|
293 |
+
font-size: 11px;
|
294 |
+
width: 100%;
|
295 |
+
padding: 0 4px 0 4px;
|
296 |
+
}
|
297 |
+
li.agent {
|
298 |
+
display: inline;
|
299 |
+
list-style-type: none;
|
300 |
+
color: #667; /* #999; */
|
301 |
+
border-right: 1px dotted #999;
|
302 |
+
font-size: 11px;
|
303 |
+
width: 100%;
|
304 |
+
padding: 0 4px 0 4px;
|
305 |
+
}
|
306 |
+
ul.users {
|
307 |
+
list-style-type: none;
|
308 |
+
margin: 0;
|
309 |
+
width: 100%;
|
310 |
+
border-bottom: 1px #ddd solid;
|
311 |
+
padding: 4px 0 5px 0;
|
312 |
+
background: #fbf9d3;
|
313 |
+
}
|
314 |
+
ul.userslogged {
|
315 |
+
list-style-type: none;
|
316 |
+
margin: 0;
|
317 |
+
width: 100%;
|
318 |
+
border-bottom: 1px #ddd solid;
|
319 |
+
padding: 4px 0 5px 0;
|
320 |
+
background: #e7f1c8;
|
321 |
+
}
|
322 |
+
li.users {
|
323 |
+
display: inline;
|
324 |
+
list-style-type: none;
|
325 |
+
color: #667; /* #999; */
|
326 |
+
border-right: 1px dotted #999;
|
327 |
+
font-size: 11px;
|
328 |
+
width: 100%;
|
329 |
+
padding: 0 4px 0 4px;
|
330 |
+
}
|
331 |
+
ul.url {
|
332 |
+
list-style-type: none;
|
333 |
+
margin: 0;
|
334 |
+
padding-left: 0;
|
335 |
+
width: 100%;
|
336 |
+
}
|
337 |
+
li.url {
|
338 |
+
list-style-type: none;
|
339 |
+
color: #667; /* #999; */
|
340 |
+
font-size: 11px;
|
341 |
+
border-bottom: 1px #ddd solid;
|
342 |
+
padding: 4px 0 6px 0;
|
343 |
+
background-image: url(img/list-bg.png);
|
344 |
+
margin: 0;
|
345 |
+
width: 100%;
|
346 |
+
}
|
347 |
+
li.urlodd {
|
348 |
+
list-style-type: none;
|
349 |
+
color: #667; /* #999; */
|
350 |
+
font-size: 11px;
|
351 |
+
border-bottom: 1px #ddd solid;
|
352 |
+
padding: 4px 0 6px 0;
|
353 |
+
background-image: url(img/list-bg2.png);
|
354 |
+
margin: 0;
|
355 |
+
width: 100%;
|
356 |
+
}
|
357 |
+
.indent-li {
|
358 |
+
padding-left: 155px;
|
359 |
+
}
|
360 |
+
.indent-li-nav {
|
361 |
+
padding-left: 88px;
|
362 |
+
}
|
363 |
+
.indent-li-agent {
|
364 |
+
padding-left: 12px;
|
365 |
+
padding-right: 12px;
|
366 |
+
}
|
367 |
+
.box-log {
|
368 |
+
margin: 0;
|
369 |
+
border: 1px #ddd solid;
|
370 |
+
background: #e7f1c8;
|
371 |
+
padding: 0;
|
372 |
+
}
|
373 |
+
.box-aut {
|
374 |
+
margin: 0;
|
375 |
+
border: 1px #ddd solid;
|
376 |
+
background: #fbf9d3;
|
377 |
+
padding: 0;
|
378 |
+
}
|
379 |
+
.box-spider {
|
380 |
+
margin: 0;
|
381 |
+
border: 1px #ddd solid;
|
382 |
+
background: #cab87b;
|
383 |
+
padding: 0;
|
384 |
+
}
|
385 |
+
#placeholder {
|
386 |
+
padding-top: 8px;
|
387 |
+
background-color:#FFF;
|
388 |
+
background-image:url(img/loading.gif);
|
389 |
+
background-repeat:no-repeat;
|
390 |
+
background-position: center center;
|
391 |
+
min-height: 60px;
|
392 |
+
}
|
393 |
+
div.main-tabs {
|
394 |
+
margin-top: 6px;
|
395 |
+
margin-bottom: 6px;
|
396 |
+
}
|
397 |
+
#settings {
|
398 |
+
width: 100%;
|
399 |
+
margin:0 auto;
|
400 |
+
padding: 4px 4px 6px 4px;
|
401 |
+
border-bottom: 1px #ddd solid;
|
402 |
+
border-top: 2px #ddd solid;
|
403 |
+
background-image: url(img/list-bg.png);
|
404 |
+
background-repeat: repeat-x;
|
405 |
+
}
|
406 |
+
#usage {
|
407 |
+
text-align: center;
|
408 |
+
width: 100%;
|
409 |
+
margin:0 auto;
|
410 |
+
padding: 10px 4px 12px 4px;
|
411 |
+
border-bottom: 1px #ddd solid;
|
412 |
+
border-top: 2px #ddd solid;
|
413 |
+
background-image: url(img/list-bg.png);
|
414 |
+
background-repeat: repeat-x;
|
415 |
+
}
|
416 |
+
#usage ul li {
|
417 |
+
list-style-type: none;
|
418 |
+
padding: 4px;
|
419 |
+
}
|
420 |
+
#usage a {
|
421 |
+
color: #565656;
|
422 |
+
}
|
423 |
+
#usage span {
|
424 |
+
color: #565656;
|
425 |
+
font-size: 14pt;
|
426 |
+
font-weight: bold;
|
427 |
+
}
|
428 |
+
#usage li {
|
429 |
+
display: inline;
|
430 |
+
margin: 10px;
|
431 |
+
}
|
432 |
+
#usage small {
|
433 |
+
color: #797979;
|
434 |
+
}
|
435 |
+
ul.usage-title {
|
436 |
+
list-style-type: none;
|
437 |
+
text-align: center;
|
438 |
+
margin: 0;
|
439 |
+
width: 120px;
|
440 |
+
background: #565656;
|
441 |
+
padding: 2px;
|
442 |
+
font-size: 7pt;
|
443 |
+
color: #FFF;
|
444 |
+
font-weight: bold;
|
445 |
+
}
|
446 |
+
ul.usage-title li {
|
447 |
+
display: inline;
|
448 |
+
list-style-type: none;
|
449 |
+
}
|
wassup.php
ADDED
@@ -0,0 +1,1998 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Plugin Name: WassUp
|
4 |
+
Plugin URI: http://www.wpwp.org
|
5 |
+
Description: Wordpress plugin to analyze your visitors traffic with real time stats, chart and a lot of chronological informations. It has sidebar Widget support to show current online visitors and other statistics.
|
6 |
+
Version: 1.4.5
|
7 |
+
Author: Michele Marcucci
|
8 |
+
Author URI: http://www.michelem.org/
|
9 |
+
|
10 |
+
Copyright (c) 2007 Michele Marcucci
|
11 |
+
Released under the GNU General Public License (GPL)
|
12 |
+
http://www.gnu.org/licenses/gpl.txt
|
13 |
+
*/
|
14 |
+
|
15 |
+
//# Stop any attempt to call wassup.php directly. -Helene D. 1/27/08.
|
16 |
+
if (preg_match('#'.basename(__FILE__) .'#', $_SERVER['PHP_SELF'])) {
|
17 |
+
die('Permission Denied! You are not allowed to call this page directly.');
|
18 |
+
}
|
19 |
+
$version = "1.4.5";
|
20 |
+
define('WASSUPFOLDER', dirname(plugin_basename(__FILE__)), TRUE);
|
21 |
+
require_once(dirname(__FILE__).'/lib/main.php');
|
22 |
+
$wpurl = get_bloginfo('wpurl');
|
23 |
+
|
24 |
+
if (isset($_GET['export'])) {
|
25 |
+
export_wassup();
|
26 |
+
}
|
27 |
+
|
28 |
+
function wassup_activation_error() {
|
29 |
+
echo '<p><strong>' . __("Sorry, Wassup requires WordPress 2.3 or higher to work.","wassup") . '</strong></p>';
|
30 |
+
}
|
31 |
+
|
32 |
+
global $wp_version;
|
33 |
+
//#This works only in WP2.3 or higher
|
34 |
+
if (version_compare($wp_version, '2.3', '<')) {
|
35 |
+
add_action('admin_notices', wassup_activation_error());
|
36 |
+
exit(1);
|
37 |
+
} else {
|
38 |
+
register_activation_hook( __FILE__, 'wassup_install' );
|
39 |
+
add_action('admin_head', 'add_wassup_css');
|
40 |
+
add_action('init', 'add_wassup_scripts');
|
41 |
+
add_action('wp_head', 'add_wassup_meta_info');
|
42 |
+
add_action("widgets_init", "wassup_widget_init");
|
43 |
+
add_action('admin_menu', 'wassup_add_pages');
|
44 |
+
add_action('send_headers', 'wassupAppend');
|
45 |
+
}
|
46 |
+
|
47 |
+
//#initial wassup settings for options this is here because
|
48 |
+
//I need it in more then one function (using global)
|
49 |
+
$defaultWdata = array(
|
50 |
+
'wassup_active' => "1",
|
51 |
+
'wassup_loggedin' => "1",
|
52 |
+
'wassup_spider' => "1",
|
53 |
+
'wassup_attack' => "1",
|
54 |
+
'wassup_spamcheck' => "1",
|
55 |
+
'wassup_spam' => "1",
|
56 |
+
'wassup_refspam' => "1",
|
57 |
+
'wassup_exclude' => "",
|
58 |
+
'wassup_savepath' => null,
|
59 |
+
'wassup_chart' => "1",
|
60 |
+
'delete_auto' => "never",
|
61 |
+
'delete_auto_size' => "0",
|
62 |
+
'wassup_remind_mb' => "0",
|
63 |
+
'wassup_remind_flag' => "0",
|
64 |
+
'wassup_refresh' => "3",
|
65 |
+
'wassup_userlevel' => "8",
|
66 |
+
'wassup_screen_res' => "800",
|
67 |
+
'wassup_default_type' => "everything",
|
68 |
+
'wassup_default_limit' => "10",
|
69 |
+
'wassup_widget_title' => "Visitors Online",
|
70 |
+
'wassup_widget_ulclass' => "links",
|
71 |
+
'wassup_widget_loggedin' => "1",
|
72 |
+
'wassup_widget_comauth' => "1",
|
73 |
+
'wassup_widget_search' => "1",
|
74 |
+
'wassup_widget_searchlimit' => "5",
|
75 |
+
'wassup_widget_ref' => "1",
|
76 |
+
'wassup_widget_reflimit' => "5",
|
77 |
+
'wassup_widget_topbr' => "1",
|
78 |
+
'wassup_widget_topbrlimit' => "5",
|
79 |
+
'wassup_widget_topos' => "1",
|
80 |
+
'wassup_widget_toposlimit' => "5",
|
81 |
+
'wassup_widget_chars' => "18"
|
82 |
+
);
|
83 |
+
|
84 |
+
//#add initial options and create table when Wassup activated
|
85 |
+
function wassup_install() {
|
86 |
+
global $wpdb, $defaultWdata;
|
87 |
+
//### add/update wassup settings to Wordpress options table
|
88 |
+
$wassup_settings = get_option('wassup_settings');
|
89 |
+
if (empty($wassup_settings)) {
|
90 |
+
//# initialize wassup settings to default values
|
91 |
+
add_option('wassup_settings', $defaultWdata, 'Options for WassUp');
|
92 |
+
} else {
|
93 |
+
//# update wassup settings for 'spamcheck', 'refspam', and 'spam'
|
94 |
+
if (!isset($wassup_settings['wassup_spamcheck'])) {
|
95 |
+
$wassup_settings['wassup_spamcheck'] = "1";
|
96 |
+
//#set wassup_spamcheck=0 if wassup_refspam=0 and wassup_spam=0
|
97 |
+
if (!isset($wassup_settings['wassup_spam']) && !isset($wassup_settings['wassup_refspam'])) {
|
98 |
+
$wassup_settings['wassup_spam'] = "1";
|
99 |
+
$wassup_settings['wassup_refspam'] = "1";
|
100 |
+
} elseif ( $wassup_settings['wassup_spam'] == "0" && $wassup_settings['wassup_refspam'] == "0" ) {
|
101 |
+
$wassup_settings['wassup_spamcheck'] = "0";
|
102 |
+
}
|
103 |
+
}
|
104 |
+
//# update wassup settings for 'savepath' (default is null)
|
105 |
+
if (!isset($wassup_settings['wassup_savepath'])) {
|
106 |
+
$wassup_settings['wassup_savepath'] = null;
|
107 |
+
//$wassup_settings['wassup_savepath'] = "/tmp"; #debug
|
108 |
+
}
|
109 |
+
//#save wassup settings changes
|
110 |
+
update_option('wassup_settings', $wassup_settings);
|
111 |
+
}
|
112 |
+
|
113 |
+
//### create/upgrade wassup table
|
114 |
+
$table_name = $wpdb->prefix . "wassup";
|
115 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
|
116 |
+
CreateTable();
|
117 |
+
} else {
|
118 |
+
UpdateTable();
|
119 |
+
}
|
120 |
+
} //#end function wassup_install
|
121 |
+
|
122 |
+
$wassup_settings = get_option('wassup_settings');
|
123 |
+
|
124 |
+
function add_wassup_meta_info() {
|
125 |
+
global $version;
|
126 |
+
print '<meta name="wassup-version" content="'.$version.'" />';
|
127 |
+
}
|
128 |
+
|
129 |
+
//Add jquery AJAX library and dependent scripts for all Wassup admin menus...
|
130 |
+
function add_wassup_scripts() {
|
131 |
+
global $wpurl;
|
132 |
+
if (stristr($_GET['page'],'wassup') !== FALSE) {
|
133 |
+
if ( function_exists('wp_deregister_script')) {
|
134 |
+
wp_deregister_script('jquery'); //removes old jquery vers.
|
135 |
+
}
|
136 |
+
// the safe way to load jquery into WP...
|
137 |
+
wp_register_script('jquery', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/js/jquery.js',FALSE,'1.2.2');
|
138 |
+
if ($_GET['page'] == "wassup-spy") {
|
139 |
+
//the safe way to load a jquery dependent script into WP...
|
140 |
+
wp_enqueue_script('spy', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/js/spy.js', array('jquery'), '1.4');
|
141 |
+
} elseif($_GET['page'] == "wassup-options") {
|
142 |
+
wp_enqueue_script('ui.tabs', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/js/ui.tabs.js', array('jquery'), '3');
|
143 |
+
} else {
|
144 |
+
//the safe way to load a jquery dependent script into WP...
|
145 |
+
wp_enqueue_script('thickbox', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/thickbox/thickbox.js', array('jquery'), '3');
|
146 |
+
}
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
//Add the wassup stylesheet and other javascripts...
|
151 |
+
function add_wassup_css() {
|
152 |
+
global $wpurl;
|
153 |
+
$hash = wp_hash('wassup');
|
154 |
+
$plugin_page = attribute_escape($_GET['page']);
|
155 |
+
if (stristr($plugin_page,'wassup') !== FALSE) { $plugin_page="wassup"; }
|
156 |
+
//Add css and javascript to wassup menu pages only...
|
157 |
+
if ($plugin_page == "wassup") {
|
158 |
+
$wassup_settings = get_option('wassup_settings');
|
159 |
+
//$siteurl = get_bloginfo('siteurl'); //not used
|
160 |
+
//$wpurl = get_bloginfo('wpurl'); //global
|
161 |
+
|
162 |
+
echo '<link rel="stylesheet" href="'.$wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/wassup.css'.'" type="text/css" />';
|
163 |
+
echo '<link rel="stylesheet" href="'.$wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/thickbox/thickbox.css'.'" type="text/css" />';
|
164 |
+
echo '<link rel="stylesheet" href="'.$wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/ui.tabs.css'.'" type="text/css" />';
|
165 |
+
|
166 |
+
if ($_GET['page'] != "wassup-options" AND $_GET['page'] != "wassup-spy") { ?>
|
167 |
+
<script type='text/javascript'>
|
168 |
+
//<![CDATA[
|
169 |
+
function selfRefresh(){
|
170 |
+
location.href='?<?php print $_SERVER['QUERY_STRING']; ?>';
|
171 |
+
}
|
172 |
+
setTimeout('selfRefresh()', <?php print ($wassup_settings['wassup_refresh'] * 60000); ?>);
|
173 |
+
//]]>
|
174 |
+
</script>
|
175 |
+
|
176 |
+
<script type='text/javascript'>
|
177 |
+
//<![CDATA[
|
178 |
+
var _countDowncontainer="0";
|
179 |
+
var _currentSeconds="0";
|
180 |
+
function ActivateCountDown(strContainerID, initialValue) {
|
181 |
+
_countDowncontainer = document.getElementById(strContainerID);
|
182 |
+
SetCountdownText(initialValue);
|
183 |
+
window.setTimeout("CountDownTick()", 1000);
|
184 |
+
}
|
185 |
+
function CountDownTick() {
|
186 |
+
SetCountdownText(_currentSeconds-1);
|
187 |
+
window.setTimeout("CountDownTick()", 1000);
|
188 |
+
}
|
189 |
+
function SetCountdownText(seconds) {
|
190 |
+
//store:
|
191 |
+
_currentSeconds = seconds;
|
192 |
+
//build text:
|
193 |
+
var strText = AddZero(seconds);
|
194 |
+
//apply:
|
195 |
+
if (_countDowncontainer) { //prevents error in "Options" submenu
|
196 |
+
_countDowncontainer.innerHTML = strText;
|
197 |
+
}
|
198 |
+
}
|
199 |
+
function AddZero(num) {
|
200 |
+
return ((num >= "0")&&(num < 10))?"0"+num:num+"";
|
201 |
+
}
|
202 |
+
//]]>
|
203 |
+
</script>
|
204 |
+
<script type="text/javascript">
|
205 |
+
//<![CDATA[
|
206 |
+
window.onload=WindowLoad;
|
207 |
+
function WindowLoad(event) {
|
208 |
+
ActivateCountDown("CountDownPanel", <?php print ($wassup_settings['wassup_refresh'] * 60); ?>);
|
209 |
+
}
|
210 |
+
//]]>
|
211 |
+
</script>
|
212 |
+
|
213 |
+
<script type="text/javascript">
|
214 |
+
//<![CDATA[
|
215 |
+
jQuery(document).ready(function($){
|
216 |
+
$("a.showhide").click(function(){
|
217 |
+
var id = $(this).attr('id');
|
218 |
+
$("div.navi" + id).toggle("slow");
|
219 |
+
return false;
|
220 |
+
});
|
221 |
+
$("a.toggleagent").click(function(){
|
222 |
+
var id = $(this).attr('id');
|
223 |
+
$("div.naviagent" + id).slideToggle("slow");
|
224 |
+
return false;
|
225 |
+
});
|
226 |
+
$("a.deleteID").click(function(){
|
227 |
+
var id = $(this).attr('id');
|
228 |
+
$.ajax({
|
229 |
+
url: "<?php echo $wpurl; ?>/wp-content/plugins/<?php echo WASSUPFOLDER; ?>/lib/action.php?action=delete&hash=<?php echo $hash; ?>&id=" + id,
|
230 |
+
async: false
|
231 |
+
})
|
232 |
+
$("div.delID" + id).fadeOut("slow");
|
233 |
+
return false;
|
234 |
+
});
|
235 |
+
$("a.show-search").toggle(function(){
|
236 |
+
$("div.search-ip").slideDown("slow");
|
237 |
+
$("a.show-search").html("<a href='#' class='show-search'>Hide Search</a>");
|
238 |
+
},function() {
|
239 |
+
$("div.search-ip").slideUp("slow");
|
240 |
+
$("a.show-search").html("<a href='#' class='show-search'>Search</a>");
|
241 |
+
return false;
|
242 |
+
});
|
243 |
+
$("a.show-topten").toggle(function(){
|
244 |
+
$("div.topten").slideDown("slow");
|
245 |
+
$("a.show-topten").html("<a href='#' class='show-topten'>Hide TopTen</a>");
|
246 |
+
},function() {
|
247 |
+
$("div.topten").slideUp("slow");
|
248 |
+
$("a.show-topten").html("<a href='#' class='show-topten'>Show TopTen</a>");
|
249 |
+
return false;
|
250 |
+
});
|
251 |
+
|
252 |
+
$("a.toggle-all").toggle(function() {
|
253 |
+
$("div.togglenavi").slideDown("slow");
|
254 |
+
$("a.toggle-all").html("<a href='#' class='toggle-all'>Collapse All</a>");
|
255 |
+
},function() {
|
256 |
+
$("div.togglenavi").slideUp("slow");
|
257 |
+
$("a.toggle-all").html("<a href='#' class='toggle-all'>Expand All</a>");
|
258 |
+
return false;
|
259 |
+
});
|
260 |
+
$("a.toggle-allcrono").toggle(function() {
|
261 |
+
$("div.togglecrono").slideUp("slow");
|
262 |
+
$("a.toggle-allcrono").html("<a href='#' class='toggle-allcrono'>Expand Cronology</a>");
|
263 |
+
},function() {
|
264 |
+
$("div.togglecrono").slideDown("slow");
|
265 |
+
$("a.toggle-allcrono").html("<a href='#' class='toggle-allcrono'>Collapse Cronology</a>");
|
266 |
+
return false;
|
267 |
+
});
|
268 |
+
}); //end jQuery(document).ready
|
269 |
+
//]]>
|
270 |
+
</script>
|
271 |
+
<?php } //end if page != wassup-options ?>
|
272 |
+
|
273 |
+
<script type='text/javascript'>
|
274 |
+
//<![CDATA[
|
275 |
+
function go()
|
276 |
+
{
|
277 |
+
box = document.forms["0"].navi;
|
278 |
+
destination = box.options[box.selectedindex].value;
|
279 |
+
if (destination) location.href = destination;
|
280 |
+
}
|
281 |
+
function go2()
|
282 |
+
{
|
283 |
+
box2 = document.forms["0"].type;
|
284 |
+
destination2 = box2.options[box2.selectedindex].value;
|
285 |
+
if (destination2) location.href = destination2;
|
286 |
+
}
|
287 |
+
//]]>
|
288 |
+
</script>
|
289 |
+
|
290 |
+
<?php
|
291 |
+
if ($_GET['page'] == "wassup-spy") {
|
292 |
+
?>
|
293 |
+
<script type="text/javascript">
|
294 |
+
jQuery(document).ready(function($){
|
295 |
+
$('#spyContainer > div:gt(4)').fadeEachDown(); // initial fade
|
296 |
+
$('#spyContainer').spy({
|
297 |
+
limit: 10,
|
298 |
+
fadeLast: 5,
|
299 |
+
ajax: '<?php echo $wpurl."/wp-content/plugins/".WASSUPFOLDER."/lib/action.php?action=spy&hash=$hash"; ?>',
|
300 |
+
timeout: 2000,
|
301 |
+
'timestamp': myTimestamp,
|
302 |
+
fadeInSpeed: 1100 });
|
303 |
+
});
|
304 |
+
|
305 |
+
function myTimestamp() {
|
306 |
+
var d = new Date();
|
307 |
+
var timestamp = d.getFullYear() + '-' + pad(d.getMonth()) + '-' + pad(d.getDate());
|
308 |
+
timestamp += ' ';
|
309 |
+
timestamp += pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds());
|
310 |
+
return timestamp;
|
311 |
+
}
|
312 |
+
|
313 |
+
// pad ensures the date looks like 2006-09-13 rather than 2006-9-13
|
314 |
+
function pad(n) {
|
315 |
+
n = n.toString();
|
316 |
+
return (n.length == 1 ? '0' + n : n);
|
317 |
+
}
|
318 |
+
|
319 |
+
//]]>
|
320 |
+
</script>
|
321 |
+
<?php } //end if page == "wassup-spy"
|
322 |
+
|
323 |
+
} //end if plugin_page == "wassup"
|
324 |
+
} //end function add_wassup_css()
|
325 |
+
|
326 |
+
//put WassUp in the top-level admin menu and add submenus....
|
327 |
+
function wassup_add_pages() {
|
328 |
+
$wassup_settings = get_option('wassup_settings');
|
329 |
+
$userlevel = $wassup_settings['wassup_userlevel'];
|
330 |
+
if (empty($userlevel)) { $userlevel = 8; }
|
331 |
+
// add the default submenu first (important!)...
|
332 |
+
add_submenu_page(WASSUPFOLDER, __('Visitor Details', 'wassup'), __('Visitor Details', 'wassup'), $userlevel, WASSUPFOLDER, 'WassUp'); //<-- WASSUPFOLDER needed here for directory names that include a version number...
|
333 |
+
// then add top menu and other submenus...
|
334 |
+
add_menu_page('Wassup', 'WassUp', $userlevel, WASSUPFOLDER, 'Wassup');
|
335 |
+
add_submenu_page(WASSUPFOLDER, __('Spy Visitors', 'wassup'), __('SPY Visitors', 'wassup'), $userlevel, 'wassup-spy', 'WassUp');
|
336 |
+
add_submenu_page(WASSUPFOLDER, __('Current Visitors Online', 'wassup'), __('Current Visitors Online', 'wassup'), $userlevel, 'wassup-online', 'WassUp');
|
337 |
+
add_submenu_page(WASSUPFOLDER, __('Options', 'wassup'), __('Options', 'wassup'), $userlevel, 'wassup-options', 'WassUp');
|
338 |
+
}
|
339 |
+
|
340 |
+
function WassUp() {
|
341 |
+
global $wpdb, $version, $wpurl, $defaultWdata;
|
342 |
+
$hash = wp_hash('wassup');
|
343 |
+
$table_name = $wpdb->prefix . "wassup";
|
344 |
+
$wassup_settings = get_option('wassup_settings');
|
345 |
+
// RUN THE SAVE/RESET OPTIONS
|
346 |
+
if (isset($_POST['submit'])) {
|
347 |
+
if ($_POST['wassup_remind_flag'] == 1 AND $_POST['wassup_remind_mb'] == "") {
|
348 |
+
$wassup_settings['wassup_remind_flag'] = $_POST['wassup_remind_flag'];
|
349 |
+
$wassup_settings['wassup_remind_mb'] = 10;
|
350 |
+
} else {
|
351 |
+
$wassup_settings['wassup_remind_flag'] = $_POST['wassup_remind_flag'];
|
352 |
+
$wassup_settings['wassup_remind_mb'] = $_POST['wassup_remind_mb'];
|
353 |
+
}
|
354 |
+
$wassup_settings['wassup_active'] = $_POST['wassup_active'];
|
355 |
+
$wassup_settings['wassup_loggedin'] = $_POST['wassup_loggedin'];
|
356 |
+
$wassup_settings['wassup_spider'] = $_POST['wassup_spider'];
|
357 |
+
$wassup_settings['wassup_attack'] = $_POST['wassup_attack'];
|
358 |
+
$wassup_settings['wassup_spamcheck'] = $_POST['wassup_spamcheck'];
|
359 |
+
$wassup_settings['wassup_spam'] = $_POST['wassup_spam'];
|
360 |
+
$wassup_settings['wassup_refspam'] = $_POST['wassup_refspam'];
|
361 |
+
$wassup_settings['wassup_exclude'] = $_POST['wassup_exclude'];
|
362 |
+
$wassup_settings['delete_auto'] = $_POST['delete_auto'];
|
363 |
+
$wassup_settings['delete_auto_size'] = $_POST['delete_auto_size'];
|
364 |
+
$wassup_settings['wassup_screen_res'] = $_POST['wassup_screen_res'];
|
365 |
+
$wassup_settings['wassup_refresh'] = $_POST['wassup_refresh'];
|
366 |
+
$wassup_settings['wassup_userlevel'] = $_POST['wassup_userlevel'];
|
367 |
+
$wassup_settings['wassup_default_type'] = $_POST['wassup_default_type'];
|
368 |
+
$wassup_settings['wassup_default_limit'] = $_POST['wassup_default_limit'];
|
369 |
+
if ( $_POST['wassup_savepath'] != $wassup_settings['wassup_savepath'] ) {
|
370 |
+
if ( empty($_POST['wassup_savepath']) || rtrim($_POST['wassup_savepath'],"/") == wGetSessionpath() ) {
|
371 |
+
$wassup_settings['wassup_savepath'] = NULL;
|
372 |
+
} else {
|
373 |
+
$wassup_settings['wassup_savepath'] = rtrim($_POST['wassup_savepath'],"/");
|
374 |
+
}
|
375 |
+
}
|
376 |
+
update_option('wassup_settings', $wassup_settings);
|
377 |
+
} elseif (isset($_POST['submit-spam'])) {
|
378 |
+
$wassup_settings['wassup_spamcheck'] = $_POST['wassup_spamcheck'];
|
379 |
+
$wassup_settings['wassup_spam'] = $_POST['wassup_spam'];
|
380 |
+
$wassup_settings['wassup_refspam'] = $_POST['wassup_refspam'];
|
381 |
+
update_option('wassup_settings', $wassup_settings);
|
382 |
+
} elseif (isset($_POST['reset-to-default'])) {
|
383 |
+
print_r($defaultWdata);
|
384 |
+
delete_option('wassup_settings');
|
385 |
+
update_option('wassup_settings', $defaultWdata);
|
386 |
+
$wassup_settings = get_option('wassup_settings');
|
387 |
+
}
|
388 |
+
|
389 |
+
|
390 |
+
if ($_GET['page'] == "wassup-spy") {
|
391 |
+
$class_spy="class='current'";
|
392 |
+
} elseif ($_GET['page'] == "wassup-options") {
|
393 |
+
$class_opt="class='current'";
|
394 |
+
} elseif ($_GET['page'] == "wassup-online") {
|
395 |
+
$class_ol="class='current'";
|
396 |
+
} else {
|
397 |
+
$class_sub="class='current'";
|
398 |
+
}
|
399 |
+
|
400 |
+
//for stringShortener calculated values and max-width...-Helene D. 11/27/07, 12/6/07
|
401 |
+
if (!empty($wassup_settings['wassup_screen_res'])) {
|
402 |
+
$screen_res_size = (int) $wassup_settings['wassup_screen_res'];
|
403 |
+
} else {
|
404 |
+
$screen_res_size = 670;
|
405 |
+
}
|
406 |
+
$max_char_len = ($screen_res_size)/10;
|
407 |
+
$screen_res_size = $screen_res_size+20; //for wrap margins...
|
408 |
+
|
409 |
+
//moved max-width to single "wrap" div and removed it from
|
410 |
+
// the individual spans and divs in style.php...
|
411 |
+
print '<div class="wrap" style="max-width:'.$screen_res_size.'px;" >';
|
412 |
+
//#moved CreateTable/UpdateTable to "wassup_install" function...
|
413 |
+
|
414 |
+
//for generating page link urls....
|
415 |
+
//$wpurl = get_bloginfo('wpurl'); //global
|
416 |
+
$siteurl = get_bloginfo('siteurl');
|
417 |
+
|
418 |
+
if ($_GET['page'] == "wassup-online") {
|
419 |
+
$to_date = wassup_get_time();
|
420 |
+
$from_date = strtotime('-3 minutes', $to_date);
|
421 |
+
print '<h2>Current Visitors Online</h2>';
|
422 |
+
print '<p style="font-size:11px">Legend: <span class="box-log"> </span> Logged-in Users <span class="box-aut"> </span> Comments Authors <span class="box-spider"> </span> Spiders/bots</p><br />'."\n";
|
423 |
+
print '<p style="font-size:11px;"><a href="#" class="toggle-all">Expand All</a></p>';
|
424 |
+
$currenttot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currenttot FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date");
|
425 |
+
$currenttot = $currenttot+0; //set to integer
|
426 |
+
print "<p style='font-size:11px;'>Visitors online: <strong>".$currenttot."</strong></p><br />";
|
427 |
+
if ($currenttot > 0) {
|
428 |
+
$qryC = $wpdb->get_results("SELECT id, wassup_id, max(timestamp) as max_timestamp, ip, hostname, searchengine, urlrequested, agent, referrer, spider, username, comment_author FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date GROUP BY ip ORDER BY max_timestamp DESC");
|
429 |
+
foreach ($qryC as $cv) {
|
430 |
+
//$timestamp = $cv->max_timestamp; //redundant
|
431 |
+
$timed = gmdate("H:i:s", $cv->max_timestamp);
|
432 |
+
$ip = @explode(",", $cv->ip);
|
433 |
+
if ($cv->referrer != '') {
|
434 |
+
if (!eregi($wpurl, $cv->referrer) OR $cv->searchengine != "") {
|
435 |
+
if (!eregi($wpurl, $cv->referrer) AND $cv->searchengine == "") {
|
436 |
+
$referrer = '<a href="'.$cv->referrer.'" target=_"BLANK"><span style="font-weight: bold;">'.stringShortener($cv->referrer, round($max_char_len*.8,0)).'</span></a>';
|
437 |
+
} else {
|
438 |
+
$referrer = '<a href="'.$cv->referrer.'" target=_"BLANK">'.stringShortener($cv->referrer, round($max_char_len*.9,0)).'</a>';
|
439 |
+
}
|
440 |
+
} else {
|
441 |
+
$referrer = "Direct hit";
|
442 |
+
}
|
443 |
+
} else {
|
444 |
+
$referrer = "From your blog";
|
445 |
+
}
|
446 |
+
$numurl = $wpdb->get_var("SELECT COUNT(DISTINCT id) as numurl FROM $table_name WHERE wassup_id='".$cv->wassup_id."'");
|
447 |
+
?>
|
448 |
+
<div class="sum">
|
449 |
+
<span class="sum-box"><?php if ($numurl >= 2) { ?><a href="#" class="showhide" id="<?php echo $cv->id ?>"><?php print $ip[0]; ?></a><? } else { ?><?php print $ip[0]; ?><?php } ?></span>
|
450 |
+
<div class="sum-det"><span class="det1">
|
451 |
+
<?php
|
452 |
+
//# html_entity_decode() links that were already
|
453 |
+
//# "htmlentities-encoded" in database to prevent wacky links
|
454 |
+
//# like "/imagegallery/?album=3&amp;amp;gallery=13"
|
455 |
+
print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cv->urlrequested))).'" target="_BLANK">';
|
456 |
+
print stringShortener(urlencode(html_entity_decode($cv->urlrequested)), round($max_char_len*.9,0)); ?></a></span><br />
|
457 |
+
<span class="det2"><strong><?php print $timed; ?> - </strong><?php print $referrer ?></span></div>
|
458 |
+
</div>
|
459 |
+
<?php // User is logged in or is a comment's author
|
460 |
+
if ($cv->username != "" OR $cv->comment_author != "") {
|
461 |
+
if ($cv->username != "") {
|
462 |
+
$Ousername = '<li class="users"><span class="indent-li-agent">LOGGED IN USER: <strong>'.$cv->username.'</strong></span></li>';
|
463 |
+
$Ocomment_author = '<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.$cv->comment_author.'</strong></span></li>';
|
464 |
+
$unclass = "userslogged";
|
465 |
+
} elseif ($cv->comment_author != "") {
|
466 |
+
$Ocomment_author = '<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.$cv->comment_author.'</strong></span></li>';
|
467 |
+
$unclass = "users";
|
468 |
+
}
|
469 |
+
?>
|
470 |
+
<ul class="<?php print $unclass; ?>">
|
471 |
+
<?php print $Ousername; ?>
|
472 |
+
<?php print $Ocomment_author; ?>
|
473 |
+
</ul>
|
474 |
+
<?php } ?>
|
475 |
+
<div style="display: none;" class="togglenavi navi<?php echo $cv->id ?>">
|
476 |
+
<ul class="url">
|
477 |
+
<?php
|
478 |
+
$qryCD = $wpdb->get_results("SELECT timestamp, urlrequested FROM $table_name WHERE wassup_id='".$cv->wassup_id."' ORDER BY timestamp ASC");
|
479 |
+
$i=0;
|
480 |
+
foreach ($qryCD as $cd) {
|
481 |
+
//$timestamp2 = $cd->timestamp; //redundant
|
482 |
+
$time2 = gmdate("H:i:s", $cd->timestamp);
|
483 |
+
$num = ($i&1);
|
484 |
+
$char_len = round($max_char_len*.9,0);
|
485 |
+
if ($num == 0) $classodd = "urlodd"; else $classodd = "url";
|
486 |
+
if ($i >= 1) {
|
487 |
+
?>
|
488 |
+
<li class="<?php print $classodd; ?> navi<?php echo $cv->id ?>"><span class="indent-li"><?php print $time2; ?> -
|
489 |
+
<?php
|
490 |
+
print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cd->urlrequested))).'" target="_BLANK">';
|
491 |
+
print stringShortener(urlencode(html_entity_decode($cd->urlrequested)), $char_len).'</a></span></li>'."\n";
|
492 |
+
}
|
493 |
+
$i++;
|
494 |
+
} //end foreach qryCD
|
495 |
+
print '</ul>';
|
496 |
+
print '</div>';
|
497 |
+
print '<p class="sum-footer"></p>';
|
498 |
+
} //end foreach qryC
|
499 |
+
} //end if currenttot
|
500 |
+
print '<br /><p style="font-size:11px;"><a href="#" class="toggle-all">Expand All</a></p>';
|
501 |
+
|
502 |
+
// HERE IS THE SPY MODE VIEW
|
503 |
+
} elseif ($_GET['page'] == "wassup-spy") {
|
504 |
+
print '<h2>SPY Visitors</h2>';
|
505 |
+
print '<p style="font-size:11px">Legend: <span class="box-log"> </span> Logged-in Users <span class="box-aut"> </span> Comments Authors <span class="box-spider"> </span> Spiders/bots</p><br />'."\n";
|
506 |
+
print '<div>';
|
507 |
+
print '<a href="#?" onclick="return pauseSpy();"><span id="spy-pause">Pause</span></a> ';
|
508 |
+
print '<a href="#?" onclick="return playSpy();"><span id="spy-play">Play</span></a>';
|
509 |
+
print '<br /> <br /></div>'."\n";
|
510 |
+
print '<div id="spyContainer">'."\n".'<!-- spyContainer is empty -->'."\n";
|
511 |
+
//display the last few hits here. The rest will be added via spy.js
|
512 |
+
$to_date = (wassup_get_time()-2);
|
513 |
+
$from_date = ($to_date - 12*(60*60)); //display last 10 visits in 12 hours...
|
514 |
+
spyview($from_date,$to_date,10);
|
515 |
+
print '</div>';
|
516 |
+
echo "<br />";
|
517 |
+
|
518 |
+
// HERE IS THE OPTIONS VIEW
|
519 |
+
} elseif($_GET['page'] == "wassup-options") {
|
520 |
+
//#moved content to external include file, "settings.php"
|
521 |
+
//# to make "wassup" code easier to read and modify
|
522 |
+
//# -Helene D. 1/15/08.
|
523 |
+
include(dirname(__FILE__).'/lib/settings.php'); ?>
|
524 |
+
|
525 |
+
<?php // HERE IS THE MAIN/DETAILS VIEW
|
526 |
+
} else {
|
527 |
+
|
528 |
+
$search = attribute_escape($_GET['search']);
|
529 |
+
$res = (int) $wassup_settings['wassup_screen_res'];
|
530 |
+
if (empty($res)) $res=620;
|
531 |
+
elseif ($res < 800) $res=620;
|
532 |
+
elseif ($res < 1024) $res=740;
|
533 |
+
elseif ($res < 1200) $res=1000;
|
534 |
+
else $res=1000;
|
535 |
+
|
536 |
+
if (isset($_GET['wmark'])) {
|
537 |
+
if ($_GET['wmark'] == 0) {
|
538 |
+
$wassup_settings['wmark'] = "0";
|
539 |
+
$wassup_settings['wip'] = "";
|
540 |
+
} else {
|
541 |
+
$wassup_settings['wmark'] = "1";
|
542 |
+
$wassup_settings['wip'] = attribute_escape($_GET['wip']);
|
543 |
+
}
|
544 |
+
update_option('wassup_settings', $wassup_settings);
|
545 |
+
}
|
546 |
+
if (isset($_GET['wchart'])) {
|
547 |
+
if ($_GET['wchart'] == 0) {
|
548 |
+
$wassup_settings['wassup_chart'] = 0;
|
549 |
+
} else {
|
550 |
+
$wassup_settings['wassup_chart'] = 1;
|
551 |
+
}
|
552 |
+
update_option('wassup_settings', $wassup_settings);
|
553 |
+
}
|
554 |
+
|
555 |
+
if ($wassup_settings['wassup_default_limit'] != '' AND !isset($_GET['limit'])) {
|
556 |
+
$items = $wassup_settings['wassup_default_limit'];
|
557 |
+
} elseif(isset($_GET['limit'])) {
|
558 |
+
$items = htmlentities(attribute_escape($_GET['limit']));
|
559 |
+
} else {
|
560 |
+
$items = 10;
|
561 |
+
}
|
562 |
+
|
563 |
+
if ($wassup_settings['wassup_default_type'] != '' AND !isset($_GET['type'])) {
|
564 |
+
$type = $wassup_settings['wassup_default_type'];
|
565 |
+
} else {
|
566 |
+
$type = htmlentities(attribute_escape($_GET['type']));
|
567 |
+
}
|
568 |
+
|
569 |
+
if ($type == 'spider') {
|
570 |
+
$whereis = " AND spider!=''";
|
571 |
+
} elseif ($type == 'nospider') {
|
572 |
+
$whereis = " AND spider=''";
|
573 |
+
} elseif ($type == 'spam') {
|
574 |
+
$whereis = " AND spam>0";
|
575 |
+
} elseif ($type == 'nospam') {
|
576 |
+
$whereis = " AND spam=0";
|
577 |
+
} elseif ($type == 'nospamspider') {
|
578 |
+
$whereis = " AND spam=0 AND spider=''";
|
579 |
+
} elseif ($type == 'searchengine') {
|
580 |
+
$whereis = " AND searchengine!='' AND search!=''";
|
581 |
+
} elseif ($type == 'referrer') {
|
582 |
+
$whereis = " AND referrer!='' AND referrer NOT LIKE '%$wpurl%' AND searchengine='' AND search=''";
|
583 |
+
} elseif ($type == 'comauthor') {
|
584 |
+
$whereis = " AND comment_author!='' AND username=''";
|
585 |
+
} elseif ($type == 'loggedin') {
|
586 |
+
$whereis = " AND username!=''";
|
587 |
+
}
|
588 |
+
|
589 |
+
$pages = 1;
|
590 |
+
if(isset($_GET['pages']) and is_numeric($_GET['pages']) and $pages = $_GET['pages']) {
|
591 |
+
$limit = " LIMIT ".(($pages-1)*$items).",$items";
|
592 |
+
} else {
|
593 |
+
$limit = " LIMIT $items";
|
594 |
+
}
|
595 |
+
|
596 |
+
print "<h2>Latest hits</h2>";
|
597 |
+
$to_date = wassup_get_time();
|
598 |
+
if ($_GET['last'] == "") $last = 1; else $last = htmlentities(attribute_escape($_GET['last']));
|
599 |
+
$from_date = strtotime('-'.$last.' day', $to_date);
|
600 |
+
|
601 |
+
// Instantiate class to count items
|
602 |
+
$Tot = New MainItems;
|
603 |
+
$Tot->tableName = $table_name;
|
604 |
+
$Tot->from_date = $from_date;
|
605 |
+
$Tot->to_date = $to_date;
|
606 |
+
$Tot->whereis = $whereis;
|
607 |
+
$Tot->Limit = $limit;
|
608 |
+
$Tot->WpUrl = $wpurl;
|
609 |
+
|
610 |
+
$itemstot = $Tot->calc_tot("items", $search);
|
611 |
+
$pagestot = $Tot->calc_tot("pages", $search);
|
612 |
+
$spamtot = $Tot->calc_tot("spam", $search);
|
613 |
+
// Check if some records was marked
|
614 |
+
if ($wassup_settings['wmark'] == 1) {
|
615 |
+
$Tot->Marked_ip = $wassup_settings['wip'];
|
616 |
+
$markedtot = $Tot->calc_tot("items_by_type", $search, "marked");
|
617 |
+
}
|
618 |
+
|
619 |
+
|
620 |
+
$new_limit = eregi_replace("\&limit=".$_GET['limit']."", "", $_SERVER['QUERY_STRING']);
|
621 |
+
$new_type = eregi_replace("\&type=".$_GET['type']."", "", $_SERVER['QUERY_STRING']);
|
622 |
+
$new_last = eregi_replace("\&last=".$_GET['last']."", "", $_SERVER['QUERY_STRING']);
|
623 |
+
|
624 |
+
if ($wassup_settings['wassup_active'] != 1) {
|
625 |
+
print "<p style='color: red; font-weight: bold;'>WassUp recording is disabled</p>";
|
626 |
+
}
|
627 |
+
// DELETE EVERY RECORD MARKED BY IP
|
628 |
+
if ($_GET['deleteMARKED'] == 1) {
|
629 |
+
$rec_deleted = $wpdb->get_var("SELECT COUNT(ip) as deleted FROM $table_name WHERE ip='".urlencode(attribute_escape($_GET['dip']))."'");
|
630 |
+
$wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE ip='%s'", urlencode(attribute_escape($_GET['dip']))));
|
631 |
+
echo "<p><strong>".$rec_deleted." records deleted</strong></p>";
|
632 |
+
}
|
633 |
+
echo "<table width='100%'>
|
634 |
+
<tr>
|
635 |
+
<td>
|
636 |
+
<form><p style=\"font-size: 11px;\">";
|
637 |
+
if ($wassup_settings['wassup_chart'] == 1) {
|
638 |
+
echo "<a href='?page=".WASSUPFOLDER."&wchart=0' style='text-decoration:none;'><img src='$wpurl/wp-content/plugins/".WASSUPFOLDER."/img/chart_delete.png' style='padding:0px 6px 0 0;' alt='hide chart' title='Hide the chart and site usage'></a>";
|
639 |
+
} else {
|
640 |
+
echo "<a href='?page=".WASSUPFOLDER."&wchart=1' style='text-decoration:none;'><img src='$wpurl/wp-content/plugins/".WASSUPFOLDER."/img/chart_add.png' style='padding:0px 6px 0 0;' alt='show chart' title='Show the chart and site usage'></a>";
|
641 |
+
}
|
642 |
+
echo "Summary for the last <select style=\"font-size: 11px;\" name='last' onChange='window.location.href=this.options[this.selectedIndex].value;'>
|
643 |
+
<option value='?$new_last&last=1'".($_GET['last'] == 1 ? " SELECTED" : "").">24 hours</option>
|
644 |
+
<option value='?$new_last&last=7'".($_GET['last'] == 7 ? " SELECTED" : "").">7 days</option>
|
645 |
+
<option value='?$new_last&last=30'".($_GET['last'] == 30 ? " SELECTED" : "").">1 month</option>
|
646 |
+
<option value='?$new_last&last=365'".($_GET['last'] == 365 ? " SELECTED" : "").">1 year</option>
|
647 |
+
</select></p>
|
648 |
+
</td>
|
649 |
+
<td align='right'><p style=\"font-size: 11px;\">Items per page: <select name='navi' style=\"font-size: 11px;\" onChange='window.location.href=this.options[this.selectedIndex].value;'>
|
650 |
+
<option value='?$new_limit&limit=10'".($items == 10 ? " SELECTED" : "").">10</option>
|
651 |
+
<option value='?$new_limit&limit=20'".($items == 20 ? " SELECTED" : "").">20</option>
|
652 |
+
<option value='?$new_limit&limit=50'".($items == 50 ? " SELECTED" : "").">50</option>
|
653 |
+
<option value='?$new_limit&limit=100'".($items == 100 ? " SELECTED" : "").">100</option>
|
654 |
+
</select> - Show items by: <select style=\"font-size: 11px;\" name='type' onChange='window.location.href=this.options[this.selectedIndex].value;'>
|
655 |
+
<option value='?page=".WASSUPFOLDER."'>--</option>
|
656 |
+
<option value='?$new_type&type=spider'".($type == "spider" ? " SELECTED" : "").">Spider</option>
|
657 |
+
<option value='?$new_type&type=nospider'".($type == "nospider" ? " SELECTED" : "").">NO Spider</option>
|
658 |
+
<option value='?$new_type&type=spam'".($type == "spam" ? " SELECTED" : "").">Spam</option>
|
659 |
+
<option value='?$new_type&type=nospam'".($type == "nospam" ? " SELECTED" : "").">NO Spam</option>
|
660 |
+
<option value='?$new_type&type=nospamspider'".($type == "nospamspider" ? " SELECTED" : "").">NO Spam NO Spider</option>
|
661 |
+
<option value='?$new_type&type=loggedin'".($type == "loggedin" ? " SELECTED" : "").">Users logged in</option>
|
662 |
+
<option value='?$new_type&type=comauthor'".($type == "comauthor" ? " SELECTED" : "").">Comment's authors</option>
|
663 |
+
<option value='?$new_type&type=searchengine'".($type == "searchengine" ? " SELECTED" : "").">Referer from search engine</option>
|
664 |
+
<option value='?$new_type&type=referrer'".($type == "referrer" ? " SELECTED" : "").">Referer from ext link</option>
|
665 |
+
<option value='?$new_type&type=everything'".($type == "everything" ? " SELECTED" : "").">Everything</option>
|
666 |
+
</select>
|
667 |
+
</p>
|
668 |
+
</form>
|
669 |
+
</td>
|
670 |
+
</tr>
|
671 |
+
</table>
|
672 |
+
";
|
673 |
+
|
674 |
+
if ($wassup_settings['wassup_chart'] == 1) {
|
675 |
+
// Print Site Usage
|
676 |
+
//#print useage/google chart only on page 1...
|
677 |
+
//if (!isset($_GET['pages']) || (int)$_GET['pages'] < 2) {
|
678 |
+
echo "
|
679 |
+
<div class='main-tabs'>
|
680 |
+
<div id='usage'>
|
681 |
+
<ul>
|
682 |
+
<li><span style='border-bottom: 2px solid #0077CC;'>".$itemstot."</span> <small>Visits</small></li>
|
683 |
+
<li><span style='border-bottom: 2px dashed #FF6D06;'>".$pagestot."</span> <small>Pageviews</small></li>
|
684 |
+
<li><span>".@number_format(($pagestot/$itemstot), 2)."</span> <small>Pages/Visits</small></li>
|
685 |
+
<li><span><a href=\"#TB_inline?height=55&width=400&inlineId=hiddenspam\" class=\"thickbox\">".$spamtot."</a></span> <span>(".@number_format(($spamtot*100/$pagestot), 2)."%)</span> <small>Spams</small></li>
|
686 |
+
</ul>";
|
687 |
+
// Print the Google chart!
|
688 |
+
if ($pagestot > 20) {
|
689 |
+
echo $Tot->TheChart($last, $res, attribute_escape($_GET['search']))."";
|
690 |
+
} else {
|
691 |
+
echo "<div id='placeholder' align='center'><p style='padding-top:50px;'>Waiting for some data to print chart...</p></div>";
|
692 |
+
}
|
693 |
+
echo "
|
694 |
+
</div>
|
695 |
+
</div>";
|
696 |
+
}
|
697 |
+
|
698 |
+
if ($_GET['limit'] == 10 OR $_GET['limit'] == 20 OR !isset($_GET['limit'])) {
|
699 |
+
$expcol = '
|
700 |
+
<table width="100%"><tr>
|
701 |
+
<td align="left" style="font-size: 11px;"><a href="#" class="toggle-all">'.__('Expand All','wassup').'</a></td>
|
702 |
+
<td align="right" style="font-size: 11px;"><a href="#" class="toggle-allcrono">'.__('Collapse Chronology','wassup').'</a></td>
|
703 |
+
</tr></table><br />';
|
704 |
+
}
|
705 |
+
|
706 |
+
// MAIN QUERY
|
707 |
+
$main = $Tot->calc_tot("main", $search);
|
708 |
+
|
709 |
+
if ($itemstot > 0) {
|
710 |
+
$p=new pagination();
|
711 |
+
$p->items($itemstot);
|
712 |
+
$p->limit($items);
|
713 |
+
$p->currentPage($pages);
|
714 |
+
$p->target("admin.php?page=".WASSUPFOLDER."&limit=$items&type=$type&last=$last&search=$search");
|
715 |
+
$p->calculate();
|
716 |
+
$p->adjacents(5);
|
717 |
+
}
|
718 |
+
|
719 |
+
// hidden spam options
|
720 |
+
?>
|
721 |
+
<div id="hiddenspam" style="display:none;">
|
722 |
+
<h2>Spam Options</h2>
|
723 |
+
<form action="" method="post">
|
724 |
+
<p><input type="checkbox" name="wassup_spamcheck" value="1" <?php if($wassup_settings['wassup_spamcheck'] == 1 ) print "CHECKED"; ?> /> <strong><?php _e('Enable/Disable Spam Check on Records','wassup'); ?></strong></p>
|
725 |
+
<p style="padding-left:30px;"><input type="checkbox" name="wassup_spam" value="1" <?php if($wassup_settings['wassup_spam'] == 1) print "CHECKED"; ?> /> <?php _e('Record Akismet comment spam attempts','wassup'); ?></p>
|
726 |
+
<p style="padding-left:30px;"><input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_settings['wassup_refspam'] == 1) print "CHECKED"; ?> /> <?php _e('Record referrer spam attempts','wassup'); ?></p>
|
727 |
+
<p style="padding-left:0;"><input type="submit" name="submit-spam" value="<?php _e('Save Settings','wassup'); ?>" /></p>
|
728 |
+
</form>
|
729 |
+
</div>
|
730 |
+
<table width="100%">
|
731 |
+
<tr>
|
732 |
+
<td align="left" style="font-size: 11px;"><?php if ($wassup_settings['wmark'] == 1) echo "<a href='?".$_SERVER['QUERY_STRING']."&search=".$wassup_settings['wip']."' title='Filter by marked IP'><strong>$markedtot</strong> visits marked</a> - "; if ($search != "") print "Searched for: <strong>$search</strong> - "; ?>Auto refresh in <span id="CountDownPanel"></span> seconds</td>
|
733 |
+
|
734 |
+
<td align="right" style="font-size: 11px;"><a href="<?php echo $wpurl."/wp-content/plugins/".WASSUPFOLDER."/lib/action.php?height=400&width=$res&action=topten&hash=$hash&from_date=$from_date&to_date=$to_date"; ?>" class="thickbox">Show TopTen</a> - <a href="#" class='show-search'>Search</a></td>
|
735 |
+
</tr>
|
736 |
+
</table>
|
737 |
+
<div class="search-ip" style="display: none;">
|
738 |
+
<table border=0 width="100%">
|
739 |
+
<tr valign="top">
|
740 |
+
<td align="right">
|
741 |
+
<form action="" method="get">
|
742 |
+
<input type="hidden" name="page" value="<?php echo WASSUPFOLDER; ?>">
|
743 |
+
<input type="text" size="25" name="search" value="<?php if ($search != "") print $search; ?>"><input type="submit" name="submit-search" value="search">
|
744 |
+
</form>
|
745 |
+
</td>
|
746 |
+
</tr>
|
747 |
+
</table>
|
748 |
+
</div>
|
749 |
+
<!-- end Top Ten -->
|
750 |
+
<?php
|
751 |
+
//# Detailed List of Wassup Records...
|
752 |
+
print $expcol;
|
753 |
+
//# Show Page numbers/Links...
|
754 |
+
if ($itemstot >= 10) {
|
755 |
+
print "<div id='pag' align='center'>".$p->show()."</div>";
|
756 |
+
}
|
757 |
+
?>
|
758 |
+
<br />
|
759 |
+
|
760 |
+
<?php
|
761 |
+
if ($itemstot > 0) {
|
762 |
+
foreach ($main as $rk) {
|
763 |
+
$timestampF = $rk->max_timestamp;
|
764 |
+
$dateF = gmdate("d M Y", $timestampF);
|
765 |
+
$timeF = gmdate("H:i:s", $timestampF);
|
766 |
+
$datetimeF = gmdate('Y-m-d H:i:s', $timestampF);
|
767 |
+
$ip = @explode(",", $rk->ip);
|
768 |
+
if ($rk->referrer != '') {
|
769 |
+
if (!eregi($wpurl, $rk->referrer) OR $rk->searchengine != "") {
|
770 |
+
if (!eregi($wpurl, $rk->referrer) AND $rk->searchengine == "") {
|
771 |
+
$referrer = '<a href="'.$rk->referrer.'" target="_BLANK"><span style="font-weight: bold;">'.stringShortener($rk->referrer, round($max_char_len*.8,0)).'</span></a>';
|
772 |
+
} else {
|
773 |
+
$referrer = '<a href="'.$rk->referrer.'" target="_BLANK">'.stringShortener($rk->referrer, round($max_char_len*.9,0)).'</a>';
|
774 |
+
}
|
775 |
+
} else {
|
776 |
+
$referrer = "From your blog";
|
777 |
+
}
|
778 |
+
} else {
|
779 |
+
$referrer = "Direct hit";
|
780 |
+
}
|
781 |
+
$numurl = $wpdb->get_var("SELECT COUNT(DISTINCT id) as numurl FROM $table_name WHERE wassup_id='".$rk->wassup_id."'");
|
782 |
+
if ($rk->hostname != "") $hostname = $rk->hostname; else $hostname = "unknown";
|
783 |
+
?>
|
784 |
+
|
785 |
+
<div class="delID<?php echo $rk->wassup_id ?>">
|
786 |
+
<div class="<?php if ($wassup_settings['wmark'] == 1 AND $wassup_settings['wip'] == $ip[0]) echo "sum-nav-mark"; else echo "sum-nav"; ?>">
|
787 |
+
|
788 |
+
<p class="delbut">
|
789 |
+
<?php // Mark/Unmark IP
|
790 |
+
if ($wassup_settings['wmark'] == 1 AND $wassup_settings['wip'] == $ip[0]) { ?>
|
791 |
+
<a href="?<?php echo $_SERVER['QUERY_STRING'] ?>&deleteMARKED=1&dip=<?php print $ip[0]; ?>" style="text-decoration:none;"><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/cross.png'; ?>" alt="delete" title="Delete EVERY records marked by this IP from DB"></a>
|
792 |
+
<a href="?page=<?php echo WASSUPFOLDER; ?>&wmark=0" style="text-decoration:none;">
|
793 |
+
<img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/error_delete.png'; ?>" alt="mark" title="UnMark IP">
|
794 |
+
</a>
|
795 |
+
<?php } else { ?>
|
796 |
+
<a href="#" class="deleteID" id="<?php echo $rk->wassup_id ?>" style="text-decoration:none;"><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/cross.png'; ?>" alt="delete" title="Delete record from DB"></a>
|
797 |
+
<a href="?<?php echo $_SERVER['QUERY_STRING'] ?>&wmark=1&wip=<?php print $ip[0]; ?>" style="text-decoration:none;">
|
798 |
+
<img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/error_add.png'; ?>" alt="mark" title="Mark IP">
|
799 |
+
</a>
|
800 |
+
<?php } ?>
|
801 |
+
<a href="<?php echo $wpurl."/wp-content/plugins/".WASSUPFOLDER."/lib/action.php?height=400&width=$res&action=displayraw&hash=$hash&wassup_id=".$rk->wassup_id.""; ?>" class="thickbox"><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/database_table.png'; ?>" alt="show raw table" title="Show the items as raw table"></a>
|
802 |
+
</p>
|
803 |
+
|
804 |
+
<span class="sum-box"><?php if ($numurl >= 2) { ?><a href="#" class="showhide" id="<?php echo $rk->id ?>"><?php print $ip[0]; ?></a><? } else { ?><?php print $ip[0]; ?><?php } ?></span>
|
805 |
+
<span class="sum-date"><?php print $datetimeF; ?></span>
|
806 |
+
<div class="sum-det"><span class="det1">
|
807 |
+
<?php
|
808 |
+
print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($rk->urlrequested))).'" target="_BLANK">';
|
809 |
+
print stringShortener(urlencode(html_entity_decode($rk->urlrequested)), round($max_char_len*.8,0)); ?></a>
|
810 |
+
</span><br />
|
811 |
+
<span class="det2"><strong>Referer: </strong><?php print $referrer; ?><br /><strong>Hostname:</strong> <a href="#" class="toggleagent" id="<?php echo $rk->id ?>"><?php print $hostname; ?></a></span></div>
|
812 |
+
</div>
|
813 |
+
<div style="margin-left: auto; margin-right: auto;">
|
814 |
+
<div style="display: none;" class="togglenavi naviagent<?php echo $rk->id ?>">
|
815 |
+
<ul class="useragent">
|
816 |
+
<li class="useragent"><span class="indent-li-agent">UserAgent: <strong><?php print $rk->agent; ?></strong></span></li>
|
817 |
+
</ul>
|
818 |
+
</div>
|
819 |
+
<?php // Referer is search engine
|
820 |
+
if ($rk->searchengine != "") {
|
821 |
+
if (eregi("images", $rk->searchengine)) {
|
822 |
+
$bg = 'style="background: #e5e3ec;"';
|
823 |
+
$page = (number_format(($rk->searchpage / 19), 0) * 18);
|
824 |
+
$Apagenum = explode(".", number_format(($rk->searchpage / 19), 1));
|
825 |
+
$pagenum = ($Apagenum[0] + 1);
|
826 |
+
$url = parse_url($rk->referrer);
|
827 |
+
$ref = $url['scheme']."://".$url['host']."/images?q=".eregi_replace(" ", "+", $rk->search)."&start=".$page;
|
828 |
+
} else {
|
829 |
+
$bg = 'style="background: #e4ecf4;"';
|
830 |
+
$pagenum = $rk->searchpage;
|
831 |
+
$ref = $rk->referrer;
|
832 |
+
}
|
833 |
+
?>
|
834 |
+
<ul class="searcheng" <?php print $bg; ?>>
|
835 |
+
<li class="searcheng"><span class="indent-li-agent">SEARCH ENGINE: <strong><?php print $rk->searchengine." (page: $pagenum)"; ?></strong></span></li>
|
836 |
+
<li class="searcheng">KEYWORDS: <strong><a href="<?php print $ref; ?>" target="_BLANK"><?php print stringShortener($rk->search, round($max_char_len*.52,0)); ?></a></strong></li>
|
837 |
+
</ul>
|
838 |
+
<?php
|
839 |
+
} ?>
|
840 |
+
<?php
|
841 |
+
// User is logged in or is a comment's author
|
842 |
+
if ($rk->username != "" OR $rk->comment_author != "") {
|
843 |
+
if ($rk->username != "") {
|
844 |
+
$Ocomment_author = '<li class="users"><span class="indent-li-agent">LOGGED IN USER: <strong>'.$rk->username.'</strong></span></li>
|
845 |
+
<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.$rk->comment_author.'</strong></span></li>';
|
846 |
+
$unclass = "userslogged";
|
847 |
+
} elseif ($rk->comment_author != "") {
|
848 |
+
$Ocomment_author = '<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.utf8_decode($rk->comment_author).'</strong></span></li>';
|
849 |
+
$unclass = "users";
|
850 |
+
}
|
851 |
+
?>
|
852 |
+
<ul class="<?php print $unclass; ?>">
|
853 |
+
<?php print $Ocomment_author; ?>
|
854 |
+
</ul>
|
855 |
+
<?php } ?>
|
856 |
+
<?php // Referer is a Spider or Bot
|
857 |
+
if ($rk->spider != "") {
|
858 |
+
if ($rk->feed != "") { ?>
|
859 |
+
<ul style="background:#fdeec8;" class="spider">
|
860 |
+
<li class="feed"><span class="indent-li-agent">FEEDREADER: <strong><?php print $rk->spider; ?></strong></span></li>
|
861 |
+
<li class="feed"><span class="indent-li-agent">SUBSCRIBER(S): <strong><?php print $rk->feed; ?></strong></span></li>
|
862 |
+
</ul>
|
863 |
+
<?php } else { ?>
|
864 |
+
<ul class="spider">
|
865 |
+
<li class="spider"><span class="indent-li-agent">SPIDER: <strong><?php print $rk->spider; ?></strong></span></li>
|
866 |
+
</ul>
|
867 |
+
<?php }
|
868 |
+
} ?>
|
869 |
+
<?php // Referer is a SPAM
|
870 |
+
if ($rk->spam > 0) { ?>
|
871 |
+
<ul class="spam">
|
872 |
+
<li class="spam"><span class="indent-li-agent">Probably SPAM! <?php if ($rk->spam==1) { ?>(Akismet Spam)<?php } elseif ($rk->spam==2) { ?>(Referer Spam)<?php } ?></span></li>
|
873 |
+
</ul>
|
874 |
+
<?php } ?>
|
875 |
+
<?php // User os/broswer/language
|
876 |
+
if ($rk->os != "" OR $rk->browser != "") {
|
877 |
+
?>
|
878 |
+
<ul class="agent">
|
879 |
+
<li class="agent"><span class="indent-li-agent"><?php if ($rk->language != "") { ?><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/flags/'.strtolower($rk->language).'.png'; ?>" alt="<?php print strtolower($rk->language); ?>" title="Language: <?php print strtolower($rk->language); ?>"><?php } ?> OS: <strong><?php print $rk->os; ?></strong></span></li>
|
880 |
+
<li class="agent">BROWSER: <strong><?php print $rk->browser; ?></strong></li>
|
881 |
+
</ul>
|
882 |
+
<?php } ?>
|
883 |
+
|
884 |
+
<div style="display: visible;" class="togglecrono navi<?php echo $rk->id ?>">
|
885 |
+
<ul class="url">
|
886 |
+
<?php
|
887 |
+
$qryCD = $wpdb->get_results("SELECT timestamp, urlrequested FROM $table_name WHERE wassup_id='".$rk->wassup_id."' ORDER BY timestamp ASC");
|
888 |
+
$i=0;
|
889 |
+
foreach ($qryCD as $cd) {
|
890 |
+
//$timestamp2 = $cd->timestamp; //redundant
|
891 |
+
$time2 = gmdate("H:i:s", $cd->timestamp);
|
892 |
+
$char_len = round($max_char_len*.92,0);
|
893 |
+
$num = ($i&1);
|
894 |
+
if ($num == 0) $classodd = "urlodd"; else $classodd = "url";
|
895 |
+
if ($i >= 1) {
|
896 |
+
print '<li class="'.$classodd.' navi'.$rk->id.'"><span class="indent-li-nav">'.$time2.' ->';
|
897 |
+
print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cd->urlrequested))).'" target="_BLANK">';
|
898 |
+
print stringShortener(urlencode(html_entity_decode($cd->urlrequested)), $char_len).'</a></span></li>'."\n";
|
899 |
+
}
|
900 |
+
$i++;
|
901 |
+
} //end foreach qryCD
|
902 |
+
print "</ul>";
|
903 |
+
?>
|
904 |
+
</div>
|
905 |
+
<p class="sum-footer"></p>
|
906 |
+
</div>
|
907 |
+
</div>
|
908 |
+
<?php } //end foreach qry
|
909 |
+
|
910 |
+
} //end if itemstot > 0
|
911 |
+
print '<br />';
|
912 |
+
if ($itemstot >= 10) $p->show();
|
913 |
+
print '<br />';
|
914 |
+
if ($_GET['limit'] == 10 OR $_GET['limit'] == 20 OR !isset($_GET['limit'])) {
|
915 |
+
print $expcol;
|
916 |
+
}
|
917 |
+
|
918 |
+
} //end MAIN/DETAILS VIEW
|
919 |
+
|
920 |
+
print "<p><small>WassUp ver: $version - Check the official <a href='http://www.wpwp.org' target='_BLANK'>WassUp</a> page for updates, bug reports and your hints to improve it</small></p>";
|
921 |
+
print "</div>";
|
922 |
+
} //end function Wassup
|
923 |
+
|
924 |
+
function CreateTable() {
|
925 |
+
global $wpdb;
|
926 |
+
$table_name = $wpdb->prefix . "wassup";
|
927 |
+
$sql_createtable = "CREATE TABLE " . $table_name . " (
|
928 |
+
id mediumint(9) NOT NULL auto_increment,
|
929 |
+
wassup_id varchar(50) NOT NULL,
|
930 |
+
timestamp varchar(20) default NULL,
|
931 |
+
ip varchar(35) default NULL,
|
932 |
+
hostname varchar(255) default NULL,
|
933 |
+
urlrequested text,
|
934 |
+
agent varchar(255) default NULL,
|
935 |
+
referrer text default NULL,
|
936 |
+
search varchar(255) default NULL,
|
937 |
+
searchpage int(11) default 0,
|
938 |
+
os varchar(15) default NULL,
|
939 |
+
browser varchar(50) default NULL,
|
940 |
+
language varchar(5) default NULL,
|
941 |
+
screen_res varchar(15) default NULL,
|
942 |
+
searchengine varchar(20) default NULL,
|
943 |
+
spider varchar(50) default NULL,
|
944 |
+
feed varchar(30) default NULL,
|
945 |
+
username VARCHAR( 50 ) default NULL,
|
946 |
+
comment_author VARCHAR( 50 ) default NULL,
|
947 |
+
spam VARCHAR( 50 ) default 0,
|
948 |
+
UNIQUE KEY id (id),
|
949 |
+
KEY wassup_id (wassup_id)
|
950 |
+
);";
|
951 |
+
require_once( ABSPATH.'wp-admin/upgrade-functions.php');
|
952 |
+
dbDelta($sql_createtable);
|
953 |
+
} //end function createTable
|
954 |
+
|
955 |
+
function UpdateTable() {
|
956 |
+
global $wpdb, $wassup_settings;
|
957 |
+
$table_name = $wpdb->prefix . "wassup";
|
958 |
+
// Upgrade from version < 1.1b
|
959 |
+
if ($wpdb->get_var("SHOW COLUMNS FROM $table_name LIKE 'username'") == "") {
|
960 |
+
$sql_add_username = "ALTER TABLE {$table_name} ADD COLUMN username VARCHAR( 50 ) NULL";
|
961 |
+
$wpdb->query( $sql_add_username );
|
962 |
+
}
|
963 |
+
if ($wpdb->get_var("SHOW COLUMNS FROM $table_name LIKE 'comment_author'") == "") {
|
964 |
+
$sql_add_comment_author = "ALTER TABLE {$table_name} ADD COLUMN comment_author VARCHAR( 50 ) NULL";
|
965 |
+
$wpdb->query( $sql_add_comment_author );
|
966 |
+
}
|
967 |
+
// Upgrade from version < 1.1.4b
|
968 |
+
$Freferrer = $wpdb->get_results("show columns from $table_name LIKE 'referrer'");
|
969 |
+
foreach ($Freferrer as $ff) {
|
970 |
+
if (eregi("varchar", $ff->Type)) {
|
971 |
+
$sql_alter_referrer = "ALTER TABLE {$table_name} CHANGE referrer referrer TEXT NULL";
|
972 |
+
$wpdb->query( $sql_alter_referrer );
|
973 |
+
}
|
974 |
+
}
|
975 |
+
// Upgrade from version < 1.2b
|
976 |
+
$Fsearchpage = $wpdb->get_results("show columns from $table_name LIKE 'searchpage'");
|
977 |
+
foreach ($Fsearchpage as $ss) {
|
978 |
+
if ($ss->Default == "") {
|
979 |
+
$sql_alter_searchpage = "ALTER TABLE {$table_name} CHANGE searchpage searchpage INT( 11 ) NULL DEFAULT '0'";
|
980 |
+
$wpdb->query( $sql_alter_searchpage );
|
981 |
+
}
|
982 |
+
}
|
983 |
+
$Fuseragent = $wpdb->get_results("show columns from $table_name LIKE 'agent'");
|
984 |
+
foreach ($Fuseragent as $ua) {
|
985 |
+
if ($ua->Type != "varchar(255)") {
|
986 |
+
$sql_alter_useragent = "ALTER TABLE {$table_name} CHANGE agent agent varchar(255) NULL";
|
987 |
+
$wpdb->query( $sql_alter_useragent );
|
988 |
+
}
|
989 |
+
}
|
990 |
+
$Fbrowser = $wpdb->get_results("show columns from $table_name LIKE 'browser'");
|
991 |
+
foreach ($Fbrowser as $br) {
|
992 |
+
if ($br->Type != "varchar(50)") {
|
993 |
+
$sql_alter_browser = "ALTER TABLE {$table_name} CHANGE browser browser varchar(50) NULL";
|
994 |
+
$wpdb->query( $sql_alter_browser );
|
995 |
+
}
|
996 |
+
}
|
997 |
+
$Fspider = $wpdb->get_results("show columns from $table_name LIKE 'spider'");
|
998 |
+
foreach ($Fspider as $sp) {
|
999 |
+
if ($sp->Type != "varchar(50)") {
|
1000 |
+
$sql_alter_spider = "ALTER TABLE {$table_name} CHANGE spider spider varchar(50) NULL";
|
1001 |
+
$wpdb->query( $sql_alter_spider );
|
1002 |
+
}
|
1003 |
+
}
|
1004 |
+
// Upgrade from version < 1.3.9
|
1005 |
+
if ($wpdb->get_var("SHOW COLUMNS FROM $table_name LIKE 'spam'") == "") {
|
1006 |
+
$sql_add_spam = "ALTER TABLE {$table_name} ADD COLUMN spam VARCHAR( 50 ) DEFAULT '0'";
|
1007 |
+
$wpdb->query( $sql_add_spam );
|
1008 |
+
}
|
1009 |
+
} //end function UpdateTable()
|
1010 |
+
|
1011 |
+
//Track visitors and save record in wassup table
|
1012 |
+
function wassupAppend() {
|
1013 |
+
global $wpdb, $wassup_id, $wp_query, $HTTP_COOKIE_VARS, $screen_res, $wassup_settings, $wpurl;
|
1014 |
+
$siteurl = get_bloginfo('siteurl');
|
1015 |
+
$table_name = $wpdb->prefix . "wassup"; //moved;
|
1016 |
+
|
1017 |
+
if (!is_admin()) { //exclude wordpress admin page visits
|
1018 |
+
|
1019 |
+
//#### Get the visitor's details from http header...
|
1020 |
+
if (isset($_SERVER["REMOTE_ADDR"])) {
|
1021 |
+
if ($_SERVER["HTTP_X_FORWARDED_FOR"] != ""){
|
1022 |
+
$IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
|
1023 |
+
$proxy = $_SERVER["REMOTE_ADDR"];
|
1024 |
+
$hostname = @gethostbyaddr($_SERVER["HTTP_X_FORWARDED_FOR"]);
|
1025 |
+
$ipAddress = $proxy.",".$IP;
|
1026 |
+
}else{
|
1027 |
+
$IP = $_SERVER["REMOTE_ADDR"];
|
1028 |
+
$hostname = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
|
1029 |
+
$ipAddress = $IP;
|
1030 |
+
}
|
1031 |
+
}
|
1032 |
+
$urlRequested = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '' );
|
1033 |
+
$referrer = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');
|
1034 |
+
$userAgent = (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '');
|
1035 |
+
$language = (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? attribute_escape($_SERVER['HTTP_ACCEPT_LANGUAGE']) : '');
|
1036 |
+
$current_user = wp_get_current_user();
|
1037 |
+
$logged_user = $current_user->user_login;
|
1038 |
+
$comment_user = utf8_encode($_COOKIE['comment_author_'.COOKIEHASH]);
|
1039 |
+
|
1040 |
+
$timestamp = wassup_get_time(); //Add a timestamp to visit...
|
1041 |
+
|
1042 |
+
//#####Start recording visit....
|
1043 |
+
//## wassup is activated and IP not on exclusion list...
|
1044 |
+
if ($wassup_settings['wassup_active'] == 1) { //(moved)
|
1045 |
+
if (empty($wassup_settings['wassup_exclude']) ||
|
1046 |
+
strstr($wassup_settings['wassup_exclude'],$ipAddress) == FALSE) {
|
1047 |
+
|
1048 |
+
//### Exclude requests for themes, plugins, and favicon from recordings
|
1049 |
+
if (stristr($urlRequested,"favicon.ico") === FALSE) { //moved
|
1050 |
+
if (stristr($urlRequested,"/wp-content/plugins") === FALSE || stristr($urlRequested,"forum") !== FALSE ) { //moved and modified to allow forum requests
|
1051 |
+
if (stristr($urlRequested,"/wp-content/themes") === FALSE || stristr($urlRequested,"comment") !== FALSE ) { //moved and modified to allow comment requests
|
1052 |
+
|
1053 |
+
//##### Extract useful visit information from http header..
|
1054 |
+
$dip = &new Detector("", $userAgent);
|
1055 |
+
$browser = $dip->browser." ".$dip->browser_version;
|
1056 |
+
$os = $dip->os." ".$dip->os_version;
|
1057 |
+
if ($os != "" OR $browser != "") {
|
1058 |
+
$bot=wGetSpider($userAgent);
|
1059 |
+
if (is_array($bot)) {
|
1060 |
+
$spider = $bot[0];
|
1061 |
+
$feed = $bot[1];
|
1062 |
+
} else {
|
1063 |
+
$spider = trim($bot);
|
1064 |
+
}
|
1065 |
+
}
|
1066 |
+
//#I prefer to see os/browser info. for spiders/bots.
|
1067 |
+
//if ($spider != '') { $os=''; $browser=''; }
|
1068 |
+
|
1069 |
+
//# More recording exclusion controls (moved to avoid unneeded spam testing)
|
1070 |
+
if ($wassup_settings['wassup_loggedin'] == 1 || !is_user_logged_in() ) {
|
1071 |
+
if ($wassup_settings['wassup_spider'] == 1 || $spider == '') {
|
1072 |
+
if ($wassup_settings['wassup_attack'] == 1 || stristr($userAgent,"libwww-perl") === FALSE ) {
|
1073 |
+
|
1074 |
+
//#===================================================
|
1075 |
+
//###Start visitor tracking with "session"...
|
1076 |
+
//
|
1077 |
+
//#create a temporary id for this visit from a combination of
|
1078 |
+
//# date/hour/min/ip/spider/browser/os. It is not unique so
|
1079 |
+
//# that multiple visits from the same ip/userAgent within a
|
1080 |
+
//# 10 minute-period, can be tracked as such, even when
|
1081 |
+
//# session/cookies is disabled. An md5 encoded version of
|
1082 |
+
//# this id is saved in a session/cookie as "wassup_id".
|
1083 |
+
$temp_id = sprintf("%-032.32s",str_replace(array(" ","/",".","\"","'","\\","\$","-","&","+","_","\;","\,","\>","\<",":","#","*","%","http","\)","\(",), '', substr(date('YmdHi'),0,11).$ipAddress.$spider.$browser.$os.$userAgent));
|
1084 |
+
$wassup_id = "";
|
1085 |
+
$session_timeout = 1;
|
1086 |
+
$dup_urlrequest=0;
|
1087 |
+
//
|
1088 |
+
//### Check if this is an ongoing visit or a new hit...
|
1089 |
+
//# Test for valid savepath directory before session_start()
|
1090 |
+
//# Note: a read-only savepath directory can cause errors here.
|
1091 |
+
if (!empty($wassup_settings['wassup_savepath'])) {
|
1092 |
+
$sessionpath = $wassup_settings['wassup_savepath'];
|
1093 |
+
} else {
|
1094 |
+
$sessionpath = wGetSessionpath();
|
1095 |
+
}
|
1096 |
+
if ( file_exists($sessionpath)) {
|
1097 |
+
//#reset sessionpath to value set in options...
|
1098 |
+
if ( $sessionpath != wGetSessionpath() ) {
|
1099 |
+
session_save_path($sessionpath);
|
1100 |
+
}
|
1101 |
+
session_start(); //required to use/update $_SESSION
|
1102 |
+
//#confirm that session is started...
|
1103 |
+
if (isset($_SESSION)) {
|
1104 |
+
if (isset($_SESSION['wassup_id'])) {
|
1105 |
+
$wassup_id = $_SESSION['wassup_id'];
|
1106 |
+
$session_timeout = ((int)$_SESSION['wassup_timer'] - (int)time());
|
1107 |
+
if (isset($_SESSION['spamresult'])) {
|
1108 |
+
$spamresult = $_SESSION['spamresult'];
|
1109 |
+
}
|
1110 |
+
if ( $_SESSION['urlrequest'] == $urlRequested && (($timestamp - (int)$_SESSION['visittime']) < 5)) {
|
1111 |
+
$dup_urlrequest=1;
|
1112 |
+
}
|
1113 |
+
}
|
1114 |
+
//#reset wassup_id for new visitors or when timer is 0...
|
1115 |
+
if (empty($wassup_id) or $session_timeout < 1) {
|
1116 |
+
//# don't "destroy" old session in case it is
|
1117 |
+
//# in use elsewhere in wordpress ??..
|
1118 |
+
//if (!empty($wassup_id)) {
|
1119 |
+
// session_destroy();
|
1120 |
+
// session_start();
|
1121 |
+
//}
|
1122 |
+
$_SESSION['wassup_id'] = md5($temp_id);
|
1123 |
+
//$_SESSION['wassup_id'] = md5(uniqid(rand(), true));
|
1124 |
+
//#timeout session after 24 minutes
|
1125 |
+
$_SESSION['wassup_timer'] = ((int)time() + 1440);
|
1126 |
+
$dup_urlrequest=0;
|
1127 |
+
}
|
1128 |
+
$wassup_id = $_SESSION['wassup_id'];
|
1129 |
+
if ($dup_urlrequest == 0) { //for dup checks
|
1130 |
+
$_SESSION['visittime'] = $timestamp; //for dup checks
|
1131 |
+
$_SESSION['urlrequest'] = $urlRequested;
|
1132 |
+
}
|
1133 |
+
//#SID is empty when session uses cookies...
|
1134 |
+
//if (defined('SID') && !empty(SID)) {
|
1135 |
+
// //#manually add SID to url_rewriter when trans-sid
|
1136 |
+
// //# is disabled (how to test for this???)...
|
1137 |
+
// output_add_rewrite_var(session_name(), htmlspecialchars(session_id()));
|
1138 |
+
//}
|
1139 |
+
@session_write_close(); /* close session and commit changes*/
|
1140 |
+
|
1141 |
+
} elseif (isset($_COOKIE['wassup_id'])) {
|
1142 |
+
$wassup_id = $_COOKIE['wassup_id'];
|
1143 |
+
}
|
1144 |
+
} elseif (isset($_COOKIE['wassup_id'])) {
|
1145 |
+
$wassup_id = $_COOKIE['wassup_id'];
|
1146 |
+
}
|
1147 |
+
//#create cookie when bad session_savepath or when "session" is not available
|
1148 |
+
if (empty($wassup_id)) {
|
1149 |
+
//$wassup_id = md5(uniqid(rand(), true));
|
1150 |
+
$wassup_id = md5($temp_id);
|
1151 |
+
$url = parse_url(get_option('home'));
|
1152 |
+
setcookie('wassup_id', $wassup_id, wassup_get_time()+1440, $url['path'] . '/');
|
1153 |
+
}
|
1154 |
+
//#End session/cookie section
|
1155 |
+
//#===================================================
|
1156 |
+
|
1157 |
+
//### Exclude duplicates...
|
1158 |
+
if ($dup_urlrequest == 0) { //#dup checked only with sessions
|
1159 |
+
|
1160 |
+
//### Extract useful visit information from http header...
|
1161 |
+
$language = @explode("-", $language);
|
1162 |
+
$language = @explode(",", $language[1]);
|
1163 |
+
$language = @explode(";", $language[0]);
|
1164 |
+
|
1165 |
+
list($searchengine,$search_phrase)=explode("|",wGetSE($referrer));
|
1166 |
+
$se=seReferer($referrer);
|
1167 |
+
if ($search_phrase != '') {
|
1168 |
+
if (stristr($searchengine,"images")) {
|
1169 |
+
// ATTENTION Position retrieved by referer in Google Images is
|
1170 |
+
// the Position number of image NOT the number of items in the page like web search
|
1171 |
+
$searchpage=$se['Pos'];
|
1172 |
+
$searchcountry = explode(".", $se['Se']);
|
1173 |
+
} else {
|
1174 |
+
$searchpage=($se['Pos']/10+1);
|
1175 |
+
$searchcountry = explode(".", $se['Se']);
|
1176 |
+
}
|
1177 |
+
if ($searchcountry[3] != '' ) {
|
1178 |
+
$searchengine .= " ".strtoupper($searchcountry[3]);
|
1179 |
+
} elseif ($searchcountry[2] != '') {
|
1180 |
+
$searchengine .= " ".strtoupper($searchcountry[2]);
|
1181 |
+
}
|
1182 |
+
}
|
1183 |
+
if ($searchpage == "") {
|
1184 |
+
$searchpage = 0;
|
1185 |
+
}
|
1186 |
+
|
1187 |
+
//### Check for spam...
|
1188 |
+
$spam = 0; //a spam default of 0 is required to add record...
|
1189 |
+
//# some useragents to exclude from spam checking...
|
1190 |
+
$goodbots = array('Google','Yahoo!', 'SummizeFeedReader'); //omit
|
1191 |
+
|
1192 |
+
if ( $wassup_settings['wassup_spamcheck'] == 1 ) {
|
1193 |
+
//
|
1194 |
+
//# No duplicate spam testing in same session unless there
|
1195 |
+
//# is a forum page request or comment...
|
1196 |
+
if (isset($spamresult) && stristr($urlRequested,"comment") === FALSE && stristr($urlRequested,"forum") === FALSE && empty($comment_user) && empty($_POST['comment'])) {
|
1197 |
+
$spam = $spamresult;
|
1198 |
+
|
1199 |
+
//# No spam check on known bots (google, yahoo,...) unless
|
1200 |
+
//# there is a comment or forum page request...
|
1201 |
+
} elseif ( empty($spider) || array_search($spider,$goodbots) === FALSE || stristr($urlRequested,"comment") !== FALSE || stristr($urlRequested,"forum") !== FALSE || !empty($comment_user) ) {
|
1202 |
+
|
1203 |
+
//#first check for referrer spam (faster, if positive)
|
1204 |
+
//#...but skip when referrer is own blog ($siteurl/$wpurl)
|
1205 |
+
if (!empty($referrer)) {
|
1206 |
+
if (!stristr($referrer,$wpurl) && !stristr($referrer,$siteurl)) {
|
1207 |
+
// Do a control if it is Referrer Spam
|
1208 |
+
if (wGetSpamRef($referrer) == 1) { $spam = 2; }
|
1209 |
+
}
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
//#lastly check for comment spammers using Akismet API
|
1213 |
+
// Start Akismet integration to prevent spam records
|
1214 |
+
$akismet_key = get_option('wordpress_api_key');
|
1215 |
+
if (!empty($akismet_key) && ($spam == 0 || !empty($comment_user)) || is_feed()) {
|
1216 |
+
$comment_user_email = utf8_encode($_COOKIE['comment_author_email_'.COOKIEHASH]);
|
1217 |
+
$comment_user_url = utf8_encode($_COOKIE['comment_author_url_'.COOKIEHASH]);
|
1218 |
+
include(dirname(__FILE__).'/lib/akismet.class.php');
|
1219 |
+
|
1220 |
+
// load array with comment data
|
1221 |
+
$Acomment = array(
|
1222 |
+
'author' => $comment_user,
|
1223 |
+
'email' => $comment_user_email,
|
1224 |
+
'website' => $comment_user_url,
|
1225 |
+
'body' => $_POST["comment"],
|
1226 |
+
'permalink' => $urlRequested,
|
1227 |
+
'user_ip' => $ipAddress,
|
1228 |
+
'user_agent' => $userAgent
|
1229 |
+
);
|
1230 |
+
|
1231 |
+
// instantiate an instance of the class
|
1232 |
+
$akismet = new Akismet($wpurl, $akismet_key, $Acomment);
|
1233 |
+
|
1234 |
+
// Check if it's spam
|
1235 |
+
if ( $akismet->isSpam() ) {
|
1236 |
+
$spam = 1;
|
1237 |
+
}
|
1238 |
+
// test for errors
|
1239 |
+
// no need for error checks...spam=0 already set by default
|
1240 |
+
//if($akismet->errorsExist()) {
|
1241 |
+
// returns true if any errors exist
|
1242 |
+
//if($akismet->isError('AKISMET_INVALID_KEY')) {
|
1243 |
+
// $spam = 0;
|
1244 |
+
//} elseif($akismet->isError('AKISMET_RESPONSE_FAILED')) {
|
1245 |
+
// $spam = 0;
|
1246 |
+
//} elseif($akismet->isError('AKISMET_SERVER_NOT_FOUND')) {
|
1247 |
+
// $spam = 0;
|
1248 |
+
//}
|
1249 |
+
//}
|
1250 |
+
//end if akismet_key
|
1251 |
+
} else {
|
1252 |
+
//#no akismet key...check for known spammers using
|
1253 |
+
//# wGetSpamRef() with $hostname in place of
|
1254 |
+
//# $referrer...
|
1255 |
+
if ( $spam == 0) {
|
1256 |
+
if (!empty($hostname) && $hostname != "unknown") {
|
1257 |
+
if (wGetSpamRef($hostname) == 1) { $spam = 1; }
|
1258 |
+
}
|
1259 |
+
}
|
1260 |
+
} //end else akismet_key
|
1261 |
+
|
1262 |
+
// #save spam results in session...
|
1263 |
+
if ( file_exists($sessionpath)) {
|
1264 |
+
@session_start(); //required to access $_SESSION
|
1265 |
+
$_SESSION['spamresult'] = $spam;
|
1266 |
+
@session_write_close();
|
1267 |
+
}
|
1268 |
+
|
1269 |
+
} //end else $spamresult
|
1270 |
+
} //end if wassup_spamcheck
|
1271 |
+
|
1272 |
+
// Personally used to debug
|
1273 |
+
if ($current_user->user_email == "michele@befree.it") {
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
//### Record visit in wassup table...
|
1277 |
+
//## Final exclusion control is spam...
|
1278 |
+
if ($spam == 0 OR ($wassup_settings['wassup_spam'] == 1 AND $spam == 1) OR ($wassup_settings['wassup_refspam'] == 1 AND $spam == 2)) {
|
1279 |
+
|
1280 |
+
$insert = $wpdb->query( $wpdb->prepare("INSERT INTO $table_name (wassup_id, timestamp, ip, hostname, urlrequested, agent, referrer, search, searchpage, os, browser, language, screen_res, searchengine, spider, feed, username, comment_author, spam)
|
1281 |
+
VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s )",
|
1282 |
+
$wassup_id,
|
1283 |
+
$timestamp,
|
1284 |
+
attribute_escape($ipAddress),
|
1285 |
+
attribute_escape($hostname),
|
1286 |
+
attribute_escape($urlRequested),
|
1287 |
+
attribute_escape($userAgent),
|
1288 |
+
attribute_escape($referrer),
|
1289 |
+
$search_phrase,
|
1290 |
+
$searchpage,
|
1291 |
+
$os,
|
1292 |
+
$browser,
|
1293 |
+
$language[0],
|
1294 |
+
$screen_res,
|
1295 |
+
$searchengine,
|
1296 |
+
$spider,
|
1297 |
+
$feed,
|
1298 |
+
attribute_escape($logged_user),
|
1299 |
+
attribute_escape($comment_user),
|
1300 |
+
$spam
|
1301 |
+
));
|
1302 |
+
|
1303 |
+
} //end if wassup_spam
|
1304 |
+
} //end if dup_urlrequest == 0
|
1305 |
+
|
1306 |
+
} //end if wassup_attack
|
1307 |
+
} //end if wassup_spider
|
1308 |
+
} //end if wassup_loggedin
|
1309 |
+
|
1310 |
+
} //end if !themes
|
1311 |
+
} //end if !plugins
|
1312 |
+
} //end if !favicon
|
1313 |
+
|
1314 |
+
//### Purge old records from wassup table
|
1315 |
+
//automatic database cleanup of old records...
|
1316 |
+
if ($wassup_settings['delete_auto'] != "") {
|
1317 |
+
// do purge every few visits to keep wassup fast...
|
1318 |
+
if ( ((int)$timestamp)%5 == 0 ) {
|
1319 |
+
//use visit timestamp instead of current time for
|
1320 |
+
// delete parameter
|
1321 |
+
//$to_date = wassup_get_time();
|
1322 |
+
$from_date = strtotime($wassup_settings['delete_auto'], $timestamp);
|
1323 |
+
if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name AND $wpdb->get_var("SELECT COUNT(id) FROM $table_name WHERE timestamp<'$from_date'") > 0) {
|
1324 |
+
$wpdb->query("DELETE FROM $table_name WHERE timestamp<'$from_date'");
|
1325 |
+
$wpdb->query("OPTIMIZE TABLE $table_name");
|
1326 |
+
}
|
1327 |
+
}
|
1328 |
+
} //end if delete_auto
|
1329 |
+
|
1330 |
+
} //end if wassup_exclude
|
1331 |
+
} //end if wassup_active
|
1332 |
+
} //end if !is_admin
|
1333 |
+
|
1334 |
+
//### Notify admin if alert is set and wassup table > alert
|
1335 |
+
if ($wassup_settings['wassup_remind_flag'] == 1) {
|
1336 |
+
// check database size every few visits to keep wassup fast...
|
1337 |
+
if ( (time())%7 == 0 ) {
|
1338 |
+
$table_status = $wpdb->get_results("SHOW TABLE STATUS LIKE '$table_name'");
|
1339 |
+
foreach ($table_status as $fstatus) {
|
1340 |
+
$data_lenght = $fstatus->Data_length;
|
1341 |
+
}
|
1342 |
+
$tusage = ($data_lenght/1024/1024);
|
1343 |
+
if ($tusage > $wassup_settings['wassup_remind_mb']) {
|
1344 |
+
$recipient = get_bloginfo('admin_email');
|
1345 |
+
$sender = get_bloginfo('name').' <wassup_noreply@'.parse_url(get_bloginfo('siteurl'),PHP_URL_HOST).'>';
|
1346 |
+
$subject = "[ALERT] WassUp Plugin table has reached maximum size!";
|
1347 |
+
$message = "Hi,\nyou have received this email because your WassUp Database table at your Wordpress blog (".get_bloginfo('url').") had reached the maximum value you set in the options menu (".$wassup_settings['wassup_remind_mb']." Mb).\n\nThis is only a reminder, please take the actions you want in the WassUp options menu (".get_bloginfo('url')."/wp-admin/admin.php?page=wassup-options).\n\nThis alert now will be removed and you will be able to set a new one.\n\nThank you for using WassUp plugin. Check if there is a new version available here: http://wordpress.org/extend/plugins/wassup/\n\nHave a nice day!";
|
1348 |
+
mail($recipient, $subject, $message, "From: $sender");
|
1349 |
+
$wassup_settings['wassup_remind_flag'] = 2;
|
1350 |
+
update_option('wassup_settings', $wassup_settings);
|
1351 |
+
|
1352 |
+
}
|
1353 |
+
}
|
1354 |
+
} //if wassup_remind_flag
|
1355 |
+
} //end function wassupAppend()
|
1356 |
+
|
1357 |
+
function wGetQueryPairs($url){
|
1358 |
+
$parsed_url = parse_url($url);
|
1359 |
+
$tab=parse_url($url);
|
1360 |
+
$host = $tab['host'];
|
1361 |
+
if(key_exists("query",$tab)){
|
1362 |
+
$query=$tab["query"];
|
1363 |
+
return explode("&",$query);
|
1364 |
+
} else {
|
1365 |
+
return null;
|
1366 |
+
}
|
1367 |
+
}
|
1368 |
+
|
1369 |
+
function array_search_extended($file,$str_search)
|
1370 |
+
{
|
1371 |
+
foreach($file as $key => $line)
|
1372 |
+
{
|
1373 |
+
if (strpos($line, $str_search)!== FALSE)
|
1374 |
+
{
|
1375 |
+
return $key;
|
1376 |
+
}
|
1377 |
+
}
|
1378 |
+
return false;
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
function seReferer($ref = false){
|
1382 |
+
$SeReferer = (is_string($ref) ? $ref : mb_convert_encoding(strip_tags($_SERVER['HTTP_REFERER']), "HTML-ENTITIES", "auto"));
|
1383 |
+
if( //Check against Google, Yahoo, MSN, Ask and others
|
1384 |
+
preg_match(
|
1385 |
+
"/[&\?](prev|q|p|w|searchfor|as_q|as_epq|s|query)=([^&]+)/i",
|
1386 |
+
$SeReferer,$pcs)
|
1387 |
+
){
|
1388 |
+
if(preg_match("/https?:\/\/([^\/]+)\//i",$SeReferer,$SeDomain)){
|
1389 |
+
$SeDomain = trim(strtolower($SeDomain[1]));
|
1390 |
+
$SeQuery = $pcs[2];
|
1391 |
+
if(preg_match("/[&\?](start|b|first|stq)=([0-9]*)/i",$SeReferer,$pcs)){
|
1392 |
+
$SePos = (int)trim($pcs[2]);
|
1393 |
+
}
|
1394 |
+
}
|
1395 |
+
}
|
1396 |
+
if(!isset($SeQuery)){
|
1397 |
+
if( //Check against DogPile
|
1398 |
+
preg_match(
|
1399 |
+
"/\/search\/web\/([^\/]+)\//i",
|
1400 |
+
$SeReferer,$pcs)
|
1401 |
+
){
|
1402 |
+
if(preg_match("/https?:\/\/([^\/]+)\//i",$SeReferer,$SeDomain)){
|
1403 |
+
$SeDomain = trim(strtolower($SeDomain[1]));
|
1404 |
+
$SeQuery = $pcs[1];
|
1405 |
+
}
|
1406 |
+
}
|
1407 |
+
}
|
1408 |
+
// We Do Not have a query
|
1409 |
+
if(!isset($SeQuery)){ return false; }
|
1410 |
+
$OldQ=$SeQuery;
|
1411 |
+
$SeQuery=urldecode($SeQuery);
|
1412 |
+
// The Multiple URLDecode Trick to fix DogPile %XXXX Encodes
|
1413 |
+
while($SeQuery != $OldQ){
|
1414 |
+
$OldQ=$SeQuery; $SeQuery=urldecode($SeQuery);
|
1415 |
+
}
|
1416 |
+
//-- We have a query
|
1417 |
+
return array(
|
1418 |
+
"Se"=>$SeDomain,
|
1419 |
+
"Query"=>$SeQuery,
|
1420 |
+
"Pos"=>(int)$SePos,
|
1421 |
+
"Referer"=>$SeReferer
|
1422 |
+
);
|
1423 |
+
}
|
1424 |
+
|
1425 |
+
function wGetSE($referrer = null){
|
1426 |
+
$key = null;
|
1427 |
+
$lines = array("Alice|search.alice.it|qs|","Google|www.google.|q|","Google Groups|groups.google.|q|", "Google Images|images.google.|prev|", "Yahoo|search.yahoo.com|p|",
|
1428 |
+
"Virgilio|search.virgilio.it|qs|","Arianna|arianna.libero.it|query|","Altavista|.altavista.com|q|","Kataweb|kataweb.it|q|",
|
1429 |
+
"Il Trovatore|categorie.iltrovatore.it|query|","Il Trovatore|search.iltrovatore.it|q|","2020Search|2020search.c|us|st|pn|1|",
|
1430 |
+
"abcsearch.com|abcsearch.com|terms|","100Links|100links.supereva.it|q|","Alexa|alexa.com|q|","Alltheweb|alltheweb.com|q|",
|
1431 |
+
"Aol|.aol.|query|","Aol|aolrecherches.aol.fr|query|","Ask|ask.com|ask|","Ask|ask.com|q|","DMOZ|search.dmoz.org|search|",
|
1432 |
+
"Dogpile|dogpile.com|q|","Excite|excite.|q|","Godago|.godago.com|keywords|","HotBot|hotbot.*|query|","ixquick|ixquick.com|query|",
|
1433 |
+
"Lycos|cerca.lycos.it|query|","Lycos|lycos.|q|","Windows Live|search.live.com|q|mkt|","My Search|mysearch.com|searchfor|",
|
1434 |
+
"My Way|mysearch.myway.com|searchfor|","Metacrawler|metacrawler.|q|","Netscape Search|search.netscape.com|query|","MSN|msn.|q|",
|
1435 |
+
"Overture|overture.com|Keywords|","Supereva|supereva.it|q|","Teoma|teoma.com|q|","Tiscali|search-dyn.tiscali.|key|","Voil|voila.fr|kw|",
|
1436 |
+
"Web|web.de|su|","Clarence|search.clarence.com|q|","Gazzetta|search.gazzetta.it|q|","PagineGialle|paginegialle.it|qs|",
|
1437 |
+
"Jumpy|servizi.mediaset.it|searchWord|","ItaliaPuntoNet|italiapuntonet.net|search|","StartNow|search.startnow.|q|","Search|search.it|srctxt|",
|
1438 |
+
"Search|search.com|q|");
|
1439 |
+
foreach($lines as $line_num => $se) {
|
1440 |
+
list($nome,$url,$key,$lang)=explode("|",$se);
|
1441 |
+
if(@strpos($referrer,$url)===FALSE) continue;
|
1442 |
+
// found it!
|
1443 |
+
// The SE is Google Images
|
1444 |
+
if ($nome == "Google Images") {
|
1445 |
+
$variables = wGetQueryPairs($referrer);
|
1446 |
+
$rightkey = array_search_extended($variables, "images");
|
1447 |
+
$variables = eregi_replace("prev=/images\?q=", "", urldecode($variables[$rightkey]));
|
1448 |
+
$variables = explode("&",$variables);
|
1449 |
+
return ($nome."|".urldecode($variables[0]));
|
1450 |
+
} else {
|
1451 |
+
$variables = wGetQueryPairs($referrer);
|
1452 |
+
$i = count($variables);
|
1453 |
+
while($i--){
|
1454 |
+
$tab=explode("=",$variables[$i]);
|
1455 |
+
if($tab[0] == $key){return ($nome."|".urldecode($tab[1]));}
|
1456 |
+
}
|
1457 |
+
}
|
1458 |
+
}
|
1459 |
+
return null;
|
1460 |
+
}
|
1461 |
+
|
1462 |
+
function wGetSpider($agent = null){
|
1463 |
+
$agent=str_replace(" ","",$agent);
|
1464 |
+
$key = null;
|
1465 |
+
$lines = array("Wordpress Pingback/Trackback|Wordpress|", "Alexa|ia_archiver|","Ask.com/Teoma|AskJeeves/Teoma)|","Biz360|Biz360|","Naver|NaverBot|","Naver|Cowbot|","cURL|curl/|","Google|Googlebot/|",
|
1466 |
+
"Google|googlebot/|","Google Images|Googlebot-Image|","LookSmart|grub-client|","Yahoo!|slurp@inktomi|","Yahoo!|Yahoo!Slurp|",
|
1467 |
+
"Yahoo!|MMCrawler|","MSN|msnbot|","AltaVista|Scooter-|","Wget|Wget/1.|","Technorati|Technoratibot|","Moreover|Moreoverbot|",
|
1468 |
+
"Yahoo FeedSeeker|YahooFeedSeeker|","Java|Java/|","relevantNOISE|www.relevantnoise.com|","Voila|VoilaBot|","IRLIRLbot/|","Snapbot|Snap|",
|
1469 |
+
"ichiro|ichiro|", "shelob|shelob|", "Google AdSense|Mediapartners-Google|", "Seekbot|HTTPFetcher|", "CommentTracker|CommentTracker|",
|
1470 |
+
"Bloglines|bloglines|", "Italian Blog Rankings|blogbabel", "Ask Jeeves/Teoma|ask|", "Akregator|Akregator|", "NewsGatorOnline|NewsGatorOnline|", "Rojo|rojo|", "FeedTools|feedtools|",
|
1471 |
+
"Feedfetcher-Google|Feedfetcher-google|", "AideRSS|AideRSS|", "psbot|psbot|", "Ruby|Rfeedfinder|", "everyfeed-spider|everyfeed-spider", "Attentio/Nutch|Attentio",
|
1472 |
+
"Megite2.0|Megite.com|", "radianrss|RadianRSS|", "Sitemap Generator|Sitemap Generator|", "Feedshow|Feedshow|", "ABCdatos|ABCdatos|", "Acme.Spider|Due|", "Ahoy!|Ahoy!|",
|
1473 |
+
"Alkaline|AlkalineBOT|", "appie|Appie|", "Arachnophilia|Arachnophilia|", "Araneo|Araneo/0.7|", "AraybOt|AraybOt/1.0|", "ArchitextSpider|ArchitextSpider|",
|
1474 |
+
"ARIADNE|Due|", "ASpider|ASpider/0.09|", "Atomz.com|Atomz/1.0|", "AURESYS|AURESYS/1.0|", "BackRub|BackRub/*.*|", "BBot|bbot/0.100|", "Big|Big|", "Bjaaland|Bjaaland/0.5|",
|
1475 |
+
"BlackWidow|BlackWidow|", "Die|Die|", "Borg-Bot|borg-bot/0.9|", "BoxSeaBot|BoxSeaBot/0.5|", "BSpider|BSpider/1.0|", "CACTVS|CACTVS|", "Calif|Calif/0.6|",
|
1476 |
+
"Digimarc|Digimarc|", "Checkbot|Checkbot/x.xx|", "cIeNcIaFiCcIoN.nEt|cIeNcIaFiCcIoN.nEt|", "CMC/0.01|CMC/0.01|", "Combine|combine/0.0|", "ConfuzzledBot|Confuzzledbot/X.X|",
|
1477 |
+
"CoolBot|CoolBot|", "Web|root/0.1|", "XYLEME|cosmos/0.3|", "Cusco|Cusco/3.2|", "CyberSpyder|CyberSpyder/2.1|", "CydralSpider|CydralSpider/X.X|", "Desert|DesertRealm.com;|",
|
1478 |
+
"DeWeb(c)|Deweb/1.01|", "DienstSpider|dienstspider/1.0|", "Digger|Digger/1.0|", "Digital|DIIbot|", "Direct|grabber|", "DNAbot|DNAbot/1.0|", "DragonBot|DragonBot/1.0|",
|
1479 |
+
"DWCP|DWCP/2.0|", "e-collector|LWP::|", "EIT|EIT-Link-Verifier-Robot/0.2|", "Emacs-w3|Emacs-w3/v[0-9\.]+|", "ananzi|EMC|", "esculapio|esculapio/1.1|", "Esther|esther|",
|
1480 |
+
"Evliya|Evliya|", "nzexplorer|explorersearch|", "FastCrawler|FastCrawler|", "Dynamics|(compatible:|", "Felix|FelixIDE/1.0|", "Wild|Hazel's|", "FetchRover|ESIRover|",
|
1481 |
+
"fido|fido/0.9|", "KIT-Fireball|KIT-Fireball/2.0|", "Fish|Fish-Search-Robot|", "Fouineur|Fouineur|", "Robot|Robot|", "Freecrawl|Freecrawl|", "FunnelWeb|FunnelWeb-1.0|",
|
1482 |
+
"gammaSpider|gammaSpider|", "gazz|gazz/1.0|", "GCreep|gcreep/1.0|", "GetURL|GetURL.rexx|", "Golem|Golem/1.1|", "Googlebot|Googlebot/2.X|", "Gromit|Gromit/1.0|",
|
1483 |
+
"Northern|Gulliver/1.1|", "Gulper|Gulper|", "Harvest|yes|", "havIndex|havIndex/X.xx[bxx]|", "HI|AITCSRobot/1.1|", "Hometown|Hometown|", "Wired|wired-digital-newsbot/1.5|",
|
1484 |
+
"ht://Dig|htdig/3.1.0b2|", "HTMLgobble|HTMLgobble|", "Hyper-Decontextualizer|Hyper|", "iajaBot|iajaBot/0.1|", "IBM_Planetwide|IBM_Planetwide,|",
|
1485 |
+
"Popular|gestaltIconoclast/1.0|", "Ingrid|INGRID/0.1|", "Imagelock|Imagelock|", "IncyWincy|IncyWincy/1.0b1|", "Informant|Informant|", "InfoSeek|InfoSeek|",
|
1486 |
+
"Infoseek|Infoseek|", "InfoSpiders|InfoSpiders/0.1|", "Inspector|inspectorwww/1.0|", "IntelliAgent|'IAGENT/1.0'|", "Israeli-search|IsraeliSearch/1.0|", "JBot|JBot|",
|
1487 |
+
"JCrawler|JCrawler/0.2|", "AskJeeves|Askjeeves|", "JoBo|JoBo|", "Jobot|Jobot/0.1alpha|", "JoeBot|JoeBot/x.x,|", "The|JubiiRobot/version#|", "JumpStation|jumpstation|",
|
1488 |
+
"image.kapsi.net|image.kapsi.net/1.0|", "Katipo|Katipo/1.0|", "KDD-Explorer|KDD-Explorer/0.1|", "KO_Yappo_Robot|KO_Yappo_Robot/1.0.4(http://yappo.com/info/robot.html)|",
|
1489 |
+
"LabelGrabber|LabelGrab/1.1|", "larbin|larbin|", "legs|legs|", "Link|Linkidator/0.93|", "LinkWalker|LinkWalker|", "logo.gif|logo.gif|", "Lycos|Lycos/x.x|",
|
1490 |
+
"Magpie|Magpie/1.0|", "marvin/infoseek|marvin/infoseek|", "Mattie|M/3.8|", "MediaFox|MediaFox/x.y|", "NEC-MeshExplorer|NEC-MeshExplorer|", "MindCrawler|MindCrawler|",
|
1491 |
+
"mnoGoSearch|UdmSearch|", "MOMspider|MOMspider/1.00|", "Monster|Monster/vX.X.X|", "Motor|Motor/0.2|", "MSNBot|MSNBOT/0.1|", "Muninn|Muninn/0.1|",
|
1492 |
+
"Muscat|MuscatFerret/<version>|", "Mwd.Search|MwdSearch/0.1|", "Internet|User-Agent:|", "NDSpider|NDSpider/1.5|", "NetCarta|NetCarta|", "NetMechanic|NetMechanic|",
|
1493 |
+
"NetScoop|NetScoop/1.0|", "newscan-online|newscan-online/1.1|", "NHSE|NHSEWalker/3.0|", "Nomad|Nomad-V2.x|", "ObjectsSearch|ObjectsSearch/0.01|", "Occam|Occam/1.0|",
|
1494 |
+
"HKU|HKU|", "Openfind|Openfind|", "Orb|Orbsearch/1.0|", "Pack|PackRat/1.0|", "ParaSite|ParaSite/0.21|", "Patric|Patric/0.01a|", "PerlCrawler|PerlCrawler/1.0|",
|
1495 |
+
"Phantom|Duppies|", "PhpDig|phpdig/x.x.x|", "PiltdownMan|PiltdownMan/1.0|", "Pimptrain.com's|Pimptrain|", "Pioneer|Pioneer|", "Portal|PortalJuice.com/4.0|",
|
1496 |
+
"PGP|PGP-KA/1.2|", "PlumtreeWebAccessor|PlumtreeWebAccessor/0.9|", "Poppi|Poppi/1.0|", "PortalB|PortalBSpider/1.0|", "psbot|psbot/0.X|", "GetterroboPlus|straight|",
|
1497 |
+
"Raven|Raven-v2|", "Resume|Resume|", "RoadHouse|RHCS/1.0a|", "RixBot|RixBot|", "Road|Road|", "Robbie|Robbie/0.1|", "ComputingSite|ComputingSite|", "RoboCrawl|RoboCrawl|",
|
1498 |
+
"RoboFox|Robofox|", "Robozilla|Robozilla/1.0|", "Roverbot|Roverbot|", "RuLeS|RuLeS/1.0|", "SafetyNet|SafetyNet|", "Scooter|Scooter/2.0|", "Search.Aus-AU.COM|not|",
|
1499 |
+
"Sleek|Sleek|", "SearchProcess|searchprocess/0.9|", "Senrigan|Senrigan/xxxxxx|", "SG-Scout|SG-Scout|", "Shai'Hulud|Shai'Hulud|", "Simmany|SimBot/1.0|", "SBIder|Site|",
|
1500 |
+
"SiteTech-Rover|SiteTech-Rover|", "Skymob.com|aWapClient|", "Inktomi|Slurp/2.0|", "Smart|ESISmartSpider/2.0|", "Snooper|Snooper/b97_01|", "Solbot|Solbot/1.0|",
|
1501 |
+
"Spider|Spider|", "spider_monkey|mouse.house/7.1|", "SpiderBot|SpiderBot/1.0|", "Spiderline|spiderline/3.1.3|", "SpiderView(tm)|SpiderView|", "Site|ssearcher100|",
|
1502 |
+
"Suke|suke/*.*|", "suntek|suntek/1.0|", "Sygol|http://www.sygol.com|", "TACH|TACH|", "Tarantula|Tarantula/1.0|", "tarspider|tarspider|", "Tcl|dlw3robot/x.y|",
|
1503 |
+
"TechBOT|TechBOT|", "Templeton|Templeton/{version}|", "TitIn|TitIn/0.2|", "TITAN|TITAN/0.1|", "UCSD|UCSD-Crawler|", "UdmSearch|UdmSearch/2.1.1|", "UptimeBot|uptimebot|",
|
1504 |
+
"URL|urlck/1.2.3|", "URL|URL|", "Valkyrie|Valkyrie/1.0|", "Verticrawl|Verticrawlbot|", "Victoria|Victoria/1.0|", "vision-search|vision-search/3.0'|",
|
1505 |
+
"void-bot|void-bot/0.1|", "Voyager|Voyager/0.0|", "VWbot|VWbot_K/4.2|", "The|w3index|", "W3M2|W3M2/x.xxx|", "WallPaper|CrawlPaper/n.n.n|", "the|WWWWanderer|",
|
1506 |
+
"w@pSpider|w@pSpider/xxx|", "WebCatcher|WebCatcher/1.0|", "WebCopy|WebCopy/(version)|", "webfetcher|WebFetcher/0.8,|", "Webinator|weblayers|", "weblayers/0.0|WebLinker|",
|
1507 |
+
"WebLinker/0.0|WebMirror|", "Digimarc|WebReaper|", "WebReaper|webs|", "webs@recruit.co.jp|Websnarf|", "WebVac|webvac/1.0|", "webwalk|webwalk|",
|
1508 |
+
"WebWalker|WebWalker/1.10|", "WebWatch|WebWatch|", "Wget|Wget/1.4.0|", "whatUseek|whatUseek_winona/3.0|", "Weblog|wlm-1.1|", "w3mir|w3mir|", "WebStolperer|WOLP/1.0|",
|
1509 |
+
"WWWC|WWWC/0.25|", "WebZinger|none|", "XGET|XGET/0.7|", "Nederland.zoek|Nederland.zoek|", "boitho.com|boitho.com|", "GreatNews|GreatNews|", "AlestiFeedBot|AlestiFeedBot|",
|
1510 |
+
"SummizeFeedReader|SummizeFeedReader|", "FeedBurner|FeedBurner|", "lilina|Lilina|", "BuzzTracker|BuzzTracker|", "kinjabot|kinjabot|", "Krugle|Krugle|",
|
1511 |
+
"libwww-perl|libwww-perl|", "Jakarta|Jakarta|", "VadixBot|VadixBot|", "Google Desktop|Google Desktop|", "BlogsNowBot|BlogsNowBot|", "Feedster|Feedster|",
|
1512 |
+
"WebCopier|WebCopier|", "MSRBOT|MSRBOT|", "Charlotte|Charlotte|", "wp-autoblogSimplePie|SimplePie|", "wikioblogs|wikioblogs|", "Wells Search II|Wells Search II|",
|
1513 |
+
"BlogsNowBot|BlogsNowBot|", "NG/2.0|NG/2.0|", "BlogBridge|BlogBridge|", "Drupal|Drupal|", "WebGenBot|WebGenBot|", "CazoodleBot|CazoodleBot|", "MJ12bot|MJ12bot|",
|
1514 |
+
"Feedreader|Feedreader|", "Strategic Board Bot|Strategic Board Bot|", "LiteFinder|LiteFinder|", "SurveyBot|SurveyBot|", "Teemer|Teemer|", "NetNewsWire|NetNewsWire|",
|
1515 |
+
"disco/Nutch|disco/Nutch", "StackRambler|StackRambler|", "MagpieRSS|MagpieRSS|", "WebAlta|WebAlta|", "NewsAlloy|NewsAlloy|",
|
1516 |
+
"WikioFeedBot|WikioFeedBot|", "Strategic Board Bot |Strategic Board Bot |", "Mail.ru|Mail.ru|", "OpiDig|OpiDig|", "webcollage|webcollage|",
|
1517 |
+
"R6_FeedFetcher|R6_FeedFetcher|", "UniversalFeedParser|UniversalFeedParser|", "Syndic8|Syndic8|", "BlogBot|BlogBot|", "W3C_Validator|W3C_Validator|",
|
1518 |
+
"Runnk RSS aggregator|Runnk|", "RssBandit|RssBandit|");
|
1519 |
+
foreach($lines as $line_num => $spider) {
|
1520 |
+
list($nome,$key)=explode("|",$spider);
|
1521 |
+
if(@strpos(strtolower($agent),strtolower($key))===FALSE) continue;
|
1522 |
+
if (@strpos(strtolower($agent), "subscriber")!== FALSE) {
|
1523 |
+
preg_match("/([0-9]{1,10})(subscriber)/i", $agent, $subscriber);
|
1524 |
+
$feed[] = $nome;
|
1525 |
+
$feed[] = $subscriber[1];
|
1526 |
+
// It's a feedreader with some subscribers
|
1527 |
+
return $feed;
|
1528 |
+
} else {
|
1529 |
+
// find it!
|
1530 |
+
return $nome;
|
1531 |
+
}
|
1532 |
+
}
|
1533 |
+
return null;
|
1534 |
+
}
|
1535 |
+
|
1536 |
+
//# Check input, $referrer against a list of known spammers and
|
1537 |
+
//# return "1" if match found.
|
1538 |
+
//# All comparisons are case-insensistive and uses the faster string
|
1539 |
+
//# functions (stristr) instead of "regular expression" functions.
|
1540 |
+
function wGetSpamRef($referrer) {
|
1541 |
+
$referrer=htmlentities(strip_tags(str_replace(" ","",html_entity_decode($referrer))));
|
1542 |
+
$badhostfile= dirname(__FILE__).'/badhosts.txt';
|
1543 |
+
$key = null;
|
1544 |
+
|
1545 |
+
if (empty($referrer)) { return null; } //nothing to check...
|
1546 |
+
|
1547 |
+
//#Assume any referrer name similar to "viagra/zanax/.."
|
1548 |
+
//# is spam and mark as such...
|
1549 |
+
$lines = array("cialis","viagra","zanax","phentermine");
|
1550 |
+
foreach ($lines as $badreferrer) {
|
1551 |
+
if (stristr($referrer, $badreferrer) !== FALSE) {
|
1552 |
+
return 1;
|
1553 |
+
}
|
1554 |
+
}
|
1555 |
+
|
1556 |
+
$lines = array("1clickholdem.com", "1ps.biz", "24h.to", "4all-credit.com", "4all-prescription.com", "4u-money.com", "6q.org", "88.to", "always-casino.com",
|
1557 |
+
"always-credit.com", "andipink.com", "antiquemarketplace.net", "artmedia.com.ru", "asstraffic.com", "at.cx", "available-casino.com", "available-credit.com",
|
1558 |
+
"available-prescription.com", "base-poker.com", "bayfronthomes.net", "bitlocker.net", "black-poker.com", "blest-money.com", "budgethawaii.net", "bwdow.com",
|
1559 |
+
"cafexml.com", "cameralover.net", "capillarychromatogr.org", "cash-2u.com", "casino-500.com", "casino-bu.com", "casinos4spain.com", "cheat-elite.com", "clan.ws",
|
1560 |
+
"computerxchange.com", "conjuratia.com", "credit-4me.com", "credit-dreams.com", "cups.cs.cmu.edu", "de.tc", "dietfacts.com", "doctor-here.com", "doctor-test.com",
|
1561 |
+
"eu.cx", "fidelityfunding.net", "finance-4all.com", "finestrealty.net", "fortexasholdem.com", "freewarechannel.de", "gb.com", "golfshoot.com", "great-finance.com",
|
1562 |
+
"great-money.com", "health-livening.com", "here.ws", "hu.tc", "iepills.com", "ihomebroker.com", "including-poker.com", "internettexashold.com", "isdrin.de",
|
1563 |
+
"iwebtool.com", "jaja-jak-globusy.com", "jobruler.com", "jpe.com", "js4.de", "just-pharmacy.com", "learnhowtoplay.com", "mine-betting.com", "new-doctor.com",
|
1564 |
+
"nonews.ru", "now-cash.com", "online-pills.us", "online.cx", "only-casino.com", "ourtexasholdem.com", "p.cx", "partyshopcentral.com", "petsellers.net",
|
1565 |
+
"pharmacy-here.com", "pills-only.com", "plenty-cash.com", "poker-check.com", "poker-spanish.com", "pressemitteilung.ws", "quality-poker.com", "reale-amateure.com",
|
1566 |
+
"realtorx2.com", "rulen.de", "shop.tc", "sp.st", "spanish-casino-4u.com", "standard-poker.com", "start.bg", "take-mortgage.com", "texasholdfun.com",
|
1567 |
+
"the-discount-store.com", "unique-pills.com", "unixlover.com", "us.tc", "useful-pills.com", "vadoptions.com", "vcats.com", "vinsider.com", "vjackpot.com",
|
1568 |
+
"vmousetrap.com", "vplaymate.com", "vselling.com", "vsymphony.com", "vthought.com", "walnuttownfireco.org", "white-pills.com", "wkelleylucas.com", "yourpsychic.net",
|
1569 |
+
"mature-lessons.com", "wrongsideoftown.com", "wildpass.com", "collegefuckfest.com", "brutalblowjobs.com", "livemarket.com.ua", "allinternal.com", "asstraffic.com",
|
1570 |
+
"progressiveupdate.net","dating-s.net","ua-princeton.com","royalfreehost.com", "www.texas-va-loan.com", "jmhic.com", "whvc.net", "vegas-hair.com", "owned.com",
|
1571 |
+
"sml338.org", "kredite-kredit", "buy-2005.com", "vrajitor.com", "ro7kalbe.com", "ca-america.com", "udcorp.com", "walnuttownfireco.org", "yx-colorweaving.com",
|
1572 |
+
"terashells.com", "chat-nett.com", "exitq.com", "cxa.de", "sysrem03.com", "pharmacy.info", "guide.info", "drugstore.info","vpshs.com", "vp888.net", "coresat.com",
|
1573 |
+
"psxtreme.com", "freakycheats.com", "cool-extreme.com", "pervertedtaboo.com", "crescentarian.net", "texas-holdem", "yelucie.com", "poker-online.com",
|
1574 |
+
"findwebhostingnow.com", "smsportali.net", "6q.org", "flowersdeliveredquick.com", "trackerom.com", "andrewsaluk.com", "4u.net", "4u.com", "doobu.com", "isacommie.com",
|
1575 |
+
"musicbox1.com", "roody.com", "zoomgirls.net", "cialis-gl-pills.com", "fickenfetzt.com");
|
1576 |
+
foreach($lines as $line_num => $spammer) {
|
1577 |
+
if(stristr($referrer,$spammer) !== FALSE) {
|
1578 |
+
// find it!
|
1579 |
+
return 1;
|
1580 |
+
}
|
1581 |
+
}
|
1582 |
+
//#check for a customized spammer list...
|
1583 |
+
if (file_exists($badhostfile)) {
|
1584 |
+
$lines = file($badhostfile,FILE_IGNORE_NEW_LINES);
|
1585 |
+
//$lines2 = file($badhostfile,FILE_IGNORE_NEW_LINES);
|
1586 |
+
//$lines = array_merge($lines, $lines2);
|
1587 |
+
|
1588 |
+
foreach($lines as $line_num => $spammer) {
|
1589 |
+
if(stristr($referrer,trim($spammer)) !== FALSE) {
|
1590 |
+
// find it!
|
1591 |
+
return 1;
|
1592 |
+
}
|
1593 |
+
}
|
1594 |
+
}
|
1595 |
+
return null;
|
1596 |
+
} //end function wGetSpamRef()
|
1597 |
+
|
1598 |
+
//# Get current session_save_path value and return the pathname portion
|
1599 |
+
//# - Helene D. 1/14/08.
|
1600 |
+
function wGetSessionpath() {
|
1601 |
+
$sessionpath = session_save_path();
|
1602 |
+
if (strpos($sessionpath, ";") !== FALSE) {
|
1603 |
+
$sessionpath = substr($sessionpath, strpos($sessionpath, ";")+1);
|
1604 |
+
}
|
1605 |
+
return rtrim($sessionpath,"/");
|
1606 |
+
}
|
1607 |
+
|
1608 |
+
function export_wassup() {
|
1609 |
+
global $wpdb, $table_name;
|
1610 |
+
$table_name = $wpdb->prefix . "wassup";
|
1611 |
+
$filename = 'wassup.' . gmdate('Y-m-d') . '.sql';
|
1612 |
+
|
1613 |
+
//# check for records before exporting...
|
1614 |
+
$numrecords = $wpdb->get_var("SELECT COUNT(wassup_id) FROM $table_name");
|
1615 |
+
if ( $numrecords > 0 ) {
|
1616 |
+
//TODO: use compressed file transfer when zlib available...
|
1617 |
+
do_action('export_wassup');
|
1618 |
+
header('Content-Description: File Transfer');
|
1619 |
+
header("Content-Disposition: attachment; filename=$filename");
|
1620 |
+
header('Content-Type: text/plain charset=' . get_option('blog_charset'), true);
|
1621 |
+
|
1622 |
+
// Function is below
|
1623 |
+
backup_table($table_name);
|
1624 |
+
|
1625 |
+
die(); //sends output and flushes buffer
|
1626 |
+
} //end if numrecords > 0
|
1627 |
+
} //end function export_wassup()
|
1628 |
+
|
1629 |
+
/**
|
1630 |
+
* Taken partially from wp-db-backup plugin
|
1631 |
+
* Alain Wolf, Zurich - Switzerland
|
1632 |
+
* Website: http://www.ilfilosofo.com/blog/wp-db-backup/
|
1633 |
+
* @param string $table
|
1634 |
+
* @param string $segment
|
1635 |
+
* @return void
|
1636 |
+
*/
|
1637 |
+
function backup_table($table, $segment = 'none') {
|
1638 |
+
global $wpdb;
|
1639 |
+
define('ROWS_PER_SEGMENT', 100);
|
1640 |
+
|
1641 |
+
$table_structure = $wpdb->get_results("DESCRIBE $table");
|
1642 |
+
if (! $table_structure) {
|
1643 |
+
$this->error(__('Error getting table details','wassup') . ": $table");
|
1644 |
+
return FALSE;
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
if(($segment == 'none') || ($segment == 0)) {
|
1648 |
+
// Add SQL statement to drop existing table
|
1649 |
+
$sql .= "\n\n";
|
1650 |
+
$sql .= "#\n";
|
1651 |
+
$sql .= "# " . sprintf(__('Delete any existing table %s','wassup'),$table) . "\n";
|
1652 |
+
$sql .= "#\n";
|
1653 |
+
$sql .= "\n";
|
1654 |
+
$sql .= "#\n";
|
1655 |
+
$sql .= "# Uncomment if you need\n";
|
1656 |
+
$sql .= "#DROP TABLE IF EXISTS " . $table . ";\n";
|
1657 |
+
|
1658 |
+
// Table structure
|
1659 |
+
// Comment in SQL-file
|
1660 |
+
$sql .= "\n\n";
|
1661 |
+
$sql .= "#\n";
|
1662 |
+
$sql .= "# " . sprintf(__('Table structure of table %s','wassup'),$table) . "\n";
|
1663 |
+
$sql .= "#\n";
|
1664 |
+
$sql .= "\n";
|
1665 |
+
$sql .= "#\n";
|
1666 |
+
$sql .= "# Uncomment if you need\n";
|
1667 |
+
|
1668 |
+
$create_table = $wpdb->get_results("SHOW CREATE TABLE $table", ARRAY_N);
|
1669 |
+
if (FALSE === $create_table) {
|
1670 |
+
$err_msg = sprintf(__('Error with SHOW CREATE TABLE for %s.','wassup'), $table);
|
1671 |
+
print $err_msg;
|
1672 |
+
$sql .= "#\n# $err_msg\n#\n";
|
1673 |
+
}
|
1674 |
+
$sql .= $create_table[0][1] . ' ;';
|
1675 |
+
|
1676 |
+
if (FALSE === $table_structure) {
|
1677 |
+
$err_msg = sprintf(__('Error getting table structure of %s','wassup'), $table);
|
1678 |
+
print $err_msg;
|
1679 |
+
$sql .= "#\n# $err_msg\n#\n";
|
1680 |
+
}
|
1681 |
+
|
1682 |
+
// Comment in SQL-file
|
1683 |
+
$sql .= "\n\n";
|
1684 |
+
$sql .= "#\n";
|
1685 |
+
$sql .= '# ' . sprintf(__('Data contents of table %s','wassup'),$table) . "\n";
|
1686 |
+
$sql .= "#\n";
|
1687 |
+
}
|
1688 |
+
|
1689 |
+
if(($segment == 'none') || ($segment >= 0)) {
|
1690 |
+
$defs = array();
|
1691 |
+
$ints = array();
|
1692 |
+
foreach ($table_structure as $struct) {
|
1693 |
+
if ( (0 === strpos($struct->Type, 'tinyint')) ||
|
1694 |
+
(0 === strpos(strtolower($struct->Type), 'smallint')) ||
|
1695 |
+
(0 === strpos(strtolower($struct->Type), 'mediumint')) ||
|
1696 |
+
(0 === strpos(strtolower($struct->Type), 'int')) ||
|
1697 |
+
(0 === strpos(strtolower($struct->Type), 'bigint')) ||
|
1698 |
+
(0 === strpos(strtolower($struct->Type), 'timestamp')) ) {
|
1699 |
+
$defs[strtolower($struct->Field)] = $struct->Default;
|
1700 |
+
$ints[strtolower($struct->Field)] = "1";
|
1701 |
+
}
|
1702 |
+
}
|
1703 |
+
|
1704 |
+
// Batch by $row_inc
|
1705 |
+
|
1706 |
+
if($segment == 'none') {
|
1707 |
+
$row_start = 0;
|
1708 |
+
$row_inc = ROWS_PER_SEGMENT;
|
1709 |
+
} else {
|
1710 |
+
$row_start = $segment * ROWS_PER_SEGMENT;
|
1711 |
+
$row_inc = ROWS_PER_SEGMENT;
|
1712 |
+
}
|
1713 |
+
|
1714 |
+
do {
|
1715 |
+
if ( !ini_get('safe_mode')) @set_time_limit(15*60);
|
1716 |
+
$table_data = $wpdb->get_results("SELECT * FROM $table LIMIT {$row_start}, {$row_inc}", ARRAY_A);
|
1717 |
+
|
1718 |
+
$entries = 'INSERT INTO ' . $table . ' VALUES (';
|
1719 |
+
// \x08\\x09, not required
|
1720 |
+
$search = array("\x00", "\x0a", "\x0d", "\x1a");
|
1721 |
+
$replace = array('\0', '\n', '\r', '\Z');
|
1722 |
+
if($table_data) {
|
1723 |
+
foreach ($table_data as $row) {
|
1724 |
+
$values = array();
|
1725 |
+
foreach ($row as $key => $value) {
|
1726 |
+
if ($ints[strtolower($key)]) {
|
1727 |
+
// make sure there are no blank spots in the insert syntax,
|
1728 |
+
// yet try to avoid quotation marks around integers
|
1729 |
+
$value = ( '' === $value) ? $defs[strtolower($key)] : $value;
|
1730 |
+
$values[] = ( '' === $value ) ? "''" : $value;
|
1731 |
+
} else {
|
1732 |
+
$values[] = "'" . str_replace($search, $replace, addslashes($value)) . "'";
|
1733 |
+
}
|
1734 |
+
}
|
1735 |
+
$sql .= " \n" . $entries . implode(', ', $values) . ') ;';
|
1736 |
+
}
|
1737 |
+
$row_start += $row_inc;
|
1738 |
+
}
|
1739 |
+
} while((count($table_data) > 0) and ($segment=='none'));
|
1740 |
+
}
|
1741 |
+
|
1742 |
+
if(($segment == 'none') || ($segment < 0)) {
|
1743 |
+
// Create footer/closing comment in SQL-file
|
1744 |
+
$sql .= "\n";
|
1745 |
+
$sql .= "#\n";
|
1746 |
+
$sql .= "# " . sprintf(__('End of data contents of table %s','wp-db-backup'),$table) . "\n";
|
1747 |
+
$sql .= "# --------------------------------------------------------\n";
|
1748 |
+
$sql .= "\n";
|
1749 |
+
}
|
1750 |
+
print $sql;
|
1751 |
+
} // end backup_table()
|
1752 |
+
|
1753 |
+
function wassup_widget_init() {
|
1754 |
+
|
1755 |
+
if ( !function_exists('register_sidebar_widget') )
|
1756 |
+
return;
|
1757 |
+
|
1758 |
+
function wassup_widget($wargs) {
|
1759 |
+
global $wpdb;
|
1760 |
+
extract($wargs);
|
1761 |
+
$wassup_settings = get_option('wassup_settings');
|
1762 |
+
$wpurl = get_bloginfo('wpurl');
|
1763 |
+
$siteurl = get_bloginfo('siteurl');
|
1764 |
+
if ($wassup_settings['wassup_widget_title'] != "") $title = $wassup_settings['wassup_widget_title']; else $title = "Visitors Online";
|
1765 |
+
if ($wassup_settings['wassup_widget_ulclass'] != "") $ulclass = $wassup_settings['wassup_widget_ulclass']; else $ulclass = "links";
|
1766 |
+
if ($wassup_settings['wassup_widget_chars'] != "") $chars = $wassup_settings['wassup_widget_chars']; else $chars = "18";
|
1767 |
+
if ($wassup_settings['wassup_widget_searchlimit'] != "") $searchlimit = $wassup_settings['wassup_widget_searchlimit']; else $searchlimit = "5";
|
1768 |
+
if ($wassup_settings['wassup_widget_reflimit'] != "") $reflimit = $wassup_settings['wassup_widget_reflimit']; else $reflimit = "5";
|
1769 |
+
if ($wassup_settings['wassup_widget_topbrlimit'] != "") $topbrlimit = $wassup_settings['wassup_widget_topbrlimit']; else $topbrlimit = "5";
|
1770 |
+
if ($wassup_settings['wassup_widget_toposlimit'] != "") $toposlimit = $wassup_settings['wassup_widget_toposlimit']; else $toposlimit = "5";
|
1771 |
+
$table_name = $wpdb->prefix . "wassup";
|
1772 |
+
$to_date = wassup_get_time();
|
1773 |
+
$from_date = strtotime('-3 minutes', $to_date);
|
1774 |
+
|
1775 |
+
print $before_widget;
|
1776 |
+
|
1777 |
+
// Widget TOP Searches
|
1778 |
+
if ($wassup_settings['wassup_widget_search'] == 1) {
|
1779 |
+
$query_det = $wpdb->get_results("SELECT search, referrer FROM $table_name WHERE search!='' GROUP BY search ORDER BY timestamp DESC LIMIT $searchlimit");
|
1780 |
+
if (count($query_det) > 0) {
|
1781 |
+
print "$before_title Last searched terms $after_title";
|
1782 |
+
print "<ul class='$ulclass'>";
|
1783 |
+
foreach ($query_det as $sref) {
|
1784 |
+
print "<li>- <a href='".htmlentities($sref->referrer)."' target='_BLANK'>".stringShortener($sref->search, $chars)."</a></li>";
|
1785 |
+
}
|
1786 |
+
print "</ul>";
|
1787 |
+
}
|
1788 |
+
}
|
1789 |
+
|
1790 |
+
// Widget TOP Referers
|
1791 |
+
if ($wassup_settings['wassup_widget_ref'] == 1) {
|
1792 |
+
$query_ref = $wpdb->get_results("SELECT referrer FROM $table_name WHERE searchengine='' AND referrer!='' AND referrer NOT LIKE '$wpurl%' GROUP BY referrer ORDER BY timestamp DESC LIMIT $reflimit");
|
1793 |
+
if (count($query_ref) > 0) {
|
1794 |
+
print "$before_title Last referers $after_title";
|
1795 |
+
print "<ul class='$ulclass'>";
|
1796 |
+
foreach ($query_ref as $eref) {
|
1797 |
+
print "<li>- <a href='".htmlentities($eref->referrer)."' target='_BLANK'>".stringShortener(eregi_replace("http://", "", htmlentities($eref->referrer)), $chars)."</a></li>";
|
1798 |
+
}
|
1799 |
+
print "</ul>";
|
1800 |
+
}
|
1801 |
+
}
|
1802 |
+
|
1803 |
+
// Widget TOP Browsers
|
1804 |
+
if ($wassup_settings['wassup_widget_topbr'] == 1) {
|
1805 |
+
$query_topbr = $wpdb->get_results("SELECT count(browser) as top_browser, browser FROM $table_name WHERE browser!='' AND browser NOT LIKE '%N/A%' GROUP BY browser ORDER BY top_browser DESC LIMIT $topbrlimit");
|
1806 |
+
if (count($query_topbr) > 0) {
|
1807 |
+
print "$before_title Top Browsers $after_title";
|
1808 |
+
print "<ul class='$ulclass'>";
|
1809 |
+
foreach ($query_topbr as $etopbr) {
|
1810 |
+
print "<li>- ".stringShortener($etopbr->browser, $chars)."</li>";
|
1811 |
+
}
|
1812 |
+
print "</ul>";
|
1813 |
+
}
|
1814 |
+
}
|
1815 |
+
|
1816 |
+
// Widget TOP Oses
|
1817 |
+
if ($wassup_settings['wassup_widget_topos'] == 1) {
|
1818 |
+
$query_topos = $wpdb->get_results("SELECT count(os) as top_os, os FROM $table_name WHERE os!='' AND os NOT LIKE '%N/A%' GROUP BY os ORDER BY top_os DESC LIMIT $toposlimit");
|
1819 |
+
if (count($query_topos) > 0) {
|
1820 |
+
print "$before_title Top OS $after_title";
|
1821 |
+
print "<ul class='$ulclass'>";
|
1822 |
+
foreach ($query_topos as $etopos) {
|
1823 |
+
print "<li>- ".stringShortener($etopos->os, $chars)."</li>";
|
1824 |
+
}
|
1825 |
+
print "</ul>";
|
1826 |
+
}
|
1827 |
+
}
|
1828 |
+
|
1829 |
+
// Widget Visitors Online
|
1830 |
+
print $before_title . $title . $after_title;
|
1831 |
+
print "<ul class='$ulclass'>";
|
1832 |
+
$currenttot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currenttot FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date ");
|
1833 |
+
$currentlogged = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentlogged FROM $table_name WHERE username!=''AND timestamp BETWEEN $from_date AND $to_date");
|
1834 |
+
$currentauth = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentauth FROM $table_name WHERE comment_author!='' AND username=''AND timestamp BETWEEN $from_date AND $to_date");
|
1835 |
+
if ((int)$currenttot < 10) $currenttot = "0".$currenttot;
|
1836 |
+
print "<li><strong style='padding:0 4px 0 4px;background:#ddd;color:#777'>".$currenttot."</strong> visitor(s) online</li>";
|
1837 |
+
if ((int)$currentlogged > 0 AND $wassup_settings['wassup_widget_loggedin'] == 1) {
|
1838 |
+
if ((int)$currentlogged < 10) $currentlogged = "0".$currentlogged;
|
1839 |
+
print "<li><strong style='padding:0 4px 0 4px;background:#e7f1c8;color:#777'>".$currentlogged."</strong> logged-in user(s)</li>";
|
1840 |
+
}
|
1841 |
+
if ((int)$currentauth > 0 AND $wassup_settings['wassup_widget_comauth'] == 1) {
|
1842 |
+
if ((int)$currentauth < 10) $currentauth = "0".$currentauth;
|
1843 |
+
print "<li><strong style='padding:0 4px 0 4px;background:#fbf9d3;color:#777'>".$currentauth."</strong> comment author(s)</li>";
|
1844 |
+
}
|
1845 |
+
print "<li style='font-size:6pt; color:#bbb;'>powered by <a style='color:#777;' href='http://www.wpwp.org' title='WassUp - Real Time Visitors Tracking'>WassUp</a></li>";
|
1846 |
+
print "</ul>";
|
1847 |
+
print $after_widget;
|
1848 |
+
}
|
1849 |
+
|
1850 |
+
function wassup_widget_control() {
|
1851 |
+
//global $_POST;
|
1852 |
+
$wassup_settings = get_option('wassup_settings');
|
1853 |
+
|
1854 |
+
if (isset($_POST['submit']))
|
1855 |
+
{
|
1856 |
+
$wassup_settings['wassup_widget_title'] = $_POST['wassup_widget_title'];
|
1857 |
+
$wassup_settings['wassup_widget_ulclass'] = $_POST['wassup_widget_ulclass'];
|
1858 |
+
$wassup_settings['wassup_widget_chars'] = $_POST['wassup_widget_chars'];
|
1859 |
+
$wassup_settings['wassup_widget_loggedin'] = $_POST['wassup_widget_loggedin'];
|
1860 |
+
$wassup_settings['wassup_widget_comauth'] = $_POST['wassup_widget_comauth'];
|
1861 |
+
$wassup_settings['wassup_widget_search'] = $_POST['wassup_widget_search'];
|
1862 |
+
$wassup_settings['wassup_widget_searchlimit'] = $_POST['wassup_widget_searchlimit'];
|
1863 |
+
$wassup_settings['wassup_widget_ref'] = $_POST['wassup_widget_ref'];
|
1864 |
+
$wassup_settings['wassup_widget_reflimit'] = $_POST['wassup_widget_reflimit'];
|
1865 |
+
$wassup_settings['wassup_widget_topbr'] = $_POST['wassup_widget_topbr'];
|
1866 |
+
$wassup_settings['wassup_widget_topbrlimit'] = $_POST['wassup_widget_topbrlimit'];
|
1867 |
+
$wassup_settings['wassup_widget_topos'] = $_POST['wassup_widget_topos'];
|
1868 |
+
$wassup_settings['wassup_widget_toposlimit'] = $_POST['wassup_widget_toposlimit'];
|
1869 |
+
|
1870 |
+
update_option('wassup_settings', $wassup_settings);
|
1871 |
+
$wassup_settings = get_option('wassup_settings');
|
1872 |
+
}
|
1873 |
+
|
1874 |
+
?>
|
1875 |
+
<div class="wrap" style="text-align:left">
|
1876 |
+
<h3>Wassup Widget</h3>
|
1877 |
+
<form action="" method="post">
|
1878 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_title" size="20" value="<?php echo $wassup_settings['wassup_widget_title'] ?>" /> What title for the widget (default "Visitors Online")</p>
|
1879 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_ulclass" size="3" value="<?php echo $wassup_settings['wassup_widget_ulclass'] ?>" /> What style sheet class for <ul> attribute (default "links")</p>
|
1880 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_chars" size="3" value="<?php echo $wassup_settings['wassup_widget_chars'] ?>" /> How many characters left? (For template compatibility - default 18)</p>
|
1881 |
+
<p style="text-align:left"><input type="checkbox" name="wassup_widget_loggedin" value="1"<?php if ($wassup_settings['wassup_widget_loggedin'] == 1) echo "CHECKED"; ?> /> Check if you want to show logged-in online users (default Yes)</p>
|
1882 |
+
<p style="text-align:left"><input type="checkbox" name="wassup_widget_comauth" value="1" <?php if ($wassup_settings['wassup_widget_comauth'] == 1) echo "CHECKED"; ?> /> Check if you want to show comment-author online users (default Yes)</p>
|
1883 |
+
<p style="text-align:left"><input type="checkbox" name="wassup_widget_search" value="1" <?php if ($wassup_settings['wassup_widget_search'] == 1) echo "CHECKED"; ?> /> Check if you want to show some last search referers (default Yes)</p>
|
1884 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_searchlimit" size="3" value="<?php echo $wassup_settings['wassup_widget_searchlimit'] ?>" /> How many search referers want to show (default 5)</p>
|
1885 |
+
<p style="text-align:left"><input type="checkbox" name="wassup_widget_ref" value="1" <?php if ($wassup_settings['wassup_widget_ref'] == 1) echo "CHECKED"; ?> /> Check if you want to show some last external referers (default Yes)</p>
|
1886 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_reflimit" size="3" value="<?php echo $wassup_settings['wassup_widget_reflimit'] ?>" /> How many external referers want to show (default 5)</p>
|
1887 |
+
<p style="text-align:left"><input type="checkbox" name="wassup_widget_topbr" value="1" <?php if ($wassup_settings['wassup_widget_topbr'] == 1) echo "CHECKED"; ?> /> Check if you want to show top browsers (default Yes)</p>
|
1888 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_topbrlimit" size="3" value="<?php echo $wassup_settings['wassup_widget_topbrlimit'] ?>" /> How many top browsers want to show (default 5)</p>
|
1889 |
+
<p style="text-align:left"><input type="checkbox" name="wassup_widget_topos" value="1" <?php if ($wassup_settings['wassup_widget_topos'] == 1) echo "CHECKED"; ?> /> Check if you want to show top operating systems (default Yes)</p>
|
1890 |
+
<p style="text-align:left"><input type="text" name="wassup_widget_toposlimit" size="3" value="<?php echo $wassup_settings['wassup_widget_toposlimit'] ?>" /> How many top operating systems want to show (default 5)</p>
|
1891 |
+
<p style="text-align:left"><input type="submit" name="submit" value="Save Settings" /></p>
|
1892 |
+
</form>
|
1893 |
+
</div>
|
1894 |
+
<?php
|
1895 |
+
}
|
1896 |
+
|
1897 |
+
$wassup_settings = get_option('wassup_settings');
|
1898 |
+
if ($wassup_settings['wassup_userlevel'] == "") {
|
1899 |
+
if ($wassup_settings['wassup_userlevel'] == "") {
|
1900 |
+
$wassup_settings['wassup_userlevel'] = 8;
|
1901 |
+
update_option('wassup_settings', $wassup_settings);
|
1902 |
+
}
|
1903 |
+
if ($wassup_settings['wassup_refresh'] == "") {
|
1904 |
+
$wassup_settings['wassup_refresh'] = 3;
|
1905 |
+
update_option('wassup_settings', $wassup_settings);
|
1906 |
+
}
|
1907 |
+
}
|
1908 |
+
if(function_exists('register_sidebar_widget')) {
|
1909 |
+
register_sidebar_widget(__('Wassup Widget'), 'wassup_widget');
|
1910 |
+
register_widget_control(array('Wassup Widget', 'widgets'), 'wassup_widget_control', 600, 540);
|
1911 |
+
}
|
1912 |
+
}
|
1913 |
+
|
1914 |
+
function wassup_sidebar($before_widget='', $after_widget='', $before_title='', $after_title='', $wtitle='', $wulclass='', $wchars='', $wsearch='', $wsearchlimit='', $wref='', $wreflimit='', $wtopbr='', $wtopbrlimit='', $wtopos='', $wtoposlimit='') {
|
1915 |
+
global $wpdb;
|
1916 |
+
$wpurl = get_bloginfo('wpurl');
|
1917 |
+
$siteurl = get_bloginfo('siteurl');
|
1918 |
+
if ($wtitle != "") $title = $wtitle; else $title = "Visitors Online";
|
1919 |
+
if ($wulclass != "") $ulclass = $wulclass; else $ulclass = "links";
|
1920 |
+
if ($wchars != "") $chars = $wchars; else $chars = "18";
|
1921 |
+
if ($wsearchlimit != "") $searchlimit = $wsearchlimit; else $searchlimit = "5";
|
1922 |
+
if ($wreflimit != "") $reflimit = $wreflimit; else $reflimit = "5";
|
1923 |
+
if ($wtopbrlimit != "") $topbrlimit = $wtopbrlimit; else $topbrlimit = "5";
|
1924 |
+
if ($wtoposlimit != "") $toposlimit = $wtoposlimit; else $toposlimit = "5";
|
1925 |
+
$table_name = $wpdb->prefix . "wassup";
|
1926 |
+
$to_date = wassup_get_time();
|
1927 |
+
$from_date = strtotime('-3 minutes', $to_date);
|
1928 |
+
|
1929 |
+
print $before_widget;
|
1930 |
+
if ($wsearch == 1) {
|
1931 |
+
$query_det = $wpdb->get_results("SELECT search, referrer FROM $table_name WHERE search!='' GROUP BY search ORDER BY timestamp DESC LIMIT $searchlimit");
|
1932 |
+
if (count($query_det) > 0) {
|
1933 |
+
print "$before_title Last searched terms $after_title";
|
1934 |
+
print "<ul class='$ulclass'>";
|
1935 |
+
foreach ($query_det as $sref) {
|
1936 |
+
print "<li>- <a href='".$sref->referrer."' target='_BLANK'>".stringShortener($sref->search, $chars)."</a></li>";
|
1937 |
+
}
|
1938 |
+
print "</ul>";
|
1939 |
+
}
|
1940 |
+
}
|
1941 |
+
|
1942 |
+
if ($wref == 1) {
|
1943 |
+
$query_ref = $wpdb->get_results("SELECT referrer FROM $table_name WHERE searchengine='' AND referrer!='' AND referrer NOT LIKE '$wpurl%' GROUP BY referrer ORDER BY timestamp DESC LIMIT $reflimit");
|
1944 |
+
if (count($query_ref) > 0) {
|
1945 |
+
print "$before_title Last referers $after_title";
|
1946 |
+
print "<ul class='$ulclass'>";
|
1947 |
+
foreach ($query_ref as $eref) {
|
1948 |
+
print "<li>- <a href='".$eref->referrer."' target='_BLANK'>".stringShortener(eregi_replace("http://", "", $eref->referrer), $chars)."</a></li>";
|
1949 |
+
}
|
1950 |
+
print "</ul>";
|
1951 |
+
}
|
1952 |
+
}
|
1953 |
+
|
1954 |
+
if ($wtopbr == 1) {
|
1955 |
+
$query_topbr = $wpdb->get_results("SELECT count(browser) as top_browser, browser FROM $table_name WHERE browser!='' AND browser NOT LIKE '%N/A%' GROUP BY browser ORDER BY top_browser DESC LIMIT $topbrlimit");
|
1956 |
+
if (count($query_topbr) > 0) {
|
1957 |
+
print "$before_title Top Browsers $after_title";
|
1958 |
+
print "<ul class='$ulclass'>";
|
1959 |
+
foreach ($query_topbr as $etopbr) {
|
1960 |
+
print "<li>- ".stringShortener($etopbr->browser, $chars)."</li>";
|
1961 |
+
}
|
1962 |
+
print "</ul>";
|
1963 |
+
}
|
1964 |
+
}
|
1965 |
+
|
1966 |
+
if ($wtopos == 1) {
|
1967 |
+
$query_topos = $wpdb->get_results("SELECT count(os) as top_os, os FROM $table_name WHERE os!='' AND os NOT LIKE '%N/A%' GROUP BY os ORDER BY top_os DESC LIMIT $toposlimit");
|
1968 |
+
if (count($query_topos) > 0) {
|
1969 |
+
print "$before_title Top OS $after_title";
|
1970 |
+
print "<ul class='$ulclass'>";
|
1971 |
+
foreach ($query_topos as $etopos) {
|
1972 |
+
print "<li>- ".stringShortener($etopos->os, $chars)."</li>";
|
1973 |
+
}
|
1974 |
+
print "</ul>";
|
1975 |
+
}
|
1976 |
+
}
|
1977 |
+
|
1978 |
+
print $before_title . $title . $after_title;
|
1979 |
+
print "<ul class='$ulclass'>";
|
1980 |
+
$currenttot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currenttot FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date ");
|
1981 |
+
$currentlogged = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentlogged FROM $table_name WHERE username!=''AND timestamp BETWEEN $from_date AND $to_date");
|
1982 |
+
$currentauth = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentauth FROM $table_name WHERE comment_author!='' AND username=''AND timestamp BETWEEN $from_date AND $to_date");
|
1983 |
+
if ((int)$currenttot < 10) $currenttot = "0".$currenttot;
|
1984 |
+
print "<li><strong style='padding:0 4px 0 4px;background:#ddd;color:#777'>".$currenttot."</strong> visitor(s) online</li>";
|
1985 |
+
if ((int)$currentlogged > 0 AND $wassup_settings['wassup_widget_loggedin'] == 1) {
|
1986 |
+
if ((int)$currentlogged < 10) $currentlogged = "0".$currentlogged;
|
1987 |
+
print "<li><strong style='padding:0 4px 0 4px;background:#e7f1c8;color:#777'>".$currentlogged."</strong> logged-in user(s)</li>";
|
1988 |
+
}
|
1989 |
+
if ((int)$currentauth > 0 AND $wassup_settings['wassup_widget_comauth'] == 1) {
|
1990 |
+
|
1991 |
+
if ((int)$currentauth < 10) $currentauth = "0".$currentauth;
|
1992 |
+
print "<li><strong style='padding:0 4px 0 4px;background:#fbf9d3;color:#777'>".$currentauth."</strong> comment author(s)</li>";
|
1993 |
+
}
|
1994 |
+
print "<li style='font-size:6pt; color:#bbb;'>powered by <a style='color:#777;' href='http://www.wpwp.org/' title='WassUp - Real Time Visitors Tracking'>WassUp</a></li>";
|
1995 |
+
print "</ul>";
|
1996 |
+
print $after_widget;
|
1997 |
+
}
|
1998 |
+
|