
/* Controltag Loader for Pet360 */
(function(){
  var debugging = /kxdebug/.test(location);
  var log = function() {
    // It's a flag, so if it's there, then it means debug.
    debugging && window.console && console.log([].slice.call(arguments).join(' '));
  };

  var load = function(url, callback) {
    log('Loading script from:', url);
    var node = document.createElement('script');
    node.async = true;  // This is just to be friendly.
    node.src = url;

    // Connect to both in case we're in older IE.
    node.onload = node.onreadystatechange = function() {
      var state = node.readyState;
      if (!callback.done && (!state || /loaded|complete/.test(state))) {
        log('Script loaded from:', url);
        callback.done = true;  // Mark the callback, so we don't load it twice on accident.
        callback();
      }
    };

    // Fetch the first script element, so we can insert the
    // controltag before it. There *must* be at least one
    // script element, or this code would never be called
    var sibling = document.getElementsByTagName('script')[0];
    sibling.parentNode.insertBefore(node, sibling);
  };

  // ControlTag simply crashes when opening a website from Twitter browser on
  // iOS, temporarily disable CT when Twitter for iPhone is detected until they
  // fix this (works fine with other twitter client though)
  if (/Twitter for iPhone/.test(window.navigator.userAgent || '')) return;

  var config = {"partner_segment_map": {}, "context_terms": [{"id": "Itjk2R8H", "value": "cat"}, {"id": "Itjk2SHd", "value": "dog"}, {"id": "Itjk2SQb", "value": "kitten"}, {"id": "Itjk2SZZ", "value": "kittens"}, {"id": "Itjk2SjO", "value": "cats"}, {"id": "Itjk2StH", "value": "dogs"}, {"id": "Itjk2S2i", "value": "puppy"}, {"id": "Itjk2TAN", "value": "puppies"}, {"id": "Itjk2TJC", "value": "feline"}, {"id": "Itjk2TVT", "value": "canine"}, {"id": "Itjk2Te5", "value": "cat's"}, {"id": "Itjk2ToV", "value": "dog's"}, {"id": "Itjk2Txd", "value": "kitten's"}, {"id": "Itjk2T7H", "value": "puppy's"}, {"id": "Itjk2UEU", "value": "dogs'"}, {"id": "Itjk2UN_", "value": "cats'"}], "tags": [{"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid) {\r\n      var liveramp_url = 'https://idsync.rlcdn.com/379708.gif?partner_uid=' + kuid;\r\n      var i = new Image();\r\n      i.src = liveramp_url;      \r\n  }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "asap", "method": "document", "type": "publisher", "id": 30771, "name": "LiveRamp user match"}, {"content": "<script type='text/javascript' \r\n        src='//pixel.mathtag.com/sync/js?sync=auto'>\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "asap", "method": "document", "type": "publisher", "id": 43408, "name": "mediamath user match"}, {"content": "<script>\r\n    (function() {\r\n        var kuid = Krux('get', 'user');\r\n        if (kuid) {\r\n            var prefix = location.protocol == 'https:' ? \"https:\" : \"http:\";\r\n            var kurl_params = encodeURIComponent(\"_kuid=\" + kuid + \"&_kdpid=2dd640a6-6ebd-4d4f-af30-af8baa441a0d&dlxid=<na_id>&dlxdata=<na_da>\");\r\n            var kurl = prefix + \"//beacon.krxd.net/data.gif?\" + kurl_params;\r\n            var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&pkey=gpwn29rvapq62&ru=' + kurl;\r\n            var i = new Image();\r\n            i.src = dlx_url;\r\n        }\r\n    })();\r\n</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 8, "content_type": "html", "freq_cap": 1, "timing": "onload", "method": "document", "type": "data provider", "id": 22626, "name": "DataLogix provider tag"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid) {\r\n    Krux('require:http').pixel({\r\n      url: \"//loadm.exelator.com/load\",\r\n      data: {\r\n          _kdpid: 'e4942ff0-4070-4896-a7ef-e6a5a30ce9f9',\r\n          buid: kuid,\r\n          p: '204',\r\n          g: '270',\r\n          j: '0'\r\n      }});\r\n  }\r\n  })();\r\n</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 11, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 22627, "name": "eXelate Media provider tag"}, {"content": "<script type=\"text/javascript\">Krux('social.init');</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "internal": 1, "template_replacement": 1, "execution_results": null, "tier": 1, "library_tag_config": {}, "content_type": "html", "timing": "onload", "method": "document", "type": "library", "id": 21966, "name": "Krux Track Social"}, {"content": "<script>\r\n// this tag is intentionally blank\r\n</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 6, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 21967, "name": "Technographic Data provider tag"}, {"content": "", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 14, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "id": 21968, "name": "Krux Geographic Data provider tag"}, {"content": "<img src=\"//adadvisor.net/adscores/g.js?sid=9212244187&_kdpid=2111c0af-fc3a-446f-ab07-63aa74fbde8e\" />", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 22, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 22776, "name": "AdAdvisor S2S provider tag"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid) {\r\n      var liveramp_url = 'https://idsync.rlcdn.com/379708.gif?partner_uid=' + kuid;\r\n      var i = new Image();\r\n      i.src = liveramp_url;      \r\n  }\r\n})();\r\n</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 21, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 22777, "name": "Acxiom S2S provider tag"}, {"content": "<script>\r\n    (function() {\r\n        var prefix = location.protocol == 'https:' ? \"https\" : \"http\";\r\n        var tm_url = prefix + '://rtd.tubemogul.com/upi/pid/NC4WTmcy?redir=' + prefix + '%3A%2F%2Fbeacon.krxd.net%2Fusermatch.gif%3Fpartner_id%3Dcb276571-e0d9-4438-9fd4-80a1ff034b01%26puid%3D%24%7BTM_USER_ID%7D'\r\n        var i = new Image();\r\n        i.src = tm_url;\r\n    })();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 1, "timing": "onload", "method": "document", "type": "publisher", "id": 66826, "name": "TubeMogul Custom Connet"}, {"content": "<script>\r\n(function(){\r\n        var kuid = Krux('get', 'user');\r\n        if (kuid) {\r\n            var prefix = location.protocol == 'https:' ? \"https:\" : \"http:\";\r\n            var kurl = prefix + '//beacon.krxd.net/usermatch.gif?adnxs_uid=$UID';\r\n            var appnexus_url = '//ib.adnxs.com/getuid?' + kurl\r\n            var i = new Image();\r\n            i.src = appnexus_url;\r\n        }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 1, "timing": "onload", "method": "document", "type": "publisher", "id": 66081, "name": "AppNexus Custom Connect"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  var cbust = Math.round(new Date().getTime() / 1000);\r\n  if (kuid) {\r\n    Krux('require:http').pixel({\r\n      url: \"//ib.adnxs.com/pxj\",\r\n      data: {\r\n          bidder: '140',\r\n          seg: '381342',\r\n          action: \"setuid('\" + kuid + \"')\",\r\n          bust: cbust\r\n      }});\r\n  }\r\n  })();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 30816, "name": "Appnexus Extension User Match"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid && typeof kuid != 'undefined') {\r\n      var prefix = location.protocol == 'https:' ? \"https:\" :\"http:\";\r\n      var r_url = prefix + '//cm.g.doubleclick.net/pixel'\r\n      var kurl = prefix + '//apiservices.krxd.net/um?partner=google&r=' + r_url;\r\n      var i = new Image();\r\n      i.src = kurl;\r\n  }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 30817, "name": "Google User Match"}, {"content": "<script>\r\n(function(){\r\n        var kuid = Krux('get', 'user');\r\n        var prefix = window.location.protocol == 'https:' ? 'https:' : 'http:';\r\n        if (kuid) {\r\n           var url = '//servedby.flashtalking.com/map/?key=ad919e4f211cr5452615&url='\r\n                     + prefix\r\n                     + '//beacon.krxd.net/usermatch.gif?partner=flashtalking&partner_uid=[%FT_GUID%]';\r\n           (new Image()).src = url;\r\n        }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 67193, "name": "Flashtalking Usermatch Pixel"}, {"content": "<script>\r\n// Using UrlPath 1 to produce page attribute url_path_1\r\nKrux('scrape', { \"page_attr_url_path_1z\": {url_path: \"1\"}});\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": 1, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 22952, "name": "Krux Data Transfer Code - zootoo"}, {"content": "<script>\r\n    (function() {\r\n        var kuid = Krux('get', 'user');\r\n        if (kuid) {\r\n            var prefix = location.protocol == 'https:' ? \"https:\" : \"http:\";\r\n            var kurl_params = encodeURIComponent(\"_kuid=\" + kuid + \"&_kdpid=d7158cb7-a851-4e3c-b7ab-cc9e815b2399&dlxid=<na_id>&dlxdata=<na_da>\");\r\n            var kurl = prefix + \"//beacon.krxd.net/data.gif?\" + kurl_params;\r\n            var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&pkey=gwjn34gwjnh86&ru=' + kurl;\r\n            var i = new Image();\r\n            i.src = dlx_url;\r\n        }\r\n    })();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 1, "timing": "onload", "method": "document", "type": "publisher", "id": 64958, "name": "Datalogix Custom User Sync"}, {"content": "<script>\r\n(function(){\r\n  var prefix = location.protocol == 'https:' ? \"https:\" :\r\n\"http:\";\r\n  var r_url = prefix + '//cm.g.doubleclick.net/pixel'\r\n  var kurl = prefix +\r\n'//apiservices.krxd.net/um?partner=google&r=' + r_url;\r\n  var i = new Image();\r\n  i.src = kurl;\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 24052, "name": "Krux Google User Matching"}, {"content": "<script>\r\n(function(){\r\n    var kuid = Krux('get', 'user');\r\n        if (kuid) {\r\n            var prefix = 'https:';\r\n            var rurl = prefix + '//cms.analytics.yahoo.com/cms?partner_id=KRUX';\r\n            var i = new Image();\r\n            i.src = rurl;\r\n        }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 5, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 64793, "name": "Test Yahoo! DataX"}, {"content": "<script>\r\n// Using Meta keywords to produce page attribute keywords\r\nKrux('scrape', { \"page_attr_keywords\": {meta_name: \"keywords\"}});\r\n\r\n// In category Publisher_wide\r\n// Using UrlPath 1 - named section\r\nKrux('scrape', { \"page_attr_url_path_1\": {url_path: \"1\"}});\r\n\r\n// Using UrlPath 2 - named subsection \r\nKrux('scrape', { \"page_attr_url_path_2\": {url_path: \"2\"}});\r\n\r\n// Using UrlPath 3 - named subsubsection\r\nKrux('scrape', { \"page_attr_url_path_3\": {url_path: \"3\"}});\r\n\r\n// Using Globals AdSlot to produce page attribute adslot\r\nKrux('scrape', { \"page_attr_adslot\": {js_global: \"AdSlot\"}});\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": 1, "content_type": "html", "timing": "onready", "method": "document", "type": "publisher", "id": 22306, "name": "Publisher_wide DTC"}], "buckets": [], "publisher": {"uuid": "139bafd1-d596-4e18-ab91-b852b147d98b", "id": 11879, "name": "Pet360"}, "controltag_options": {"async": "true", "render": true}, "site": {"id": 14157, "name": "zootoo"}, "realtime_segments": [{"test": ["and", ["or", ["and", ["or", ["intersects", "$page_attr_url_path_1", "[\"cat\"]"], ["intersects", "$page_attr_url_path_2", "[\"cat-symptom-checker\", \"kitten\"]"], ["intersects", "$page_attr_url_path_3", "[\"cat\", \"male-cat-names-for-kittens\"]"]]]]], "id": "ng32xvmf1"}, {"test": ["and", ["or", ["and", ["or", ["intersects", "$page_attr_url_path_1", "[\"dog\"]"], ["intersects", "$page_attr_keywords:,", "[\"a dog blog\", \"a puppies\", \"best breed of dog\", \"bull dog\", \"bulldog\", \"canine\", \"get puppy\", \"new puppy\", \"puppy\", \"puppy how to\", \"active dogs\", \"acupuncture for dogs\", \"adenoma dog\", \"advil poisoning dogs\", \"advil toxicity dogs\", \"affectionate dog breeds\", \"affectionate dogs\", \"aggressive dog\", \"allergy in dog\", \"alsatian wolfdog\", \"american bulldog\", \"american dog tick\", \"american eskimo dog\", \"anti-diarrheal medications for dogs\", \"arthritis in dog\", \"arthritis in dogs\", \"athletic dog\", \"aural hematoma in dog\", \"australian cattle dogs\", \"avoid dog fights\", \"balanced nutrition for dogs\", \"bark lion sentinel dog\", \"barry dogs\", \"belgian sheep dog\", \"bernese cattle dog\", \"bernese mountain dog\", \"best dog food\", \"best food for dogs\", \"bike trailer for dog\", \"biking with dog\", \"bird dog\", \"bloody diarrhea dog\", \"bulldogs\", \"butcher dog\", \"cancer in dog\", \"cancer in dogs\", \"cancer surgery for dog\", \"canine cancer\", \"canine candidiasis\", \"canine degenerative joint disease\", \"canine distemper\", \"canine distemper virus\", \"canine heart disease\", \"canine herpesvirus\", \"canine hip dysplasia\", \"canine osteoarthritis\", \"canine parvovirus infection\", \"canine seborrhea\", \"canned dog food\", \"car seats for dogs\", \"carriage dog\", \"cat with dog-like personality\", \"changing dogs diet\", \"cute puppy pictures\", \"does my puppy need to be vaccinated\", \"first night with a puppy\", \"first puppy exam\", \"how to train a puppy\", \"introducing a new puppy\", \"kindergarten puppy training\", \"large breed puppy\", \"my new puppy\", \"naming your puppy\", \"new puppy checklist\", \"new puppy checlist\", \"old dog and new puppy\", \"puppies\", \"puppies and cats\", \"puppy and cat\", \"puppy class\", \"puppy food\", \"puppy house training\", \"puppy information\", \"puppy mill\", \"puppy mills\", \"puppy pads\", \"puppy pictures\", \"puppy proof\", \"puppy proofing\", \"puppy pyoderma\", \"puppy supplies\", \"puppy training\", \"puppy vaccinations\", \"top ten puppy apps\", \"train puppy\", \"vomiting puppies\", \"when should i bring my puppy to the vet\", \"why does my puppy itch\", \"bilious vomiting syndrome in dog\", \"cataracts in dogs\", \"changed vision in dog\", \"grey coloration to dogs pupils\", \"intervertebral disc disease and canine hip dysplas\", \"puppy shopping list\", \"american bulldog eyes\", \"beef dog bone\", \"bloat in dog\", \"cataracts in puppy\", \"chronic canine inflammatory hepatic disease\", \"belgian sheepdog\", \"blood clot lung dog\", \"intervertebral disc disease and canine hip dysplas\", \"puppy cannot nurse\", \"puppy not growing\", \"puppy trouble breathing\", \"adopt a dog\", \"barkless dog\", \"fleas on puppies\", \"puppy names\", \"adopt a dog for free\", \"adopted dog\", \"antifreeze poisoning in dogs\", \"biopsy dog\", \"breading dog\", \"intervertebral disc disease and canine hip dysplas\", \"bowel disease in dogs\", \"cattle dog\", \"intervertebral disc disease and canine hip dysplas\", \"amount of food your dog needs\", \"intervertebral disc disease and canine hip dysplas\", \"puppy disease\", \"allergic dog\", \"aggressive puppy\", \"amino acids in dog food\", \"apartment dogs\", \"bouledogue francais\", \"bouledogue fran\\u00ef\\u00bf\\u00bdais\", \"calm dogs\", \"calorie dense food for puppy\", \"can puppies eat foods for adult dogs\", \"do puppies need more calories\", \"do puppies need more fat\", \"do puppies need more protein\", \"growth and development of puppy\", \"intervertebral disc disease and canine hip dysplas\", \"nutritional needs of puppies\", \"special nutrition for puppy\", \"behavior of shelter dog\", \"puppy vaccine\", \"bad breath in dogs\", \"canine hip\", \"intervertebral disc disease and canine hip dysplas\", \"bad puppy\", \"biting puppy\", \"fearful puppy\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"all american dogs\", \"american dog breeds\", \"intervertebral disc disease and canine hip dysplas\", \"australian dogs\", \"cats and dogs\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"what to feed puppy\", \"intervertebral disc disease and canine hip dysplas\", \"puppy vaccination\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"calorie needs for dogs\", \"calorie-dense foods for dogs\", \"canine hip dysplasi\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"aggressive behavior in dog\", \"cardiomyopathy in dogs\", \"intervertebral disc disease and canine hip dysplas\", \"adopt dog\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"anti-social behavior in dog\", \"behavioral development of dogs\", \"behavioral disorders in dogs\", \"can dogs and cats live together\", \"canine influenza virus\", \"infectious diseases in puppies\", \"intervertebral disc disease and canine hip dysplas\", \"socialize your puppy\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"anxiety in dog\", \"about dog training\", \"crate train puppy\", \"how to train puppy\", \"intervertebral disc disease and canine hip dysplas\", \"training a puppy\", \"abort puppies\", \"anxiety disorders in dogs\", \"anxiety in dogs\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"bored dog\", \"can dogs eat grapes\", \"can dogs eat raisins\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"a good food for dogs\", \"a good food for puppies\", \"amino acids in the dogs diet\", \"complete diet for puppy\", \"intervertebral disc disease and canine hip dysplas\", \"behavior problems in dogs\", \"intervertebral disc disease and canine hip dysplas\", \"adopting a dog\", \"intervertebral disc disease and canine hip dysplas\", \"blindness in dog\", \"canine adenovirus type 2 vaccine\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"large breed puppy food\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"bernese mountain dogs\", \"canine influenza\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"dog amputation\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\", \"apartment dog\", \"intervertebral disc disease and canine hip dysplas\", \"intervertebral disc disease and canine hip dysplas\"]"], ["intersects", "$page_attr_keywords:,", "[\"beagle\", \"boston terrier\", \"bull dog\", \"bulldog\", \"cocker spaniel\", \"collie\", \"german shepherd\", \"golden retriever\", \"jack russell terrier\", \"labrador retriever\", \"pekinese\", \"pitt bull\", \"poodle\", \"skye terrier\", \"ull terrier\", \"afghan hounds\", \"airedale terrier\", \"american beagle\", \"american bull terrier club\", \"american bulldog\", \"american cocker spaniel\", \"american cocker spaniels\", \"american foxhound\", \"american pit bull terrier\", \"american staffordshire terrier\", \"and collie eye anomaly\", \"australian shepherd\", \"australian shepherds\", \"basset hound\", \"basset hounds\", \"bearded collie\", \"bedlington terrier\", \"black and tan terrier\", \"bloodhound\", \"boarhound\", \"border collie\", \"border terrier\", \"boston terriers\", \"brittany spaniel\", \"bull\", \"bull baiting\", \"bull terrier\", \"bull terriers\", \"bull-baiting\", \"bullbaiting\", \"bulldogs\", \"bullenbeiser\", \"bullmastiff\", \"bullous\", \"cairn terrier\", \"cairn terriers\", \"citrus rind german shepherd\", \"cocker spaniels\", \"collie eye anomaly\", \"collies\", \"coonhound paralysis\", \"diseases in german shepherd dogs\", \"english beagle\", \"english bull dog\", \"english bulldog\", \"english cocker spaniel\", \"english foxhound\", \"english springer spaniel\", \"english springer spaniels\", \"english toy terrier\", \"farm collie\", \"flat-coated retrievers\", \"fox terrier\", \"foxhound\", \"french poodle\", \"german shepard\", \"german shepherd dog\", \"german shepherds\", \"golden retrievers\", \"greyhound\", \"hannover hound\", \"hound\", \"irish water spaniel\", \"irish wolfhound\", \"italian greyhound\", \"jack russell terriers\", \"japanese terrier\", \"kerry blue terrier\", \"labrador retrievers\", \"manchester terrier\", \"miniature poodle\", \"miniature poodles\", \"norwegian elkhound\", \"old english terrier\", \"otterhound\", \"pack hounds\", \"pit bull\", \"pitbull\", \"poodles\", \"pug\", \"puggles\", \"pugnus\", \"pugs\", \"retriever\", \"rough-coated collies\", \"scenthound\", \"scottish deerhound\", \"scottish terrier\", \"scottish terriers\", \"shepherd\", \"sighthound\", \"silken windhounds\", \"silky terrier\", \"skye terriers\", \"smooth fox terrier\", \"smooth fox terriers\", \"soft coated wheaten terrier\", \"spaniel\", \"spaniels\", \"springer spaniel\", \"standard poodle\", \"terrier\", \"tibetan spaniels\", \"toy bull terrier\", \"toy poodle\", \"walker hounds\", \"water spaniel\", \"west highland terrier\", \"west highland white terrier\", \"west highland white terriers\", \"wheaten terrier\", \"yellow retriever\", \"yorkshire terrier\", \"yorkshire terriers\", \"barukhzy hound\", \"bullet\", \"cavalier king charles spaniel\", \"persian greyhound\", \"pugga bunny\", \"staffordshire bull terrier\", \"staghound\", \"tibetan spaniel\", \"wire fox terriers\", \"american bulldog eyes\", \"lakeland terrier\", \"squirrel spaniel\", \"beauce shepherd\", \"collie nose\", \"mini poodle\", \"parson jack russell terrier\", \"congo terrier\", \"english bulldogs\", \"beauceron shepherd\", \"border collies\", \"fox hound\", \"pharaoh hound\", \"rough collie\", \"terrier mixed breeds\", \"terriers\", \"tibetan terrier\", \"tibetan terriers\", \"scotch terrier\", \"english toy spaniel\", \"are pit bulls aggressive\", \"are pit bulls nice\", \"curly-coated retriever\", \"do pit bulls fight. are pit bulls bred to be agres\", \"french bulldog\", \"national greyhound association\", \"do pit bulls attack people\", \"do pit bulls fight. are pit bulls bred to be agres\", \"pit bull breeding\", \"pit bull fighting\", \"pit bulls\", \"pit bulls good with children\", \"do pit bulls fight. are pit bulls bred to be agres\", \"spring spaniel\", \"black and tan rough terrier\", \"black and tan toy terrier\", \"chinese cocker spaniels\", \"do pit bulls fight. are pit bulls bred to be agres\", \"otterhounds\", \"setting spaniel\", \"toy fox terrier\", \"toy machester terrier\", \"toy manchester terrier\", \"do pit bulls fight. are pit bulls bred to be agres\", \"elkhound\", \"coonhound\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"catahoula hound\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"rat terrier\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"chesapeake bay retriever\", \"do pit bulls fight. are pit bulls bred to be agres\", \"field spaniel\", \"highland collie\", \"mountain collie\", \"mustard terrier\", \"do pit bulls fight. are pit bulls bred to be agres\", \"walker hound\", \"american water spaniel\", \"cavalier king charles spaniels\", \"coverwood terrier\", \"do pit bulls fight. are pit bulls bred to be agres\", \"king charles spaniels\", \"do pit bulls fight. are pit bulls bred to be agres\", \"aberdeen terrier\", \"terrier group\", \"alpine spaniel\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"scent hound\", \"black and tan coonhound\", \"do pit bulls fight. are pit bulls bred to be agres\", \"irish terrier\", \"virginia foxhound\", \"wolfhound\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"do pit bulls fight. are pit bulls bred to be agres\", \"talbot hounds\", \"gazelle hound\", \"do pit bulls fight. are pit bulls bred to be agres\", \"norwich terrier\", \"welsh springer spaniels\", \"do pit bulls fight. are pit bulls bred to be agres\", \"greyhounds\", \"indy the pitbull dog\", \"flat-coated retriever\", \"black russian terrier\", \"mustaterrieri\"]"], ["intersects", "$page_attr_url_path_2", "[\"dog-symptom-checker\", \"puppy\", \"puppycenter\", \"purelypuppy\", \"dogparks\"]"], ["intersects", "$page_attr_keywords:,", "[\"labrador retriever\", \"labradoodle\", \"labrador\", \"labrador retrievers\"]"]]]]], "id": "nky3fu1s5"}], "dnt": null, "params": {"connector_host": "connector.krxd.net", "first_party_uid": false, "control_tag_load_sync": "false", "userData_host": "cdn.krxd.net", "disable_http_compression": false, "remove_kxhead": true, "supertag_requires_approval": false, "control_tag_namespace": null, "control_tag_stats_prefix": null, "beacon_host": "beacon.krxd.net", "control_tag_pixel_throttle": null, "store_realtime_segments": false, "user_id_cookie": null, "max_segments": null, "no_pii": 0, "recommend": false, "revenue_optimization": false, "context_terms": "true", "jslog_host": "jslog.krxd.net", "buckets": "", "site_level_supertag_config": "site", "max_slot_time": 1000, "services_host": "apiservices.krxd.net", "capture_leakage": true, "client_side_storage": "localStorage,cookie", "fingerprint": false, "config_source": 1, "control_tag_version": "steady", "capture_js_errors": "true", "datatag_version": "3", "dfp_premium": "true", "userdata_host": "cdn.krxd.net", "target_fingerprint": false}, "services": {"event": "//beacon.krxd.net/event.gif", "impression": "//beacon.krxd.net/ad_impression.gif", "stats": "//apiservices.krxd.net/stats", "log": "//jslog.krxd.net/jslog.gif", "optout": "//beacon.krxd.net/optout_check", "um": "//apiservices.krxd.net/um", "pixel": "//beacon.krxd.net/pixel.gif", "contentConnector": "//connector.krxd.net/content_connector/", "is_optout": "//beacon.krxd.net/optout_check", "set_optin": "//apiservices.krxd.net/consumer/optin", "social": "//beacon.krxd.net/social.gif", "set_optout": "//apiservices.krxd.net/consumer/optout", "userData": "//cdn.krxd.net/userdata/get", "data": "//beacon.krxd.net/data.gif", "userdata": "//cdn.krxd.net/userdata/get", "addSegment": "//cdn.krxd.net/userdata/add"}, "geo": {}, "segments": [], "confid": "Ia1NKsMT"};

  // Wrap in a function and comment, then toString the func and replace
  // everything that's not the beginning or end of a JSON object, so we get a
  // string that's either empty or JSON.
  var esiGeo = String(function(){/*
    {"CONTINENT":"NA", "COUNTRY":"CA", "REGION":"QC", "CITY":"Montréal", "DMA":"0", "AREACODE":"0", "ZIP":"H3G", "LATITUDE":"45.499", "LONGITUDE":"-73.579"}
  */}).replace(/^.*\/\*[^{]+|[^}]+\*\/.*$/g, '');

  if (esiGeo) {
    log('Got a request for:', esiGeo, 'adding geo to config.');
    try {
      config.geo = window.JSON.parse(esiGeo);
    } catch (__) {
      // Couldn't parse, so setting to {}
      log('Unable to parse geo from:', config.geo);
      config.geo = {};
    }
  }

  
  
  

  load('//cdn.krxd.net/ctjs/controltag.js.875fd5b280a77e06def8c74a5a268e2c', function() {
    
    
    log('Loading krux configuration.');

    Krux('config', config);

    
  });
})();
