
// {{{
const string TD1 = """
{
  "created_at" : "Mon May 05 06:48:32 +0000 2014",
  "id" : 463208606784311296,
  "id_str" : "463208606784311296",
  "text" : "RT @BlackForestTeam: DIESELSTÖRMERS Kickstarter is live! - Go and check it out right now!... http://t.co/ZVmefc0w5e",
  "source" : "web",
  "truncated" : false,
  "in_reply_to_status_id" : null,
  "in_reply_to_status_id_str" : null,
  "in_reply_to_user_id" : null,
  "in_reply_to_user_id_str" : null,
  "in_reply_to_screen_name" : null,
  "user" : {
    "id" : 62574927,
    "id_str" : "62574927",
    "name" : "Frozenbyte",
    "screen_name" : "Frozenbyte",
    "location" : "Helsinki, Finland",
    "description" : "We're an independent game developer. Follow us on Twitter to get the latest news on our games! For support issues please get in touch via email.",
    "url" : "http://t.co/NlgW9k9ZXj",
    "entities" : {
      "url" : {
        "urls" : [
          {
            "url" : "http://t.co/NlgW9k9ZXj",
            "expanded_url" : "http://www.frozenbyte.com",
            "display_url" : "frozenbyte.com",
            "indices" : [
              0,
              22
            ]
          }
        ]
      },
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : false,
    "followers_count" : 5682,
    "friends_count" : 137,
    "listed_count" : 242,
    "created_at" : "Mon Aug 03 17:52:07 +0000 2009",
    "favourites_count" : 233,
    "utc_offset" : 10800,
    "time_zone" : "Helsinki",
    "geo_enabled" : false,
    "verified" : false,
    "statuses_count" : 1042,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "000000",
    "profile_background_image_url" : "http://pbs.twimg.com/profile_background_images/378800000117103508/abe5a14a1f3b0b78e9038e73bf6b812d.jpeg",
    "profile_background_image_url_https" : "https://pbs.twimg.com/profile_background_images/378800000117103508/abe5a14a1f3b0b78e9038e73bf6b812d.jpeg",
    "profile_background_tile" : false,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/1130292729/fb_newlogo_black480_normal.png",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/1130292729/fb_newlogo_black480_normal.png",
    "profile_link_color" : "CBA051",
    "profile_sidebar_border_color" : "000000",
    "profile_sidebar_fill_color" : "D4802D",
    "profile_text_color" : "4A2500",
    "profile_use_background_image" : true,
    "default_profile" : false,
    "default_profile_image" : false,
    "following" : true,
    "follow_request_sent" : false,
    "notifications" : false
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "retweeted_status" : {
    "created_at" : "Tue Apr 29 11:00:25 +0000 2014",
    "id" : 461097667775725569,
    "id_str" : "461097667775725569",
    "text" : "DIESELSTÖRMERS Kickstarter is live! - Go and check it out right now!... http://t.co/ZVmefc0w5e",
    "source" : "<a href=\"http://www.tumblr.com/\" rel=\"nofollow\">Tumblr</a>",
    "truncated" : false,
    "in_reply_to_status_id" : null,
    "in_reply_to_status_id_str" : null,
    "in_reply_to_user_id" : null,
    "in_reply_to_user_id_str" : null,
    "in_reply_to_screen_name" : null,
    "user" : {
      "id" : 726763934,
      "id_str" : "726763934",
      "name" : "Black Forest Games",
      "screen_name" : "BlackForestTeam",
      "location" : "Offenburg",
      "description" : "South-german team that brought you Giana Sisters: Twisted Dreams",
      "url" : "http://t.co/BXuCnqlX50",
      "entities" : {
        "url" : {
          "urls" : [
            {
              "url" : "http://t.co/BXuCnqlX50",
              "expanded_url" : "http://gianasisterstwisteddreams.com",
              "display_url" : "gianasisterstwisteddreams.com",
              "indices" : [
                0,
                22
              ]
            }
          ]
        },
        "description" : {
          "urls" : [
          ]
        }
      },
      "protected" : false,
      "followers_count" : 1145,
      "friends_count" : 308,
      "listed_count" : 35,
      "created_at" : "Mon Jul 30 20:11:50 +0000 2012",
      "favourites_count" : 116,
      "utc_offset" : 7200,
      "time_zone" : "Amsterdam",
      "geo_enabled" : false,
      "verified" : false,
      "statuses_count" : 1475,
      "lang" : "en",
      "contributors_enabled" : false,
      "is_translator" : false,
      "is_translation_enabled" : false,
      "profile_background_color" : "C0DEED",
      "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_tile" : false,
      "profile_image_url" : "http://pbs.twimg.com/profile_images/3694489354/ed399e59260bf71b10235dcd7eb56fe5_normal.png",
      "profile_image_url_https" : "https://pbs.twimg.com/profile_images/3694489354/ed399e59260bf71b10235dcd7eb56fe5_normal.png",
      "profile_banner_url" : "https://pbs.twimg.com/profile_banners/726763934/1369154494",
      "profile_link_color" : "0084B4",
      "profile_sidebar_border_color" : "C0DEED",
      "profile_sidebar_fill_color" : "DDEEF6",
      "profile_text_color" : "333333",
      "profile_use_background_image" : true,
      "default_profile" : true,
      "default_profile_image" : false,
      "following" : false,
      "follow_request_sent" : false,
      "notifications" : false
    },
    "geo" : null,
    "coordinates" : null,
    "place" : null,
    "contributors" : null,
    "retweet_count" : 6,
    "favorite_count" : 2,
    "entities" : {
      "hashtags" : [
      ],
      "symbols" : [
      ],
      "urls" : [
        {
          "url" : "http://t.co/ZVmefc0w5e",
          "expanded_url" : "http://tmblr.co/ZTqD4s1ERcDZg",
          "display_url" : "tmblr.co/ZTqD4s1ERcDZg",
          "indices" : [
            72,
            94
          ]
        }
      ],
      "user_mentions" : [
      ]
    },
    "favorited" : false,
    "retweeted" : false,
    "possibly_sensitive" : false,
    "lang" : "en"
  },
  "retweet_count" : 6,
  "favorite_count" : 0,
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "urls" : [
      {
        "url" : "http://t.co/ZVmefc0w5e",
        "expanded_url" : "http://tmblr.co/ZTqD4s1ERcDZg",
        "display_url" : "tmblr.co/ZTqD4s1ERcDZg",
        "indices" : [
          93,
          115
        ]
      }
    ],
    "user_mentions" : [
      {
        "screen_name" : "BlackForestTeam",
        "name" : "Black Forest Games",
        "id" : 726763934,
        "id_str" : "726763934",
        "indices" : [
          3,
          19
        ]
      }
    ]
  },
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : false,
  "lang" : "en"
}""";


const string TD2 =
"""
{
  "created_at": "Tue Apr 29 00:50:10 +0000 2014",
  "id": 460944092554227713,
  "id_str": "460944092554227713",
  "text": "Combined. http:\/\/t.co\/fFJqqT1A4j",
  "source": "\u003ca href=\"http:\/\/twitter.com\/geekculturejam\" rel=\"nofollow\"\u003eCultureJam\u003c\/a\u003e",
  "truncated": false,
  "in_reply_to_status_id": null,
  "in_reply_to_status_id_str": null,
  "in_reply_to_user_id": null,
  "in_reply_to_user_id_str": null,
  "in_reply_to_screen_name": null,
  "user": {
    "id": 657693,
    "id_str": "657693",
    "screen_name": "FOOBAR",
    "name": "Foo Bar",
    "profile_image_url" : "http://pbs.twimg.com/profile_images/3694489354/ed399e59260bf71b10235dcd7eb56fe5_normal.png",
    "verified" : false
  },
  "geo": null,
  "coordinates": null,
  "place": null,
  "contributors": null,
  "retweet_count": 0,
  "favorite_count": 0,
  "entities": {
    "hashtags": [],
    "symbols": [],
    "urls": [],
    "user_mentions": [],
    "media": []
  },
  "extended_entities": {
    "media": [
      {
        "id": 460938773744717825,
        "id_str": "460938773744717825",
        "indices": [
          10,
          32
        ],
        "media_url": "http:\/\/pbs.twimg.com\/media\/BmWVX2BCEAEx4MK.jpg",
        "media_url_https": "https:\/\/pbs.twimg.com\/media\/BmWVX2BCEAEx4MK.jpg",
        "url": "http:\/\/t.co\/fFJqqT1A4j",
        "display_url": "pic.twitter.com\/fFJqqT1A4j",
        "expanded_url": "http:\/\/twitter.com\/froginthevalley\/status\/460944092554227713\/photo\/1",
        "type": "photo",
        "sizes": {
          "medium": {
            "w": 599,
            "h": 397,
            "resize": "fit"
          },
          "thumb": {
            "w": 150,
            "h": 150,
            "resize": "crop"
          },
          "small": {
            "w": 340,
            "h": 225,
            "resize": "fit"
          },
          "large": {
            "w": 1023,
            "h": 678,
            "resize": "fit"
          }
        }
      },
      {
        "id": 460938635315916,
        "indices": [
          10,
          32
        ],
        "media_url": "http:\/\/pbs.twimg.com\/media\/BmWVPyVCMAAeAwI.jpg",
        "media_url_https": "https:\/\/pbs.twimg.com\/media\/BmWVPyVCMAAeAwI.jpg",
        "url": "http:\/\/t.co\/fFJqqT1A4j",
        "display_url": "pic.twitter.com\/fFJqqT1A4j",
        "expanded_url": "http:\/\/twitter.com\/froginthevalley\/status\/460944092554227713\/photo\/1",
        "type": "photo",
        "sizes": {
          "medium": {
            "w": 600,
            "h": 600,
            "resize": "fit"
          },
          "thumb": {
            "w": 150,
            "h": 150,
            "resize": "crop"
          },
          "large": {
            "w": 1024,
            "h": 1024,
            "resize": "fit"
          },
          "small": {
            "w": 340,
            "h": 340,
            "resize": "fit"
          }
        }
      }
    ]
  },
  "favorited": false,
  "retweeted": false,
  "possibly_sensitive": false,
  "lang": "en"
}
""";

