{
  "pages": {
    "show-gif-again": [
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:%5B%22https%3A%2F%2Fi.ibb.co%2FxjLQpp0%2Fba72208181c74cc7421da6a425a0a2fa20dff7b6.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2F3dZx8vw%2F82236c9acca936235bec400e737b55f5956eeb0d.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FYj6NDQm%2F9569cc212490f19eaf4a558983ebb4bac2cf9ea9.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FWnWskSd%2F1fe68b9ac31613f17e81ca0b0e6b3a15b6d680a3.gif%22%2C%22https%3A%2F%2Fi.ibb.co%2Frp0gkvf%2F2c8b4cd389b113ae3fbb7f931bf038d276869657.gif%22%2C%22https%3A%2F%2Fi.ibb.co%2FKXVhdN8%2F8245d5b2248d446d304c0eaf1c203c206ed3ab4a.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FsQT4NWw%2Fb378cbe16ab617fbc9747a93a63f59920f855c53.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FXjbzr9B%2Fe5089f0ba96ca1c3be94026dee601df220a7353e.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FqmPRGrz%2F23937365.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FtM7LqmZ%2F23960826.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FSymtk65%2F24043714.webp%22%5D)"
        }
      },
      {
        "say": {
          "label": "<p>Okay...  This one, right?</p>",
          "mode": "custom",
          "duration": "10s",
          "allowSkip": true
        }
      },
      {
        "image": {
          "locator": "gallery:e555e68b-fac5-46a3-9df8-d51092ab0f22/*"
        }
      },
      {
        "timer": {
          "duration": "3s",
          "isAsync": true,
          "commands": [
            {
              "eval": {
                "script": "// oeos-timer-loops-0  (Tell oeos to loop forever)"
              }
            },
            {
              "image": {
                "locator": "gallery:e555e68b-fac5-46a3-9df8-d51092ab0f22/*"
              }
            }
          ],
          "style": "hidden"
        }
      },
      {
        "say": {
          "label": "<p>Now back to my show...</p>"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "module-missing": [
      {
        "image": {
          "locator": "gallery:735c4bbe-f318-4993-809a-a71f258f3678/1104248"
        }
      },
      {
        "say": {
          "label": "<p>Sorry, this tease  can only be played on Open EOS (OEOS).</p>",
          "mode": "instant"
        }
      },
      {
        "say": {
          "label": "<p>Head over to:</p><p><span style=\"color: #b3e5fc\"></span><span style=\"color: #29b6f6\"><eval>playerLink</eval></span><span style=\"color: #b3e5fc\"></span></p><p>To try it out!</p>"
        }
      }
    ],
    "module-update": [
      {
        "image": {
          "locator": "gallery:735c4bbe-f318-4993-809a-a71f258f3678/1104248"
        }
      },
      {
        "say": {
          "label": "<p>Oh no!  You&#39;re trying to play this tease on v<eval>pages.oeosVersion()</eval> of OEOS!</p><p>Sorry, but I need all the newest things in v<eval>minVersion</eval>.</p>",
          "mode": "instant"
        }
      },
      {
        "say": {
          "label": "<p>This link should be for the newest version:</p><p><span style=\"color: #b3e5fc\"></span><span style=\"color: #29b6f6\"><eval>playerLink</eval></span><span style=\"color: #b3e5fc\"></span></p>"
        }
      }
    ],
    "start": [
      {
        "eval": {
          "script": "if (!pages.oeosVersion) {\r\n  pages.goto('module-missing')\r\n} else if (pages.oeosVersion(minVersion) < 0) {\r\n  pages.goto('module-update')\r\n}"
        }
      },
      {
        "if": {
          "condition": "!Image.webpAnimation()",
          "commands": [
            {
              "image": {
                "locator": "gallery:e555e68b-fac5-46a3-9df8-d51092ab0f22/1104321"
              }
            },
            {
              "say": {
                "label": "<p>Oh no!  Looks like your browser is too old to play some of my animations!</p>",
                "mode": "autoplay",
                "allowSkip": true
              }
            },
            {
              "say": {
                "label": "<p> You can still try to play, but you may get some broken images.</p>",
                "mode": "instant"
              }
            },
            {
              "choice": {
                "options": [
                  {
                    "label": "Okay",
                    "commands": []
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "eval": {
          "script": "pages.preload('big-deal')\r\npages.preload('show-me-more')\r\npages.preload('show-gif-again')"
        }
      },
      {
        "image": {
          "locator": "gallery:735c4bbe-f318-4993-809a-a71f258f3678/1104256"
        }
      },
      {
        "say": {
          "label": "<p>Hey!  Welcome to the Open EOS (OEOS) Demo!</p>",
          "mode": "autoplay",
          "allowSkip": true
        }
      },
      {
        "say": {
          "label": "<p>With OEOS, we can do things in EOS we couldn&#39;t do before, like...</p>",
          "mode": "autoplay",
          "allowSkip": true
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:%5B%22https%3A%2F%2Fi.ibb.co%2FxjLQpp0%2Fba72208181c74cc7421da6a425a0a2fa20dff7b6.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2F3dZx8vw%2F82236c9acca936235bec400e737b55f5956eeb0d.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FYj6NDQm%2F9569cc212490f19eaf4a558983ebb4bac2cf9ea9.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FWnWskSd%2F1fe68b9ac31613f17e81ca0b0e6b3a15b6d680a3.gif%22%2C%22https%3A%2F%2Fi.ibb.co%2Frp0gkvf%2F2c8b4cd389b113ae3fbb7f931bf038d276869657.gif%22%2C%22https%3A%2F%2Fi.ibb.co%2FKXVhdN8%2F8245d5b2248d446d304c0eaf1c203c206ed3ab4a.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FsQT4NWw%2Fb378cbe16ab617fbc9747a93a63f59920f855c53.webp%22%2C%22https%3A%2F%2Fi.ibb.co%2FXjbzr9B%2Fe5089f0ba96ca1c3be94026dee601df220a7353e.webp%22%5D)"
        }
      },
      {
        "say": {
          "label": "<p>Show Animated GIFs...</p>",
          "mode": "custom",
          "duration": "5s",
          "allowSkip": true
        }
      },
      {
        "image": {
          "locator": "gallery:e555e68b-fac5-46a3-9df8-d51092ab0f22/*"
        }
      },
      {
        "timer": {
          "duration": "3s",
          "isAsync": true,
          "commands": [
            {
              "eval": {
                "script": "// oeos-timer-loops-0  (Tell OEOS to loop forever)"
              }
            },
            {
              "image": {
                "locator": "gallery:e555e68b-fac5-46a3-9df8-d51092ab0f22/*"
              }
            }
          ],
          "style": "hidden"
        }
      },
      {
        "say": {
          "label": "<p>Or show a slide show while waiting for a choice...</p>",
          "mode": "instant"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "big-deal": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .clearBubbles(1) // Keep last bubble\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })"
        }
      },
      {
        "eval": {
          "script": "var forumLink = '<a href=\"https://milovana.com/forum/viewtopic.php?f=2&t=23533\">https://milovana.com/forum/viewtopic.php?f=2&t=23533</a>'\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2FQbC2dRV%2F23794538.webp)"
        }
      },
      {
        "say": {
          "label": "<p>Well, those things, <eval>&#39;&lt;a href=&quot;https://github.com/fapnip/openeos/wiki/~-OEOS-Tease-List&quot;&gt;and more&lt;/a&gt;&#39;</eval>, weren&#39;t possible before. </p><p>But hey, head <eval>&#39;&lt;a href=&quot;https://milovana.com/forum/viewtopic.php?f=2&amp;t=23533&quot;&gt;back to the forums&lt;/a&gt;&#39;</eval> and let fapnip know you hate it!</p>",
          "mode": "pause"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice().visible(1, false)"
        }
      }
    ],
    "show-me-more": [
      {
        "eval": {
          "script": "pages.clearBubbles(1) // Keep last bubble\r\npages.preload(\"surprise\")\r\npages.preload(\"roller-skates\")\r\npages.preload(\"piano\")\r\n\r\n// var loopTimer\r\n// Keep track of when gif was loaded and started\r\nvar imageStartTime = Date.now()  // Use current time for now\r\nvar restartGifInterval // We'll need this later\r\nvar imageLoopDuration = 2700 // Animation lasts for 2700ms\r\n\r\n;(function () {\r\n  function restartGif(resetInterval) {\r\n    pages.restartImage(function(e){\r\n        imageStartTime = e.timeStamp\r\n        // console.log('Restarted GIF')\r\n        if (resetInterval) setRestartInterval()\r\n      })\r\n  }\r\n  function setRestartInterval() {\r\n    clearInterval(restartGifInterval)\r\n    restartGifInterval = setInterval(function() {\r\n      // Restart gif every 5 iterations to keep us in sync\r\n      restartGif()\r\n    }, imageLoopDuration * 5)\r\n  }\r\n  function recordImageStartTime(e) {\r\n    // loopTimer = setInterval(function() {\r\n    //   var msIntoLoop = (Date.now() - imageStartTime) % imageLoopDuration\r\n    //   console.log('Gif loop')\r\n    //   console.log('MS into loop', msIntoLoop)\r\n    // }, 2700)\r\n    imageStartTime = e.timeStamp // Update with time gif actually loaded\r\n    // Restart gif now to make sure we're in sync\r\n    // We may see a little judder on slower systems, or in firefox.\r\n    // (Could probably hide the image until restart to hide the judder)\r\n    restartGif(true)\r\n    // We're done listening for a load\r\n    pages.removeEventListener(\"image-load\", recordImageStartTime)\r\n  }\r\n  function visibilitychange(e) {\r\n    if (pages.visibilityState() === 'visible') {\r\n      // Returned from a different tab.  Restart gif so we're in-sync\r\n      console.log('Returned from another tab')\r\n      restartGif(true)\r\n    }\r\n  }\r\n  pages.addEventListener(\"image-load\", recordImageStartTime)\r\n  pages.addEventListener(\"visibilitychange\", visibilitychange)\r\n  pages.addOnNextPageChange(function () {\r\n    // Make sure we're not listening for a load and longer\r\n    pages.removeEventListener(\"image-load\", recordImageStartTime)\r\n    pages.removeEventListener(\"visibilitychange\", visibilitychange)\r\n    // clearTimeout(loopTimer)\r\n  })\r\n}())\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2FY3h919x%2F24017618.webp)"
        }
      },
      {
        "eval": {
          "script": ";(function () {\r\n  var clearSayTimeout\r\n  var touchPussyCount = 0\r\n  var touchCrackCount = 0\r\n  // Fuction to call when the image is clicked\r\n  function clickMyTits(e) {\r\n    // Don't allow anyone else to handle this click\r\n    e.stopImmediatePropagation()\r\n    // Get our coordinates\r\n    var x = e.value.x\r\n    var y = e.value.y\r\n    // Estimate how far into the GIF loop we are.\r\n    // Note: This will wander over time.\r\n    //  There is no real way to track a gif in JS, other than\r\n    //  fetching it, decoding it, and displaying it frame by frame,\r\n    //  and we can't do that in OEOS because of CORS.\r\n    //  So, we just deal with the fact that dropped frames, etc.,\r\n    //  will happen, and our msIntoLoop will eventually go out of sync\r\n    //  by restarting the gif from time to time (see other eval action)\r\n    var msIntoLoop = (e.timeStamp - imageStartTime) % imageLoopDuration\r\n    console.log(\"MS into loop\", msIntoLoop)\r\n    clearTimeout(clearSayTimeout)\r\n    pages.clearBubbles()\r\n    if (\r\n      msIntoLoop < 1100 &&\r\n      x >= 0.089 && x <= 0.381 &&\r\n      y >= 0.322 && y <= 0.472\r\n    ) {\r\n      // Probably trying to click on the piano\r\n      clearClickMyTits()\r\n      new Say({\r\n        label: \"<p>The piano? Really?</p>\",\r\n        mode: \"autoplay\",\r\n        onContinue: function () {\r\n          new Say({\r\n            label: \"<p>If that's what does it for ya...</p>\",\r\n            mode: \"autoplay\",\r\n            onContinue: function () {\r\n              pages.goto('piano')\r\n            },\r\n          })\r\n        },\r\n      })\r\n    } else if (\r\n      msIntoLoop > 1240 && msIntoLoop < 1400 &&\r\n      x >= 0.06 && x <= 0.18 &&\r\n      y >= 0.22 && y <= 0.7\r\n    ) {\r\n      // Probably trying to click on the roller skater\r\n      clearClickMyTits()\r\n      new Say({\r\n        label: \"<p>You want her?</p>\",\r\n        mode: \"autoplay\",\r\n        onContinue: function () {\r\n          new Say({\r\n            label: \"<p>Fine...</p>\",\r\n            mode: \"autoplay\",\r\n            onContinue: function () {\r\n              pages.goto('roller-skates')\r\n            },\r\n          })\r\n        },\r\n      })\r\n    } else if (\r\n      msIntoLoop > 2050 &&\r\n      x >= 0.70 && x <= 0.79 &&\r\n      y >= 0.15 && y <= 0.468\r\n    ) {\r\n      // Clicked on the room in the back\r\n      clearClickMyTits()\r\n      new Say({\r\n        label: \"<p>Want to look out there?</p>\",\r\n        mode: \"autoplay\",\r\n        onContinue: function () {\r\n          new Say({\r\n            label: \"<p>Okay...</p>\",\r\n            mode: \"autoplay\",\r\n            onContinue: function () {\r\n              pages.goto('bounce')\r\n            },\r\n          })\r\n        },\r\n      })\r\n    } else if (x >= 0.3327 && x <= 0.6497 && y >= 0.4007 && y <= 0.5021) {\r\n      if (msIntoLoop > 430 && msIntoLoop < 1100) {\r\n        // Clicked near tits, but while turned around\r\n        new Say({\r\n          label: \"<p>Like my back?</p>\",\r\n          onContinue: function () {\r\n            pages.clearBubbles()\r\n          },\r\n        })\r\n        clearSayTimeout = setTimeout(function () {\r\n          pages.clearBubbles()\r\n        }, 1800)\r\n      } else {\r\n        // Got near the tits\r\n        clearClickMyTits()\r\n        new Say({ label: \"<p>That's it!</p>\" })\r\n        new Say({\r\n          label: \"<p>Now, get closer!</p>\",\r\n          mode: \"autoplay\",\r\n          onContinue: function () {\r\n            pages.goto('surprise')\r\n          },\r\n        })\r\n        // clearSayTimeout = setTimeout(function () {\r\n        //   pages.clearBubbles()\r\n        // }, 1800)\r\n      }\r\n    } else if (x >= 0.382 && x <= 0.6711 && y >= 0.7661 && y <= 0.98) {\r\n      if (msIntoLoop > 230 && msIntoLoop < 1100) {\r\n        // clicking the ass\r\n        pages.preload('ass')\r\n        if (touchCrackCount >= 1 && \r\n            msIntoLoop > 400 && msIntoLoop < 950 &&\r\n            x >= 0.40 && x <= 0.54 &&\r\n            y >= 0.830 && y <= 0.944\r\n          ) {\r\n          // Clicked very close to the crack\r\n          touchCrackCount++\r\n          if (touchCrackCount > 2) {\r\n            clearClickMyTits()\r\n            new Say({\r\n              label: \"<p>That's what you like?!</p>\",\r\n              mode: \"autoplay\",\r\n              onContinue: function () {\r\n                new Say({\r\n                label: \"<p>Here...</p>\",\r\n                mode: \"autoplay\",\r\n                onContinue: function () {\r\n                  pages.goto('ass')\r\n                },\r\n              })\r\n              },\r\n            })\r\n          } else {\r\n            new Say({\r\n              label: \"<p>Hey! Watch it!</p>\",\r\n              onContinue: function () {\r\n                pages.clearBubbles()\r\n              },\r\n            })\r\n            clearSayTimeout = setTimeout(function () {\r\n              pages.clearBubbles()\r\n            }, 1800)\r\n          }\r\n        } else {\r\n          if (touchCrackCount < 1) touchCrackCount ++\r\n          new Say({\r\n            label: \"<p>Hands off my ass!</p>\",\r\n            onContinue: function () {\r\n              pages.clearBubbles()\r\n            },\r\n          })\r\n          clearSayTimeout = setTimeout(function () {\r\n            pages.clearBubbles()\r\n          }, 1800)\r\n        }\r\n      } else {\r\n        touchPussyCount++\r\n        var label = '<p style=\"color:black;\"><b>Hey! Not there!</b></p>'\r\n        var color = '#fca3ff'\r\n        var mode = 'pause'\r\n        if (touchPussyCount > 1) {\r\n          label = '<p style=\"color:black;\"><b>Not there!</b></p>'\r\n          // They're probably going to figure it out\r\n          // Preload the page\r\n          pages.preload(\"lick\")\r\n        }\r\n        if (touchPussyCount > 2) {\r\n          label = '<p style=\"color:black;\"><b>Seriously! Stop!</b></p>'\r\n          var color = '#ff59e3'\r\n        }\r\n        if (touchPussyCount > 3) {\r\n          label = '<p style=\"color:black;\"><b>Come on! Don\\'t!</b></p>'\r\n          var color = '#ff4a95'\r\n        }\r\n        if (touchPussyCount > 4) {\r\n          label = '<p style=\"color:black;\"><b>Enough!</b></p>'\r\n          var color = '#ff2982'\r\n          clearClickMyTits()\r\n          mode = 'autoplay'\r\n        }\r\n        new Say({\r\n          label: label,\r\n          color: color,\r\n          mode: mode,\r\n          onContinue: function () {\r\n            if (touchPussyCount > 4) {\r\n              new Say({\r\n                label: \"<p>Now I'm thinking about it...</p>\",\r\n                mode: \"autoplay\",\r\n                onContinue: function () {\r\n                  pages.goto('lick')\r\n                },\r\n              })\r\n            } else {\r\n              pages.clearBubbles()\r\n            }\r\n          },\r\n        })\r\n        clearSayTimeout = setTimeout(function () {\r\n          if (touchPussyCount <= 4) pages.clearBubbles()\r\n        }, 1000)\r\n      }\r\n    } else if (x >= 0.391 && x <= 0.56 && y >= 0.071 && y <= 0.262) {\r\n      new Say({\r\n        label: \"<p>Don't poke my head!</p>\",\r\n        onContinue: function () {\r\n          pages.clearBubbles()\r\n        },\r\n      })\r\n      clearSayTimeout = setTimeout(function () {\r\n        pages.clearBubbles()\r\n      }, 1800)\r\n    } else if (x < 0.209 || x > 0.8) {\r\n      new Say({\r\n        label: \"<p>Hint: My tits are somewhere on my body!</p>\",\r\n        onContinue: function () {\r\n          pages.clearBubbles()\r\n        },\r\n      })\r\n      clearSayTimeout = setTimeout(function () {\r\n        pages.clearBubbles()\r\n      }, 1800)\r\n    } else {\r\n      new Say({\r\n        label: \"<p>You know what tits are, right?</p>\",\r\n        onContinue: function () {\r\n          pages.clearBubbles()\r\n        },\r\n      })\r\n      clearSayTimeout = setTimeout(function () {\r\n        pages.clearBubbles()\r\n      }, 1500)\r\n    }\r\n    console.log(\"Got Image Click\", x, y)\r\n  }\r\n\r\n  function clickMyTitsPageMiss(e) {\r\n    // Clicked outside of the image area\r\n    var x = e.value.x\r\n    var y = e.value.y\r\n    clearTimeout(clearSayTimeout)\r\n    pages.clearBubbles()\r\n    new Say({\r\n      label: \"<p>What do you expect to find out there?</p>\",\r\n      onContinue: function () {\r\n        pages.clearBubbles()\r\n      },\r\n    })\r\n    clearSayTimeout = setTimeout(function () {\r\n      pages.clearBubbles()\r\n    }, 1500)\r\n    console.log(\"Got Page Click\", x, y)\r\n  }\r\n\r\n  function clearClickMyTits() {\r\n    clearTimeout(clearSayTimeout)\r\n    clearInterval(restartGifInterval)\r\n    pages.removeEventListener(\"click\", clickMyTitsPageMiss)\r\n    pages.removeEventListener(\"image-click\", clickMyTits)\r\n  }\r\n\r\n  pages.addEventListener(\"click\", clickMyTitsPageMiss)\r\n  pages.addEventListener(\"image-click\", clickMyTits)\r\n\r\n  pages.addOnNextPageChange(function () {\r\n      clearClickMyTits()\r\n    })\r\n}())"
        }
      },
      {
        "say": {
          "label": "<p>Okay. Touch my tits!</p>",
          "mode": "instant"
        }
      },
      {
        "noop": {
          "eval": {
            "script": "showMeMoreChoice().visible(0, false)"
          }
        }
      }
    ],
    "surprise": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2F1fXfzjn%2F20786292.gif)"
        }
      },
      {
        "timer": {
          "duration": "$1500",
          "style": "hidden"
        }
      },
      {
        "say": {
          "label": "<p>Open wide!</p>",
          "mode": "custom",
          "duration": "5s",
          "allowSkip": true
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "roller-skates": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2F4tdGnz2%2F23194984.webp)"
        }
      },
      {
        "timer": {
          "duration": "$1500",
          "style": "hidden"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "bounce": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2FRh1zcyX%2Fa45c0233f7377c0a1a069db739957d55.gif)"
        }
      },
      {
        "timer": {
          "duration": "$2000",
          "style": "hidden"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "lick": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2FHngQs9s%2Ftumblr-p61smjlg-Jx1rj5xrlo1-500.gif)"
        }
      },
      {
        "timer": {
          "duration": "$2000",
          "style": "hidden"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "piano": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2FtJCK6S5%2Fezgif-6-f98e122a234d.webp)"
        }
      },
      {
        "timer": {
          "duration": "$2000",
          "style": "hidden"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ],
    "ass": [
      {
        "eval": {
          "script": "var wasFullHeight = pages.fullHeightImage()\r\npages\r\n  .fullHeightImage(true) // Make the image full height\r\n  .addOnNextPageChange(function() {\r\n    pages.fullHeightImage(wasFullHeight) // Reset to normal on exit\r\n  })\r\n"
        }
      },
      {
        "image": {
          "locator": "file:placeholder.jpg+(|oeos:https%3A%2F%2Fi.ibb.co%2Fhx6C5Q5%2Fezgif-7-6f87439f9b86.webp)"
        }
      },
      {
        "timer": {
          "duration": "$2000",
          "style": "hidden"
        }
      },
      {
        "eval": {
          "script": "showMeMoreChoice()"
        }
      }
    ]
  },
  "galleries": {
    "735c4bbe-f318-4993-809a-a71f258f3678": {
      "name": "Demo",
      "images": [
        {
          "id": 1104248,
          "hash": "c41ae4de4b518356da34545f0a86eebe08103e4f",
          "size": 265331,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104250,
          "hash": "7b7b06954ef0a4b22055ef3c710bc2b0fb3240b9",
          "size": 177152,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104256,
          "hash": "0d1ae266850e199b45bf404ff29f8e39dc6fcee5",
          "size": 195367,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104257,
          "hash": "ee22e16aac8f76d9cb0464dbf16966f82d2de07b",
          "size": 281427,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104258,
          "hash": "b9e9bc182b631378a2f47e9040bf0843cba35303",
          "size": 281617,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104259,
          "hash": "2477d869a9792c6053f8415ba0e6a06c997bffe1",
          "size": 271501,
          "width": 2500,
          "height": 1667
        }
      ]
    },
    "e555e68b-fac5-46a3-9df8-d51092ab0f22": {
      "name": "Slides",
      "images": [
        {
          "id": 1104287,
          "hash": "2af7dffe3ae551e18ea1411cd9eeb3a3b3f85bfd",
          "size": 197299,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104288,
          "hash": "9d6ad830b28821773037de5b254afb5c6b2f80aa",
          "size": 197524,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104289,
          "hash": "5d56523b3826771c0994b9ec496bfae9f6e527bf",
          "size": 240335,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104290,
          "hash": "275b867dedcbeb53faf04f6dc95768a73df0a705",
          "size": 355168,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104292,
          "hash": "fafe1db0340b64a236743d046a230d5ab91f5c1c",
          "size": 336409,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104293,
          "hash": "cf55afd8c35bd4e17fa4c46248e623b8f0a1daf1",
          "size": 281962,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104294,
          "hash": "3478da7998925fd20fc50999b3ce84c9121ce998",
          "size": 391117,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104295,
          "hash": "e5f22f8a37232b5255f63d7d8c5510bc5e0717b3",
          "size": 300153,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104296,
          "hash": "f618759ace1299bef063a7b5248da15bc9b02fbc",
          "size": 258161,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104259,
          "hash": "2477d869a9792c6053f8415ba0e6a06c997bffe1",
          "size": 271501,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104297,
          "hash": "7a27ed88cc297a41e40e32d997038a9b273bf535",
          "size": 261757,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104298,
          "hash": "0c06ee6c66c4c2fbb58f02da0403d45331c9db59",
          "size": 346270,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104299,
          "hash": "b3a3c75c0a713049a2d2f39b91308878ddc582b0",
          "size": 422149,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104300,
          "hash": "22508fe39a469d65847d4b2f32731e1b20955138",
          "size": 334552,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104257,
          "hash": "ee22e16aac8f76d9cb0464dbf16966f82d2de07b",
          "size": 281427,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104301,
          "hash": "7b8a718b95c4f7f52a534283f7caf25d89b73d85",
          "size": 248174,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104258,
          "hash": "b9e9bc182b631378a2f47e9040bf0843cba35303",
          "size": 281617,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104302,
          "hash": "9d3d769aa3a4caf5d9ab2bc6cce8d9e562a0726f",
          "size": 281654,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104303,
          "hash": "7745688a13e322a25e860f4129121a269d2432e2",
          "size": 266706,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104304,
          "hash": "2332bb3078ffeb4baec2fcae74da594cb81e837d",
          "size": 439072,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104305,
          "hash": "bc9cf980446d8b0df4b8abcc14ddc11f7364d14a",
          "size": 269555,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104306,
          "hash": "3d98abb3bf4c6901105cc5cd91069b216ae8be36",
          "size": 259643,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104307,
          "hash": "348542080c3563fd2e6a59111ff309ff421fc9cc",
          "size": 222774,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104308,
          "hash": "8e3fbb4f440dec0d871c10ddf4e4d9fe3fd912d0",
          "size": 270986,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104309,
          "hash": "e700042b0b3dccb52bc453d6d1d44ad1f050b8e2",
          "size": 289950,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104310,
          "hash": "78522a7b0382a1bc43dc8507dc7fd1c7adf91f97",
          "size": 288844,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104311,
          "hash": "88fe949ab6a3c6b18f538e064245d8f8395549cd",
          "size": 236212,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104312,
          "hash": "fe99fd8a7a638bd760038939be39d70a5fa47d33",
          "size": 271829,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104313,
          "hash": "ec5e952b04da20fe600ecfca07db2b061b09253c",
          "size": 234672,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104314,
          "hash": "7a1f874fce0d17afbf9b15f77e0fc1dbe9ecf3fc",
          "size": 311078,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104315,
          "hash": "5e0d259b83aebdabbde77a893e3fcebabb11bb0b",
          "size": 409732,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104316,
          "hash": "7eb69b9a1563273a42fa7bfa77f3c8dbc5fa24af",
          "size": 286361,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104317,
          "hash": "afc58ee569a532278fab03129068be66d1ceff42",
          "size": 278718,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104318,
          "hash": "9d7e6a0ba656bf4f56ab6fc24a40da5e699363c0",
          "size": 426039,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104319,
          "hash": "2ee6332ac87413983c6f34e5d7ed2220994d3d30",
          "size": 232304,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104320,
          "hash": "1d40e20cfe5e2952193835e88d530fa6bebfa6ec",
          "size": 241465,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104321,
          "hash": "14cfd446e1e827c63b8811c292a9cf5931dfc69d",
          "size": 203237,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104322,
          "hash": "7f73ad49e1f7c3f63dbc7d7174b8856fe7c730af",
          "size": 254979,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104323,
          "hash": "ca9904867cfa6017cbc81b7e8ced26d5cf27acc7",
          "size": 232168,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104324,
          "hash": "e4b1aa829b95808364ddef4e81f1a0a2ea06de88",
          "size": 339843,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104325,
          "hash": "a8b8b5d5a50875781ed56ce0daa2cd5ba40f4057",
          "size": 245747,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104326,
          "hash": "a170491f2a5cd4ff3e6b1c2e92c0e3ee73c2fbd8",
          "size": 240459,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104327,
          "hash": "66fc248e453b4a010b0ea0dd5ec93a084b587a1e",
          "size": 350423,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104328,
          "hash": "bd3fc30f89222c8b110408c220ff8fd77cb66ce1",
          "size": 251810,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104256,
          "hash": "0d1ae266850e199b45bf404ff29f8e39dc6fcee5",
          "size": 195367,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104329,
          "hash": "687b4129157b03ba88ceca3bbb3442fa5afb3fcd",
          "size": 373125,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104330,
          "hash": "e6ca420a6764757be6110437a5dba0d7d2f398ba",
          "size": 272454,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104331,
          "hash": "2cb20d0c7f6a2ba48d9a6ea2421a809212b32d5b",
          "size": 270272,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104332,
          "hash": "449d95862d1e41d19343bd41073c3da7fee5268b",
          "size": 227824,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104333,
          "hash": "1f8235cb5c63226d3751681b554bb29fa420dd15",
          "size": 254333,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104334,
          "hash": "c66d1981e10422fb3380c4d2bcbcfc8c9b6f743c",
          "size": 209905,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104335,
          "hash": "180b65181f68d07c3bd35ae49e34aef82465932c",
          "size": 260443,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104336,
          "hash": "99aef4efe53023f2de473aa97ecc692b564327d8",
          "size": 225612,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104337,
          "hash": "96a59b3c2e886cd20258634a2143adf24c6b9d86",
          "size": 212897,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104338,
          "hash": "d27e32dd712e5e15b1c16c35c36397c714670767",
          "size": 401812,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104339,
          "hash": "1f31ea9373dfdfd50aa48256fc56b01baed9c079",
          "size": 232882,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104340,
          "hash": "f962cb53225daa11d0e28cb07a5a2b60077263bf",
          "size": 222224,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104341,
          "hash": "23bfef80f7dae34e6ea0d38fa1a2946b680674fd",
          "size": 210831,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104342,
          "hash": "b66975b228e1293426ca4477574bff2af1837e68",
          "size": 240023,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104343,
          "hash": "74b7483fcbe4a8b462c500d9077574eed464d40c",
          "size": 377868,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104344,
          "hash": "4f81e4e25d0d284a9c2077b9360c0ba235cbe3ec",
          "size": 311211,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104345,
          "hash": "6e6fffcd781728413ac665425d36d2d9c48edf50",
          "size": 265579,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104346,
          "hash": "20bda4d7098fe1df38d5adc0d23804c628a0a0b5",
          "size": 332111,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104347,
          "hash": "9fbbbdc69ce05eec83905e0c070598741a463ff9",
          "size": 260932,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104348,
          "hash": "3165a30f62d30c21304ca9ed4b2f2704607c6c5e",
          "size": 179716,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104248,
          "hash": "c41ae4de4b518356da34545f0a86eebe08103e4f",
          "size": 265331,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104250,
          "hash": "7b7b06954ef0a4b22055ef3c710bc2b0fb3240b9",
          "size": 177152,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104353,
          "hash": "ca7927fcb835ed3272f1ac6ee5526ff5e170e7f4",
          "size": 237752,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104357,
          "hash": "b27e53f455571cf7f547f66e125254c98f446d68",
          "size": 188935,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104360,
          "hash": "b5a665d2b37785d583e0d52a67fb40f3f1a9f964",
          "size": 265544,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104361,
          "hash": "964227b8a870d48f7a92977def767de744f29575",
          "size": 403441,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104362,
          "hash": "9d2bc628559dda82778fa4b437fabf927befaa84",
          "size": 354481,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104363,
          "hash": "5da523bbaedfd1b286a7712d090e641a2fad0d18",
          "size": 247764,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104364,
          "hash": "741f88af14121e02881752781c8642f9d59b3b5e",
          "size": 268798,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104291,
          "hash": "eb9c9806f40581ee19e753ef699c4636e3311813",
          "size": 278717,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104365,
          "hash": "75244c6b1a8734e6e1bea9ee888d8036a7de23e7",
          "size": 198149,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104366,
          "hash": "af6aafe5a9dd0c40268d6c4b9c19cea83ccf7255",
          "size": 166794,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104367,
          "hash": "b0df1c27a549783e6f17aa8a86d300f9bce7cc3c",
          "size": 165538,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104368,
          "hash": "77715537093073bb30ae5d8b2e14fe24a99b3c97",
          "size": 230832,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104369,
          "hash": "2a0dee312d394f897d8f66e0876c4260d7cb0513",
          "size": 226449,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104370,
          "hash": "8c82a3a839a29f58ec1f2de7b111f17f73a6a9c8",
          "size": 196928,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104371,
          "hash": "00284c1d71e8dbfc6f671f0baff64acc931df770",
          "size": 198858,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104372,
          "hash": "b48791695c664a6fadb3024661efa428b93ff3fe",
          "size": 192083,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104373,
          "hash": "cb2753a77fbc674a542d836fbac3bd8c06556da3",
          "size": 272559,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104374,
          "hash": "f530ca1558ec5e52d2549a0994e451bbbba40cda",
          "size": 221390,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104375,
          "hash": "4a00fa302c015ce2b283a38c2f6040a85ee210cd",
          "size": 291736,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104376,
          "hash": "0fce2a38035ea319a0fd218287c145d2b61679e3",
          "size": 290674,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104377,
          "hash": "c2df3d0772cf4c4703db32d0ad1494a5a65b99a4",
          "size": 203891,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104378,
          "hash": "f64f4e1024e6adf9dc892bbbc2b164490df50301",
          "size": 204872,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104379,
          "hash": "004358066e0c7101965475c197c6224000983585",
          "size": 312558,
          "width": 2500,
          "height": 1667
        },
        {
          "id": 1104380,
          "hash": "f58e78c24f6207cc940290425ae22d29907750ac",
          "size": 236395,
          "width": 1667,
          "height": 2500
        },
        {
          "id": 1104381,
          "hash": "219b5a060f771837e934193dd75a15d21075fac5",
          "size": 274598,
          "width": 2500,
          "height": 1667
        }
      ]
    }
  },
  "editor": {
    "recentImages": [
      {
        "type": "gallery",
        "mimeType": "image/jpeg",
        "galleryId": "e555e68b-fac5-46a3-9df8-d51092ab0f22",
        "url": "gallery:e555e68b-fac5-46a3-9df8-d51092ab0f22/1104321",
        "imageId": 1104321
      },
      {
        "type": "gallery",
        "mimeType": "image/jpeg",
        "galleryId": "735c4bbe-f318-4993-809a-a71f258f3678",
        "url": "gallery:735c4bbe-f318-4993-809a-a71f258f3678/1104256",
        "imageId": 1104256
      }
    ]
  },
  "init": "var minVersion = \"0.4.0\"\r\nvar didShowMeMore = false\r\nvar playerLink =\r\n  \"https://oeos-player-preview.herokuapp.com/?id=47874&key=b74c174e2a\"\r\n\r\n// Common function for the \"Show Me More\" menu\r\nfunction showMeMoreChoice() {\r\n  var choice = new Choice({\r\n    options: [\r\n      {\r\n        label: didShowMeMore ? \"Show me that touch thing again!\" : \"Show me more!\",\r\n        onSelect: function () {\r\n          didShowMeMore = true\r\n          pages\r\n            .skipNextBubbleClear(true) // Don't clear our bubbles on page change\r\n            .goto('show-me-more') \r\n        },\r\n      },\r\n      {\r\n        label: \"What's the big deal?\",\r\n        onSelect: function () {\r\n          pages\r\n            .skipNextBubbleClear(true)  // Don't clear our bubbles on page change\r\n            .goto('big-deal')\r\n        },\r\n      },\r\n      {\r\n        label: \"Show me that GIF again!\",\r\n        color: undefined,\r\n        onSelect: function () {\r\n          pages.goto(\"show-gif-again\")\r\n        },\r\n      },\r\n      // {\r\n      //   label: \"Hidden Option\",\r\n      //   color: 'pink',\r\n      //   visible: false,\r\n      //   keep: true,\r\n      //   onSelect: function (i) {\r\n      //     this.visible(i, false)\r\n      //   },\r\n      // },\r\n    ],\r\n    // Clear pulse timers after any selection\r\n    onComplete: function () {\r\n      clearInterval(buttonColorInterval)\r\n      clearTimeout(buttonColorTimer)\r\n    }\r\n  })\r\n  // setTimeout(function(){choice.visible(3, true)}, 3000)\r\n  // Pulse the \"Show me more!\" button blue every 2 seconds\r\n  if (!didShowMeMore) { \r\n    var origColor = choice.color(0)\r\n    var buttonColorTimer\r\n    var buttonColorInterval = setInterval(function(){\r\n      choice.color(0, '#1D389C')\r\n      buttonColorTimer = setTimeout(function() {\r\n        choice.color(0, origColor)\r\n      }, 250)\r\n    }, 2000)\r\n    // Clear pulse timers when page changes\r\n    pages.addOnNextPageChange(function() {\r\n      clearInterval(buttonColorInterval)\r\n      clearTimeout(buttonColorTimer)\r\n    })\r\n  }\r\n  // Return choice menu to caller\r\n  return choice\r\n}\r\n",
  "modules": {
    "audio": {}
  },
  "files": {
    "placeholder.jpg": {
      "id": 1136454,
      "hash": "28608bc0a27a295c4fc977314f8a5419c6c91fd2",
      "size": 205024,
      "type": "image/jpeg",
      "width": 2000,
      "height": 1328
    }
  }
}