Newer
Older
Danilo Ferreira de Lima
committed
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
" );\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",
" 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.handle_history_buttons = function (fig, msg) {\n",
" for (var key in msg) {\n",
" if (!(key in fig.buttons)) {\n",
" continue;\n",
" }\n",
" fig.buttons[key].disabled = !msg[key];\n",
" fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
" if (msg['mode'] === 'PAN') {\n",
" fig.buttons['Pan'].classList.add('active');\n",
" fig.buttons['Zoom'].classList.remove('active');\n",
" } else if (msg['mode'] === 'ZOOM') {\n",
" fig.buttons['Pan'].classList.remove('active');\n",
" fig.buttons['Zoom'].classList.add('active');\n",
" } else {\n",
" fig.buttons['Pan'].classList.remove('active');\n",
" fig.buttons['Zoom'].classList.remove('active');\n",
" }\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",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data\n",
" );\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" } else if (\n",
" typeof evt.data === 'string' &&\n",
" evt.data.slice(0, 21) === 'data:image/png;base64'\n",
" ) {\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(\n",
" \"No handler for the '\" + msg_type + \"' message type: \",\n",
" msg\n",
" );\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(\n",
" \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
" e,\n",
" e.stack,\n",
" msg\n",
" );\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",
" }\n",
" if (e.target) {\n",
" targ = e.target;\n",
" } else if (e.srcElement) {\n",
" targ = e.srcElement;\n",
" }\n",
" if (targ.nodeType === 3) {\n",
" // defeat Safari bug\n",
" targ = targ.parentNode;\n",
" }\n",
"\n",
" // pageX,Y are the mouse positions relative to the document\n",
" var boundingRect = targ.getBoundingClientRect();\n",
" var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
" var y = e.pageY - (boundingRect.top + document.body.scrollTop);\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",
" }\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",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * this.ratio;\n",
" var y = canvas_pos.y * this.ratio;\n",
"\n",
" this.send_message(name, {\n",
" x: x,\n",
" y: y,\n",
" button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event),\n",
" });\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",
" // Prevent repeat events\n",
" if (name === 'key_press') {\n",
" if (event.which === this._key) {\n",
" return;\n",
" } else {\n",
" this._key = event.which;\n",
" }\n",
" }\n",
" if (name === 'key_release') {\n",
" this._key = null;\n",
" }\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which !== 17) {\n",
" value += 'ctrl+';\n",
" }\n",
" if (event.altKey && event.which !== 18) {\n",
" value += 'alt+';\n",
" }\n",
" if (event.shiftKey && event.which !== 16) {\n",
" value += 'shift+';\n",
" }\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, 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",
"\n",
"///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
"// prettier-ignore\n",
"var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\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\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";/* global mpl */\n",
"\n",
"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 overridden (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 = document.getElementById(id);\n",
" var ws_proxy = comm_websocket_adapter(comm);\n",
"\n",
" function ondownload(figure, _format) {\n",
" window.open(figure.canvas.toDataURL());\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy, ondownload, element);\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;\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",
" fig.cell_info[0].output_area.element.on(\n",
" 'cleared',\n",
" { fig: fig },\n",
" fig._remove_fig_handler\n",
" );\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function (fig, msg) {\n",
" var width = fig.canvas.width / fig.ratio;\n",
" fig.cell_info[0].output_area.element.off(\n",
" 'cleared',\n",
" fig._remove_fig_handler\n",
" );\n",
" fig.resizeObserverInstance.unobserve(fig.canvas_div);\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.innerHTML =\n",
" '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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 width = this.canvas.width / this.ratio;\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] =\n",
" '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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 () {\n",
" fig.push_to_output();\n",
" }, 1000);\n",
"};\n",
"\n",
"mpl.figure.prototype._init_toolbar = function () {\n",
" var fig = this;\n",
"\n",
" var toolbar = document.createElement('div');\n",
" toolbar.classList = 'btn-toolbar';\n",
" this.root.appendChild(toolbar);\n",
"\n",
" function on_click_closure(name) {\n",
" return function (_event) {\n",
" return fig.toolbar_button_onclick(name);\n",
" };\n",
" }\n",
"\n",
" function on_mouseover_closure(tooltip) {\n",
" return function (event) {\n",
" if (!event.currentTarget.disabled) {\n",
" return fig.toolbar_button_onmouseover(tooltip);\n",
" }\n",
" };\n",
" }\n",
"\n",
" fig.buttons = {};\n",
" var buttonGroup = document.createElement('div');\n",
" buttonGroup.classList = 'btn-group';\n",
" var button;\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",
" /* Instead of a spacer, we start a new button group. */\n",
" if (buttonGroup.hasChildNodes()) {\n",
" toolbar.appendChild(buttonGroup);\n",
" }\n",
" buttonGroup = document.createElement('div');\n",
" buttonGroup.classList = 'btn-group';\n",
" continue;\n",
" }\n",
"\n",
" button = fig.buttons[name] = document.createElement('button');\n",
" button.classList = 'btn btn-default';\n",
" button.href = '#';\n",
" button.title = name;\n",
" button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
" button.addEventListener('click', on_click_closure(method_name));\n",
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
" buttonGroup.appendChild(button);\n",
" }\n",
"\n",
" if (buttonGroup.hasChildNodes()) {\n",
" toolbar.appendChild(buttonGroup);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = document.createElement('span');\n",
" status_bar.classList = 'mpl-message pull-right';\n",
" toolbar.appendChild(status_bar);\n",
" this.message = status_bar;\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = document.createElement('div');\n",
" buttongrp.classList = 'btn-group inline pull-right';\n",
" button = document.createElement('button');\n",
" button.classList = 'btn btn-mini btn-primary';\n",
" button.href = '#';\n",
" button.title = 'Stop Interaction';\n",
" button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
" button.addEventListener('click', function (_evt) {\n",
" fig.handle_close(fig, {});\n",
" });\n",
" button.addEventListener(\n",
" 'mouseover',\n",
" on_mouseover_closure('Stop Interaction')\n",
" );\n",
" buttongrp.appendChild(button);\n",
" var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
" titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
"};\n",
"\n",
"mpl.figure.prototype._remove_fig_handler = function (event) {\n",
" var fig = event.data.fig;\n",
" if (event.target !== this) {\n",
" // Ignore bubbled events from children.\n",
" return;\n",
" }\n",
" fig.close_ws(fig, {});\n",
"};\n",
"\n",
"mpl.figure.prototype._root_extra_style = function (el) {\n",
" el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
"};\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function (el) {\n",
" // this is important to make the div 'focusable\n",
" el.setAttribute('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",
" } else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\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",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which === 13) {\n",
" this.canvas_div.blur();\n",
" // select the cell after this one\n",
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
" IPython.notebook.select(index + 1);\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
" fig.ondownload(fig, null);\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(\n",
" 'matplotlib',\n",
" mpl.mpl_figure_comm\n",
" );\n",
"}\n"
],
Danilo Ferreira de Lima
committed
"<IPython.core.display.Javascript object>"
Danilo Ferreira de Lima
committed
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAgAElEQVR4Xuzde7TVdZ34/zegpSakuNA0TY3wiimKUVKpmVozjdJy0pla46VGzTKSFMWmvOQNdRK7QGpe01FXNdmoY8KaGEWlK6jViJekyBSzpeToBF6Q7+/zWT9YHLwcNr72OZ/X3o+z1qxp4pz3eZ3H633+eM7eZ+8By/6/j+KDAAECBAgQIECAAAECBAgQ6FeBAQK9X/19cwIECBAgQIAAAQIECBAgUAsIdBeBAAECBAgQIECAAAECBAg0QECgN2AJRiBAgAABAgQIECBAgAABAgLdHSBAgAABAgQIECBAgAABAg0QEOgNWIIRCBAgQIAAAQIECBAgQICAQHcHCBAgQIAAAQIECBAgQIBAAwQEegOWYAQCBAgQIECAAAECBAgQICDQ3QECBAgQIECAAAECBAgQINAAAYHegCUYgQABAgQIECBAgAABAgQICHR3gAABAgQIECBAgAABAgQINEBAoDdgCUYgQIAAAQIECBAgQIAAAQIC3R0gQIAAAQIECBAgQIAAAQINEBDoDViCEQgQIECAAAECBAgQIECAgEB3BwgQIECAAAECBAgQIECAQAMEBHoDlmAEAgQIECBAgAABAgQIECAg0N0BAgQIECBAgAABAgQIECDQAAGB3oAlGIEAAQIECBAgQIAAAQIECAh0d4AAAQIECBAgQIAAAQIECDRAQKA3YAlGIECAAAECBAgQIECAAAECAt0dIECAAAECBAgQIECAAAECDRAQ6A1YghEIECBAgAABAgQIECBAgIBAdwcIECBAgAABAgQIECBAgEADBAR6A5ZgBAIECBAgQIAAAQIECBAgINDdAQIECBAgQIAAAQIECBAg0AABgd6AJRiBAAECBAgQIECAAAECBAgIdHeAAAECBAgQIECAAAECBAg0QECgN2AJRiBAgAABAgQIECBAgAABAgLdHSBAgAABAgQIECBAgAABAg0QEOgNWIIRCBAgQIAAAQIECBAgQICAQHcHCBAgQIAAAQIECBAgQIBAAwQEegOWYAQCBAgQIECAAAECBAgQICDQ3QECBAgQIECAAAECBAgQINAAAYHegCUYgQABAgQIECBAgAABAgQICHR3gAABAgQIECBAgAABAgQINEBAoDdgCUYgQIAAAQIECBAgQIAAAQIC3R0gQIAAAQIECBAgQIAAAQINEBDoDViCEQgQIECAAAECBAgQIECAgEB3BwgQIECAAAECBAgQIECAQAMEBHoDlmAEAgQIECBAgAABAgQIECAg0N0BAgQIECBAgAABAgQIECDQAAGB3oAlGIEAAQIECBAgQIAAAQIECAh0d4AAAQIECBAgQIAAAQIECDRAQKA3YAlGIECAAAECBAgQIECAAAECAt0dIECAAAECBAgQIECAAAECDRAQ6A1YghEIECBAgAABAgQIECBAgIBAdwcIECBAgAABAgQIECBAgEADBAR6A5ZgBAIECBAgQIAAAQIECBAgINDdAQIECBAgQIAAAQIECBAg0AABgd6AJRiBAAECBAgQIECAAAECBAgIdHeAAAECBAgQIECAAAECBAg0QECgN2AJRiBAgAABAgQIECBAgAABAgLdHSBAgAABAgQIECBAgAABAg0QEOgNWIIRCBAgQIAAAQIECBAgQICAQHcHCBAgQIAAAQIECBAgQIBAAwQEegOWYAQCBAgQIECAAAECBAgQICDQ3QECBAgQIECAAAECBAgQINAAAYHegCUYgQABAgQIECBAgAABAgQICHR3gAABAgQIECBAgAABAgQINEBAoDdgCUYgQIAAAQIECBAgQIAAAQIC3R0gQIAAAQIECBAgQIAAAQINEBDoDViCEQgQIECAAAECBAgQIECAgEB3BwgQIECAAAECBAgQIECAQAMEBHoDlmAEAgQIECBAgAABAgQIECAg0N0BAgQIECBAgAABAgQIECDQAAGB3oAlGIEAAQIECBAgQIAAAQIECAh0d4AAAQIECBAgQIAAAQIECDRAQKA3YAlGIECAAAECBAgQIECAAAECAt0dIECAAAECBAgQIECAAAECDRAQ6A1YghEIECBAgAABAgQIECBAgIBAdwcIECBAgAABAgQIECBAgEADBAR6A5ZgBAIECBAgQIAAAQIECBAgINDdAQIECBAgQIAAAQIECBAg0AABgd6AJRiBAAECBAgQIECAAAECBAgIdHeAAAECBAgQIECAAAECBAg0QECgN2AJRiBAgAABAgQIECBAgAABAgLdHSBAgAABAgQIECBAgAABAg0QEOgNWIIRCBAgQIAAAQIECBAgQICAQHcHCBAgQIAAAQIECBAgQIBAAwQEegOWYAQCBAgQIECAAAECBAgQICDQ3QECBAgQIECAAAECBAgQINAAAYHegCUYgQABAgQIECBAgAABAgQICHR3gAABAgQIECBAgAABAgQINEBAoDdgCUYgQIAAAQIECBAgQIAAAQIC3R0gQIAAAQIECBAgQIAAAQINEBDoDViCEQgQIECAAAECBAgQIECAgEB3BwgQIECAAAECBAgQIECAQAMEBHoDlmAEAgQIECBAgAABAgQIECAg0N0BAgQIECBAgAABAgQIECDQAAGB3oAlGIEAAQIECBAgQIAAAQIECAh0d4AAAQIECBAgQIAAAQIECDRAQKA3YAlGIECAAAECBAgQIECAAAECAt0dIECAAAECBAgQIECAAAECDRAQ6A1YghEIECBAgAABAgQIECBAgIBAdwcIECBAgAABAgQIECBAgEADBAR6A5ZgBAIECBAgQIAAAQIECBAgINDdAQIECBAgQIAAAQIECBAg0AABgd6AJRiBAAECBAgQIECAAAECBAgIdHeAAAECBAgQIECAAAECBAg0QECgN2AJRiBAgAABAgQIECBAgAABAgLdHSBAgAABAgQIECBAgAABAg0QEOgNWIIRCBAgQIAAAQIECBAgQICAQHcHCBAgQIAAAQIECBAgQIBAAwQEegOWYAQCBAgQIECAAAECBAgQICDQ3QECBAgQIECAAAECBAgQINAAAYHegCUYgQABAgQIECBAgAABAgQICHR3gAABAgQIECBAgAABAgQINEBAoDdgCUYgQIAAAQIECBAgQIAAAQIC3R0gQIAAAQIECBAgQIAAAQINEBDoDViCEQgQIECAAAECBAgQIECAgEB3BwgQIECAAAECBAgQIECAQAMEBHoDlmAEAgQIECBAgAABAgQIECAg0N0BAgQIECBAgAABAgQIECDQAAGB3oAlGIEAAQIECBAgQIAAAQIECAh0d4AAAQIECBAgQIAAAQIECDRAQKA3YAlGIECAAAECBAgQIECAAAECAj3gDsyaNaucf/75Zc6cOWXhwoXlhhtuKOPGjVtx8rJly8rpp59eLrnkkrJo0aIyZsyYMnXq1LLjjjuu+JznnnuunHDCCeW6664rixcvLvvss0+ZNm1a2XzzzVd8TvW148ePLzfeeGP93x1wwAHlG9/4Rtlggw0CfgpHECBAgAABAgQIECBAgEB/Cgj0AP0f/ehH5a677iq77rprOeigg14W6Oeee24566yz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YjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQMWwqcUaAHYjqKAAECBAgQIEAgjYBAF+gZLqtAz7ClwBkFeiCmowgQIECAAAECBNIICHSBnuGyCvQ+2tKLL75YTjvttPJv//Zv5fHHHy+bbrppOfzww8uXvvSlMnDgwHqKZcuWldNPP71ccsklZdGiRWXMmDFl6tSpZccdd1wx5XPPPVdOOOGEct1115XFixeXffbZp0ybNq1svvnmq/WTCPTVYvJJBAgQIECAAAECHSYg0AV6hist0PtoS2eddVaZMmVKueqqq+rg/uUvf1mOOOKIcuaZZ5bPf/7z9RTnnntuqT7vyiuvLNtss039b7NmzSoPPPBAGTx4cP05xxxzTLnpppvqz9loo43K8ccfX5566qkyZ86cMmjQoF5/GoHeK5FPIECAAAECBAgQ6EABgS7QM1xrgd5HW/rIRz5SNtlkk3LZZZet+I4HHXRQWW+99crVV19dP3q+2WableOOO66cdNJJ9edUj5ZXX1OF+9FHH12efvrpMmzYsPrzDznkkPpzHnvssbLFFluUW265pey///69/jQCvVcin0CAAAECBAgQINCBAgJdoGe41gK9j7Y0efLkctFFF5UZM5OXw9wAACAASURBVGbUj47fe++9Zb/99isXXnhh+cd//Mcyf/78Mnz48DJ37twyatSoFVMdeOCBZYMNNqgfeZ85c2b9lPbqEfMNN9xwxefsvPPOZdy4cfXT41f9qCK/+p/lH1WgV0Ffxf6QIUP66Kf3bQgQIECAAAECBAj0r4BAF+j9ewNX77sL9NVzet2fVT1C/sUvfrF+NLx6KvrSpUvrp7OffPLJ9dmzZ88uY8eOLY8++mj9SPryj6OOOqosWLCgTJ8+vVx77bX10+JXDu7q86rQ33rrrcvFF1/8sjmrv3t/pXAX6K97pQ4gQIAAAQIECBBIJCDQBXqG6yrQ+2hL119/fZk4cWI5//zz679Bv+eee+qns19wwQXlsMMOWxHo1VPWqxeQW/5x5JFHlkceeaTceuutrxro++67b/3oe/UI/aofHkHvowX7NgQIECBAgAABAo0WEOgCvdEX9P8fTqD30Zaqp5VPmjSpfPazn13xHasXgbvmmmvK/fff37anuK/64/kb9D5auG9DgAABAgQIECDQKAGBLtAbdSFfZRiB3kdbql5xvQry6lXYl3+cc8455YorrigPPvjgiheJmzBhQjnxxBPrT3n++efLxhtv/LIXiaui/uCDD64/Z+HChfVbrHmRuD5apG9DgAABAgQIECCQUkCgC/QMF1eg99GWqvc8/6//+q/678Srp7jffffdpfr78k9+8pN1gFcf1f9eHu0jRowoZ599drntttte9jZrN998c/02a0OHDq3fE/3JJ5/0Nmt9tEffhgABAgQIECBAIKeAQBfoGW6uQO+jLT3zzDPly1/+crnhhhvKE088Ub8QXPXq7aecckp5wxveUE9RvZBc9YJuVcQvWrSojBkzpkydOrWMHDlyxZRLliyp/5a9esG4xYsX16/qPm3atPqV2Vfnw1PcV0fJ5xAgQIAAAQIECHSagEAX6BnutEDPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0DPsKXAGQV6IKajCBAgQIAAAQIE0ggIdIGe4bIK9AxbCpxRoAdiOooAAQIECBAgQCCNgEAX6Bkuq0Dvwy09+uij5aSTTio/+tGPyuLFi8s222xTLrvssrLbbrvVUyxbtqycfvrp5ZJLLimLFi0qY8aMKVOnTi077rjjiimfe+65csIJJ5TrrruuPmOfffYp06ZNK5tvvvlq/SQCfbWYfBIBAgQIECBAgECHCQh0gZ7hSgv0PtpSFdyjRo0qe++9dznmmGPKxhtvXB5++OGy1VZbleHDh9dTnHvuueWss84qV155ZR3vZ555Zpk1a1Z54IEHyuDBg+vPqb72pptuqj9no402Kscff3x56qmnypw5c8qgQYN6/WkEeq9EPoEAAQIECBAgQKADBQS6QM9wrQV6H21p0qRJ5a677ip33HHHK37H6tHzzTbbrBx33HH1o+zVR/Vo+SabbFKH+9FHH12efvrpMmzYsHL11VeXQw45pP6cxx57rGyxxRbllltuKfvvv3+vP41A75XIJxAgQIAAAQIECHSggEAX6BmutUDvoy3tsMMOdUD/8Y9/LLfffnt561vfWj7zmc+UI488sp5g/vz59SPpc+fOrR9pX/5x4IEHlg022KBcddVVZebMmfVT2qtHzDfccMMVn7PzzjuXcePG1U+PX/Wjivzqf5Z/VIFeBX0V+0OGDOmjn963IUCAAAECBAgQINC/AgJdoPfvDVy97961gX7rrbeW9ddfv7z3ve+tpaq/9f72t79dqpCu/vPKAbx6lK/9Weuss079CV/4whfKxz72sfLzn/+8frT84osvLoceemiZPXt2GTt2bKn+Tr16JH35x1FHHVUWLFhQpk+fXq699tpyxBFH9Aju6vP222+/svXWW9dnrfpx2mmnvWK4C/SIrTqDAAECBAgQIEAgi4BAF+gZ7mrXBvpOO+1UP3X8b/7mb8qvf/3rsvvuu9fxXD1Kvf3225crrrgidH9veMMbyujRo+sQX/4xfvz48otf/KL85Cc/WRHo1VPWN9100xWfUz3C/sgjj5Tq/6HwaoG+77771o++X3TRRS+b2SPooWt0GAECBAgQIECAQFIBgS7QM1zdrg306tHz3/zmN/WLtFWPMlf/+fvf/379FPMq2h9//PHQ/W255ZalCulLL710xbnf+ta36heCqx41b9dT3Ff9IfwNeuhaHUaAAAECBAgQIJBEQKAL9AxXtWsDfejQoeXOO++sn9JePc29epp59XTy3//+9/V/99e//jV0fx//+MfrR8JXfpG4CRMmlJ/97Gf1o+fLXySu+u9OPPHE+ns///zz9au9r/oicddcc005+OCD689ZuHBh/RZrXiQudF0OI0CAAAECBAgQ6DABgS7QM1zprg30Aw44oA7g6u++zzjjjPK73/2ufuG2GTNmlGOPPbY8+OCDofurnsq+xx571H8PXsV19Tfo1dPXq/c8/8QnPlF/ryrEzznnnPrp9SNGjChnn312ue222172Nms333xz/TZr1f+ToXpP9CeffNLbrIVuy2EECBAgQIAAAQKdJiDQBXqGO921gf6HP/yhfhX16lHt6m/BP/WpT9X7qh7BXrp0afn6178evr8qrE8++eTy0EMP1S/qVv3N+/JXca++WfUoehXw1Yu9Ve+bPmbMmPoF60aOHLliliVLlpSJEyfWf4++ePHi+lXdp02bVr8y++p8eIr76ij5HAIECBAgQIAAgU4TEOgCPcOd7tpAz7Ccdswo0Nuh6kwCBAgQIECAAIGmCwh0gd70O1rN19WB/vDDD9dPJ6/+99e+9rX6772rV0uvHo3ecccdM+yv5RkFestkvoAAAQIECBAgQKADBAS6QM9wjbs20G+//fby4Q9/uP4b9FmzZpV58+aVt7/97eW8886r/z68ekX3TvwQ6J24VT8TAQIECBAgQIBAbwICXaD3dkea8O9dG+jvec97ysc+9rH678AHDx5c7r333jrQqxdzGzduXP3WZ534IdA7cat+JgIECBAgQIAAgd4EBLpA7+2ONOHfuzbQq/dB//Wvf12/WNvKgV69zdp2221Xqhdj68QPgd6JW/UzESBAgAABAgQI9CYg0AV6b3ekCf/etYFevXf4d7/73fqtz1YO9BtuuKF+67Lq79I78UOgd+JW/UwECBAgQIAAAQK9CQh0gd7bHWnCv3dtoJ944onlJz/5Sfne975XttlmmzJ37tzypz/9qRx66KH1/5x66qlN2E/4DAI9nNSBBAgQIECAAAECCQQEukBPcE2791XcX3jhhXL44YeX66+/vn7/8bXWWqt+//OPf/zj5corryyDBg3KsL+WZxToLZP5AgIECBAgQIAAgQ4QEOgCPcM17tpH0JcvZ/78+fWj5y+99FIZNWpUGTFiRIa9rfGMAn2N6XwhAQIECBAgQIBAYgGBLtAzXN+uD/QMS4qcUaBHajqLAAECBAgQIEAgi4BAF+gZ7mrXBvrf//3fl9GjR5dJkyb12NP5559fvw969bfpnfgh0Dtxq34mAgQIECBAgACB3gQEukDv7Y404d+7NtCHDRtWZs6cWXbaaacee6jeeu2DH/xg/YJxnfgh0Dtxq34mAgQIECBAgACB3gQEukDv7Y404d+7NtDXXXfdcs8995Rtt922xx7uv//++m/RFy9e3IT9hM8g0MNJHUiAAAECBAgQIJBAQKAL9ATXtHtfxX333Xcvf/d3f1dOOeWUHns67bTTyk033VTmzJmTYX8tzyjQWybzBQQIECBAgAABAh0gINAFeoZr3LWPoN94443loIMOqt9W7QMf+EC9qx//+Mfluuuuq//+fNy4cRn21/KMAr1lMl9AgAABAgQIECDQAQICXaBnuMZdG+jVcv7zP/+znH322fVT3aunvL/zne8sp556atlzzz0z7G6NZhToa8TmiwgQIECAAAECBJILCHSBnuEKd3WgZ1hQ9IwCPVrUeQQIECBAgAABAhkEBLpAz3BPuz7Qn3/++fLEE0+Ul156qce+3va2t2XYX8szCvSWyXwBAQIECBAgQIBABwgIdIGe4Rp3baA/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BAikERDoAj3DZe26QK+eyj5gwIDX3E317y+++GKG/bU8o0BvmcwXECBAgAABAgQIdICAQBfoGa5x1wX6f/zHf7zqXmbPnl2+8Y1vlOoF4xYvXpxhfy3PKNBbJvMFBAgQIECAAAECHSAg0AV6hmvcdYH+Sku5//77y8knn1xuuumm8olPfKKcccYZ5W1ve1uG/bU8o0BvmcwXECBAgAABAgQIdICAQBfoGa5xVwf6Y489Vk499dRy1VVXlf3337+cc845ZeTIkW3fW/V9vvjFL5bPf/7z5cILL6y/X/WoffXK8pdccklZtGhRGTNmTJk6dWrZcccdV8zz3HPPlRNOOKFcd9119SP8++yzT/2WcJtvvvlqzyzQV5vKJxIgQIAAAQIECHSQgEAX6Bmuc1cG+tNPP13OPvvs+unsu+yySzn33HPL+973vj7Z1y9+8Yty8MEHlyFDhpS99957RaBXM5x11lnlyiuvLNtss00588wzy6xZs8oDDzxQBg8eXM92zDHH1I/yV5+z0UYbleOPP7489dRTZc6cOWXQoEGrNb9AXy0mn0SAAAECBAgQINBhAgJdoGe40l0X6Oedd14d5G95y1vqSD/wwAP7bE/PPvts2XXXXetHvasAr/6fA9Uj6NWj55tttlk57rjjykknnVTPUz1avskmm9SzHn300aX6fypU79N+9dVXl0MOOaT+nOoZAFtssUW55ZZb6mcArM6HQF8dJZ9DgAABAgQIECDQaQICXaBnuNNdF+jVq7ivu+665YMf/OBrPur8gx/8IHx/hx12WBk6dGiZMmVK2WuvvVYE+vz588vw4cPL3Llzy6hRo1Z83+r/ebDBBhvUT8GfOXNm/ZT26hHzDTfccMXn7LzzzmXcuHH10+Nf6aMK/ep/ln9UgV5FfRX81aP4PggQIECAAAECBAh0g4BAF+gZ7nnXBfrhhx/e69usVYu74oorQvd3/fXX109hr57ivs466/QI9OrV48eOHVseffTR+pH05R9HHXVUWbBgQZk+fXq59tpryxFHHNEjtqvP22+//crWW29dLr744lec97TTTnvFeBfooet1GAECBAgQIECAQMMFBLpAb/gVrcfrukDvj6U88sgjZfTo0WXGjBmlesS7+lj5EfTlgV49ZX3TTTddMeKRRx5Zqq+99dZbXzXQ99133/rR94suuugVfzSPoPfHxn1PAgQIECBAgACBpgkIdIHetDv5SvMI9D7Y0g9/+MPy0Y9+tMdT6pcuXVo/kl895b56Ibh3vOMdbXmK+6o/nr9B74OF+xYECBAgQIAAAQKNExDoAr1xl/IVBhLofbClZ555pn6q+sof1dPVt9tuu/pF4aq3Uque2j5hwoRy4okn1p/2/PPPl4033vhlLxJ3zTXX1K8CX30sXLiwfos1LxLXB0v0LQgQIECAAAECBFILCHSBnuECC/R+2tLKT3GvRqherb16f/Tqb99HjBhRv8L8bbfd9rK3Wbv55pvrt1mrXmyuek/0J5980tus9dMOfVsCBAgQIECAAIE8AgJdoGe4rQK9n7a0aqBXb7VWvRJ79WJvixYtKmPGjClTp04tI0eOXDHhkiVLysSJE+u/R1+8eHH9qu7VW7ZVr8q+uh+e4r66Uj6PAAECBAgQIECgkwQEukDPcJ8FeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn2FLgjAI9ENNRBAgQIECAAAECaQQEukDPcFkFeoYtBc4o0AMxHUWAAAECBAgQIJBGQKAL9AyXVaBn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AnqGKlWco4BeEdNQBAgQIECAAAECaQQEdAE9Q7MK6BmqVHGOAnpFTEMRIECAAAECBAikERDQBfQMzSqgZ6hSxTkK6BUxDUWAAAECBAgQIJBGQEAX0DM0q4CeoUoV5yigV8Q0FAECBAgQIECAQBoBAV1Az9CsAvoyqtKxxx5bLrjggnLjjTeWFVdcsSxatKi8//3vL8985jPnZvDwww+XI488sixevLj8/Oc/LwsXLiwnnnhi2WyzzeYec//995d3vvOd5dxzzy333ntvefGLX1xOOumksu6667ZaEwG9FZMHESBAgAABAgQITJmAgC6gZ2hpAX0ZVemlL31pee1rX1u23nrr8uCDD5bDDz+8fOMb3yg33HBDWXnllZtZRGA/+uijy5lnnlk23njjctRRR5Wrrrqq3HTTTeVJT3pS85h99923XHLJJc1jFixYUN7xjneUu+66q1x33XVlhRVWGLk2AvpIIg8gQIAAAQIECBCYQgEBXUDP0NYC+mNUpZ/85CdlzTXXLFdeeWXZfvvtSxw9X3vttcuBBx5YDj300GZWcbT8KU95ShPc99lnn3LPPfeUJz/5yeXss88uu+++e/OYO+64o6y33nrlC1/4Qtlxxx1Hro2APpLIAwgQIECAAAECBKZQQEAX0DO0tYD+GFXp5ptvLhtttFFzFH3zzTcvt9xyS3n6059evva1r5UttthiblY777xzWW211cpZZ51VLr/88uaU9jhivvrqq8895tnPfnbZZZddmtPje5cI+fGfzhIBPQJ9hP1VVlnlMVp7L0uAAAECBAgQIEBg2QoI6AL6su24+b2agD4/t0f1rDhaHsE7rjO/+uqrm7Guvfbasu2225bbb7+9OZLeWd785jeXH/zgB+Wyyy4rn/70p8tee+21ROCOx+2www5lww03LKeeeuoj5nXEEUf0De4C+qMqoScTIECAAAECBAgkExDQBfQMLSugPwZVeutb31o+//nPl2uuuWbu5m6dgB6nrK+11lpzs9p7773LbbfdVi699NKBAf0lL3lJc/T9lFNOecTaOIL+GBTYSxIgQIAAAQIECEycgIAuoE9cU/aZkIC+jKu0//77l4suuqi5+Vsc9e4sS+sU997Vcw36Mi64lyNAgAABAgQIEJgIAQFdQJ+IRhwxCQF9GVUpTmuPcH7hhReWK664orn+vHvp3CTuoIMO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ECBA4FEKTFIgfpSrUv3ptx63U/Ux5zOgbDAftaX7HAF96fpWH/28884re+yxR4mQvu2225ZTTz21nH766eWGG24o66+//sjX8yYcSeQBBAgQIECAAIGxBCYpiE5K8AvASXIZq6DL4MGTUifZYBkUe8yXENDHBHusH75w4cKy5ZZblpNPPnluKptssknZZZddyrHHHjtyepP2JpykD+5J+aAcWUQPmBiBSerfQNHDE9MaAycyST2jXya/XyZthpPUv5NmYz4ExhWYlM/gScsG4zpO4+MF9ERVfeCBB8pKK61Uzj///LLrrrvOzfyAAw4o119/fbnyyisfsTb3339/if90lnvuuac50n7bbbeVVVZZ5TFf+83fc9ljPofOBL555I4TM5eYyCTZTBSMyQwUmKQe1r8adVwB/TuumMcTIJBZYFI+8yKgr7feeuXuu+8uq666ambSqZm7gJ6olHfccUdZZ511ype//OWyaNGiuZkfc8wx5ayzzio33XTTI9bmiCOOKEceeWSitTRVAgQIECBAgAABAgSWpUAcvFt33XWX5Ut6rQECAnqi1ugE9GuvvbZss802czM/+uijy3L0hxMAACAASURBVNlnn11uvPHGR6xN7xH0hx56qNx1111lwYIFZbnllku09qY6KQKdPa2TchbGpLiYx/wF9NT87TzzkQL6SVfUFtBTtUWNN0k99fDDD5df/OIXZe211y7LL7+84kyAgIA+AUVoO4X5nOLedmyPI9BWwLVKbaU8rq2Anmor5XFtBPRTGyWPGUdAT42j5bFtBPRUG6XZfYyAnqz2cZO4rbbaqrmLe2fZdNNNy84779zqJnHJVtd0J1DAl8oEFiX5lPRU8gJO2PT104QVZAqmo6emoIgTtgp6asIKMmHTEdAnrCCjptP5mbVTTjmlOc198eLF5bTTTivf+ta3ygYbbDDq6f6dwKMW8KXyqAkN0COgp7RETQH9VFPTWCGgp/RBbQE9VVt0usYT0BPWM46ef+ADHyh33nln2XzzzcuHP/zhsv322ydcE1POKBD3NYif9DvssMPKE57whIyrYM4TJqCnJqwgyaejn5IXcAKnr6cmsCjJp6SnkhdwKU9fQF/KwIYnQIAAAQIECBAgQIAAAQJtBAT0NkoeQ4AAAQIECBAgQIAAAQIElrKAgL6UgQ1PgAABAgQIECBAgAABAgTaCAjobZQ8hgABAgQIECBAgAABAgQILGUBAX0pAxueAAECBAgQIECAAAECBAi0ERDQ2yh5DIEZE4hfCjj++OObXwrYbLPNygknnFC22267vgoXXHBBOfnkk8v1119f4q6k8fgjjjii7LjjjjOmZnWHCYzTU93jfPnLXy7Pf/7zm1+siB6zEAiBcfspPpve+973lnPOOaf88Ic/LOuuu245/PDDyxve8AagBBqBcXvqb/7mb5pf1Pnud79bVl111fLSl760fPCDHywLFiwgOuMCV111VbMNdd111zXbURdeeGHZZZddhqpceeWV5e1vf3vzs8lrr712OeSQQ8pb3vKWGZec3dUX0Ge39tacQF+B8847r+yxxx7Nxsq2225bTj311HL66aeXG264oay//vqPeM6BBx7YfJm88IUvLKuttlo544wzmo2Ur371q2WLLbagTKCM21MdsnvuuadsueWW5RnPeEb50Y9+JKDrpUZgPv208847Nz101FFHNf304x//uDz44INl0aJFVAmM3VPXXHNNs+Mwfub2Fa94Rbn99tubMLXRRhs1Ycwy2wJf/OIXS+xcju+vV7/61SMD+ve///1mJ/Tee+9d9tlnn+a5++23Xzn33HOb51tmT0BAn72aW2MCQwUWLlzYfKnEUfHOsskmmzR7f+P3z9sscRR99913L+9+97vbPNxjplxgvj312te+ttngXWGFFcpFF10koE95n7RdvXH76dJLLy3RS7fccktZY4012r6Mx82QwLg9FTuh4zvye9/73pzSxz72seaI+m233TZDclZ1lMByyy03MqAfeuih5bOf/Wz59re/PTdc7PD5+te/Xr7yla+Megn/PoUCAvoUFtUqEZivwAMPPFBWWmmlcv7555ddd911bpgDDjigCUdxCtao5aGHHipPe9rTmtOz3va2t416uH+fcoH59lSciRFnccTGSRz1FNCnvFFart58+imORH3nO98pz3nOc8rZZ59dVl555fLKV76yvO997ysrrrhiy1f2sGkVmE9PXXvttc1ZY3G0/GUve1lzRsZuu+1WYmf2KaecMq1U1mseAm0C+vbbb9+ccfiRj3xk7hWit6Knfv3rX5fHP/7x83hlT8ksIKBnrp65E6gscMcdd5R11lmnOb2q+9TPY445ppx11lnlpptuGvmKcd3Vcccd1+wJXnPNNUc+3gOm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CEy6QAT0u+++u1x00UVzU917773L5z73uXLnnXc2R6Q333zzJpR/6lOfKptttlm58sory/33318OPvjg8rd/+7flv/7rv8pznvOc8uEPf7hsvfXWzTid58X/Puecc8oKK6zQfNG+733vK8stt1zzmEsvvbQcddRR5Zvf/Gbz77Gh8pGPfKQ8/elPbz1G74bRsP/ffbZAZ2VjYyZe84477ihPeMIT5gxe/epXN2cQxDr3Lv3GiT398ffYMPrt3/7tcvrppzdmb3nLW8oRRxwxN8SodR40dr9TIEeN1T3vYeMOqnG8Zhx9if90ljgis8suuzTr9PDDD5fjjz++nHLKKU2vbLzxxuWv/uqvSpyGOGz55S9/Wbbccsty0kknNfVvcynEqH5qM5fe3mjTw6Pq+Ytf/KKpcbx/YmfDIYccUi6++OIl1ukzn/lMs9F88803l5VWWqlsscUWzWP6naEyqE5rrbXW0PdbP++HHnqoqc9pp51WbrvttvKUpzyl7LPPPuXwww+fe3917Nv00rD1GGcdO3Mdtw/azHHYOo/yaNMP/T4Lf/WrXzWfbRdccEFzJk8c4bzkkkuW6IF+n0s1eqvNe3zc3hn1WTFs3m3eh729GjajLEaN22/OH/3oR5vPoziLavnlly/XX399896L+sT7IpZ4P8T317nnnjvyO637e633+7C3vtGru+++e/nYxz5WXve61z3i7Rm9Eq/9k5/8ZIl/G/U5N+h5L3/5y5ujzjfddNMjPlfi+z2C+7Cl3xH0Nn097D05rI/avJfjM/Of/umfylVXXbXE1Af9fegK+kcCBJYQcARdQxCYcIF+Af3P//zPy6c//eny05/+tAna1113XbMB+sY3vrEJZb/3e7/XnJYcG+URRDfYYIPygQ98oHz2s59tQsgaa6wx97x4Tjz33/7t38qb3/zm5khp7ACI5e///u+bsP6sZz2rxMbAu9/97uYauNiQig2qzmsPG2OcgH7PPfeUl73sZc0Oh/e+973NHGKDep111mlCzB//8R83f4v1jr/FRkQc3e1d+o3z5Cc/uTmN8N///d+b6+b+5E/+pHzlK19pQnscxXjJS17Sap0HjR07MHqXUX7djx827qAajwroEfRigzFqutFGGzUbUhFWY32f//znD+z8ODsjeiR26LQ98jSqF9rMpfe12vTwqHpGL//DP/xDc5pq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AQIECBAgQIAAgekXENCnv8bWkAABAgQIECBAgAABAgQSCAjoCYpkigQIECBAgAABAgQIECAw/QIC+vTX2BoSIECAAAECBAgQIECAQAIBAT1BkUyRAAECBAgQIECAAAECBKZfQECf/hpbQwIECBAgQIAAAQIECBBIICCgJyiSKRIgQIAAAQIECBAgQIDA9AsI6NNfY2tIgAABAgQIECBAgAABAgkEBPQERTJFAgQIECBAgAABAgQIEJh+AQF9+mtsDQkQIECAAAECBAgQIEAggYCAnqBIpkiAAAECBAgQIECAAAEC0y8goE9/ja0hAQIECBAgQIAAAQIECCQQENATFMkUCRAgQIAAAQIECBAgQGD6BQT06a+xNSRAgAABAgQIECBAgACBBAICeoIimSIBAgQIECBAgAABAgQITL+AgD79NbaGBAgQIECAAAECBAgQIJBAQEBPUCRTJECAAAECBAgQIECAAIHpFxDQp7/G1pAAAQIECBAgQIAAAQIEEggI6AmKZIoECBAgQIAAAQIECBAgMP0CAvr019gaEiBAgAABAgQIECBAgEACAQE9QZFMkQABAgQIECBAgAABAgSmX0BAn/4aW0MCBAgQIECAAAECBAgQSCAgoCcokikSIECAAAECBAgQIECAwPQLCOjTX2NrSIAAAQIECBAgQIAAAQIJBAT0BEUyRQIECBAgQIAAAQIECBCYfgEBffprbA0JECBAgAABf6U7zAAAAodJREFUAgQIECBAIIGAgJ6gSKZIgAABAgQIECBAgAABAtMvIKBPf42tIQECBAgQIECAAAECBAgkEBDQExTJFAkQIECAAAECBAgQIEBg+gUE9OmvsTUkQIAAAQIECBAgQIAAgQQCAnqCIpkiAQIECBAgQIAAAQIECEy/gIA+/TW2hgQIECBAgAABAgQIECCQQEBAT1AkUyRAgAABAgQIECBAgACB6RcQ0Ke/xtaQAAECBAgQIECAAAECBBIICOgJimSKBAgQIECAAAECBAgQIDD9AgL69NfYGhIgQIAAAQIECBAgQIBAAgEBPUGRTJEAAQIECBAgQIAAAQIEpl9AQJ/+GltDAgQIECBAgAABAgQIEEggIKAnKJIpEiBAgAABAgQIECBAgMD0Cwjo019ja0iAAAECBAgQIECAAAECCQQE9ARFMkUCBAgQIECAAAECBAgQmH4BAX36a2wNCRAgQIAAAQIECBAgQCCBgICeoEimSIAAAQIECBAgQIAAAQLTLyCgT3+NrSEBAgQIECBAgAABAgQIJBAQ0BMUyRQJECBAgAABAgQIECBAYPoFBPTpr7E1JECAAAECBAgQIECAAIEEAgJ6giKZIgECBAgQIECAAAECBAhMv4CAPv01toYECBAgQIAAAQIECBAgkEBAQE9QJFMkQIAAAQIECBAgQIAAgekXENCnv8bWkAABAgQIECBAgAABAgQSCAjoCYpkigQIECBAgAABAgQIECAw/QIC+vTX2BoSIECAAAECBAgQIECAQAIBAT1BkUyRAAECBAgQIECAAAECBKZfQECf/hpbQwIECBAgQIAAAQIECBBIICCgJyiSKRIgQIAAAQIECBAgQIDA9Av8P0B+Z9oLlj0/AAAAAElFTkSuQmCC\" width=\"1000\">"
Danilo Ferreira de Lima
committed
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
Danilo Ferreira de Lima
committed
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(10, 10))\n",
"plt.hist(probs_4[:, 4], bins=20)\n",
"ax.set(xlabel=r\"Probability that a true 4 belongs to class 4 according to the network (p(C$_4$|data))\",\n",
" ylabel=\"Number of occurences\",\n",
" title=\"\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "bff1f8db",
"metadata": {},
"source": [
"### Contact us at the EuXFEL Data Analysis group at any time if you need help analysing your data!\n",
"\n",
Danilo Ferreira de Lima
committed
"#### Data Analysis group: da@xfel.eu"
{
"cell_type": "code",
"execution_count": null,
"id": "0879d703",
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
"metadata": {},
"outputs": [],
"source": []
}
],
"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",
Danilo Ferreira de Lima
committed
"version": "3.6.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}