const string TD3 =
"""
{
  "created_at" : "Thu Jun 12 19:34:16 +0000 2014",
  "id" : 477172048427765760,
  "id_str" : "477172048427765760",
  "text" : "http://t.co/ZGX7b9YGiU http://t.co/6hfxg0TPyt",
  "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
  "truncated" : false,
  "in_reply_to_status_id" : null,
  "in_reply_to_status_id_str" : null,
  "in_reply_to_user_id" : null,
  "in_reply_to_user_id_str" : null,
  "in_reply_to_screen_name" : null,
  "user" : {
    "id" : 993713617,
    "id_str" : "993713617",
    "name" : "Core Bird",
    "screen_name" : "corebirdgtk",
    "location" : "",
    "description" : "",
    "url" : null,
    "entities" : {
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : true,
    "followers_count" : 1,
    "friends_count" : 6,
    "listed_count" : 0,
    "created_at" : "Thu Dec 06 19:47:16 +0000 2012",
    "favourites_count" : 12,
    "utc_offset" : 7200,
    "time_zone" : "Amsterdam",
    "geo_enabled" : false,
    "verified" : false,
    "statuses_count" : 537,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "C0DEED",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_tile" : false,
    "profile_image_url" : "http://abs.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
    "profile_image_url_https" : "https://abs.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
    "profile_link_color" : "0084B4",
    "profile_sidebar_border_color" : "C0DEED",
    "profile_sidebar_fill_color" : "DDEEF6",
    "profile_text_color" : "333333",
    "profile_use_background_image" : true,
    "default_profile" : true,
    "default_profile_image" : true,
    "following" : true,
    "follow_request_sent" : false,
    "notifications" : false
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "retweet_count" : 0,
  "favorite_count" : 0,
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "urls" : [
      {
        "url" : "http://t.co/ZGX7b9YGiU",
        "expanded_url" : "http://i.imgur.com/kgrtCf0.png",
        "display_url" : "i.imgur.com/kgrtCf0.png",
        "indices" : [
          0,
          22
        ]
      },
      {
        "url" : "http://t.co/6hfxg0TPyt",
        "expanded_url" : "http://i.imgur.com/xqmzPar.gif",
        "display_url" : "i.imgur.com/xqmzPar.gif",
        "indices" : [
          23,
          45
        ]
      }
    ],
    "user_mentions" : [
    ]
  },
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : false,
  "lang" : "und"
}
""";


const string TD4 =
"""
{
  "created_at" : "Thu Jun 12 19:34:16 +0000 2014",
  "id" : 477172048465760,
  "id_str" : "477172048427765760",
  "text" : "http://t.co/ZGX7b9YGiU http://t.co/6hfxg0TPyt",
  "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
  "truncated" : false,
  "in_reply_to_status_id" : null,
  "in_reply_to_status_id_str" : null,
  "in_reply_to_user_id" : null,
  "in_reply_to_user_id_str" : null,
  "in_reply_to_screen_name" : null,
  "user" : {
    "id" : 993713617,
    "id_str" : "993713617",
    "name" : "Core Bird",
    "screen_name" : "corebirdgtk",
    "location" : "",
    "description" : "",
    "url" : null,
    "entities" : {
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : true,
    "followers_count" : 1,
    "friends_count" : 6,
    "listed_count" : 0,
    "created_at" : "Thu Dec 06 19:47:16 +0000 2012",
    "favourites_count" : 12,
    "utc_offset" : 7200,
    "time_zone" : "Amsterdam",
    "geo_enabled" : false,
    "verified" : false,
    "statuses_count" : 537,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "C0DEED",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_tile" : false,
    "profile_image_url" : "http://abs.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
    "profile_image_url_https" : "https://abs.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
    "profile_link_color" : "0084B4",
    "profile_sidebar_border_color" : "C0DEED",
    "profile_sidebar_fill_color" : "DDEEF6",
    "profile_text_color" : "333333",
    "profile_use_background_image" : true,
    "default_profile" : true,
    "default_profile_image" : true,
    "following" : true,
    "follow_request_sent" : false,
    "notifications" : false
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "retweet_count" : 0,
  "favorite_count" : 0,
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "urls" : [
      {
        "url" : "http://t.co/ZGX7b9YGiU",
        "expanded_url" : "http://i.imgur.com/kgrtCf0.png",
        "display_url" : "i.imgur.com/kgrtCf0.png",
        "indices" : [
          0,
          22
        ]
      },
      {
        "url" : "http://t.co/6hfxg0TPyt",
        "expanded_url" : "http://i.imgur.com/xqmzPar.gif",
        "display_url" : "i.imgur.com/xqmzPar.gif",
        "indices" : [
          23,
          45
        ]
      }
    ],
    "user_mentions" : [
    ]
  },
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : false,
  "lang" : "und",
  "extended_entities": {
    "media": [
      {
        "id": 460938773744717,
        "media_url": "http:\/\/pbs.twimg.com\/media\/BmWVX2BCEAEx4MK.jpg",
        "media_url_https": "https:\/\/pbs.twimg.com\/media\/BmWVX2BCEAEx4MK.jpg",
        "url": "http:\/\/t.co\/fFJqqT1A4j",
        "display_url": "pic.twitter.com\/fFJqqT1A4j",
        "expanded_url": "http:\/\/twitter.com\/froginthevalley\/status\/460944092554227713\/photo\/1",
        "type": "photo"
      },
      {
        "id": 460938615916800,
        "media_url": "http:\/\/pbs.twimg.com\/media\/BmWVPyVCMAAeAwI.jpg",
        "media_url_https": "https:\/\/pbs.twimg.com\/media\/BmWVPyVCMAAeAwI.jpg",
        "url": "http:\/\/t.co\/fFJqqT1A4j",
        "display_url": "pic.twitter.com\/fFJqqT1A4j",
        "expanded_url": "http:\/\/twitter.com\/froginthevalley\/status\/460944092554227713\/photo\/1",
        "type": "photo"
      }
    ]

  }
}
""";
// """

