[
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1250",
                "key": "jabber_published",
                "value": "1390395828"
            }
        ],
        "dateCreated": "Jan 22, 2014 1:03:47 PM",
        "date_created_gmt": "Jan 22, 2014 1:03:47 PM",
        "date_modified": "Jan 22, 2014 1:03:48 PM",
        "date_modified_gmt": "Jan 22, 2014 1:03:48 PM",
        "description": "[caption id=\"\" align=\"alignnone\" width=\"2000\" caption=\"Mop\"]<a href=\"https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg\"><img title=\"wpid-wp-1388141726961.jpeg\" class=\"alignnone size-full\" alt=\"image\" src=\"https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg?w=2000\" /></a>[/caption]",
        "link": "https://taliwutblog.wordpress.com/2014/01/22/cat-2/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/cat-2/",
        "post_status": "publish",
        "postid": "299",
        "title": "Cat",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "cat-2"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1244",
                "key": "jabber_published",
                "value": "1390395578"
            }
        ],
        "dateCreated": "Jan 22, 2014 12:59:38 PM",
        "date_created_gmt": "Jan 22, 2014 12:59:38 PM",
        "date_modified": "Jan 22, 2014 12:59:38 PM",
        "date_modified_gmt": "Jan 22, 2014 12:59:38 PM",
        "description": "<a href=\"http://www.google.com/search?hl=en&amp;biw=384&amp;bih=640&amp;tbm=isch&amp;sa=1&amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;q=hd+wallpaper+photo&amp;oq=hd+wallpaper+photo&amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A\">http://www.google.com/search?hl=en&amp;biw=384&amp;bih=640&amp;tbm=isch&amp;sa=1&amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;q=hd+wallpaper+photo&amp;oq=hd+wallpaper+photo&amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A</a>",
        "link": "https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/",
        "post_status": "publish",
        "postid": "297",
        "title": "hd wallpaper photo - Google Search",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "hd-wallpaper-photo-google-search"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1241",
                "key": "blog_id",
                "value": "55267051"
            },
            {
                "id": "1242",
                "key": "is_reblog",
                "value": "1"
            },
            {
                "id": "1235",
                "key": "jabber_published",
                "value": "1390394182"
            },
            {
                "id": "1240",
                "key": "post_id",
                "value": "642"
            }
        ],
        "dateCreated": "Jan 22, 2014 12:36:20 PM",
        "date_created_gmt": "Jan 22, 2014 12:36:20 PM",
        "date_modified": "Jan 22, 2014 12:36:20 PM",
        "date_modified_gmt": "Jan 22, 2014 12:36:20 PM",
        "description": "Hai",
        "link": "https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/",
        "post_status": "publish",
        "postid": "296",
        "title": "The End of Unrecorded Life",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "the-end-of-unrecorded-life"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1228",
                "key": "jabber_published",
                "value": "1390386762"
            }
        ],
        "dateCreated": "Jan 22, 2014 10:32:40 AM",
        "date_created_gmt": "Jan 22, 2014 10:32:40 AM",
        "date_modified": "Jan 22, 2014 10:32:40 AM",
        "date_modified_gmt": "Jan 22, 2014 10:32:40 AM",
        "description": "<a href=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg\"><img title=\"wp-1390386748907.jpg\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg\" /></a>",
        "link": "https://taliwutblog.wordpress.com/2014/01/22/geny/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/geny/",
        "post_status": "publish",
        "postid": "292",
        "title": "Geny!",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "image",
        "wp_post_thumbnail": "",
        "wp_slug": "geny"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1216",
                "key": "jabber_published",
                "value": "1390386657"
            }
        ],
        "dateCreated": "Jan 22, 2014 10:30:57 AM",
        "date_created_gmt": "Jan 22, 2014 10:30:57 AM",
        "date_modified": "Jan 22, 2014 10:32:16 AM",
        "date_modified_gmt": "Jan 22, 2014 10:32:16 AM",
        "description": "<a href=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386640415.jpg\"><img title=\"wp-1390386640415.jpg\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386640415.jpg\" /></a>\n\n[caption id=\"\" align=\"aligncenter\" width=\"990\" caption=\"Island\"]<a href=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg\"><img title=\"Love-Island-1920\u00d71080-wallpapers.jpg\" class=\"aligncenter size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg\" /></a>[/caption]",
        "link": "https://taliwutblog.wordpress.com/2014/01/22/287/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/287/",
        "post_status": "publish",
        "postid": "287",
        "title": "",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "image",
        "wp_post_thumbnail": "",
        "wp_slug": "287"
    },
    {
        "categories": [
            "bird",
            "pigeon",
            "raven"
        ],
        "custom_fields": [
            {
                "id": "1208",
                "key": "jabber_published",
                "value": "1390386102"
            }
        ],
        "dateCreated": "Jan 22, 2014 10:21:42 AM",
        "date_created_gmt": "Jan 22, 2014 10:21:42 AM",
        "date_modified": "Jan 22, 2014 10:25:10 AM",
        "date_modified_gmt": "Jan 22, 2014 10:25:10 AM",
        "description": "<strong>Mop</strong> est un poney\nHaij\nEnorme poney!!",
        "link": "https://taliwutblog.wordpress.com/?p=284",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "bird, raven",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/?p=284",
        "post_status": "draft",
        "postid": "284",
        "title": "Mop",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "quote",
        "wp_post_thumbnail": "",
        "wp_slug": "mop"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1198",
                "key": "jabber_published",
                "value": "1389290705"
            }
        ],
        "dateCreated": "Jan 9, 2014 6:05:04 PM",
        "date_created_gmt": "Jan 9, 2014 6:05:04 PM",
        "date_modified": "Jan 9, 2014 6:05:04 PM",
        "date_modified_gmt": "Jan 9, 2014 6:05:04 PM",
        "description": "<a href=\"mop@woot.com\">mop@wooot</a>",
        "link": "https://taliwutblog.wordpress.com/2014/01/09/mail-link/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/mail-link/",
        "post_status": "publish",
        "postid": "282",
        "title": "Mail link",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "mail-link"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1189",
                "key": "jabber_published",
                "value": "1389290631"
            }
        ],
        "dateCreated": "Jan 9, 2014 6:03:51 PM",
        "date_created_gmt": "Jan 9, 2014 6:03:51 PM",
        "date_modified": "Jan 9, 2014 6:03:51 PM",
        "date_modified_gmt": "Jan 9, 2014 6:03:51 PM",
        "description": "<a href=\"woot.com\">wooot</a>",
        "link": "https://taliwutblog.wordpress.com/2014/01/09/link-link-2/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/link-link-2/",
        "post_status": "publish",
        "postid": "280",
        "title": "Link link 2",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "link-link-2"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1176",
                "key": "jabber_published",
                "value": "1389290505"
            }
        ],
        "dateCreated": "Jan 9, 2014 6:01:45 PM",
        "date_created_gmt": "Jan 9, 2014 6:01:45 PM",
        "date_modified": "Jan 9, 2014 6:03:03 PM",
        "date_modified_gmt": "Jan 9, 2014 6:03:03 PM",
        "description": "<a href=\"woot.com\">wooot</a>",
        "link": "https://taliwutblog.wordpress.com/2014/01/09/link-link/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/link-link/",
        "post_status": "publish",
        "postid": "278",
        "title": "Link link",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "link-link"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1169",
                "key": "jabber_published",
                "value": "1389289935"
            }
        ],
        "dateCreated": "Jan 9, 2014 5:52:14 PM",
        "date_created_gmt": "Jan 9, 2014 5:52:14 PM",
        "date_modified": "Jan 9, 2014 5:52:14 PM",
        "date_modified_gmt": "Jan 9, 2014 5:52:14 PM",
        "description": "",
        "link": "https://taliwutblog.wordpress.com/2014/01/09/magnifique/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/magnifique/",
        "post_status": "publish",
        "postid": "277",
        "title": "Magnifique!",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "magnifique"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1158",
                "key": "jabber_published",
                "value": "1388755568"
            }
        ],
        "dateCreated": "Jan 3, 2014 1:26:07 PM",
        "date_created_gmt": "Jan 3, 2014 1:26:07 PM",
        "date_modified": "Jan 3, 2014 1:26:07 PM",
        "date_modified_gmt": "Jan 3, 2014 1:26:07 PM",
        "description": "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"gutter\"><div class=\"line number1 index0 alt2\">1</div><div class=\"line number2 index1 alt1\">2</div><div class=\"line number3 index2 alt2\">3</div><div class=\"line number4 index3 alt1\">4</div><div class=\"line number5 index4 alt2\">5</div><div class=\"line number6 index5 alt1\">6</div><div class=\"line number7 index6 alt2\">7</div><div class=\"line number8 index7 alt1\">8</div></td><td class=\"code\"><div class=\"container\"><div class=\"line number1 index0 alt2\"><code class=\"plain plain\">[02-Jan-2014 15:15:48 UTC] Wwwww1-02 15:15:48 Can't select gr -</code></div><div class=\"line number2 index1 alt1\"><code class=\"plain plain\">'referrer' =&amp;gt; 'pwwwwwcom/wwwww&amp;amp;fields=id%2Ctype%2Cunread%2Ctimestamp%2Csubject%2Cmeta&amp;amp;trap=true',</code></div><div class=\"line number3 index2 alt2\"><code class=\"plain plain\">'server' =&amp;gt; ,</code></div><div class=\"line number4 index3 alt1\"><code class=\"plain plain\">'host' =&amp;gt; wwwwwwww,</code></div><div class=\"line number5 index4 alt2\"><code class=\"plain plain\">'error' =&amp;gt; Too many connections,</code></div><div class=\"line number6 index5 alt1\"><code class=\"plain plain\">'errno' =&amp;gt; 1040,</code></div><div class=\"line number7 index6 alt2\"><code class=\"plain plain\">'server_state' =&amp;gt; up</code></div><div class=\"line number8 index7 alt1\"><code class=\"plain plain\">'lagged_status' =&amp;gt; 1 for query SELECT prepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprep<br /> </code></div></div></td></tr></tbody></table>",
        "link": "https://taliwutblog.wordpress.com/2014/01/03/273/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/03/273/",
        "post_status": "publish",
        "postid": "273",
        "title": "",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "273"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1147",
                "key": "jabber_published",
                "value": "1388755107"
            }
        ],
        "dateCreated": "Jan 3, 2014 1:18:27 PM",
        "date_created_gmt": "Jan 3, 2014 1:18:27 PM",
        "date_modified": "Jan 3, 2014 1:18:58 PM",
        "date_modified_gmt": "Jan 3, 2014 1:18:58 PM",
        "description": "Pre:\n\n<pre>\npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre \npre \npre \n</pre>",
        "link": "https://taliwutblog.wordpress.com/2014/01/03/pre-pre/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/03/pre-pre/",
        "post_status": "publish",
        "postid": "270",
        "title": "Pre pre",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "pre-pre"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1133",
                "key": "jabber_published",
                "value": "1388754692"
            }
        ],
        "dateCreated": "Jan 3, 2014 1:11:32 PM",
        "date_created_gmt": "Jan 3, 2014 1:11:32 PM",
        "date_modified": "Jan 3, 2014 1:15:47 PM",
        "date_modified_gmt": "Jan 3, 2014 1:15:47 PM",
        "description": "<pre>\npouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet \npouet \npouet \npouet \npouet \n</pre>",
        "link": "https://taliwutblog.wordpress.com/2014/01/03/test-2/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/03/test-2/",
        "post_status": "publish",
        "postid": "2",
        "title": "Test",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "test-2"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1120",
                "key": "jabber_published",
                "value": "1388677774"
            }
        ],
        "dateCreated": "Jan 2, 2014 3:49:33 PM",
        "date_created_gmt": "Jan 2, 2014 3:49:33 PM",
        "date_modified": "Jan 2, 2014 3:49:33 PM",
        "date_modified_gmt": "Jan 2, 2014 3:49:33 PM",
        "description": "[caption id=\"\" align=\"alignnone\" width=\"1067\"]<img title=\"Unicorn\" alt=\"Unicorn\" src=\"http://imgs.tuts.dragoart.com/how-to-draw-princess-cadence-my-little-pony_1_000000012723_5.png\" width=\"1067\" height=\"1073\" /> Unicorn[/caption]",
        "link": "https://taliwutblog.wordpress.com/2014/01/02/unicorn/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/02/unicorn/",
        "post_status": "publish",
        "postid": "263",
        "title": "Unicorn",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "unicorn"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1111",
                "key": "jabber_published",
                "value": "1388677368"
            }
        ],
        "dateCreated": "Jan 2, 2014 3:42:46 PM",
        "date_created_gmt": "Jan 2, 2014 3:42:46 PM",
        "date_modified": "Jan 3, 2014 10:30:51 AM",
        "date_modified_gmt": "Jan 3, 2014 10:30:51 AM",
        "description": "Romeo and Juliet\nShakespeare homepage | Romeo and Juliet | Entire play\nACT I\n\nPROLOGUE\n\nTwo households, both alike in dignity,\nIn fair Verona, where we lay our scene,\nFrom ancient grudge break to new mutiny,\nWhere civil blood makes civil hands unclean.\nFrom forth the fatal loins of these two foes\nA pair of star-cross'd lovers take their life;\nWhose misadventured piteous overthrows\nDo with their death bury their parents' strife.\nThe fearful passage of their death-mark'd love,\nAnd the continuance of their parents' rage,\nWhich, but their children's end, nought could remove,\nIs now the two hours' traffic of our stage;\nThe which if you with patient ears attend,\nWhat here shall miss, our toil shall strive to mend.\nSCENE I. Verona. A public place.\n\nEnter SAMPSON and GREGORY, of the house of Capulet, armed with swords and bucklers\nSAMPSON\nGregory, o' my word, we'll not carry coals.\nGREGORY\nNo, for then we should be colliers.\nSAMPSON\nI mean, an we be in choler, we'll draw.\nGREGORY\nAy, while you live, draw your neck out o' the collar.\nSAMPSON\nI strike quickly, being moved.\nGREGORY\nBut thou art not quickly moved to strike.\nSAMPSON\nA dog of the house of Montague moves me.\nGREGORY\nTo move is to stir; and to be valiant is to stand:\ntherefore, if thou art moved, thou runn'st away.\nSAMPSON\nA dog of that house shall move me to stand: I will\ntake the wall of any man or maid of Montague's.\nGREGORY\nThat shows thee a weak slave; for the weakest goes\nto the wall.\nSAMPSON\nTrue; and therefore women, being the weaker vessels,\nare ever thrust to the wall: therefore I will push\nMontague's men from the wall, and thrust his maids\nto the wall.\nGREGORY\nThe quarrel is between our masters and us their men.\nSAMPSON\n'Tis all one, I will show myself a tyrant: when I\nhave fought with the men, I will be cruel with the\nmaids, and cut off their heads.\nGREGORY\nThe heads of the maids?\nSAMPSON\nAy, the heads of the maids, or their maidenheads;\ntake it in what sense thou wilt.\nGREGORY\nThey must take it in sense that feel it.\nSAMPSON\nMe they shall feel while I am able to stand: and\n'tis known I am a pretty piece of flesh.\nGREGORY\n'Tis well thou art not fish; if thou hadst, thou\nhadst been poor John. Draw thy tool! here comes\ntwo of the house of the Montagues.\nSAMPSON\nMy naked weapon is out: quarrel, I will back thee.\nGREGORY\nHow! turn thy back and run?\nSAMPSON\nFear me not.\nGREGORY\nNo, marry; I fear thee!\nSAMPSON\nLet us take the law of our sides; let them begin.\nGREGORY\nI will frown as I pass by, and let them take it as\nthey list.\nSAMPSON\nNay, as they dare. I will bite my thumb at them;\nwhich is a disgrace to them, if they bear it.\nEnter ABRAHAM and BALTHASAR\n\nABRAHAM\nDo you bite your thumb at us, sir?\nSAMPSON\nI do bite my thumb, sir.\nABRAHAM\nDo you bite your thumb at us, sir?\nSAMPSON\n[Aside to GREGORY] Is the law of our side, if I say\nay?\nGREGORY\nNo.\nSAMPSON\nNo, sir, I do not bite my thumb at you, sir, but I\nbite my thumb, sir.\nGREGORY\nDo you quarrel, sir?\nABRAHAM\nQuarrel sir! no, sir.\nSAMPSON\nIf you do, sir, I am for you: I serve as good a man as you.\nABRAHAM\nNo better.\nSAMPSON\nWell, sir.\nGREGORY\nSay 'better:' here comes one of my master's kinsmen.\nSAMPSON\nYes, better, sir.\nABRAHAM\nYou lie.\nSAMPSON\nDraw, if you be men. Gregory, remember thy swashing blow.\nThey fight\n\nEnter BENVOLIO\n\nBENVOLIO\nPart, fools!\nPut up your swords; you know not what you do.\nBeats down their swords\n\nEnter TYBALT\n\nTYBALT\nWhat, art thou drawn among these heartless hinds?\nTurn thee, Benvolio, look upon thy death.\nBENVOLIO\nI do but keep the peace: put up thy sword,\nOr manage it to part these men with me.\nTYBALT\nWhat, drawn, and talk of peace! I hate the word,\nAs I hate hell, all Montagues, and thee:\nHave at thee, coward!\nThey fight\n\nEnter, several of both houses, who join the fray; then enter Citizens, with clubs\n\nFirst Citizen\nClubs, bills, and partisans! strike! beat them down!\nDown with the Capulets! down with the Montagues!\nEnter CAPULET in his gown, and LADY CAPULET\n\nCAPULET\nWhat noise is this? Give me my long sword, ho!\nLADY CAPULET\nA crutch, a crutch! why call you for a sword?\nCAPULET\nMy sword, I say! Old Montague is come,\nAnd flourishes his blade in spite of me.\nEnter MONTAGUE and LADY MONTAGUE\n\nMONTAGUE\nThou villain Capulet,--Hold me not, let me go.\nLADY MONTAGUE\nThou shalt not stir a foot to seek a foe.\nEnter PRINCE, with Attendants\n\nPRINCE\nRebellious subjects, enemies to peace,\nProfaners of this neighbour-stained steel,--\nWill they not hear? What, ho! you men, you beasts,\nThat quench the fire of your pernicious rage\nWith purple fountains issuing from your veins,\nOn pain of torture, from those bloody hands\nThrow your mistemper'd weapons to the ground,\nAnd hear the sentence of your moved prince.\nThree civil brawls, bred of an airy word,\nBy thee, old Capulet, and Montague,\nHave thrice disturb'd the quiet of our streets,\nAnd made Verona's ancient citizens\nCast by their grave beseeming ornaments,\nTo wield old partisans, in hands as old,\nCanker'd with peace, to part your canker'd hate:\nIf ever you disturb our streets again,\nYour lives shall pay the forfeit of the peace.\nFor this time, all the rest depart away:\nYou Capulet; shall go along with me:\nAnd, Montague, come you this afternoon,\nTo know our further pleasure in this case,\nTo old Free-town, our common judgment-place.\nOnce more, on pain of death, all men depart.\nExeunt all but MONTAGUE, LADY MONTAGUE, and BENVOLIO\n\nMONTAGUE\nWho set this ancient quarrel new abroach?\nSpeak, nephew, were you by when it began?\nBENVOLIO\nHere were the servants of your adversary,\nAnd yours, close fighting ere I did approach:\nI drew to part them: in the instant came\nThe fiery Tybalt, with his sword prepared,\nWhich, as he breathed defiance to my ears,\nHe swung about his head and cut the winds,\nWho nothing hurt withal hiss'd him in scorn:\nWhile we were interchanging thrusts and blows,\nCame more and more and fought on part and part,\nTill the prince came, who parted either part.\nLADY MONTAGUE\nO, where is Romeo? saw you him to-day?\nRight glad I am he was not at this fray.\nBENVOLIO\nMadam, an hour before the worshipp'd sun\nPeer'd forth the golden window of the east,\nA troubled mind drave me to walk abroad;\nWhere, underneath the grove of sycamore\nThat westward rooteth from the city's side,\nSo early walking did I see your son:\nTowards him I made, but he was ware of me\nAnd stole into the covert of the wood:\nI, measuring his affections by my own,\nThat most are busied when they're most alone,\nPursued my humour not pursuing his,\nAnd gladly shunn'd who gladly fled from me.\nMONTAGUE\nMany a morning hath he there been seen,\nWith tears augmenting the fresh morning dew.\nAdding to clouds more clouds with his deep sighs;\nBut all so soon as the all-cheering sun\nShould in the furthest east begin to draw\nThe shady curtains from Aurora's bed,\nAway from the light steals home my heavy son,\nAnd private in his chamber pens himself,\nShuts up his windows, locks far daylight out\nAnd makes himself an artificial night:\nBlack and portentous must this humour prove,\nUnless good counsel may the cause remove.\nBENVOLIO\nMy noble uncle, do you know the cause?\nMONTAGUE\nI neither know it nor can learn of him.\nBENVOLIO\nHave you importuned him by any means?\nMONTAGUE\nBoth by myself and many other friends:\nBut he, his own affections' counsellor,\nIs to himself--I will not say how true--\nBut to himself so secret and so close,\nSo far from sounding and discovery,\nAs is the bud bit with an envious worm,\nEre he can spread his sweet leaves to the air,\nOr dedicate his beauty to the sun.\nCould we but learn from whence his sorrows grow.\nWe would as willingly give cure as know.\nEnter ROMEO\n\nBENVOLIO\nSee, where he comes: so please you, step aside;\nI'll know his grievance, or be much denied.\nMONTAGUE\nI would thou wert so happy by thy stay,\nTo hear true shrift. Come, madam, let's away.\nExeunt MONTAGUE and LADY MONTAGUE\n\nBENVOLIO\nGood-morrow, cousin.\nROMEO\nIs the day so young?\nBENVOLIO\nBut new struck nine.\nROMEO\nAy me! sad hours seem long.\nWas that my father that went hence so fast?\nBENVOLIO\nIt was. What sadness lengthens Romeo's hours?\nROMEO\nNot having that, which, having, makes them short.\nBENVOLIO\nIn love?\nROMEO\nOut--\nBENVOLIO\nOf love?\nROMEO\nOut of her favour, where I am in love.\nBENVOLIO\nAlas, that love, so gentle in his view,\nShould be so tyrannous and rough in proof!\nROMEO\nAlas, that love, whose view is muffled still,\nShould, without eyes, see pathways to his will!\nWhere shall we dine? O me! What fray was here?\nYet tell me not, for I have heard it all.\nHere's much to do with hate, but more with love.\nWhy, then, O brawling love! O loving hate!\nO any thing, of nothing first create!\nO heavy lightness! serious vanity!\nMis-shapen chaos of well-seeming forms!\nFeather of lead, bright smoke, cold fire,\nsick health!\nStill-waking sleep, that is not what it is!\nThis love feel I, that feel no love in this.\nDost thou not laugh?\nBENVOLIO\nNo, coz, I rather weep.\nROMEO\nGood heart, at what?\nBENVOLIO\nAt thy good heart's oppression.\nROMEO\nWhy, such is love's transgression.\nGriefs of mine own lie heavy in my breast,\nWhich thou wilt propagate, to have it prest\nWith more of thine: this love that thou hast shown\nDoth add more grief to too much of mine own.\nLove is a smoke raised with the fume of sighs;\nBeing purged, a fire sparkling in lovers' eyes;\nBeing vex'd a sea nourish'd with lovers' tears:\nWhat is it else? a madness most discreet,\nA choking gall and a preserving sweet.\nFarewell, my coz.\nBENVOLIO\nSoft! I will go along;\nAn if you leave me so, you do me wrong.\nROMEO\nTut, I have lost myself; I am not here;\nThis is not Romeo, he's some other where.\nBENVOLIO\nTell me in sadness, who is that you love.\nROMEO\nWhat, shall I groan and tell thee?\nBENVOLIO\nGroan! why, no.\nBut sadly tell me who.\nROMEO\nBid a sick man in sadness make his will:\nAh, word ill urged to one that is so ill!\nIn sadness, cousin, I do love a woman.\nBENVOLIO\nI aim'd so near, when I supposed you loved.\nROMEO\nA right good mark-man! And she's fair I love.\nBENVOLIO\nA right fair mark, fair coz, is soonest hit.\nROMEO\nWell, in that hit you miss: she'll not be hit\nWith Cupid's arrow; she hath Dian's wit;\nAnd, in strong proof of chastity well arm'd,\nFrom love's weak childish bow she lives unharm'd.\nShe will not stay the siege of loving terms,\nNor bide the encounter of assailing eyes,\nNor ope her lap to saint-seducing gold:\nO, she is rich in beauty, only poor,\nThat when she dies with beauty dies her store.\nBENVOLIO\nThen she hath sworn that she will still live chaste?\nROMEO\nShe hath, and in that sparing makes huge waste,\nFor beauty starved with her severity\nCuts beauty off from all posterity.\nShe is too fair, too wise, wisely too fair,\nTo merit bliss by making me despair:\nShe hath forsworn to love, and in that vow\nDo I live dead that live to tell it now.\nBENVOLIO\nBe ruled by me, forget to think of her.\nROMEO\nO, teach me how I should forget to think.\nBENVOLIO\nBy giving liberty unto thine eyes;\nExamine other beauties.\nROMEO\n'Tis the way\nTo call hers exquisite, in question more:\nThese happy masks that kiss fair ladies' brows\nBeing black put us in mind they hide the fair;\nHe that is strucken blind cannot forget\nThe precious treasure of his eyesight lost:\nShow me a mistress that is passing fair,\nWhat doth her beauty serve, but as a note\nWhere I may read who pass'd that passing fair?\nFarewell: thou canst not teach me to forget.\nBENVOLIO\nI'll pay that doctrine, or else die in debt.\nExeunt\n\nSCENE II. A street.\n\nEnter CAPULET, PARIS, and Servant\nCAPULET\nBut Montague is bound as well as I,\nIn penalty alike; and 'tis not hard, I think,\nFor men so old as we to keep the peace.\nPARIS\nOf honourable reckoning are you both;\nAnd pity 'tis you lived at odds so long.\nBut now, my lord, what say you to my suit?\nCAPULET\nBut saying o'er what I have said before:\nMy child is yet a stranger in the world;\nShe hath not seen the change of fourteen years,\nLet two more summers wither in their pride,\nEre we may think her ripe to be a bride.\nPARIS\nYounger than she are happy mothers made.\nCAPULET\nAnd too soon marr'd are those so early made.\nThe earth hath swallow'd all my hopes but she,\nShe is the hopeful lady of my earth:\nBut woo her, gentle Paris, get her heart,\nMy will to her consent is but a part;\nAn she agree, within her scope of choice\nLies my consent and fair according voice.\nThis night I hold an old accustom'd feast,\nWhereto I have invited many a guest,\nSuch as I love; and you, among the store,\nOne more, most welcome, makes my number more.\nAt my poor house look to behold this night\nEarth-treading stars that make dark heaven light:\nSuch comfort as do lusty young men feel\nWhen well-apparell'd April on the heel\nOf limping winter treads, even such delight\nAmong fresh female buds shall you this night\nInherit at my house; hear all, all see,\nAnd like her most whose merit most shall be:\nWhich on more view, of many mine being one\nMay stand in number, though in reckoning none,\nCome, go with me.\nTo Servant, giving a paper\n\nGo, sirrah, trudge about\nThrough fair Verona; find those persons out\nWhose names are written there, and to them say,\nMy house and welcome on their pleasure stay.\nExeunt CAPULET and PARIS\n\nServant\nFind them out whose names are written here! It is\nwritten, that the shoemaker should meddle with his\nyard, and the tailor with his last, the fisher with\nhis pencil, and the painter with his nets; but I am\nsent to find those persons whose names are here\nwrit, and can never find what names the writing\nperson hath here writ. I must to the learned.--In good time.\nEnter BENVOLIO and ROMEO\n\nBENVOLIO\nTut, man, one fire burns out another's burning,\nOne pain is lessen'd by another's anguish;\nTurn giddy, and be holp by backward turning;\nOne desperate grief cures with another's languish:\nTake thou some new infection to thy eye,\nAnd the rank poison of the old will die.\nROMEO\nYour plaintain-leaf is excellent for that.\nBENVOLIO\nFor what, I pray thee?\nROMEO\nFor your broken shin.\nBENVOLIO\nWhy, Romeo, art thou mad?\nROMEO\nNot mad, but bound more than a mad-man is;\nShut up in prison, kept without my food,\nWhipp'd and tormented and--God-den, good fellow.\nServant\nGod gi' god-den. I pray, sir, can you read?\nROMEO\nAy, mine own fortune in my misery.\nServant\nPerhaps you have learned it without book: but, I\npray, can you read any thing you see?\nROMEO\nAy, if I know the letters and the language.\nServant\nYe say honestly: rest you merry!\nROMEO\nStay, fellow; I can read.\nReads\n\n'Signior Martino and his wife and daughters;\nCounty Anselme and his beauteous sisters; the lady\nwidow of Vitravio; Signior Placentio and his lovely\nnieces; Mercutio and his brother Valentine; mine\nuncle Capulet, his wife and daughters; my fair niece\nRosaline; Livia; Signior Valentio and his cousin\nTybalt, Lucio and the lively Helena.' A fair\nassembly: whither should they come?\nServant\nUp.\nROMEO\nWhither?\nServant\nTo supper; to our house.\nROMEO\nWhose house?\nServant\nMy master's.\nROMEO\nIndeed, I should have ask'd you that before.\nServant\nNow I'll tell you without asking: my master is the\ngreat rich Capulet; and if you be not of the house\nof Montagues, I pray, come and crush a cup of wine.\nRest you merry!\nExit\n\nBENVOLIO\nAt this same ancient feast of Capulet's\nSups the fair Rosaline whom thou so lovest,\nWith all the admired beauties of Verona:\nGo thither; and, with unattainted eye,\nCompare her face with some that I shall show,\nAnd I will make thee think thy swan a crow.\nROMEO\nWhen the devout religion of mine eye\nMaintains such falsehood, then turn tears to fires;\nAnd these, who often drown'd could never die,\nTransparent heretics, be burnt for liars!\nOne fairer than my love! the all-seeing sun\nNe'er saw her match since first the world begun.\nBENVOLIO\nTut, you saw her fair, none else being by,\nHerself poised with herself in either eye:\nBut in that crystal scales let there be weigh'd\nYour lady's love against some other maid\nThat I will show you shining at this feast,\nAnd she shall scant show well that now shows best.\nROMEO\nI'll go along, no such sight to be shown,\nBut to rejoice in splendor of mine own.\nExeunt\n\nSCENE III. A room in Capulet's house.\n\nEnter LADY CAPULET and Nurse\nLADY CAPULET\nNurse, where's my daughter? call her forth to me.\nNurse\nNow, by my maidenhead, at twelve year old,\nI bade her come. What, lamb! what, ladybird!\nGod forbid! Where's this girl? What, Juliet!\nEnter JULIET\n\nJULIET\nHow now! who calls?\nNurse\nYour mother.\nJULIET\nMadam, I am here.\nWhat is your will?\nLADY CAPULET\nThis is the matter:--Nurse, give leave awhile,\nWe must talk in secret:--nurse, come back again;\nI have remember'd me, thou's hear our counsel.\nThou know'st my daughter's of a pretty age.\nNurse\nFaith, I can tell her age unto an hour.\nLADY CAPULET\nShe's not fourteen.\nNurse\nI'll lay fourteen of my teeth,--\nAnd yet, to my teeth be it spoken, I have but four--\nShe is not fourteen. How long is it now\nTo Lammas-tide?\nLADY CAPULET\nA fortnight and odd days.\nNurse\nEven or odd, of all days in the year,\nCome Lammas-eve at night shall she be fourteen.\nSusan and she--God rest all Christian souls!--\nWere of an age: well, Susan is with God;\nShe was too good for me: but, as I said,\nOn Lammas-eve at night shall she be fourteen;\nThat shall she, marry; I remember it well.\n'Tis since the earthquake now eleven years;\nAnd she was wean'd,--I never shall forget it,--\nOf all the days of the year, upon that day:\nFor I had then laid wormwood to my dug,\nSitting in the sun under the dove-house wall;\nMy lord and you were then at Mantua:--\nNay, I do bear a brain:--but, as I said,\nWhen it did taste the wormwood on the nipple\nOf my dug and felt it bitter, pretty fool,\nTo see it tetchy and fall out with the dug!\nShake quoth the dove-house: 'twas no need, I trow,\nTo bid me trudge:\nAnd since that time it is eleven years;\nFor then she could stand alone; nay, by the rood,\nShe could have run and waddled all about;\nFor even the day before, she broke her brow:\nAnd then my husband--God be with his soul!\nA' was a merry man--took up the child:\n'Yea,' quoth he, 'dost thou fall upon thy face?\nThou wilt fall backward when thou hast more wit;\nWilt thou not, Jule?' and, by my holidame,\nThe pretty wretch left crying and said 'Ay.'\nTo see, now, how a jest shall come about!\nI warrant, an I should live a thousand years,\nI never should forget it: 'Wilt thou not, Jule?' quoth he;\nAnd, pretty fool, it stinted and said 'Ay.'\nLADY CAPULET\nEnough of this; I pray thee, hold thy peace.\nNurse\nYes, madam: yet I cannot choose but laugh,\nTo think it should leave crying and say 'Ay.'\nAnd yet, I warrant, it had upon its brow\nA bump as big as a young cockerel's stone;\nA parlous knock; and it cried bitterly:\n'Yea,' quoth my husband,'fall'st upon thy face?\nThou wilt fall backward when thou comest to age;\nWilt thou not, Jule?' it stinted and said 'Ay.'\nJULIET\nAnd stint thou too, I pray thee, nurse, say I.\nNurse\nPeace, I have done. God mark thee to his grace!\nThou wast the prettiest babe that e'er I nursed:\nAn I might live to see thee married once,\nI have my wish.\nLADY CAPULET\nMarry, that 'marry' is the very theme\nI came to talk of. Tell me, daughter Juliet,\nHow stands your disposition to be married?\nJULIET\nIt is an honour that I dream not of.\nNurse\nAn honour! were not I thine only nurse,\nI would say thou hadst suck'd wisdom from thy teat.\nLADY CAPULET\nWell, think of marriage now; younger than you,\nHere in Verona, ladies of esteem,\nAre made already mothers: by my count,\nI was your mother much upon these years\nThat you are now a maid. Thus then in brief:\nThe valiant Paris seeks you for his love.\nNurse\nA man, young lady! lady, such a man\nAs all the world--why, he's a man of wax.\nLADY CAPULET\nVerona's summer hath not such a flower.\nNurse\nNay, he's a flower; in faith, a very flower.\nLADY CAPULET\nWhat say you? can you love the gentleman?\nThis night you shall behold him at our feast;\nRead o'er the volume of young Paris' face,\nAnd find delight writ there with beauty's pen;\nExamine every married lineament,\nAnd see how one another lends content\nAnd what obscured in this fair volume lies\nFind written in the margent of his eyes.\nThis precious book of love, this unbound lover,\nTo beautify him, only lacks a cover:\nThe fish lives in the sea, and 'tis much pride\nFor fair without the fair within to hide:\nThat book in many's eyes doth share the glory,\nThat in gold clasps locks in the golden story;\nSo shall you share all that he doth possess,\nBy having him, making yourself no less.\nNurse\nNo less! nay, bigger; women grow by men.\nLADY CAPULET\nSpeak briefly, can you like of Paris' love?\nJULIET\nI'll look to like, if looking liking move:\nBut no more deep will I endart mine eye\nThan your consent gives strength to make it fly.\nEnter a Servant\n\nServant\nMadam, the guests are come, supper served up, you\ncalled, my young lady asked for, the nurse cursed in\nthe pantry, and every thing in extremity. I must\nhence to wait; I beseech you, follow straight.\nLADY CAPULET\nWe follow thee.\nExit Servant\n\nJuliet, the county stays.\nNurse\nGo, girl, seek happy nights to happy days.\nExeunt\n\nSCENE IV. A street.\n\nEnter ROMEO, MERCUTIO, BENVOLIO, with five or six Maskers, Torch-bearers, and others\nROMEO\nWhat, shall this speech be spoke for our excuse?\nOr shall we on without a apology?\nBENVOLIO\nThe date is out of such prolixity:\nWe'll have no Cupid hoodwink'd with a scarf,\nBearing a Tartar's painted bow of lath,\nScaring the ladies like a crow-keeper;\nNor no without-book prologue, faintly spoke\nAfter the prompter, for our entrance:\nBut let them measure us by what they will;\nWe'll measure them a measure, and be gone.\nROMEO\nGive me a torch: I am not for this ambling;\nBeing but heavy, I will bear the light.\nMERCUTIO\nNay, gentle Romeo, we must have you dance.\nROMEO\nNot I, believe me: you have dancing shoes\nWith nimble soles: I have a soul of lead\nSo stakes me to the ground I cannot move.\nMERCUTIO\nYou are a lover; borrow Cupid's wings,\nAnd soar with them above a common bound.\nROMEO\nI am too sore enpierced with his shaft\nTo soar with his light feathers, and so bound,\nI cannot bound a pitch above dull woe:\nUnder love's heavy burden do I sink.\nMERCUTIO\nAnd, to sink in it, should you burden love;\nToo great oppression for a tender thing.\nROMEO\nIs love a tender thing? it is too rough,\nToo rude, too boisterous, and it pricks like thorn.\nMERCUTIO\nIf love be rough with you, be rough with love;\nPrick love for pricking, and you beat love down.\nGive me a case to put my visage in:\nA visor for a visor! what care I\nWhat curious eye doth quote deformities?\nHere are the beetle brows shall blush for me.\nBENVOLIO\nCome, knock and enter; and no sooner in,\nBut every man betake him to his legs.\nROMEO\nA torch for me: let wantons light of heart\nTickle the senseless rushes with their heels,\nFor I am proverb'd with a grandsire phrase;\nI'll be a candle-holder, and look on.\nThe game was ne'er so fair, and I am done.\nMERCUTIO\nTut, dun's the mouse, the constable's own word:\nIf thou art dun, we'll draw thee from the mire\nOf this sir-reverence love, wherein thou stick'st\nUp to the ears. Come, we burn daylight, ho!\nROMEO\nNay, that's not so.\nMERCUTIO\nI mean, sir, in delay\nWe waste our lights in vain, like lamps by day.\nTake our good meaning, for our judgment sits\nFive times in that ere once in our five wits.\nROMEO\nAnd we mean well in going to this mask;\nBut 'tis no wit to go.\nMERCUTIO\nWhy, may one ask?\nROMEO\nI dream'd a dream to-night.\nMERCUTIO\nAnd so did I.\nROMEO\nWell, what was yours?\nMERCUTIO\nThat dreamers often lie.\nROMEO\nIn bed asleep, while they do dream things true.\nMERCUTIO\nO, then, I see Queen Mab hath been with you.\nShe is the fairies' midwife, and she comes\nIn shape no bigger than an agate-stone\nOn the fore-finger of an alderman,\nDrawn with a team of little atomies\nAthwart men's noses as they lie asleep;\nHer wagon-spokes made of long spiders' legs,\nThe cover of the wings of grasshoppers,\nThe traces of the smallest spider's web,\nThe collars of the moonshine's watery beams,\nHer whip of cricket's bone, the lash of film,\nHer wagoner a small grey-coated gnat,\nNot so big as a round little worm\nPrick'd from the lazy finger of a maid;\nHer chariot is an empty hazel-nut\nMade by the joiner squirrel or old grub,\nTime out o' mind the fairies' coachmakers.\nAnd in this state she gallops night by night\nThrough lovers' brains, and then they dream of love;\nO'er courtiers' knees, that dream on court'sies straight,\nO'er lawyers' fingers, who straight dream on fees,\nO'er ladies ' lips, who straight on kisses dream,\nWhich oft the angry Mab with blisters plagues,\nBecause their breaths with sweetmeats tainted are:\nSometime she gallops o'er a courtier's nose,\nAnd then dreams he of smelling out a suit;\nAnd sometime comes she with a tithe-pig's tail\nTickling a parson's nose as a' lies asleep,\nThen dreams, he of another benefice:\nSometime she driveth o'er a soldier's neck,\nAnd then dreams he of cutting foreign throats,\nOf breaches, ambuscadoes, Spanish blades,\nOf healths five-fathom deep; and then anon\nDrums in his ear, at which he starts and wakes,\nAnd being thus frighted swears a prayer or two\nAnd sleeps again. This is that very Mab\nThat plats the manes of horses in the night,\nAnd bakes the elflocks in foul sluttish hairs,\nWhich once untangled, much misfortune bodes:\nThis is the hag, when maids lie on their backs,\nThat presses them and learns them first to bear,\nMaking them women of good carriage:\nThis is she--\nROMEO\nPeace, peace, Mercutio, peace!\nThou talk'st of nothing.\nMERCUTIO\nTrue, I talk of dreams,\nWhich are the children of an idle brain,\nBegot of nothing but vain fantasy,\nWhich is as thin of substance as the air\nAnd more inconstant than the wind, who wooes\nEven now the frozen bosom of the north,\nAnd, being anger'd, puffs away from thence,\nTurning his face to the dew-dropping south.\nBENVOLIO\nThis wind, you talk of, blows us from ourselves;\nSupper is done, and we shall come too late.\nROMEO\nI fear, too early: for my mind misgives\nSome consequence yet hanging in the stars\nShall bitterly begin his fearful date\nWith this night's revels and expire the term\nOf a despised life closed in my breast\nBy some vile forfeit of untimely death.\nBut He, that hath the steerage of my course,\nDirect my sail! On, lusty gentlemen.\nBENVOLIO\nStrike, drum.\nExeunt\n\nSCENE V. A hall in Capulet's house.\n\nMusicians waiting. Enter Servingmen with napkins\nFirst Servant\nWhere's Potpan, that he helps not to take away? He\nshift a trencher? he scrape a trencher!\nSecond Servant\nWhen good manners shall lie all in one or two men's\nhands and they unwashed too, 'tis a foul thing.\nFirst Servant\nAway with the joint-stools, remove the\ncourt-cupboard, look to the plate. Good thou, save\nme a piece of marchpane; and, as thou lovest me, let\nthe porter let in Susan Grindstone and Nell.\nAntony, and Potpan!\nSecond Servant\nAy, boy, ready.\nFirst Servant\nYou are looked for and called for, asked for and\nsought for, in the great chamber.\nSecond Servant\nWe cannot be here and there too. Cheerly, boys; be\nbrisk awhile, and the longer liver take all.\nEnter CAPULET, with JULIET and others of his house, meeting the Guests and Maskers\n\nCAPULET\nWelcome, gentlemen! ladies that have their toes\nUnplagued with corns will have a bout with you.\nAh ha, my mistresses! which of you all\nWill now deny to dance? she that makes dainty,\nShe, I'll swear, hath corns; am I come near ye now?\nWelcome, gentlemen! I have seen the day\nThat I have worn a visor and could tell\nA whispering tale in a fair lady's ear,\nSuch as would please: 'tis gone, 'tis gone, 'tis gone:\nYou are welcome, gentlemen! come, musicians, play.\nA hall, a hall! give room! and foot it, girls.\nMusic plays, and they dance\n\nMore light, you knaves; and turn the tables up,\nAnd quench the fire, the room is grown too hot.\nAh, sirrah, this unlook'd-for sport comes well.\nNay, sit, nay, sit, good cousin Capulet;\nFor you and I are past our dancing days:\nHow long is't now since last yourself and I\nWere in a mask?\nSecond Capulet\nBy'r lady, thirty years.\nCAPULET\nWhat, man! 'tis not so much, 'tis not so much:\n'Tis since the nuptials of Lucentio,\nCome pentecost as quickly as it will,\nSome five and twenty years; and then we mask'd.\nSecond Capulet\n'Tis more, 'tis more, his son is elder, sir;\nHis son is thirty.\nCAPULET\nWill you tell me that?\nHis son was but a ward two years ago.\nROMEO\n[To a Servingman] What lady is that, which doth\nenrich the hand\nOf yonder knight?\nServant\nI know not, sir.\nROMEO\nO, she doth teach the torches to burn bright!\nIt seems she hangs upon the cheek of night\nLike a rich jewel in an Ethiope's ear;\nBeauty too rich for use, for earth too dear!\nSo shows a snowy dove trooping with crows,\nAs yonder lady o'er her fellows shows.\nThe measure done, I'll watch her place of stand,\nAnd, touching hers, make blessed my rude hand.\nDid my heart love till now? forswear it, sight!\nFor I ne'er saw true beauty till this night.\nTYBALT\nThis, by his voice, should be a Montague.\nFetch me my rapier, boy. What dares the slave\nCome hither, cover'd with an antic face,\nTo fleer and scorn at our solemnity?\nNow, by the stock and honour of my kin,\nTo strike him dead, I hold it not a sin.\nCAPULET\nWhy, how now, kinsman! wherefore storm you so?\nTYBALT\nUncle, this is a Montague, our foe,\nA villain that is hither come in spite,\nTo scorn at our solemnity this night.\nCAPULET\nYoung Romeo is it?\nTYBALT\n'Tis he, that villain Romeo.\nCAPULET\nContent thee, gentle coz, let him alone;\nHe bears him like a portly gentleman;\nAnd, to say truth, Verona brags of him\nTo be a virtuous and well-govern'd youth:\nI would not for the wealth of all the town\nHere in my house do him disparagement:\nTherefore be patient, take no note of him:\nIt is my will, the which if thou respect,\nShow a fair presence and put off these frowns,\nAnd ill-beseeming semblance for a feast.\nTYBALT\nIt fits, when such a villain is a guest:\nI'll not endure him.\nCAPULET\nHe shall be endured:\nWhat, goodman boy! I say, he shall: go to;\nAm I the master here, or you? go to.\nYou'll not endure him! God shall mend my soul!\nYou'll make a mutiny among my guests!\nYou will set cock-a-hoop! you'll be the man!\nTYBALT\nWhy, uncle, 'tis a shame.\nCAPULET\nGo to, go to;\nYou are a saucy boy: is't so, indeed?\nThis trick may chance to scathe you, I know what:\nYou must contrary me! marry, 'tis time.\nWell said, my hearts! You are a princox; go:\nBe quiet, or--More light, more light! For shame!\nI'll make you quiet. What, cheerly, my hearts!\nTYBALT\nPatience perforce with wilful choler meeting\nMakes my flesh tremble in their different greeting.\nI will withdraw: but this intrusion shall\nNow seeming sweet convert to bitter gall.\nExit\n\nROMEO\n[To JULIET] If I profane with my unworthiest hand\nThis holy shrine, the gentle fine is this:\nMy lips, two blushing pilgrims, ready stand\nTo smooth that rough touch with a tender kiss.\nJULIET\nGood pilgrim, you do wrong your hand too much,\nWhich mannerly devotion shows in this;\nFor saints have hands that pilgrims' hands do touch,\nAnd palm to palm is holy palmers' kiss.\nROMEO\nHave not saints lips, and holy palmers too?\nJULIET\nAy, pilgrim, lips that they must use in prayer.\nROMEO\nO, then, dear saint, let lips do what hands do;\nThey pray, grant thou, lest faith turn to despair.\nJULIET\nSaints do not move, though grant for prayers' sake.\nROMEO\nThen move not, while my prayer's effect I take.\nThus from my lips, by yours, my sin is purged.\nJULIET\nThen have my lips the sin that they have took.\nROMEO\nSin from thy lips? O trespass sweetly urged!\nGive me my sin again.\nJULIET\nYou kiss by the book.\nNurse\nMadam, your mother craves a word with you.\nROMEO\nWhat is her mother?\nNurse\nMarry, bachelor,\nHer mother is the lady of the house,\nAnd a good lady, and a wise and virtuous\nI nursed her daughter, that you talk'd withal;\nI tell you, he that can lay hold of her\nShall have the chinks.\nROMEO\nIs she a Capulet?\nO dear account! my life is my foe's debt.\nBENVOLIO\nAway, begone; the sport is at the best.\nROMEO\nAy, so I fear; the more is my unrest.\nCAPULET\nNay, gentlemen, prepare not to be gone;\nWe have a trifling foolish banquet towards.\nIs it e'en so? why, then, I thank you all\nI thank you, honest gentlemen; good night.\nMore torches here! Come on then, let's to bed.\nAh, sirrah, by my fay, it waxes late:\nI'll to my rest.\nExeunt all but JULIET and Nurse\n\nJULIET\nCome hither, nurse. What is yond gentleman?\nNurse\nThe son and heir of old Tiberio.\nJULIET\nWhat's he that now is going out of door?\nNurse\nMarry, that, I think, be young Petrucio.\nJULIET\nWhat's he that follows there, that would not dance?\nNurse\nI know not.\nJULIET\nGo ask his name: if he be married.\nMy grave is like to be my wedding bed.\nNurse\nHis name is Romeo, and a Montague;\nThe only son of your great enemy.\nJULIET\nMy only love sprung from my only hate!\nToo early seen unknown, and known too late!\nProdigious birth of love it is to me,\nThat I must love a loathed enemy.\nNurse\nWhat's this? what's this?\nJULIET\nA rhyme I learn'd even now\nOf one I danced withal.\nOne calls within 'Juliet.'\n\nNurse\nAnon, anon!\nCome, let's away; the strangers all are gone.\nExeunt\n\nACT II\n\nPROLOGUE\n\nEnter Chorus\nChorus\nNow old desire doth in his death-bed lie,\nAnd young affection gapes to be his heir;\nThat fair for which love groan'd for and would die,\nWith tender Juliet match'd, is now not fair.\nNow Romeo is beloved and loves again,\nAlike betwitched by the charm of looks,\nBut to his foe supposed he must complain,\nAnd she steal love's sweet bait from fearful hooks:\nBeing held a foe, he may not have access\nTo breathe such vows as lovers use to swear;\nAnd she as much in love, her means much less\nTo meet her new-beloved any where:\nBut passion lends them power, time means, to meet\nTempering extremities with extreme sweet.\nExit\n\nSCENE I. A lane by the wall of Capulet's orchard.\n\nEnter ROMEO\nROMEO\nCan I go forward when my heart is here?\nTurn back, dull earth, and find thy centre out.\nHe climbs the wall, and leaps down within it\n\nEnter BENVOLIO and MERCUTIO\n\nBENVOLIO\nRomeo! my cousin Romeo!\nMERCUTIO\nHe is wise;\nAnd, on my lie, hath stol'n him home to bed.\nBENVOLIO\nHe ran this way, and leap'd this orchard wall:\nCall, good Mercutio.\nMERCUTIO\nNay, I'll conjure too.\nRomeo! humours! madman! passion! lover!\nAppear thou in the likeness of a sigh:\nSpeak but one rhyme, and I am satisfied;\nCry but 'Ay me!' pronounce but 'love' and 'dove;'\nSpeak to my gossip Venus one fair word,\nOne nick-name for her purblind son and heir,\nYoung Adam Cupid, he that shot so trim,\nWhen King Cophetua loved the beggar-maid!\nHe heareth not, he stirreth not, he moveth not;\nThe ape is dead, and I must conjure him.\nI conjure thee by Rosaline's bright eyes,\nBy her high forehead and her scarlet lip,\nBy her fine foot, straight leg and quivering thigh\nAnd the demesnes that there adjacent lie,\nThat in thy likeness thou appear to us!\nBENVOLIO\nAnd if he hear thee, thou wilt anger him.\nMERCUTIO\nThis cannot anger him: 'twould anger him\nTo raise a spirit in his mistress' circle\nOf some strange nature, letting it there stand\nTill she had laid it and conjured it down;\nThat were some spite: my invocation\nIs fair and honest, and in his mistres s' name\nI conjure only but to raise up him.\nBENVOLIO\nCome, he hath hid himself among these trees,\nTo be consorted with the humorous night:\nBlind is his love and best befits the dark.\nMERCUTIO\nIf love be blind, love cannot hit the mark.\nNow will he sit under a medlar tree,\nAnd wish his mistress were that kind of fruit\nAs maids call medlars, when they laugh alone.\nRomeo, that she were, O, that she were\nAn open et caetera, thou a poperin pear!\nRomeo, good night: I'll to my truckle-bed;\nThis field-bed is too cold for me to sleep:\nCome, shall we go?\nBENVOLIO\nGo, then; for 'tis in vain\nTo seek him here that means not to be found.\nExeunt\n\nSCENE II. Capulet's orchard.\n\nEnter ROMEO\nROMEO\nHe jests at scars that never felt a wound.\nJULIET appears above at a window\n\nBut, soft! what light through yonder window breaks?\nIt is the east, and Juliet is the sun.\nArise, fair sun, and kill the envious moon,\nWho is already sick and pale with grief,\nThat thou her maid art far more fair than she:\nBe not her maid, since she is envious;\nHer vestal livery is but sick and green\nAnd none but fools do wear it; cast it off.\nIt is my lady, O, it is my love!\nO, that she knew she were!\nShe speaks yet she says nothing: what of that?\nHer eye discourses; I will answer it.\nI am too bold, 'tis not to me she speaks:\nTwo of the fairest stars in all the heaven,\nHaving some business, do entreat her eyes\nTo twinkle in their spheres till they return.\nWhat if her eyes were there, they in her head?\nThe brightness of her cheek would shame those stars,\nAs daylight doth a lamp; her eyes in heaven\nWould through the airy region stream so bright\nThat birds would sing and think it were not night.\nSee, how she leans her cheek upon her hand!\nO, that I were a glove upon that hand,\nThat I might touch that cheek!\nJULIET\nAy me!\nROMEO\nShe speaks:\nO, speak again, bright angel! for thou art\nAs glorious to this night, being o'er my head\nAs is a winged messenger of heaven\nUnto the white-upturned wondering eyes\nOf mortals that fall back to gaze on him\nWhen he bestrides the lazy-pacing clouds\nAnd sails upon the bosom of the air.\nJULIET\nO Romeo, Romeo! wherefore art thou Romeo?\nDeny thy father and refuse thy name;\nOr, if thou wilt not, be but sworn my love,\nAnd I'll no longer be a Capulet.\nROMEO\n[Aside] Shall I hear more, or shall I speak at this?\nJULIET\n'Tis but thy name that is my enemy;\nThou art thyself, though not a Montague.\nWhat's Montague? it is nor hand, nor foot,\nNor arm, nor face, nor any other part\nBelonging to a man. O, be some other name!\nWhat's in a name? that which we call a rose\nBy any other name would smell as sweet;\nSo Romeo would, were he not Romeo call'd,\nRetain that dear perfection which he owes\nWithout that title. Romeo, doff thy name,\nAnd for that name which is no part of thee\nTake all myself.\nROMEO\nI take thee at thy word:\nCall me but love, and I'll be new baptized;\nHenceforth I never will be Romeo.\nJULIET\nWhat man art thou that thus bescreen'd in night\nSo stumblest on my counsel?\nROMEO\nBy a name\nI know not how to tell thee who I am:\nMy name, dear saint, is hateful to myself,\nBecause it is an enemy to thee;\nHad I it written, I would tear the word.\nJULIET\nMy ears have not yet drunk a hundred words\nOf that tongue's utterance, yet I know the sound:\nArt thou not Romeo and a Montague?\nROMEO\nNeither, fair saint, if either thee dislike.\nJULIET\nHow camest thou hither, tell me, and wherefore?\nThe orchard walls are high and hard to climb,\nAnd the place death, considering who thou art,\nIf any of my kinsmen find thee here.\nROMEO\nWith love's light wings did I o'er-perch these walls;\nFor stony limits cannot hold love out,\nAnd what love can do that dares love attempt;\nTherefore thy kinsmen are no let to me.\nJULIET\nIf they do see thee, they will murder thee.\nROMEO\nAlack, there lies more peril in thine eye\nThan twenty of their swords: look thou but sweet,\nAnd I am proof against their enmity.\nJULIET\nI would not for the world they saw thee here.\nROMEO\nI have night's cloak to hide me from their sight;\nAnd but thou love me, let them find me here:\nMy life were better ended by their hate,\nThan death prorogued, wanting of thy love.\nJULIET\nBy whose direction found'st thou out this place?\nROMEO\nBy love, who first did prompt me to inquire;\nHe lent me counsel and I lent him eyes.\nI am no pilot; yet, wert thou as far\nAs that vast shore wash'd with the farthest sea,\nI would adventure for such merchandise.\nJULIET\nThou know'st the mask of night is on my face,\nElse would a maiden blush bepaint my cheek\nFor that which thou hast heard me speak to-night\nFain would I dwell on form, fain, fain deny\nWhat I have spoke: but farewell compliment!\nDost thou love me? I know thou wilt say 'Ay,'\nAnd I will take thy word: yet if thou swear'st,\nThou mayst prove false; at lovers' perjuries\nThen say, Jove laughs. O gentle Romeo,\nIf thou dost love, pronounce it faithfully:\nOr if thou think'st I am too quickly won,\nI'll frown and be perverse an say thee nay,\nSo thou wilt woo; but else, not for the world.\nIn truth, fair Montague, I am too fond,\nAnd therefore thou mayst think my 'havior light:\nBut trust me, gentleman, I'll prove more true\nThan those that have more cunning to be strange.\nI should have been more strange, I must confess,\nBut that thou overheard'st, ere I was ware,\nMy true love's passion: therefore pardon me,\nAnd not impute this yielding to light love,\nWhich the dark night hath so discovered.\nROMEO\nLady, by yonder blessed moon I swear\nThat tips with silver all these fruit-tree tops--\nJULIET\nO, swear not by the moon, the inconstant moon,\nThat monthly changes in her circled orb,\nLest that thy love prove likewise variable.\nROMEO\nWhat shall I swear by?\nJULIET\nDo not swear at all;\nOr, if thou wilt, swear by thy gracious self,\nWhich is the god of my idolatry,\nAnd I'll believe thee.\nROMEO\nIf my heart's dear love--\nJULIET\nWell, do not swear: although I joy in thee,\nI have no joy of this contract to-night:\nIt is too rash, too unadvised, too sudden;\nToo like the lightning, which doth cease to be\nEre one can say 'It lightens.' Sweet, good night!\nThis bud of love, by summer's ripening breath,\nMay prove a beauteous flower when next we meet.\nGood night, good night! as sweet repose and rest\nCome to thy heart as that within my breast!\nROMEO\nO, wilt thou leave me so unsatisfied?\nJULIET\nWhat satisfaction canst thou have to-night?\nROMEO\nThe exchange of thy love's faithful vow for mine.\nJULIET\nI gave thee mine before thou didst request it:\nAnd yet I would it were to give again.\nROMEO\nWouldst thou withdraw it? for what purpose, love?\nJULIET\nBut to be frank, and give it thee again.\nAnd yet I wish but for the thing I have:\nMy bounty is as boundless as the sea,\nMy love as deep; the more I give to thee,\nThe more I have, for both are infinite.\nNurse calls within\n\nI hear some noise within; dear love, adieu!\nAnon, good nurse! Sweet Montague, be true.\nStay but a little, I will come again.\nExit, above\n\nROMEO\nO blessed, blessed night! I am afeard.\nBeing in night, all this is but a dream,\nToo flattering-sweet to be substantial.\nRe-enter JULIET, above\n\nJULIET\nThree words, dear Romeo, and good night indeed.\nIf that thy bent of love be honourable,\nThy purpose marriage, send me word to-morrow,\nBy one that I'll procure to come to thee,\nWhere and what time thou wilt perform the rite;\nAnd all my fortunes at thy foot I'll lay\nAnd follow thee my lord throughout the world.\nNurse\n[Within] Madam!\nJULIET\nI come, anon.--But if thou mean'st not well,\nI do beseech thee--\nNurse\n[Within] Madam!\nJULIET\nBy and by, I come:--\nTo cease thy suit, and leave me to my grief:\nTo-morrow will I send.\nROMEO\nSo thrive my soul--\nJULIET\nA thousand times good night!\nExit, above\n\nROMEO\nA thousand times the worse, to want thy light.\nLove goes toward love, as schoolboys from\ntheir books,\nBut love from love, toward school with heavy looks.\nRetiring\n\nRe-enter JULIET, above\n\nJULIET\nHist! Romeo, hist! O, for a falconer's voice,\nTo lure this tassel-gentle back again!\nBondage is hoarse, and may not speak aloud;\nElse would I tear the cave where Echo lies,\nAnd make her airy tongue more hoarse than mine,\nWith repetition of my Romeo's name.\nROMEO\nIt is my soul that calls upon my name:\nHow silver-sweet sound lovers' tongues by night,\nLike softest music to attending ears!\nJULIET\nRomeo!\nROMEO\nMy dear?\nJULIET\nAt what o'clock to-morrow\nShall I send to thee?\nROMEO\nAt the hour of nine.\nJULIET\nI will not fail: 'tis twenty years till then.\nI have forgot why I did call thee back.\nROMEO\nLet me stand here till thou remember it.\nJULIET\nI shall forget, to have thee still stand there,\nRemembering how I love thy company.\nROMEO\nAnd I'll still stay, to have thee still forget,\nForgetting any other home but this.\nJULIET\n'Tis almost morning; I would have thee gone:\nAnd yet no further than a wanton's bird;\nWho lets it hop a little from her hand,\nLike a poor prisoner in his twisted gyves,\nAnd with a silk thread plucks it back again,\nSo loving-jealous of his liberty.\nROMEO\nI would I were thy bird.\nJULIET\nSweet, so would I:\nYet I should kill thee with much cherishing.\nGood night, good night! parting is such\nsweet sorrow,\nThat I shall say good night till it be morrow.\nExit above\n\nROMEO\nSleep dwell upon thine eyes, peace in thy breast!\nWould I were sleep and peace, so sweet to rest!\nHence will I to my ghostly father's cell,\nHis help to crave, and my dear hap to tell.\nExit\n\nSCENE III. Friar Laurence's cell.\n\nEnter FRIAR LAURENCE, with a basket\nFRIAR LAURENCE\nThe grey-eyed morn smiles on the frowning night,\nChequering the eastern clouds with streaks of light,\nAnd flecked darkness like a drunkard reels\nFrom forth day's path and Titan's fiery wheels:\nNow, ere the sun advance his burning eye,\nThe day to cheer and night's dank dew to dry,\nI must up-fill this osier cage of ours\nWith baleful weeds and precious-juiced flowers.\nThe earth that's nature's mother is her tomb;\nWhat is her burying grave that is her womb,\nAnd from her womb children of divers kind\nWe sucking on her natural bosom find,\nMany for many virtues excellent,\nNone but for some and yet all different.\nO, mickle is the powerful grace that lies\nIn herbs, plants, stones, and their true qualities:\nFor nought so vile that on the earth doth live\nBut to the earth some special good doth give,\nNor aught so good but strain'd from that fair use\nRevolts from true birth, stumbling on abuse:\nVirtue itself turns vice, being misapplied;\nAnd vice sometimes by action dignified.\nWithin the infant rind of this small flower\nPoison hath residence and medicine power:\nFor this, being smelt, with that part cheers each part;\nBeing tasted, slays all senses with the heart.\nTwo such opposed kings encamp them still\nIn man as well as herbs, grace and rude will;\nAnd where the worser is predominant,\nFull soon the canker death eats up that plant.\nEnter ROMEO\n\nROMEO\nGood morrow, father.\nFRIAR LAURENCE\nBenedicite!\nWhat early tongue so sweet saluteth me?\nYoung son, it argues a distemper'd head\nSo soon to bid good morrow to thy bed:\nCare keeps his watch in every old man's eye,\nAnd where care lodges, sleep will never lie;\nBut where unbruised youth with unstuff'd brain\nDoth couch his limbs, there golden sleep doth reign:\nTherefore thy earliness doth me assure\nThou art up-roused by some distemperature;\nOr if not so, then here I hit it right,\nOur Romeo hath not been in bed to-night.\nROMEO\nThat last is true; the sweeter rest was mine.\nFRIAR LAURENCE\nGod pardon sin! wast thou with Rosaline?\nROMEO\nWith Rosaline, my ghostly father? no;\nI have forgot that name, and that name's woe.\nFRIAR LAURENCE\nThat's my good son: but where hast thou been, then?\nROMEO\nI'll tell thee, ere thou ask it me again.\nI have been feasting with mine enemy,\nWhere on a sudden one hath wounded me,\nThat's by me wounded: both our remedies\nWithin thy help and holy physic lies:\nI bear no hatred, blessed man, for, lo,\nMy intercession likewise steads my foe.\nFRIAR LAURENCE\nBe plain, good son, and homely in thy drift;\nRiddling confession finds but riddling shrift.\nROMEO\nThen plainly know my heart's dear love is set\nOn the fair daughter of rich Capulet:\nAs mine on hers, so hers is set on mine;\nAnd all combined, save what thou must combine\nBy holy marriage: when and where and how\nWe met, we woo'd and made exchange of vow,\nI'll tell thee as we pass; but this I pray,\nThat thou consent to marry us to-day.\nFRIAR LAURENCE\nHoly Saint Francis, what a change is here!\nIs Rosaline, whom thou didst love so dear,\nSo soon forsaken? young men's love then lies\nNot truly in their hearts, but in their eyes.\nJesu Maria, what a deal of brine\nHath wash'd thy sallow cheeks for Rosaline!\nHow much salt water thrown away in waste,\nTo season love, that of it doth not taste!\nThe sun not yet thy sighs from heaven clears,\nThy old groans ring yet in my ancient ears;\nLo, here upon thy cheek the stain doth sit\nOf an old tear that is not wash'd off yet:\nIf e'er thou wast thyself and these woes thine,\nThou and these woes were all for Rosaline:\nAnd art thou changed? pronounce this sentence then,\nWomen may fall, when there's no strength in men.\nROMEO\nThou chid'st me oft for loving Rosaline.\nFRIAR LAURENCE\nFor doting, not for loving, pupil mine.\nROMEO\nAnd bad'st me bury love.\nFRIAR LAURENCE\nNot in a grave,\nTo lay one in, another out to have.\nROMEO\nI pray thee, chide not; she whom I love now\nDoth grace for grace and love for love allow;\nThe other did not so.\nFRIAR LAURENCE\nO, she knew well\nThy love did read by rote and could not spell.\nBut come, young waverer, come, go with me,\nIn one respect I'll thy assistant be;\nFor this alliance may so happy prove,\nTo turn your households' rancour to pure love.\nROMEO\nO, let us hence; I stand on sudden haste.\nFRIAR LAURENCE\nWisely and slow; they stumble that run fast.\nExeunt\n\nSCENE IV. A street.\n\nEnter BENVOLIO and MERCUTIO\nMERCUTIO\nWhere the devil should this Romeo be?\nCame he not home to-night?\nBENVOLIO\nNot to his father's; I spoke with his man.\nMERCUTIO\nAh, that same pale hard-hearted wench, that Rosaline.\nTorments him so, that he will sure run mad.\nBENVOLIO\nTybalt, the kinsman of old Capulet,\nHath sent a letter to his father's house.\nMERCUTIO\nA challenge, on my life.\nBENVOLIO\nRomeo will answer it.\nMERCUTIO\nAny man that can write may answer a letter.\nBENVOLIO\nNay, he will answer the letter's master, how he\ndares, being dared.\nMERCUTIO\nAlas poor Romeo! he is already dead; stabbed with a\nwhite wench's black eye; shot through the ear with a\nlove-song; the very pin of his heart cleft with the\nblind bow-boy's butt-shaft: and is he a man to\nencounter Tybalt?\nBENVOLIO\nWhy, what is Tybalt?\nMERCUTIO\nMore than prince of cats, I can tell you. O, he is\nthe courageous captain of compliments. He fights as\nyou sing prick-song, keeps time, distance, and\nproportion; rests me his minim rest, one, two, and\nthe third in your bosom: the very butcher of a silk\nbutton, a duellist, a duellist; a gentleman of the\nvery first house, of the first and second cause:\nah, the immortal passado! the punto reverso! the\nhai!\nBENVOLIO\nThe what?\nMERCUTIO\nThe pox of such antic, lisping, affecting\nfantasticoes; these new tuners of accents! 'By Jesu,\na very good blade! a very tall man! a very good\nwhore!' Why, is not this a lamentable thing,\ngrandsire, that we should be thus afflicted with\nthese strange flies, these fashion-mongers, these\nperdona-mi's, who stand so much on the new form,\nthat they cannot at ease on the old bench? O, their\nbones, their bones!\nEnter ROMEO\n\nBENVOLIO\nHere comes Romeo, here comes Romeo.\nMERCUTIO\nWithout his roe, like a dried herring: flesh, flesh,\nhow art thou fishified! Now is he for the numbers\nthat Petrarch flowed in: Laura to his lady was but a\nkitchen-wench; marry, she had a better love to\nbe-rhyme her; Dido a dowdy; Cleopatra a gipsy;\nHelen and Hero hildings and harlots; Thisbe a grey\neye or so, but not to the purpose. Signior\nRomeo, bon jour! there's a French salutation\nto your French slop. You gave us the counterfeit\nfairly last night.\nROMEO\nGood morrow to you both. What counterfeit did I give you?\nMERCUTIO\nThe ship, sir, the slip; can you not conceive?\nROMEO\nPardon, good Mercutio, my business was great; and in\nsuch a case as mine a man may strain courtesy.\nMERCUTIO\nThat's as much as to say, such a case as yours\nconstrains a man to bow in the hams.\nROMEO\nMeaning, to court'sy.\nMERCUTIO\nThou hast most kindly hit it.\nROMEO\nA most courteous exposition.\nMERCUTIO\nNay, I am the very pink of courtesy.\nROMEO\nPink for flower.\nMERCUTIO\nRight.\nROMEO\nWhy, then is my pump well flowered.\nMERCUTIO\nWell said: follow me this jest now till thou hast\nworn out thy pump, that when the single sole of it\nis worn, the jest may remain after the wearing sole singular.\nROMEO\nO single-soled jest, solely singular for the\nsingleness.\nMERCUTIO\nCome between us, good Benvolio; my wits faint.\nROMEO\nSwitch and spurs, switch and spurs; or I'll cry a match.\nMERCUTIO\nNay, if thy wits run the wild-goose chase, I have\ndone, for thou hast more of the wild-goose in one of\nthy wits than, I am sure, I have in my whole five:\nwas I with you there for the goose?\nROMEO\nThou wast never with me for any thing when thou wast\nnot there for the goose.\nMERCUTIO\nI will bite thee by the ear for that jest.\nROMEO\nNay, good goose, bite not.\nMERCUTIO\nThy wit is a very bitter sweeting; it is a most\nsharp sauce.\nROMEO\nAnd is it not well served in to a sweet goose?\nMERCUTIO\nO here's a wit of cheveril, that stretches from an\ninch narrow to an ell broad!\nROMEO\nI stretch it out for that word 'broad;' which added\nto the goose, proves thee far and wide a broad goose.\nMERCUTIO\nWhy, is not this better now than groaning for love?\nnow art thou sociable, now art thou Romeo; now art\nthou what thou art, by art as well as by nature:\nfor this drivelling love is like a great natural,\nthat runs lolling up and down to hide his bauble in a hole.\nBENVOLIO\nStop there, stop there.\nMERCUTIO\nThou desirest me to stop in my tale against the hair.\nBENVOLIO\nThou wouldst else have made thy tale large.\nMERCUTIO\nO, thou art deceived; I would have made it short:\nfor I was come to the whole depth of my tale; and\nmeant, indeed, to occupy the argument no longer.\nROMEO\nHere's goodly gear!\nEnter Nurse and PETER\n\nMERCUTIO\nA sail, a sail!\nBENVOLIO\nTwo, two; a shirt and a smock.\nNurse\nPeter!\nPETER\nAnon!\nNurse\nMy fan, Peter.\nMERCUTIO\nGood Peter, to hide her face; for her fan's the\nfairer face.\nNurse\nGod ye good morrow, gentlemen.\nMERCUTIO\nGod ye good den, fair gentlewoman.\nNurse\nIs it good den?\nMERCUTIO\n'Tis no less, I tell you, for the bawdy hand of the\ndial is now upon the prick of noon.\nNurse\nOut upon you! what a man are you!\nROMEO\nOne, gentlewoman, that God hath made for himself to\nmar.\nNurse\nBy my troth, it is well said; 'for himself to mar,'\nquoth a'? Gentlemen, can any of you tell me where I\nmay find the young Romeo?\nROMEO\nI can tell you; but young Romeo will be older when\nyou have found him than he was when you sought him:\nI am the youngest of that name, for fault of a worse.\nNurse\nYou say well.\nMERCUTIO\nYea, is the worst well? very well took, i' faith;\nwisely, wisely.\nNurse\nif you be he, sir, I desire some confidence with\nyou.\nBENVOLIO\nShe will indite him to some supper.\nMERCUTIO\nA bawd, a bawd, a bawd! so ho!\nROMEO\nWhat hast thou found?\nMERCUTIO\nNo hare, sir; unless a hare, sir, in a lenten pie,\nthat is something stale and hoar ere it be spent.\nSings\n\nAn old hare hoar,\nAnd an old hare hoar,\nIs very good meat in lent\nBut a hare that is hoar\nIs too much for a score,\nWhen it hoars ere it be spent.\nRomeo, will you come to your father's? we'll\nto dinner, thither.\nROMEO\nI will follow you.\nMERCUTIO\nFarewell, ancient lady; farewell,\nSinging\n\n'lady, lady, lady.'\nExeunt MERCUTIO and BENVOLIO\n\nNurse\nMarry, farewell! I pray you, sir, what saucy\nmerchant was this, that was so full of his ropery?\nROMEO\nA gentleman, nurse, that loves to hear himself talk,\nand will speak more in a minute than he will stand\nto in a month.\nNurse\nAn a' speak any thing against me, I'll take him\ndown, an a' were lustier than he is, and twenty such\nJacks; and if I cannot, I'll find those that shall.\nScurvy knave! I am none of his flirt-gills; I am\nnone of his skains-mates. And thou must stand by\ntoo, and suffer every knave to use me at his pleasure?\nPETER\nI saw no man use you a pleasure; if I had, my weapon\nshould quickly have been out, I warrant you: I dare\ndraw as soon as another man, if I see occasion in a\ngood quarrel, and the law on my side.\nNurse\nNow, afore God, I am so vexed, that every part about\nme quivers. Scurvy knave! Pray you, sir, a word:\nand as I told you, my young lady bade me inquire you\nout; what she bade me say, I will keep to myself:\nbut first let me tell ye, if ye should lead her into\na fool's paradise, as they say, it were a very gross\nkind of behavior, as they say: for the gentlewoman\nis young; and, therefore, if you should deal double\nwith her, truly it were an ill thing to be offered\nto any gentlewoman, and very weak dealing.\nROMEO\nNurse, commend me to thy lady and mistress. I\nprotest unto thee--\nNurse\nGood heart, and, i' faith, I will tell her as much:\nLord, Lord, she will be a joyful woman.\nROMEO\nWhat wilt thou tell her, nurse? thou dost not mark me.\nNurse\nI will tell her, sir, that you do protest; which, as\nI take it, is a gentlemanlike offer.\nROMEO\nBid her devise\nSome means to come to shrift this afternoon;\nAnd there she shall at Friar Laurence' cell\nBe shrived and married. Here is for thy pains.\nNurse\nNo truly sir; not a penny.\nROMEO\nGo to; I say you shall.\nNurse\nThis afternoon, sir? well, she shall be there.\nROMEO\nAnd stay, good nurse, behind the abbey wall:\nWithin this hour my man shall be with thee\nAnd bring thee cords made like a tackled stair;\nWhich to the high top-gallant of my joy\nMust be my convoy in the secret night.\nFarewell; be trusty, and I'll quit thy pains:\nFarewell; commend me to thy mistress.\nNurse\nNow God in heaven bless thee! Hark you, sir.\nROMEO\nWhat say'st thou, my dear nurse?\nNurse\nIs your man secret? Did you ne'er hear say,\nTwo may keep counsel, putting one away?\nROMEO\nI warrant thee, my man's as true as steel.\nNURSE\nWell, sir; my mistress is the sweetest lady--Lord,\nLord! when 'twas a little prating thing:--O, there\nis a nobleman in town, one Paris, that would fain\nlay knife aboard; but she, good soul, had as lief\nsee a toad, a very toad, as see him. I anger her\nsometimes and tell her that Paris is the properer\nman; but, I'll warrant you, when I say so, she looks\nas pale as any clout in the versal world. Doth not\nrosemary and Romeo begin both with a letter?\nROMEO\nAy, nurse; what of that? both with an R.\nNurse\nAh. mocker! that's the dog's name; R is for\nthe--No; I know it begins with some other\nletter:--and she hath the prettiest sententious of\nit, of you and rosemary, that it would do you good\nto hear it.\nROMEO\nCommend me to thy lady.\nNurse\nAy, a thousand times.\nExit Romeo\n\nPeter!\nPETER\nAnon!\nNurse\nPeter, take my fan, and go before and apace.\nExeunt\n\nSCENE V. Capulet's orchard.\n\nEnter JULIET\nJULIET\nThe clock struck nine when I did send the nurse;\nIn half an hour she promised to return.\nPerchance she cannot meet him: that's not so.\nO, she is lame! love's heralds should be thoughts,\nWhich ten times faster glide than the sun's beams,\nDriving back shadows over louring hills:\nTherefore do nimble-pinion'd doves draw love,\nAnd therefore hath the wind-swift Cupid wings.\nNow is the sun upon the highmost hill\nOf this day's journey, and from nine till twelve\nIs three long hours, yet she is not come.\nHad she affections and warm youthful blood,\nShe would be as swift in motion as a ball;\nMy words would bandy her to my sweet love,\nAnd his to me:\nBut old folks, many feign as they were dead;\nUnwieldy, slow, heavy and pale as lead.\nO God, she comes!\nEnter Nurse and PETER\n\nO honey nurse, what news?\nHast thou met with him? Send thy man away.\nNurse\nPeter, stay at the gate.\nExit PETER\n\nJULIET\nNow, good sweet nurse,--O Lord, why look'st thou sad?\nThough news be sad, yet tell them merrily;\nIf good, thou shamest the music of sweet news\nBy playing it to me with so sour a face.\nNurse\nI am a-weary, give me leave awhile:\nFie, how my bones ache! what a jaunt have I had!\nJULIET\nI would thou hadst my bones, and I thy news:\nNay, come, I pray thee, speak; good, good nurse, speak.\nNurse\nJesu, what haste? can you not stay awhile?\nDo you not see that I am out of breath?\nJULIET\nHow art thou out of breath, when thou hast breath\nTo say to me that thou art out of breath?\nThe excuse that thou dost make in this delay\nIs longer than the tale thou dost excuse.\nIs thy news good, or bad? answer to that;\nSay either, and I'll stay the circumstance:\nLet me be satisfied, is't good or bad?\nNurse\nWell, you have made a simple choice; you know not\nhow to choose a man: Romeo! no, not he; though his\nface be better than any man's, yet his leg excels\nall men's; and for a hand, and a foot, and a body,\nthough they be not to be talked on, yet they are\npast compare: he is not the flower of courtesy,\nbut, I'll warrant him, as gentle as a lamb. Go thy\nways, wench; serve God. What, have you dined at home?\nJULIET\nNo, no: but all this did I know before.\nWhat says he of our marriage? what of that?\nNurse\nLord, how my head aches! what a head have I!\nIt beats as it would fall in twenty pieces.\nMy back o' t' other side,--O, my back, my back!\nBeshrew your heart for sending me about,\nTo catch my death with jaunting up and down!\nJULIET\nI' faith, I am sorry that thou art not well.\nSweet, sweet, sweet nurse, tell me, what says my love?\nNurse\nYour love says, like an honest gentleman, and a\ncourteous, and a kind, and a handsome, and, I\nwarrant, a virtuous,--Where is your mother?\nJULIET\nWhere is my mother! why, she is within;\nWhere should she be? How oddly thou repliest!\n'Your love says, like an honest gentleman,\nWhere is your mother?'\nNurse\nO God's lady dear!\nAre you so hot? marry, come up, I trow;\nIs this the poultice for my aching bones?\nHenceforward do your messages yourself.\nJULIET\nHere's such a coil! come, what says Romeo?\nNurse\nHave you got leave to go to shrift to-day?\nJULIET\nI have.\nNurse\nThen hie you hence to Friar Laurence' cell;\nThere stays a husband to make you a wife:\nNow comes the wanton blood up in your cheeks,\nThey'll be in scarlet straight at any news.\nHie you to church; I must another way,\nTo fetch a ladder, by the which your love\nMust climb a bird's nest soon when it is dark:\nI am the drudge and toil in your delight,\nBut you shall bear the burden soon at night.\nGo; I'll to dinner: hie you to the cell.\nJULIET\nHie to high fortune! Honest nurse, farewell.\nExeunt\n\nSCENE VI. Friar Laurence's cell.\n\nEnter FRIAR LAURENCE and ROMEO\nFRIAR LAURENCE\nSo smile the heavens upon this holy act,\nThat after hours with sorrow chide us not!\nROMEO\nAmen, amen! but come what sorrow can,\nIt cannot countervail the exchange of joy\nThat one short minute gives me in her sight:\nDo thou but close our hands with holy words,\nThen love-devouring death do what he dare;\nIt is enough I may but call her mine.\nFRIAR LAURENCE\nThese violent delights have violent ends\nAnd in their triumph die, like fire and powder,\nWhich as they kiss consume: the sweetest honey\nIs loathsome in his own deliciousness\nAnd in the taste confounds the appetite:\nTherefore love moderately; long love doth so;\nToo swift arrives as tardy as too slow.\nEnter JULIET\n\nHere comes the lady: O, so light a foot\nWill ne'er wear out the everlasting flint:\nA lover may bestride the gossamer\nThat idles in the wanton summer air,\nAnd yet not fall; so light is vanity.\nJULIET\nGood even to my ghostly confessor.\nFRIAR LAURENCE\nRomeo shall thank thee, daughter, for us both.\nJULIET\nAs much to him, else is his thanks too much.\nROMEO\nAh, Juliet, if the measure of thy joy\nBe heap'd like mine and that thy skill be more\nTo blazon it, then sweeten with thy breath\nThis neighbour air, and let rich music's tongue\nUnfold the imagined happiness that both\nReceive in either by this dear encounter.\nJULIET\nConceit, more rich in matter than in words,\nBrags of his substance, not of ornament:\nThey are but beggars that can count their worth;\nBut my true love is grown to such excess\nI cannot sum up sum of half my wealth.\nFRIAR LAURENCE\nCome, come with me, and we will make short work;\nFor, by your leaves, you shall not stay alone\nTill holy church incorporate two in one.\nExeunt\n\nACT III\n\nSCENE I. A public place.\n\nEnter MERCUTIO, BENVOLIO, Page, and Servants\nBENVOLIO\nI pray thee, good Mercutio, let's retire:\nThe day is hot, the Capulets abroad,\nAnd, if we meet, we shall not scape a b",
        "link": "https://taliwutblog.wordpress.com/2014/01/02/romeo/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/02/romeo/",
        "post_status": "publish",
        "postid": "261",
        "title": "Romeo",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "romeo"
    },
    {
        "categories": [
            "bitcoin"
        ],
        "custom_fields": [
            {
                "id": "1104",
                "key": "jabber_published",
                "value": "1388660489"
            }
        ],
        "dateCreated": "Jan 2, 2014 11:01:28 AM",
        "date_created_gmt": "Jan 2, 2014 11:01:28 AM",
        "date_modified": "Jan 2, 2014 11:01:28 AM",
        "date_modified_gmt": "Jan 2, 2014 11:01:28 AM",
        "description": "oh yeah #bitcoin !",
        "link": "https://taliwutblog.wordpress.com/2014/01/02/bitcoin/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "bitcoin",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2014/01/02/bitcoin/",
        "post_status": "publish",
        "postid": "259",
        "title": "Bitcoin",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "bitcoin"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1098",
                "key": "geo_latitude",
                "value": "48.8428791"
            },
            {
                "id": "1099",
                "key": "geo_longitude",
                "value": "2.3055229"
            },
            {
                "id": "1100",
                "key": "geo_public",
                "value": "1"
            }
        ],
        "dateCreated": "Dec 27, 2013 10:56:33 AM",
        "date_created_gmt": "Dec 27, 2013 10:56:33 AM",
        "date_modified": "Dec 27, 2013 10:57:19 AM",
        "date_modified_gmt": "Dec 27, 2013 10:57:19 AM",
        "description": "Gghh",
        "link": "https://taliwutblog.wordpress.com/2013/12/27/gghh/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "hhyhg, jjhb",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2013/12/27/gghh/",
        "post_status": "private",
        "postid": "256",
        "title": "Gghh",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "standard",
        "wp_post_thumbnail": "",
        "wp_slug": "gghh"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1088",
                "key": "geo_latitude",
                "value": "48.8429192"
            },
            {
                "id": "1089",
                "key": "geo_longitude",
                "value": "2.3055496"
            },
            {
                "id": "1090",
                "key": "geo_public",
                "value": "1"
            },
            {
                "id": "1092",
                "key": "jabber_published",
                "value": "1388141763"
            }
        ],
        "dateCreated": "Dec 27, 2013 10:56:02 AM",
        "date_created_gmt": "Dec 27, 2013 10:56:02 AM",
        "date_modified": "Dec 27, 2013 10:56:03 AM",
        "date_modified_gmt": "Dec 27, 2013 10:56:03 AM",
        "description": "<a href=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg\"><img title=\"wp-1388141726961\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg\" /></a>",
        "link": "https://taliwutblog.wordpress.com/2013/12/27/254/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2013/12/27/254/",
        "post_status": "publish",
        "postid": "254",
        "title": "",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "image",
        "wp_post_thumbnail": "",
        "wp_slug": "254"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1027",
                "key": "jabber_published",
                "value": "1387524751"
            }
        ],
        "dateCreated": "Dec 20, 2013 7:32:31 AM",
        "date_created_gmt": "Dec 20, 2013 7:32:31 AM",
        "date_modified": "Dec 26, 2013 2:52:12 PM",
        "date_modified_gmt": "Dec 26, 2013 2:52:12 PM",
        "description": "<a href=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1387524739322.gif\"><img title=\"wp-1387524739322\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1387524739322.gif\" /></a>",
        "link": "https://taliwutblog.wordpress.com/2013/12/20/pony-2/",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/2013/12/20/pony-2/",
        "post_status": "private",
        "postid": "234",
        "title": "Pony",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "image",
        "wp_post_thumbnail": "",
        "wp_slug": "pony-2"
    },
    {
        "categories": [
            "Uncategorized"
        ],
        "custom_fields": [
            {
                "id": "1016",
                "key": "jabber_published",
                "value": "1387524660"
            }
        ],
        "dateCreated": "Dec 20, 2013 7:31:00 AM",
        "date_created_gmt": "Dec 20, 2013 7:31:00 AM",
        "date_modified": "Dec 26, 2013 2:52:57 PM",
        "date_modified_gmt": "Dec 26, 2013 2:52:57 PM",
        "description": "<a href=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif\"><img title=\"9117 - animated_gif derpy_hooves mailbox my_little_pony_friendship_is_magic tagme.gif\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif\" /></a>",
        "link": "https://taliwutblog.wordpress.com/?p=230",
        "mt_allow_comments": 1,
        "mt_allow_pings": 1,
        "mt_excerpt": "",
        "mt_keywords": "",
        "mt_text_more": "",
        "permaLink": "https://taliwutblog.wordpress.com/?p=230",
        "post_status": "pending",
        "postid": "230",
        "title": "Gif test",
        "userid": "55434822",
        "wp_author_display_name": "taliwutt",
        "wp_author_id": "55434822",
        "wp_more_text": "",
        "wp_password": "",
        "wp_post_format": "image",
        "wp_post_thumbnail": "",
        "wp_slug": "gif-test"
    }
]
