4923 lines
729 KiB
Plaintext
4923 lines
729 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Immer noch ziemlich nutzlos aber diesmal mit XKCD-Eyecandy. [Bokeh](http://bokeh.pydata.org/) ist ja ganz schön, braucht aber eine ziemlich große JS-Komponente die immer geladen werden muss. Mit [matplotlib](http://matplotlib.org/) kann man statische Grafen zeichnen und mit `%matplotlib notebook` vorher einen Auschnitt wählen.\n",
|
|
"\n",
|
|
"Ich wollte mal schauen wie sich die Ratingverläufe der Staffeln einer Serie entfalten. Eventuell kann man ja ein daramaturgischen Verlauf erkennen. Ich als jemand der selber keine Ratings abgibt. Alles befindet sich doch ziemlich auf einem Level."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"import matplotlib\n",
|
|
"import numpy as np\n",
|
|
"from trakt.tv import TVShow"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Nach dem import der Libs führen wir folgendes Jupyter-Magic aus um die erzeugten Plots im Notebook noch leicht anpassen zu könne."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"%matplotlib notebook"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Wir aktivieren die XKCD-Style-Plots:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.rc_context at 0xaf0ef58c>"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"matplotlib.pyplot.xkcd()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Nun kommt die Funktion die alle Daten einsammelt und ausgibt:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def season_ratings(name):\n",
|
|
" tv_show = TVShow(name)\n",
|
|
" \n",
|
|
" data = {}\n",
|
|
" for season in tv_show.seasons:\n",
|
|
" \n",
|
|
" if season.season == 0:\n",
|
|
" continue\n",
|
|
" \n",
|
|
" ratings = []\n",
|
|
" for episode in season.episodes:\n",
|
|
" ratings.append(episode.rating)\n",
|
|
" \n",
|
|
" data[season.season] = pd.Series(ratings)\n",
|
|
"\n",
|
|
" df = pd.DataFrame(data)\n",
|
|
" df.plot(colormap=matplotlib.cm.Accent)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Beispiele"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function() {\n",
|
|
" if (typeof(WebSocket) !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert('Your browser does not have WebSocket support.' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.');\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = (this.ws.binaryType != undefined);\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById(\"mpl-warnings\");\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent = (\n",
|
|
" \"This browser does not support binary websocket messages. \" +\n",
|
|
" \"Performance may be slow.\");\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = $('<div/>');\n",
|
|
" this._root_extra_style(this.root)\n",
|
|
" this.root.attr('style', 'display: inline-block');\n",
|
|
"\n",
|
|
" $(parent_element).append(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
|
|
" fig.send_message(\"send_image_mode\", {});\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj.onload = function() {\n",
|
|
" if (fig.image_mode == 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function() {\n",
|
|
" this.ws.close();\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function() {\n",
|
|
" var titlebar = $(\n",
|
|
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
|
|
" 'ui-helper-clearfix\"/>');\n",
|
|
" var titletext = $(\n",
|
|
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
|
|
" 'text-align: center; padding: 3px;\"/>');\n",
|
|
" titlebar.append(titletext)\n",
|
|
" this.root.append(titlebar);\n",
|
|
" this.header = titletext[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = $('<div/>');\n",
|
|
"\n",
|
|
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
|
|
"\n",
|
|
" function canvas_keyboard_event(event) {\n",
|
|
" return fig.key_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
|
|
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
|
|
" this.canvas_div = canvas_div\n",
|
|
" this._canvas_extra_style(canvas_div)\n",
|
|
" this.root.append(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = $('<canvas/>');\n",
|
|
" canvas.addClass('mpl-canvas');\n",
|
|
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
|
|
"\n",
|
|
" this.canvas = canvas[0];\n",
|
|
" this.context = canvas[0].getContext(\"2d\");\n",
|
|
"\n",
|
|
" var rubberband = $('<canvas/>');\n",
|
|
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
|
|
"\n",
|
|
" var pass_mouse_events = true;\n",
|
|
"\n",
|
|
" canvas_div.resizable({\n",
|
|
" start: function(event, ui) {\n",
|
|
" pass_mouse_events = false;\n",
|
|
" },\n",
|
|
" resize: function(event, ui) {\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" stop: function(event, ui) {\n",
|
|
" pass_mouse_events = true;\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" });\n",
|
|
"\n",
|
|
" function mouse_event_fn(event) {\n",
|
|
" if (pass_mouse_events)\n",
|
|
" return fig.mouse_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband.mousedown('button_press', mouse_event_fn);\n",
|
|
" rubberband.mouseup('button_release', mouse_event_fn);\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
|
|
"\n",
|
|
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
|
|
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
|
|
"\n",
|
|
" canvas_div.on(\"wheel\", function (event) {\n",
|
|
" event = event.originalEvent;\n",
|
|
" event['data'] = 'scroll'\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" mouse_event_fn(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.append(canvas);\n",
|
|
" canvas_div.append(rubberband);\n",
|
|
"\n",
|
|
" this.rubberband = rubberband;\n",
|
|
" this.rubberband_canvas = rubberband[0];\n",
|
|
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
|
|
" this.rubberband_context.strokeStyle = \"#000000\";\n",
|
|
"\n",
|
|
" this._resize_canvas = function(width, height) {\n",
|
|
" // Keep the size of the canvas, canvas container, and rubber band\n",
|
|
" // canvas in synch.\n",
|
|
" canvas_div.css('width', width)\n",
|
|
" canvas_div.css('height', height)\n",
|
|
"\n",
|
|
" canvas.attr('width', width);\n",
|
|
" canvas.attr('height', height);\n",
|
|
"\n",
|
|
" rubberband.attr('width', width);\n",
|
|
" rubberband.attr('height', height);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
|
|
" // upon first draw.\n",
|
|
" this._resize_canvas(600, 600);\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus () {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" // put a spacer in here.\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var button = $('<button/>');\n",
|
|
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
|
|
" 'ui-button-icon-only');\n",
|
|
" button.attr('role', 'button');\n",
|
|
" button.attr('aria-disabled', 'false');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
"\n",
|
|
" var icon_img = $('<span/>');\n",
|
|
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
|
|
" icon_img.addClass(image);\n",
|
|
" icon_img.addClass('ui-corner-all');\n",
|
|
"\n",
|
|
" var tooltip_span = $('<span/>');\n",
|
|
" tooltip_span.addClass('ui-button-text');\n",
|
|
" tooltip_span.html(tooltip);\n",
|
|
"\n",
|
|
" button.append(icon_img);\n",
|
|
" button.append(tooltip_span);\n",
|
|
"\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker_span = $('<span/>');\n",
|
|
"\n",
|
|
" var fmt_picker = $('<select/>');\n",
|
|
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
|
|
" fmt_picker_span.append(fmt_picker);\n",
|
|
" nav_element.append(fmt_picker_span);\n",
|
|
" this.format_dropdown = fmt_picker[0];\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = $(\n",
|
|
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
|
|
" fmt_picker.append(option)\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add hover states to the ui-buttons\n",
|
|
" $( \".ui-button\" ).hover(\n",
|
|
" function() { $(this).addClass(\"ui-state-hover\");},\n",
|
|
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
|
|
" );\n",
|
|
"\n",
|
|
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function(type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function() {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1]);\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
|
|
" var x0 = msg['x0'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch(cursor)\n",
|
|
" {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = \"image/png\";\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data);\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig[\"handle_\" + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function(e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e)\n",
|
|
" e = window.event;\n",
|
|
" if (e.target)\n",
|
|
" targ = e.target;\n",
|
|
" else if (e.srcElement)\n",
|
|
" targ = e.srcElement;\n",
|
|
" if (targ.nodeType == 3) // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
"\n",
|
|
" // jQuery normalizes the pageX and pageY\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" // offset() returns the position of the element relative to the document\n",
|
|
" var x = e.pageX - $(targ).offset().left;\n",
|
|
" var y = e.pageY - $(targ).offset().top;\n",
|
|
"\n",
|
|
" return {\"x\": x, \"y\": y};\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys (original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object')\n",
|
|
" obj[key] = original[key]\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event)\n",
|
|
"\n",
|
|
" if (name === 'button_press')\n",
|
|
" {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x;\n",
|
|
" var y = canvas_pos.y;\n",
|
|
"\n",
|
|
" this.send_message(name, {x: x, y: y, button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function(event, name) {\n",
|
|
"\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name == 'key_press')\n",
|
|
" {\n",
|
|
" if (event.which === this._key)\n",
|
|
" return;\n",
|
|
" else\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" if (name == 'key_release')\n",
|
|
" this._key = null;\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which != 17)\n",
|
|
" value += \"ctrl+\";\n",
|
|
" if (event.altKey && event.which != 18)\n",
|
|
" value += \"alt+\";\n",
|
|
" if (event.shiftKey && event.which != 16)\n",
|
|
" value += \"shift+\";\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, {key: value,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
|
|
" if (name == 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message(\"toolbar_button\", {name: name});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function() {\n",
|
|
" comm.close()\n",
|
|
" };\n",
|
|
" ws.send = function(m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function(msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data'])\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function(comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = $(\"#\" + id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm)\n",
|
|
"\n",
|
|
" function ondownload(figure, format) {\n",
|
|
" window.open(figure.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy,\n",
|
|
" ondownload,\n",
|
|
" element.get(0));\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element.get(0);\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error(\"Failed to find cell for figure\", id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var output_index = fig.cell_info[2]\n",
|
|
" var cell = fig.cell_info[0];\n",
|
|
"\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
|
|
" fig.root.unbind('remove')\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable()\n",
|
|
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items){\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) { continue; };\n",
|
|
"\n",
|
|
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
|
|
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
|
|
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
|
|
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
|
|
" buttongrp.append(button);\n",
|
|
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
|
|
" titlebar.prepend(buttongrp);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(el){\n",
|
|
" var fig = this\n",
|
|
" el.on(\"remove\", function(){\n",
|
|
"\tfig.close_ws(fig, {});\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.attr('tabindex', 0)\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager)\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which == 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" event.shiftKey = false;\n",
|
|
" // Send a \"J\" for go to next cell\n",
|
|
" event.which = 74;\n",
|
|
" event.keyCode = 74;\n",
|
|
" manager.command_mode();\n",
|
|
" manager.handle_keydown(event);\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function(html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i=0; i<ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code'){\n",
|
|
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] == html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel != null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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G4e0hf0gbWFfSHvYD9IW9kPBtti5c+eiShMoQsUD1APSAQYNGkSVKlXw9va2tv9eLGldLO/9AiA3N5eXX34ZRVFo2rQp1atX5/777+fIkSO2ttPa1oA6duxIx44dCQwMrCzbFQogHav9IG1hX0h72A/SFvZDYGAgHTt2tBWASypTnwgVDPAdQFxcHDVr1uT999+3tr0KtC3wXieArKws3n77bRRFoXPnzjz22GMoisLXX39NTk6O9fxBkPcwR0VFcf78+WIPe93un5SUhL+/P8eOHWPnzp1s3LiRxYsXM23aNEaOHMmAAQMwmUz07t2bTz75hB49etCtWzdeffVVnn32Wdq3b0/btm1p3bp1vqNNmzY88cQTPPnkkzz33HO8+OKLdO7cmbfeeotu3brRs2dPTCYTP/zwA2PHjmXmzJksXLiQ9evXs2fPHg4fPszJkye5cOECYWFhJCcnYzabi/wdjtixms1moqKi8PX1xcPDg/3797N161ZWrVrFwoULmT17NlOmTMHZ2ZnBgwfTt29fPv/8c3r27Mn777/P22+/zauvvsoLL7zAc889R4cOHWjXrh1t27alTZs2/2iP9u3b06lTJ1577TW6du1Kjx49+PTTT/niiy/o378/P/30E1OmTGHevHn89ddfuLq6cvjwYfz9/UlMTLSdOS8We2qL9PR0AgICOHnyJAcOHMDV1ZV169axdOlSZs2axfjx4xkxYgQDBgygd+/eun2//fbbvPLKK3Ts2JEOHTrw+OOP/8PGn3jiCZ555hleeOEFXn/9df7973/z+eef8+233zJixAgmTZrEnDlzWL16NW5ubhw+fBgfHx/CwsJITU0t8f28USqiPXJzcwkNDcXDw4MdO3awatUqpk+fzpgxYxg2bBgDBw7k66+/5uOPP+Y///kP77zzDq+88grPP/88zzzzDE8++eQ/7mnbtm1p3749zz77LC+88AKdO3fm7bffpnv37vTo0YPevXvTr18/hg4dyqhRo5gyZQoLFy5k3bp17Ny5E09PT0JCQkhOTs4XwmNP3EhbqKpKUlISISEhXLp0CS8vL3bt2sXSpUuZMmUKw4YN48svv+Q///kPb775Jp06ddL7hMLus7Vffu2113jvvff4v//7P5ycnBg+fDi//fYbs2bNYsmSJWzZsoUDBw7g7e1NXFxcpdlteVAS32xti3379q2vJGkiVDRAFeAiwPTp01EUxXYWb2Mh7/cDLd6vSpUqbNq0CdA6uh9++AFFUZg/f771/AOQ9zA7OzsXu+NYURR69OjBjh078PDw4PLly4SHh5OYmEhGRkaxwqY4cnNzSUlJITIykqCgILy9vTly5Ai7du1i/fr1LFq0iJkzZzJy5Ei+/vprunfvTqdOnWjTpg0PPfQQderUue51F3bUqFGD+vXr07hxY5o2bUrz5s1p1aoV//rXv/SjZcuWPPbYYzzyyCM0atSI++67j3r16lGnTh1q1KhRpu+97bbbuP/++3n00Ud5/PHHeeWVV/jwww/55Zdf/tGxLl++nEOHDuHt7U1wcDBxcXFkZWWVW+eVkZFBaGgoZ86cYd++fWzevJmVK1cyc+ZMfv7553yC7d133+Xll1+mXbt2PProozRo0IA777yTKlWqlOk+KIpCtWrVqF27NvXq1eP++++ncePGNGnShGbNmtG8eXNatGiht0mrVq1o0aIFTZs2pUGDBtx9993UrFmzTO3euHFjnnzySbp168YXX3zBjz/+yC+//MKsWbNYvXo1x48fL1fBYTabSUtLIyYmhmvXrnHp0iVOnTrFoUOH2LFjB2vWrOGPP/5g9OjRfPPNN3Tv3p2nn36axo0bU7t27TLd29tvv5077riDe+65h0aNGtGkSRMee+yxfDbesmVLmjVrxkMPPcQDDzzAXXfdRdWqVUv1PVWqVKFu3bo0a9aMTp060b17dz7//HOcnJwYNWoUM2fOZNGiRaxZswY3NzdOnDjBxYsXiY6Ott2Qdl0Ka4+MjAxiYmIICQnBz8+PU6dO4e7uzrp165g3bx7Tpk3TBx5ff/01PXv25PXXX6d169bcf//9VKtWrVS/tXbt2txzzz00aNCABx98kEceeSRfv9GyZUuaN29O06ZNady4Mffffz933303tWvX5vbbby9TO9atW5cmTZrQpk0bXnrpJXr06MFXX33FDz/8wKRJk5g5cyZLly7l77//xt3dHU9PT33AmZKSUuZ+uTAbTkhIIDw8/B9tMWPGDFxcXBg9ejT9+vXjiy++4H//+x9dunShU6dOtGvXjgcffJDatWuXuL+oUqUKd955Jw0aNODhhx/m0UcfpWXLlnpfYHuf77vvPu6++25uu+22Utnt3XffTbNmzejYsSM9evSgb9++DBkyhNGjRzNx4kTmzJmjC3N3d3c8PDy4cOECwcHBREREkJiYeEMiPTs7m6ioKPz9/Tl9+jSHDh1i+/btLF++nClTpvDDDz/Qq1evEvlm6+Ht7Z0CPKgIjg/wKmijphYtWvDcc8/ZOv+OlvdUtbyvr/UP7dq14913381nbLm5udxxxx189NFH1pdCQRtdNG/evFRGVtRRo0YN6tWrR4MGDXSH07JlS1q1aqWLqSZNmtCwYUPuvfdeatWqVSbH1qhRI1q2bMkzzzzDm2++yeeff87w4cOZPHky8+fPZ9WqVWzfvp1jx45x8eJFwsLCiI2NJTk5mczMzHLrFHNycoiJiSEwMBBvb28OHjyIm5sbq1atYu7cubi4uDBx4kRGjRqlz8689957vPjii7Rv357mzZtTr169Mt3rmjVrcvfdd3PffffpDr5p06Y89thjunCydpTNmjXT73u9evWoVatWqZ1f9erVuffee3n00Udp164dzz//PG+++SYffPABJpOJUaNGMWnSJGbNmsWyZcvYsGEDrq6u7N+/n+PHj+Pj40NwcDBRUVHl7pjS09NJSkoiPDycixcvcvz48XwDiOnTpzN8+HC++OILunbtyrPPPsvDDz9cKqdcpUoVatasSd26dbnnnnto3Lgxjz766D+EqtXOH374Ye677z7q1KlTapFcvXp1HnroIZ5++mm6dOnCJ598wtChQ5k4cSK///67LqisTv/06dNcunSpRLPM10NVVVJTU4mMjMTPzw9PT0/27t3Lhg0bWLhwoe7oBwwYwOeff84HH3zAG2+8wRNPPEGDBg2oXr16qX9r7dq1ueuuu3jggQd48MEHadq0KS1atNCFaosWLWjSpAl33XUXd9xxBzVr1iyzoLrzzjtp3rw5L774Ih988AH9+/dn4sSJLFiwgA0bNnD48GG8vb25fPkyISEhxMfHk5mZWS6DrtzcXN1OAwMD8fX15ejRo7i5ubFmzRrmz5/P+PHj+e677/SZ3Ndff50OHTrQsmVL6tevX6bffPvtt1O/fv18A4EWLVrofbO1f27RooXeV1gHvHfeeWep29R61KpViwYNGtCsWTOeeeYZ3nnnHT744AN69+7Nd999x8iRIxk/fjxz585l69atHDt2DH9/fxISEspkw6qqkp6eTnR0NH5+fnh4eODu7s62bdtYunQpv//+O87Oznz11Vd88MEHdO7cWbfbGxnI1qhRg7p163LvvffSsGFDfWBgFawF+4V77723VIPXkvjm+vXr2ybl9gXuUQTHBvgLYN++fSiKwsKFC622ftTy9zuBQwUfhCZNmvB///d/+V4zm83UrVuX9957z/pSLKAPX0o6A7hgwQImTpzI8OHD6d+/P19++SWffvopPXv2pFu3bnTu3JlOnTrx1FNP8cQTT+jLeNbl1A4dOtCxY0deeuklunTpwn//+1969erFt99+y5AhQxgzZgzTp0/Pt4R34MABfH19iYuLK65jUNGqp6QC8UAE4A+cAvYBbsAWYC1aWb05wERgJNpyeD/AZDm+sfzbFxiItmP6J2Ac8BtaKb45aFVVdgJHAG8gEAhD25mdBmRarqnY3sxsNpOcnExwcDCenp7s3LmTTZs2sWTJEmbMmMGYMWMYPHgw33zzDR9//DEffvghXbt2pXPnzrz00kv6El/79u15/PHH8y2dtm3blnbt2tGhQwc6depE586d6dKlC++//z6ffvopAwYMYNy4ccyZM4cVK1awadMm3N3d8fX1JTg4mMjIyJIu9ZktvzUDSASiLffiCnAJOINWlnAnsBlYASwEZgKTgLGWe/wD8D3Q33L/C7bHIOBnYArwh6Ut1wFbLe18Em0m/BqajScDWWj2kQ9VVYmPj8ff358zZ86wf/9+NmzYwLx585gwYQLDhw/HycmJjz76iPfff5+uXbvyxhtv8Morr/Dcc88Ver9bt27N448/TocOHXjxxRd56623+M9//sNnn31Gnz59+P7773XHN2PGDObPn8+aNWvYs2cP586dIzY2tjgbt97fFMtvi0BLA3Ue8LT8/i3k2fdMNBsfbbmv/dHCRKx23tdyr38ExgBT0UpGbgR2Wz7zAlqaqRjL92ZSjD2bzWZSU1OJjo7Gx8eHgwcP6kvW8+fPZ/LkyYwYMUK/r++++y7vvPMOr732mr60WjAkw9aGn3/+eTp37ky3bt349NNP6dOnD9999x0jRoxgwoQJzJ49m9WrV7Nr1y6OHj2qDzzi4+OLm63JsbmngWi2egwtIb8rWinOJcAsy/0cY7lng23u6TeWf/uh2ehINJv+zdIOf1raZSta7PYRtL7JH+05iUPru/QYnUIvNCeHhIQELl++jKenJwcPHmTLli16OMCkSZP0AWevXr3o0aMH3bt359VXX6Vjx4489dRThdpsmzZtaNu2LU888QRPPfWUvrT6xhtv8O6779KzZ0+++uorBg8ezMiRI5kwYQLz589n06ZN7N69Ww8NsM6M2Ww2LA6z5femA5GWe+EBbAOWovWzY8jrE6z32WRzn2375floGyF3Wj7nItrzEQEkoT07hdpuVlYWUVFRBAUFcf78eTw9PdmzZ48uzK339qeffmLw4MH069ePL7/8kp49e9K1a1def/11Xn755Xz3uLBwi6effpqXX36Zrl278tFHH9G3b19+/PFHvT9YvHgxmzdv5siRIwQEBJCUlFQi3+zs7Gz9KceBZcAXlSxXhPIEqIvmuPjvf/9LjRo1SEhIsDby15b3TATIzMwMCAoKSrL+8fPPP6dOnTq4urqiqiqZmZlMmDABRVFYsmSJ9W2HgffQysYdCQ0NvXzy5MlLR48ePXjs2LGjHh4eZ06ePHnp1KlTQV5eXmFnzpyJDQ8Pj0PrKLMpxKGWAyqaKM0kT8iFoXXKXmid8SI0AdAX+BAt+fVdBjdXiQBqoG2+eQf4FM15TEHr7LaiiflgtM4q1XJkYiPUK4hctE44EYhCE21ewEFgF5ogmI9We3qQ5dq7We79I0B1o+9tSbDc/w7Af9Ac9J9oA4MTwDnLvY9BE+85VIyNQ57jy0R7nuLQRNZZYAeajY8E/gc8iZ2O5tHKTj4KPA98ifZcLkSrRrQTTUhZB0UxaPZckX1HDpqTjwdC0ATFGbTnajvaoMMFbVD3DtACm0109gRauc6H0LJAfITW3/1m+Q3b0GzW13J/o8gTONcdcJYDVvvNsnxnHBBgudd70fqyVWgDtDGW+2215UeAWgbf21podtsZ6IUm1Fej9XWH0bJu+KINIq0+L70C763VdjPRBqxRlvt5HPg7KCho24EDBzbt3LlzyZYtW6avWbPm561bt7rs2rVr2b59+9a6u7tv8ff3n4s20BgNfAvca+Q9Fm4QtE6V7OxsatSoQa9evazGkgHcbXmPJ0DDhg1PKYqCj48PANeuXaNdu3b6NHzVqlWpWrUqX3/9te3IbJrFyAqSCAwFqpbwOqsBdwGNgceBV9DEwf/QHq6vbI5eltffBd5A6xAaAjUq8l46Amgdvp7c0aat29m8pxrarvAmQDvgJeAtNCH/P7TUPtZ7/o3l397AZzb3/RXLfW8B1DPyN9sjQE20gVVqIc+GO5p4fA34N5oQ7o0mfqz322rnPS1t8zQWp4edig0jQItvfgBtQNQBTeh0sdzfTyz3dCDarGbBYMEsNIfdxOjfYc9YbK4x0Mby3L9r0y9bbdZ6fGV5zdpXvGex346WNmps7afRqk5FFGgTXyx+6VbB0h9b/d7zaD7tXTTB3ruQ+9sLbdLiNbT++4HS9gnA/cDlQvqmgsQAbSrqtwsVDNAKtGWq+fPnExYWZm3YRTbvcQMYPnz4+jvuuONqVFSULuhUVeXYsWN6PFaB9C76+zIyMti+fTsbNmwgOjra9j0LSmucQtkA6qPNtgFw9OhRLl/Wn/HFRl/frYKlQz5pvfHJycmcOXOGiIh8vi4CaGz0td7soA10fK03PT09nZCQENssBqAtfdcx+lpvJdBWpq4AREdHs3LlSlJT9bHSEKOv72YHmA6QlpaGj48Pfn5++Pj4cPr0ac6ePcvRo0eJjIy0tscWo69XuAHQ4tVsicFmhw/wNnnLKW427/OjcHLR4q/MAG5ubjRt2jRfgLSLi4vt+/9t3K+/NUCbCdkPWpD4jz/+iKIojB071toGO42+xlsBSzt4gBYP9OOPP+bbgdu1a1fbjnW50dd7s4MWbkBSUhL9+vXTN4zVqFGDvn37kpaWZm2LsUZf660E2hI/ycnJtGjRAkVRWLZsmbUt5hp9fTc7aMvrzJo1q8h4wP79+1vb47yR1yrcIMDtwAC0wFYXoEEh73kPLW7hP2jByo9YnNmraPEAnwK/oMWbNcVSYu706dNUr16dp59+mkOHDnHhwgW+/PJLFEXR08cAJwz42bcU2Mz0vvfee/pD/P/t3VtoVdkdx/FlEzWklcFWxIxQUfDSeG1TW6LFxCLRDGoh1COmdKwgxqcQKYKkRkUNobmJRY14yUNpomamATWJpgrplIwRUQNeO+KIYrTSaooxMWpNvn1Ye+/Zpmpf5mRlzvl9QCIrefiz19n7rL0u/39FRYXfB8rrNAiAuf4gfNGiRQwbNoyCggKam5vZunUrCQkJrFq1yu+TF0CS65hjmf+c2rlzJ8OHD6egoIAjR46wadMmEhMTKSws9PviH2ilYlAAS/2Lvm7duuAkdmhf+X7XMcY6vH3/Z86cwRjD9u3baWhooLm5mcbGRlpbW8OHyGpcxytDCPbU8H8Ali5dyvjx43n27Jn/YaG/v5+ZM2cyf/78oIkhugE9VmD32PDq1Suys7ODms3FxcV+H5x0HWM8wO6L5OXLl0QiEZqbmwnLyspiwoQJ4SYtA0cR9gABT58+5c6dO2/0xfr160lNTQ03xdXeMxeAMdiTujQ2NgaDD6MB4KDCntSnvr4eYwzXr1/nPb7vOl4ZQrCHM+jt7SUpKSm8zBicDNm2bRsJCQk8fRocKv6F67hjGZCIPckH2H01xhjKysr8pv9J+C1fP+xs+1vrIPb09DBu3DgyMjL8pj40AxhVwIfYFB5v6O3tZcGCBWRmZvpN/egQWVRhV5Q+AXj8+DEpKSlkZmbS0dGhAeAgw56uDiYKKioqSEtLC5Ja79+/P5yy62PX8coQgs2nRFtbG8YYTp8+7X9Qfo+3t+Pw4cMYY8L1hte7jjvWYU/kAnDz5k2MMVRXV/tNh1zHFy+AH2BTbAS6u7vJycnBGENdXZ3f/LnrWOMBMNm/4MeOHSMSiTBmzBhGjhwZroh0w3WcsQ6vxjzAypUrSUpK4tatWzx48GDgAFD3RZTh7RcvKioKtgtlZWWxefNmlixZMrA/rjgOV4YSYCt8tX/g/Pnz/gdlA/AHgCNHjmgA6IA/OG9tbcUYQ2Njo3/9i13HFi+wMx0H/Qvf3t7OtGnTGDZsGCUlJeFx4S9dxxoPsCl06OvrIy0tLfjCi0Qi4ZOnHa7jjGXADLw0PLW1tRhjgoOCbxkAAmx2HXMsA64C5OXlDVwpor+/n4yMDGbNmhXujw9dxyxDBPZACZcuXcIYw6lTp/wPyXa8qeWqqiqMMdy9e9f/3a9cxx0PsNUwOH78OMYYLl686F//fNexxQtgrX/R9+3bx4gRI5g4cSKffRZk6AGbpFmHDgYBoRlAgEePHlFYWBhUJfK/99B+zKjBVpXg6tWrJCcnM2rUKMrLy9m7dy9lZWUYY8jLy6O9vd3vjz6UnzFqgDNgU4WFTl8HiouLSUxMDFe9me86ZhkisAk+g70bBw4c8D8kf8NL7Jmfn8/o0aPD+wh+7DrueICXBLqmpgZjTDgP4K9dxxYPsLN/NwAOHTqEMYbc3Nw3Dklh376dVjGIF9hk0G8ti5abm4sxhq6uLr/pI9fxxipshgn27Nnz3vq1ycnJvHwZ5Ov+icuYYxmhk9ghNXhFIfyKX6EZ8kWuY5YhAjudT39/P1OmTAnXBQbsUsvkyZNZvHix3/QCGOE67liHrYQAQF1dHcYYvvjijVSOmuGIMmCqf7GnT59OWlrawKTDvvsow35UYUvM/Rvg3r174YEFAJWVlRhj6Ojo8JsirmOOVXjbhnx+adGuri6uXbuGMYbS0lI6Ozv9P3mOMkdEDd5K0QC9/n+ys7OZOHFieAIn1XXMMkRgZzm+BNiyZQsJCQnBXrPXr1+zceNGjDEcPBhsg2p1HXOsw6bmCZ6eZ8+exRjDuXPnwjfxCddxxjq8N+vOzk6MMezYsYOOjg6uXLlCW1sbFy5coLc3eM7e4RtS//ibCFtaC4CxY8eyevXqILdZT08P6enppKamhu+PH7qOOVZh62f/kbfUwH348OHb9gBqxSKKsC+glJSUsGHDhvA9wNGjRzHGUFRUFH5OabuKfAVbnJvu7m7S09MxxjB37twgq3t2dnZ45uM3jsONedi6kDx//pwZM2YEyVWNMaxYscLvh+eu44x12ITqPHny5J3LXJMmTQo/cCe7jDeWeS9F3QClpaUYY5g6dSrLli0jJSWFxMREGhoa/H64qi+56MOW5vsRkI6Xo/H+/fsDB4B1ruOMdXhlXHfv3o0xhvT0dPLz81m4cCHGGGbPnh3eGrHNcbgy1GCXV26DnfWrqqpi+fLl5OTkUF9fH/6C+xxIdB1vrMNLQNzX10d1dTXl5eWUlZVRVlZGS0uL3xlfuo4z1gET8Moq1tfXU1lZSW1tLSdOnKClpYWmpiZqamr8/tDBgygDfuc/iE6ePEkkEmHevHmsWbOGy5cvh2ecVK5ykAGz/WdWYWEht28HpeW3uo4t1gG/BbsU39TUREZGBikpKcyZM4ddu3aFB393gA9cxytDELZcXBvv9ldgrOs44wF2Wf7UO/rhivdTyyqDAG9m4z1qvZ+qeRplQAJebtJ36AMKXMcZr4C/DOiPF8Ak13HFOuBb/+e+ADvBoxUKeTfvg7QWOxCsBv4OnMUuhWlJZRBh99msBf4EfAr82fu3Dvi56/jihTfoWOndD58Ce4BioBDYDfwM+BhIcB1rPMC+HH0EnAD+ha11/k+vf2a7ji+eAR8AVcBF4DjwU9cxxQvvvliEnajpB/yksTeAfODbrmMUERH52ujFVORNwHeA7wHfdR2LiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIyGD6L5KU6O6DgmS7AAAAAElFTkSuQmCC\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"season_ratings('The IT-Crowd')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function() {\n",
|
|
" if (typeof(WebSocket) !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert('Your browser does not have WebSocket support.' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.');\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = (this.ws.binaryType != undefined);\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById(\"mpl-warnings\");\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent = (\n",
|
|
" \"This browser does not support binary websocket messages. \" +\n",
|
|
" \"Performance may be slow.\");\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = $('<div/>');\n",
|
|
" this._root_extra_style(this.root)\n",
|
|
" this.root.attr('style', 'display: inline-block');\n",
|
|
"\n",
|
|
" $(parent_element).append(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
|
|
" fig.send_message(\"send_image_mode\", {});\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj.onload = function() {\n",
|
|
" if (fig.image_mode == 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function() {\n",
|
|
" this.ws.close();\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function() {\n",
|
|
" var titlebar = $(\n",
|
|
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
|
|
" 'ui-helper-clearfix\"/>');\n",
|
|
" var titletext = $(\n",
|
|
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
|
|
" 'text-align: center; padding: 3px;\"/>');\n",
|
|
" titlebar.append(titletext)\n",
|
|
" this.root.append(titlebar);\n",
|
|
" this.header = titletext[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = $('<div/>');\n",
|
|
"\n",
|
|
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
|
|
"\n",
|
|
" function canvas_keyboard_event(event) {\n",
|
|
" return fig.key_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
|
|
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
|
|
" this.canvas_div = canvas_div\n",
|
|
" this._canvas_extra_style(canvas_div)\n",
|
|
" this.root.append(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = $('<canvas/>');\n",
|
|
" canvas.addClass('mpl-canvas');\n",
|
|
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
|
|
"\n",
|
|
" this.canvas = canvas[0];\n",
|
|
" this.context = canvas[0].getContext(\"2d\");\n",
|
|
"\n",
|
|
" var rubberband = $('<canvas/>');\n",
|
|
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
|
|
"\n",
|
|
" var pass_mouse_events = true;\n",
|
|
"\n",
|
|
" canvas_div.resizable({\n",
|
|
" start: function(event, ui) {\n",
|
|
" pass_mouse_events = false;\n",
|
|
" },\n",
|
|
" resize: function(event, ui) {\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" stop: function(event, ui) {\n",
|
|
" pass_mouse_events = true;\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" });\n",
|
|
"\n",
|
|
" function mouse_event_fn(event) {\n",
|
|
" if (pass_mouse_events)\n",
|
|
" return fig.mouse_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband.mousedown('button_press', mouse_event_fn);\n",
|
|
" rubberband.mouseup('button_release', mouse_event_fn);\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
|
|
"\n",
|
|
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
|
|
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
|
|
"\n",
|
|
" canvas_div.on(\"wheel\", function (event) {\n",
|
|
" event = event.originalEvent;\n",
|
|
" event['data'] = 'scroll'\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" mouse_event_fn(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.append(canvas);\n",
|
|
" canvas_div.append(rubberband);\n",
|
|
"\n",
|
|
" this.rubberband = rubberband;\n",
|
|
" this.rubberband_canvas = rubberband[0];\n",
|
|
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
|
|
" this.rubberband_context.strokeStyle = \"#000000\";\n",
|
|
"\n",
|
|
" this._resize_canvas = function(width, height) {\n",
|
|
" // Keep the size of the canvas, canvas container, and rubber band\n",
|
|
" // canvas in synch.\n",
|
|
" canvas_div.css('width', width)\n",
|
|
" canvas_div.css('height', height)\n",
|
|
"\n",
|
|
" canvas.attr('width', width);\n",
|
|
" canvas.attr('height', height);\n",
|
|
"\n",
|
|
" rubberband.attr('width', width);\n",
|
|
" rubberband.attr('height', height);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
|
|
" // upon first draw.\n",
|
|
" this._resize_canvas(600, 600);\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus () {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" // put a spacer in here.\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var button = $('<button/>');\n",
|
|
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
|
|
" 'ui-button-icon-only');\n",
|
|
" button.attr('role', 'button');\n",
|
|
" button.attr('aria-disabled', 'false');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
"\n",
|
|
" var icon_img = $('<span/>');\n",
|
|
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
|
|
" icon_img.addClass(image);\n",
|
|
" icon_img.addClass('ui-corner-all');\n",
|
|
"\n",
|
|
" var tooltip_span = $('<span/>');\n",
|
|
" tooltip_span.addClass('ui-button-text');\n",
|
|
" tooltip_span.html(tooltip);\n",
|
|
"\n",
|
|
" button.append(icon_img);\n",
|
|
" button.append(tooltip_span);\n",
|
|
"\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker_span = $('<span/>');\n",
|
|
"\n",
|
|
" var fmt_picker = $('<select/>');\n",
|
|
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
|
|
" fmt_picker_span.append(fmt_picker);\n",
|
|
" nav_element.append(fmt_picker_span);\n",
|
|
" this.format_dropdown = fmt_picker[0];\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = $(\n",
|
|
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
|
|
" fmt_picker.append(option)\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add hover states to the ui-buttons\n",
|
|
" $( \".ui-button\" ).hover(\n",
|
|
" function() { $(this).addClass(\"ui-state-hover\");},\n",
|
|
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
|
|
" );\n",
|
|
"\n",
|
|
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function(type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function() {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1]);\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
|
|
" var x0 = msg['x0'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch(cursor)\n",
|
|
" {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = \"image/png\";\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data);\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig[\"handle_\" + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function(e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e)\n",
|
|
" e = window.event;\n",
|
|
" if (e.target)\n",
|
|
" targ = e.target;\n",
|
|
" else if (e.srcElement)\n",
|
|
" targ = e.srcElement;\n",
|
|
" if (targ.nodeType == 3) // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
"\n",
|
|
" // jQuery normalizes the pageX and pageY\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" // offset() returns the position of the element relative to the document\n",
|
|
" var x = e.pageX - $(targ).offset().left;\n",
|
|
" var y = e.pageY - $(targ).offset().top;\n",
|
|
"\n",
|
|
" return {\"x\": x, \"y\": y};\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys (original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object')\n",
|
|
" obj[key] = original[key]\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event)\n",
|
|
"\n",
|
|
" if (name === 'button_press')\n",
|
|
" {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x;\n",
|
|
" var y = canvas_pos.y;\n",
|
|
"\n",
|
|
" this.send_message(name, {x: x, y: y, button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function(event, name) {\n",
|
|
"\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name == 'key_press')\n",
|
|
" {\n",
|
|
" if (event.which === this._key)\n",
|
|
" return;\n",
|
|
" else\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" if (name == 'key_release')\n",
|
|
" this._key = null;\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which != 17)\n",
|
|
" value += \"ctrl+\";\n",
|
|
" if (event.altKey && event.which != 18)\n",
|
|
" value += \"alt+\";\n",
|
|
" if (event.shiftKey && event.which != 16)\n",
|
|
" value += \"shift+\";\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, {key: value,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
|
|
" if (name == 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message(\"toolbar_button\", {name: name});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function() {\n",
|
|
" comm.close()\n",
|
|
" };\n",
|
|
" ws.send = function(m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function(msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data'])\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function(comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = $(\"#\" + id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm)\n",
|
|
"\n",
|
|
" function ondownload(figure, format) {\n",
|
|
" window.open(figure.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy,\n",
|
|
" ondownload,\n",
|
|
" element.get(0));\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element.get(0);\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error(\"Failed to find cell for figure\", id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var output_index = fig.cell_info[2]\n",
|
|
" var cell = fig.cell_info[0];\n",
|
|
"\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
|
|
" fig.root.unbind('remove')\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable()\n",
|
|
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items){\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) { continue; };\n",
|
|
"\n",
|
|
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
|
|
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
|
|
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
|
|
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
|
|
" buttongrp.append(button);\n",
|
|
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
|
|
" titlebar.prepend(buttongrp);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(el){\n",
|
|
" var fig = this\n",
|
|
" el.on(\"remove\", function(){\n",
|
|
"\tfig.close_ws(fig, {});\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.attr('tabindex', 0)\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager)\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which == 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" event.shiftKey = false;\n",
|
|
" // Send a \"J\" for go to next cell\n",
|
|
" event.which = 74;\n",
|
|
" event.keyCode = 74;\n",
|
|
" manager.command_mode();\n",
|
|
" manager.handle_keydown(event);\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function(html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i=0; i<ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code'){\n",
|
|
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] == html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel != null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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TrJevXqxZMkSpk6dypgxY/j000/56KOP6Nu3L71796Zbt2506NCB1q1b8+KLL9KwYUPraTzL6dSmTZvSqlUrXn75Zbp06cL//d//0b9/f4YOHcqXX37JhAkTmD17dqpTeAcPHsTHx4fg4OCcPoXqEIxGIxEREfj6+nLy5El27tzJxo0bWbFiBXPmzGHChAmMGDGCTz75hD59+vCf//yHrl270qFDB15++WXrKb7GjRvToEED3n//fSztalneeustWrduTYcOHejSpQtvvfUWffv2Zfjw4Xz33XcsWLCA3377jY0bN3LgwAF8fHzw9fXl3r17uXGqTxcmk4mQkBCuXLnC2bNn2b9/Pxs2bGDRokVMmTKFMWPG4Orqynvvvcdbb71F165d6dSpE+3ataNly5bW7Z32VHWDBg1o2rQpbdu25fXXX+edd97hww8/ZPDgwXz++efWjm/OnDksXrwYd3d39uzZwz///MP9+/dt5njadvX29s7FLZY5o9FIVFQUgYGBnD9/nkOHDllPWS9evJgZM2YwduxY63bt0aMHb7zxBq+++qr11GraIRn169enUaNGNG3alDZt2tChQwe6detG3759GTx4MJ999hljx45lypQp/PTTT6xZs4Zdu3Zx9OhR6xePkJAQe59SfSRZbdfExERCQ0O5evUqJ0+e5NChQ2zevNk6HGDatGnWL5z9+/enV69edO/enfbt29OqVStefPHFdHO2Xr161K9fn4YNG/Liiy9aT6126tSJHj160Lt3bz7++GNGjBjBuHHjmDJlCosXL2bjxo3s3r3bOjTAcmTsUY+a57b4+HgCAgK4ceMG3t7enDx5kj179uDu7s7ixYut2/brr79mxIgRDBs2jI8++ojevXvTtWtXOnbsyCuvvJJqG/fp0+eBdn377bd55ZVX6Nq1K++99x5Dhgzhq6++su4Pli9fzqZNm/jrr7+4du0a4eHhUgA+jkhxJ5C4uDhWrFhBpUqVKFKkCLt27UqVvBERETd9fX2tFeGUKVNQSjFkyBBOnz7NkiVLKF68OBUrVkx5RfGnQJwlQZs2bUrDhg3x8PB4mDGAwsE4eqEgHo60a94k7Zo35US7ZmUMYPXq1aUAzEswD6pl3rx5lCpVCqUUHTp04Ny5c2nzw/TEE0/8W6BAAe7fvw+YvyVOnTo11WHmNm3apFzXH/NVWkbZ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eV1vTPK63pj88bqOHj0aTdOIiYkBmOb/ikV4FRALEBwcXCl4nL8efPBB7Ha7HgdPAsMAioqK6Nq1K5qm8fzzz/PHP/6RBg0a8Nvf/pbCwkL9+B/8FaDC/+R1vTHJ63pjktf1xuSP13XIkCFomkZCQgLAeP9VKsIngAn6i1teXk5BQQFXrlwhIyODCxcu0LlzZ2699VZ27twJcBY4B9wOXAH44osvuOmmm1iyZIkRJDt27KBBgwaMGDFC/1GyvwJU+J+8rjcmeV1vTPK63pj88br269cPTdM4e/YswAj/VyzCq4DGwOqqXuxJkyahaRohISH6j64CjwO/g4p9Ae+9917+8Y9/XPfYV155hU6dOlX6mbzx3Jjkdb0xyet6Y5LX9cbkj9f1o48+QtM0srOzAQb5vWARvgH8J9CVa7eEMzIyuPPOO3n55Zcdb/32v3bsFwCxsbFomsaaNWv03y8G9sHPl4pzc3P9GqDC/+R1vTHJ63pjktf1xuSP1/X//u//0DSNsrIygF7+rVKETwFNgCKAvn370qBBA+Lj4/XXfjPQ4NpxE+HnJeFJSUn6MR8CCwBCQkLQNI1z585dF6CdO3emc+fOnDlzxusBKvxPEsqNSV7XG5O8rjcmf7yun376KY0aNdL/8xO/FynCd4BPAbKzs7n99tt5++239RfaDnRwOG4cwPLly9E0jcTERP24D6noJci4cePQNI3MzMzrAjQjI4Njx47V+FVfWxPk5uZy8uRJoqOjWb9+PcuWLWPmzJmMGzeOwYMH07t3b5RSvP/++/z973+nW7duvP7667z44os8++yzdOrUiQ4dOvD4449X+mrfvj1PPvkkTz31FM899xxdu3blpZde4k9/+hOvv/467777LkopBgwYwDfffMOkSZMICwtjyZIlbNq0iV27dnHgwAESExNJTU0lLy8Pm83ml7+JvxKKzWYjIyODhIQEYmJi2Lp1KytXriQiIoKwsDB++OEHxo4di8Vi4fPPP6dXr150796dd999l7fffptXX32VF198keeff57nnnuOp59+mo4dO9KhQwfat29/3evRqVMnunTpwssvv8yf//xnunXrxnvvvccHH3zAJ598wldffcXYsWMJDQ1lwYIFrFmzhl27dnHy5ElycnIcr5wHjKKiIk6fPk1iYuJ1r+v48eP59ttv+fLLL+nduzfvv/++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\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"season_ratings('Roswell')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function() {\n",
|
|
" if (typeof(WebSocket) !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert('Your browser does not have WebSocket support.' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.');\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = (this.ws.binaryType != undefined);\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById(\"mpl-warnings\");\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent = (\n",
|
|
" \"This browser does not support binary websocket messages. \" +\n",
|
|
" \"Performance may be slow.\");\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = $('<div/>');\n",
|
|
" this._root_extra_style(this.root)\n",
|
|
" this.root.attr('style', 'display: inline-block');\n",
|
|
"\n",
|
|
" $(parent_element).append(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
|
|
" fig.send_message(\"send_image_mode\", {});\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj.onload = function() {\n",
|
|
" if (fig.image_mode == 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function() {\n",
|
|
" this.ws.close();\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function() {\n",
|
|
" var titlebar = $(\n",
|
|
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
|
|
" 'ui-helper-clearfix\"/>');\n",
|
|
" var titletext = $(\n",
|
|
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
|
|
" 'text-align: center; padding: 3px;\"/>');\n",
|
|
" titlebar.append(titletext)\n",
|
|
" this.root.append(titlebar);\n",
|
|
" this.header = titletext[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = $('<div/>');\n",
|
|
"\n",
|
|
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
|
|
"\n",
|
|
" function canvas_keyboard_event(event) {\n",
|
|
" return fig.key_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
|
|
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
|
|
" this.canvas_div = canvas_div\n",
|
|
" this._canvas_extra_style(canvas_div)\n",
|
|
" this.root.append(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = $('<canvas/>');\n",
|
|
" canvas.addClass('mpl-canvas');\n",
|
|
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
|
|
"\n",
|
|
" this.canvas = canvas[0];\n",
|
|
" this.context = canvas[0].getContext(\"2d\");\n",
|
|
"\n",
|
|
" var rubberband = $('<canvas/>');\n",
|
|
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
|
|
"\n",
|
|
" var pass_mouse_events = true;\n",
|
|
"\n",
|
|
" canvas_div.resizable({\n",
|
|
" start: function(event, ui) {\n",
|
|
" pass_mouse_events = false;\n",
|
|
" },\n",
|
|
" resize: function(event, ui) {\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" stop: function(event, ui) {\n",
|
|
" pass_mouse_events = true;\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" });\n",
|
|
"\n",
|
|
" function mouse_event_fn(event) {\n",
|
|
" if (pass_mouse_events)\n",
|
|
" return fig.mouse_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband.mousedown('button_press', mouse_event_fn);\n",
|
|
" rubberband.mouseup('button_release', mouse_event_fn);\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
|
|
"\n",
|
|
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
|
|
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
|
|
"\n",
|
|
" canvas_div.on(\"wheel\", function (event) {\n",
|
|
" event = event.originalEvent;\n",
|
|
" event['data'] = 'scroll'\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" mouse_event_fn(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.append(canvas);\n",
|
|
" canvas_div.append(rubberband);\n",
|
|
"\n",
|
|
" this.rubberband = rubberband;\n",
|
|
" this.rubberband_canvas = rubberband[0];\n",
|
|
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
|
|
" this.rubberband_context.strokeStyle = \"#000000\";\n",
|
|
"\n",
|
|
" this._resize_canvas = function(width, height) {\n",
|
|
" // Keep the size of the canvas, canvas container, and rubber band\n",
|
|
" // canvas in synch.\n",
|
|
" canvas_div.css('width', width)\n",
|
|
" canvas_div.css('height', height)\n",
|
|
"\n",
|
|
" canvas.attr('width', width);\n",
|
|
" canvas.attr('height', height);\n",
|
|
"\n",
|
|
" rubberband.attr('width', width);\n",
|
|
" rubberband.attr('height', height);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
|
|
" // upon first draw.\n",
|
|
" this._resize_canvas(600, 600);\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus () {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" // put a spacer in here.\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var button = $('<button/>');\n",
|
|
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
|
|
" 'ui-button-icon-only');\n",
|
|
" button.attr('role', 'button');\n",
|
|
" button.attr('aria-disabled', 'false');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
"\n",
|
|
" var icon_img = $('<span/>');\n",
|
|
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
|
|
" icon_img.addClass(image);\n",
|
|
" icon_img.addClass('ui-corner-all');\n",
|
|
"\n",
|
|
" var tooltip_span = $('<span/>');\n",
|
|
" tooltip_span.addClass('ui-button-text');\n",
|
|
" tooltip_span.html(tooltip);\n",
|
|
"\n",
|
|
" button.append(icon_img);\n",
|
|
" button.append(tooltip_span);\n",
|
|
"\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker_span = $('<span/>');\n",
|
|
"\n",
|
|
" var fmt_picker = $('<select/>');\n",
|
|
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
|
|
" fmt_picker_span.append(fmt_picker);\n",
|
|
" nav_element.append(fmt_picker_span);\n",
|
|
" this.format_dropdown = fmt_picker[0];\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = $(\n",
|
|
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
|
|
" fmt_picker.append(option)\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add hover states to the ui-buttons\n",
|
|
" $( \".ui-button\" ).hover(\n",
|
|
" function() { $(this).addClass(\"ui-state-hover\");},\n",
|
|
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
|
|
" );\n",
|
|
"\n",
|
|
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function(type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function() {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1]);\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
|
|
" var x0 = msg['x0'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch(cursor)\n",
|
|
" {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = \"image/png\";\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data);\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig[\"handle_\" + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function(e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e)\n",
|
|
" e = window.event;\n",
|
|
" if (e.target)\n",
|
|
" targ = e.target;\n",
|
|
" else if (e.srcElement)\n",
|
|
" targ = e.srcElement;\n",
|
|
" if (targ.nodeType == 3) // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
"\n",
|
|
" // jQuery normalizes the pageX and pageY\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" // offset() returns the position of the element relative to the document\n",
|
|
" var x = e.pageX - $(targ).offset().left;\n",
|
|
" var y = e.pageY - $(targ).offset().top;\n",
|
|
"\n",
|
|
" return {\"x\": x, \"y\": y};\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys (original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object')\n",
|
|
" obj[key] = original[key]\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event)\n",
|
|
"\n",
|
|
" if (name === 'button_press')\n",
|
|
" {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x;\n",
|
|
" var y = canvas_pos.y;\n",
|
|
"\n",
|
|
" this.send_message(name, {x: x, y: y, button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function(event, name) {\n",
|
|
"\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name == 'key_press')\n",
|
|
" {\n",
|
|
" if (event.which === this._key)\n",
|
|
" return;\n",
|
|
" else\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" if (name == 'key_release')\n",
|
|
" this._key = null;\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which != 17)\n",
|
|
" value += \"ctrl+\";\n",
|
|
" if (event.altKey && event.which != 18)\n",
|
|
" value += \"alt+\";\n",
|
|
" if (event.shiftKey && event.which != 16)\n",
|
|
" value += \"shift+\";\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, {key: value,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
|
|
" if (name == 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message(\"toolbar_button\", {name: name});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function() {\n",
|
|
" comm.close()\n",
|
|
" };\n",
|
|
" ws.send = function(m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function(msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data'])\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function(comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = $(\"#\" + id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm)\n",
|
|
"\n",
|
|
" function ondownload(figure, format) {\n",
|
|
" window.open(figure.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy,\n",
|
|
" ondownload,\n",
|
|
" element.get(0));\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element.get(0);\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error(\"Failed to find cell for figure\", id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var output_index = fig.cell_info[2]\n",
|
|
" var cell = fig.cell_info[0];\n",
|
|
"\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
|
|
" fig.root.unbind('remove')\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable()\n",
|
|
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items){\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) { continue; };\n",
|
|
"\n",
|
|
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
|
|
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
|
|
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
|
|
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
|
|
" buttongrp.append(button);\n",
|
|
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
|
|
" titlebar.prepend(buttongrp);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(el){\n",
|
|
" var fig = this\n",
|
|
" el.on(\"remove\", function(){\n",
|
|
"\tfig.close_ws(fig, {});\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.attr('tabindex', 0)\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager)\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which == 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" event.shiftKey = false;\n",
|
|
" // Send a \"J\" for go to next cell\n",
|
|
" event.which = 74;\n",
|
|
" event.keyCode = 74;\n",
|
|
" manager.command_mode();\n",
|
|
" manager.handle_keydown(event);\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function(html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i=0; i<ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code'){\n",
|
|
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] == html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel != null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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tWpRt25dAgICeOedd2jevDlhYWH07NmToUOHMmbMGGJjY5k+fToLFy5k5cqVbNy4ke3bt3PgwAFOnz7NlStXyM3NfS5x8rwqlNzcXDIzM9m/fz9paWmsWbOGJUuWMG/ePKZPn853331HdHQ0o0aNYtCgQfTu3ZvOnTsTFhZGy5YtadasGQ0bNqROnTrUqlWL6tWr4+3tTZUqVfD09LwrPXx8fPD396dRo0YEBQURGhpKx44diYiIoG/fvnz66adER0czdepUfvzxR5KSkti4cSNHjhzh0qVLpj3nL43r169z9OhRDhw4cFe6xsTEMHbsWIYPH06/fv0IDw/X83ezZs1o0KABfn5+VK9enapVq96Vx728vKhZsyZ16tShcePGtGrVis6dO/PRRx8xfPhwJkyYQFxcHPPnzyc5OZmNGzeyd+9eTp8+zbVr117K+DTKycnh1KlTpKWlsXz5cubNm0dMTAyjR4/mk08+oX///nTv3p3333+fNm3a8O6779KgQQNq165NzZo1qVat2l1xWqVKFXx8fHj77bepU6cOAQEBNGvWjODgYEJDQwkPD6dPnz4MGTKEESNGEB0dza+//npXum7bti3fEJ5XRV5eHpcvX+bkyZMcOnSI33//nRUrVjB79myio6P55JNP6Nq1K23atKFp06b4+/vrZcK94tlYLjdq1IiQkBA++OADevXqRWRkJF9++SWTJk1i1qxZLF68mHXr1rF7926ysrKeW759GuXwo9TNZcuWNZ4+8rk1TsSzBVgABwFiYmLQNM20F+/ne5x/GNR4PwsLCxITEwFV0A0dOhRN04iPjzf+/jrTDDpq1KgHzjjWNI3Q0FCWL19OWloa6enp/Pnnn1y6dIkbN248ccMmJyeHq1evcubMGY4fP87u3bvZtGkTK1asYOHChcyYMYPY2FiioqLo3r07wcHB+Pv74+npyRtvvEGxYsUeet33+lhZWVGiRAmcnJxwcXHBzc2NSpUq8dZbb+kfDw8PKomYPhQAABodSURBVFasSPny5SlbtiylSpXCzs6OYsWKYWVl9UT/97XXXsPBwQFXV1eqVq1KgwYNaNu2LeHh4QwcOJDx48czdepU5s6dy9KlS9mwYQO7d+8mIyODrKws/vnnn0cqvB6l4Llx4wanTp1i165drF69ml9++YW5c+cSGxvLZ599lq/B1qJFC+rX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\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"season_ratings('Veronica Mars')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function() {\n",
|
|
" if (typeof(WebSocket) !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert('Your browser does not have WebSocket support.' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.');\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = (this.ws.binaryType != undefined);\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById(\"mpl-warnings\");\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent = (\n",
|
|
" \"This browser does not support binary websocket messages. \" +\n",
|
|
" \"Performance may be slow.\");\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = $('<div/>');\n",
|
|
" this._root_extra_style(this.root)\n",
|
|
" this.root.attr('style', 'display: inline-block');\n",
|
|
"\n",
|
|
" $(parent_element).append(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
|
|
" fig.send_message(\"send_image_mode\", {});\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj.onload = function() {\n",
|
|
" if (fig.image_mode == 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function() {\n",
|
|
" this.ws.close();\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function() {\n",
|
|
" var titlebar = $(\n",
|
|
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
|
|
" 'ui-helper-clearfix\"/>');\n",
|
|
" var titletext = $(\n",
|
|
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
|
|
" 'text-align: center; padding: 3px;\"/>');\n",
|
|
" titlebar.append(titletext)\n",
|
|
" this.root.append(titlebar);\n",
|
|
" this.header = titletext[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = $('<div/>');\n",
|
|
"\n",
|
|
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
|
|
"\n",
|
|
" function canvas_keyboard_event(event) {\n",
|
|
" return fig.key_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
|
|
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
|
|
" this.canvas_div = canvas_div\n",
|
|
" this._canvas_extra_style(canvas_div)\n",
|
|
" this.root.append(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = $('<canvas/>');\n",
|
|
" canvas.addClass('mpl-canvas');\n",
|
|
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
|
|
"\n",
|
|
" this.canvas = canvas[0];\n",
|
|
" this.context = canvas[0].getContext(\"2d\");\n",
|
|
"\n",
|
|
" var rubberband = $('<canvas/>');\n",
|
|
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
|
|
"\n",
|
|
" var pass_mouse_events = true;\n",
|
|
"\n",
|
|
" canvas_div.resizable({\n",
|
|
" start: function(event, ui) {\n",
|
|
" pass_mouse_events = false;\n",
|
|
" },\n",
|
|
" resize: function(event, ui) {\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" stop: function(event, ui) {\n",
|
|
" pass_mouse_events = true;\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" });\n",
|
|
"\n",
|
|
" function mouse_event_fn(event) {\n",
|
|
" if (pass_mouse_events)\n",
|
|
" return fig.mouse_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband.mousedown('button_press', mouse_event_fn);\n",
|
|
" rubberband.mouseup('button_release', mouse_event_fn);\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
|
|
"\n",
|
|
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
|
|
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
|
|
"\n",
|
|
" canvas_div.on(\"wheel\", function (event) {\n",
|
|
" event = event.originalEvent;\n",
|
|
" event['data'] = 'scroll'\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" mouse_event_fn(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.append(canvas);\n",
|
|
" canvas_div.append(rubberband);\n",
|
|
"\n",
|
|
" this.rubberband = rubberband;\n",
|
|
" this.rubberband_canvas = rubberband[0];\n",
|
|
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
|
|
" this.rubberband_context.strokeStyle = \"#000000\";\n",
|
|
"\n",
|
|
" this._resize_canvas = function(width, height) {\n",
|
|
" // Keep the size of the canvas, canvas container, and rubber band\n",
|
|
" // canvas in synch.\n",
|
|
" canvas_div.css('width', width)\n",
|
|
" canvas_div.css('height', height)\n",
|
|
"\n",
|
|
" canvas.attr('width', width);\n",
|
|
" canvas.attr('height', height);\n",
|
|
"\n",
|
|
" rubberband.attr('width', width);\n",
|
|
" rubberband.attr('height', height);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
|
|
" // upon first draw.\n",
|
|
" this._resize_canvas(600, 600);\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus () {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" // put a spacer in here.\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var button = $('<button/>');\n",
|
|
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
|
|
" 'ui-button-icon-only');\n",
|
|
" button.attr('role', 'button');\n",
|
|
" button.attr('aria-disabled', 'false');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
"\n",
|
|
" var icon_img = $('<span/>');\n",
|
|
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
|
|
" icon_img.addClass(image);\n",
|
|
" icon_img.addClass('ui-corner-all');\n",
|
|
"\n",
|
|
" var tooltip_span = $('<span/>');\n",
|
|
" tooltip_span.addClass('ui-button-text');\n",
|
|
" tooltip_span.html(tooltip);\n",
|
|
"\n",
|
|
" button.append(icon_img);\n",
|
|
" button.append(tooltip_span);\n",
|
|
"\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker_span = $('<span/>');\n",
|
|
"\n",
|
|
" var fmt_picker = $('<select/>');\n",
|
|
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
|
|
" fmt_picker_span.append(fmt_picker);\n",
|
|
" nav_element.append(fmt_picker_span);\n",
|
|
" this.format_dropdown = fmt_picker[0];\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = $(\n",
|
|
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
|
|
" fmt_picker.append(option)\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add hover states to the ui-buttons\n",
|
|
" $( \".ui-button\" ).hover(\n",
|
|
" function() { $(this).addClass(\"ui-state-hover\");},\n",
|
|
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
|
|
" );\n",
|
|
"\n",
|
|
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function(type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function() {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1]);\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
|
|
" var x0 = msg['x0'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch(cursor)\n",
|
|
" {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = \"image/png\";\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data);\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig[\"handle_\" + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function(e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e)\n",
|
|
" e = window.event;\n",
|
|
" if (e.target)\n",
|
|
" targ = e.target;\n",
|
|
" else if (e.srcElement)\n",
|
|
" targ = e.srcElement;\n",
|
|
" if (targ.nodeType == 3) // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
"\n",
|
|
" // jQuery normalizes the pageX and pageY\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" // offset() returns the position of the element relative to the document\n",
|
|
" var x = e.pageX - $(targ).offset().left;\n",
|
|
" var y = e.pageY - $(targ).offset().top;\n",
|
|
"\n",
|
|
" return {\"x\": x, \"y\": y};\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys (original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object')\n",
|
|
" obj[key] = original[key]\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event)\n",
|
|
"\n",
|
|
" if (name === 'button_press')\n",
|
|
" {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x;\n",
|
|
" var y = canvas_pos.y;\n",
|
|
"\n",
|
|
" this.send_message(name, {x: x, y: y, button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function(event, name) {\n",
|
|
"\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name == 'key_press')\n",
|
|
" {\n",
|
|
" if (event.which === this._key)\n",
|
|
" return;\n",
|
|
" else\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" if (name == 'key_release')\n",
|
|
" this._key = null;\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which != 17)\n",
|
|
" value += \"ctrl+\";\n",
|
|
" if (event.altKey && event.which != 18)\n",
|
|
" value += \"alt+\";\n",
|
|
" if (event.shiftKey && event.which != 16)\n",
|
|
" value += \"shift+\";\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, {key: value,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
|
|
" if (name == 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message(\"toolbar_button\", {name: name});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function() {\n",
|
|
" comm.close()\n",
|
|
" };\n",
|
|
" ws.send = function(m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function(msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data'])\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function(comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = $(\"#\" + id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm)\n",
|
|
"\n",
|
|
" function ondownload(figure, format) {\n",
|
|
" window.open(figure.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy,\n",
|
|
" ondownload,\n",
|
|
" element.get(0));\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element.get(0);\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error(\"Failed to find cell for figure\", id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var output_index = fig.cell_info[2]\n",
|
|
" var cell = fig.cell_info[0];\n",
|
|
"\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
|
|
" fig.root.unbind('remove')\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable()\n",
|
|
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items){\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) { continue; };\n",
|
|
"\n",
|
|
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
|
|
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
|
|
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
|
|
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
|
|
" buttongrp.append(button);\n",
|
|
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
|
|
" titlebar.prepend(buttongrp);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(el){\n",
|
|
" var fig = this\n",
|
|
" el.on(\"remove\", function(){\n",
|
|
"\tfig.close_ws(fig, {});\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.attr('tabindex', 0)\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager)\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which == 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" event.shiftKey = false;\n",
|
|
" // Send a \"J\" for go to next cell\n",
|
|
" event.which = 74;\n",
|
|
" event.keyCode = 74;\n",
|
|
" manager.command_mode();\n",
|
|
" manager.handle_keydown(event);\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function(html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i=0; i<ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code'){\n",
|
|
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] == html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel != null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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27Ztad26NQ0bNuSpp57iwQcfvG25C7rdd999PPLII1SvXp1atWpRt25dnnvuOerXr6/f3N3defbZZ3nmmWdwc3Pj8ccfp0qVKjz44IPcd999JXrev/3tb1StWpXatWvz/PPP8/rrr/Pvf/+bb775ht69ezN69Gj8/Pz4/fffCQwMZOfOnRw7dozLly8TFxdHVlaWw768MjIyCA8P58iRI2zZsoVVq1bx+++/M3XqVH744Yc8CdtHH33EP/7xD5o0aULt2rWpVq0aDz30EBUqVChRPSiKwt13303FihWpUqUKVatWpXr16tSsWZM6depQt25d6tWrp78nzz33HPXq1aNWrVpUq1aNypUrc//995fofa9evTrNmjXjww8/5Ntvv2XgwIEMHz6cadOmsWjRIjZs2MDBgwc5f/48MTExuT9LJWK1WklLSyM2NparV68SFhbGwYMH2blzJxs2bGDJkiVMnz6dIUOG8L///Y+2bdvy4osvUr16dSpWrFiiur333nv5+9//zqOPPoqbmxs1a9bk2WefzRPj7u7u1KlTh6eeeoonnniChx9+WP9xWdRbhQoVqFSpEnXq1KF169a0bduWjh070rlzZ3x8fJg6dSpz5sxhyZIlrF+/nv3793PmzBliYmLIysoqdfzGxsZiMpk4e/YsBw8eZNu2bSxbtgw/Pz8mTpyo//Do1KkTn332GW+99RYNGjSgatWq3H333cV6rRUrVuTRRx+lWrVq1KhRg2eeeSbP94a7uzt169alVq1aVK9enapVq1K5cmUqVqzIvffeW6L3sVKlStSsWZOGDRvy2muv0b59ezw8POjfvz9jxoxh6tSpzJ8/n7Vr17Jt2zZCQ0P1H5wpKSkO+8FptVpJSEjg8uXLevxu2LCB33//nV9++YXJkyczZMgQunbtyrfffssXX3zB+++/T+vWrWnSpAk1atSgYsWKRf6+qFChAg899BDVqlXj6aefpnbt2ri7u+vfBbnr+fHHH6dy5cr87W9/K1bcVq5cmTp16tCqVSvat29Ply5d6Nu3L0OGDGH06NHMmDFDT8y3bdtGSEgIp0+f5vLly0RGRpKYmFiqJN1sNhMdHc25c+c4dOgQO3fuZN26dSxcuJDx48fTv39/vv766yK1zXXr1uWjjz6yn7qVIlwbWjf90fxBExkZyUMPPZT7zQb4DOiA1t2f3zT7/3zyySfUqVMnz+mio6Px9fUtUpDd7nbfffdRpUoVqlWrpjc47u7uPPfcc3oyVbNmTZ588kkee+wxHnjggRI1bG5ubri7u9OiRQveeecdOnbsiLe3N+PGjWPmzJn4+/uzbt069u7dy5kzZ4iIiOD69eskJyeTmZlZ4Jdi7nrw9fW9VW+nLjs7m9jYWP7880+OHTvGjh07WL9+Pf7+/vqX4ujRo/Hx8dF7Z/71r3/x6quv0rRpU+rWrUuVKlVKVNf3338/lStX5vHHH9cb+Fq1avHss8/qiZP9i7JOnTp6vVepUoUHHnigwMavVatWN9VD8+bNURSFe+65h8cee4zatWvTpEkTXn75Zd555x3atWuHqqr4+PgwZswYpk2bxoIFC1i+fDlBQUFs3bqVffv2ceLECS5fvkx0dLTDG6b09HSSkpK4du0aZ86cYd++fXl+QEyaNAlvb2++/fZbPvjgA1q2bMnTTz9daKNcUD28+OKL3H///VSqVIlHH32U6tWrU7t27ZsSVXucP/300zz++OM8+OCDxU6S77nnHp566ilefPFF3n//ff7zn//Qr18/Ro8ezU8//aQnVPZG/9ChQ4SFhTmkl9lms5GamkpUVBRnz57l1KlTN9XFhAkT6N69Ox07dqRdu3a8/fbbNG7cmGrVqnHPPfcU+7VWrFiRhx9+mCeeeIIaNWpQq1Yt6tWrpyeq9erVo3bt2tSsWZNq1apRpUqVEv8Ae+ihh6hbty6vvvoq7dq1o1u3bowePZpZs2axfPlydu3axbFjxzh//jwmk4n4+HgyMzOx2Wwl+o7IzWKx6HH6559/curUKfbs2cP69etZsmQJM2fOZOTIkfTs2VPvyX3rrbdo3rw57u7uPPLIIyV6zffeey+PPPJInh8C9erV07+b7d/P9erV078r7D94H3rooTzv6a2+I/LfHnjgAapVq0adOnVo0aIF7733Hu3ateObb76hZ8+eDB48mJEjR/LLL7+wZs0a9u7dy7lz50hISChRDNtsNtLT04mJieHs2bOEhISwbds2AgMDmT9/Pj/99BO+vr54eHjQrl072rRpo8dtcT+jBdVDmzZtePLJJ/UfBvaENf/3wmOPPVasH69FaZsfffRRGjRoYK+K1opwfUD/3AGelpbGm2++yf3338+pU6cK/SD8+eefN13+vXz5Mg888ADdu+ubhUQDaSdPnixykLVv355Zs2YxevRovL296datG9999x0dOnTgs88+48MPP6RNmza0bt2aF154gcaNG+uX8eyXU5s3b06rVq147bXXeP/99/n888/5+uuv8fLyom/fvgwdOpRJkybluYS3fft2Tp06RVxcnKMvoers9WC/nTx5skyepyBWq5Xk5GQuX75MaGgoGzduZOXKlcybN48pU6YwdOhQ+vTpw//+9z+++uor/v3vf/PBBx/Qpk0bXnvtNf0SX9OmTXn++efzXDpt1KgRTZo0oXnz5rRu3Zo2bdrw/vvv8/HHH9OhQwe6d+/OsGHDmDFjBhs2bLipHvbs2VMel/oMYbPZiI+P59y5cxw5coStW7eyfPlyVq1adVM9fPfdd3zwwQe8/fbbvP7667z00ksF1neDBg14/vnnad68Oa+++ir//Oc/+fTTT/nvf/+Lp6cnvXr10hu+KVOmMHPmTJYsWcLmzZs5fvw4169fL7MYL6nifDasViupqanExMRw4sQJduzYoV+ynjlzJuPGjWPQoEF07tyZL7/8ko8++oj33nuPN998U7+0mn9IRu4Yfvnll2nTpg0ffvghHTp0wNPTk549ezJo0CBGjRrFzz//zKJFiwgODmbPnj36D4/4+PhSX1I18jvCLjs7m4SEBM6fP09oaCg7duxg9erV+nCAMWPG6D84v/76a9q3b0/btm154403aNWqFS+88EKBMduwYUMaNWpE48aNeeGFF/RLq2+//TYfffQRn332GR4eHkydOvWmeli8eLE+NMDeM1baXvPylpWVRXR0NBcvXuTkyZOEhoayefNmPTG31+33339Pnz59mDBhwk318MUXX+Sp44KGW7z44ov84x//4IMPPuDLL7+kS5cuDBw4UP8+mDt3LqtWrWL37t1cuHCBpKQkSQDvRGi9eoD2oV+5ciX169enQoUKzJs3L0/wZmZmXrh8+bK+ZVzz5s1p1KgRp06dwmKxsH37dpo0acI999yT+0vrJyDTHsTNmzencePGehJQzDGALs8ZvtydgdSDRurhBqkLjdSDRupBU171UJQxgHXq1JEE8K8EbaYRy5Yt4/HHH0dRtFm927ZtuylAnnzyyYOKcmO5mJ07d1KjRo08wVm1alVWrlxpPyQbbXaWVT7MGqkHjdSDRurhBqkLjdSDRupB40z1UK9ePRo2bGj/p0wCcXVoswsJCAigY8eOBAcH574MtxPt8vB6AG9v74C///3vVxITE/WAyMzMZNGiRYwbN46AgAAyM/UOQoBuQEVwriA2ktSDRupBI/Vwg9SFRupBI/WgcaZ6ePbZZ3n++eft/2xRfpmKKBPAN4W816HA6zmPeZcbyxusz/WY2EKOjQI65BxbFZwriI0k9aCRetBIPdwgdaGRetBIPWicqR5q1qzJCy+8YP9n0/LJUkSZArqgrbF0CW3Rx7fJt4An2oKmu9AWaV6CttDpvcB/0dZu6o22/tgXwL25jnsanCuIjST1oJF60Eg93CB1oZF60Eg9aJyhHuxXBd3c3GjVqpX97gZll5WIvwS0bdCcIoidgdSDRupBI/Vwg9SFRupBI/WgcYZ6MJlMADzyyCO88cYb9rtrl18mIVwS2iQQpwhiZyD1oJF60Eg93CB1oZF60Eg9aJyhHjZs2ADAvffeS9u2be13P1F+mYRwSWj7yhIdHc0PP/yAoijUr1//L73Uy62UdpHXvwqpB43Uww1SFxqpB43Ug8boeoiIiGDhwoVYrVYURVunN0clo/ML4eSAFvZoSUlJQVEUvv7663INYCGEEEIU38KFC1m6dGlB7fc9RucXwskBL9mjJSIiAkVRcu8SIoQQQggnlJaWRrdu3VizZk3+9jvd6NxCuACgtT2YTp8+jaIo+Pj4GBbQQgghhLi9LVu2oKoqW7duzd9+RxqdWwgXQK4EMDQ0FEVRGDNmjGEBLYQQQohbs1qtDBkyBFVV9T2hc7Xf543OLYQLAPRFg7Zt24aiKEybNs2woBZCCCHErR08eBBVVfH09CQ9PT1/+33U6NxCuAByTQJZu3YtiqIwf/58w4JaCCGEELc2evRoVFXFz88PuKn93m10biFcANDEHlDz589HURRWr15tTEQLIYQQ4pYuXLiAqqqoqsrFixeBm9rvjUbnFsIFAO72oJo6dSqKorBjxw5joloIIYQQtzR9+nRUVWXs2LH6ffna7wCjcwvhAtD2DAZgzJgxKIpCaGho+Ue0EEIIl5K6ZDcxn08gbY20GeXFZDLpvX9Hjx7V78/Xfi8zOrcQLgB43B5A/fv3R1EUzp8/X/5RLYQQwqVE/3ssJjcP4vrMM7ood4wFCxagqirDhg3DZrPp9+drv5canVsIFwDcZw8gDw8PFEUhISGh/KNaCCGEy8gOj8Pk5oHJzYOMPWeMLs4dISEhAS8vL1RVZffu3Xn+lq/9XmR0biFcBJAO0L59exRFwWKxlH9kCyGEcBnJszdjcvMgolkfbFar0cW5I6xcuRJVVRkwYABmsznP3/K138uNziuEiwCiAV577TUeeeSR8o9qIYQQLiX6X6MwuXkQP/A3o4tyR8jKyqJ3796oqsqGDRtu+nu+9jvQ6LxCuAjgKkDDhg1xd3e/KbCEEEIIu+wIufxb3nbt2oWqqnTt2pWUlJSb/p6v/ZZlYETRAGcBatasSfPmzcsvooUQQric5Onrb1z+tcjl37Jms9kYNmwYqqqycOHCAh+Tr/3eaXReIVwEcAigUqVKvPXWW+UT0UIIIVxS1Fu+mNw8SPhxqdFFuSOcO3dOX/olPDy8wMfka78PGJ1XCBcB7LNYLCiKQvv27csrpoUQQriYrFNX9cu/WSeuGF2cO8Ivv/yCqqqMGzeuwL8X0H6HGZ1XCBcB7EpOTkZRFL755pvyimkhhBAuJmHYMkxuHkS2GZJnHTpRNq5fv46npyeqqnL48OECH1NA+33V6LxCuAhgm8lkQlEUevbsWV5xLYQQwoXYsi1ENOuDyc2D5OnrjS7OHSEgIABVVRk0aBDWQpbbKaD9jjU6rxAuAtgTGhqKoiiMHDmyvOJaCCGEC8nYflK7/Fu9E5Zr8UYX5y/PbDbrS79s2rSp0McV0H6nGJ1XCBcBHNi4cSOKojBz5szyiGshhBAu5noXP0xuHsR8OdHootwRQkJCUFUVLy+vApd+sSug/bYBdxudWwgXABxdtmwZiqKwZMmScghrIYQQrsSakIqplicmNw/SVu03ujh3hIkTJ6KqKrNmzbrl4wppvysZnVsIFwCcmT17NoqisH69jOsQQgiRV8q8LZjcPAiv3x1bhvn2B4hSiY6O1pd+OXPm1ottF9J+VzU6txAuALgyfvx4FEVhz549ZRnTQgghXFDUP3/Utn4b/LvRRbkj2Pf9/f77728727qQ9vspo3ML4QKAGB8fHxRF4dSpU2UZ00IIIVxM1rFLsvZfObJYLPTv3x9VVQkKCrrt4wtpv+sanVsIFwAk9OvXD0VR+PPPP8sqpoUQQrig+AELMbl5EPXeMKOLckc4fvw4qqri6elJQkLCbR9fSPvd0OjcQrgAIKNr164oisK1a9fKKqaFEEK4GGtSGuF1vTC5eZCycLvRxbkj+Pn5oaoqP/30U5EeX0j73dTo3EI4OeBugG+++QZFUUhKSnJ8NAshhHBJybM2a5M/3LthTckwujh5mM1mFi5cyJQpU0hNTTW6OA6RmpqKl5cXqqpy4MCBIh1TSPvdwuj8Qjg5oBJA+/btURQFi8Xi+IgWQgjhcmxWK5GvfY/JzYOEIYuNLk4eiYmJDBo0SJ8pe/r0aaOL5BA7duxAVVV69uyJ2Vy02daFtN+tjc4vhJMDngBo27Yt9957r+OjWQghhEtK33Jc3/nDfD7S6OLorly5gre3t578qarKnDlzjC6WQ4wbNw5VVVm4cGGRjymk/W5ldH4hnBxQHeDdd9+lYsWKjotiIYQQLi3mq0mY3DyI/b/JRhdFt3fvXrp27YqqqvTq1Yu5c+fqSWBYWJjRxSuV2NhY/bWcPXu2yMcV0n5LAihuDagN0KZNGypXruy4SBZCCOGyzGHh+tIvGTuMXx7MYrGwZMkSPUHy9fUlKioKm82m75jx/fffk5WVZXRRSywoKAhVVRk4cCBWq7XIxxXSfr9kdH4hnBzwHMArr7xC1apVHRfJQgghXFZ8v/mY3DyIfPOH2y5EXNYSEhIYO3asnvzNmDGDjIwbE1KioqL0XsHly5cbWNKSs9ls+Pr6oqoqK1euLNaxhbTfLY3OL4STAxoBtGzZkurVqzsmkoUQQrgsS1wKptqdMbl5kLpop6FlOXPmDH379tXXxQsKCiqwd2zjxo2oqkrnzp25csX1Fqs2mUx6ghseHl6sYwtpv5sbnV8IJwe8ANC0aVNq1arlmEgWQgjhspImrcXk5kFEw57Y0o25pGq1WgkMDMTT0xNVVenTp88td6qyWCwMHz4cVVUZNmyYy61oYd/6zdfXt9jHFtJ+NzY6vxBODngJoFGjRtStW7fUQSyEEMJ12bKyiWjaB5ObB4njVxtShsTERH1cn6qqjB07lvj4+Nsed+XKFTp37oyqqqxZs6YcSuoYNpsNHx8fVFVl3bp1xT6+kPb7OaPzC+HkgNYADRo0wN3dvfSRLIQQwmWlLtujTf54xhNLdGK5P/+JEyf0S772MX3F6c1bs2aNfrn43LlzZVhSx8l9+TcysvjL7RTSftcxOr8QTo5cCWD9+vVLH8lCCCFcks1mI+q9YZjcPIjrWb7r6mVnZxMQEKAnQn369OHEiRMlOs/o0aNRVRUfHx+XmBVsn/07ZMiQEh1fSPvtZnR+IZwcuRLA5557rnRRLIQQwmVlbDuhL/2SdfxyuT1vVFQUI0aM0JO/iRMnkpCQUKrz2bdTW7p0qQNLWjaGDRtWqhnMhbTflYzOL4STA1oCPP/88zIGUAgh7lA2m43oj0ZhcvMgpkP5LPxss9nYvXs33bt317Hv+PUAACAASURBVGfwFjbLt7jss4KdfYHoyMhIvZwlnb1cSPv9N6PzC+HkgGYAzZo145lnnildJAshhHBJGbvP6L1/mYf+LPPnS0lJ4ddff9WTn8GDB/Pnn457XqvVyoQJE5z+UrD98q+Pj0+J11ssoP1ONTq3EC4AeB6gRYsW1KhRo/TRLIQQwuXEfjtN6/37bHyZP9fx48fp169fnn1809PTHf48rnAp2J6klqZ8BbTfUUbnFsIFAPUBXn75ZapVq1a6SBZCCOFysk5d1Xv/0oOPlNnzpKens2DBAj3x69WrF6GhoWX2fADBwcFOOys4IyNDT1CPHTtW4vMU0H6fMTq3EC4AeBbg9ddf59FHHy1dNAshhHA51zvNwOTmQdQ7Q7E5YPxdfjabjUOHDjFgwAA9+ZsyZUqpJnoUldVq1beRc7a9go8cOYKqqnTt2pXMzMwSn6eA9nuv0bmFcAFAdYD33nuPihUrli6ahRBCuBTz2YgbvX/rDzn8/HFxccyYMUNP/Hr06MHOnTvLdX/h3HsFBwQElNvz3s7vv/+OqqpMnly6STcFtN8bjc4thAsAKgN8+umnKIpi+KbfQgghyk98/wWY3DyIbDPEob1/VquVTZs20a1bNz35mzFjRpF29CgL9lnBnp6eXLx40ZAy5Ga1WvVxkFu2bCnVuQpovxcbnVsIFwA8APDVV1+hKEqpuqGFEEK4DktUAqZnPDG5eZDqv8Nh57169SqjRo3SE7+BAwdy5EjZjS0sCovFwsiRI51mr+CzZ8/q9VPapLiA9nu20bmFcAHAXYCtU6dOKIpi2K8zIYQQ5StxwmpMbh5ENO2DLdNc6vNlZWWxatUqunTpove2LV261Gk6Fq5evarvFRwUFGRoWRYvXqzvc1xaBbTfk43OLYSLAFJ79OiBoiiYTKZSB6MQQgjnZk3PJOL5XpjcPEiatLbU5zt16hRDhgzRe7WGDh3qFJda81u5ciWqquLl5VWifXcdwWq16hNiNm3aVOrzFdB++xqdVwgXAVwfMGAAiqJw/vz5UgejEEII55Y8azMmNw/C63TBEpdc4vMkJSXlWdDZy8uLoKAgzObS9yiWBbPZrCeqEydONGTcu8lk0usrJiam1OcroP3uZnReIVwEYBo6dCiKopRqLSIhhBDOz2axcq1Ff0xuHiT4LinxeQ4cOEDv3r3zLO1iVK9acYSFhell3rdvX7k//6ZNm/RlaRyhgPb7a6PzCuEigFOTJk1CURR27drlkIAUQgjhnNLXH9KWfqnRiWzT9RKdY9euXXoS1adPHw4cOOBSq0jMmTMHVVXp27cvqamp5frcU6ZMQVVVfv/9d4ecr4D2u73ReYVwEcA2f39/FEVh+fLlDglIIYQQzin632MxuXlwvdP0Eh1vtVoZPHgwqqoyYcIEkpNLfgnZKElJSfTq1QtVVfH39y+35zWbzfqahIcPH3bIOQtov983Oq8QLgJYvmHDBhRFYdasWQ4JSCGEEM7HHBauL/ycue9sic5x9OhRfZZvbGysg0tYfrZv366/jitXrpTLc547d05/Tkf1PBbQfr9hcFohXAUwOyQkBEVRGD16tEMCUgghhPOJ7zdfW/j5zR9KfMl2woQJqKrK9Okl60F0FlarlREjRujLsZTHJewVK1agqiojRoxw2DkLaL9fNDqvEC4C+DE8PBxFUejWrZvDglIIIYTzsMQlY6qVs/Dzop0lOselS5f0sX9nz5asB9GZXLhwQX89+/fvL/PnGzp0KKqqEhgY6LBzFtB+P2t0XiHKAHA38ChwfzGOeRhoBjQBHijg7/+zWCzcfffdtGvXzmFBKYQQwnkkT1+vLfzcsCe29KwSnWPWrFmoqsqoUaNcatLHrcyePRtVVRkwYECZLlodGxurJ5uXL1922HkLaL+fc2zmIQyDtlvHF0AQkJHzBluB7UBboEIhxz0F/AZk54qVNGAC8Eiux/0LoGrVqrz66qsOC0ohhBDOIffSL4kjA0p0jri4OH0njdDQUAeX0Djx8fH6nsWrV68us+fZunWrnmg6OnnO1343Lr8MRZQZtL16193mvZ8J3JXvuE/Qkj0AbDZb/oC7BjTIeezLAA0aNKBu3bqOiUYhhBBOIz34yI2lX8JLtvTLkiVLUFUVb29vw/fSdbSgoCBUVaVr167ExcWVyXPYx07+9ttvDj93vvb7dWMyFuFQwK+gJXCLFy/mk08+oV69erRp04Y1a9bkfv+/z3VMY3J6Ci9fvswXX3zBAw88QKVKlejZs2fuWVvn0RLMZwDeeustHnroIYcHphBCCGPFdpyKyc2D2G+mlej4tLQ0unfvjqqqbNmyxcGlM15WVhbe3t6oqsrs2bMdfv6kpCQ8PT1RVZXTp087/Pz52u/PjcxbhAMA1QELQPfu3bnrrrv473//y4gRI2jZsiWKojBhwgT7G54OVM45bgtoezM++OCDVK5cGW9vb3r06MHf//53GjRoQFqa3jnYG22MIJ999hmKovzlftkJIcSdzBKZgKlGJ0xuHqQHHynROey7V/Ts2ZOMjIzbH+CCQkJC9DF6ly5dcui5t23bpi+aXRZtbL72WzU0eRGlBwwAbd/Au+66ixkzZuhvdlZWFm+//Tb3338/8fHx9rs7A7Xt//jHP/5B9erVuXbtmn7cgQMHUBSFSZMm2e/agzbGkE6dOqEoSu7zCSGEcHFJPwVpkz+a9cGWXfzkI/fCzwEBJRs/6ApsNhujRo1CVVXGjx/v0HF6U6dORVVVFixY4LBz5pav/e5vcPoiSgvwB/j1119RFIXr1/OO2zh8+DCKouQOqHloSaA+LXzq1Kk3BUrLli1566237P+0AA8Blj59+qAoikNnJwkhhDCOzWYj8tXB2uSPUSXb6enw4cN/iYWfi8K+ULOqqrn31i2V1NRUunTpgqqqHD161CHnzC9f+z3c0ORFlB4QADf2+cufACYlJaEoCtOm6WM6FgHzARYuXIiiKLm7sXujjfnju+++48EHH8x9qiZAtq+vL4qicOLEiTIITyGEEOUt89Cf+s4f5vPXbn9AASZNmoSqqvzyyy957s/IyiQjq+yWTTHK9OnTUVWVoUOHYrVaS32+3bt3o6oqPXr0wGw2O6CEN8vXfk8xNHkRpQeMBTh06BCKotCvXz89GM1mM4MHD0ZRFJYtW2aPgSnAWoDRo0ejKArZ2foKMG+gXe6lf//+3HXXXbm7t18CrBMnTqRVq1YO+9UjhBDCWAlDFmFy8yDq/eElOv7atWt6j5h98kJyWip7Th5kzvqlhJwu2ZhCZxYREaFP2HDE4tBTpkxBVVXmzp3rgNIVbNGiRSiKwp49ewDmGpu9iFJDm80LQIcOHVAUBXd3dz7++GNq1KiBoigoipJ7RlEfYAnATz/9hKIouTfpfg84AuDl5ZW/B7AlgJ+fH9HR0Zw8efKWt+jo6DILYiGEEI5hM2cT0bgXJjcPkv2CS3QOf39/VFXF19cXq9XK9qP7mBm4CL9Af/wC/Vm0ZQ1WW+l7yZzNnDlzUFUVHx+fUk3aSE5O1tdOPH78eInPU5S2WVEUgoODAZYZmrwIxyDnMrDVamXRokV8/vnnvPHGG3h7e1O/fn1q1aqVuyevCfATaOs1KYrChQsX7H/rTs66gB9//DEvvPBC7thqCLBs2TK9G/lWN19f3xIHsRBCiPKRseOkvvafJTqx2MdnZmbSo0cPVFVl27ZtnLlyQU/8/P9YzYmLYZizs29/IhcUExOjJ267d+8u8Xm2b9+Oqqr07t079xW5YitK26woCosWLQLYWt65iigDaEu03LTo0vr161EUhZEjR9rvsgE+9n+cOnUKRVGYN29enuMsFguPPPIInTt3tt/1J+AO2jR1SQCFEM4qY9sJ4rrPJuaLCVzv4kfiqBWkLNhGxtYTZJ28iiU26S+zPZkjxPebj8nNg5h/jyv2sTabTR+71q1bN9LT01m5ayPLd6znz4grf8lev/wWLFiAqqoMHDiwxGP3xo8fj6qqLFy4sFRlKWoC+PPPPwMcLedURZQF4O/AhtyBcPjwYR599FEaNWpU6HpMNpsNd3d3XnnllTyDWH/++WcURWHp0qX2uxYDrQEOHjwoCaAQwinZ0rMIr+ulT2go7BZepwuRr31PTIfJJPj4kzx7M+lbjpN9OQab5a+ftNjZMs2E1++Oyc2DlN+2F+vYyOvRmLOz9SVRFixYQGJKMpejwu+oBDsuLg4vLy+9B7S4rl+/ro+fDAsLK1VZipoAjho1CuBieecqogwA+uJ/J0+epGvXrtx7771Ur16dM2fO5AmQQ4cO7fP3979i//fixYtRFIVWrVrx66+/0rlzZxRFoXnz5rm7oj8nZy/gs2fP0rx5c3x8fGQMoBDCqehbmbl5kDBkEfEDFhLTYTKRbwwhvHaX2yaGJjcPTLU8iXzzB653/pWkSWtJ33hYSwwdMNPT2aRvOqq95qdVrPEpRTomOuE66/ZtYfvRfVy9erXMFkV2JYsWLUJVVQYPHlzsGcH27eW8vb1LPZv4dmMAN2/ejKIoDBo0CCDG4NRFOAIQDtCtWzcURaFixYr069ePhIQEe1yk2//nrrvuuqYoChEREfo2H8HBwdSpUwdFUbj33nvp0aNH7nWcjgJ3k7N2oMlkQlEUevbsWapAFUIIR4v3Xqhdzvxq0k1/s9lsWJPTMZ+PJGPrCVJ+207CiABiPX4m6i3f2yaI4XW9iP5kDAk+/qQu2U3WyavYslx7bFtcrzlaff3n5vrKLz45keADO/XxfZFx0XriM2zYsDuq1y+/2NhYfUZwaGhokY+z2Wz4+PigqiorV64swxJq8rXfqYYmLsIxgDOgJXJ+fn75d+lYjnb5dh/AjBkzlr/66qt/WCyWPIs92Ww24uPj849hCAfq5jzHQNACXVEUPD09yyhEhXAtVps263Hlzg0kpibf/gBRJmw2G9daD9Rms/6ysfjHW61km66Tse0EybM2E99/AdH/GnXrS8o1VaI+HEHCkEWkrT1AdnicyyRCtkwz4c91w+TmQar/jkIfl5qexo6j+/PM6t10YCdms5levXqhqipbt24tx5I7p1mzZqGqKkOGDCnyjODz58/rPahRUVFlXMKb2m+LsZmLcAigYwHvdSowmht7/74DmNF29fDPecyinPvtAw/sP0EygUnAY7meYwRARkYGiqLQoUMHx0enEC7oQNgxvWFctn2dQxaFFcVnPhN+YzHjsxEOO6/NaiX7SgzpGw+TOH41sR2nEvFC30KTwojnexHTYTJJk9aSfbHsG/WSSt98TL/8a4m7+fJvltlMaNhRZgctuRHf29ZxKfIqNpuN0NBQVFXFy8uL1NRUA16Bc4mKiir2jGD7BJIxY8aUcek0BbTfDxiVtwgHAj4ElgFLga7AwwU85kVgONAW8AT+lnN/BbT1BN2B14FKBRyr7xd333338eGHH5ZLwArhzMJjI/XG0X4zxZRsJwVROkmT1mJy8yDyte/LpRfOcj2ZjG0nSJq0lpgOkwl373ZzQli7MykLtjllr2Bc77kFXv61Wq2cunSOBcHL9Zj+ffNKzly5kGdWr33hYj8/v/IuutNauHAhqqoyaNCg284IzsjIoHv37qiqyq5du8qphDe139XKIz8RLg6YbY+YKlWq0KZNm3ILWOGcLBYLp0+fJjGx+GuH/RWkZqSxMHgFfoH+rN69iTV7NuEX6M/2o6XfFUAUX9TbQ0u1l21p2axWzOevkbZyPwlDFnPtJW89EbzeaUaRJ1mUB5vVSkSzPtrs3/k3Lt+Gx0aybPs6PfGbu2Eph8+dJNuSd6xjfHy8PuZNtgW9IfeM4O3bbz2reufOnaiqSvfu3QtdqaMs5Gu/axmdWwgXQM7uIQDVqlXj5ZdfLreAFc5p3bp1qKpK586d+fnnn4mLizO6SOXGarWyds9m/AL9mb9xOSnpqZy6fC7n3wFyGbicmf+M0pOtrGOXjC4OANbUDH2ShcnNg2sv9CNz/1mjiwVA5sELermyr8aSlpFOcOgOPfGbuW4Ru46Hkp5ZcGKyceNGVFWlX79+pdoB46/IvivKgAEDyMrKKvRx9uVzSrv2X3Hla7/rG51bCBcABNojpmbNmjRv3rxcg1Y4n6FDh+oDmFVVZezYsXdM4hNy5uhNl3zTMtJzzZCMMbiEd5bkXzZqSdZL3k53uTVt1f4bl4ef+h/Jv2w0fEmZhCGL9b1/LRYLczcs1WN33b4/iEtOuOXxP/74I6qqEhAQUE4ldh0JCQl07dr1lpNjrly5YtjyOfna76ZG5xbCBZBrp5HatWvTpEmTcg1a4Vzi4+P1L7CAgAD9//ft22d00crclahwvbEMPXM0z99W7NyAX6A/+04dNqh0d6aY9uMxuXkQP+h3o4tSoOwrMUR9MFzvdYv5zyQsccbMGLdZrfokluRfNhJ29ULOfr2ruRRpum0CbTKZ9M/71atXy6nUrmXJkiW37AWcP38+qqoyYsSIcv/Bkq/9ftHo3EK4AGCvPWLq1atHo0aNyjVohXOxb//Uu3dvrFYrc+fO1b/wynM8S3lLSU9j/kZtcHzg3j9u6vE8dO4EfoH+LN0W6HQ9UX9V1qQ0TE/9D5ObBxnbnHc8mi3DTPzg329cEn7Jm6yjl8q9HJkHcl3+Db/OhpBtHAg7RnYRL+WuXLkSVVVlt6dbSExM1HsBg4OD8/wtJSVF/1tp9g8uqXzt90tG5xbCBXBjqRjq169PgwYNyj1whfOYPXs2qqoyc+ZMQOsRtM9oW7FihcGlKxtWq1Wf6LEweAVpGek3PSYuKUHvHYxNjC/gLMLR0taEags11+6CLaNke7GWp/SNh2+sLfi0StLUddiyy34cndVqJTkthQTfJfrlX3N2NknFWLvSarXi7e2NqqoEBQWVYWld3/Lly/UfyenpN74r7Dt/9OnT55ZjBMtKvva7tdG5hXABwLVCAkjcYWw2G/3790dVVXbsuLGArH1guJeXFzExf70xcKF5xv1FFvo4+yzK/JeHRdm43sUPk5sHsd/9bHRRisx8/po+a9nk5kH0J2PIDr9eZs8XmxjHql3BWK1WfXZy8vT1xe6lPnv2rH75N9duUaIAqamp9OzZE1VVWbNmDaCtnGBPoFetWmVIuSQBFMUG6KOC5RLwnS33GKDcjYDZbOb7779HVVVmzJhxizO4nsi4aH0nhNsldvZEccXO9eVUuhvi4uJIS0u7/QP/IqzpmYQ/q/WmpQbsvf0BTsSWaSZhRACm6p20HsznupG29oBDnyPLnMWu46HMDFxE0P6tZF+JubFYdlh4sc/322+/oaoq48aNc2g5/6rsvX3du3cnJSWF/fv36ysn5Nuxq9zIJWBRbGi7gwBQq1YtmjZtakjwCuNt2rQJVVXx8fG56W9HjhzRk8OwsLACjnY9WWYz/n+sxi/Qn1W7Nt52pnN0fKzeU5iYklQuZTSbzQQEBODp6Ymnpyfe3t4MHz6cadOmsWTJEjZv3sy+ffs4e/Ys8fHxf5nZ2mmBB7SEppYn1uSbL8kb6erVqyxfvvy2PWUZO0/n2VkkwccfW3rpLw0mpaWwKCdu/QL9OR9+iZQF27TdSpr0Lnbvn9VqpW/fvqiqyrZt20pdvjtBRkYGvXv31nsBR44ciaqqzJ0717Ay5Wu/XzA6txBODvhb7gCqUaMGLVq0KPfAFc5h8uTJqKqKv7//TX+z2WxMnDhRn+H2V0g0th3dpy2Ku35pkfb6tdlsLNqiNbyHzpX9pASTycTw4cPzLMlzu1vnzp3x9vZm7NixzJo1i0WLFrFp0yYOHTrEhQsXSEhIcIn37rr6i1Ne/j127Jhe10UZE2uJSyG241Q9CYxsMwTzmeL30OW281gIfoH+zApazMlLZ7HZbMT8ZxImNw/iehc/ATlz5gyqquLp6UlCwq2XiRE32NdLzX0r76VfcsvXfj9vdH4hnBxQJXcAPfHEE7IQ9B0qKytLX+n+yJEjBT4m9xpXISEh5VxCx7ocZdJ7UE5fPl/k40JOH8Ev0J+A7WU3UN5isRAUFESXLl30pG7NmjWcPn2akJAQ/vjjDwICApgxYwYjR45k4MCB+l6lRbl5eXkxePBgRowYwdSpU5k3bx4BAQFs2rSJgwcPcvHiRVJSUgyb7WxLzyK8ThdMbh6krXKu3Vd69Oih1+OpU6eKdIzNatXWM3zGU5/Ukrp4V4nq12az6b3WRy9oz29NycBUU8Xk5kF6cMGf3Vuxb3M2YcKEYh97J0tPT9fHAqqqypQpUwwtT772+zmj8wvh5ICauQPo4Ycf5s033yzvuBVO4Pz583ovQO6ZbfnZZwkPHjyY7OzsQh/nzDKyMlm4SdvqbX1I8fZzjUm4rieOxZllWVRXr15lxIgReqMydOjQIvUqWCwWYmJiCAsLY//+/QQFBeHv78+vv/7KiBEj6Nu3r77FV1FvvXr1YvTo0cybN4/g4GBOnDhRLu95+sbDWo/ZM851+ddqteapn9ttCZZf1okrRL46OM82cpa44m0jl5iSpMdffLK2VWPa2gP6/sTW9MzbnCEvi8WiX8os7usRsHnzZj15NnqMbr72+xmj8wvh5ID6uQOoYsWKvPfee+UeuMJ49vF/t1sDLDY2Vu+ZctUGY9uRvfgF+jNvwzJS04v3pZ27B+bI+aL1ABWF2WxmzZo1ek+ep6cnK1euvO3G88V9jqioKE6dOsXevXvZvHkzq1atYuHChUyfPp2RI0fqY8EKu40aNarM14O87pUz+/e/U8v0eYorNDQ0T11079692DNmrSkZxHWbqSeBES/0JWPHySIff9Z0UVuuaNMK/YeLXl8luFx+/PhxvZc5OdmYBaxdmc1mIzo62imGVeRrv6sbnV8IJwfk2fbjnnvu4aOPPir3wBXG+/nnn4u8f2VR98R0RqaYa3oPStjVCyU6x56TB/WJI45w7tw5fvjhBz2x+PHHHw0dS5SVlUV4eDiHDh0iKCiIOXPmMHz4cD05nT59epldHs4z+3e588z+zc7O1mfCT5s2jYEDB+o9PyVp/NNWhxD+XDc9EYz3Xog17fa9d7tPHNB6rvdrW5HZsi2E1++u1deS4i8+bF/o3ejLl6L08rXfVY3OL4STA/SNA7OyslAUhS+//NKQ4BXGsdls+mWgoozti4+P11e837x5czmU0DHM2dn6JI51+7aUOIm5dj1aTyKL24OYW2pqqj7+SlVVunTpwtq1a5320vrevXv1sh49WjZrIaat3H/jcqYTXf7dunWr/h7FxMRw+vRpvS7++OOPEp0zO/w6MZ+NvzFB5NXBZB3+85bHLN+xHr9Afw6f03oNM/eGacdX74QlJrFYz5/78u+uXbtK9BqEcyig/X7Q6PxCODngJXu0xMTEoCgKnTt3NiSAhXGioqL0xqyoCz0vW7ZM7wV05GXKsrT/9GH8Av2ZHbSkVOP3rDarPobw2J+ni328zWZj//79eS63jhs3jmvXrt3+YIPNmDFDHypgKeIWY8UR85U2m/V6518dfu6SSk9Pp0+fPqiqypIlS/T77T3hXl5emEymEp3bZrWSMucPTLW0CSKmp/5H4ugV2DJv/kxlZGXqPzyuXY8G0Legi/5oVLGfO/fs36Sk8lnWSJSNfO13NlDB6PxCODmglT2Azpw5g6IoDBo0yKgYFgaxL2Lat2/fIveKJSYm6rOGXWEsYGxiPDPXLcoze7I07JeBizsbODIyUl9Oxz7RYseOHU4xhqgoIiMj9UvBjn7fs8Ov64snO9PevwEBAaiqSs+ePUlJuTFpIysrC19fX1RVZfjw4aVKiM1nI4h698cbvYFvDCHzYN4hChevXcUv0J8565dgsViwZVuIeL6XtvvHrOL3xNtf19ixY0tcbuEc8rXfMUbnFsIFkCsB3L9/P4qiyErwdyB7T8a0adNKdNygQYPKpDfIUaw2Kyt2btATNkckW7GJ8XpvzPWk26/8n56ezvLly/Ms1zJ79myX7Hmxv+/9+vVz6BjQxAmrMbl5cK1Ff2wW50iIcye8mzZtuunvly5d0v++bt26Uj2XzZxN0uRAfUkXU/VOJPywGGuqNulm78lD+AX6E5Qz/i9jxyntcTU6YYkq3vp9NpuNwYMHo6qy9+9fQb72+6zRuYVwAeRKANevX4+iKMycOdOwIBbGGDVqVIkagri4OL3x27vXeQbs53fy0ln8Av2ZGbiImATH7Mtqs9kI2B6EX6A/+04dLvRxVquVHTt25Lnc+8MPP3DmzBmHlMMISUlJ+hjQgpKikrBlW7jWvB8mNw+SJq5xyDkdYdq0afp7VtjYzFWrVumXgh1xGd98JpyoD4brvYHXWg4gfctx0jMz+OPQbr0HO37AQkxuHsT8u/g/2i9duqTHY1RUVKnLLIyVr/0OMTq3EC6AXGMAlyxZgqIoLFu2zLAgFuUvMzNTT+KKurBtbvPmzdPHhDnjZcz0zAzmbVyGX6A/u46HOvTcR86f0pfkKOi1nzlzJs9OHj169CA4ONhpJ3kUh/3yYZ8+fRyyLEx68BG9Nys7PM4BJSy93BM9jh8/XujjzGYzQ4YM0ZfJcURvuM1iJfnXYH1BbPu4SEtUAharBZvNxrUXtIQ5ZU7xJ6HYk9Zhw4aVuqzCePna741G5xbCBQDN7AE0Z84cFEWRywF3GHsj17lz5xI15JGRkfoCw4cOHXJYua5nXGfjlY1sD9/OsdhjpGeXbEaofbu3BcHLyXTwkjWpGWnMDNTGFV6JjtDvj4iI4KefftKTB09PT3777TeXvNxbmJSUFH1XjI0bS78cjn0rs9hvijcMoaxYLBZ9fN/kyZNvOzb2woUL+udg5cqVDitH9tVYYjpM1pPA8HpdSf41mJR5W/T7sq8UbeKWnc1m0xPWtWvXOqyswjj52u+VRucWwgUAz9kDaOrUqSiKwo4dOwwLYlH+VqxYgaqqjB49usTn+PXXX/XexjZRtgAAIABJREFUD0etD/db2G/4hvjqtwmHJxCZFlmsc0TGxZR6zb/bCdq/lVW7NhKfnEhycjL+/v55xvlNmjSJq1evlslzG23lypUO6QU0X4jUkxlnmfxh3+Ghc+fORb6su3btWj3hP3funMPKYrPZSFsdQkSzPno92W8xX04s9vkiIiL0+IyIiLj9AcLp5Wu/FxqdWwgXANSyB5CPjw+KonDihHN8AYvyYb9EuWZNycddXb58WW9QTp8u/rIo+aWZ0xgaMhTfEF9+OfGL/v8jD4zkz8Rbr5NmZ7VZ9TXTVu8OLrOFi5PTUsjMzGTt2rV59okdOnQoJ06cMGw/3fKQuxewND1JCT8s1tfBsznBMIL4+Hj9dRVnSIzFYmHMmDH6Vom32lKxOGw2G5cir2JNTidh6BJMT2uTRGI6TNYniBTHmjVr9HGNf+X4vJPka7+nGp1bCBcA1LAHUOfOnVEUpcjrwAnXl5SUpCcs58+fL9W5pkyZgqqqTJxY/B6J/A5EH8A3xJfRB0eTbc0mJj2GyUcm4xviy4+hP3Li+u1/pJy4GKb3/sUmls2YMovFwp49exgwYIBej3379mX79u1OPSvakdatW6ePb0xNTS328dbUDH1HjJIsZVIW7D3a/fv3L3YSFxUVRbdu3VBVlfnz5zukPEmpKfgF+rN272YsFgvmC5GkBR7AZi7ZWFL7j77Vq1c7pHzCePna70FG5xbCBQBV7QHUsWNHFEUp0Ze4cE0hISF6413ahOXs2bN6ElTabczmnZ6Hb4gvq/+80UAlZyXzy4lf9EvCoVGFT+hIy0hn7oaymfgBWo/M0aNH82zf1q1bNwIDAx3W6+MqMjIy9N0kStILmDJvqza27VkvrEkl31XFUU6dOqW/pwcPHizROXbu3KmfwxHjYs9cuaBNNgpeUeoeu+TkZH2sYml/9Annka/97mt0biFcAPCQPYDatm3LPffc45QzOUXZsO8DOmPGjFKfy2azMXr06FKfL9Wcql/yPZ+Yt4HKsGToyaFviC87I3YWeI4th/fos3OzzI6d+HHmzBlGjBihN/CdO3dmwYIFxMfHc+16NFFxd14PemBgIKqq0r17d9LSip7E2axWIl8ZrO2FO+j3Mixh0ZjNZj2pnzJlSomTLZvNpi8f07Nnz1JfVdl6ZC9+gf5sPlj67drs2/n17NnzjumlvhPka797G51bCBcA3GUPoNatW1OtWjXDAliUL5vNRv/+/VFV1WETf44cOaInRuHh4SU7R8wRfEN8GXVwFBbrzQ2U2Wpm0dlFehK4xZR3T9+I2Cj90u8508USv5b8TCaT3qjbbzNmzNDXUDt07gR+gf5sCHX+XVEcLSMjg169ehV7RrC+9Ev1TmRfNH4tOvskji5dupR6Pb/k5GS8vb1RVZURI0aUONmy2Wz8vnkVfoH+nLx0tlRlApg+fTqqqjJr1qxSn0s4j3ztt2p0biFcBJABUKdOHRo3bmxYAIvydfXqVT2RiY2Ndcg5rVYrw4YN03e5KInF5xbjG+JLwPmAQh9jsVoIOB+gJ4HBV7RJHrkXZ167d7NDBrgnJSUxf/58/bKZfWbvlStX8jzuclS4nngmpaYUcra/ruXLl+vj5oq6O0jMFxO0pV++NX7pl5iYGH1rQ0ctjZJ7aZiSLq8Vn5yox1VCSumWEcrIyNBfoyOXbBLGy9d+exmdVwgXAVwHqFSpEm+//bZhASzK16ZNm1BVlSFDhjj0vKGhofql0YSE4m1PZbaaGXFgBL4hvred6GG1WVl9cbWeBEakRnDOdFFvLOOSivfcBYmIiMgzwWPYsGGFzuy12Wws2rIGv0B/9pws2dgxV5aYmKhPfti8+faTOcxnI24s/bKz9DPHS8veuzt48GDMZrPDzmtfZqlLly4lWg7IvovN75tXlfoHzYEDB1BVla5du5KZmVmqcwnnkq/97mp0XiFcBHDVZrNRoUIF2rVrZ2AIi/I0efJkVFXF39/foee1WCx60rR8+fJiHRsWH6bP9M3Ivv3yFlablTUX1zDz5EzM2WZ+37wSv0B/thzeU9Li3yhLWJg+uaFXr17s3r37tuNj7TOP56xfQkZW6XfHcDXLli3TewFvl0TF9ZmnLf3ypvFLkRw/flxP8o8dO+bQc5vNZoYOHYqqqgwfPrzYl4I3hm7HL9CfbUf3lbosM2fOdNiYX+E8Cmi/+xidVwgXAVxKTU1FURQ6duxoYBiL8pKZmalfCjp69KjDzx8cHKwnTsWZFbvm4hp8Q3xZGLawyMdYbVZi02P1MXhz1i8lJb10s0lDQ0Pp0qULqqoyYMCAIo9nzLZksyB4OX6B/hw+f7JUZXBFiYmJ+h7BO3cWPEEHwBKbhOkZT0xuHqQu2V2OJbxZ7m3cpk0rm0vRly5d0i8Fr1+/vsjHWawW5q5fil+gPxciLpeqDNnZ2frahvv2lT6ZFM6jgPZbloERRQNcjIiIQFEUunfvbmAYi/Jy9OhRffN6R+zjml9aWpre2BR17JPVZmXc4XH4hviyP2p/sZ4vPTNDbygPhB0jMTOxJMX+f/beO7qt60z3hjOZZCbJJDfXX1buyGnjuMWJneaWcpO5MykrycwkN7FnPJkvZZaco2bJkiWrW7Atq0uWLdmSIVGiCkFRElUosErsVWCvYq8gSABE76ft5/4BYgNgBUiAAKXzW4tLSwROIXCA/Zy3PC8AID8/n0aDdu7cCbPZHNH26vZGmrK7Fzvqz58/P+tsaNthFTRLlkL75FoQb/TSrXMhuPHD39ATC/w1kitXrsTAQHhizt/QdEKVCg87v5StP8q5fPlyyerrLmOK9fvNeOsKiUUCgP6WlhbIZLKo14NJJCbnzp2jVhex4vr162AYBuvWrQurpmrAPkDr+WxsZMXuFa211CeN5TkktSWhfCSyyJIoirh48WJIo8dcPP2cbhdOZKZGvQt5sTAyMkKjXWq1etLjotsL7ZNroVmyFNYD8TUiHhoaomP7Ym2KHJwK3r59e1iNMpVtdXSSzXzxWz7F8jMvER+mWL8PxltXSCwSAPSVlZVBJpPh8OHDcbyMJRYCURSxfv16MAyDoqKimB3H4XDQNHNZ2ez+ZXmDeZCr5VC0KiI6js3lwMnMC1ColGjubcewY5gKyduj4UUSBUGgC6TfIoPn5zZlAQj4EKaXZMe9vi0eJCUlgWEYbNu2bVLNm/3kLZ/x81dXQDDa43SGvrqp/fv30+ae+bzf4TIyMkI/ExcvXpz1+ReLVFColKjrmt94To7jaES+omL+9bESicUU67ci3rpCYpEAoD87OxsymWzO1h0Si4euri4qdCJNb0aKP9K4devWGYvfCSF4t/FdyNVylGgj8yQsqCuHQqVEakEGBFGAIAohPoHV+pkngXAch2PHjtHXJD09fd6pW6PNTLuRh/Taee1rMWIwGGhkrbg44ItIBBEjz26CZslSWHZciOMZAiUlJVEbgxgJ/u77ZcuWoaenZ9rnWR02eg0ZbfP7nPpLPqT0793JFOt3Srx1hcQiAYAmNTUVMpks4q5NicVHWloaGIbBnj17Yn6sYCFQWVk57fP0Lj0VbAZ3+FMT9OYxukh2D/fT3/Mij5SOFLrPBkPDlNu73W4cPHiQCoG5erVNRba6aDx9dzNq+1xMpKamTuoIdmfV+qxfvvASeI0xbudmtVppROzcufAbjqKBKIp0Ys5MqeCmnjtQqJRQ5l+fdxT51KlTYBgGR44cmdd+JBKTKdbv9HjrColFAoCRY8eOQSaTIT8/P46XsUSsEUWRTie4eXNhhElycvKsTQG3R29DrpbjcEP4JQgiEXGlNAcKlRLXynInLZKcyOFM+xnI1XK8oX4DTWOh9h4Oh4OOdFu2bFlIpCoa6MwGKk515ugYbS8mrFYrTXf6X1v9b/ZCs2QpjC/F14bEn+7fsGFDRKProkU4qeCMiptQqJQob6mZ17G8Xi9Wr14tpX/vYqZYv3PjrSskFgkADHv37oVMJkN19czpMonFTU9PT9Snf8zG6OgoPWZDw9SROH/K9lrvtbD36zfIPaFKhcEydTSJFVicvnOaisBmYzMA33QP/8SS5cuXo6ZmfovsdFwvz4NCpURezfSWKHcz/ijgxo0bwbIsdD97E5olS+GtXriU60SCSyDiaYfit0patmwZ+vv7Qx5zez04ofI1Eg2Pjc7rOLdv36bmz7Ho+JeIP1Os3xXx1hUSiwQA9i1btkAmk6Gzc/6zJiUSF/+CvHv37gU97vHjx2naeWKkjhd57KzZCblajlZTeN55Lo8bp3MuQaFSoqx55psWr+DFqTunIFfLUTFSAbPZTH3fVq5cGXXj32D6R4doFNA6zzFeixGz2Ux9AXNycuApaoH+15OvgYWC4zjI5XIwDIP9+/fHtUFHEAQagZbL5SGd8h1DPVColEjOvTTvetR3331Xmv17lzPF+t0ab10hsUgAwK9cuRIymSymPlgS8UUQBNr9W1BQsKDH7uvro1GXiTcZ/bZ+Wqvn5sOzXfF32Z67eQVebnY7Da/gRauxFWNjY9i6dSsYhsHLL7+Mtra2Of094UIIQVrhDShUSpQ2TbZEuRe4evVqiCk42xr5OLRoce3aNer5p9XGvzlneHh4yvnDOeP1o/OdaGOxWKglT0vL/DqJJRKXKdbvwXjrColFAIC/BoA//vGPkMlkcDqd96Rtxb1AW1sbTTlZrXM3Sp4r/maLiT5kBZqCiOxf/Oa4CpUSnRH47BkMBlr/uGbNmgWLdt8Z6IZCpURS1gW4vJH7Ci52nE4nXnnllQXx2psJnU5HG5IyMzPjdh4TycjICBGlvCAgKctna9Q3Mj+xnJubS2sdIx1BFw4i54XgiK2TgMTsBK/f49jirS0kFgEA7geA3/zmN/jIRz4CQgj4EekDfTdy9uxZMAyDQ4cOxeX4fgE60XbDn57NG5zd7FYQBBpRU1Xmh32zotfr6XzitWvXoq+vDz3WHmgdsY8C8YKAczevQKFSoqqtPubHSzREhwdZWVk06hqPmw8AOHr0KBiGweuvv74gnn/hwnEcduzYAYZhsG/fPvA8D2X+NSRlpYGbx3kSQqjx9OXLlyPfXhQhuO3gzFp4tR1w99XBeacE9oZs2NRXYCk+A3O+Auai01LQIM4Er9/jEAD3xVtfSCQ4AL4CAP/8z/+Mz3zmMwAAlyo2BfES8YPjOKxduxYMw6CkJDKfvWhBCMGBAwdC6q+8ghdvVr8JuVqObsvsjQH1Xa1QqJQ4mXUBFkd4QsJgMISIv4GBAXRbu/FW9VvYX7cfepd+vn/arDSOW3okZaXB5bm3ooCWNy/C6/XitddeA8MwSElJWfBz8PvgMQwT05rPudLd3U3Pr6ysDP2jQ8irmd/ntL+/n+7TP8uaEAKR80BwWsBbRsHqeuAZaIKrowKO5luw16lgrbgAc9Epn7gL80dk761rOtEIXr+D+Jt46wuJBAfAYwDwgx/8AJ///OcBABZ52sJevRIxp7a2lqaZHA5H3M4jeKFra2uDyWOCXC3Hm9VvghVmruWzuxxIykqDQqWEur0xrOMZjUZs3ryZir/BwUEAgMljwv4639zh/XX7oXfHVgTyAk+jgLfv3DtRQLa+F5olS+HKqKbGy8uXL4fBEL7X43zxer009f/+++8v2HEjxR+hX7duHZxOJ7RjkddjE0Igep0QeRYpKSlgGAZvv/02iMDDVn0V5qLTEQk7c74C5oITsJanwl57A87WAri71fAMNoHV94G3G0H42WtwJWJL8PodxP8Xb30hkeAAeBIAnn76aXzxi18EABh+fxiCKX4jmiSiz+HDh8EwDBSKyMasxQJ/V+Lu3bvBCRwO1B/A6TunZ9yGEEIL45X518ELs6fGLBYLtm3bBoZh8Morr2BgYCDkcb1bT0Xgvrp9ERlQz4V7MQpoZI77fP/+cgw8z9P3YyEnDvmbUF5++WWYTKYFO26kOBwOGqVXKpUzplWJKIC3jMI7fAeurko4GnNgrboEc2ESrFWXwLIsNbouLi6Gd/jOlOLOUnoONvVVOJpuwtVRDndvLbzadnDGIfBWHQS3HWSeXcgSsSd4/Q7ii/HWFxIJDoCnAODJJ5/EV7/6VQCA4Xf74UyffmqDxOLCZDLRTsBYd72GQ3BqqqGhAbdHb6NUO7NPXo92gDZ+DOqGZz2GzWajdh+rV69Gb2/vlM/Tu/TYX+8TgQfrD8Loid10Cl7gcf7m1bCsa+4GuO5RaB54yRcBHC8rUavV9L33R2NjicFgwIoVK6gNTaJTXFxMG7Wmen14uxGuzgpYSs5OG7HzDDWjsrKSev+53W54hlrgGWoBNzYIwWGGyLpBiCTs7haC1+8gHoq3vpBIcAA8BwCPP/44Hn30UQCA/td7YFwR/0iRRHTwdxlu2rRp3p5i0cLvCyiXy8HxHMY805tSe1gPzualQ6FS4lZt2az7djqd1OR51apVs3b76lw67K3dC7lajnca3oHVG7smhbb+LlrDeLd3BJtfOwvNkqUY/dE2GkUSRZF63x06dCjmzQP+62z79u0J1fgxFV6OBcdx2LlzJxiGwcGDB0EIAeFZeDVtsKmvThJ71opU2Buy4eqqhEfTCs44BEJE7Nu3DwzD4PTpmSPrEncHwet3EF+Pt76QSHAAfM9/AX3ta18DAOj/bTeGH30ZxMtNvKAkFhmCINDi+0SyvhgZGaFRybKymUVdfl05FColzuRenjV1yrIs9u/fT02eW1vDM5YecY5gd+1uyNVyvNf4HmxsbEybhXukI1gw2TH84ApoliyFUxnazNDR0UGjgM3NzTE7h87OTnqcurq6mB0nWtwZ6EZ9V0vIeTc2NsKjaQsRfbbbl+EZbJ628WJkZGTKbnuJu5fg9TuIb8VbX0gkOJhKAP56DzRLlsJTEv90ocT8aGhooCkli8US79MJ4dy5c2AYBq+99tq0I6oGdMM09ds1i+cfz/M4cuQI/XsjXfQH7YN4u+ZtKgIt3ti8Xk3jtYCnstPgYe/O0VzWg9ehWbIU2m+8AuKe3CTgt2SRy+Wx8acTxUmRtETnWlkuTmdfBMtx+OCDDwKWNRwH6+10ONtLwdv0s/4tFy5coK/tYvi7JebPNALwqXjrC4kEB0EC8LHHHgMAmDefh2bJUljenHpIucTiwb/QfvDBB/E+lRAcnANWq5UOqc/IyJj0HJbnkHLrGhQqJbLVRTMuZqIo4tSpUyFWGnOh39ZPReA7De/EpCaQF3ia0q7rjF0ELF6ILi+GH18NzZKlsL1zY8rnaLVaaspcXFwc9XMoKyujNwJDQ/GbPBIuJpuF3ujYnA6Mjo7S16ekpCTsRgy3200/U4WFhTE+a4lEIXj9DuLZeOsLiQQHwNMA8MQTT+Chhx4CADgvVdDanYVG5DxS11mUsNlsdBFpbAzPNmWhqBipwIBtAJmZmbRWb2KHZnlLzXik7CLsLuc0e/J1CPtnHDMMg7y82Q2lZ2LIMYQ9tXsgV8txoP5ATLqDazqa6Cg7QYx+BCyeOE4XQLNkKYYfWgnRMv37plQqwTAMXn311eAJBvMm2HPw3LlzUdtvLODtRgguCypaa6FQKXGpOBMiz0H0uqiNy4YNG6aNkE+ksLCQTroJdxuJxU/w+h3Ec/HWFxIJDoBvAcB3v/tdfPnLXwYAcH06aJYshWbJUvADC+fXxY0N+mwMylOl8UJRQKVSgWEYrF+/PiZptvmQ1JYERasCLMtSj7ZgixqtMTDuraWvY8Z93bhxg4q/9PT0qKS9Rpwj2FvnawzZW7cXw47ZO48jweVx42TmhbBS24sJwgsYeXaTL4PweuqMzw22PUlLi573qP+6X716ddymjswEEUWwo92w12TAWnkRvMAjOfcSFColmnvbQcY/q8ER8nBG6ImiiO3bt4NhGKSmzvzaS9xdBK/fQXwv3vpCIsEB8HUAeO6557BkyRIAgCAK0H77VWiWLIXjXPTTM1MhuO2wFCeH+FNJBqNzRxAEOv1iqvRqPHFwDsjVcsjVcthZOzWpZhgGnZ2dEEQRqQXXoVApcb38JsQZ7Cr8dhf+aE80a570Lj0O1B+AXC3HrppdUW8MKaivgEKlRHpJ9l1Tq+VS1fhuHr/4F/Ca2dPnBQUF1BzaP61iPthsNiqaVCrVvPcXTYgowKtpg7VcGbBs6W9A93A/nRXt5UK/8yIZodfc3EzT3np97KfbSCQOwet3EJIAlJgZAA8BwI9//GPcf//9AIAx9xhMq5OgWbIUY386EvOLl4gCbNXXJlkcuLpvx/zYdyt+v7Xly5fDbE6saGqtvhZytRx7avdAIAIIITh48CAtXGdZFukl2UjKSoPVOb0heWdnJ1auXElrHGNhcWP2mvFu47soGi6K+r7HrGYa5Rw13R0LtuH5Az7jZ+Z4WM8XBIHOq/WPB5wP/rTyhg0b4PV657WvaEEEDp6hlhDhZy44AUdLAYgoILOqwGdxVDe5bpVl2bDT2f7PUCJPO5GIDcHrdxCSAJSYGQBfAICf//zn+OQnPwnANybLfyc//OAKiO7YfpE620vHvxhPgDNr4RloGP+SPAnBlXgpnMWAfzFYyIkL4XK+4zzkajmu9l6lv9NqtdSwNzMzE6MmA5p670y7D51Oh1deeQUMw+DNN9+Mab2Th/fELEKXUXETCpUS+VMs/sEQUYRojt8Iv3DgOoZp6Yinoj3s7bq6uubdvAP4TJ9j2VgSKaLXBXdPNSzFZ4KE30m4OsogenzvpcPtojcBGsPolPvxN7QsX74cY2NT+2UODQ2FRNEl7i2C1+8gJAEoMTMAPg8Av/rVr/Cxj30MgK+WRHR5oPmHZdAsWQp3Vm3MLlxvkMeVZ8DXqEBEwTeQPF8BR0Piu/cnGhqNJmEXAzfvxpvVb0KulqPDHFrb5zesXrVqFYxG47SpX4/HQ6d8bNq0KeEinJHg9npgc9ohEhGiywuufRjuvAbYj+XA8noqxv58FKM/3k4/i+YtKSB8YtVz+jFvSfE1j/2f1yMWzP45uGvXrp1z3d7p06fBMAy2bdsW15pXwW2D804xzAUnA8Kv6BRcHRVU+Pmp7WyGQqXE+ZtXp73eBUHA1q1bwTAMzp49O+VzkpOTwTAMdu7cedeUE0iET/D6HYTUBSwxMwA+AwDPP/88ZDIZRFFEb28vCCEY+/NRXzpnpSImnYq8VQ9zwQmf0GvJD/ni4sYG6ZcnaxiYYS8SE/Gnwd56662EWwzqDHWQq+XYXbsbnBhqNM6yLDZv3gyGYXDs2LEptxdFkXqkrVq1atJ830SGiCIEvRXe251wppXBuvsKTKuTYPjdfmi/s55Gz2b7MTx/AIIpsaKBosOD4YdX+uqGkyO3H3E6ndiwYQNN50d63Wq1Wmosfvt2fEpHBIcJzpYCmPNPBNUyn4e7rw4iNzmLQgihta41HU0z7ruiooLW92m12pDHLBYLLYWorJRGeN6LBK/fQTwdb30hkeAA+CsA+POf/wyZTAa73Y5r167BarXCU9nhSwM/vBLEy01asOeDyHlgLU8dd7ZPBxEmj2lyNOb6xh1VpknWMGHidrvx8ssvJ0wabCJn2s9MSv8CQN/IENoHe1BfXz/jlIhLly7Rx6uqqhbqtCOCcDy4jmG4Mmthey8TptVJ0P38TToZY7af4Udfhu4XO2F86Rgs8jQ4kgvhKW6FedM5Olt35JmNYBv74/2nUhwpJQHrF8fc0vF1dXVzfm8//PBDMAyDN954Y0HHHRJCwBk1cDTkTBjRdgFebQfIDDfOQ3ptkPff9LWugO/Gx18rOfHm6OrVq2AYBhs3bkz4cXcSsSF4/Q7iO/HWFxKLAADu1atXQyaTQavVIiMjA0lJSSCiCO0Ta301PUUtaB5rjkpEiRACR1PeeGrkNATn1BMXBJeFRgi9w9PXg0kE8A+TX7NmTcIUwfuxslba/dtj7aG/d7idOJN7GWfz0uHlWGpevWXLlpDaPn8UhGEYXLt2LR5/QgiEEAijFniKWmA/ngvTyyeh++kb0Hxl2cwi7wsvYeTZTTC8eAjmDWdgPXgdzvRKsA19EEyOGT9j7tx6GmnTfGUZHGcKEyLKq/vV274U9YYz89rPyZMnwTAM1q1bB5stvK7r4Pq3+vqFGa9HeBaeoVZYqy6FCr+qS2BHu0Fm6Fz3k6Mu8pmc3w4vYtrY2Ej/zr4+n3WQ1+ulVjo5OVK5zL1K8PodxJPx1hYSUQbA/wDwbQAPA/jIDM+7D8A3APwIwHPj//4EwD8C+C18E0DuG3+uYcuWLZDJZOjo6EBeXh41D3YXNPu+2F87i0H7IKpG5x91cffVBdK7up4Zn+tvELGUnZ8ySigRyu7du8EwDFJSUuJ9KpMo1ZZCrpbjYP1BWu8kiiKul+dRU2SW4zA2NkajmEqlEgDQ1tZGC/xj1fE7G4LRDvfNRlj3XYPhvw5D++TaGYWe9vE10P/rbpjWnoL9WA7c+U3gekZBPJMj6T3aAdysLUVRw+wpPK57FKP/tIMex7QmKeaNWjOeT6eWnou3rnde+3I4HFi/fj0YhsGHH34Y1jbHjh1b0Po3IgqwqdNDhJ+9PhPc2GDYx3d7PTiRmQqFSon+UU14xyUEe/bsAcMwePfddwEAJSUl1CYmmmbaEouL4PU7iK8tlC6RiDEAfgFg4nBTLYDtAD424bn/C0A4ox8KAXwKQN+uXbsgk8lQV1dH/aQ2bdoEt9uNsfHFTuQFHKw/iC5L15wvVNbQH7B56Zi940/0umAuTKKeWRLTMzw8PClCkCgQQnC06SjkajluDt2kv1e3N9I0mHZMR3/vn2iwbNkyFBUVUW+33bt3L2hkk4ginJcraYRryp9/WAbdz96EaU0S7B/mwVPUAkEfWSPDqMlAXweTbXJEXGTd4C2j4MYGIXIeCC4PTK+coueg+8kb4Pt0U+w59ljevkwnB0VDgNXU1IQd0QtueFqoaTeurir6HeZ976fDAAAgAElEQVS8UzIn0/rm3nYoVEqczUuPqL66ra2N/r09PT3U+DkRb/gkFo7g9TuIB+OjViSiCoA9s7z/1xEUDQRwHhivT+E4+q/L5QLLsjAYDMFdcq8DaDp69ChkMhmKiorg9XqxZs0aMAyDM2fOgB8xY/jRl+Epb0f2QDZ21ezCqGtqy4KZEBxmmItO++6Y61Thz7fsVtN0sci6Iz7uvcLly5cTdgi8xqGh6V+92+d5N2LUU9FT3R66eIuiiF27dtHFjmEYbN26Ney0YLSwHcoIrc97cAX0v9kLy44LcKZXgusYjkpXLiEEl4uzoFApUd5SE/KYf0JOcMTJ0XQTIueFI7kQmi8ztFbXlVE973OJ6LwFkTaw2I5mRWefhNBGn/Xr10+sawrhxIkTC9rwxJm19D1w98893Zxe4nuvK1ojc1gIjgL6f5YvXw6DYeEmNkkkHsHrdxBL4qdaJKICgH/xv5tZWVl4+umn8bd/+7f40pe+NDHl8cegbdoBYMOGDZDJZLjvvvsgk8lCfg4dOuTf7gaAsjNnzkAmk+HGDd/wdr/3FMMwaGtrgyO5AObXzkLr1NI0nsU7de3eVIicB9YKX9OHtVwZkZAjPAtLydmwo4b3IjzP49VXX43KLNxYkNGXAblajhOtJwAAXpaFMn/maR+9vb30GpTL5Qs+3UAwWDH8VV/jxtifj8Jb3Q3Cxa4MoaWvAwqVEmdyL4Mfv0ETPY5QH7kgIWgtV4K36eGt7cHIMxupSDVvTYHoXpgpOp7ydt9xH3gJvNY0+wZhYrVasW7dOjAMg6NHj04p7vR6Pe38ra2NnVWVH8Kz1MzZVnM9rDq/qQg2AB+zRh49bGhoCBGAycnJczoPibuHiev3OP8zLqJFInoAKAV88y1lMhlefPFFHD9+HAzDQCaT4fTp0/43Oz9om+uArzZGJpNh48aNOHToEN577z0cOnQIKSkpcLupAHsXQN6lS5cgk8noTE5CCA4fPkwjL16PB2P/dRiE5XG8+Tjkajneb34fHn72jj8iirDXZwaaPhyRLxQeTSt10Bdc4QvPewV/9+zy5csXPEo2G17Bi7dr3oZcLUeLsQWEEGSPF8Cfyr44YwfknTt3UFdXFxdfN8vrF3y1fN96FaIr9mlnD+vFySzffODu4X4QUYRNfYWORhS9Ll/jicsK70gnXB1lsNVch0fTBtHixNgf3wtJCXPdIxBcVrCGwZhFzs2bz0OzZCn0/3dv1Pcd3BVcUlIy6fHU1FQwDIPt27fHvCaUEAJHS37gO8w1989YVVsdFColLhfPLWJKCMHbb79NX5vpzKEl7h0mrt/jfDxOskUiGsBXn0cA4Ec/+hF++MMf0neWEILHHnsMv/71r/2/MgdtdwUADh06BJlMBodjRs+wJQCuZmVlQSaT4dSpU/QBg8GAVatWgWEYXL58GVzXCNw3G2HxWrCzeifkajnOtp+dtYbF1VEeaPrQz602jYgirJVpvvRX86057eNuxl8IP51/Xjzxj37bV7cPIhFR39VKIyC92sF4n96UCAYrNA8u9/nancpfsOPeqi2jnaEi5/V5yhWcAGcemXYbInDgHUaIPAf78dxASvjBFXCc8e3H2VoIa2UanG1FYHU9EL2ueZ8rEURov7kupq/RmTNnqOejTheocbRarfS7qbAwct/BSPEO36HfYV5tx+wbTIMoijh38woUKiUae+bubKDT6XDw4EFUVFTMeR8Sdw9TrN8cxps8JRYpAP7e/25+5StfwQsvvEDfcEIIHn/8cfziF7/w/8oetF0FAGzcuBGf/exnceXKFTz//PN45pln8O///u9oaAhppvg6gHPFxcWQyWQ4ciR09m9ubi4txh8aGoLrqs9ktcXYQmu6rvVem7b+JnjSh7tvYg9LZLC6Xrov3i7d9fpxu93UCHZCEXBCcLL1JORqOQbtg9AadVT8VUyodUskLG9d8kX/vrluyq7dWDGoG4ZCpcSJzFS4PG7Y6zLphJxwYRv6MPr9LTQaOPaH9yAYrGB1vSHpZGvFBTjbS+Ed6YTgskZcQ+et7aHHiGb6NxiPx4Nt27aBYRjs27ePRvrS09PpzF+WjW26m7cbaerd2Vowr1pD+v6qfO+vhEQ0mGL9Ho2fcpGICvCZNNsAYP369ZDJZNiwYQNu3bqFF154ATKZLHhAeHvQdr0A8Ic//IHW/H3jG9/ACy+8gCVLluDjH/94sMluMoAPa2pqIJPJsGdPaL+JIAh46623wDAMdu3aBd7lgWDx2Q2UjZRREVigKZh0UXKm4WknfcwFQghNiTkaJc8rP+Xl5WAYBqtXr475Yhgperee3iS4PG4a/bhWlhsXK5dwEMZs1LTZ/uHC1lNOjBBxZu2cPjei0wPT+uSAJc03XoE7qxYi54G96WZIQwmdWlGWAkfzLXgGm8Fb9bM2aVn3XPGlm3/6xlz/3LAInhV869YtOJ1O2hWem5sb02MTnqVjKa2VF0H4+d0M3Kori8j7T0IiHKZYv1vjo1okogoAFvD5Yz3yyCMhjRwvvvhiiPN70DZOAPjpT39KLwr/ImKxWPC5z30Of/rTn/ybWQHs7enpgUwmw9GjRyddXFqtFnv37sXevXtRVVUFweCrfyGEILM/k4rA27rACCbBZYWlxBdtsFVfjZqHX/CION62sE0BicrBgwcTthg8qz8Lx5qPgRVYZFYV0CYHuyuxRpkFY93tEzbaJ9cuuL8eISIqg2rE5nvT5M6ph/Ybr4R6BlpdEDkPPIPNcDTmwlJ6bkpBaC48BXudCu4eNVhD/6S0sd+L0Hrw+rzOMRwuXLhAU8EKhYKaRQcbhUebEMP6wlNzql0OxsN6kZSVRms8JSSihUajwXPPPYcNGzb4f1UWJ8kiES3gqwH0AsCBAwcgk8nwwgsvIDs7G//5n/8JmUyG//iP/wi+Dr45vp0OAN5//31qGBrMf/3Xf+Hxxx8P/tVmt9sNmUwGvV6P1tbWGX8aGhrowiQSERe7LlIRqLFrILIeetdsKT0P0RM9g1JCCGzVV31WMg3ZUdvvYsVsNtNOyPb29nifTghu3o29tXthcBtQ09FEU78DuuF4n9q0CCYHnbQRLVuTSPBqOyZ0ic4/tSoYrBj70xEqAke+uwHugsCYPUIIBKcZ3uE7cLYVwVp5cWpBmK+AtSIVgssKXmui+2MbYu85ybIs9bzz/2Rlxfb9cffXB+r+Rubufeqntb8zqMtbMrWXiIxw1ubf/va3/qdfi6t4kZg/AJ4HAJvNhs9+9rNYvnx5yAWxYsUKyGQytLS0+H+1fny73VNcP8kAhgCAYRh8/vOfD35sLQB84hOfgFwun2QZM/HnH//xH0NSjbzI40z7GZzvOA+BZ2GvyRjvljsF3hZ9fyrOOBSIAlrv7Sigv0bztddeS7iUauVoJdQ6NUZNBpxQ+aYeqO8ktpm3df81X/Tv669AdMYuujQVrL4P5qJTIDxHfeIq26JT00kIgfNCGYYfWRWIBr6aDNE6dTOIyLrBGvrh6qqCvfYGzIWnAmJI1wNHcoHvdXpi7YLN6e7p6QkRgC7X/BtZpiM40+DqKI/KPq+V5UKhUqK0WR2V/UncW4SzNj/00EP+pysXWK5IRBsAGwFfjZdMJpvU7ZaTkwOZTIb09PTgX0/2S/BxB/AtBE8//TS+//3vBz/2OwB44IEHwrrIvvOd70yaxcoKLFiBhaP5VqDjd2xgblf6LPiigNekWkAAO3fupF3aiYRABFzrvQaWC/j9XU3guj8AEB0eDD/2si/6965qYY/tcdIGDc40jMaeNihUSqTcmr7Bai7ww0YY/vOdQG3gt1+FO3d2Q2MiivBq22EuPAmR9UD/6z0+z8FN52bdNpq8++67YBgGr7zySsyOIbhssBQn+7IMtTeiInBtLgeN6o6aJNNmicgJZ23++7+nfaNnFliuSEQbAK8CQG1t7SSLFiDg/j2VRxbgqw27fj20Pic1NXVit5AawLcA4KmnngpbAC5fvhz9/f10v4SQELsXj6YVrBC7hoSQWsB7tCNYp9PRaMjAQGzE9lxpN7XDyTlR2FAJhUqJ09kXYXUklj/hRPxRreGHV04bGYsFhBDY61QBvz/OC4fbSQXDiDG6UW5CCBwpJRh+9GUqBI3M8bA6eTnLCPhhY2D2b+XcLVHmAsdxyMrKitnYN8KzsFZdok0x0bDLAYC6rpaYCHqJe4dw1uZPf/rT/qcnL7BckYg2AH4A+L6wn3rqKXziE5/Ajh07kJKSgh07duBTn/oUnnrqKfqFUlpa2r9s2TK7vzD6+eefx0c/+lG88sorOHbsGH7/+9/jr/7qr/DEE08EDw5fjXG7mX/5l3/BM888g+bm5mlrDBobG7Fp0yYwDIMdO3bQVLC7ry5g99Ktho214b2m99Bt7Y7JhyGkI/ge9QXMyckBwzDYsmVLQi0qhBAM2gfRPdxPRUz7YE+8T2tGiCBi9Idb6SSNhcQz0EQ/O5xxiP7+enmeL2XYFJuUoTBiDqkNHH54JRzJhbNGvOwnb/mih99ZD1EQFiwFHGsIEeFozKETV6JZXnKpKHNRlEBIJC6z1QD+6U9/wkc/+lF/liUl3vpFYp4AuA/AbQAYGRkBwzBYsmQJPvrRj+LLX/4y1q1bF+ICf//99zfLZDLU1Pj81ex2O7Zv346/+7u/g0wmw/3334+NGzfCZKJ3+l0APgngIwDIX/7yF8hkMhiNxhkvRK1WS33n0tLSIPIsnfHrbCuGKIpI7UyFXC3HW9Vvocsy/wLqqWD1AV9AwXnvTQfZvXt3QqZ/zR4z7C4HknMuQaFS4mZtaUIJ1Klw59b7hNAXXgLfp5t9gyghOEwwF5wcrzULNfVt6++iTQOzma3PFUIIXBnVGPnOBioE9f+6G2xj/7Tb6P9tt08obz4Pzqwdt3ha/CLQ1X07qk0ffkx2C70RMtoiH/0mIREOE9bv1PiqF4moAOBxACE5zukWU51OV7lhw4ZzEx8XRRE2m21i/ZUGwKNBx7G//vrrkMlkwR6BUyJ6WNy8eZOmH1taWuAd7YKjKY9GA5ycE8eaj1ER2GnpjORaDgtCCE3XOFvvLV8ts9lMX//u7thEWecKJ3BQVebTlJeHXVgrlblg+L2vLm7svyfbIMUKIgo0im2tvDjJKsnDenAi09c8M6TXxvRcRLsb5k3nqAjULFkK82tnIVpCO/j5obFA+vd2J1ztZeM3fkUJL/Jngh3tDslgRBN1eyMUKiXSClWL+jWSSGwmrN/X46daJKIKfOPaPgDgN087M/6vBcABAN+AL5oHAIfG/1UCkMPn8wcA/llNY/B1Cf/PCcfQfvDBB5DJZLh1a/aUquDy4tChQ2AYBuvXr4fNZpuUCnJyThxrCYjADnP064W8I12BGcHuxK4xiyZFRUX0tU+kxgpO5NA20EUjHhrDaLxPaVb4AQMVNZ6iltk3iBLunmp67U6XbvQL6ZKm21M+Hm28tT3Q/XJnoEnkW6/CdaOGChdHciFtHiGiCHd/AxVOzjsli1Lg8DYDnfRhb8iOajSTEIILBRlQqJSo65z5xlpCYj5MWL+z46NWJGIGgL8G8CB8NXtfBPBXQY99EsD/D+BhAP+E8TmAAP4GwLPwicSnAHxsmn33pqWlTTVQekq8DX0wm81Yt24dGIbB4cOHpxQiLs6F4y3HIVfL8Wb1m2g1tc7/Sg+CiCKsFam+FFp7WVT3ncgcPnwYDMMET4JJCGxOO05lX1xQ0TJfLNuVPn+8721esHo23magU3LcvdOPxAt4x6UvmNAnogjH+WLaEa1ZshSG3+0H1zMK/W/3+aKDG3z3oIQQuLqqAiKwPfHT/cGIHicspedpFFbkohutNtkC6V+z3Tr7BhISc2TC+l2yMKpE4q4AQIffVubEiRMzXmicaRiil4P7VhOamppoKjIzM3PK57s4FxStCsjVcryhfgPNxujeCdN5w0WnQPjEGoUWC9xuN1asWAGGYWZN1y8koigio+ImFColUvOvg53n2KyFQHR5aTes4/TkcYaxgAg8NVu23U6fUXS6PO64RVOFUQuMy46HpIVppLTsDn3eYhWBROCpnZSl5AwEV/QzCLWdzTT9KyERSyas39Xx1hQSiwgAd0pLSyGTyaacHuKHM2pgLkwCaxiA9Ugm+EEDLl++DIZhsGzZMty5c2fK7Ty8BydbT1IRWG+Y3XssXAjP0SYUz2BT1PabqNTW1tKxWIk0+7ept52KFe3YwjVSzAdq/fLVFRBtC2P94uqqpJ2m4YwXu1FxCwqVEhUt00cKY4mnvB2j399Cxd/o97eACKGilRACV2flokkHE0ICnqUFJ8CZYjOd5lLxePdve2xsayQk/ExYv1virSkkFhEAWv1+g7t27ZryAuOMQ7RWxtVRBmHEDN2/7ALv9mL//v20Js1snrrTzSN4cOrOKTo2rkYfvQXNH4GwlKXcNbYU03H69GkwDIMPPvgg3qdCsThsSMq6AIVKifI4CZVIIbyAkec2+VKa25QLckzeqg94ZQ6EJwoaun2m0KkFGXETVaLbC8vblzH6f16Hp2LqkYOTIoFtRQn7WQw+T89QdMtS/FgdtqiO9JOQmIkJ63dvvDWFxCICQFtHRwdkMhm2bt066eJiDf3UrsJadQki6wYAmNaegnlLCsxmM1599VUwDINdu3aB46ZO/7ECizPtZ6gILNQURmVREz0OmPN9NVWsvnfe+0vU6IUoirTusqwsMWoeCSE09ZtWeAPcIkj9AoDrutoX1friX8APxd5MnBCRdv3aqq+G3WxgCRISesvMFk3xhhACd7eaiiufM0BsLGzminekMzDmrasqZsdp7LkDhUoJZf71hP0+kbh7mLB+6+OtKSQWEQDah4aGIJPJsHbt2pALi9X30YJ1mzqdij8A4NqHoVmyFK5rt9HR0YHly5eDYRicPXt22i89TuSoT6BcLUdGXwYEMv9FwtF8c3xxvTb7k6eho6MDu3fvxqZNm9DbO38hGW2C56FarYlRVB7c9RvtqRWxghAC3U/e8E3BWDVzzWu08Aw0BqbXRDgjO70kGwqVEtfLb8LtXdgZxZFCCAkxhnc05EyyuIkXvFVHb2QdjbkxFWb+m6J4pe4l7i0mrN/2eGsKiUUEgK6xsTHIZDIsW7aMXlTsaHeQ+Ls6ZZfc2B/fw/BXV4AfMCA/P58KlOLi4mkvVpGIuNF3g4rAi10XwYvzWySC02uRLrBDQ0M4cuRIyLD5VatWoaKiYvaNF5CMjAwwDIO33nor3qcCwNek4Dd8Lmm6DXGRGAK7C5ppTRt3RxPz44keJ8xFp+YcdQoW2ck5l9DUeyeh7H+mwjPUQj+P9tobUe+wjRTBZYOl9BzNYsSyYczDenFClbporJAkFj8T1m8R404gEhKzAqDX5XJBJpPhD3/4AwCA1fXStKqt+tq0X+CeohafjcZzmyDyApKSksAwDFasWDFjFI0QguLhYuys3oni4WJwAof2wR6UNqvh9MytIN+mvuq7u2/Jn/3J8E1YOXbsWIjw2759e8j/09LSIAiJkcZ6++23wTAMrl2be5QzmuTXlUOhUuLczSvwJlBDymzof7PXZ/z8h/cW5HjO1oLxGtXzIHNIkRNC0D7Yg7N56VQIXinNgd6c2HOwaYe+v3TE65x9oxggepywlqcGOn5j7BnaqenzzcDOuRSzKS4SEsFMXL8B/HW8dYXEIgHAgCiKuO+++/Db3/4WAGApOeMTfzXXZ7xbJqJIuwQd54rBsizeeustMAyDDRs2TNsU4sfDe6A3j+FKaTZd3M7lXUHbQFfEX56srmd8wZnZGNpoNCI5ORnLli2jQm/nzp1oaWkBIQQejwcffvghfezo0aNwuRamS3Q6bDYbPZ+envjP1tUYRuj71T3cDycX/cVd9DhAhOjWFHrregPTLKpjP0WFM2sDI8ZG5zdizMuxqGyro9ElhUqJ4sbbCT1thTX00+Yxa8UFiB7H7BtFEcKzsN1OH7eKOh1xdmAu3Korg0KlxK3axKjTlbj7mbh+A/hsvHWFxCIBvtFw+NSnPoWf/exnAABLWYqvWD2MVIl/QPzwwyshur0YGxujTSF79uyZtinEy7Ioa66mi9nEn5Rb19DW3wU+zAgcISKsFRemNYZ2u924cuUKnWXMMAzkcjkaGhom1QOJoogbN27Q523duhUaTezThdNx+/ZtMAyDNWvWxD0iyQsCnXCQWVUADx/9urTgOjJreSrcPdVRqSXze9vpfzV1t3s0IaJIPf/stTeiVnNmsJhwrSyXfk7O5F5Gc297wqaFOfMITYFby5UQHAszE5eIIuz1meN2LyfBmWM7Ug/wfW8k5/rKIjqHEq+OWOLuJXj9BvCFeOsKiUUCACMAfO5zn8MPf/hDAICj+VbYdTuiwwPt42ugWbIUtnduAPA1VPgjbMnJySGLHyEEnZpenMu7Qhexq2W5GLOa4PK4UdZcjZOZF+hj529exZ2B7rAWOJp2KjwFkfOJV5ZlkZOTQ0UpwzDYsmULqqqqZt1ndXU1Vq9eDYZhsHr1atTW1ob1mkQbv/3L8ePH43L8YPwGt0lZF2B12jFkH4rq/oM7NYN/rBUX5uXZxvfpoPnCS77GpRuxL873+EelFZyA4LREdd++tHA3zuRepp+T9JKshG3E4S2jsBQn+9KwxWfA22KbviaEwNlWTK8dVrcwUfNRk4G+Hy6ve/YNJCSiRPD6DeCReOsKiUUCACcAfOlLX8J3v/tdAIi4Vsl64DqdH0q8vm1v3bpFBVdBgW/SgsluoR1y/qL2lr4OiESExWtBoaYQepceDrcLZc3V1F/ObzPSqx2cMZJCBA7WqovwDt8Bx3EoLi7Gxo0b6XmsWbMGubm500Ylp0Kr1WLbtm10H9euXVvQaAshhP4NJSUlC3bcqbA5HUjKSoNCpURNRxNGnCPgxOilaTmThjYe2WtvgLeMwt1TQ9OIPo+54jkV8Zs3nPGZGf9g6yQz42gjuCwB38zu2I3F87IsKlprcSIzkBa+VVsGu2thU63hIDhMsJSdHxeByeCtsTMMDzamdvfVxew4E6lub6Q1mhISC0nw+g3gm/HWFRKLAAAfAUAA4KGHHsITTzwxp4tPMFih+YdlvujKFV+nIyEEycnJYBgGy5cvR0tLC4bHRuliVdRQOaWthdapRam2FKOuUbg8bpQ2qUMWuEtFmejS9E3bdSoIPKqrq0NE26pVq3D16lU4HHNbGJ1OZ0in8OHDh+F0LkxRu1arpcfV6xcmwsO2DsG4/EM4L4V2Queoi6gxMcdzUOvUUTum4DTTKJFNfSXkJkRw2WCvU9FF3VKWAm5sMOx98xojNF9moFmyFM4Lsa3NIoTAXptBo5YLYYNitJnp1BBfdDYNNR1N4BPEgsWP4LLBUpZCxzdyxuiXVQQ3n7g6KxfUh+9qaY40/UMiLkxYv5+Ot7aQWAQA+Iz/inn00Ufx+OOPz/kCNK464auv+s1e+juWZbFnzx4wDIOXX34Zg4OD6B8dwqhpdiGjc+lQNVoFg9sAi8OGW7VlITWCF4tU6B/VhHzBt7S04I033qCCacWKFVAqlbBY5p+CE0URV69epfvevHnzgvgF5uXlgWEYbNu2LebHAnzjv4Jnv/oZ1A3T135QN4xqXTXM3ujUc4leV6BTsywFondy0w0hBN7hO3T0H509G0ajiHnTOV+3+rObQLjYiqJgC5SFqDvzQwhBr3YQqQXX6fukzL+O7uH+hDIjFtx2WCvSaG0ea+iP2r65sUHqXuBovrWgf7fb61l0npgSdw8T1u/n4q0tJBYBAJb4r5ivfe1r8xKAXnUXFQ1syyDMdivqu1rgcDiovcqGDRswNhZZ/Y+VtaLZ2Ayr1wqLw4rC+graCZlZVQCby4HR0dGQCN2yZcuQlJQEgyH6XX91dXVYs2YNjWwWFBTEdKF55513wDAMUlNTY3YMYDxylXQLmi/+JUQAWg/6phlk3S6EQqVEjroILs6FC50XonNcgYet+hrt1JxtRq7occBenxWoDaxMA2+dfsEVxmzQPLjc16l+fnp/ymgguG0Bz7+O+HSB8gKP2s5mmqpXqJS4VpYLXQLZxoisO9CdW3AC3uGp54hHguAw0ZsDW831BTeg7gqyf0nUhhyJu5cJ67ckACVmB8CT/ivmsccem5cAJIRA97M3oVmyFKZ1p2GyWaBQKdHQ3QadTof169dTyxWvN3LrCitrRYOhAWaPGTanHQaLEU6nExcvXqRTSBiGwZEjR6DVaiG4bXC2Fc0oDuaKXq/Hzp076TGPHTsWk5Sw1+ulXctNTU1R378f0emhEVzNkqXQ/fxN6H+3LyAC912D2+vGldIcWJ123Oi7gTZT27yPSwiBs7WQCoFwU4KEEF+kzV8bWHAC7v76KUesWXen++pTv7kOxB07v0JCCE1TW8uVMTUbDge7y4mC+oqQqHleTSksjtj64IWLyHkCwj9fAc9g89z3xbppBNlangqRXfiJKYUNlfQ1lpBYaCas39+Lt7aQWAQA+JH/innkkUfw9a9/fc4XoJfzwplW7hMNX1kGYcyGqrZ6GG2+NGFPTw9WrFgBhmGgUCjmHDVz825wPIeioiI6G5dhGOzYsQMtLS3geA4sx4K3jcF2+zKcbUVz/ptmgmVZnDt3LiQl3N0dXW+5lpYWmsqei2gOB659GKM/2kbFnmndaRAPByKIML18MiACd10Gx3MwuA04WH8wKia3noGmgAAYaol4e8Fhhk2dHjR1IgOC2x543GTH8EMroVmyFPYPsud9vjMR3L3MmeJnGTQRvXkM18vzqAg8kZmKkqbbcLjjY8wcDBF4OBpyAg0bvTURfy/4IshXw44gx4qUW9egUCnR1j8/v0cJibkwYf1+Nt7aQmIRAOB3/ivm4YcfnlMTiMVhQ0F9BS4WqkC8HLRPrPUtuMdzJz23rKyMCqaMjIw5XeidnXo1UhMAACAASURBVJ3UbJphGKxduxb5+fngOA7Nve1Izr2E09kX0dDdBp7n4NV2hMwwjjbV1dUhKeHMzMyopYAuX74MhmGwf//+qOwvGEIInKmlGH5whU/kPbgcTmVJqGWPIML0ajIVgZY30uDhPajWVc/7+MH1Ws47xXO+ISCiAFdXVaBBpDiZ2n5Y3r7si/594xWIrtgZJoteFyzFPvN0Z2thzI4zVwgh6BsZQlrhjaBGkQuoaKmByxNfuxIiCnA05QUaN7rCb9wghMDRfCviCHK0sTnt9HU12xNjTrfEvcWE9fuZeGsLiUUAAMZ/xTz44IP41re+FfYFZ3c5UNRYFTKZQGc2wPLmRZ/dxo+2TflFnpaWFtbM4IlYrVacOnUqpM5PqVTC4XDAwTnACiw6Nb04f/MqPZ/Uggz0aAcgxrgeSK/XY/fu3fTcDh48CJNp/pEIf0NLZmZmFM4ygGh3h6R8R3+wFWzrZD8/i90KlvXC/NpZ+lzzxnMQ+flF/wSnhdZr2WsyQKIQTeRMw9RmxNGYC0FvpeJ2qpuRaEEIoQLGUnI2pjcb80UURbQP9tBolb9juKqtfsqO/IWCEBHOOyWhzT1hzJZ299QEJq1o5l+SMFf885rP37yaUA03EvcOE9bv78ZbW0gsAgBs9F8xDzzwAJ599tlZLzS7y4GSCdYsF4tU6B7uh0hEcF3awLitmskGrKIo0lFrfnuYmRBFEQUFBTTKxjAMDhw4MGkyh86lQ5+tDyzPQX2nASeDPASvl+fFfHYqz/NIT08PiUzW1MzdcDh4/FtfX1/UztNb3YWRZzbS98i46gREx+TFnxCCjIqbuF6eB5bjYN6aEtjmpWNzrqcTOQ/tArWUpURVMImsB46mPPB2I8zblL7o37dfheiOXfSPHe0OMhxeHNMfBEFAS18Hzt0MmLGfyr6Iqrb6uBkYE0Lg6iinr6WjMWfGDm9W3xdk91Ix7fMWgps1pVColChsqIzreUjcu0xYv78Rb20hsQgAQD1b7r//fvz4xz+e9gIz2szIrysPEX6pBdfROdQ7yZNP/6tdvmjRa2en3BfHcdQeZs2aNdP62w0ODuLtt9+mQmjDhg24ffv2jHfZw45hGNwG2JwO5NeVhxTBFzVUxXyBa2trw2uvvUbPOSkpaU6zhBsbG6mHYTTGvxFBhO2dG3QaxvBDK+G8UDbta9mjHaCvm9FqAiuwsO6/RkWg/l93QzBF5qtIRBH2ukw6rYW3R1+UE0LADxqo758juRCCwwwSg85M0eOk3oWO5ltR33+s4QUeTT13cDYvPSQiWNlaC6d74edfE0JConq26qtT3iAIDnMgglyfFVa0MFYEj3/r0kTvRk1CIhImrN8PxVtbSCwCACj8V8ynP/1p/OQnP5l0YY2aDNQAOFj4tQ/2TFvr5jhX7BMZj6yC6Jw6tWSz2bBp0yY6k9ftDnzRcxyHq1ev0u7eZcuWIS0tLeQ5MyESEQO2AYhEhM48FjI7NXj6SKxwOBw4duwYFYGbNm1CW1tkKSp//d+BAwfmfT78sBH6/7s30OX7y53g+6afxMDxPE0T5teVgxVYKFoUsLN233s7bhUz+v0t4AfCs9ohhMDVXhaIluljt1j609sj39sM0cvCWnkRtprrED3Ra3wghMDRmOuLZJaeg8jFL4U6XzieR2PPnZCI4MnMCyhpvA2r0z77DqKMd6STToSxVlyA4Ap0LhOehbUyLdDxG+fXXW8ek8a/ScSdCev3l+OtLSQWAQCu+6+Yv/mbv8Evf/lLekGNGPVQVeaHCL/0kmxfTd0s0RTR7qbdlzN5r/X391ObkyNHjkAURXR3d2PHjh1UPO3cuRP9/f1z+lDwIg/BbYfIs+gcCp0/fKU0G3qLcU77DQdCCCoqKkJS1+fOnQtbxPobXVQq1bzOwXG+GMOPrPKJvwdegnXXZRB25prImo4mGg1yuJ0o0ZZArpYju9/XSevOa8DwV331ddon14JtmF3MBU9oiOV4Lrahjwpd13U1eKs+0CBScjaiCSIzHic49RtFM+N4wgs8mnvbkXLrasjnPqe6eMF9BDnjEI3yWUrPQXCYQuotzYVJ4O2x+/yGS2PPHTqhSEIiXkxYv/8+3tpCYhEAgM7y+shHPoJf//rXAIDsCRG/jIqbGNQNR1Tg7G8c0P1i54zPU6vVVCAF/6xcuRJZWVnzTn8SQmBvyAar64GXY1HeUhPSuFLeUgM2gtnAkWI0GqmZc7jRQKvVSp8/12kjvMYIw3++Q8XQyHc2wFM6s+GuIAho6G6jr01tZzN4kYdcLYdcLUe3NWBzwzb2047v4UdWwVPRPv252I3Us8/ZEjvjbEII9L/xRTp1v3qbpn05kwaWkrMhNWPzMQoWPY5FnfqdDUEU0D7YE9I1fEKVSi2dFgreZqDvm6X4TKDjN18B70hi2K3kVBdDoVKipCl2M58lJGYjeP0GcH+8tYXEIgBAD+BLucpkMrz44osAgFPZvikCNypvQWuc29B2trE/MBmkbXKHaTAZGRkh4m/fvn3QaqM3Rsvv0WavzwYhIsasJjq3U6FSIuXWVfSPxs5CghCCkpISrF69mv6NJ0+ehNk89YJaVVVFG0kitZQhogh70i0agdUsWQrT+mSI1plrujSGkZAF/0JBBrwcixZjC+RqOfbX74dAQsU4P2DAyHObfMf5MgPX1cmLoK/p48L41I6LYY1umysuVU2gAak6VCCIXlfIPGFr1SUIzshHBAYbPltKz8c9BRlLRCJiIGgEYGccatwEpyUwP9gv4NvjM2VlIoQQmlWIx2sjIQFMXr8BfDLe2kJiEQBgFAAMBgNkMhmWL18OURSRdbsQo6b5jVEjhGD0n3ZQ/7jZnusXR+vXr4/6KCUiCrCUnBs3m62Dm3eDFVi09HXgdM5FusDdrC2F0xO74nej0YjDhw9TEbh69Wrk5eVNinKeOXOGThiJBK57BPp/2x2I+j31GtwFM09Y8HIsSprUgdqvrAtQ32kAy/uEmqJV4Uv/DkxtpCyMWqD76Rs0xexUltDHfHVy40a/RadiatJLPBxGnvWJUSNzfOrnEBGegUaYC07Sc/Jq2iKKSHoGGgKGz8aZb2zuFvxRrvy68rgcX3DbQgSg4E6MaSYWh41+bqwJMmFF4t4jeP0GIAC4L97aQmIRAMADAN3d3ZDJZNi0aVNUxZf9eG5gDNcs3nEsy6KoqAg63dwijrPh7q2ldWBEFOBkndC5dHC4nSFNLqdzLqGusxmeGI2TIoSguroaGzduDKlzHBwcpI9v3rwZDMOgsDA8U2HCC7CfvBUwdV6yFOatKdM24PiPM7EuMrMqP2RUmMljounfIfv0Ykd0eGB44QA9tuOM77yD6/5ibZFiez/bd/x/WAZ+aOZ6Nd5moKPDzPkK2BuyIXpnF/68zUCbE+JtPbKQdNI5txej0pE+F4JtX6JVxzlfWvs7xzMI1yT/P4m4Ebx+AzDGW1dILAIA/LX/AqqtrYVMJsPu3bujemEKOgu1HfEURT7qK5qIrJvWoQUPnx9xjsDNudGrHQwxkU7KSkNlWx3cXg9YgQUrRHe2q9frxeXLl7Fs2TLa6ZySkoLBwUEqDMNJg7ON/YEI3Hhn7sT050SMNnPIeLDknEto6++atIiVakshV8vxTsM7sy5wxM3C8OIheh72pFsQ3HZYKy7A1RHblJ2gs9BGF+vuK2FtQ3gWzrbiQINI6bkZhQXhWZrKtt2+PK8awsWGh/XSutnhsdG4nYfIusGZtAkjtm7Vlkn+fxJxZ8L63RdvbSGxCADwGf8FlJOTA5lMBoVCMe1FNlf8osC0Oinq+44UZ3sptZYI9g5jBRZapxYsx6KmoynEF+1UdhoqWmvh8rgx4hxB7mAu0rrSUKApQJ2hDv22fji4yPzwghkcHMTOnTsnNcGsX79+xoVOdHhg3nwemgd8AlvzhZdg2a6cceQZx/OoaqsP8XIsbKic1r7iWPMxyNVy3By6GdbfQjwcxv7wXkAEHsuByLpjLpaMKxS+SPO3XoVoj8yKgzX00zFudBTZhMkkISPHCk9BcC5sM0Qi4L9hqGqrj/epJATB9X/tg5MN7yUkFooJ63dNvLWFxCIAwP/yX0CpqamQyWRIT0+P+sXpvFju6xR9eGVMJzKEg+Cy0fmzU6UkbawNFq+F2mEEp0eTstJQ3lIDh9sFrVOLi10X8Yb6DZoi3Vu7F8dbjuNC1wXkDeahWl+NHmsPxtxj4MWZBZAoiiguLg6xjJlpVrI7uw7a76wP+Pr9YifY5oFpn08IQf+oBsr86/TvuVScOWOdp9FjpH+b1hl+Q47oYTH256P03GyHMmIasfEUtoTYvswF0eMMGFTnK2C7nR5Sr+gZagl0n2o7onXqi4q6rhY6XjFRInDxxOKw0s+SzTn3G0AJifkyYf3Ojbe2kFgEAPiK/wI6evQoZDJZ2DVnkSDa3dD8wzLfAn1j7qPRooU/kmNTX5l1IeMFHi19HZNSw+UtNbC7HLB4LbjRdwNvVb9FxdJ0P/vq9uF4y3EoO5XI6MtAgaYA1bpqtJnaMOwYBiuwMJlMSEpKwsmTJ8Gyk1PO/LAJY386QgXP8MMr4ThdMOOUC6vTjuzbhSHn39jTNmutp9/773Dj4YgWfK+uB6KXpVE5f1o2FqKBuFnahWz4/exp6hn3RUS4++tpjZ+54CTc3Wq4e2vo75xtRdE7+UVGcMODyRZ59/TdRktfh1T/J5EQTFi/U+OtLSQWAQAe819AO3fuhEwmQ0NDQ0wu0LGl70OzZCnGlr4fk/1HAm8fi7iY3C8E/dMxFColTmSmoqCuHGa7FYIoYMQ5gtujt5E9kI2UjhQcaToSljAM/rneex16lx5GjxFFw0XI6s9Cj6UHvMjDmVaO4UdfpqJq7L+PQhiZPhUpiiIae9qQFDQTObe6GHZXeNGKYy2RpX8BgNX1jtvtZELkOJjWJNHztey4EPWF0rrrcqDxI8yJJLPB2/SwVl4M6Tr13TCk31N1f1NxoSADCpUSjT0z+0neC/jr/4qk+j+JODNh/X4/3tpCYhEA4Jv+C2jz5s2QyWTo6oqNuarrxrg/24PLZ+xMXSgcDT5rElvN9YhECS8IaO3vRGpQKtVvjzFVVIQQAhtrw5BjCG2mNlSNViFvMA9Xeq7gbPtZfND8AfbX7Q9JJft/DtYfRKelE4LOElJXN/KdDXDnNcAreNE41oiKkQq0mdqgcWhgZ+0++x2THpeKM0M8/Yb04adxzV4zPY9hx3B4r43NQJts7PVZIKIIIorUEFyzZCnMW1KiJgK57lFovuSb92s7khWVffohogB3T7Uv8leYBHdPNQgf3SagxUhZczUUKiVUlfnxPpW44xfDrf2d8T4ViXucCev3vnhrC4lFAICn/BfQf//3f0Mmk01rTDxfRJeXWpTMtU4rmvBWXSAKaApP4AQjiiK6h/tDRJZCpURBfQUsDmvk+yMinJwTBrcBA/YBDNoHwQosnJcrMfy11QFD59VJEC1ONBgasLdub6D+sG4vGgwNYDkOJU23Q6KUVW114HgOVq8VZo8Zgji7jUfFSAXkajkONRwKa2ay6HVSs15rZRpELlDrSQiBZbsyEAl8PXXeIpAQAsN/HPR1Pf/vbbOOtpsroscBMUZ2QIuRIb2WXlceNr71vPHEw3rpZ0y/wCPyJCQmMmH93hRvbSGxCADwrP8C+tWvfoWPfexjMa1lMb50zGfS+9IHMTtGJNjrfUX/9tobc94HIQQ92gFcLs4KEYI3a0rnVSclGO0htX7ab70Kd249eJFHj7UHJdoSZA9k42LXRZSPlMPFudA/qgmZ4ZpRcRMmmwUGtwFJbUlULL6hfgPvNLwDRasCyk4lsgayUDlaiTZTG0acI/AIHpxqOzWj+XPIayDwsKmvjI/rSobgmiyACSGwvH4hSATOLx3sunab7stTMvNYPYnoIQgCTmf7jNO7h/vjfTpxY0CnofW08fJFlJDwM2H9/kO8tYXEIgDA9/wX0Le//W186UtfiulF6sqoDqSBHfGPqnDmkUAU0Dy/sXOEEHQP9+NikSpkdqq/RjASPMWt0H7rVSpwjKtOQDRPX7dntluRFdTkcTrnItoGunx1i8YWnLlzBu81vhdxPaJcLUeNfuamHZ89ys3xpokTM0ZTCSEwb0kJiMA3L85JBAomO7SPr/G9NsumnvghETvyqktotPtepaK1VkqFSyQME9bvn8dbW0gsAhAkAB944AE888wzMb1IEy0NDIDOdJ1PFDAYQgj6RoZCIoInVKkoqK+A3eWceVtRhHX/tUCH7+Or4c6qnfb5Xo5FZWttiKdfbnUxHO6pjyMSEVavFf22fjSONaJytBJ5g3lI60rDhy0fYl/dvkkCsMEwc1OQf7rKRHPtmV4f8+bz8+oONm8854uKfv0VCCZ7RNtKzJ+OoR7fjUZ2/KaCxJsrpdlQqJSo65x5zKKExEIwYf1+It7aQmIRgHEBSAjBxz/+cfzyl7+M+YVq/Is/DRzZjNtYERIFnEMt4HSIZLxGsChQI3gy8wKK/x97dx7eVJk9cPwFCqKAI6KozAiKIMqi4Aa44vhzAWcYN3TGBRcQEcVdcHAXRQXBwQ0DAqKEHVRSoOwtyE6BQgulhRbovu9t0iT3+/ujJLQhadM2yW3o+TxPnhl635u8tAfP6b33Pe++7RQUn1602IvKyHr2VO+8zIcnYk12v2+u3W4nOvFwlWbVCzeaarXIw5MyWxkpxSnsz97P3sy91fYvtKQfOdU8+bD3KyE1u53ct34+1SdwaqjX55q3Hz613dwv4V6fJ3zHXG5x/tKRlKnfriB6MZdbnP/uUrMz9J6OaOTc5O+/6l1biCAA9APIz89HKcWzzz7r92AtWVbx7FbylS+hlTeMlhqOZwFruyLYG3bNTlxSQpVVw9ND57Fx3zZnIVh+JI202989dWv0k0VottMXXjiaOVe+zTx71SL2Hz3k0/2bvWHNTz9txW9taHY7OaNPtYgpmr2+5nPKykm74z2SOgwj41+fu/0eicBw7AqyNdrzFeoz1bH0ZHn+TzQYbvJ3iN61hQgCwI0AcXFxlTeS9itbTqFz6zLztobRPsGan+G8kmXJ8rybRn3Y7DZiTxxxto6Yu3YZWfm5lEXEnFrl23kkxYvcP1eVlpPJH1vWVCkiN+/fSak58M9S2koKyIuYc3LF78I6t0fRrDZnf8ikDsMoWba92vH5E5ZWjO00gvLD9b/aKepub3z0yV1BfP9LU0O3/eBe5yIrIfTmkr8tetcVIkgAvQE2b96MUoopU6YEJGAz/vFZxZWujxYE5PO8UbQvrKKg2baoyh7Bvma32zmWlkSJuZSiuREkXfp8RW+/G952u5VbdkEuq3ZsrLLCePXOiDq1mvEFu7mE/C3zK1b8bvoFW2lBvd5PM5eT+WhFO5ekjiMoC492O648LuVUz7+vTfX6TFF/lbdB0ysW9bJscxgGk5Gdsfv0nooQrvm7UO+6QgQJoBvAihUrUEoxc+bMgARswdTQiv5td7wXkM/zhq0ox7lHcPGhTWhe9MqrK81uP7WDRYdhpN//KbaMfGKOxbFyxwZOZKSQlJnKusg/qxR+f2xZU+3evf6mWS0U7FhScbV04yysBb6Zi72ojPT7PnFubedaCGuaRuaQSc6Y8VfPP+E9TdOcjzVEHT2k93QCptxa7nz+MTmr8T3/KBoel/xdoHddIYIE0Alg/vz5KKVYvHhxQALWcuC4s/ixJjach6hLDm+ptO3XUmzFvt/vVCsrr7JHbvbw77GVlBF15GCVYq/ya0nECo6nJ+t6q02zWSncvdy5R255dpJP39+WmU9q/3ecPQ8rL4ApWbrtVM+/TbIFWUPh2BVk+Za1ek8lYFKy0p0r+8ut8ouI0J9L/pYrgMI7wMUABoMBpRSrV68OSMBqmkbqjW+T1GEYhTMaTvLQNI2yxL0V23+tM5C74SfKEvfWeoGDJ/bcIjIe/OLUYo+PFjjfW9M0kjLTWHmyn9/00Hks37KWIynHdH/GSrPbKYpafeo5yfQjfvkca0I6KT1erbgqeteH2IvKsOcWkdLrNWc/RNFwJGelOX9JKSot0Xs6AREZd+DkL2U1N0gXIhBc8neZ3nWFCBLAuQCTJk1CKcW2bdsCFrSO/WEzHw/Mc4e1Yc3PcD7n5ngu0JqfXr/3TM52rmBN+ttwimZ5XvVaYi7FXN4w9p3VNDtFB9ad6vWX5N9dN8w74ki67AWSOgwja+hUZ7uY5O6jsWU2rmfNGjq7ZueXNUsxmIwcSIjVezoB4fgF7c8D1TdIFyJQXPK3Te+6QgQJIATg3XffRSnFoUOBe5andM0+54pOe37Du3qg2ayUxG8/dTXwZK87zVb72z6W6BOk9HnDudK3dNUeP8zY9zRNo/hghPPvX5oYmHkXL97qvEoqPf8aNsdt4MawItZutzu3wTuaclzv6QgBuM3fzfSuLUSQAHj55ZdRSpGamhqwoNXKyknuOoqkDsMoXux9E+FAsxXlULDzt1NXA7cuoDzH++ffzNsOk9zt5Ypn27q/gnlnvB9n6zuaplES++ep4u9IYK945H+xrEoB6Kvb8MK3HM/EGUxGSspK9Z6OX6XnZjr/rnq0XxLCHTf5+3y96woRBICmAM8++yxKKQoK6tfSo7ayX5hW8WzX8w1jVxBPNM1O2bF9zsbHuesMFB8Mr7H/XemK3SRdXnE7M/WmMZTHN/xVg5qmYck8RsH2JZWufG4J+HOImt3uLP7Sbh0X0M8W3rNrdueONDHH4vSejl/tiavofbgo3Puda4TwNzf5+zKdSwsRDICzAJ544gmUUpSWBvY3+OIlFbf6kru93GB2BamOrTiPwsjQU1cD/5xHea77hsTFxghnw+u0v3+ALc33K4p9qaLwS6xS+OWuM1Aav0O3RShaqYXCaWFBc9W0sdq4dysGk5FVOzbqPRW/Ct22DoPJyBZ5/k80IG7y97V61xYiCHByEcgjjzyCUirg24nZsk/tClK2OTjae2iahjkphtyNMytdDYyocjWw8PuVzqtXGQ9+0SCfcXTQNDvmtDjyty2qUvgV7QvDWpit9/REEDiachyDycjMlQuwnqFbo1ltVn5aMR+DyUhimm9bIAlRH27y9y161xYiCACXAAwaNIiWLVvqErwZgydUtET5NDA9CH3FVpJ/qi/eOgOFe1dht1lPbVfWYRhZT01FK20Yq3ldaXY75pRDVVY7564zUBS1Wgo/USvmcgvTTRXNkVOy6rdavqFytLyZHjoPSwNZoS8EuM3fA/WuLUQQAC4H+Pvf/855552nS/DmT/rd2fct2Giahjn5IIX7wrBbzOS+a3QWfzkvT2+Qt7U1m5WypGiXwm86xdEbsBXl1PwGQrixbNOqM3p7tB0n9//9bXOY3lMRogo3+XuY3rWFCALA1QD9+/fn4osv1iV4LXuOntoVJCk4rzzZzeVkjzq1u0fu23Ow16FdjD/ZLWWUHtlJXsScU4Xf+ukUH4yo936+Quw4VFEg/f5nYJrJB9rSTSsxmIzsio3SeypCVOEmf7+nd20hggBwHUDv3r25/PLLdQlezW539sgrmrlOlznUh73UTOYTXzuLv/wJS7BZyijY9TtF+9dgN+v7/J+ttJCS2M3kbjj1zGLuhp8oid2MrUQKP+EbSZmpzlukZ9oWaSXmUmf7Fz334hbCHTf5+2u9awsRBIB+AD169ODKK6/UJXgB524PWc98q9sc6sJeWFpla7fCaWFomp3iQ6eaJ+eF/4wlLT7gK2ltRTkU7V9L7rpTjazzIuZQmrgHu+XM7tcmAq/cWs700IrnAJOzGn67o9o4nJSAwWRkdtiigC+UE6ImbvL3T3rXFiIIAP0BunfvzlVXXaVL8AKU/La9oh1M11Fo5nLd5lEbtpxC0geOd27tVrxgs/OYpmlY0o+SF/FLlcUVgbgaeKrwM1RpV2NOiqnTLiZCeGvpyecAIw/v13sqPrUu8k8MJiNrd2+uebAQAeYmfy/Wu7YQQYBKBeDVV1+tS/AC2POKSbr0+Yp2MBHRus3DW7asAtIGvF9R/HUcQcnvO9yOs1tKqxRjeRFzsGQm+mdObgq/gu2LsaQfRdPkqoXwvz8P7MJgMrJy+wa9p+Izds3Oz2EVja5jTxzRezpCnMZN/l6td20hggAN5AogQMZDX1YsoHjrZ90aD3vDllNI+v99dGpf3/U1X+2ouBr486m+gTEba9xFxOv5FOdRFLXm9MIv42iD/j6KM098ciIGk5GfwxafMbGXlpPZaLa6E8HJTf7epndtIYIADeQZQIBCw+pTW3/d9i5578+jdP1+tLKGc0vYlppL2h3vVczzshdqdbXSbi6haN+qU1cDN8+lPKvuG8rby4opPrSJ3PXTpfATDUJBcZGzWMorOjMWGG2LicRgMrJs0yq9pyKEW27yd5zetYUIAsBNAD179qRr1666BK+DvcRM1pP/cxaBjldy5xfJemoqRbM3YD2m3wo8a0I6qX3HOq/8lW04UOv3qOgbeIjcjbM87iJSE3t5GSVx26rsS5y/dSGWjAQp/ISuNE1z7gt8OClB7+nUm6ZpzF//BwaTkT3xDf/RFNE4ucnf6XrXFsLHgHbAQGAE8DDQzotzLgJeBX4EvgeGA60rHb8B4Nprr+WKK64IXMRWo/xQMgXfriDz4YkkdRxxWkGYevM75L49h5I/dmLLLgzMnOJSSOn9hnPfYvP2w/V6P3tZEYV7VrjsKZxa7TmarZzShMgqxWPe5rmYkw+iycpE0UCs3L4Bg8nItphIvadSb9kFuc4rmrmF+XpPp1Gy2WyYzWaKi4spKChwvoqLiykvL5dV2bjN3wX+rUZEwACtga8B13uhNmAm0MrNOSHAf4EiN/GSBjx1clxvgOuvv55OnTr5NCh9wV5QQknobnJenUnqdW+dVgwmdRhG2oD3pydXfAAAIABJREFUyX3nV0p+34EtLc/nc7BEnyCl56skdRhGSs9XsRyo+23byjRNoywputKewtMpjd+BZredNs6cEkve5l8rLSb5mbLjUbKqVzQ420/umBG6Lfh6errafXg/BpORhRtNek/ljBAWFsY333zDZ599xjvvvMOwYcN4+OGHueeee7j55pvp06cPV199NZdccgmtWrWiefPmKKVqfDVv3pzWrVvTtm1bLr74Yrp160bfvn0ZNGgQ//73v3nppZcYM2YMn3zyCVOmTGH+/PmsXLmSiIgIDh48SEZGRoMvJKu7u+Mmf9uBJgErUoR/UFH8OX+VLikpITo6mry8KoXOWqBppXOaAAsdB1NTU/n111+ZP38+hYVVrpi9DvQE6Nu3L3/961/rGJqBoWkalugTFBpWkzV0KsldR7ktCFP7v0POKz9R9Gs45QeT0Gx1/4dt2ZdISvdXKoq/3m9QfijZh3+jCraSAgp2/nbqOb4dS7AVV/x8rXlpFOxYdmqBx8aZlB7d5bMFJEL42pGUY2fMQpCFG00V29sdOjO3twukhIQEQkJCGDx4ME888QQjR47k/fffZ/LkyUyfPp158+bx22+/ERYWxrZt24iJieHIkSMkJyeTnp5OdnY2eXl5FBQUkJeXR3Z2NqmpqZw4cYL4+Hiio6PZu3cv27dvZ/Xq1SxcuJAffviBL7/8krfffpuXXnqJoUOH8uCDD9KvXz+6d+9Op06dOPvss1FK0axZM84//3w6duxIz549ueWWWxg8eDBPPvkko0aN4t1332XixIlMmzaNBQsWEBoayqZNm9i7dy/x8fEcO3aMtLQ05zzz8/PJy8sjJyeH9PR0kpKSSEhIICYmhn379rFjxw42btzI8uXLMRqNGAwGpkyZwgcffMBbb73FqFGjGDp0KI888ggdOnTg3nvv9fi99ZC/z9axdBG+AHwOYDabeeWVV2jWrBlKKUJCQnjhhRew2ZxXi4ZUOmckVBRMX3zxBa1atXL+ptS+fXsWL17sOMcK3Adwyy230L59e1/9Ww8IzWrDHHmUwu9XkvXk1yRf9bLbgjC56ygyH5lE3vhFlPy+g/IjaV7dMi378xDJV75UUVRe9xblR/23yb1mt1fc3q20oMP1VRyzEbu52G9zEMIXcgvzz4hVs5X/HjkFvr+z0NiEhobSvXt3vafhVllZGYmJiezZs4fNmzcTGhrK3Llz+eabb/j0008ZM2YMzz//PI899hgDBw6kX79+9OzZk06dOnH++efTokULr65UNm3a1Hmlsn379nTu3JlrrrmGW265hXvvvZeHHnqI5557jtGjRzN27FjGjx/P5MmTGTVqFC1btvQ4fw/5+8JA1yvCh4CzgDyAMWPG0KpVK2bMmMGuXbv45JNPUEqxcKHzQt+ik+c0p+IWLz/++CNKKYYOHUpCQgLR0dEMHDiQ5s2bExMT4zhvHsCAAQNo27atj/456UOz2bEcOE7RzHVkj/yR1BvedlsQOp7jy3j4S3LH/ELhtDBKw/ZgTcxwFoalq/eSdPkLziuKgVp8Ys3PIH/L/KotXXb9jrVAtp8SwcFutzNjxXwMJiMnMlL0nk6dOW7/LtiwPOivZDYE69evp0uXLnpPw280TcNisVBSUkJhYaHzWcWioiLMZnO9bjHHxsbSsmVLj3HoIX9fqm8FI+oF6OMIrPPOO4/Ro0dXCbZ27doxcuRIx5cOnDzndqh4cLZ9+/YMGjSoStAUFhbSqlUrXnrpJceXkgHuvfdezjnnnDoHaENlS8ujdMVu8j9bTOajX5HcfbTHotBxtTDj/s9I+utwkjoMI/2uD7ClB/a3f81qcd4Szoto2D0RhXBnmWNHkLjar5RvKBaHr8BgMrLj0F69p3JG2LVrFxdccIHe0whK+fn5KKVcH/1y8pC/O+tcwoj6AG6Eit+ozzrrLJ555hlnMZCZmUnLli15/fXXHT/syJPnfAKwY8cOlFKEhYU5jpc5/s8DDzxAt27dqkTKv/71L5o1a1aPEA0OmqZhTcqmJHQ3+ZN+J3vkj6Tf+7Hb5wkzHvwCe667NTSBYSvJl2f9RFDaFLUDg8nImt2b9J5KnVS+/ZuVn6P3dM4IiYmJNGvWrPJjS8JLmqbRokULDh92333CQ/6+SucSRtQHFQtAAHj99ddRSjFkyBDGjx9Px44dad++PQcPHnQMWXbynEUAU6dORSlFdna24/gjwF6Al156iZCQkCpXloYMGYJSqsGvhPIXzW7HmpRN6ao95H/5G0W/hKNZ5T9UQtTFgYRYDCYjizaG6j2VOomMOyC3f33MYrGglCI1tfp2V8K9zp07s2GD+y0Wx40bR79+/Vzzdy896xfhA46fZGpqKu3atavyQOlzzz1HSUmJY8jBk+OXA3z++ecopbBanW1C7gC2Arz11ls0b968SgANHToUpRQZGRlER0dX+8rIyKh3MAshzlwpWekYTEamh87DGoStipZEyO1ff2jdujXR0dJQuy769u3LggULyM7O9pibExKqNF/vrWPpIuqLkz36AP7xj39w7rnnMmPGDFJTUxk3bhxKKR588MHKP/DOwGyAGTNmoJQiM9O5eOBBIA5g2LBhriuGyl988UWUUnz44Yc1rmT68MMPfRzaQogzSZml7NQK2sLgWkGbX1TgnHtmXnbNJwivde3aldWrV+s9jaD00EMPMXnyZObNm+cxN7/11luVT7kh4EWL8B3gA4A9e/aglMJoNFYJiOeffx6lFCkpzpV2jwNfAphMJpRS7Nq1y3HM+a+uX79+3HfffY4/moGCN954QwpAIYRPaJrGrJULMZiMHEv3fe9Mf9oZuw+Dycj89X/I7V8fu/POO5k1a5be09BNZGQkiYmJdTp3xIgRjBs3jjVr1njMza+++mrlU/oGumYRPkTF9m3MmTMHpRTHj1fdgcLR5mXnzp2nBUteXh7Nmzfngw8+qPL1tLQ0mjVrVvnr24BkR+EnBaAQwhd+2xwWdCuB7XY7c9cuC7p5B4vHH3+czz77TO9pBJzVasVxkaVSB45a+e9//8sLL7zAtm3bPObmF198sfIp/QNdswgfAr4CnBX/7NmznT9ZTdN46qmnaNGiReXbvFU88MADtGvXjt27dwOQk5PDXXfdhVKKAwec/3GbDByaNGkSSinCw8PlGUAhRL1F7NuOwWRkXeSfek/Fa8lZac7bv0WlJTWfIGpl5MiRvPPOO3pPI6Byc3OdeVcpxbhx4+r0Pp9++ilPPfUUZWVlp+XkL774gmuuuYYVK1ZUPkUKwGDGyV067HY7N910EyEhIQwZMoTXXnuNO+64A6UUY8aMcf60hwwZsrV3796FFktF65DExES6detG06ZNue6662jXrh1NmjTh008/dZyiAd2BPd999x1KKY+rjIQQojaijh7CYDKyOHxFzYMbiM37d2IwGVm+Za3eUzkjffDBBzzzzDN6TyOghg0bhlKKjh07npaza+Prr792febfyUP+7qdrASPqh4o9fXdBRQPnSZMmObeheeyxxwgNDa3yjMpZZ50V36xZM5KTk51L18xmMxMnTmTIkCG88MIL7N+/v3KATD75OVt/+uknlFKuv0EIIUSdHM9IwWAyMnPlgqB4ls5qs/Jz2GIMJiMHEmL1ns4Z6ZtvvmHw4MF6TyOgIiMj+fnnn1m5ciVKKV577bU6vY/BYKj87H4VHvK3FIDBDrgCOOpNgFgslpiEhIRvKn3J0+a1dmAqEHLyM9YbjUaUUixZssSbjxJCiGrlFVXaE9jc8PcEjk9OxGAy8tOK+ZRZzHpP54w0c+ZM7rrrLr2noYslS5bU6xaw0Wjklltu8XjMTf6+SdfiRfgG0Ap4HdgNFAHfAKnACuBeoB0ViznygIknx/yLir2E3zx57AvgMBVtYrq7vP/yP/74A6UUc+bMqVNwCiFEZTa7zbkncFJmw2/+u2L7BgwmI2sjN+s9lTPW/Pnz6d+/v1dj7ZqdXHMuhZZCSq2l2LXg3qTAYDCglGLKlCl1On/p0qXccMMNbo95yN/SBuZMQ8Vt4SYevn418Dfg3Fq+p3HDhg0opfj222/rFJxCCOFq6ck9gffENezmv2UWM9ND52EwGTkeZG1rgsmyZcvo06ePV2MLLYV8uOND5+ujHR/x+e7Pmbx3Mt/v/x5DtIHZB2czP24+vx/9nVXHVhGeHM6O9B3sydzDgewDHMo9RFxeHIkFiSQXJZNWkkZWaRY5ZTnkmfOcr5yyHLLLsrFp/tv9acKECW7buXkrLCyMq666yu0xD/lbGkGLmgHTHXsHf/HFF3UKTiGEcOXYE3j1roa9J3DMsTgMJiOzwxbJXrV+tHbtWrp27erV2FxzbpUCMBCvAkuB3/7ub775Jkop1q9fX6fzw8PDueyyy9we85C/u+lcWohgAEyJiYlBKcV7771Xp+AUQghXB4/FYzAZmbfud72nUq3QbeswmIxE7Nuu91TOaJs2baJjx45ejbVrdgotheSac8kszeRY4TFic2OJyopiZ8ZOtqZtJTw5nFXHVvH70d9ZELeA2QdnM+3ANKbum8pXe77iy8gvmbB7Ah/v/NirAjDP7L9da5577jmUUkRFRdXp/D179nD++ee7PeYhf3fUubQQwQB4NyMjA6UUI0aMqFNwCiGEq/TcLOdCkHJrud7TcavUXOa8/XsiI6XmE0Sd7dq1y3Ub0oDQNA2b3YbZZqa4vJhCSyEFlgLyLfnkW/IptBRSXF7s1+cMn3jiCZRSxMfH1+n82NhYWrZs6faYh/zdXufSQgQDYJjdbqdJkyYe+wwJIURtWcotzgIwo4Huq7v/ZL/COauXYLPL7V9/OnjwIK1atdJ7GroYPnw4SinXVmxeO378OEop7PbTi1QP+fscvWsLEQSARwHatGnD3XffXafgFEIId+av/wODyUhMYpzeU3Fr2cmFKn8e2FXzYFEvR44cISQkRO9p6GLs2LEopdi4cWOdzndc5SsrK3N73CV/24GmetcWIggA9wNcfPHF3HzzzXUKTiGEcGdd5J8YTEY27t2m91ROU1Ra4rxCmZbjfktN4TuOq1jB0BjcV+bNm0efPn246KKLUEpx8cUX069fP0pLa9cbMzc3F6UURUVFbo+75O9CncsKESyAOwE6d+7MtddeW49QF0KIqvYdicFgMrIkYqXeUzmN4/bvr2uWBX2fuWCQnJyMUgqr1ar3VAJm/PjxdO7cmcsuu4xOnTrRqVMn+vbtS0lJ7faazsvLQylFQYH7lcou+TtT77pCBAngBoBrr72Wzp071yPUhRCiqqTMNAwmIzNC5ze4FivLt6zFYDKyef9OvafSKNR0G1N4lp+fX20B6JK/T+hdV4ggAXQFuP3227ngggsCE81CiEbBbKm0ECQ3S+/pOFVe/RsMO5WcCWq6jSk8c3zvCgsL3R53yd9H9K4rRJAALgL45z//SfPmzRvV8xlCCP9bsGE5BpORAwmxek/FydGj8OewxbL6N0BquoolPMvJyUEpRXFxsdvjLvk7Ru+6QgQJoAXA0KFDqw0wIYSoi/UNcCHIypN7/zakOZ3panqOTXiWlZWFUsrj4hGX/H1A36pCBBXA+uKLL6KUIj09PZBxLYQ4w51aCLJC76kAFf0JZ6yYj8FkJDEtSe/pNBo13cYUnqWmpqKUorzcfUN1l/y9T9+KQgQVoPSNN95AKcWxY8cCGddCiDNcSlY6BpOR6aHzsNr0XwEan5yIwWRk5sqFDWI+jYXjKlZtV8AKSEhIoFmzZh6Pu+TvSJ1LChFMgMIPPvgApRQxMTGBimkhRCNgsZY7F4KkZmfoPR3W79mCwWRk9a4IvafSqKSkpDS6NjC+Ehsby9lnn+3xuEv+3qFzSSGCCZA5derUenUqF0IITxaHr8BgMrI3Xt9fMDVNY87qJRhMRg4dr9u+rKJuEhMTadKkid7TCEoHDhzg3HPP9XjcJX/v0rumEEEESJo7dy5KKZYtWxagkBZCNBYR+7afvOq2Sdd5ZORlO69GFpXKrchAio+Pp3nz5npPIyjt3r272jZtLvlbbgEL7wFJv/32G0opfv3110DFtBCikTh0/Ihz1w09W01Fxh3AYDKyKDxUtzk0VtHR0bRp00bvaQSlbdu20aFDB4/HXfL3fr1rChFEgKT169ejlOKHH34IVEwLIRqJ3MJ855W3whL9GgE7dv/YGhOp2xwaq71799K2bVu9pxGU1qxZw5VXXunxuEv+jtW7phBBBEjeu3cvSik++eSTQMW0EKKR0DSNn8Mqnr07nJSgyxysNquz/cvx9GRd5tCY7dixg4suukjvaQSlhQsX0rdvX4/HXfJ3it41hQgiQJpjo+7Ro0cHKqaFEI1I2M4IDCYjEfu26/L5yVlpznY0Fg/91IT/bNiwQfabr6MZM2Zw9913ezzukr/L9K4pRBABcsvKylBK8cQTTwQqpoUQjUjU0YMYTEYWbFiuy+fvjN2HwWRk2eYwXT6/sTOZTFxzzTV6TyMoTZw4kUcffdTjcTf5+2y96woRBIAmQDlAs2bN+Ne//uX3YBZCND5Z+TnO5wCLdViBa9q6DoPJyPaDewL+2QIWLFhAv3799J5GUHr77bd56aWXqh3jkr8v0Lu2EEEAcHaXPPvssxk4cKD/olgI0WjZNTs/hy2ueA7wxNGAfrbNbuOnFQtk+zcdzZkzhzvuuEPvaegiNjaWV155hdtuu43777+fyZMnU1Tk/WKo559/nnfffbfaMS75u4PetYUIAkB7R8S0bduWO++8sw7hLYQQNVu7ezMGk5G1kZsD+rlpOZnOq49lFnNAP1tU+P777xk0aJDe0wgoTdOYOnUqzZs3RylFs2bNUEqhlKJz585kZ2d79T4PPvggX3/9dbVjXPJ3Z51LCxEMgB6OiLnkkkvo379/HUNdCCGqd/jEUQwmI7PDFmG32wP2ufuOxGAwGVkcviJgnymqGj9+PE899ZTe0wioKVOmoJSiQ4cOLF++HKvVyokTJxg0aBBKKcaMGePV+9xzzz3MmDGj2jEu+bu73rWFCALALY6I6dSpE9dff30dQ10IIapXYi51XolLyUoP2OeudqxAjtJnBbKAMWPGMGrUKL2nEVC//PIL//nPf0hPrxrrO3fuRCnFP/7xD6/e56abbmLhwoXVjnHJ3731ri1EEADudUTMFVdcwbXXXlub+BZCiFr5/c/VGExGthzYFZDPq7z/b6CfPRSnvPDCC4wbN07vaTQIBoMBpZTXBfGll17K5s3VPzbhkr9v0Lu2EEEAGOqImK5du9KzZ886hrQQQtTMcTt23vo/ArItXF5RgfOqY0GxfruQNHb/+c9/+Pzzz/Wehu4SEhK46KKLUEoRHh5e43hN02jZsiWxsbHVjnPJ3zfpXVuIIAC85YiYq666iu7du9cjtIUQonqVt4XLLcz3++c5njv8Zc1SXfchbuwGDBjA7NmzvRqraXZspQXYzSXYy81oWuCeF/WnlStXcuGFF6KUqrGti0NWVhZKqRpXDbvk73561xYiCACfegggIYTwOU3TmLf+dwwmI1FHDvr987ZG78ZgMrJyx0a/f5bwrFevXphMJq/G2s0l5K4zVHpNJy/8Z/I2zyV/2yIKdi6jMNJEUdRqimPCKTm8hdKESMpORGNOicWSfgRLZiLlWccpz03BWpCBtTAbW3EettICbKWF2MuKsJUWVvy5JB/Nj4uSysrKeOWVV1BKERISwvjx473+ZSQuLo4WLVrUON4lf/fXu7YQQQBwri2/8sor6dGjh9vgEkIIX/nzwC4MJiN/bFnj98/6/c81GExGdhza5/fPEp5dfvnlbNy40auxttIClwLQ/y97WbFf/t7Jycn06dMHpRQ9evRg9+7dtTo/IiKCjh071jjOJX/LFUBRM2CmI2K6dOlCr169ahWcQghRW459eQ0mIyXmUr99jtVmY8aK+RhMRo6nJ/vtc0TN2rVrR2RkpFdjNc2O3VxScXWuOBdrXhqWrGNY0uIxJ8VQdjyK0oRISg5vpTgmnKKoNRTuXk7B9iXkb1lA3ua55EXMIXfjLHLXT/eyAPT986EWi4UePXqglOKFF17AbK59D8qlS5dy3XXX1TjOJX/fqHdtIYIAsMgRMZdffjm9e/eudYAKIURt2O1258rcAwnVP9xeH6nZGRhMRqab5mEpt/jtc0T1NE2jadOmJCYm6vLZmt2OZrVgt5RVPFdYVoy9rKjiZS7Bbin1y3OGK1asQCnF4MGD6/z86ffff8/9999f4ziX/H2d3rWFCAKA86EM6QMohAiUTft3YDAZWb5lrd8+Y2+8NIBuCIqKilBKkZubq/dUAurFF19EKcW6devq/B6ffPIJQ4cOrXGc9AEUtQZsckRMhw4dZLNuIURAVL4NXFxa4pfPCDvZAHpT1A6/vL/wTmpqKkopLJbGdRX2kUceQSnF008/zZAhQ7jrrru46aab6N27N/fddx9hYWE1vsfYsWO96hfokr976F1biCAA7HFEzIUXXshtt91Wx1AXQgjv2bVTt4FjjsX55TN+Wb20ogF0UoJf3l94JzIykvPPP1/vaQTc2LFjnXv/Ol4hISG0adMGpRR9+/at8T2ef/553n333RrHueTvK3UtLERwAA45Iua8886rvJm0EEL41ca92zCYjKzyQ4uWMovZeYUxu6Bx3XpsaNatW0eXLl30nkbA2Ww2oqKiiIqKIisri7KyMuezgCdOnDhtizh3Hn/8cSZMmFDjOJf8fbnetYUIAkCqI2JatmzJoEGD6hLnQghRa4lpJzCYjMxYMR+Ltdyn7115AYjVZvPpe4vaWbp0qTxfXkcDBw7khx9+qHGcS/6+RO/aQgQBoAgqVkoppXj44Yf9F8lCCFGJ1WblpxULMJiMHEk55tP3jjp6EIPJyKLwUJ++r6i9adOmcd999+k9jaB06623YjQaqx3jJn+fp3dtIRo4oAlgh4p+RUop/vOf//g1mIUQorLVJxdqrN61qebBtbAu8k8MJiMb923z6fuK2vvqq6945JFH9J5GUOrZsyehodX/EuMmf5+td30hGjjgLEe05OTkoJTi+eef918kCyGEi6Mpx523gc0+7NU3f/0fGExGohMP++w9Rd18/PHHPP3003pPIyh17dqVtWurb5Xkkr/tQFO96wvRwAHOZVnHjh1DKcUbb7zh12AWQojKrDYbs1YtxGAyEnviqE/es8xS5lwAkpmX45P3FHU3evRo3nzzTb2nEZQ6depEeHh4tWNc8ne+3rWFCALApY4AioqKQinFRx995N9oFkIIF+tP3q5dvTPCJ++XlJnqvKpos8sCEL09++yzklvqqH379uzcubPaMS75O1nv2kIEAeBKRwBt2rQJpRT/+9///BvNQgjhIj45EYPJyKxVC7Hb678l1974aAwmI0s3rfTB7ER9PfLII0yePFnvaQSl1q1bEx0dXe0Yl/x9QO/aQgQB4BpHAJlMJpRSzJ4926/BLIQQrirfsk3Jrrk3Wk0cC0siZAeQBmHQoEFMmzZN72kEpebNmxMXV32jdJf8vUXv2kIEAeAGRwDNnTsXpRTLli3zazALIYQ7v20Ow2Aysv3gnpoHV0PTNOcOI4eTfPNMoaifW265hXnz5uk9jaBjtVpRSpGSklLtOJf8vULn0kIEA8C5caDBYEAp5dXehEII4Wu7D+/HYDKyOHxFvd4npzDPeTWxsKTYR7MT9dGrV68aW5mI05WUlKCUIjs7u9pxLvl7kc6lhQgGQH9HAH3++ecopWp82FQIIfwhIy/bWbgVlBTV+X0OHovHYDIyd63czWgoOnXqRESEbxb4NCYFBQUopcjLy6t2nEv+nqFzaSGCAZUKwNdffx2lFMeO+bYbvxBCeEPTNOau/Q2DyUjU0YN1fp/wfdsxmIys3b3Zh7MT9XHRRRexfft2vacRdBwFYH5+frXjXPL3eJ1LCxEMqHQL+JlnnkEpRWFhoX8jWgghPNi8fycGk5HQbevr/B5LIlZiMBnZGx/jw5mJ+mjTpg0HDhzQexpBx9sC0CV/v6FzaSGCAXCjI4AefvhhlFI+acEghBB1cSw9ydm/z2Itr/X55VYr00PnYTAZSc5K88MMRV00bdqUhIQEvacRdLy9BeySv4frXFqIYAD0cQTQHXfcQdu2bf0bzUIIUQ2rzcqMFfMxmIwcS0+u9fkp2ekYTEamm+ZRXocCUviezWZDKUVycu1/nmeKkpISVq5cybx58zhw4ACapnl1XlFREUopcnKq383GJX8/rHdtIYIAlfoA9urVi65du9YxvIUQwjdMW9dhMBnZEr271uc6GkAviajfSmLhO6WlpSilyMzM1HsqAadpGpMmTeIvf/kLSinnq0uXLl49E1lcXIxSiqysrGrHueTv23UtLERwAK52REznzp3p3bt3PUJdCCHqb09cRRG3KLz2bUNW7tiIwWRk837pZtBQeHsV60wUFhaGUoq2bdsybtw4vv/+e4YNG0ZISAh/+9vfsFgs1Z5vNptRSpGeXn1zdJf8fb3OpYUIBsBljohp3749t956az3DXQgh6qdyO5iSslKvz7Pb7cxatQiDyciRFOlm0FB4+xzbmaioqIgpU6aQkZFR5eufffYZSilWrKj+SrW3t89d8nc3nUsLEQyAi6DiP5whISEMHjy4rnEuhBA+YddOFXLxyYlen5eem+UsHEvNZf6boKgVb1eyNiZGoxGlFIsXL65xbJMmTaptz+Ymf7fXu7YQQQA4D6CwsBClFM8884wPQlsIIepn1clbuZtqsZdvZNwBn+wkInzLUQAWFBToPRXdFRUV8dtvv9GxY0f+8pe/1HhrFyAkJIT4+HiPx93k7xCdSwsRDICzAFJSUlBKMXr0aB+EuBBC1E/UkYMYTEYWbDB5fc7yLWsxmIxsrcPiEeE/dbkCaNfsFJQUUVJWirncgl0L7vZk+/bt4+abb6ZV4pM5AAAgAElEQVRZs2YopWjdujXz58/36txzzjmHmBjPPS3d5O8m+lYWIigATQAOHjyIUor33nuvnmEuhBD1l5mXc+o5QHPNzwGWW8uZEVrRPuZ4HdrHCP9xXKHKzc31+pySslLnz9/R1ufnsMXMXfsbi8JDWbZpFaat61i9K4LwfdvYEr2byMP7iU48TOyJoxxJOUZiWhLHM1JIyU4nIy+b7IJc8ooKKCguorCkmKLSYgpLiikoLiK/qMCvPXBDQ0O54IILnKuAe/fu7fW2q+3atSMyMtLjcTf5+0JdCwvhG0Ar4Engv8AY4FVgJPAc8BTwBPAocIXLeT2BrwAjMBP4FVgEzAdWnvzfO06Ote7atQulFJ9//nltYloIIfzCbrcza+VCDCYjR1OP1zi+cgPpcqs1ADMU3nKsAs7Ozvb6nIKSoioFYCBexaUlfvwuVLSEiYuL48UXX0QpRZs2bTh69GiN511yySVs27bN43E3+btP4KsV4VPAxcDhWsTXZyfPux7w5gloOzAQKNu8eTNKKb7++utafJwQQvhP6LaKfoBbYzxf/XDwxRZywj/KyspQSp22ErY6ds1OSVkpBSVF5Bbmk5aTwbH0ZOKTE4k5FkfU0UNEHt7P1ujdhO/bxppdm1i+dS1LIlayYMNy5q5dxpzVS5i1apFzZ5iaXkWlxX78LlTlKAL/+9//1jj2sssuIzw83ONxN/n7Hj1rF+EDwGSouHy+ceNGNm3axPbt29m7dy8HDx4kPj6eo0ePkpZWZbuj7lRc9SMuLo7vvvuOGTNm8N133zFlyhSmTp3KhAkT2Lp1q2N8BFC8du1alFJMmzatlmEshBD+sSs2CoPJyG+bw6odp2ka89b/gcFkJOrIwQDNTnjLbrfruhOIpmnY7XYs1nLKLGWUlJVSXFpC0clXSVkppeaygD5nGBkZiVKKIUOG1Di2R48e1baLcZO/h+hbvYh6A/4A+PLLL6t0EHd9NW3atHJ/pUeAZQDTp093O75FixZMnTrVGYdA4eLFi1FKYTQa6xDKQgjhe0mZqRW3dUPnY7XZPI7LK8p3XsXJLZRWIw2RUorExES9pxFws2bN4ptvvjnt6xs2bEApxahRo2p8jxtuuIElS5Z4PO4mf48MfMUifAr4FMBisbBz5042bdrEunXrWLVqFcuXL2fw4MEopfjwww8Bsqm4pdsRmACwcuVKlFKsXLmSwsJCzGYzxcXFWKs+H/MpUPjTTz85xwohRENgtlichV16ruetsPbGx2AwGZm3/g+v91gVgdWiRQsOH67NE01nhr///e8opfj555+dsXns2DGuueYalFJeLQQZMGAAc+bM8XjcTf4eo2ftInwAaAvsc/cD37NnD82bN+ef//ynI6iygedPnvcDnGo0mZiYSEFBAVFRUSQlJbm+VVugeOrUqSiliIiIqDEYhRAiUBZsWI7BZORAQqzHMcs2h3n9rKDQx3nnnUdUVJTe0wi4Xbt20aZNG5RSXHLJJVx11VWEhIR4ffUP4J///Cfffvutx+Nu8vfnOpYuwleA5sB9wGvAVqh4nuK6667jggsuqLyqajUnmz9y8hbwV199hVKKhx9+mCZNmqCUokmTJjz55JOUljrbKowDyj7++GOUUo3yH6gQouHasGcLBpOR9Xu2uD1euV1IWo73iwxEYF188cVs375d72noIi4ujmHDhnHFFVfQtm1bbr/9dubPn+/11erHHnuMiRMnejzuJn/P0LNuET5GRb++vXDqfn+lBz4zqdT3B9gG8Oabb6KU4pxzzmHChAmsWbOGTz/9lKZNm/Lxxx87zk0Byt9++21dH9IVQgh3DiTEYjAZmb/+D7fHDx0/gsFk5OewxUHfLPhMdvnll7Nx40a9pxGUnn766co5+zTffvst/fr1q9xSZqluxYrwPeBmqFjN1KtXL/72t79RXl7u+GE/7zL2EMDw4cNp2bIlmzZtqhIsQ4YM4bLLLqv8JW3EiBHOZfrR0dHVvmqzlF8IIeqjckPoMsvp3a1WntwybsPerW7OFg3F9ddfz7Jly/SeRlAaOXIk77zzDoWFhdXm5oMHnSvgV+tUqgh/AH6BU/1+vvrqK8cP+hgu+/4BiwFSU1OJjXU+N+P81fiLL76gadOmlQtIhgwZ4lxQoqpZcewYI4QQgWCz25w7fCRlVml5haW8nBkrKo4lpp32fLNoQG677Tbmzp2r9zSC0htvvMGrr75KREREtbn5/fffd5wSHpjKRPgd0A4wAzz++OOce+65lTfVfrXSuDbA1cBgNzH0DZAM8M4776CUqrIa+P777+ess86SAlAI0eAsiViJwWRkn0uPv/jkRAwmIzNXLsBqk90/GrK7776bGTNm6D2NoPThhx/y7LPPsnfvXm9z885A1ijCj4A3ATIzM2nRogUvvvii44ecB7Sm4vnAd4AqG2babDZsLr2zrFYrPXr04JZbbqny9XvuuYfWrVtLASiEaHDWn1wIstHlNu+qk7d/1+7erNPMhLceffRRvvzyS72nEZQmTZrEkCFDOHz4sLe5+aAOpYrwByAGYOLEiSil2LLFuRruh5PHHVf8LFS61fvEE0/Qr18/Z5PowsJCRo0ahVKKWbNmOYbtArjzzjtp27atPAMohGhw9h05iMFkZHH4qd0QzBaL89aw3P5t+F5++WXeeustvacRlH744QcGDRpEeXm525z873//m5tvvrlybk7Xt2oRPgFc6PiJXnPNNVx99dWVl47ffHLMXIAnn3xyWatWrZybRoeFhXH22WfTqlUrrr32Ws4991yUUgwfPrzye4wFuPXWW7nwQudHCSFEg5GSnY7BZGS6aR7lJx9dOZyUgMFkZNaqhdXuEiIahvfee4/hw4frPY2gZDQaT7trV5mb/G3RuXQRvgBc4PiJvvPOO6xdu9bxx2igyckxcwBGjx69OCQkxLpu3bojjkHp6em89957PPbYY7z66qvs2bOncpCsBHoC9O3blw4dOtQrSIUQwh/KreWn7Qgit3+Dy2effcYTTzyh9zSC0vr167n88ss9HveQv1voXb8IHwCWuvmZ/6PS8btPfk0DZrkZ644ROAfoA9CnTx/X1jBCCNFgzF37GwaTkcMnjlJmMTM9dJ7c/g0i//vf/3jggQf0nkZQ2rNnD+eff77H4x7y9wV61i3CR4BWwFTgKLAb+JebMSOo2A5uBBXNnR+h4vbxpyfPmQbsp2KbuGsqnXcjVNxe7tKli88CVgghfCl023oMJiPbD+4l9kRF8+fZqxZhs8vt32BQ021M4VlcXBxnnXWWx+Me8vdlAS1UhL6o2DYuBGhWi3P6AfTo0YNu3br5KXyFEKJ+tkbvxmAysnL7BlZu31DR/NnD9nCi4TGZTPTq1UvvaQSllJSU01q3VeYhf1/tx3JDnAmA/gDdu3fn6quv9m8UCyFEHTkWffy0YoGs/g1C69atk7tMdZSXl4dSqnL/3yo85O9r9a4vRAOHFIBCiCCQU5jnXAgizZ+Dz/bt27nkkkv0nkZQstvtKKU4ceKE2+Me8vf1etcXooFDCkAhRBCw2+3OK38Gk5E1uzbVfJJoMGJjY2nZsqXe0wharVu3Jjo62u0xD/n7Rr3rC9HAUakAvOqqq/wbwUIIUQ8/hy12FoBHU4/rPR1RCzU9x9aY5OXlsXz5cucmDd7429/+xubN7lseecjf/fSuL0QDB9wE0LNnT7p27VrHcBZCCP8zrvvdWQDa7faaTxANRn5+PkqpWhU9Z6Ls7Gy6du2KUoqXXnrJ6/N69uxJaGiox2Nu8nd/vesL0cAB1wH07t272kaTQgiht6TMVAwmI5GH9+s9FVFLmqbRsmVLYmNj9Z6Krh599FHn3r3PPfec1+fdcMMNLF682O0xD/lbCkBRPU7uBHLTTTfx17/+tY4hLYQQgWHX7JW3shRBpF27dkRGRuo9Dd3Mnz8fpRR9+/atdQF4++2388svv7g95iF/yy1gUT3gCoABAwZU22lcCCGEqI+OHTuyaVPjXLyTkpJC27ZtueCCC9i8eXOtC8B//vOffPvtt26PecjfffWuL0QDB1wCcP/991fbaVwIIYSoj969e/PHH3/oPY2A0zSN++67D6UUc+fO5dChQ7UuAIcPH867777r9piH/C1tYET1gHMBHnnkEZRS8mC1EEIIv7jlllswGo1ejdVsdqzHM7Gl52HPL0GzBW9u+vHHH1FKcd9996FpWp0KwNdff53XXnvN7TEP+buXvtWFaPCAswEef/xxlFKYzeZ6hLkQQgjh3j333MOMGTO8GmtLzyOpw7BTr78NJ7n7aFJveJu0v39A+qDxZD4yiaxh35HzxmzyPphPwZTlFM1eT/GCPyn5YyelYXsoXb8f89ZYLHsTsMScoDw+DeuxTKxJ2ViTsyv+91gm5UfT0ay+31f6yJEjtGrVir/85S8kJVXsXFOXAvD9999n+PDhbo95yN9X6FxeiIYOaAbwzDPPoJSisLCwrnEuhBBCePTwww8zZcoUr8Zaj2dWLQAD8LKl5vr071tcXEyfPn1QSjF79mzn1+tSAH711VcMGTLE7TEP+fuv+lYXIigA9hEjRqCUIjs7u06BLoQQQlTnpZde4q233vJqrGazY8vIx3o8k/K4FMw74ihds4+SZdspmrORQsNqCqYsJ+/DBeS8MZvs4T+Q+fBE0u/+iLRbxpF63Vuk9HyV5G4vk9RxhFcFoDXZt/nvzTffdLZ8UUoREhLCOeecQ5s2bVBKcfbZZ3PVVVexdOnSGt9rzpw53H777W6Pecjf7fWsK0SQAEpHjx6NUoqUlBSfBL4QQghR2fjx43nqqacC/rmapqGVW7EXlWHLKcSWnoctNRdrSg7WlJyKP2cX+vw5wyVLljB48GDuuusubr/9dvr27UufPn3o0qULSinOOeccOnXqxMyZM2t8rxUrVtCjRw+3xzzk77/oXFqIYABkjhs3DqUUhw4d8kngCyGEEJVNmzaNgQMH6j0N3dXlFvCWLVs89ur1kL9DdC4tRDAADk2ePBmlFFu3bq1XYAshhBDuLFmyhOuvv17vaeguNja21gVgZGQk7dq1c3vMTf4u17msEMEC2Dpr1iyUUh73GhRCCCHqY+PGjbLlKHDgwIFaF4AHDhygdevWbo+5yd95OpcVIlgAK5cuXYpSyuseTUIIIURtVHcVqzHJy8ujXbt2jBs3zutzjhw5QkhIiNtjbvL3Ub3rChEkgEVhYWEopZg+fXq9g1sIIYRwFRcXR4sWLfSeRoNQVFSEzeZ938GkpCSPmzW4yd97dC4rRLAAZm7duhWlFBMnTvRJcAshhBCVnThxQnacqqP09HSPmzW4yd9/6ltViKABfBkXF4dSirFjxwYypoUQQjQSaWlpKKWwWCx6TyXoZGVloZSipKTktGNu8vdKfasKETSANwsKClBKMXTo0EDGtBBCiEYiOzsbpRTFxcV6TyXo5Obmetyty03+NupbVYigAfwboHXr1tx9992Bi2ghhBCNRl5eHkopCgoK9J5K0MnPz6/2e+eSv3/Ru64QQQK4B+DSSy/lxhtvDEw0CyGEaFRqKmKEZ47i2d0VQDgtf8/Wu64QQQLoB9CjRw+6desWmGgWQgjRqFR3G1NULycnB6UURUVFbo+75O+f9K4rRJAAugP079+fDh06BCaahRBCNCqZmZkopSgtLdV7KkGnpu+dS/6eqXddIYIEcAnAP/7xD1q0aCFL9IUQQvhcSkoKSimsVqveUwk6Na2gdsnfv+pdV4ggATQFtOHDh6OUIicnJ4BhLYQQojFITEykadOmek8jKCUnJ6OU8tg82iV/z9W5rBDBBCgZN24cSiliYmICGddCCCEaAdkJpO4SEhKqLZ5d8vcivWsKEUSAnKlTp6KUIjw8PFAxLYQQopHYv38/5557rt7TCEo1Fc8u+TtU75pCBBEge+bMmSilWLFiRaBiWgghRCOxefNmLr30Ur2nEZSio6Np3bq1x+Mu+TtM75pCBBEge/HixSilmD9/fqBiWgghRCOxcuVKunfvrvc0gtKuXbto3769x+Mu+Xuj3jWFCCJA1urVq1FKYTAYAhXTQgghGomFCxdy00036T2NoFTT1VOX/L1T75pCBBEg+88//0QpxZQpUwIV00IIIRqJadOmMXDgQL2nEVCTJk1iwIABDBo0iLvvvpvbbruN/v37M2DAAK699lpee+01r95n7dq1dO3a1eNxl/wdo3dNIYIIUBgVFYVSio8++sgngS+EEEI4TJw4kUcffVTvaQTUK6+8glKqyqtJkyYopWjTpg2ffvqpV++zZMkSbrjhBo/HXfJ3ko7lhAg2QHlCQgJKKd58802fBL4QQgjh8NFHH/HMM8/oPY2A+vzzz1FKMXPmTMxmM3a7HU3Tat0Me86cOdxxxx0ej7vk7zydSwoRLIBmAOnp6SilGDVqVN2jXQghhHDjjTfe4JVXXtF7GgE1duxYn7RX+9///scDDzzg8bhL/jbrXFaIYAF0ACgqKkIpxdNPP12vQBVCCCFcDR06lI8//ljvaQTU008/jVKKZcuW8fLLL9O9e3c6duzI4MGD2bVrl9fv88knnzB06FCPx93k72Y6lxYiGAD9AWw2G0qpRveMhhBCCP976KGHGt0iw3vuuafK83/nnXceHTt2dD4LGBoa6tX7vPHGG7z66qsej7vJ3230rCtEkAAGOyLm7LPPbnSrtIQQQvhfv379vO4za7fbycrKIj8/n5KSEux2u59n5x+9evVyFn4mk8n59wgLC6N58+Z069bNq/d5/vnnGTduXLVjXPJ3B71rCxEEgOccEXPBBRdw22231SXOhRBCCI86duzIpk2bvBqbn5/PiBEjnK8XXniB1157jbFjx/LRRx8xYcIEJk+ezA8//MCcOXNYuHAhoaGhbNiwgS1btrBr1y727t3LgQMHOHz4MImJiSQlJZGWlkZmZibZ2dnk5OSQnZ1NZmYm6enp2Gw2n/+du3TpwjnnnMPWrVtPO/bggw+ilCIhIaHG9/nPf/7DhAkTqh3jkr+76l1biCAAfOCImEsuuYR+/frVJr6FEEKIGrVt25a9e/d6NTYrK6tKARiIV25urs//zgcPHiQuLs7tsY8++gilFMuXL6/xff7+978za9asase45O/uetcWIggAPzoiplOnTlx//fXexrYQQghRI5vNRpMmTThx4oRX4+12O/n5+WRlZZGamkp8fDxRUVHs2LGD8PBw1q5dS2hoKAsXLmTOnDn8+OOPfPXVV4wfP5733nuPMWPGOFcdjxw50qsCMCcnx8/fharGjx/vdQHYu3dv/vjjj2rHuOTv3nrXFiIIAAscEdOlSxeuueaaeoS0EEIIUVVWVhZKKUpKSgL+2ZqmYbPZKCsro6ioiPz8fHJzc52v/Px8CgsLA/6c4YABA1BKER8fX+PYyy+/vMZWMi75+0a9awsRBIBVjojp1q0bPXr0qEdICyGEEFVFRUVx7rnn6j2NgJs7d67b5//+/PNPmjRpUu3uHpWdf/75REZGVjvGJX/307u2EEEA2OyImKuuuoru3bt7G9tCCCFEjVatWsXVV1+t9zQCym6307p1a8455xwWLVpEWVkZhYWFfPfdd5x33nkopVi4cGGN71NeXo5SipSUlGrHueRvKQBFzYAoR8TIFUAhhBC+tmjRIm666Sa9pxFwixcvplWrVqftB9ysWTO++OILr94jLy8PpRSFhYXVjpMrgKLWgGOOiJFnAIUQQvjazz//zIABA/Sehi4yMzP573//y//93/9xzz338P7775OcnOz1+cnJySilamxTI88AiloDihwR06lTJ6677ro6hLgQQgjh3g8//MCgQYP0nkZQiomJoVWrVjWOc8nfsgpYVA9oWjmALr74Yvr37+/7CBZCCNFoTZo0SbYZraPw8HAuu+yyGse55O+r9a4vRAMHVPm1om3bttx5552+j2AhhBCN1jvvvMPIkSP1nkZQCg0NpVevXjWOc8nfnfWuL0QDB5xfOYDOOuss7r//ft9HsBBCiEZrxIgRNe5lK9ybO3cut956a43jXPL3xXrXF6KBAy5yRIvdbkcpxZAhQ/wTxUIIIRqlp556ivHjx+s9jaA0bdq0Gp+fdJO/z9W7vhANHPBXR7SUlZWhlOKJJ57wXyQLIYRodIYMGcKkSZP0nkZQmjJlCg899FC1Y9zk75Z61xeigQM6O6IlPz8fpRTPPfec/yJZCCFEo3Pffffx448/1jxQnGbChAk8/vjj1Y5xk7+b6l1fiAYOcHaNTE1NRSnFyy+/7L9IFkII0ejcdttt/Prrr3pPIyi9//77DBs2rNoxLvnbrHdtIYIA4GwaFB8fj1KKsWPH+jeahRBCNCo33ngjixcv1nsaQenFF19kzJgx1Y5xyd/ZetcWIggANzoCaMeOHSil+Pzzz/0bzUIIIRqVa665BpPJpPc0gtLQoUP55JNPqh3jkr+P6F1biAaEiobPpz0TAPR1BNCqVatQSjFjxgx/xrIQQohG5oorrmDDhg16T0MXmqZRXl5OSUkJBQUFp72Ki4spLS31uNXbAw88wNdff13tZ7jk7+2BrzKEzwE3ANOAJcAC4BdgBvAd8D9gCvAZcB8uBR4VRd/TwB6gHLABB4BRQPOTY5xtwxcuXIhSioULF9YtyoUQQgg32rdvz8aNGzGbzWiapvd0vGKxWMjMzOTo0aNs376dJUuW8OOPP/LZZ58xbtw4Ro8ezZNPPsn999/PzTffTJ8+fejevTtdunShU6dOXHTRRbRu3ZpmzZqhlPLq1aRJE1q0aEGrVq0477zzuPDCC1FK0aZNm2rn6pK/1wSsSBH+AdxFReHmrW8rnXspsKOasTFUrADuD5CRkcGHH37ofGVkZNTiY88c8n2oIN+HCvJ9OEW+FxXk+1Chtt+Ha6+91lnkhISEcPHFF9OlSxduvPFG7rjjDgYOHMhjjz3GyJEjGTt2LBMmTGDGjBksWLAAk8nE2rVriYiIYPv27URHR3PkyBGSk5PJzMwkJyeHvLy8/2/v3ON6PNsAfheJHDNZ5FiKKYc55iyHIaeh5rQ5s9mY8znD5pxTGl5kY+bwYr1shDERsnJaI2ctQ4jKITnW9/3jfp7HrzQzyo92fz+f36d5fs/qvq7neq77uk/XRUJCAnFxcVy7do2LFy/yxx9/cPLkScLCwggODmbLli2sW7eOFStW4Ofnx9SpUxk7diyffvop3bt3p02bNlSvXp3SpUuTM2dOo73ZsmXD3t6eatWq0axZM7p27Uq/fv0YNmwYkydPZsGCBaxZs4aNGzcSFBTEzp07CQkJMdoaFRVFTEwMsbGxxMfHc/PmTWP2T29zbGwsly5d4o8//uDMmTOcOHGCiIgIDh48yI8//sjevXufqd/FixcjhGD79u0A680UtigyCmAXwJEjR/D19WXu3LksXLiQZcuW8f3337N27VrWrVuXdlq9OLK823GAx48fExAQQMOGDalbty7z58/nwYMH+r0ngQYAx48fTzUKOX78+D90B1kDpQeJ0oNE6eEJShcSpQfJP9XDgwcPSEhI4OrVq5w/f54DBw6wc+dO1q9fz4oVK1i0aBEzZsxg9OjR9O/fn86dO9O0aVNq1apFxYoVcXFxoWTJktjb25MnTx6yZ8/+XLNpuXLlwt7eHkdHR9zc3KhRowYNGzakbdu2RiA3cuRIJk2axLx581i3bh3BwcGcPn2aK1eukJSU9MwZy/j4eGbNmsX48eMZOXIkV65cyWhVPxczZsxACEFYWBjAklcRoygyEeAwgI+PzzONvHjx4qYGWhH4EiApKYm6desihKBOnTo0btwYCwsLqlWrxt27d/X7vwbl1HSUHiRKDxKlhycoXUiUHiSvgx4eP37MvXv3SExMTLWf7t69eyQnJ7+SNrwOegCZKkYIQWRkJMCcTA9QFJkLYOz6fPToEYmJicTHxxvT2+7u7lhZWRESEgIQBVwAcgLxIItvW1papjp6v2fPHiwsLJg8ebJ+6Q94fYzY3Cg9SJQeJEoPT1C6kCg9SJQeJK+LHoYNG4YQgqioKIDJryxQUWQOQAFgc3oP28/PDyEE/v7++qUEoDxQG2RdwEKFCvHhhx8+9f82bdqUypUrp7r2uhixuVF6kCg9SJQenqB0IVF6kCg9SF4XPfTt2xchBHFxcQCjXlWcoshkgBJAXbQl4WvXrpE7d24aNWpkuvQ7XLt3NMDhw4cRQrBlyxb9+3XAr/BkqvjWrVuG8bwuRmxulB4kSg8SpYcnKF1IlB4kSg+S10UPnTp1QgjBw4cPAfq/kuBE8WoAbIEkgCFDhmBhYUFERIT+7HcCFtp98+DJkfBTp07p9/QB1gD4+/sjhODChQuG8ehG7O7ujru7O+fPn898i30NeV1eZnOj9CBReniC0oVE6UGi9CB5XfQwaNAgbGxs9H8OeFWxieIVAAwCiIuLI2fOnLRt21Z/0CmAm8l9swECAwMRQnDixAn9vj7IXILMnj0bIQSxsbGG8ehGfO3aNY4fP/7Mz+ua9uDWrVucOXOG0NBQtm3bxg8//MA333zD7NmzjZxN/fr1o0ePHnTp0gUvLy9atmxJw4YNqVGjBt26dXvqZfb09MTV1ZWKFSvy7rvvUrNmTerWrYuHhwfvvfceLVu2xNvbm379+jFixAgmTZqEn58fAQEBrF+/nh07drB3714OHjzIiRMnuHz5Mrdv335lG5RflH/q1JKTk7l27RqRkZGEhYWxa9cuNm3axKpVqwgICODrr7/G19eXCRMmMHToUPr370+3bt3w9vambdu2NGvWjIYNG1KnTh1q1qxJ1apVqVSpEm5ubri6ulK+fHnj4+rqSuXKlalVqxaNGjXC09MTLy8vunbtSs+ePRkwYADjxo3D19eXxYsXs2bNGrZs2cLevXs5c+YMN2/efO48ZK+Lcwd5qFh2xcEAAB+hSURBVOvcuXMcPHiQ3bt3Gyktli9fjr+/P1OmTGHMmDEMHDiQHj16GPbdrFkzGjRogLu7O1WrVqVChQqp9Fm+fHkqVqxI9erVjcNi77//Pt26dePTTz9lzJgxfPfdd0/pIigoiMuXL5OYmPjG5HVLj8ePH3Pp0iXCwsLYunUrq1atYs6cOUycOJGRI0fy+eef06dPHzp37szo0aOf0kObNm2e0qmbmxuVK1emRo0a1KlTBw8PD5o1a0arVq3w8vKiR48efPbZZwwfPhwfHx98fX0JCAhg3bp1bNu2jfDwcC5evMjt27f/MjmwuXmZdyMlJYVbt25x8eJFTp06xZEjR9i+fTvLly/H19eXkSNH0qtXL9q3b2+cBNZ9Qnp61v1yo0aNaNOmDR9++KGRTmbGjBn4+/vz7bffsnHjRnbv3k1ERARxcXEZYrevykc8T99ctGhR/fbxryIuUbwCAAtkyhbmzJmDEIJ9+/bpD/qHNPeOAti3bx9CCP2ACMAXwCGQh0NsbGx49OjRU0Y8YcKEVMac3sfLy4utW7cSFhbG2bNniYmJ4ebNmy918urx48fcuXOHq1evEhUVRUREBPv27WP79u2sX7+eZcuW4efnx9ixY+nTpw+tWrWiVq1auLq6Urx4cfLkyfO37U7vY21tTcGCBXFwcKB9+/ZPvcwtWrSgbNmylClThlKlSlG0aFHs7OywtbUlT548WFtbv9DfzZ49O4ULF8bR0ZEKFSrQoEEDOnToQI8ePRgyZAjTpk1j8eLFfP/99/z000+EhIQQERFBdHQ0cXFxPHjwIMM63Xv37nHp0iWOHj3KL7/8wu7du5/Sw9ChQ+nWrRutW7emfv36VKpUCUdHR+zt7cmbNy8WFhYvpAchZI4tGxsbbG1tKVy4MA4ODpQsWRInJyecnZ1xcXGhXLlyvPPOO5QrVw4XFxdKly6Nvb09BQoUSJWv6588dwcHB959911atmxJz549GT16NF999RX+/v6sXr2aAwcOZKhzT05O5u7du1y/fp0///yTU6dOcejQIUJCQti6dStr165lwYIFjB8/nr59+9KqVSuqVauGg4MDNjY2L6RbPaHsW2+9RdGiRSlZsiRlypQx9PnOO+9QtmxZnJycKF68OG+//Tb58+fH0tIy1e9xd3d/ShcVK1Y0/tvCwoJ8+fLh5ORErVq1aNWqFd26deOTTz7Bx8cHPz8/li1bxtq1awkKCuLXX3/l5MmTxMbGmqalemH7vX79OhcvXuT06dMcOnSI4OBg1q1bx+LFi5k9e7Yx8OjTpw/e3t40btyY8uXLU7hw4X+UpDc9PTRu3BhnZ2dDp2XLlsXZ2ZnSpUvj4OBA4cKFKVCgADY2NuTIkeOFnmO+fPkoWbIkrq6u1KtXDy8vL3r37s2IESOYPn06fn5+LF++nB9//JHg4GDCw8ONAeedO3cybMCZnJxMQkICMTExT+lh3rx5zJ07l/Hjx/PZZ5/Rs2dPOnbsSIsWLahVqxaVKlWiWLFi2NjYPLe/sLCwIG/evNjb21OiRAkcHR0pW7as4QtM9WxnZ0eBAgWeKz2M6e8vUKAATk5OuLu74+XlRf/+/Rk2bBjjx49n2rRpLFy40AjMg4ODCQsL48SJE0RHR3Pjxo2X9hEPHz7k2rVrnDlzhsOHDxMSEsLmzZv57rvv8PX1ZcSIEXTv3v25+uaCBQvqvzYOKCYUbz5AQ5CjJhcXF2rWrGna+btr91hq920DiImJQQiRbvmY+vXrU69ePeOdBjm6cHZ2fi4j+7uPtbU1tra22NvbGx1O2bJlKVeunBFMlSxZkiJFilCoUCFy5cr1Qh1b0aJFKVu2LNWrV6dp06Z069aNUaNGMXPmTJYsWcKqVavYvHkzoaGhnDx5ksuXL3Pjxg1u377N/fv303WKL5Lk9dGjR1y/fp3z588TERHBnj17CAoKYtWqVSxatIi5c+cybdo0fHx8jNmZNm3aULduXSpXroyzszO2trYvpOucOXMa2eL1Dr506dKUKVPGCJx0R+nk5GTo3dbWlly5cv2jzk8IgZWVFYUKFcLR0ZFKlSpRu3ZtmjZtSrt27ejXrx8+Pj5Mnz4df39/VqxYwYYNG9iyZQu7du3iwIEDHDt2jOjoaK5du5bhHVNSUhK3bt0iJiaGkydPcuDAgVQDiDlz5jBq1Ch69uyJp6cnNWrUoESJEv+oU7awsCBnzpzky5ePt956CwcHBxwdHZ8KVHU7L1GiBHZ2duTJk+cfB8lWVlYUL16catWq0aJFC7p06cLw4cOZNm0a8+fPNwIqvdM/fPgwp06dypBZ5pSUFBITE7l69SqnT58mPDyc9evX4+3tTevWrWnWrBlDhw5l4MCBdOvWjXbt2tGkSRMqVqyIvb09VlZW/1hWGxsb8ufPz9tvv02xYsUoXbo0Li4uRqDq4uKCo6OjkQvO1tb2hQdgefPmxdnZmbp169KuXTsGDBjAtGnTWLp0KRs2bGDv3r1ERERw9uxZLl68SHx8vFHB4mUTQT9+/Niw0/PnzxMZGcn+/fsJCgpi7dq1LFmyhClTpjBo0CBjJrdx48ZUrVqVsmXLUrBgwReSOUeOHBQsWDDVQMDFxcXwzbp/dnFxMXyFPuDNmzfvP36m+kfPw+fk5ET16tVp3rw57dq1o0ePHgwaNIixY8cyZcoUFi1axKZNmwgNDeXMmTMkJCS8kA2npKSQlJREbGwsp0+fNpJA//TTTyxfvpz58+czYcIEevfuTbt27fDw8DDs9mUHsrqOixQpQqlSpXB2djYC1rR+oVChQv9o8Po8fbOLi4upKiKBt4TizQZt794vv/yCEIKAgAD9Ae/Xvs8LhJCGmjVrUr169VQvUWRkJJaWlowaNUq/9DuyRBzAc88ALl26lGnTpjFq1CgGDBhAr1696Nq1K97e3rRs2RIPDw9q1apFlSpVqFixorGMpy+nVq1aFXd3d+rVq0eLFi344IMP6N69O59++inDhg1j4sSJzJkzJ9US3u7du4mMjCQuLu5ZjiEFWT0lEZkO5wpwBjn7+QsQBGwE/ossq7cQmAaMBYYAnwH9tE9f7Wd/4HNgKDAOmWdxBnK/5ULge2TgvQ+IAM4Dl5Ens+8C97U2PdObJScnc/v2baKjowkPD2fbtm0EBgby7bffMm/ePCZOnMjQoUPp27cvnTt3pkOHDnh6euLh4UG9evWMJb7KlStToUKFVEunbm5uVKpUiapVq1KrVi08PDxo0aKFkQx14MCBfPnllyxcuJCVK1cSGBhIcHAwkZGRREdHc/Xq1edd6kvWZL0H3ARiNV38AZwCjgJ7NX39D1gJBAB+wHRgkqbjEcBgYICm/7TPYwhyVtsXWKA9y3XAJu05HwROA38CN4DbwAOkfaQiJSWF+Ph4zpw5w9GjR9m1axcbNmxg8eLFTJ06lVGjRvHJJ5/QqVMn2rZti6enJ02aNKFBgwbUrFkzXX2XL1+eChUqULVqVerWrct7771H+/bt+eijj/j4448ZPHiw0fHNmzePJUuWsHbtWnbs2MHvv//OjRs3nmXjun7vaLJdQaaBOg6Ea/Jv5Il9+yFtfLym1wHAJzyx8/6arkcDE4FZwDLgB+Bn7XeeQKaZuq793fs8w56Tk5NJTEwkNjaWY8eOsWfPHmPJesmSJcycOZMxY8YYem3dujXNmzenUaNG1K5dm+rVq1O5cmXc3NzSteHatWvj4eFBy5Yt6dq1Kx9//DGDBg1izJgxTJ06la+//prVq1ezfft29u/fbww84uPjn7Wk+shEp+eRthqKTMi/BVmK81vAX9PnRE1nQ0102lf7+RnSRscibXqG9hz+oz2XTci92/uQvukM8j2JQ/quJ8sz6TX00SMSEhI4e/Ys4eHh7Nmzh40bNxrbAaZPn24MOLt3746XlxetWrWiYcOGuLu7U6VKlXRt1tXVFTc3NypWrEiVKlWMpdUmTZrQunVrvL296d27N0OHDmXs2LFMnTqVJUuWEBgYyM8//8zevXs5duwYV65c4ebNm/qBhL8jWZM3Cbiq6SIM+AlYjvSzE3niE3Q99zPRs6lfXgKsR/qYMOTqWRTyPbmFfHfStd0HDx5w7do1oqKiOH78OOHh4ezYscMIzHXdjhs3jqFDh/LZZ5/Rq1cvvL298fT0pHHjxtSvXz+VjtPbblGtWjXq16+Pp6cnnTp1on///owePdrwB9988w3/+9//2LdvH+fOnePWrVvP1TdPmDBBF+UAsALo+YrDFUVGAuRDdlx88MEHWFtbk5CQoD/kPto90wDu379/LioqKl7/cvXq1Qgh6NChA7/++ivr1q3Dzs6O3Llzmx4AmQW0AVYB+y5dunT24MGDp/bv378nNDR0f1hY2NGDBw+eOnToUNSRI0cuHz169EZMTEwc0lE+JJ0ONQNIQQal93kSyF1GOuUjSGe8DBkA9Ac6AO5A/gzQdwmgC9KxtAEKvvRDfPpvWCNT9jQHuiI7D1+ks9uEDOZPAReRAdRtTReZvRnoMdIJ3wSuIYO2M1o7ooEdSOc6Bel0uwItkbovhVZf+nVH039VoD2yg/4PcmDwK3JAFI0MdO4iO6bM2uCmd3z3ke9THDLI+g3YirTxsUBH4F3MOJpH5hd1R74brTF5L5CVhxyRKah6Id/LAOSe423IQEofFF1HvtOZ6TseITv5eKTtntHaEIJMq7USmWP1c+Q76IJ2iC4dubMDHwBTkcFHPpPvLIFmwFfIIGUIUDKD9W6FrO5UF+iE9HczNBl+QtpspKbfazwJcP52wJkB6PabiHyusdrnD+QgbxOyX1mADOA+54ktlwJyZaSuXkC3uZB26wF0Rwbqq4HtWvsPa7r9E/lu3kH6x8zyCbrt3kf6/GvAOWQw92NUVNRPu3fvDty2bdu3GzdunLNy5cqxc+bM6Tlnzpyey5cvH7lq1Sqfn376qTXQBMhjTt0qMgi0vH4PHz7E2tqa7t2768ZyDyig3RMOUKRIkUNCCEJDQy+DnNlYunQpBQoUMEYIrq6uBAcH678jCeihGVlabgLDAcvnbGc2ID/gAFRAlphriXzhuwO9TT7dteu6sb4LFAGsM1GVf9f+YkAgT7/Y95BBslmdlSmarm2BkkAloB7wHjJg7YjspHWd99V+9gA+MtF7A03vLoBtOn/DEtmJm5ICdDOHzOYCaIHs4HQeIwOB2kAj4H1kINwDGfzo+tbt3Ft7NtXQOj3+Ith4HUEGQMM1f2DKI+SA5aUGXcj9zW8jB0RVkYFOC2Rw3sVEp321/9ZtuKVm9xXSs9+MACiKnAE05SRyAFEdLa1WGh4ig0ubzGjTi6DZnAPgqr33rXnil031q9uuqZ7baDa+J42c1wE75ATFQrRJChOSkSsjhc0tf0YB5NBkNSUJWX1L7/dqA4t5uh8JMtFvd+SkRSOk/36bN8gnKF4hQDmQwdySJUu4fPmyblDLTO4JAhg1atT63LlzX7h8+XKq5eC4uDhjD5bJ8kcKcooYkBupN2/ezIYNG1KdDgaWZnXj1F7aG7rAV69e5ejRo6nyJCJnv7KZu62vCuRyixR8xw69viTIEX6WtgcdoClaxxYVFcVvv/2m6+CMudv2KkAONDbpQicnJ3PhwgVu375t+l78CuQwd1szGmSAFwNyuXXjxo0kJhrjgGXIQI/k5GR27drFf//7X70Cg86erKAXwAntAGJKSgpbt2413fO4BLnNAoCEhASOHDnC9evXTfVwBm2i4k0GKIScFQTkIUuTVGlLTO7z1C8eOnSIbdu26f9MAezNKYPiDQW5X82U65ic8EEuQ+gjjiDt5wXklLu+JGw6gvsN+BhtiSAoKIjSpUun2iCd5vDI++aTPnNBzvzdAbh8+TLvv/++oQdra2uGDRtmGjT/K2a/kCPZB/Ck4kz58uVN7eGll9pfd4AaaDN/R48epWDBgqapl66Zu32vAuQeK1JSUpg5cyb58uUzDmx0797d9PTup+Zua0aCXI2IB7h+/ToeHh4IIQgPD0/lhI8cOUK1atUMf5E9e3YGDx5s6i/GmVmUlwKwAc4C3L17ly5duiCEYO3atan0cOfOHfr3728cErGwsKBTp06mA+iZ5pblZUCuhuwBeYBnxIgRCCGYOnWqLt9m7b63kPsM2bZtm3HAzmQvb23zSqJ4I0FOPQ9EbmydSzojCeRU/V7k0slaoJR2PT9yKeU9YBhyydUSrcTc4cOHsbKyolq1aoSEhHDixAl69eqFEILAwEDdcH991TK/KoAxANHR0Tg4OGBra8vcuXPZunUr3t7eCCFYtmyZroed5m5vZqPZ2lGQqYGsra3JkSMH5cqVM/X5b/yI/lkglz3PApw6dYpChQpRtmxZrly5osu/xdxtfBWgzfwsXLgQCwsLvvrqK4KDg5k5cyZCCObPn6/rY4+525qRIJf4uXTpEiVLljQCPJOcqly9ehU7OztKlSrFpk2bOHfuHBMnTjT0pJHAGzwLqPUp3LlzhypVqhh62Lz5SXXSxMREqlSpgpWVFT4+Pmzfvp0hQ4YghEwdpavLzKK8FIAbyNleT09PQw8m9r9Gu28tyBW3IkWKGNkFTALAOmYVRKEQwjg1/AigVatWODg4cOfOHeOlTklJoUKFCtSpU8e4RBY9To621Hns2DE6duyYahnn8ePHZM+end69e+uXTpq7vZkNckM7Dx8+pEqVKri6uvLBBx/82wLAzroOnJyccHV15erVq6by9zJ3GzMboLAubIUKFUxnPwFwdXU1vXbD3O3NSJAHFoiIiKBp06aMGzcOIQSHDx825B81ahRWVlZPVUzq3LkzBQsWNJ0FrGdueV4UoBvAlStXaNy4MTNmzEAIwfr16w154+PjjUOGplSoUAF3d3fTS2/s9hnkvlTu379P8+bNWbBgAUIIZsyYocv2P+QBHcMGChQowODBg1UAqHj9QG6g5t69e+TMmZNJkybpBmqc2Z84cSLZsmUzncZva+52ZwbI5c50Uy6Eh4cjhGDy5Mn6pSw105EWoCbatoAvvvgCCwsLQkND+fDDD/81ASDyUMJvAN999x25c+fmjz/+SM885pGF90Iit0YAULJkSVq1amWkAEpKSqJYsWJ4eXnpt7zRMzxpQW7qNyK4FStWIITg2LFjxsN3dXXF29tb/6ex4X/Dhg0IITh48KB+6Y1dBkYOAoyZAb24wKZNxrbQdImNjcXGxoZOnYyY6I0eICBXRYy0Genk2N2LtmVAL8EaEBDA9OnTVQCoeP1Am/U6cOAAQgjTjaoz0E5+Llu2DCGEab3hT8zd7swCeSrupKkTO3fuHM7OzuTOnZs///xTvzzJ3G3NLIACyA3bhIeHky1bNgYMGACQXgD4trnbm1kgD36QnJyMq6sr9evXp3fv3ri7u/Phhx+yc+dOUz1k2RxbyAMgdwGmTJmCEIJ27drh7+9P5cqVyZUrF7t27dL1EGnu9mY0yJOvAMydOxchhLEF4NatWwghmDVrln7LFmQKGMLCwhBCsHr1av07fzOL8lIAxjLQpk2bEEKwf/9+/dI6INj0hYiLi6Nhw4YIIdizx9h2/sPf/Z3XHbTDmCBXi4QQrFy50lR0YmJiKFiwIB4eHqSkpKQXALY0txwKhQAmgDzdKYQwnb4fAswHWLNmzb8pACyIzC8IyPyJ+fLlI3/+/Pzyyy/65buAg7nbmlkgk/5y9+5dypUrh5OTk3HqMZ0A8EpW1QUyHyM7d+409vqUKVOGqlWrGuXYli9frushkqw9CwjIPWCOjo6pEs526NAh7WngLKcHPbjx8fHBwsLCKJ2pzwCZ7A1ehjxUZwQHWSUAFEIIZCYIvvnmG4QQnDtnZA3rg0w4DsCePXsoXrw4VlZWpsUKAOqaW4aMAG2/+O7duxFC8PPPPxsC6vsD8+TJY6wYpBMAAlQztxyKfznIAyUcPnwYIQRbt27VjfNLZOJOFi1ahBCC6Oho/buu5m53ZoG2eff+/fv06NEDIQRNmjQxnflLyeLylwe597Njx44IIejYsSPz58/nP//5D+7u7hQpUoTAwEDu3bun6+Rrc7c7M0CruuPv748QgqAg/VC9PBGqV04wqYjiYu42ZwaAvWb3DBgwgOzZszNx4kTOnz/PF198gaWlJQ0aNDDVQ01ztzmjQVb1oX///tjZ2Rl2cP/+/bQzgIF6cLB3716EEGzZskX/bpq55XhZNPnw9fVFCGG6X3yf7jcmTZqEpaUlbm5uHDlijKUBJpu7/RkFMh8sP/zwQ9rJEb788kuEENSvX5958+axaNEiOnTogBCCNWvWEBcXp98abGYxFP92kAk+uXTpEkIIlixZohtnCNox9s8//xxbW1tTB58lRy6Y7HXq1KkTlpaWzJs3L23JM1+y4AyHDtAK5Im+EiVKPLMe5uzZs3WdvPHLOumBXM5j8uTJWFpaPlWOberUqQghTGe/3jN3mzMDoCfI1Eg5cuRgypQpqfQwduxYhBAcPXpUvzTM3G3OaJAVLfjoo48oU6ZMKvkLFCjA559/rv/zKlqOuMWLFyOEICYmRv+uu7nleFmQ5QCZMGEClpaWT5WD/OqrrxBCMHDgQO7fv2/61XYgu7nbn1EAi+DJnlDTvcH16tV7Zl31nj176reeNqMICsWTY+0pKSm4uLjQpk2bVC90cnIyzs7ONGvWTL90nzc4ncGzQJZ849KlS1hYWDB8+HD+gl1AbnO3NzNAJjk1rXbBo0ePuHv3LgkJCXh7e+Po6Eh0dLSp88+S+yGRtV4JCAhACGGaeB3TTtCko/Mwd5szA2TdYGMpPDQ0dUGMH3/8ESEEGzcaK4BvdK63tKAFwAA9e/bE0dExlfzt2rXDycnpqWCobdu2FCtWzPTSO+aW5WVAVmUBZKBnYWGRalD06NEj7OzsaNGixV/VCT8FFDe3HC8LMjE4AKtWrUII8dQJcJCZI5KSkrh58ybjx4837jPJmbnB3LIo/uUgTzqeB3naM1u2bMaShWmiy6VLl+pGu8/cbc4skAXajdNbe/fuJSoqiqNHjxIaGsqxY8dMHd435m5vZoHMYH8pPQ/+0Ucfpd0DeBiTmqhZCcAHZA5EIQTz5s1L1dlVrFiRxo0b65dSyEKlrkxBln8jIiIi7cwvut8QQvD777/rl0aZu80ZBbJEl8Hw4cPJnz9/qgBn3bp1CCGYM2eOcV0fNAwePFi/LZ7nLKX5OgI4Y3IaeuHChQghuHHDKJpEZGSksYp04cIFIiIiCA0N5fDhwzx8aCSVCDe3LC8DMpeuUQpx27ZtRmLwvwh6AYy0OWlWEUqbWx6Fwsh1lZiYSK1atRBCUL16dVxcXBBC0KJFC2PTM9DDzM3NNNAOvegOPb1Pv379dD1cMGdbMxvkyc+ygDta7iuALl26pA0AM6X26usA8I4upKenJ9bW1owePZrFixfToEEDLC0t2bFjh37LL+Zub2YBVNGFbNasmVHdYfz48Xh5eSGEME0DA1DB3G3OKICZILMk2NnZkT17dsMX6Ac/UlJSjMoY5cuXNxIlu7q6Eh+vF19ilnkleTmAT0CWQSxRooRR6UMIgY+PDwAnTpz4S79Zu3ZtU/vIYz5JXg5kEQXu3LlD+fLljQTPQgi6dOliKmMNzW/ehSfbRUwCwAZmFkWhkAC5gXMgZ/0WLVpEmzZtaN++PYGBgaYjm/1koX0caUFb6klKSmLRokX4+/uzfv16goKCCAkJYc2aNYSEhOij4OPmbu+rBNgK8nTf119/rdtDIm9wUtfnAW0f4M2bNxkzZgx2dnbkypWLpk2bmqY+AWhi7rZmJsA2kINEX19fPDw8cHNzo3nz5gQEBJjO8ASau60ZCdqBjtjYWPz8/Jg1axa+vr7MmjXL9FAcABs3bqRDhw60bt2aRYsWmerkT97w5Ploe8Xv3r3LggULDD34+voaM78pKSmsXLmSuXPnsnbtWjZv3szu3bvZtGkTgYGBeuRzF7AxtzwvCtryb3JyMsuWLUulh927d+synjK5fxbA2bNnGTdunKm5OJpTDoUiFUAp4AB/zW6y6BKXDpAL7bTfX3Bd0wNAB3O391WClhMvDX7mbldmAxRFKwX3DEaau52ZDeBAmvyY6RDGGx7opAVZCzgmHVn1cjCPgGPpfK9zkjd8758Qhm+M/AsZb/zFdVPWaD+/MLcsLwNyy9SOv5BR3wPR2eR+J9LsqeZfUEZU8QaCrAvcBxkIfoPctLsTWQcyy558NQW5x2Oo5rDWIqs8fIWcCRgHfEAWyWX1T0HWlg5BzgSPBazN3aZXgWYTk5D1XEGeaExBzoo2NHf7XhWADbI2bgSyUtAC5IzOAaAHYGXuNmYGyDQ4E4D/AhuQeTKnIPeIOmn3tNICg73Aj5pO+mYlnWjvwTDNN+p6CAAGIZc8ewLfIevUzwcma37TD2io+Y83vh8BrIF+wPcmevhBe94N07m/luYrfgXmkoW3zSgUCkWWBLBCVgEo/m934tpgMUdW6NAVCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBRvPv8HnD0laM1m/U0AAAAASUVORK5CYII=\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"season_ratings('Breaking Bad')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function() {\n",
|
|
" if (typeof(WebSocket) !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert('Your browser does not have WebSocket support.' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.');\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = (this.ws.binaryType != undefined);\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById(\"mpl-warnings\");\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent = (\n",
|
|
" \"This browser does not support binary websocket messages. \" +\n",
|
|
" \"Performance may be slow.\");\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = $('<div/>');\n",
|
|
" this._root_extra_style(this.root)\n",
|
|
" this.root.attr('style', 'display: inline-block');\n",
|
|
"\n",
|
|
" $(parent_element).append(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
|
|
" fig.send_message(\"send_image_mode\", {});\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj.onload = function() {\n",
|
|
" if (fig.image_mode == 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function() {\n",
|
|
" this.ws.close();\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function() {\n",
|
|
" var titlebar = $(\n",
|
|
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
|
|
" 'ui-helper-clearfix\"/>');\n",
|
|
" var titletext = $(\n",
|
|
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
|
|
" 'text-align: center; padding: 3px;\"/>');\n",
|
|
" titlebar.append(titletext)\n",
|
|
" this.root.append(titlebar);\n",
|
|
" this.header = titletext[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = $('<div/>');\n",
|
|
"\n",
|
|
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
|
|
"\n",
|
|
" function canvas_keyboard_event(event) {\n",
|
|
" return fig.key_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
|
|
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
|
|
" this.canvas_div = canvas_div\n",
|
|
" this._canvas_extra_style(canvas_div)\n",
|
|
" this.root.append(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = $('<canvas/>');\n",
|
|
" canvas.addClass('mpl-canvas');\n",
|
|
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
|
|
"\n",
|
|
" this.canvas = canvas[0];\n",
|
|
" this.context = canvas[0].getContext(\"2d\");\n",
|
|
"\n",
|
|
" var rubberband = $('<canvas/>');\n",
|
|
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
|
|
"\n",
|
|
" var pass_mouse_events = true;\n",
|
|
"\n",
|
|
" canvas_div.resizable({\n",
|
|
" start: function(event, ui) {\n",
|
|
" pass_mouse_events = false;\n",
|
|
" },\n",
|
|
" resize: function(event, ui) {\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" stop: function(event, ui) {\n",
|
|
" pass_mouse_events = true;\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" });\n",
|
|
"\n",
|
|
" function mouse_event_fn(event) {\n",
|
|
" if (pass_mouse_events)\n",
|
|
" return fig.mouse_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband.mousedown('button_press', mouse_event_fn);\n",
|
|
" rubberband.mouseup('button_release', mouse_event_fn);\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
|
|
"\n",
|
|
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
|
|
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
|
|
"\n",
|
|
" canvas_div.on(\"wheel\", function (event) {\n",
|
|
" event = event.originalEvent;\n",
|
|
" event['data'] = 'scroll'\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" mouse_event_fn(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.append(canvas);\n",
|
|
" canvas_div.append(rubberband);\n",
|
|
"\n",
|
|
" this.rubberband = rubberband;\n",
|
|
" this.rubberband_canvas = rubberband[0];\n",
|
|
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
|
|
" this.rubberband_context.strokeStyle = \"#000000\";\n",
|
|
"\n",
|
|
" this._resize_canvas = function(width, height) {\n",
|
|
" // Keep the size of the canvas, canvas container, and rubber band\n",
|
|
" // canvas in synch.\n",
|
|
" canvas_div.css('width', width)\n",
|
|
" canvas_div.css('height', height)\n",
|
|
"\n",
|
|
" canvas.attr('width', width);\n",
|
|
" canvas.attr('height', height);\n",
|
|
"\n",
|
|
" rubberband.attr('width', width);\n",
|
|
" rubberband.attr('height', height);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
|
|
" // upon first draw.\n",
|
|
" this._resize_canvas(600, 600);\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus () {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" // put a spacer in here.\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var button = $('<button/>');\n",
|
|
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
|
|
" 'ui-button-icon-only');\n",
|
|
" button.attr('role', 'button');\n",
|
|
" button.attr('aria-disabled', 'false');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
"\n",
|
|
" var icon_img = $('<span/>');\n",
|
|
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
|
|
" icon_img.addClass(image);\n",
|
|
" icon_img.addClass('ui-corner-all');\n",
|
|
"\n",
|
|
" var tooltip_span = $('<span/>');\n",
|
|
" tooltip_span.addClass('ui-button-text');\n",
|
|
" tooltip_span.html(tooltip);\n",
|
|
"\n",
|
|
" button.append(icon_img);\n",
|
|
" button.append(tooltip_span);\n",
|
|
"\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker_span = $('<span/>');\n",
|
|
"\n",
|
|
" var fmt_picker = $('<select/>');\n",
|
|
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
|
|
" fmt_picker_span.append(fmt_picker);\n",
|
|
" nav_element.append(fmt_picker_span);\n",
|
|
" this.format_dropdown = fmt_picker[0];\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = $(\n",
|
|
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
|
|
" fmt_picker.append(option)\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add hover states to the ui-buttons\n",
|
|
" $( \".ui-button\" ).hover(\n",
|
|
" function() { $(this).addClass(\"ui-state-hover\");},\n",
|
|
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
|
|
" );\n",
|
|
"\n",
|
|
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function(type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function() {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1]);\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
|
|
" var x0 = msg['x0'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch(cursor)\n",
|
|
" {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = \"image/png\";\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data);\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig[\"handle_\" + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function(e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e)\n",
|
|
" e = window.event;\n",
|
|
" if (e.target)\n",
|
|
" targ = e.target;\n",
|
|
" else if (e.srcElement)\n",
|
|
" targ = e.srcElement;\n",
|
|
" if (targ.nodeType == 3) // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
"\n",
|
|
" // jQuery normalizes the pageX and pageY\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" // offset() returns the position of the element relative to the document\n",
|
|
" var x = e.pageX - $(targ).offset().left;\n",
|
|
" var y = e.pageY - $(targ).offset().top;\n",
|
|
"\n",
|
|
" return {\"x\": x, \"y\": y};\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys (original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object')\n",
|
|
" obj[key] = original[key]\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event)\n",
|
|
"\n",
|
|
" if (name === 'button_press')\n",
|
|
" {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x;\n",
|
|
" var y = canvas_pos.y;\n",
|
|
"\n",
|
|
" this.send_message(name, {x: x, y: y, button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function(event, name) {\n",
|
|
"\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name == 'key_press')\n",
|
|
" {\n",
|
|
" if (event.which === this._key)\n",
|
|
" return;\n",
|
|
" else\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" if (name == 'key_release')\n",
|
|
" this._key = null;\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which != 17)\n",
|
|
" value += \"ctrl+\";\n",
|
|
" if (event.altKey && event.which != 18)\n",
|
|
" value += \"alt+\";\n",
|
|
" if (event.shiftKey && event.which != 16)\n",
|
|
" value += \"shift+\";\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, {key: value,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
|
|
" if (name == 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message(\"toolbar_button\", {name: name});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function() {\n",
|
|
" comm.close()\n",
|
|
" };\n",
|
|
" ws.send = function(m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function(msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data'])\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function(comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = $(\"#\" + id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm)\n",
|
|
"\n",
|
|
" function ondownload(figure, format) {\n",
|
|
" window.open(figure.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy,\n",
|
|
" ondownload,\n",
|
|
" element.get(0));\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element.get(0);\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error(\"Failed to find cell for figure\", id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var output_index = fig.cell_info[2]\n",
|
|
" var cell = fig.cell_info[0];\n",
|
|
"\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
|
|
" fig.root.unbind('remove')\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable()\n",
|
|
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items){\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) { continue; };\n",
|
|
"\n",
|
|
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
|
|
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
|
|
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
|
|
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
|
|
" buttongrp.append(button);\n",
|
|
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
|
|
" titlebar.prepend(buttongrp);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(el){\n",
|
|
" var fig = this\n",
|
|
" el.on(\"remove\", function(){\n",
|
|
"\tfig.close_ws(fig, {});\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.attr('tabindex', 0)\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager)\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which == 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" event.shiftKey = false;\n",
|
|
" // Send a \"J\" for go to next cell\n",
|
|
" event.which = 74;\n",
|
|
" event.keyCode = 74;\n",
|
|
" manager.command_mode();\n",
|
|
" manager.handle_keydown(event);\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function(html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i=0; i<ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code'){\n",
|
|
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] == html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel != null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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1q5dy7Jly5g3bx7Tpk3jrbfe4tlnn2XEiBEMGTKEnj17cvXVV3PhhRfWWG5fj3PPPZdLLrmEdu3a0bFjR7p06UK3bt3o3r27+QgLC+O6667j2muv5aqrruLyyy+ndevWXHjhhZx77rn1et/f/OY3tGnThk6dOtG7d2+GDh3K73//e5588klee+01Jk2axOzZs/n6669ZuXIlW7Zs4cCBA8THx5ORkUFJSYnfLl5FRUUkJSWxb98+fv75Z7777ju+/vprpk2bxr/+9a8KAdsDDzzAbbfdRt++fenUqRNt27bloosuokmTJvX6HBRF4ZxzzqFFixa0bt2aNm3a0K5dOzp06EDnzp3p0qULXbt2Nc9Jt27d6Nq1Kx07dqRt27a0atWK8847r17nvV27dlx//fXcf//9PPXUU/zjH//gvffeY/r06SxatIjVq1eze/du4uLiSE9P9/4u1Yvb7aagoIBTp05x4sQJDh06xO7du9myZQurV69myZIlzJw5k7fffpv/+7//Y8SIEdx44420a9eOFi1a1Ouzbd68ORdccAGXXnopV111FR06dOC6666rUMfDwsLo3LkzV199NVdccQUXX3yxeXNZ20eTJk1o2bIlnTt3ZsiQIYwYMYLRo0fzwgsvMH78eKZNm8a8efNYsmQJq1atYufOncTExJCenk5JSUmD6++pU6dITEwkNjaW3bt3Ex4eztKlS5k9ezYfffSReePx7LPP8uijjzJ8+HB69OhBmzZtOOecc+r0b23RogWXXnopbdu2pX379lx77bUVrhthYWF06dKFjh070q5dO9q0aUOrVq1o0aIFzZs3r9d5bNmyJR06dKBnz57ceuutjBw5kmeeeYY333yTyZMnM23aNBYsWMCPP/5IeHg4ERER5g1nXl6e32443W43WVlZxMfHm/V39erVfP3113zyySf897//5e233+all17iqaee4vHHH+fee+9lyJAh9O3bl/bt29OiRYtaXy+aNGnCRRddRNu2bbnmmmvo1KkTYWFh5rXA+3O+/PLLadWqFb/5zW/qVG9btWpF586dGTx4MCNHjuQvf/kLf/vb33j77beZNGkSs2bNMgPz8PBwnE4nBw8eJD4+npSUFLKzsxsUpJeWlpKWlsbhw4fZs2cPW7Zs4aeffuLLL79kypQpvPnmmzzxxBO1apu7dOnCAw88YBx6sCJCG3o3/f7KlSYlJYWLLrrI+2QDPAqMQu/ur2y68T8PPfQQnTt3rnC4tLQ0VFWtVSWr6XHuuefSunVr2rZtazY4YWFhdOvWzQymOnTowJVXXslll13G+eefX6+G7aqrriIsLIwBAwZw1113MXr0aMaOHcsHH3zAnDlzWLhwIT/99BPbt28nJiaG5ORkTp8+TW5uLsXFxX67KJaVlXHq1CmOHj3KgQMH2Lx5M6tWrWLhwoXmRXHSpEmMHz/e7J353e9+xy233EK/fv3o0qULrVu39vnvHDx4MN7nRlVV+vfvb/79vPPOo1WrVlx++eVmA9+xY0euu+46M3AyLpSdO3c2P/fWrVtz/vnn17nxa9asGZdddhmdOnWib9++3HTTTdx11108/PDDPPfcc4wfP57Jkyczffp0vvjiC5YvX47D4WDjxo3s2LGDyMhI4uPjSUtL83vDVFhYSE5ODidPniQmJoYdO3ZUuIGYOnUqY8eO5amnnuK+++5j4MCBXHPNNXVqlJs2bcp5551Hy5YtufTSS3nggQfOOD8PPfSQWc+vueYaLr/8ci688MI6B8nNmjXj6quv5sYbb+Tee+/lT3/6E2+88QaTJk3i448/NgMqo9Hfs2cPhw4d8ksvs6Zp5Ofnk5qaSmxsLBEREWzYsIHly5czd+5cs6EfM2YMo0eP5uGHH+bOO++kT58+tG3blmbNmtX539qiRQsuvvhirrjiCtq3b0/Hjh3p2rWrGah27dqVTp060aFDB9q2bUvr1q2rvQGr7rtz0UUX0aVLF2655RYefvhhXn75ZSZNmsRnn33G8uXL2bp1KwcOHCAuLo7ExEQyMzMpLi72y02Xy+Uy6+nRo0eJjo5m27ZtrFq1iiVLljBnzhwmTpzIq6++avbkDh8+nP79+xMWFsYll1xSr+ty8+bNueSSSyrcCHTt2tW8NhvX565du5rXCuOG96KLLqrzOTUe559/Pm3btqVz584MGDCAe+65h7Fjx55xbj7//HN++OEHtm/fzuHDh8nKyqpXHdY0jcLCQtLT04mNjcXpdBIeHs7KlStZsGABH3/8Maqq8swzz/Dwww8zbNgws9425Eb23HPPpWXLllx22WVceeWV5o2BEbB6dyZcc801XHbZZXW6ea1N23zppZfSo0cP46MYoojQB7zpXcELCgq44447OO+884iOjq7yi3D06NEzhn/j4+M5//zzGTPG3CwkDSiIioqqdSUbOXIkn332GZMmTWLs2LG8/PLLPP3004waNYpHH32U+++/n2HDhjFkyBBuuOEG+vTpYw7jGcOp/fv3Z/Dgwdx6663ce++9PPbYYzzxxBO8+OKL/O1vf2PChAlMnTq1whDepk2biI6OJiMjw99DqLbgdrvJzc0lPj6eiIgI1qxZw6ZNmzDOjfH461//yh//+Ed+//vfc9999zFs2DBuvfVWc4ivX79+9O7du8LQaa9evejbty/9+/dnyJAhDBs2jHvvvZcHH3yQUaNGMWbMGN59911mzZrFV199xYoVKwgPDyc6Opr4+HhSU1ODMdRnCU3TyMzM5PDhw+zbt4+NGzeyfPlyZs+ezfvvv8/YsWN54YUX+MMf/sCDDz7Ifffdx5133snQoUN55plnzjg/9913Hz169KB3797079+fW265hd/+9rc88sgj/PnPf+b555/nr3/9K2+99RYTJ07kf//7H3PmzGHJkiWsX7+eX3/9ldOnT4d0HXe73eTn55Oenk5kZCSbN282h6znzJnDBx98wLhx48zP9YEHHuCee+7hjjvuMIdWK0/J8K7DN910E8OGDeP+++9n1KhRPP/887z66quMGzeO999/nxkzZrB27dozzs3OnTsDPaQaFGVlZWRlZREXF0dERASbN2/m+++/N6cDTJ482bzhfOKJJxg5ciQjRozg9ttvZ/Dgwdxwww1nXCOM63OvXr3o06cPN9xwgzm0euedd/LAAw/w6KOP8swzz/D666/z1ltv8f777zNnzhxWrFjBunXrzKkBRs9Ydb3mlc9NVFRUED9B30pKSkhLS+PYsWNERUURERHB+vXrzcDc+Gz/+c9/8vrrr/PSSy/x9NNP8+ijj3LfffcxfPhwbrvttgqfsa/pFjfeeCO33XYb9913H3/4wx/4y1/+wj/+8Q/zevD555/z3Xff8csvv3DkyBFycnIkADwboffqAfqXfsWKFXTv3p0mTZowf/78CpW3uLj4SHx8vLllXP/+/enVqxfR0dG4XC42bdpE3759adasmfeX7WOg2Pgy9u/fnz59+rB69er6zAEUAWDHC6UoJ+fHvuTc2Jecm7qpzRzAzp07SwDYmKCvNGLp0qVcfvnlKIq+qjc8PPyMCnLllVfuVpTydDFbtmyhffv2Fb5kbdq0YcWK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\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"season_ratings('Community')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Ratingverläufe unterschiedlicher Serien"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Nun lassen wir mal ein paar Serien gegeneinander antreten. Dabei betrachten wir immer alle Episoden aller Staffeln."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def series_ratings(series):\n",
|
|
" data = {}\n",
|
|
" \n",
|
|
" for serie in series:\n",
|
|
" \n",
|
|
" show = TVShow(serie)\n",
|
|
" \n",
|
|
" ratings = []\n",
|
|
" for season in show.seasons:\n",
|
|
" \n",
|
|
" if season.season == 0:\n",
|
|
" continue\n",
|
|
" \n",
|
|
" for episode in season.episodes:\n",
|
|
" ratings.append(episode.rating)\n",
|
|
" \n",
|
|
" data[serie] = pd.Series(ratings)\n",
|
|
" \n",
|
|
" df = pd.DataFrame(data)\n",
|
|
" df.plot(colormap=matplotlib.cm.Accent)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Beispiel"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function() {\n",
|
|
" if (typeof(WebSocket) !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert('Your browser does not have WebSocket support.' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.');\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = (this.ws.binaryType != undefined);\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById(\"mpl-warnings\");\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent = (\n",
|
|
" \"This browser does not support binary websocket messages. \" +\n",
|
|
" \"Performance may be slow.\");\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = $('<div/>');\n",
|
|
" this._root_extra_style(this.root)\n",
|
|
" this.root.attr('style', 'display: inline-block');\n",
|
|
"\n",
|
|
" $(parent_element).append(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
|
|
" fig.send_message(\"send_image_mode\", {});\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj.onload = function() {\n",
|
|
" if (fig.image_mode == 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function() {\n",
|
|
" this.ws.close();\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function() {\n",
|
|
" var titlebar = $(\n",
|
|
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
|
|
" 'ui-helper-clearfix\"/>');\n",
|
|
" var titletext = $(\n",
|
|
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
|
|
" 'text-align: center; padding: 3px;\"/>');\n",
|
|
" titlebar.append(titletext)\n",
|
|
" this.root.append(titlebar);\n",
|
|
" this.header = titletext[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = $('<div/>');\n",
|
|
"\n",
|
|
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
|
|
"\n",
|
|
" function canvas_keyboard_event(event) {\n",
|
|
" return fig.key_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
|
|
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
|
|
" this.canvas_div = canvas_div\n",
|
|
" this._canvas_extra_style(canvas_div)\n",
|
|
" this.root.append(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = $('<canvas/>');\n",
|
|
" canvas.addClass('mpl-canvas');\n",
|
|
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
|
|
"\n",
|
|
" this.canvas = canvas[0];\n",
|
|
" this.context = canvas[0].getContext(\"2d\");\n",
|
|
"\n",
|
|
" var rubberband = $('<canvas/>');\n",
|
|
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
|
|
"\n",
|
|
" var pass_mouse_events = true;\n",
|
|
"\n",
|
|
" canvas_div.resizable({\n",
|
|
" start: function(event, ui) {\n",
|
|
" pass_mouse_events = false;\n",
|
|
" },\n",
|
|
" resize: function(event, ui) {\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" stop: function(event, ui) {\n",
|
|
" pass_mouse_events = true;\n",
|
|
" fig.request_resize(ui.size.width, ui.size.height);\n",
|
|
" },\n",
|
|
" });\n",
|
|
"\n",
|
|
" function mouse_event_fn(event) {\n",
|
|
" if (pass_mouse_events)\n",
|
|
" return fig.mouse_event(event, event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband.mousedown('button_press', mouse_event_fn);\n",
|
|
" rubberband.mouseup('button_release', mouse_event_fn);\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
|
|
"\n",
|
|
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
|
|
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
|
|
"\n",
|
|
" canvas_div.on(\"wheel\", function (event) {\n",
|
|
" event = event.originalEvent;\n",
|
|
" event['data'] = 'scroll'\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" mouse_event_fn(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.append(canvas);\n",
|
|
" canvas_div.append(rubberband);\n",
|
|
"\n",
|
|
" this.rubberband = rubberband;\n",
|
|
" this.rubberband_canvas = rubberband[0];\n",
|
|
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
|
|
" this.rubberband_context.strokeStyle = \"#000000\";\n",
|
|
"\n",
|
|
" this._resize_canvas = function(width, height) {\n",
|
|
" // Keep the size of the canvas, canvas container, and rubber band\n",
|
|
" // canvas in synch.\n",
|
|
" canvas_div.css('width', width)\n",
|
|
" canvas_div.css('height', height)\n",
|
|
"\n",
|
|
" canvas.attr('width', width);\n",
|
|
" canvas.attr('height', height);\n",
|
|
"\n",
|
|
" rubberband.attr('width', width);\n",
|
|
" rubberband.attr('height', height);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
|
|
" // upon first draw.\n",
|
|
" this._resize_canvas(600, 600);\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus () {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" // put a spacer in here.\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var button = $('<button/>');\n",
|
|
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
|
|
" 'ui-button-icon-only');\n",
|
|
" button.attr('role', 'button');\n",
|
|
" button.attr('aria-disabled', 'false');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
"\n",
|
|
" var icon_img = $('<span/>');\n",
|
|
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
|
|
" icon_img.addClass(image);\n",
|
|
" icon_img.addClass('ui-corner-all');\n",
|
|
"\n",
|
|
" var tooltip_span = $('<span/>');\n",
|
|
" tooltip_span.addClass('ui-button-text');\n",
|
|
" tooltip_span.html(tooltip);\n",
|
|
"\n",
|
|
" button.append(icon_img);\n",
|
|
" button.append(tooltip_span);\n",
|
|
"\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker_span = $('<span/>');\n",
|
|
"\n",
|
|
" var fmt_picker = $('<select/>');\n",
|
|
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
|
|
" fmt_picker_span.append(fmt_picker);\n",
|
|
" nav_element.append(fmt_picker_span);\n",
|
|
" this.format_dropdown = fmt_picker[0];\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = $(\n",
|
|
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
|
|
" fmt_picker.append(option)\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add hover states to the ui-buttons\n",
|
|
" $( \".ui-button\" ).hover(\n",
|
|
" function() { $(this).addClass(\"ui-state-hover\");},\n",
|
|
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
|
|
" );\n",
|
|
"\n",
|
|
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function(type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function() {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1]);\n",
|
|
" fig.send_message(\"refresh\", {});\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
|
|
" var x0 = msg['x0'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch(cursor)\n",
|
|
" {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = \"image/png\";\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data);\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig[\"handle_\" + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function(e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e)\n",
|
|
" e = window.event;\n",
|
|
" if (e.target)\n",
|
|
" targ = e.target;\n",
|
|
" else if (e.srcElement)\n",
|
|
" targ = e.srcElement;\n",
|
|
" if (targ.nodeType == 3) // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
"\n",
|
|
" // jQuery normalizes the pageX and pageY\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" // offset() returns the position of the element relative to the document\n",
|
|
" var x = e.pageX - $(targ).offset().left;\n",
|
|
" var y = e.pageY - $(targ).offset().top;\n",
|
|
"\n",
|
|
" return {\"x\": x, \"y\": y};\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys (original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object')\n",
|
|
" obj[key] = original[key]\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event)\n",
|
|
"\n",
|
|
" if (name === 'button_press')\n",
|
|
" {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x;\n",
|
|
" var y = canvas_pos.y;\n",
|
|
"\n",
|
|
" this.send_message(name, {x: x, y: y, button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function(event, name) {\n",
|
|
"\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name == 'key_press')\n",
|
|
" {\n",
|
|
" if (event.which === this._key)\n",
|
|
" return;\n",
|
|
" else\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" if (name == 'key_release')\n",
|
|
" this._key = null;\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which != 17)\n",
|
|
" value += \"ctrl+\";\n",
|
|
" if (event.altKey && event.which != 18)\n",
|
|
" value += \"alt+\";\n",
|
|
" if (event.shiftKey && event.which != 16)\n",
|
|
" value += \"shift+\";\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, {key: value,\n",
|
|
" guiEvent: simpleKeys(event)});\n",
|
|
" return false;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
|
|
" if (name == 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message(\"toolbar_button\", {name: name});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function() {\n",
|
|
" comm.close()\n",
|
|
" };\n",
|
|
" ws.send = function(m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function(msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data'])\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function(comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = $(\"#\" + id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm)\n",
|
|
"\n",
|
|
" function ondownload(figure, format) {\n",
|
|
" window.open(figure.imageObj.src);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy,\n",
|
|
" ondownload,\n",
|
|
" element.get(0));\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element.get(0);\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error(\"Failed to find cell for figure\", id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var output_index = fig.cell_info[2]\n",
|
|
" var cell = fig.cell_info[0];\n",
|
|
"\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
|
|
" fig.root.unbind('remove')\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable()\n",
|
|
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function() {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message(\"ack\", {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function() {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var nav_element = $('<div/>')\n",
|
|
" nav_element.attr('style', 'width: 100%');\n",
|
|
" this.root.append(nav_element);\n",
|
|
"\n",
|
|
" // Define a callback function for later on.\n",
|
|
" function toolbar_event(event) {\n",
|
|
" return fig.toolbar_button_onclick(event['data']);\n",
|
|
" }\n",
|
|
" function toolbar_mouse_event(event) {\n",
|
|
" return fig.toolbar_button_onmouseover(event['data']);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for(var toolbar_ind in mpl.toolbar_items){\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) { continue; };\n",
|
|
"\n",
|
|
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
|
|
" button.click(method_name, toolbar_event);\n",
|
|
" button.mouseover(tooltip, toolbar_mouse_event);\n",
|
|
" nav_element.append(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
|
|
" nav_element.append(status_bar);\n",
|
|
" this.message = status_bar[0];\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
|
|
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
|
|
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
|
|
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
|
|
" buttongrp.append(button);\n",
|
|
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
|
|
" titlebar.prepend(buttongrp);\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function(el){\n",
|
|
" var fig = this\n",
|
|
" el.on(\"remove\", function(){\n",
|
|
"\tfig.close_ws(fig, {});\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.attr('tabindex', 0)\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager)\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which == 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" event.shiftKey = false;\n",
|
|
" // Send a \"J\" for go to next cell\n",
|
|
" event.which = 74;\n",
|
|
" event.keyCode = 74;\n",
|
|
" manager.command_mode();\n",
|
|
" manager.handle_keydown(event);\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function(html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i=0; i<ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code'){\n",
|
|
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] == html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel != null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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KipCbm4uMjMzcfHiRSQmJuLYsWOIjIzE+vXroVAoMHv2bEybNg0ffPAB/va3v+Evf/kLJk2ahN///vd48MEHcfvtt2PIkCF2huUNN9yAO+64Aw899BD+67/+C2+99RY++ugjfP3115g9ezZCQ0MRERGBnTt3Ijo6GidPnkRiYiLS09ORm5uLwsJClJeXo6qqyu47V6vVaGxsRF1dHaqrq1FWVob8/HykpaUhOTkZp0+fxoEDBxAREYGQkBDMmDEDX331FT788EO89NJLmDhxIsaNG4cHHngAt9xyC4YOHWo37ssvv5yP/amnnsKkSZPw+uuv4+WXX8bcuXNdvtHZhn/bit0P4+YsPQulTIH4v2xxe9++QkatUOmbEQLKWQHSt3j3fPVJZkPT/SprCYneQNWxATXnrHmA/u2t7Akn6/c4sewKiQABNgagq90oWltbUV1djYIqehMuAAAgAElEQVSCApw9exbHjh3Djh07EBERgRUrVmDhwoX49ttv8emnn+Ktt97Cf//3f2PChAkYM2YM7r77bowcORI33XQThg4dikGDBrnkTbvyyitx00034c4778QDDzyAxx57DM888wxeeeUVbshNmzYNs2bNQmhoKCIjIxETE4OcnBxUVVVBo9EEjMeyM0ajES0tLaioqEBycjJiY2Oxb98+rFu3jhu/X3zxBd599128+uqrePrppzFu3DjIZDLceuutGD58OIYOHYrLLrsMAwYMcNmLOWjQIAwdOhTDhg3DiBEjcP/992PixIn43//9X3z44Yf48ssv8e9//xthYWH49ddfsWPHDkRFReHkyZNIT09HaWkpmpubPZovmjEvTgj/vrSxV/tbegdH3RsKQ1vv+uz2BiITqDjSLD0RCtJUef+cNlqAgTr3JQIHIgLlrBLmXN05sYfjElwPsDhS7KH0CSfr9+O+tickAgwA4wHgwQcfxKhRo3w+cQHBwNFqtWhra7PLp9NqtTCZ/KOBeH/CaDRCp9NBo9GgtbUVLS0taG5uRktLC9rb29HR0eGX3zsR4fhz66CUKZC3snc6lIZ2PaLuWwKlTIHaU76Tf+AJ5z6syiVtnfWcBv/rfiLRvxByWy2t35rFHo5LUHOutfd2APcFdrJ+PyG2fSHh5wB4CAAeffRRjBw50tfzVqIfQ0QgfavHjtecWcvDv635vc8vOvn6VihlCuQs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NmxI69at6du3L6NGjWLGjBl4eHiwYcMGvL292bt3Lz179qR379789ttvXLp0yW6NYkxMDLdu3eL8+fP4+vqye/duNm3ahIeHh9Eourm5MWDAALp27Urbtm354osvqFevHu+88w7Ozs7ky5fvma51zpw5yZs3L4UKFTI6+JIlS/LWW29RpkwZ3nrrLQoUKED+/PnJly8fxYsXp0iRIuTLl49cuXKluPPLnj07BQsWpFSpUlSpUoX33nuPhg0b0rx5c1RVZcCAAYwYMYJJkyYxf/58Vq5cycaNG9mxYwf79+/nxIkTRmJue3dMDx8+JDw8nKtXr7J3715+/vlnfvjhB1q2bIm7uzvjxo2jb9++/PTTTzRu3JhatWrxxhtvpKhTzpo1Kzlz5uTll1+mQIECFCtWjFKlSj3iqFrt/I033qBQoULkyZMnxU5y9uzZef3116lRowaff/4533//Pb169cLNzY2JEycaDpW109+2bRudO3emZ8+e/Pbbb1y7du2Zr6emady/f5/r169z9uxZfHx8+Pfff1m5ciWzZs0yOvquXbvSunVrmjdvzieffELlypUpXLgw2bNnT7GuuXPn5pVXXuG1116jePHilCxZkjJlyhiOapkyZShVqhQlSpSgcOHC5MuX75lfwF566SWcnZ2pV68ezZs3p0uXLri5uTFz5kxWrlyJl5cXvr6+BAQEcPnyZUJDQ4mMjLTLiFFsbKxhp+fPn8fPz499+/axadMmli5dyowZMxg+fDjdu3enbdu2tGjRgo8//pjq1atTtmxZ8ufP/0w658iRg/z58yd4EShTpozRNlvb5zJlylC6dGlKlChhvPC+9NJLKb6n1k+uXLkoXLgwpUuXpmbNmnz22Wc0b96ctm3b0r17d/r168fw4cOZOnUq69atw9vbG39/f+7cuZNk+/C0hMiapvHw4UNu3rzJ2bNnOXDgADt37sTT05N58+YxceJEBg8ezM8//0zz5s1p0KCBYbfP8yLr5OTEyy+/TMGCBSlSpIjxYlC2bNlHBhPeeOMNChYs+MjL69POnzt3bmPAokGDBrRt29Yo3Wrbf1vwAwoogvAkgCRfX6KjowkJCSEwMNCY2tu6dSvLli1j5syZuLm50bdvX7p06UK7du1o1aoVLVu2pEmTJjRo0IA6depQrVo1KleubEzjWadTq1evTu3atXn//ff5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J/Cm2XKmNkAhYC5wyHItKpktU2oAZAdciHeIrJE/h4DvyaS5sdBrp/6O3tHHAJPRX372WOw8q9ky2gP0fHhT0SN8V1k+PdBHgHJZPv0BX8AdvezbKuBds2V/VtBHeRujO0QrbfTujp7poA4wHliNHj06wtK+DQPqW65Hhkv1hF7n+ntgQSK9O5PE2mX0FEGr0V92ZwHFzJD7eUF/ke2IXgHGVu9f0MvfvWzpw6zhvltt/v3YbPkFQRBMxdJplkavKepQi6EtHWf2zOrsCoJgBMqUA4pnRAdfEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEOzF/wMCPddjbG/KjgAAAABJRU5ErkJggg==\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"series_ratings(['Gotham', 'Flash', 'Arrow', 'Supergirl'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Mir ist gerade nichts Besseres eingefallen. Es müssen ja in irgendeinen Sinn vergleichbare Serien sein. Da habe ich mir mal die vier aktuellen DC-Serien angeschaut. Da Arrow schon einige Episoden mehr hat, habe ich den Plot angepasst und hinten abgeschnitten. Glaubt man den Ratings, hätte ich Supergirl doch mehr Chancen als zwei Folgen geben sollen. War in den ersten Folgen einfach zu glatt gebügelt."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.5.1"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|