const string TD5 =  """
{ "created_at":"Fri Sep 30 16:45:16 +0000 2016", "id":781897715399532544, "id_str":"781897715399532544", "text":"RT @oscaron: Okay folks! I\|ve decided to donate all profits from the #400LBHACKER shirt to @Hak4Kidz and @EFF \n\nPlease RT!\u2026 ", "source":"Corebird\u003c\/a\u003e", "truncated":false, "in_reply_to_status_id":null, "in_reply_to_status_id_str":null, "in_reply_to_user_id":null, "in_reply_to_user_id_str":null, "in_reply_to_screen_name":null, "user":{ "id":993713617, "id_str":"993713617", "name":"Core & Bird", "screen_name":"corebirdgtk", "location":null, "url":null, "description":null, "protected":true, "verified":false, "followers_count":3, "friends_count":4, "listed_count":0, "favourites_count":9, "statuses_count":845, "created_at":"Thu Dec 06 19:47:16 +0000 2012", "utc_offset":7200, "time_zone":"Amsterdam", "geo_enabled":false, "lang":"en", "contributors_enabled":false, "is_translator":false, "profile_background_color":"C0DEED", "profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", "profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", "profile_background_tile":false, "profile_link_color":"0084B4", "profile_sidebar_border_color":"C0DEED", "profile_sidebar_fill_color":"DDEEF6", "profile_text_color":"333333", "profile_use_background_image":true, "profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/655270693341417472\/h6BbZKJy_normal.png", "profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/655270693341417472\/h6BbZKJy_normal.png", "profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993713617\/1413106147", "default_profile":true, "default_profile_image":false, "following":null, "follow_request_sent":null, "notifications":null }, "geo":null, "coordinates":null, "place":null, "contributors":null, "retweeted_status":{ "created_at":"Wed Sep 28 14:23:49 +0000 2016", "id":781137340962004992, "id_str":"781137340962004992", "text":"Okay folks! I\|ve decided to donate all profits from the #400LBHACKER shirt to @Hak4Kidz and @EFF \n\nPlease RT!\u2026 https:\/\/t.co\/V2vE2q8ol0", "display_text_range":[ 0, 140 ], "source":"\u003ca href=\"https:\/\/about.twitter.com\/products\/tweetdeck\" rel=\"nofollow\"\u003eTweetDeck\u003c\/a\u003e", "truncated":true, "in_reply_to_status_id":null, "in_reply_to_status_id_str":null, "in_reply_to_user_id":null, "in_reply_to_user_id_str":null, "in_reply_to_screen_name":null, "user":{ "id":16156052, "id_str":"16156052", "name":"Oscaron \u2615", "screen_name":"oscaron", "location":"Galactic Sector ZZ9 Plural Z A", "url":"http:\/\/goo.gl\/skGJRQ", "description":"Tech Alchemist, Infosec Enthusiast. NOT a \|Cybersecurity Expert\|. My views = My views. Trigger warnings: ALL. All stories exaggerated.", "protected":false, "verified":false, "followers_count":1391, "friends_count":762, "listed_count":105, "favourites_count":18359, "statuses_count":49369, "created_at":"Sat Sep 06 12:36:08 +0000 2008", "utc_offset":-14400, "time_zone":"Eastern Time (US & Canada)", "geo_enabled":false, "lang":"en", "contributors_enabled":false, "is_translator":false, "profile_background_color":"131516", "profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif", "profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif", "profile_background_tile":true, "profile_link_color":"5E2F00", "profile_sidebar_border_color":"FFFFFF", "profile_sidebar_fill_color":"EFEFEF", "profile_text_color":"333333", "profile_use_background_image":true, "profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/773567191832821761\/2ndP1v95_normal.jpg", "profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/773567191832821761\/2ndP1v95_normal.jpg", "profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/16156052\/1404228988", "default_profile":false, "default_profile_image":false, "following":null, "follow_request_sent":null, "notifications":null }, "geo":null, "coordinates":null, "place":null, "contributors":null, "is_quote_status":false, "extended_tweet":{ "full_text":"Okay folks! I\|ve decided to donate all profits from the #400LBHACKER shirt to @Hak4Kidz and @EFF \n\nPlease RT!\n\nhttps:\/\/t.co\/AP7qFSdYp0 https:\/\/t.co\/WtprxUumEE", "display_text_range":[ 0, 134 ], "entities":{ "hashtags":[ { "text":"400LBHACKER", "indices":[ 56, 68 ] } ], "urls":[ { "url":"https:\/\/t.co\/AP7qFSdYp0", "expanded_url":"https:\/\/teespring.com\/400lbhacker#pid=2&cid=2397&sid=front", "display_url":"teespring.com\/400lbhacker#pi\u2026", "indices":[ 111, 134 ] } ], "user_mentions":[ { "screen_name":"Hak4Kidz", "name":"Hak4Kidz", "id":2262322964, "id_str":"2262322964", "indices":[ 78, 87 ] }, { "screen_name":"EFF", "name":"EFF", "id":4816, "id_str":"4816", "indices":[ 92, 96 ] } ], "symbols":[ ], "media":[ { "id":781137070484054016, "id_str":"781137070484054016", "indices":[ 135, 158 ], "media_url":"http:\/\/pbs.twimg.com\/media\/CtcoBucXYAAs4rs.jpg", "media_url_https":"https:\/\/pbs.twimg.com\/media\/CtcoBucXYAAs4rs.jpg", "url":"https:\/\/t.co\/WtprxUumEE", "display_url":"pic.twitter.com\/WtprxUumEE", "expanded_url":"https:\/\/twitter.com\/oscaron\/status\/781137340962004992\/photo\/1", "type":"photo", "sizes":{ "medium":{ "w":480, "h":571, "resize":"fit" }, "large":{ "w":480, "h":571, "resize":"fit" }, "thumb":{ "w":150, "h":150, "resize":"crop" }, "small":{ "w":480, "h":571, "resize":"fit" } } }, { "id":781137082697805824, "id_str":"781137082697805824", "indices":[ 135, 158 ], "media_url":"http:\/\/pbs.twimg.com\/media\/CtcoCb8WcAATK4y.jpg", "media_url_https":"https:\/\/pbs.twimg.com\/media\/CtcoCb8WcAATK4y.jpg", "url":"https:\/\/t.co\/WtprxUumEE", "display_url":"pic.twitter.com\/WtprxUumEE", "expanded_url":"https:\/\/twitter.com\/oscaron\/status\/781137340962004992\/photo\/1", "type":"photo", "sizes":{ "medium":{ "w":480, "h":571, "resize":"fit" }, "large":{ "w":480, "h":571, "resize":"fit" }, "thumb":{ "w":150, "h":150, "resize":"crop" }, "small":{ "w":480, "h":571, "resize":"fit" } } } ] }, "extended_entities":{ "media":[ { "id":781137070484054016, "id_str":"781137070484054016", "indices":[ 135, 158 ], "media_url":"http:\/\/pbs.twimg.com\/media\/CtcoBucXYAAs4rs.jpg", "media_url_https":"https:\/\/pbs.twimg.com\/media\/CtcoBucXYAAs4rs.jpg", "url":"https:\/\/t.co\/WtprxUumEE", "display_url":"pic.twitter.com\/WtprxUumEE", "expanded_url":"https:\/\/twitter.com\/oscaron\/status\/781137340962004992\/photo\/1", "type":"photo", "sizes":{ "medium":{ "w":480, "h":571, "resize":"fit" }, "large":{ "w":480, "h":571, "resize":"fit" }, "thumb":{ "w":150, "h":150, "resize":"crop" }, "small":{ "w":480, "h":571, "resize":"fit" } } }, { "id":781137082697805824, "id_str":"781137082697805824", "indices":[ 135, 158 ], "media_url":"http:\/\/pbs.twimg.com\/media\/CtcoCb8WcAATK4y.jpg", "media_url_https":"https:\/\/pbs.twimg.com\/media\/CtcoCb8WcAATK4y.jpg", "url":"https:\/\/t.co\/WtprxUumEE", "display_url":"pic.twitter.com\/WtprxUumEE", "expanded_url":"https:\/\/twitter.com\/oscaron\/status\/781137340962004992\/photo\/1", "type":"photo", "sizes":{ "medium":{ "w":480, "h":571, "resize":"fit" }, "large":{ "w":480, "h":571, "resize":"fit" }, "thumb":{ "w":150, "h":150, "resize":"crop" }, "small":{ "w":480, "h":571, "resize":"fit" } } } ] } }, "retweet_count":355, "favorite_count":308, "entities":{ "hashtags":[ { "text":"400LBHACKER", "indices":[ 56, 68 ] } ], "urls":[ { "url":"https:\/\/t.co\/V2vE2q8ol0", "expanded_url":"https:\/\/twitter.com\/i\/web\/status\/781137340962004992", "display_url":"twitter.com\/i\/web\/status\/7\u2026", "indices":[ 111, 134 ] } ], "user_mentions":[ { "screen_name":"Hak4Kidz", "name":"Hak4Kidz", "id":2262322964, "id_str":"2262322964", "indices":[ 78, 87 ] }, { "screen_name":"EFF", "name":"EFF", "id":4816, "id_str":"4816", "indices":[ 92, 96 ] } ], "symbols":[ ] }, "favorited":false, "retweeted":false, "possibly_sensitive":false, "filter_level":"low", "lang":"en" }, "is_quote_status":false, "retweet_count":0, "favorite_count":0, "entities":{ "hashtags":[ { "text":"400LBHACKER", "indices":[ 69, 81 ] } ], "urls":[ { "url":"", "expanded_url":null, "indices":[ 124, 124 ] } ], "user_mentions":[ { "screen_name":"oscaron", "name":"Oscaron \u2615", "id":16156052, "id_str":"16156052", "indices":[ 3, 11 ] }, { "screen_name":"Hak4Kidz", "name":"Hak4Kidz", "id":2262322964, "id_str":"2262322964", "indices":[ 91, 100 ] }, { "screen_name":"EFF", "name":"EFF", "id":4816, "id_str":"4816", "indices":[ 105, 109 ] } ], "symbols":[ ] }, "favorited":false, "retweeted":false, "filter_level":"low", "lang":"en", "timestamp_ms":"1475253916965" }
""";


const string TD6 =
"""
{
  "created_at" : "Sat Apr 01 16:28:13 +0000 2017",
  "id" : 848210402995556353,
  "id_str" : "848210402995556353",
  "full_text" : "RT @wurst_hw: SOME TWEET https://t.co/ySiXE2r1dV https://t.co/k8Wlmh67nf",
  "truncated" : false,
  "display_text_range" : [
    0,
    72
  ],
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "user_mentions" : [
      {
        "screen_name" : "wurst_hw",
        "name" : "Hans Wurst",
        "id" : 1469297089,
        "id_str" : "1469297089",
        "indices" : [
          3,
          12
        ]
      }
    ],
    "urls" : [
      {
        "url" : "https://t.co/ySiXE2r1dV",
        "expanded_url" : "https://twitter.com/baedert/status/847671175081676801",
        "display_url" : "twitter.com/baedert/status…",
        "indices" : [
          25,
          48
        ]
      }
    ],
    "media" : [
      {
        "id" : 848210277820747776,
        "id_str" : "848210277820747776",
        "indices" : [
          49,
          72
        ],
        "media_url" : "http://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
        "media_url_https" : "https://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
        "url" : "https://t.co/k8Wlmh67nf",
        "display_url" : "pic.twitter.com/k8Wlmh67nf",
        "expanded_url" : "https://twitter.com/wurst_hw/status/848210293465468928/photo/1",
        "type" : "photo",
        "sizes" : {
          "medium" : {
            "w" : 1200,
            "h" : 675,
            "resize" : "fit"
          },
          "large" : {
            "w" : 1920,
            "h" : 1080,
            "resize" : "fit"
          },
          "small" : {
            "w" : 680,
            "h" : 383,
            "resize" : "fit"
          },
          "thumb" : {
            "w" : 150,
            "h" : 150,
            "resize" : "crop"
          }
        },
        "source_status_id" : 848210293465468928,
        "source_status_id_str" : "848210293465468928",
        "source_user_id" : 1469297089,
        "source_user_id_str" : "1469297089"
      }
    ]
  },
  "extended_entities" : {
    "media" : [
      {
        "id" : 848210277820747776,
        "id_str" : "848210277820747776",
        "indices" : [
          49,
          72
        ],
        "media_url" : "http://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
        "media_url_https" : "https://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
        "url" : "https://t.co/k8Wlmh67nf",
        "display_url" : "pic.twitter.com/k8Wlmh67nf",
        "expanded_url" : "https://twitter.com/wurst_hw/status/848210293465468928/photo/1",
        "type" : "photo",
        "sizes" : {
          "medium" : {
            "w" : 1200,
            "h" : 675,
            "resize" : "fit"
          },
          "large" : {
            "w" : 1920,
            "h" : 1080,
            "resize" : "fit"
          },
          "small" : {
            "w" : 680,
            "h" : 383,
            "resize" : "fit"
          },
          "thumb" : {
            "w" : 150,
            "h" : 150,
            "resize" : "crop"
          }
        },
        "source_status_id" : 848210293465468928,
        "source_status_id_str" : "848210293465468928",
        "source_user_id" : 1469297089,
        "source_user_id_str" : "1469297089"
      }
    ]
  },
  "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
  "in_reply_to_status_id" : null,
  "in_reply_to_status_id_str" : null,
  "in_reply_to_user_id" : null,
  "in_reply_to_user_id_str" : null,
  "in_reply_to_screen_name" : null,
  "user" : {
    "id" : 993713617,
    "id_str" : "993713617",
    "name" : "Z??!@*(&*²³¤²³¤",
    "screen_name" : "corebirdgtk",
    "location" : "",
    "description" : "&lt;asdf",
    "url" : null,
    "entities" : {
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : true,
    "followers_count" : 3,
    "friends_count" : 4,
    "listed_count" : 0,
    "created_at" : "Thu Dec 06 19:47:16 +0000 2012",
    "favourites_count" : 9,
    "utc_offset" : 7200,
    "time_zone" : "Amsterdam",
    "geo_enabled" : false,
    "verified" : false,
    "statuses_count" : 865,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : true,
    "profile_background_color" : "C0DEED",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_tile" : false,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/655270693341417472/h6BbZKJy_normal.png",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/655270693341417472/h6BbZKJy_normal.png",
    "profile_banner_url" : "https://pbs.twimg.com/profile_banners/993713617/1413106147",
    "profile_link_color" : "1DA1F2",
    "profile_sidebar_border_color" : "C0DEED",
    "profile_sidebar_fill_color" : "DDEEF6",
    "profile_text_color" : "333333",
    "profile_use_background_image" : true,
    "has_extended_profile" : false,
    "default_profile" : true,
    "default_profile_image" : false,
    "following" : true,
    "follow_request_sent" : false,
    "notifications" : false,
    "translator_type" : "none"
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "retweeted_status" : {
    "created_at" : "Sat Apr 01 16:27:47 +0000 2017",
    "id" : 848210293465468928,
    "id_str" : "848210293465468928",
    "full_text" : "SOME TWEET https://t.co/ySiXE2r1dV https://t.co/k8Wlmh67nf",
    "truncated" : false,
    "display_text_range" : [
      0,
      34
    ],
    "entities" : {
      "hashtags" : [
      ],
      "symbols" : [
      ],
      "user_mentions" : [
      ],
      "urls" : [
        {
          "url" : "https://t.co/ySiXE2r1dV",
          "expanded_url" : "https://twitter.com/baedert/status/847671175081676801",
          "display_url" : "twitter.com/baedert/status…",
          "indices" : [
            11,
            34
          ]
        }
      ],
      "media" : [
        {
          "id" : 848210277820747776,
          "id_str" : "848210277820747776",
          "indices" : [
            35,
            58
          ],
          "media_url" : "http://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
          "media_url_https" : "https://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
          "url" : "https://t.co/k8Wlmh67nf",
          "display_url" : "pic.twitter.com/k8Wlmh67nf",
          "expanded_url" : "https://twitter.com/wurst_hw/status/848210293465468928/photo/1",
          "type" : "photo",
          "sizes" : {
            "medium" : {
              "w" : 1200,
              "h" : 675,
              "resize" : "fit"
            },
            "large" : {
              "w" : 1920,
              "h" : 1080,
              "resize" : "fit"
            },
            "small" : {
              "w" : 680,
              "h" : 383,
              "resize" : "fit"
            },
            "thumb" : {
              "w" : 150,
              "h" : 150,
              "resize" : "crop"
            }
          }
        }
      ]
    },
    "extended_entities" : {
      "media" : [
        {
          "id" : 848210277820747776,
          "id_str" : "848210277820747776",
          "indices" : [
            35,
            58
          ],
          "media_url" : "http://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
          "media_url_https" : "https://pbs.twimg.com/media/C8VywPBXUAAgOkn.jpg",
          "url" : "https://t.co/k8Wlmh67nf",
          "display_url" : "pic.twitter.com/k8Wlmh67nf",
          "expanded_url" : "https://twitter.com/wurst_hw/status/848210293465468928/photo/1",
          "type" : "photo",
          "sizes" : {
            "medium" : {
              "w" : 1200,
              "h" : 675,
              "resize" : "fit"
            },
            "large" : {
              "w" : 1920,
              "h" : 1080,
              "resize" : "fit"
            },
            "small" : {
              "w" : 680,
              "h" : 383,
              "resize" : "fit"
            },
            "thumb" : {
              "w" : 150,
              "h" : 150,
              "resize" : "crop"
            }
          }
        }
      ]
    },
    "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
    "in_reply_to_status_id" : null,
    "in_reply_to_status_id_str" : null,
    "in_reply_to_user_id" : null,
    "in_reply_to_user_id_str" : null,
    "in_reply_to_screen_name" : null,
    "user" : {
      "id" : 1469297089,
      "id_str" : "1469297089",
      "name" : "Hans Wurst",
      "screen_name" : "wurst_hw",
      "location" : "",
      "description" : "",
      "url" : null,
      "entities" : {
        "description" : {
          "urls" : [
          ]
        }
      },
      "protected" : false,
      "followers_count" : 1,
      "friends_count" : 2,
      "listed_count" : 0,
      "created_at" : "Thu May 30 08:47:22 +0000 2013",
      "favourites_count" : 0,
      "utc_offset" : null,
      "time_zone" : null,
      "geo_enabled" : false,
      "verified" : false,
      "statuses_count" : 31,
      "lang" : "en",
      "contributors_enabled" : false,
      "is_translator" : false,
      "is_translation_enabled" : false,
      "profile_background_color" : "C0DEED",
      "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_tile" : false,
      "profile_image_url" : "http://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
      "profile_image_url_https" : "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
      "profile_link_color" : "1DA1F2",
      "profile_sidebar_border_color" : "C0DEED",
      "profile_sidebar_fill_color" : "DDEEF6",
      "profile_text_color" : "333333",
      "profile_use_background_image" : true,
      "has_extended_profile" : false,
      "default_profile" : true,
      "default_profile_image" : true,
      "following" : false,
      "follow_request_sent" : false,
      "notifications" : false,
      "translator_type" : "none"
    },
    "geo" : null,
    "coordinates" : null,
    "place" : null,
    "contributors" : null,
    "is_quote_status" : true,
    "quoted_status_id" : 847671175081676801,
    "quoted_status_id_str" : "847671175081676801",
    "quoted_status" : {
      "created_at" : "Fri Mar 31 04:45:31 +0000 2017",
      "id" : 847671175081676801,
      "id_str" : "847671175081676801",
      "full_text" : "Haha yeah. The Reply Madness of 2017. Very funny. It'll ruin my weekend but let's laugh first.",
      "truncated" : false,
      "display_text_range" : [
        0,
        94
      ],
      "entities" : {
        "hashtags" : [
        ],
        "symbols" : [
        ],
        "user_mentions" : [
        ],
        "urls" : [
        ]
      },
      "source" : "<a href=\"https://github.com/TwidereProject/Twidere-Android/\" rel=\"nofollow\">Twidere for Android #5</a>",
      "in_reply_to_status_id" : null,
      "in_reply_to_status_id_str" : null,
      "in_reply_to_user_id" : null,
      "in_reply_to_user_id_str" : null,
      "in_reply_to_screen_name" : null,
      "user" : {
        "id" : 118055879,
        "id_str" : "118055879",
        "name" : "Schupp & Wupp",
        "screen_name" : "baedert",
        "location" : "",
        "description" : "Corebird developer by night, silently judging people on the train by day.",
        "url" : "https://t.co/yGvX7Nf6i3",
        "entities" : {
          "url" : {
            "urls" : [
              {
                "url" : "https://t.co/yGvX7Nf6i3",
                "expanded_url" : "http://corebird.baedert.org",
                "display_url" : "corebird.baedert.org",
                "indices" : [
                  0,
                  23
                ]
              }
            ]
          },
          "description" : {
            "urls" : [
            ]
          }
        },
        "protected" : false,
        "followers_count" : 193,
        "friends_count" : 73,
        "listed_count" : 4,
        "created_at" : "Sat Feb 27 13:13:34 +0000 2010",
        "favourites_count" : 152,
        "utc_offset" : 7200,
        "time_zone" : "Bern",
        "geo_enabled" : false,
        "verified" : false,
        "statuses_count" : 2079,
        "lang" : "en",
        "contributors_enabled" : false,
        "is_translator" : false,
        "is_translation_enabled" : false,
        "profile_background_color" : "C6E2EE",
        "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme2/bg.gif",
        "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme2/bg.gif",
        "profile_background_tile" : false,
        "profile_image_url" : "http://pbs.twimg.com/profile_images/810507927941476352/cSydClet_normal.jpg",
        "profile_image_url_https" : "https://pbs.twimg.com/profile_images/810507927941476352/cSydClet_normal.jpg",
        "profile_banner_url" : "https://pbs.twimg.com/profile_banners/118055879/1488791887",
        "profile_link_color" : "1F98C7",
        "profile_sidebar_border_color" : "C6E2EE",
        "profile_sidebar_fill_color" : "DAECF4",
        "profile_text_color" : "663B12",
        "profile_use_background_image" : true,
        "has_extended_profile" : false,
        "default_profile" : false,
        "default_profile_image" : false,
        "following" : false,
        "follow_request_sent" : false,
        "notifications" : false,
        "translator_type" : "none"
      },
      "geo" : null,
      "coordinates" : null,
      "place" : null,
      "contributors" : null,
      "is_quote_status" : false,
      "retweet_count" : 1,
      "favorite_count" : 2,
      "favorited" : false,
      "retweeted" : false,
      "lang" : "en"
    },
    "retweet_count" : 1,
    "favorite_count" : 0,
    "favorited" : false,
    "retweeted" : false,
    "possibly_sensitive" : false,
    "lang" : "en"
  },
  "is_quote_status" : true,
  "quoted_status_id" : 847671175081676801,
  "quoted_status_id_str" : "847671175081676801",
  "retweet_count" : 1,
  "favorite_count" : 0,
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : true,
  "lang" : "en"
}
""";

const string REPLY_TWEET_DATA = """
{
  "created_at" : "Mon Apr 17 15:16:18 +0000 2017",
  "id" : 853990508326252550,
  "id_str" : "853990508326252550",
  "full_text" : "@jjdesmond @_UBRAS_ @franalsworth @4Apes @katy4apes @theAliceRoberts @JaneGoodallUK @Jane_Goodall @JaneGoodallInst And here's the link for tickets again ... https://t.co/a9lOVMouNK",
  "truncated" : false,
  "display_text_range" : [
    115,
    180
  ],
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "user_mentions" : [
      {
        "screen_name" : "jjdesmond",
        "name" : "Jimmy Jenny Desmond",
        "id" : 21278482,
        "id_str" : "21278482",
        "indices" : [
          0,
          10
        ]
      },
      {
        "screen_name" : "_UBRAS_",
        "name" : "Roots and Shoots UOB",
        "id" : 803329927974096896,
        "id_str" : "803329927974096896",
        "indices" : [
          11,
          19
        ]
      },
      {
        "screen_name" : "franalsworth",
        "name" : "Fran",
        "id" : 776983919287754752,
        "id_str" : "776983919287754752",
        "indices" : [
          20,
          33
        ]
      },
      {
        "screen_name" : "4Apes",
        "name" : "Ian Redmond",
        "id" : 155889035,
        "id_str" : "155889035",
        "indices" : [
          34,
          40
        ]
      },
      {
        "screen_name" : "katy4apes",
        "name" : "Katy Jedamzik",
        "id" : 159608654,
        "id_str" : "159608654",
        "indices" : [
          41,
          51
        ]
      },
      {
        "screen_name" : "theAliceRoberts",
        "name" : "Prof Alice Roberts",
        "id" : 260211154,
        "id_str" : "260211154",
        "indices" : [
          52,
          68
        ]
      },
      {
        "screen_name" : "JaneGoodallUK",
        "name" : "Roots & Shoots UK",
        "id" : 423423823,
        "id_str" : "423423823",
        "indices" : [
          69,
          83
        ]
      },
      {
        "screen_name" : "Jane_Goodall",
        "name" : "Jane Goodall",
        "id" : 235157216,
        "id_str" : "235157216",
        "indices" : [
          84,
          97
        ]
      },
      {
        "screen_name" : "JaneGoodallInst",
        "name" : "JaneGoodallInstitute",
        "id" : 39822897,
        "id_str" : "39822897",
        "indices" : [
          98,
          114
        ]
      }
    ],
    "urls" : [
      {
        "url" : "https://t.co/a9lOVMouNK",
        "expanded_url" : "https://www.eventbrite.com/e/working-with-apes-tickets-33089771397",
        "display_url" : "eventbrite.com/e/working-with…",
        "indices" : [
          157,
          180
        ]
      }
    ]
  },
  "source" : "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
  "in_reply_to_status_id" : 853925036696141824,
  "in_reply_to_status_id_str" : "853925036696141824",
  "in_reply_to_user_id" : 21278482,
  "in_reply_to_user_id_str" : "21278482",
  "in_reply_to_screen_name" : "jjdesmond",
  "user" : {
    "id" : 415472140,
    "id_str" : "415472140",
    "name" : "Ben Garrod",
    "screen_name" : "Ben_garrod",
    "location" : "Bristol&Norfolk",
    "description" : "Monkey-chaser, TV-talker, bone geek and Teaching Fellow at @AngliaRuskin https://t.co/FXbftdxxTJ",
    "url" : "https://t.co/1B9SDHfWoF",
    "entities" : {
      "url" : {
        "urls" : [
          {
            "url" : "https://t.co/1B9SDHfWoF",
            "expanded_url" : "http://www.josarsby.com/ben-garrod",
            "display_url" : "josarsby.com/ben-garrod",
            "indices" : [
              0,
              23
            ]
          }
        ]
      },
      "description" : {
        "urls" : [
          {
            "url" : "https://t.co/FXbftdxxTJ",
            "expanded_url" : "http://www.anglia.ac.uk/science-and-technology/about/life-sciences/our-staff/ben-garrod",
            "display_url" : "anglia.ac.uk/science-and-te…",
            "indices" : [
              73,
              96
            ]
          }
        ]
      }
    },
    "protected" : false,
    "followers_count" : 6526,
    "friends_count" : 1016,
    "listed_count" : 128,
    "created_at" : "Fri Nov 18 11:30:48 +0000 2011",
    "favourites_count" : 25292,
    "utc_offset" : 3600,
    "time_zone" : "London",
    "geo_enabled" : true,
    "verified" : true,
    "statuses_count" : 17224,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "C0DEED",
    "profile_background_image_url" : "http://pbs.twimg.com/profile_background_images/590945579024257024/2F1itaGz.jpg",
    "profile_background_image_url_https" : "https://pbs.twimg.com/profile_background_images/590945579024257024/2F1itaGz.jpg",
    "profile_background_tile" : false,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/615498558385557505/cwSloac3_normal.jpg",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/615498558385557505/cwSloac3_normal.jpg",
    "profile_banner_url" : "https://pbs.twimg.com/profile_banners/415472140/1477223840",
    "profile_link_color" : "0084B4",
    "profile_sidebar_border_color" : "FFFFFF",
    "profile_sidebar_fill_color" : "DDEEF6",
    "profile_text_color" : "333333",
    "profile_use_background_image" : false,
    "has_extended_profile" : false,
    "default_profile" : false,
    "default_profile_image" : false,
    "following" : false,
    "follow_request_sent" : false,
    "notifications" : false,
    "translator_type" : "none"
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "is_quote_status" : false,
  "retweet_count" : 6,
  "favorite_count" : 7,
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : false,
  "lang" : "en"
}

""";

const string TD7 = """
{
  "created_at" : "Mon Feb 13 07:59:35 +0000 2017",
  "id" : 831050171744149504,
  "id_str" : "831050171744149504",
  "full_text" : "@GOP https://t.co/e2fTVgNC3D",
  "truncated" : false,
  "display_text_range" : [
    4,
    4
  ],
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "user_mentions" : [
      {
        "screen_name" : "GOP",
        "name" : "GOP",
        "id" : 11134252,
        "id_str" : "11134252",
        "indices" : [
          0,
          4
        ]
      }
    ],
    "urls" : [
    ],
    "media" : [
      {
        "id" : 831050167918923776,
        "id_str" : "831050167918923776",
        "indices" : [
          5,
          28
        ],
        "media_url" : "http://pbs.twimg.com/media/C4h7uYFWEAA1Af6.jpg",
        "media_url_https" : "https://pbs.twimg.com/media/C4h7uYFWEAA1Af6.jpg",
        "url" : "https://t.co/e2fTVgNC3D",
        "display_url" : "pic.twitter.com/e2fTVgNC3D",
        "expanded_url" : "https://twitter.com/CBoyForeman/status/831050171744149504/photo/1",
        "type" : "photo",
        "sizes" : {
          "large" : {
            "w" : 576,
            "h" : 357,
            "resize" : "fit"
          },
          "small" : {
            "w" : 576,
            "h" : 357,
            "resize" : "fit"
          },
          "thumb" : {
            "w" : 150,
            "h" : 150,
            "resize" : "crop"
          },
          "medium" : {
            "w" : 576,
            "h" : 357,
            "resize" : "fit"
          }
        }
      }
    ]
  },
  "extended_entities" : {
    "media" : [
      {
        "id" : 831050167918923776,
        "id_str" : "831050167918923776",
        "indices" : [
          5,
          28
        ],
        "media_url" : "http://pbs.twimg.com/media/C4h7uYFWEAA1Af6.jpg",
        "media_url_https" : "https://pbs.twimg.com/media/C4h7uYFWEAA1Af6.jpg",
        "url" : "https://t.co/e2fTVgNC3D",
        "display_url" : "pic.twitter.com/e2fTVgNC3D",
        "expanded_url" : "https://twitter.com/CBoyForeman/status/831050171744149504/photo/1",
        "type" : "photo",
        "sizes" : {
          "large" : {
            "w" : 576,
            "h" : 357,
            "resize" : "fit"
          },
          "small" : {
            "w" : 576,
            "h" : 357,
            "resize" : "fit"
          },
          "thumb" : {
            "w" : 150,
            "h" : 150,
            "resize" : "crop"
          },
          "medium" : {
            "w" : 576,
            "h" : 357,
            "resize" : "fit"
          }
        }
      }
    ]
  },
  "source" : "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
  "in_reply_to_status_id" : 830800137291194368,
  "in_reply_to_status_id_str" : "830800137291194368",
  "in_reply_to_user_id" : 11134252,
  "in_reply_to_user_id_str" : "11134252",
  "in_reply_to_screen_name" : "GOP",
  "user" : {
    "id" : 77301204,
    "id_str" : "77301204",
    "name" : "Chrissy Boy",
    "screen_name" : "CBoyForeman",
    "location" : "Brighton",
    "description" : "Musician, allegedly.",
    "url" : "https://t.co/wkTvkNumcF",
    "entities" : {
      "url" : {
        "urls" : [
          {
            "url" : "https://t.co/wkTvkNumcF",
            "expanded_url" : "http://www.madness.co.uk/chris-cupboard/",
            "display_url" : "madness.co.uk/chris-cupboard/",
            "indices" : [
              0,
              23
            ]
          }
        ]
      },
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : false,
    "followers_count" : 8605,
    "friends_count" : 42,
    "listed_count" : 54,
    "created_at" : "Fri Sep 25 20:19:11 +0000 2009",
    "favourites_count" : 71,
    "utc_offset" : 3600,
    "time_zone" : "London",
    "geo_enabled" : true,
    "verified" : false,
    "statuses_count" : 1079,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "95B6C7",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_tile" : true,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/542792449907638272/AsxM39Oz_normal.jpeg",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/542792449907638272/AsxM39Oz_normal.jpeg",
    "profile_banner_url" : "https://pbs.twimg.com/profile_banners/77301204/1387963265",
    "profile_link_color" : "89C9FA",
    "profile_sidebar_border_color" : "EEEEEE",
    "profile_sidebar_fill_color" : "EFEFEF",
    "profile_text_color" : "333333",
    "profile_use_background_image" : true,
    "has_extended_profile" : true,
    "default_profile" : false,
    "default_profile_image" : false,
    "following" : false,
    "follow_request_sent" : false,
    "notifications" : false,
    "translator_type" : "none"
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "is_quote_status" : false,
  "retweet_count" : 0,
  "favorite_count" : 2,
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : false,
  "lang" : "und"
}
""";

const string TD8 = """
{
  "created_at" : "Mon Apr 24 11:40:53 +0000 2017",
  "id" : 856473014560591872,
  "id_str" : "856473014560591872",
  "full_text" : "RT @corebirdgtk: @baedert and @corebirdclient so?",
  "truncated" : false,
  "display_text_range" : [
    0,
    49
  ],
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "user_mentions" : [
      {
        "screen_name" : "corebirdgtk",
        "name" : "Z??!@*(&*²³¤²³¤",
        "id" : 993713617,
        "id_str" : "993713617",
        "indices" : [
          3,
          15
        ]
      },
      {
        "screen_name" : "baedert",
        "name" : "Schupp & Wupp",
        "id" : 118055879,
        "id_str" : "118055879",
        "indices" : [
          17,
          25
        ]
      },
      {
        "screen_name" : "corebirdclient",
        "name" : "Corebird",
        "id" : 2877682863,
        "id_str" : "2877682863",
        "indices" : [
          30,
          45
        ]
      }
    ],
    "urls" : [
    ]
  },
  "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
  "in_reply_to_status_id" : null,
  "in_reply_to_status_id_str" : null,
  "in_reply_to_user_id" : null,
  "in_reply_to_user_id_str" : null,
  "in_reply_to_screen_name" : null,
  "user" : {
    "id" : 993713617,
    "id_str" : "993713617",
    "name" : "Z??!@*(&*²³¤²³¤",
    "screen_name" : "corebirdgtk",
    "location" : "",
    "description" : "&lt;asdf",
    "url" : null,
    "entities" : {
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : true,
    "followers_count" : 3,
    "friends_count" : 4,
    "listed_count" : 0,
    "created_at" : "Thu Dec 06 19:47:16 +0000 2012",
    "favourites_count" : 9,
    "utc_offset" : 7200,
    "time_zone" : "Amsterdam",
    "geo_enabled" : false,
    "verified" : false,
    "statuses_count" : 909,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : true,
    "profile_background_color" : "C0DEED",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_tile" : false,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/655270693341417472/h6BbZKJy_normal.png",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/655270693341417472/h6BbZKJy_normal.png",
    "profile_banner_url" : "https://pbs.twimg.com/profile_banners/993713617/1413106147",
    "profile_link_color" : "1DA1F2",
    "profile_sidebar_border_color" : "C0DEED",
    "profile_sidebar_fill_color" : "DDEEF6",
    "profile_text_color" : "333333",
    "profile_use_background_image" : true,
    "has_extended_profile" : false,
    "default_profile" : true,
    "default_profile_image" : false,
    "following" : true,
    "follow_request_sent" : false,
    "notifications" : false,
    "translator_type" : "none"
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "retweeted_status" : {
    "created_at" : "Mon Apr 24 11:35:17 +0000 2017",
    "id" : 856471602883686400,
    "id_str" : "856471602883686400",
    "full_text" : "@baedert and @corebirdclient so?",
    "truncated" : false,
    "display_text_range" : [
      9,
      32
    ],
    "entities" : {
      "hashtags" : [
      ],
      "symbols" : [
      ],
      "user_mentions" : [
        {
          "screen_name" : "baedert",
          "name" : "Schupp & Wupp",
          "id" : 118055879,
          "id_str" : "118055879",
          "indices" : [
            0,
            8
          ]
        },
        {
          "screen_name" : "corebirdclient",
          "name" : "Corebird",
          "id" : 2877682863,
          "id_str" : "2877682863",
          "indices" : [
            13,
            28
          ]
        }
      ],
      "urls" : [
      ]
    },
    "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
    "in_reply_to_status_id" : 853198126106148864,
    "in_reply_to_status_id_str" : "853198126106148864",
    "in_reply_to_user_id" : 993713617,
    "in_reply_to_user_id_str" : "993713617",
    "in_reply_to_screen_name" : "corebirdgtk",
    "user" : {
      "id" : 993713617,
      "id_str" : "993713617",
      "name" : "Z??!@*(&*²³¤²³¤",
      "screen_name" : "corebirdgtk",
      "location" : "",
      "description" : "&lt;asdf",
      "url" : null,
      "entities" : {
        "description" : {
          "urls" : [
          ]
        }
      },
      "protected" : true,
      "followers_count" : 3,
      "friends_count" : 4,
      "listed_count" : 0,
      "created_at" : "Thu Dec 06 19:47:16 +0000 2012",
      "favourites_count" : 9,
      "utc_offset" : 7200,
      "time_zone" : "Amsterdam",
      "geo_enabled" : false,
      "verified" : false,
      "statuses_count" : 909,
      "lang" : "en",
      "contributors_enabled" : false,
      "is_translator" : false,
      "is_translation_enabled" : true,
      "profile_background_color" : "C0DEED",
      "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
      "profile_background_tile" : false,
      "profile_image_url" : "http://pbs.twimg.com/profile_images/655270693341417472/h6BbZKJy_normal.png",
      "profile_image_url_https" : "https://pbs.twimg.com/profile_images/655270693341417472/h6BbZKJy_normal.png",
      "profile_banner_url" : "https://pbs.twimg.com/profile_banners/993713617/1413106147",
      "profile_link_color" : "1DA1F2",
      "profile_sidebar_border_color" : "C0DEED",
      "profile_sidebar_fill_color" : "DDEEF6",
      "profile_text_color" : "333333",
      "profile_use_background_image" : true,
      "has_extended_profile" : false,
      "default_profile" : true,
      "default_profile_image" : false,
      "following" : true,
      "follow_request_sent" : false,
      "notifications" : false,
      "translator_type" : "none"
    },
    "geo" : null,
    "coordinates" : null,
    "place" : null,
    "contributors" : null,
    "is_quote_status" : false,
    "retweet_count" : 1,
    "favorite_count" : 0,
    "favorited" : false,
    "retweeted" : false,
    "lang" : "en"
  },
  "is_quote_status" : false,
  "retweet_count" : 1,
  "favorite_count" : 0,
  "favorited" : false,
  "retweeted" : false,
  "lang" : "en"
}
""";

const string TD9 = """
{
  "created_at" : "Thu Apr 27 17:00:15 +0000 2017",
  "id" : 857640546793177088,
  "id_str" : "857640546793177088",
  "full_text" : "Hey @zillow, I get why you make it so hard to close my profile, but it's so transparent and just seems scammy. Scammy, scammy, scammy.",
  "truncated" : false,
  "display_text_range" : [
    0,
    134
  ],
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "user_mentions" : [
      {
        "screen_name" : "zillow",
        "name" : "Zillow",
        "id" : 19262500,
        "id_str" : "19262500",
        "indices" : [
          4,
          11
        ]
      }
    ],
    "urls" : [
    ]
  },
  "source" : "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
  "in_reply_to_status_id" : null,
  "in_reply_to_status_id_str" : null,
  "in_reply_to_user_id" : null,
  "in_reply_to_user_id_str" : null,
  "in_reply_to_screen_name" : null,
  "user" : {
    "id" : 14498432,
    "id_str" : "14498432",
    "name" : "Kristian Høgsberg",
    "screen_name" : "hoegsberg",
    "location" : "Portland OR",
    "description" : "Casually Defiant, Inadvertently Pretentious",
    "url" : "https://t.co/z672MnpkDP",
    "entities" : {
      "url" : {
        "urls" : [
          {
            "url" : "https://t.co/z672MnpkDP",
            "expanded_url" : "http://hoegsberg.blogspot.com",
            "display_url" : "hoegsberg.blogspot.com",
            "indices" : [
              0,
              23
            ]
          }
        ]
      },
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : false,
    "followers_count" : 689,
    "friends_count" : 210,
    "listed_count" : 25,
    "created_at" : "Wed Apr 23 18:29:05 +0000 2008",
    "favourites_count" : 717,
    "utc_offset" : -14400,
    "time_zone" : "Eastern Time (US & Canada)",
    "geo_enabled" : true,
    "verified" : false,
    "statuses_count" : 2685,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "352726",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme5/bg.gif",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme5/bg.gif",
    "profile_background_tile" : false,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/679383568016130049/DcwLkGhB_normal.jpg",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/679383568016130049/DcwLkGhB_normal.jpg",
    "profile_banner_url" : "https://pbs.twimg.com/profile_banners/14498432/1450812639",
    "profile_link_color" : "D02B54",
    "profile_sidebar_border_color" : "829D5E",
    "profile_sidebar_fill_color" : "99CC33",
    "profile_text_color" : "3E4415",
    "profile_use_background_image" : true,
    "has_extended_profile" : false,
    "default_profile" : false,
    "default_profile_image" : false,
    "following" : true,
    "follow_request_sent" : false,
    "notifications" : false,
    "translator_type" : "none"
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "is_quote_status" : false,
  "retweet_count" : 0,
  "favorite_count" : 0,
  "favorited" : false,
  "retweeted" : false,
  "lang" : "en"
}
""";

const string TD10 = """
{
  "created_at" : "Fri Apr 28 19:40:04 +0000 2017",
  "id" : 858043155547140096,
  "id_str" : "858043155547140096",
  "full_text" : ".@archillect\nhttps://t.co/8sOpx6hIV8\nhttps://t.co/LazmRudPfL\nhttps://t.co/Q2C5FM0OJO\nhttps://t.co/Vq6aJdD766\nhttps://t.co/otr3LIJ15c",
  "truncated" : false,
  "display_text_range" : [
    0,
    132
  ],
  "entities" : {
    "hashtags" : [
    ],
    "symbols" : [
    ],
    "user_mentions" : [
      {
        "screen_name" : "archillect",
        "name" : "Archillect",
        "id" : 2907774137,
        "id_str" : "2907774137",
        "indices" : [
          1,
          12
        ]
      }
    ],
    "urls" : [
      {
        "url" : "https://t.co/8sOpx6hIV8",
        "expanded_url" : "http://www.pbs.org/newshour/art/photos-dying-art-neon-hong-kong/",
        "display_url" : "pbs.org/newshour/art/p…",
        "indices" : [
          13,
          36
        ]
      },
      {
        "url" : "https://t.co/LazmRudPfL",
        "expanded_url" : "http://www.neonsigns.hk/media/upload/2014/05/shya-5.jpg",
        "display_url" : "neonsigns.hk/media/upload/2…",
        "indices" : [
          37,
          60
        ]
      },
      {
        "url" : "https://t.co/Q2C5FM0OJO",
        "expanded_url" : "http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.neonsigns.hk%2Fmy-neon-city%2Fwing-shya%2F%3Flang%3Den&t=YmUzYTFmNTM1NmJjODlkYjlkNGJiMzYyNzRjZmU3OTllOGZhZmIwYyw5ODIzODIzNzg5NQ%3D%3D&b=t%3AYGx1bpY-ynhca0q3r41odw&p=http%3A%2F%2Fotakugangsta.com%2Fpost%2F98238237895&m=0",
        "display_url" : "t.umblr.com/redirect?z=htt…",
        "indices" : [
          61,
          84
        ]
      },
      {
        "url" : "https://t.co/Vq6aJdD766",
        "expanded_url" : "https://www.pinterest.com/pin/47569339794350377/",
        "display_url" : "pinterest.com/pin/4756933979…",
        "indices" : [
          85,
          108
        ]
      },
      {
        "url" : "https://t.co/otr3LIJ15c",
        "expanded_url" : "https://twitter.com/archillect/status/858043152820826113",
        "display_url" : "twitter.com/archillect/sta…",
        "indices" : [
          109,
          132
        ]
      }
    ]
  },
  "source" : "<a href=\"http://machinu.net\" rel=\"nofollow\">archillinks</a>",
  "in_reply_to_status_id" : 858043152820826113,
  "in_reply_to_status_id_str" : "858043152820826113",
  "in_reply_to_user_id" : 2907774137,
  "in_reply_to_user_id_str" : "2907774137",
  "in_reply_to_screen_name" : "archillect",
  "user" : {
    "id" : 808595043560857600,
    "id_str" : "808595043560857600",
    "name" : "Archillect Links",
    "screen_name" : "archillinks",
    "location" : "",
    "description" : "The Ocular Engine // Links",
    "url" : "https://t.co/U7Oh7xumQp",
    "entities" : {
      "url" : {
        "urls" : [
          {
            "url" : "https://t.co/U7Oh7xumQp",
            "expanded_url" : "http://archillect.com",
            "display_url" : "archillect.com",
            "indices" : [
              0,
              23
            ]
          }
        ]
      },
      "description" : {
        "urls" : [
        ]
      }
    },
    "protected" : false,
    "followers_count" : 9481,
    "friends_count" : 2,
    "listed_count" : 107,
    "created_at" : "Tue Dec 13 08:50:56 +0000 2016",
    "favourites_count" : 0,
    "utc_offset" : null,
    "time_zone" : null,
    "geo_enabled" : false,
    "verified" : false,
    "statuses_count" : 17980,
    "lang" : "en",
    "contributors_enabled" : false,
    "is_translator" : false,
    "is_translation_enabled" : false,
    "profile_background_color" : "000000",
    "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme1/bg.png",
    "profile_background_tile" : false,
    "profile_image_url" : "http://pbs.twimg.com/profile_images/808595805942714368/PuH1r_aQ_normal.jpg",
    "profile_image_url_https" : "https://pbs.twimg.com/profile_images/808595805942714368/PuH1r_aQ_normal.jpg",
    "profile_banner_url" : "https://pbs.twimg.com/profile_banners/808595043560857600/1481619199",
    "profile_link_color" : "111111",
    "profile_sidebar_border_color" : "000000",
    "profile_sidebar_fill_color" : "000000",
    "profile_text_color" : "000000",
    "profile_use_background_image" : false,
    "has_extended_profile" : false,
    "default_profile" : false,
    "default_profile_image" : false,
    "following" : false,
    "follow_request_sent" : false,
    "notifications" : false,
    "translator_type" : "none"
  },
  "geo" : null,
  "coordinates" : null,
  "place" : null,
  "contributors" : null,
  "is_quote_status" : true,
  "quoted_status_id" : 858043152820826113,
  "quoted_status_id_str" : "858043152820826113",
  "quoted_status" : {
    "created_at" : "Fri Apr 28 19:40:03 +0000 2017",
    "id" : 858043152820826113,
    "id_str" : "858043152820826113",
    "full_text" : "https://t.co/4Kk2ol4YDf",
    "truncated" : false,
    "display_text_range" : [
      0,
      0
    ],
    "entities" : {
      "hashtags" : [
      ],
      "symbols" : [
      ],
      "user_mentions" : [
      ],
      "urls" : [
      ],
      "media" : [
        {
          "id" : 858043148114808833,
          "id_str" : "858043148114808833",
          "indices" : [
            0,
            23
          ],
          "media_url" : "http://pbs.twimg.com/media/C-hhsnVXUAESrBA.jpg",
          "media_url_https" : "https://pbs.twimg.com/media/C-hhsnVXUAESrBA.jpg",
          "url" : "https://t.co/4Kk2ol4YDf",
          "display_url" : "pic.twitter.com/4Kk2ol4YDf",
          "expanded_url" : "https://twitter.com/archillect/status/858043152820826113/photo/1",
          "type" : "photo",
          "sizes" : {
            "large" : {
              "w" : 1280,
              "h" : 960,
              "resize" : "fit"
            },
            "small" : {
              "w" : 680,
              "h" : 510,
              "resize" : "fit"
            },
            "medium" : {
              "w" : 1200,
              "h" : 900,
              "resize" : "fit"
            },
            "thumb" : {
              "w" : 150,
              "h" : 150,
              "resize" : "crop"
            }
          }
        }
      ]
    },
    "extended_entities" : {
      "media" : [
        {
          "id" : 858043148114808833,
          "id_str" : "858043148114808833",
          "indices" : [
            0,
            23
          ],
          "media_url" : "http://pbs.twimg.com/media/C-hhsnVXUAESrBA.jpg",
          "media_url_https" : "https://pbs.twimg.com/media/C-hhsnVXUAESrBA.jpg",
          "url" : "https://t.co/4Kk2ol4YDf",
          "display_url" : "pic.twitter.com/4Kk2ol4YDf",
          "expanded_url" : "https://twitter.com/archillect/status/858043152820826113/photo/1",
          "type" : "photo",
          "sizes" : {
            "large" : {
              "w" : 1280,
              "h" : 960,
              "resize" : "fit"
            },
            "small" : {
              "w" : 680,
              "h" : 510,
              "resize" : "fit"
            },
            "medium" : {
              "w" : 1200,
              "h" : 900,
              "resize" : "fit"
            },
            "thumb" : {
              "w" : 150,
              "h" : 150,
              "resize" : "crop"
            }
          }
        }
      ]
    },
    "source" : "<a href=\"http://machinu.net\" rel=\"nofollow\">Archillect</a>",
    "in_reply_to_status_id" : null,
    "in_reply_to_status_id_str" : null,
    "in_reply_to_user_id" : null,
    "in_reply_to_user_id_str" : null,
    "in_reply_to_screen_name" : null,
    "user" : {
      "id" : 2907774137,
      "id_str" : "2907774137",
      "name" : "Archillect",
      "screen_name" : "archillect",
      "location" : "Meta",
      "description" : "The ocular engine. Sources: @archillinks",
      "url" : "https://t.co/U7Oh7xumQp",
      "entities" : {
        "url" : {
          "urls" : [
            {
              "url" : "https://t.co/U7Oh7xumQp",
              "expanded_url" : "http://archillect.com",
              "display_url" : "archillect.com",
              "indices" : [
                0,
                23
              ]
            }
          ]
        },
        "description" : {
          "urls" : [
          ]
        }
      },
      "protected" : false,
      "followers_count" : 332778,
      "friends_count" : 1,
      "listed_count" : 4168,
      "created_at" : "Sat Dec 06 14:07:45 +0000 2014",
      "favourites_count" : 10461,
      "utc_offset" : 10800,
      "time_zone" : "Istanbul",
      "geo_enabled" : false,
      "verified" : false,
      "statuses_count" : 119611,
      "lang" : "en",
      "contributors_enabled" : false,
      "is_translator" : false,
      "is_translation_enabled" : false,
      "profile_background_color" : "050505",
      "profile_background_image_url" : "http://abs.twimg.com/images/themes/theme19/bg.gif",
      "profile_background_image_url_https" : "https://abs.twimg.com/images/themes/theme19/bg.gif",
      "profile_background_tile" : false,
      "profile_image_url" : "http://pbs.twimg.com/profile_images/542430526057881602/mjWPm56H_normal.png",
      "profile_image_url_https" : "https://pbs.twimg.com/profile_images/542430526057881602/mjWPm56H_normal.png",
      "profile_banner_url" : "https://pbs.twimg.com/profile_banners/2907774137/1418102176",
      "profile_link_color" : "191919",
      "profile_sidebar_border_color" : "000000",
      "profile_sidebar_fill_color" : "000000",
      "profile_text_color" : "000000",
      "profile_use_background_image" : false,
      "has_extended_profile" : false,
      "default_profile" : false,
      "default_profile_image" : false,
      "following" : false,
      "follow_request_sent" : false,
      "notifications" : false,
      "translator_type" : "none"
    },
    "geo" : null,
    "coordinates" : null,
    "place" : null,
    "contributors" : null,
    "is_quote_status" : false,
    "retweet_count" : 48,
    "favorite_count" : 68,
    "favorited" : false,
    "retweeted" : false,
    "possibly_sensitive" : false,
    "lang" : "und"
  },
  "retweet_count" : 0,
  "favorite_count" : 0,
  "favorited" : false,
  "retweeted" : false,
  "possibly_sensitive" : false,
  "lang" : "und"
}
""";

// """
// }}}




void retweet () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD1);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);
  assert (t.id == 463208606784311296);
  assert (t.retweeted_tweet != null);
  assert (t.retweeted_tweet.id == 461097667775725569);
  assert (t.source_tweet.author.user_name == "Frozenbyte");
  assert (t.favorite_count == 0);
  assert (t.retweet_count == 6);
  assert (t.source_tweet.author.id == 62574927);
  assert (t.get_mentions ().length == 0);
  assert (t.retweeted_tweet.author.user_name == "Black Forest Games");
  assert (!t.is_flag_set (Cb.TweetState.FAVORITED));
  assert (!t.is_flag_set (Cb.TweetState.RETWEETED));
  assert (!t.is_flag_set (Cb.TweetState.VERIFIED));
  assert (t.source_tweet.reply_id == 0);
  assert (t.my_retweet == 0);
  //assert (!t.has_inline_media);
}



void media_count () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD3);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);
  assert (t.get_screen_name () == "corebirdgtk");
  assert (t.get_medias ().length == 2);
}

void double_media () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD5);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  // See https://github.com/baedert/corebird/issues/627
  // If this was still a problem, the following call would make this test crash
  t.get_filter_text ();
}

void special_quote () {
  /* This is retweet of a tweet that has media attached, but also contains a URL to another tweet.
   * It's *not* a quote tweet, but the retweeted_status field contains a tweet with a quoted_status
   * tweet object attached.
   *
   * The media is attached to both the outmost tweet object (the retweet) as well as the retweeted_tweet
   * object (the retweeted tweet).
   */
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD6);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  /* The expected output here is that the tweet is still a retweet, of course... */
  assert (t.retweeted_tweet != null);

  /* ... but the quoted_status field of the retweeted tweet should effectively be ignored
   * since it also has media attached. */
  assert (t.quoted_tweet == null);


  /* ... I repeat: the retweeted tweet has media attached! */
  assert (t.retweeted_tweet.medias.length > 0);
}

void reply_users () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (REPLY_TWEET_DATA);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  var reply_users = t.get_reply_users ();
  assert (reply_users.length == 9);
}

void empty_display_range () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD7);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  // This should NOT break.
  var s = t.get_filter_text ();

  assert (s.length > 0);
}

void rt_reply () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD8);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  /*
   * The loaded tweet is a retweet of a tweet that replies
   * to 2 users (namely @corebirdgtk and @baedert).
   * @baedert is mentioned directly in the tweet text, before the display_range_start
   * and @corebirdgtk as the in_reply_to_screen_name embedded in the retweeted tweet.
   *
   * The result we want is that the CbTweet is a reply to all the
   * users the retweeted tweet was a reply to, so both @corebirdgtk and @baedert.
   */
  assert (t.retweeted_tweet.reply_users.length == 2);
  /* It's a direct reply to @corebirdgtk, so that should be first */
  assert (t.retweeted_tweet.reply_users[0].screen_name == "corebirdgtk");
  assert (t.retweeted_tweet.reply_users[1].screen_name == "baedert");

  /* Consequently, the ones returned by get_reply_users should be the same. */
  var reply_users = t.get_reply_users ();
  assert (reply_users.length == 2);
  assert (reply_users[0].screen_name == "corebirdgtk");
  assert (reply_users[1].screen_name == "baedert");
}

void entity_count () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD9);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  assert (t.source_tweet.entities.length == 1);
}

void reply_id () {
  var now = new GLib.DateTime.now_local ();
  var t = new Cb.Tweet ();

  var parser = new Json.Parser ();
  try {
    parser.load_from_data (TD10);
  } catch (GLib.Error e) {
    critical (e.message);
  }
  var root = parser.get_root ();

  t.load_from_json (root, 0, now);

  /* The source tweet is a reply, but the quoted one isn't */

  assert (t.source_tweet.reply_id == 858043152820826113);
  assert (t.quoted_tweet != null);
  assert (t.quoted_tweet.reply_id == 0);

  /* source_tweet is a reply, so should definitely have >0 reply_users.
   * This is interesting for this tweet since the tweet text contains
   * a user mention, but it's part of the tweet text and not before
   * the display_range_start.
   */
  assert (t.source_tweet.reply_users.length == 1);

  /* Sanity check: The source_tweet's user mention should still end up being
   * a text entity of course. */
  assert (t.source_tweet.entities.length > 0);
  /* It's the first one. I'm sure. */
  assert (t.source_tweet.entities[0].display_text == "@archillect");
}



int main (string[] args) {
  GLib.Test.init (ref args);
  Settings.init ();
  Gtk.init (ref args);
  Twitter.get ().init ();
  Utils.init_soup_session ();
  // Parsing tweets will otherwise cause media to be downloaded which is an async operation
  // so it might spuriously make these tests fail. Also, we don't care about media here.
  Cb.MediaDownloader.get_default ().disable ();
  GLib.Test.add_func ("/tweet-parsing/retweet", retweet);
  GLib.Test.add_func ("/tweet-parsing/media-count", media_count);
  GLib.Test.add_func ("/tweet-parsing/double-media", double_media);
  GLib.Test.add_func ("/tweet-parsing/special-quote", special_quote);
  GLib.Test.add_func ("/tweet-parsing/reply-users", reply_users);
  GLib.Test.add_func ("/tweet-parsing/empty-display-range", empty_display_range);
  GLib.Test.add_func ("/tweet-parsing/rt-reply", rt_reply);
  GLib.Test.add_func ("/tweet-parsing/entity-count", entity_count);
  GLib.Test.add_func ("/tweet-parsing/reply-id", reply_id);

  return GLib.Test.run ();
}
