No OneTemporary

File Metadata

Created
Sun, May 5, 1:11 PM
This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 88e740fb..6ca44d6e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,123 +1,131 @@
project(cantor)
cmake_minimum_required (VERSION 3.5 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "19")
set (KDE_APPLICATIONS_VERSION_MINOR "11")
set (KDE_APPLICATIONS_VERSION_MICRO "70")
set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(KF5_MIN_VERSION "5.49.0")
find_package(ECM 5.15.0 REQUIRED CONFIG)
set(CMAKE_MODULE_PATH ${cantor_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package(Qt5 5.6.0 CONFIG REQUIRED
Core
Widgets
PrintSupport
Svg
Xml
XmlPatterns
+ Network
Test)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED
Config
Crash
Completion
DocTools
NewStuff
IconThemes
TextEditor
CoreAddons
Archive
Parts
SyntaxHighlighting
TextWidgets
KIO
XmlGui
I18n)
+find_package(Poppler "0.62.0" REQUIRED COMPONENTS Qt5)
+
+
if(NOT WIN32)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED Pty)
endif()
include(FeatureSummary)
include(ECMInstallIcons)
include(ECMSetupVersion)
include(KDEInstallDirs)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings)
include(ECMAddAppIcon)
include(GenerateExportHeader)
+include(thirdparty/CMakeLists.txt)
+
if(NOT WIN32)
set_package_properties(LibSpectre PROPERTIES DESCRIPTION "A PostScript rendering library"
URL "http://libspectre.freedesktop.org/wiki/"
TYPE OPTIONAL
PURPOSE "Support for rendering EPS files in Cantor")
find_package(LibSpectre)
if(LIBSPECTRE_FOUND)
set(WITH_EPS On)
else(LIBSPECTRE_FOUND)
set(WITH_EPS Off)
endif(LIBSPECTRE_FOUND)
else(NOT WIN32)
set(WITH_EPS Off)
endif(NOT WIN32)
+#[[
find_package(Discount 2.2.0)
set_package_properties(Discount PROPERTIES DESCRIPTION "A C implementation of the Markdown markup language"
URL "https://www.pell.portland.or.us/~orc/Code/discount/"
TYPE OPTIONAL
PURPOSE "Used for Markdown entries in Cantor")
+]]#
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_NAME)
if (BUILD_NAME STREQUAL "release" OR BUILD_NAME STREQUAL "")
add_definitions(-DQT_NO_DEBUG_OUTPUT)
endif()
kde_enable_exceptions()
add_subdirectory(doc)
add_subdirectory(src)
add_subdirectory(icons)
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/Cantor")
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/CantorConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/CantorConfig.cmake
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}/
#PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR
)
ecm_setup_version(${KDE_APPLICATIONS_VERSION}
VARIABLE_PREFIX CANTOR
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/cantor_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/CantorConfigVersion.cmake"
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/CantorConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/CantorConfigVersion.cmake
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
COMPONENT Devel
)
install(EXPORT CantorTargets
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
FILE CantorTargets.cmake
NAMESPACE Cantor::
)
install(FILES org.kde.cantor.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 07db45bd..4a7e41d6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,105 +1,114 @@
#########################################################################
# Subdirectories
#########################################################################
add_subdirectory(lib)
add_subdirectory(scripteditor)
include_directories( lib ${CMAKE_CURRENT_BINARY_DIR}/lib)
if(BUILD_TESTING)
include(ECMMarkAsTest)
include_directories( lib/test )
endif(BUILD_TESTING)
add_subdirectory(backends)
add_subdirectory(assistants)
add_subdirectory(xslt)
add_subdirectory(panelplugins)
#build the config object in a separate library, shared between shell and part
kconfig_add_kcfg_files(config_SRCS settings.kcfgc)
add_library( cantor_config SHARED ${config_SRCS} )
target_link_libraries( cantor_config KF5::Parts KF5::NewStuff )
install( TARGETS cantor_config ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
set(cantor_SRCS
main.cpp
cantor.cpp
backendchoosedialog.cpp
)
install(FILES cantor.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
ki18n_wrap_ui(cantor_SRCS settings.ui)
ki18n_wrap_ui(cantor_SRCS backendchooser.ui)
file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/*-apps-cantor.png")
ecm_add_app_icon(cantor_SRCS ICONS ${ICONS_SRCS})
add_executable(cantor ${cantor_SRCS})
target_link_libraries(cantor KF5::Parts KF5::NewStuff KF5::ConfigCore KF5::CoreAddons KF5::ConfigGui
KF5::Crash KF5::XmlGui cantorlibs cantor_config)
########### install files ###############
install(TARGETS cantor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
install( PROGRAMS org.kde.cantor.desktop DESTINATION ${KDE_INSTALL_APPDIR} )
install( FILES cantor_shell.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/cantor )
install( FILES cantor.knsrc DESTINATION ${KDE_INSTALL_CONFDIR} )
#########################################################################
# KPART SECTION
#########################################################################
set(cantor_PART_SRCS
cantor_part.cpp
worksheet.cpp
worksheetview.cpp
worksheetentry.cpp
worksheettextitem.cpp
worksheetimageitem.cpp
commandentry.cpp
textentry.cpp
markdownentry.cpp
pagebreakentry.cpp
imageentry.cpp
latexentry.cpp
placeholderentry.cpp
worksheetcursor.cpp
searchbar.cpp
actionbar.cpp
worksheettoolbutton.cpp
imagesettingsdialog.cpp
scripteditor/scripteditorwidget.cpp
resultitem.cpp
textresultitem.cpp
imageresultitem.cpp
animationresultitem.cpp
loadedexpression.cpp
animation.cpp
+ jupyterutils.cpp
+ mathrender.cpp
+ mathrendertask.cpp
+ extended_document.cpp
)
ki18n_wrap_ui(cantor_PART_SRCS imagesettings.ui)
ki18n_wrap_ui(cantor_PART_SRCS standardsearchbar.ui)
ki18n_wrap_ui(cantor_PART_SRCS extendedsearchbar.ui)
string(CONCAT PATH_TO_CANTOR_BACKENDS ${CMAKE_INSTALL_PREFIX} "/${PLUGIN_INSTALL_DIR}")
configure_file (config-cantor.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-cantor.h )
kcoreaddons_add_plugin(cantorpart
SOURCES ${cantor_PART_SRCS}
JSON "cantor_part.json"
INSTALL_NAMESPACE ".")
set_target_properties(cantorpart PROPERTIES PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}")
target_link_libraries(cantorpart KF5::Parts KF5::NewStuff
KF5::TextEditor ${Qt5XmlPatterns_LIBRARIES}
KF5::KIOCore KF5::KIOFileWidgets KF5::KIOWidgets
- Qt5::PrintSupport cantorlibs cantor_config )
+ Qt5::PrintSupport Poppler::Qt5 cantorlibs cantor_config )
+
if(Discount_FOUND)
target_link_libraries(cantorpart Discount::Lib)
endif(Discount_FOUND)
+if(BUILD_TESTING)
+ add_subdirectory(test)
+endif(BUILD_TESTING)
+
install( FILES cantor_part.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/cantor )
install( FILES cantor_scripteditor.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/cantor )
diff --git a/src/backends/python/pythonexpression.cpp b/src/backends/python/pythonexpression.cpp
index a89ba7ca..73b7e778 100644
--- a/src/backends/python/pythonexpression.cpp
+++ b/src/backends/python/pythonexpression.cpp
@@ -1,159 +1,163 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Filipe Saraiva <filipe@kde.org>
*/
#include "pythonexpression.h"
#include <config-cantorlib.h>
#include "textresult.h"
#include "imageresult.h"
#include "helpresult.h"
#include <QDebug>
#include <KIconLoader>
#include <QFile>
#include "pythonsession.h"
#include "settings.h"
#include <QDir>
#include <QFileSystemWatcher>
#include <QTemporaryFile>
PythonExpression::PythonExpression(Cantor::Session* session, bool internal) : Cantor::Expression(session, internal),
m_tempFile(nullptr)
{
}
PythonExpression::~PythonExpression() {
if(m_tempFile)
delete m_tempFile;
}
void PythonExpression::evaluate()
{
if(m_tempFile) {
delete m_tempFile;
m_tempFile = nullptr;
}
session()->enqueueExpression(this);
}
QString PythonExpression::internalCommand()
{
QString cmd = command();
PythonSession* pythonSession = static_cast<PythonSession*>(session());
if((pythonSession->integratePlots()) && (command().contains(QLatin1String("show()")))){
m_tempFile = new QTemporaryFile(QDir::tempPath() + QLatin1String("/cantor_python-XXXXXX.png"));
m_tempFile->open();
QString saveFigCommand = QLatin1String("savefig('%1')");
cmd.replace(QLatin1String("show()"), saveFigCommand.arg(m_tempFile->fileName()));
QFileSystemWatcher* watcher = fileWatcher();
watcher->removePaths(watcher->files());
watcher->addPath(m_tempFile->fileName());
connect(watcher, &QFileSystemWatcher::fileChanged, this, &PythonExpression::imageChanged, Qt::UniqueConnection);
}
QStringList commandLine = cmd.split(QLatin1String("\n"));
QString commandProcessing;
for(const QString& command : commandLine){
const QString firstLineWord = command.trimmed().replace(QLatin1String("("), QLatin1String(" "))
.split(QLatin1String(" ")).at(0);
// Ignore comments
if (firstLineWord.length() != 0 && firstLineWord[0] == QLatin1Char('#')){
commandProcessing += command + QLatin1String("\n");
continue;
}
if(firstLineWord.contains(QLatin1String("execfile"))){
commandProcessing += command;
continue;
}
commandProcessing += command + QLatin1String("\n");
}
return commandProcessing;
}
void PythonExpression::parseOutput(QString output)
{
qDebug() << "expression output: " << output;
if(command().simplified().startsWith(QLatin1String("help("))){
setResult(new Cantor::HelpResult(output.remove(output.lastIndexOf(QLatin1String("None")), 4)));
} else {
if (!output.isEmpty())
addResult(new Cantor::TextResult(output));
}
if (m_tempFile == nullptr || result() != nullptr) // not plot expression
setStatus(Cantor::Expression::Done);
}
void PythonExpression::parseError(QString error)
{
qDebug() << "expression error: " << error;
setErrorMessage(error);
setStatus(Cantor::Expression::Error);
}
void PythonExpression::parseWarning(QString warning)
{
if (!warning.isEmpty())
- addResult(new Cantor::TextResult(warning));
+ {
+ Cantor::TextResult* result = new Cantor::TextResult(warning);
+ result->setStdErr(true);
+ addResult(result);
+ }
}
void PythonExpression::imageChanged()
{
if(m_tempFile->size() <= 0)
return;
Cantor::ImageResult* newResult = new Cantor::ImageResult(QUrl::fromLocalFile(m_tempFile->fileName()));
if (result() == nullptr)
setResult(newResult);
else
{
bool found = false;
for (int i = 0; i < results().size(); i++)
if (results()[i]->type() == newResult->type())
{
replaceResult(i, newResult);
found = true;
}
if (!found)
addResult(newResult);
}
setStatus(Done);
}
void PythonExpression::interrupt()
{
qDebug()<<"interruptinging command";
setStatus(Cantor::Expression::Interrupted);
}
diff --git a/src/cantor.cpp b/src/cantor.cpp
index 8d4c3450..f3a51124 100644
--- a/src/cantor.cpp
+++ b/src/cantor.cpp
@@ -1,705 +1,705 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "cantor.h"
#include <KActionCollection>
#include <KConfigDialog>
#include <KConfigGroup>
#include <KMessageBox>
#include <KShortcutsDialog>
#include <KStandardAction>
#include <KNS3/DownloadDialog>
#include <KParts/ReadWritePart>
#include <KRecentFilesAction>
#include <QApplication>
#include <QCloseEvent>
#include <QDebug>
#include <QDockWidget>
#include <QDir>
#include <QFileDialog>
#include <QPushButton>
#include <QGraphicsView>
#include "lib/backend.h"
#include "lib/panelpluginhandler.h"
#include "lib/panelplugin.h"
#include "lib/worksheetaccess.h"
#include "settings.h"
#include "ui_settings.h"
#include "backendchoosedialog.h"
CantorShell::CantorShell() : KParts::MainWindow(), m_part(nullptr)
{
// set the shell's ui resource file
setXMLFile(QLatin1String("cantor_shell.rc"));
// then, setup our actions
setupActions();
createGUI(nullptr);
m_tabWidget=new QTabWidget(this);
m_tabWidget->setTabsClosable(true);
m_tabWidget->setMovable(true);
m_tabWidget->setDocumentMode(true);
setCentralWidget(m_tabWidget);
connect(m_tabWidget, SIGNAL(currentChanged(int)), this, SLOT(activateWorksheet(int)));
connect(m_tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));
// apply the saved mainwindow settings, if any, and ask the mainwindow
// to automatically save settings if changed: window size, toolbar
// position, icon size, etc.
setAutoSaveSettings();
setDockOptions(QMainWindow::AnimatedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::VerticalTabs);
updateNewSubmenu();
}
CantorShell::~CantorShell()
{
if (m_recentProjectsAction)
m_recentProjectsAction->saveEntries(KSharedConfig::openConfig()->group(QLatin1String("Recent Files")));
if (!m_newBackendActions.isEmpty())
{
unplugActionList(QLatin1String("new_worksheet_with_backend_list"));
qDeleteAll(m_newBackendActions);
m_newBackendActions.clear();
}
unplugActionList(QLatin1String("view_show_panel_list"));
qDeleteAll(m_panels);
m_panels.clear();
}
void CantorShell::load(const QUrl &url)
{
if (!m_part||!m_part->url().isEmpty() || m_part->isModified() )
{
addWorksheet(QLatin1String("null"));
m_tabWidget->setCurrentIndex(m_parts.size()-1);
}
if (!m_part->openUrl( url ))
closeTab(m_tabWidget->currentIndex());
if (m_recentProjectsAction)
m_recentProjectsAction->addUrl(url);
}
bool CantorShell::hasAvailableBackend()
{
bool hasBackend=false;
foreach(Cantor::Backend* b, Cantor::Backend::availableBackends())
{
if(b->isEnabled())
hasBackend=true;
}
return hasBackend;
}
void CantorShell::setupActions()
{
QAction* openNew = KStandardAction::openNew(this, SLOT(fileNew()), actionCollection());
openNew->setPriority(QAction::LowPriority);
QAction* open = KStandardAction::open(this, SLOT(fileOpen()), actionCollection());
open->setPriority(QAction::LowPriority);
m_recentProjectsAction = KStandardAction::openRecent(this, &CantorShell::load, actionCollection());
m_recentProjectsAction->setPriority(QAction::LowPriority);
m_recentProjectsAction->loadEntries(KSharedConfig::openConfig()->group(QLatin1String("Recent Files")));
KStandardAction::close (this, SLOT(closeTab()), actionCollection());
KStandardAction::quit(qApp, SLOT(closeAllWindows()), actionCollection());
createStandardStatusBarAction();
//setStandardToolBarMenuEnabled(true);
KStandardAction::keyBindings(this, SLOT(optionsConfigureKeys()), actionCollection());
KStandardAction::configureToolbars(this, SLOT(configureToolbars()), actionCollection());
KStandardAction::preferences(this, SLOT(showSettings()), actionCollection());
QAction * downloadExamples = new QAction(i18n("Download Example Worksheets"), actionCollection());
downloadExamples->setIcon(QIcon::fromTheme(QLatin1String("get-hot-new-stuff")));
actionCollection()->addAction(QLatin1String("file_example_download"), downloadExamples);
connect(downloadExamples, SIGNAL(triggered()), this, SLOT(downloadExamples()));
QAction * openExample =new QAction(i18n("&Open Example"), actionCollection());
openExample->setIcon(QIcon::fromTheme(QLatin1String("document-open")));
actionCollection()->addAction(QLatin1String("file_example_open"), openExample);
connect(openExample, SIGNAL(triggered()), this, SLOT(openExample()));
QAction* toPreviousTab = new QAction(i18n("Go to previous worksheet"), actionCollection());
actionCollection()->addAction(QLatin1String("go_to_previous_tab"), toPreviousTab);
actionCollection()->setDefaultShortcut(toPreviousTab, Qt::CTRL+Qt::Key_PageDown);
connect(toPreviousTab, &QAction::triggered, toPreviousTab, [this](){
const int index = m_tabWidget->currentIndex()-1;
if (index >= 0)
m_tabWidget->setCurrentIndex(index);
else
m_tabWidget->setCurrentIndex(m_tabWidget->count()-1);
});
addAction(toPreviousTab);
QAction* toNextTab = new QAction(i18n("Go to next worksheet"), actionCollection());
actionCollection()->addAction(QLatin1String("go_to_next_tab"), toNextTab);
actionCollection()->setDefaultShortcut(toNextTab, Qt::CTRL+Qt::Key_PageUp);
connect(toNextTab, &QAction::triggered, toNextTab, [this](){
const int index = m_tabWidget->currentIndex()+1;
if (index < m_tabWidget->count())
m_tabWidget->setCurrentIndex(index);
else
m_tabWidget->setCurrentIndex(0);
});
addAction(toNextTab);
}
void CantorShell::saveProperties(KConfigGroup & /*config*/)
{
// the 'config' object points to the session managed
// config file. anything you write here will be available
// later when this app is restored
}
void CantorShell::readProperties(const KConfigGroup & /*config*/)
{
// the 'config' object points to the session managed
// config file. this function is automatically called whenever
// the app is being restored. read in here whatever you wrote
// in 'saveProperties'
}
void CantorShell::fileNew()
{
if (sender()->inherits("QAction"))
{
QAction * a = qobject_cast<QAction*>(sender());
QString backendName = a->data().toString();
if (!backendName.isEmpty())
{
addWorksheet(backendName);
return;
}
}
addWorksheet();
}
void CantorShell::optionsConfigureKeys()
{
KShortcutsDialog dlg( KShortcutsEditor::AllActions, KShortcutsEditor::LetterShortcutsDisallowed, this );
dlg.addCollection( actionCollection(), i18n("Cantor") );
if (m_part)
dlg.addCollection( m_part->actionCollection(), i18n("Cantor") );
dlg.configure( true );
}
void CantorShell::fileOpen()
{
// this slot is called whenever the File->Open menu is selected,
// the Open shortcut is pressed (usually CTRL+O) or the Open toolbar
// button is clicked
- QUrl url = QFileDialog::getOpenFileUrl(this, i18n("Open file"), QUrl(), i18n("Cantor Worksheet (*.cws)"));
+ QUrl url = QFileDialog::getOpenFileUrl(this, i18n("Open file"), QUrl(), i18n("Cantor Worksheet (*.cws)") + QLatin1String(";;") + i18n("Jupyter Notebook (*.ipynb)"));
if (url.isEmpty() == false)
{
// About this function, the style guide (
// http://developer.kde.org/documentation/standards/kde/style/basics/index.html )
// says that it should open a new window if the document is _not_
// in its initial state. This is what we do here..
/*if ( m_part->url().isEmpty() && ! m_part->isModified() )
{
// we open the file in this window...
load( url );
}
else
{
// we open the file in a new window...
CantorShell* newWin = new CantorShell;
newWin->load( url );
newWin->show();
}*/
load( url );
}
}
void CantorShell::addWorksheet()
{
if(hasAvailableBackend()) //There is no point in asking for the backend, if no one is available
{
QString backend = Settings::self()->defaultBackend();
if (backend.isEmpty())
{
QPointer<BackendChooseDialog> dlg=new BackendChooseDialog(this);
if(dlg->exec())
{
backend = dlg->backendName();
addWorksheet(backend);
}
delete dlg;
}
else
{
addWorksheet(backend);
}
}else
{
QTextBrowser *browser=new QTextBrowser(this);
QString backendList=QLatin1String("<ul>");
int backendListSize = 0;
foreach(Cantor::Backend* b, Cantor::Backend::availableBackends())
{
if(!b->requirementsFullfilled()) //It's disabled because of misssing dependencies, not because of some other reason(like eg. nullbackend)
{
backendList+=QString::fromLatin1("<li>%1: <a href=\"%2\">%2</a></li>").arg(b->name(), b->url());
++backendListSize;
}
}
browser->setHtml(i18np("<h1>No Backend Found</h1>\n" \
"<div>You could try:\n" \
" <ul>" \
" <li>Changing the settings in the config dialog;</li>" \
" <li>Installing packages for the following program:</li>" \
" %2 " \
" </ul> " \
"</div> "
, "<h1>No Backend Found</h1>\n" \
"<div>You could try:\n" \
" <ul>" \
" <li>Changing the settings in the config dialog;</li>" \
" <li>Installing packages for one of the following programs:</li>" \
" %2 " \
" </ul> " \
"</div> "
, backendListSize, backendList
));
browser->setObjectName(QLatin1String("ErrorMessage"));
m_tabWidget->addTab(browser, i18n("Error"));
}
}
void CantorShell::addWorksheet(const QString& backendName)
{
static int sessionCount=1;
// this routine will find and load our Part. it finds the Part by
// name which is a bad idea usually.. but it's alright in this
// case since our Part is made for this Shell
KPluginLoader loader(QLatin1String("cantorpart"));
KPluginFactory* factory = loader.factory();
if (factory)
{
Cantor::Backend* backend = Cantor::Backend::getBackend(backendName);
if (backend)
{
if (backend->isEnabled() || backendName == QLatin1String("null"))
{
// now that the Part is loaded, we cast it to a Part to get our hands on it
KParts::ReadWritePart* part = factory->create<KParts::ReadWritePart>(m_tabWidget, QVariantList()<<backendName);
if (part)
{
connect(part, SIGNAL(setCaption(QString,QIcon)), this, SLOT(setTabCaption(QString,QIcon)));
connect(part, SIGNAL(worksheetSave(QUrl)), this, SLOT(onWorksheetSave(QUrl)));
m_parts.append(part);
int tab = m_tabWidget->addTab(part->widget(), QIcon::fromTheme(backend->icon()), i18n("Session %1", sessionCount++));
m_tabWidget->setCurrentIndex(tab);
// Setting focus on worksheet view, because Qt clear focus of added widget inside addTab
// This fix https://bugs.kde.org/show_bug.cgi?id=395976
part->widget()->findChild<QGraphicsView*>()->setFocus();
}
else
{
qDebug()<<"error creating part ";
}
}
else
{
KMessageBox::error(this, i18n("%1 backend installed, but inactive. Please check installation and Cantor settings", backendName), i18n("Cantor"));
}
}
else
KMessageBox::error(this, i18n("Backend %1 is not installed", backendName), i18n("Cantor"));
}
else
{
// if we couldn't find our Part, we exit since the Shell by
// itself can't do anything useful
KMessageBox::error(this, i18n("Failed to find the Cantor Part with error %1", loader.errorString()));
qApp->quit();
// we return here, cause qApp->quit() only means "exit the
// next time we enter the event loop...
return;
}
}
void CantorShell::activateWorksheet(int index)
{
QObject* pluginHandler=m_part->findChild<QObject*>(QLatin1String("PanelPluginHandler"));
if (pluginHandler)
disconnect(pluginHandler,SIGNAL(pluginsChanged()), this, SLOT(updatePanel()));
// Save part state before change worksheet
if (m_part)
{
QStringList visiblePanelNames;
foreach (QDockWidget* doc, m_panels)
{
if (doc->widget() && doc->widget()->isVisible())
visiblePanelNames << doc->objectName();
}
m_pluginsVisibility[m_part] = visiblePanelNames;
}
m_part=findPart(m_tabWidget->widget(index));
if(m_part)
{
createGUI(m_part);
QObject* pluginHandler=m_part->findChild<QObject*>(QLatin1String("PanelPluginHandler"));
connect(pluginHandler, SIGNAL(pluginsChanged()), this, SLOT(updatePanel()));
updatePanel();
}
else
qDebug()<<"selected part doesn't exist";
m_tabWidget->setCurrentIndex(index);
}
void CantorShell::setTabCaption(const QString& caption, const QIcon& icon)
{
if (caption.isEmpty()) return;
KParts::ReadWritePart* part=dynamic_cast<KParts::ReadWritePart*>(sender());
m_tabWidget->setTabText(m_tabWidget->indexOf(part->widget()), caption);
m_tabWidget->setTabIcon(m_tabWidget->indexOf(part->widget()), icon);
}
void CantorShell::closeTab(int index)
{
if (!reallyClose(false))
{
return;
}
QWidget* widget = nullptr;
if (index >= 0)
{
widget = m_tabWidget->widget(index);
}
else if (m_part)
{
widget = m_part->widget();
}
if (!widget)
{
qWarning() << "Could not find widget by tab index" << index;
return;
}
m_tabWidget->removeTab(index);
if(widget->objectName()==QLatin1String("ErrorMessage"))
{
widget->deleteLater();
}else
{
KParts::ReadWritePart* part= findPart(widget);
if(part)
{
m_parts.removeAll(part);
m_pluginsVisibility.remove(part);
delete part;
}
}
if (m_tabWidget->count() == 0)
setCaption(QString());
updatePanel();
}
bool CantorShell::reallyClose(bool checkAllParts) {
if(checkAllParts && m_parts.count() > 1) {
bool modified = false;
foreach( KParts::ReadWritePart* const part, m_parts)
{
if(part->isModified()) {
modified = true;
break;
}
}
if(!modified) return true;
int want_save = KMessageBox::warningYesNo( this,
i18n("Multiple unsaved Worksheets are opened. Do you want to close them?"),
i18n("Close Cantor"));
switch (want_save) {
case KMessageBox::Yes:
return true;
case KMessageBox::No:
return false;
}
}
if (m_part && m_part->isModified() ) {
int want_save = KMessageBox::warningYesNoCancel( this,
i18n("The current project has been modified. Do you want to save it?"),
i18n("Save Project"));
switch (want_save) {
case KMessageBox::Yes:
m_part->save();
if(m_part->waitSaveComplete()) {
return true;
} else {
m_part->setModified(true);
return false;
}
case KMessageBox::Cancel:
return false;
case KMessageBox::No:
return true;
}
}
return true;
}
void CantorShell::closeEvent(QCloseEvent* event) {
if(!reallyClose()) {
event->ignore();
} else {
KParts::MainWindow::closeEvent(event);
}
}
void CantorShell::showSettings()
{
KConfigDialog *dialog = new KConfigDialog(this, QLatin1String("settings"), Settings::self());
QWidget *generalSettings = new QWidget;
Ui::SettingsBase base;
base.setupUi(generalSettings);
base.kcfg_DefaultBackend->addItems(Cantor::Backend::listAvailableBackends());
dialog->addPage(generalSettings, i18n("General"), QLatin1String("preferences-other"));
foreach(Cantor::Backend* backend, Cantor::Backend::availableBackends())
{
if (backend->config()) //It has something to configure, so add it to the dialog
dialog->addPage(backend->settingsWidget(dialog), backend->config(), backend->name(), backend->icon());
}
dialog->show();
}
void CantorShell::downloadExamples()
{
KNS3::DownloadDialog dialog;
dialog.exec();
foreach (const KNS3::Entry& e, dialog.changedEntries())
{
qDebug() << "Changed Entry: " << e.name();
}
}
void CantorShell::openExample()
{
QString dir = QStandardPaths::writableLocation(QStandardPaths::DataLocation) + QLatin1String("/examples");
if (dir.isEmpty()) return;
QDir().mkpath(dir);
QStringList files=QDir(dir).entryList(QDir::Files);
QPointer<QDialog> dlg=new QDialog(this);
QListWidget* list=new QListWidget(dlg);
foreach(const QString& file, files)
{
QString name=file;
name.remove(QRegExp(QLatin1String("-.*\\.hotstuff-access$")));
list->addItem(name);
}
QVBoxLayout *mainLayout = new QVBoxLayout;
dlg->setLayout(mainLayout);
mainLayout->addWidget(list);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
mainLayout->addWidget(buttonBox);
buttonBox->button(QDialogButtonBox::Ok)->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogOkButton));
buttonBox->button(QDialogButtonBox::Cancel)->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton));
connect(buttonBox, SIGNAL(accepted()), dlg, SLOT(accept()) );
connect(buttonBox, SIGNAL(rejected()), dlg, SLOT(reject()) );
if (dlg->exec()==QDialog::Accepted&&list->currentRow()>=0)
{
const QString& selectedFile=files[list->currentRow()];
QUrl url = QUrl::fromLocalFile(QDir(dir).absoluteFilePath(selectedFile));
qDebug()<<"loading file "<<url;
load(url);
}
delete dlg;
}
KParts::ReadWritePart* CantorShell::findPart(QWidget* widget)
{
foreach( KParts::ReadWritePart* const part, m_parts)
{
if(part->widget()==widget)
return part;
}
return nullptr;
}
void CantorShell::updatePanel()
{
unplugActionList(QLatin1String("view_show_panel_list"));
//remove all of the previous panels (but do not delete the widgets)
foreach(QDockWidget* dock, m_panels)
{
QWidget* widget=dock->widget();
if(widget!=nullptr)
{
widget->setParent(this);
widget->hide();
}
dock->deleteLater();
}
m_panels.clear();
QList<QAction*> panelActions;
Cantor::PanelPluginHandler* handler=m_part->findChild<Cantor::PanelPluginHandler*>(QLatin1String("PanelPluginHandler"));
if(!handler)
{
qDebug()<<"no PanelPluginHandle found for this part";
return;
}
QDockWidget* last=nullptr;
QList<Cantor::PanelPlugin*> plugins=handler->plugins();
const bool isNewWorksheet = !m_pluginsVisibility.contains(m_part);
foreach(Cantor::PanelPlugin* plugin, plugins)
{
if(plugin==nullptr)
{
qDebug()<<"somethings wrong";
continue;
}
qDebug()<<"adding panel for "<<plugin->name();
plugin->setParentWidget(this);
QDockWidget* docker=new QDockWidget(plugin->name(), this);
docker->setObjectName(plugin->name());
docker->setWidget(plugin->widget());
addDockWidget ( Qt::RightDockWidgetArea, docker );
// Set visibility for dock from saved info
if (isNewWorksheet)
{
if (plugin->showOnStartup())
docker->show();
else
docker->hide();
}
else
{
if (m_pluginsVisibility[m_part].contains(plugin->name()))
docker->show();
else
docker->hide();
}
if(last!=nullptr)
tabifyDockWidget(last, docker);
last=docker;
connect(plugin, &Cantor::PanelPlugin::visibilityRequested, this, &CantorShell::pluginVisibilityRequested);
m_panels.append(docker);
//Create the action to show/hide this panel
panelActions<<docker->toggleViewAction();
}
plugActionList(QLatin1String("view_show_panel_list"), panelActions);
updateNewSubmenu();
}
void CantorShell::updateNewSubmenu()
{
unplugActionList(QLatin1String("new_worksheet_with_backend_list"));
qDeleteAll(m_newBackendActions);
m_newBackendActions.clear();
foreach (Cantor::Backend* backend, Cantor::Backend::availableBackends())
{
if (!backend->isEnabled())
continue;
QAction * action = new QAction(QIcon::fromTheme(backend->icon()), backend->name(), nullptr);
action->setData(backend->name());
connect(action, SIGNAL(triggered()), this, SLOT(fileNew()));
m_newBackendActions << action;
}
plugActionList(QLatin1String("new_worksheet_with_backend_list"), m_newBackendActions);
}
Cantor::WorksheetAccessInterface* CantorShell::currentWorksheetAccessInterface()
{
Cantor::WorksheetAccessInterface* wa=m_part->findChild<Cantor::WorksheetAccessInterface*>(Cantor::WorksheetAccessInterface::Name);
if (!wa)
qDebug()<<"failed to access worksheet access interface for current part";
return wa;
}
void CantorShell::pluginVisibilityRequested()
{
Cantor::PanelPlugin* plugin = static_cast<Cantor::PanelPlugin*>(sender());
for (QDockWidget* docker: m_panels)
{
if (plugin->name() == docker->windowTitle())
{
if (docker->isHidden())
docker->show();
docker->raise();
}
}
}
void CantorShell::onWorksheetSave(const QUrl& url)
{
if (m_recentProjectsAction)
m_recentProjectsAction->addUrl(url);
}
diff --git a/src/cantor.kcfg b/src/cantor.kcfg
index 83354a11..1271b4ea 100644
--- a/src/cantor.kcfg
+++ b/src/cantor.kcfg
@@ -1,43 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
<include>cantor_export.h</include>
<kcfgfile/>
<group name="Cantor">
<entry name="DefaultBackend" type="String">
<label>The Backend that is used by default</label>
<default></default>
</entry>
<entry name="TypesetDefault" type="Bool">
<label>Do Typesetting by default</label>
<default>true</default>
</entry>
<entry name="HighlightDefault" type="Bool">
<label>Do Syntax Highlighting by default</label>
<default>true</default>
</entry>
<entry name="CompletionDefault" type="Bool">
<label>Enable Completions by default</label>
<default>true</default>
</entry>
<entry name="ExpressionNumberingDefault" type="Bool">
<label>Enable Numbering of Expressions by default</label>
<default>false</default>
</entry>
<entry name="AnimationDefault" type="Bool">
<label>Animate changes in the Worksheet by default</label>
<default>true</default>
</entry>
+ <entry name="EmbeddedMathDefault" type="Bool">
+ <label>Enable rendering math expressions inside $$..$$ in Text and Markdown entries by default (needs pdflatex installed)</label>
+ <default>true</default>
+ </entry>
<entry name="AutoEval" type="Bool">
<label>Automatically reevaluate the entries below the current</label>
<default>false</default>
</entry>
<entry name="WarnAboutSessionRestart" type="Bool">
<label>Ask for confirmation when restarting the backend</label>
<default>true</default>
</entry>
+ <entry name="StoreTextEntryFormatting" type="Bool">
+ <label>Save rich text formatting of TextEntry, when save Worksheet in Jupyter notebook format</label>
+ <default>true</default>
+ </entry>
+ <entry name="ShowMathRenderError" type="Bool">
+ <label>Show embeded math render error</label>
+ <default>true</default>
+ </entry>
</group>
</kcfg>
diff --git a/src/cantor_part.cpp b/src/cantor_part.cpp
index a3c01ef7..57a59147 100644
--- a/src/cantor_part.cpp
+++ b/src/cantor_part.cpp
@@ -1,965 +1,1000 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "cantor_part.h"
#include <config-cantor.h>
#include <KLocalizedString>
#include <QIcon>
#include <KParts/Event>
#include <KParts/GUIActivateEvent>
#include <KPluginFactory>
#include <KAboutData>
#include <QAction>
#include <KActionCollection>
#include <QFileDialog>
#include <KStandardAction>
#include <KZip>
#include <KToggleAction>
#include <KService>
#include <KServiceTypeTrader>
#include <KRun>
#include <QProgressDialog>
#include <KMessageBox>
#include <KNS3/UploadDialog>
#include <KXMLGUIFactory>
#include <QElapsedTimer>
#include <QFile>
#include <QTextStream>
#include <QTextEdit>
#include <QTimer>
#include <QPrinter>
#include <QPrintPreviewDialog>
#include <QPrintDialog>
#include <QVBoxLayout>
#include "worksheet.h"
#include "worksheetview.h"
#include "searchbar.h"
#include "scripteditor/scripteditorwidget.h"
#include "lib/backend.h"
#include "lib/extension.h"
#include "lib/assistant.h"
#include "lib/panelpluginhandler.h"
#include "lib/panelplugin.h"
#include "lib/worksheetaccess.h"
#include "settings.h"
//A concrete implementation of the WorksheetAccesssInterface
class WorksheetAccessInterfaceImpl : public Cantor::WorksheetAccessInterface
{
public:
WorksheetAccessInterfaceImpl(QObject* parent, Worksheet* worksheet) : WorksheetAccessInterface(parent), m_worksheet(worksheet)
{
qDebug()<<"new worksheetaccess interface";
connect(worksheet, SIGNAL(modified()), this, SIGNAL(modified()));
}
~WorksheetAccessInterfaceImpl() override = default;
QByteArray saveWorksheetToByteArray() override
{
return m_worksheet->saveToByteArray();
}
void loadWorksheetFromByteArray(QByteArray* data) override
{
m_worksheet->load(data);
}
Cantor::Session* session() override
{
return m_worksheet->session();
}
void evaluate() override
{
m_worksheet->evaluate();
}
void interrupt() override
{
m_worksheet->interrupt();
}
private:
Worksheet* m_worksheet;
};
CantorPart::CantorPart( QWidget *parentWidget, QObject *parent, const QVariantList & args ): KParts::ReadWritePart(parent),
m_searchBar(nullptr),
m_initProgressDlg(nullptr),
m_showProgressDlg(true),
m_showBackendHelp(nullptr),
m_statusBarBlocked(false),
m_sessionStatusCounter(0)
{
m_panelHandler=new Cantor::PanelPluginHandler(this);
connect(m_panelHandler, SIGNAL(pluginsChanged()), this, SLOT(pluginsChanged()));
QString backendName;
if(args.isEmpty())
backendName=QLatin1String("null");
else
backendName=args.first().toString();
for (const QVariant& arg : args)
{
if (arg.toString() == QLatin1String("--noprogress") )
{
qWarning()<<"not showing the progress bar by request";
m_showProgressDlg=false;
}
}
Cantor::Backend* b=Cantor::Backend::getBackend(backendName);
qDebug()<<"Backend "<<b->name()<<" offers extensions: "<<b->extensions();
auto* collection = actionCollection();
//central widget
QWidget* widget = new QWidget(parentWidget);
QVBoxLayout* layout = new QVBoxLayout(widget);
m_worksheet=new Worksheet(b, widget);
m_worksheetview=new WorksheetView(m_worksheet, widget);
m_worksheetview->setEnabled(false); //disable input until the session has successfully logged in and emits the ready signal
connect(m_worksheet, SIGNAL(modified()), this, SLOT(setModified()));
connect(m_worksheet, SIGNAL(showHelp(QString)), this, SIGNAL(showHelp(QString)));
connect(m_worksheet, SIGNAL(loaded()), this, SLOT(initialized()));
connect(collection, SIGNAL(inserted(QAction*)), m_worksheet, SLOT(registerShortcut(QAction*)));
layout->addWidget(m_worksheetview);
setWidget(widget);
//create WorksheetAccessInterface, used at the moment by LabPlot only to access Worksheet's API
Cantor::WorksheetAccessInterface* iface = new WorksheetAccessInterfaceImpl(this, m_worksheet);
Q_UNUSED(iface);
//initialize actions
m_worksheet->createActions(collection);
KStandardAction::saveAs(this, SLOT(fileSaveAs()), collection);
m_save = KStandardAction::save(this, SLOT(save()), collection);
m_save->setPriority(QAction::LowPriority);
QAction* savePlain = new QAction(i18n("Save Plain Text"), collection);
collection->addAction(QLatin1String("file_save_plain"), savePlain);
savePlain->setIcon(QIcon::fromTheme(QLatin1String("document-save")));
connect(savePlain, SIGNAL(triggered()), this, SLOT(fileSavePlain()));
QAction* undo = KStandardAction::undo(m_worksheet, SIGNAL(undo()), collection);
undo->setPriority(QAction::LowPriority);
connect(m_worksheet, SIGNAL(undoAvailable(bool)), undo, SLOT(setEnabled(bool)));
m_editActions.push_back(undo);
QAction* redo = KStandardAction::redo(m_worksheet, SIGNAL(redo()), collection);
redo->setPriority(QAction::LowPriority);
connect(m_worksheet, SIGNAL(redoAvailable(bool)), redo, SLOT(setEnabled(bool)));
m_editActions.push_back(redo);
QAction* cut = KStandardAction::cut(m_worksheet, SIGNAL(cut()), collection);
cut->setPriority(QAction::LowPriority);
connect(m_worksheet, SIGNAL(cutAvailable(bool)), cut, SLOT(setEnabled(bool)));
m_editActions.push_back(cut);
QAction* copy = KStandardAction::copy(m_worksheet, SIGNAL(copy()), collection);
copy->setPriority(QAction::LowPriority);
connect(m_worksheet, SIGNAL(copyAvailable(bool)), copy, SLOT(setEnabled(bool)));
QAction* paste = KStandardAction::paste(m_worksheet, SLOT(paste()), collection);
paste->setPriority(QAction::LowPriority);
connect(m_worksheet, SIGNAL(pasteAvailable(bool)), paste, SLOT(setEnabled(bool)));
m_editActions.push_back(paste);
QAction* find = KStandardAction::find(this, SLOT(showSearchBar()), collection);
find->setPriority(QAction::LowPriority);
QAction* replace = KStandardAction::replace(this, SLOT(showExtendedSearchBar()), collection);
replace->setPriority(QAction::LowPriority);
m_editActions.push_back(replace);
m_findNext = KStandardAction::findNext(this, SLOT(findNext()), collection);
m_findNext->setEnabled(false);
m_findPrev = KStandardAction::findPrev(this, SLOT(findPrev()), collection);
m_findPrev->setEnabled(false);
QAction* latexExport = new QAction(i18n("Export to LaTeX"), collection);
collection->addAction(QLatin1String("file_export_latex"), latexExport);
latexExport->setIcon(QIcon::fromTheme(QLatin1String("document-export")));
connect(latexExport, SIGNAL(triggered()), this, SLOT(exportToLatex()));
QAction* print = KStandardAction::print(this, SLOT(print()), collection);
print->setPriority(QAction::LowPriority);
QAction* printPreview = KStandardAction::printPreview(this, SLOT(printPreview()), collection);
printPreview->setPriority(QAction::LowPriority);
KStandardAction::zoomIn(m_worksheetview, SLOT(zoomIn()), collection);
KStandardAction::zoomOut(m_worksheetview, SLOT(zoomOut()), collection);
KStandardAction::actualSize(m_worksheetview, SLOT(actualSize()), collection);
m_evaluate = new QAction(i18n("Evaluate Worksheet"), collection);
collection->addAction(QLatin1String("evaluate_worksheet"), m_evaluate);
m_evaluate->setIcon(QIcon::fromTheme(QLatin1String("system-run")));
collection->setDefaultShortcut(m_evaluate, Qt::CTRL+Qt::Key_E);
connect(m_evaluate, SIGNAL(triggered()), this, SLOT(evaluateOrInterrupt()));
m_editActions.push_back(m_evaluate);
m_typeset = new KToggleAction(i18n("Typeset using LaTeX"), collection);
m_typeset->setChecked(Settings::self()->typesetDefault());
// Disable until login, because we use session command for this action
m_typeset->setEnabled(false);
collection->addAction(QLatin1String("enable_typesetting"), m_typeset);
connect(m_typeset, SIGNAL(toggled(bool)), this, SLOT(enableTypesetting(bool)));
m_highlight = new KToggleAction(i18n("Syntax Highlighting"), collection);
m_highlight->setChecked(Settings::self()->highlightDefault());
collection->addAction(QLatin1String("enable_highlighting"), m_highlight);
connect(m_highlight, SIGNAL(toggled(bool)), m_worksheet, SLOT(enableHighlighting(bool)));
m_completion = new KToggleAction(i18n("Completion"), collection);
m_completion->setChecked(Settings::self()->completionDefault());
collection->addAction(QLatin1String("enable_completion"), m_completion);
connect(m_completion, SIGNAL(toggled(bool)), m_worksheet, SLOT(enableCompletion(bool)));
m_exprNumbering = new KToggleAction(i18n("Line Numbers"), collection);
m_exprNumbering->setChecked(Settings::self()->expressionNumberingDefault());
collection->addAction(QLatin1String("enable_expression_numbers"), m_exprNumbering);
connect(m_exprNumbering, SIGNAL(toggled(bool)), m_worksheet, SLOT(enableExpressionNumbering(bool)));
m_animateWorksheet = new KToggleAction(i18n("Animate Worksheet"), collection);
m_animateWorksheet->setChecked(Settings::self()->animationDefault());
collection->addAction(QLatin1String("enable_animations"), m_animateWorksheet);
connect(m_animateWorksheet, SIGNAL(toggled(bool)), m_worksheet, SLOT(enableAnimations(bool)));
+ if (m_worksheet->mathRenderer()->mathRenderAvailable())
+ {
+ m_embeddedMath= new KToggleAction(i18n("Embedded Math"), collection);
+ m_embeddedMath->setChecked(Settings::self()->embeddedMathDefault());
+ collection->addAction(QLatin1String("enable_embedded_math"), m_embeddedMath);
+ connect(m_embeddedMath, SIGNAL(toggled(bool)), m_worksheet, SLOT(enableEmbeddedMath(bool)));
+ }
+
m_restart = new QAction(i18n("Restart Backend"), collection);
collection->addAction(QLatin1String("restart_backend"), m_restart);
m_restart->setIcon(QIcon::fromTheme(QLatin1String("system-reboot")));
connect(m_restart, SIGNAL(triggered()), this, SLOT(restartBackend()));
m_restart->setEnabled(false); // No need show restart button before login
m_editActions.push_back(m_restart);
QAction* evaluateCurrent = new QAction(QIcon::fromTheme(QLatin1String("media-playback-start")), i18n("Evaluate Entry"), collection);
collection->addAction(QLatin1String("evaluate_current"), evaluateCurrent);
collection->setDefaultShortcut(evaluateCurrent, Qt::SHIFT + Qt::Key_Return);
connect(evaluateCurrent, SIGNAL(triggered()), m_worksheet, SLOT(evaluateCurrentEntry()));
m_editActions.push_back(evaluateCurrent);
QAction* insertCommandEntry = new QAction(QIcon::fromTheme(QLatin1String("run-build")), i18n("Insert Command Entry"), collection);
collection->addAction(QLatin1String("insert_command_entry"), insertCommandEntry);
collection->setDefaultShortcut(insertCommandEntry, Qt::CTRL + Qt::Key_Return);
connect(insertCommandEntry, SIGNAL(triggered()), m_worksheet, SLOT(insertCommandEntry()));
m_editActions.push_back(insertCommandEntry);
QAction* insertTextEntry = new QAction(QIcon::fromTheme(QLatin1String("draw-text")), i18n("Insert Text Entry"), collection);
collection->addAction(QLatin1String("insert_text_entry"), insertTextEntry);
connect(insertTextEntry, SIGNAL(triggered()), m_worksheet, SLOT(insertTextEntry()));
m_editActions.push_back(insertTextEntry);
#ifdef Discount_FOUND
QAction* insertMarkdownEntry = new QAction(QIcon::fromTheme(QLatin1String("text-x-markdown")), i18n("Insert Markdown Entry"), collection);
collection->addAction(QLatin1String("insert_markdown_entry"), insertMarkdownEntry);
connect(insertMarkdownEntry, SIGNAL(triggered()), m_worksheet, SLOT(insertMarkdownEntry()));
m_editActions.push_back(insertMarkdownEntry);
#endif
#ifdef WITH_EPS
QAction* insertLatexEntry = new QAction(QIcon::fromTheme(QLatin1String("text-x-tex")), i18n("Insert Latex Entry"), collection);
collection->addAction(QLatin1String("insert_latex_entry"), insertLatexEntry);
connect(insertLatexEntry, SIGNAL(triggered()), m_worksheet, SLOT(insertLatexEntry()));
m_editActions.push_back(insertLatexEntry);
#endif
QAction* insertPageBreakEntry = new QAction(QIcon::fromTheme(QLatin1String("go-next-view-page")), i18n("Insert Page Break"), collection);
collection->addAction(QLatin1String("insert_page_break_entry"), insertPageBreakEntry);
connect(insertPageBreakEntry, SIGNAL(triggered()), m_worksheet, SLOT(insertPageBreakEntry()));
m_editActions.push_back(insertPageBreakEntry);
QAction* insertImageEntry = new QAction(QIcon::fromTheme(QLatin1String("image-x-generic")), i18n("Insert Image"), collection);
collection->addAction(QLatin1String("insert_image_entry"), insertImageEntry);
connect(insertImageEntry, SIGNAL(triggered()), m_worksheet, SLOT(insertImageEntry()));
m_editActions.push_back(insertImageEntry);
QAction* removeCurrent = new QAction(QIcon::fromTheme(QLatin1String("edit-delete")), i18n("Remove current Entry"), collection);
collection->addAction(QLatin1String("remove_current"), removeCurrent);
collection->setDefaultShortcut(removeCurrent, Qt::ShiftModifier + Qt::Key_Delete);
connect(removeCurrent, SIGNAL(triggered()), m_worksheet, SLOT(removeCurrentEntry()));
m_editActions.push_back(removeCurrent);
m_showBackendHelp = new QAction(i18n("Show %1 Help", b->name()) , collection);
m_showBackendHelp->setIcon(QIcon::fromTheme(QLatin1String("help-contents")));
collection->addAction(QLatin1String("backend_help"), m_showBackendHelp);
connect(m_showBackendHelp, SIGNAL(triggered()), this, SLOT(showBackendHelp()));
// Disabled, because uploading to kde store from program don't work
// See https://phabricator.kde.org/T9980 for details
// If this situation will changed, then uncomment this action
/*
QAction* publishWorksheet = new QAction(i18n("Publish Worksheet"), collection);
publishWorksheet->setIcon(QIcon::fromTheme(QLatin1String("get-hot-new-stuff")));
collection->addAction(QLatin1String("file_publish_worksheet"), publishWorksheet);
connect(publishWorksheet, SIGNAL(triggered()), this, SLOT(publishWorksheet()));
*/
KToggleAction* showEditor = new KToggleAction(i18n("Show Script Editor"), collection);
showEditor->setChecked(false);
collection->addAction(QLatin1String("show_editor"), showEditor);
connect(showEditor, SIGNAL(toggled(bool)), this, SLOT(showScriptEditor(bool)));
showEditor->setEnabled(b->extensions().contains(QLatin1String("ScriptExtension")));
QAction* showCompletion = new QAction(i18n("Show Completion"), collection);
collection->addAction(QLatin1String("show_completion"), showCompletion);
QList<QKeySequence> showCompletionShortcuts;
showCompletionShortcuts << Qt::Key_Tab << Qt::CTRL + Qt::Key_Space;
collection->setDefaultShortcuts(showCompletion, showCompletionShortcuts);
connect(showCompletion, SIGNAL(triggered()), m_worksheet, SLOT(showCompletion()));
m_editActions.push_back(showCompletion);
// set our XML-UI resource file
setXMLFile(QLatin1String("cantor_part.rc"));
// we are read-write by default
setReadWrite(true);
// we are not modified since we haven't done anything yet
setModified(false);
initialized();
}
CantorPart::~CantorPart()
{
if (m_scriptEditor)
{
disconnect(m_scriptEditor, SIGNAL(destroyed()), this, SLOT(scriptEditorClosed()));
delete m_scriptEditor;
}
if (m_searchBar)
delete m_searchBar;
}
void CantorPart::setReadWrite(bool rw)
{
// notify your internal widget of the read-write state
m_worksheetview->setInteractive(rw);
ReadWritePart::setReadWrite(rw);
}
void CantorPart::setReadOnly()
{
for (QAction* action : m_editActions)
action->setEnabled(false);
if (m_showBackendHelp)
{
m_showBackendHelp->setEnabled(false);
m_showBackendHelp->setVisible(false);
}
}
void CantorPart::setModified(bool modified)
{
// get a handle on our Save action and make sure it is valid
if (!m_save)
return;
// if so, we either enable or disable it based on the current state
m_save->setEnabled(modified);
// in any event, we want our parent to do it's thing
ReadWritePart::setModified(modified);
}
KAboutData& CantorPart::createAboutData()
{
// the non-i18n name here must be the same as the directory in
// which the part's rc file is installed ('partrcdir' in the Makefile)
static KAboutData about(QLatin1String("cantorpart"),
QLatin1String("Cantor"),
QLatin1String(CANTOR_VERSION),
i18n("CantorPart"),
KAboutLicense::GPL,
i18n("(C) 2009-2015 Alexander Rieder"),
QString(),
QLatin1String("http://edu.kde.org/cantor"));
about.addAuthor( i18n("Alexander Rieder"), QString(), QLatin1String("alexanderrieder@gmail.com") );
return about;
}
bool CantorPart::openFile()
{
//don't crash if for some reason the worksheet is invalid
if(m_worksheet==nullptr)
{
qWarning()<<"trying to open in an invalid cantor part";
return false;
}
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
QElapsedTimer timer;
timer.start();
const bool rc = m_worksheet->load(localFilePath());
QApplication::restoreOverrideCursor();
if (rc) {
- qDebug()<< "Worksheet successfully loaded in " << (float)timer.elapsed()/1000 << " seconds).";
+ qDebug()<< "Worksheet successfully loaded in " << (float)timer.elapsed()/1000 << " seconds";
updateCaption();
// We modified, but it we load file now, so no need in save option
setModified(false);
}
return rc;
}
bool CantorPart::saveFile()
{
// if we aren't read-write, return immediately
if (isReadWrite() == false)
return false;
qDebug()<<"saving to: "<<url();
if (url().isEmpty())
fileSaveAs();
else
m_worksheet->save( localFilePath() );
setModified(false);
emit worksheetSave(QUrl::fromLocalFile(localFilePath()));
return true;
}
void CantorPart::fileSaveAs()
{
// this slot is called whenever the File->Save As menu is selected
- QString worksheetFilter = i18n("Cantor Worksheet (*.cws)");
- QString filter = worksheetFilter;
+ static const QString& worksheetFilter = i18n("Cantor Worksheet (*.cws)");
+ static const QString& notebookFilter = i18n("Jupyter Notebook (*.ipynb)");
+ QString filter = worksheetFilter + QLatin1String(";;") + notebookFilter;
if (!m_worksheet->isReadOnly())
{
//if the backend supports scripts, also append their scriptFile endings to the filter
Cantor::Backend * const backend=m_worksheet->session()->backend();
if (backend->extensions().contains(QLatin1String("ScriptExtension")))
{
Cantor::ScriptExtension* e=dynamic_cast<Cantor::ScriptExtension*>(backend->extension(QLatin1String("ScriptExtension")));
filter+=QLatin1String(";;")+e->scriptFileFilter();
}
}
QString selectedFilter;
QString file_name = QFileDialog::getSaveFileName(widget(), i18n("Save as"), QString(), filter, &selectedFilter);
if (file_name.isEmpty())
return;
- //depending on user's selection, save as a worksheet or as a plain script file
+
+ static const QString jupyterExtension = QLatin1String(".ipynb");
+ static const QString cantorExtension = QLatin1String(".cws");
+ // Append file extension, if it isn't specified
+ // And change filter, if it specified to supported extension
+ if (file_name.contains(QLatin1String(".")))
+ {
+ if (file_name.endsWith(cantorExtension))
+ selectedFilter = worksheetFilter;
+ else if (file_name.endsWith(jupyterExtension))
+ selectedFilter = notebookFilter;
+ }
+ else
+ {
+ if (selectedFilter == worksheetFilter)
+ file_name += cantorExtension;
+ else if (selectedFilter == notebookFilter)
+ file_name += jupyterExtension;
+ }
+
+ //depending on user's selection, save as a worksheet, as a Jupyter notebook or as a plain script file
if (selectedFilter == worksheetFilter)
{
- if (!file_name.endsWith(QLatin1String(".cws")))
- file_name += QLatin1String(".cws");
+ m_worksheet->setType(Worksheet::CantorWorksheet);
+ const QUrl& url = QUrl::fromLocalFile(file_name);
+ saveAs(url);
+ emit worksheetSave(url);
+ }
+ else if (selectedFilter == notebookFilter)
+ {
+ m_worksheet->setType(Worksheet::JupyterNotebook);
const QUrl& url = QUrl::fromLocalFile(file_name);
saveAs(url);
emit worksheetSave(url);
}
else
m_worksheet->savePlain(file_name);
updateCaption();
}
void CantorPart::fileSavePlain()
{
QString file_name = QFileDialog::getSaveFileName(widget(), i18n("Save"), QString(), QString());
if (!file_name.isEmpty())
m_worksheet->savePlain(file_name);
}
void CantorPart::exportToLatex()
{
QString file_name = QFileDialog::getSaveFileName(widget(), i18n("Export to LaTeX"), QString(), QString());
if (file_name.isEmpty() == false)
{
if (!file_name.endsWith(QLatin1String(".tex")))
file_name += QLatin1String(".tex");
m_worksheet->saveLatex(file_name);
}
}
void CantorPart::guiActivateEvent( KParts::GUIActivateEvent * event )
{
KParts::ReadWritePart::guiActivateEvent(event);
if(event->activated())
{
if(m_scriptEditor)
m_scriptEditor->show();
}else
{
if(m_scriptEditor)
m_scriptEditor->hide();
}
}
void CantorPart::evaluateOrInterrupt()
{
qDebug()<<"evalorinterrupt";
if(m_worksheet->isRunning())
m_worksheet->interrupt();
else
m_worksheet->evaluate();
}
void CantorPart::restartBackend()
{
bool restart = false;
if (Settings::self()->warnAboutSessionRestart())
{
KMessageBox::ButtonCode tmp;
// If we want the question box, but it is disable, then enable it
if (!KMessageBox::shouldBeShownYesNo(QLatin1String("WarnAboutSessionRestart"), tmp))
KMessageBox::enableMessage(QLatin1String("WarnAboutSessionRestart"));
const QString& name = m_worksheet->session()->backend()->name();
KMessageBox::ButtonCode rc = KMessageBox::questionYesNo(widget(),
i18n("All the available calculation results will be lost. Do you really want to restart %1?", name),
i18n("Restart %1?", name),
KStandardGuiItem::yes(),
KStandardGuiItem::no(),
QLatin1String("WarnAboutSessionRestart")
);
// Update setting's value
// I don't know, that should I do with "No" with "Don't ask me again"
// So hide warning only on "Yes"
Settings::self()->setWarnAboutSessionRestart(
KMessageBox::shouldBeShownYesNo(QLatin1String("WarnAboutSessionRestart"), tmp)
|| rc == KMessageBox::ButtonCode::No
);
Settings::self()->save();
restart = rc == KMessageBox::ButtonCode::Yes;
}
else
{
restart = true;
}
if (restart)
{
m_worksheet->session()->logout();
m_worksheet->loginToSession();
}
}
void CantorPart::worksheetStatusChanged(Cantor::Session::Status status)
{
qDebug()<<"wsStatusChange"<<status;
unsigned int count = ++m_sessionStatusCounter;
if(status==Cantor::Session::Running)
{
// Useless add a interrupt action without delay, because user physically can't interrupt fast commands
QTimer::singleShot(100, this, [this, count] () {
if(m_worksheet->session()->status() == Cantor::Session::Running && m_sessionStatusCounter == count)
{
m_evaluate->setText(i18n("Interrupt"));
m_evaluate->setShortcut(Qt::CTRL+Qt::Key_I);
m_evaluate->setIcon(QIcon::fromTheme(QLatin1String("dialog-close")));
setStatusMessage(i18n("Calculating..."));
}
});
}else if (status==Cantor::Session::Done)
{
m_evaluate->setText(i18n("Evaluate Worksheet"));
m_evaluate->setShortcut(Qt::CTRL+Qt::Key_E);
m_evaluate->setIcon(QIcon::fromTheme(QLatin1String("system-run")));
setStatusMessage(i18n("Ready"));
}
}
void CantorPart::showSessionError(const QString& message)
{
qDebug()<<"Error: "<<message;
initialized();
showImportantStatusMessage(i18n("Session Error: %1", message));
}
void CantorPart::initialized()
{
if (!m_worksheet->isReadOnly())
{
connect(m_worksheet->session(), SIGNAL(statusChanged(Cantor::Session::Status)), this, SLOT(worksheetStatusChanged(Cantor::Session::Status)));
connect(m_worksheet->session(), SIGNAL(loginStarted()),this, SLOT(worksheetSessionLoginStarted()));
connect(m_worksheet->session(), SIGNAL(loginDone()),this, SLOT(worksheetSessionLoginDone()));
connect(m_worksheet->session(), SIGNAL(error(QString)), this, SLOT(showSessionError(QString)));
loadAssistants();
m_panelHandler->setSession(m_worksheet->session());
adjustGuiToSession();
// Don't set modification flag, if we add command entry in empty worksheet
const bool modified = this->isModified();
if (m_worksheet->isEmpty())
m_worksheet->appendCommandEntry();
setModified(modified);
}
else
{
setReadOnly();
// Clear assistants
for (KXMLGUIClient* client: childClients())
{
Cantor::Assistant* assistant = dynamic_cast<Cantor::Assistant*>(client);
if (assistant)
{
factory()->removeClient(client);
removeChildClient(client);
assistant->deleteLater();
}
}
}
m_worksheetview->setEnabled(true);
m_worksheetview->setFocus();
setStatusMessage(i18n("Initialization complete"));
updateCaption();
}
void CantorPart::worksheetSessionLoginStarted() {
setStatusMessage(i18n("Initializing..."));
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
}
void CantorPart::worksheetSessionLoginDone() {
setStatusMessage(i18n("Ready"));
m_typeset->setEnabled(true);
m_restart->setEnabled(true);
QApplication::restoreOverrideCursor();
}
void CantorPart::enableTypesetting(bool enable)
{
m_worksheet->session()->setTypesettingEnabled(enable);
}
void CantorPart::showBackendHelp()
{
qDebug()<<"showing backends help";
Cantor::Backend* backend=m_worksheet->session()->backend();
QUrl url = backend->helpUrl();
qDebug()<<"launching url "<<url;
new KRun(url, widget());
}
Worksheet* CantorPart::worksheet()
{
return m_worksheet;
}
void CantorPart::updateCaption()
{
QString filename=url().fileName();
//strip away the extension
filename=filename.left(filename.lastIndexOf(QLatin1Char('.')));
if (filename.isEmpty())
filename=i18n("Unnamed");
if (!m_worksheet->isReadOnly())
emit setCaption(filename, QIcon::fromTheme(m_worksheet->session()->backend()->icon()));
else
emit setCaption(filename+QLatin1Char(' ')+i18n("[read-only]"), QIcon());
}
void CantorPart::pluginsChanged()
{
for (auto* plugin : m_panelHandler->plugins())
connect(plugin, SIGNAL(requestRunCommand(QString)), this, SLOT(runCommand(QString)));
}
void CantorPart::loadAssistants()
{
qDebug()<<"loading assistants...";
QStringList assistantDirs;
for (const QString& dir : QCoreApplication::libraryPaths())
assistantDirs << dir + QDir::separator() + QLatin1String("cantor/assistants");
QPluginLoader loader;
for (const QString& dir : assistantDirs) {
qDebug() << "dir: " << dir;
QStringList assistants;
QDir assistantDir = QDir(dir);
assistants = assistantDir.entryList();
for (const QString& assistant : assistants) {
if (assistant==QLatin1String(".") || assistant==QLatin1String(".."))
continue;
loader.setFileName(dir + QDir::separator() + assistant);
if (!loader.load()){
qDebug() << "Error while loading assistant: " << assistant;
continue;
}
KPluginFactory* factory = KPluginLoader(loader.fileName()).factory();
Cantor::Assistant* plugin = factory->create<Cantor::Assistant>(this);
Cantor::Backend* backend=worksheet()->session()->backend();
KPluginMetaData info(loader);
plugin->setPluginInfo(info);
plugin->setBackend(backend);
bool supported=true;
for (const QString& req : plugin->requiredExtensions())
supported=supported && backend->extensions().contains(req);
if(supported)
{
qDebug() << "plugin " << info.name() << " is supported by " << backend->name() << ", requires extensions " << plugin->requiredExtensions();
plugin->initActions();
connect(plugin, SIGNAL(requested()), this, SLOT(runAssistant()));
}else
{
qDebug() << "plugin " << info.name() << " is not supported by "<<backend->name();
removeChildClient(plugin);
plugin->deleteLater();
}
}
}
}
void CantorPart::runAssistant()
{
Cantor::Assistant* a=qobject_cast<Cantor::Assistant*>(sender());
QStringList cmds=a->run(widget());
qDebug()<<cmds;
if(!cmds.isEmpty())
runCommand(cmds.join(QLatin1String("\n")));
}
void CantorPart::runCommand(const QString& cmd)
{
m_worksheet->appendCommandEntry(cmd);
}
void CantorPart::showSearchBar()
{
if (!m_searchBar) {
m_searchBar = new SearchBar(widget(), m_worksheet);
widget()->layout()->addWidget(m_searchBar);
connect(m_searchBar, SIGNAL(destroyed(QObject*)),
this, SLOT(searchBarDeleted()));
}
m_findNext->setEnabled(true);
m_findPrev->setEnabled(true);
m_searchBar->showStandard();
m_searchBar->setFocus();
}
void CantorPart::showExtendedSearchBar()
{
if (!m_searchBar) {
m_searchBar = new SearchBar(widget(), m_worksheet);
widget()->layout()->addWidget(m_searchBar);
connect(m_searchBar, SIGNAL(destroyed(QObject*)),
this, SLOT(searchBarDeleted()));
}
m_findNext->setEnabled(true);
m_findPrev->setEnabled(true);
m_searchBar->showExtended();
m_searchBar->setFocus();
}
void CantorPart::findNext()
{
if (m_searchBar)
m_searchBar->next();
}
void CantorPart::findPrev()
{
if (m_searchBar)
m_searchBar->prev();
}
void CantorPart::searchBarDeleted()
{
m_searchBar = nullptr;
m_findNext->setEnabled(false);
m_findPrev->setEnabled(false);
}
void CantorPart::adjustGuiToSession()
{
Cantor::Backend::Capabilities capabilities = m_worksheet->session()->backend()->capabilities();
#ifdef WITH_EPS
m_typeset->setVisible(capabilities.testFlag(Cantor::Backend::LaTexOutput));
#else
m_typeset->setVisible(false);
#endif
m_completion->setVisible(capabilities.testFlag(Cantor::Backend::Completion));
//this is 0 on the first call
if(m_showBackendHelp)
m_showBackendHelp->setText(i18n("Show %1 Help", m_worksheet->session()->backend()->name()));
}
void CantorPart::publishWorksheet()
{
int ret = KMessageBox::questionYesNo(widget(),
i18n("Do you want to upload current Worksheet to public web server?"),
i18n("Question - Cantor"));
if (ret != KMessageBox::Yes) return;
if (isModified()||url().isEmpty())
{
ret = KMessageBox::warningContinueCancel(widget(),
i18n("The Worksheet is not saved. You should save it before uploading."),
i18n("Warning - Cantor"), KStandardGuiItem::save(), KStandardGuiItem::cancel());
if (ret != KMessageBox::Continue) return;
if (!saveFile()) return;
}
qDebug()<<"uploading file "<<url();
// upload
//HACK: use different .knsrc files for each category
//remove this once KNS3 gains the ability to select category
KNS3::UploadDialog dialog(QString::fromLatin1("cantor_%1.knsrc").arg(m_worksheet->session()->backend()->id().toLower()), widget());
dialog.setUploadFile(url());
dialog.exec();
}
void CantorPart::print()
{
QPrinter printer;
QPointer<QPrintDialog> dialog = new QPrintDialog(&printer, widget());
// TODO: Re-enable print selection
//if (m_worksheet->textCursor().hasSelection())
// dialog->addEnabledOption(QAbstractPrintDialog::PrintSelection);
if (dialog->exec() == QDialog::Accepted)
m_worksheet->print(&printer);
delete dialog;
}
void CantorPart::printPreview()
{
QPrintPreviewDialog *dialog = new QPrintPreviewDialog(widget());
connect(dialog, SIGNAL(paintRequested(QPrinter*)), m_worksheet, SLOT(print(QPrinter*)));
dialog->exec();
}
void CantorPart::showScriptEditor(bool show)
{
if(show)
{
if (m_scriptEditor)
{
return;
}
Cantor::ScriptExtension* scriptE=dynamic_cast<Cantor::ScriptExtension*>(m_worksheet->session()->backend()->extension(QLatin1String("ScriptExtension")));
if (!scriptE)
{
return;
}
m_scriptEditor=new ScriptEditorWidget(scriptE->scriptFileFilter(), scriptE->highlightingMode(), widget()->window());
connect(m_scriptEditor, SIGNAL(runScript(QString)), this, SLOT(runScript(QString)));
connect(m_scriptEditor, SIGNAL(destroyed()), this, SLOT(scriptEditorClosed()));
m_scriptEditor->show();
}else
{
m_scriptEditor->deleteLater();
}
}
void CantorPart::scriptEditorClosed()
{
QAction* showEditor = actionCollection()->action(QLatin1String("show_editor"));
if (showEditor)
{
showEditor->setChecked(false);
}
}
void CantorPart::runScript(const QString& file)
{
Cantor::Backend* backend=m_worksheet->session()->backend();
if(!backend->extensions().contains(QLatin1String("ScriptExtension")))
{
KMessageBox::error(widget(), i18n("This backend does not support scripts."), i18n("Error - Cantor"));
return;
}
Cantor::ScriptExtension* scriptE=dynamic_cast<Cantor::ScriptExtension*>(backend->extension(QLatin1String("ScriptExtension")));
m_worksheet->appendCommandEntry(scriptE->runExternalScript(file));
}
void CantorPart::blockStatusBar()
{
m_statusBarBlocked=true;
}
void CantorPart::unblockStatusBar()
{
m_statusBarBlocked=false;
if(!m_cachedStatusMessage.isNull())
setStatusMessage(m_cachedStatusMessage);
m_cachedStatusMessage.clear();
}
void CantorPart::setStatusMessage(const QString& message)
{
if(!m_statusBarBlocked)
emit setStatusBarText(message);
else
m_cachedStatusMessage=message;
}
void CantorPart::showImportantStatusMessage(const QString& message)
{
setStatusMessage(message);
blockStatusBar();
QTimer::singleShot(3000, this, SLOT(unblockStatusBar()));
}
K_PLUGIN_FACTORY_WITH_JSON(CantorPartFactory, "cantor_part.json", registerPlugin<CantorPart>();)
#include "cantor_part.moc"
diff --git a/src/cantor_part.h b/src/cantor_part.h
index 207117c0..ef68e789 100644
--- a/src/cantor_part.h
+++ b/src/cantor_part.h
@@ -1,186 +1,187 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef CANTORPART_H
#define CANTORPART_H
#include <QPointer>
#include <QVector>
#include <KParts/ReadWritePart>
#include <lib/session.h>
class QWidget;
class Worksheet;
class WorksheetView;
class SarchBar;
class SearchBar;
class ScriptEditorWidget;
class KAboutData;
class QAction;
class KToggleAction;
class QProgressDialog;
namespace Cantor{
class PanelPluginHandler;
}
/**
* This is a "Part". It that does all the real work in a KPart
* application.
*
* @short Main Part
* @author Alexander Rieder <alexanderrieder@gmail.com>
*/
class CantorPart : public KParts::ReadWritePart
{
Q_OBJECT
public:
/**
* Default constructor
*/
CantorPart(QWidget *parentWidget,QObject *parent, const QVariantList &args);
/**
* Destructor
*/
~CantorPart() override;
/**
* This is a virtual function inherited from KParts::ReadWritePart.
* A shell will use this to inform this Part if it should act
* read-only
*/
void setReadWrite(bool rw) override;
/**
* Reimplemented to disable and enable Save action
*/
void setModified(bool modified) override;
KAboutData& createAboutData();
Worksheet* worksheet();
Q_SIGNALS:
void setCaption(const QString& caption, const QIcon& icon);
void showHelp(const QString& help);
void worksheetSave(const QUrl& url);
protected:
/**
* This must be implemented by each part
*/
bool openFile() override;
/**
* This must be implemented by each read-write part
*/
bool saveFile() override;
/**
* Called when this part becomes the active one,
* or if it looses activity
**/
void guiActivateEvent( KParts::GUIActivateEvent * event ) override;
void loadAssistants();
void adjustGuiToSession();
void setReadOnly();
protected Q_SLOTS:
void fileSaveAs();
void fileSavePlain();
void exportToLatex();
void evaluateOrInterrupt();
void restartBackend();
void enableTypesetting(bool enable);
void showBackendHelp();
void print();
void printPreview();
void worksheetStatusChanged(Cantor::Session::Status stauts);
void showSessionError(const QString& error);
void worksheetSessionLoginStarted();
void worksheetSessionLoginDone();
void initialized();
void updateCaption();
void pluginsChanged();
void runCommand(const QString& value);
void runAssistant();
void publishWorksheet();
void showScriptEditor(bool show);
void scriptEditorClosed();
void runScript(const QString& file);
void showSearchBar();
void showExtendedSearchBar();
void findNext();
void findPrev();
void searchBarDeleted();
/** sets the status message, or cached it, if the StatusBar is blocked.
* Use this method instead of "emit setStatusBarText"
*/
void setStatusMessage(const QString& message);
/** Shows an important status message. It makes sure the message is displayed,
* by blocking the statusbarText for 3 seconds
*/
void showImportantStatusMessage(const QString& message);
/** Blocks the StatusBar for new messages, so the currently shown one won't be overridden
*/
void blockStatusBar();
/** Removes the block from the StatusBar, and shows the last one of the StatusMessages that
where set during the block
**/
void unblockStatusBar();
private:
Worksheet *m_worksheet;
WorksheetView *m_worksheetview;
SearchBar *m_searchBar;
QPointer<ScriptEditorWidget> m_scriptEditor;
Cantor::PanelPluginHandler* m_panelHandler;
QProgressDialog* m_initProgressDlg;
bool m_showProgressDlg;
QAction * m_evaluate;
QAction * m_restart;
QAction * m_save;
QAction * m_findNext;
QAction * m_findPrev;
KToggleAction* m_typeset;
KToggleAction* m_highlight;
KToggleAction* m_completion;
KToggleAction* m_exprNumbering;
KToggleAction* m_animateWorksheet;
+ KToggleAction* m_embeddedMath;
QAction * m_showBackendHelp;
QVector<QAction*> m_editActions;
QString m_cachedStatusMessage;
bool m_statusBarBlocked;
unsigned int m_sessionStatusCounter;
};
#endif // CANTORPART_H
diff --git a/src/cantor_part.rc b/src/cantor_part.rc
index 6ff46385..5f759b12 100644
--- a/src/cantor_part.rc
+++ b/src/cantor_part.rc
@@ -1,91 +1,92 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
<kpartgui name="cantor_part" version="3">
<MenuBar>
<Menu name="file">
<Action name="file_save"/>
<Action name="file_save_as"/>
<Action name="file_save_plain"/>
<Action name="file_export_latex"/>
<Action name="file_publish_worksheet"/>
<Separator/>
<Action name="file_print"/>
<Action name="file_print_preview"/>
</Menu>
<Menu name="edit"><text>&amp;Edit</text>
<Action name="edit_undo"/>
<Action name="edit_redo"/>
<Separator/>
<Action name="edit_cut"/>
<Action name="edit_copy"/>
<Action name="edit_paste"/>
<Separator/>
<Action name="edit_find"/>
<Action name="edit_replace"/>
<Action name="edit_find_next"/>
<Action name="edit_find_prev"/>
</Menu>
<Menu name="view"><text>&amp;View</text>
<Action name="view_zoom_in"/>
<Action name="view_zoom_out"/>
<Action name="view_actual_size"/>
<Action name="show_editor"/>
</Menu>
<Menu name="worksheet"><text>&amp;Worksheet</text>
<Action name="evaluate_worksheet"/>
<Action name="evaluate_current"/>
<Separator/>
<Action name="insert_command_entry"/>
<Action name="insert_text_entry"/>
<Action name="insert_markdown_entry"/>
<Action name="insert_latex_entry"/>
<Action name="insert_image_entry"/>
<Action name="insert_page_break_entry"/>
<Separator/>
<Action name="remove_current"/>
</Menu>
<Menu name="settings">
<Action name="enable_typesetting"/>
<Action name="enable_highlighting"/>
<Action name="enable_completion"/>
<Action name="enable_expression_numbers"/>
<Action name="enable_animations"/>
+ <Action name="enable_embedded_math"/>
</Menu>
<Menu name="help">
<Action name="backend_help"/>
</Menu>
<Merge/>
</MenuBar>
<ToolBar name="mainToolBar">
<Action name="file_new"/>
<Action name="file_open"/>
<Action name="file_save"/>
<Action name="file_print"/>
<Action name="file_print_preview"/>
<Action name="edit_find"/>
<Action name="evaluate_worksheet"/>
<Action name="restart_backend"/>
<Action name="backend_help"/>
<Separator/>
</ToolBar>
<ToolBar noMerge="1" name="textEditToolBar">
<Separator/>
<Action name="format_text_bold"/>
<Action name="format_text_italic"/>
<Action name="format_text_underline"/>
<Action name="format_text_strikeout"/>
<Action name="format_text_foreground_color"/>
<Action name="format_text_background_color"/>
<Separator/>
<Action name="format_font_family"/>
<Action name="format_font_size"/>
<Separator/>
<Action name="format_align_left"/>
<Action name="format_align_center"/>
<Action name="format_align_right"/>
<Action name="format_align_justify"/>
<Action name="format_list_style"/>
<Action name="format_list_indent_more"/>
<Action name="format_list_indent_less"/>
<Separator/>
</ToolBar>
</kpartgui>
diff --git a/src/commandentry.cpp b/src/commandentry.cpp
index d45417e9..fac684e7 100644
--- a/src/commandentry.cpp
+++ b/src/commandentry.cpp
@@ -1,1242 +1,1365 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
Copyright (C) 2018 Alexander Semke <alexander.semke@web.de>
*/
#include "commandentry.h"
#include "resultitem.h"
#include "loadedexpression.h"
+#include "jupyterutils.h"
#include "lib/result.h"
#include "lib/helpresult.h"
+#include "lib/epsresult.h"
+#include "lib/latexresult.h"
#include "lib/completionobject.h"
#include "lib/syntaxhelpobject.h"
#include "lib/session.h"
#include <QApplication>
#include <QDebug>
#include <QDesktopWidget>
#include <QFontDialog>
#include <QTimer>
#include <QToolTip>
#include <QPropertyAnimation>
#include <QGraphicsWidget>
+#include <QJsonArray>
+#include <QJsonObject>
+#include <QBuffer>
#include <KLocalizedString>
#include <KColorScheme>
const QString CommandEntry::Prompt = QLatin1String(">>> ");
const QString CommandEntry::MidPrompt = QLatin1String(">> ");
const QString CommandEntry::HidePrompt = QLatin1String("> ");
const double CommandEntry::HorizontalSpacing = 4;
const double CommandEntry::VerticalSpacing = 4;
static const int colorsCount = 26;
static QColor colors[colorsCount] = {QColor(255,255,255), QColor(0,0,0),
QColor(192,0,0), QColor(255,0,0), QColor(255,192,192), //red
QColor(0,192,0), QColor(0,255,0), QColor(192,255,192), //green
QColor(0,0,192), QColor(0,0,255), QColor(192,192,255), //blue
QColor(192,192,0), QColor(255,255,0), QColor(255,255,192), //yellow
QColor(0,192,192), QColor(0,255,255), QColor(192,255,255), //cyan
QColor(192,0,192), QColor(255,0,255), QColor(255,192,255), //magenta
QColor(192,88,0), QColor(255,128,0), QColor(255,168,88), //orange
QColor(128,128,128), QColor(160,160,160), QColor(195,195,195) //grey
};
CommandEntry::CommandEntry(Worksheet* worksheet) : WorksheetEntry(worksheet),
m_promptItem(new WorksheetTextItem(this, Qt::NoTextInteraction)),
m_commandItem(new WorksheetTextItem(this, Qt::TextEditorInteraction)),
m_resultsCollapsed(false),
m_errorItem(nullptr),
m_expression(nullptr),
m_completionObject(nullptr),
m_syntaxHelpObject(nullptr),
m_evaluationOption(DoNothing),
m_menusInitialized(false),
m_backgroundColorActionGroup(nullptr),
m_backgroundColorMenu(nullptr),
m_textColorActionGroup(nullptr),
m_textColorMenu(nullptr),
m_fontMenu(nullptr)
{
m_promptItem->setPlainText(Prompt);
m_promptItem->setItemDragable(true);
m_commandItem->enableCompletion(true);
KColorScheme scheme = KColorScheme(QPalette::Normal, KColorScheme::View);
m_commandItem->setBackgroundColor(scheme.background(KColorScheme::AlternateBackground).color());
m_promptItemAnimation = new QPropertyAnimation(m_promptItem, "opacity", this);
m_promptItemAnimation->setDuration(600);
m_promptItemAnimation->setStartValue(1);
m_promptItemAnimation->setKeyValueAt(0.5, 0);
m_promptItemAnimation->setEndValue(1);
connect(m_promptItemAnimation, &QPropertyAnimation::finished, this, &CommandEntry::animatePromptItem);
connect(m_commandItem, &WorksheetTextItem::tabPressed, this, &CommandEntry::showCompletion);
connect(m_commandItem, &WorksheetTextItem::backtabPressed, this, &CommandEntry::selectPreviousCompletion);
connect(m_commandItem, &WorksheetTextItem::applyCompletion, this, &CommandEntry::applySelectedCompletion);
connect(m_commandItem, SIGNAL(execute()), this, SLOT(evaluate()));
connect(m_commandItem, &WorksheetTextItem::moveToPrevious, this, &CommandEntry::moveToPreviousItem);
connect(m_commandItem, &WorksheetTextItem::moveToNext, this, &CommandEntry::moveToNextItem);
connect(m_commandItem, SIGNAL(receivedFocus(WorksheetTextItem*)), worksheet, SLOT(highlightItem(WorksheetTextItem*)));
connect(m_promptItem, &WorksheetTextItem::drag, this, &CommandEntry::startDrag);
connect(worksheet, SIGNAL(updatePrompt()), this, SLOT(updatePrompt()));
}
CommandEntry::~CommandEntry()
{
if (m_completionBox)
m_completionBox->deleteLater();
if (m_menusInitialized)
{
m_backgroundColorMenu->deleteLater();
m_textColorMenu->deleteLater();
m_fontMenu->deleteLater();
}
}
int CommandEntry::type() const
{
return Type;
}
void CommandEntry::initMenus() {
//background color
const QString colorNames[colorsCount] = {i18n("White"), i18n("Black"),
i18n("Dark Red"), i18n("Red"), i18n("Light Red"),
i18n("Dark Green"), i18n("Green"), i18n("Light Green"),
i18n("Dark Blue"), i18n("Blue"), i18n("Light Blue"),
i18n("Dark Yellow"), i18n("Yellow"), i18n("Light Yellow"),
i18n("Dark Cyan"), i18n("Cyan"), i18n("Light Cyan"),
i18n("Dark Magenta"), i18n("Magenta"), i18n("Light Magenta"),
i18n("Dark Orange"), i18n("Orange"), i18n("Light Orange"),
i18n("Dark Grey"), i18n("Grey"), i18n("Light Grey")
};
//background color
m_backgroundColorActionGroup = new QActionGroup(this);
m_backgroundColorActionGroup->setExclusive(true);
connect(m_backgroundColorActionGroup, &QActionGroup::triggered, this, &CommandEntry::backgroundColorChanged);
m_backgroundColorMenu = new QMenu(i18n("Background Color"));
m_backgroundColorMenu->setIcon(QIcon::fromTheme(QLatin1String("format-fill-color")));
QPixmap pix(16,16);
QPainter p(&pix);
for (int i=0; i<colorsCount; ++i) {
p.fillRect(pix.rect(), colors[i]);
QAction* action = new QAction(QIcon(pix), colorNames[i], m_backgroundColorActionGroup);
action->setCheckable(true);
m_backgroundColorMenu->addAction(action);
}
//text color
m_textColorActionGroup = new QActionGroup(this);
m_textColorActionGroup->setExclusive(true);
connect(m_textColorActionGroup, &QActionGroup::triggered, this, &CommandEntry::textColorChanged);
m_textColorMenu = new QMenu(i18n("Text Color"));
m_textColorMenu->setIcon(QIcon::fromTheme(QLatin1String("format-text-color")));
for (int i=0; i<colorsCount; ++i) {
p.fillRect(pix.rect(), colors[i]);
QAction* action = new QAction(QIcon(pix), colorNames[i], m_textColorActionGroup);
action->setCheckable(true);
m_textColorMenu->addAction(action);
}
//font
m_fontMenu = new QMenu(i18n("Font"));
m_fontMenu->setIcon(QIcon::fromTheme(QLatin1String("preferences-desktop-font")));
QAction* action = new QAction(QIcon::fromTheme(QLatin1String("format-text-bold")), i18n("Bold"));
action->setCheckable(true);
connect(action, &QAction::triggered, this, &CommandEntry::fontBoldTriggered);
m_fontMenu->addAction(action);
action = new QAction(QIcon::fromTheme(QLatin1String("format-text-italic")), i18n("Italic"));
action->setCheckable(true);
connect(action, &QAction::triggered, this, &CommandEntry::fontItalicTriggered);
m_fontMenu->addAction(action);
m_fontMenu->addSeparator();
action = new QAction(QIcon::fromTheme(QLatin1String("format-font-size-less")), i18n("Increase Size"));
connect(action, &QAction::triggered, this, &CommandEntry::fontIncreaseTriggered);
m_fontMenu->addAction(action);
action = new QAction(QIcon::fromTheme(QLatin1String("format-font-size-more")), i18n("Decrease Size"));
connect(action, &QAction::triggered, this, &CommandEntry::fontDecreaseTriggered);
m_fontMenu->addAction(action);
m_fontMenu->addSeparator();
action = new QAction(QIcon::fromTheme(QLatin1String("preferences-desktop-font")), i18n("Select"));
connect(action, &QAction::triggered, this, &CommandEntry::fontSelectTriggered);
m_fontMenu->addAction(action);
m_menusInitialized = true;
}
void CommandEntry::backgroundColorChanged(QAction* action) {
int index = m_backgroundColorActionGroup->actions().indexOf(action);
if (index == -1 || index>=colorsCount)
index = 0;
m_commandItem->setBackgroundColor(colors[index]);
}
void CommandEntry::textColorChanged(QAction* action) {
int index = m_textColorActionGroup->actions().indexOf(action);
if (index == -1 || index>=colorsCount)
index = 0;
m_commandItem->setDefaultTextColor(colors[index]);
}
void CommandEntry::fontBoldTriggered()
{
QAction* action = static_cast<QAction*>(QObject::sender());
QFont font = m_commandItem->font();
font.setBold(action->isChecked());
m_commandItem->setFont(font);
}
void CommandEntry::fontItalicTriggered()
{
QAction* action = static_cast<QAction*>(QObject::sender());
QFont font = m_commandItem->font();
font.setItalic(action->isChecked());
m_commandItem->setFont(font);
}
void CommandEntry::fontIncreaseTriggered()
{
QFont font = m_commandItem->font();
const int currentSize = font.pointSize();
QFontDatabase fdb;
QList<int> sizes = fdb.pointSizes(font.family(), font.styleName());
for (int i = 0; i < sizes.size(); ++i)
{
const int size = sizes.at(i);
if (currentSize == size)
{
if (i + 1 < sizes.size())
{
font.setPointSize(sizes.at(i+1));
m_commandItem->setFont(font);
}
break;
}
}
}
void CommandEntry::fontDecreaseTriggered()
{
QFont font = m_commandItem->font();
const int currentSize = font.pointSize();
QFontDatabase fdb;
QList<int> sizes = fdb.pointSizes(font.family(), font.styleName());
for (int i = 0; i < sizes.size(); ++i)
{
const int size = sizes.at(i);
if (currentSize == size)
{
if (i - 1 >= 0)
{
font.setPointSize(sizes.at(i-1));
m_commandItem->setFont(font);
}
break;
}
}
}
void CommandEntry::fontSelectTriggered()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, m_commandItem->font(), nullptr);
if (ok)
m_commandItem->setFont(font);
}
void CommandEntry::populateMenu(QMenu* menu, QPointF pos)
{
if (!m_menusInitialized)
initMenus();
if (!m_resultItems.isEmpty()) {
if (m_resultsCollapsed)
menu->addAction(i18n("Show Results"), this, &CommandEntry::expandResults);
else
menu->addAction(i18n("Hide Results"), this, &CommandEntry::collapseResults);
}
menu->addMenu(m_backgroundColorMenu);
menu->addMenu(m_textColorMenu);
menu->addMenu(m_fontMenu);
menu->addSeparator();
WorksheetEntry::populateMenu(menu, pos);
}
void CommandEntry::moveToNextItem(int pos, qreal x)
{
WorksheetTextItem* item = qobject_cast<WorksheetTextItem*>(sender());
if (!item)
return;
if (item == m_commandItem) {
if (m_informationItems.isEmpty() ||
!currentInformationItem()->isEditable())
moveToNextEntry(pos, x);
else
currentInformationItem()->setFocusAt(pos, x);
} else if (item == currentInformationItem()) {
moveToNextEntry(pos, x);
}
}
void CommandEntry::moveToPreviousItem(int pos, qreal x)
{
WorksheetTextItem* item = qobject_cast<WorksheetTextItem*>(sender());
if (!item)
return;
if (item == m_commandItem || item == nullptr) {
moveToPreviousEntry(pos, x);
} else if (item == currentInformationItem()) {
m_commandItem->setFocusAt(pos, x);
}
}
QString CommandEntry::command()
{
QString cmd = m_commandItem->toPlainText();
cmd.replace(QChar::ParagraphSeparator, QLatin1Char('\n')); //Replace the U+2029 paragraph break by a Normal Newline
cmd.replace(QChar::LineSeparator, QLatin1Char('\n')); //Replace the line break by a Normal Newline
return cmd;
}
void CommandEntry::setExpression(Cantor::Expression* expr)
{
/*
if ( m_expression ) {
if (m_expression->status() == Cantor::Expression::Computing) {
qDebug() << "OLD EXPRESSION STILL ACTIVE";
m_expression->interrupt();
}
m_expression->deleteLater();
}*/
// Delete any previous error
if(m_errorItem)
{
m_errorItem->deleteLater();
m_errorItem = nullptr;
}
foreach(WorksheetTextItem* item, m_informationItems)
{
item->deleteLater();
}
m_informationItems.clear();
// Delete any previous result
clearResultItems();
m_expression = expr;
m_resultsCollapsed = false;
connect(expr, SIGNAL(gotResult()), this, SLOT(updateEntry()));
connect(expr, SIGNAL(resultsCleared()), this, SLOT(clearResultItems()));
connect(expr, SIGNAL(resultRemoved(int)), this, SLOT(removeResultItem(int)));
connect(expr, SIGNAL(resultReplaced(int)), this, SLOT(replaceResultItem(int)));
connect(expr, SIGNAL(idChanged()), this, SLOT(updatePrompt()));
connect(expr, SIGNAL(statusChanged(Cantor::Expression::Status)), this, SLOT(expressionChangedStatus(Cantor::Expression::Status)));
connect(expr, SIGNAL(needsAdditionalInformation(QString)), this, SLOT(showAdditionalInformationPrompt(QString)));
connect(expr, SIGNAL(statusChanged(Cantor::Expression::Status)), this, SLOT(updatePrompt()));
updatePrompt();
if(expr->result())
{
worksheet()->gotResult(expr);
updateEntry();
}
expressionChangedStatus(expr->status());
}
Cantor::Expression* CommandEntry::expression()
{
return m_expression;
}
bool CommandEntry::acceptRichText()
{
return false;
}
void CommandEntry::setContent(const QString& content)
{
m_commandItem->setPlainText(content);
}
void CommandEntry::setContent(const QDomElement& content, const KZip& file)
{
m_commandItem->setPlainText(content.firstChildElement(QLatin1String("Command")).text());
LoadedExpression* expr=new LoadedExpression( worksheet()->session() );
expr->loadFromXml(content, file);
//background color
QDomElement backgroundElem = content.firstChildElement(QLatin1String("Background"));
if (!backgroundElem.isNull())
{
QColor color;
color.setRed(backgroundElem.attribute(QLatin1String("red")).toInt());
color.setGreen(backgroundElem.attribute(QLatin1String("green")).toInt());
color.setBlue(backgroundElem.attribute(QLatin1String("blue")).toInt());
m_commandItem->setBackgroundColor(color);
}
//text properties
QDomElement textElem = content.firstChildElement(QLatin1String("Text"));
if (!textElem.isNull())
{
//text color
QDomElement colorElem = textElem.firstChildElement(QLatin1String("Color"));
QColor color;
color.setRed(colorElem.attribute(QLatin1String("red")).toInt());
color.setGreen(colorElem.attribute(QLatin1String("green")).toInt());
color.setBlue(colorElem.attribute(QLatin1String("blue")).toInt());
m_commandItem->setDefaultTextColor(color);
//font properties
QDomElement fontElem = textElem.firstChildElement(QLatin1String("Font"));
QFont font;
font.setFamily(fontElem.attribute(QLatin1String("family")));
font.setPointSize(fontElem.attribute(QLatin1String("pointSize")).toInt());
font.setWeight(fontElem.attribute(QLatin1String("weight")).toInt());
font.setItalic(fontElem.attribute(QLatin1String("italic")).toInt());
m_commandItem->setFont(font);
}
setExpression(expr);
}
+void CommandEntry::setContentFromJupyter(const QJsonObject& cell)
+{
+ m_commandItem->setPlainText(JupyterUtils::getSource(cell));
+
+ LoadedExpression* expr=new LoadedExpression( worksheet()->session() );
+ expr->loadFromJupyter(cell);
+ setExpression(expr);
+
+ // https://nbformat.readthedocs.io/en/latest/format_description.html#cell-metadata
+ // 'collapsed': +
+ // 'scrolled', 'deletable', 'name', 'tags' don't supported Cantor, so ignore them
+ // 'source_hidden' don't supported
+ // 'format' for raw entry, so ignore
+ // I haven't found 'outputs_hidden' inside Jupyter notebooks, and difference from 'collapsed'
+ // not clear, so also ignore
+ const QJsonObject& metadata = JupyterUtils::getMetadata(cell);
+ const QJsonValue& collapsed = metadata.value(QLatin1String("collapsed"));
+ if (collapsed.isBool() && collapsed.toBool() == true && !m_resultItems.isEmpty())
+ {
+ // Disable animation for hiding results, we don't need animation on document load stage
+ bool animationValue = worksheet()->animationsEnabled();
+ worksheet()->enableAnimations(false);
+ collapseResults();
+ worksheet()->enableAnimations(animationValue);
+ }
+
+ setJupyterMetadata(metadata);
+}
+
+QJsonValue CommandEntry::toJupyterJson()
+{
+ QJsonObject entry;
+
+ entry.insert(QLatin1String("cell_type"), QLatin1String("code"));
+
+ QJsonValue executionCountValue;
+ if (expression() && expression()->id() != -1)
+ executionCountValue = QJsonValue(expression()->id());
+ entry.insert(QLatin1String("execution_count"), executionCountValue);
+
+ QJsonObject metadata(jupyterMetadata());
+ if (m_resultsCollapsed)
+ metadata.insert(QLatin1String("collapsed"), true);
+
+ entry.insert(QLatin1String("metadata"), metadata);
+
+ JupyterUtils::setSource(entry, command());
+
+ QJsonArray outputs;
+ if (expression())
+ {
+ Cantor::Expression::Status status = expression()->status();
+ if (status == Cantor::Expression::Error || status == Cantor::Expression::Interrupted)
+ {
+ QJsonObject errorOutput;
+ errorOutput.insert(JupyterUtils::outputTypeKey, QLatin1String("error"));
+ errorOutput.insert(QLatin1String("ename"), QLatin1String("Unknown"));
+ errorOutput.insert(QLatin1String("evalue"), QLatin1String("Unknown"));
+
+ QJsonArray traceback;
+ if (status == Cantor::Expression::Error)
+ {
+ const QStringList& error = expression()->errorMessage().split(QLatin1Char('\n'));
+ for (const QString& line: error)
+ traceback.append(line);
+ }
+ else
+ {
+ traceback.append(i18n("Interrupted"));
+ }
+ errorOutput.insert(QLatin1String("traceback"), traceback);
+
+ outputs.append(errorOutput);
+ }
+
+ for (Cantor::Result * const result: expression()->results())
+ {
+ const QJsonValue& resultJson = result->toJupyterJson();
+
+ // Jupyter TODO: Convert EpsResult here?
+ if (result->type() == Cantor::EpsResult::Type)
+ {
+ QJsonObject root;
+
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/plain"), QString());
+
+ const QImage& image = worksheet()->epsRenderer()->renderToImage(result->data().toUrl());
+
+ QByteArray ba;
+ QBuffer buffer(&ba);
+ buffer.open(QIODevice::WriteOnly);
+ image.save(&buffer, "PNG");
+ data.insert(JupyterUtils::pngMime, QString::fromLatin1(ba.toBase64()));
+
+ root.insert(QLatin1String("data"), data);
+
+ QJsonObject metadata;
+ QJsonObject size;
+ size.insert(QLatin1String("width"), image.size().width());
+ size.insert(QLatin1String("height"), image.size().height());
+ metadata.insert(QLatin1String("image/png"), size);
+ root.insert(QLatin1String("metadata"), metadata);
+
+ outputs.append(root);
+ }
+ else if (!resultJson.isNull())
+ outputs.append(resultJson);
+ }
+ }
+ entry.insert(QLatin1String("outputs"), outputs);
+
+ return entry;
+}
+
void CommandEntry::showCompletion()
{
const QString line = currentLine();
if(!worksheet()->completionEnabled() || line.trimmed().isEmpty())
{
if (m_commandItem->hasFocus())
m_commandItem->insertTab();
return;
} else if (isShowingCompletionPopup()) {
QString comp = m_completionObject->completion();
qDebug() << "command" << m_completionObject->command();
qDebug() << "completion" << comp;
if (comp != m_completionObject->command()
|| !m_completionObject->hasMultipleMatches()) {
if (m_completionObject->hasMultipleMatches()) {
completeCommandTo(comp, PreliminaryCompletion);
} else {
completeCommandTo(comp, FinalCompletion);
m_completionBox->hide();
}
} else {
m_completionBox->down();
}
} else {
int p = m_commandItem->textCursor().positionInBlock();
Cantor::CompletionObject* tco=worksheet()->session()->completionFor(line, p);
if(tco)
setCompletion(tco);
}
}
void CommandEntry::selectPreviousCompletion()
{
if (isShowingCompletionPopup())
m_completionBox->up();
}
QString CommandEntry::toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)
{
Q_UNUSED(commentStartingSeq);
Q_UNUSED(commentEndingSeq);
if (command().isEmpty())
return QString();
return command() + commandSep;
}
QDomElement CommandEntry::toXml(QDomDocument& doc, KZip* archive)
{
QDomElement exprElem = doc.createElement( QLatin1String("Expression") );
QDomElement cmdElem = doc.createElement( QLatin1String("Command") );
cmdElem.appendChild(doc.createTextNode( command() ));
exprElem.appendChild(cmdElem);
// save results of the expression if they exist
if (expression())
{
const QString& errorMessage = expression()->errorMessage();
if (!errorMessage.isEmpty())
{
QDomElement errorElem = doc.createElement( QLatin1String("Error") );
errorElem.appendChild(doc.createTextNode(errorMessage));
exprElem.appendChild(errorElem);
}
for (Cantor::Result * const result: expression()->results())
{
const QDomElement& resultElem = result->toXml(doc);
exprElem.appendChild(resultElem);
if (archive)
result->saveAdditionalData(archive);
}
}
//save the background color if it differs from the default one
const QColor& backgroundColor = m_commandItem->backgroundColor();
KColorScheme scheme = KColorScheme(QPalette::Normal, KColorScheme::View);
if (backgroundColor != scheme.background(KColorScheme::AlternateBackground).color())
{
QDomElement colorElem = doc.createElement( QLatin1String("Background") );
colorElem.setAttribute(QLatin1String("red"), QString::number(backgroundColor.red()));
colorElem.setAttribute(QLatin1String("green"), QString::number(backgroundColor.green()));
colorElem.setAttribute(QLatin1String("blue"), QString::number(backgroundColor.blue()));
exprElem.appendChild(colorElem);
}
//save the text properties if they differ from default values
const QFont& font = m_commandItem->font();
if (font != QFontDatabase::systemFont(QFontDatabase::FixedFont))
{
QDomElement textElem = doc.createElement(QLatin1String("Text"));
//font properties
QDomElement fontElem = doc.createElement(QLatin1String("Font"));
fontElem.setAttribute(QLatin1String("family"), font.family());
fontElem.setAttribute(QLatin1String("pointSize"), QString::number(font.pointSize()));
fontElem.setAttribute(QLatin1String("weight"), QString::number(font.weight()));
fontElem.setAttribute(QLatin1String("italic"), QString::number(font.italic()));
textElem.appendChild(fontElem);
//text color
const QColor& textColor = m_commandItem->defaultTextColor();
QDomElement colorElem = doc.createElement( QLatin1String("Color") );
colorElem.setAttribute(QLatin1String("red"), QString::number(textColor.red()));
colorElem.setAttribute(QLatin1String("green"), QString::number(textColor.green()));
colorElem.setAttribute(QLatin1String("blue"), QString::number(textColor.blue()));
textElem.appendChild(colorElem);
exprElem.appendChild(textElem);
}
return exprElem;
}
QString CommandEntry::currentLine()
{
if (!m_commandItem->hasFocus())
return QString();
QTextBlock block = m_commandItem->textCursor().block();
return block.text();
}
bool CommandEntry::evaluateCurrentItem()
{
// we can't use m_commandItem->hasFocus() here, because
// that doesn't work when the scene doesn't have the focus,
// e.g. when an assistant is used.
if (m_commandItem == worksheet()->focusItem()) {
return evaluate();
} else if (informationItemHasFocus()) {
addInformation();
return true;
}
return false;
}
bool CommandEntry::evaluate(EvaluationOption evalOp)
{
if (worksheet()->session()->status() == Cantor::Session::Disable)
worksheet()->loginToSession();
removeContextHelp();
QToolTip::hideText();
QString cmd = command();
m_evaluationOption = evalOp;
if(cmd.isEmpty()) {
removeResults();
foreach(WorksheetTextItem* item, m_informationItems) {
item->deleteLater();
}
m_informationItems.clear();
recalculateSize();
evaluateNext(m_evaluationOption);
return false;
}
Cantor::Expression* expr;
expr = worksheet()->session()->evaluateExpression(cmd);
connect(expr, SIGNAL(gotResult()), worksheet(), SLOT(gotResult()));
setExpression(expr);
return true;
}
void CommandEntry::interruptEvaluation()
{
Cantor::Expression *expr = expression();
if(expr)
expr->interrupt();
}
void CommandEntry::updateEntry()
{
qDebug() << "update Entry";
Cantor::Expression* expr = expression();
if (expr == nullptr || expr->results().isEmpty())
return;
if (expr->results().last()->type() == Cantor::HelpResult::Type)
return; // Help is handled elsewhere
//CommandEntry::updateEntry() is only called if the worksheet view is resized
//or when we got a new result(s).
//In the second case the number of results and the number of result graphic objects is different
//and we add a new graphic objects for the new result(s) (new result(s) are located in the end).
// NOTE: LatexResult could request update (change from rendered to code, for example)
// So, just update results, if we haven't new results or something similar
if (m_resultItems.size() < expr->results().size())
{
if (m_resultsCollapsed)
expandResults();
for (int i = m_resultItems.size(); i < expr->results().size(); i++)
m_resultItems << ResultItem::create(this, expr->results()[i]);
}
else
{
for (ResultItem* item: m_resultItems)
item->update();
}
animateSizeChange();
}
void CommandEntry::expressionChangedStatus(Cantor::Expression::Status status)
{
switch (status)
{
case Cantor::Expression::Computing:
{
//change the background of the promt item and start animating it (fade in/out).
//don't start the animation immediately in order to avoid unwanted flickering for "short" commands,
//start the animation after 1 second passed.
if (worksheet()->animationsEnabled())
{
const int id = m_expression->id();
QTimer::singleShot(1000, this, [this, id] () {
if(m_expression->status() == Cantor::Expression::Computing && m_expression->id() == id)
m_promptItemAnimation->start();
});
}
break;
}
case Cantor::Expression::Error:
case Cantor::Expression::Interrupted:
m_promptItemAnimation->stop();
m_promptItem->setOpacity(1.);
m_commandItem->setFocusAt(WorksheetTextItem::BottomRight, 0);
if(!m_errorItem)
{
m_errorItem = new WorksheetTextItem(this, Qt::TextSelectableByMouse);
}
if (status == Cantor::Expression::Error)
{
QString error = m_expression->errorMessage().toHtmlEscaped();
while (error.endsWith(QLatin1Char('\n')))
error.chop(1);
error.replace(QLatin1String("\n"), QLatin1String("<br>"));
error.replace(QLatin1String(" "), QLatin1String("&nbsp;"));
m_errorItem->setHtml(error);
}
else
m_errorItem->setHtml(i18n("Interrupted"));
recalculateSize();
break;
case Cantor::Expression::Done:
m_promptItemAnimation->stop();
m_promptItem->setOpacity(1.);
evaluateNext(m_evaluationOption);
m_evaluationOption = DoNothing;
break;
default:
break;
}
}
void CommandEntry::animatePromptItem() {
if(m_expression->status() == Cantor::Expression::Computing)
m_promptItemAnimation->start();
}
bool CommandEntry::isEmpty()
{
if (m_commandItem->toPlainText().trimmed().isEmpty()) {
if (!m_resultItems.isEmpty())
return false;
return true;
}
return false;
}
bool CommandEntry::focusEntry(int pos, qreal xCoord)
{
if (aboutToBeRemoved())
return false;
WorksheetTextItem* item;
if (pos == WorksheetTextItem::TopLeft || pos == WorksheetTextItem::TopCoord)
item = m_commandItem;
else if (m_informationItems.size() && currentInformationItem()->isEditable())
item = currentInformationItem();
else
item = m_commandItem;
item->setFocusAt(pos, xCoord);
return true;
}
void CommandEntry::setCompletion(Cantor::CompletionObject* tc)
{
if (m_completionObject)
delete m_completionObject;
m_completionObject = tc;
connect(m_completionObject, &Cantor::CompletionObject::done, this, &CommandEntry::showCompletions);
connect(m_completionObject, &Cantor::CompletionObject::lineDone, this, &CommandEntry::completeLineTo);
}
void CommandEntry::showCompletions()
{
disconnect(m_completionObject, &Cantor::CompletionObject::done, this, &CommandEntry::showCompletions);
QString completion = m_completionObject->completion();
qDebug()<<"completion: "<<completion;
qDebug()<<"showing "<<m_completionObject->allMatches();
if(m_completionObject->hasMultipleMatches())
{
completeCommandTo(completion);
QToolTip::showText(QPoint(), QString(), worksheetView());
if (!m_completionBox)
m_completionBox = new KCompletionBox(worksheetView());
m_completionBox->clear();
m_completionBox->setItems(m_completionObject->allMatches());
QList<QListWidgetItem*> items = m_completionBox->findItems(m_completionObject->command(), Qt::MatchFixedString|Qt::MatchCaseSensitive);
if (!items.empty())
m_completionBox->setCurrentItem(items.first());
m_completionBox->setTabHandling(false);
m_completionBox->setActivateOnSelect(true);
connect(m_completionBox.data(), &KCompletionBox::activated, this, &CommandEntry::applySelectedCompletion);
connect(m_commandItem->document(), SIGNAL(contentsChanged()), this, SLOT(completedLineChanged()));
connect(m_completionObject, &Cantor::CompletionObject::done, this, &CommandEntry::updateCompletions);
m_commandItem->activateCompletion(true);
m_completionBox->popup();
m_completionBox->move(getPopupPosition());
} else
{
completeCommandTo(completion, FinalCompletion);
}
}
bool CommandEntry::isShowingCompletionPopup()
{
return m_completionBox && m_completionBox->isVisible();
}
void CommandEntry::applySelectedCompletion()
{
QListWidgetItem* item = m_completionBox->currentItem();
if(item)
completeCommandTo(item->text(), FinalCompletion);
m_completionBox->hide();
}
void CommandEntry::completedLineChanged()
{
if (!isShowingCompletionPopup()) {
// the completion popup is not visible anymore, so let's clean up
removeContextHelp();
return;
}
const QString line = currentLine();
//FIXME: For some reason, this slot constantly triggeres, so I have added checking, is this update really needed
if (line != m_completionObject->command())
m_completionObject->updateLine(line, m_commandItem->textCursor().positionInBlock());
}
void CommandEntry::updateCompletions()
{
if (!m_completionObject)
return;
QString completion = m_completionObject->completion();
qDebug()<<"completion: "<<completion;
qDebug()<<"showing "<<m_completionObject->allMatches();
if(m_completionObject->hasMultipleMatches() || !completion.isEmpty())
{
QToolTip::showText(QPoint(), QString(), worksheetView());
m_completionBox->setItems(m_completionObject->allMatches());
QList<QListWidgetItem*> items = m_completionBox->findItems(m_completionObject->command(), Qt::MatchFixedString|Qt::MatchCaseSensitive);
if (!items.empty())
m_completionBox->setCurrentItem(items.first());
else if (m_completionBox->items().count() == 1)
m_completionBox->setCurrentRow(0);
else
m_completionBox->clearSelection();
m_completionBox->move(getPopupPosition());
} else
{
removeContextHelp();
}
}
void CommandEntry::completeCommandTo(const QString& completion, CompletionMode mode)
{
qDebug() << "completion: " << completion;
Cantor::CompletionObject::LineCompletionMode cmode;
if (mode == FinalCompletion) {
cmode = Cantor::CompletionObject::FinalCompletion;
Cantor::SyntaxHelpObject* obj = worksheet()->session()->syntaxHelpFor(completion);
if(obj)
setSyntaxHelp(obj);
} else {
cmode = Cantor::CompletionObject::PreliminaryCompletion;
if(m_syntaxHelpObject)
m_syntaxHelpObject->deleteLater();
m_syntaxHelpObject=nullptr;
}
m_completionObject->completeLine(completion, cmode);
}
void CommandEntry::completeLineTo(const QString& line, int index)
{
qDebug() << "line completion: " << line;
QTextCursor cursor = m_commandItem->textCursor();
cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::MoveAnchor);
cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor);
int startPosition = cursor.position();
cursor.insertText(line);
cursor.setPosition(startPosition + index);
m_commandItem->setTextCursor(cursor);
if (m_syntaxHelpObject) {
m_syntaxHelpObject->fetchSyntaxHelp();
// If we are about to show syntax help, then this was the final
// completion, and we should clean up.
removeContextHelp();
}
}
void CommandEntry::setSyntaxHelp(Cantor::SyntaxHelpObject* sh)
{
if(m_syntaxHelpObject)
m_syntaxHelpObject->deleteLater();
m_syntaxHelpObject=sh;
connect(sh, SIGNAL(done()), this, SLOT(showSyntaxHelp()));
}
void CommandEntry::showSyntaxHelp()
{
QString msg = m_syntaxHelpObject->toHtml();
const QPointF cursorPos = m_commandItem->cursorPosition();
// QToolTip don't support &nbsp;, but support multiple spaces
msg.replace(QLatin1String("&nbsp;"), QLatin1String(" "));
// Don't support &quot too;
msg.replace(QLatin1String("&quot;"), QLatin1String("\""));
QToolTip::showText(toGlobalPosition(cursorPos), msg, worksheetView());
}
void CommandEntry::resultDeleted()
{
qDebug()<<"result got removed...";
}
void CommandEntry::addInformation()
{
WorksheetTextItem *answerItem = currentInformationItem();
answerItem->setTextInteractionFlags(Qt::TextSelectableByMouse);
QString inf = answerItem->toPlainText();
inf.replace(QChar::ParagraphSeparator, QLatin1Char('\n'));
inf.replace(QChar::LineSeparator, QLatin1Char('\n'));
qDebug()<<"adding information: "<<inf;
if(m_expression)
m_expression->addInformation(inf);
}
void CommandEntry::showAdditionalInformationPrompt(const QString& question)
{
WorksheetTextItem* questionItem = new WorksheetTextItem(this, Qt::TextSelectableByMouse);
WorksheetTextItem* answerItem = new WorksheetTextItem(this, Qt::TextEditorInteraction);
//change the color and the font for when asking for additional information in order to
//better discriminate from the usual input in the command entry
KColorScheme scheme = KColorScheme(QPalette::Normal, KColorScheme::View);
QColor color = scheme.foreground(KColorScheme::PositiveText).color();
QFont font;
font.setItalic(true);
questionItem->setFont(font);
questionItem->setDefaultTextColor(color);
answerItem->setFont(font);
answerItem->setDefaultTextColor(color);
questionItem->setPlainText(question);
m_informationItems.append(questionItem);
m_informationItems.append(answerItem);
connect(answerItem, &WorksheetTextItem::moveToPrevious, this, &CommandEntry::moveToPreviousItem);
connect(answerItem, &WorksheetTextItem::moveToNext, this, &CommandEntry::moveToNextItem);
connect(answerItem, &WorksheetTextItem::execute, this, &CommandEntry::addInformation);
answerItem->setFocus();
recalculateSize();
}
void CommandEntry::removeResults()
{
//clear the Result objects
if(m_expression)
m_expression->clearResults();
}
void CommandEntry::removeResult(Cantor::Result* result)
{
if (m_expression)
m_expression->removeResult(result);
}
void CommandEntry::removeResultItem(int index)
{
fadeOutItem(m_resultItems[index]->graphicsObject());
m_resultItems.remove(index);
recalculateSize();
}
void CommandEntry::clearResultItems()
{
//fade out all result graphic objects
for(auto* item : m_resultItems)
fadeOutItem(item->graphicsObject());
m_resultItems.clear();
recalculateSize();
}
void CommandEntry::replaceResultItem(int index)
{
ResultItem* previousItem = m_resultItems[index];
m_resultItems[index] = ResultItem::create(this, m_expression->results()[index]);
previousItem->deleteLater();
recalculateSize();
}
void CommandEntry::removeContextHelp()
{
disconnect(m_commandItem->document(), SIGNAL(contentsChanged()), this, SLOT(completedLineChanged()));
m_commandItem->activateCompletion(false);
if (m_completionBox)
m_completionBox->hide();
}
void CommandEntry::updatePrompt(const QString& postfix)
{
KColorScheme color = KColorScheme( QPalette::Normal, KColorScheme::View);
m_promptItem->setPlainText(QLatin1String(""));
QTextCursor c = m_promptItem->textCursor();
QTextCharFormat cformat = c.charFormat();
cformat.clearForeground();
c.setCharFormat(cformat);
cformat.setFontWeight(QFont::Bold);
//insert the session id if available
if(m_expression && worksheet()->showExpressionIds()&&m_expression->id()!=-1)
c.insertText(QString::number(m_expression->id()),cformat);
//detect the correct color for the prompt, depending on the
//Expression state
if(m_expression)
{
if(m_expression ->status() == Cantor::Expression::Computing&&worksheet()->isRunning())
cformat.setForeground(color.foreground(KColorScheme::PositiveText));
else if(m_expression ->status() == Cantor::Expression::Queued)
cformat.setForeground(color.foreground(KColorScheme::InactiveText));
else if(m_expression ->status() == Cantor::Expression::Error)
cformat.setForeground(color.foreground(KColorScheme::NegativeText));
else if(m_expression ->status() == Cantor::Expression::Interrupted)
cformat.setForeground(color.foreground(KColorScheme::NeutralText));
else
cformat.setFontWeight(QFont::Normal);
}
c.insertText(postfix, cformat);
recalculateSize();
}
WorksheetTextItem* CommandEntry::currentInformationItem()
{
if (m_informationItems.isEmpty())
return nullptr;
return m_informationItems.last();
}
bool CommandEntry::informationItemHasFocus()
{
if (m_informationItems.isEmpty())
return false;
return m_informationItems.last()->hasFocus();
}
bool CommandEntry::focusWithinThisItem()
{
return focusItem() != nullptr;
}
QPoint CommandEntry::getPopupPosition()
{
const QPointF cursorPos = m_commandItem->cursorPosition();
const QPoint globalPos = toGlobalPosition(cursorPos);
const QDesktopWidget* desktop = QApplication::desktop();
const QRect screenRect = desktop->screenGeometry(globalPos);
if (globalPos.y() + m_completionBox->height() < screenRect.bottom()) {
return (globalPos);
} else {
QTextBlock block = m_commandItem->textCursor().block();
QTextLayout* layout = block.layout();
int pos = m_commandItem->textCursor().position() - block.position();
QTextLine line = layout->lineForTextPosition(pos);
int dy = - m_completionBox->height() - line.height() - line.leading();
return QPoint(globalPos.x(), globalPos.y() + dy);
}
}
void CommandEntry::invalidate()
{
qDebug() << "ToDo: Invalidate here";
}
bool CommandEntry::wantToEvaluate()
{
return !isEmpty();
}
QPoint CommandEntry::toGlobalPosition(QPointF localPos)
{
const QPointF scenePos = mapToScene(localPos);
const QPoint viewportPos = worksheetView()->mapFromScene(scenePos);
return worksheetView()->viewport()->mapToGlobal(viewportPos);
}
WorksheetCursor CommandEntry::search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos)
{
if (pos.isValid() && pos.entry() != this)
return WorksheetCursor();
WorksheetCursor p = pos;
QTextCursor cursor;
if (flags & WorksheetEntry::SearchCommand) {
cursor = m_commandItem->search(pattern, qt_flags, p);
if (!cursor.isNull())
return WorksheetCursor(this, m_commandItem, cursor);
}
if (p.textItem() == m_commandItem)
p = WorksheetCursor();
if (m_errorItem && flags & WorksheetEntry::SearchError) {
cursor = m_errorItem->search(pattern, qt_flags, p);
if (!cursor.isNull())
return WorksheetCursor(this, m_errorItem, cursor);
}
if (p.textItem() == m_errorItem)
p = WorksheetCursor();
for (auto* resultItem : m_resultItems)
{
WorksheetTextItem* textResult = dynamic_cast<WorksheetTextItem*>
(resultItem);
if (textResult && flags & WorksheetEntry::SearchResult) {
cursor = textResult->search(pattern, qt_flags, p);
if (!cursor.isNull())
return WorksheetCursor(this, textResult, cursor);
}
}
return WorksheetCursor();
}
void CommandEntry::layOutForWidth(qreal w, bool force)
{
if (w == size().width() && !force)
return;
m_promptItem->setPos(0,0);
double x = 0 + m_promptItem->width() + HorizontalSpacing;
double y = 0;
double width = 0;
m_commandItem->setGeometry(x,y, w-x);
width = qMax(width, m_commandItem->width());
y += qMax(m_commandItem->height(), m_promptItem->height());
foreach(WorksheetTextItem* information, m_informationItems) {
y += VerticalSpacing;
y += information->setGeometry(x,y,w-x);
width = qMax(width, information->width());
}
if (m_errorItem) {
y += VerticalSpacing;
y += m_errorItem->setGeometry(x,y,w-x);
width = qMax(width, m_errorItem->width());
}
for (auto* resultItem : m_resultItems)
{
if (!resultItem || !resultItem->graphicsObject()->isVisible())
continue;
y += VerticalSpacing;
y += resultItem->setGeometry(x, y, w-x);
width = qMax(width, resultItem->width());
}
y += VerticalMargin;
QSizeF s(x+ width, y);
if (animationActive()) {
updateSizeAnimation(s);
} else {
setSize(s);
}
}
void CommandEntry::startRemoving()
{
m_promptItem->setItemDragable(false);
WorksheetEntry::startRemoving();
}
WorksheetTextItem* CommandEntry::highlightItem()
{
return m_commandItem;
}
void CommandEntry::collapseResults()
{
for(auto* item : m_resultItems) {
fadeOutItem(item->graphicsObject(), nullptr);
item->graphicsObject()->hide();
}
m_resultsCollapsed = true;
if (worksheet()->animationsEnabled())
{
QTimer::singleShot(100, this, &CommandEntry::setMidPrompt);
QTimer::singleShot(200, this, &CommandEntry::setHidePrompt);
}
else
setHidePrompt();
animateSizeChange();
}
void CommandEntry::expandResults()
{
for(auto* item : m_resultItems) {
fadeInItem(item->graphicsObject(), nullptr);
item->graphicsObject()->show();
}
m_resultsCollapsed = false;
if (worksheet()->animationsEnabled())
{
QTimer::singleShot(100, this, &CommandEntry::setMidPrompt);
QTimer::singleShot(200, this, SLOT(updatePrompt()));
}
else
this->updatePrompt();
animateSizeChange();
}
void CommandEntry::setHidePrompt()
{
updatePrompt(HidePrompt);
}
void CommandEntry::setMidPrompt()
{
updatePrompt(MidPrompt);
}
diff --git a/src/commandentry.h b/src/commandentry.h
index be2777fe..37a5ade5 100644
--- a/src/commandentry.h
+++ b/src/commandentry.h
@@ -1,183 +1,186 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
Copyright (C) 2018 Alexander Semke <alexander.semke@web.de>
*/
#ifndef COMMANDENTRY_H
#define COMMANDENTRY_H
#include <QPointer>
#include <KCompletionBox>
#include "worksheetentry.h"
#include "lib/expression.h"
class Worksheet;
class ResultItem;
class QTimer;
+class QJsonObject;
namespace Cantor{
class Result;
class CompletionObject;
class SyntaxHelpObject;
}
class CommandEntry : public WorksheetEntry
{
Q_OBJECT
public:
static const QString Prompt;
static const QString MidPrompt;
static const QString HidePrompt;
explicit CommandEntry(Worksheet* worksheet);
~CommandEntry() override;
enum {Type = UserType + 2};
int type() const override;
QString command();
void setExpression(Cantor::Expression* expr);
Cantor::Expression* expression();
QString currentLine();
bool isEmpty() override;
void setContent(const QString& content) override;
void setContent(const QDomElement& content, const KZip& file) override;
+ void setContentFromJupyter(const QJsonObject& cell) override;
QDomElement toXml(QDomDocument& doc, KZip* archive) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq) override;
void setCompletion(Cantor::CompletionObject* tc);
void setSyntaxHelp(Cantor::SyntaxHelpObject* sh);
bool acceptRichText() override;
void removeContextHelp();
void interruptEvaluation() override;
bool isShowingCompletionPopup();
bool focusEntry(int pos = WorksheetTextItem::TopLeft, qreal xCoord = 0) override;
void layOutForWidth(qreal w, bool force = false) override;
WorksheetTextItem* highlightItem() override;
WorksheetCursor search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos = WorksheetCursor()) override;
public Q_SLOTS:
bool evaluateCurrentItem() override;
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void addInformation();
void removeResults();
void removeResult(Cantor::Result* result);
void showCompletion() override;
void selectPreviousCompletion();
void updateEntry() override;
void updatePrompt(const QString& postfix = CommandEntry::Prompt);
void expressionChangedStatus(Cantor::Expression::Status status);
void showAdditionalInformationPrompt(const QString& question);
void showCompletions();
void applySelectedCompletion();
void completedLineChanged();
void showSyntaxHelp();
void completeLineTo(const QString& line, int index);
void startRemoving() override;
void moveToNextItem(int pos, qreal x);
void moveToPreviousItem(int pos, qreal x);
void populateMenu(QMenu* menu, QPointF pos) override;
protected:
bool wantToEvaluate() override;
private:
WorksheetTextItem* currentInformationItem();
bool informationItemHasFocus();
bool focusWithinThisItem();
QPoint getPopupPosition();
QPoint toGlobalPosition(QPointF localPos);
void initMenus();
private:
enum CompletionMode {
PreliminaryCompletion,
FinalCompletion
};
private Q_SLOTS:
void invalidate();
void resultDeleted();
void clearResultItems();
void collapseResults();
void expandResults();
void removeResultItem(int index);
void replaceResultItem(int index);
void updateCompletions();
void completeCommandTo(const QString& completion, CommandEntry::CompletionMode mode = PreliminaryCompletion);
void backgroundColorChanged(QAction*);
void textColorChanged(QAction*);
void fontBoldTriggered();
void fontItalicTriggered();
void fontIncreaseTriggered();
void fontDecreaseTriggered();
void fontSelectTriggered();
void animatePromptItem();
void setMidPrompt();
void setHidePrompt();
private:
static const double HorizontalSpacing;
static const double VerticalSpacing;
WorksheetTextItem* m_promptItem;
WorksheetTextItem* m_commandItem;
QVector<ResultItem*> m_resultItems;
bool m_resultsCollapsed;
WorksheetTextItem* m_errorItem;
QList<WorksheetTextItem*> m_informationItems;
Cantor::Expression* m_expression;
Cantor::CompletionObject* m_completionObject;
QPointer<KCompletionBox> m_completionBox;
Cantor::SyntaxHelpObject* m_syntaxHelpObject;
EvaluationOption m_evaluationOption;
QPropertyAnimation* m_promptItemAnimation;
bool m_menusInitialized;
//formatting
QActionGroup* m_backgroundColorActionGroup;
QMenu* m_backgroundColorMenu;
QActionGroup* m_textColorActionGroup;
QMenu* m_textColorMenu;
QMenu* m_fontMenu;
};
#endif // COMMANDENTRY_H
diff --git a/src/extended_document.cpp b/src/extended_document.cpp
new file mode 100644
index 00000000..c3dbfe8a
--- /dev/null
+++ b/src/extended_document.cpp
@@ -0,0 +1,86 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+ */
+
+#include "extended_document.h"
+#include "worksheettextitem.h"
+
+QNetworkAccessManager ExtendedDocument::networkManager;
+
+ExtendedDocument::ExtendedDocument(QObject *parent): QTextDocument(parent)
+{
+
+}
+
+void ExtendedDocument::handleLoad(QNetworkReply* reply)
+{
+ const QUrl& requestUrl = reply->request().url();
+
+ if (loading.contains(requestUrl))
+ {
+ if (reply->error() == QNetworkReply::NoError)
+ {
+ QImage img;
+ img.loadFromData(reply->readAll());
+
+ if (!img.isNull())
+ {
+ this->addResource(QTextDocument::ImageResource, reply->request().url(), QVariant(img));
+
+ // TODO: find another way to redraw document
+ QTextCursor cursor(this);
+ cursor.movePosition(QTextCursor::End);
+ cursor.insertText(QLatin1String("\n"));
+ cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
+ cursor.removeSelectedText();
+ }
+ else
+ qDebug() << "content of url" << requestUrl << "not a image";
+ }
+ else
+ {
+ qDebug() << "loading image in document from" << requestUrl << "failed with error: " << reply->errorString();
+ }
+
+ loading.removeOne(requestUrl);
+ if (loading.size() == 0)
+ disconnect(&networkManager, &QNetworkAccessManager::finished, this, &ExtendedDocument::handleLoad);
+ }
+}
+
+QVariant ExtendedDocument::loadResource(int type, const QUrl &name)
+{
+ if (type == QTextDocument::ImageResource && (name.scheme() == QLatin1String("http") || name.scheme() == QLatin1String("https")))
+ {
+ if (!loading.contains(name))
+ {
+ if (loading.size() == 0)
+ connect(&networkManager, &QNetworkAccessManager::finished, this, &ExtendedDocument::handleLoad);
+
+ QNetworkRequest request(name);
+ request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
+ networkManager.get(request);
+
+ loading << name;
+ }
+ return QVariant();
+ }
+ else
+ return QTextDocument::loadResource(type, name);
+}
diff --git a/src/lib/epsresult.h b/src/extended_document.h
similarity index 50%
copy from src/lib/epsresult.h
copy to src/extended_document.h
index d4f3ce04..550e803f 100644
--- a/src/lib/epsresult.h
+++ b/src/extended_document.h
@@ -1,60 +1,52 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
- Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
*/
-#ifndef _EPSRESULT_H
-#define _EPSRESULT_H
+#ifndef EXTENDEDDOCUMENT_H
+#define EXTENDEDDOCUMENT_H
-#include "result.h"
-#include "cantor_export.h"
-#include <QUrl>
+#include <QTextDocument>
+#include <QDebug>
+#include <QNetworkReply>
#include <QImage>
+#include <QList>
+#include <QGraphicsTextItem>
+#include <QTextCursor>
-namespace Cantor
-{
-class EpsResultPrivate;
-
-class CANTOR_EXPORT EpsResult : public Result
+/**
+ * Additional class with one purpose - expand QTextDocument and
+ * allow Image Resources from web (http and https urls)
+ */
+class ExtendedDocument : public QTextDocument
{
public:
- enum {Type=5};
- explicit EpsResult( const QUrl& url, const QImage& image = QImage());
- ~EpsResult() override;
+ ExtendedDocument(QObject *parent = nullptr);
- QString toHtml() override;
- QString toLatex() override;
- QVariant data() override;
- QUrl url() override;
- QImage image();
+ protected:
+ QVariant loadResource(int type, const QUrl &name) override;
- int type() override;
- QString mimeType() override;
-
- QDomElement toXml(QDomDocument& doc) override;
- void saveAdditionalData(KZip* archive) override;
-
- void save(const QString& filename) override;
+ private Q_SLOTS:
+ void handleLoad(QNetworkReply *reply);
private:
- EpsResultPrivate* d;
+ QList<QUrl> loading; // List of currently loaded urls
+ static QNetworkAccessManager networkManager;
};
-}
-
-#endif /* _EPSRESULT_H */
+#endif /* EXTENDEDDOCUMENT_H */
diff --git a/src/imageentry.cpp b/src/imageentry.cpp
index 9563c643..6ea548ce 100644
--- a/src/imageentry.cpp
+++ b/src/imageentry.cpp
@@ -1,337 +1,381 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 martin Kuettler <martin.kuettler@gmail.com>
*/
#include "imageentry.h"
#include "worksheetimageitem.h"
#include "actionbar.h"
+#include "jupyterutils.h"
#include <KLocalizedString>
#include <QDebug>
#include <QMenu>
#include <QFileSystemWatcher>
+#include <QJsonValue>
+#include <QJsonObject>
ImageEntry::ImageEntry(Worksheet* worksheet) : WorksheetEntry(worksheet)
{
m_imageItem = nullptr;
m_textItem = new WorksheetTextItem(this);
m_imageWatcher = new QFileSystemWatcher(this);
m_displaySize.width = -1;
m_displaySize.height = -1;
m_printSize.width = -1;
m_printSize.height = -1;
m_displaySize.widthUnit = ImageSize::Auto;
m_displaySize.heightUnit = ImageSize::Auto;
m_printSize.widthUnit = ImageSize::Auto;
m_printSize.heightUnit = ImageSize::Auto;
m_useDisplaySizeForPrinting = true;
connect(m_imageWatcher, &QFileSystemWatcher::fileChanged, this, &ImageEntry::updateEntry);
setFlag(QGraphicsItem::ItemIsFocusable);
updateEntry();
startConfigDialog();
}
void ImageEntry::populateMenu(QMenu* menu, QPointF pos)
{
menu->addAction(QIcon::fromTheme(QLatin1String("configure")), i18n("Configure Image"),
this, SLOT(startConfigDialog()));
menu->addSeparator();
WorksheetEntry::populateMenu(menu, pos);
}
bool ImageEntry::isEmpty()
{
return false;
}
int ImageEntry::type() const
{
return Type;
}
bool ImageEntry::acceptRichText()
{
return false;
}
void ImageEntry::setContent(const QString& content)
{
Q_UNUSED(content);
return;
}
void ImageEntry::setContent(const QDomElement& content, const KZip& file)
{
Q_UNUSED(file);
static QStringList unitNames;
if (unitNames.isEmpty())
unitNames << QLatin1String("(auto)") << QLatin1String("px") << QLatin1String("%");
QDomElement pathElement = content.firstChildElement(QLatin1String("Path"));
QDomElement displayElement = content.firstChildElement(QLatin1String("Display"));
QDomElement printElement = content.firstChildElement(QLatin1String("Print"));
m_imagePath = pathElement.text();
m_displaySize.width = displayElement.attribute(QLatin1String("width")).toDouble();
m_displaySize.height = displayElement.attribute(QLatin1String("height")).toDouble();
m_displaySize.widthUnit = unitNames.indexOf(displayElement.attribute(QLatin1String("widthUnit")));
m_displaySize.heightUnit = unitNames.indexOf(displayElement.attribute(QLatin1String("heightUnit")));
m_useDisplaySizeForPrinting = printElement.attribute(QLatin1String("useDisplaySize")).toInt();
m_printSize.width = printElement.attribute(QLatin1String("width")).toDouble();
m_printSize.height = printElement.attribute(QLatin1String("height")).toDouble();
m_printSize.widthUnit = unitNames.indexOf(printElement.attribute(QLatin1String("widthUnit")));
m_printSize.heightUnit = unitNames.indexOf(printElement.attribute(QLatin1String("heightUnit")));
updateEntry();
}
+void ImageEntry::setContentFromJupyter(const QJsonObject& cell)
+{
+ // No need use ImageEntry because without file this entry type are useless
+ Q_UNUSED(cell);
+ return;
+}
+
+QJsonValue ImageEntry::toJupyterJson()
+{
+ QJsonValue value;
+
+ if (!m_imagePath.isEmpty() && m_imageItem)
+ {
+ const QImage& image = m_imageItem->pixmap().toImage();
+ if (!image.isNull())
+ {
+ QJsonObject entry;
+ entry.insert(QLatin1String("cell_type"), QLatin1String("markdown"));
+
+ QJsonObject metadata;
+ QJsonObject size;
+ size.insert(QLatin1String("width"), image.size().width());
+ size.insert(QLatin1String("height"), image.size().height());
+ metadata.insert(JupyterUtils::pngMime, size);
+ entry.insert(JupyterUtils::metadataKey, metadata);
+
+ QString text(QLatin1String("<img src='attachment:image.png'>"));
+
+ QJsonObject attachments;
+ attachments.insert(QLatin1String("image.png"), JupyterUtils::packMimeBundle(image, JupyterUtils::pngMime));
+ entry.insert(QLatin1String("attachments"), attachments);
+
+ JupyterUtils::setSource(entry, text);
+
+ value = entry;
+ }
+ }
+
+ return value;
+}
+
QDomElement ImageEntry::toXml(QDomDocument& doc, KZip* archive)
{
Q_UNUSED(archive);
static QStringList unitNames;
if (unitNames.isEmpty())
unitNames << QLatin1String("(auto)") << QLatin1String("px") << QLatin1String("%");
QDomElement image = doc.createElement(QLatin1String("Image"));
QDomElement path = doc.createElement(QLatin1String("Path"));
QDomText pathText = doc.createTextNode(m_imagePath);
path.appendChild(pathText);
image.appendChild(path);
QDomElement display = doc.createElement(QLatin1String("Display"));
display.setAttribute(QLatin1String("width"), m_displaySize.width);
display.setAttribute(QLatin1String("widthUnit"), unitNames[m_displaySize.widthUnit]);
display.setAttribute(QLatin1String("height"), m_displaySize.height);
display.setAttribute(QLatin1String("heightUnit"), unitNames[m_displaySize.heightUnit]);
image.appendChild(display);
QDomElement print = doc.createElement(QLatin1String("Print"));
print.setAttribute(QLatin1String("useDisplaySize"), m_useDisplaySizeForPrinting);
print.setAttribute(QLatin1String("width"), m_printSize.width);
print.setAttribute(QLatin1String("widthUnit"), unitNames[m_printSize.widthUnit]);
print.setAttribute(QLatin1String("height"), m_printSize.height);
print.setAttribute(QLatin1String("heightUnit"), unitNames[m_printSize.heightUnit]);
image.appendChild(print);
// For the conversion to latex
QDomElement latexSize = doc.createElement(QLatin1String("LatexSizeString"));
QString sizeString;
if (m_useDisplaySizeForPrinting)
sizeString = latexSizeString(m_displaySize);
else
sizeString = latexSizeString(m_printSize);
QDomText latexSizeString = doc.createTextNode(sizeString);
latexSize.appendChild(latexSizeString);
image.appendChild(latexSize);
return image;
}
QString ImageEntry::toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)
{
Q_UNUSED(commandSep);
return commentStartingSeq + QLatin1String("image: ") + m_imagePath + commentEndingSeq;
}
QString ImageEntry::latexSizeString(const ImageSize& imgSize)
{
// We use the transformation 1 px = 1/72 in ( = 1 pt in Latex)
QString sizeString=QLatin1String("");
if (imgSize.widthUnit == ImageSize::Auto &&
imgSize.heightUnit == ImageSize::Auto)
return QLatin1String("");
if (imgSize.widthUnit == ImageSize::Percent) {
if (imgSize.heightUnit == ImageSize::Auto ||
(imgSize.heightUnit == ImageSize::Percent &&
imgSize.width == imgSize.height))
return QLatin1String("[scale=") + QString::number(imgSize.width / 100) + QLatin1String("]");
// else? We could set the size based on the actual image size
} else if (imgSize.widthUnit == ImageSize::Auto &&
imgSize.heightUnit == ImageSize::Percent) {
return QLatin1String("[scale=") + QString::number(imgSize.height / 100) + QLatin1String("]");
}
if (imgSize.heightUnit == ImageSize::Pixel)
sizeString = QLatin1String("height=") + QString::number(imgSize.height) + QLatin1String("pt");
if (imgSize.widthUnit == ImageSize::Pixel) {
if (!sizeString.isEmpty())
sizeString += QLatin1String(",");
sizeString += QLatin1String("width=") + QString::number(imgSize.width) + QLatin1String("pt");
}
return QLatin1String("[") + sizeString + QLatin1String("]");
}
void ImageEntry::interruptEvaluation()
{
}
bool ImageEntry::evaluate(EvaluationOption evalOp)
{
evaluateNext(evalOp);
return true;
}
qreal ImageEntry::height()
{
if (m_imageItem && m_imageItem->isVisible())
return m_imageItem->height();
else
return m_textItem->height();
}
void ImageEntry::updateEntry()
{
qreal oldHeight = height();
if (m_imagePath.isEmpty()) {
m_textItem->setPlainText(i18n("Right click here to insert image"));
m_textItem->setVisible(true);
if (m_imageItem)
m_imageItem->setVisible(false);
}
else {
if (!m_imageItem)
m_imageItem = new WorksheetImageItem(this);
if (m_imagePath.endsWith(QLatin1String(".eps"), Qt::CaseInsensitive)) {
m_imageItem->setEps(QUrl::fromLocalFile(m_imagePath));
} else {
QImage img(m_imagePath);
m_imageItem->setImage(img);
}
if (!m_imageItem->imageIsValid()) {
const QString msg = i18n("Cannot load image %1", m_imagePath);
m_textItem->setPlainText(msg);
m_textItem->setVisible(true);
m_imageItem->setVisible(false);
} else {
QSizeF size;
if (worksheet()->isPrinting() && ! m_useDisplaySizeForPrinting)
size = imageSize(m_printSize);
else
size = imageSize(m_displaySize);
// Hack: Eps images need to be scaled
if (m_imagePath.endsWith(QLatin1String(".eps"), Qt::CaseInsensitive))
size /= worksheet()->epsRenderer()->scale();
m_imageItem->setSize(size);
qDebug() << size;
m_textItem->setVisible(false);
m_imageItem->setVisible(true);
}
}
qDebug() << oldHeight << height();
if (oldHeight != height())
recalculateSize();
}
QSizeF ImageEntry::imageSize(const ImageSize& imgSize)
{
const QSize& srcSize = m_imageItem->imageSize();
qreal w = 0.0;
qreal h = 0.0;
if (imgSize.heightUnit == ImageSize::Percent)
h = srcSize.height() * imgSize.height / 100;
else if (imgSize.heightUnit == ImageSize::Pixel)
h = imgSize.height;
if (imgSize.widthUnit == ImageSize::Percent)
w = srcSize.width() * imgSize.width / 100;
else if (imgSize.widthUnit == ImageSize::Pixel)
w = imgSize.width;
if (imgSize.widthUnit == ImageSize::Auto) {
if (imgSize.heightUnit == ImageSize::Auto)
return QSizeF(srcSize.width(), srcSize.height());
else if (h == 0)
w = 0;
else
w = h / srcSize.height() * srcSize.width();
} else if (imgSize.heightUnit == ImageSize::Auto) {
if (w == 0)
h = 0;
else
h = w / srcSize.width() * srcSize.height();
}
return QSizeF(w,h);
}
void ImageEntry::startConfigDialog()
{
ImageSettingsDialog* dialog = new ImageSettingsDialog(worksheet()->worksheetView());
dialog->setData(m_imagePath, m_displaySize, m_printSize,
m_useDisplaySizeForPrinting);
connect(dialog, &ImageSettingsDialog::dataChanged, this, &ImageEntry::setImageData);
dialog->show();
}
void ImageEntry::setImageData(const QString& path,
const ImageSize& displaySize,
const ImageSize& printSize,
bool useDisplaySizeForPrinting)
{
if (path != m_imagePath) {
m_imageWatcher->removePath(m_imagePath);
m_imageWatcher->addPath(path);
m_imagePath = path;
}
m_displaySize = displaySize;
m_printSize = printSize;
m_useDisplaySizeForPrinting = useDisplaySizeForPrinting;
updateEntry();
}
void ImageEntry::addActionsToBar(ActionBar* actionBar)
{
actionBar->addButton(QIcon::fromTheme(QLatin1String("configure")), i18n("Configure Image"),
this, SLOT(startConfigDialog()));
}
void ImageEntry::layOutForWidth(qreal w, bool force)
{
if (size().width() == w && !force)
return;
double width;
if (m_imageItem && m_imageItem->isVisible()) {
m_imageItem->setGeometry(0, 0, w, true);
width = m_imageItem->width();
} else {
m_textItem->setGeometry(0, 0, w, true);
width = m_textItem->width();
}
setSize(QSizeF(width, height() + VerticalMargin));
}
bool ImageEntry::wantToEvaluate()
{
return false;
}
bool ImageEntry::wantFocus()
{
return false;
}
diff --git a/src/imageentry.h b/src/imageentry.h
index f0ff44f9..a495d882 100644
--- a/src/imageentry.h
+++ b/src/imageentry.h
@@ -1,85 +1,87 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef IMAGEENTRY_H
#define IMAGEENTRY_H
#include "worksheetentry.h"
#include "imagesettingsdialog.h"
#include <QString>
class Worksheet;
class ActionBar;
class WorksheetImageItem;
class QFileSystemWatcher;
class ImageEntry : public WorksheetEntry
{
Q_OBJECT
public:
explicit ImageEntry(Worksheet* worksheet);
~ImageEntry() override = default;
enum {Type = UserType + 4};
int type() const override;
bool isEmpty() override;
bool acceptRichText() override;
void setContent(const QString& content) override;
void setContent(const QDomElement& content, const KZip& file) override;
+ void setContentFromJupyter(const QJsonObject & cell) override;
QDomElement toXml(QDomDocument& doc, KZip* archive) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq) override;
QSizeF imageSize(const ImageSize& imgSize);
void interruptEvaluation() override;
void layOutForWidth(qreal w, bool force = false) override;
public Q_SLOTS:
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void updateEntry() override;
void populateMenu(QMenu* menu, QPointF pos) override;
void startConfigDialog();
void setImageData(const QString& path, const ImageSize& displaySize,
const ImageSize& printSize, bool useDisplaySizeForPrinting);
protected:
bool wantToEvaluate() override;
bool wantFocus() override;
qreal height();
QString latexSizeString(const ImageSize& imgSize);
void addActionsToBar(ActionBar* actionBar) override;
private:
QString m_imagePath;
ImageSize m_displaySize;
ImageSize m_printSize;
bool m_useDisplaySizeForPrinting;
WorksheetImageItem* m_imageItem;
WorksheetTextItem* m_textItem;
QFileSystemWatcher* m_imageWatcher;
};
#endif /* IMAGEENTRY_H */
diff --git a/src/imageresultitem.cpp b/src/imageresultitem.cpp
index 09849f97..e8e90fad 100644
--- a/src/imageresultitem.cpp
+++ b/src/imageresultitem.cpp
@@ -1,105 +1,111 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "imageresultitem.h"
#include "commandentry.h"
#include "lib/imageresult.h"
#include "lib/epsresult.h"
#include <config-cantor.h>
#include <KLocalizedString>
#include <QFileDialog>
#include <QDebug>
ImageResultItem::ImageResultItem(QGraphicsObject* parent, Cantor::Result* result)
: WorksheetImageItem(parent), ResultItem(result)
{
update();
}
double ImageResultItem::setGeometry(double x, double y, double w)
{
Q_UNUSED(w);
setPos(x,y);
return height();
}
void ImageResultItem::populateMenu(QMenu* menu, QPointF pos)
{
ResultItem::addCommonActions(this, menu);
menu->addSeparator();
qDebug() << "populate Menu";
emit menuCreated(menu, mapToParent(pos));
}
void ImageResultItem::update()
{
Q_ASSERT(m_result->type() == Cantor::ImageResult::Type || m_result->type() == Cantor::EpsResult::Type);
switch(m_result->type()) {
case Cantor::ImageResult::Type:
- setImage(m_result->data().value<QImage>());
+ {
+ QSize displaySize = static_cast<Cantor::ImageResult*>(m_result)->displaySize();
+ if (displaySize.isValid())
+ setImage(m_result->data().value<QImage>(), displaySize);
+ else
+ setImage(m_result->data().value<QImage>());
+ }
break;
case Cantor::EpsResult::Type:
{
Cantor::EpsResult* epsResult = static_cast<Cantor::EpsResult*>(m_result);
#ifdef WITH_EPS
if (!epsResult->image().isNull() && worksheet()->epsRenderer()->scale() == 1.0)
setImage(epsResult->image());
else
setEps(m_result->data().toUrl());
#else
setImage(epsResult->image());
#endif
}
break;
default:
break;
}
}
QRectF ImageResultItem::boundingRect() const
{
return QRectF(0, 0, width(), height());
}
double ImageResultItem::width() const
{
return WorksheetImageItem::width();
}
double ImageResultItem::height() const
{
return WorksheetImageItem::height();
}
void ImageResultItem::saveResult()
{
Cantor::Result* res = result();
const QString& filename=QFileDialog::getSaveFileName(worksheet()->worksheetView(), i18n("Save result"), QString(), res->mimeType());
qDebug()<<"saving result to "<<filename;
res->save(filename);
}
void ImageResultItem::deleteLater()
{
WorksheetImageItem::deleteLater();
}
diff --git a/src/jupyterutils.cpp b/src/jupyterutils.cpp
new file mode 100644
index 00000000..4de7284b
--- /dev/null
+++ b/src/jupyterutils.cpp
@@ -0,0 +1,454 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+
+#include "jupyterutils.h"
+#include "lib/backend.h"
+
+#include <tuple>
+
+#include <QJsonValue>
+#include <QJsonObject>
+#include <QJsonArray>
+#include <QJsonDocument>
+#include <QStringList>
+#include <QSet>
+#include <QImageReader>
+#include <QImageWriter>
+#include <QBuffer>
+#include <QString>
+#include <QUrl>
+#include <QTemporaryFile>
+
+const QString JupyterUtils::cellsKey = QLatin1String("cells");
+const QString JupyterUtils::metadataKey = QLatin1String("metadata");
+const QString JupyterUtils::cantorMetadataKey = QLatin1String("cantor");
+const QString JupyterUtils::nbformatKey = QLatin1String("nbformat");
+const QString JupyterUtils::nbformatMinorKey = QLatin1String("nbformat_minor");
+const QString JupyterUtils::cellTypeKey = QLatin1String("cell_type");
+const QString JupyterUtils::sourceKey = QLatin1String("source");
+const QString JupyterUtils::outputTypeKey = QLatin1String("output_type");
+const QString JupyterUtils::executionCountKey = QLatin1String("execution_count");
+const QString JupyterUtils::outputsKey = QLatin1String("outputs");
+const QString JupyterUtils::dataKey = QLatin1String("data");
+
+const QString JupyterUtils::pngMime = QLatin1String("image/png");
+const QString JupyterUtils::gifMime = QLatin1String("image/gif");
+const QString JupyterUtils::textMime = QLatin1String("text/plain");
+const QString JupyterUtils::htmlMime = QLatin1String("text/html");
+const QString JupyterUtils::latexMime = QLatin1String("text/latex");
+
+const QMimeDatabase JupyterUtils::mimeDatabase;
+
+QJsonValue JupyterUtils::toJupyterMultiline(const QString& source)
+{
+ if (source.contains(QLatin1Char('\n')))
+ {
+ QJsonArray text;
+ const QStringList& lines = source.split(QLatin1Char('\n'));
+ for (int i = 0; i < lines.size(); i++)
+ {
+ QString line = lines[i];
+ // Don't add \n to last line
+ if (i != lines.size() - 1)
+ line.append(QLatin1Char('\n'));
+ // Ignore last line, if it is an empty line
+ else if (line.isEmpty())
+ break;
+
+ text.append(line);
+ }
+ return text;
+ }
+ else
+ return QJsonArray::fromStringList(QStringList(source));
+}
+
+QString JupyterUtils::fromJupyterMultiline(const QJsonValue& source)
+{
+ QString code;
+ if (source.isString())
+ code = source.toString();
+ else if (source.isArray())
+ for (const QJsonValue& line : source.toArray())
+ code += line.toString();
+ return code;
+}
+
+bool JupyterUtils::isJupyterNotebook(const QJsonDocument& doc)
+{
+ static const QSet<QString> notebookScheme
+ = QSet<QString>::fromList({cellsKey, metadataKey, nbformatKey, nbformatMinorKey});
+
+ bool isNotebook =
+ doc.isObject()
+ && QSet<QString>::fromList(doc.object().keys()) == notebookScheme
+ && doc.object().value(cellsKey).isArray()
+ && doc.object().value(metadataKey).isObject()
+ && doc.object().value(nbformatKey).isDouble()
+ && doc.object().value(nbformatMinorKey).isDouble();
+
+ return isNotebook;
+}
+
+bool JupyterUtils::isJupyterCell(const QJsonValue& cell)
+{
+ bool isCell =
+ cell.isObject()
+ && cell.toObject().value(cellTypeKey).isString()
+ &&
+ ( cell.toObject().value(cellTypeKey).toString() == QLatin1String("markdown")
+ || cell.toObject().value(cellTypeKey).toString() == QLatin1String("code")
+ || cell.toObject().value(cellTypeKey).toString() == QLatin1String("raw")
+ )
+ && cell.toObject().value(metadataKey).isObject()
+ &&
+ ( cell.toObject().value(sourceKey).isString()
+ || cell.toObject().value(sourceKey).isArray()
+ );
+
+ return isCell;
+}
+
+bool JupyterUtils::isJupyterOutput(const QJsonValue& output)
+{
+ bool isOutput =
+ output.isObject()
+ && output.toObject().value(outputTypeKey).isString()
+ &&
+ ( output.toObject().value(outputTypeKey).toString() == QLatin1String("stream")
+ || output.toObject().value(outputTypeKey).toString() == QLatin1String("display_data")
+ || output.toObject().value(outputTypeKey).toString() == QLatin1String("execute_result")
+ || output.toObject().value(outputTypeKey).toString() == QLatin1String("error")
+ );
+
+ return isOutput;
+}
+
+bool JupyterUtils::isJupyterTextOutput(const QJsonValue& output)
+{
+ return
+ isJupyterOutput(output)
+ && output.toObject().value(outputTypeKey).toString() == QLatin1String("stream")
+ && output.toObject().value(QLatin1String("name")).isString()
+ && output.toObject().value(QLatin1String("text")).isArray();
+}
+
+bool JupyterUtils::isJupyterErrorOutput(const QJsonValue& output)
+{
+ return
+ isJupyterOutput(output)
+ && output.toObject().value(outputTypeKey).toString() == QLatin1String("error")
+ && output.toObject().value(QLatin1String("ename")).isString()
+ && output.toObject().value(QLatin1String("evalue")).isString()
+ && output.toObject().value(QLatin1String("traceback")).isArray();
+}
+
+bool JupyterUtils::isJupyterExecutionResult(const QJsonValue& output)
+{
+ return
+ isJupyterOutput(output)
+ && output.toObject().value(outputTypeKey).toString() == QLatin1String("execute_result")
+ && output.toObject().value(QLatin1String("execution_count")).isDouble()
+ && output.toObject().value(metadataKey).isObject()
+ && output.toObject().value(QLatin1String("data")).isObject();
+}
+
+bool JupyterUtils::isJupyterDisplayOutput(const QJsonValue& output)
+{
+ return
+ isJupyterOutput(output)
+ && output.toObject().value(outputTypeKey).toString() == QLatin1String("display_data")
+ && output.toObject().value(metadataKey).isObject()
+ && output.toObject().value(QLatin1String("data")).isObject();
+}
+
+bool JupyterUtils::isMarkdownCell(const QJsonValue& cell)
+{
+ return isJupyterCell(cell) && getCellType(cell.toObject()) == QLatin1String("markdown");
+}
+
+bool JupyterUtils::isCodeCell(const QJsonValue& cell)
+{
+ return
+ isJupyterCell(cell)
+ && getCellType(cell.toObject()) == QLatin1String("code")
+ &&
+ ( cell.toObject().value(executionCountKey).isDouble()
+ || cell.toObject().value(executionCountKey).isNull()
+ )
+ && cell.toObject().value(outputsKey).isArray();
+}
+
+bool JupyterUtils::isRawCell(const QJsonValue& cell)
+{
+ return isJupyterCell(cell) && getCellType(cell.toObject()) == QLatin1String("raw");
+}
+
+QJsonObject JupyterUtils::getMetadata(const QJsonObject& object)
+{
+ return object.value(metadataKey).toObject();
+}
+
+QJsonArray JupyterUtils::getCells(const QJsonObject notebook)
+{
+ return notebook.value(cellsKey).toArray();
+}
+
+std::tuple<int, int> JupyterUtils::getNbformatVersion(const QJsonObject& notebook)
+{
+ int nbformatMajor = notebook.value(nbformatKey).toInt();
+ int nbformatMinor = notebook.value(nbformatMinorKey).toInt();
+
+ return {nbformatMajor, nbformatMinor};
+}
+
+QString JupyterUtils::getCellType(const QJsonObject& cell)
+{
+ return cell.value(cellTypeKey).toString();
+}
+
+QString JupyterUtils::getSource(const QJsonObject& cell)
+{
+ return fromJupyterMultiline(cell.value(sourceKey));
+}
+
+void JupyterUtils::setSource(QJsonObject& cell, const QString& source)
+{
+ cell.insert(sourceKey, toJupyterMultiline(source));
+}
+
+QString JupyterUtils::getOutputType(const QJsonObject& output)
+{
+ return output.value(outputTypeKey).toString();
+}
+
+QJsonObject JupyterUtils::getCantorMetadata(const QJsonObject object)
+{
+ return getMetadata(object).value(cantorMetadataKey).toObject();
+}
+
+QString JupyterUtils::getKernelName(const QJsonValue& kernelspecValue)
+{
+ QString name;
+
+ if (kernelspecValue.isObject())
+ {
+ const QJsonObject& kernelspec = kernelspecValue.toObject();
+ QString kernelName = kernelspec.value(QLatin1String("name")).toString();
+ if (!kernelName.isEmpty())
+ {
+ if (kernelName.startsWith(QLatin1String("julia")))
+ kernelName = QLatin1String("julia");
+ else if (kernelName == QLatin1String("sagemath"))
+ kernelName = QLatin1String("sage");
+ else if (kernelName == QLatin1String("ir"))
+ kernelName = QLatin1String("r");
+ name = kernelName;
+ }
+ else
+ {
+ name = kernelspec.value(QLatin1String("language")).toString();
+ }
+ }
+
+ return name;
+}
+
+QJsonObject JupyterUtils::getKernelspec(const Cantor::Backend* backend)
+{
+ QJsonObject kernelspec;
+
+ if (backend)
+ {
+ QString id = backend->id();
+
+ if (id == QLatin1String("sage"))
+ id = QLatin1String("sagemath");
+ else if (id == QLatin1String("r"))
+ id = QLatin1String("ir");
+
+ kernelspec.insert(QLatin1String("name"), id);
+
+ QString lang = backend->id();
+ if (lang.startsWith(QLatin1String("python")))
+ lang = QLatin1String("python");
+ lang[0] = lang[0].toUpper();
+
+ kernelspec.insert(QLatin1String("language"), lang);
+
+ kernelspec.insert(QLatin1String("display_name"), backend->name());
+ }
+
+ return kernelspec;
+}
+
+QImage JupyterUtils::loadImage(const QJsonValue& mimeBundle, const QString& key)
+{
+ QImage image;
+
+ if (mimeBundle.isObject())
+ {
+ const QJsonObject& bundleObject = mimeBundle.toObject();
+ const QJsonValue& data = bundleObject.value(key);
+ if (data.isString() || data.isArray())
+ {
+ // In jupyter mime-bundle key for data is mime type of this data
+ // So we need convert mimetype to format, for example "image/png" to "png"
+ // for loading from data
+ if (QImageReader::supportedMimeTypes().contains(key.toLatin1()))
+ {
+ const QByteArray& format = mimeDatabase.mimeTypeForName(key).preferredSuffix().toLatin1();
+ // Handle svg separately, because Jupyter don't encode svg in base64
+ // and store as jupyter multiline text
+ if (key == QLatin1String("image/svg+xml") && data.isArray())
+ {
+ image.loadFromData(fromJupyterMultiline(data).toLatin1(), format.data());
+ }
+ else if (data.isString())
+ {
+ // https://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats
+ // Maybe there is a better way to convert image key to image format
+ // but this is all that I could to do
+ const QString& base64 = data.toString();
+ image.loadFromData(QByteArray::fromBase64(base64.toLatin1()), format.data());
+ }
+ }
+ }
+ }
+
+ return image;
+}
+
+QJsonObject JupyterUtils::packMimeBundle(const QImage& image, const QString& mime)
+{
+ QJsonObject mimeBundle;
+
+ if (QImageWriter::supportedMimeTypes().contains(mime.toLatin1()))
+ {
+ const QByteArray& format = mimeDatabase.mimeTypeForName(mime).preferredSuffix().toLatin1();
+
+ QByteArray ba;
+ QBuffer buffer(&ba);
+ buffer.open(QIODevice::WriteOnly);
+ image.save(&buffer, format.data());
+ mimeBundle.insert(mime, QString::fromLatin1(ba.toBase64()));
+ }
+
+ return mimeBundle;
+}
+
+QStringList JupyterUtils::imageKeys(const QJsonValue& mimeBundle)
+{
+ QStringList imageKeys;
+
+ if (mimeBundle.isObject())
+ {
+ const QStringList& keys = mimeBundle.toObject().keys();
+ const QList<QByteArray>& mimes = QImageReader::supportedMimeTypes();
+ for (const QString& key : keys)
+ if (mimes.contains(key.toLatin1()))
+ imageKeys.append(key);
+ }
+
+ return imageKeys;
+}
+
+QString JupyterUtils::firstImageKey(const QJsonValue& mimeBundle)
+{
+ const QStringList& keys = imageKeys(mimeBundle);
+ return keys.size() >= 1 ? keys[0] : QString();
+}
+
+QString JupyterUtils::mainBundleKey(const QJsonValue& mimeBundle)
+{
+ QString mainKey;
+
+ if (mimeBundle.isObject())
+ {
+ const QStringList& keys = mimeBundle.toObject().keys();
+ if (keys.size() == 1)
+ mainKey = keys[0];
+ else if (keys.size() == 2)
+ {
+ int idx = keys.indexOf(textMime);
+ if (idx != -1)
+ // Getting not 'text/plain' key, because often it's just a caption
+ mainKey = keys[1 - idx];
+ else
+ // Not sure, that this is valid, but return first keys
+ mainKey = keys[0];
+ }
+ else if (keys.size() > 2)
+ {
+ // Also not sure about it
+ // Specification is not very clean on cases, such that
+ // Just in case, if we will have duplications of information
+ // Something like keys == {'image/png', 'image/bmp', 'text/plain'}
+ // Or something like keys == {'text/html', 'text/latex', 'text/plain'}
+ // Set priority for html->latex->plain (in this order)
+ if (keys.contains(htmlMime))
+ mainKey = htmlMime;
+ else if (keys.contains(latexMime))
+ mainKey = latexMime;
+ else if (keys.contains(textMime))
+ mainKey = textMime;
+ else
+ {
+ // Search for image keys, if no
+ // then just use first key
+ mainKey = firstImageKey(mimeBundle);
+ if (mainKey.isEmpty())
+ mainKey = keys[0];
+ }
+ }
+ }
+
+ return mainKey;
+}
+
+bool JupyterUtils::isGifHtml(const QJsonValue& html)
+{
+ return html.isString()
+ && html.toString().startsWith(QLatin1String("<img src=\"data:image/gif;base64,"))
+ && html.toString().endsWith(QLatin1String("/>"));
+}
+
+QUrl JupyterUtils::loadGifHtml(const QJsonValue& html)
+{
+ QUrl gif;
+
+ if (html.isString())
+ {
+ QString data = html.toString();
+ data.remove(0, QString::fromLatin1("<img src=\"data:image/gif;base64,").size());
+ data.chop(QString::fromLatin1("/>").size());
+ const QByteArray& bytes = QByteArray::fromBase64(data.toLatin1());
+
+ QTemporaryFile file;
+ file.setAutoRemove(false);
+ file.open();
+ file.write(bytes);
+ file.close();
+
+ gif = QUrl::fromLocalFile(file.fileName());
+ }
+
+ return gif;
+}
diff --git a/src/jupyterutils.h b/src/jupyterutils.h
new file mode 100644
index 00000000..489876a5
--- /dev/null
+++ b/src/jupyterutils.h
@@ -0,0 +1,111 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+
+#ifndef JUPYTERUTILS_H
+#define JUPYTERUTILS_H
+
+#include <vector>
+
+#include <QString>
+#include <QMimeDatabase>
+
+class QJsonValue;
+class QJsonObject;
+class QJsonArray;
+class QJsonDocument;
+class QImage;
+class QUrl;
+class QStringList;
+
+namespace Cantor {
+ class Backend;
+}
+
+/**
+ * Static class for storing some common code for working with jupyter json scheme
+ * Like getting 'metadata', getting source code from 'source' tag, scheme validation
+ * handleling missing keys, etc.
+ *
+ */
+class JupyterUtils
+{
+ public:
+ static QJsonObject getMetadata(const QJsonObject& object);
+ static QJsonObject getCantorMetadata(const QJsonObject object);
+
+ static QJsonArray getCells(const QJsonObject notebook);
+ static std::tuple<int, int> getNbformatVersion(const QJsonObject& notebook);
+
+ static QString getCellType(const QJsonObject& cell);
+ static QString getSource(const QJsonObject& cell);
+ static void setSource(QJsonObject& cell, const QString& source);
+
+ static QString getOutputType(const QJsonObject& output);
+
+ static bool isJupyterNotebook(const QJsonDocument& doc);
+
+ static bool isJupyterCell(const QJsonValue& cell);
+ static bool isMarkdownCell(const QJsonValue& cell);
+ static bool isCodeCell(const QJsonValue& cell);
+ static bool isRawCell(const QJsonValue& cell);
+
+ static bool isJupyterOutput(const QJsonValue& output);
+ static bool isJupyterDisplayOutput(const QJsonValue& output);
+ static bool isJupyterTextOutput(const QJsonValue& output);
+ static bool isJupyterErrorOutput(const QJsonValue& output);
+ static bool isJupyterExecutionResult(const QJsonValue& output);
+
+ static QJsonValue toJupyterMultiline(const QString& source);
+ static QString fromJupyterMultiline(const QJsonValue& source);
+
+ static QString getKernelName(const QJsonValue& kernelspecValue);
+ static QJsonObject getKernelspec(const Cantor::Backend* backend);
+
+ static QImage loadImage(const QJsonValue& mimeBundle, const QString& key);
+ static QJsonObject packMimeBundle(const QImage& image, const QString& mime);
+ static QStringList imageKeys(const QJsonValue& mimeBundle);
+ static QString firstImageKey(const QJsonValue& mimeBundle);
+ static QString mainBundleKey(const QJsonValue& mimeBundle);
+
+ static bool isGifHtml(const QJsonValue& html);
+ static QUrl loadGifHtml(const QJsonValue& html);
+ public:
+ static const QString cellsKey;
+ static const QString metadataKey;
+ static const QString cantorMetadataKey;
+ static const QString nbformatKey;
+ static const QString nbformatMinorKey;
+ static const QString cellTypeKey;
+ static const QString sourceKey;
+ static const QString outputTypeKey;
+ static const QString executionCountKey;
+ static const QString outputsKey;
+ static const QString dataKey;
+
+ static const QString pngMime;
+ static const QString gifMime;
+ static const QString textMime;
+ static const QString htmlMime;
+ static const QString latexMime;
+
+ static const QMimeDatabase mimeDatabase;
+};
+
+#endif // JUPYTERUTILS_H
diff --git a/src/latexentry.cpp b/src/latexentry.cpp
index 860b8753..97e86ee2 100644
--- a/src/latexentry.cpp
+++ b/src/latexentry.cpp
@@ -1,440 +1,550 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "latexentry.h"
#include "worksheetentry.h"
#include "worksheet.h"
#include "lib/epsrenderer.h"
+#include "jupyterutils.h"
#include "lib/defaulthighlighter.h"
#include "lib/latexrenderer.h"
#include "config-cantor.h"
#include <QTextCursor>
#include <QStandardPaths>
#include <QDir>
#include <QDebug>
#include <QBuffer>
#include <QUuid>
+#include <QJsonValue>
+#include <QJsonObject>
+#include <QJsonArray>
#include <KLocalizedString>
LatexEntry::LatexEntry(Worksheet* worksheet) : WorksheetEntry(worksheet), m_textItem(new WorksheetTextItem(this, Qt::TextEditorInteraction))
{
m_textItem->installEventFilter(this);
connect(m_textItem, &WorksheetTextItem::moveToPrevious, this, &LatexEntry::moveToPreviousEntry);
connect(m_textItem, &WorksheetTextItem::moveToNext, this, &LatexEntry::moveToNextEntry);
connect(m_textItem, SIGNAL(execute()), this, SLOT(evaluate()));
}
void LatexEntry::populateMenu(QMenu* menu, QPointF pos)
{
bool imageSelected = false;
QTextCursor cursor = m_textItem->textCursor();
const QChar repl = QChar::ObjectReplacementCharacter;
if (cursor.hasSelection()) {
QString selection = m_textItem->textCursor().selectedText();
imageSelected = selection.contains(repl);
} else {
// we need to try both the current cursor and the one after the that
cursor = m_textItem->cursorForPosition(pos);
for (int i = 2; i; --i) {
int p = cursor.position();
if (m_textItem->document()->characterAt(p-1) == repl &&
cursor.charFormat().hasProperty(Cantor::EpsRenderer::CantorFormula)) {
m_textItem->setTextCursor(cursor);
imageSelected = true;
break;
}
cursor.movePosition(QTextCursor::NextCharacter);
}
}
if (imageSelected) {
menu->addAction(i18n("Show LaTeX code"), this, SLOT(resolveImagesAtCursor()));
menu->addSeparator();
}
WorksheetEntry::populateMenu(menu, pos);
}
int LatexEntry::type() const
{
return Type;
}
bool LatexEntry::isEmpty()
{
return m_textItem->document()->isEmpty();
}
bool LatexEntry::acceptRichText()
{
return false;
}
bool LatexEntry::focusEntry(int pos, qreal xCoord)
{
if (aboutToBeRemoved())
return false;
m_textItem->setFocusAt(pos, xCoord);
return true;
}
void LatexEntry::setContent(const QString& content)
{
m_latex = content;
m_textItem->setPlainText(m_latex);
}
void LatexEntry::setContent(const QDomElement& content, const KZip& file)
{
m_latex = content.text();
qDebug() << m_latex;
m_textItem->document()->clear();
QTextCursor cursor = m_textItem->textCursor();
cursor.movePosition(QTextCursor::Start);
QString imagePath;
bool useLatexCode = true;
if(content.hasAttribute(QLatin1String("filename")))
{
const KArchiveEntry* imageEntry=file.directory()->entry(content.attribute(QLatin1String("filename")));
if (imageEntry&&imageEntry->isFile())
{
const KArchiveFile* imageFile=static_cast<const KArchiveFile*>(imageEntry);
const QString& dir=QStandardPaths::writableLocation(QStandardPaths::TempLocation);
imageFile->copyTo(dir);
imagePath = dir + QDir::separator() + imageFile->name();
#ifdef LIBSPECTRE_FOUND
m_renderedFormat = worksheet()->epsRenderer()->render(m_textItem->document(), QUrl::fromLocalFile(imagePath));
qDebug()<<"rendering successful? " << !m_renderedFormat.name().isEmpty();
m_renderedFormat.setProperty(Cantor::EpsRenderer::CantorFormula, Cantor::EpsRenderer::LatexFormula);
m_renderedFormat.setProperty(Cantor::EpsRenderer::ImagePath, imagePath);
m_renderedFormat.setProperty(Cantor::EpsRenderer::Code, m_latex);
cursor.insertText(QString(QChar::ObjectReplacementCharacter), m_renderedFormat);
useLatexCode = false;
m_textItem->denyEditing();
#endif
}
}
if (useLatexCode && content.hasAttribute(QLatin1String("image")))
{
const QByteArray& ba = QByteArray::fromBase64(content.attribute(QLatin1String("image")).toLatin1());
QImage image;
if (image.loadFromData(ba))
{
// Create unique internal url for this loaded image
QUrl internal;
internal.setScheme(QLatin1String("internal"));
internal.setPath(QUuid::createUuid().toString());
m_textItem->document()->addResource(QTextDocument::ImageResource, internal, QVariant(image));
m_renderedFormat.setName(internal.url());
m_renderedFormat.setWidth(image.width());
m_renderedFormat.setHeight(image.height());
m_renderedFormat.setProperty(Cantor::EpsRenderer::CantorFormula, Cantor::EpsRenderer::LatexFormula);
if (!imagePath.isEmpty())
m_renderedFormat.setProperty(Cantor::EpsRenderer::ImagePath, imagePath);
m_renderedFormat.setProperty(Cantor::EpsRenderer::Code, m_latex);
cursor.insertText(QString(QChar::ObjectReplacementCharacter), m_renderedFormat);
useLatexCode = false;
m_textItem->denyEditing();
}
}
if (useLatexCode)
cursor.insertText(m_latex);
}
+void LatexEntry::setContentFromJupyter(const QJsonObject& cell)
+{
+ if (!JupyterUtils::isCodeCell(cell))
+ return;
+
+ m_textItem->document()->clear();
+ QTextCursor cursor = m_textItem->textCursor();
+ cursor.movePosition(QTextCursor::Start);
+
+ bool useLatexCode = true;
+
+ QString source = JupyterUtils::getSource(cell);
+ m_latex = source.remove(QLatin1String("%%latex\n"));
+
+ QJsonArray outputs = cell.value(JupyterUtils::outputsKey).toArray();
+ if (outputs.size() == 1 && JupyterUtils::isJupyterDisplayOutput(outputs[0]))
+ {
+ const QJsonObject data = outputs[0].toObject().value(JupyterUtils::dataKey).toObject();
+ const QImage& image = JupyterUtils::loadImage(data, JupyterUtils::pngMime);
+ if (!image.isNull())
+ {
+ QUrl internal;
+ internal.setScheme(QLatin1String("internal"));
+ internal.setPath(QUuid::createUuid().toString());
+
+ m_textItem->document()->addResource(QTextDocument::ImageResource, internal, QVariant(image));
+
+ m_renderedFormat.setName(internal.url());
+ m_renderedFormat.setWidth(image.width());
+ m_renderedFormat.setHeight(image.height());
+
+ m_renderedFormat.setProperty(Cantor::EpsRenderer::CantorFormula, Cantor::EpsRenderer::LatexFormula);
+ m_renderedFormat.setProperty(Cantor::EpsRenderer::Code, m_latex);
+
+ cursor.insertText(QString(QChar::ObjectReplacementCharacter), m_renderedFormat);
+ useLatexCode = false;
+ m_textItem->denyEditing();
+ }
+ }
+
+ if (useLatexCode)
+ {
+ cursor.insertText(m_latex);
+ m_latex.clear(); // We don't render image, so clear latex code cache
+ }
+}
+
+QJsonValue LatexEntry::toJupyterJson()
+{
+ QJsonObject entry;
+ entry.insert(JupyterUtils::cellTypeKey, QLatin1String("code"));
+ entry.insert(JupyterUtils::executionCountKey, QJsonValue());
+
+ QJsonObject metadata, cantorMetadata;
+ cantorMetadata.insert(QLatin1String("latex_entry"), true);
+ metadata.insert(JupyterUtils::cantorMetadataKey, cantorMetadata);
+ entry.insert(JupyterUtils::metadataKey, metadata);
+
+ QJsonArray outputs;
+
+ QTextCursor cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
+ if (!cursor.isNull())
+ {
+ QTextImageFormat format=cursor.charFormat().toImageFormat();
+
+ QUrl internal;
+ internal.setUrl(format.name());
+ const QImage& image = m_textItem->document()->resource(QTextDocument::ImageResource, internal).value<QImage>();
+ if (!image.isNull())
+ {
+ QByteArray ba;
+ QBuffer buffer(&ba);
+ buffer.open(QIODevice::WriteOnly);
+ image.save(&buffer, "PNG");
+
+ // Add image result with latex rendered image to this Jupyter code cell
+ QJsonObject imageResult;
+ imageResult.insert(JupyterUtils::outputTypeKey, QLatin1String("display_data"));
+
+ QJsonObject data;
+ data.insert(JupyterUtils::pngMime, JupyterUtils::toJupyterMultiline(QString::fromLatin1(ba.toBase64())));
+ imageResult.insert(QLatin1String("data"), data);
+
+ imageResult.insert(JupyterUtils::metadataKey, QJsonObject());
+
+ outputs.append(imageResult);
+ }
+ }
+ entry.insert(JupyterUtils::outputsKey, outputs);
+
+ const QString& latex = latexCode();
+ JupyterUtils::setSource(entry, QLatin1String("%%latex\n") + latex);
+
+ return entry;
+}
+
QDomElement LatexEntry::toXml(QDomDocument& doc, KZip* archive)
{
QDomElement el = doc.createElement(QLatin1String("Latex"));
el.appendChild( doc.createTextNode( latexCode() ));
QTextCursor cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
if (!cursor.isNull())
{
QTextImageFormat format=cursor.charFormat().toImageFormat();
QString fileName = format.property(Cantor::EpsRenderer::ImagePath).toString();
// Check, if eps file exists, and if not true, rerender latex code
bool isEpsFileExists = QFile::exists(fileName);
#ifdef LIBSPECTRE_FOUND
if (!isEpsFileExists && renderLatexCode())
{
cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
format=cursor.charFormat().toImageFormat();
fileName = format.property(Cantor::EpsRenderer::ImagePath).toString();
isEpsFileExists = QFile::exists(fileName);
}
#endif
if (isEpsFileExists && archive)
{
const QUrl& url=QUrl::fromLocalFile(fileName);
archive->addLocalFile(url.toLocalFile(), url.fileName());
el.setAttribute(QLatin1String("filename"), url.fileName());
}
// Save also rendered QImage, if exist.
QUrl internal;
internal.setUrl(format.name());
const QImage& image = m_textItem->document()->resource(QTextDocument::ImageResource, internal).value<QImage>();
if (!image.isNull())
{
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG");
el.setAttribute(QLatin1String("image"), QString::fromLatin1(ba.toBase64()));
}
}
return el;
}
QString LatexEntry::toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)
{
Q_UNUSED(commandSep);
if (commentStartingSeq.isEmpty())
return QString();
QString text = latexCode();
if (!commentEndingSeq.isEmpty())
return commentStartingSeq + text + commentEndingSeq + QLatin1String("\n");
return commentStartingSeq + text.replace(QLatin1String("\n"), QLatin1String("\n") + commentStartingSeq) + QLatin1String("\n");
}
void LatexEntry::interruptEvaluation()
{
}
bool LatexEntry::evaluate(EvaluationOption evalOp)
{
bool success = false;
if (isOneImageOnly())
{
success = true;
}
else
{
if (m_latex == latexCode())
{
QTextCursor cursor = m_textItem->textCursor();
cursor.movePosition(QTextCursor::Start);
cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
cursor.insertText(QString(QChar::ObjectReplacementCharacter), m_renderedFormat);
m_textItem->denyEditing();
}
else
{
m_latex = latexCode();
success = renderLatexCode();
}
}
qDebug()<<"rendering successful? "<<success;
evaluateNext(evalOp);
return success;
}
void LatexEntry::updateEntry()
{
QTextCursor cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
while (!cursor.isNull())
{
qDebug()<<"found a formula... rendering the eps...";
QTextImageFormat format=cursor.charFormat().toImageFormat();
const QUrl& url=QUrl::fromLocalFile(format.property(Cantor::EpsRenderer::ImagePath).toString());
QSizeF s = worksheet()->epsRenderer()->renderToResource(m_textItem->document(), url, QUrl(format.name()));
qDebug()<<"rendering successful? "<< s.isValid();
cursor.movePosition(QTextCursor::NextCharacter);
cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter), cursor);
}
}
bool LatexEntry::eventFilter(QObject* object, QEvent* event)
{
if(object == m_textItem && event->type() == QEvent::GraphicsSceneMouseDoubleClick)
{
// One image if we have rendered entry
if (isOneImageOnly())
{
QTextCursor cursor = m_textItem->textCursor();
if (!cursor.hasSelection())
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
cursor.insertText(m_textItem->resolveImages(cursor));
m_textItem->allowEditing();
return true;
}
}
return false;
}
QString LatexEntry::latexCode()
{
QTextCursor cursor = m_textItem->textCursor();
cursor.movePosition(QTextCursor::Start);
cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
QString code = m_textItem->resolveImages(cursor);
code.replace(QChar::ParagraphSeparator, QLatin1Char('\n')); //Replace the U+2029 paragraph break by a Normal Newline
code.replace(QChar::LineSeparator, QLatin1Char('\n')); //Replace the line break by a Normal Newline
return code;
}
bool LatexEntry::isOneImageOnly()
{
QTextCursor cursor = m_textItem->textCursor();
cursor.movePosition(QTextCursor::Start);
cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
return (cursor.selectionEnd() == 1 && cursor.selectedText() == QString(QChar::ObjectReplacementCharacter));
}
int LatexEntry::searchText(const QString& text, const QString& pattern,
QTextDocument::FindFlags qt_flags)
{
Qt::CaseSensitivity caseSensitivity;
if (qt_flags & QTextDocument::FindCaseSensitively)
caseSensitivity = Qt::CaseSensitive;
else
caseSensitivity = Qt::CaseInsensitive;
int position;
if (qt_flags & QTextDocument::FindBackward)
position = text.lastIndexOf(pattern, -1, caseSensitivity);
else
position = text.indexOf(pattern, 0, caseSensitivity);
return position;
}
WorksheetCursor LatexEntry::search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos)
{
if (!(flags & WorksheetEntry::SearchLaTeX))
return WorksheetCursor();
if (pos.isValid() && (pos.entry() != this || pos.textItem() != m_textItem))
return WorksheetCursor();
QTextCursor textCursor = m_textItem->search(pattern, qt_flags, pos);
int position = 0;
QString latex;
const QString repl = QString(QChar::ObjectReplacementCharacter);
QTextCursor latexCursor = m_textItem->search(repl, qt_flags, pos);
while (!latexCursor.isNull()) {
latex = m_textItem->resolveImages(latexCursor);
position = searchText(latex, pattern, qt_flags);
if (position >= 0) {
break;
}
WorksheetCursor c(this, m_textItem, latexCursor);
latexCursor = m_textItem->search(repl, qt_flags, c);
}
if (latexCursor.isNull()) {
if (textCursor.isNull())
return WorksheetCursor();
else
return WorksheetCursor(this, m_textItem, textCursor);
} else {
if (textCursor.isNull() || latexCursor < textCursor) {
int start = latexCursor.selectionStart();
latexCursor.insertText(latex);
QTextCursor c = m_textItem->textCursor();
c.setPosition(start + position);
c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor,
pattern.length());
return WorksheetCursor(this, m_textItem, c);
} else {
return WorksheetCursor(this, m_textItem, textCursor);
}
}
}
void LatexEntry::layOutForWidth(qreal w, bool force)
{
if (size().width() == w && !force)
return;
m_textItem->setGeometry(0, 0, w);
setSize(QSizeF(m_textItem->width(), m_textItem->height() + VerticalMargin));
}
bool LatexEntry::wantToEvaluate()
{
return !isOneImageOnly();
}
bool LatexEntry::renderLatexCode()
{
bool success = false;
QString latex = latexCode();
Cantor::LatexRenderer* renderer = new Cantor::LatexRenderer(this);
renderer->setLatexCode(latex);
renderer->setEquationOnly(false);
renderer->setMethod(Cantor::LatexRenderer::LatexMethod);
renderer->renderBlocking();
if (renderer->renderingSuccessful())
{
Cantor::EpsRenderer* epsRend = worksheet()->epsRenderer();
m_renderedFormat = epsRend->render(m_textItem->document(), renderer);
success = !m_renderedFormat.name().isEmpty();
}
if(success)
{
QTextCursor cursor = m_textItem->textCursor();
cursor.movePosition(QTextCursor::Start);
cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
cursor.insertText(QString(QChar::ObjectReplacementCharacter), m_renderedFormat);
m_textItem->denyEditing();
}
delete renderer;
return success;
}
+bool LatexEntry::isConvertableToLatexEntry(const QJsonObject& cell)
+{
+ if (!JupyterUtils::isCodeCell(cell))
+ return false;
+
+ const QString& source = JupyterUtils::getSource(cell);
+
+ return source.startsWith(QLatin1String("%%latex\n"));
+}
+
void LatexEntry::resolveImagesAtCursor()
{
QTextCursor cursor = m_textItem->textCursor();
if (!cursor.hasSelection())
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
cursor.insertText(m_textItem->resolveImages(cursor));
}
diff --git a/src/latexentry.h b/src/latexentry.h
index 9f923e7e..4d4d08d9 100644
--- a/src/latexentry.h
+++ b/src/latexentry.h
@@ -1,82 +1,85 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef LATEXENTRY_H
#define LATEXENTRY_H
#include "worksheetentry.h"
#include "worksheettextitem.h"
class LatexEntry : public WorksheetEntry
{
Q_OBJECT
public:
explicit LatexEntry(Worksheet* worksheet);
~LatexEntry() override = default;
enum {Type = UserType + 5};
int type() const override;
bool isEmpty() override;
bool acceptRichText() override;
bool focusEntry(int pos = WorksheetTextItem::TopLeft, qreal xCoord = 0) override;
void setContent(const QString& content) override;
void setContent(const QDomElement& content, const KZip& file) override;
+ void setContentFromJupyter(const QJsonObject & cell) override;
+ static bool isConvertableToLatexEntry(const QJsonObject& cell);
QDomElement toXml(QDomDocument& doc, KZip* archive) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq) override;
void interruptEvaluation() override;
void layOutForWidth(qreal w, bool force = false) override;
int searchText(const QString& text, const QString& pattern,
QTextDocument::FindFlags qt_flags);
WorksheetCursor search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos = WorksheetCursor()) override;
public Q_SLOTS:
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void resolveImagesAtCursor();
void updateEntry() override;
void populateMenu(QMenu* menu, QPointF pos) override;
protected:
bool wantToEvaluate() override;
bool eventFilter(QObject* object, QEvent* event) override;
private:
QString latexCode();
bool renderLatexCode();
bool isOneImageOnly();
private:
WorksheetTextItem* m_textItem;
QTextImageFormat m_renderedFormat;
QString m_latex;
};
#endif // LATEXENTRY_H
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index bb7d3b54..dfbad642 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -1,109 +1,113 @@
if(LIBSPECTRE_FOUND)
include_directories(${LIBSPECTRE_INCLUDE_DIR})
endif(LIBSPECTRE_FOUND)
set( cantor_LIB_SRCS
session.cpp
expression.cpp
backend.cpp
result.cpp
textresult.cpp
imageresult.cpp
+ mimeresult.cpp
epsresult.cpp
latexresult.cpp
latexrenderer.cpp
epsrenderer.cpp
helpresult.cpp
animationresult.cpp
+ htmlresult.cpp
extension.cpp
assistant.cpp
completionobject.cpp
syntaxhelpobject.cpp
defaulthighlighter.cpp
defaultvariablemodel.cpp
panelplugin.cpp
panelpluginhandler.cpp
worksheetaccess.cpp
directives/plotdirectives.cpp
)
Set( cantor_LIB_HDRS
cantor_macros.h
#base classes
backend.h
session.h
expression.h
extension.h
syntaxhelpobject.h
completionobject.h
#results
animationresult.h
epsresult.h
helpresult.h
imageresult.h
latexresult.h
epsrenderer.h
result.h
textresult.h
+ mimeresult.h
+ htmlresult.h
#helper classes
defaulthighlighter.h
defaultvariablemodel.h
worksheetaccess.h
)
ki18n_wrap_ui(cantor_LIB_SRCS directives/axisrange.ui directives/plottitle.ui)
kconfig_add_kcfg_files(cantor_LIB_SRCS settings.kcfgc)
install(FILES cantor_libs.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
configure_file (config-cantorlib.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-cantorlib.h )
add_library( cantorlibs SHARED ${cantor_LIB_SRCS} )
generate_export_header(cantorlibs BASE_NAME cantor)
kcoreaddons_desktop_to_json(cantorlibs cantor_assistant.desktop DEFAULT_SERVICE_TYPE)
kcoreaddons_desktop_to_json(cantorlibs cantor_backend.desktop DEFAULT_SERVICE_TYPE)
kcoreaddons_desktop_to_json(cantorlibs cantor_panelplugin.desktop DEFAULT_SERVICE_TYPE)
target_link_libraries( cantorlibs
KF5::Completion
KF5::IconThemes
KF5::KIOCore
KF5::KIOFileWidgets
KF5::KIOWidgets
KF5::Archive
KF5::ConfigCore
KF5::ConfigGui
KF5::I18n
KF5::XmlGui
${QT5_LIBRARIES}
Qt5::Xml
)
if(LIBSPECTRE_FOUND)
target_link_libraries(cantorlibs ${LIBSPECTRE_LIBRARY})
endif(LIBSPECTRE_FOUND)
set (CANTORLIBS_SOVERSION 24)
set_target_properties( cantorlibs PROPERTIES VERSION ${KDE_APPLICATIONS_VERSION} SOVERSION ${CANTORLIBS_SOVERSION})
ecm_setup_version(${KDE_APPLICATIONS_VERSION}
VARIABLE_PREFIX CANTOR
SOVERSION ${CANTORLIBS_SOVERSION}
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/cantorlibs_version.h
)
install( TARGETS cantorlibs EXPORT CantorTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
install(
FILES
${cantor_LIB_HDRS}
${CMAKE_CURRENT_BINARY_DIR}/cantor_export.h
${CMAKE_CURRENT_BINARY_DIR}/cantorlibs_version.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/cantor
COMPONENT Devel
)
if(BUILD_TESTING)
add_subdirectory(test)
endif()
diff --git a/src/lib/animationresult.cpp b/src/lib/animationresult.cpp
index deb23bb3..fb455df1 100644
--- a/src/lib/animationresult.cpp
+++ b/src/lib/animationresult.cpp
@@ -1,105 +1,133 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "animationresult.h"
using namespace Cantor;
#include <QImage>
#include <QImageWriter>
#include <KZip>
#include <QMimeDatabase>
#include <QDebug>
#include <KIO/Job>
#include <QMovie>
class Cantor::AnimationResultPrivate
{
public:
AnimationResultPrivate() = default;
QUrl url;
QMovie* movie;
QString alt;
};
AnimationResult::AnimationResult(const QUrl &url, const QString& alt ) : d(new AnimationResultPrivate)
{
d->url=url;
d->alt=alt;
d->movie=new QMovie();
d->movie->setFileName(url.toLocalFile());
}
AnimationResult::~AnimationResult()
{
delete d->movie;
delete d;
}
QString AnimationResult::toHtml()
{
return QStringLiteral("<img src=\"%1\" alt=\"%2\"/>").arg(d->url.toLocalFile(), d->alt);
}
QVariant AnimationResult::data()
{
return QVariant::fromValue(static_cast<QObject*>(d->movie));
}
QUrl AnimationResult::url()
{
return d->url;
}
int AnimationResult::type()
{
return AnimationResult::Type;
}
QString AnimationResult::mimeType()
{
QMimeDatabase db;
QMimeType type = db.mimeTypeForUrl(d->url);
return type.name();
}
QDomElement AnimationResult::toXml(QDomDocument& doc)
{
qDebug()<<"saving imageresult "<<toHtml();
QDomElement e=doc.createElement(QStringLiteral("Result"));
e.setAttribute(QStringLiteral("type"), QStringLiteral("animation"));
e.setAttribute(QStringLiteral("filename"), d->url.fileName());
qDebug()<<"done";
return e;
}
+QJsonValue Cantor::AnimationResult::toJupyterJson()
+{
+ QJsonObject root;
+
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+ }
+ else
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/plain"), d->alt);
+
+ QFile file(d->url.toLocalFile());
+ QByteArray bytes;
+ if (file.open(QIODevice::ReadOnly))
+ bytes = file.readAll();
+ data.insert(QLatin1String("image/gif"), QString::fromLatin1(bytes.toBase64()));
+
+ root.insert(QLatin1String("data"), data);
+ // Not sure, but in Jupyter size of gif doesn't controlled by metadata unlike ImageResult
+ root.insert(QLatin1String("metadata"), jupyterMetadata());
+
+ return root;
+}
+
void AnimationResult::saveAdditionalData(KZip* archive)
{
archive->addLocalFile(d->url.toLocalFile(), d->url.fileName());
}
void AnimationResult::save(const QString& filename)
{
//just copy over the file..
KIO::file_copy(d->url, QUrl::fromLocalFile(filename), -1, KIO::HideProgressInfo);
}
diff --git a/src/lib/animationresult.h b/src/lib/animationresult.h
index 0d452f1c..929a2f74 100644
--- a/src/lib/animationresult.h
+++ b/src/lib/animationresult.h
@@ -1,55 +1,56 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _ANIMATIONRESULT_H
#define _ANIMATIONRESULT_H
#include "result.h"
namespace Cantor
{
class AnimationResultPrivate;
class CANTOR_EXPORT AnimationResult : public Result
{
public:
enum{Type=6};
explicit AnimationResult( const QUrl& url, const QString& alt=QString() );
~AnimationResult() override;
QString toHtml() override;
QVariant data() override;
QUrl url() override;
int type() override;
QString mimeType() override;
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void saveAdditionalData(KZip* archive) override;
void save(const QString& filename) override;
private:
AnimationResultPrivate* d;
};
}
#endif /* _ANIMATIONRESULT_H */
diff --git a/src/lib/epsresult.cpp b/src/lib/epsresult.cpp
index c7e60ac7..d237489f 100644
--- a/src/lib/epsresult.cpp
+++ b/src/lib/epsresult.cpp
@@ -1,128 +1,139 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "epsresult.h"
using namespace Cantor;
#include <config-cantorlib.h>
#include <QDebug>
+#include <QJsonValue>
+
#include <KZip>
#include <KIO/Job>
#include <QBuffer>
#include "epsrenderer.h"
class Cantor::EpsResultPrivate{
public:
QUrl url;
QImage image;
};
EpsResult::EpsResult(const QUrl& url, const QImage& image) : d(new EpsResultPrivate)
{
d->url=url;
d->image = image;
}
EpsResult::~EpsResult()
{
delete d;
}
QString EpsResult::toHtml()
{
return QStringLiteral("<img src=\"%1\" />").arg(d->url.url());
}
QString EpsResult::toLatex()
{
return QStringLiteral(" \\begin{center} \n \\includegraphics[width=12cm]{%1}\n \\end{center}").arg(d->url.fileName());
}
QVariant EpsResult::data()
{
return QVariant(d->url);
}
QUrl EpsResult::url()
{
return d->url;
}
QImage Cantor::EpsResult::image()
{
return d->image;
}
int EpsResult::type()
{
return EpsResult::Type;
}
QString EpsResult::mimeType()
{
return QStringLiteral("image/x-eps");
}
QDomElement EpsResult::toXml(QDomDocument& doc)
{
qDebug()<<"saving imageresult "<<toHtml();
QDomElement e=doc.createElement(QStringLiteral("Result"));
e.setAttribute(QStringLiteral("type"), QStringLiteral("image"));
e.setAttribute(QStringLiteral("filename"), d->url.fileName());
#ifdef WITH_EPS
const QImage& image = EpsRenderer::renderToImage(d->url, 1.0, false);
qDebug() << image.size() << image.isNull();
if (!image.isNull())
{
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG");
e.setAttribute(QLatin1String("image"), QString::fromLatin1(ba.toBase64()));
}
#else
if (!d->image.isNull())
{
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
d->image.save(&buffer, "PNG");
e.setAttribute(QLatin1String("image"), QString::fromLatin1(ba.toBase64()));
}
#endif
qDebug()<<"done";
return e;
}
+QJsonValue Cantor::EpsResult::toJupyterJson()
+{
+ // Juputer TODO: Technically, I could convert .eps file to Image via EpsRenderer
+ // But EpsRender don't available from Cantor core library
+ // I will handle this result type in worksheet, but it's not look nice...
+
+ return QJsonValue();
+}
+
void EpsResult::saveAdditionalData(KZip* archive)
{
archive->addLocalFile(d->url.toLocalFile(), d->url.fileName());
}
void EpsResult::save(const QString& filename)
{
//just copy over the eps file..
KIO::file_copy(d->url, QUrl::fromLocalFile(filename), -1, KIO::HideProgressInfo);
}
diff --git a/src/lib/epsresult.h b/src/lib/epsresult.h
index d4f3ce04..367e889e 100644
--- a/src/lib/epsresult.h
+++ b/src/lib/epsresult.h
@@ -1,60 +1,61 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _EPSRESULT_H
#define _EPSRESULT_H
#include "result.h"
#include "cantor_export.h"
#include <QUrl>
#include <QImage>
namespace Cantor
{
class EpsResultPrivate;
class CANTOR_EXPORT EpsResult : public Result
{
public:
enum {Type=5};
explicit EpsResult( const QUrl& url, const QImage& image = QImage());
~EpsResult() override;
QString toHtml() override;
QString toLatex() override;
QVariant data() override;
QUrl url() override;
QImage image();
int type() override;
QString mimeType() override;
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void saveAdditionalData(KZip* archive) override;
void save(const QString& filename) override;
private:
EpsResultPrivate* d;
};
}
#endif /* _EPSRESULT_H */
diff --git a/src/lib/helpresult.cpp b/src/lib/helpresult.cpp
index 070f069d..d74800fc 100644
--- a/src/lib/helpresult.cpp
+++ b/src/lib/helpresult.cpp
@@ -1,80 +1,88 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
+#include <QJsonValue>
+
#include "helpresult.h"
using namespace Cantor;
class Cantor::HelpResultPrivate
{
public:
HelpResultPrivate() = default;
~HelpResultPrivate() = default;
QString html;
};
HelpResult::HelpResult(const QString& text, bool isHtml) : d(new HelpResultPrivate)
{
QString html;
if (!isHtml)
{
html = text.toHtmlEscaped();
html.replace(QLatin1Char(' '), QLatin1String("&nbsp;"));
html.replace(QLatin1Char('\n'), QLatin1String("<br/>\n"));
}
else
html = text;
d->html = html;
}
int HelpResult::type()
{
return HelpResult::Type;
}
QDomElement HelpResult::toXml(QDomDocument& doc)
{
//No need to save results of a help request
QDomElement e=doc.createElement(QStringLiteral("Result"));
e.setAttribute(QStringLiteral("type"), QStringLiteral("help"));
return e;
}
+QJsonValue Cantor::HelpResult::toJupyterJson()
+{
+ // No need to save help result
+ return QJsonValue();
+}
+
QString HelpResult::toHtml()
{
return d->html;
}
QVariant HelpResult::data()
{
return QVariant(d->html);
}
QString HelpResult::mimeType()
{
return QStringLiteral("text/html");
}
void HelpResult::save(const QString& filename)
{
//No need to save results of a help request
Q_UNUSED(filename);
}
diff --git a/src/lib/helpresult.h b/src/lib/helpresult.h
index 8422c91b..e12d543f 100644
--- a/src/lib/helpresult.h
+++ b/src/lib/helpresult.h
@@ -1,56 +1,57 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _HELPRESULT_H
#define _HELPRESULT_H
#include "textresult.h"
namespace Cantor
{
/** this is basically a TextResult, just with a different Type
so that the application can show it in another way than the
normal results
**/
class HelpResultPrivate;
class CANTOR_EXPORT HelpResult: public Result
{
public:
enum {Type=3};
explicit HelpResult( const QString& text, bool isHtml=false);
~HelpResult() override = default;
QVariant data() override;
QString toHtml() override;
int type() override;
QString mimeType() override;
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void save(const QString& filename) override;
private:
HelpResultPrivate* d;
};
}
#endif /* _HELPRESULT_H */
diff --git a/src/lib/htmlresult.cpp b/src/lib/htmlresult.cpp
new file mode 100644
index 00000000..a7cc87f3
--- /dev/null
+++ b/src/lib/htmlresult.cpp
@@ -0,0 +1,180 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+ */
+
+#include "htmlresult.h"
+
+#include <QFile>
+#include <QTextStream>
+#include <QJsonArray>
+#include <QJsonObject>
+#include <QJsonDocument>
+
+using namespace Cantor;
+
+class Cantor::HtmlResultPrivate
+{
+public:
+ QString html;
+ QString plain;
+ std::map<QString, QJsonValue> alternatives; // Usefull only for Jupyter, it think
+ Cantor::HtmlResult::Format format{Cantor::HtmlResult::Html};
+};
+
+HtmlResult::HtmlResult(const QString& html, const QString& plain, const std::map<QString, QJsonValue>& alternatives) : d(new HtmlResultPrivate())
+{
+ d->html = html;
+ d->plain = plain;
+ d->alternatives = alternatives;
+}
+
+HtmlResult::~HtmlResult()
+{
+ delete d;
+}
+
+QString HtmlResult::toHtml()
+{
+ switch(d->format)
+ {
+ case HtmlResult::Html:
+ return d->html;
+
+ case HtmlResult::HtmlSource:
+ return QStringLiteral("<code><pre>") + d->html.toHtmlEscaped() + QStringLiteral("</pre></code>");
+
+ case HtmlResult::PlainAlternative:
+ return QStringLiteral("<pre>") + d->plain.toHtmlEscaped() + QStringLiteral("</pre>");
+
+ default:
+ return QString();
+ }
+}
+
+QVariant Cantor::HtmlResult::data()
+{
+ return d->html;
+}
+
+QString Cantor::HtmlResult::plain()
+{
+ return d->plain;
+}
+
+void Cantor::HtmlResult::setFormat(HtmlResult::Format format)
+{
+ d->format = format;
+}
+
+HtmlResult::Format Cantor::HtmlResult::format()
+{
+ return d->format;
+}
+
+int Cantor::HtmlResult::type()
+{
+ return HtmlResult::Type;
+}
+
+QString Cantor::HtmlResult::mimeType()
+{
+ return QStringLiteral("text/html");
+}
+
+QDomElement Cantor::HtmlResult::toXml(QDomDocument& doc)
+{
+ QDomElement e=doc.createElement(QStringLiteral("Result"));
+ e.setAttribute(QStringLiteral("type"), QStringLiteral("html"));
+ switch(d->format)
+ {
+ case HtmlResult::HtmlSource:
+ e.setAttribute(QStringLiteral("format"), QStringLiteral("htmlSource"));
+
+ case HtmlResult::PlainAlternative:
+ e.setAttribute(QStringLiteral("format"), QStringLiteral("plain"));
+
+ // Html format used by default, so don't set it
+ default:
+ break;
+ }
+
+ QDomElement plainE = doc.createElement(QStringLiteral("Plain"));
+ plainE.appendChild(doc.createTextNode(d->plain));
+ e.appendChild(plainE);
+
+ QDomElement htmlE = doc.createElement(QStringLiteral("Html"));
+ htmlE.appendChild(doc.createTextNode(d->html));
+ e.appendChild(htmlE);
+
+ for (auto iter = d->alternatives.begin(); iter != d->alternatives.end(); iter++)
+ {
+ QJsonDocument jsonDoc;
+ QJsonObject obj;
+ obj.insert(QLatin1String("root"), iter->second);
+ jsonDoc.setObject(obj);
+
+ QDomElement content = doc.createElement(QStringLiteral("Alternative"));
+ content.setAttribute(QStringLiteral("key"), iter->first);
+ content.appendChild(doc.createTextNode(QString::fromUtf8(jsonDoc.toJson())));
+ e.appendChild(content);
+ }
+
+ return e;
+}
+
+QJsonValue Cantor::HtmlResult::toJupyterJson()
+{
+ QJsonObject root;
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+ }
+ else
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/html"), toJupyterMultiline(d->html));
+ if (!d->plain.isEmpty())
+ data.insert(QLatin1String("text/plain"), toJupyterMultiline(d->plain));
+
+ for (auto iter = d->alternatives.begin(); iter != d->alternatives.end(); iter++)
+ data.insert(iter->first, iter->second);
+
+ root.insert(QLatin1String("data"), data);
+
+ root.insert(QLatin1String("metadata"), jupyterMetadata());
+
+ return root;
+}
+
+void Cantor::HtmlResult::save(const QString& filename)
+{
+ QFile file(filename);
+
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ return;
+
+ QTextStream stream(&file);
+
+ stream<<d->html;
+
+ file.close();
+}
diff --git a/src/lib/textresult.h b/src/lib/htmlresult.h
similarity index 58%
copy from src/lib/textresult.h
copy to src/lib/htmlresult.h
index bd1856e8..b19f3764 100644
--- a/src/lib/textresult.h
+++ b/src/lib/htmlresult.h
@@ -1,61 +1,66 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
- Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
*/
-#ifndef _TEXTRESULT_H
-#define _TEXTRESULT_H
+#ifndef _HTMLRESULT_H
+#define _HTMLRESULT_H
-#include "result.h"
+#include <QJsonValue>
+#include "result.h"
#include "cantor_export.h"
namespace Cantor
{
-class TextResultPrivate;
-class CANTOR_EXPORT TextResult : public Result
+class HtmlResultPrivate;
+/**
+ * Class for html results
+ * Instead of TextResult supports show/hide source html code like LatexResult
+ * Also the result allows see plain alternative of the html, if available
+ */
+class CANTOR_EXPORT HtmlResult : public Result
{
public:
- enum { Type=1 };
- enum Format { PlainTextFormat, LatexFormat};
- TextResult(const QString& text);
- TextResult(const QString& text, const QString& plain);
- ~TextResult() override;
+ enum { Type=8 };
+ enum Format { Html, HtmlSource, PlainAlternative};
+ HtmlResult(const QString& html, const QString& plain = QString(), const std::map<QString, QJsonValue>& alternatives = std::map<QString, QJsonValue>());
+ ~HtmlResult() override;
QString toHtml() override;
QVariant data() override;
-
QString plain();
+ void setFormat(Format format);
+ Format format();
+
int type() override;
QString mimeType() override;
- Format format();
- void setFormat(Format f);
-
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void save(const QString& filename) override;
private:
- TextResultPrivate* d;
+ HtmlResultPrivate* d;
};
}
-#endif /* _TEXTRESULT_H */
+#endif /* _HTMLRESULT_H */
diff --git a/src/lib/imageresult.cpp b/src/lib/imageresult.cpp
index 702e643e..8402c2d8 100644
--- a/src/lib/imageresult.cpp
+++ b/src/lib/imageresult.cpp
@@ -1,132 +1,185 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "imageresult.h"
using namespace Cantor;
#include <QImage>
#include <QImageWriter>
#include <KZip>
#include <QDebug>
+#include <QBuffer>
#include <QTemporaryFile>
class Cantor::ImageResultPrivate
{
public:
ImageResultPrivate() = default;
QUrl url;
QImage img;
QString alt;
+ QSize displaySize;
};
ImageResult::ImageResult(const QUrl &url, const QString& alt) : d(new ImageResultPrivate)
{
d->url=url;
d->alt=alt;
}
Cantor::ImageResult::ImageResult(const QImage& image, const QString& alt) : d(new ImageResultPrivate)
{
d->img=image;
d->alt=alt;
QTemporaryFile imageFile;
imageFile.setAutoRemove(false);
if (imageFile.open())
{
d->img.save(imageFile.fileName(), "PNG");
d->url = QUrl::fromLocalFile(imageFile.fileName());
}
}
ImageResult::~ImageResult()
{
delete d;
}
QString ImageResult::toHtml()
{
return QStringLiteral("<img src=\"%1\" alt=\"%2\"/>").arg(d->url.toLocalFile(), d->alt);
}
QString ImageResult::toLatex()
{
return QStringLiteral(" \\begin{center} \n \\includegraphics[width=12cm]{%1} \n \\end{center}").arg(d->url.fileName());
}
QVariant ImageResult::data()
{
if(d->img.isNull())
d->img.load(d->url.toLocalFile());
return QVariant(d->img);
}
QUrl ImageResult::url()
{
return d->url;
}
int ImageResult::type()
{
return ImageResult::Type;
}
QString ImageResult::mimeType()
{
const QList<QByteArray> formats=QImageWriter::supportedImageFormats();
QString mimetype;
foreach(const QByteArray& format, formats)
{
mimetype+=QLatin1String("image/"+format.toLower()+' ');
}
qDebug()<<"type: "<<mimetype;
return mimetype;
}
QDomElement ImageResult::toXml(QDomDocument& doc)
{
qDebug()<<"saving imageresult "<<toHtml();
QDomElement e=doc.createElement(QStringLiteral("Result"));
e.setAttribute(QStringLiteral("type"), QStringLiteral("image"));
e.setAttribute(QStringLiteral("filename"), d->url.fileName());
if (!d->alt.isEmpty())
e.appendChild(doc.createTextNode(d->alt));
qDebug()<<"done";
return e;
}
+QJsonValue Cantor::ImageResult::toJupyterJson()
+{
+ QJsonObject root;
+
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+ }
+ else
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/plain"), toJupyterMultiline(d->alt));
+
+ QImage image;
+ if (d->img.isNull())
+ image.load(d->url.toLocalFile());
+ else
+ image = d->img;
+
+ QByteArray ba;
+ QBuffer buffer(&ba);
+ buffer.open(QIODevice::WriteOnly);
+ image.save(&buffer, "PNG");
+ data.insert(QLatin1String("image/png"), QString::fromLatin1(ba.toBase64()));
+
+ root.insert(QLatin1String("data"), data);
+
+ QJsonObject metadata(jupyterMetadata());
+ if (d->displaySize.isValid())
+ {
+ QJsonObject size;
+ size.insert(QLatin1String("width"), displaySize().width());
+ size.insert(QLatin1String("height"), displaySize().height());
+ metadata.insert(QLatin1String("image/png"), size);
+ }
+ root.insert(QLatin1String("metadata"), metadata);
+
+ return root;
+}
+
void ImageResult::saveAdditionalData(KZip* archive)
{
archive->addLocalFile(d->url.toLocalFile(), d->url.fileName());
}
void ImageResult::save(const QString& filename)
{
//load into memory and let Qt save it, instead of just copying d->url
//to give possibility to convert file format
QImage img=data().value<QImage>();
img.save(filename);
}
+QSize Cantor::ImageResult::displaySize()
+{
+ return d->displaySize;
+}
+
+void Cantor::ImageResult::setDisplaySize(QSize size)
+{
+ d->displaySize = size;
+}
diff --git a/src/lib/imageresult.h b/src/lib/imageresult.h
index 7721fc70..3366a940 100644
--- a/src/lib/imageresult.h
+++ b/src/lib/imageresult.h
@@ -1,60 +1,65 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _IMAGERESULT_H
#define _IMAGERESULT_H
#include "result.h"
#include <QUrl>
+#include <QSize>
class QImage;
namespace Cantor
{
class ImageResultPrivate;
class CANTOR_EXPORT ImageResult : public Result
{
public:
enum{Type=2};
explicit ImageResult( const QUrl& url, const QString& alt=QString());
explicit ImageResult( const QImage& image, const QString& alt=QString());
~ImageResult() override;
QString toHtml() override;
QString toLatex() override;
QVariant data() override;
QUrl url() override;
int type() override;
QString mimeType() override;
+ QSize displaySize();
+ void setDisplaySize(QSize size);
+
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void saveAdditionalData(KZip* archive) override;
void save(const QString& filename) override;
private:
ImageResultPrivate* d;
};
}
#endif /* _IMAGERESULT_H */
diff --git a/src/lib/latexrenderer.cpp b/src/lib/latexrenderer.cpp
index af7c0672..7f2ca3bf 100644
--- a/src/lib/latexrenderer.cpp
+++ b/src/lib/latexrenderer.cpp
@@ -1,277 +1,277 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2011 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "latexrenderer.h"
using namespace Cantor;
#include <KProcess>
#include <QDebug>
#include <QDir>
#include <QFileInfo>
#include <QEventLoop>
#include <QTemporaryFile>
#include <KColorScheme>
#include <QUuid>
#include <config-cantorlib.h>
#include "settings.h"
class Cantor::LatexRendererPrivate
{
public:
QString latexCode;
QString header;
LatexRenderer::Method method;
bool isEquationOnly;
LatexRenderer::EquationType equationType;
QString errorMessage;
bool success;
QString latexFilename;
QString epsFilename;
QTemporaryFile* texFile;
};
static const QLatin1String tex("\\documentclass[12pt,fleqn]{article}"\
"\\usepackage{latexsym,amsfonts,amssymb,ulem}"\
"\\usepackage{amsmath}"\
"\\usepackage[dvips]{graphicx}"\
"\\usepackage[utf8]{inputenc}"\
"\\usepackage{xcolor}"\
"\\setlength\\textwidth{5in}"\
"\\setlength{\\parindent}{0pt}"\
"%1"\
"\\pagecolor[rgb]{%2,%3,%4}"\
"\\pagestyle{empty}"\
"\\begin{document}"\
"\\color[rgb]{%5,%6,%7}"\
"%8"\
"\\end{document}");
static const QLatin1String eqnHeader("\\begin{eqnarray*}%1\\end{eqnarray*}");
static const QLatin1String inlineEqnHeader("$%1$");
LatexRenderer::LatexRenderer(QObject* parent) : QObject(parent),
d(new LatexRendererPrivate)
{
d->method=LatexMethod;
d->isEquationOnly=false;
d->equationType=InlineEquation;
d->success=false;
d->texFile=nullptr;
}
LatexRenderer::~LatexRenderer()
{
delete d;
}
QString LatexRenderer::latexCode() const
{
return d->latexCode;
}
void LatexRenderer::setLatexCode(const QString& src)
{
d->latexCode=src;
}
QString LatexRenderer::header() const
{
return d->header;
}
void LatexRenderer::addHeader(const QString& header)
{
d->header.append(header);
}
void LatexRenderer::setHeader(const QString& header)
{
d->header=header;
}
LatexRenderer::Method LatexRenderer::method() const
{
return d->method;
}
void LatexRenderer::setMethod(LatexRenderer::Method method)
{
d->method=method;
}
void LatexRenderer::setEquationType(LatexRenderer::EquationType type)
{
d->equationType=type;
}
LatexRenderer::EquationType LatexRenderer::equationType() const
{
return d->equationType;
}
void LatexRenderer::setErrorMessage(const QString& msg)
{
d->errorMessage=msg;
}
QString LatexRenderer::errorMessage() const
{
return d->errorMessage;
}
bool LatexRenderer::renderingSuccessful() const
{
return d->success;
}
void LatexRenderer::setEquationOnly(bool isEquationOnly)
{
d->isEquationOnly=isEquationOnly;
}
bool LatexRenderer::isEquationOnly() const
{
return d->isEquationOnly;
}
QString LatexRenderer::imagePath() const
{
return d->epsFilename;
}
void LatexRenderer::render()
{
switch(d->method)
{
case LatexRenderer::LatexMethod: renderWithLatex(); break;
case LatexRenderer::MmlMethod: renderWithMml(); break;
};
}
void LatexRenderer::renderBlocking()
{
QEventLoop event;
connect(this, &LatexRenderer::done, &event, &QEventLoop::quit);
connect(this, &LatexRenderer::error, &event, &QEventLoop::quit);
render();
event.exec();
}
void LatexRenderer::renderWithLatex()
{
qDebug()<<"rendering using latex method";
QString dir=QStandardPaths::writableLocation(QStandardPaths::TempLocation);
if (d->texFile)
delete d->texFile;
d->texFile=new QTemporaryFile(dir + QDir::separator() + QLatin1String("cantor_tex-XXXXXX.tex"));
d->texFile->open();
KColorScheme scheme(QPalette::Active);
const QColor &backgroundColor=scheme.background().color();
const QColor &foregroundColor=scheme.foreground().color();
QString expressionTex=tex;
expressionTex=expressionTex.arg(d->header)
.arg(backgroundColor.redF()).arg(backgroundColor.greenF()).arg(backgroundColor.blueF())
.arg(foregroundColor.redF()).arg(foregroundColor.greenF()).arg(foregroundColor.blueF());
if(isEquationOnly())
{
switch(equationType())
{
case FullEquation: expressionTex=expressionTex.arg(eqnHeader); break;
case InlineEquation: expressionTex=expressionTex.arg(inlineEqnHeader); break;
}
}
expressionTex=expressionTex.arg(d->latexCode);
// qDebug()<<"full tex:\n"<<expressionTex;
d->texFile->write(expressionTex.toUtf8());
d->texFile->flush();
QString fileName = d->texFile->fileName();
qDebug()<<"fileName: "<<fileName;
d->latexFilename=fileName;
KProcess *p=new KProcess( this );
p->setWorkingDirectory(dir);
(*p)<<Settings::self()->latexCommand()<<QStringLiteral("-interaction=batchmode")<<QStringLiteral("-halt-on-error")<<fileName;
connect(p, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(convertToPs()) );
p->start();
}
void LatexRenderer::convertToPs()
{
QString dviFile=d->latexFilename;
dviFile.replace(QLatin1String(".tex"), QLatin1String(".dvi"));
// Create unique filename for eps file, for preventing names collisions
QString uuid = QUuid::createUuid().toString();
uuid.remove(0, 1);
uuid.chop(1);
uuid.replace(QLatin1Char('-'), QLatin1Char('_'));
const QString& dir=QStandardPaths::writableLocation(QStandardPaths::TempLocation);
d->epsFilename = dir + QDir::separator() + QLatin1String("cantor_")+uuid+QLatin1String(".eps");
KProcess *p=new KProcess( this );
qDebug()<<"converting to eps: "<<Settings::self()->dvipsCommand()<<"-E"<<"-o"<<d->epsFilename<<dviFile;
- (*p)<<Settings::self()->dvipsCommand()<<QStringLiteral("-E")<<QStringLiteral("-o")<<d->epsFilename<<dviFile;
+ (*p)<<Settings::self()->dvipsCommand()<<QStringLiteral("-E")<<QStringLiteral("-q")<<QStringLiteral("-o")<<d->epsFilename<<dviFile;
connect(p, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(convertingDone()) );
p->start();
}
void LatexRenderer::convertingDone()
{
QFileInfo info(d->latexFilename);
qDebug() <<"remove temporary files for " << d->latexFilename;
delete d->texFile;
d->texFile = nullptr;
QString pathWithoutExtention = info.path() + QDir::separator() + info.completeBaseName();
QFile::remove(pathWithoutExtention + QLatin1String(".log"));
QFile::remove(pathWithoutExtention + QLatin1String(".aux"));
QFile::remove(pathWithoutExtention + QLatin1String(".tex"));
QFile::remove(pathWithoutExtention + QLatin1String(".dvi"));
if(QFileInfo(d->epsFilename).exists())
{
d->success=true;
emit done();
}else
{
d->success=false;
setErrorMessage(QStringLiteral("failed to create the latex preview image"));
emit error();
}
}
void LatexRenderer::renderWithMml()
{
qDebug()<<"WARNING: MML rendering not implemented yet!";
emit done();
}
diff --git a/src/lib/latexresult.cpp b/src/lib/latexresult.cpp
index 7dd12c54..0578326b 100644
--- a/src/lib/latexresult.cpp
+++ b/src/lib/latexresult.cpp
@@ -1,149 +1,173 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "latexresult.h"
using namespace Cantor;
#include <QFile>
#include <QTextStream>
+#include <QJsonValue>
+#include <QJsonObject>
#include <QDebug>
class Cantor::LatexResultPrivate
{
public:
LatexResultPrivate()
{
showCode=false;
}
bool showCode;
QString code;
QString plain;
};
LatexResult::LatexResult(const QString& code, const QUrl &url, const QString& plain) : EpsResult( url ),
d(new LatexResultPrivate)
{
d->code=code;
d->plain=plain;
}
LatexResult::~LatexResult()
{
delete d;
}
int LatexResult::type()
{
return LatexResult::Type;
}
QString LatexResult::mimeType()
{
if(isCodeShown())
return QStringLiteral("text/plain");
else
return EpsResult::mimeType();
}
QString LatexResult::code()
{
return d->code;
}
QString LatexResult::plain()
{
return d->plain;
}
bool LatexResult::isCodeShown()
{
return d->showCode;
}
void LatexResult::showCode()
{
d->showCode=true;
}
void LatexResult::showRendered()
{
d->showCode=false;
}
QVariant LatexResult::data()
{
if(isCodeShown())
return QVariant(code());
else
return EpsResult::data();
}
QString LatexResult::toHtml()
{
if (isCodeShown())
{
QString s=code();
return s.toHtmlEscaped();
}
else
{
return EpsResult::toHtml();
}
}
QString LatexResult::toLatex()
{
return code();
}
QDomElement LatexResult::toXml(QDomDocument& doc)
{
qDebug()<<"saving textresult "<<toHtml();
QDomElement e=doc.createElement(QStringLiteral("Result"));
e.setAttribute(QStringLiteral("type"), QStringLiteral("latex"));
QUrl url= EpsResult::data().toUrl();
e.setAttribute(QStringLiteral("filename"), url.fileName());
QDomText txt=doc.createTextNode(code());
e.appendChild(txt);
return e;
}
+QJsonValue Cantor::LatexResult::toJupyterJson()
+{
+ QJsonObject root;
+
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+ }
+ else
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/plain"), toJupyterMultiline(d->plain));
+ data.insert(QLatin1String("text/latex"), toJupyterMultiline(d->code));
+ root.insert(QLatin1String("data"), data);
+
+ root.insert(QLatin1String("metadata"), jupyterMetadata());
+
+ return root;
+}
+
void LatexResult::save(const QString& filename)
{
if(isCodeShown())
{
QFile file(filename);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream stream(&file);
stream<<code();
file.close();
}else
{
EpsResult::save(filename);
}
}
diff --git a/src/lib/latexresult.h b/src/lib/latexresult.h
index 7e62e0b4..7d7c1bd1 100644
--- a/src/lib/latexresult.h
+++ b/src/lib/latexresult.h
@@ -1,66 +1,67 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _LATEXRESULT_H
#define _LATEXRESULT_H
#include "epsresult.h"
#include "cantor_export.h"
namespace Cantor{
class LatexResultPrivate;
/**Class used for LaTeX results, it is basically an Eps result,
but it exports a different type, and additionally stores the
LaTeX code, used to generate the Eps, so it can be retrieved
later
**/
class CANTOR_EXPORT LatexResult : public EpsResult
{
public:
enum {Type=7};
LatexResult( const QString& code, const QUrl& url, const QString& plain = QString());
~LatexResult() override;
-
+
int type() override;
QString mimeType() override;
bool isCodeShown();
void showCode();
void showRendered();
QString code();
QString plain();
QString toHtml() override;
QString toLatex() override;
QVariant data() override;
QDomElement toXml(QDomDocument& doc) override;
-
+ QJsonValue toJupyterJson() override;
+
void save(const QString& filename) override;
private:
LatexResultPrivate* d;
};
}
#endif /* _LATEXRESULT_H */
diff --git a/src/lib/mimeresult.cpp b/src/lib/mimeresult.cpp
new file mode 100644
index 00000000..bbdf25f8
--- /dev/null
+++ b/src/lib/mimeresult.cpp
@@ -0,0 +1,135 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Nikita Sirgienko <warquark@gmail.com>
+*/
+
+#include "mimeresult.h"
+
+#include <QDebug>
+#include <QJsonObject>
+#include <QJsonArray>
+#include <QJsonDocument>
+#include <QFile>
+#include <KLocalizedString>
+
+using namespace Cantor;
+
+class Cantor::MimeResultPrivate
+{
+public:
+ MimeResultPrivate() = default;
+
+ QString plain;
+ QJsonObject mimeBundle;
+};
+
+MimeResult::MimeResult(const QJsonObject& mimeBundle) : d(new MimeResultPrivate)
+{
+ bool isOriginalPlain = mimeBundle.contains(QLatin1String("text/plain"));
+ if (isOriginalPlain)
+ d->plain = fromJupyterMultiline(mimeBundle.value(QLatin1String("text/plain")));
+ else
+ d->plain = i18n("This is unsupported Jupyter content of types ('%1')", mimeBundle.keys().join(QLatin1String(", ")));
+ d->mimeBundle = mimeBundle;
+}
+
+MimeResult::~MimeResult()
+{
+ delete d;
+}
+
+QString MimeResult::toHtml()
+{
+ return QLatin1String("<pre>") + d->plain.toHtmlEscaped() + QLatin1String("</pre>");
+}
+
+int MimeResult::type()
+{
+ return MimeResult::Type;
+}
+
+QString MimeResult::mimeType()
+{
+ return QLatin1Literal("application/json");
+}
+
+QVariant MimeResult::data()
+{
+ return d->mimeBundle;
+}
+
+QString MimeResult::plain()
+{
+ return d->plain;
+}
+
+QDomElement MimeResult::toXml(QDomDocument& doc)
+{
+ qDebug()<<"saving mime result with types" << d->mimeBundle.keys();
+ QDomElement e=doc.createElement(QStringLiteral("Result"));
+ e.setAttribute(QStringLiteral("type"), QStringLiteral("mime"));
+
+ for (const QString& key : d->mimeBundle.keys())
+ {
+ QJsonDocument jsonDoc;
+ QJsonObject obj;
+ obj.insert(QLatin1String("content"), d->mimeBundle[key]);
+ jsonDoc.setObject(obj);
+
+ QDomElement content = doc.createElement(QStringLiteral("Content"));
+ content.setAttribute(QStringLiteral("key"), key);
+ content.appendChild(doc.createTextNode(QString::fromUtf8(jsonDoc.toJson())));
+ e.appendChild(content);
+ }
+
+ return e;
+}
+
+QJsonValue Cantor::MimeResult::toJupyterJson()
+{
+ QJsonObject root;
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+ }
+ else
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+ root.insert(QLatin1String("data"), d->mimeBundle);
+ root.insert(QLatin1String("metadata"), jupyterMetadata());
+
+ return root;
+}
+
+void Cantor::MimeResult::save(const QString& filename)
+{
+ QFile file(filename);
+
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ return;
+
+ QTextStream stream(&file);
+
+ QJsonDocument jsonDoc;
+ jsonDoc.setObject(d->mimeBundle);
+
+ stream << jsonDoc.toJson();
+
+ file.close();
+}
diff --git a/src/lib/textresult.h b/src/lib/mimeresult.h
similarity index 63%
copy from src/lib/textresult.h
copy to src/lib/mimeresult.h
index bd1856e8..a751cc57 100644
--- a/src/lib/textresult.h
+++ b/src/lib/mimeresult.h
@@ -1,61 +1,65 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
- Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
- */
+ Copyright (C) 2019 Nikita Sirgienko <warquark@gmail.com>
+*/
-#ifndef _TEXTRESULT_H
-#define _TEXTRESULT_H
+#ifndef _MIMERESULT_H
+#define _MIMERESULT_H
-#include "result.h"
+#include <QJsonObject>
+#include "result.h"
#include "cantor_export.h"
namespace Cantor
{
-class TextResultPrivate;
-class CANTOR_EXPORT TextResult : public Result
+class MimeResultPrivate;
+
+/**
+ * Class for Jupyter results, which can't be handeled by Cantor
+ * So data of the results and their mime types stored in this result
+ * for preventing loosing
+ * This must be used only with Jupyter notebook results with unsupported mime type
+ */
+class CANTOR_EXPORT MimeResult : public Result
{
public:
- enum { Type=1 };
- enum Format { PlainTextFormat, LatexFormat};
- TextResult(const QString& text);
- TextResult(const QString& text, const QString& plain);
- ~TextResult() override;
+ enum { Type = 4 };
+ MimeResult(const QJsonObject& mimeBundle);
+ ~MimeResult() override;
QString toHtml() override;
- QVariant data() override;
+ QVariant data() override;
QString plain();
int type() override;
QString mimeType() override;
- Format format();
- void setFormat(Format f);
-
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void save(const QString& filename) override;
-
private:
- TextResultPrivate* d;
+ MimeResultPrivate* d;
};
}
-#endif /* _TEXTRESULT_H */
+
+#endif /* _MIMERESULT_H */
diff --git a/src/lib/result.cpp b/src/lib/result.cpp
index ffa6696d..5f026f0c 100644
--- a/src/lib/result.cpp
+++ b/src/lib/result.cpp
@@ -1,65 +1,119 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "result.h"
using namespace Cantor;
#include <QRegExp>
#include <QUrl>
+#include <QJsonObject>
class Cantor::ResultPrivate
{
public:
-
+ ~ResultPrivate()
+ {
+ if (jupyterMetadata)
+ delete jupyterMetadata;
+ }
+
+ QJsonObject* jupyterMetadata{nullptr};
+ int executionIndex{-1};
};
Result::Result() : d(new ResultPrivate)
{
}
Result::~Result()
{
delete d;
}
QUrl Result::url()
{
return QUrl();
}
QString Result::toLatex()
{
QString html=toHtml();
//replace linebreaks
html.replace(QRegExp(QLatin1String("<br/>[\n]")), QStringLiteral("\n"));
//remove all the unknown tags
html.remove( QRegExp( QLatin1String("<[a-zA-Z\\/][^>]*>") ) );
return QStringLiteral("\\begin{verbatim} %1 \\end{verbatim}").arg(html);
}
void Result::saveAdditionalData(KZip* archive)
{
Q_UNUSED(archive)
//Do nothing
}
+QJsonObject Cantor::Result::jupyterMetadata() const
+{
+ return d->jupyterMetadata ? *d->jupyterMetadata : QJsonObject();
+}
+
+void Cantor::Result::setJupyterMetadata(QJsonObject metadata)
+{
+ if (!d->jupyterMetadata)
+ d->jupyterMetadata = new QJsonObject();
+ *d->jupyterMetadata = metadata;
+}
+
+QJsonArray Cantor::Result::toJupyterMultiline(const QString& source)
+{
+ QJsonArray text;
+ const QStringList& lines = source.split(QLatin1Char('\n'));
+ for (int i = 0; i < lines.size(); i++)
+ {
+ QString line = lines[i];
+ // Don't add \n to last line
+ if (i != lines.size() - 1)
+ line.append(QLatin1Char('\n'));
+ text.append(line);
+ }
+ return text;
+}
+QString Cantor::Result::fromJupyterMultiline(const QJsonValue& source)
+{
+ QString code;
+ if (source.isString())
+ code = source.toString();
+ else if (source.isArray())
+ for (const QJsonValue& line : source.toArray())
+ code += line.toString();
+ return code;
+}
+
+int Cantor::Result::executionIndex() const
+{
+ return d->executionIndex;
+}
+
+void Cantor::Result::setExecutionIndex(int index)
+{
+ d->executionIndex = index;
+}
diff --git a/src/lib/result.h b/src/lib/result.h
index 71ff9b71..11e85330 100644
--- a/src/lib/result.h
+++ b/src/lib/result.h
@@ -1,113 +1,139 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _RESULT_H
#define _RESULT_H
#include <QVariant>
#include <QDomElement>
+#include <QJsonArray>
#include "cantor_export.h"
class KZip;
namespace Cantor
{
class ResultPrivate;
/**
* Base class for different results, like text, image, animation. etc.
*/
class CANTOR_EXPORT Result
{
public:
/**
* Default constructor
*/
Result( );
/**
* Destructor
*/
virtual ~Result();
/**
* returns html code, that represents this result,
* e.g. an img tag for images
* @return html code representing this result
*/
virtual QString toHtml() = 0;
/**
* returns latex code, that represents this result
* e.g. a includegraphics command for images
* it falls back to toHtml if not implemented
* @return latex code representing this result
*/
virtual QString toLatex();
/**
* returns data associated with this result
* (text/images/etc)
* @return data associated with this result
*/
virtual QVariant data() = 0;
/**
* returns an url, data for this result resides at
* @return an url, data for this result resides at
*/
virtual QUrl url();
/**
* returns an unique number, representing the type of this
* result. Every subclass should define their own Type.
* @return the type of this result
*/
virtual int type() = 0;
/**
* returns the mimetype, this result is
* @return the mimetype, this result is
*/
virtual QString mimeType() = 0;
/**
* returns a DomElement, containing the information of the result
* @param doc DomDocument used for storing the information
* @return DomElement, containing the information of the result
*/
virtual QDomElement toXml(QDomDocument& doc) = 0;
/**
* saves all the data, that can't be saved in xml
* in an extra file in the archive.
*/
virtual void saveAdditionalData(KZip* archive);
+ /**
+ * return a Jupyter json object, containing the information of the result
+ */
+ virtual QJsonValue toJupyterJson() = 0;
/**
* saves this to a file
* @param filename name of the file
*/
virtual void save(const QString& filename) = 0;
+
+ /**
+ * This functions handle Jupyter metadata of
+ */
+ QJsonObject jupyterMetadata() const;
+ void setJupyterMetadata(QJsonObject metadata);
+
+ /**
+ * This function is duplicate of JupyterUtils::toJupyterMultiline
+ * TODO: If we move JupyterUtils in library, remove this function
+ */
+ static QJsonArray toJupyterMultiline(const QString& source);
+ static QString fromJupyterMultiline(const QJsonValue& source);
+
+ /**
+ * Allow to set execution result index, on this moment useful only for Jupyter
+ * But maybe Cantor can use it too
+ */
+ int executionIndex() const;
+ void setExecutionIndex(int index);
+
private:
ResultPrivate* d;
};
}
#endif /* _RESULT_H */
diff --git a/src/lib/textresult.cpp b/src/lib/textresult.cpp
index 21fbf9ca..6b3a0d5c 100644
--- a/src/lib/textresult.cpp
+++ b/src/lib/textresult.cpp
@@ -1,135 +1,232 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "textresult.h"
using namespace Cantor;
#include <QDebug>
#include <QFile>
#include <QTextStream>
+#include <QJsonArray>
+#include <QJsonObject>
QString rtrim(const QString& s)
{
QString result = s;
while (result.count() > 0 && result[result.count()-1].isSpace() )
{
result = result.left(result.count() -1 );
}
return result;
}
class Cantor::TextResultPrivate
{
public:
TextResultPrivate()
{
format=TextResult::PlainTextFormat;
}
QString data;
QString plain;
TextResult::Format format;
+ bool isStderr;
};
TextResult::TextResult(const QString& data) : d(new TextResultPrivate)
{
d->data=rtrim(data);
d->plain=d->data;
}
TextResult::TextResult(const QString& data, const QString& plain) : d(new TextResultPrivate)
{
d->data=rtrim(data);
d->plain=rtrim(plain);
}
TextResult::~TextResult()
{
delete d;
}
QString TextResult::toHtml()
{
QString s=d->data.toHtmlEscaped();
s.replace(QLatin1Char('\n'), QLatin1String("<br/>\n"));
s.replace(QLatin1Char(' '), QLatin1String("&nbsp;"));
return s;
}
QVariant TextResult::data()
{
return QVariant(d->data);
}
QString TextResult::plain()
{
return d->plain;
}
int TextResult::type()
{
return TextResult::Type;
}
QString TextResult::mimeType()
{
qDebug()<<"format: "<<format();
- if(format()==TextResult::PlainTextFormat)
- return QStringLiteral("text/plain");
- else
- return QStringLiteral("text/x-tex");
+ switch(format())
+ {
+ case TextResult::PlainTextFormat:
+ return QStringLiteral("text/plain");
+
+ case TextResult::LatexFormat:
+ return QStringLiteral("text/x-tex");
+
+ default:
+ return QString();
+ }
}
TextResult::Format TextResult::format()
{
return d->format;
}
void TextResult::setFormat(TextResult::Format f)
{
d->format=f;
}
QDomElement TextResult::toXml(QDomDocument& doc)
{
qDebug()<<"saving textresult "<<toHtml();
QDomElement e=doc.createElement(QStringLiteral("Result"));
e.setAttribute(QStringLiteral("type"), QStringLiteral("text"));
+ e.setAttribute(QStringLiteral("stderr"), d->isStderr);
+ if (d->format == LatexFormat)
+ e.setAttribute(QStringLiteral("format"), QStringLiteral("latex"));
QDomText txt=doc.createTextNode(data().toString());
e.appendChild(txt);
return e;
}
+QJsonValue Cantor::TextResult::toJupyterJson()
+{
+ QJsonObject root;
+
+ switch (d->format)
+ {
+ case PlainTextFormat:
+ {
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/plain"), jupyterText(d->data));
+ root.insert(QLatin1String("data"), data);
+
+ root.insert(QLatin1String("metadata"), jupyterMetadata());
+ }
+ else
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("stream"));
+ if (d->isStderr)
+ root.insert(QLatin1String("name"), QLatin1String("stderr"));
+ else
+ root.insert(QLatin1String("name"), QLatin1String("stdout"));
+
+ // Jupyter don't support a few text result (it merges them into one text),
+ // so add additinoal \n to end
+ // See https://github.com/jupyter/notebook/issues/4699
+ root.insert(QLatin1String("text"), jupyterText(d->data, true));
+ }
+ break;
+ }
+
+ case LatexFormat:
+ {
+ if (executionIndex() != -1)
+ {
+ root.insert(QLatin1String("output_type"), QLatin1String("execute_result"));
+ root.insert(QLatin1String("execution_count"), executionIndex());
+ }
+ else
+ root.insert(QLatin1String("output_type"), QLatin1String("display_data"));
+
+ QJsonObject data;
+ data.insert(QLatin1String("text/latex"), jupyterText(d->data));
+ data.insert(QLatin1String("text/plain"), jupyterText(d->plain));
+ root.insert(QLatin1String("data"), data);
+
+ root.insert(QLatin1String("metadata"), jupyterMetadata());
+ break;
+ }
+ }
+
+ return root;
+}
+
void TextResult::save(const QString& filename)
{
QFile file(filename);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream stream(&file);
stream<<d->data;
file.close();
}
+
+QJsonArray TextResult::jupyterText(const QString& text, bool addEndNewLine)
+{
+ QJsonArray array;
+
+ const QStringList& lines = text.split(QLatin1Char('\n'));
+ for (int i = 0; i < lines.size(); i++)
+ {
+ QString line = lines[i];
+ if (i != lines.size() - 1 || addEndNewLine)
+ line.append(QLatin1Char('\n'));
+ array.append(line);
+ }
+
+ return array;
+}
+
+bool Cantor::TextResult::isStderr() const
+{
+ return d->isStderr;
+}
+
+void Cantor::TextResult::setStdErr(bool value)
+{
+ d->isStderr = value;
+}
diff --git a/src/lib/textresult.h b/src/lib/textresult.h
index bd1856e8..1a9ac7e6 100644
--- a/src/lib/textresult.h
+++ b/src/lib/textresult.h
@@ -1,61 +1,68 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _TEXTRESULT_H
#define _TEXTRESULT_H
#include "result.h"
#include "cantor_export.h"
namespace Cantor
{
class TextResultPrivate;
class CANTOR_EXPORT TextResult : public Result
{
public:
enum { Type=1 };
enum Format { PlainTextFormat, LatexFormat};
TextResult(const QString& text);
TextResult(const QString& text, const QString& plain);
~TextResult() override;
QString toHtml() override;
QVariant data() override;
QString plain();
int type() override;
QString mimeType() override;
Format format();
void setFormat(Format f);
+ bool isStderr() const;
+ void setStdErr(bool value);
+
QDomElement toXml(QDomDocument& doc) override;
+ QJsonValue toJupyterJson() override;
void save(const QString& filename) override;
+ private:
+ QJsonArray jupyterText(const QString& text, bool addEndNewLine = false);
+
private:
TextResultPrivate* d;
};
}
#endif /* _TEXTRESULT_H */
diff --git a/src/loadedexpression.cpp b/src/loadedexpression.cpp
index 08a1d1a7..7dd6f49b 100644
--- a/src/loadedexpression.cpp
+++ b/src/loadedexpression.cpp
@@ -1,97 +1,313 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#include "loadedexpression.h"
+#include "jupyterutils.h"
#include "lib/imageresult.h"
#include "lib/epsresult.h"
#include "lib/textresult.h"
#include "lib/latexresult.h"
#include "lib/animationresult.h"
+#include "lib/latexrenderer.h"
+#include "lib/mimeresult.h"
+#include "lib/htmlresult.h"
#include <QDir>
#include <QStandardPaths>
+#include <QJsonArray>
+#include <QJsonObject>
+#include <QJsonDocument>
+#include <QDebug>
+#include <QPixmap>
+#include <QTemporaryFile>
LoadedExpression::LoadedExpression( Cantor::Session* session ) : Cantor::Expression( session, false, -1)
{
}
void LoadedExpression::interrupt()
{
//Do nothing
}
void LoadedExpression::evaluate()
{
//Do nothing
}
void LoadedExpression::loadFromXml(const QDomElement& xml, const KZip& file)
{
setCommand(xml.firstChildElement(QLatin1String("Command")).text());
const QDomNodeList& results = xml.elementsByTagName(QLatin1String("Result"));
for (int i = 0; i < results.size(); i++)
{
const QDomElement& resultElement = results.at(i).toElement();
const QString& type = resultElement.attribute(QLatin1String("type"));
+ qDebug() << "type" << type;
if ( type == QLatin1String("text"))
{
- addResult(new Cantor::TextResult(resultElement.text()));
+ const QString& format = resultElement.attribute(QLatin1String("format"));
+ bool isStderr = resultElement.attribute(QLatin1String("stderr")).toInt();
+ Cantor::TextResult* result = new Cantor::TextResult(resultElement.text());
+ if (format == QLatin1String("latex"))
+ result->setFormat(Cantor::TextResult::LatexFormat);
+ result->setStdErr(isStderr);
+ addResult(result);
+ }
+ else if (type == QLatin1String("mime"))
+ {
+ const QDomElement& resultElement = results.at(i).toElement();
+
+ QJsonObject mimeBundle;
+ const QDomNodeList& contents = resultElement.elementsByTagName(QLatin1String("Content"));
+ for (int x = 0; x < contents.count(); x++)
+ {
+ const QDomElement& content = contents.at(x).toElement();
+
+ const QString& mimeType = content.attribute(QLatin1String("key"));
+ QJsonDocument jsonDoc = QJsonDocument::fromJson(content.text().toUtf8());;
+ const QJsonValue& value = jsonDoc.object().value(QLatin1String("content"));
+ mimeBundle.insert(mimeType, value);
+ }
+
+ addResult(new Cantor::MimeResult(mimeBundle));
+ }
+ else if (type == QLatin1String("html"))
+ {
+ const QString& formatString = resultElement.attribute(QLatin1String("showCode"));
+ Cantor::HtmlResult::Format format = Cantor::HtmlResult::Html;
+ if (formatString == QLatin1String("htmlSource"))
+ format = Cantor::HtmlResult::HtmlSource;
+ else if (formatString == QLatin1String("plain"))
+ format = Cantor::HtmlResult::PlainAlternative;
+
+ const QString& plain = resultElement.firstChildElement(QLatin1String("Plain")).text();
+ const QString& html = resultElement.firstChildElement(QLatin1String("Html")).text();
+
+ std::map<QString, QJsonValue> alternatives;
+ const QDomNodeList& alternativeElms = resultElement.elementsByTagName(QLatin1String("Alternative"));
+ for (int x = 0; x < alternativeElms.count(); x++)
+ {
+ const QDomElement& content = alternativeElms.at(x).toElement();
+
+ const QString& mimeType = content.attribute(QLatin1String("key"));
+ QJsonDocument jsonDoc = QJsonDocument::fromJson(content.text().toUtf8());;
+ const QJsonValue& value = jsonDoc.object().value(QLatin1String("root"));
+ alternatives[mimeType] = value;
+ }
+
+ Cantor::HtmlResult* result = new Cantor::HtmlResult(html, plain, alternatives);
+ result->setFormat(format);
+
+ addResult(result);
}
else if (type == QLatin1String("image") || type == QLatin1String("latex") || type == QLatin1String("animation"))
{
const KArchiveEntry* imageEntry=file.directory()->entry(resultElement.attribute(QLatin1String("filename")));
if (imageEntry&&imageEntry->isFile())
{
const KArchiveFile* imageFile=static_cast<const KArchiveFile*>(imageEntry);
QString dir=QStandardPaths::writableLocation(QStandardPaths::TempLocation);
imageFile->copyTo(dir);
QUrl imageUrl = QUrl::fromLocalFile(QDir(dir).absoluteFilePath(imageFile->name()));
if(type==QLatin1String("latex"))
{
addResult(new Cantor::LatexResult(resultElement.text(), imageUrl));
}else if(type==QLatin1String("animation"))
{
addResult(new Cantor::AnimationResult(imageUrl));
}else if(imageFile->name().endsWith(QLatin1String(".eps")))
{
const QByteArray& ba = QByteArray::fromBase64(resultElement.attribute(QLatin1String("image")).toLatin1());
QImage image;
image.loadFromData(ba);
addResult(new Cantor::EpsResult(imageUrl, image));
}else
{
addResult(new Cantor::ImageResult(imageUrl, resultElement.text()));
}
}
}
}
const QDomElement& errElem = xml.firstChildElement(QLatin1String("Error"));
if (!errElem.isNull())
{
setErrorMessage(errElem.text());
setStatus(Error);
}
else
setStatus(Done);
}
+
+void LoadedExpression::loadFromJupyter(const QJsonObject& cell)
+{
+ setCommand(JupyterUtils::getSource(cell));
+
+ const QJsonValue idObject = cell.value(QLatin1String("execution_count"));
+ if (!idObject.isUndefined() && !idObject.isNull())
+ setId(idObject.toInt());
+
+ const QJsonArray& outputs = cell.value(QLatin1String("outputs")).toArray();
+ for (QJsonArray::const_iterator iter = outputs.begin(); iter != outputs.end(); iter++)
+ {
+ if (!JupyterUtils::isJupyterOutput(*iter))
+ continue;
+
+ const QJsonObject& output = iter->toObject();
+ const QString& outputType = JupyterUtils::getOutputType(output);
+ if (JupyterUtils::isJupyterTextOutput(output))
+ {
+ const QString& text = JupyterUtils::fromJupyterMultiline(output.value(QLatin1String("text")));
+ bool isStderr = output.value(QLatin1String("name")).toString() == QLatin1String("stderr");
+ Cantor::TextResult* result = new Cantor::TextResult(text);
+ result->setStdErr(isStderr);
+ addResult(result);
+ }
+ else if (JupyterUtils::isJupyterErrorOutput(output))
+ {
+ const QJsonArray& tracebackLineArray = output.value(QLatin1String("traceback")).toArray();
+ QString traceback;
+
+ // Looks like the traceback in Jupyter joined with '\n', no ''
+ // So, manually add it
+ for (const QJsonValue& line : tracebackLineArray)
+ traceback += line.toString() + QLatin1Char('\n');
+ traceback.chop(1);
+
+ // IPython returns error with terminal colors, we handle it here, but should we?
+ static const QChar ESC(0x1b);
+ traceback.remove(QRegExp(QString(ESC)+QLatin1String("\\[[0-9;]*m")));
+
+ setErrorMessage(traceback);
+ }
+ else if (JupyterUtils::isJupyterDisplayOutput(output) || JupyterUtils::isJupyterExecutionResult(output))
+ {
+ const QJsonObject& data = output.value(QLatin1String("data")).toObject();
+
+ QJsonObject metadata = JupyterUtils::getMetadata(output);
+ const QString& text = JupyterUtils::fromJupyterMultiline(data.value(JupyterUtils::textMime));
+ const QString& mainKey = JupyterUtils::mainBundleKey(data);
+
+ Cantor::Result* result = nullptr;
+ if (mainKey == JupyterUtils::gifMime)
+ {
+ const QByteArray& bytes = QByteArray::fromBase64(data.value(mainKey).toString().toLatin1());
+
+ QTemporaryFile file;
+ file.setAutoRemove(false);
+ file.open();
+ file.write(bytes);
+ file.close();
+
+ result = new Cantor::AnimationResult(QUrl::fromLocalFile(file.fileName()), text);
+ }
+ else if (mainKey == JupyterUtils::textMime)
+ {
+ result = new Cantor::TextResult(text);
+ }
+ else if (mainKey == JupyterUtils::htmlMime)
+ {
+ const QString& html = JupyterUtils::fromJupyterMultiline(data.value(JupyterUtils::htmlMime));
+ // Some backends places gif animation in hmlt (img tag), for example, Sage
+ if (JupyterUtils::isGifHtml(html))
+ {
+ result = new Cantor::AnimationResult(JupyterUtils::loadGifHtml(html), text);
+ }
+ else
+ {
+ // Load alternative content types too
+ std::map<QString, QJsonValue> alternatives;
+ for (const QString& key : data.keys())
+ if (key != JupyterUtils::htmlMime && key != JupyterUtils::textMime)
+ alternatives[key] = data[key];
+
+ result = new Cantor::HtmlResult(html, text, alternatives);
+ }
+ }
+ else if (mainKey == JupyterUtils::latexMime)
+ {
+ QString latex = JupyterUtils::fromJupyterMultiline(data.value(mainKey));
+ QScopedPointer<Cantor::LatexRenderer> renderer(new Cantor::LatexRenderer(this));
+ renderer->setLatexCode(latex);
+ renderer->setEquationOnly(false);
+ renderer->setMethod(Cantor::LatexRenderer::LatexMethod);
+ renderer->renderBlocking();
+
+ result = new Cantor::LatexResult(latex, QUrl::fromLocalFile(renderer->imagePath()), text);
+
+ // If we have failed to render LaTeX i think Cantor should show the latex code at least
+ if (!renderer->renderingSuccessful())
+ static_cast<Cantor::LatexResult*>(result)->showCode();
+ }
+ // So this is image
+ else if (JupyterUtils::imageKeys(data).contains(mainKey))
+ {
+ const QImage& image = JupyterUtils::loadImage(data, mainKey);
+ result = new Cantor::ImageResult(image, text);
+
+ const QJsonValue size = metadata.value(mainKey);
+ if (size.isObject())
+ {
+ int w = size.toObject().value(QLatin1String("width")).toInt(-1);
+ int h = size.toObject().value(QLatin1String("height")).toInt(-1);
+
+ if (w != -1 && h != -1)
+ {
+ static_cast<Cantor::ImageResult*>(result)->setDisplaySize(QSize(w, h));
+ // Remove size information, because we don't need it after setting display size
+ // Also, we encode image to 'image/png' on saving as .ipynb, even original image don't png
+ // So, without removing the size info here, after loading for example 'image/tiff' to Cantor from .ipynb and saving the worksheet
+ // (which means, that the image will be saved as png and not as tiff).
+ // We will have outdated key 'image/tiff' in metadata.
+ metadata.remove(mainKey);
+ }
+ }
+
+ }
+ else if (data.keys().size() == 1 && data.keys()[0] == JupyterUtils::textMime)
+ result = new Cantor::TextResult(text);
+ // Cantor don't know, how handle this, so pack into mime container result
+ else
+ {
+ qDebug() << "Found unsupported " << outputType << "result with mimes" << data.keys() << ", so add them to mime container result";
+ result = new Cantor::MimeResult(data);
+ }
+
+ if (result)
+ {
+ result->setJupyterMetadata(metadata);
+ int resultIndex = output.value(QLatin1String("execution_count")).toInt(-1);
+ if (resultIndex != -1)
+ result->setExecutionIndex(resultIndex);
+
+ addResult(result);
+ }
+ }
+ }
+
+ if (errorMessage().isEmpty())
+ setStatus(Done);
+ else
+ setStatus(Error);
+}
diff --git a/src/loadedexpression.h b/src/loadedexpression.h
index 918804ed..f92338f0 100644
--- a/src/loadedexpression.h
+++ b/src/loadedexpression.h
@@ -1,49 +1,52 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
*/
#ifndef _LOADEDEXPRESSION_H
#define _LOADEDEXPRESSION_H
#include "lib/expression.h"
#include <QIODevice>
#include <KZip>
#include <QDomElement>
+class QJsonObject;
+
/** This class is used to hold expressions
loaded from a file. they can't be evaluated
and only show the result, they loaded from xml.
this is used to avoid most exceptions when
dealing with loaded Worksheets instead of newly
created ones.
**/
class LoadedExpression : public Cantor::Expression
{
public:
explicit LoadedExpression( Cantor::Session* session );
~LoadedExpression() override = default;
void evaluate() override;
void interrupt() override;
void loadFromXml(const QDomElement& xml, const KZip& file);
+ void loadFromJupyter(const QJsonObject& cell);
};
#endif /* _LOADEDEXPRESSION_H */
diff --git a/src/markdownentry.cpp b/src/markdownentry.cpp
index 87953132..d99b4766 100644
--- a/src/markdownentry.cpp
+++ b/src/markdownentry.cpp
@@ -1,287 +1,701 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2018 Yifei Wu <kqwyfg@gmail.com>
*/
#include "markdownentry.h"
+#include <QJsonArray>
+#include <QJsonObject>
+#include <QJsonValue>
+#include <QImage>
+#include <QImageReader>
+#include <QBuffer>
+#include <KLocalizedString>
+#include <QDebug>
+#include <QStandardPaths>
+#include <QDir>
+#include <QFileDialog>
+#include <KMessageBox>
+
+#include "jupyterutils.h"
+#include "mathrender.h"
#include <config-cantor.h>
+#include "settings.h"
#ifdef Discount_FOUND
extern "C" {
#include <mkdio.h>
}
#endif
-#include <KLocalizedString>
-#include <QDebug>
MarkdownEntry::MarkdownEntry(Worksheet* worksheet) : WorksheetEntry(worksheet), m_textItem(new WorksheetTextItem(this, Qt::TextEditorInteraction)), rendered(false)
{
m_textItem->enableRichText(false);
+ m_textItem->setOpenExternalLinks(true);
m_textItem->installEventFilter(this);
connect(m_textItem, &WorksheetTextItem::moveToPrevious, this, &MarkdownEntry::moveToPreviousEntry);
connect(m_textItem, &WorksheetTextItem::moveToNext, this, &MarkdownEntry::moveToNextEntry);
connect(m_textItem, SIGNAL(execute()), this, SLOT(evaluate()));
}
void MarkdownEntry::populateMenu(QMenu* menu, QPointF pos)
{
- bool imageSelected = false;
- QTextCursor cursor = m_textItem->textCursor();
- const QChar repl = QChar::ObjectReplacementCharacter;
- if (cursor.hasSelection()) {
- QString selection = m_textItem->textCursor().selectedText();
- imageSelected = selection.contains(repl);
- } else {
- // we need to try both the current cursor and the one after the that
- cursor = m_textItem->cursorForPosition(pos);
- qDebug() << cursor.position();
- for (int i = 2; i; --i) {
- int p = cursor.position();
- if (m_textItem->document()->characterAt(p-1) == repl &&
- cursor.charFormat().hasProperty(Cantor::EpsRenderer::CantorFormula)) {
- m_textItem->setTextCursor(cursor);
- imageSelected = true;
- break;
- }
- cursor.movePosition(QTextCursor::NextCharacter);
- }
- }
- if (imageSelected) {
- menu->addAction(i18n("Show LaTeX code"), this, SLOT(resolveImagesAtCursor()));
- menu->addSeparator();
- }
+ if (!rendered)
+ menu->addAction(i18n("Insert Image Attachment"), this, &MarkdownEntry::insertImage);
+ if (attachedImages.size() != 0)
+ menu->addAction(i18n("Clear Attachments"), this, &MarkdownEntry::clearAttachments);
WorksheetEntry::populateMenu(menu, pos);
}
bool MarkdownEntry::isEmpty()
{
return m_textItem->document()->isEmpty();
}
int MarkdownEntry::type() const
{
return Type;
}
bool MarkdownEntry::acceptRichText()
{
return false;
}
bool MarkdownEntry::focusEntry(int pos, qreal xCoord)
{
if (aboutToBeRemoved())
return false;
m_textItem->setFocusAt(pos, xCoord);
return true;
}
void MarkdownEntry::setContent(const QString& content)
{
rendered = false;
plain = content;
setPlainText(plain);
}
void MarkdownEntry::setContent(const QDomElement& content, const KZip& file)
{
- Q_UNUSED(file);
-
rendered = content.attribute(QLatin1String("rendered"), QLatin1String("1")) == QLatin1String("1");
QDomElement htmlEl = content.firstChildElement(QLatin1String("HTML"));
if(!htmlEl.isNull())
html = htmlEl.text();
else
{
html = QLatin1String("");
rendered = false; // No html provided. Assume that it hasn't been rendered.
}
QDomElement plainEl = content.firstChildElement(QLatin1String("Plain"));
if(!plainEl.isNull())
plain = plainEl.text();
else
{
plain = QLatin1String("");
html = QLatin1String(""); // No plain text provided. The entry shouldn't render anything, or the user can't re-edit it.
}
+ const QDomNodeList& attachments = content.elementsByTagName(QLatin1String("Attachment"));
+ for (int x = 0; x < attachments.count(); x++)
+ {
+ const QDomElement& attachment = attachments.at(x).toElement();
+ QUrl url(attachment.attribute(QLatin1String("url")));
+
+ const QString& base64 = attachment.text();
+ QImage image;
+ image.loadFromData(QByteArray::fromBase64(base64.toLatin1()), "PNG");
+
+ attachedImages.push_back(std::make_pair(url, QLatin1String("image/png")));
+
+ m_textItem->document()->addResource(QTextDocument::ImageResource, url, QVariant(image));
+ }
+
if(rendered)
setRenderedHtml(html);
else
setPlainText(plain);
+
+ // Handle math after setting html
+ const QDomNodeList& maths = content.elementsByTagName(QLatin1String("EmbeddedMath"));
+ foundMath.clear();
+ for (int i = 0; i < maths.count(); i++)
+ {
+ const QDomElement& math = maths.at(i).toElement();
+ const QString mathCode = math.text();
+
+ foundMath.push_back(std::make_pair(mathCode, false));
+ }
+
+ if (rendered)
+ {
+ markUpMath();
+
+ for (int i = 0; i < maths.count(); i++)
+ {
+ const QDomElement& math = maths.at(i).toElement();
+ bool mathRendered = math.attribute(QLatin1String("rendered")).toInt();
+ const QString mathCode = math.text();
+
+ if (mathRendered)
+ {
+ const KArchiveEntry* imageEntry=file.directory()->entry(math.attribute(QLatin1String("path")));
+ if (imageEntry && imageEntry->isFile())
+ {
+ const KArchiveFile* imageFile=static_cast<const KArchiveFile*>(imageEntry);
+ const QString& dir=QStandardPaths::writableLocation(QStandardPaths::TempLocation);
+ imageFile->copyTo(dir);
+ const QString& pdfPath = dir + QDir::separator() + imageFile->name();
+
+ QString latex;
+ Cantor::LatexRenderer::EquationType type;
+ std::tie(latex, type) = parseMathCode(mathCode);
+
+ // Get uuid by removing 'cantor_' and '.pdf' extention
+ // len('cantor_') == 7, len('.pdf') == 4
+ QString uuid = pdfPath;
+ uuid.remove(0, 7);
+ uuid.chop(4);
+
+ bool success;
+ const auto& data = worksheet()->mathRenderer()->renderExpressionFromPdf(pdfPath, uuid, latex, type, &success);
+ if (success)
+ {
+ QUrl internal;
+ internal.setScheme(QLatin1String("internal"));
+ internal.setPath(uuid);
+ setRenderedMath(i+1, data.first, internal, data.second);
+ }
+ }
+ else
+ renderMathExpression(i+1, mathCode);
+ }
+ }
+ }
+
+ // Because, all previous actions was on load stage,
+ // them shoudl unconverted by user
+ m_textItem->document()->clearUndoRedoStacks();
}
-QDomElement MarkdownEntry::toXml(QDomDocument& doc, KZip* archive)
+void MarkdownEntry::setContentFromJupyter(const QJsonObject& cell)
{
- Q_UNUSED(archive);
+ if (!JupyterUtils::isMarkdownCell(cell))
+ return;
+
+ // https://nbformat.readthedocs.io/en/latest/format_description.html#cell-metadata
+ // There isn't Jupyter metadata for markdown cells, which could be handled by Cantor
+ // So we just store it
+ setJupyterMetadata(JupyterUtils::getMetadata(cell));
+
+ const QJsonObject attachments = cell.value(QLatin1String("attachments")).toObject();
+ for (const QString& key : attachments.keys())
+ {
+ const QJsonValue& attachment = attachments.value(key);
+ const QString& mimeKey = JupyterUtils::firstImageKey(attachment);
+ if (!mimeKey.isEmpty())
+ {
+ const QImage& image = JupyterUtils::loadImage(attachment, mimeKey);
+
+ QUrl resourceUrl;
+ resourceUrl.setUrl(QLatin1String("attachment:")+key);
+ attachedImages.push_back(std::make_pair(resourceUrl, mimeKey));
+ m_textItem->document()->addResource(QTextDocument::ImageResource, resourceUrl, QVariant(image));
+ }
+ }
+
+ setPlainText(JupyterUtils::getSource(cell));
+ m_textItem->document()->clearUndoRedoStacks();
+}
+QDomElement MarkdownEntry::toXml(QDomDocument& doc, KZip* archive)
+{
if(!rendered)
plain = m_textItem->toPlainText();
QDomElement el = doc.createElement(QLatin1String("Markdown"));
el.setAttribute(QLatin1String("rendered"), (int)rendered);
QDomElement plainEl = doc.createElement(QLatin1String("Plain"));
plainEl.appendChild(doc.createTextNode(plain));
el.appendChild(plainEl);
QDomElement htmlEl = doc.createElement(QLatin1String("HTML"));
htmlEl.appendChild(doc.createTextNode(html));
el.appendChild(htmlEl);
+ QUrl url;
+ QString key;
+ for (const auto& data : attachedImages)
+ {
+ std::tie(url, key) = std::move(data);
+
+ QDomElement attachmentEl = doc.createElement(QLatin1String("Attachment"));
+ attachmentEl.setAttribute(QStringLiteral("url"), url.toString());
+
+ const QImage& image = m_textItem->document()->resource(QTextDocument::ImageResource, url).value<QImage>();
+
+ QByteArray ba;
+ QBuffer buffer(&ba);
+ buffer.open(QIODevice::WriteOnly);
+ image.save(&buffer, "PNG");
+
+ attachmentEl.appendChild(doc.createTextNode(QString::fromLatin1(ba.toBase64())));
+
+ el.appendChild(attachmentEl);
+ }
+
+ // If math rendered, then append result .pdf to archive
+ QTextCursor cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
+ for (const auto& data : foundMath)
+ {
+ QDomElement mathEl = doc.createElement(QLatin1String("EmbeddedMath"));
+ mathEl.setAttribute(QStringLiteral("rendered"), data.second);
+ mathEl.appendChild(doc.createTextNode(data.first));
+
+ if (data.second)
+ {
+ bool foundNeededImage = false;
+ while(!cursor.isNull() && !foundNeededImage)
+ {
+ QTextImageFormat format=cursor.charFormat().toImageFormat();
+ if (format.hasProperty(Cantor::EpsRenderer::CantorFormula))
+ {
+ const QString& latex = format.property(Cantor::EpsRenderer::Code).toString();
+ const QString& delimiter = format.property(Cantor::EpsRenderer::Delimiter).toString();
+ const QString& code = delimiter + latex + delimiter;
+ if (code == data.first)
+ {
+ const QUrl& url = QUrl::fromLocalFile(format.property(Cantor::EpsRenderer::ImagePath).toString());
+ archive->addLocalFile(url.toLocalFile(), url.fileName());
+ mathEl.setAttribute(QStringLiteral("path"), url.fileName());
+ foundNeededImage = true;
+ }
+ }
+ cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter), cursor);
+ }
+ }
+
+ el.appendChild(mathEl);
+ }
+
return el;
}
+QJsonValue MarkdownEntry::toJupyterJson()
+{
+ QJsonObject entry;
+
+ entry.insert(QLatin1String("cell_type"), QLatin1String("markdown"));
+
+ entry.insert(QLatin1String("metadata"), jupyterMetadata());
+
+ QJsonObject attachments;
+ QUrl url;
+ QString key;
+ for (const auto& data : attachedImages)
+ {
+ std::tie(url, key) = std::move(data);
+
+ const QImage& image = m_textItem->document()->resource(QTextDocument::ImageResource, url).value<QImage>();
+ QString attachmentKey = url.toString().remove(QLatin1String("attachment:"));
+ attachments.insert(attachmentKey, JupyterUtils::packMimeBundle(image, key));
+ }
+ if (!attachments.isEmpty())
+ entry.insert(QLatin1String("attachments"), attachments);
+
+ JupyterUtils::setSource(entry, plain);
+
+ return entry;
+}
+
QString MarkdownEntry::toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)
{
Q_UNUSED(commandSep);
if (commentStartingSeq.isEmpty())
return QString();
- if(!rendered)
- plain = m_textItem->toPlainText();
-
- QString text = QString(plain);
+ QString text(plain);
if (!commentEndingSeq.isEmpty())
return commentStartingSeq + text + commentEndingSeq + QLatin1String("\n");
return commentStartingSeq + text.replace(QLatin1String("\n"), QLatin1String("\n") + commentStartingSeq) + QLatin1String("\n");
}
void MarkdownEntry::interruptEvaluation()
{
}
bool MarkdownEntry::evaluate(EvaluationOption evalOp)
{
if(!rendered)
{
if (m_textItem->toPlainText() == plain && !html.isEmpty())
{
setRenderedHtml(html);
rendered = true;
+ for (auto iter = foundMath.begin(); iter != foundMath.end(); iter++)
+ iter->second = false;
+ markUpMath();
}
else
{
plain = m_textItem->toPlainText();
rendered = renderMarkdown(plain);
}
+ m_textItem->document()->clearUndoRedoStacks();
}
+ if (rendered && worksheet()->embeddedMathEnabled())
+ renderMath();
+
evaluateNext(evalOp);
return true;
}
bool MarkdownEntry::renderMarkdown(QString& plain)
{
#ifdef Discount_FOUND
QByteArray mdCharArray = plain.toUtf8();
MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size()+1, 0);
- if(!mkd_compile(mdHandle, MKD_FENCEDCODE | MKD_GITHUBTAGS))
+ if(!mkd_compile(mdHandle, MKD_LATEX | MKD_FENCEDCODE | MKD_GITHUBTAGS))
{
qDebug()<<"Failed to compile the markdown document";
mkd_cleanup(mdHandle);
return false;
}
char *htmlDocument;
int htmlSize = mkd_document(mdHandle, &htmlDocument);
html = QString::fromUtf8(htmlDocument, htmlSize);
+
+ char *latexData;
+ int latexDataSize = mkd_latextext(mdHandle, &latexData);
+ QStringList latexUnits = QString::fromUtf8(latexData, latexDataSize).split(QLatin1Char(31), QString::SkipEmptyParts);
+ foundMath.clear();
+
mkd_cleanup(mdHandle);
setRenderedHtml(html);
+
+ QTextCursor cursor(m_textItem->document());
+ for (const QString& latex : latexUnits)
+ foundMath.push_back(std::make_pair(latex, false));
+
+ markUpMath();
+
return true;
#else
Q_UNUSED(plain);
return false;
#endif
}
void MarkdownEntry::updateEntry()
{
+ QTextCursor cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
+ while(!cursor.isNull())
+ {
+ QTextImageFormat format=cursor.charFormat().toImageFormat();
+ if (format.hasProperty(Cantor::EpsRenderer::CantorFormula))
+ worksheet()->mathRenderer()->rerender(m_textItem->document(), format);
+
+ cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter), cursor);
+ }
}
WorksheetCursor MarkdownEntry::search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos)
{
if (!(flags & WorksheetEntry::SearchText) ||
(pos.isValid() && pos.entry() != this))
return WorksheetCursor();
QTextCursor textCursor = m_textItem->search(pattern, qt_flags, pos);
if (textCursor.isNull())
return WorksheetCursor();
else
return WorksheetCursor(this, m_textItem, textCursor);
}
void MarkdownEntry::layOutForWidth(qreal w, bool force)
{
if (size().width() == w && !force)
return;
m_textItem->setGeometry(0, 0, w);
setSize(QSizeF(m_textItem->width(), m_textItem->height() + VerticalMargin));
}
bool MarkdownEntry::eventFilter(QObject* object, QEvent* event)
{
if(object == m_textItem)
{
if(event->type() == QEvent::GraphicsSceneMouseDoubleClick)
{
QGraphicsSceneMouseEvent* mouseEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(event);
if(!mouseEvent) return false;
if(mouseEvent->button() == Qt::LeftButton)
{
if (rendered)
{
setPlainText(plain);
m_textItem->setCursorPosition(mouseEvent->pos());
m_textItem->textCursor().clearSelection();
rendered = false;
return true;
}
}
}
}
return false;
}
bool MarkdownEntry::wantToEvaluate()
{
return !rendered;
}
void MarkdownEntry::setRenderedHtml(const QString& html)
{
m_textItem->setHtml(html);
m_textItem->denyEditing();
}
void MarkdownEntry::setPlainText(const QString& plain)
{
QTextDocument* doc = m_textItem->document();
doc->setPlainText(plain);
m_textItem->setDocument(doc);
m_textItem->allowEditing();
}
+
+void MarkdownEntry::renderMath()
+{
+ QTextCursor cursor(m_textItem->document());
+ for (int i = 0; i < (int)foundMath.size(); i++)
+ if (foundMath[i].second == false)
+ renderMathExpression(i+1, foundMath[i].first);
+}
+
+void MarkdownEntry::handleMathRender(QSharedPointer<MathRenderResult> result)
+{
+ if (!result->successfull)
+ {
+ if (Settings::self()->showMathRenderError())
+ KMessageBox::error(worksheetView(), result->errorMessage, i18n("Cantor Math Error"));
+ else
+ qDebug() << "MarkdownEntry: math render failed with message" << result->errorMessage;
+ return;
+ }
+
+ setRenderedMath(result->jobId, result->renderedMath, result->uniqueUrl, result->image);
+}
+
+void MarkdownEntry::renderMathExpression(int jobId, QString mathCode)
+{
+ QString latex;
+ Cantor::LatexRenderer::EquationType type;
+ std::tie(latex, type) = parseMathCode(mathCode);
+ if (!latex.isNull())
+ worksheet()->mathRenderer()->renderExpression(jobId, latex, type, this, SLOT(handleMathRender(QSharedPointer<MathRenderResult>)));
+}
+
+std::pair<QString, Cantor::LatexRenderer::EquationType> MarkdownEntry::parseMathCode(QString mathCode)
+{
+ static const QLatin1String inlineDelimiter("$");
+ static const QLatin1String displayedDelimiter("$$");
+
+ if (mathCode.startsWith(displayedDelimiter) && mathCode.endsWith(displayedDelimiter))
+ {
+ mathCode.remove(0, 2);
+ mathCode.chop(2);
+
+ if (mathCode[0] == QChar(6))
+ mathCode.remove(0, 1);
+
+ return std::make_pair(mathCode, Cantor::LatexRenderer::FullEquation);
+ }
+ else if (mathCode.startsWith(inlineDelimiter) && mathCode.endsWith(inlineDelimiter))
+ {
+ mathCode.remove(0, 1);
+ mathCode.chop(1);
+
+ if (mathCode[0] == QChar(6))
+ mathCode.remove(0, 1);
+
+ return std::make_pair(mathCode, Cantor::LatexRenderer::InlineEquation);
+ }
+ else
+ return std::make_pair(QString(), Cantor::LatexRenderer::InlineEquation);
+}
+
+void MarkdownEntry::setRenderedMath(int jobId, const QTextImageFormat& format, const QUrl& internal, const QImage& image)
+{
+ if ((int)foundMath.size() < jobId)
+ return;
+
+ const auto& iter = foundMath.begin() + jobId-1;
+
+ QTextCursor cursor = findMath(jobId);
+
+ const QString delimiter = format.property(Cantor::EpsRenderer::Delimiter).toString();
+ QString searchText = delimiter + format.property(Cantor::EpsRenderer::Code).toString() + delimiter;
+
+ // From findMath we will be first symbol of math expression
+ // So in order to select all symbols of the expression, we need to go to previous symbol first
+ // But it working strange sometimes: some times we need to go to previous character, sometimes not
+ // So the code tests that we on '$' symbol and if it isn't true, then we revert back
+ cursor.movePosition(QTextCursor::PreviousCharacter);
+ if (m_textItem->document()->characterAt(cursor.position()) != QLatin1Char('$'))
+ cursor.movePosition(QTextCursor::NextCharacter);
+
+ cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, searchText.size());
+
+ if (!cursor.isNull())
+ {
+ m_textItem->document()->addResource(QTextDocument::ImageResource, internal, QVariant(image));
+
+ Cantor::LatexRenderer::EquationType type = (Cantor::LatexRenderer::EquationType)format.intProperty(Cantor::EpsRenderer::CantorFormula);
+ // Dont add new line for $$...$$ on document's begin and end
+ // And if we in block, which haven't non-space characters except out math expression
+ // In another sitation, Cantor will move rendered image into another QTextBlock
+ QTextCursor prevSymCursor = m_textItem->document()->find(QRegExp(QLatin1String("[^\\s]")), cursor, QTextDocument::FindBackward);
+ if (type == Cantor::LatexRenderer::FullEquation
+ && cursor.selectionStart() != 0
+ && prevSymCursor.block() == cursor.block()
+ )
+ {
+ cursor.insertBlock();
+
+ cursor.setPosition(prevSymCursor.position()+2, QTextCursor::KeepAnchor);
+ cursor.removeSelectedText();
+ }
+
+ cursor.insertText(QString(QChar::ObjectReplacementCharacter), format);
+
+ bool atDocEnd = cursor.position() == m_textItem->document()->characterCount()-1;
+ QTextCursor nextSymCursor = m_textItem->document()->find(QRegExp(QLatin1String("[^\\s]")), cursor);
+ if (type == Cantor::LatexRenderer::FullEquation && !atDocEnd && nextSymCursor.block() == cursor.block())
+ {
+ cursor.setPosition(nextSymCursor.position()-1, QTextCursor::KeepAnchor);
+ cursor.removeSelectedText();
+ cursor.insertBlock();
+ }
+
+ // Set that the formulas is rendered
+ iter->second = true;
+
+ m_textItem->document()->clearUndoRedoStacks();
+ }
+}
+
+QTextCursor MarkdownEntry::findMath(int id)
+{
+ QTextCursor cursor(m_textItem->document());
+ do
+ {
+ QTextCharFormat format = cursor.charFormat();
+ if (format.intProperty(JobProperty) == id)
+ break;
+ }
+ while (cursor.movePosition(QTextCursor::NextCharacter));
+
+ return cursor;
+}
+
+void MarkdownEntry::markUpMath()
+{
+ QTextCursor cursor(m_textItem->document());
+ for (int i = 0; i < (int)foundMath.size(); i++)
+ {
+ if (foundMath[i].second)
+ continue;
+
+ QString searchText = foundMath[i].first;
+ searchText.replace(QRegExp(QLatin1String("\\s+")), QLatin1String(" "));
+
+ cursor = m_textItem->document()->find(searchText, cursor);
+
+ // Mark up founded math code
+ QTextCharFormat format = cursor.charFormat();
+ // Use index+1 in math array as property tag
+ format.setProperty(JobProperty, i+1);
+
+ // We found the math expression, so remove 'marker' (ACII symbol 'Acknowledgement')
+ // The marker have been placed after "$" or "$$"
+ // We remove the marker, only if it presents
+ QString codeWithoutMarker = foundMath[i].first;
+ if (searchText.startsWith(QLatin1String("$$")))
+ {
+ if (codeWithoutMarker[2] == QChar(6))
+ codeWithoutMarker.remove(2, 1);
+ }
+ else if (searchText.startsWith(QLatin1String("$")))
+ {
+ if (codeWithoutMarker[1] == QChar(6))
+ codeWithoutMarker.remove(1, 1);
+ }
+ cursor.insertText(codeWithoutMarker, format);
+ }
+}
+
+void MarkdownEntry::insertImage()
+{
+ const QString& filename = QFileDialog::getOpenFileName(worksheet()->worksheetView(), i18n("Choose Image"), QString(), i18n("Images (*.png *.bmp *.jpg *.svg)"));
+
+ if (!filename.isEmpty())
+ {
+ QImageReader reader(filename);
+ const QImage img = reader.read();
+ if (!img.isNull())
+ {
+ const QString& name = QFileInfo(filename).fileName();
+
+ QUrl url;
+ url.setScheme(QLatin1String("attachment"));
+ url.setPath(name);
+
+ attachedImages.push_back(std::make_pair(url, QLatin1String("image/png")));
+ m_textItem->document()->addResource(QTextDocument::ImageResource, url, QVariant(img));
+
+ QTextCursor cursor = m_textItem->textCursor();
+ cursor.insertText(QString::fromLatin1("![%1](attachment:%1)").arg(name));
+
+ animateSizeChange();
+ }
+ else
+ KMessageBox::error(worksheetView(), i18n("Cantor failed to read image with error \"%1\"", reader.errorString()), i18n("Cantor"));
+ }
+}
+
+void MarkdownEntry::clearAttachments()
+{
+ for (auto& attachment: attachedImages)
+ {
+ const QUrl& url = attachment.first;
+ m_textItem->document()->addResource(QTextDocument::ImageResource, url, QVariant());
+ }
+ attachedImages.clear();
+ animateSizeChange();
+}
diff --git a/src/markdownentry.h b/src/markdownentry.h
index 178dc3ca..95a6cfa5 100644
--- a/src/markdownentry.h
+++ b/src/markdownentry.h
@@ -1,76 +1,102 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2018 Yifei Wu <kqwyfg@gmail.com>
*/
#ifndef MARKDOWNENTRY_H
#define MARKDOWNENTRY_H
+#include <vector>
+
+#include <QSharedPointer>
+
#include "worksheetentry.h"
#include "worksheettextitem.h"
+#include "mathrendertask.h"
+#include "lib/latexrenderer.h"
+
+class QJsonObject;
+
class MarkdownEntry : public WorksheetEntry
{
Q_OBJECT
public:
explicit MarkdownEntry(Worksheet* worksheet);
~MarkdownEntry() override = default;
enum {Type = UserType + 7};
int type() const override;
bool isEmpty() override;
bool acceptRichText() override;
bool focusEntry(int pos = WorksheetTextItem::TopLeft, qreal xCoord=0) override;
void setContent(const QString& content) override;
void setContent(const QDomElement& content, const KZip& file) override;
+ void setContentFromJupyter(const QJsonObject& cell) override;
QDomElement toXml(QDomDocument& doc, KZip* archive) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq) override;
void interruptEvaluation() override;
void layOutForWidth(qreal w, bool force = false) override;
WorksheetCursor search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos = WorksheetCursor()) override;
public Q_SLOTS:
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void updateEntry() override;
void populateMenu(QMenu* menu, QPointF pos) override;
protected:
bool renderMarkdown(QString& plain);
bool eventFilter(QObject* object, QEvent* event) override;
bool wantToEvaluate() override;
void setRenderedHtml(const QString& html);
void setPlainText(const QString& plain);
+ void renderMath();
+ void renderMathExpression(int jobId, QString mathCode);
+ void setRenderedMath(int jobId, const QTextImageFormat& format, const QUrl& internal, const QImage& image);
+ QTextCursor findMath(int id);
+ void markUpMath();
+
+ static std::pair<QString, Cantor::LatexRenderer::EquationType> parseMathCode(QString mathCode);
+
+ protected Q_SLOTS:
+ void handleMathRender(QSharedPointer<MathRenderResult> result);
+ void insertImage();
+ void clearAttachments();
protected:
WorksheetTextItem* m_textItem;
QString plain;
QString html;
bool rendered;
+ std::vector<std::pair<QUrl,QString>> attachedImages;
+ std::vector<std::pair<QString, bool>> foundMath;
+ static const int JobProperty = 10000;
};
#endif //MARKDOWNENTRY_H
diff --git a/src/mathrender.cpp b/src/mathrender.cpp
new file mode 100644
index 00000000..cc7ce355
--- /dev/null
+++ b/src/mathrender.cpp
@@ -0,0 +1,107 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+
+#include "mathrender.h"
+
+#include <QThreadPool>
+#include <QDebug>
+#include <QStandardPaths>
+#include <QFile>
+
+#include "mathrendertask.h"
+#include "lib/epsrenderer.h"
+
+QMutex MathRenderer::popplerMutex;
+
+MathRenderer::MathRenderer(): m_scale(1.0), m_useHighRes(false)
+{
+ qRegisterMetaType<QSharedPointer<MathRenderResult>>();
+}
+
+MathRenderer::~MathRenderer()
+{
+}
+
+bool MathRenderer::mathRenderAvailable()
+{
+ return QStandardPaths::findExecutable(QLatin1String("pdflatex")).isEmpty() == false;
+}
+
+qreal MathRenderer::scale()
+{
+ return m_scale;
+}
+
+void MathRenderer::setScale(qreal scale)
+{
+ m_scale = scale;
+}
+
+void MathRenderer::useHighResolution(bool b)
+{
+ m_useHighRes = b;
+}
+
+void MathRenderer::renderExpression(int jobId, const QString& mathExpression, Cantor::LatexRenderer::EquationType type, const QObject* receiver, const char* resultHandler)
+{
+ MathRenderTask* task = new MathRenderTask(jobId, mathExpression, type, m_scale, m_useHighRes, &popplerMutex);
+ task->setHandler(receiver, resultHandler);
+ task->setAutoDelete(false);
+
+ QThreadPool::globalInstance()->start(task);
+}
+
+void MathRenderer::rerender(QTextDocument* document, const QTextImageFormat& math)
+{
+ const QString& filename = math.property(Cantor::EpsRenderer::ImagePath).toString();
+ if (!QFile::exists(filename))
+ return;
+
+ bool success; QString errorMessage;
+ QImage img = MathRenderTask::renderPdf(filename, m_scale, m_useHighRes, &success, nullptr, &errorMessage, &popplerMutex);
+
+ if (success)
+ {
+ QUrl internal(math.name());
+ document->addResource(QTextDocument::ImageResource, internal, QVariant(img));
+ }
+ else
+ {
+ qDebug() << "Rerender embedded math failed with message: " << errorMessage;
+ }
+}
+
+std::pair<QTextImageFormat, QImage> MathRenderer::renderExpressionFromPdf(const QString& filename, const QString& uuid, const QString& code, Cantor::LatexRenderer::EquationType type, bool* outSuccess)
+{
+ if (!QFile::exists(filename))
+ {
+ if (outSuccess)
+ *outSuccess = false;
+ return std::make_pair(QTextImageFormat(), QImage());
+ }
+
+ bool success; QString errorMessage;
+ const auto& data = MathRenderTask::renderPdfToFormat(filename, code, uuid, type, m_scale, m_useHighRes, &success, &errorMessage, &popplerMutex);
+ if (success == false)
+ qDebug() << "Render embedded math from pdf failed with message: " << errorMessage;
+ if (outSuccess)
+ *outSuccess = success;
+ return data;
+}
diff --git a/src/mathrender.h b/src/mathrender.h
new file mode 100644
index 00000000..d0e64bf0
--- /dev/null
+++ b/src/mathrender.h
@@ -0,0 +1,84 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+#ifndef MATHRENDER_H
+#define MATHRENDER_H
+
+#include <QObject>
+#include <QTextImageFormat>
+#include <QMutex>
+
+#include "lib/latexrenderer.h"
+
+/**
+ * Special class for renderning embeded math in MarkdownEntry and TextEntry
+ * Instead of LatexRenderer+EpsRenderer provide all needed functianality in one class
+ * Even if we add some speed optimization in future, API of the class probably won't change
+ */
+class MathRenderer : public QObject {
+ Q_OBJECT
+ public:
+
+ MathRenderer();
+ ~MathRenderer();
+
+ bool mathRenderAvailable();
+
+ // Resulution contol
+ void setScale(qreal scale);
+ qreal scale();
+ void useHighResolution(bool b);
+
+ /**
+ * This function will run render task in Qt thread pool and
+ * call resultHandler SLOT with MathRenderResult* argument on finish
+ * receiver will be managed about pointer, task only create it
+ */
+ void renderExpression(
+ int jobId,
+ const QString& mathExpression,
+ Cantor::LatexRenderer::EquationType type,
+ const QObject *receiver,
+ const char *resultHandler);
+
+
+ /**
+ * Rerender renderer math expression in document
+ * Unlike MathRender::renderExpression this method isn't async, because
+ * rerender already rendered math is not long operation
+ */
+ void rerender(QTextDocument* document, const QTextImageFormat& math);
+
+ /**
+ * Render math expression from existing .pdf
+ * Like MathRenderer::rerender is blocking
+ */
+ std::pair<QTextImageFormat, QImage> renderExpressionFromPdf(
+ const QString& filename, const QString& uuid, const QString& code, Cantor::LatexRenderer::EquationType type, bool* success
+ );
+
+ private:
+ double m_scale;
+ bool m_useHighRes;
+ // We need this, because poppler-qt5 not threadsafe before 0.73.0 and 0.73.0 is too new
+ // and not common widespread in repositories
+ static QMutex popplerMutex;
+};
+
+#endif /* MATHRENDER_H */
diff --git a/src/mathrendertask.cpp b/src/mathrendertask.cpp
new file mode 100644
index 00000000..f2861b66
--- /dev/null
+++ b/src/mathrendertask.cpp
@@ -0,0 +1,310 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+
+#include "mathrendertask.h"
+
+#include <QTemporaryFile>
+#include <QStandardPaths>
+#include <QUuid>
+#include <QDir>
+#include <KColorScheme>
+#include <KProcess>
+#include <QScopedPointer>
+#include <QMutex>
+#include <QApplication>
+#include <QDebug>
+
+#include <poppler-qt5.h>
+
+#include "epsrenderer.h"
+
+static const QLatin1String mathTex("\\documentclass{standalone}"\
+ "\\usepackage{amsfonts,amssymb}"\
+ "\\usepackage{amsmath}"\
+ "\\usepackage[utf8]{inputenc}"\
+ "\\usepackage{color}"\
+ /*
+ "\\setlength\\textwidth{5in}"\
+ "\\setlength{\\parindent}{0pt}"\
+ "\\pagestyle{empty}"\
+ */
+ "\\begin{document}"\
+ "\\pagecolor[rgb]{%1,%2,%3}"\
+ "\\color[rgb]{%4,%5,%6}"\
+ "\\fontsize{%7}{%7}\\selectfont"\
+ "%8"\
+ "\\end{document}");
+
+static const QLatin1String eqnHeader("$\\displaystyle %1$");
+static const QLatin1String inlineEqnHeader("$%1$");
+
+MathRenderTask::MathRenderTask(
+ int jobId,
+ const QString& code,
+ Cantor::LatexRenderer::EquationType type,
+ double scale,
+ bool highResolution,
+ QMutex* mutex
+ ): m_jobId(jobId), m_code(code), m_type(type), m_scale(scale), m_highResolution(highResolution), m_mutex(mutex)
+ {}
+
+void MathRenderTask::setHandler(const QObject* receiver, const char* resultHandler)
+{
+ connect(this, SIGNAL(finish(QSharedPointer<MathRenderResult>)), receiver, resultHandler);
+}
+
+void MathRenderTask::run()
+{
+ QSharedPointer<MathRenderResult> result(new MathRenderResult());
+
+ const QString& tempDir=QStandardPaths::writableLocation(QStandardPaths::TempLocation);
+
+ QTemporaryFile texFile(tempDir + QDir::separator() + QLatin1String("cantor_tex-XXXXXX.tex"));
+ texFile.open();
+
+ // Verify that standalone.cls available for rendering and could be founded
+ if (!tempDir.contains(QLatin1String("standalone.cls")))
+ {
+ QString file = QStandardPaths::locate(QStandardPaths::AppDataLocation, QLatin1String("latex/standalone.cls"));
+
+ if (file.isEmpty())
+ file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("cantor/latex/standalone.cls"));
+
+ if (file.isEmpty())
+ {
+ result->successfull = false;
+ result->errorMessage = QString::fromLatin1("needed for math render standalone.cls file not found in Cantor data directory");
+ finalize(result);
+ return;
+ }
+ else
+ QFile::copy(file, tempDir + QDir::separator() + QLatin1String("standalone.cls"));
+ }
+ QString expressionTex=mathTex;
+
+ KColorScheme scheme(QPalette::Active);
+ const QColor &backgroundColor=scheme.background().color();
+ const QColor &foregroundColor=scheme.foreground().color();
+
+ expressionTex=expressionTex
+ .arg(backgroundColor.redF()).arg(backgroundColor.greenF()).arg(backgroundColor.blueF())
+ .arg(foregroundColor.redF()).arg(foregroundColor.greenF()).arg(foregroundColor.blueF());
+
+ int fontPointSize = QApplication::font().pointSize();
+ expressionTex=expressionTex.arg(fontPointSize);
+
+ switch(m_type)
+ {
+ case Cantor::LatexRenderer::FullEquation: expressionTex=expressionTex.arg(eqnHeader); break;
+ case Cantor::LatexRenderer::InlineEquation: expressionTex=expressionTex.arg(inlineEqnHeader); break;
+ }
+ expressionTex=expressionTex.arg(m_code);
+
+ texFile.write(expressionTex.toUtf8());
+ texFile.flush();
+
+ QProcess p;
+ p.setWorkingDirectory(tempDir);
+
+ // Create unique uuid for this job
+ // It will be used as pdf filename, for preventing names collisions
+ // And as internal url path too
+ const QString& uuid = genUuid();
+
+ const QString& pdflatex = QStandardPaths::findExecutable(QLatin1String("pdflatex"));
+ p.setProgram(pdflatex);
+ p.setArguments({QStringLiteral("-jobname=cantor_") + uuid, QStringLiteral("-halt-on-error"), texFile.fileName()});
+
+ p.start();
+ p.waitForFinished();
+
+ if (p.exitCode() != 0)
+ {
+ // pdflatex render failed and we haven't pdf file
+ result->successfull = false;
+
+ QString renderErrorText = QString::fromUtf8(p.readAllStandardOutput());
+ renderErrorText.remove(0, renderErrorText.indexOf(QLatin1Char('!')));
+ renderErrorText.remove(renderErrorText.indexOf(QLatin1String("! ==> Fatal error occurred")), renderErrorText.size());
+ renderErrorText = renderErrorText.trimmed();
+ result->errorMessage = renderErrorText;
+
+ finalize(result);
+ texFile.setAutoRemove(false); //Usefull for debug
+ return;
+ }
+
+ //Clean up .aux and .log files
+ QString pathWithoutExtention = tempDir + QDir::separator() + QLatin1String("cantor_")+uuid;
+ QFile::remove(pathWithoutExtention + QLatin1String(".log"));
+ QFile::remove(pathWithoutExtention + QLatin1String(".aux"));
+
+ const QString& pdfFileName = pathWithoutExtention + QLatin1String(".pdf");
+
+ bool success; QString errorMessage; QSizeF size;
+ result->image = renderPdf(pdfFileName, m_scale, m_highResolution, &success, &size, &errorMessage, m_mutex);
+ result->successfull = success;
+ result->errorMessage = errorMessage;
+
+ if (success == false)
+ {
+ finalize(result);
+ return;
+ }
+
+ const auto& data = renderPdfToFormat(pdfFileName, m_code, uuid, m_type, m_scale, m_highResolution, &success, &errorMessage, m_mutex);
+ result->successfull = success;
+ result->errorMessage = errorMessage;
+ if (success == false)
+ {
+ finalize(result);
+ return;
+ }
+
+ result->renderedMath = data.first;
+ result->image = data.second;
+ result->jobId = m_jobId;
+
+ QUrl internal;
+ internal.setScheme(QLatin1String("internal"));
+ internal.setPath(uuid);
+ result->uniqueUrl = internal;
+
+ finalize(result);
+}
+
+void MathRenderTask::finalize(QSharedPointer<MathRenderResult> result)
+{
+ emit finish(result);
+ deleteLater();
+}
+
+QImage MathRenderTask::renderPdf(const QString& filename, double scale, bool highResolution, bool* success, QSizeF* size, QString* errorReason, QMutex* mutex)
+{
+ if (mutex)
+ mutex->lock();
+ Poppler::Document* document = Poppler::Document::load(filename);
+ if (mutex)
+ mutex->unlock();
+ if (document == nullptr)
+ {
+ if (success)
+ *success = false;
+ if (errorReason)
+ *errorReason = QString::fromLatin1("Poppler library have failed to open file % as pdf").arg(filename);
+ return QImage();
+ }
+
+ Poppler::Page* pdfPage = document->page(0);
+ if (pdfPage == nullptr) {
+ if (success)
+ *success = false;
+ if (errorReason)
+ *errorReason = QString::fromLatin1("Poppler library failed to access first page of %1 document").arg(filename);
+
+ delete document;
+ return QImage();
+ }
+
+ QSize pageSize = pdfPage->pageSize();
+
+ double realScale = 1.7 * 1.8;
+ qreal w = 1.7 * pageSize.width();
+ qreal h = 1.7 * pageSize.height();
+ if(highResolution)
+ realScale *= 5;
+ else
+ realScale *= scale;
+
+
+ QImage image = pdfPage->renderToImage(72.0*realScale, 72.0*realScale);
+
+ delete pdfPage;
+ if (mutex)
+ mutex->lock();
+ delete document;
+ if (mutex)
+ mutex->unlock();
+
+ if (image.isNull())
+ {
+ if (success)
+ *success = false;
+ if (errorReason)
+ *errorReason = QString::fromLatin1("Poppler library failed to render pdf %1 to image").arg(filename);
+
+ return image;
+ }
+
+ // Resize with smooth transformation for more beautiful result
+ image = image.convertToFormat(QImage::Format_ARGB32).scaled(image.size()/1.8, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+
+ if (success)
+ *success = true;
+
+ if (size)
+ *size = QSizeF(w, h);
+ return image;
+}
+
+std::pair<QTextImageFormat, QImage> MathRenderTask::renderPdfToFormat(const QString& filename, const QString& code, const QString uuid, Cantor::LatexRenderer::EquationType type, double scale, bool highResulution, bool* success, QString* errorReason, QMutex* mutex)
+{
+ QSizeF size;
+ const QImage& image = renderPdf(filename, scale, highResulution, success, &size, errorReason, mutex);
+
+ if (success && *success == false)
+ return std::make_pair(QTextImageFormat(), QImage());
+
+ QTextImageFormat format;
+
+ QUrl internal;
+ internal.setScheme(QLatin1String("internal"));
+ internal.setPath(uuid);
+
+ format.setName(internal.url());
+ format.setWidth(size.width());
+ format.setHeight(size.height());
+ format.setProperty(Cantor::EpsRenderer::CantorFormula, type);
+ format.setProperty(Cantor::EpsRenderer::ImagePath, filename);
+ format.setProperty(Cantor::EpsRenderer::Code, code);
+ format.setVerticalAlignment(QTextCharFormat::AlignBaseline);
+
+ switch(type)
+ {
+ case Cantor::LatexRenderer::FullEquation:
+ format.setProperty(Cantor::EpsRenderer::Delimiter, QLatin1String("$$"));
+ break;
+
+ case Cantor::LatexRenderer::InlineEquation:
+ format.setProperty(Cantor::EpsRenderer::Delimiter, QLatin1String("$"));
+ break;
+ }
+
+ return std::make_pair(std::move(format), std::move(image));
+}
+
+QString MathRenderTask::genUuid()
+{
+ QString uuid = QUuid::createUuid().toString();
+ uuid.remove(0, 1);
+ uuid.chop(1);
+ uuid.replace(QLatin1Char('-'), QLatin1Char('_'));
+ return uuid;
+}
diff --git a/src/mathrendertask.h b/src/mathrendertask.h
new file mode 100644
index 00000000..f34a96e7
--- /dev/null
+++ b/src/mathrendertask.h
@@ -0,0 +1,96 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+#ifndef MATHRENDERTASK_H
+#define MATHRENDERTASK_H
+
+#include <QObject>
+#include <QString>
+#include <QTextImageFormat>
+#include <QUrl>
+#include <QImage>
+#include <QRunnable>
+#include <QSharedPointer>
+
+#include "lib/latexrenderer.h"
+
+class QMutex;
+
+struct MathRenderResult
+{
+ int jobId;
+ bool successfull;
+ QString errorMessage;
+ QTextImageFormat renderedMath;
+ QUrl uniqueUrl;
+ QImage image;
+};
+Q_DECLARE_METATYPE(MathRenderResult)
+Q_DECLARE_METATYPE(QSharedPointer<MathRenderResult>)
+
+class MathRenderTask : public QObject, public QRunnable
+{
+ Q_OBJECT
+ public:
+ MathRenderTask(
+ int jobId,
+ const QString& code,
+ Cantor::LatexRenderer::EquationType type,
+ double scale,
+ bool highResolution,
+ QMutex* mutex
+ );
+
+ void setHandler(const QObject *receiver, const char *resultHandler);
+
+ void run() override;
+
+ static QImage renderPdf(
+ const QString& filename, double scale, bool highResulution, bool* success = nullptr, QSizeF* size = nullptr, QString* errorReason = nullptr, QMutex* mutex = nullptr
+ );
+ static std::pair<QTextImageFormat, QImage> renderPdfToFormat(
+ const QString& filename,
+ const QString& code,
+ const QString uuid,
+ Cantor::LatexRenderer::EquationType type,
+ double scale,
+ bool highResulution,
+ bool* success = nullptr,
+ QString* errorReason = nullptr,
+ QMutex* mutex = nullptr
+ );
+
+ static QString genUuid();
+
+ Q_SIGNALS:
+ void finish(QSharedPointer<MathRenderResult> result);
+
+ private:
+ void finalize(QSharedPointer<MathRenderResult> result);
+
+ private:
+ int m_jobId;
+ QString m_code;
+ Cantor::LatexRenderer::EquationType m_type;
+ double m_scale;
+ bool m_highResolution;
+ QMutex* m_mutex;
+};
+
+#endif /* MATHRENDERTASK_H */
diff --git a/src/pagebreakentry.cpp b/src/pagebreakentry.cpp
index 10a6dd4d..f2b22465 100644
--- a/src/pagebreakentry.cpp
+++ b/src/pagebreakentry.cpp
@@ -1,152 +1,195 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "pagebreakentry.h"
#include <QTextCursor>
#include <QTextCharFormat>
#include <QPalette>
+#include <QJsonValue>
+#include <QJsonObject>
#include <KColorScheme>
#include <KLocalizedString>
+#include "jupyterutils.h"
+
PageBreakEntry::PageBreakEntry(Worksheet* worksheet)
: WorksheetEntry(worksheet)
{
m_msgItem = new WorksheetTextItem(this);
QTextCursor cursor = m_msgItem->textCursor();
KColorScheme color = KColorScheme(QPalette::Normal, KColorScheme::View);
QTextCharFormat cformat(cursor.charFormat());
cformat.setForeground(color.foreground(KColorScheme::InactiveText));
cursor.insertText(i18n("--- Page Break ---"), cformat);
setFlag(QGraphicsItem::ItemIsFocusable);
}
bool PageBreakEntry::isEmpty()
{
return false;
}
int PageBreakEntry::type() const
{
return Type;
}
void PageBreakEntry::populateMenu(QMenu* menu, QPointF pos)
{
WorksheetEntry::populateMenu(menu, pos);
}
bool PageBreakEntry::acceptRichText()
{
return false;
}
void PageBreakEntry::setContent(const QString& content)
{
Q_UNUSED(content);
return;
}
void PageBreakEntry::setContent(const QDomElement& content, const KZip& file)
{
Q_UNUSED(content);
Q_UNUSED(file);
return;
}
+void PageBreakEntry::setContentFromJupyter(const QJsonObject& cell)
+{
+ Q_UNUSED(cell);
+ return;
+}
+
+QJsonValue PageBreakEntry::toJupyterJson()
+{
+ QJsonObject root;
+
+ root.insert(QLatin1String("cell_type"), QLatin1String("raw"));
+ QJsonObject metadata;
+
+ // "raw_mimetype" vs "format"?
+ // See https://github.com/jupyter/notebook/issues/4730
+ // For safety set both keys
+ metadata.insert(QLatin1String("format"), QLatin1String("text/latex"));
+ metadata.insert(QLatin1String("raw_mimetype"), QLatin1String("text/latex"));
+
+ QJsonObject cantor;
+ cantor.insert(QLatin1String("from_page_break"), true);
+ metadata.insert(JupyterUtils::cantorMetadataKey, cantor);
+
+ root.insert(JupyterUtils::metadataKey, metadata);
+ JupyterUtils::setSource(root, QLatin1String("\\pagebreak"));
+
+ return root;
+}
+
QDomElement PageBreakEntry::toXml(QDomDocument& doc, KZip* archive)
{
Q_UNUSED(archive);
QDomElement pgbrk = doc.createElement(QLatin1String("PageBreak"));
return pgbrk;
}
QString PageBreakEntry::toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)
{
Q_UNUSED(commandSep);
return commentStartingSeq + QLatin1String("page break") + commentEndingSeq;
}
void PageBreakEntry::interruptEvaluation()
{
return;
}
void PageBreakEntry::layOutForWidth(qreal w, bool force)
{
if (size().width() == w && !force)
return;
if (m_msgItem->isVisible()) {
m_msgItem->setGeometry(0, 0, w, true);
setSize(QSizeF(m_msgItem->width(), m_msgItem->height() + VerticalMargin));
} else {
setSize(QSizeF(w, 0));
}
}
bool PageBreakEntry::evaluate(EvaluationOption evalOp)
{
evaluateNext(evalOp);
return true;
}
void PageBreakEntry::updateEntry()
{
if (worksheet()->isPrinting()) {
m_msgItem->setVisible(false);
recalculateSize();
} else if (!m_msgItem->isVisible()) {
m_msgItem->setVisible(true);
recalculateSize();
}
return;
}
/*
void PageBreakEntry::paint(QPainter* painter, const QStyleOptionGraphicsItem*,
QWidget*)
{
if (worksheet()->isPrinting()) {
QPaintDevice* device = painter->paintEngine()->paintDevice();
QPrinter* printer = qobject_cast<QPrinter*>(device);
if (printer)
printer->newPage();
}
}
*/
bool PageBreakEntry::wantToEvaluate()
{
return false;
}
bool PageBreakEntry::wantFocus()
{
return false;
}
+bool PageBreakEntry::isConvertableToPageBreakEntry(const QJsonObject& cell)
+{
+ if (!JupyterUtils::isRawCell(cell))
+ return false;
+
+ QJsonObject metadata = JupyterUtils::getCantorMetadata(cell);
+ QJsonValue value = metadata.value(QLatin1String("from_page_break"));
+
+ return value.isBool() && value.toBool() == true;
+}
diff --git a/src/pagebreakentry.h b/src/pagebreakentry.h
index 952532ce..4a8af0de 100644
--- a/src/pagebreakentry.h
+++ b/src/pagebreakentry.h
@@ -1,67 +1,70 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef PAGEBREAKENTRY_H
#define PAGEBREAKENTRY_H
#include "worksheetentry.h"
class WorksheetTextItem;
class PageBreakEntry : public WorksheetEntry
{
Q_OBJECT
public:
explicit PageBreakEntry(Worksheet* worksheet);
~PageBreakEntry() override = default;
enum {Type = UserType + 3};
int type() const override;
bool isEmpty() override;
bool acceptRichText() override;
void setContent(const QString& content) override;
void setContent(const QDomElement& content, const KZip& file) override;
+ void setContentFromJupyter(const QJsonObject & cell) override;
+ static bool isConvertableToPageBreakEntry(const QJsonObject& cell);
QDomElement toXml(QDomDocument& doc, KZip* archive) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq) override;
void interruptEvaluation() override;
void layOutForWidth(qreal w, bool force = false) override;
//void paint(QPainter* painter, const QStyleOptionGraphicsItem * option,
// QWidget * widget = 0);
public Q_SLOTS:
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void updateEntry() override;
void populateMenu(QMenu* menu, QPointF pos) override;
protected:
bool wantToEvaluate() override;
bool wantFocus() override;
private:
WorksheetTextItem* m_msgItem;
};
#endif /* PAGEBREAKENTRY_H */
diff --git a/src/placeholderentry.cpp b/src/placeholderentry.cpp
index 30866135..781f71cc 100644
--- a/src/placeholderentry.cpp
+++ b/src/placeholderentry.cpp
@@ -1,113 +1,126 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "placeholderentry.h"
#include <QPropertyAnimation>
+#include <QJsonObject>
PlaceHolderEntry::PlaceHolderEntry(Worksheet* worksheet, QSizeF s)
: WorksheetEntry(worksheet)
{
setSize(s);
}
int PlaceHolderEntry::type() const
{
return Type;
}
bool PlaceHolderEntry::isEmpty()
{
/*
// This is counter-intuitive. isEmpty() is used to find out whether a new
// CommandEntry needs to be appended, and a PlaceHolderEntry should never
// prevent that.
return false;
*/
return true;
}
bool PlaceHolderEntry::acceptRichText()
{
return false;
}
void PlaceHolderEntry::setContent(const QString&)
{
}
void PlaceHolderEntry::setContent(const QDomElement&, const KZip&)
{
}
+void PlaceHolderEntry::setContentFromJupyter(const QJsonObject& cell)
+{
+ Q_UNUSED(cell);
+ return;
+}
+
+QJsonValue PlaceHolderEntry::toJupyterJson()
+{
+ return QJsonValue();
+}
+
+
QDomElement PlaceHolderEntry::toXml(QDomDocument&, KZip*)
{
return QDomElement();
}
QString PlaceHolderEntry::toPlain(const QString&, const QString&, const QString&){
return QString();
}
void PlaceHolderEntry::interruptEvaluation()
{
return;
}
void PlaceHolderEntry::layOutForWidth(qreal w, bool force)
{
Q_UNUSED(w);
Q_UNUSED(force);
}
bool PlaceHolderEntry::evaluate(EvaluationOption evalOp)
{
evaluateNext(evalOp);
return true;
}
void PlaceHolderEntry::updateEntry()
{
}
bool PlaceHolderEntry::wantToEvaluate()
{
return false;
}
void PlaceHolderEntry::changeSize(QSizeF s)
{
if (!worksheet()->animationsEnabled()) {
setSize(s);
worksheet()->updateEntrySize(this);
return;
}
if (aboutToBeRemoved())
return;
if (animationActive())
endAnimation();
QPropertyAnimation* sizeAn = sizeChangeAnimation(s);
sizeAn->setEasingCurve(QEasingCurve::InOutQuad);
sizeAn->start(QAbstractAnimation::DeleteWhenStopped);
}
diff --git a/src/placeholderentry.h b/src/placeholderentry.h
index 7bb466e7..386eb4a3 100644
--- a/src/placeholderentry.h
+++ b/src/placeholderentry.h
@@ -1,55 +1,57 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef PLACEHOLDERENTRY_H
#define PLACEHOLDERENTRY_H
#include "worksheetentry.h"
class PlaceHolderEntry : public WorksheetEntry
{
public:
PlaceHolderEntry(Worksheet* worksheet, QSizeF s);
~PlaceHolderEntry() override = default;
enum {Type = UserType + 6};
int type() const override;
bool isEmpty() override;
bool acceptRichText() override;
void setContent(const QString&) override;
void setContent(const QDomElement&, const KZip&) override;
+ void setContentFromJupyter(const QJsonObject & cell) override;
QDomElement toXml(QDomDocument&, KZip*) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString&, const QString&, const QString&) override;
void interruptEvaluation() override;
void layOutForWidth(qreal w, bool force = false) override;
public Q_SLOTS:
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void updateEntry() override;
void changeSize(QSizeF s);
protected:
bool wantToEvaluate() override;
};
#endif //PLACEHOLDERENTRY_H
diff --git a/src/resultitem.cpp b/src/resultitem.cpp
index 394e2ab1..99bbc6d7 100644
--- a/src/resultitem.cpp
+++ b/src/resultitem.cpp
@@ -1,94 +1,98 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "resultitem.h"
#include "textresultitem.h"
#include "imageresultitem.h"
#include "animationresultitem.h"
#include "commandentry.h"
#include "worksheetentry.h"
#include "lib/result.h"
#include "lib/textresult.h"
#include "lib/latexresult.h"
#include "lib/imageresult.h"
#include "lib/epsresult.h"
#include "lib/animationresult.h"
+#include "lib/mimeresult.h"
+#include "lib/htmlresult.h"
#include <QObject>
#include <QIcon>
#include <KLocalizedString>
#include <QDebug>
ResultItem::ResultItem(Cantor::Result* result):
m_result(result)
{
}
ResultItem* ResultItem::create(WorksheetEntry* parent, Cantor::Result* result)
{
switch(result->type()) {
case Cantor::TextResult::Type:
case Cantor::LatexResult::Type:
+ case Cantor::MimeResult::Type:
+ case Cantor::HtmlResult::Type:
{
return new TextResultItem(parent, result);
}
case Cantor::ImageResult::Type:
case Cantor::EpsResult::Type:
{
return new ImageResultItem(parent, result);
}
case Cantor::AnimationResult::Type:
{
return new AnimationResultItem(parent, result);
}
default:
return nullptr;
}
}
void ResultItem::addCommonActions(QObject* self, QMenu* menu)
{
menu->addAction(i18n("Save result"), self, SLOT(saveResult()));
menu->addAction(QIcon::fromTheme(QLatin1String("edit-delete")), i18n("Remove result"), self, [this](){
this->needRemove();
});
}
QGraphicsObject* ResultItem::graphicsObject()
{
return dynamic_cast<QGraphicsObject*>(this);
}
CommandEntry* ResultItem::parentEntry()
{
return qobject_cast<CommandEntry*>(graphicsObject()->parentObject());
}
Cantor::Result* ResultItem::result()
{
return m_result;
}
void ResultItem::needRemove()
{
parentEntry()->removeResult(m_result);
}
diff --git a/src/settings.ui b/src/settings.ui
index d494c114..4ff22cf0 100644
--- a/src/settings.ui
+++ b/src/settings.ui
@@ -1,121 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
+<ui version="6.0">
<class>SettingsBase</class>
<widget class="QWidget" name="SettingsBase">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>398</width>
<height>400</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Default Backend:</string>
</property>
</widget>
</item>
<item>
<widget class="KComboBox" name="kcfg_DefaultBackend">
<property name="editable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="kcfg_AutoEval">
<property name="toolTip">
<string>When enabled, Cantor will automatically evaluate every entry below the current one.</string>
</property>
<property name="text">
<string>Reevaluate Entries automatically</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Defaults</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="kcfg_TypesetDefault">
<property name="text">
<string>Enable LaTeX Typesetting</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_HighlightDefault">
<property name="text">
<string>Enable Syntax Highlighting</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_CompletionDefault">
<property name="text">
<string>Enable Completion</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_ExpressionNumberingDefault">
<property name="text">
<string>Enable Line Numbers</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_AnimationDefault">
<property name="text">
<string>Enable Worksheet Animations</string>
</property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_EmbeddedMathDefault">
+ <property name="text">
+ <string>Enable Embedded Math (works only if pdflatex is installed)</string>
+ </property>
+ </widget>
+ </item>
<item>
<widget class="QCheckBox" name="kcfg_WarnAboutSessionRestart">
<property name="text">
<string>Ask for confirmation when restarting the backend</string>
</property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_ShowMathRenderError">
+ <property name="text">
+ <string>Show message about error on render failure of embeded math</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Jupyter</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <widget class="QCheckBox" name="kcfg_StoreTextEntryFormatting">
+ <property name="text">
+ <string>Save rich text formatting of TextEntry, when save Worksheet in Jupyter notebook format</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header>kcombobox.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
new file mode 100644
index 00000000..ead101ed
--- /dev/null
+++ b/src/test/CMakeLists.txt
@@ -0,0 +1,71 @@
+set(worksheettest_SRCS
+ ../worksheet.cpp
+ ../worksheetview.cpp
+ ../worksheetentry.cpp
+ ../worksheettextitem.cpp
+ ../worksheetimageitem.cpp
+ ../commandentry.cpp
+ ../textentry.cpp
+ ../markdownentry.cpp
+ ../pagebreakentry.cpp
+ ../imageentry.cpp
+ ../latexentry.cpp
+ ../placeholderentry.cpp
+ ../worksheetcursor.cpp
+ ../searchbar.cpp
+ ../actionbar.cpp
+ ../worksheettoolbutton.cpp
+ ../imagesettingsdialog.cpp
+ ../scripteditor/scripteditorwidget.cpp
+ ../resultitem.cpp
+ ../textresultitem.cpp
+ ../imageresultitem.cpp
+ ../animationresultitem.cpp
+ ../loadedexpression.cpp
+ ../animation.cpp
+ ../jupyterutils.cpp
+ ../mathrender.cpp
+ ../mathrendertask.cpp
+ ../extended_document.cpp
+ worksheet_test.cpp)
+
+ki18n_wrap_ui(worksheettest_SRCS ../imagesettings.ui)
+kconfig_add_kcfg_files(worksheettest_SRCS ../settings.kcfgc)
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/data)
+configure_file("data/Lecture-2B-Single-Atom-Lasing.ipynb" data COPYONLY)
+configure_file("data/AEC.04 - Evolutionary Strategies and Covariance Matrix Adaptation.ipynb" data COPYONLY)
+configure_file("data/Population_Genetics.ipynb" data COPYONLY)
+configure_file("data/A Reaction-Diffusion Equation Solver in Python with Numpy.ipynb" data COPYONLY)
+configure_file("data/Automata and Computability using Jupyter.ipynb" data COPYONLY)
+configure_file("data/Cue Combination with Neural Populations .ipynb" data COPYONLY)
+configure_file("data/Transformation2D.ipynb" data COPYONLY)
+configure_file("data/TestMarkdownAttachment.ipynb" data COPYONLY)
+configure_file("data/TestEntryLoad1.ipynb" data COPYONLY)
+configure_file("data/TestEntryLoad2.ipynb" data COPYONLY)
+configure_file("data/TestResultsLoad.ipynb" data COPYONLY)
+configure_file("data/TestNotebookWithJson.ipynb" data COPYONLY)
+configure_file("data/TestNotebookWithModJson.ipynb" data COPYONLY)
+
+set(PATH_TO_TEST_NOTEBOOKS ${CMAKE_CURRENT_BINARY_DIR}/data)
+configure_file (config-cantor-test.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-cantor-test.h )
+
+add_executable( testworksheet ${worksheettest_SRCS})
+add_test(NAME testworksheet COMMAND testworksheet)
+target_link_libraries( testworksheet
+ cantorlibs
+ cantor_config
+ Qt5::Test
+ Qt5::PrintSupport
+ Qt5::Xml
+ ${Qt5XmlPatterns_LIBRARIES}
+ KF5::TextEditor
+ Poppler::Qt5
+)
+
+if(LIBSPECTRE_FOUND)
+ target_link_libraries(testworksheet ${LIBSPECTRE_LIBRARY})
+endif(LIBSPECTRE_FOUND)
+if(Discount_FOUND)
+ target_link_libraries(testworksheet Discount::Lib)
+endif(Discount_FOUND)
diff --git a/src/test/config-cantor-test.h.cmake b/src/test/config-cantor-test.h.cmake
new file mode 100644
index 00000000..ae83b2a0
--- /dev/null
+++ b/src/test/config-cantor-test.h.cmake
@@ -0,0 +1 @@
+#define PATH_TO_TEST_NOTEBOOKS "${PATH_TO_TEST_NOTEBOOKS}"
diff --git a/src/test/data/A Reaction-Diffusion Equation Solver in Python with Numpy.ipynb b/src/test/data/A Reaction-Diffusion Equation Solver in Python with Numpy.ipynb
new file mode 100644
index 00000000..d91fd725
--- /dev/null
+++ b/src/test/data/A Reaction-Diffusion Equation Solver in Python with Numpy.ipynb
@@ -0,0 +1,785 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This notebook demonstrates how IPython notebooks can be used to discuss the theory and implementation of numerical algorithms on one page.\n",
+ "\n",
+ "With `ipython nbconvert --to markdown name.ipynb` a notebook like this one can be made into a \n",
+ "[blog post](http://georg.io/2013/12/Crank_Nicolson) in one easy step. To display the graphics in your resultant blog post use,\n",
+ "for instance, your [Dropbox Public folder](https://www.dropbox.com/help/16/en) that you can \n",
+ "[activate here](https://www.dropbox.com/enable_public_folder)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# The Crank-Nicolson Method"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The [Crank-Nicolson method](http://en.wikipedia.org/wiki/Crank%E2%80%93Nicolson_method) is a well-known finite difference method for the\n",
+ "numerical integration of the heat equation and closely related partial differential equations.\n",
+ "\n",
+ "We often resort to a Crank-Nicolson (CN) scheme when we integrate numerically reaction-diffusion systems in one space dimension\n",
+ "\n",
+ "$$\\frac{\\partial u}{\\partial t} = D \\frac{\\partial^2 u}{\\partial x^2} + f(u),$$\n",
+ "\n",
+ "$$\\frac{\\partial u}{\\partial x}\\Bigg|_{x = 0, L} = 0,$$\n",
+ "\n",
+ "where $u$ is our concentration variable, $x$ is the space variable, $D$ is the diffusion coefficient of $u$, $f$ is the reaction term,\n",
+ "and $L$ is the length of our one-dimensional space domain.\n",
+ "\n",
+ "Note that we use [Neumann boundary conditions](http://en.wikipedia.org/wiki/Neumann_boundary_condition) and specify that the solution\n",
+ "$u$ has zero space slope at the boundaries, effectively prohibiting entrance or exit of material at the boundaries (no-flux boundary conditions)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Finite Difference Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Many fantastic textbooks and tutorials have been written about finite difference methods, for instance a free textbook by\n",
+ "[Lloyd Trefethen](http://people.maths.ox.ac.uk/trefethen/pdetext.html).\n",
+ "\n",
+ "Here we describe a few basic aspects of finite difference methods.\n",
+ "\n",
+ "The above reaction-diffusion equation describes the time evolution of variable $u(x,t)$ in one space dimension ($u$ is a line concentration).\n",
+ "If we knew an analytic expression for $u(x,t)$ then we could plot $u$ in a two-dimensional coordinate system with axes $t$ and $x$.\n",
+ "\n",
+ "To approximate $u(x,t)$ numerically we discretize this two-dimensional coordinate system resulting, in the simplest case, in a\n",
+ "two-dimensional [regular grid](http://en.wikipedia.org/wiki/Regular_grid).\n",
+ "This picture is employed commonly when constructing finite differences methods, see for instance \n",
+ "[Figure 3.2.1 of Trefethen](http://people.maths.ox.ac.uk/trefethen/3all.pdf).\n",
+ "\n",
+ "Let us discretize both time and space as follows:\n",
+ "\n",
+ "$$t_n = n \\Delta t,~ n = 0, \\ldots, N-1,$$\n",
+ "\n",
+ "$$x_j = j \\Delta x,~ j = 0, \\ldots, J-1,$$\n",
+ "\n",
+ "where $N$ and $J$ are the number of discrete time and space points in our grid respectively.\n",
+ "$\\Delta t$ and $\\Delta x$ are the time step and space step respectively and defined as follows:\n",
+ "\n",
+ "$$\\Delta t = T / N,$$\n",
+ "\n",
+ "$$\\Delta x = L / J,$$\n",
+ "\n",
+ "where $T$ is the point in time up to which we will integrate $u$ numerically.\n",
+ "\n",
+ "Our ultimate goal is to construct a numerical method that allows us to approximate the unknonwn analytic solution $u(x,t)$\n",
+ "reasonably well in these discrete grid points.\n",
+ "\n",
+ "That is we want construct a method that computes values $U(j \\Delta x, n \\Delta t)$ (note: capital $U$) so that\n",
+ "\n",
+ "$$U(j \\Delta x, n \\Delta t) \\approx u(j \\Delta x, n \\Delta t)$$\n",
+ "\n",
+ "As a shorthand we will write $U_j^n = U(j \\Delta x, n \\Delta t)$ and $(j,n)$ to refer to grid point $(j \\Delta x, n \\Delta t)$."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## The Crank-Nicolson Stencil"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Based on the two-dimensional grid we construct we then approximate the operators of our reaction-diffusion system.\n",
+ "\n",
+ "For instance, to approximate the time derivative on the left-hand side in grid point $(j,n)$ we use the values of $U$ in two specific grid points:\n",
+ "\n",
+ "$$\\frac{\\partial u}{\\partial t}\\Bigg|_{x = j \\Delta x, t = n \\Delta t} \\approx \\frac{U_j^{n+1} - U_j^n}{\\Delta t}.$$\n",
+ "\n",
+ "We can think of this scheme as a stencil that we superimpose on our $(x,t)$-grid and this particular stencil is\n",
+ "commonly referred to as [forward difference](http://en.wikipedia.org/wiki/Finite_difference#Forward.2C_backward.2C_and_central_differences).\n",
+ "\n",
+ "The spatial part of the [Crank-Nicolson stencil](http://journals.cambridge.org/abstract_S0305004100023197)\n",
+ "(or see [Table 3.2.2 of Trefethen](http://people.maths.ox.ac.uk/trefethen/3all.pdf))\n",
+ "for the heat equation ($u_t = u_{xx}$) approximates the \n",
+ "[Laplace operator](http://en.wikipedia.org/wiki/Laplace_operator) of our equation and takes the following form\n",
+ "\n",
+ "$$\\frac{\\partial^2 u}{\\partial x^2}\\Bigg|_{x = j \\Delta x, t = n \\Delta t} \\approx \\frac{1}{2 \\Delta x^2} \\left( U_{j+1}^n - 2 U_j^n + U_{j-1}^n + U_{j+1}^{n+1} - 2 U_j^{n+1} + U_{j-1}^{n+1}\\right).$$\n",
+ "\n",
+ "To approximate $f(u(j \\Delta x, n \\Delta t))$ we write simply $f(U_j^n)$.\n",
+ "\n",
+ "These approximations define the stencil for our numerical method as pictured on [Wikipedia](http://en.wikipedia.org/wiki/Crank%E2%80%93Nicolson_method).\n",
+ "\n",
+ "![SVG](https://dl.dropboxusercontent.com/u/129945779/georgio/CN-stencil.svg)\n",
+ "\n",
+ "Applying this stencil to grid point $(j,n)$ gives us the following approximation of our reaction-diffusion equation:\n",
+ "\n",
+ "$$\\frac{U_j^{n+1} - U_j^n}{\\Delta t} = \\frac{D}{2 \\Delta x^2} \\left( U_{j+1}^n - 2 U_j^n + U_{j-1}^n + U_{j+1}^{n+1} - 2 U_j^{n+1} + U_{j-1}^{n+1}\\right) + f(U_j^n).$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Reordering Stencil into Linear System"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let us define $\\sigma = \\frac{D \\Delta t}{2 \\Delta x^2}$ and reorder the above approximation of our reaction-diffusion equation:\n",
+ "\n",
+ "$$-\\sigma U_{j-1}^{n+1} + (1+2\\sigma) U_j^{n+1} -\\sigma U_{j+1}^{n+1} = \\sigma U_{j-1}^n + (1-2\\sigma) U_j^n + \\sigma U_{j+1}^n + \\Delta t f(U_j^n).$$\n",
+ "\n",
+ "This equation makes sense for space indices $j = 1,\\ldots,J-2$ but it does not make sense for indices $j=0$ and $j=J-1$ (on the boundaries):\n",
+ "\n",
+ "$$j=0:~-\\sigma U_{-1}^{n+1} + (1+2\\sigma) U_0^{n+1} -\\sigma U_{1}^{n+1} = \\sigma U_{-1}^n + (1-2\\sigma) U_0^n + \\sigma U_{1}^n + \\Delta t f(U_0^n),$$\n",
+ "\n",
+ "$$j=J-1:~-\\sigma U_{J-2}^{n+1} + (1+2\\sigma) U_{J-1}^{n+1} -\\sigma U_{J}^{n+1} = \\sigma U_{J-2}^n + (1-2\\sigma) U_{J-1}^n + \\sigma U_{J}^n + \\Delta t f(U_{J-1}^n).$$\n",
+ "\n",
+ "The problem here is that the values $U_{-1}^n$ and $U_J^n$ lie outside our grid.\n",
+ "\n",
+ "However, we can work out what these values should equal by considering our Neumann boundary condition.\n",
+ "Let us discretize our boundary condition at $j=0$ with the \n",
+ "[backward difference](http://en.wikipedia.org/wiki/Finite_difference#Forward.2C_backward.2C_and_central_differences) and\n",
+ "at $j=J-1$ with the\n",
+ "[forward difference](http://en.wikipedia.org/wiki/Finite_difference#Forward.2C_backward.2C_and_central_differences):\n",
+ "\n",
+ "$$\\frac{U_1^n - U_0^n}{\\Delta x} = 0,$$\n",
+ "\n",
+ "$$\\frac{U_J^n - U_{J-1}^n}{\\Delta x} = 0.$$\n",
+ "\n",
+ "These two equations make it clear that we need to amend our above numerical approximation for\n",
+ "$j=0$ with the identities $U_0^n = U_1^n$ and $U_0^{n+1} = U_1^{n+1}$, and\n",
+ "for $j=J-1$ with the identities $U_{J-1}^n = U_J^n$ and $U_{J-1}^{n+1} = U_J^{n+1}$.\n",
+ "\n",
+ "Let us reinterpret our numerical approximation of the line concentration of $u$ in a fixed point in time as a vector $\\mathbf{U}^n$:\n",
+ "\n",
+ "$$\\mathbf{U}^n = \n",
+ "\\begin{bmatrix} U_0^n \\\\ \\vdots \\\\ U_{J-1}^n \\end{bmatrix}.$$\n",
+ "\n",
+ "Using this notation we can now write our above approximation for a fixed point in time, $t = n \\Delta t$, compactly as a linear system:\n",
+ "\n",
+ "$$\n",
+ "\\begin{bmatrix}\n",
+ "1+\\sigma & -\\sigma & 0 & 0 & 0 & \\cdots & 0 & 0 & 0 & 0\\\\\n",
+ "-\\sigma & 1+2\\sigma & -\\sigma & 0 & 0 & \\cdots & 0 & 0 & 0 & 0 \\\\\n",
+ "0 & -\\sigma & 1+2\\sigma & -\\sigma & \\cdots & 0 & 0 & 0 & 0 & 0 \\\\\n",
+ "0 & 0 & \\ddots & \\ddots & \\ddots & \\ddots & 0 & 0 & 0 & 0 \\\\\n",
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & -\\sigma & 1+2\\sigma & -\\sigma \\\\\n",
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -\\sigma & 1+\\sigma\n",
+ "\\end{bmatrix}\n",
+ "\\begin{bmatrix}\n",
+ "U_0^{n+1} \\\\\n",
+ "U_1^{n+1} \\\\\n",
+ "U_2^{n+1} \\\\\n",
+ "\\vdots \\\\\n",
+ "U_{J-2}^{n+1} \\\\\n",
+ "U_{J-1}^{n+1}\n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "1-\\sigma & \\sigma & 0 & 0 & 0 & \\cdots & 0 & 0 & 0 & 0\\\\\n",
+ "\\sigma & 1-2\\sigma & \\sigma & 0 & 0 & \\cdots & 0 & 0 & 0 & 0 \\\\\n",
+ "0 & \\sigma & 1-2\\sigma & \\sigma & \\cdots & 0 & 0 & 0 & 0 & 0 \\\\\n",
+ "0 & 0 & \\ddots & \\ddots & \\ddots & \\ddots & 0 & 0 & 0 & 0 \\\\\n",
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & \\sigma & 1-2\\sigma & \\sigma \\\\\n",
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \\sigma & 1-\\sigma\n",
+ "\\end{bmatrix}\n",
+ "\\begin{bmatrix}\n",
+ "U_0^{n} \\\\\n",
+ "U_1^{n} \\\\\n",
+ "U_2^{n} \\\\\n",
+ "\\vdots \\\\\n",
+ "U_{J-2}^{n} \\\\\n",
+ "U_{J-1}^{n}\n",
+ "\\end{bmatrix} +\n",
+ "\\begin{bmatrix}\n",
+ "\\Delta t f(U_0^n) \\\\\n",
+ "\\Delta t f(U_1^n) \\\\\n",
+ "\\Delta t f(U_2^n) \\\\\n",
+ "\\vdots \\\\\n",
+ "\\Delta t f(U_{J-2}^n) \\\\\n",
+ "\\Delta t f(U_{J-1}^n)\n",
+ "\\end{bmatrix}.\n",
+ "$$\n",
+ "\n",
+ "Note that since our numerical integration starts with a well-defined initial condition at $n=0$, $\\mathbf{U}^0$, the\n",
+ "vector $\\mathbf{U}^{n+1}$ on the left-hand side is the only unknown in this system of linear equations.\n",
+ "\n",
+ "Thus, to integrate numerically our reaction-diffusion system from time point $n$ to $n+1$ we need to solve numerically for vector $\\mathbf{U}^{n+1}$.\n",
+ "\n",
+ "Let us call the matrix on the left-hand side $A$, the one on the right-hand side $B$,\n",
+ "and the vector on the right-hand side $\\mathbf{f}^n$.\n",
+ "Using this notation we can write the above system as\n",
+ "\n",
+ "$$A \\mathbf{U}^{n+1} = B \\mathbf{U}^n + f^n.$$\n",
+ "\n",
+ "In this linear equation, matrices $A$ and $B$ are defined by our problem: we need to specify these matrices once for our\n",
+ "problem and incorporate our boundary conditions in them.\n",
+ "Vector $\\mathbf{f}^n$ is a function of $\\mathbf{U}^n$ and so needs to be reevaluated in every time point $n$.\n",
+ "We also need to carry out one matrix-vector multiplication every time point, $B \\mathbf{U}^n$, and\n",
+ "one vector-vector addition, $B \\mathbf{U}^n + f^n$.\n",
+ "\n",
+ "The most expensive numerical operation is inversion of matrix $A$ to solve for $\\mathbf{U}^{n+1}$, however we may\n",
+ "get away with doing this only once and store the inverse of $A$ as $A^{-1}$:\n",
+ "\n",
+ "$$\\mathbf{U}^{n+1} = A^{-1} \\left( B \\mathbf{U}^n + f^n \\right).$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## A Crank-Nicolson Example in Python"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let us apply the CN method to a two-variable reaction-diffusion system that was introduced by \n",
+ "[Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442):\n",
+ "\n",
+ "$$\\frac{\\partial u}{\\partial t} = D_u \\frac{\\partial^2 u}{\\partial x^2} + f(u,v),$$\n",
+ "\n",
+ "$$\\frac{\\partial v}{\\partial t} = D_v \\frac{\\partial^2 v}{\\partial x^2} - f(u,v),$$\n",
+ "\n",
+ "with Neumann boundary conditions\n",
+ "\n",
+ "$$\\frac{\\partial u}{\\partial x}\\Bigg|_{x=0,L} = 0,$$\n",
+ "\n",
+ "$$\\frac{\\partial v}{\\partial x}\\Bigg|_{x=0,L} = 0.$$\n",
+ "\n",
+ "The variables of this system, $u$ and $v$, represent the concetrations of the active form and its inactive form respectively.\n",
+ "The reaction term $f(u,v)$ describes the interchange (activation and inactivation) between these two states of the protein.\n",
+ "A particular property of this system is that the inactive has much greater diffusivity that the active form, $D_v \\gg D_u$.\n",
+ "\n",
+ "Using the CN method to integrate this system numerically, we need to set up two separate approximations\n",
+ "\n",
+ "$$A_u \\mathbf{U}^{n+1} = B_u \\mathbf{U}^n + \\mathbf{f}^n,$$\n",
+ "\n",
+ "$$A_v \\mathbf{V}^{n+1} = B_v \\mathbf{V}^n - \\mathbf{f}^n,$$\n",
+ "\n",
+ "with two different $\\sigma$ terms, $\\sigma_u = \\frac{D_u \\Delta t}{2 \\Delta x^2}$ and $\\sigma_v = \\frac{D_v \\Delta t}{2 \\Delta x^2}$."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Import Packages"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "For the matrix-vector multiplication, vector-vector addition, and matrix inversion that we will need to carry\n",
+ "out we will use the Python library [NumPy](http://www.numpy.org/).\n",
+ "To visualize our numerical solutions, we will use [pyplot](http://matplotlib.org/api/pyplot_api.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy\n",
+ "from matplotlib import pyplot"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Numpy allows us to truncate the numerical values of matrices and vectors to improve their display with \n",
+ "[`set_printoptions`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "numpy.set_printoptions(precision=3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Specify Grid"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Our one-dimensional domain has unit length and we define `J = 100` equally spaced\n",
+ "grid points in this domain.\n",
+ "This divides our domain into `J-1` subintervals, each of length `dx`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "L = 1.\n",
+ "J = 100\n",
+ "dx = float(L)/float(J-1)\n",
+ "x_grid = numpy.array([j*dx for j in range(J)])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Equally, we define `N = 1000` equally spaced grid points on our time domain of length `T = 200` thus dividing our time domain into `N-1` intervals of length `dt`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "T = 200\n",
+ "N = 1000\n",
+ "dt = float(T)/float(N-1)\n",
+ "t_grid = numpy.array([n*dt for n in range(N)])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Specify System Parameters and the Reaction Term"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We choose our parameter values based on the work by\n",
+ "[Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "D_v = float(10.)/float(100.)\n",
+ "D_u = 0.01 * D_v\n",
+ "\n",
+ "k0 = 0.067\n",
+ "f = lambda u, v: dt*(v*(k0 + float(u*u)/float(1. + u*u)) - u)\n",
+ "g = lambda u, v: -f(u,v)\n",
+ " \n",
+ "sigma_u = float(D_u*dt)/float((2.*dx*dx))\n",
+ "sigma_v = float(D_v*dt)/float((2.*dx*dx))\n",
+ "\n",
+ "total_protein = 2.26"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Specify the Initial Condition"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As discussed by\n",
+ "[Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442),\n",
+ "we can expect to observe interesting behaviour in the steady state of this system\n",
+ "if we choose a heterogeneous initial condition for $u$.\n",
+ "\n",
+ "Here, we initialize $u$ with a step-like heterogeneity:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "no_high = 10\n",
+ "U = numpy.array([0.1 for i in range(no_high,J)] + [2. for i in range(0,no_high)])\n",
+ "V = numpy.array([float(total_protein-dx*sum(U))/float(J*dx) for i in range(0,J)])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that we make certain that total protein amounts equal a certain value,\n",
+ "`total_protein`.\n",
+ "The importance of this was discussed by \n",
+ "[Walther *et al.*](http://link.springer.com/article/10.1007%2Fs11538-012-9766-5).\n",
+ "\n",
+ "Let us plot our initial condition for confirmation:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fcfed4c7fd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "pyplot.ylim((0., 2.1))\n",
+ "pyplot.xlabel('x'); pyplot.ylabel('concentration')\n",
+ "pyplot.plot(x_grid, U)\n",
+ "pyplot.plot(x_grid, V)\n",
+ "pyplot.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The blue curve is the initial condition for $U$, stored in Python variable `U`,\n",
+ "and the green curve is the initial condition for $V$ stored in `V`."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Create Matrices"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The matrices that we need to construct are all tridiagonal so they are easy to\n",
+ "construct with \n",
+ "[`numpy.diagflat`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.diagflat.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "A_u = numpy.diagflat([-sigma_u for i in range(J-1)], -1) +\\\n",
+ " numpy.diagflat([1.+sigma_u]+[1.+2.*sigma_u for i in range(J-2)]+[1.+sigma_u]) +\\\n",
+ " numpy.diagflat([-sigma_u for i in range(J-1)], 1)\n",
+ " \n",
+ "B_u = numpy.diagflat([sigma_u for i in range(J-1)], -1) +\\\n",
+ " numpy.diagflat([1.-sigma_u]+[1.-2.*sigma_u for i in range(J-2)]+[1.-sigma_u]) +\\\n",
+ " numpy.diagflat([sigma_u for i in range(J-1)], 1)\n",
+ " \n",
+ "A_v = numpy.diagflat([-sigma_v for i in range(J-1)], -1) +\\\n",
+ " numpy.diagflat([1.+sigma_v]+[1.+2.*sigma_v for i in range(J-2)]+[1.+sigma_v]) +\\\n",
+ " numpy.diagflat([-sigma_v for i in range(J-1)], 1)\n",
+ " \n",
+ "B_v = numpy.diagflat([sigma_v for i in range(J-1)], -1) +\\\n",
+ " numpy.diagflat([1.-sigma_v]+[1.-2.*sigma_v for i in range(J-2)]+[1.-sigma_v]) +\\\n",
+ " numpy.diagflat([sigma_v for i in range(J-1)], 1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To confirm, this is what `A_u` looks like:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[ 1.981 -0.981 0. ... 0. 0. 0. ]\n",
+ " [-0.981 2.962 -0.981 ... 0. 0. 0. ]\n",
+ " [ 0. -0.981 2.962 ... 0. 0. 0. ]\n",
+ " ...\n",
+ " [ 0. 0. 0. ... 2.962 -0.981 0. ]\n",
+ " [ 0. 0. 0. ... -0.981 2.962 -0.981]\n",
+ " [ 0. 0. 0. ... 0. -0.981 1.981]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "print A_u"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Solve the System Iteratively"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To advance our system by one time step, we need to do one matrix-vector multiplication followed by one vector-vector addition on the right hand side.\n",
+ "\n",
+ "To facilitate this, we rewrite our reaction term so that it accepts concentration vectors $\\mathbf{U}^n$ and $\\mathbf{V}^n$ as arguments\n",
+ "and returns vector $\\mathbf{f}^n$.\n",
+ "\n",
+ "As a reminder, this is our non-vectorial definition of $f$\n",
+ "\n",
+ " f = lambda u, v: v*(k0 + float(u*u)/float(1. + u*u)) - u"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "f_vec = lambda U, V: numpy.multiply(dt, numpy.subtract(numpy.multiply(V, \n",
+ " numpy.add(k0, numpy.divide(numpy.multiply(U,U), numpy.add(1., numpy.multiply(U,U))))), U))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let us make certain that this produces the same values as our non-vectorial `f`:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.009961358982745121\n"
+ ]
+ }
+ ],
+ "source": [
+ "print f(U[0], V[0])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "-0.06238322322322325\n"
+ ]
+ }
+ ],
+ "source": [
+ "print f(U[-1], V[-1])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[ 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n",
+ " -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062]\n"
+ ]
+ }
+ ],
+ "source": [
+ "print f_vec(U, V)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Accounting for rounding of the displayed values due to the `set_printoptions` we set above, we\n",
+ "can see that `f` and `f_vec` generate the same values for our initial condition at both ends of our domain."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We will use [`numpy.linalg.solve`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.solve.html) to solve\n",
+ "our linear system each time step."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "While we integrate our system over time we will record both `U` and `V` at each\n",
+ "time step in `U_record` and `V_record` respectively so that we can plot\n",
+ "our numerical solutions over time."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "U_record = []\n",
+ "V_record = []\n",
+ "\n",
+ "U_record.append(U)\n",
+ "V_record.append(V)\n",
+ "\n",
+ "for ti in range(1,N):\n",
+ " U_new = numpy.linalg.solve(A_u, B_u.dot(U) + f_vec(U,V))\n",
+ " V_new = numpy.linalg.solve(A_v, B_v.dot(V) - f_vec(U,V))\n",
+ " \n",
+ " U = U_new\n",
+ " V = V_new\n",
+ " \n",
+ " U_record.append(U)\n",
+ " V_record.append(V)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Plot the Numerical Solution"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let us take a look at the numerical solution we attain after `N` time steps."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fcfed439b90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "pyplot.ylim((0., 2.1))\n",
+ "pyplot.xlabel('x'); pyplot.ylabel('concentration')\n",
+ "pyplot.plot(x_grid, U)\n",
+ "pyplot.plot(x_grid, V)\n",
+ "pyplot.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "And here is a [kymograph](http://en.wikipedia.org/wiki/Kymograph) of the values of `U`.\n",
+ "This plot shows concisely the behaviour of `U` over time and we can clear observe the wave-pinning\n",
+ "behaviour described by [Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442).\n",
+ "Furthermore, we observe that this wave pattern is stable for about 50 units of time and we therefore\n",
+ "conclude that this wave pattern is a stable steady state of our system."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fcfed3c1590>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "U_record = numpy.array(U_record)\n",
+ "V_record = numpy.array(V_record)\n",
+ "\n",
+ "fig, ax = pyplot.subplots()\n",
+ "pyplot.xlabel('x'); pyplot.ylabel('t')\n",
+ "heatmap = ax.pcolor(x_grid, t_grid, U_record, vmin=0., vmax=1.2)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.14"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/data/AEC.04 - Evolutionary Strategies and Covariance Matrix Adaptation.ipynb b/src/test/data/AEC.04 - Evolutionary Strategies and Covariance Matrix Adaptation.ipynb
new file mode 100644
index 00000000..b2f5cd55
--- /dev/null
+++ b/src/test/data/AEC.04 - Evolutionary Strategies and Covariance Matrix Adaptation.ipynb
@@ -0,0 +1,4246 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "<div align='left' style=\"width:400px;height:120px;overflow:hidden;\">\n",
+ "<a href='http://www.uff.br'>\n",
+ "<img align='left' style='display: block;height: 92%' src='https://github.com/lmarti/jupyter_custom/raw/master/imgs/uff.png' alt='UFF logo' title='UFF logo'/>\n",
+ "</a>\n",
+ "<a href='http://www.ic.uff.br'>\n",
+ "<img align='left' style='display: block;height: 100%' src='https://github.com/lmarti/jupyter_custom/raw/master/imgs/logo-ic.png' alt='IC logo' title='IC logo'/>\n",
+ "</a>\n",
+ "</div>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "# Understanding evolutionary strategies and covariance matrix adaptation\n",
+ "\n",
+ "## Luis Martí, [IC](http://www.ic.uff.br)/[UFF](http://www.uff.br)\n",
+ "\n",
+ "[http://lmarti.com](http://lmarti.com); [lmarti@ic.uff.br](mailto:lmarti@ic.uff.br) \n",
+ "\n",
+ "[Advanced Evolutionary Computation: Theory and Practice](http://lmarti.com/aec-2014) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "The notebook is better viewed rendered as slides. You can convert it to slides and view them by:\n",
+ "- using [nbconvert](http://ipython.org/ipython-doc/1/interactive/nbconvert.html) with a command like:\n",
+ " ```bash\n",
+ " $ ipython nbconvert --to slides --post serve <this-notebook-name.ipynb>\n",
+ " ```\n",
+ "- installing [Reveal.js - Jupyter/IPython Slideshow Extension](https://github.com/damianavila/live_reveal)\n",
+ "- using the online [IPython notebook slide viewer](https://slideviewer.herokuapp.com/) (some slides of the notebook might not be properly rendered).\n",
+ "\n",
+ "This and other related IPython notebooks can be found at the course github repository:\n",
+ "* [https://github.com/lmarti/evolutionary-computation-course](https://github.com/lmarti/evolutionary-computation-course)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as colors\n",
+ "from matplotlib import cm \n",
+ "from mpl_toolkits.mplot3d import axes3d\n",
+ "from scipy.stats import norm, multivariate_normal\n",
+ "import math\n",
+ "\n",
+ "%matplotlib inline\n",
+ "%config InlineBackend.figure_format = 'retina'\n",
+ "plt.rc('text', usetex=True)\n",
+ "plt.rc('font', family='serif')\n",
+ "plt.rcParams['text.latex.preamble'] ='\\\\usepackage{libertine}\\n\\\\usepackage[utf8]{inputenc}'\n",
+ "\n",
+ "import seaborn\n",
+ "seaborn.set(style='whitegrid')\n",
+ "seaborn.set_context('notebook')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### Statistics recap\n",
+ "\n",
+ "* [Random variable](http://en.wikipedia.org/wiki/Random_variable): a variable whose value is subject to variations due to __chance__. A random variable can take on a set of possible different values, each with an associated probability, in contrast to other mathematical variables.\n",
+ "\n",
+ "* [Probability distribution](http://en.wikipedia.org/wiki/Probability_distribution): mathematical function describing the possible values of a random variable and their associated probabilities.\n",
+ "\n",
+ "* [Probability density function (pdf)](http://en.wikipedia.org/wiki/Probability_density_function) of a __continuous random variable__ is a function that describes the relative likelihood for this random variable to take on a given value. \n",
+ " * The probability of the random variable falling within a particular range of values is given by the integral of this variable’s density over that range.\n",
+ " * The probability density function is nonnegative everywhere, and its integral over the entire space is equal to one.\n",
+ " \n",
+ "<img src='http://upload.wikimedia.org/wikipedia/commons/2/25/The_Normal_Distribution.svg' width='50%' align='center'/>\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### [Moments](http://en.wikipedia.org/wiki/Moment_(mathematics)\n",
+ "\n",
+ "The probability distribution of a random variable is often characterised by a small number of parameters, which also have a practical interpretation.\n",
+ "\n",
+ "* [Mean](http://en.wikipedia.org/wiki/Mean) (a.k.a expected value) refers to one measure of the central tendency either of a probability distribution or of the random variable characterized by that distribution.\n",
+ " * population mean: $\\mu = \\operatorname{E}[X]$.\n",
+ " * estimation of sample mean: $\\bar{x}$.\n",
+ "* [Standard deviation](http://en.wikipedia.org/wiki/Standard_deviation) measures the amount of variation or dispersion from the mean.\n",
+ " * population deviation:\n",
+ " $$\n",
+ "\\sigma = \\sqrt{\\operatorname E[X^2]-(\\operatorname E[X])^2} = \\sqrt{\\frac{1}{N} \\sum_{i=1}^N (x_i - \\mu)^2}.\n",
+ "$$\n",
+ " * unbiased estimator:\n",
+ " $$ \n",
+ " s^2 = \\frac{1}{N-1} \\sum_{i=1}^N (x_i - \\overline{x})^2.\n",
+ " $$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### Two samples"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "sample1 = np.random.normal(0, 0.5, 1000)\n",
+ "sample2 = np.random.normal(1,1,500)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def plot_normal_sample(sample, mu, sigma):\n",
+ " 'Plots an histogram and the normal distribution corresponding to the parameters.'\n",
+ " x = np.linspace(mu - 4*sigma, mu + 4*sigma, 100)\n",
+ " plt.plot(x, norm.pdf(x, mu, sigma), 'b', lw=2)\n",
+ " plt.hist(sample, 30, normed=True, alpha=0.2)\n",
+ " plt.annotate('3$\\sigma$', \n",
+ " xy=(mu + 3*sigma, 0), xycoords='data',\n",
+ " xytext=(0, 100), textcoords='offset points',\n",
+ " fontsize=15,\n",
+ " arrowprops=dict(arrowstyle=\"->\",\n",
+ " connectionstyle=\"arc,angleA=180,armA=20,angleB=90,armB=15,rad=7\"))\n",
+ " plt.annotate('-3$\\sigma$', \n",
+ " xy=(mu -3*sigma, 0), xycoords='data', \n",
+ " xytext=(0, 100), textcoords='offset points',\n",
+ " fontsize=15,\n",
+ " arrowprops=dict(arrowstyle=\"->\",\n",
+ " connectionstyle=\"arc,angleA=180,armA=20,angleB=90,armB=15,rad=7\"))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
+ " warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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qblP3hl/cJybmazNpYv//w1Eshf3lCl0b13z4yG1dY2YCwhxi9fS2EayATHvzTffXPR7bW1twSe20Cet2traZz7RSdKPf/zjMEWJtWrrHFnR17unHmjGFwheX5SbpprybIP/AmD17IcUXqaVEsKM11IAsY7nOSzE3p6yYXuRHA4qoRF+ia61fzyXlpamtLTFz2DIzUrR7q0FljlaKSGceC2FRLIBMW54eFg//elPgyVXdt/+9rclzR4QF1qy9frrr2t4eHjBQ2ja2tr0wx/+UH/3d39HVjXCTHl9y/46bzsY+sAOFg6IXvXbihT629vaNaKewQlj8SC2jI2N8VoKIKaxZsBCxia98jwcsMw1uGmhhPWz0g109q+eIe8zf8bRemvP+08vtysQCCxya2D5WDPgCZINiGltbW2SZp/U3nzzTTU1NampqUlvv/22jh8/rqamJr3xxhtPHRD36quv6vDhw/rBD35gmT99+rT+6q/+St/5znf03e9+d8P+HQiv4bFp3Xs0aJk7sLPYUDTA2uVkJqvaVplDdQPCpbt79neJ11IAsYo1AxZy/V6vfP7QSuhUlRdmGIwI8WAlG+jsX8txeE+pXAnz25Tae0b14PHTH/ICK8WaAU+4wnEnbrf7e5JqJA1KypHU6PF4frHG+2yU9IrH4xl85o2BRdTV1enChQv66U9/qrfffls//elPg/OHDx/WN7/5TVVWVi547VtvvaU333xT//AP/6CcnBwNDg4qJydHv/71rxe9BtHhyp1uhW7eKC/MUEl+urmAgDBocBfpfvtQcHzJ060vPLeJih2s2ZYtW3gtRdiEY93gdrt/Mnftgbmpn6917YH4xpoBC7l8hxZKiD2ZaUlqcBfpws358ws/vfzoqY1LwEqxZsATa042uN3un0uSx+P5VsjcO263u8bj8Xx/lff595L2rTU2QJo9ZOZHP/rRqq795je/GeZoEAme6r1KOTRiwN5thfr1x/fkn9uB19U/ro7eMZWxAw9hwGspwiEc6wa32/2BpG95PJ7mufFxSR+43e4veDyer69H3IgPPM8h1PDYtO62Wfc9smZArDhWX25JNpy80q7/+Uu1JNOwZryWQlpjG6W5N/d/L8m+OPi+pO+53e7qVdxnzgL3BwBh0Tc0oYedI5a5fduLDEUDhE9GaqLcm3Itc/bEGgCYEo51w1xFw/ef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\n",
+ "text/plain": [
+ "<Figure size 792x288 with 2 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 281,
+ "width": 781
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(11,4))\n",
+ "plt.subplot(121)\n",
+ "plot_normal_sample(sample1, 0, 0.5)\n",
+ "plt.title('Sample 1: $\\mu=0$, $\\sigma=0.5$')\n",
+ "plt.subplot(122)\n",
+ "plot_normal_sample(sample2, 1, 1)\n",
+ "plt.title('Sample 2: $\\mu=1$, $\\sigma=1$')\n",
+ "plt.tight_layout();"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sample 1; estimated mean: 0.007446590585087637 and std. dev.: 0.5083158965764596\n",
+ "Sample 2; estimated mean: 0.969635147915706 and std. dev.: 1.0213164282805647\n"
+ ]
+ }
+ ],
+ "source": [
+ "print('Sample 1; estimated mean:', sample1.mean(), ' and std. dev.: ', sample1.std())\n",
+ "print('Sample 2; estimated mean:', sample2.mean(), ' and std. dev.: ', sample2.std())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "[Covariance](http://en.wikipedia.org/wiki/Covariance) is a measure of how much two random variables change together. \n",
+ "$$\n",
+ "\\operatorname{cov}(X,Y) = \\operatorname{E}{\\big[(X - \\operatorname{E}[X])(Y - \\operatorname{E}[Y])\\big]},\n",
+ "$$\n",
+ "$$\n",
+ "\\operatorname{cov}(X,X) = s(X),\n",
+ "$$\n",
+ "\n",
+ "* The sign of the covariance therefore shows the tendency in the linear relationship between the variables. \n",
+ "* The magnitude of the covariance is not easy to interpret. \n",
+ "* The normalized version of the covariance, the correlation coefficient, however, shows by its magnitude the strength of the linear relation."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### Understanding covariance"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "sample_2d = np.array(list(zip(sample1, np.ones(len(sample1))))).T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 254,
+ "width": 386
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(sample_2d[0,:], sample_2d[1,:], marker='x');"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[0.25864369, 0. ],\n",
+ " [0. , 0. ]])"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.cov(sample_2d) # computes covariance between the two components of the sample"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "As the sample is only distributed along one axis, the covariance does not detects any relationship between them."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "What happens when we rotate the sample?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def rotate_sample(sample, angle=-45):\n",
+ " 'Rotates a sample by `angle` degrees.'\n",
+ " theta = (angle/180.) * np.pi\n",
+ " rot_matrix = np.array([[np.cos(theta), -np.sin(theta)], \n",
+ " [np.sin(theta), np.cos(theta)]])\n",
+ " return sample.T.dot(rot_matrix).T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "rot_sample_2d = rotate_sample(sample_2d)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 254,
+ "width": 375
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(rot_sample_2d[0,:], rot_sample_2d[1,:], marker='x');"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[0.12932185, 0.12932185],\n",
+ " [0.12932185, 0.12932185]])"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.cov(rot_sample_2d)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### A two-dimensional normally-distributed variable"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'lw'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu8AAAH8CAYAAABhKUH5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3WmQG2ee5/dv4r5RhboP3hJBURLJFlvsuzXTq+mwx+Nx2NG7633j2Bf2zIYd+8Jv3LHv+qVnwu/XvQ6H991OeHbt8ezO7E5L05daUjdFiqQokSyKZPGoG1fhRiaATL9AAaxCoQ6SVSxC/H0iKiRWoRKJBFD45ZP/5/8YjuMgIiIiIiIvPtdB74CIiIiIiOyOwruIiIiISJ9QeBcRERER6RMK7yIiIiIifULhXURERESkTyi8i4iIiIj0CYV3EREREZE+ofAuIiIiItInFN5FRERERPqEwruIiIiISJ9QeBcRERER6RMK7yIiIiIifULhXURERESkTyi8i4iIiIj0CYV3EREREZE+ofAuIiIiItInFN5FRERERPqEwruIiIiISJ/wHPQOPG+XL1++AhwDSsCdA94dEREREfnqegWIALPnz5//2l5s8KUL77SCe3zta+qA90VEREREvvqO7dWGXsbwXgLiLpeLUCh00PvS90qlEgCRSOSA9+SrQcdzb+l47i0dz72jY7m3dDz3lo7n3qlUKti2Da38uSdexvB+B5gKhUIkk8mD3pe+d/nyZQAdyz2i47m3dDz3lo7n3tGx3Fs6nntLx3PvzMzMtE+G9qxUWxNWRURERET6hMK7iIiIiEifUHgXEREREekTCu8iIiIiIn1C4V1EREREpE8ovIuIiIiI9AmFdxERERGRPqHwLiIiIiLSJxTeRURERET6hMK7iIiIiEifUHgXEREREekTCu8iIiIiIn1C4V1EREREpE8ovIuIiIiI9AmFdxERERGRPqHwLiIiIiLSJxTeRURERET6hMK7iIiIiEifUHgXEREREekTCu8iIiIiIn1C4V1EREREpE8ovIuIiIiI9AmFdxERERGRPqHwLiIiIiLSJxTeRURERET6hMK7iIiIiEifUHgXEREREekTCu8iIiIiIn1C4V1EREREpE8ovIuIiIiI9AmFdxERERGRPqHwLiIiIiLSJxTeRURERET6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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 254,
+ "width": 375
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "mu = [0,1]\n",
+ "cov = [[1,0],[0,0.2]] # diagonal covariance, points lie on x or y-axis\n",
+ "sample = np.random.multivariate_normal(mu,cov,1000).T\n",
+ "plt.scatter(sample[0], sample[1], marker='x', alpha=0.29)\n",
+ "\n",
+ "estimated_mean = sample.mean(axis=1)\n",
+ "estimated_cov = np.cov(sample)\n",
+ "e_x,e_y = np.random.multivariate_normal(estimated_mean,estimated_cov,500).T\n",
+ "\n",
+ "plt.plot(e_x,e_y,'rx', alpha=0.47)\n",
+ "x, y = np.mgrid[-4:4:.01, -1:3:.01]\n",
+ "pos = np.empty(x.shape + (2,))\n",
+ "pos[:, :, 0] = x; pos[:, :, 1] = y\n",
+ "rv = multivariate_normal(estimated_mean, estimated_cov)\n",
+ "plt.contour(x, y, rv.pdf(pos), cmap=cm.viridis_r, lw=4)\n",
+ "plt.axis('equal');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### This is better understood in 3D"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 792x360 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 292,
+ "width": 634
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig = plt.figure(figsize=(11,5))\n",
+ "ax = fig.gca(projection='3d')\n",
+ "ax.plot_surface(x, y, rv.pdf(pos), cmap=cm.viridis_r, rstride=30, cstride=10, linewidth=1, alpha=0.47)\n",
+ "ax.plot_wireframe(x, y, rv.pdf(pos), linewidth=0.47, alpha=0.47)\n",
+ "ax.scatter(e_x, e_y, 0.4, marker='.', alpha=0.47)\n",
+ "ax.axis('tight');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "Again, what happens if we rotate the sample?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "rot_sample = rotate_sample(sample)\n",
+ "estimated_mean = rot_sample.mean(axis=1)\n",
+ "estimated_cov = np.cov(rot_sample)\n",
+ "e_x,e_y = np.random.multivariate_normal(estimated_mean,estimated_cov,500).T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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7/MwaN76pznrn+asf5qz/mnO+qc56892rDt3TehYDxq3paS6ze+Bx0ZHR7Esq+MF165da4xpB4azt2huetP8dKe56U5z05vmpzvNTW/7YX5s224smFWauzetu+7cqP3w+zwMmrf+ac76pznrn+asf5qz/mnO+rMd685dETpaljUDYNv27E69Zj6fb/4CdrPe9w8yzU1vmp/uNDfdaW560/x0p7npTfMjIiIiIrLzdkXoCLxu2/alYQ9CREREREREREREtm7ooaNlWa8QdKveUclkct3y6rNnz+7kkPYEzU1vmp/uNDfdaW560/x0p7npbT/MT0uZi4iIiIjInmIO88UtyxoH/tS27evDHIeIiIiIiIiIiIgMzrB3Ol4EzliW9Xbb42fqf75tWVYO+IGCSRERERERERERkb1hqKGjbds/BX7a/rhlWW8CrwGv2rad2/GBiYiIiIiIiIiIyKYNtbx6AyaGPQARERERERERERHpz7DLq1exLOt7wLcJyq4B3rMs6zpBd+vZ4Y1MRERERERERERENmpXhY62bf8Q+OGwxyEiIiIiIiIiIiKbt9vLq0VERERERERERGSPUegoIiKyDvtWBt/3e17j+z72rcwOjUhERERERGR321Xl1SIiIrvNL66n+eDjNM8+eZS//OYMhmGsucb3fX724SyffPGAF5+b4ltnpoYwUhERERGRg2WhkGEul6bqVomGokyPTzGZUE/i3UKho4iISBf2rQwffJwG4JMvHgCsCR5bA0eADz5O8+iRUazHtdgREREREdkOc9k0V+5c5WbmNnmnhOe7mEaIZCTO6YlTnD95bthDFBQ6ioiIdPXUqRTPPnm0GSi2B4/tgSPAs08e5alTqaGMV0RERERkv7tx/zPesd9nvrBAySmTiI4SMkM4boVMMcuDYoa5bJqnzJOcHlUF0jApdBQREenCMAz+8pszAGuCx5demOHdj9YGjt1KsEVEREREZGvmsmnesd8nvXyPRDTBseQkpvGwXYnne2RLS6SX77HMEolQfIijFYWOIiIiPXQLHlvDRlDgKCIiIiKy3a7cucp8YYFENMGR0bXVRaZhNh/PFVb4bGWWv9jpQUqTuleLiIisoxE8Pvvk0Y7fV+AoIiIiIrK9FgoZbmZuU3LKpOKHe16bGjlM1XO4X1lgoZDZoRFKO4WOIiIiG2AYBi+9MNPx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\n",
+ "text/plain": [
+ "<Figure size 792x288 with 2 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 266,
+ "width": 654
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig = plt.figure(figsize=(11,4))\n",
+ "plt.subplot(121)\n",
+ "plt.scatter(rot_sample[0,:], rot_sample[1,:], marker='x', alpha=0.7)\n",
+ "plt.title('\"Original\" data')\n",
+ "plt.axis('equal')\n",
+ "plt.subplot(122)\n",
+ "plt.scatter(e_x, e_y, marker='o', color='g', alpha=0.7)\n",
+ "plt.title('Sampled data')\n",
+ "plt.axis('equal');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "Covariance captures the dependency and can model disposition of the \"original\" sample."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "x, y = np.mgrid[-4:4:.01, -3:3:.01]\n",
+ "pos = np.empty(x.shape + (2,))\n",
+ "pos[:, :, 0] = x; pos[:, :, 1] = y\n",
+ "rv = multivariate_normal(estimated_mean, estimated_cov)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABPQAAAJICAYAAADmYbpbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3VlzI/l5LvgnV+wACW5VrL26u1qt7pa6W5KlscO2HI6JEzFz5xt/JX8H3/hznDgxc3EW2UeyRmr13rWxqrgTWwLIPfM/F8nMSqCwkQQJJPn8IipIVqEAZGJh5oP3/b+SEAJERERERERERESUDfKi7wARERERERERERHNjoEeERERERERERFRhjDQIyIiIiIiIiIiyhAGekRERERERERERBnCQI+IiIiIiIiIiChDGOgRERERERERERFlCAM9IiIiIiIiIiKiDGGgR0RERERERERElCEM9IiIiIiIiIiIiDKEgR4REREREREREVGGMNAjIiIiIiIiIiLKEAZ6REREREREREREGcJAj4iIiIiIiIiIKEMY6BEREREREREREWUIAz0iIiIiIiIiIqIMYaBHRERERERERESUIQz0iIiIiIiIiIiIMoSBHhERERERERERUYYw0CMiIiIiIiIiIsoQ9RKuU1zCdRIREREREREREWWVNM8rY4UeERERERERERFRhjDQIyIiIiIiIiIiyhAGekRERERERERERBnCQI+IiIiIiIiIiChDGOgRERERERERERFlCAM9IiIiIiIiIiKiDGGgR0RERERERERElCEM9IiIiIiIiIiIiDKEgR4REREREREREVGGMNAjIiIiIiIiIiLKEAZ6REREREREREREGcJAj4iIiIiIiIiIKEMY6BEREREREREREWUIAz0iIiIiIiIiIqIMYaBHRERERERERESUIQz0iIiIiIiIiIiIMoSBHhERERERERERUYYw0CMiIiIiIiIiIsoQBnpEREREREREREQZwkCPiIiIiIiIiIgoQxjoERERERERERERZQgDPSIiIiIiIiIiogxhoEdERERERERERJQhDPSIiIiIiIiIiIgyhIEeERERERERERFRhjDQIyIiIiIiIiIiyhAGekRERERERERERBnCQI+IiIiIiIiIiChDGOgRERERERERERFlCAM9IiIiIiIiIiKi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G9vCE/WmgwcPQlEU/Nd//RcURen2cYgeCOdEEhHRJuJSDCIiIqLNxplwazPbb19++WWGedT3VpsT+c477/B7AhER9RTO0CMiIiKidVNVFbOzs5iYmMDS0hLOnTuHY8eOdftYRA+McyKJiKifsEKPiIiIiNZtZGTEWhKytLSEV199FTMzMxgZGenyyYgeDOdEEhFRP+EMPSIiIiK6bydPnsSFCxdw7tw5hnq0LXFOJBERdUhHZ+ix5ZaIiIiI7tuRI0eQSqUwOzvb7aP0hImJCaRSqW4fgzqEcyKJiKhXseWWiIiIiNY0PT2NS5cuNS0GMKvyLly40I1j9ZT5+flVNyNTf1BVFb/61a9w4cIFpFIpnDt3jm24RETUcxjoEREREdGa5ufnAQDLy8t14YaqqgAAv9/flXP1ilQqhbm5uW4fgzqAcyKJiKgfsOWWiIiIiNY0OjqK48ePN1UqmRVpR48e7caxesbrr7+OycnJbh+DOmxsbAw+nw8TExNWeE1ERNQLWKFHRERERGt6+eWX8frrryOVSlmzxFRVxfz8PEZHR62Kpp1oaWkJTzzxBAOfLhsfH9/QxyuK0tRC3sqRI0ewuLiI2dlZnDlz5n6PR0RE1FEM9IiIiIhoTWZo9+qrryKRSAAA0uk0Tp06hRMnTnT5dN21sLCAmZkZttx22fnz5x/oz3NOJBER9RMGekRERES0LiMjI5iZmen2MXrK3Nzcjg80twvOiSQion7CQI+IiIiI6D6YQQ+XJWwPo6OjOHz4MOdEEhFRX+BSDCIiIiKi+8DqvO3l5ZdfhqqqSKVS1m2cE0lERL2KFXpERERERBu0sLDArbbbDOdEEhFRP2GgR0RERES0AalUChcvXsSxY8e6fRTqMM6JJCKifiEYhtHpx+z4AxIRERER9YqFhQXMz8/D5/PV3f7xxx9DVVWMjY3B5/Phb//2b5vmsREREdGOJXT0wRjoERERERE9uOnpaczPz+PDDz+EoijdPg4RERH1lo4GelyKQURERETUQclksttHICIiom2OFXpERERERA9gbm4OS0tLWFpaAlCdw/b444/j9OnTGBkZ6fLpiIiIqEew5ZaIiIiIiIiIiKiPsOWWiIiIiIiIiIhop2KgR0RERERERERE1EekTXjMjpYQEhERERERERER0VdYoUdERERERERERNRHGOgRERERERERERH1EQZ6REREREREREREfYSBHhERERERERERUR9hoEdERERERERERNRHGOgRERERERERERH1EQZ6REREREREREREfYSBHhERERERERERUR9hoEdERERERERERNRHGOgRERERERERERH1EQZ6REREREREREREfYSBHhERERERERERUR9hoEdERERERERERNRHGOgRERERERERERH1EQZ6REREREREREREfYSBHhERERERERERUR9hoEdERERERERERNRHGOgRERERERERERH1EQZ6REREREREREREfeT/A8Q23bW1yicfAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<Figure size 792x360 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 292,
+ "width": 634
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig = plt.figure(figsize=(11,5))\n",
+ "ax = fig.gca(projection='3d')\n",
+ "ax.plot_surface(x, y, rv.pdf(pos), cmap=cm.viridis_r, rstride=30, cstride=10, linewidth=1, alpha=0.47)\n",
+ "ax.plot_wireframe(x, y, rv.pdf(pos), linewidth=0.47, alpha=0.47)\n",
+ "ax.scatter(e_x, e_y, 0.4, marker='.', alpha=0.47)\n",
+ "ax.axis('tight');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "# Evolutionary Strategies\n",
+ "\n",
+ "We will be using DEAP again to present some of the ES main concepts."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import array, random, time, copy\n",
+ "\n",
+ "from deap import base, creator, benchmarks, tools, algorithms\n",
+ "\n",
+ "random.seed(42) # Fixing a random seed: You should not do this in practice."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "Before we dive into the discussion lets code some support functions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def plot_problem_3d(problem, bounds, resolution=100., \n",
+ " cmap=cm.viridis_r, rstride=10, cstride=10, \n",
+ " linewidth=0.15, alpha=0.65, ax=None):\n",
+ " 'Plots a given deap benchmark problem in 3D mesh.'\n",
+ " (minx,miny),(maxx,maxy) = bounds\n",
+ " x_range = np.arange(minx, maxx, (maxx-minx)/resolution)\n",
+ " y_range = np.arange(miny, maxy, (maxy-miny)/resolution)\n",
+ " \n",
+ " X, Y = np.meshgrid(x_range, y_range)\n",
+ " Z = np.zeros((len(x_range), len(y_range)))\n",
+ " \n",
+ " for i in range(len(x_range)):\n",
+ " for j in range(len(y_range)):\n",
+ " Z[i,j] = problem((x_range[i], y_range[j]))[0]\n",
+ " \n",
+ " if not ax:\n",
+ " fig = plt.figure(figsize=(11,6))\n",
+ " ax = fig.gca(projection='3d')\n",
+ " \n",
+ " cset = ax.plot_surface(X, Y, Z, cmap=cmap, rstride=rstride, cstride=cstride, linewidth=linewidth, alpha=alpha)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def plot_problem_controur(problem, bounds, optimum=None,\n",
+ " resolution=100., cmap=cm.viridis_r, \n",
+ " rstride=1, cstride=10, linewidth=0.15,\n",
+ " alpha=0.65, ax=None):\n",
+ " 'Plots a given deap benchmark problem as a countour plot'\n",
+ " (minx,miny),(maxx,maxy) = bounds\n",
+ " x_range = np.arange(minx, maxx, (maxx-minx)/resolution)\n",
+ " y_range = np.arange(miny, maxy, (maxy-miny)/resolution)\n",
+ " \n",
+ " X, Y = np.meshgrid(x_range, y_range)\n",
+ " Z = np.zeros((len(x_range), len(y_range)))\n",
+ " \n",
+ " for i in range(len(x_range)):\n",
+ " for j in range(len(y_range)):\n",
+ " Z[i,j] = problem((x_range[i], y_range[j]))[0]\n",
+ " \n",
+ " if not ax:\n",
+ " fig = plt.figure(figsize=(6,6))\n",
+ " ax = fig.gca()\n",
+ " ax.set_aspect('equal')\n",
+ " ax.autoscale(tight=True)\n",
+ " \n",
+ " cset = ax.contourf(X, Y, Z, cmap=cmap, rstride=rstride, cstride=cstride, linewidth=linewidth, alpha=alpha)\n",
+ " \n",
+ " if optimum:\n",
+ " ax.plot(optimum[0], optimum[1], 'bx', linewidth=4, markersize=15)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def plot_cov_ellipse(pos, cov, volume=.99, ax=None, fc='lightblue', ec='darkblue', alpha=1, lw=1):\n",
+ " ''' Plots an ellipse that corresponds to a bivariate normal distribution.\n",
+ " Adapted from http://www.nhsilbert.net/source/2014/06/bivariate-normal-ellipse-plotting-in-python/'''\n",
+ " from scipy.stats import chi2\n",
+ " from matplotlib.patches import Ellipse\n",
+ "\n",
+ " def eigsorted(cov):\n",
+ " vals, vecs = np.linalg.eigh(cov)\n",
+ " order = vals.argsort()[::-1]\n",
+ " return vals[order], vecs[:,order]\n",
+ "\n",
+ " if ax is None:\n",
+ " ax = plt.gca()\n",
+ "\n",
+ " vals, vecs = eigsorted(cov)\n",
+ " theta = np.degrees(np.arctan2(*vecs[:,0][::-1]))\n",
+ "\n",
+ " kwrg = {'facecolor':fc, 'edgecolor':ec, 'alpha':alpha, 'linewidth':lw}\n",
+ "\n",
+ " # Width and height are \"full\" widths, not radius\n",
+ " width, height = 2 * np.sqrt(chi2.ppf(volume,2)) * np.sqrt(vals)\n",
+ " ellip = Ellipse(xy=pos, width=width, height=height, angle=theta, **kwrg)\n",
+ " ax.add_artist(ellip)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### Why benchmarks (test) functions?\n",
+ "\n",
+ "In applied mathematics, [test functions](http://en.wikipedia.org/wiki/Test_functions_for_optimization), also known as artificial landscapes, are useful to evaluate characteristics of optimization algorithms, such as:\n",
+ "\n",
+ "* Velocity of convergence.\n",
+ "* Precision.\n",
+ "* Robustness.\n",
+ "* General performance.\n",
+ "\n",
+ "DEAP has a number of test problems already implemented. See http://deap.readthedocs.org/en/latest/api/benchmarks.html"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### [Bohachevsky benchmark problem](http://deap.readthedocs.org/en/latest/api/benchmarks.html#deap.benchmarks.bohachevsky)\n",
+ "\n",
+ "$$\\text{minimize } f(\\mathbf{x}) = \\sum_{i=1}^{N-1}(x_i^2 + 2x_{i+1}^2 - 0.3\\cos(3\\pi x_i) - 0.4\\cos(4\\pi x_{i+1}) + 0.7), \\mathbf{x}\\in \\left[-100,100\\right]^n,$$\n",
+ "\n",
+ "> Optimum in $\\mathbf{x}=\\mathbf{0}$, $f(\\mathbf{x})=0$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "current_problem = benchmarks.bohachevsky"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABPQAAAK1CAYAAABPbbCcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3WuQG+d9LvinLwAGM4PB9FAiRZHUXZZkSpFsx/JSim3JUiwfxY5Tzjmxk+yeOqnEZ7dqz2Y3tVHtl5Q/2B/tT/7m9VaSU+ccx3JsxXeZulI3XnSjRIkiKZKiyOH9Mj0ABgOg0Zf9AL09jUY3rg10Y/D8qqY4xKXxTg8G6H7wf9+/5DgOiIiIiIiIiIiIaDzIcQ+AiIiIiIiIiIiIusdAj4iIiIiIiIiIaIww0CMiIiIiIiIiIhojDPSIiIiIiIiIiIjGCAM9IiIiIiIiIiKiMcJAj4iIiIiIiIiIaIww0CMiIiIiIiIiIhojDPSIiIiIiIiIiIjGCAM9IiIiIiIiIiKiMcJAj4iIiIiIiIiIaIww0CMiIiIiIiIiIhojDPSIiIiIiIiIiIjGCAM9IiIiIiIiIiKiMcJAj4iIiIiIiIiIaIww0CMiIiIiIiIiIhojDPSIiIiIiIiIiIjGCAM9IiIiIiIiIiKiMcJAj4iIiIiIiIiIaIww0CMiIiIiIiIiIhoj6hC26Qxhm0RERERERERERONKinJjrNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiIiIiIiIiIaIwz0iIiIiIiIiIiIxggDPSIiIiIiIiIiojHCQI+IiIiIiIiIiGiMMNAjIiKintm2Dcuy4h4GEREREdFEUuMeABEREY0Hx3Fg2zZs24ZhGKjX60ilUpBlGZIkQZblpu8lSYp7yERERERE6xIDPSIiImpLhHiWZbmhnmmaqNfrsCwLkiQ1fQEIDPj8YR8DPyIiIiKi/jDQIyIiohYiuLMsC7Ztw3EcOI4DYC2sU1UVsiy7txf3EbcTt/WGfN6vToEfEREREREFY6BHREREANZCORHiecM5EbR5BV3m3ZZ3m50CP3+Fnwj4ggI/VvcRERER0aRjoEdERDThgkI8b5DnD9C8gVwYb1Ve2GP6Q79Bq/s4lZeIiIiIJgUDPSIiognUTTXeMIOxdsFbP9V99XodjuMgnU67U4FZ3UdERERE6xUDPSIiognSrhpPTJ9tF3g5joOVlRUsLy/DcRxkMhmkUin3K2wKbi/6qe47f/48DMPA5s2bkclkApt0eIPKdoEfEREREVHSMdAjIiJa50R1m7dTba/VePV6HbquQ9d11Ov10NspitIU8ImvdDoNRVEiCcyCgjfxf1VVkUqlWqr7AIRW94VN5/UHft7HISIiIiKKEwM9IiKidcob4lUqFZw9exaZTAbXXntt19V4pVIJuq6jVCq5l6dSKczNzQEALMtCvV53vyzLgmVZqFarLduTJCkw7Iuyuk88TtDP5a/qE9+3m8rr/T+r+4iIiIgoKRjoERERrSMioBLTakV4ZZomKpUKAHQMzmq1GnRdx/LyMkzTBNAItXK5HDRNw8zMDCzLgmmaUBSl6bFN02wK+Pxhn2EYMAwj8HFFdV3QV6fqvm7CtG6m8op/w6r7wpp0dBP4ERERERFFhYEeERHRmOumwYWqqu5tg9i2jUKhAF3Xsbq66l6eyWSgaRrm5+c7bsNbgRdEhICGYQQGfqZpNgWPYdtOp9MtgZ8IzLrpwBumXeAXdXWf9/+s7iMiIiKiXjHQIyIiGlPtGlwEBUviPt77V6tVLC0toVAowLZtAI0Kvnw+D03TkM1mIwubFEWBoijIZDKBP4uo7gsK/Gzbdqv7yuVyy/3FGHVdR7VabanuGxSr+4iIiIgoSRjoERERjRFvg4uwarygAMgb6Jmm6Vbjede6y2az0DQN+Xw+khCsF94KvOnp6Zbr/Wv1eUM/0zTdfVAul1sCP1mWA5t0pFIpqKoaWaMO779enar7HMdpCfjEttqFfKzuIyIiIppc0iBTU0JEvkEiIqJJ5w/xRDVdUBVekFqthqNHj7ZU6imKgvn5eWiahqmpqa7GIioD6/X6yIO/sPEsLi6iWq0in89DluWm0K/TsU67Rh2j+PlY3UdEREQ0ESI9MGOFHhERUUKFNbgAWqfUhqnX69B1Hbquu9sEgNnZWWiahlwuF1l32bhIkuQGbzMzM5idnXWv84aPYev2ie+DKIoSGvbFUd0nvrzPB8dxcOXKFUiShE2bNjVtj9V9REREROsTAz0iIqIE6abBhfi+3TZKpRJ0XUepVGq6TpIk3HrrrUin08P7IRJEkiSoqgpVVZHNZluut207NOwTnXkty2qamuzfdlijjiiC0m7W7rMsC+VyGZIkhTbqEP8GVfe1C/yIiIiIKJkY6BERESVAFNV4tVoNuq5jeXkZpmm6983lcsjn81hcXIQkSZGEed7xJUG/XW5lWUYmkwlt1OGt7vM36/Be5+0MLPir+7yhn6IokVX3eYND0YlYjF/8G1bdFxTyebfL6j4iIiKiZGKgR0REFJNuqvE6hSa2bbsNLryhUiaTgaZpmJ+fh6qq7pp7SQrhkq7X6r6gwK9ddV/QNN50Og1VVUdW3ecP/YKq+8Iq/FjdR0RERBQfBnpEREQjFhTiiRCl2ym11WoVS0tLKBQKblgnyzLy+Tw0TUM2m227Jtt602+F3iA6Vfd51+fzh362bcMwDBiGEbhtMZU3KPCLKjBrV2XXqbrPvw1/hZ8I+IICP1b3EREREQ2OgR4REdEIiDBETKv1T6ntJqQxTdOtxvNWfWWzWWiahnw+H9qV1bttMdWShsdbgRekXaMO0azDNE1UKpWW+8qy3NKcA0DTNNooxu/9128Y1X2cyktERETUPQZ6REREQ+QP8UQ1XS8NLsrlMnRdR7FYdAMTRVEwPz8PTdMwNTXVcRwiKIkq9PFWxCUhgImjQm8QiqJAUZTA353jOG3DPtu2UavVUKvVWu579OhRqKoa2KRDrN0XhWFV93WazsvAj4iIiKiBgR4REVHEomhwUa/Xoes6dF1HvV53L5+dnYWmacjlcn2vszZo6MVQZbhE45Kg5iXiueVfs69YLLq3EdV9QfzVfd7gT1XVxFX3+Sv8wtbsY3UfERERTRoGekRERBGIosGF4zgolUrQdR2lUsm9PJVKudV4g3So9VborTfjVqHXL0mSWqr7bNt2A71bbrmlZe0+b/DXrroPQOi6falUKpJGHeJn6LW6z3uddxtBoZ+iKIGBn7gNERER0XrAQI+IiGgA/hDv7NmzKJVKuOaaazA3N9dV1VCtVnOr8SzLAtAIHnK5HDRNw+zsbKSVU1FhOJIM3t+DLMttq/vC1u4zDKPpuiCKogQGfnFU93lDPtu2ceHCBayuruLqq692/15Y3UdERETrGQM9IiKiHnkbXPir8WzbhmmacBynbUWTbdtug4vV1VX38kwmA03TMD8/7zY7iIoILMQ6fnGplmqYyrV2hh3EpFToDUKSJKiqClVVkc1mW64XU3nDvizLgmVZTQ1ZvNsOC/tGUd0nti+qF8Oq+8KadHQT+BERERElCQM9IiKiLvlDPG8wJgIF8W9QsOQ4DqrVKpaWllAoFNz7y7KMfD4PTdOQzWaHFh4kIfSqlg389ofP4eH/+FnMXTUb2ziolSzLyGQyyGRaw1bHcVqm8vrDPsMwYBhG4LYVRWnbqCOq57y32Yx//OJff3VfP2v3ef/P6j4iIiKKAwM9IiKiNrzVeKJTbbsGF0GhmWmabjWet7opm81C0zTk8/nIuo+2k4TQ4ehrx3Hy0Gm88dQBfP4bOyDL0QU5ACv0hsVbgRckqFGHP/CrVCqoVCptt+0P/VRV7aq6r9PvvZupvOJfVvcRERHROGCgR0RE5OPtvClCPFFN560ACjpR905rXVlZga7rKBaLbiigKIrb4EI0NRiVuEOv5fNFvPDTfQCAt54/iJvvvh7Xbd8Sy1goWr1W9/kbdYjqvnK53HJ/VVXbNuoICtR71S7w61Td5zhO2yYdYSEfq/uIiIhoEAz0iIiIPuIN8bwn60BwNV4QEfxdunSpaUru7OwsNE1DLpeLbD2xXsUZ6DmOg7eeP4h6ba3hwnP/8gr+7LGvYDrfup5br+IOKylcp+q+do06TNN0v4Kq+2RZRiqVgmmaAIByudz0eKNq1CH+ZXUfERERjQoDPSIimmji5NvbqdZ7Et7NSbXjOCiVSlhaWsLKygqARrCXSqXcBhdBXUdHLerQq5ew4ez7F7D/uXebLtMvFHDghUP4zFc+weBigolGFkEVq47jtG3UYds2arWae/tCoYBCoeD+v12jjqimufdS3eet/g2r7vNuj9V9REREFIaBHhERTaSgEE+cfLebUutVq9Wg6zp0XYdlWU3Xzc3NYdu2bYk64Y6ris2qW3ht59uB1+359Ru47o4tuPbWTQM9xiRX6HmfYyIgWi8kSUI6nQ4MxEUwZhgGLly4AMMw3O699Xq9aZpvEFHdF9SsQ1XVkVX3+UO/oEYd4t+g6r52gR8RERGtXwz0iIhoYngbXPRbjWfbttvgYnV11b08k8lA0zTYto2LFy9GNt0vSnGFXouHz+HEO6eCr3SAXY/vwdf+7t9haqZ1/TWiMJIkQVEUZLNZqKoKwzCwsLCAmZkZAI2/VdM0Qxt1iOo+b4Wfd9vetfv8oV9U0+bbVdn1Wt1Xq9VgWRampqbcMbK6j4iIaP1ioEdEROuev0tttw0uBMdxUKlUoOs6CoWCe39ZlpHP56FpGrLZLCRJwpUrV9zHTJo4Ar16zcSrv9nf9jYXTl7Cod3H8Ik/3N7340xyhR4Fk2W5bXWfd+0+f+jnvS6IoiihjToURYmlum95eRnlchlXX321G2oGNelgdR8REdH6wECPiIjWpSgaXJim6VbjVatV9/JsNgtN05DP51vW4RIBYRKDpThCr5PvnsaZ4+c73u6lf9uH6+/cioXN+RGMiiadqMBTVdWdputl23bbRh2WZcGyrKbXBe+2263dN6zqPvG9qCwEwqv7/NvwvyaKgC8o8GN1HxERUTIw0CMionUjqgYX5XIZuq6jWCy691cUBfPz89A0LXDxfiHJlWKjHpuxamDPr17v6rZW3cJbz76LB//yvr7CgiTvdxo+fzfZQcmyjEwmg0ymdRq44zhN6/P5vyzLgmEYMAwjcNveqbxBjTr6/Rn8H1iI78Nu283afb1U93EqLxER0Wgx0CMiorEXFOLZth1YeRKmXq+7DS680+xmZ2ehaRpyuVxXlTVJDpZGPbZj+0/i8hm969u//cJ7uO3TN2PLbdf0/ZhJ3O+0vngr8IJ4p+sGfZmmCdM0UalUQrcd1Kij07qcvTz3B1m7z7+NXpp1MPAjIiKKDgM9IiIaS52q8bqpdHEcB8ViEbquY2Vlxb08lUpB0zTMz88Hrr/VjnjMSVlDL6yrauFiCbt+srvn7e351Rv4kxsegZrp7RCFIQElhaIoUBQlsJLXW90X1KxDdO3tprrPH/oJg/4tRFnd56/wC1uzj9V9REREvWOgR0REY8Uf4nmDs24aXABArVZzq/Esy3Lvk8vloGkaZmdn+z6x5Bp6gG07ePOZd1BbDQ4l2lk8chYfHFjExz59Y1+PncT9PkphASslg7e6b3p6uuV6f3WfN/QTlX1h1X3C0tISVldXm0I/VVUje170U93nvc67jXbVff7AT9yPiIiIGhjoERFR4okKENHk4vz586hUKti4cSOmp6e7quywbdttcLG6uupenslk3Go8VR38bXFSpty2299njpzDW88f7HvbL/50L7Z+7BpM51ubFfQznkkgSVIin3OjEvUaenHpVN0X1KRDfC/2QaVSCQz8wtbtS6fTkTbq8P4b9DP4Qz5W9xEREfWHgR4RESWSdyqXZVnu90Cjwm51dRW2bbc9EXUcB5VKBbquo1AouPeXZRn5fB6apiGbzUZ6IjgpgV6YatnASz/dN9A2SksrOLz3OD75yJ093zeJ+50oCpIkIZ1OBy4D4DgOTp06hVqthoWFBUiS1LJun/g+iKIooYFfkqr7wpp0dBP4ERERrTcM9IiIKFG8IZ6o3PB3b+w0rdU0TRQKBSwtLaFWq7mXZ7NZLCwsYG5uDoqiDGX8k7SGXlBV2OE9R3Hh1OWBt/3yL17FDXdtw8K1+a7HQjSpvM//2dnZlgo/27bbNuqwLAuWZaFarQZuW1XV0EYdo6ju84d94nt/dR8A6LoOSZKwsLDQFOyFTedldR8REY0rBnpERBS7Tg0u/BUWQaGZ4zgol8vQdR3FYtG9v6IomJ+fh6ZpgdPYojbJa+hd/PAyXvjp3ki2ZdUt7H/2HTz4l/dDlrs/2U7ifieKmyzLyGQyyGQyLdeJ196wRh3edf2CeKv7/KFfN82JutHNVF5gbWkFANA0za3u9m+D1X1ERLQeMNAjIqLYBIV44uSr3SLo3tCsXq+7DS68J5yzs7PQNA25XC6yCpJuTOqUW2O1jpd+9ipsK7rKxAMvHsKtn7oJ13382o635Un3ZFsva+gNot99ICrwVFVFNtu6bqW/us8f+nWq7gtbt09V1aFV94nHBTpX94lGMv4vsZ2wkI/VfUREFDcGekRENFLeBhfdVOO1c+XKFZw9e9b9fyqVchtcBK0zNQqTGugdfvU4Th0+E/l2X/rpXvzp//1lTM109/tM4n4nGoVhhZqdqvu86/P5Qz/btmEYBgwjuOO1qqptG3X0+rME7YNuq/u86/aJ6m9W9xERUZIx0CMiopHwdqn1njB518TrdPJTq9Wg6zqWl5fd/0uShFwuB03TMDs7G/sJ1CStoSdcXtSx6ye7I92mcHHxCg7vPYp7Htre9nZx/96JJpG3Ai+Id7pu0JdpmjBNM7ArryzLoY06UqlU27X2enk96GXtPm/gx+o+IiKKGwM9IiIamm4aXHQ6oRFrIum6jtXV1abrZmZmsG3bNqhqct7OJm0NPduy8ebTB2DVrci26ffiz/Zh2+3XYsMWreNtk7jfR2nSf/5JlsRpx4qiQFGUwPVLxZIJYV+2baNWqzU1NvJqF/JF2ZW33fb803iDGnV0qu5rF/gRERG1k5wzICIiWhe6aXAhvm+3jUqlAl3XUSgU3Go3WZaRz+chSRKWlpaQzWYTFeYBkzfl9uz7F3Bwz/uRbS+IVbew79f78chfPwBFDV5za9JPfoM6Dk+SJIZZozZu+0CSJKTT6cDlEUQwFtaowzvNN4hpmjh58mRgow5VVSMN/HqZysvqPiIiilKyzoKIiGhstWtw0W01nmmaKBQKWFpaaqrKyGazWFhYwNzcHBRFweXLlwEke1orAPeELSmiDvTqNRN7fvlGJNvq5Mjrx3H7vbfgpk9c1/Z2kxxqEa0XkiS1re6zbbsp1BOhn/gXQM/VfSL4G1ajDr9uq/vCKvxY3UdERAz0iIiob91U43U6sXAcB+VyGbquo1gsuvdXFAXz8/PQNK3lhC7J01qBtWqp9R7onTiwiDPHz4/sZ9z1k93YdOPVmJlv7cSZpP1MFIdxq9AbhCzLgdV9lUoFi4uLSKfT2LRpU2CzDu+6fkEURQldty8p1X3+bfg/NBMBX1Dgx+o+IqL1g4EeERH1rF01XrcNLur1OnRdh67rTSdWs7Oz0DQNuVwutFIiyY0ngLVAz7btyKo9ohBloLeyvIqXfrZv4O30onC5hIMvHca9X/lE6G2SGvISDdskBXphvO9D2WwW2Wxr+C+m8oZ9WZYFy7JQrVZb7uttAhL0laTqvkKhgHq9jnw+j6mpqY7VfZzKS0Q0fhjoERFRV8QJg7dTba/VeLZto1QqQdd1rKysuJenUilomob5+fnA9ZT8kl6hJ8tyy8lVEkQZ6B185QhKSyudbxix3b9+A9dt34prbrq66XKehE42hlkEdPc8kGUZmUwGmUwm8P7eqbxBYZ9hGDAMI3DbiqK0rNknvhRFGWl1X7VaRaVSwezsbNfVfZ2m8zLwIyJKFgZ6RETUlj/EE1Vx3Ta4ABprGYlqPMuy3PvkcjksLCxgZmamp5OEcajQA5IXOEY1rvMnLmL3z1+LYkg9c2wHL/xkL/7kbx9BZjp4MX2iScRQc/B94K3AC9KuUYcI/CqVCiqVStttB4V+UXfmFftCTBUWelm7z79+X9iafazuIyKKBwM9IiJqIQ7wxbTafhpc2LaNQqEAXdexurrqXp7JZNxqvH471Ca9Qm89B3qmYWLfr9+EbcUXpp49fh6Hdh/FPQ9vdy/jiSRNsqS91sRl2KFmL9V9/tDPtm23uq9cLrfcX1XVwCYdYipvrz9T2L7oZ+0+73XebbSr7vMHfkFjISKiwTDQIyIiAM0NLiqVClZXV5FKpZDNZntqcFGpVKDrOgqFgltBJ8sy8vk8NE1ztzeIcanQS9r4ogj0jr91Eu+/eSKqIfXthZ/uxbU3b8LGG68CkNwQddQm/eenyQ5N/Gu5jlKn6j5vMw5/ow7TNN2voOo+WZbbrt0X9Dv3vv/28jN4//ULCvlY3UdEFB8GekREEy6owcXy8jIuXbqEDRs2dDUd1jRNLC8vQ9d11Go19/Lp6Wlomoa5uTkoihLZmJNeoZfU8Q0aepX0Mnb9ZE+UQ+qbbdl44ad78dX/8gjS2eAT6Eky6SfDkz7ddNJ/fiHJ+0FRFCiK0tK1HWiMO2zdPsMwYNs2arVa0/urV1DI510eIyqDVvf5Qz5/ZV+7wI+IiFox0CMimkDeBhfeIA9oHGiL8M1xnLYH7+VyGbquo1gsuvdXFAXz8/PQNC3wxCUKSa2AE5JaLTbIuCzLxmtPvoXilZLYGBDzz3f6/XM4tPcY7n7wjsTucyIanSQHeu1IkoR0Oh3YFEp86BYW+Hmn+QY5efJk6Lp9qqpGvnZf0Pb8YZ/4vt/qPu//Wd1HRJOMgR4R0QTxh3hhDS5EoBcUmBmG4VbjeU8gZmdnoWkacrnc0Kc7JbUCTkhquDTIuD7YfxJvPH0g6iENbNfju3HtTRuR35yLeyhEsRnXICtq63E/SJIEVVWhqiqy2WzL9bZtwzTNljX7xDp97ar7xLbDmnVE9V7ezVRe8S+r+4iIusdAj4honeunwYU/+LFtG6VSCbquY2Vlxb1dKpVyG1wEVRYMy7hU6CV1fL0GelfOLmPnP+9qun/dMGB8FOi6VROSBFmRIUmjO4myLRsv/WwfvvSfH3THRpNn0n/v6zHI6sck7gdZlluq+xzHwdGjRwEAN954o1vF5w/9vJV/QRRFCW3UoShKIqr7xEwC/5fYXljIx+o+IloPGOgREa1D4iDXH+QBrdV4QcT19Xod58+fh67rsCzLvU8ul8PCwkJX6+sNQ9Ir9JI6vn4q9IxqHS/9dC8q5Sosy0StZrSc/Innhv+xRMAnSzIk31SpKJ08dAYf7D+F9CaemE06npxPtkkM9IJ494MI4MKq+4LW7BNTeS3LgmVZqFarLff1btsf+qmqGmt1n/gwTVyn6zpM04SmachkMqzuI6J1g4EeEdE60k81np9t2+5UndXVVayurgIAMpmMW42nqvG+fSS9Am49Tbk9vO8YDu49DMMwYHn2t6IoSKdScOCplhBTuUXHZMdpuo87DqAp4BPVfeKyfrzwr3vxxf98PxwlWft81JL2nKPRYJDVwP3Q0O1+kGUZmUwGmUwmcBve9fn8X5ZlwTAMGIYRuG3vVF7/16ir+6rVKmq1GvL5PKv7iGhdYaBHRDTmxEGpv1MtgKYDz07bqFQq0HUdhUKhKSjTNA2apiGbzSbm4NU7jnaNO+Iy7oGeeD6cP3kRv/zhk6hWDff+YmqXLMuNAC9k/zcHfDZse60RiwO41wXxTt/1V/eFqa1Wcfz1U/jY527obmcQrSMMshq4HxrEa+sgVXLeCrwg7Rp1iAo/0zRRqVRa7ivLcmjYl0qlIg/7xPNCNAIR/NN4wxp1iH+D1u5rF/gREQ0bAz0iojEVFOKJg9BOU2oF0zTdBhfeBbOnpqZQrVaRTqexZcuW4f0QfRIHzOJnF008kiKpFYSdng+WZa01PDHqeOepo6iuGlAVxV07CV2epMiyDMgygn4zji/gc8M/zwmV3RhQ63Y9lXxrXxIACa/tfAvX37kFuKmrIdI6krTwnOLBQK9hFPtBURQoihLYzd5b3edft69er7dt1AGgbaOOft7vwwLOdlV2YY06Bqnu81b2TfpzlIiiwUCPiGiMuGHHR9Nq/VNqu63GK5fL0HUdxWLRvb+iKJifn4emaZAkCUePHk30SXJSq+CA8VpDT1TjLS0toVAouNdVLtZxZN/xoXQtliQZioLAE7Om6buOA9u23PDPcRzYjgN8tK5TkDeeehcLW+ahptWWBdzXM54cNkzqfmCQ1cD90ODtYB8Hb3Xf9PR0y/X+6j5v6Ccq+3qp7hOv9aqqhlaMi/v28jN4//XrtrovrMKP1X1EFAUGekREY8Af4nkP1rutxjMMY636ytPUYHZ2FpqmNQU34vqkBVJeSa2CA5IbNnpmpxGkAAAgAElEQVTH5a3G8y54PjMzg5n0DH75358JrLwYxRiVRtrXcl3jpCm8ug8APjhwEovv3Yy5bc0nkaITZNBJYJTrORHFIWmvNXFhoNfgr9ZPmk7VfWGNOrqp7guawhvFFGS/Qar7/NvwV+35K/pY3UdEYRjoERElVFQNLkqlEnRdx8rKint5KpVyG1yk0+mW+4mD3iSGZUJSq+CA5AZ6guM4OHz4cFN1plgrMZPJ4NXf7od+oRDzKFs1nvMKgs7JHMdxn+NvPPkOvvp/fhGWbDadBFar1bbdGoMCv7CKD6IkmvTnKgO9hrgr9AbhXavVT3wYFbRmn2EYTdcF+eCDD0LX7YvytT6O6j426iCaTAz0iIgSJIoGF0Cjo5uu61heXnanJkqShLm5OWiahpmZmbbb8QZ6SWw6ASQ7dExa9aC3Gk9wHAczMzPQNA1zc3Pu/rzw4WW89MSr3W1YkoCEhJbe5+hqoYqzhy7ik1+8C8DaSaB/LSfxf9u223ZrDFvLKZVKJbYCZtIkNTwfFQZZDdwPDUmv0OuXJElQVRWqqiKbzbZcb9t2YNC3uroKoPFeaFlW2w92wr7Gobqv03ReBn5E6w8DPSKiBAgK8WzbDpyKEcayLBSLRei67h68AkAmk3Gr8bzd3doRj+dd+DlpklwFl4TqwbC18YSbb7655YTIrFvY+5s3YVvJCCIH8fK/vYbrt2/Dhi3zTSeBQURVR1Dg56348P5dCVEv3k6DSeJr1Sgk8XUwDgz0GiZ1P8iyjEwmg0wm415Wr9dx4sQJKIqC66+/PrBJR71edz/0CftgR1GU0A92oly2IcrqPn+FX9iafazuIxpfDPSIiGLibXARVI3XzQGiCG10XUehUGhaJyafz0PTNGSz2b4O0ryBXhKNQ4VeHPuu3dp4mqbhzJkzcBwncDrTB2+fxPuvHx/lcIfGMi288vPX8KW/fgDpqVTb27Zbz8lb8RF0Ithu8XZxAhgU+A1r3b6k/r3SaEz6CfmkBll+w1gzblyJfaEoStsPdvzVff7X+16r+7yNOuKs7hM/m/jesiwsLS0hlUphw4YNodV9/sBPPDYRJQsDPSKiEfOHeN5AqtuDJtM03dDGuzD09PS0O4Vy0OogWZbd8SWx0ijJFXqjHps32F1eXm7pXLywsOBWLJw7d85truJVLlaw99dv9vrAABwAyTzIP/7Whzi85xh+78E7+t5GUMWH4F+8vZcTwH46NbbDE63JxiCrgfuhgfthTbfhZqfXetM0Wz7Q6XbZBm8lt/81P8qutt1U91mWhXK5jFQqhYWFBVb3EY05BnpERCPgrcazLAtnzpxBvV7Hli1b3JP3bqrxyuUydF1HsVhsCW00TYu0K2mSK+CAZI9vVGvodarG866N5x+b9wDesmy89spx3PmFu3Dhn54b6phHwTtN/PnHd+Pq667C5puvjvxxOi3e7j8B7LZTY7tqj1QqxRMnapHEDzbiwCCrgRV6a6LYF97X5CBhjTq6qeQO+nDH+xXlc9m7LVGxKISt3ee9LqxJRzeBHxENBwM9IqIh8a5tIiqixIFluVxGvV6H4zgdDzINw3BDG2/nttnZWWiahlwuN5SD9iQHZkDyGk94DXMNvV6q8YIEBXpHD57DG7uPYcv1G/DxHbfhvT1HIh93XGzLxrP/7UV87f96FNPzrYuoD0u7E0DxWhDWpKPTWk6qqras4zTpgQ6DnIZJ//n5PGjgflgzio6/7ZZt8Fdy+7/afbgDoG3Y18/sCdEoLezDvqD95A/7xPe9VPeFBX6s7iMaDAM9IqKIeUM8cbDjPbgWBzHitkFs20apVIKu61hZWXEvT6VSboOLoKqgKCU5MAOS0XgizDCm3PZTjdfN2C6eLeCpnzem2p45eQX3PXAb1DeOwzTMyMY+KhIaE4D9Lp1ZwutPHcAf/Pt7IcvxnziINTKz2WzbTo1BgZ+o9DDN4N/P4uJi4MLtUU/tomRhgNPA/dAwihBrXMRdrdipkjvowx1vZZ/4Poio7gtq1BG2dIN3TcFefgbvv0E/h/iX1X1Eo8VAj4goAuLgxd+pFkDTwYoQVv1WrVbdyivxKaokSZibm4OmaZiZmRnZwU2SAzNgMtbQG7Qar9PYVss1PPubt1GvW+71r758DJ//88/i2f/6fDcbC07QEuiNpw9g68c246Z7rot7KB21W8vJtm2YptlyAlgulwGg63X7/CeA/azbR5Q0DPQaxH7glNtk74tuPtzxhnr+1/1eq/vS6bRb+R11ow7vv16dqvvEEhn+L7E9VvcRtcdAj4hoAEEhnv/gMehgwxvoWZaFYrEIXdexurrq3iaTybjVeGFd2YYp6VNukzy+Qasbo6rGazc2x3Hw1t4PcfbUUtP1pmnhxMkl3HzP9Tj+1sm+HiM2ktS2UcfOf96Fb/w/X4W2OT/yoUVFluXAao8TJ06gXq9j69atABBY3dfLun3+wC/JJ01JDPVHjUFWAyvTGrgf1sRdoTeIsNd7YO34M6xRh/e6IMViEbVaLTD0i7ILez/VfeJ3xuo+os4Y6BER9cjb4KKbarwg4vpLly6hUqk0HXDm83lomoZsNhvrwUiSAzMg2VOC+6luHEY1XhCx3858qGPPrsOBt/nw2EV87qE7cPzASSB5u7dv1XINr/z8NXzprx+Emk5e5+YoiPX1pqenmy73n/wFdeRtt25fu7AvSSfKk3oCx0CvgfuhIclVaaM2zoFeO5IkQVVVqKradukG/5c45nQcB9VqNbCaO6gx07Be83up7vMGfqzuI2pgoEdE1CVvl1rvJ4jeNfE6HRyYponl5WW3Ek9Mk5uennYrr/pZ5HgYkh7oJXlKcC9TbodZjRc2NslJ46lf7G97u70vH8UD3/gsdv3opU5bjGxsUXGcRrFekKNvnsDt996CWz51w0jHNCphz7lOJ3/+Sg9v4NdpHSdFUZpCPu/3SXk9o8nAQK+B+2HNeg30OglbuuHChQsoFApYWFjA9PR0YOjX6QMe/2u+v1FH3NV9/kYd4t+g6r52gR/ROGCgR0TURjcNLjq96TuOg3K5jKWlJZRKpaYDjZmZGWzevDmwM1rcklwBB4z3GnqjqsYLIksK3nn9JIqFVaTU1g6sglEzce5yGVs/thmn3z83lLHE5bl/eRmbbrgKuQ2zcQ8lMoOefLTr0hhU6eEN/CzLQqVSQaVSablv0KLt4vsoT/wmHQOcBu6HhkkNsYJw+nEzsT+CKrkFy7IC12rt5jXfW90XFPpF+XuIqrqvWCwCgPuheljY563s4/OJkoKBHhGRT68NLsIYhuFWXnkrW2ZnGyHCysoKcrlcIsM8INkVcECyKwjDwtBRV+MFuXy+goP7T2JmeqbjbY++dw4P/OHHxybQC+ty61cuVLD/uYP47L+/lwflXWjXpMNxnJYTP+/33a7b5w/8emnSwRAnua/ToxRUlTOp+DexhuFms272h/iAp91rftDSDeI1X1T3iVkoXqqqtl2+YZTVfeLvpFAowDRNZLPZlteRsAo/VvdRUjDQIyL6SLsGF91+ImfbNkqlEnRdx8rKint5KpVyG1yk02lcuHABKysrbifbJEpyYAYku4LQW6EXZzWeX3G5ghd3vtfTfd55exH3PHQX3nr2nSGNKh5vPHUAN911HbbevjnuoYw1byjn5123Lyjw63Ti167KgyfnwSb5RNL/fj3JWJW2hoFes0H3h/c1P6jCr12jDtM03a92Fd1BjTqi7sTufZ0Q+ySTyUBRlI7Vff5t+M8R/BV9rO6jYWKgR0QTLapqvGq16gY2IqSTJAlzc3PQNA0zMzNN2xHrSiUxjBKSHugluYJQjM2yLBw/fjy2ajwvx3Hw1r4PsFJsHEQ7XdWyAVculnD7HddCluXEPhdckrfLbWcv/utefO3vHsXU7GgC1UnTy7p9/sDPe523+7fgrfIQYaJ4LZ/EdftYkcV94MWmGGu4L5qJY9RhvU62W77BcZzAKbzddGIHEBj2Dbpeq3dNbP962N1U93UK+7zft6vuE/+3bXsi38Oofwz0iGgi+UM8b1DRbYMLy7JQLBah63rTCWcmk3Gr8VQ1+GU26WEZkPwxJrFCT1TjXblyxf1/tVqNpRrP7/SHS3jtlaNrPSx6yEFf23scf/Bn9+HFH788lLHF5cKpyzi89xjueXh73EOZSL2s2+ef2hVW5XH8+HEoihLalZfr9q1fDPTWcF+sYYVeszj3hyRJSKfTSKfTLdf5O7H7v7ppzhQW9rWr7vPuj27/XtpV2Q1S3XflyhUsLS1hy5YtuOaaa7oaCxEDPSKaGOIN1duptp8GF2L6ZKFQaDoQyOfz0DQN2Wy243aSHpYByQzMvJJUoRe2Nh4AbN26deTVeH6VVQMvPf0u4ABSH11pjZqJUs1CbmEWpaWVzneIWS9PiRd/tg9bb9uMq7YtDG9A1LNO6/Z5T/RqtRoKhQKAxuuWZVmwLKvlb1Fc75/CK/4f9ZSuUWKAw33gxRBrDfdFs6Tuj04V3bZtd2zU0e51X1R1+1//vcugRPVzeP/1a1fdJ5pzeJfsIeqEgR4RrWveN0sR4nnXlum2Gs80TTew8U4FmJ6edqdP9nIwMA6BXpICsyBxB45h4a6oxhNVevl8PtYTTMdx8ParJ3BuUW9c8NFQup1yKxx4/SQe+Oq9ePafnot4hPGyTAu7f/E6Hv3mF6BmeFg0DvxVHpZloVAoQJZl3HzzzU2VHL026VBVNTTwS3JQxDCL+8CL+2JNUgOsOARNLx0Xsix3Xd3nD/06LeEANI7zz507N/Sq7nbFA97jSKJu8ciViNYlb4jXb4MLx3GwsrICXddRKpWaPsXTNA2apvU9fXKcAr2kjjGuwFGEB0tLS02fBE9PT2NhYcGtxltaWnKfd3GeVJ08dgmvPHfIc4mb6PXEcRyc+OAybvy963HiwMnIxhelfvfy8bdP4sjrJ7D9/lsjHU8ckhrAj0qnJh2iEUdQ4Oc96QvSLuwbt5Pj9Ygh1ppxDW2GgQ1C1vQzvXQcdFPd124JB6Dx+lEqlQK33a5RR1R/Y96wNWy5HqIgfLYQ0boRVYMLwzDcajzvid3s7Cw0TUMulxv4DTzpYRmQ/DGOskKvUzVe0Np4kiQ1BclxWLq8gt/925tN4d0gh/AfHr+Ezz10R2IDvUE89z9exqbrr8JVW7W4h9KX9XRyNiySJEFRFGSz2bYnfUGBn7c7YxCxflNQ4DeKk2eGWdwHgn+drknmfQ9muDm5QW+7JRwKhQIuXLiAbDaLubm5wEYdoht7EH+DJn+jjm7/Br3Hsgz0qBd8thDR2POGeKZp4tSpU3AcB9dff33XU2pt20apVIKu601rV6RSKbfBRVCZf7+SHpYByR/jKCr0uq3GCyKec3EFekbNxEtPH0S55FtPps8pt8KBN0/h049+Eq/99s0BRzgE4u+8j31u1k289NN9+KP/7SGkp1qruyi5ovob63bdvqA1nNqt3yTLcmCDjijX7WOYxX0gTGpoE8Q/M2PS8bnRSuyTdDqNfD7fcn27Rh3tGjQBza/9/i+xlM/GjRuhqqrbfRhAYIU5URgGekQ0lrwNLrzVeI7joFwuA+huSkG1WoWu61heXnbfTCVJwtzcHDRNw8zMzFAOApMelgHxB1KdDKtCr59qvFGOrxu27WD/3g9w7L1zLddJfU65FZb1MpTt1yI9nUat3LoO2Tj78OAijuw9jrseuD3uoVAfhnnC7l23b2Zmpuk6x3HcdfuCwr5O6/aFdeRN+rp9ScNAr4H7YQ0DrGbiOJf7Y43YJ2Hr1rXrxi5e+8MadYS99l+5cgWPPfYYqtUqFEXBpk2bsGnTJmzYsAEbN27E3Xffjdtvvx1bt27F7Oxs9D+0T7FYxA9+8AMAQKlUwuLiIu677z5885vfDLz9D3/4QywuLiKXy6FUKmH79u34+te/PvBtqT8M9IhorPi71AY1uJBl2b1d0Bu0ZVkoFotYWlpq+kQtk8lgYWEB+Xx+6OXu4xDoJX2MUVfoDVKNN4rx9eL44fN4+Zn3hrb91/ccx+f+w/149p+T2SBjkD3+/OO7cc2NV+Pq6zdENh5a37yh3PT0dNN13SzW3m46V9C6TeJ77+sRQxzuA4Frxq1hoNeM+6PVII0oulmzNWjtPsdx3Nd8y7Jw9uxZnD171r3vj370I/f7hYUFbNu2zf267rrrsG3bNmzfvr3l/aYfxWIR//AP/4Dvf//7TZc99NBDePLJJ/HEE0803f5b3/oWAODb3/62e9nf/u3f4tSpU3jsscf6vi31j4EeESVerw0uggK9sKorWZaRz+ehaRqy2ezIDoCTHpYByR9jFBVwUVXjtRvfqAO986eX8eRPXw+/wYBTbgHAtmx8eHIJN99zPY7t/zD2xh9RskwLu36yB3/8X76ITDa6afY0mTot1u6fzuUN/LzdeoMoiuIGfKICxDRNWJY1kV0SGeg1cM24NQywmrGLaqtOFXr9Emu2BlX3bdu2DY8//jhee+01LC4u4syZMzh9+jTOnTvXMnV3aWkJS0tLePvtt5su37RpE55++um+j1GFJ598Ejt37sS3vvUtN3ibm5vDjh07sHPnTuzevRv33XcfAGD37t3uuL0ee+wxPPzww/jGN76Bbdu29XxbGgwDPSJKpG4aXIjv/bxBlFijQtf1ppL36elpaJqGfD4fy4GeN+yxbTuRB5vjEugB6DlQiroar934RhnoFZcrePKJN1CvW6G3GXTKrfDhsYv47EN34OibJwbbUISiOo0//f45HHrlKO55eHtEW6RhSuqyAN1oN53LX93hD/wsy0KlUmk6ARQnf2LtpqAmHb0s1D5OGOg1sEJvDfdFMwacreKahnzjjTfixhtvdP9/5coVXL58GeVyGfl8HmfPnsWpU6ewuLjofp07d859nSuVSlhdXR040LvzzjsxNzeH7ds7H+/87ne/w7Zt2zA3N9d0uQjmfve737nTdHu5LQ2GgR4RJUpQiNeuGi+IeFM+e/YsVldX3fsrigJN06Bp2sBvgIMSoaT4OZN4cOUNpJJYgSWeCyIU7fTp6jCr8cLGB4wuELUsG6/vPoalS6Wubh9FBPL6nmP43H+4Dy/+6+4IthahCAKeXf+6B5tuuBqbb9kYwYBGZ5zDrUEl7TVqUJ2adHjXbhJd2cXi6t2u2+cN/NLpdGRNOuLAQK+BFXprGGA14/5olZSqRdu2IUkSZmdncffdd+Oee+5puY1hGDh79ixOnz6NG264AZqmDfy427dvb6miA4CdO3dibm4Od955p3vZ7t27WwI6YW5uDk8++aQb0vVyWxoMAz0iil031XjdHKAbhoHl5WX3BEY0x5idnYWmacjlcok6iFEUxf15k6jXwCwOsiy76ymGGUU1XtjYgNEFLCePXcL+Pcc739D9Uxp8XKtlAyt1IH/1HIqXuwsShyrCE3nHdvDUf30Bf/p3f4TZhcHXqSGKkn/tptXVVdTrdVx99dWYnZ11p/L61+wzDAO2bbvr9on3Sa92TTqS9B7qx0CvgfthDcPNZsOaXjrOkrJPTNN0xxH2t5tOp3HDDTfghhtuGOpYxNp33/nOd5pCOdEsI0g+n8fi4mJft6XBMNAjoti0q8ZrN6XWy7ZtlEol6LqOlZWVpuvy+TyuueaaxLZ/T/qUVqC7wCxOYVVwo67Gaze2Uey7gr6KZ375Vle3jWrKrfDWmyfw0FfuxTP/9Gw0G4xAVHt86fwy9v76DTz45/dBSSX7BIgn7yT0sm6fP/DrtG6fqqqhYV/cJ8QMshpYhbWG+6IZ90erpHT+Fb+bYTflC7O4uIgf//jH2LNnD4rFIp544ommabjFYrHt/efm5tyQrpfb0uAY6BHRSIlqL2+n2n6q8arVKnRdx/LysvtmLEkS5ubmYJomyuUyZmdnExvmAeMV6CV1jP4quLiq8YKMKtCzLBuvv3IMpWKl8409BmmK4dsQDr57Br/3+Ttx4IV3o9lmgrzz0mFsufVa3LHj5riHQiEY5PS2D3pZty8o8DNNs2XhdrHdsOq+Uazbx+dBA/fDGgZYzbg/molzEiD+Cr24KwW3bdvmdp7dvXs3vve97+Hb3/62u+ZdoVAAAORyuY7b6uW2NDgGekQ0Ev4Qz7tQcbfVeJZloVgsYmlpqelkIpPJYGFhAfl8Hqqq4uzZsyiXy4kNoYRxCfSA5I5RjG91dRWXL1+OrRovyKjW0PvgyAW8te+D7u8g/swizBnPn13GTQ/cDjWtwjTM6DacEE//txewYfM8Nt6wIe6hEAWK6oODTuv2dWrSYVlW04cpgiRJgQ06UqlUZOv2MchqYCOINQywmiWlGi0pvM+PuP9exO8mrgo9r/vuuw8//vGP8bWvfQ1PPPEEtm3bhnw+3/Y+3qq8Xm5Lg4v/GUNE65YI7kSFVz8NLsKmTsqyjHw+D03TkM1mm7YjDlTEm2NSJT0sA5I9RnHyCABnzpxxL4+jGi/IKNbQu3yxhJ0/f7On+0iR9YJttu/lo/j8X3wWz/7z80PZfjeGdTxu1S08899fwp/87ZcwPdda1USUFMM8KRWhXDqdbrlONOkIC/w6NelQVTUw8FNVtevXcQZ6DVw3bg0DvWZJqUZLiiQ9P+Kecut3//33Y+fOnfjud7+L73//++5aeqVS8HrJhULBvU0vt6XBJeMZQ0TrRlQNLkzTxPLyMnRdbzoBmJ6ehqZpyOfzoW/A4kAliSGUV5LDMmHUnVo7cRwH1WoVS0tLLQGvpmmxVeMFGfaU22q1jhd+9w5qleC1rjqJbMrtRyzLxvvvX8IdO27DoT1HIt12z4awzy+cvIQ3dr6N+//0XsjyZAcGlDxxh1n+Jh1+lmW1TN8VgZ93Tb8gYt0+f0def5OOuPdBUnA/rGG1YrMkBVhJEPc0V0GcN8Uxlm9961t499138cQTTzRdLqba7tmzx71sbm7OnU4bRNyn19vSYBjoEVEk2jW46KUab2VlBbquo1QqufdXFAWapkHTtK7CmnEIyoDxGOeoO7WGCVsbT5Zl2LaNrVu3Ju7TvmEHegde+xAfHr3Y/waGMKzTp67gvs/fBvWN4zFNvR3uSdvrTx3Attu24Ibf2zrUx6HeMMBIPkVRkM1mA5t0iHX7gjryijX7ulm3TwSCpmnCsqxETKOLA0ObNaxWbMbnRrOkBHre84BRr/39+OOPAwAOHjzY1ARDNK3wTp/dsWMH3nvvvcDtFItF7Nixo6/b0mAY6BFR37wNLgapxjMMw63G835CPzs7i4WFBeRyuZ4OysUbM6fcDi7OMYZV43nXxrtw4QKKxWLsgWOQYVY3nnj/Al5+OvhAqaMhn9/ue/koHvjLz+GZf3puuA/UxjCfDc//+GX82XV/jJn56SE+Sv+S+LdAwzfOoWa36/YFVfgFrdtXKBRQKBQgy3Jok46o1u1LonF+LkSNAVYzrqHXLCnPD+9x4qin3G7fvh07duxoCvOARsAHAI888oh72Te+8Q381V/9FYrFYtOH6OK2jz76aF+3pcEw0COinvlDvH4aXNi2jVKpBF3XsbKy4l6eSqXcarx+P6Uah6AMGI9xxjHGXjrVjqqTbD+GVd145uQSfvnjV/verlhDL7optxK8EZpl2Xj/6MVkTL0dguVLJbz9/HvY8SefStQJc5LGQqO3XkMc77p9MzMzTdf51+3TdR2GYUBVVffYpN26fWFhXyqVGuv9mJSQIgm4L9Z4Z85wfzQkpULPW4Aw6kDvO9/5Dn7wgx80BW+Li4t4/PHHsX37drfzLdBolvHII4+4HXCF733ve/ibv/mbplCwl9vSYBjoEVFXomhwAQDVahW6rmN5edl9A5MkCXNzc9A0DTMzMwMfSLMpRnRGNcZuqvGCqjeSvA+HETZeOl/Arx5/FWY92c/txQ+v4P4Hbh/51NtRnYPve3I/rt++DVs+tmk0D0hELfzr9q2ursIwDGzYsAFzc3NNa/MFdeQ1DAOGYQRu2xvu+QO/pIch6zXc7QcDvTVJ6uiaFEkJ9Exz7Tgpjgq9xx57DN/73vewvLwMoNHM4u///u/xzW9+s+X23//+9/HDH/4Q3/3udzE/P4933nkHX/rSl/D1r399oNtS/xjoEVEoEdqJIO/ixYswTRNXXXVVU+e5TgcGouJK1/WmNXAymQwWFhaQz+cjfQNjU4zoDLsCrpdqvDjGN4iox1bQV/Gbf30D5VK1843bEX+uQ95le196P/apt0PjAC88vhtf+7tHMTWbjCYsk4wBBvcBgJYPGVVVhaqqoev2Ba3ZV6/Xm6r+giiKEtiRN5VKxR4MAAyxvLgv1nBftErKPvEWIIx6DT2g0aDCW0XXSVDQF8VtqT8M9IioRVg1nljjbsOGDR3f/BzHQaVSga7rLd1I8/k8NE1DNpsdysnHOARlwHhUEg5rX1YqlZ6r8UY5vihEGejVDRMvPf0erlwsDrwtadiL6H3EsmwcO34ZN999I46/fWIkj+kaQcB74dRlvLf7fXzyi3cN/bGIOmGg19s+kGUZU1NTmJqaarnOtm2YptkU+Pmr+yqVSmCTDrFuX1DgpyjKSH4/fC6sYZfbNUkJr5IkKRV6cU65pfHHZwwRAVirxvN3qgXW1sZTFAX1er1teGKaptvgwrtuzfT0NDRNQz6fH/rBxLg0xRiHSsIoA7NBq/GCDLPxxKCiHNu7by7iyDunB94OALdCL7o19MKd/OASHvjDj48w0BvtSdtLT7yKrbduxsYbrxrp4xJRq6iCLFmW3XX7gh5DVPAFBX7drtvnD/yiXLePIdYahlhrkhJedcsybSiKPNS39aTsE+/5StxjofHDQI9owgWFeP5Fc8VBYVhFmeM4WFlZga7rKJVK7v0VRXEbXHRbcRWFJFdteY3DOKMYY1TVeO3Gl8Qpt1GN7dSJy3j+yQNRDOkjbqIXGQdOaOXfm/tOYMdX78WeX7wa3eJo82EAACAASURBVAN2HM9o2JaNl//tVXzlf/8iUhkeUlF8WJU1mn3gDeWmp5s7XYvjqaCqPsMw3Gm+hmGgXC63bLtdk45eAik2PljDfbFm3MJNu+5AGfLbalL2iTdYnOTXcOoPjz6JJpCYUium1fobXIQtmOuvKDMMw63G8641Mzs7i4WFBeRyuVjemLxTHW3bjv2NOsw4BHr9VpkNoxqv3fiSGOhFMbblpTJ+98SbcOzofr5R/0UWixU4U1OYms6gutpatRKlOA6Dp+dncGTxCrbfvJEH4jFhmJXM18BRi/t50GndvnZNOjqt26eqamjY56/oiXs/JIX/2HbSJSW86kbp8ioyMykAw61WS1qFXtzjoPHEQI9ogvhDPO+0jG4aXIg3mpWVFSwtLWFlZcW9LpVKudV4cSzo6iVJEhRFcSsPk3rwMg6BXq9VZsOsxms3viTuw0EDvbph4ZVnD6G0vBrlsEY65VZ4be9xPPBn9+HZf35+uA/kvn6N5mdTUyo23n0dfrXrXWTSn8Ct1y2M5HHbYbAz2SY5uEh6eKMoChRFCV23LyzsE4GfaZqh6/Z5Qz7RMVMEWkndH8PGrq7NRGiU1GNioXSljOqqgdxV051vPKCk7BPv8TJRrxjoEa1zYQ0ugLVOcN0c6FSrVfdAcmlpyb3/3NwcNE3DzMxMog6YZFl2f+akSnIYJXQzxlFV4wVZz2voHT5wGocPRLRunocU0ZRbx3Fg1A3UjUZFiazIkCUZstz4kmQJIj20LRuLpwvYdtsWLB45M9gDJ8jv/9En8fw7HwIAfvHcAfzPX/l9XLNhNpaxJOn1l0Yv6WHWKIzz9EpZlpHJZAI/9HIcpync8wd+tm2jWq02vf8CwOLiIiRJCu3Iq6rqun6+jFNF2iiMw/4wqibOn7iMmz953dAfy1vYEHeQJoJFNsSgfvBZQ7QOddPgopuDOBHU6Lre9KmwoijYuHEj8vl8Yt981ktYFrd2Yxx1NV678SWxKmmQsZ1b1PHsr9+OekhN+t1jlm3BqDXWgWqq8mvpQSNBlqVGyKfIeO/ASfzho3fj5KHFoZ9QjOLpML9pHjVtGsa5ywCAumnhl7sO4uuP3IP87OjWDCUCkvkaOGrrNdQUoVxYkw7LspoCPvGhqyzLHZt0qKoaGPipqpro4KcbbA7SLCnhVRjHcXBo7zFsufUayPJoukGLCta4n+sM9GgQfNYQrSNBIZ5t202VeJ0ObBzHQaVSga7rTUGN+PS4Uqkgn89jw4YNo/iR+jYOnW7HMdCLsxovyHpcQ69crmH3c4dgWUN6XrgvAU7bZhZeDhoVIkbNgGmZ7uWKojSm2DvNa3Pajnj9cWDDdsO+vbsP464HPo69v3mtUcknSW5lnySvVfeNg0/8u3vw5Hunmi67oq/g2X1H8eXP3YF0KpknTevReg1y+jHJ+2ASnwfedfsEXdfhOA5uuukmt7rPP4XXMIymNf2CiHX7ggK/cXidHoeKtFFK+v44feQ8KitVXLVlfiSPl5TptsDa74aBHvWDzxqiMdd0Eh1QjddtxyTTNN0GF95Pcqenp6FpGvL5PJaXl1GpVBIdQAnjEJZ5A5+krnMj9qNpmjhz5kys1XjtxpfE33M/gd5qpY6duw7hxru24MNjF4czrh5aR3i7MtqO2McS0unGSZ2iKLBtB45jQ5KaD4odx4ZjN78+LV1ewfa7rkd6SoVRNWEDQEDoLsI+SZahyN2HfaP6C7ru41txbCV4bcMjJy5g04Ycdtx9HeQE/k3T+jSJYZYf90FrIwhZlrtat88f+HVat098mBPWpCMJv4NxnoI9DEkKsPz0C0U886Pd+Nr/8cjIHjMpFYve8zYGetQPPmuIxpQ/xPMGGt00uAAaBzsrKyvQdR2lUsl9Q1EUxW1w4Q1q/F1uk0zsgyRX6ImDbfH7i/ugws+yLBSLRQBAvV6HrusA4qvGC7Ke1tCrGSaee/kIDh87j+XCKu6690a88+qJYY0OjbI6tKRgDhyYpgmjZqBurlVuKLLiTvtyw0o4YkutjyDJkBRA9j2v33r9FP7of/0ydv7wKTi2DdtxYNtWo5rPU1kswj5/7Ygslg3oMeyL0s3/08fw5MEPQ69/8fVj2LSQwy0JaJJB618SK5TjwECveR902g/drtsXFPZZlgXLslrW7RPbDVqzb9Tr9iW9Im3Ukro/Kis1PP/4PvzeZ29H/urRrUGblM6y3vMUBnrUDz5riMaItxpPdKrtp8GFYRjQdR3Ly8tNUy1yuRw0TUMulwvczjhMYxXGJXxMYqAXtDYeAGzYsAGapgV+0h+X9bKGXr1u4aW9x3DgvUYTjPOXirj5+qswNZVCtRo8HWoQQSGc7dioG3XUjFrT7z2lppDONNZU6qW6L4xl2Tj47ll85tFP4fWdb7Vc33hds2FbIWGf48C2rMCwT7xuiTWl5CGEfbd86ia8c1nveLtfvXgQ/+mrn4aWS87fC61/DLO4D4DB94F33b6ZmZmWxzBNMzTw67Runzfs8wd+Uf7ukhpgxSUpFWlepmFh76/fwsXTl/HF/+X+kT52UioWGejRoPisIUo4Edp5QzzvQr/dVuPZto1SqQRd17GysuJenkql3Gq8VCrVdhvjUPUmJHkqpldSxtlubbzV1VVIkoTNmzfHOMJg41Ch1ynQs2wbr711Eq/u/7Dp8j1vnsDDj2zHC79oDb0GHxzcde9E+GXU6xAxnyzJ7sncMA52z59dxrVbb8SGa+dx5exy89AkCZKkQJZbTzo6hX1iX4sTSi8xhVcO+OrFtk/ehHcPfNDxdtWqgRdeP44vf+4OqMroThiSGG4P26QHOZP+8wvcD6MJsbyhnJ84RvWGfN7v3fcbwwjctj/s8wZ+vf5MDPSaJW1/OI6Dg68cxdsvHcZDX9+BWW16pI/PCj1aL/isIUoob4jnP1ntpRqvWq261XjiTUOSJMzNzUHTNMzMzHR98DsuVW/A+FQTxh3otetUK6ZcHzx4MLHr/CW5Qq/bQO/dw+ewa/f7LZfbtoODH1zAHZ/YhkP7F4cyxnK5DMtuPpjMpDNQU9FU47Xz5qsn8NCj9+KZ/++pru/TKeyrGwZqH1XmNdb3s5sq+/DRNDG/bsO+j993O149eaHr8R46fh43b7sKd92yqev7EFHvkvgeEIe4Q02xdnM2m0U2m225XqzbFxT4eav+giiKEtigQ6zbF/RYQHICrLglpSJNOPnuWTz/s31Y2JTHLZ+4fuSPn5SKRe8xSafCCqIgDPSIEkSEJv5OtcBaNV43B2mi2krX9abFjKemptwGF/18CjQuIRkQf1DWrTiqHnvtVCtJUmIDvXGo0Gs3tqMnLuG3z7wTev2ZczpuuvcWqAfPwjQGf45YtgWjZrivK5ZtNU2tUgKCsmHa89IRPPAXn8OuH7048Lakj0I5oPF35Z0a7lb22cFNhLoJ+1JpFQt3bMarbx3/6LVYRjd/Dr976T1csyGHq4dcfZC0v00anbhDnCToZe249SzpIVa7dfts226s3xrQkVdU91UqlcAmHWLdPm/gFzTld5IlJcACgIunlvCbf9wFOMDnvvZpZHOjb6zGCj1aL/isIUqAoBDP352rmwYXlUoFuq43VVvJsox8Po+FhQVMTU0NdKDrDZ+SGO54jcv04FFWPXaqxgtbG88b6CVNkiv0Oo3tzLll/Ntv96PT0Pe88QEe+tJd2PXL/qbeOmgsbm7UDJiW2XTd1NQUMulMbH/Lq2UDi+cKuPVTN+HoG52nsXYS9lOsVfa1Xtdt2Lfj0Xvx2zcOo2qs7UPRoMP7JckyZE/YZ1o2ntn7Pr728F3IpOI/kVqPkvj3P0oM9LgPhHHeD7K8ttSDn3fdvqDAr926fbquo1wuB3bkjXrdvqTyz/KJU/HyCp78xxdQN0zc/vs3Ydsd8SznkpSKRe95StzhIo0nBnpEMfE2uDBNE7Ztu2+yvVTjmaaJ5eVl6LredCAzPT3tVuNF9WYlxpTUai2vcZkePOxKwl6r8cLGmLTGHcI4VOgF/b0UV6r47bPvwjQ7j9u0bBw+dRG3bL8Wxw6e7frxLdtG/aO1imzno3U3ISGVTsGsm7AdGyk1/pOZD45exP0P3IaTh07DWA1eV2mYOod9DuY3zsHeOA/7whJURflo/T67qUGHnzfsO3LiHN44OI9P3bG5r7WgqDtxP5cpPkkJK+KW9Aq9fnnX7Zuebq52Fh+K+yv6VldX3bBErNtXLpdbth3WoGM9vVZ7nxdx/o1UP+poq18qQlFlfPqLd0EZ4RqzXkmpWPQGi+vl+UajxUCPaMT8XWovXLiAy5cv46qrrsKmTY11lrqpxltZWYGu6yiVSu6BrKIoboOLoOkMUVAUBaZpwrKsRL/xjNuU26jH2W813ijHGAXv30rSQuawsdTNRkfbS1dWAq8PcvL0Er6w42MdAz0HDsz6R1OWzLV1iBRZcSsfJElCySw1mmK09LrtQ1DL3B7tefF9PPj1P8Az//TcgGP5aJ9HVLElpu996sufxpOHTjZP4wXg+Cr63JAvIOz7za63kZuSkJFrUFW15eSx34XfiRhmcR8Ik7gfJEmCqqpQVbVp3b5z586hVCph48aNmJqaCmzS0WndPvFaHRT4xR0E9SIJ1WimYWHfkwdw4r3TAID7//j3sWHLfGzjSdqU27jHQeOLgR7RCLRrcCFewLsJIwzDcBtceA8+crkcNE1DLpcb+kGcN9BL8uKt47LeX5RhWRTVeMMeY9RE4CL+xpJ2QBQ0toNHzuHtg6d73tarB07iM1+4A/ueO9Ryne3YqBt11Iya5/ckIZVqNLlQVKW5yYX4NiEzFW3bwdGjF3H7vR/D4VdbG4TE6bbP3Ip3lpZbLpcAt5GGX2vY1+jI+/S+Y/jyH9wC06zBNM3AtaC8J5Di5JFhH7UziSGOH/dBg3j9n/T9AKztC1VVMTU1FfhBpmjSERT2icAv7LVaTBEOa9KRpN9B3JWbtmVj/3OHsH/XewCAq67VcMdnboxlLO6YElLNKs5TuH4e9YvPHKIh6bbBhXgBN00zcDu2baNUKkHXdaysrFX0pFIptxpvlMFaksMdr0kaZ5TVeEG67dYaF1mW3YrXpPGP7eRpHTufO9jXtlbKNdQUYGoqhWq1DgcOLNNqTCWq1yHSOVn6aB2iTBqyFHygGmkHW+ejrwE3eerDK/jsg3fg/dePDfx3G9UzIZVJ4ZpPXI+39/e2vl9Y2FerA0dOl/HwZ26GbZmhnR7DTiC9XR79/06yJP7t02gx0Gvwr788yboJbNo16XAcpync8wd+tm2jWq02fYAqiCnCQVXYqqqO/Hka5/RSx3FwaO9xvPKrN9zLPv+n9yI7O9ix6aCSUhmXlKm/NL4Y6BFFrF2DC1FN5H0jD1vrrVqtutV44k1HkiTMzc1B0zTMzMzEcuA6iZVvw9TvOIdVjRflGEdlXNbRO3u+gJ/9+k1Ydv/hw+tvf4gvPPxxPP3EqzBqBiy7uTtaJp2BmlK7DuwimXIboVd3H8Xn/vyz2PU/Xoh7KACAHV/7DJ5+e/BmHV7vHj2Hrddo+MRtmzEzM9N0nf8EUpw8dtPlUTzXdF2HYRhNJ5GTcnI/qWEOwyzuA4H7Yc2g1YreDvB+4lg/rCOvbdvuun1BgqbwptNpqKo6lNfrOKvRPnj7NJ7+l93u/z/1hTux9bZNIx+HX1ICPVbo0aD4zCGKQLfVeEG8AZkIaXRdbzphm5qachtcxP2CP27dY5M+zl7DsmFX40UxxlFLcqdb8Xd/aamMn/5mP6q14HV6utEIcwwcOXkOV23OYfGDi54TjgyUXg7UEzblVqjVTFy4XMaWW67BmWPne75/lKewN2zfhlOWiWE87Z96+RCu0mawbeNc0+WdTiBN02wJ+cSXeP4HBX7eyr5xXgeKgiXxtW/UGGQ1JGUaYRIMs1rRu25fENGkIyjw8zbwWF1dbblv0LILg344E9caeqePXMBv/nGXe6wxm8/ingdvj/3v1H+eFicGejQoPnOIBuAP8byBh3jT7PRGIW5XrVZx5MiRpoMxb0gT9xuOMI7dY5PWLMGrm7BslNV4/Y4xTkmv0HOkDH7+27exslLrfAcfx3FQN+uNaryPDvreObyIP374E7hybgWpVH9daiOdchuxwwfP4AtfvLOvQC8qSkrBjZ+9HU/uPz6U7duOg1/vOoi/+KNPIj/TXQMjb5dHP8dxcObMGayurmJubg6KojSdSLar7FMUJXRqGMO+8ZLU97lRSMrJedy4H9bEGW4qigJFUTqu2+cP/LpZdiGsI2+7dfvi2BcXTy7hl//vs7CttWOzB/9sB3ILM23uNRreD8Tj/FvxzuJioEf94jOHqEdigXtvp9p2U2rDmKaJ5eVlLC0tAVh7c5mennar8ZL4Ceu4VL4lvVmC0C4si6Mar9cxJkGSK/RMO42duw7i/2fvTYPbOM983393Y+EKEiAliqKofSFF7TslWbIl2ZLlJY5nxnYy8SSumlTqfJl8ST5M1VTqXlfqnLrl3DonuffWOaecmcw5yYzHM95jy5IlWdZGrRQlcd9JcN+wkti7+34Au9kAGisBdIN8fylXKKDRePvtF93v++//8zxub3JhHdJwHelxCe6ttt5JHDxRgyd3FxcOmrYqt/N7S5dH7uG9PtS/dgh3PrufZFvSU+X2yPcO4Wpz/6L2EQ+bw4Vr93vw0jO10GoWd60XnOAAUFhYiOLiYvE9wdknF8IriH0sy8rmgZJbPKpR7FPjbz+bEBGHFIMQIA69BdTaF8nk7QsX/GJdr2majlqRN9vhpZZRO774n1fh8yxEJWzcUY31dauz8v3xUFu4LUAEPULqkJFDICSAINpJRTzp5DFRNx7P85idnYXVaoXT6YxYhGzevDlrIk2q5ErILbBQkTcXBD2hP5V248mhZgccoN72TU47ceFqG6ZmZlFUVJTQZwKBALxeb0iRHKGSnk6nk4TwzmL75krQNJ3acacp5DZTTj+H3Q0frUGxqRBOy1xGviMaZatNcBRq4Qtkfjy1946jamUJDmyvypgQIXX2FRQUhLwnJ/aF5+yLtXgMF/mEv5W63i5XMWe5C5oAETUFSD8Ekc7T1SboxSKRtAuxinR4vV54vdGjAZxOJziOi7hup3O8uBweXP6XW5i1h4YTHzq7C4xWHXNxtYwNIugR0gEZOQRCDKQiXiIFLqLh8/nEAhd+/8LTquLiYhiNRpjNZgCQvYGrjVwJuQXU7ywDFtoYCAQwMjKiuBsvVhvVumhUY/smppz46MtHsNiCE9pYbeN5Hj6fD16vN2Q7aZJsOe487sfJcztw48LTpNun5pBbgUcP+nHm+/W4/I9Xkv7sYkbCjud34lLH0CL2kBxX73TCWFKAzWtMWftOgUTFPjl3X6wKj1KxL9zdFyunLGFxLOd+JUJWEOJUDBI+V18KxEu7IDj75QQ/QTjy+/2w2WwRn9doNBEhvMK/kxG9WD+LexceY2xgOuT1vc9uR8WGsiSPOHOoxaEnfXhLBD1CqpCRQyCEsZgCF1I4joPT6YTVasXs7Kz4ularhdFohNFoFG/KGo0GgUAALMsq/rQoHrkScguo303Isqw4NqRPVZV048mhdmFUbe2zOzz48ptm2B3umNcKaYEDAYqioNfrQ9x40fD5Ahh3zGHFKgOmxh3JNVKITFVbVQwpPNDUaMah8/tx/0JjVr5y/c616HZEJinPJDyAz648xY9eOYhVZcrnFhKIt3iUVngMd/fFE/vkQnjj5YAiRIeIWaQPBDJZCCKXWG7CJkVRYBgG+fn5yM/Pj3h/ZGQEc3NzKC0thUajCbleCzn7pOKSFLk8q9Ee0HTc78OTm52hn9cy2PXMNlWdC7UIetL1idy9lkBIBCLoEQjzyIl44ROjRG5GHo9HdOMJF2qKomAwGGA0GlFYWBixHyE0lGVZ1V/Qc0nQU6ubUC43HgCUlZUp7saTQ22CWTjC70kNDj2PN4CrtzowMR0qsAltE9x4gughoNFooNfrk35C29wxgrPHa/HdZ01JtlRU9NJDhubpM9NOrN1YjtKVBtgm44uWi1ovUMDGI1tw4Wlmc+fJ4Q+w+PTqU/zg/D6UFiVWJENJYlV4DBf7wt19scLCwsW+8Jx9aloQqgk1XPuUhgh6QZabkBUNtYRUqgXh91FYWIjCwtAHRxzHhTxgDBf7Esnbp9Pp4Jr24eIfrwO8xPxAUTj28j4YVxkiPqskahkf4fNAAiEVyMghLGukBS4W48YT8p5ZrdaQqlR5eXligYtYF+pcEsnU7nqToiYhKlpuvPz8fLjdbtA0jcrKSgVbGB019aMcasmhx3Ic7j3qR0f3QnVWadvcbjd8Pl/Ie0KunMVMKhtbzdh7fAuabnUn/JlcWuo13e/H6VcO48o/Xs7o9+w6WYfbA8pV1rU5XLh0qx2vPrcD+frUp2dKizuJiH3RcvYlIvbJufuIiBFkOR8/EfSCEIdeENIPocQSsKR5esOJlmc14gGNM4AL79+Aa05SmZeiUFpWjBWbSjA1NRXi7kt33r5kUYtDj4TcEtIBGTmEZUl4ldpUC1wITiuHwxFys5TmPUvkhpVLgp5aXW9yqKFf41Wq1el0aGtrU3wRHgu1CGbRUEsOvZaOMdy+3yv+W3ptkYq4DMNAp9dBq0nPhHbaOoetGyuQl6eFR1JRLia5EHIr4eG9Phx9/TAaPrkXZ8vUqtzq8rQw1qyGvak3/sYZpG94Bjeb+nHq4GZomOTGRi4IGVKxLzwsTCr2RcvZF03sE47d5XJheno6okBHLvTNYiBiFukDAdIPQdTiwFILwjw42f6Il2eVZVm4Zj249Ieb8Lr84gMWjufAczzqX9kLt38ObmtkcatoFXmTzduXCmoR9OTWnwRCshBBj7BsSFeBi0AgAJvNBqvVGrKwKCgoEN14yV6U1SA8JQpx6MUnmUq10lBMnudVOQlXi2AWDTU4CLt6J3HhSrPYDiGsVtpnwhPwTEwg7zb14/kX6vDdF4+T+6A6T2kEdpsLs35g5bpyTA5Ox/9Akhx89SAuP1FWzBNobDFjRWkR9tao07GbKeKJfdKE73JiHxC8P1ssloj9RivQsRzEvuUCEbKCECErCOmHUDLRH0ERikHrjW6M9ExCrw9NF7F+exW2H94Mlot0ZUsLLsmh0WiiCn7pmEOpZXwIayniziMsBjJ6CEuaRApcCH/H28/s7CysViucTqe4D41GIzqtwm9kyZBLgl4uOfSyLT7Gc+PJ5cYTxqEwPpV+WiiHGgSzWCidQ29gyIJPv34Mn28h54y0bTzPIy8vb1HXiHhwHI/OoUls2r4avW2jcbfPhSq34TQ3mXH67B5cSaDqbTIjoWLDSlh0NNQ0vL+53Y6VZUWoWlGsdFNUQbyE7xaLBdPT0+L7siFhUZx90Qp0aDSanBGHiJhF+kCA9EMQtQg2akE6J00XPM+j6+EA7l16GvEeRVGof2kvCgoLZD4ZbI80fFdO8AsEAiFpjATCq6inkmtVLQ49tbSDkNsQQY+wJIlV4CIZN57P5xMLXEifIhUXF8NoNKK4uDgtk6ZcEvSk4o5aHWUC2RAfk3HjRYMIeotDyfaZR6z4l4/vwOmcCxEUtVot9Hq96NTLBgNDFpyq34rejlEgwa7IlZBbgXu3e3HijWO48e+307bPutM7caE5+4UwYsHxPL6+2Ya3XtyHonx1F0pSA8I1QKfToby8POS9aAU6/H6/+J7cb1QaahYu+KlN7CMiDsmZJkCErCAkr+YC4WugdNHbZMbF/31D9r1DZ3di5TpT1M/SNA29Xi/7oFPI2xftuh2rinr4QxrpNVx63U41BDndEEGPkA6IoEdYMkjdeC6XC36/H3l5eWJhi0QLXHAcB6fTCYvFgrm5hZwPWq0WRqMRRqMx7ZVoc0nQE5wSQtUrNdvEMyn0pOLGU6Kd6UDt7cu2Q4/nebhcLnT1TuLjrxrh9y9Us9br9dDpdGKbsr2YaHjUj2Nnd+D21y2xNxSalaYuy5bjb3bWg3GrB5t2r0Pvk8HIdiTZjB0ntuP+0FSaWpdepiyzuPd0EM8d2gSaLEpTJpazL1aBDqnYJ50LALkl9i0XiKgZhPRDECJsLiAVr9I1LnoemfHVP12XnUMUlRRg5/FtKX+X9PoaTiKFlWI9SBX2K5g0vF6vWHBJibEijFM1r6UI6oeMHkLOI+fGM5vN8Pl82Lx5c8KTa4/HI7rxhJsfRVEwGAwwGo0oLCzM2AQplwQ9IDgpyCVBL139mg43Xqx2EsEsNbLVfyzLwmazwWazY2B4FpdvtIPngxMxvV4f87eQrb7zeP2YdLhQUVWKiRFb1O0EAU6dZzQ23e2jOP5cDYa6x+BzRXE/JtDfRcZCGLZVYvqputx5Uu43D2JtpRFb1pYp3ZQlCcMwYBhG9gFMrAIdyYp9cg6RdEJEHNIHAsSZFoQ4NhdId7htb9MQvvqn76LOa57/62MoMsqH2i6WWLlWAfnrtvC39D2ByclJ8W9p3r5wh1+mHHQkhx4hHZDRQ8hJhATZ0kq10smcNNQy1qRGEGisVmtInoa8vDyxwEU2LrK5JugxDBOSiFytpCvkNp1uPDnULuipvX2ZrsIrPf+gaPQOzuL2gz7odEE3ntoWDC2dozhzvAYTI0kWyMghGq534vQPT+Kb318OeyfxRezh1w/jKxWLeQJf3mjFj189CJMhcvFCCJIJwTxZsU+6aExE7At39y1G7FPrw5ZsQgS90NBKtd2Xsg1x6C2Qzr7ofTyEL//xWtRrzv7TO1Bdq1xBp1jXbSFvn8/nw9jYGIDgA/lE8vYxDBOzSEcq1x1hLQsQQY+wOMjoIeQU4SKeXLlv4ekNgJDk9AI8z4sLdIfDEXKjkwo02ZwU5qKgB6i/vYsRoqKJvYt146W7ndkgV9qXzkUtx3GiG1M4/zTNYGjch0ctYwnnXNzcGwAAIABJREFUz1TK3XjnUT+Onq1Dw6VW+Q3EkNvcFAI4jsfDBwOof+0w7nx2L+L9eEe1/9xe3DJPZKZxacbj8ePa/R68crIOOm38a85yFneydd+Ot2iUCwULF/vkkHP1CX8nc71ZjhBBL5Tl3g9E0FsgXX3R/3Q4pphnXGHAvlPbQdPqHHtC3j5hjUjTNNasWQMgeP2IVqBDcGWzLCubt08I2ZUT/GI9qJHOqYmgR1gMZPQQVI8g3AlhtYkUuJATnAKBAGw2G6xWa0i1u4KCAtGNp9SNP1cEMoFsV49NlVT6NdNuPDlyRTBTa/vSKZp5vV5YrVZYrdaQvDNGowkDIy40Ph1Mew7NTDDn8mLS6caqNUaMD1sj3l8Iuc1d8cc6Mwt7ZQnWbl8Dc9twwp+r2LASvpXFsHcm/hml6RqYxNPVJuyvXR11cbDcF/BqgaZp5OXlxXWIyFV1DA8HkxItZ59WqyViFoigBxARSwrpiwXSUQBisG0UX7z/LXgu+pzh9A+OorBU/U5yuUIUFEVBp9NBp9NFbC8U6Ygm+CVSSV2j0eCjjz7C4OAgqqqqsHbtWlRVVQEAysrKsi7ovffee3A6nWhpCeZbfvPNN/Hmm29GbPf666+jtbUVBoMBJSUlwUgVAG+88QZ++ctfRmz//vvvY2hoCMXFxXA6nairq5PdLyG9EEGPoEqkBS6kufGABTderEmbcJEOBAJwOp2wWq1wOp3iPjQajSjQyFVYyja5Juhlo3psOkhUiMqmGy9WO9V6/qWCmRorGy9WcOR5XiyEMzs7K76el5cHk8mEkpISPG0fw7XbXUnvW8n8g61do3j+eI2soLdUaG8ZwYnT2zHaM46AL9KRHQ5FUah7fhcuPOnLQuvSy+WGDhQX6LFtfXn8jQmqJFZlx3CxT/q3dDHpcrlk9wsALpcLVqs1RPBT2/U6UxBBj/SBFCLoLbDYHHqTgxZ8+f61mGLe/lM7ULV1ZUr7zzbJCpzxinSEu7Ll8q0ODQ3hT3/6k+z+GYZBVVUV1q9fj3Xr1qG6uhpr167F2rVrUV1dLSsyLoZ33nkH7777LqqrqwEADQ0NeOedd3D79m387ne/i9i+uroaQ0NDAIAdO3bgpz/9KY4ePRqx3a9+9SsAwLvvviu+9nd/93cwm82y4h8hfRBBj6Aq5ES8eG68WExNTYUs8ouLi2E0GhMOl8sWUkFPjYJJOLkiQMYTypRw48mhdoFU+N2pVdBLNYee3+8X3XiCK4aiKJSUlMBkMiE/Px8URaGtawIXr8apGqtSbjf2BaveXgprf5qr3GapyK0st7/rwHNvP4vL/3gl7tjcd3Y3rnePZKll6eezq0/xxov7sGF1qdJNURVLQchIROyTc/cFAgHx2uf1ejE1FVq1OVrOvqUm9i2FMbBYiIi1ACkOssBixoVt0omv/vEa/DEemOUX6rH72dSr2mYbOYdeqgh526NVUheu3RUVFfiLv/gL3L17FxMTEyEpoViWhdlshtlslt1/ZWUlqqur8dJLLy3a7fbee+/hF7/4hSjmAcDRo0fx5ptv4sMPP8TFixdx7tw58b01a9bIinzhNDQ04MMPP8SDBw9CXv/lL3+JM2fO4K233gr5TkJ6IYIeQXGkBS5SceMJcBwnumyERNQcx0Gr1cJoNMJoNKo2VE44TuH4M1VNKV2o3VEmICeUKe3Gk0PtIa3AQmVjjuNUt1hIJocez/OYm5sTc2gK6HQ6mEwmlJaWhoQ+9A1O44tLj1PWvZSe4LrcPow7XVi91oRRs0V8nUq3Aid0kAKHy7IcWltGsfvUTjz5tjnqdsWmIjBrjJhrHsxi69ILx/P46FITfvDSAaxZWax0cwhZIp7YNzU1BbvdjoKCAmi1WlHwSzSMV65Ah9qu8/Eggh7pAymkOMgCqQp6LocHV/+1AfaZ2ZjbPftXh2EoK0q5fdkm3VV/YyG9dv/93/89gOA6ZGJiAu3t7ejq6sLExATcbjeGh4cxNDQU4sLmeR6jo6MYHR3FvXv38NJLL6GoKPW+vnPnDi5duoQ//OEPIQLbuXPn8OGHH+LChQshgl6iXLx4EdXV1TAYDCGvC99x8eJF/PSnP0253YTYEEGPoBjhIl60Ahfx8Hg8sFqtsNlsEQJTQUEBNmzYkBOTG4ZhxFyBahf01O4oE5CGOwqhSEq78eTINUFPbSQS1sqyLGw2GywWS0ieE4PBAJPJhMLCwojrxNiUAx9/1QQuRphJoihZqKBtPvRWKugJ5HIOPSljI1ZsOLkNunwd4JTf5sAr+/F1Dot5AgGWw79fasIPX9qPVaZCpZtDUBiapsV7cn5+PsrKysT3pM6+cHdfPLFPo9FELdChRpGEiFnElSaFuBUXSCWHXsAXwO3PGzHUPR5zu/U1Vdi0e+2i2pdt0pFTcDEwDIPVq1dDr9eLgteePXvAMAx4nsf09DTMZjOGhoYwODgIs9mMkZERHDx4cFFinsDQ0BCGhoZCBL2SkhIAwPBwarmFGxoaIsQ8AYPBgK+//poIehmECHqErMNxnBgikmpIbTSXVV5eHoxGIzQajRjvnysTG4ZhxHwLaidXQm45jhNDRfv6FnJmqaEQipRcEfQAdbYxVtuEsGqbzRaSQ9NoNMJkMsm6dlmOQ8fAFB52DKFmSyWakyi4EI5arj8Nj/pR//x23LncFnwh3SG3KuDurW4899ZxfPq7zwEgJDx8y/5NaLPHdhnkEl6vHx998xhvnduH8hxIQk7ILNHErHjOvkAgIFugQwjllYaFSdFoNFELdCh1TyWCHnGlSSGC3gLJ9gXH8Wi62o7Wuz0xt6MoCvWv7IVGp24TQjjpDLlNRzsAhBhZVqxYgRUrVmD//v1p/85//ud/xtDQEOrq6kJel+bIC6ehoQGtra3idnKFLoaGhmTz6gFBsVDYPyEzEEGPkHWESSSQnBuP53lxce5wOEJuUFKXFUVRYllxtQtOUnJFJAPUH3IrzY0nneAKoddKuvHkULNYJqDmNobn0OM4Dna7HRaLJUTwLywsFMOqo11vPL4A7rWa8V1jcCK7bu9m6HQa+BIouBALJR16QLDq7SwbQEGRHq5Zb/pDbikoLg5yLIfuninUHa1Ba0OH+DqjYbDmwEZ8/bhXwdalH+esB59/24y/OrsHhsKFpNlKjzUlWO5iTirHT9N0zKqO0Qp0SMU+6fVVIFzsk/6dSXFluY8BgDj0pBBBb4FkQ0y7Gwdx+8tHcbc7fG43KtaXxd1ObWQz5DYWwhpKo9Fk7TdrMBgixDwAuHDhAgBECHXDw8NwOBwh7rrXX389pNCFNH1NtO8kgl5mIYIeIetInXiJXMACgQBsNhusVmtIqFwsl1UuiWMCudRmNYbcRnNtCg699evXo6CgQMEWRkfNYplAqoUnsoG0/8bGxkLC7wUh12Qyxa1obZ/14Jt7XWjrXwgxufWkDy8c34Yr37am1DY1Lawam8144XQtvvv8sfjaUgm5FTD3T+Pg0Q3ovL9Qkfjgy/txtaVfwVZljkmLEzcae3H26Dalm0JYQlAUFVfskyvQkajYJ+fuW6zwQgQ94tCTQgS9BZLpi+HOcVz648242xUU5WHHsS2LbpsSqMWhpxZhsbW1FZcuXcLf/u3fRoh9v/3tbyOKWbz55pv41a9+hfPnz6Ourg52ux1AsPAkQRmIoEfIOlJXXjR4nsfs7CysViucTmdIqJzgxou1OM+1qrFAbgp6amhrvEq1o6OjcLlcqnat5IKgl0zhiWzC8zycTqf498zMDIBgLimTyZRwWPWkdQ6f32jB6JQ95HWW49A6OI7tNavR1jG6qHYqDc8DneZJbKytRFfL/NNS5ZuVdm5/144zPz6DWx82wFhRCq+xAL6xaaWblTGau0ZRucKA6jJ1Fn0iZJ5sillSsa+wMDSHo5zYF16RN5rYxzCMbAivTqdL6BpOBD3SBwLh6XyWO4nmjBvvm8Zn/+MqODb+XPTkXx5CkVGdD8njoRaxVy3C4s9//nO8+eabouNOilxlWiEs98MPP8S7774r5t+LRjwHH2HxEEGPkHVi3Vx9Pp9Y4EKaqLm4uBhGoxHFxcUJ3ZyFyrhCBV2lL5ZSeJ7HnM0dcSNUk0gWD6VDbmNVqg13beaSWEbamDh+vx9WqxUWiyUkz1NpaSnKysqQn594XrGhSTv+4+pjOOe8su+bx63YtG8LtD00/AF1HH+qDAxZcOroVnS3pJ4XUO34vH4MDFmxYddabNi/CV+3mZVuUsa53NCBV5/dTiZ1yxS1iBeJin1y7j6WZeF2u+OKfeHuvvCHTUr3gZKoRahQmvDc3MudRJxgU2YrPvsflxFIIL1I9dZKbNgVKfTkCmoR0qQht0rxq1/9CkePHsW7774r+77D4YgodiH8WwijFf4tPFwPx263Ry2YQUgPZO5HUByO4+B0OmGxWDA3Nye+rtVqxZxnconr46HRaMRJotIXbSkURcHj8qD7UR9qDm9GflEwn5vSIlkyKBVyG8+NJ5cbT21ClBykjYnB8zzm5ubEPJoCOp0OPp8PAFBZWZnU731o0o5/ufgQXl/s393NJ714/pkaXLnWllSbE6nAm23uPxnEkdPbcfnze0su5BYAQAGdbUP4/lvH8XR86TrzpPA88OV3rXj15Falm6IIavp9EeSJF8YrLdAR7vCLJ/ZptVpx7jQ3Nwe9Xg+tVququV82IKJmECJshhKvPyyjdnzxP6/AM+eLuy+KpnD05b3Q6XNXQlCLoCecF6UEvffffx/FxcWyzjwgmCuvtbUVDx48iCvIGQwGMfRWDjmnHyF95O6vkZCzCBMNj8cjuvGEiytFUTAYDDAajSgsLFzUpETNVWPLq0yYMk/jk//6FZ77wXGs3lwhXtDV2N5wshnSnIwbL15b1YoaxLJ4KNlGlmVFN54g3AHBCYTJZEJhYSE6OjrE8Zgoo1NOfPDNo7hiHgAEWA4dw1PYtmUVOrvH426vZmbnvPDSwRw4iUzgcxFDSSHmCmnUbq/C4LhV6eZkhTm3FzceDeL10zuVbopiLFchI9eFHIqiRPddOILYFy1nH8uyIff3iYkJ8W9B7JNz9ym9mM8EpChGECLohRKrP+yTs7jwT9fhtLkS2tff/p9voNCkrsJyyaKG8cHzvKIOvYsXL8Jms0WIee+9917Ia3JCnODM2759u/hafX092trkH3g7HA7U19eno9mEKBBBj5B1OI5DX18fXK6Fm0deXh6MRiNKS0vTNskS9iMNx1MTW/ZvRN9TMz74z5/g1A+fwbo9VQDULTwJCGEMmQxpdrvdouArvfkmW6mWiGXpQQmnmdvtxszMTEi1Yo1GA5PJFOHcTbZox7hlFv925RHcHn/8jefpH53Bqf1b0N07jkRPlVoXVg+eDODE+d24/B8PlG5K2qEpCkdf2oXPOzpRYSjGM4e34Oa9bqWblRX6R2bwqHMcZ46UgKbVOfYI6SfXBb1YSMW+8MJWUmffyMgIgGA183Cxz+PxROxXEPvkCnTkqthHimIEUYNgoxY4jot6fXBaXbj4v25geiyxh16nf3AMeSW5LeZJhTQlf+fSuWq2Bb3W1lY0NzdHiHkOhyMkbLa+vh4/+9nPItx5t2/fBgD87Gc/E19766238M4770SE6La2BgvKnT9/Pu3HQViACHqErEPTtPifNFQy3RNRtTveNDoNjn7vIAZazLjyx+tY/2Qtak9uBFuozvaGwzAMAoFAWgW9xbrx5MiFUOZcEPSy1UaO42C322GxWELGQGFhIcrKyqLm0UymaMfguA0fX3sSNWdeLG497cOzx2tw7UZHUp9TW0ggD6BrcAqb61Zjcmg2DXukoJYKG0fO7MCF/m6AojHlnMNgkQM7tq5GS1fqRU1yiTtPBrCqvBS7tq5SuikEQkYRxD7pHKSqKvhwVM7ZF56zL5rYR9N01AIdahb7iEMvCBH0FpCmp5GOC5fDg6v/0oCxgamE9lO1pQLbD2+Giod/QkjHhpK/E+maJJuC3tDQEH7yk59gx44deOedd8TX7XY7hoaG8Itf/EJ87Wc/+xn+4R/+Ab/+9a9Fka61tRW///3v8dvf/jZEuDt69CjOnj2L3/zmNyH5+H7zm9/IVs8lpBci6BEUYc2aNaKolylyIdTSuKoEz//NSXz+/15ET1M/upq6cf6nZ4ANSrcsPoKgx7JsSjkOpaTLjRetnUDuiGVqrcqcaUHP6/XCYrHAarVG5Ec0mUwxq1oDiTn0WI5Dc+8EvrzZApZLTXzy+VlMOV0wlhTAak8sREWtdPaO4ezJnbBM9CKQQNhxLlC9oRzThSysE24UzSfl7xybwvEt67DCVIQpSzrES5XD87hwsxVFhXpsrDIq3ZqssJQdaolAjj/y+BNx9kUr0MFxHDweT1SxT87VJxToUPIcEIdeECJsLiAnbs7a3Ljyp9sYaB9JaB8anQav/aezYJZAIXW1iL3Steli11DJ8POf/xwOhwMNDQ2y70tDbA0GA37961/jN7/5DQDAZrMBAD755BNZge53v/sd3n//fbz33nsoLS1Fc3Mzzp07hzfffDMDR0KQQgQ9giLo9fqMC21qD7kV2LxvA3Y/twOPrj6Fy+nBp7+7AJrTYOeJGtCMeidli3W+ZcKNF6udahb0KIoCTdPgOE51VZkFMtGPPM/D4XBEFMTJz8+HyWRKagzEc+jNun1oaB7AnacDi253U9cwzh+pxeWrrXG3VfuC4sqtVvzF+YP47rPHSjdl0Wh1Gmw4tBZ/amwEEOoXvNU9iJf31uD69Q4EcrxScSLwPPDJ5Sf465cPoLK8SOnmEDKM2hzA2SZZQTNezj6WZWVdfT6fDxzHwev1wuuNdHhHE/sEF2Gm7wfLXdgVUItoowbC+2LW6sI3f7wNc2fijvW3fvEKKPVNS1NCDeG20nYA2XXoffLJJ0ltbzAYolbAleOnP/1psk0ipAEi6BGWLGoPuRWgGRqHX9qHnsd9cDqd4FgO3/zzNThmnDj00l7o8yMrwqmBVJ1vmXTjxWqn6seBygW9ZHPUxcLv94tuPEFwpyhKdOPl5+entX3mCRsu3unA2LQj4r1Uae4fQ9221WhNYlKsJvel0A6W5dDUMYJ9xzbj0e0ehVu1OOpf2I4vujqjvn+xuQuvPFuHi1eas9iqbBI6tvwBFp9efYq3zu+DqTi38x4REkMt15dsk04hi6IoaDQa2UW2IPZFK9CRjNgXnrMvHW0nQlYQ4lRcQJj70jQNp2UOF//XLYz0JF7Y6/jrh1FQmg+NZmlcW5a7oEdYmpARRFCEbEw6c0XIAYCSFcU4+5Pn8E//x7+CR9BZcvfPD+GYduLEXx1BcZn6HBbJ9G+23Hhy5IJDD1B/O5PJUScHz/OYm5vDzMxMSNJdvV4Pk8m06II4cu3zBVg86hzB5Xud4FIMsY3G0IQN2w5uBZIQ9NTK5LQTVatKUb6yGNOTzvgfUCHbdq1Bs8cCjgMoQdgKO+UBjsO17r5lVSTD7nTjq+tt+P7pnSjKXwLxUgRZlrszK1vHLxX7wh88yYl94WG88cS+aAU6Ej2u5T4OBIiwuYDQF5wH+Prfb2C0bzLhz26oW4Mt+zagoHDp3DvUMjaIoEdIJ2QEEZYsuRJyK7B+51rsfW4Hmq61iE6etjudGO0dx5m3T2DdjjWK34CkJBJym203XqrtVAO5Iugl275AIACbzQaLxQKfzye+bjAYYDKZUFhYmDZXhbR9Hl8A1x/14m7L4KL3HY2G5n48c3QLbjbEFoeEitBqhed5NLUM4fnjNbjxxWMgySHIcsFFLAAwNBPMI0VTCHeMZYpiQx4MW024090bd1vbnBtTATdWV5RidMKWhdYpz/C4Fd/e68bZo9ug16nP/ZsOiJCxvFHD+U9U7IuWsy+a2EdRlKyrTyjQIT1mtYgVSkP6YQGO4wAfg2uf3IdtIvEcsnlFeTjyvUMoMiwdMQ9Qp0NP6bYQch8i6BEUgTj0ImEYGnUnt6H9bldwcjrfR7ZJOz76v/+MA+f24MALu1Xj1osWcqukGy+ZdqqNpSTo8TwPt9sNi8UCu90uLra0Wq0o5qY7CbDUoefy+HD5fjcedyWW8DlVXB4/5gIBFBboMOfyxd1eTSG3cty434MT53fhxpdP427Lg0fAH4DX543y0IQCTVOgKRo0Qwf/f74QUrrFvv2navBJd6Soykeputs0OIpXdtdgfMKWrHaZs7T2jCFPr8WzBzdCpyGLh6WGGgQtJVH78ccT+ziOkw3hjZezT8gFKIh8woMVlmVVf7/JJETQW8Dt8OK7Dx7AOm6HPomH6KffPon8Ii0YFefyTgVpCLIa2pGN3JqEpQ8R9AhLllzJoSdFW8TgmTfqcefjxoj3Hl58jK7GPjz7Rj027lkHrU7Zp2bhgqka3HhyqF0oE1B7OxNpH8dxohtPWh2wqKgIJpMJxcXFGZu4CPud8wbwTWM72vsnMvI94TxoM+PckRpc/jZ6gQy1OvTC2+X1BdA1PI1te6rR+XhI9jMcz8Hv88Pr9YLjhbFAQTt/veV4TqzWzHE8OHBAxCWYAjMv7NE0ExT+6KDol6zYt6WuCo+d0+G7j8vlth6ceaYWV2+2J/xduU5jqxkahsaJ/RugWWKLtOWO2gWtTJPLx09RFBiGQX5+vmz+2HgFOnw+X4j7HQDGxsYixD7p3xqNJif7KlGIoBfEPevFjf94iAnzFHR6fcKfO/2jE2D0DAwlSy/3qjA2lHbFqcUpSFgaEEGPoAjEoScPwzCo2GxC1ZZKTMjkuXBMOfDF/3cJG3etw+GX96Fqa6VikzJhouRyudDb26sKN54cJOQ2PcQqOuHxeGCxWELEXIZhRDFXn8REMlVomgZL5+GzG+2YtrvjfyBNcDyPztEpbFxfjr6B6ZjbqlHUA0Kdg4PDFjxzcDM0LSMh1WADbGB+4eiHkJyOpmjo9Xpotdpg7k+eA0XRwk7FIi8h//FBsY/l2PnQ3lB3HwVK4uSjwUhcfeK+59FoGKzasRL3OrqSPmaPP4Au6wy2bqxAV192xN9sEWuU3Xs6AK2GQf3utUtK1FPrb4uQHZZyEYR4Yp9U5LNYLOB5XiyyJSf2AaFVfsNz9i0FsU+Yh+T6cSwGvy+Ahi+a0N8afDhHJ9gX9a/ux8ysF7UH1mayeYqhFiFNaAfJn0dIB2QUEZYsUoGE47icmOgxDAOWYnH0e/vx6X/7OurKrO/pIPqaB3H4/H4cOLcbBYbkq4IuBrfbDYcjWDHU5XIBUIcbTw5pyK2aQ1DULuiFF53gOA5OpxMWiwVzc3Pidvn5+SgrK4PBYMjqb87i4vAf11rBgc6KgCild2gaLxzaFlfQyxXuPOrDqRd34rs/Pw4uFr0+BNgF4U2j0UCv00Oj1YACBR48+PCiIxQFmmFAy0yaecHFx/FgOQ68RPDjERT7WC5SgKcoKiR099DpXfiivRM8JSmEkQRd49N4oW4LBsxT8AXU+bvLBLce9UKrYXBoxxrQtDqvh6mi1ut7psllh1o6WK7HzzAMGIYR51w2mw0sy2LdunWgaTpqgQ7B9efz+ULu38DSEPuWu0OP43g0XW1D8+3OhYcdCZy2uvqtmHT6cPBoNTTapekcU0vIrVqcgoSlARH0CIqQjQmBkLMkEAiAZVnFL96JIFzYjdUlOPTiXty/0BR9Yx6491UjRnvHcObtkyhfY8po26LlxqNpGpWVlapw48lBUZQYWkgEvdSROh0nJiZgtVrF3Gk0TaOkpAQmk0nWRZBJHHMePOkZw8XbLXB5fMjLspgncLu5HyeObcWN25FuMWHMqc1FFC0U2OcPoH1gHCuritHdNhzcFsHE7Dq9Dgy9uAkoRdHBvDxM+CQkKAwKYbscx4PjWPFvnufB8kGxb3V1OUZoF+yzTvFYBKFPKjrzDB9T7Lva3otXTtTiUoyQ6ZwhiUvbtftd0Gho7KtdnbBzg6BelqugJbDcj19A6lQMF/ukxCrQkazYJ/ytJrFvKTs2E6HzXh8avgyuH4Q7fLyHXhXryqFbWYrifB0qKg0ZbqFyqEVIIw49Qjoho4igGNnIK8UwjCjopTsJfyaQhgnvPbUTLbc74IoTPjjUMYoP/suneOmnZ7Bh99q0T6ii5cYrKiqCw+GAXq+H0WhM63emG+k4UOsET82hwTzPi05MlmUxNTUFANDr9TCZTCgtLc365MjvZ9FhnsaV+51wzHnAzTvElJLM5tw+WN0elBkLMWONXASpGeE6HAgExEVdS4cTLz67CwNdY9BoddBpdVk4DgoUTYEBjcjhNC/2cRxoGth9qhb/1vI0KOAJYh/Lhvx+PB4PPB5PiKtPCN9l5kN6WY7Dg+FRHNi9Dg+fZK4ishq53NCB4gI9tq0vV7opBMKiIIJekET7IZbYF6tARyyxD4Csq0/4L5vnZjk79AZbR/HNv9wW/53ImNDl61DzTB2aHg3gjb+pX9K/IzWE3AqFcAAi6BHSAxlFhCWNcMGWr8KoPqSCnqGyGKd/+Az+/N+/ifs5z6wHH/+3L3HstUPY/dwOFJYsziWVSKVan88Hh8OhWkeZFLW73wB1tjEQCMBqtcJisYjV8wCIbryCggJFJn42pxtXH/agpXdMfE1sh4IuuEedwzh/pBaXr+aW28vv98PlcoWMPa1WiwctZrzwl0dw++v4x0Mh02IqJQpxz5zfia/6+1CQXwAgWM2W53lwbDBHn8/rA8dz4kMjjufAsXLFOYK/u26XCyu35aPcWIDxKQdomgnm7Mvo8aiDL64140evHERluTqqpxNSY7kLWsv9+AGIUQjA4vqBpmnk5eVFFfvkXH2C2CeIf3JEK9CRCbFvuQp64/3T+PPvr4WaJRIYEyffOoYrV9vw+luHUVSsTJRDtlBDyK30t0oEPUI6IKOIoBjZcugB6nQ9yRHe3k371mPTng3ofdwf/8M8cPvT++h9PIBTPzyOqq1FiXhVAAAgAElEQVSVSX9/MpVqc6lv1SiWhSPN9ackPM/D7XZjZmYGDodD/I1qtVpxol5VVaXYZGho0o7Pb7RgxibvglM6qPVh5xD2712HxqZIt5eaQm6FnJIA4PV6AQT7UKfTQafTzedf4jHpcGPl6hJMjtqVbK7Itt1r0OKzIiD5nVAIhtXTmuCYDAQC4AIc8vLyoNFowHPcfK6+sEIdQmgvOFxv68LrB3bD/M0UAhwHChALc0jdfUIl3qUiGwRYDp9fa8YPXtyHkqLcXcgtd0FHTdcWJVju5x8I7YNM9QNNB3PUyuWpjSb2+f1+BAKBuGJfNHdfKseyHAU9u82DK/96GwFfqIFhIYeefD+e+fFJ3LjRifrjW7FmbWmmm6koUmeckg496bopF6LHCOqHCHqEJY3w5CMXRCcgUiTT6rQ4+tpB9DcPBh0mCTDeP4kP/sunOPFX9ag7uhWFpYUxt0/EjSc3KVJziGg4uSA+Ki06CuPAYrHA4/GIrxcVFaGsrAxFRUVob28PEYKy2j6OQ1v/JD6/3gI2Vh8pvLCdtM5i27qV0Os08M5PrBfERuUX3YFAAF6vN8S1LCzS5BZPLZ2jeOF4LSY/i5HPM0uUmgpRuKUUvd2xH3BQIX9ToGgGtEzePx6hAt+lli68cnYPvrjYNF+JlwNkxpog9oVX46VoOriYXuRxZhur3YXLdzrxyrN10C/RROjLheUqaBFBT/nKrsmIfdK/pWKfkNpDSrScfbHEPqX7IpvwPI/uIQtsXROYHrVFvj8/75DriZNvHsX9hwMwlRVj177qJd9f0lzaSoq90rUIcegR0gEZRQTFyMaNIxeEHCly7V21YQVOvnEU1z64lfB+eI7H9Q8b8OBiE+pfOYjN+zbAUBYaUpWMG08OadVTtVcRVlosSwSl2ujxeGCxWELGAcMwMBqNMJlM0Ol0IW0UxI9sPt30+AK422LG9Uc9UbdRi0MPABqe9uPs8RpcDi+0oFDjeJ4X8x5Jx5fgks7Pz485qbz/dACHnt2G+991ZqO5sjAaGvuer8FHHR1p2ycFCgzNhBT5aBybwPMnd+HOw75gQQ5JKK9YiXde7JMTloOVeCnQNAOapkKFPxUvlroHp3C/eQjH9q4jRTJykOUuaC334wfUXQgiEbFPzt2XqNgX7u5bLg49luXwuHsccPnx4MLjyA34hQr04b+N+u/tR3vPJGZnPXj59f3Iy1/6TjE1hNsCoWmgiKBHSAdkFBGWNLmcQ09K3fFt6HzQg9Ge8aT257K7cfVPN3Drk3s49v1D2HZoE3ycN2k3nhwURYFhGLAsmzOCnpqF3WwKehzHweFwwGKxhEySCwoKYDKZYDAYYroysyk6Oua8+OZuJ1r7Exz7Kgg9YzkeHcOT2LqpAl29E4otMqUJzAUoioJer4dOp4PL5Uro2mhzuOGieJSYCmC3RC6qssHx8zvxWVdkBWFZxHyKyX/PhH0WlSUGrFtjgnnEAgaImCkJDzEW/uNF8S9YiZePLvZJQndphhbFv7QOkRR/Arce9aLcWITaDaRIRq5BQm6JoJerrrRExb5wwS9eGC8AjI6OyhboUPN8NVG8PhYNTwfR0T+BbRwDvzd6P4CiQkJu953ZieFpFybG7Tj/vb1Yuao4Cy1WHjWE20rbARBBj5AeyCgiKEY2Jh25HnIrkF+Uh2ffOoYP/vMn4tO2ZJhzuvDV77/Bna9LUf/aAeSv0CXlxosGTdNiZUk135TUkp8uFtkQy3w+HywWC6xWa8iTytLSUphMpoRdmdnoxzmPHx3DU2gdGEd5YUHc7dUU1goAfSMzOHNwK3r6J8TXsrXoli54BDQajbioCSeRdjU2m/HCyVpc/zT7obd7j23CHdt4SN68TPLYPIpzO7ZifMoBny9S8BQeZoQvCnjMh/SIOfu4EOFPrhJvyD6j5ezL4vq8rW8cBWV6rDPk1gKPCDpBluvxk/OvbodeqsQT+6SV2cPFPgCyrj4g9H4YLvjlQv/Nuf24er8HLT1jeGn3Rlz7w3XZ7RZ+FwuvbT+8BU6egnlgGvsObsDmmopsNFkVqKHCLUAceoT0Q0YRYUmTqyG3coJJ1ZZVOP79Q7j58b2E9sXzPHyS6mMAMNY/iT//P5dw/LV6HHpxLwxli1u0MQwDv9+vaqEMWN4htzzPY3Z2FhaLBU6nU3w9Ly8PJpMJJSUlCU9uRNEsg8KUP8Cic2QG3z7uwbQ9WPhiVV0xCvN1mHP74nwa6oi5nefG416cOlGLL79+lPHv4nkeXq8XPp8v5PwIRS7kznGyi9+7j/tx5Ewt7l5pX3R7E2XNhnI4jDTGh2aT/uxixN3Lbd149UQtLl5pSfgzFOb7NJrYx/EhobucRPTjeR4BlgVk7lU0FRq6K83dF5ovcHHQFIV1m8rx/oOH+Os9u1FbZlrkHgnZYrkLWsv9+IHl1wc0TYv3Nyl+vx/9/f1gGAYVFRURufuEUN5o7nSNRhO1QIcaxL45jx9f3exAz9AUtlSXo/dOd9RthTugkNl1/fYqaFaUoLVpEJWrjTh4dBMYRvljyhZqCbklOfQI6YaMIoJiZDOHXq6E3EpFHbkw1p0n69DxoBdT5umo+wiwLPzzYXYLN/PQhX3T5WYMNA/hzNsnsK5uTcrnIlcE0+UYchsIBGC1WmGxWMSQFIqiYDAYUFZWhvz8/KTPe6aF0aEpO64/7UPXSOj4vt02gPMHa3DxVnQhSW0OPQDw+Vl0j82gdutqPGkZyIgQyrIsvF5vSNiRdKGTyDlOtM8cTg9mPF5UVJViYiQs+TaFtIupjIbGxoNr8Vln9nP3sRyPyx09OHOiFlduLF7ApABQNAUaDBBN7IuSsy/4WhSxj14I2+W44Ps8HzyjyV7VD+xeh0vmHrA8jz82PcZf7dqBPStWLBuBIFdZ7uG2wPITs+RYLnnj4iENqywqKop4n+f5qAU6pGKfNC2NQLjYJ/07G/3u9gZwqaELPUNTAIDNRQW43jEadXvp78K40oCKunW429ANjZbBmfM7UVCoi/rZpYjaQm7VnluXkDsQQY+wpMkVwUkgXl66wpJ8nPrhcXz4f30WsniWc+MBgIZholYDs47b8B+/+QL1rx7A3tM7UVgSP6wxnFzp3+UScsvzPFwuFywWCxwOhziZ02q1MJlMMBqNi3oamClBb87jx90OM24098mmwON54FH3CA5sr8bDtqHYO1PZ2rZ3eBon9mxAa4c5bfuULkjCn/Tq9frkz3ESfdbSMYozx2owMSKTgDvNHD5Viwu90d0H0UhXndlZjw9N4+M4vG8j7j3qS8s+5RDFPnr+vEmiooNiX6irL0To4zhwQIjY5/P74Pf7RBdfRAgvHdlDBfk6aE06zNp84vf++9MWeLfX4GBlJRiy6MgJluvikAh6pA8E4uUSpChK1tkHLNxb5Qp0JCr2ybn70iH2ef0srtzrQcd8Go/dmyvReSvOw675McFoGOx7aT+ufBN0nJ96YQfKV0aKnUsdtYTcCu0g7jxCuiAjiaAYJIeePIKgFy0vXXXNahx5+QDu/vlhQm68mPDAnc8fYqBlGKfePonSlcUoKIzMVRKNXHC+AbnRzsWIZSzLwmazwWKxwOv1iq8XFxfDZDKhqKgoLb+3TAh6k/Y5fHWvHf3j1pjbjVmd2LS6HAV5Org8kaG32QgHTpVrjV144fRuXP2ubVH74ThOLHIhXbwJv/dsOTNuN/bi+Is7cOvrsHDUVGxhUajeuAJDGjd8AWVF+GGLHaX5edi6sQJdfRPxP5BmgmIfLXtueR7geE7M2Rfw+8FynGiWZDkOkCvOAUSE7j57dCs+7+2KuE583tYBjz+A42uroVGxULCcxYzlfOwCpA+IQ09gMf0gvZ8WFhaGvCcV+6JV5I0m9jGSh+vh7r5E2unzc7j2oBfN3QtuvFUUg+7B6NE6QpsB4IWfPIfr3wUrxK/bsAJbalfF/c6liNoEPaXbQVg6EEGPsKSROsh4ns+JyV481xvHcdh8eD0effcEtmG7+HosN148xnrH0XG3C6NWL2r2rMWmbRUwlsV/epcLzjcgN9opFcsSHasejwcWiwU2my0klEBw48k9gU5XGxcLy3HoG7fik1vNmPPEqM4moaFtAC8e3BYz9FaNBAIc2sxj2F6zGn0DlhQ+v5D4W0BIFp7K710gVRHU7fFjeMaBtZtWwNwbDP1JpzOS0dDYeKAan6Yaait0R5ra1DIygeNb1qPcVoRpS/K5/DIFRQEMRQM0HZzM8TxYnw86XbCKcbQQXn6+Cq9Qibe60oRe1zRmZ4PHFp6r70JH8DycWFsNOgfuoYTlBxH0SB8IZKo4SDxnn1yBDuE/lmXhdrvjin3hgh/DMPAHONx41IdH7cPiZ47UVqMlgfyuPHgce+0QHj0Zgt8XAM3QOP5cDXS65SkkqUX0Jg49QrohI4mgGNmYdFDzycQ5jlN9JVaBaIKe2+2G1WoVxZtjf3EQn//uojgBWOyTnsZLTTjzzml8+3Uzbl1uxcHjW1GzswplK6MXzsgF5xuQG0UxKIoCRVHB/FcxBD2O4+BwOGCxWEIquBUUFKCsrAzFxcUZm6wIbVpsWPCoxYn7HUNo6o2e+0UOjufR1DuC/bXVaGwPDb1Vs0OPoih0mSfx0vFdGBq2wZ+A64znedGNJ+1vrVYLvV6v+JPdzr5JnKrfiuHBGbCB9P7+61+ow1cphNpmklvdA3hpTw1u3eqSrXyrLvig2McwYICImR4vhOrO/7d711p82N0svi+8LuWjR02Az4dNeXrZsDKlF0jLGSLkkD4A4oeaLheUEG0oihKvi+GEi33hgl8ssU+r1aN92Im7T82g6IVK6MWeAKwTjrjt2rBzLex+HpMTduTl5eHkqe1YuSq3KpinE7U444QxmgtrUkJuQEYSQVEEASOTaDQaMddULlw8pYIey7Kw2+2wWq0hN/uCggJU7THi7NuncefzB+n5Yh54+FUjDp7ciQd3+3D3uw7cv9mF/fWbsPPAOlnHXi4434DcEh6j5U/0+XywWCywWq0hlbpKS0thMpmQl5eXlfYBqYlmHMdjzOpEc/847rQPyubKS4TRGSc2VZajIE8LV4LOPrXw7cNOvHZiL6582xp1G47jxGq1AkqE1SbCzQe9OPXSLlz7vClt+9y6owrtfntaQm3TXSDlYksnXn2mFhevJl75Vo0IuVoZhsG6qjL0+ZxieFm42Cf97+PWNvxo9y4YEwwpy2ayeDUK+dmCiFmkD4DMOdNyDbW4sAQSEfvkQnhZDmgdtOP24/6Qz7x4YBtufHAb7lk3aCpK9XOKQoEhH1U71uPyN4+h1+lQVW1Czc7V2TpsVaIWQU8t7SAsHdSvbhAIiyRXCjcICO21WCwYHR0NmZwYjUYYjUZRvNl7eif6mwcx3jeZlu+2TdjgnbbBWFYE68wsOJbDg1vdeNo4gNMv7cbm7ZXQahduQLnSt7kkPErzJ/I8D6fTCYvFIobDAUBeXh5MJhNKSkqyOiFIxenoD7DoG7fiaf8YWvrH0yKx3G4dwLkD23Dp9kLo7UKVWxUyv8ZkWQ7t5gls27wKnT3jIZsIE3lpRW6GYcSw2ow0a5GuRn+AxeOuUew7tgWNN7vmX009kV6xIQ8lNWW4292b0uczDcvxuNU3iKP7N6GhUZ1tTJYtW1bik4EO8d9SsS8cjuPwRXcPfrJvD0rnHaSJuEw0Gk1UsS/dAsxyFnSWM0TQIw49AbUJerGQin0FBQuF6bw+Ftcf9eFxzyQKCvLBchx4joehSA+3eQYupzuYYgGs7PyboiicfPs4LnwZfNhG0RSOP7cNWi0ZG4CyY0NIewEQhx4hfZCRRFCUbDj0hIWJdKGsRjiOg81mg8MRtNEL4ZQFBQUwGo0oKSmRrXp7+q9P4IP//Ak4Nj1i1eNvm3H6x8/h2rUu8TWv248LHz3E5tpK1D9bg5WrSwDkjqCXCyG3QLA/BWFHcGYKedMoikJJSQlMJhPy8/MVmbQn248Ttjlce9yDNnN6BGcBjufRMzaNjVUm9I0s5KQTigGoLV+mUFOU53kMjFnw/MGt6OwZF8NqvV5vyHUw4aI2KmBiyoHKFQasXFOKcXPy+QFFKODgC9vxUXeKefNCdpW5cz/lnIO1zIvVFSUYnbDH/0BWSe64t26oQKNtPP6G89A0DQ7Av7d14G8P7EPVihUAouePCk8WL4dc+K5Op4NGo1HVb1jNEDGL9AFAHHoCuS5sur0BXL3fg6ddo6ApGmBoCFOBM9s34to/X0dxUdGCm5rn5vOk8sG8qRyP5//mOVy90izOzY8/txVz7mn09k6BpmnZnH25MudYDGpwxknXS5l6WEtYfhBBj7DkUbvoFJ4bTyAvLw9r1qyJG0q5enMFTv3wGVz54/W0tenBlw9x5Nx+3L0Zmseqp30MfZ3j2HVwA7btqILBFEwOrNa+FVD7GAAg5s4DgMHBQfF1nU4Hk8mE0tJSxZ/mJSro+QIsWgcn8dW9dvjSnF9NoGt4Guf2bwsV9IQchEhbsdX0ENaYm0/6cOTAely6+mRhE4qCXh8sZpBrC5HHbcM4fawGk8O2lMNc65/fjm9GBtLbsAw9K3o0MIqXd9VgfMIOdT8iiA4FYN3GcjzsTb7y8qzPhw+etuDtPbtRlqePG1ImJ/IJblTB4SfNBwqEOlfCXX1E7AuFiFmkDwDSBwJqcGGlypzHj0t3utAhU1G9buNKdN/qnDfBB3MuMzQdzJMqufQe+/4hdA3OADwDmqaxaWsFqteXgOMDYk5ej8cDj8cT8R00Tctec4V0H7k+ttQg6Ennz0rP6QlLBzKSCIqSjZuDcMFUk5gjuPHkcuPp9XpYrVbk5eUlnBet7thW9D0dRN+TgbS0zzHjhGNoEisrDJgMS7zLcTwe3+vD43t9qN5QjtXri6GvUvfESRpaqDb3FsuysNlssFgs8Hq94uvFxcUwmUwoKipSTXvjFcVgOQ6DkzbcbO5H79gi3FoJcr/LjKO7N6DhSWiOGfB8sASoShAcYxzHYXZ2FjaWha3KiOKiPLg9Aej1ekUmdukcV9fvdeG5V/fg2hfJ59PbfWQTWgI2OFze+BsnQhZO/eW2bpx9djsuf5e8IKYG9u1ah6vDqYcNT8zO4oPmZvxw506Y8vRRt4tVGZLjuIgk8UIhGJZlxb/n5uYi9hm+2BQcgMs5l95yJtddWekgl4WsdJKrTkWny4cLt9rROzQT8R4NoJrR4UZ3bEf10dcOoWfIiskJBxiGQWFRHvYdXouyciMKCgqCFc7nr61y114hh690Liq2IYrYJ1TjVftvTxrqqmRbpW51IugR0gUZSYQlj5pCbuXceOGFDRwOR0jhg0TQ5etw8o16DHePwZemRXHLjTacevvZCEFPykDvJJof90Cn1eLwCRs2bqnA2k0roNOr69IirXbMcZwqwgrcbjcsFgvsdnvIYoTneVRWVqKsrEzhFkYSrShGgOUwZnWisXsEj7pHstYei9MNaCjoNBr4AoHgJI1PdymExcFxnFjgghXOM4AH7UN47cxeXL2mvCCUDhHE72fxpGcUe45swuO7fQl/bkvdaliMPAZH0x++msmR4A2waJ6YwK7aNXjaPpyx78kEBfk65K/Ig613cfeKEbsD/9bcgrd27ogp6kWDpmno9Xro9ZGfFX43ssniJWJfOOPj47BYLLIOEzVc9zOBGhapSkP6gPSBQC4KmxanB1/dbMfQmFX2/TN7N+H+Bw0x93Hs+0Exb3zMBgCgaQovvLwbFO0R+4KiKGg0GlkhSRD75K65fr8/KbFP+rdaxD5hXCjdHhJyS8gE6lp1E5Yd2bioKh1uGcuNJ5cbL9X2lq8x4YUfn8SX//2b9DQcwMMLjTj0wj7cv90j+75w+vz+AJofDqD54QBWrytD/cltqN5YDoZRz4SKYRhwHAeWZRVb2HEcB7vdDovFEjIWCgsLYTKZ4HA4YLfbVTsRlYbcchyPEYsT5gkrnvaNYczqVKRNDa2DOHtoCy41LCT2T7mEbhoRcor5/AuVeCkA+fn5YjGA9qFJ2QIZucrYhB1VFaUoX1mM6cn442HVmlLotpTgXr85C61LP/1TVqyrMaKwQI+5dLkLs8CRAxvxWe/icxUCwJDdjn9racEPdu6AUUaYSxWapqO61KWLTmHBOTc3JzowYi06BbegXDgZIXchYhZxKQrkmqA3NjOLT64+hd0ZGQILAKtXFMPSNgKPK/IBhsDR7x1A74hNFPMA4Owre5BX6IXPl1hfSMW+/Pz8kPfkxD7p34mIfXKCXzbFNWFNpfS4kK7tlupDJkL2IYIeYcmjVMhtIm48ORYjQG49sBE7T9Si+UZ7/I0TwDHjRMDmREGBDi6ZycRCZdHg/yhQGB2cwcf/uwHbdq7B3sMbUVldqvgNFFC2MIbX64XVag1xXgpVi00mk+hQEULL1Fq8g6Zp0AwDu5fH53fa0NQ7qnSTgmG+UzasWVmKjvlKwErJeUK+MK/PC5aV5klhEAiwoqAgMDhmwZkDWxUT9DIxkW5sNuPcM7X49tPYobdanQZbj23EZx3pEZaU4npnH753bDsuX22BWn62scb/uqoy9PpsMbZIniGbXXTqpVPUi4ZQhVd6Dx0eHobL5cKqVaug1Wpl3X2xckcxDBO1Eq8a7l+xIGIW6QMgd0NN002uCHo8z6Nn2IpPrz5FIEZRu30VZfj20s2o79d/bz/6xhwYG1lw9x05vhVba1ehry+YVmGxfRFP7IvlqI4l9gkpGaIV6Ejn71nq0FMS6dqOhNwS0gUZSQRFWWoOvWTdeHIspr2MhsHhl/ah62EfvGlyjDReasKpn5zCtSsdEe9R8//jwSO8EkFn8zA6m4exZftq7Ni/DtXry6HVKXcjFfo9W8Iuz/NwOp2wWCyYnReagGCxE6HIRfhYUHs13mmnFw8GbXjSO4ai4mKlmyPSOjiBFw9sQ0fffOhjlh16woTV7/eDExZVktxhPACnU96x1tDSj2eObsXNhi7Z97NBuvOO3X0ygMPP1eDetchrhsCxF+vwWVdmxLxMVrkNh+eBC82dePnUTnx9pTlr35sKNEVhW+0qfNST/jBvs82OD5tb8ebOuqyIeuEIY5hhGOTn50d1mEhdfVKnCcuycLvdIfdtAY1GE1XsU4OARMQs0gcAcegJ5IKgF2A5NHWO4fKd2PfAEzvWo/Grx1Hfr3/1AAbCxLwNm1di/+H1oKjsiFgURcW87sqJfYnk7JPLlSoIf6kURlJDQQxpO2iaVvUYJeQWRNAjKEo2Bb1M5tBL1Y0nh1TQS6WAg3FVKU798Di+/v3VpD4XDZ7j0X23C5tqVqG3I9JJJOR943gejExbu9tG0d02ilVVpdi6Yw3KVhajfKUBxSV5WZ14Cv2aabHM7/fDarXCYrGIY46iKJSUlMBkMqGgoCDqZ9Uq6FmcbjT1juK7xz1wOB2gafWFCTzsHsaxvZtw/WFXRnOnSfEH/PB5ffBLkxwzDHR6HbSahcW+cD7lhDOXxw+nz4eS4ryoITcZI0M/P5vDDTcFGErz4bBFCiS7D29Eg3U88462LOm6vgCLS+1dOHuqDpe+bc3Ol8oR53we3rcRF8zdsTdaBIM2G/705Cne3LkDK8MWdtki2j1F6jAJvwbzPC+GyMs5TAKBQNT5Q7RKvGoR+5YLxJ1G+kBA7cKmyxvAraZ+PGwdirldQZ4O/LgN9hn5h4F7nqvD8MwcRiViXl6eDidPb4dOrwnpB6X6IpbYByBugY5ouVLDxb5EqqCrLeRWaWGRsLQggh5hyZOpkNto+dCScePJIdx8F1ORdevBTWi/242BlvTkpjK3DeHkrnWQq4kYLESAuK6o8REbxkeCoV4UTWFzTSVqdq1B9YZy5BdEVkBMN5kUy3iex9zcHCwWCxyOhSIiOp1OdOMlYq1Xi6DHcjxmnC6MWZwYnbbDZCjE9ad9C/qICnLUhTNln8OmVaXI02kyKuTwPL9QiVNS5EKr1UKv16c0SXvYbsaL9dtx+UpLmlsbm0w62RqfDuDcqe24+smjkNcrqkrhW6XD+MBExr47iwY9kTmvH9/1DuD0M7W4ejM9KQ/SSUW5AbP5Abhm/PE3XgSjDif+0NiEv96zC2uKijL6XelCWBzKJSgXwujlxL5AICAuRF0uV9R9hot9qbhLYkHcaaQPANIHAmp26M15/LhwqwPdg1Nxt322thrX/3Bd9r0NO9bAr9fD3BUqCp59ZTeMZcEHFmruB4F4Yl+0Ah2xCiNFu/b65/MZKy2kqSX0l7C0IIIeYcmzWMdbOOl048khPNEKBAJgWTalm7EuT4vj3z8Ec/swuBi5OZLh/leNOPbaEdy+HhoaKObRS0Lk4TledO4VGfKx/+hmbNxaAdOKzC0AMxFyy7KsmBtPGjJgMBhgMplQWFiY1HhTUtBjOQ4T1jmYp2xoHRzH4MRCnq0VpYWor12HhrZ+AJmtHroYrj/pxYvH6nD5XvrDV6UTSOHoaYqCXq+HVqcDHeM8x/uN8ABuPOnFiePbcONW9nPKpTvkFgge04MWM/Yf34LGW0FXGKOhUXtsIz7pzM4xZnuc2ubceDA6ghP1W3HjjnIh1OFQAHbvrsZHvdmpqGzzePD+g0a8vXc3NpeWZuU7M4WQ40ma+1KA4zhZZ4nP5wu5Xgi5UaX7DF9sLqYiJBFySB8AuSHgZAO1OhXnPH5cvJ2YmLd6RTHGnpjBc5H3MONKA1bWrsXdhlC39YEjm7F+U7n4b7U40lJFLleqgCD2xauCHn7tBYLpT/x+f4S7L90PWqIhnBeSP4+QTshoIiiK1I2WKWiaXggL5biUnopkyo0XDamgl2pZ88rNFTj22kHc/PheWtrkdrrhGJmGwZgPh1USRjd//0v1HM463Lh+sRm3Lrdi75GN2LZjDSqqStJ+Y01nyK3b7YbFYoHNZhOPW6PRwGQywUyIEtAAACAASURBVGg0pnzOlBD0WI5D/7gVd9vN6BqZlt1myjaHzZXlKCnIg8PhUKNBD0DwWNqGJlC7rgK9o9b4H0gAochFICBNZMxAr9OnfJ7lmHV5MTRjx5aNFejuy6B7TUKmJ6/TlllsXrcCBUV6uGa9qH9hO77ozlzIpxqYsM+iXTOF+v0bcaexT+nmAAAO7FmPy8Ny/urM4WNZ/KGxCW/t2okd5WUZH2uZnENEg6Zp6PV6saiRFEHsk8vZF8tdIlSElMvZRxwd8ihx7tUIETUXcrYB6hKyXB4/LjV0oXMgvpgHAHsqyvHdpRsRr2t0Gux5cR++vRKa2mHFSgP2H1kPml4492rsh3SRrNjn9/vh8XjEXKpzc3NRH7TIufvSKfYRQY+QCchoIiwLpAJZMpPiTLvxYrUXWLybbOeJ7Wht6IJlLD3ixpNrzTj949O49u1CsvtUHHpysCyHh7d78LChByfP7UQgj0FJUR5MxgIYSwqg0y3ucrVYh140UbewsBAmkwkGg2HRN/xsFu5wun0YszjwoHMYncPxJ5l32wdx/nAt/nV8EvMx1lAktjEGFEWh0zyO7z+zD/2jVqQqi3I8D5/XG8zjIiySANFJk+zCeqEadGy6zJN4dt8WmIdn4PVlLudnNrn3uB/nnq/DcM8k2n0OBFSWHzITmGfsKM7TY+vGCnRlSZyNRmG+HlqjFnZbeookJQPH8/jXJ0/xlzvqsK9iZVaEBrWIGbHEPrlQskQqQgpVssNdfcL9Qi3Hnm2kQtZy7QNgaQs4iaLGseDyBnDxThc6+hO7F+zauAqdN+ULSp360QlcDhPzKJrC6Rd3oiAsdc1yDe2MJvaNjY3B6XSirKxMDMGVXoNjPWgBEDVXarL5UpfreSFkFiLoERQn0w49IPgkRBD04pFtN54c6RL0CksL8Nxbx/Dxf/0yHc0CeKDtRgu271qPtqfBiqIUFeyLtJ1DHrj1TSueeXkXPr0QrO5VXJSH2i2rsHJFMSorSlFuKkh6spaqQ8/r9YpuPGkyW0HUlVuwpUqmHHr+AAeHywv7nBuWWTfMkza0DozDn0Q4Ng/gfqcZJ3ZvwY0n3WrU88TmfPekB2cO1+DqveRCOwMsC998tVphNDPzi2idTpeWBUK8sP8bj3vw4olafJPFfHqZvP7yPNA/ZsGWg2twpzE7VWCzWeU2Gq0jk3iuZhOKJ+xwzmW52ImEg3vX44t+ZcN/P25phV6jwY7yMkXboRaiLTgF90i0nH0cx8Hj8cDjkR9Pbrcb4+PjEYvOpS7wEGcaxJzLwPLuB7WJmm5vAJcaOtGRxIOd1YwGN/onI14//aNncPNmV0QanROntqOyqiRie7X1hdII8/e8vDwUFhZGvC91VcuJfYLTT45oBToYhoHdbkdpaSlomg5xkBKHHiGdkNFEWBYkIpAp5caTI12CHgCs21mN3c/W4cl36am+ONY3gU37NkKjoREIcKAWGXIrB8ty6GwyY1dtFZ62j8A568H9pgEAAEUBu7avQc2WVahebYROl9hTrmTEMp7n4fj/2XvP4DjONM/zl2VR8IYACUd4R9CKRiIl0YiUaWmkNtsz6uid3hnNTcfGRVzsfJn+uPOhIy7uInq+3MRtbOz07szczE5va7eN1JIoUhRFSfQWBAnvvSNQAMq7zLwPhSpUAVVAeRSI/EUgAFRlZr2ZleZ9/+/zPH+TCaPRGBSWbzAYKCwsTJqom8i0YFGSmFww0z85z6OBScy2+CN0ni1ZKc/PIi/LgIycFsJJECsno93pYnbJzJ7iXGaemTZcJbDovSfgetNqNOj1+oR1ugQi8+qQJJk73aO8dLyWO/eTm7KZioFfVpaesqYiOu0L1JQUMDyXmGjhiNjiVLyvewb57sl9XE6x2YnvRNu9K5cZ1tcQSjUy8D/an/DB0SPbvqZeMgl04l1bJN4n9oWK6vNFlEiSFGTK5EOj0ayL6vP9fh7EH0XICu5/7eTjkE4ilt3p4YvbfXRHIeadPVBN28cP171+6rvHae+cwramH7e3eheth8pDbmu719BLNJsdj0hLKKxN5Q00R1q7zn/8j/+R4eFhdDodpaWlVFRUUFBQwO7du9m/fz9qtZrdu3en5Dv6xS9+gdlspqPD2x95//33ef/990Mu+8tf/pLx8XFycnIwm820trYmZFmF5KEIegpbTio6Hz6hxOMJTmNLh2i8UCRS0FOrVRz/zmF67g3gTICoA3Dn4/uc/slZvv6yOyCdMLGD5+kxI3trS8jI0OBwrH5vsgztnRO0d06wqyibxrrdFORlUpifSW6OgYwMDfoQ6bmRHFO3283i4iJGo9F/rgiC4Bd1QzlxJZJ4I/Q8osQzk5WpeTMdIzMMTi8ksnkA3HgywHuvHOTLx0Ok27jB1xwZmfbhab5zvDmsoCdJEk6XC3dAWq1KENDqdOh1uoRf937najYPbFxYsmIqzqeiNJ+J6aVNlo6fZEXo6XQaTp1t5MNRbwfyrdpG5patWJ2hU1oSRpqclzJwqbOPN860cOWb5Dvfrt3t/a3l/H40dOpWqpFkmX9ua+d/O/YCVTk5Cd/+815HLVDsW8vy8jKzs7MYDAZycnLWDTo9Hg8ejyeoj+MjnBPvdhL7FEEvfY0gUk26nAvzSzYu3eplLIpyN5kZWqRZE+alYMfso28cZHzewrO54L5MTp6B82/tR68PPZRXUjuDied4RCL2rRX8nE4n8/PeutQul4vR0VFGR0fXra/T6di7dy9VVVVUVVWxd+9eqqur2bt3L6WlpQm5pj/44AN+/vOfU1lZCcCtW7f44IMPuHnzJn/3d38XtOzf/M3fAPDzn//c/9p/+A//gbGxMX72s5/FvKxCclEEPYUdga8T7BNz0ikaLxSJFPQACvbk89YH5/j4P11KyPY8bg9D9/upbdxNd8cYkJwB1f1vezn73mEuXQ89GJ5fsDC/YAl6LUOvJT8/kz0luZTvyadsTz5FBYawYpksy1itVoxGY1B0g16vp7CwkPz8/JR1iCIV9JwekQWTlQWTHYfbjdst4XR76BmbY3rRnNQ2yoLA7Y4hTu2r5k7PWFI/K2r84aLeX3e6R3n5cA03Hw/7F/F4PDidTtwB4r5arfKbXCR9ICDLRKKEtvdP8uaLTSkR9BJF4LFTqwTOXWjxi3kAl4f6+MGR/XxyJzVuq+kg8TjcHtqmZzh+qJr77SMp+9zGmt08Nq1P29pK3KLIPz9q4y+PHaM0KzMpn7HVA/mtRKvVkr8mAjIwAnnt78DIEpvNtm57oYw5tFptytwgIyVdRJytxNdn2MnHALY+Qk+SZPrGF/j0m05c7uj67+da9vLNPwUbYRx8tZlFl8TYSLBhmaAS+Iv//TwqVfi+4lYfi3QjsGROItlI7PvVr37FtWvXGBsbY3x8nImJCWZmZoLGdi6Xi4GBAQYGBtatf+TIEX71q1/F9R3+4he/4K//+q/9Yh7AqVOneP/99/nwww+5dOkSb731FuAV+j788EPu378ftI2f/exnXLhwgR/96EdBomCkyyokH0XQU9hyUhmhZ7FYWFpaSqtovFAkWtADqDtaw4l3XuDeZ48Ssr2Rp6Ocaa2kT+VtqywlfvgsSTKd94Z5YX8ljzrGI1rH4XQzM7vMzOwyj5+OIwDVVbuoLMtHhYAuQ4VHlAAZ07IJk2kZm83m7/zk5uZSWFhIVlZWyjvH4QQ9SZZZMNmYWjAzOb9M59hsQlJoY0EQYGbRxGEBMnUabGlk3rCq53nPxUWLHZcskZul45nR7K2F4hv4sFL3RK9Hk8IZ7GiukhtPRnj1VCPXbyWnBlqiz+/AgfW511r47URXkDGJDHw22MM7x1r47EHyI9bShXHjMiXV2VSUFjCRIIOijVCpBPbWFfFgIP2Osc3t4V8eP+bPXzhCSZIjnhW816Iv1XYt4SJLfFF9vrTecG6Q4Zx4U/3cVAQ9JULPx1aKWDaHm1tPxrj3dH0U1mbUlRcx9mA4qD5e47E63IYMBjsn1y3/Z//+NWRENgpHVwS9VbbK/bi0tJQf//jH/v/NZjOTk5PMz8+j1+uZnp5mbGzMH703Pj4elLrb3d2N1WolJ46o9tu3b3P58mX+8R//MUhge+utt/jwww+5ePGiX9C7dOkSlZWV5ObmBm3Dt96lS5f46U9/GvWyCslHEfQUnnvsdru/Q2o2e6OX0ikaLxTJEPTUahXH3zrMZP80k33TCdnm7T/c48wPT/HZx/cTnnLrY25qib11JWRl6rDaok/Vk4Hh0XkGhmexmC0IKoGiwlxkSURAQBBgd0kepXvyKS7MQ9BkI6gSY4AQCaIkYTTZMZpsOFweZpYlPKKHhcfDSLKMWq1CVgl8+agvLSKOfB3Imx1D/NHJVi7ei854Irn4HJe9/0mSyNePennnxX18dLUN8KbV6nQ6dHo9qhQOAAVB8DYsikhWq93JosPOroJs5hctm68QI4mOrn355QauLA7jChFp6vB4uDM7zqv7arjeNRxi7QSSHhcMAA9HJnlzfwPGRSs2R3JTjk8erePS2PrZ/nRh0e7gv9x7wI8OHaA+L29HCzGJIFZBK9KaUWvFvo3cIFUq1YZiXzJQBD3lGPjYKhFrZsHKxRtdzMzHliHRnJfDtfbH/v9rWivI2FNAe9t6cfD1d4+g16tRqzb+rpUaeqsEnhdbeY2IoohKpaKkpIQDBw6sm2gRRZGZmRlGR0eZmJigpaUlLjHPx/j4OOPj40GCXl6e10hlYmLC/9qtW7fWCXQ+cnNz+fzzz/0iXTTLKiQfRdBT2HKScXMNVxtPrVazZ8+etIrGC0UyBD2AzFwDr//kDL/6v36PKwERXi6bi8mOUaprdzM+Or/5CjHy8EY/Z987xKUbsdWDkpHxuL2RZLIkMz+/DHhTsXV6HeNTZsanzMD4yusqaqqKaawrwSlLWB3eyC5J8qZLCoBWoyY3S09+joG8bAMCMh5RwiPJOJxuLDYnFrsLu8OFVuut66fXqJHxnp+SDBabk97ROWaNq53A5eVlZCAvN9d/bZx+oR6tRoPLs/XRcL7LVZJk+icXqC8rYmAq8bX6YmG1bSJWiwWP6D1e158OcP7FFu48HUWr1W5R42Jbra13ku+81MyXV1OTphovRw5X0YWRRWd4Z9dpi4ldhkxaKkronkh8WmjambWs8EVnP++9so8vv+ogwUbWfgryMpHzVNgmQrvxpQs2t5t/fPCIt5sbOVFaii5OsWcnCxrJKHexkdgXyonX97ckSTidTpzO9f0L1YpjeCiDjnj6Yzv5u/ehRGN52YrjMDS5yG+utK9kfkTPawdreBhghFFas5ui5gru3xlct2zT/nIq9haSmbn58F2pobdKstJtY20HhG6LWq2mvLyc8vLQRiex8E//9E+Mj4/T2toa9Pr4uHe8s3///qDXTp06FXI7eXl5/nWiXVYh+SiCnsJzRbjaeFlZWZjNZgwGAwUFBVvcys1JlqAHULy3iLf/4jU++n8/T8j2+u8P8PKfnGJs5FlCthcKWZZ5cnuQYwf38uBJ5HXbvMYHTm8kQcCYR6/XbziI8Hgk+gdnGRic5cL5Vr5tW9+xShahzBNuPh7kwkvNXHyw9QXufWKJjEz/5DxvHmtKC0FPliXcK6Lt6nUjoNNpsXtA1mjYsyuPheX1taJSwepxi5673eO8eLSWuw8T63qb6AFwdXUx5iKJwTnjpss+fTbDGzUNDM8YcSRJqE5W1HCsyDJ83tHL2+f2c/lqcpxvTx5v4HcD3WkZeb4WGfisp4/xpWXeaqinIIR4pBA5qRK01Go1arV63TnmS2sLFdXncrmQJAmHw4HDsV7sV6vVYWv2bSbOKIKecgx8pLKWoCzLdI/M84drHX5jrWgpK87F3DeDadGbRVS4O5eaF+u5eX19mY2C4mxeerWZ/LzI7pOKyLtKukQr+tohCELK2pKbm7tOzAO4ePEigN+RNpRD+trt+ES6aJZVSA2KoKew5cT74A0XjWcwGCgsLCQvLw+Hw4HZbE6KQJYMkinoAdS+UM2L77zA3QTU0xMEgRu/vcG5Pz7Nw7vJM0lYmDNT31qOVqPC7dl4JjSw6LcPtVrtP56RDnZl4FHbCCf3V3O7YyTWpsdGgHmCKMl0DkzzQl0ZjwanUtuOtQjBaa13ekY5vb+GbzuSnD4ZBlEUvSYXbjercplARkYGOt1q6vT9vnHePt7C5ZtbHOkWQ8ffuGxFrCwmO0uPxZr42omJiPDJNOjY21rMR6M9EbsffzkywPePtvLJ3QR/J2k8pnV5RK71D/Haq818dT2xAn1DzW46zOllhBEJT2ZmmTSZ+dHB/VRkZ291c7Yd6SLmCIKAWq3GYDCsc4SXZdmfqrs2qs+Xxmu320M68Wo0mpBRfT4To3TZ/61EMcXwkioRS5Rk2vumuXQzvnv4keJCrl2+DsCusnyazx7g+jfrt5lh0PLWe0fJz4s8w0AR9FZJl2jFwEjBrbxWOzs7uXz5Mn/5l3/pF/uWl72ZS5Gk+EazrEJqUAQ9hW2Lw+HAaDRG5FTru4l70iBlMRKSLeip1SqOf+cwU4MzjPfEJxAJgoBl2cb84BS7S/OZTaIr54PrfZx9+yBXQnSiJFnC5fQOEgIFCt8gQK1W+x9CMnLEaXkLRis1Ton8bD1LluQbUfhqra0VWSbmlqgpLyJDp8GxhUYU/k7ISvuWLQ4kWU5tu1acG50u57oUBlEUva61IaJ9bnYOc+ZYPd882IL6YmsMO6LlTucI33mphStXOxPYqMTx8ulG/sdodFFnkixza2qMk01V3O6NvpD4dmXZ5qB9dpaXjtZyJ0FRl1qNmtrGEv77k4dbl1YeBws2G//twSP+/IUjVOUqg4TnDUEQ0Gg0aDTrhx2yLPtNOMIZdHg8npBiX2AEn8fjwWq1otVqU+NYnkYophheUnEc3B6Jux3jfPswvsyNN47UcefXtwHYXbWLupNNIcU8QSVw4d0j5OREl5qeLlFp6UC6pdxudTv+6q/+ivfff5+f/exn/td8NfXCERiVF82yCqlBucoVtpxoOl2SJLG4uMjg4CADAwMYjUYkScJgMFBeXk5zczNlZWXrIrB8ncjtEqHnewCLopiU+jgAhhwD5//taXQZcQ7+Vr6/tmtPaG4sTkDLwiN6JKYG5qgsW02b9ng8WG1WzCYzTqcTWZZRqVRkGDLIzc3FYDD4H56CP7osumP6oG2El1trE7cjG+BvY4j3brYPceFwQ0raEQ7f1RrYvltdo5w7XJ/0z5ZXUrZMZjM2uw1R9Bqb6HV6cnJyMBgy1zcugGWbg0WrnbLijTsjyUBYVfRiQpahbWCSwwcqN1840jYlaMB74ngNl+djG9xMW0x4dBJF2TvL8XTCuMysx0ZrY1lCtvfqSw38vn971FkMh8Pj4R8ePmI4hsHATo7S2u777nPNzcrKIj8/n5KSEsrLy6mpqaGhoYHq6mrKy8spLi4mLy+PzMxMf5/O7Xb76/W5XC4mJycZGRmhv7+f4eFhJicnefbsGUtLS9hsNtxud9L6VFvJdj8HEkWyo9KcbpFrDwbjFvMqS/KYfzqB3eqkvHY31ScaQ6bZArx4uom8PANZmdH11dMlKi0dSBdx09eOUBMbqeJv/uZvOHXqFD//+c+DXvcZXPjMI9eyvLzsXyaaZRVSgyLoKaQFm3VCHA4HU1NT9PT0MDk5id1uR6VSUVhYSH19PXV1dRQUFIS9WftelyTJ/5BLZ1QqVVCbk0Xx3iLO/+npuLYhsPr93frtbV4915SAloVnoGuK5spinE4nZrMZq9XqN7zQarVkZWeRk5ODXqdfd16tRpdF/7n3Hw7zysEUiHr+ALj137skybT3TXK0PnEFc6NmTYQeeCOthqbmqS0tTMIHeqM3bFYrJrMJp9OBLEuoVN7UrtzcXDIMBlQqdcAa4WkbnGJ/Y2kS2rkJCRhoTc+byMjRk5GRPsH1DfW7mct2shSiCH6k3JwY5aXW6sQ1ykeaj9u7JudQ5WuprdwV13aa60vptC/g2QbPts1wiSL/+OARgyvR1Aqb8zyLOcKKK3lWVhYFBQXs3r2biooKamtrqa+vp6qqivz8fMD7/DcYDEFin9VqZXFxkbm5OSYmJhgeHmZgYICRkRGmpqZ49uwZy8vL2Gw2PB7PthX7lPRKL8k8Diark89u9PCgM/7aYAeLC+i5N0BlUxmlR2q5c6s/5HKVtcU0NpdRUpwV1fZ99SxBOScgfcRNXzu2StD75S9/SU5Ozjoxz0dubq4/kykUgS650SyrkHyUq1whbYk1Gi8UvtousD2j9JJJ04t1NB6ri2sbvoGEzWJn4skwNQ0liWhaELJP2LHZuHnlMScO7kWSJASVgD5DT25urnfmXr3Bg9KvRUXfaV9csuGyuCjMzYxxDyJDEFZuy2GaODW3TLZOR6ZuazoEQpjU0d6JeRrLExihKcu4XE4sZgtWqwW3x+vaqdVoycrKJicnG51OHySUrU0HDse3T4Y4dzy1kY6rkY3xDRhvPhnm1VcSL5rHck1UVhaiq8nk0bPpuD//6sgAryco+jRdXW5DcW9onPyKHCrLYhPDs7L0FFfl0r+QPJfxVOOWJP7pYRv9S8kr36Cw/VnrxGswGKisrAwS+0pLS9m1a5d34icjA7VajSzLuFwuLBYLi4uLzM7OMjExwdDQEIODg4yOjjI9Pc38/Dwmkwm73Z72/cbnWdSNhmSJWLNGK7/+op2eodm4t3Vq314eX26nel85xS2V3L8TugSI3qDl7fdeoKgweoOjwPNhp58TkD6prlvZjkuXLrG0tBSUZgvwi1/8wv/3yZMnw6bLmkwmTp48GdOyCsknfab5FXY0gYWNo6mNFw0ajQZRFBFFcVvUGNJoNHg8nqR3JLU6LS9//wQjHWO4HO6YtuEXK2SZwbZhTv/Jy4wPq/BsYl4RCbIs43K7cDldiJL3WCzMu2gVBQqLchE9kXdWVIIKCSnmWfi2J2O8/lorF+91x7R+JAQey3Dcah/mzVMtfHo/ee0Ih9+tNUTz7vaMxW2QIUniai1EVjulOp0evU6HsEFHPVLRzOp0s2x3kpetZzkFdRGDiDMARJJlHvSMc+xINQ/aRhLSpFjYXZzL7tYCvphITA04k8vJuM1E/Z4iBmbidE2Os15hqrnZP8rpphpEUWRqNrrItFPH6vjtYOrvA8nGsyLq/enhQzQXFiiD0g3Y6WJOqP1fK/YFIopiyFp9Pidep9PpT+MNRKVShXXi3WqhQInG8pJocxBZlhkYX+Sja09xe+Lvi2foNOgWbeQU5ZBfX87D++Gfnx/8+/PoYzQrT5cU03QhHQS9wKjJVEfodXZ28vTp03VinslkCkqb/dGPfsQHH3yAyWQKSpnt7PTWbn777bdjWlYh+SiCnkJa4IvG28ipNt4HkxKhF55dFYWc/9PTfP5fr8a0vqASQFrtWN/6/V3O/OQM176M3QFMFEWcLhfudcKODp1OT8f9US68e4jLN6L4jAQM9O89GOL0oVq+bU+MkLGWSOr8SbJMz/AMLZUldI+n2NVygyjHRYsdlyiSm6nHZItGKJPxuD04Xc51zsR6nd4rwEfSQY8ipfpB3zhvn2jh0o3U1B2LtX5jKOYWLVSXFpKfa2DJtL5QfLTtirZNhYVZ1B8r5ZPx4Jo/K34uMfPk2TTv1DczNr+Ma5sYGCWKb3uHea2lDpdbZN5oiWid5vo9tJnijxhJVyRZ5l/aHvPevmaO79mDeoM+wE4WtXbyvkP0+69Wq1Gr1esmh30D7lBOvD6xz+Fw4HA4Qm4znNiXClFlp58DPhIpbLo8Io+6p/jqXuh02Fh4rbWKjs/bqX+lhds3w2/3x39xGq0u9v1IlxTTdCEdBO/A8kmpFPTGx8f58z//c/bv388HH3zgf315eZnx8XH++q//2v/aqVOnePPNN/nbv/3boLTcv/3bvw1yxI12WYXkowh6CmnB6Oiof5YgEdF4odhugl6q29v0Yh2DbSP0xVDsd61Y4XF76L3RTeuhSjrbJyLejizLuD1uXE4XHnF1QK9Ra/ydY99nSZLMSNc0dVW7GByNLN1sNbosdtVh2WTHY/eQbdBhsbti3k5YIuyQD08ZOf9iU8oFvc3SGe92j/H2iy18dnfzqCFf6pPL5Qzo7HgLpOv1+qg7o6EMO8J+NvBkeIoD9aU8HYg/ZTTV3Osa4+0Eut7KshzRYHBXUTZNJyr4ZLw3xDbib8elwV6+d3Qfn0Rw/oRjuw5pv+oe5I0DDTxpG2N5E6FWo1ZRXlPIvf7nLzovEBn4uKsHo83Bueq9GLawmLhCepIoMctXmsVgMGAwBJv0yLKMKIphnXhFUcRut4d04tVoNOuEvrX9mXhJB8EiHUiUy63J6uLagwE6B2YS0SwA6sqLmH06zv4LB7l2NfxE4ut/dIT8AgMaTez7oJwPwaRDhF7gWC6VWWJ/9Vd/hclk4tatWyHfX1vr7u/+7u/45S9/yS9+8Qvy8/N5+vQpb731Fu+///66daNZViG5KD0jhbQgPz8fj8eTsGi8UPhu5J5tEvmRakFPq9Py8g9OMNwxhtsZXeptKKFsom+KiuZyMjN12GwbC1+iJOFemQ2XVswgBAS0Oh16nS7sQ3ikf5bTbx+MXNBLUJTUg7YRLry2j4t3Y49ADEckKbc+7jwZ5tyhOq61x+e4FhWbHEMZaBuY4FhjBQ/6Qou53oGRE5fLjU9+UwkqdHrvQMdfRzDqtgW2QmYzaWf82TJNL5SgGpgm6XYCSYicuNkxzCsnG7hxO3ERBBtRvCubhuPlwWKeDB5RxOl04na7UQkCwoqpz9qfSA6BKMt8PT7MuQN1XHuawvM6Tfiis5+3jzVx99YgNkf4++bJY3V8MrheVH1euT4ygtFu548aG8jX67a6OWnFTo/OSnSaZSgEQUCj0YSMrJFlb33fcGKfvcKNHwAAIABJREFUx+PB4/GEFPu0Wm3IqL5oxb6dfg74iFfIkmWZ0RkTn13vZNm8PhIzHppys9EWF3LlSkfYZQ4eraKuYTd6fXxjIEXQCyYdBL3AsWcqI/R+97vfRb3OT3/606Qsq5A8FEFPIS3wCXnJxHcDVSL0wrOropALP4k+9TacGcHdTx9w/s9f46sQqbfySpqly+XyGx4AqFVq/wx2JJ3TB9/2cvbVRr6OIC0iHpfbQGQZevtmaK4uoWcksRFy0YiOVrsLh81NtkGLxR5b/cNoEVYVx7DLTC2YaSgvRqfRBKROyrjdbpxOF+La6Eu9Hq1WQ/yxVcLKj4wsR6ah3Xg6zLkXm7h6N7niSDRCbaQsWxws2OyU78lncia5BgIF+Vk0Hl+NzJNlcLtdK9/n6j1KkmVYqVW6Fq+wJ6BSqVd+q1Cp1CuFu1eXW7DbmHSaaC4voWcyhusrQdf5VnHpaR/vvdLC5S9DD/z2FOdh1DieC1fbaOicnWXRbuNP9reyOzO55kTbie3qzJootlrMEgTBL8KtRZa9z721Kbxrf2w227p110bz+X5rNJp1+5oKUXM7EI+QZXd6eNA1yfVHiZ9IeqW1CkOmgS+/6ECWQl+vZXuLOHW6BYMhfhFOqaEXTDoInFsVoaewM1AEPYW0IBWdECXlNjJiSb0NJ0LJkszjLx5z+EQzjx+MACDJ3ho1LudqNJ43zVKDXqdHrVFH5VJpszgxzZooLsrm2cImtaficLldy9i4kXM1zckT9CJc/n7XKG+eauGz+4mPFgyFPxpzkxbe6BjhzWONfHa3C5fThdPlQl4bfanXoVIldsZ0tY7b5hF6AA63h3mzlcLcTIym9YOqxLUruu81Up4MTPHmi81MzyzFFGXoq6G30TWh1ag5eqqG/znWiSR53Ye9168vutL7fWq1WpBlpJVaVKF/AILvaYLgjdBUqVSo1CpUgor26SnerG9iYmEJywaRas8jkixzpbuf18/s48o361OzDhyo4LdD61/fCYP5KZOZ/3LvAT88sJ/mwgJUCaxNud3ZCd9/KLZa0NuI1bq/OrKysoLekyQpSOxbG9Xne89qta7b5tqoPl/0Tzoeg1QSq3AzPW/h8q0epp6Fdu2MB51WQ31pEZ9/2obLFTpDqKgkh3d/cCwhYh4oNfQC8aXLw9Yej62qoaewM1DOKIW0IJWCnpJyuzFanZaX/80JRrsncEZobLBRVNn8xAL1L7hQqcBsseJ2ewiVZqmKNc0S6Hw0yrl3D3Hp1sZRVok0JgC492CYc0frudY2kJDtAYGhXBEtLsvQPTRL694SOsdSUE/Pfww3bBUul4sng+PsLcyiY8TbSVap1Oh1OrQRRl/G2ECiidADeDQwyTvHm7l0MwX1yJIgPHz9aIBzZ1u4+nVy2n/mXBO/HnqCw+nE5Q6IplWr0et1aLXeFEhZlpBlAY0AENxxlmWQV0Q9UZL8f0uShCTLiLL3dQJuz79/+pgfHzjC724+CZ3Cu4lgu11cbkNhdbp5ND3NicPV3Hs84n/9YEsFN+fGtq5haYDd4+Ff2h5zpqaaV/ZWkh0Q7bATBY10FrRSwXbd/42ceH1iX6g0Xl8tP5dr/UTH7Owsi4uLIQ06nndxJ3BiKtJzQRQlng7OcflmN2KYyLl4+cGrrXz9VRem5dB1UXPzM/n+j04mTMyD9IhISxcCo1e38h6xVSm3CjsD5YxS2DEoKbeRs6u8kDc/OMcf/tOliJYPG6Eny7jcbr76n99y/oPzXL7YDoBW4+1garSaqKLxNuLRzX5OHavl1sPw7rOrUVKJ6bhZbU7sZie5WXpM1mhcXcMTi3HH6LSR8yeaUiLorfaHQrRv5ft2OZ2IkkjnkIU/OnmAvol5tHrdyjWY3A5VcIRe5LQNTXK4qZzHvZNJaVcycbo9dI7OcvhAJY+fjidsu7Isc+JEDR9NdGCyrEa/+kxLNGp1QNQrq3+E6DQLAghqbwTe2o6HLMlIcmAUn4wkiUiSxGf93bxzbB9/uPt03Tb9UX1BP0JS6hVuBRPGZXZlZ1K7dxdDY/PotBoKy3OYGdh+52gy+GZ4hCHjIt/b17zVTdlSdnp04nYV9DZiI7FPFMV1Ip/FYvELWk6nE6dzfX9EpVKFdeJ9HsS+aIUbl1vkZvsot9tHktamt0/vo+vxOLPToUti6PQafvinp8jKVCX0/FUEvVXSJVoxcCynfC8KiUYR9BTSAiXldj1b3d76o9UcuXCAti/XD6TXslbQC5xB9g01hu7303qgmrERI+okPMyWjTZEk5O83AyWTaGLGSc6Qg/g0eNRr0HGvcSkvMYqOt55Osxrh+r4KskGGauC4+prkiStmFy4ggZXOp2Oe32TvHf6CFce9iW1XYEtXNu+SJhaMNNQVkxmhm5DM4KYW5Xk1MDxuSVKd+VSVJjFgtG6+Qpr2hWIb1C4b18ZXZ455swWf1qtN006sdevoBJQo17X4ZZl8MgyvZZFzh5s4lbPcHD6riwhidLaDN6g/XA4HWuMOYSETSKkgsdj05zfV8fsvJljh6r4dCA1qfXbhfHlZf7z3fu8WbWX3Tt8kPQ8CVrRkChn0+2CWu29V2ZkZPhfGxsbw+FwUFZWhlqtXlezz+VyIUkSDocDh2N9/0itVocV+7bLcY1GxLLa3Vy9N0BHEh3u3zq7D9nkpr97KvQCAvzkp+fIzFQn/BgrNfRWSYd027Xt2Kn3aoXkoQh6CjsGJeU2+s9/6Z0XGOueYGFyceOFVx5OoiRhsVjwBLRZo1aj0+uY6Z/j3IlmJseSV7z/8d1Bzr17JGzqpH8gn0BNRQZ6eqdprd1D59BM/BuMsaC/1e7CanWRm6nHFGGqdEwECFMej9fkwrPW1ESvR6fVgiDg9EhMPFuirrSQwWlj8toV3LyYUlu/7RjineMtfH5jfX2yuElB/+1e1xhvvdTCtaudUdfT89WZ8bnVNjWWYi+Grpk5Mg2GlTTppDQ7LILgFSlGzUvs2pPF/qoKBma8jtYyMrI/fVdeSeUV/dF+PtampQmCsD6qT/BGDqar0PdV1yDff3U/45bY6iQ+73gkiV8/ecq7LU1Ub3VjtoDnMUItGnb6/sOqmOWLnjYYDEHv++7v4Zx4RVHEbreHdOLVaDTrhD7f3+l0zCMVdhctTi5+28Xo9Cb92hjRqFS8/to+tG6Zr77oDLvcv/vLcxgMajSaxItu6RKVlg6ki7jp+06UdFuFZKCcVQppQSo6BUrKbfRkF2bzxp+d5df/90dhnbkkScK9MmiWJAkJr3bh6/QFdijufvKAl7/3Eje/SVK0lgxP7gxw/FAV99tH172drCip8clFztSW0M1M3APueNxQH3aN8capFi4+SGYUjz+3MqBYt7dIt16nQ61Rs1a96h6b441jjQzPGkm+MWfsadWyDDe7hjlztJ5vHiawLiKBZiLJ5drDfs6d28fVa9GJkna73d/h3FtZRH5zAd/OjJGTnRORGOmtXJg8Hs5McqGmjnmzhSWrAwEBQaUOaaoiyd6JBQC9Xu+9L4neiD7fwDakC6+g8kYLqrwRE96/VQgR1OtLJiqVClEvsScrB/2sBuc2mZRKNZ9096LNMHC6ai+aNBIako2ScqsIepsdA0EQ0Gg0IcUE7+ScJ2RUn8+gw+PxhBT7fO6+a6P6tkLsiyRCb27Rxu+uPsG4nBwDrOxMHS+fauCZyczCozlEMXSH57t/fIKCIgPJ0piUlNtV0kXcTJdIQYXnE0XQU0gbfG6LySJQIJNlOe07f+kg6AFUNJVx9v1TXPsfN/2vyRAQnRU8uDQYDOjCdObsZjvLE88oKMpmcTNH2hhZmDNT6wFDhha7wx30XjLTHu/cG+T8yUauPIhPrIynjTLwuGeCE40V3OubiKsda5EkEafT5RdvAQRBhV6nQ6fXIWxiavJN+yBvHG3i0v2NjUviZTVCL7b1Fy0OZkwW6ip2MTgxn7B2+Uny4Nvp9tAxMsORg5W0PQlfT0+WZX+BdVjt9NZU76b+eAWXpgbRaNOri/Dl8CDf29/KF/d78WygDPuuIQEBvW61BpWMt8ZUWAde2Zu+G1LsC2HKkaoU3tcO1vHxdDuiLPPewQN82TGEJURBfB87WeD5on8ApyjyWnUV+h02cEr3Pk2yUAS94Ppx0eJzzdVqtWRmZga9J8tyWCfewB+bbb1AFi6qT6PRJOW72kjE8sgyM0Yr/+vzR9idyZkQKdudS0NLKV/3D3FCt4uZMJktJ041UF1XjEqVvPu0Iuitki5Cmq8dSoSeQjJQziqFHYMv1co3eNvqm/tm+NonSdKWC5AHzuxjtGuCgccj3hlcpxPJ14kGNFoNbrcHAdDrdBtu68m1Di588BpfXU2esPPgRh9n3zvMpetrUm/9BfwT35FyOj3MTi9TUZLPxFzsacXxio6zRjMNe4vJ0GlwuOLtuMq43R5cTicecf22cnKyNxXyfDjdIgOT8+yrKqFrNJnmHfEbn3SNznLhSAPjM0u4EhUN5c+kTr7YMjG3RNmuXArzMzEuBQ+0wjkk6nQ69rdWkVOfw6Wp5NZhjIdPB7r53olW/nAnfCqTj7XHWsBbLF2lVq014fWn8EpSCMEvwLBjLYIg+FN2/em7qsSl8LZWljAkPcO18tkfjT7hnX2t3O2bZD7EIFoBvh0ewenx8GZdLYYdMHja6YLWTt9/SF4dQV8tXJ1OR1ZWVtB7PifeUGKfL+LP7XaH3GaoqD5fRkes32M4EWvKaqXfaGSufzmpYl5lQzGXOvv4YX0TX338OORyxbvzePVcC5Kc3CjrdEkzTQfS5VgoKbcKyUQ5qxTShmRH6IFXJJMkCY/Hk/aCXqAAKYrilj0EZFnGI7k5+EYL3Q97cTi89dlUguCtlabTIQgCy8vLyHgDozbrjrVffcKho420P1yfFpuQNksynXeH1qXexuIgGw3dvdOcP9eSGEEvjnbcfjLMhZeaY069lWVpRbh1BdQjE9DptOh0eqxWK7IsRfZlBzAwtcBrR+rpG5/fMMIqHvyDgTi/4mvtA3znpeaE1dNLRv3GjbjXNcZ3Xmrhy6te4cvj8eB0OoMiajUajT8F9djROuy7VXw1Fd4lenOSnXjrrZd2Zbift15o4tKjxE0KrKbwrn9PJnxUnyzLiLKIKK2P6vPdw9UqNYLK93fkKby5mXpKy3O4OL16DsrAp+OdvFHfTM/YPONLpnh2+7nl7vgEtSUFFGcZKNVlb3VzFJKIIuhtzTHYyInXJ/aFqtkXblIJVgXEtVF9a8u3hGKtoGdyu3k4Pc2VgUG+v7eZ/uHkTCTuKsymuqGEq72DnKutpu36QMjHoFqj4k//4nTSxTxInzTTdCAdjoWvn7XV7VB4flEEPYUdhUaj8RcA3g74BMitEPREUWRpaQmj0YjT6RXxLvzZGS79/Vfo9Do0Gm3QkNQ/lJflgLzH0Dwbm6f2UA2Z2XpsluQYOMxNL1NRWxzkepuKzu7d+8OcPVLP122x12DzHctYIzNFSaZ7aIb9VbvpGJ2NfL0AUwRfj1SlUqHTrQq34P16ZdkrdETbum+fDPH6sUY+T5ArcDjijYQTJZm7fWOcPFjN7Scj8TdoCwabtztHOHZkL9e+7QyKLgusb2mz2Th2tIbJXCtDz7aHOLTscvDEOMOxugoeDK5PLQ8Uy7znaHzHXsBbV08dol6fLMuIkrgq8AUYdWxYry+CFN6zB2r5zXToSI8vJns4U16PWlAxspg8o6HtyomqCq7MdrHkcvBWRTOH88vIUmm3ullJYacLWsr+y2l3DDYS+0RRDCv2SZKE0+n09znXbjOcE6+vr+xbrnNhgU96ellyODhTWc2jJ2NJ2c/8nAz2HSjjclc/u7INCLPO0OVkBPjL/+MNZDwpqceqpNyukg5CWmD/S6t9Pp9DCluLIugppA2p6IikS126SFGr1SkXIO12O0ajkeXl5aAQ8YKCAhoa8vFYRG5//GDder4Iy0hFqHufPuD8B+f46svkpd4+ujXAa+8e5vObAeLRilqWrDRmi8WBbdlOYW4mRlNsKXH+Y0ns5qhjM4ucq2yga3x2YyOKlRo5Tpcz6DzTaLwmF946asGtWI10jL5dHlGic2SGw3WlPB6cjn4Dm5CoCD2AZ0tWqooLKMrLZCHOItqrpf2SH6InShIup5Pl5WUqd2WTm61n2exArw8WZgEOH65iMstKv3EZ3Sbp8unEyPIiVXvzycvUs5xMV+dNEAQBjVoTOoVXlr1mHL60XTGCFF68kXxnDtRzebYDj8eNIKyKfYF8MzPA6xVNmBwOjHZHMndzW6HXaNidn8n9Ke81+9l4Fw/nx3m7Yh+1mQWo0tTNOFbSTcxJNcr+r+7/djgGarUatVpNRkbGuvfCOfH6xD6Hw4HDsf5e50vVlXU6rs/NcWdqyisAajTkuDQsLFrXrRMvuVl6jhyt5mKntw97Zncl1z5uX7ecoBL4wY9PolbLEZcoiQdfnVhQBD1Ij5TbwGe9knKrkAyUK11hR+ET9NYaOaQrqRIgJUliaWmJwcFBBgcHWVxcRJIksrKyqKyspLGxkd27d6PX6zn25mFqDuxdt41oa7/Jsszt393hlbONCd2X4A+BB9f7ePVYnf+lZBpj+Gh7Ms5LzeuPUdTE2cYbbUO8caQp9KZXOscmswmb3YYoin4TgZycHLKystBotYSUFFeteGNq19jcErlZBnRJ6NgkWjh70D/Bsf1VCdkWkNSMVI/Hg9VqxWw243S5kIE7T4c5e+4Qubm56PX6oAFfU+MezEUS7XMzKUsFTiTfjA3z6oHakO9tpSut7/NVggqNRoNOpyNDn0FmZibZ2dn+68tgMKDX6/0RJoIgICOzJz8Hd6aLKdMidrsDm82GxWLBYrFgs9lwOBy4XF5DossT3bzctJcMZZDg52x9DRenOoJem7Gb+Yf+u3w23YNFDG8oorD92OmC3vMk3qjVagwGA7m5uezatYvS0lKqqqqor6+ntraWiooKdu/eTUFBAdnZ2f4JKlEUsWs0fDI2xrXBIex2B1arjfOlVVy93rHuvilJYlx9hMwMHcdfrOXzFTHvbG2VN9V2DSqVwMsXWsnM0qHXpyZCLNAgZadeE4GkQ8pt8GS58qxWSDzb/+6v8NyQigeP70a6nSL0gJCRHInA6XQyMzNDb28vExMT2O12VCoVhYWF1NfXU1NTQ15eXlBHMSNLz7kfv0J2fnCB5FiEMuuSjfHHwzS0lCZmh0JgWrRhfWZmT0keEBBdlmQF42HbKCf3V8e0bqJER7dHZGzKSO2ewpVXZDweDzarFZPZhNPpQJZl1KrVTnSGwYAqRGphUPsScAxvdoxw/oX6mNcPSwIj9Hzc7R3j1KGa+DaSJCHZ51ZrNpuxWK24PV5zGp1WS052NlnZ2Tzsn+DEseD219QUQ6WOB3OT3u0ktFWp48uRAd44nMRJgSTgS+HVarTodXoMGQayMrPIyc4hLyeX0y80cHtxFJ1Oh0ajQa323n99Kbxutxun04ndbsdqtfLr7ju83lLtn6jy1YlN1nMjnSnNzcGssiKFOaNvz43wryNtzLmfH0ORnS5oKfv//O+/IAhoNBoyMzPJy8ujuLiYsrIyqqurqaurQyoq4r939zBsXEStVqHRqMnN0GOZt+NwukPcN21YzBasVgs2uw2Hc0XsEze/b2boNLz8cj2fdfQgAxkaDYZlmSVjcBSgSq2i/nAlRcU57CrKDL2xJJAOAlY6kQ4pt2trFysoJBpF0FNIG5SU2/UkI6JQlmVMJhMjIyP09/czPz+PKIpkZGRQVlZGc3MzZWVlIdMhfBSVFfD2T88HfWexilDDT0Yo0AtkZq+vtZIoOh+NcahuD5DYlMyNMC5aUbllsjOjT2NMhDGGj97RORpKd+FxOTGvdGDdHq/znFarIysrm+ycbHQ6feR13vzfdeztEiWJoal5aksLN184CpKR2rpgsuFBJicz9nM00Xc3SZKwOxyYzWZsdjuiJKESBDL0enJyc8nMzPTfPxaWrEhqgZxs7zW9Z3c++Q253J4dJ/CIbUdMLifDtkWay4uD39imu/Vqaw2X57u8Ke96PQaDgczMLHJycsjOziIzM5OMDD06nRaNRo1KpUKUZX4z+JA/PrYfWDk3VsQ+s9mM1WrFbrf762OKoph0A6qt4nhVObefDW+4zKjFyH/tv8Ow/fmoPbgTBJ2N2On7/zxF6EWLS5K4PjnJPz1ux77ST9ZqtRgMmXy/+RCd/XPeaOjMlWhonRa1Ro1K5T1XJElG9Ii4XStiny3wvmnB7hP73F6xL9Og4fSrjXz6tMff//lObR33b/QHN0yA2n1lVFQWUVtVkMpDsqPPh1CkQ8pt4JhTqaGnkAyUq11hR7FdBb1EtNftdjM3N0dfXx9jY2NYLBYEQSA/P5/a2lrq6uooLCyM+KFXtb+Scz9+ZfWFOCKQ7n7ygJdeqo56vWi4c7WL8ycbU5Jy6+P+o2HOHIghCi3OlFYf4srA/uI3bbx2qAFJEhEEFXp9Brk5XtHHO1sY3UBoVRSNr329E/M0rBVi4iVJgu2d7lFeOVK3+YLhSNBg0+PxYLXZMJnNOJ1OJFlGo1aTmWkgJyeHjIwMVCE+607HCC+9WEdBfhZ1L+zm6lo3222s73Q+m6VsT15SUrhTya7cLFyZbmxhJnAEQYVarUar1aHXZ2AwZJKVlUVOTjYavZ4r0z38mxf2IwiCP4UXViP2XC4XDsdqCq/ZbMZmta6mornd3lS0bSr2NZYUM2CPzATI4nby3/ru8HB5Co+88yIZnyd2uqC3U/d/ymrjX5928HmfT0xbOQ4IFGUamJ8yI0kyKpUKjTqg9IEh0z+RGbL0QYDY5/GJfQ4nGVqBI0f28q+37mM2m7HbbNTk5TDcPoHb5Q66b9a2lLO3tpiD+/ak+rAogl4AgfUElZRbhecZ5axSSBtSGaG33WroxZo6JcsyVqsVo9GIybTqYKnT6SgsLCQ/Pz+uh8vBMy3MDM/RdavXLyLEMhj019N770VufN0Xc3s2wmF3MzXwjIbaErr7plIyaJVlaGsf4aV9VdzpGo14vVXTidja6Pa4cTlduAPO85HJBY421TAwbYxbXFrVzOI/hne6Rjh9sJZvnwxtvnAEJMt8QgYeDkxwbF8lD7rGY29XjNfHqnFJgFutVotOr0cTQUdVBvqnnnHmQjP/0PNotV2pCVhNOleG+/neC618cq8r6PVEuNymipeaK/nd7Pqi6psjoFIJWDxubi0M8d3D+7k6MAKsDmhC/YBX9BdDmXMIQlgn3nTlYOUevljsIdIJCgmZ3460M7fbzKvFNWSrt48pTCA7VdDxsdP3P7Bm2k7AJUm0zc7ySU8vnoB7l//ZKsDZPdV8+VX3htsREBBUQsh7moyM7L9XyuzelU1jaxkfPXriNyyTJIkWQz5XHj8MWrdh/15qm0ooK9FhNpv9bryhjI2SQTpEpKULgUZ96RKhp6RCKyQDRdBT2FFs1xp60QqQoiiytLSE0WjE6Vx1gMzNzaWwsJCsrKyEdCy0ei2v/psXmR2dY3LQ6zwWqwgVWE+vvzvx7qcAQz3TnLzQnDJBD+DZvIWqyl3k52SwZI7MiXI15TbyNvpqqfmitsA7rNVqval7k/MWzh1rYGRuOagTHBvxp9z6WLY5cXtEsjN0WBwJKFafgHTgcEwvmmmo2EWGToPDFdukQDTNkiRp1eFvZYdUgoBOp/MPECKlqqyAPY0FtNmmaSgsot+4sPLONs1NXYMoy1yfHOH1Qw1cae/ffIU041B1KffNI3FvZ8qyxCPNCN/Z18DnXf3+aL1QgwivC6+IKEkrwp/odeJdGQSJohjyWRlO6NtKQeFQRTltS6PEktx+fXaIftM83927n6qMvMQ3Lsls14jKROAbsMPOEbTW4tv/nSDgTFttfN7fT9/Cwvo3Vy6Dqrx8JkaNcT3RvGKfGpVKTWVZAWU1hXzdN0R2To5/kuTdxgbufdqJRqPxO5pX1JVw9MV61IKJhQVz0DZVKhU6nc4v8AX+TqTIkw4RaelCuoibgXX8dup9SiG5KIKewo5iu6bcRhqhZ7fbMRqNLC0t+Tt5Go2GgoICCgsLk1K7IXdXDhd+coZ//vmHQHyDi+EnI7zSWMqwRoXHk5w0qPvf9HD+5RZuPty4zlIiedA2wuvnW7l4d+MZYz8+UUra/FiKoojT5cK94moKXtHHWy9GF5R+eb1tkDdebOLig55odyFU80iUCHS3e4y3jjdx8V587YKAtiVpkHujY4TvHGvm0q2uzRcOIJpOnCiK/npnvr1Qq1Xodd60oGg7hIdayhFL4LNp7/F9vaKBOYuFZZczUdndacGczcLT5VnO7Kvhs3tPk258kyj0GjWlpdncnxpJyPYmLcu06cf9ol44BEFArdEQatgXLqovMOIvFGqVCmFF4FOrVKjUKgQh+WJf454ifjM6SE5Obkzrz9hN/H3vbb5T0cLRgnIMqu3XPd7pA8Wduv87QdC0ezy0z83xaW9f2AlJ3/3+xeJKvvw6/r4EQEN1MVm7M/m6bzWDQBAEDpbvYa5nAUkEg8EAQFFJLm+8e4TcHAGPR4/L5cLtdq9OykkSDocDh2P9xK63lILWP1kXKPZFK0YpKberpIu4mQ7GHArPN9uvx6Lw3OKzWE/mbPN2TbndSICUJInl5WWMRiN2u93/elZWFoWFheTm5ia9o1fZXMYr33+RK7/6Ju4h9O2P73H2J2e59mViOmRrsZgdOBZt5OUYcLhSVzvp7r1Bzhyp45u2wU2XjeT78jm2eQKL7Wo0/k5gKDyiRNfQDEfqymgbnIq88Wvbl8AIPQBJlukem2NfVQldo3Nxbi1xhiKhkGSZjrEZDjaW8aQvumMo4G2XLwVkLeG+U71eH3Nq/KvH6ujVzDMwb/S/9uVEP99raOUPnd0Jd+uQSbwBSDQOxzOhAAAgAElEQVSMLS+hV2t4pbWWbzsGtrAlkXP+cD1/mHqS0G1O20wIbC7qhSNcem0kKbykOIX3aEUZ1+fif17IyFyc6KJneZZ3KvZRqsuOe5upYCcIOuHYyfvu43kWcNySRN/iIl8MDDBrsW64rCzD6apa2p9EXxIjFIdaKvBkwu2hsaDXdRoVtUI2N3tXJ/WycjP47p+8SG6OJuS56It4DhT5An/7oqFDiX0ajSZkVF84se95Ph+iJV2EtHQRFhWeXxRBT2FHsV1TbkO11+l0+qPxAsPKfdF4en3yXGPXIggCra820XG7h/mJEKkQUSC6Rfpu99K4r5S+rsSn3gqCwIMbPbzzo5e5endzcS1RmMwOTPM2ykvymJxb3nDZcPXWQqVgCnhrIur0etQRdODGZxapKi0gU6fBFmPa6GrhtcTJZsMzRl4/2hi3oJfsCD2A0blFqg/UkpmhxeZwx7UtSZZxh0iV1ul06PX6mDvlKpXA+Zeb+Mo6xKLZHvSeDFwc6+W9ffv4sO1xwKvPB/3Geepz8jheX0X39PzWKoybcLSunIe2MZIxtTBlMwHjvLmvgcsxiHqhiCSFV/KLfiKSJPsj+zZO4RVQqbyuvSpBQBVhapJOraa0KJtv5k2bLhspQ+YF/nPPTV4vb+Jwfhk527S23k5AEfSez2MgA6MmE18Pj9AzPx/ROhpBYJdsoH9hFpUQn5h1+sV6Bi1LDIyt78++W9fAtx+tTsDk5Bn4yU/PodOGnqgD73ej0WhCTszJsozH41kn9Pn+9ng8eDyeoAl7H5qASVxfdJ/L5S1dogh66ZdyqxhiKCQL5cxSSCuSHaEXGAUoSdKW3+Q3Y62gJ8syZrOZhYUFrNbV2UqDwUBhYSF5eXlbtk8Z2Xpe/uFx/vD/XIp7W+PdE7zSWslQMlJvBa/W03F3iEMtFbR3TyR2+xvQ0T3JhXP7Nhf01hiMeEQR19oUzJV6LDqdLuqO/K3Hw7x5qoVP70eYAryufd7fiU5pvNkxzOtHG7nyMB5jlORG6Pm43jHM28eb+fxG5Km3vnuP7/6zNlU6nu80EK1GzfnTTXz8rBunFFq0dYoebs6N8GZjIx+1tz8XKbeBPJ6e4kT5XvZV7qFn8tlWNyckJbnZZBSqGZ9bStpnTNlMCEzyTmsTn3X2Ju1zIN4UXoDo6/Wdra/h8lSHrwUJ2xePLPH5RDe354Z5q7yF5pxidEJ6Rlc8j4JOpOzkfffxvEVkzTscXB8b5+54dJF232ts5aurneh0hpg/WwW88do+bgyP8SxEROCZmmo6bgz7zanyirL44b97BbVaQohRRBQEwR9xl5mZGfSezxArVFRfoNgXiqWlJRwOx7roPo0mdBTh80i6RMYpgp5CslHOLIUdhS+6wPcQ1OnSe+Y9MEV4bm4Oo9Hof3gLgkBeXh5FRUX+Gh5biVqtRpev5tUfnuThZ/Gnj935+D6nf3KGrxOceutLF50cn2ffkRrUKlVIl8dkceN2P2+cbOKL++EH177OliiKmC3mIGdTrVaLfqVTFiuSLNPWO8HR+nIeDkzGsIXkGE/YnG7GZhdp2VtC91hskXpCEqIHQyHJMvf6xnnpQDV3no5Eta7NZlufKq3XodXEX+NSrVJx4XQT/2v26aZRX3M2C7kqDccrK2ifjTfVOb0QgDvjI7zZso+9rjzGnm0soqcatUrgxdZKfjv1ePOF42TStoRddPGDwy189Lg7KdGAm7FRCq8sS0ii121XkiTkAOfdcPX6BEFgb2EB8+ISNpcvTU0m0UnfSy4Hvx5uoz63iNdKG6nS56XdYHgni1o7ed99PC/HQJZl+peW+bDjKVZXdJHv5dk5zI4v43KJ6GJMTsnO1PHKqQYudvbi9KyfXKgpzEcct/Js1vssKdqTx4kLLWSoQaNOjpgqBJhgZWVlBb3nE/vWRvU5HA5/RHTgxH/gNn0C4tqafc+baUO6pdwqgp5CslDOLIW0IhUPEo1Gg8fjSfu0W1mWsdls/r/n5rwDbp1OR2FhIQUFBVv+kApErVYjyzKVB0uZG5xnvCf2Gm0AHreHgTt9CXe9DYx+u/dNL6995wBXbianXl8oHA43E2ML1JYVMjRlXPe+JEm43d7OrE/0idXZdCNm5k00VZWgUamidr1NZlpr78Qzzh2qY3TGGHtKMKlJIJ1bslC9u4DC3EyMJlv4tqw4EEsBEZfRpkpHgkoQeP10E7991hmxaNNlnOPVPVXkLulJVGVRWQ40TtlaboyN8m7TPuYWrTjSqHbq64cb+HSmY/MFE4TRaePiVCc/eOEAf3jcjSuFkxgb4Y2a97pJru2QblSvT5ZlTtRU8JvRe0HrmM3mTaL6YjsxB0wLDJpu83ZlK8cLytMmWm8nO9zC8yNmxYNPLNjOx8AuityamODKQGxlUE7uquC3t733AiGGa7yyNJ+axhI+etIVsluj06g4aCji+rfee3ZJZQF5NYVUluSi023NvSBQ7AtkcnISq9VKcXExGo1mnejnq+XncrnWCX6+ba6N6vP1PbfbOZYOgp7veQWKoKeQPJQzS2HHke5Ot6Iosri4iNFo9NfCAMjJyaGoqIisrKy0fKj6hCaP7Obs+y/zq//zd4ghZjmjYaxrnFdaKxLqersawQUet8jUwByVZQWMTy0mZPuR0D84x/mzLUGCnsfj8TqbBogOAt506licTSPhVvswF040cOlBdKl4flOMJMlm3zwZ4u0TLXx6NzonWUhdhJ6Pe73jvHOihUshUm9FScLldOIKSKsF0Ot0ZGRkJPQ7FYDzrzTx6WJPdAKtIPDFcDf/tvUEn/XFYSIhpFmpugAn5kuDvXz/aCufxHA+JYPj9RW0OyfDpkMnC7vo4fdj7fzRof183TXMstOZ0s+Plo3q9R2rKOOReRS9PmNlEmT1WRnehVdArfaJeytOvFG48MrAZ+OdTNqWeGNPE/ma1NWpjYR07BckG0XQWz0G2zXldtZm5w+9vQwa109wRsJre2t40Dbq/SeG06C2chd55dkb1hl9t7aRbz9uB2BPVRHzKg/nW/eSlZF+w2jf2Eav169L4fW9HyqF1+fE63Q6cYZ4NqhWSoKEMuhIp+CCQNIhHT1wrKkIegrJQjmzFNKKVHTK0lXQs9vtLCwssLy8HDSb4wud37NnT0qNLqLFd1wlSWJPbQnnfvwKX/7zN3Fv985H9zn9k7N8/WVs9d7W4dd7vMd4oGuKM+8cTKmgB3Dv4TBnDtfxxd0u76ypb5YdUGvUeDwiao06qWnhbo/I5PQSlbvyGZ+Poo6XP8oxOe2SZJlbXcOcO1TLtfahqNb1Bw8mvllhud4xyLnjDVy77x0QuD1uXE5XkDir0aiRRAlJltHGWSNvLTqtmtdebuKzxR5sUUah+Zx3r473caG2gS+HUmcUkxJk7/n05egAbxxp4Iu2xJhDxMre4nzIkxidj23wGi8eWeLjsSe82dzC0+E5pkzmLWlHPGTr9ewqMvBwyo5Op1tJPXMhCALZ2dkbRvWFM+bwCXxecw7VikGHsDIQDL5WHy9MMmVb5odVh6jQ56Zor0Oz0wWt5yE6LV626zFwiiJ9i4v8tqsLhzu2yY0cnQ61WWZ+yQJEfwx8Yt6twdGwy7y0t4LOW0OIosSemiJ6F5f40XvH2VOw9aVuQrFZ3TjfJElGRsa69zZy4pUkCYfDEdKJV61Wh4zqC+fEmyrSIUJPEfQUUoFyZinsOALr0m01kiSxvLyM0WgMcrDKysqiqKiInJwchoaGsNvtaSdArmWt4Ujry0047S5u/u4ukhh7dJ3H7WHwbi9NrWX0dsaXxuttp7dzEZiqdPerHs5faObqrXjMGCJHlETm5hZZns9Dpwa7JK2m1er1SJKExWJJiSrVNTzDm6eaoxL0UhEFZzTbmVu2UVdayOB0FOJHiiP0AEw2FzPLFkp3ZdE3PBMkzmp1OvQrtWksFguSKCa0bUUFWRw9WslvpjevmbcRz2xWFkQb1fn5jCzFbtKQPkPK4JYsOx30muZ5obacR0Ox1I2Mnwythv31u/loKv4ao/EgA5cmunmzugVHvxujff0ALZ0511DNp2GPoc8tN4wLb1ixT0IUJUI9ZkOl787aTPx97y2+X3WI1tyStEnB3WnsdEETtl+Entntps9o5JuREeZCGE9Ew5uV9Vz5qsv/TI0m3bamopD88mxubiDmGXQaCqwq+maWKaksoGdxidMnm6gvy4+r3ckknqg0tVqNwWBYV5fbNxkSTuzzTZSEEvs0Gk3IqL5UiH3p4HKrCHoKqUA5sxTSilTV0IOtjdBzOp0YjUYWFxeDZtPy8/MpLCwMisRL14jCtQiCN5rB92DXZWjZd7aVnLJCnlx+zERP7IPo0c5xTjaWkZGhxeGIrljy+nZ6fwemizrsLkY7ptjfXEZHnLX/NsIXueUTk2/f6+Pdd47y+b1etNpVQwRfy1JVH+l+xygvt1Zzs3MkqvWS3brOkRkuHGlg/NkSrghTrlMdoSdJEi6Xk1vtvbx76gD9ozOo5FVxVhV4T0vw7a2pdjeF1Vn8Zroz9o0ECKCPnk3ybnULY0tLW2KckAwCz4N+4wJ7KnPYnZ/N7EpERyo5d6iOP2yxmBfI5clu3m3ez9edI1gCyjukMwdKd9Nli+0eHT6FV95Q7Nsohff/67pJeXYBr5TU0pBdRJZqtbh8KtjpgtZO33/YPsfgmd1O9/wCXw8PYYsxIi+QE6XldHZMIsurc2SRHoLqikIKK3K5sYGYB/B2TR3f/L6dguIcJpx29lYXc7ypDE0ai6fJSDMVBAGNRhNSkJJlGY/HE9KgI9CJNzBowYdGowmbxpuI8zkdXG4Dx26B/XwFhUSiCHoKO46tEshkWcZkMmE0GoMK0RoMBgoLC8nLywv5AN4ugh542yqKov8hmputp7hqF/kvNVB9qJrbv7uD6I5tP+58fI8LH7zG1SvxGVj467/JMjKy///x4XmOlReQl5vBsilxESs+QwSny4ks+XqdoNPq0Ol1DAwscLSliicDq4PUQOOOVGA02VFLkKnTRGREkco6ddfaB3jreDOf3Y0w5TqgdlqiHS9XkfF4RFxOJ27PqsB8+UEPP7hwjC9uh65JmKjagxq1ildfrKeXZ9yfjU+AXnt0vhjv54+am/lDT+qMYpJBuG/9+vgI323cx5UHfVGbwcTDvsoSuh1TaSeUfjrWwff2H+Li4960McoIR4ZGQ1VJHp9NjSV4y8KK2Kf6/9l70+C2znTP73cOdpAESZDiTpEUSUkUtVqSLVm2NstWt9xtu91z2z2ZmZ50+ro6VUluZlJzq/JhpqvSNVOVD53culP5kKR75k5l+i6+vXhrLZYtS9a+75S47/sCEPt6zskHECBAAiRIAiRo4edySSIPznnPgve87//9P8/D/HlfWOhTkGUp6u9hV59Ev22Sv7NNYtIaOFJST40mF7U3GLeKZKpdKetFzEkXL/r5Q2bkCVsIVzDIneERznd2RgpDpYJyIZfWsdBC8ew7dfHnYGNlIUXV+Vzt7F1wu5cqy2m/M4AxT4/LICCh4rsvb8ZkTF8alJUSXpiA1Xseoqvmzs3ZF67EG8/VFy32xSOeyKfValGr1Ul/37Mht1leFLJPVpaMYjVz6K1WyG0gEIi48cLHFAQh4saba22fy3oT9CC2rSVFuWzbUsFHZ+5z/Gdv0HrhCSMdS69aq8gK98/eZ/9r27lzc2l51aKZrXSozNN77l7t4Pg7uzmbgqq3kiTh8/sI+GcFH1EU0eq0aDWzOdSGRqw0bCpBFCEyn16DycmNJ728dbCJ03cWF87iuRzThSQrPOwcZG9jJfc6knF5zt7flFdbVRT8gQB+nw9JDj/jocGsTqtFpVZzt3OIQ7s3ce3hAs/oCi5bKMR2I5+MPUuNIDVbIwYAnxSkZXqMl8rLuT+SuurSa8f8i32mq5X3Xm7m05srcDYuAb1GzcaqfD4bHliV4y0FBfi8/wnv7d7Jx/efZZzgGM3h+lrODserDJz8ZH7phEN4Ye6Qea6rzy0HOTPyHDUib1duo1oW8drt8/YYdqXMzTe1lIlqlhBZQS9zr4GsKHTZbHze1rbi0Nq5nKxr4M7t3tkfRK7Bwp+rqzJTVJ3PlUXEPL1aTUVQR4vLi1Kkp396mg/fOUhFce7KGp5mosW8THgeoivx5uTkxPwuLPYlcvWFRb94+wwLiHP7UZVKFXPe2ZDbLC8K2ScrywvHaoTcKoqCy+XCYrFgjxrQ63Q6zGYzBQUFSa8YrSdBL/zSnNvWmopCTh1p5uMvH7HnlXqqm6q48/ndJTvQpoatVI5bKCk1MT42f6KULIIQGv9FO/TC3LjwjDeONXEhgctqIRRmBig+f+xLXKNGp9UlfJnfuNPFiUNbOH8ndMxI2Ogq5oGTZYX23jG2VG2gbXBiwW1nXY6r0TIYmnJQX7kBvVaNNykHYbhtqXHoKbKMz+/H7/fFTJ60Wh06rRYharA4YXNRbvZSW26md07uv4jzcpmKXlmxicZdpfx+JJ6osVzmuy077VMcr2wgX6vH5l9f+dUiLHDbA7LMFz3tnNq3lTN30+9EPLpzE38afpL248yytOcrqMh8PvCE9/bs4I8PMqMS8FyKc4x41F7kVS13szALhfCet3Sx2bSBY2WbMHrlmIlr2JXidrvn7S/eJHWhEN5UiDkBbwCNfn2GgmWqmLWaZKJDz+LzcbV/gOv9qXbTgk6tRrDLOF2zlVgjvcICz8HrLzcwFnAtKuYBvL2pgae3erHpBPrHp/gXp/ZndN68MJn4LCQiWuybS6hyefxKvOFcfn6/PybaKXqfYcEv3D/IsrxmIme0qPgi91NZ0ktW0MuSUaz3KrfBYJDp6WksFgv+qJxEJpMJs9lMTk7Oks9xPQl60ZVu59JUX4LV3silWx3kGLUc//AEV3/7DT730nI3Pb7UwvGfHGV8ws5y7STh4h2Kosyb+HtcfvqeD7N9SwVP25ILZwzlUQsNMGIFn9BgZbHBld8fZHzERllxHqOTjlCBEWaCRhVl1QYB3UNTHN+/mZ5RK/6FHKyrEtYay7WnPXxn31ZO304m9DY1Dj0pGMTn9xMIzD6jKlGFVqdDq9Ek3PnjnhFOvNTIcKLcf8vQJKrKCqjeZub0aGoFqESX5+JQJz/YvJ2Pn2amwJM0Ca613e/j1tggR7dv4tLT5Tt+F2P7xjJafSMZ7XwD8MkSX4w854cvbeNPj9vxZUDRqGheqavmzFjm5B9cmFAIb4djil7XNN+vbmZncRlaURXjSpnrTImeqM5FFMW4Qt9KBS233cu5//wN+0/upGpr2bqbcGYFvcy6Bh5Jom1qis/a2nD7V5bvOBGnahv55mLsgmvkGsR5oxn1Wg4fauSbzh4s7vl53OZyqKaakR4LvR4nE14vp17bxu5NG1LT+DSzngS9hRBFEZ1OF5NPPIwkSTFhvNH9qCzL+Hw+fD5fzGd6enoQRTFhGoR0huRmQthvlm8/WUEvS8YRFlvSRapDbhVFwePxYLFYsNlskbZrNBoKCwspLCxcUSLU9SjoxWurShR5ZedGrDY3j1qHOPuoh5P/8hiPPrmNZcS6pONc+8MNjvzoNb65sDxxIzqPXjwGuibYV1GIKVeP3ZnYoRQMBiODiTCiSkSn1aHRapZUca2ldZg3j2/jzGTonCKiI6tbOfSbex2cfLWJzxcUzhKHLacLSVZo6RtlZ10Zj3tGF9w21qG3VBQC/gA+vy82mbFag1anQ61WkcwJX3zYyXcPbOXs1ShBbJkTrk3VRRQ15PHFWMeyPr8gCcKnFeCL/ja+t2Urf2pbwvcsAyaVIRZvx4jTjkmrY199FXe7BlPeApNRR0mFkfsjCydeTxUrvfTOgI+P+x9xcvs22von6bYsrV9OF/VFZnq942vdjGURkCX+2PeYJ6YRjpc3UK3PT+hKCU9U44l9sizj9XrjVpGE0LtobGwsZrK6WGJ5WZK5/+VT+luHGGgb5uifHWDba41otOtnapBJYtZaERZx1vIa+GWZdouFC909jDgcaTvOBqOBySE7QWnOEkmkKEbsNdjWWEZ+aS6fPHmWVERBoVFPgaLl98+e4Rfg5R01vL6jZt0IZJkQYppuwq5ovV4/73fRlXg9Hg82mw0IXY9EYl94n3Nz9aUq52n4nmTDbbOkk+zTleWFI1UCmSzLETde9CA7NzcXs9lMXl5eSgZY60nQSxRyG0arUXP05QZGxm2MW5ycvd/F0e+9xND1NgZakp9Q+1w+eu52sHlbOe3Plp7nK5miE3evtnPs+7s5NyefXthh4fP5YpyIGo0GrU6LWrX8bvXajU7eOjAbejtzwFUVSSRZ4dbTPg5v38TlBZxLC4Utp4veMSvH9zSgFsVF8sctPSRYUWT8Pj8+vx9FmZ0ghQZ2uiUP6iRZ4WZrH6/t3sTVmXx6ywml3rOtCneRxIXxriUdP3nmJNGLwhUM8HR6hJerqrg9mHrBazVY7Eq3WSbYV15FQ1kxnaOTKTuuABzZsYk/jDxM2T5XA0lRODPQwt4N1RwurOVyV+9aN4ntVSV8NvxorZuxIjrsE3TYJ9hXvJEDxTVU6Obn4ko0UVUUJca9N1f0C28TnryGiZdrKtqR0vtkiLtfPo58/uI/3mB8cIpD7+7DmD9/spyJZAW92WuwFiJOQJbpmp7mUk8vvdPTaT/ekbI6zn893zUeeadGPQbHX9tCu9XCvbbk3p1GrYaXS6v4f35/nVyTntqqYk4d2IJRt36myplQ1XUtUalUGAwGDAYDGo0Gm82GXq+nuro6Ruyb+6ckSUiSFHfBRKVSxXX1JSv2rfU9Cad9MplMa3L8LKvD+umlsrwwrJZDL1SlbunhjF6vF6vVitVqjemow268eBbxVLR3PQh6C4XchjHl6jl1pJn/79PbyLLCpcd97Nldx8v15dz5093ZSrCL0Pukn4P1ZRhzdbid81fcFmK2SusCGynw6EYnB/bUcfNBT2h1z+8LhUNFrQZrdTNhtcLKB9Nuj5/ergl21Jdz/aEDwmHBq8zUtAuH3UNNST5947a42wgIKOkoPLEIlx938+bezZy9k9g1JswqZ4vuT5IkfD7fzMQ4PDFSoZspXrKSk5u0u5n2eiktymNsyrGkfQmEcv48E8bT6pRarEU9DivlZSbKc/MYcabPeZFqlnLX7o4M8kZtAzaXmwmHe/EPJMGrTTVcsKzfSsH3JgeoNBbw3q4mPnv0fM1ChvdvrOKmJV1i9upzd7Kf+5MDHC6rZ6+5iiLNwkWxIPSeUavVqNXqeVUkvV4v/f39qNVqCgsL5yWWT5RrCp+Kz//vr/F7/IiiOFP4Q+DptTZsE3ZO/PPXKSjNS+Wpp4W1FLMyhbUQNd2SRPf0NLcHB2mfnFqVY+4rq+DZs/hpUMIOcwEBETh5vJmvOjqxe5NL6ZKr07KrqJT/9x+vUlCYgzFHx4+O7sSctz6E7TDflpDbVBAd6hrdh85FUZRIEY5EOfs8Hg8ez/xw7XCBo7DQ53A4aGlpYcOGDdTU1FBcXLymDr1z587x7/7dv+Pf/Jt/wwcffBB3m/fff5+WlhZMJhP5+fmRhaEf/ehH/OVf/uW87X/9618zMDBAXl4eDoeD5ubmhPvOsnpkBb0sLxzhRNbhFZlkOllZlnE4HFgslpiBscFgoKioCJPJlLYX6HoU9BZra3V5Ad95fRtnvglVmXzQOYJBr+Hohydo/fpp0lVwb356hxM/PcaFr5ZYwCJSB2BhwWdqwkGVw4NKJWOzzYoZKrUqVORCo065O62nf5IDpfXk5+qx2N1rlgL+cecwJ17ZwtCkI74bThBCEberLDgGJZmOoclFincsVnwi7LL0I0mzofdqtQadTjvTJ6Tmvj7qHuHU/q18ce150g69qtJ8tjVX8IWlHUdgaTkml0wSFYuvj/bxTu02zra2p6ay7qqS3PN5obeTt7du5VZLH3b30hYI5tJYXoxT72Hask4Lisww5J7mjNfBD17awecPW/Gv8r3XqdWUFhq4O+xc1eOmGxmFS6OdXBvv4bXSTTSZSqjQ5yGuoM8JLyrGHGcmt2u0o8/v9yP5Ja7/6REue3zxuvVBJ6ODE5z686MUVphiXCmZ5oTLOvRWT8RRFIUJr5f2qSmu9PVjSxD+nQ5EoFKVy8XRBHmNZ7p5rUbk5IntnG5pxRdMbsxs1GrYbi7hd2fuU2DOQRHhp2/vp7ok8wXtuWQFvVmSDT+OdjLPXTAJR+TEE/uiCxyF+Q//4T/Q0tIS+bder6e0tJTS0lLq6+vZuXMnNTU11NXVUVhYmLZ+66c//Sl5eXlUV1fHFGZMRHV1NQMDAwBs376dDz/8kFdffXXedr/4xS8A+OUvfxn52V/8xV/Q398fV/zLsnpkBb0sGcdqFcaQJIlgMLigoOf3+yNuvHCnLYoi+fn5mM1mDIbFV9dT0VZYH4LeYiG30ezcXE7fkIWWzpB45/EGOPuwh13766nbU8vdz+/i9yycVFlRFK7/4Savv3eAKxeTF/WEGTddImFFVuRQHjWfjytfPuTkPznAZ18/WrTiYKq4daeLN15v4neX7q1eKdk4XLrbwXcObOVPd+bn05uti7H67escnuTNvZvpGJ4gkdYIzNNyFEUJTWp9PuRwWC0zYbU6LaKYnvt6taWbI3sb+OLawtVptRoVr+7bxJDazu/HUlnJNjHCAiG30Zztb+N7W7fyybNkipJkAMt4j5zpbOX725u4+rgHZ5LOjrmUF+RRXp3LV2NLr5KdifhkiY/7H/He7p2cedyBdxWLZRxrrOPscMui261hF7kiArLExZEOLo500FRQyktFVWwymjGIyQ/NFxK0RFFEr9fHhPAqisLDC88Z77GQYzQiyzKSLIciFmQZWZGRZQXL2DS/+z/P8M7/8AaqqOjgharwroWo9qILekqUiz9d10BRFPocDvVJd44AACAASURBVO4Nj3B3aGhNFhm/u2kzN673JPy9gkJero43jjXz6ZNnSElGehg0arYUFvP5hcfkmgx4g0H+x/deY0uVOVVNX1VehBx6yZKKUNfo4nY5OTkxv4sucBT+s76+PkbQ83q99PX10dfXx+3bt/n7v//7yO/y8vKoqamhtraW2tpaampqeOWVVygtLV12e8P8zd/8DQADAwP85je/WXDbqqoq/uN//I+L7vP69et89NFH3LlzJ+bnf/mXf8mJEyf48Y9/THV19fIbnWVFZAW9LC8karU6YqWei6IoOJ1OLBYLjqjkvjqdDrPZTEFBwarmQlhPgl4yIbdhNBoVR19pZHB0Gptz1sr+qGsUUYRjPzmKu3eCh18+WjAM12Vz0327nebdVbQ8TC7Pl5DAlRSUwiFKUeGXgkjLnV5OHN7JnUerk9xeAS5fa+Xtg81cepR4EJtugpLM/ecDvNpUw/Xnc849nIdwDdoFcPlRF2+9tIVzd+MJJ7EOPVmW8PnC1SNnQ7RCxUu0aZ8M2t1+rB4P5cUmeoYm4grJZcUmduyu4OORloysiBqQJa6N93Givp6vutZRCORS8igCn3c8591d27j4oBOPf2niVa5By56mcj4ZfrK0NmY4kqLwcf9j3t2xg/MtXWmrXhlNZb4Ji+JAXsINXM+azvPpMZ5Pj1GoNXCyaitbczegFVI/zhjuHOfyH24higKIKlSoiC7ZpShECXsy5//zNb733x9DMMqRsLRAIDAvhDe6guRc0S+d46WsoDd7/um4Bhafj+sDg1ztW52xTzwK9Do8Ez683sT9Tqk5j227qvj0YQuqJIvQ5el0lOhzuHS9Hb1Bh8Pr5efvvsr22uJUNX3VWet8bZlEuqvLRot9YX7xi1/ws5/9jN7eXnp6eujr66O7u5uRkREmJydj5kYOh4OnT5/y9Ons4q3RaOTixYsUFBSkpc0r4dy5c1RXV8/LxRcW8c6dO8eHH364Fk3LQlbQy5KBrJZDD2JFsmAwGHHjhSb+obaYTCbMZjNGo3FNBo3hgZqiKMiynNErb0sVH835Br53rJm/+/xuzLRNluHCwx5yjFqOfniCzqvPFyyaMfB8kJKaDRQW52KdXDw8K9qVpMyEX/p9foIx4ZfqSFitw+pF7ZPIzdHidKU5BHIGp9NLf+8kO+rKaR1MXbL+pTJmcVBVWkCxycCkfVZ4XUqeunTgC0q0D07ErXob/p5KQQm/3xkTEqFWqdHqdGg0qQurTYYHncO8taeRnqH5YcLNjeXoKjX8YWRxN1LKSSLkNsy420mfdpp9lZXcHRpKc8PWBgX4rOM5773UzPm77fiTdKSpRIE39tTzu6G1L4KRjq+krCh80v+Yd5p3cKmlB7s/vf3gvpoKPhtZ34UwloPV7+Efuh+wJb+EE+WbqdQtHPa3FEHLaXXz1X+9umDIvyCAoBIRmXGxBxUu/fYW7/3FSQrLTAtW4V2ogmQ8V18qQnizgl56zt8rSTydmOB0ezuewOq5cuPxZmUD5y8kfjfWVZkpKDfy2f0nGOaETCbCbDSgCYo8bhlCpRKxOr38y+/uY9/msnX9LGVDbmdZK7diZWUllZWVHDp0CJ/PR9+MGF5ZWYnb7aa3t5e+vr6YP0dGRiJtTcYQsRZcv349YWENk8nE2bNns4LeGpIV9LK8kISFp0AggNvtxmKxYLPZIoMjjUaD2WymsLBwzUuNh3P+BYNBJEnK6Bf1UkJuw9RVmTl2YDNf32yf9zuX2x8Kw91Vy766Uu7+6V7C/dw794DjPznK5ctdi74QwwO2QDCA3+6PG36pmhN+ef96J8fe2c25q6uT6F4QBNo6Rnjz+C6Mei3uZYYApoJ7zwf4zqEmTkcVohAWzVOXfrpHLRzdtQm9Vo13xk0VEr5Dz5/PH55cCmi1GrRa3ZquXF952sWbrzTxzYOumVbBa/vraVdb6JhY+yqyyVQsbp+e4OWSajYVmOmetqxSy5bPcp5OWVH4tL2F9/Y1c/Z2a1J5A9/Y2cBnI6sTJp2Y9E5EFeCz/ie8va2Z6639WL0ryzWYiFdrN3LD2pmWfa8X2mzjdNgmeLNyC3sLK8lVaeNul6ygE/AHufHZfawJihwthGPaxaf/13lO/ewYZfUb4hb+WqgK70JJ5RO5+tRqdVLCyosu6IXHOqk6f58iMeJ0c7a9g75VqFq7GG/UbOLuvd6E/fj+XTW41EG+bAmNH5O5DpX5JuxWLz3Dk6glmHZ6ef/IDl7fuTGjx9fJkBX0ZskEt2L0YrLBYKCsrIxNmzbN287r9TIwMEBZWRl5eaufu/H69euRUOGBgYG4hS4GBgbi5tUDyM/Pj+Tgy7I2ZAW9LBnHagzMwi+7iYmJmA43NzcXs9lMXl5eRg0QowU9TZLhBGvBUkJuwwiCwN7mavqGLXT1x3eiPeoapcBk4PjPjnP9o2t4E1S1vfKP1zjy3xzm4lfxRTcFJeTamik0ELHki6pQtVrNAuGXCjy+0cX+XTWrE3o704yrN9p5+7t7OHNrbXOX3X7Sy2vNdVxtmQkBDofcrnH+qsuPezj18lY+u9GC3xeqQhxd8U6n16HVaiN5E9cSm8uLzeejzJyL269w/LUtnLd1rLgIw0oQZv5TQnbVpDSh2+MDvFXdyJTbjc2fmYUfVtp7S4rCpx3PeG//Nj679WzBbXfUlNEpj+OT19bJshoowJ8GWji5uYmOQQs9Ka7AXJqXiyYXJsZci28c06pvHzIKXwy1IiNTpNdQqsunWJOHiqX1ZYqi8OxaJy035i+aJYvd4uR3f3WGN//56zTuq0Wljm2DSqXCYDDMyyscriAZT+yLDuGdSzicLV7OvugJ+osu6KWiyq9d8jHosTPgniZX1HO5bWBVC14koiQnB9kSZGo6fl/w5uGtPBwdpd86uxi/0FOgEUU2FRVx//kg03Y3Zq0em8fLif2NnNzfgFq19mOElZLNoTdLukNul9IGYMG5m16vp7GxcTWaNI/BwUHsdnuMu+7999+PKXSxWGENk8mUFfTWmKygl+WFwuv1YrFYsFpDk5BgMBipDmc2m2NyIWQS6yWP3nLbqdepOXmoid9a7mB3xh9ITts9nHnaz1v/7AiDt9vpftA7b5uAN8DTC4/Zs38zD+7M/l5RFPwBP36fH0mebZsoiBiMhpAbIAkJYGrcQa1fJi9XjyNBO1NFuD2yIvPk6QD7tlRzt23tXpgWu4egP0hBjo5pl292ArWmip6CPxDgyqN2dteVcOVxyNUjCCKKIqPT6dDp9IvsY/UQgJvPuvng2H7EHDUfj7UQVDIzvGIxvhzo4N3GZk4/b4tysAlknriy/PYEZZlzPR18d+9Wzt6Lv0hgzjVQVGrg3tja5ZhaC74Yes6B0lqKc43c6U9N+LUoCLy6aSOfDD9Y5h6+faKOiIBOo3BmJOROL9Hn02zaSJm+gHJdQVKC1lDbKJf+8caK2yIFJc79l0tMDO5g71s7MJoW71ujK0jOTSovy/K8pPLRrr7FQng1Gg3eGeFJkqSMT0mSDpYraAYUmW63hcfWEZ5YhgkqMka1hv259Rkh5gEc3lDD+UvzF1OMeg1HXtvCF8/bcYXzeYbHIQmuQ0leDpqgyOdXW1BkhbqCQuxOD7sbK3j3UBM67bcj51wmuNIyhUwQN6PNDWsd7ZWIv/7rv55XzOKDDz7gF7/4BadOnaK5uRmbLeTsXgv3YJbkyMynK8sLTapXWmVZxm63Y7FYcLvdMb8zGo3U1tZm/CBwvQh64esoyzKKoizpXhYVGnn3jR387ed3kRcognH+YTeNm0p5vamam3+4ScAXu7o/1jdB1ZZK8goMTFtc+P0zrq2oga9arSYQCIQSeauX5ni8d62D4+/s4ezV9DrmZgUzGB2zU1dTEhNauhbcbenn5EzobYJCsqvDjEDr8/mRZQmXy8XGkkIqiguxe0OuD58vMyYl0Wg0ak7sbMKm96A36DJOzEsm5HZ2Wzjd18r3m7bxccsa5P5bjBS9R5wBHw+mhnl160aut/bH/E4UBF7bUcvvh9c+b95acHO8l60FpbyxuZ4L7SsvlHK0cRPnxzPwWVpD3q5p4sbk48i/x702xr2hoiul+gL25tVh1CfORWcdtXP6N5cWzJu3VO599YS+Z0Mc+/FBKhpLlj1mE0VxZtElcQhvvJx98UJ4JycnmZycjIiHc119yYbwrjeWGmLpVyQ6XRaujHXT54xNmXCidBufP86M6twnaxu4ebd73s9rKgupadjAJ4+fIUc90+G/xbvHGwsLGB628bQ3lGu3rrAAt8dPfq6BPzu2k1xjZi7kL4dsyO0smSBuxuRvzlBBL15l2u3btwPw0Ucf8ctf/pL8/PwF97GYgy9L+snMpytLlhTg9/sjbrzolZqCggI0Gg1jY2OoVKp18eJbL4KeIAiRpK6yLC/5RVpbaebUkWb+dHHhXFQdg1N0iXDip8eYfNrPs2utkRGdAtw6e4djPznG6T/NOj1UKlWoqqlGgyRJBAKB5eV/U+Du5TYOv1LP5TtprPYZMcCF2njrbhcnjjVx+tbq5PCLhwLcfTbAq00b+fpBe7iBq3Z8WZbjCLQiOq2Wx33jfO+VZk7ffk5wJoRrLfP7zeWlzZXkl2n5ffcdZLfIttIqXq+o5cpw71o3bdnGuoAs8fVwJ281NHC+MzNznqXi8ey3TVNsyKGhrJjO0dm0AEe2b+LM+MLhuN92WqfHmDZ6eHfXVj59tPy+qaogH6fowh1cu1yhmUaRzog9aMefIJR7zDvNp87bFGDg1eKtFClBdMLssN7r9HHx76/jcc7PXbdSJoct/O6vTnPw7ZfYfXwbuhSLIouF8IbFPYvFEom0CL/Xw7mRowk7BeMV51jPbqZkHXpeRaLTOcnlsS4GXfPzKNbmmuketyKtdQ4NwKTTErQG50VrvLp3E9P4+OJZR+wHFCXS0c+9CpuLi3jQOszARCgfYJHRSDAg43R5+Z//7DVKCpIrorFeyAp6s2RCyG10jstMvSd2u31esYvwv8NhtOF/OxyOuPuw2WwJC2ZkWR2ygl6WjGMlq6iKouB0OrFYLDEdj16vx2w2k5+fj0qlwuUK5eTIdIEszHoR9CDUVlmWkSRpWS/SHZvLGZt0cOfJwiFssgznH3Rjzjdy9MM3sXaPcu+LB7jdHmRZ5vrH13ntxEvcvt4VWaEPI4jh/G/LG7zarW5swzaqKwoZGE5tDqkwghDbRllWaHk2zJ7NlTxoX7sKo5NWJ43VxeQZtfh83lUQzRSCQQm/z0cgOOvGjBZow26sK0+7eOOlBs7caAl/dM0pL8pj17YKrji7GBmx4Zdl1KJIv8uKWW9kS0ExbdNrV8UYiOTQU5LMoRfNtM/DkNfOFvMGWqfmV/D9tnB/dIi36hoZszlweHw0lBcxprZlBShg1G3nq0ArP3ipia9burHFCZNcCIFQVdtPX1CnYyKOVm3iq5G7C2+kwKjXymcjd3jsHeTlokY26osxylrunn9Kf9tw+hqowI0/3ccyOs2RPzuAMT/96Q2iQ3iNRiNOZ6iKeVlZGUajcUFXX/hncxFFMSLuRYt9Go0mYyfhYRYScGQUxvwuup1T3BjvxeJzz9smzI68aj7tXbvFwmjeqmrgy69nF0pyjVpeO9jI1e5eJpzzzyHymheEyFhAAJpKSrhwtwObKyQMqkWRXI2WoVEr/+qDwzRUFKb5TFafTAgzzQRCxdHWXtwM349Mdee9//77tLS0cOfOnUUFOZPJFAm9jUc8p1+W1SMzn7AsLzyCICxJbAkGg1itViwWSyTBsiAImEwmzGYzRqMxRihcTwIZLK967Fqx0raqVSKv79vE6KSdgZHFxbJJq5OPR6fQqASO/XfHmHo2wMMLj3FZPeDwUrmxBOukM+YzkbDCFQg+rY8HOfzdHQyNWklHlfmIoBfVyKGRaepqNqBVq/EH1y709uaTXk68soWPLt5Jn0FPCeXH8/t8MXkPNRotOq0WlVrFXPXJ7vYzMG5je105d593r6lDTxDg9d11WHPcfDz1OPIzmBVpH04NcbxiM6MuB7bA2hXGmGV51+upZZTvbNxCt3UKbzq+DMsgHdF1X/Z08INd2/n6fgeNtUV8Ovwk9QdZpzgDfj7ue8TRxkYc037uDY4k/dmDtRu5PLnyUL9vU0Rlc2Ep7Y7+pL+RgiAw5p3m86E76EUNu0cquHb2NgaVFjHNuQXb7nbjc/s58S8OkVuYs/gHUki0Q00QhAVDeOMJfX6/H1mW8Xq9kXx80ajV6nmOvkwK4Y3n0LNJPnqcFp5Mj/B8emzRfbxUVMW9/uS/r+lkT2kZbc9HI+OKvdurEU1qPnn8LPF3YY47TyUKbN1Qwpnrz/HM5NgTgOr8fAZHrPzw2C72bilP52msCYqipKRIyreBaDFvLb+nmeASXIx4QlzYmbdt27bIzw4ePMizZ/EjEux2OwcPHkxPA7MkxYv9jc+yrlEUBZfLxcDAAG1tbYyNjREIBNBoNJSWlrJlyxaqq6vJycmZ16GHO9fgGooiSyG8urMeBL3lVLqdS45By9tHm8kxJA7jCQQCuFwuHA4Hfr8fl8fHuXudjBbk8O6//gGVdeU8vviU3Tsq5n12rvttudy48JwTr25d0T4SkUh0vHG7kxN716YaVhhFgfvPBjjUvCmluZlC+5bxeb3YHQ48HjeSLM1M1PSY8kwYjUZUajWJrGTtgxOUFOSSZ9CtWb0Oo1bDqdebuCZ1c9sSnXdtfpu/Hm7n+Mb6tX0Zp2C8+9VAB6e2bkGSgsiytObVj9OBApzpauWDw7v4PCvmzUMBLo50MK1x8f0dW5N6pnN1Okz5aqz+1IeFrmc2F5jpc44v67O102Z+95tz9Lkn6HGNMRVw4pJ8ac3Z2ftskNO/vsj02OrmUko25FSlUqHX6zGZTBQXF1NeXk5NTQ0NDQ1s2rSJqqoqSkpKKCwsJCcnJ1KRMhgM4na7sdlsTExMMDQ0RE9PD52dnfT29jI8PMzExAQ2mw2Px0MwGEz5O3EhFEVBNOqxaGRuWQf4+4GH/B8tl/jH3odJiXkAZWozgws4b1YLEdioNtE3bEGrUfOdY9vo9Tu43NG7oLAdud6CQI5WQ1PxBj678jQi5mlVIpuKzYyMTbN3SxUnX25E/S0UvDJFxMoEMkVIy5R2JOLgwYP88Y9/nOfOu3btGgA///nPIz/78Y9/zMDAwLx8eS0zOZRPnTqV5tZmWYisQy9LRrKQQ0+SJKanp7FYLDEV0PLy8jCbzeTm5iY1uAvva6nFG9aC9eTQS5X7cUNhDu+9uYu/+3zWBaYoCn6/H5/PFzOQ12g06HQ6RFHEYvdx9mkfr7y1k3qLizun73Lw5F5uXInKuxLRypQlFQKYS8AfpPPRADubKnn8PLVhsIlER0lWaG0dZmd9OY+71m5VfWTKRlWJicIcA74UzF/CVQ1DDtvwKrMKnU6LVqNdkv3mm0edfOflZj67tvqiS9WGfLY1l/D78fnhg7OnEHvBzg4+472GZv7YuTYFAVbqWJVlGYffw4XeZxysqOJCZ+i7Jopi3P9DbpoUNX5RUju5Pl5fx3X7LT7YvJ2P2p+SGX7EzKLTPsmQa5rv72niVscQo05nwm2PNtRyevhxwt+/iOzbUM0ze3JVk+e6kDd5irn2X24RCIQWK31ykDFvKH+YgIBJY8Co0mFQadGLSysItRgj3eP8/q/O8vafH6OsfsOqjKuWW+U1TLhIllqtxmiMzaemKEpCV18yIbxzXX2pDOH1KxI9bitPrEPcHukiKAjo9UsPeX5tQz03ewdS0qaVcmrTZm5c66akKI/mnZV89qwNKYmF4fA3YEtZKUe3beZ/+9vzBKXQ53J0GspMeYyN2SnKN/JP39xNniG1z32mkAkhpplCpoQer3XIbVh8S1S04uc//zn/9t/+W/79v//3EVGvpaWF3/zmN/z1X/91jND36quvcvLkSX71q1/xy1/+MvLzX/3qV/z5n/85zc3NaTyTLIshpGEl6Vu4Lp9ltQkEAvMcXl6vF4vFwvT0dEz1IrPZTGFhIVrt0pIyP3v2DFmWaWpqytjVkzB2u53+/n5yc3Opra1d6+YsyMDAADabjcrKSgoLV56j5MHzIT796hF+nx9/YHbwHK6Qp9EkrvBn0Gs4trUKyeahtcfCxMjsKrTNZkNBId+Uv+KJx8tHt3C/awSXO3X5tCRZwulwIopi3FLxrx1s5EZb35pVvQ0nHn//xF7OP1pucRBlpiKtH0mKrgamQacL5z1c+r0JBAKokTm6ZzPfPE1uYrxScvQaXtlZw4TGzm1r/AmSJMk4HA5EUcRkir2nZl0OL5mrON+/+sUlHA4HkiyRm5uHegl9YTAiws4+969XNTA4Pk2vNXG4fDhBdHyxb0WnEsHnCwn/Op02bgjecjhaV4dF1cOYz4JGVHN4w35+3/kMf4aEGUuShNvtRqVSzRMn1oqj5Q2Mjrlpm5ifJ3LzhmLU+UGe25JzEiUidN6umfNe3ZDPdPBO3RYujT1KatvwApdGo6FeXUbP33Uw2D2a1GcLNDnka4wYRV1KBXZRJfLWTw7TuLcWlTq9E+re3l78fj81NTUp+54nQ6hA03yhL97YNRq1Wh23OMdC45hoXHKAduck18Z6GHbb8Pt9+Hw+tFotOt3SBb3vbNjOmecdi2+YZgr1OnZrSrE7vOSX53Clszfpz+ZptRTqdBi1Oh62D9E7HhKwC40G8ow67BY3Pm+A//UnJ9hWU5SmM1h7vF4v/f39aLXajJ8npBuXy8XQ0BBGo5Gqqqo1a0dnZyeyLFNUVLSq9+QXv/gFAwMDPH36NCLmNTc3U1VVFSPeQWh++atf/QqA6enQd+fnP/95QoHu17/+NdPT0xQUFPDkyRMOHTrEBx98kOYz+laS0hWvrEMvS0YSHtjIsozdbsdiscRULTMajRQVFZGXl7fsFZhw8YZwhbRM5kULuQ1/3mazka/3s2drKVfuhkQjjVqDVqdNasXL4w1w5mEPexsreOPtnfz+v1wnGAxdw7ALVFYUVCuczdz5pp3j7+7mzJXnK9pPNGHXVKI8cNdvdXLieDOnb65NlU1BEFCAy/faObZ3MxeXIOopijwzEfWjzISBCQihSc6M03JFbQPsbg+dQxPsrCvncU/6nIw6jZr9zVVQAKfHk3XYzb+nFp+LSZ+TOlMhPfb0FFpJSOT5X3w9TkEhGAji8/kIRomwoe+ljoe2cd7d0oy15TnBmWrXc/9XFAVJkuL2ZyFhT0AUVSlx9aVqzfLlqkq82hHG3BYAAnKQS+O3eL9hP591d2aLYyTg0kgnB0pq2a0t5+HQ7PdQALZVFvPpUHLC1YvC6+V1PLYufYGkRDAxcW4oaTEPYDrgYjrgIletp1CbS45Kl5J8e7Ikc+5vLtH/vJE9x5spri5Mm1tvpQ695SKKInq9fp4rLty3JSrOEQwGCQaDeDzzQ8znuvo0mtBYx4uMPeij12Xl0mgHzkC8vmbp53+8bCtXO/oX33AVeKOinqkJJ6JZnbSYJwD1G4roHbFgsbioLsiPiHklphwQwePw4fH4+V/+6VGaNprTdwIZQLTR4UUnE0JdowtzrLZDL9pBtxgmk2lJ23/44YfLaVKWNJMV9LJkJD6fj8nJSaxWa4x1uqCgALPZvKzQgrmoVCoCgcC6EMlepJBbv98fKXAS3sfWGhM+/yae90wsS+y51zHMs4FxvvcvXmFyaJr2+/2hKsgKKZnxK4rCrQvPOXZ4Mxdvtq94fxA1QUnQPFlWePCwl4Pba7nxtDclx1wSM+2z2t1YLC5qSvLpG184D09oouPD748OqxVD1Wq12tRNymb20zYwzsmKEgpz9Vid8xOer4SCXAO7t1Yg58pcGG8nOL64gD0bRh3/9w8tQ5yq3kaf3bqqoZwJIoFjiIS7+32RQWq0CKsSxYhAfq6/lR/saOaPT1tQqcQ5+5kd6Cb+HyC2/wi5+uYLfal09SVi64ZicvI9PLPHVgyVFJlLY7d5u+4lLvQPLlhF8kXm5ngvu4sqOVBbxc3eQQBe21TLhbHMqKqZSRToNDyyJQ5Rjke+aEB1x0fr3e5lHdMZ9OIMelELKoxqHTpRjVpQoRFVaAQ1WlG9LJnv2c0Ont/uZP9bu9j+2mZMxbnLat9CRPqiDEmbEh3CO5foEN65f4aFPp9GYMztwO70YQv46HNamPA6UKJczYIgolKF/h6VPm5JaEUVgl/EvsSK1OlgV2kZOlHNiOSia9SS1GdydFoq8kx8eb8DEXh33zZ++9VdVGo1Zfm5OCU/JlnHlN3F//JPj7KnoTRjnpF0kQ25nSUTQm6j50CZWuU2y7eH7BOWJSOxWq1MToZCdPR6PWazmfz8/JSutqxH19u3ta3hAicWiyUm14Ner6eoqIj8/HyqqoL4pcf0DE4tq10eb5BLtztp2FZKwcEK6vdW0PtkmNH+6WXtby5Oh5eh9lGat5TT0pYCR9iciqjxmJh0Ul1pZkNhDhNW18qPuQQini5F4WnXCG8e2MrApC1OxV+FQCCIf46jS61Wo9PqUGuWF1a7YNtmy8lyraWXt19p4vSt1LgnBeDgzhqCBRJnJ5/BUjScJJSzr4ba+H79Nj7tWn3nZbxWSbIcEmF9/ohbVBRC4e7aBCKsTwry5UAH7zQ18dnz2OsuCGFxTgXE9ueKEpqUKLKMFNfVpyBJ86XOkNAnxoh9qcr+UZ5noqFczx1r/DxvCgqXx+9xbONLXOgbYNqfWuH428LDqSGaCko5Ul/Lg8ERjLkiTsfaiwmZxKmNTdyaWloeTa2gpqzHyDdf3Fzx+CioSNgD8zu0HJUOkyYHo1qLVliauKfICrfPPaT1dhff+ekRyhtSm1tvrRx6y0EQhIj7Lhq75KfPZaHNNsH9sVb8UnBe3weJxlSh8w4XeJvtAwUWeq+erGjmo75TbgAAIABJREFUzOO1D7UFOFBRzelHrYw5khOyi3KMqGWRT26Gvis/O7aP/3T2BiBSmp/LdMDLBk0OExN2/vWPj7wQYh5kBb1oMsGtGB2llBX0sqSb7BOWJSMpLi7G5/NhNpsxGAxpeRmvV5Es04t4LMVNmKjASX5+PkVFRTH3Pseo5dSRZj46c59J69IcDGEmLA5MA3o0G7T8oauDTdWFvL5/N1M907Q/HlzWPqPp6xhnX9lm8k16bPaVTeyTLdRx/1E/J45t4+ydVXa7zHkGv7nXwXf2b+XM3VA7wo4uv8+HHBVWq9Fq0em0M4JOeglLOleedHFsdz0XHy4311+I4nwjL+/ayPnpNhyTS7+/syJo4m38ssQT6xD7S6q4M77yZzIpogTQMEEpiM/nj8mPp1ap0ep0aDTqRZ9PW8DLtbEeTm3Zwpm2tqSboVKJoBLnDU4UedbVN1fsk2UFWZaY6+oDCAYCeBQlKpQ3JPwl04WadDpe21TKZcutRbe9On6fk7X7+aSzE5+81tXTMzOV8fPpMXx5QX60t5n/1HEjhXsOn2/mvhcXw6w14JIdeKXkQ7dFBDZNFHHmH75O65jAJflwSaH3c57aQJ7agE6lRitqUCV5ze0WB7/7q9Mc+9FBmg42oNGlZvqxngS9MG4lyKTPzaTPyaB7mnuTgwTkmb5LpUIbI0IoM47mcP8nRf1dJvzsx0thkChPaU1uEX1jNgJrnPtzV3kpB6qr+f2Nx9i9yT33FfkmLNNu7nWFipC9t38bf7rRgixDeWEe9oCPIq2RqUkH/+qDw7zUWLauno2VkAmutEwhE0JuwyI7EKmanSVLusgKelkyEq1Wm/ZEpuGOPrrTzVTCOaTCoWqZnCMjmRx6Pp8Pi8WC1WqNyTERLnCS6OVnzjfwgxM7+e3nd/B4A8tqX1ffBHvyNlJbbKZ9dJxBh4vqokJef383z652MTXuWNZ+w9y90s6xd3Zz/lrrysMmBWAmRHGhQen1m52ceHkzX91LTbhvsk2D2QmVPyDR1jvOzppSbrX2EvDHOrq0Czi6Ut62OQKV3e3H6vRSbs5jxLL0+6tWiRzYsZGASeIPkyvJ+TV77oqSOEyq12GhtrwIk0aHPZB+F1N0Bj1/IDDPTanRhERYtWppQ4YJr5sHliHebGzgy46VFfsQRAGVqEKFiujeQVFAmSP0hRx+UsjxpyjIgfl9RUTcE0RElRgl9IVy9YmCwHe31nPJcjXpNl4eu8sPGw/wD23Z6reJKNDr6fE+44OGRh5NTNNqm1jrJmUEx6rq+Wr07pI+U+/YwJf/6eKqLvI5gh4cwVD+NxGBPI0Bg0qHdiZMVy2IiIIQNxefIit8/Q/XGe2Z4NUf7CO3wLDi9mSqoCeh4JGDuIMBXJIPdzDAdMDLoMvK8+lx/EmL/gKCIKBShcdWMb0fHo+HYDA4M2YSUBQZSZJRFDlK9Itli7mJj5+1IKpmwnfDobwz48x0YzboObKlFmfQy422gaTEPI0oUlds5nH3KF2joSiNl+oqmJp2MzbtpCQ/F5fkR6/W4HF4+Ys/e/2FEvMgM1xpmUImiJvZkNssq0n2CcuSkazGS3g9OfQg1N5gMIgkSRn9wk7k0FMUBYfDgcViwemcddiFC5yYTKak7nvZhjzef2s3f/f5nWWnv3vwtJ9X99UxYp1GVhTG7C4+sXdw6EA1mxxw73I7cpzQvmS5fr6FN97axpfXknMmJUJAQJlZoV/o2rg9foYHLWyu3kD7wOpMkGfzwYVuQiAYoKWjn8MvNaLXCPj9SoyjazXdM/FKPDzsHOLUy02M3E4+9FYAdtSXU1ady7nJVnyTKxP/Y2+hwkLX5JuRDt6t2ckfO5cWgrcSPB737AQZAa1Oi1Ybyo+3XIZcdnQqNUfq6vimpydVTY0gCCCoQqJc9IDG7w/g9XpDVSXVaqQZoW9W+Ity9QVi9yeKIu80b+PKxFUCciAi+C3mSpRRuDJ+hx817ucfOp6m/FzXO0V6I3X5Gh5M99Dt6qEmr5odxU181tORAa7GtWNfcRXP7L1L8lVWSoU8/OgRAf/yFrZSgYyCLeDGNidMVyWI6EQNepUGnajBoArl5Qt/e57d6mByxMrJ//YwRRUFyz5+dDqKtRZuZBSmAh4G3Ta6nVN02Sex+73IaXXLzobVhvL2xYp98fKTHi7bzPWuXqSZfnDeHuNWIBdmxnUru8Yi8N3mzUxJTs4MPeVE/jaeDy9ehX6juQCfV+LTG8+QZ+55SX4OWytK+OjSQzaYcvBIAbySRIGg5yfvvPzCiXmQDbmNJhPEzaygl2U1yT5hWV5Y1lMOPYgV9DKZuQ69YDAYKXIRmHHKCIIQKXBiMCx9lX5TlZkTr27ly2vLDzO9eK2V7x9r5vOW2X1c6xtAr1bz5vs78E94aLndi8e99OqVPm+AjgcD7N2xkXtPll9FLuzKTFTpNpqOrnGOHNpM78gU/mD6/UERQQ9wOByRycHF28/54Vv7OX23de0GU3FCSAGuPu3i+J56vn6wcOhtTWkhtVUFaPPU3LL3cWu8N6VNU5TF5LzQ778Z6eRkTSNf9KUn15Eky/h9PgLB0PdSmQlN1WlX5qace27ddgtaUcUrVdXcGhxYecOTIHx8QRDQaDUJXX2yIiNLUZNeRWFHWRlTSj9Wd6ybM3qyqxJnnX2CMOtH8stB7lgf8n79Dv7Ylbqq18mQyfNXAThRXccd6+XIz/rcAwy4hzhVt4NJl8iV0cUn9982RAQq8oxcGkvewZor6HFemWJscDLys2RTNKwGkiLjlny4pVl3sV7Ukq81YFTpEQWBgd5R/v6vPufd/+kUhg06dDo1uSo9whL0r9US9BQBnJIXR9ATeRfPBnmr6XNO89w2Rpd9MvFO0te6SEtiCRcQmn0H60U1JpUJuzSB0WhcRgVyYY6jebb/W4zawgK215Tw9XArHinA+xW7OXN74YiCqoJ8VIjcft7PpGNWNNaqVLy7bxv/+dwdzLlGfHKAaa+XepOZ917dzt4XUMyDrKAXTSaE3GYFvSyrSfYJy5KRrKZDbz2E3ML6cRSG2xkIBBgcHMRms0UG3hqNhqKiIgoLC1f8ot2zrZKBESut3WPL+ryiKHz59VPeeWsnZ1tnBR5vMMjn7Z2IwJHvbibHrTDRb6Hr+SiKnPxsY2TAQklFAcXmXCYty8v5t1il27lcvdnJm0dTVwAiEbIs4/PPCp2SLCMKsxVPrz/u5dT+bXxxf2UOxeUSz6EHodBbi8NLhTmP4Tihtw0VRdTXF/HUP8I5Ryt40tW6JBQ9wOp3M+yx0WwuocUynrIWxMuPB6DV6jAY9GkRB1qnJ3iltJqa/AL6bKkpRLNcol19c8nT6thRW8iViU50Wm1MGG/0ZDfaFyUAQpTQFwgEeMZzTm1s5Ex/ZiSeX2tOVDfQYrs97+cyMg+sjyjRFfPDTVv5Q/fyF2nW4xz+e7VNXJ+IX3AlHiICpb0Gvrx0J42tSj1e2Y/X66dMLzLqtQLw3rtv8r//5lNKS/LZ8nIl2nKRgpwcCrW5FKiN5GkMaAU1GlGNRlChJvb7KiOjydEnNV4UBAGfEkRSZFSCiAoRVbQQrwQJKBI+OUhADuKSfEwHXEwHXHS7Rpn02ue9TxrzKrF7RTrWMGx8KVVuT5Y389njtpkQXlXcMZgSXuAIh+xG/j6Txw8J4op9YsxihxAR+wQO19fgVfs4PfAEgAPFtdxvHyGYIC1LvkFPsSGHm619jNvnF/v654f38Nuv7lGUayQgSEx7PVTn5fN6cx2vNle/kGIeZEaYaaaQCdci3IbwQmCWLOkkK+hlyVjC7qR0sV4EsjDrob2yLONyhQZgwWCQ6enQxD03N5eioiJyc3NTNtjSadS8cXAzw+M27M5lFCgQBDxeH08eDXJgazU3e2KdQzJwsTMUIlhUYODAP9kJjiAjXZP0tScnIj661c2xd3ZzbplOwrlhrYshSTJ37/dyeNcmLj/qXtYxFyIYDOLz+yNOyzBGgyGmcp/L46ezf4I99RU86BpOeTsWJaaabKxy9rBziFP7tzJsmb0nFUUmdjSV8TQwwidTT9LbNCE8CUtC0QNarCMcr9hMv2MaR2DpbtEwSoJqwxqNFhSFQDCASrV4WOlKuDU2wNs1WxlzOfGmeyFlGaehFkVObd3EJeu1eXk8FZjNSyXFFuZQFCXi+AufVZ93GDkgc3jDRs71tcdNTv+isMlkRlRZccuJ++lx3ySOgJN/tnkfH3d34A6uXSjpalFvKmLEu5R8alDv3MDFv728+IYZSJEuD4s/tJCy/8AOWkem8PuDDAxOMTA4RfXGYpoOVNCSP4BTnl1NUQsiBrWOXLWBXLUOj+THI/nxS0Gs9mlkQaFWrqDSUIRJYyBXpSdXrccj+3EEQ866EY+VUY+VoCKhEVURkVCv0uKXA7iCPrySf2lhz4ZS7o2tfjXyWJIrCLOjsJIng+NIi4wlBEFEpRaJI/VFFSCa7+qLl69PFEX+bO8Oblt6GHJNI4oi+TojBreOgamRuGPB6sJ8LNMePnsS/7q+/0oz5263km8w4FGC2L1eSoy57Kkp5/DOajTqF6dfnUsmhJlmCplwLaJdgi+qyJxl9cgKelleWNZjyC1kZnsDgUCkyEW047GoqAiz2YxOp0vLcc35Rt55Ywd/+9nS8+mFX7CDoxbqajZQnGdg0hHfkjXl9HC6LRQStWljIa9v20XX/QGG+y2LHufOpVYOH2rg8u1lFAWIGPSSPzmL1YVl3JGyfHqKohAIBPD5fUhSuFptyG0ZDAaRFSVuOEHv8BQHimopNhmYtKfF6rYA4dxC8Z1wV1u6Ob6ngVvP+jiwq4YRjYNPLOkV8mLbpizpeb043L7sfHrhasO+OdWGtTotOq0OURRxe2buz0rXT4TF93G2v40fNm3nD09WLzdgMgjAe9u2cNUav/qqQGiyK6pE5s52ZUWZdbbM5KZSFJlBxyjkwcmaRs7EcZ4lqkL5bRr8a0SRV8pKuZVEcRGP7OX65DXert3L3TErPQ7rKrRw7dhZXMKF0QdJb18uFfD0D0/xx8ubl+GPjECoOJJfDlKywUzx5gpuX4wtMDTQP8lA/yTN26up31NBj3YEGYWgIuMIeHAEYt8jsizjkfwIgsCwx8KwZ/H3MYQWvrzSygTjV4ubuTKS+pygSyUZh56IQKXazJmplRTNCofwxmuDElWMKNQHluXkcGhrDZ/2PMAXda2Ple7ij1cfh/ICR/V5WrWareWl3GobYHjKHveEXm+qo3/ECgo4JT+ugJ8CnZ4tGzZwpLkCg+bFFfMgG3IbJuykh8wR9LJkSTcv9rc+S0aT7klNJgtk8ci09iqKgsvlYmBggLa2NiYmJggGgzHiXWlpadrEvDB1laF8eksl2v1293E/r1XXJPW57gkrn/R0omzL59D3d1BeU7Tg9k67F8eonbIS09LbyNIcemHaOsaoKjRh1GsX3zgBsizj9XpxOBy4PR4kKRRWq9fpyMvLw2g0xuTRi8fNJ728srl2TV40QgIxVACKTLmYCw0cO1LPn5wt3LMuP8/hctu1FPVMAc4PtfL9TU1Jf0aSZTweD3a7HY/Xg6zIiKKIQW/AZDJh0BsiA//V1AJkReF8fwdvb9mS5iPFz6OYiO83beGe8x7BZdSnFYVQBV6NRoNOp8NoMJBjzCE3Lw+r4sAmjPPe5h1oNBrUahWiGGqbLMsEg0H8fj9erxe3243T6cTpdOJ2u/F6vfj9/pBwvkDV8Ezm5MZG7lnii6TxUFC4Y7nL1iI1h8qS65PXI9/duJWbk8mnRshBi++mjaGe5aWYWGtK9YVMeu0IosDxHxzizMXE1cJbng5w8R9aqJ0sI1dMIsfuKouZWlGNXxKx+lZ7oSoeizv0vluxnQsdqXfshwmH8Kpn+r+3mrewc2sFZ8daUet1GI1GdDo9b1Zv53brQOQlqMgyUjBIhSmXUmMef7z6hP4xC8FgMJQvOhhEliQUWWZLeREmrYbRKQe2gBdXwI9BrWFjXj7fe7kBxe964YWsrKAXInwdQhXr126lI9yObP68LKvBi/2tz/JCk82htzxkWcZisdDV1UVPTw82mw0Ak8lEXV0dDQ0Nq+5+3LOtkqb6siV9Zm446+WbHbzdvDnpzz8dGeez/m4CW3I59N4umnZvTDh4ePagn1315UtqX3Qbl+Ocunqjg2O7Gpb8uaAk4Xa7sTsceH0+ZEVBpRIxGgzk5eWh1+tnB4yRZHWJG3jxTjvf2b90wXXlhO9vaP6wZeMGjr1cz/FjjTirvPzX0bvY8ZGrXr7oudJ2LQV30E/L9DAHyqoX3C4oBXG5XDgcdnx+HwqhasM5xhzy8vLQ6XTzn9NlOEFXgi3gpdU+zsuVC5/LanGysZ4Ofwtuaemh+wsRdiWN+SxYlFHeadyOwWAkJyeXvLxccnKMGAx6tFotGo0a1UxOv7DDIBAI4PP58Hg8M/fUgcvlwuPx4PP5CAQCSJI0T/BPY6aKJbHdXIpTGiDI0t8Dz+1tBMUhftSwDfUiE9RMOd9kydfq8MpOXMHknjcBKB/K5e6XyefayyS0ohqv7EdB4dQPjvD55cXPIxAI8uWnj1E/VlMpLLxottoFQQ6X7OLy8MKFlVaLxRx6JfpcRq1ufKswzs3X63h/dxNdgXGujoWujyiGxL4NOXnovHqmfUFyc3PJy8ujsbKcnTUb6Ry2ceFJV6SCLQCKEnH+FRh17K2t5GHHEGMuB3aPFzUC5focfnRkJxrZNXOsF3tKmwl54zKBTAi3haxDL8vqkpWNs2Qs6V5ZCYc2hQcNmf4SnFs9drXx+/1MTU1htVpjXphmsxmz2RyTcyp8LSVJmpeLKh3oNGqOH9jM8JgNmzO5VXNhjoPH4w3Q2zXBrqoyHg2OJn3strFJ2pikwKjj0I92gkci6AwwPWan69loZLJ96+Jzjh3dwsWbS0iSH2ni0mesigLXb3VyYu9mvrq3eKiNP+DH7/MTjBJhNRoNOq024QpjxEG4wH59gSAtHSO81FDB/c7Vy6cnCJCj13F0Xz1ak4pb9n4eOgchqj7J+cFW3qvdyae9j5fhy1p9eh0WyjbkUW7MYySqAms4P57P50OKyo+n1YSKlKgXGVDOfhdW3sYkom4B6LBNUVKWR1VePoMO28oPHKcdJNGWE/X1jChdWPz2lLchmmFPKPz9reoGzg90El2Fcu7XK5Krb97/8XNVwUyhD2FWEAwGg2uaq08jqtheVMBt6/JzjI15x5n0TfGDTXt4PuXiqXV9utPm8kZVIxdG7yW9/WZnKRd/eyX+L9eBmFmky2PEY2X7rs0Mub04Xb7FPzTDvVvdlHSb2H5wI75SP6PybBh2OnMsJ6JAY2TA6SCoZMobY2GH3oGiej55tPxCM8lyuL4W9BKfDDyM+0geK9rC6TttiIJAXbEZryfA454RRqdDL+QY0UOZWVpSFDRqFT96dTdnb7Uy6nLgC0poVCLl2lx+eKgZlc8SyVs6ODiITqdDo9GECnRptWg0GjQazbcqjUEiMkXIWmsyRUgLtyPr0MuyGmSfsiwvLOEwgWAwiCRJ60bQW01HoaIoOJ1OLBYLDsesgGAwGCgqKsJkMsW9bmshPprzDfzwO7v5u8/v4vUlkR8njobR3T/FoZJ6cvVanN6lFSCYdvs43TqbJ8+cb+DQP9lF0OKj42E/1ikXUwNWqisKGRhOLjfUrGC2vImL0+mlv3eKHfXlPOkamfd7WVHw+3z4/f7I6rgAaHW6/5+99/xu5ErvdZ8q5EgSYM5kk+xms3NSd0sjjVKrlTXSaEbjY69r+9rr3nU++K57l/3lrGV/8H9xjsfHcewZzyiPpJbUih3UOSeGZs4kAgGCiFV1P4AAARIkARIgwWk8vSiRQKGwUVWovfdv/973RafVrv6dSMOhBzA86aapxoZeqyYQyv31q1WrePbIDiSLxCfuu6gDqQd2CvDZ0D1ea9jNBwMbk0NPWIdIC3BhaoCX6zr4or+HgBRemh9PENBpdWjTOX+bzLnxfl5pbMfZ5WNuE5zSz23bxqTwkIlgerm31suofwoZhVcbt/Nx//IVoAVBRKUSWTofURJEPSku7kmSjKJEhUCIXlt+/8LCRnKOvpiQmNtcfc/XbeOK68K69yMpEpedV2gw1/FmcTsf9N3fEuL7cmyz2un3jaZ9T2/xlXH2H34g4E9fBMsnjCots+EARVYzLYdaef+L9IXMGJNTHr7+6A7lZVY6jtajqoBBppCIVZHMdquX55B9J+/33tm4N1yFWD+S6hi0F1Vwd2Q6p+9fotfxdHsz56d6mXCnXhTZV1LL7d4JaoqLIAKfX+4kGFnBtStERz4qUeT/fOYIX13rYmzOiywI6LUaanQWfvrkbloqjASDqnghNmk+umDp7oS4sJco9Gm12j+YggXKvKMRcm+GyHfywakYM4pAQdArsDEUrrICectGdEoxQS8SiWyIk2w9bGTIrSRJuFwunE4noVBU2BIEgaKiIux2OwbDynltEh16G0lNuZWfv3yA//joCuGVBowsX0H2/NWHvPB0B+/fST+/USqcPj8fd0XdeIcfr6EdPRM907Q3lqUv6K0j5DZG38AUxytbksQ0SZLiIXuxXatEMb66ne53L5Mcf+du9nHi+A4+uZQbt4Beo2ZncwVFxXoUg8J7fVcJzoQxm80rvi4gRTg30cdz1W2cHl1P0vB0Wf997ZOBO7xa38G/3rwUFwbE+fOn1Wgzv3ducMhtIp8OPODNHbv54M6d7Ao1q+QqfKa5aUPFvBjj/mkCUpC3Wzr4bcZFToR5QU5k8fAt5soLBAIIQrS/WFyRcsneBOLi3mLRbz3XaZ25CEV0ImfxjA74hhgXJ3i7dT/3pr3cdqXvos4n9pZWcHr8WlrbNvtLufLPV/HO+HLcqtxh1ZiYCLp552ev8B+fX17XvianPEx+fAedTsO+Q41Y63R0iYOE1hDSvRYq9CX0zDjzyBS5ckua9RV8/HD5hYP1oBZFTra34JRn+WAwtSsPonmdGkQ7nUxzrXsw7shLhz9/5jBfX+/ioXPhHl1rsPLa0Z0c21kbH2d2d3ejKAr19fVEIhHC4ehCVygUIhwOx/OUhkKhuPgXb58oJgl9iWJfvi+IJZKYP+9RF/TywamY2N8WBL0CG0HhKivwSJMveenSYSNcb4FAAIfDwczMTPx9NBoNNpuNkpKStDumzQwPrq8s5ucvH+DXv79KRFr+/ZcT9BQFfrj8kBcOtPD5/TVUpk3B5YERAKpKLdQXaXjr9QNcuznEyKiL0EqOtXW6uWJcuPyQZ5/eyYdnbxEMBpPDatVqdDrdmgYdC0UxVm+fLCvc6hzlUFsdV7qGMn6vxZRYDOxoLEOr16DWC/hVYc5N9xLwRsALUoJbaTWmArMM+dzst9dy3TG87ratxFqKYkD0upSkCMFgdJLyXtc1fta+j3e7bkfPn0a95lxS2Qy5zRRZUfh44C5v7OrgvTsbU/l2b1Ulfu0EE76NFfNiuENeLjmv8Yu2g/y25x6RLNwnY47z6O8iBoNx/plUrj4FWZbmrykpZf+X7OgTM3L1Ha+s4bJ7mRDRdRCUQ1x0XKTaWMU79na+GOzHGfKzJeJOgSPlddyeSa84QWPQzq1/v4VzKvvh6BuFRW3AG5njxZ88xWcX1h56vZhgMMzFc90ossyBx5owbtcwTu6P0y5rM+/350917oWubakAf7xsGxf7c9OXPdfWDDqZL8fvEZKXHzsLwOsV+/jmai8XM+zz/48fH+Dc3V56HAv36BqTlRcObOeJPfVxsS3RmabT6dDr9Uv2JctyXNyLCXuxv2VZJhgMEgwudcCqVKqUQl8+hvDmgystX8iHkNvEPrUg6BXYCApXWYG8ZSM6zI0u3rAechVyqygKHo8Hh8ORFK5gMpmw2+1YLJaMz8VmC6VNNTbePrmf33x2DVlOPdlbTtADmPEGGO5zsr+uiutDS0NV18rYjJffzTygsayEpt02bDuLMCkaZL9MyBdidMTNyJgrIdH1+kJuIRZ+F+TSpS52N5Vz4W5/NKxWG82vpsrGADDN5o1OzdBcY8eoVTO3xtDbtroy6mqLcKp8fO3sBh/RnyVkds12zkxyrLyRWmMxw3PuNbUtPTIriqEoxIsjJH6fwoLM9ZkxXm/fx1dD2RGeN0sWCUoSX41088r2Hfy+M1sOztQiZY3VSk2pyFV3boXb1QhIIb6bvMhPWw7xaX8fnlB2C3IssLKrb0HoS3bzrezqS3TzqZJcfcerGujy3sjRZ4ky6h9j1D/GY9Xb0dPA+w9jIkt+TbITEYFKk4EHE6vfW+pDNjp/fY/JEceq226GqzZdTGo9tftqGPT6cOXIZXj5fA/F98wce2E7M6WzOCTv6i9aA83mSu66JnOy77WTOsRSjYhJ1jPpy+4xP1JXQ6nNwPnJh8w4lr9fFWsMVKis7C6q4V8+v8qwM7P8pO88vo87/ePcH5+KP2bXGzm5r42n9zUkFclJx5kmiiJ6vX6J2JdYfGix0BcrOOT3+5PSF8RIFb67mSG8+eBKyxfyQdyUFuWiLlAg1xQEvQKPNFup0m22XW+RSASn04nT6Yx/flEUKS4uxmazpVzpzLStmymUtjSU8taJffzu8+trqoLYOzjNY/ZGyi0mJr3ZHRj3T7koNumZEYN0OhcmbU1NxfxofzsRd5j790aZnJzPBbiG9sdWnmMh04PDAZqbyiktthKWsyOYrySKLsf5m3288Hg7v7+UXkizIEBLTSnVFVa0ZhVXvUPcnFldjFlLrrofJvt5pb6D0UH3BuTpWrld0fyGIUKhYFyUFgQBrVaLThcNB5oO+RiZc3K4vJbLk+sQqNboGswmrmCAa64Rnmlu5uve9FxMmWJQazjeVMn3zvXndssGkiLzzcQlnm84wHdDI0wHluZ/yiUxV9/ffsreAAAgAElEQVTSSaCyjMAXc/VF8/YtpsZaTLE6QL9rGtW84CfExcTsc9/TiUZQ82bLbq6NOLg/M7X6izaJF+vbuTC9eu61mkgxfe92M9KXb+JRZpRozZgrzZQ0V/HFmdzkJ43drWY8c3z53i0aGspoO1KFs9iLW04/tDMdGow1fDiZP+68lThZ3cGpu9mrwqsVRV7Zs51LzgEuD6e+N2sEkUZ9KSGvTN+gi/IKkU/uPchYzHvj8E4Gppxc6x+JP2ZQa3hlfzvP7m9Cq0metsbGw2sZzwiCgFqtRq1WL0kjoyhKXNhLFPpCoVA8rDccDi8J4Y310YuFPo1Gk1OxLVHYfNTJB3Gz4NArsNEUrrICectG5dCDreXQkyQJRVHWdHxiydIdDgcejycudmi1Wux2O8XFxVnpBDcrh95idjSX8/qze/ng9M2Uz8eqHC93PC9e7+fEUzv5pLMrK2FxidzoH+PHHc1M6GZxz4d79M246ZuJOjgeO1jLTqWGWaePSFBianoOl2uOcHjlYxqJRKudJorUarUarU7LzdujvPDMTj65uL78gHHWcA3KisKNB8Mcbq3lcneyCFVps9Bca0NnVCNoBAQRFJXCVfcQt/wjkF4B41jjMm4bwJcjnbxc38HHg7mZvC0IjamflyR5Pr9hKL6NSiWi1erQapeG+nR5pjhS1sA2q42HnrWFkG5myG0iw7MzWLQ6DtfUcXlkfWHZi6vcqgSBV3e28J3z3Lr2mwvOTl7jx3UHONU3wGwks2I8uSHR1ZfMgqsv+UdQFJ6ra+LMxGkAFpclijn6VLHQXVFAJarWbaoLKxEuTV+m1lpDc/F2vp4cXN8Oc4BNa2BW9hKQVi7WVCFbGftokIHOzKuB51MEoABYjEYOvnCAX396ccPed2BgioGBKbZtq6B6mx2tXY1slRmKTK/LyXjEvoOzY31ZbGl2SFUEodJgYdTpI5SlsVdbWSkt1cV8PHwrZWVfnaiiUVPG1ISPU91dhCWZvbVVqCUVtwczy3P5/J5W5oIhLnQNxB9TCQI/ObiLZ/Y3odMunbLGjkG2haxEYc5kMiU9J8tySqEvFAqlFcKbKmffeuc7BUFvgULIbYFHkcJVVuCRZiuF3ApCdIIVm0Bl0lnJsszMzAxOpzMpfMBisWC32zGZTFkVUDczh95idrVW4PFt5+sfliaHXk3QA/jmXCevPLmDD9ZZJCMV397t5ZWD7XzU92CJYHhxfJhIRGLWN4tWpeLAjkb2mCswiGqQQAgrBD0hHj6cYnraSygcIhQMJR3zaFitNjpxJiqm3bw1xJH2ei7dX//Ed6HIbWaTpbFpD801diwGHbXlRZSXW9CaRLoDU3zl6YLMFvVTt22N+QeDUoQ7rnEOltZxdXr9uf5StGzJIwv58YKEw8lCbCy/4Upfz0tTAzxfs4OJudl1CUJZ0fOE9e3ovnOSQ+W17K6o5PZENgofRBvz2s7t/DCzceJCppyZvMbLzYf5oKeHoJy/jvHlXH0vNrRx13cZg8GwIPRJMrIiJ4mAESJL9rcQuiskhfOmi4JC90wPFeYZftF6iN8+XHo/3UyertvG6bErK25jFvSEz3vouTWw4nZbgQp9CY+/9Ri/PrW+Ihhr5eHDCR4+nADAbNKz/1gT+no1g+JkSlFqJbSiGlnW4AhurHs2ExL7hsdKtvH+reyMVV7YsY0JycNnw0sXtwSgWV+GdyrEx/fuI8/3syVGA4ebGvjt97eQlkl3kopDzTUUmfW8e/5W0uN/fPwAT+9pxKxPHba4GUJWrACVTqdb8pwkSSmFvnRDeBe7+qJ9/+pj83wIM80X8uFYFAS9AhtN4SorkLcUHHpLiVYulJEkKS1BLxQK4XQ6cblcSatWJSUl2Gw2tFptztoJ+XFcBUHg8K5aphxebneNLnkOVhZ9whGJq9cHeGZXM193Zj8U8NSNTl4/2M67XSkGzfNfAUlReOCc5oFzOul5WZbZucPOEW0pki9CyC/hcszi90cw6LWo1WpCoTBTjlkikejAd2LKQ2ODHbNRw+zcyo6R1Vjt+Om1arY3V2AwaFFpBFRqAVQiggiCKPBi0w5+P3aXa76hZfLgrat1a35ln9dBo9mGRa3HG8lubrPEohjL5cfTajXodLqMRPuvRjp5vXE372ZcOZXVbYMbzJXJYY5V1tNeWs796TWGHiac/pOtLdyeu0koj4UygO8nrvBWy2P8V9d9IhsQ9J0tdtoqCCpjhImknLwscfXNC32yLMfzWK1cmENMcvgt99V2BFxccv7AT7cd5IexaQZmc5kLMz0O2Gu4PzOwosatQqDsoY6vTq9HAMsPi55O1HDs5YN8cflBXizozfoCnDl9H41axcGjzVhbDPSrJ+JFk1bjR2V7+Lg/N5XZ18tCvxs994fsDVwezNzduRizVsuJjm18N9GFc5GQWaG3YpH0BGYjfHejj9nAwgKSALx9ZC8fn7+Px7/UobYcTWUl7G+p4ZdfJC+4/PmTh3h6VxNG/fJT1XxzpqlUKgwGQ8oQ3sRqu4liX2II72JiTsFUOfsSxwf5EGaaL+TDsUjszwrnpMBGUBD0CuQ1MQdVrthKOfQg2t7YSt9yKIqCz+fD4XDg9S4kiNbr9djtdoqKinI++MmXkNsYWo2aZ462Mu2aZWxqwf6VrsNs2jWLbcTLrupy7oxmN7dRRJI5c7eXV7Zv5/e9yS7C5QSzWFhtOBLhgtfLBUCtUqHT6aisKaJEb2JGlghLYUxqLfsPtaCTRQgpRPwSAV+IFx/r4PNLDzAYtFiMOgw6dTy5vSQrjE7O4HT74ivvED1exVYDtZUlmExaFEEm4A8iCio0ag2COD8JVwtoDSpm1WHOTQ4QCEYgxfje7NLyTN02fj+0em6pTFmrQy/Gt2PdvNG4h/f7b62+cUZEGxYOR8/h0vx4uvkCA5kho/DtWA8n6lv4YjCzIhn5IQUk88P4II9XNdCmlNLlmF79Bctwoq2NcfrwRnKTlD+byCh8N3mZt9uO8J9d2f9O5AKb3kCHzcRV9/JVTJfP1UfK8N2Y0Ld8YY5kJ1/id1xSJC44LrHD3sqRina+Hh7YNHeVWhSpsZr5bmLlfGatrjI+/9U3G9Sq3PL40X08nPUy7cpNcYq1Eo5IXDjbjeaCisOPt2Bt1jOqceCTlhee6o1ldM04M3b1bTSCAHpRTTFmLrnX7mquNJt5rLkWR2SWDwZvoqBQpNFToSoi6JcIBSS6u6cZdqSuKPzmod2cv9XPhDv9/IU1JVae2buNf14kZv/F00d4ZncTOvXKY9V8E/SWQxAENBoNGo1mxRDeVK6+lUJ4Y+JebA4Tu2fm+/HIJfkUcrtZRVIKPHoUBL0CjzRbKeQWVna+SZKE2+3G6XTGO39BELBardjtdgwGw4Z1LPkUchvDatbz6tO7+bePLuEPRFdCBUEEpLScSV29Exw90ESZ2cjUbHYniG5fgM6hKY5U13JpNCGvXML5iiVpDgaDSLFE0ERDNRLdXA7/HA5/cvt63Mm51dSiiCeg8OPn2rgwOUh/cIbZUJCILCMDWo1Ia0cZTxirUEWEaP4hUUARFYb9M1x1jxEIRleb5/xzaDRaTEZj8odKY0w/GwpxdWKUpyq2rTrpzZzFWdQyQwG+He3hueo2To92ZaVFkiTHB96x/6+UHy9TXKE5JoNeWotL6XZnLoJlZelEif1n/feac2MDPFndTFiS6XNnlh9QQOAnuzsYjHTiCWSUfHFTiSgS56au8k7rQX7dnd+inkoQeKGumYuu79e8j+XCa5fL1beSqy8SieDz+RBFkVvBO4iiyL7yNmza7VydnKLXu7Yck2vl9cadfDNxbcVtmgOlnPnnCymLjGw19u1oQ9do4+aZ1Dlrc0Umd5pwROL6hT5eLX+Mzj4XZeVl6MwiOouKGbUXZ2RBiGwxN/BBf/5+BxOF7JNVHXx4a2lakXTYW1VBfVkRA34nH41Ez12p1kxRxEh/v4uLQ6uH8B5uqsPvk+gec6bdj9TYrBxsq+XL68k5iv/7c8d4oqMenWp1UWqrCHorkU4Ib6qcfbF7YCCwEEXg8XjweDxx8XCxqy/dEN6tTD6F3BbceQU2ioKgVyCv2SiH3lYW9ILBIA6HA7fbHR/cqNVqbDYbNpttU/I35OtxrSg188Zze/n1J1eiGl6GtQAuXOvj2R/t4PTDXgJZdnUOTLmosxdRotPhigmy88/JioLX64275cRYwmadDnENg7OILHNlbISZUIBii4GeGUfS8yFZ5q5zgrvOiZV3JKxPNAMYmZ3Brjewu7iK2+6xNe9nMdmIInWF5pgK+mi22NYsBigK86E2yfnxRFHEYDCsmh8vU245RzlZ286Ax0koXUE9z0JuE/l+tJdnarYhyTKDnvRCKNWiyKs7t3N+6iyzUgDzIkdEvhOUQ1xyXucXrfv4uK87TwplLOXlxu1cnzmfk31n4uqTIhLyvItqsavvxvgt4BbN1ib2NjRzfnSUIZ8nweEnkAuP6mPl9Tzw9K/o7qqUiuh+rxPvTP67R1ejstTOrid382+fbWDRmTXer1598Qj/+e1lIrLMg4RaF3UVNpqbyrFUaKgvL+Wb0cyczhtN7OMfr2jh0sAYUobHY2dFGc0VRdxyj3JrZBCtqKLNWEHQK9HT5eDseHp5dsutZjqqKnn/3N20inHo1CpKrSbKbRbc3jmGEhx/f3XyCY5tr0GbhpgH66tyuxVYLYQ3Ju653W5CoRAqlQpJkuIhvHNzyYu7Madgqkq8fwjiU2whCPLDoVfIn1dgoyhcaQUeabZiyC1E2+vxeHA4HPh8C5MBo9GI3W7HarVu6gAn30JuE2mpt3PyRzv57Pt7aeXQW8w35zp58cc7+fDO/axnuTr3oJ+XD+3kvZ67RCJSUpiFrCioE6qkZeP8djscHDXW0Wgppt+beb6pbOlAt6bHeaq2iTKdmalg+uE6KyFkQWwEuOkY4cW6doZ97vQFMhIdlaEl+VQkSUKjUaPR5KYLPj3SyStNHbz3cPkwyETyfSr09chDXqhrYzYUxLmK204UBN7s2M4Z9w94wnNb1rnhiwT4ZvIizzXsocs5yz1XdkP918vh8lqmwj2bkpdwsasvHA4TCASi1by12pSuvl5PH72ePnba2tlra+XdntvzrxZS5uoTRXHN91izWovNoOb+1PIuWSsG/GdcDHStN+fZ5ovwer2O1945wf/6MP/Dhp862sH3XT0pi6YMTTgZmnCiU2k4vlukssyKzWhmLOQmIOXjGFGhSGvAIBkZdqdfwEmvVvNSRyvT/lnujU5ARKA6UoJvNsSnDzszKiijVYm8cWAXH51LL2+e3WxEUAmEBInt1aX85vsb8ef++/PHOL69Bk2aYh78YTj01kJiCK/RaGRubo5QKER5eTlmsznJ0bfY1Rd7bDGiKKYU+jQazZY5volF7jazzYnmigIFNoLClVYgr8m1KJUYGrpSpdN8Ida+iYmJpJXJ4uJi7HY7er1+M5sXJx9DbhPZu6OGaZePM5ejISqZCHqyrPDtuU5ee2IHH9zObrJsGYXTN+7zbFsD795Pzt1mMhrRaFJXelsPF4aGeKG1lWn/XMZOICGLzq7vhvt4rbmdL0bvZSScLU9MrF3/nr4c7uSV+g4+GLi96rayrBAKBQmFQkn58XQ6LVqtjnA4jN/vz6kZLqLIXJga4KnaJr4b7lv9BRk6VTeDz4e6eLNlFx/dubeskC4Ab+zczg+eS4RjQlMeug7TRUHhh+mbtFkbeMHSwucZ5kbMFUVaPQ1WDdfcqzh4N5h0XH0Pfb3ohRH+dNcBzo+M0eWaRJYlZHnp4pMgLLj4Firxru7qe6G+jdPjV5d9XiOoKOlU8823ayhgk2eIosgf/emr/Oqz85t3/0hz3NZUW4FsVjHQvbLbulhr4Yur0TBTk15La0M5pSVmVFoRUQNqjYqgXmIomH54aS5QFHi+ejcf3n6AVrs0XHMxBrWapxubmJkL8Pm1Lm71j667GvQfHTvI6atdTM6svBAnAlU2K86An2A4zJ89eZj//eWl+PO/OLafJ9ob0KgyG4PHxm5bRXDKFYnCZiwfb6qidzH3XqriHLIsEwgEkkJ4Y8QWSxKFvnwM4c2HcNvEdvwhuB4LbA0Kgl6BR5rYBCCWiyJfV1P8fn88rBainbdWq8Vms1FSUpJ3nUasM81XoVSjFnnq8DamnG5u3hvMOKw7EIxw6Uo/J/e3cOre+ifZsiJHB1XBEDOKTP+okX2VVdx3OQmHQsiKktNz/EV3N2/s3MkH/bczdB3Oi2ZZmtZ82tfJ6y27eH9g/YUoEqvJrpeIIvP9eC/P12zny5HUeYokSSYYDCatfKtU0dw4qR2VuZ0Kjvs91JqLaLKW0OdxrbJ1FkNuBbKaRy+Rj/vv88auDt67k1oIeaW9jRtz1wjJ4ayGMW82XZ4BbFoX77R28LuH99c9CV8vz9dt45p77Xnzsk4al22iq09G4ar3Kjurmzhad4T3H94nLEXm+6v5MF4p+rskyaQymkfFvcVCn8ihslrue/qXvSeKCDSP2zj16yy52TZZr37zv53g9NlOZkPpVzXNFpl8dJ1GzeGjbfzbNxdX3M6uszKdkIPWFwhxo3N4yXbFJgO7O2ow2DTIBoXhkJvgBrtVD5bWcXVgNOm2bdFqKdEbMKq0SJKMLCsY1WrsJiMjUzP8z9MXmAtnJ4T/9f27uNQ1wJR7bsVzYdJqsJr1jMx6kBWFP/3RQf7z2+vx51/Y3cbJ/S3o1GsoBvWIOvQWk66QFVvwWLz4H8tLmkroC4fDRCKRlJFMiU7BRKFPo9FsSkGIfAi3jR1LKDj0CmwchSutQF6zEZ1Bvgp6sizHw2r9/uQwM7PZTENDQ94JZTFidvfoxCi/jmsMg17DM0e24XR6mXBmnsPINTNHb9c0x5vrOd+bXq6ZxUiSRDAUJBwKxyeAKlFFz6STFw92MB4OMeVygZItySw1CvBZVxevb9/F+33pJwHPUlRrnIgi881QL89Vb+f06NoSfC+QPYcegDPoY8jnZretmtvO0fi+U+XHU6vV6HS6lPnxFsK8s9OulbgyNcTTVa0EIhHG5pavOpmtu4iQ4+DdsCzxzehDXmht4/Pu5EIlJ1q20R26iy+S7C7Yuv68ZJwhD99PXeZnrYd5t7tzFfEgd5/6cHktw8H0QrnznYezfWjFYd5s3YU3qOHL4cTFGSWejykm7iX/LrFYVxURsVer+XpsIEnkSxQT29zlfPnLb1HkrX9lnnz9R9zvcTDkWXsV6o3i1Rcf4z/PXF5xGwEBARUBKbzq/tw+P2cuRa8XvVbN9sZKymxmBBFiaRNVWhGNQYXaIDKleHGE1l5MSy2I2LRGwopEQIoQkSVqNaXcn+uiqaQEk6gnMBdmbMxLr2MKty96H9Sp1fzfLx7lX85fxhnMXnGg49saGXW7cbmDzAaXP17FRh0qjYoRrweAP3l8P6cuP8Afjr7mUGMtbz++B7N+bWPEgqAXZb3HQRAE1Go1arUa46ICZ7H0IYuFvsUhvInpf2JtSRW+q9Vqc3a+8sEZl2gQyMe5T4E/TApXWoFHnsS8dKmqTG004XAYp9OJy+WKr4iJokhJSQkajYbx8fF15ffZKFQq1ZIE5fmGUa/mmcca+fx8H/5Q5hOsoVEnZqOO9qoy7o9NpfUahfnBUTBEJCEvj0ajQafVolKrERD49s5DXjq0g39xzTsKcqwABSIRzvUP8mxNC1+NpOs6zK5DD8AZ8DPpm6PZXErv7Nonitl06MV44J7gx1WtFKv1TM55luTH02q16HT5lVz6m7FuTtTsIDAWwbXKhC63snF2cATmeOib5lBNLVdGos6Z4/X1OFSDuJJEy/y+P64FSZH4ZuISP2k9zEcPu5jb4NyvFo2OxiIdV135L+CkS0gOc811HZPKxNstOxnyhrgwMQQI8w5+kaVf59QVeN9o3sOZsavzrr6l/V6HVMvX//MMgUAQQRDifXi+9+WpOPrEXoa9AcYm3fFiTfnK44d3cLFvgEhk5bFImb54xYWP5QiEItzsWuriiyEI0FBpp66mhG0NZfS6HcgRBUWK5saN3XbVWhGNXkStFZEVBSUCkqQQCUjM+cL0Ts6gVYtYjHq2FZfxdddDPLNBhnwzePzJrjutSkW51cTRjgZ+d+NGVsW81vJSbBYjNzpHVwy1tZuNRASZqbmo0PMnj+/ny6tdTHmjfzeV2viL549QYlx7KpGCoBcll860lUJ4ZVle1tW3WghvKqFvvfmh8yHkNnFMmIs0OQUKpKIg6BXIazZioBtbQdnMAg6KojA3N4fD4cDj8cQf1+l02O12iouLEUWR2dno4Ckfi00sRqVSEQ6H87qtoigiyEFefqqdT8704A9kHopyv2eMJ4+0MKidwZci0XCMeFjtfK4SWBgo6bS6JQMQWVG40DnIydbtfNJ5P6fVnmNM+XxMe/20FtvpdjtW3X4hhV5223ZjapRXmncwOOsksubSI9l3wsmywqm+27zRuIf/enAZGRDF2GBXN59ba5VW5UBoXI0vRh7wcl0H3wz2ps6TmGWnZa7FtC73NMcrG6i3FlNs0KMyzzDsXS6fW36LDZkiKzLfjl/i1eZDfNKbfD5z3V2ebGjhqiuPQm2ziE/ycdl5GbvWxtstrQx5A/PCXiqEeQfewuS5xmhlVvSh0msxKmokWUaWFsS+VqmCG/9+E68ntQASE/gEBBBIW+zbjKu7vr4SY3Up/TdGcYYyF8A2krrKUnQ2Az1XelfcTi2qCElyTsRJRYH+MQdVJUVcvDfErcH1FUIxqDUMD3mZmp1FkeUkB6hBo8FuNhCQwhSX6JkKzjLk8qyyx/QpMRo41trAx1fuI/kVljOalltNzMlhPIFoKPafPH6A09c642JesUHP//fak5RZ1reIXhD0omzWcRBFEb1ev2IIb6qcfbEQ3sXRR8CKVXhXux/mQ8ht4pyn4NArsFEUrrQCjzyxG/9mCE+yLON2u3E6nUmrWFarFbvdjtFoTOrANrOtmZLPlW5jxI6nXh3h7ZP7+I+PrxBJ4axYjTOXezjxdAcf3Lm/5DlJjlarTQyrFcVobjWtRrviAGXa48Nu0NJRVk6/LzvVX1fj1vg4L7a10edxrZqra6EoRvbb8Xl/N680d/Dh4OqFKFKRTeFMkiSCwYXKcB89vMnbOw7x8eDdNawob1zIbSKfDt3ltcbdfNrblSJcc+s5hM6PD/Dz1t0ElBkuudIo/PEHhILCdxNXeKnpIJ8PDDATWuqAyDZPVDXS61t/bst8xxFy4nBepFhTzJvbmpEkPZ8P9hBYJT/aY5V1nB6/Ot/vzbv65s0Z1ZFiBn/zENeUB5VKFV0AUaLnMbYYEqvOuBhBAAExLvJFbzXCprn6tBo1x04e4aMvbqAW1Xktlxt0Wo490b5q3jwAu7aIEd9MztpSYyvCXm7m+8vpp7RYDrvWzJAroa2CQLnZjFojMBcJMTLnxqrXsa+lhn89v3xxlkxRq0R+emQP//u7S5SrrYwHUo9JqootuEJ+5ubDamNi3qQnKubpNWr+x1vPUl1sWHebEhdHH1Viuaohf45DYgjvYmIhvMsJfbHnUoXwLif2LZ5vbKagl5hrsCDoFdgoCldagbxmo3LoASkTvuaKYDAYD6tNXFGy2WzYbLZlbdpbSdDL90q3kFy8o6m6hDdP7OO3p65lLLYoCvxw6SEnDrTwxYMeFBQi4QjBUDDputKo1WhjudXSFFGu9Q3z3J42psMhghukAp3u6eGVHe180J9eFUZl/l82c6iFZYmrEyMcLWvgwtTAGvawPuEslh8vGFx0DjVqBK2GO55JTjTs5NuxzIqibIZDL/ZuHw/e4bXm3Xz08D4RZeF7uWDQy+fpeTKPVVQTFoex6YyU+oqYDi0zGd86HykjFBS+m7zCcw0H+H5olKlA5nlA06XaZMVuDHF7xp2z91gPC9dt9u4/7rCba65rqAUVzzVsxygW883IUMrjfKyikVvuhyn3UyZbmD41wmD3aFKYbVL7FSX6KRQSxD55/u/o76mu48R9JYqBuRw3vfrz53jvy2vYtRbG/KsV28kxMREjxVOCAK+//Bj/9t3qYp5BpcMbDubsVqEWRZ472s4vv7u0+sarYNeZcMxGc/GpBIGqkiJkEVwhH6HwwrjwreP7+OWZ1T97Jvzx8YP8+7lrVOuLGXGkdv3V2KxM+X0E5vvMxWJeqcnI//jpszTYzVlpU8Ght7TCbb6TGMJrMpmSnpNleUmevtjfshwtPBYMLi3Ao1Kp0Gq18blRNLdxaN0hvGuh4NArsBkUrrQCjzwbJZIpisLs7CwOhyMeOgtgMBiw2+1Yrda0KlRtRFuzwVZo6+JVve1NZbzx3F4++PJmxoN7z2yA8UE320qLud43uLByzPzgRadFJWa+aigIAqeu3eMXTx3mg771FopIj7Asc3V4lMcrGzk33r982+b/5UoIGvTO0GC1UaIx4gpnllB8rcJZbPU4GAwm5cGK5sfToVJFr5mRuRmKdAb22Wq44RzJpGXz75NRs7KCrCh8MnSH17bt4r2eBLE2/+cASbzYuA1F1ctD3yD4YK/tIJ0eHcNzk/FttsC8JiucnbzG0ZpdPHSauOscz/r+RUHgyepaLrnOZH3fW4GIInFnJloE5FDldjTU8lH/wn1YjYjdoOGud6nYaVNMBL9382CVcM/ohFNYdM2qktx7iY6+pMfnSexnE1182XT1Pf7UAa71jWAW9bhCG+MYXysvPnuQj6/fWVK4JBVWjYnhHLrz3nxqH786f331DVdBALSomQ77qbJaiBBh2OdCXBSK+OqBDn5/K73FuHT5+ZF9fHrzHmaVHodnaVVbjUqkotjC6Kwn7ux/5+jeJDGvpdzO//Paj6i2rt+ZFyP2HSgIepvrSssWseiVxfnMYyG8qVx9sdQ+ifwQPD4AACAASURBVOG7Xq8XrzeaDiAxP1+iuy9atCz7A4WCoFdgMyhcaQXymj+EHHqSJOFyuXA6nfGQPUEQKCoqwm63YzCkP7hJdJQpipLXq3FbKeQ20UXY0VKBouzhw9O30paCYiuHV2/18MwTO3mgUeMPR9BpdWi1K4fVroYgCCiKwhc3u3h1/3Y+frgxot6wx0N9cTFlBhNT/hXcPwLRyWaOrsczI338pGXnGkJvMxPOZFkhFAoSDIYSJgkr58e75xrnWHkjDaYSBnyb7FZJk7As891YDycb2jg1EK0UG3dW5rmbTSUI/LR1B8PB88wGFwSF2zNX2WHdjUFVQ7c3WVzN84+UFS5N36Hd2oRd18Sn3esP6UvktaZ2bsxk1+mzVbnv6UQnavlZyz7uO7zcdk3wUuMOzk0vDUUuwYR81seNb9deEXilPHoxV18kMp8EXhCTXH2xKr2p9pmYpy/dXH0N9VXoKkro++Eu5fpiAvkk6C1q+uF9rfR6XDg9q7tWbToL04G1V59djWM7m7k9Phmv6roeqoxFzAUj1JRYmQp48YdDSxbT9tZV4Qr5GV+hWEWmvLK3nauDQ/j8EQySFn84OZrFotdhNGgY8rjjrTmxu5U7fWNxMe9AQw1/+cIRys16sknBofdoHIPEEN7FcyZFUeKOvKmpKUKhEFqtFlmWk0J4U+0zVfiuRqNZlzhaEPQKbAaFK61A3hMTNHJFrpxkgUAAh8OB2+2Ot1+j0WCz2SgpKVnTjT5adU+FJElIkpTXncVWC7mNIQgCu1orkRWFj75aWUSKRCKEgiHCkYXBwpkLXbz10kE+vPcgKyGosX3M+gPc75/geE0d50eWS9aeXc4PDvJ6+w4+GFh+tT/2/VQUcub0+nKwh5dqd/LpcPqT43Qdeovz40H02tXp0qu49sNkPy/UtjMd8OGTVi+qkqtCIpngCs3RPzvNgbJqrk2tL0H7RmFQqXmrrZX73q+JsDQ9wgPPbbaZt6NXNXHb3ceWsx2uk/uePqoNZbzVtov3urPjznm2dhtD/tuE5MyLBf2hEpRDXHJeotZYzZ+U7mYqOEt4UX69YkwIZ31cXaX/WA8xVx/M54xSq4Bonxt38S3j6lNQltwWoyY+YYnIF530qjl68jC//uwSlfpiJoO5c7NlQkKQcfy3hppyzBVmzl5Z/TsQlTbVBKTcCHo1tiJKyy18f3n914FZo0OrUuMRA4zMxYTK5JNYajbS3ljJf1xYvxswxo+3b2PU7aV/0kW52srYbHIRlHKLiSBS0uOHGmsIBSPcH446pn/U1sR/e3ofZabsinnwaIhZq/GoHwNBENBoNGg0GpxOJwBlZWWYTKakEN7FobzphPAuFvo0Gs2qx3mzQ6BjhRWtVuuGv3eBzSN/1YACBTaIbObQUxQFj8eDw+Fgbm5hkGgymbDb7VgslnXf4LeaoJfPDr3lHI+CILCnrQpFgY+/XjoYD4VChIJBpAQhUKuZD6tVqbh0tY8TB1r58n5m+dVSkiAADTpmKCsy01BUzMAG5bP6suchr7S08/uBpQU/os3LeonUJcyGQtxzTHGktJ5L04PpvUiIOfSWtmul/Hha7XyOwwy+pl8M3+f1xt181H87jZq8+SE0dXmmeLyimQqDmXF/dDKWi1yI2aBYp+e1bQ3c9Hyx4nYPZzupMzayr6SZ666FMMccas15xfDcBJORaf5k534+HOxec31ogENlNcjiGK5AfubNS8VGzp2G/aPsLK7GIPXzel0TimLiwYyTSa8b1fk5Lp/OnZgXY7lFgZVz9S0j+EWfSLnPN//4BL85dRENKgJSCEmW4wJgPmHS6zh8rI1ffZNerroKQwkjs9mrAJuIWhR5/thO/uHbtbtbi3UGLBoNCDIiWvq9juReNuEPrajijcd287++z56b9nBTHYhwfWCYWoONEceCkCsA1TYrjsBcvPgFQHOZjXp7CR9eiDqFT3S08dYTHZTmQMxTFOWRF7NgYYz9KB+DGIvDj5cL4QXiVXhTVeKNhfAuV4U3JvRFIhHOnj2LTqejqamJhoaG+PnYjPnZqVOn+Nu//Vv++q//mp///OfLbvcP//APDA0NYbFY8Hq9dHR0LLt9JtsW2DzyVw0oUGCeXDv0shFyGw6H42G1MYFAFEWKi4ux2+0pO5O1shWEMtgaIbeCICCKIrIsI8tyks1eEAT2bq+K5h375g6yLMc7/MSKYjrd0rDaGW+A0V4nR5vquNC3Pjfd4kqyV3tHOLG3jQnfbDzxdC6ZC4fpnHBwsKyaq6ncXBvkOOudcVJpaqDKUMSYf3WHSFxmTGiWoiiEQmFCoZXz42WKAnw6eI/XG/fwfv/KlUA3qyhGKs5N9PJKXQef9ndldb/ZnOYb1Rpe21bPTc/ptLYfmuunydTKdmstV7ypReg/ZJwBD9+OX+Dttic4OzzCyFzmgkWjtYQqs8Rd78Y4gbciT5UdpNN9npDih0BUPK7RNmG8peHi2QFUiEjrklSzz2ohvEuq7yoKz770OJe7hgiHIpSbihnxTSfuMNnZl/D7RiMI8Norj/Gv311Ia3u9SocvHEbO0X34rR/v59/PXcv4dSaNFrtej6xE8ElzOMMz2LQ2Rn0zy7ZUAH7xo/1ZrWjbXlVORZGF39+4R62hmDGnJ/7+Bo0am8XI6KwHKaGDLTEaeGpHE//6dbQdP96xjbef7MBmyL6YBySNw/I5/Uyu+UPKobdeMqlyq1KpMBgMK4bwLhb6En/m5uZ49913effdd5Neb7FYqKqqora2lv3799PY2EhjYyMNDQ1ZnQsm8md/9mdYLBbq6uriDr3l+Lu/+zsA/v7v/z7+2F/91V8xODjI3/zN36x52wKbS0HQK/DIs1aBTFEU/H4/DocDj8cTH1zodDpsNhvFxcU56WC3iqC3FUJugbigJ0lSyvPVVleM92ADH3+9INREQzJ1y1YjBugdmqZNo+JgfTVXB9ce1hhzSyXmyjl9q5uXD7bzfs/dDZky9jgdPG6pp8JgZsKfnJtnI91c50cHeLW5nc9HvfHE28uz0K5oaEWyGBvNjxcVY1Plx8uUkCzxzWg3L9Tu4PPhB6u2axMjbpM4NXyf15p38U9Xzy+E4uXJ3Egrqvhpa8uqzrzF9Pm62WHdTb2pjEHfFHn1oXJK9DMGpRDfTlxid1kL2yOlfD2yclGGRHSiimMVFVx0nctVI7c8LeZ6POG+qJg3j16xMPyVlwufXEdAoMJQjICOcb8374S9VKQSRZ589hDTssTAqJNyUwnO8CyCKMbFPhKdfUt3uETky6Wr740XH+P9SzfTKoIBUJTDQhjP7t/OpcGhjPLmWbU6inU6AvIcjtCCaGpUGfCGJELy0vFe7Ji/crCD053dWVvgqym2sqe+mt9cvEGZzozLG4gLdxVFZkKKxJA3+dhpRJGfHd3DLz+POgQP1Nfw0x/tzpmYB8mC3qNMwaW4QDbciokhvIuJhfDGhL69e/fy6aefpizI0dXVxddff5203+rqapqamuIi3+HDh9mxY8ea2xrjn/7pnwAYGhril7/85bLbnT9/nt/85jdcvnw56fG/+Zu/4bnnnuOdd96hrq4u420LbD4FQa9A3pPrzjox5DadxP6yLDMzM4PD4SAQCMQft1gs2O12TCZTTtu81QS9rdDOSCSSJDwuPsdlFhXH9zdx+c7wvJMrPaG2q3eCDlUVu2squD0ysbYGpnDAyYrCl7e6eH1vO+93b4wL6dzAIK/t2MEnw/eTxbQVQltzwWf9nbzW3MEHqxTJSPwKejwL+X0WxNjsVzhzh/wM+dy0F1Vwf2aZ850HOfQSiSgyZ8Yf8mprBx9luaDCelAJAj9ra+O2Nz1n3mIeeG6zp3Q33rA/Rca9R4Pb7h5K9cX8vLWD9x/eJ5SG2vFK43YuF8S8ZdGKWupNVu7PLNx/1GgJXrFw4ZOomKGg4Iu4koW9gBdJyY2wl4vRxrEn9+NWq7hzbwCdKjqxDSvJi15KgqinLBL4YuG7KYW+2P+z5Oo78dR+LvQPMONbGh6Xigp9STzNQLbZ3VhNSKPQNTa9+sZEw2qtWjV+aQ5HKLlNAqAVTEwGl3fcPNbSyOTcLEOO7IiTWpXIyT3t/OP3F9Gp1AgRkblQGK1KpKzIzOScj6C09I76J08c5N+/ijrzWstK+eNn91NlyV4121QUhKwohZDbKIm5QnN1LBaH8L700ks899xzjIyM0NfXR29vL52dnYyNjTE+Po7bvZCyQlEURkZGGBkZ4ezZs0B0fvu73/2OXbt25aS9izl16hR1dXVL8uvFhLlTp07xl3/5lxlvW2DzKQh6BR55RFFcNuwykVAohNPpxOVyJdm6S0pKsNlsaLXaDWnvVhHKtkLILSTn0QuHwzidTpxOZ9I5ttlsnGhoIoKGzt7MhLm73WPs3VnLjspSHoynN8hPZCHkNnlqFAhFuPBggBdaWvm8rzvj/a6Fz7q6ea19J+/1LQg/yzQvZ0Rkme9HBni2qo2vxpaGiibmx0tEo1HPi7GZ5cfLlHuucV6o3UG/z4E/hWMi3/LTATiCPnoiCk/VtXB9ZnLT22hUa/hJawv3fd8gr8PddHnyPD+ueZozjl5CyvqrTG5FpgNuzgQv8UrzXm5Puun2LH8POl5Zz6D/7rqO+aawgdr4U+X7uOv+Kv63gICht45P/uvbFM1KEPb0VkR0zEkyztDq1Vc3k8PHdhO2GLh5K+rstOssjPmXVvEWBGFBoEskhciXG1efwrFDOxgOeOmfcKb12cxqPbPhcBoO78ypKLbQ1lLJr3+4seJ2GpWKCoMJQZCZk3w4QkuT8gPYtKUMzS4vPDaV2qgstfLxzewt6r3z2AF+NR+6W66xMOz0UGYxoqgEhr2pw35/cWwvn1+5TyASoaXUzl+cPExDiSVrbVqOgqAXpXAcoiSO2TfStanVamlqaqKpqYlnnnmG7u5uFEWhtLSUkpIS+vv76e/vp6+vL/57f38/c3NzKav25pLz588vWyzDarXy2WefxUW6TLYtsPkUBL0Cec9G3JhVKlXKsEtFUfD5fDgcDrzehYGVXq/HbrdTVFS04Z3oVhH0tlLILcD4+HhSIZNU5/iFx3fgnvEz4cgsL9XNe8Mc3F1PY2kJ/dNLJ0YrIcQdcEufc3j99A5P83hNPedG0iwWsQ7CssS5/kGerW3hq+GepPZtZAzptN/H6OwsHcWV3HWPz7996vx4EC1Ko9FsXHf35Ugnrzfs4v3+lV2EipI/eeW7XOOYy7XsLqngrntq09pRZTTzXEMlt7yZhdmmQgB+GP+WE40v8enwza0nVGUJSZE5N3WdPbY2jNoqbk6PLdmm2mTFbgxz15OeMPIosq94B8NzN1ESrqPiqWY+/ceVHY1RYS/qoFILGmqNVhRFgzPkx59GZeyN5MChnajKi/nhWnSRqEJfxPQKDrGUzAtxyxbmyJKrb9f2BijScuPuw/SahYBRbWQkB6G2WrWKFx/ftWwRDAGoMFrQqCAsB3GHp1fUoc1qM85AEHmZftWi1/HUnhb+8cxFNOrlU39kwomO7Zzv6SUQiVBjKGLcNUt1iRVncI65QOoFkZ8c6uBy5yDjM7PsqaniT08c3BAxDwpCVoxCDr0o+eBUjBXYg2jxDKvVyp49e9izZ0/SdoqiMDk5iclkwmw2b1j7hoaGOH78eMrnioqKGBoaWtO2BTafR/suWGBLsFGCHix0CJIk4XA46Onpob+/H6/XiyAIFBUV0dzczLZt2ygpKdmUjmOrCXr52k5FUXC73fGw6ZiYZ7VaaWpqSnmOiyx6Xn92NwZ95gPoq7cHadQVUV2c2WA3VQ69RAam3AQ8YTpKyzNu01qY9PmYdM+x01YRb+FK7csVdx0TlGjMlOnM+P0BPB4vfr8fSZIRRQG9Xh8/dxv9PZUVhTPjvTxb3brkueTbWX6E3UYRuDI+QIlRT62paFNasNtezo/rrdzyfpO1fSooXJ0+x8t1BxAf8SHPLVcXRYYQxyrrkx5XCQJPVddy15M/Idf5hlllwqKJ4A5Nxh8r8tbx3T/dIBxK3/0ZUcJ4ww5mI+NYNGFqjEZqDFYq9FbUwhon5FkaIu3Z34axoSwu5mlFNSFZIpwif9taEQQBYT4qQqVSoVKrUc//qNRqRJUKURQRRDHJ/q0oCoosI0sSkiRRW2GjuqWcb252IkkSkiwjKwuT6VSU64sZX0ORmHT4+TOH+JezV5IeK9EZqDNbqTObqTLrmZPdOEMOvJHZFe/8IiIierzh1M49tSjys8f38U9nslfRdmd1BbIg0zPppEirx+ePUFliYcI/m1TFNpEX926nZ3iavgkXx1sa+L9eemzDxDwoCHoxCschSj4Im4nznZWq3AqCQEVFxYaKeasVy7BarfFtMtm2QH7waH/7CxSYJ9YB+P1+RkdH4zkQgsEgarWa8vJytm/fTl1dHUajcVOT8Oa7UBYjMeQ2X/KFQTQcc3Jyks7OToaHh+PH0Ww209bWRn19/Yp5ECtKzbx1Yh/iGq6Bi9d72V9WiT6TcvZp5Fy7PTROmcpI1QYNDu5MTlCltWLV6hYEqg0+xRFJ4lTPXXabK1BJ0QmfSqXCaDRisVjR6xPatgnC2XTAhyM4R7OldMlzm2BqTJsz473sLivHollnCoEMPpsoCLzc1EJdiZN7s9mbpMYOdESJcNVxhpdq9z8iot7yB7/T04+idvN0TXP8sRfqW7k+k1510HxkIxYTjpe10+NdqCJqDpZz+7eDuKfcK7xqZYLSHLNhB7ORCYLyFGV6kVqjhTLdxokiMVrb6rG31nDmUmf8MbvOgis0u8Krssi8+04URUSVCpVKFRX6NBpUajUqlQpRpUIQRUptVg4ea+OjC9FCVbKizEdYyEQkiXAkQiQSISJFkCQJWZbRiRrmwpGkqqzZ4uWjuzh1r5NQRIqKeBYLNWYDiHM4w9M4w05mwh4kJb0xW4nWzrhv+VDbP37yIP/+w7V5n+j6x6LFRgMHm2o5facbQRCwigbMBh3D3hnCy4wzn25vxuGe5d7QBG8d3s2fP3+IyhznzFtMTMApFMUoCHqQWYXbXJEYkbSSoLcZzMxEnckWy+r9SybbFsgPHu1vf4EtQa4768REqqOjozidTmRZxmQyUVdXx/bt2ykvL8+bm/NWEvQWwkU3X7kIBAIMDw/T2dnJ5OQkkUgEnU6HyWQCooJeunkQm2ptvPL02pLYfvtDFy+2t6W9fbrH8HznAEfKalFv0KDum95enqlqRSNGr8eNmFQrKIQjYWZ9s8zOegmFQrzXeZOftB7AajbNn0NNgpC3uRVlbzhG2F5cvuScCJulgq5Aovj5xcgDnmtoQS3k/loq1Rv4ox1tTErnGAn05eQ9FBQiSoRrzrO8XPeoiHrL0+cdYUYe48X6NtpLygkoY4TkrZ9jMFe5Hw/ZOuidvRb/2yBbGT3tp//+cNbeQ1Fk5iIevOFJJMVFrdFMpT51/qKlrO9z20qsdDyxm69/WMjFZtOacW+UmLcKia4+o17HyZOH+e3Z6/HnVaroc2JCPr9oSG9U7JNkGavaxIRvhnA4TCQyL/TNi33R0N+1te3I9gbG/bMoQYU6ixlB9OMMOXCHZ9b0nbKqLUz7/cjLNOhnx/by8a17cdfceq94AfjpoT3827moWN1oshFBYdjjXjbc93hLA3JE4frDUf7fl3/ET493UGLYmBzSieS6AMJWIR9CTfOBfDgOkYS8yfkyZ4xRVLRy5EWi4y6TbQvkB4/2t7/AI00kEmFqaoqurq54uKUgCNhsNlpaWmhqaqKoqCjvVv+2SrEJ2HzxUVEUPB4PfX199PT04Ha7URQFi8VCY2MjLS0tGI1GIPNcf7vaKnnlmd1oNZmtBsqywtnz3bzckZ6ot5CjbvVtT9/q5tVtOzJqz1pRgE87O/lpy97o3zlUzRQUgqEgXq8Xn89HJBJBEISoIGs28+VwLz9p2r8kH52Qhrsx13w5/IDXGhaLv5srNKZmoU0K8MngXV7ftjPjvSiKQkSKVY1e+QNWGE2cbKrktvc0ITn3ucSiTr2CqAcwMjeJWx7nxfpqhueyJ0z9oaETtRhVYXyRaO5TDQbC14u48e29nL2npITxhqcIytPzIblFVOmLsKgNiFkWLdVqFS+8/WPe/3LBfSgAalGFX8o/kffVFx/jV99fSnpMFERU8yG8arUaTSyMV6VCpRIpMxQz7fclLY7Jsow0nzc5EokQjoSJRMJIkQVXnyIvH8KrFdUc3dZIY42d4YlpfLIbZ8hJcB33sWjrdPgiqffx8v52rgwPM+X1ka3FoJ8e3stvL0eLeFQZi/CFwox6PcvufX9DNVadjosPBvj7d05wpKUSrWpzxsgFZ1qUfAg1zQfy4TgkznU0muzktswWsQIXifngE5mZmYlvk8m2BfKD/JKPCxRIQbYFNb/fj8PhYGZmJj5YU6lUSJKEzWajqqoqq++XbWKrPltF0Iuthm9k5yZJEi6XC4fDQXh+JVsURYqLi7Hb7fGS87HHIXNBTyWK7GmrpLTUzIVrfTzoGU/7tbP+IJ33xzm+rZ7zD9MrZqHM/1vJhRKWZK71DPOj2gbODA+k3Z61EpZlPu/s5u22/XzYn/0JrqzIhIIhgqFg0mq8TqtDq9XG7w0BKcKZ0QFeqNnB5yMPEvaw+WJ8RJE5NfSANxp38UH/1slRFlFkPhu+y1stu3i3Z/V2S7JMKBgkFArF3ZoCAoIoIIrRvFiqeZeNKIrUmK08VW/jtvf7nH0GAWGJczQu6tU+wSfD1x/ZQhlaUcOeojIeuH/DMxXHmAwK3HAvrRr9qPNE+R7uu6M5HbWYkMebsJSYqKytYnx4aXGRbCIrErNhx/xfAjqVFrNGjyioARURWWBs1rWsmysd3vjF87z79fWkxyoNJUz41x5KnCueOraLcz0PiUQWvrPL3eFjhTNUggqVoCaEPz52Sl2YQ5lfzFCWrLRoVWoqTRZEQZkviKJQajPRsM3C+1cuLX7rNWPTljK8TFXbp9qbGfV56Bmfvx6yoOe9tKedB2MT+IMRtlntzARCTPmWr8C8v6GammIrX17r5O/fOUlzmQVNHoQ3FgS9wnGA/Ai5TZyX5aPAarVa4+G0qairq1vTtgU2n4KgV2BLIAjCulw2sizj8XhwOBz4/f744xaLBZvNRjAYZHx8PC9CQ1djKzn01iqWrZVgMIjD4cDtdsffU6vVYrPZKCkpSdnBrsdFqBJF6kqtSEcaqast4fzFXnz+1ImsFzMy7sZWZKSl3EbP5PKVJQWEhetfYVWNaszlpabESq2liGFv9qv5LcYTDHJ5YJgT9W2cncpO1auIJBEKBQmHwnFBRqVSo9Pp0GjUKUXNab+PB85pjpU38sNkP5AfDj2AuUiIb0Z6eLW+g48H7+ZNuxJJlW8wIEU4NXyPN1s6eK/nbsrXRSSJYDBIOLzgKhFFEZSoIKvIypLvf3OJnaMVBi5PfJEg8qkWwvRzrMNGlAhXnGd4ufYJvhy9Q2AD3IH5hCiInKzezcDshwD0z57FrCnjZNVBLk/34Qjnn5iTFlm+bppMdUwHelCQ0VPMTF85316KLlw8f2I/td01XDlzZZW9ZAuFsBwkLAcTH6LKaEEUdUiITAW8Gek8z7x4lB86BwkGF5x4BpWWuUhwXSJhLmhpqCJsFOjvivaV6bauXF/M8GxyeFj0HpOiF0kQ+dSCSIXRjCjIhOQgruBkvC8qNpnZu2s7vzp3YdH+hOh9dP73TK5HnajFG0qd4+9gUy1oBK72jCx94Rqv+Zf27GDI5cblnqPcqGcuFFlRzDvUWEO5xcyX17r4+3dO0lJuRbXJAlJByIpSOA5R8iHkNt2iGJvFsWPHuHcv9eK7x+Ph2LFja9q2wObzaH/7C/zBEw6HmZiYiBdA8Pv9iKKI3W6ntbWVhoYGLBbLlnK9baW2bkTIraIoeL1e+vv76e7uTsqBWF9fT2trK6WlpcuulmVDdGwsLsJeaeHwE820t6bv8LzdOco2YzGWVarmrlbpdjFXekc4VFq1YTf4AZeLMecsB8uq17wPBYVwODk/noKCRqPBbDZjNpvQajQrOhT7ZlwEwjKNZtv8I5vv0IsxEw7ww2Q/L9buJJ/atUDqMGC/FOb0SCc/2dYRfyx+rmaj5yom5mk0WswmMyaTCZPJhMVswWQ0YdAb0Gp1qNUaDlbVcbRGz3XHt0iSRCgcJhAMMuefi5/7Od8cAX+AUChEJBxBluS1OVL+f/beLLiNM8/y/WUmdoALAJLiKonUSq3Walm2bMmSN9kuu6q6q6p7untm7u2auHEfbsR9uY8TEx392A/z0HFfemZub1XVXYuryq7ybku29l3WSlIUKa7iBgIEsSOX+4CdAEiABEnQxlEwSAGJzC8TXy7f+c75n3lKFSqawlXX15xo2obTsDqpvquFV5v28tT3UcZrvugkfd6P2VVr5Pm63avUsvJCh83JRGgAi1bH0wcOzl7tTb732Z37jNSIvPkXbyGukhJDQ2M2Mo03PEZUnaLJbKTFYqPFXE29sQppnjvAnn1b8Yoiw08zJ5NqDVZmooHlbnpRsJqMPHOwgzO3uxdeOA1mychsmmJ4PhhEHU3WatZX1bChupoGm4FZxY1H9hBQg7FEXlHCajTxveMH+PnFVHhPMoFXjSXwKrKMLMdr9WVYeLPVf8l9lGqYDmcf922N9TTVV3Pm4eOi9n0+nN6zHZ8/gtszizvqQVD1PM1jrQM4snk9DouFC/f7+dufvMbWdTWrTuZBhcgCUjUgqYSDlJPlNuFEKDf85Cc/YWhoKKsG3v37sQnb06dPL2rZClYf5dfbKqggB4q5UWmaht/vZ3BwkO7ubiYnJ1EUBZPJRHNzM9u3b6epqSnDdpm4AaQXNC1XCEJKsbVSyrfFYjnVhIqi4HK5ePToEQMDA/h8PgRBwG63J2sg0yxWzQAAIABJREFUVldXL9h3StXGLQ47GxpqCdfByRc7MRkLm507d7WXU5s2M++9fxGKrs/v9PLOls6Cl18sEsf37thT9Iqe9ip7UZ/PqI8XyKyPV1VVjdViRSflVuXlwo3xEXbUNKETxbJTwk2F/NyeHuaNjQlyrDzatRB8cpgvn/bwTkcnkUgE36wv9l0pMgICRkPiu7JkPkwLAqIkodPrMRqNvLZpG9ubogzKD7BarZjN5pjqUqdHEiUEYkdEURWicpRwOEwwFMQf8DPrm8Xv8xMMBAmHwkSj0SUnaGto3Ji+yF5HAxutjUs+TmsBxxp24AmeRSa3KvFp4A6+yA1ebzr4na4z+FL9AR55r2BVm3l0y8zVu0+ylukbG+cPj7t457/8gFpH7Yq3MdnzhZga1i978EUn8cnjyNoUDWYpVoPPYqPFXEWzuZomcw2dGzfQvLOda3f6MtbnMNhWLtW2CLx9+jC/+Ppa0Z+r1lvxRFKODIOow2G00GKtptVaTau1ijabjRabBbtJwCdPMx2ZYjoyzWzUl0kECgI6SeJPTj3Hzy5dRYon8Op0OiRJhyglFMZiRox5kuxTFBQlnr6bEcyhUqOrYSKQfdxrzUYObVvP+7eyVTKJlhUbBPPmnk7ksMI3I0+YCrtx6h0Me/MrO49t3YhVp+NB/xj/7cevsqWxtmyIowqhl0lilcv3slooJ8vtarUhQb7lC604evQor732Gn/3d3+X8frf/d3f8dd//dfs3LlzUctWsPoQlmGgszZGKBWsKUSj0QXJK1VV8Xg8uFwuwuGULaWmpgaHw4HFYsl7wwsGgzx+/BiTycTmzZtL2vblwMOHD1EUhW3btpVd4dV0jIyM4Ha7aW5uxuFwLPyBAhCJRHC5XLjd7mSf0Ov1SVttsTJ3v99Pf38/FouFjo6OJbdvdNbHP16/xYnWjXxzY5DJ6YUHSHqdxMmXOvnt3dzy9lnfLIqiUGWrKupBodleRWuLnfPLWE9PlmV8fj86ScJms/Hali2cHeslpMxPjquaSjhRc22e+niLgV4Ueaujk190XSESicSJo5VP4cuHesnMRpudi1OD6PXlYcvw+/1EozJWqyXrmqJqGpFwhCpRx4vNW/lV121EQcRgNGA0GDO+K03TULW4oi7+ulWn5/WNHcyod5mMjOdvhJYqWK+qCqqa+FuNrTMPBEFIzoin/wSDQVRVxTKXaMyBzVWdzEb03PUsT9LuSkDVtPjEBlTZqrLe32tvx6EbxBN9suC6REFHR9XLXJjsZ0Yu70S7xHXEaDQWnFQ+H7bYNmDVzRLwqdy6Gubx0MSCn3nnwD56z96hr7tvwWVLBVXTUGQZQRTQSYVdRyxWC6/9+Zt8+sU9BPTImsBUyI+iKdSbapgILX+ZhmLwyovPcP3pMGPTmX0wFr6jxAI8ctzzHcYqZsJRrDo9Fr0ODYWoGiGshJE1eVEDlR+9/By/vX2TQKSwsJCctfrmjLmMkhERG5PBhEIuNmErIvC/nzrCP5y7ktMerGoaiiLHAkEKfCb43t4dhMNRvu57iIZGvcHJU2+QaJ7JzJe2d4CiMeny8X+cPsJ6u62g7awURkdH8fl8NDY2fmcL9EciEZ48eYJer6e9vX21m7OqGBgYIBwO09bWhtlsXpU2DA8PEwgEMJlMK0p4/df/+l8ZGhri3r17STJv586dtLa28rd/+7dZ58c//MM/4PF4qK2t5e7duzz//PP8+Mc/zrnuYpatoCiUlIEvj5FEBRUsgPkG9+FwmOnp6QyCR6fTYbfbcTgcBRFeq53GWix0Ol3M2rHCYRPFolTHNaG6dLlcGalLFosFp9NZkBIvH0pd56+5ysZf7N/L/7h6g2N711Pd5+HxwNS8n4nKChcuPeKtZ7fxh/vZtqJiLbcJjLpnabJXs8Xh4NF0/jp9S0Pmcf+st5d3OrfzXp4AiFw11xaqj1csoqrKlbFBTrRu5ZO+e2Wj0Eugf2YKi6Rjr7OZB96FyYKVQbblVlFUIpEE6Qoh4PJEP9/vfIYvR/rznnOallrR0aZWOuwS92Y/L6gJgiAgiRIScwapmpZG8CkoCaIvbjlKXA9zIRwOo5OkZJ0+URTSiwYC0Dv7kDbzRp6t28aVqeKsfWWHHN293dZIk8nLePBJQatQNZle76cccj7LoN9Oj2/5Q3YWi1Ke3kbRQKvFyvC0hyvnAwyPF3bd/P2NW5x8bgeiJNH74FHpGlRC6PR63vjz0/z643PJ1wRBoN5UjVmqIaJGabGkkzYCIKBqAjORIAFlZWtNdm5uxUMki8wD0Is6HAYrRklCEjPPZQEBUdShEzUCsp/pAgm4+fDqoT180dNVMJkHhdXqqzLYGfB60gJ8YqTfD557hl9eu4mcNjGWqKcbu3YV1+l/uG83bt8sFwdifdOur8HlD+cl8050biISitJmr+XPXthLo211CJL5kD4R+F1FOdSNKxeUk+V2pevn/c3f/E1Ry//0pz9dlmUrWD1UCL0K1iS0uBLB5XLh86UUUBaLBYfDQXV1dVE3uLVG6K2VYIyltjOhupyeniYUCgGxh+SamhqcTmdJZuGW41iur6nmrw48w/+8dpN9rY3sq17Prbvzp9nOBsLc+WaYU7s28XlXZr2cpVhHb/SN8Pz2jURqVAZmSl/sfm7bVE3j3JNBTrVu5vPhWM0pDQ05KhMOhzMGKPq4FbNQdUkxGPXN0mi0sr7KzkSZ1YQSBIFvJoZ5c8te6oxWpsL5i5GvBmQ5QbqmBq86XYx09QkqYxEfBxpauDk5mnw/lg5JclBqlHR8f/MWRsJXuZPW7xLF4hMplAVDEBAlAVESyXh0iYdvqGr2T6JP5iL7REFEEIWMUI5Bfz+tVoUDjs3cmO7l24JqvYXdNTaG/GeK/uyg7wr1pq3Um/ZwYerOMrSuvPBiw14Gpru4fVUumMxL4It7Dzh5eAeCIPDo/komBi98HgmiwNt/8Ra/+/xyxuuxcyRm1w0pua9DAgI2vQm70YSADi1O9MXOdwGF2L1aEgVi2rLUfSqiKnijISJqtmLbJOmp0pnQx+/BGgIqGoqq4nBWsXd3B59e66LZXBO/VCSWUJHVMIHIFFFFRdJlDuBr9I2MBydKZhfaubEVtxxkzFMi9WKc5HMa6hj1+zMJCE3j8Ob1DHg8uIPhGIGnpVLuk+FYcaiaiiZrsXUKietrjPiLf0u8tXM73rAvSeZZJQuhsIA/Dzl5uKMNi6Tj5DOb2Npsx1CmZFHFcls5BulYbbtrehvKMRCjgm83Kj2ugjWBhBJEURTcbjculys52BQEgdraWhwOx6IJnnSVlqqqZX9zXCsEZKKdxarfotFo0labfoN0OBw4HI6S3iwX28aFsNlh5y/37+WfbtymtbqKU8d3cPV6H15fKO9nJqdnsfTqOdrRxsW+tMRYIaGeWtwQ5ULXE47v7CAsy4z5S1wjKQcpMxXw4/KG2FTj5MHkKOFwOHl8BUHAYDBgMBiXvbD2xdEnvN3eyYdDua3Mq40zI4/4ky37+HDgATLlUQ8zFAplnAtJ0jVt0Nw9M85zDRtptVYz5J9JEXnxsWajxcarG1u4M/M56pz9Sl8uXVqVQfRB4WSfECPncl2z/X4/qqrGbJgaSetu0sKrZF9Du/0P2GTfzhZzE/dmBjIsvOVeoSjXIRMQeGndNoZ87y96vZOhHszSBKebjnBu8hGzcvnVWSsFjjj3MObtp+u2UJDNNhe+uPeAlw/tQBRFuu92lbiFcxA/fQrpl6d/fJpPL93OqhMsChJ60cBMxDXPZjTCSpCwEsz5vhBPdY3KWpaKXBIk7AYzOtEESPHWqhAn5SKqi4isZKyr3uHg0PNt/PbC16ha7mccTdVQNAVxTqe36Rx4or6SkXkOq42tm5r55ZXSphnbdDY8kSjynFICrY5aWhpq+c31u0hiJjGhaQlSDzRVTR7r2DVVy1KqVhtM7GttRm9S+eR2FwgCkiBi0CyMBnOHYGxrrGd36zr2bGymrcpc1s/CFTKrPFRp5YD0muKr2R8q30cFq4UKoVfBmkAoFGJ8fByPx5MkNZZSN20uBEFAp9MlCxWX+wPCWiP0CmmnpmkEg0FcLhczM6mZcLPZnLTVLsf3kk7mappW0sLCO+rr+Mne3fz89h0GZ7y8eqiDqCvCzTuDeQccA6PTmM0Gdres4+5IrN5Ysk1LGKWcvd/Hqd1buCQP4E6rMblUJINE00YTqqpy6Uk/p7du5X50IEmSl6I+XnFtE/jg0T1+uOMZPnq6zIPrIpDafY2Phh7y1sad/O7J3VVpi6bFEmtlOTZBoqoqgkCKdJWyzzlNg4vj/bzZtoOJAR/BOEkgALudDexcp+Pu7BkESUDSxDh5lyLzYv/N7MwZRF9iI3EsVtWX6Gc6SZep4pmr6lMSfytoQK+7i232nbSb19HlSSlrE8ReUtUnJYi+8qX6XmjoZCJQgN15AQQVD73ejznsOMR0tIVb7jVuS56DDlsbmuyl+47KvUcjS1rXl/ce8Ozuzby0sZGvPjhbmgYuAS9/7yTXuvvx+bMJuRp9HZ7I0mz/CaIpFxRNQVF8UOCjSm11NYdf3MVvzl0suh06wYisiYRKZA0WBYE3XtjLP164VJL1JaATdKAZ8UYySTWjJPLavu2xunk5kCBOEWKHU1OVeBkBIVnmIEHutdpqsZgEtrTV8q8XrybXUW9yMjDtjpc4FVLrFQSaa6t558AOmuqqabOVN5kHFUIPKscggfTjsFrhIOmkYkWhV8FK47t9BahgzSAQCOB2u9E0DZvNxvr169m6dSv19fUlu3CuFZIM1k5bC2lnwlbb19dHX19fksyrrq6mo6ODjo4Oamtrl+2BJfEAoOUoWF0KPNPYwPd3xtJmP33Sx+3oJKdO7qBjfV3ez3Q9HqMqqmdjXSwxdrE19Obi87uPeLGpHVsJ6y4KaepBWVYIBAJ4Z2cJh8N8cP8+P9yyD4vFSlVVFUajcWUftgQIyVGuPR3ipcZyCrtJ1auLqgrnx/o51bx1RVugahqhUCxdOBAIJvkzvV5HVXU1ZrM5i8zT4qEViZ8/Dj7grfbtMWuXAM+3rKfDGaBrNjWATNq/RCFFgkkxUixJjCUtYnlq8sWtZqqmZVpq1YQFTSuukJoQO+91Oh0GgwGT2YTFasFmq8JmtWExWxgI9LKhxsLmmpakCkhVVWRZJhyJEAyF8PsDzM768Pl8BIIBgqEQkUgEWZFjVrhivpBlQIetCbM4REQtneV8yH8NUevm9aYDGMVyCZpZ2pG2SBY2mu08vO/n+v3S1Aq80tPLNd8U7/70h1RVZQeUlAYL7/eRl59jcGaG8cls+3CV3oFP9iz5vlIq1FRXc+zlffzm3MIEWnrCbwIWnQN3pHQBLm8dPcBvrt8s2foSqNbZGQ9kK+R+9Px+/uXSjaLXJyAgxoOBHCYrG2vtBPHz6r7t/NvVG0iShCSK1JnsTPgCcfIvpnLUVA1VUTHrJP7Ly4dx1JqQPNOMjY0xNTWF1+slGAyW5bNmhcyqHIMEysluCxVCr4KVR6XHVbAmYLfbCQQC2O12jEbjsmwjcSOYa0kpR6wVQm+++nSyLDM9Pc309HTymEuSlAwzKUVaYTHtVBRlWezWgiDwbGszYUXhw64e3KEwv+nrYluDk5Pt27l/f5SxqexByK17gzy7rx2tTqNrOKasKAXh+PE33Zzev52PBh4RKmFf1wBfmp3XoNdjMBi5/nSc1zZu58zI4/wfXiYkCKInM9PUWm0cbWjn4sTqp5imK/QApkI+hgMz7HW08M300tRBC2Fu0AXEzjtBEJBlGZ1Ol2Vj0+ISu8zfgKDxyXAX72zagaxGCIs9DARHKQgJdUj874wtxovGp37nJrPzqfqEpJwvbbmC2pQZyvE42MWuhv1g0DEecmWo+ZQkqajGiEZZARSimatLqvgSdfoSoRzLrepzGKvZVWNlyH914YWLxGx0HF/0Y16sP4JHNnHNdb/k21gMFntMX6zfza17Q5y/UdqEWtfsLL+4dZ13/8NJJu4Mceti8WTNUrDn0F4CBpFH94ez3tMJBjRUomrp1NpLQZXVxolXDvDvX10o8pOx77xaX48rXLoasQe3beKxe5LZEqrZIVY3b8Q/m3VFemvfDi71Pyn6npzo8aIg0GKrJqgEmAzP8h+ff46fXb4aV9+BUTSiKDoiagSdXpd8ltA0DUkU+X/ePoFkEdC73YTyPFdKkhRXbsd+9Hp98vdqqKLSy3h8V1EJxYihHI5D+jinnMMKK/h2okLoVbAmIEkSjY2Ny7qNxIxKuZNksHYIvVz16dJttYmHSqPRiNPpXFYl3nxIEHqKoizLzJokihzb0IYA/LErViy92+Wi2+XiyPZW2oNOLt/oz3rIv3Krn+f2txOsC9EzMlYSQk/T4KOb3bx1cDu/frT42nKaphGJRAinDXgEwGA0YjQYkt/jhN9Ps6+aHY51PJgeX2rzi0NaYEePewq9uI6DdW1cnxqa/3PLjuxE2S7POMcaO2g0VTMWKp3KJIH5gi50Oh2hUAhZljPapGXYZFNEXnIAJUCd2YLDrGLQhbnsKpDMWwgJgi8H0Zf6lZ/s0zQNRZaT1x0tTr7FmlycfffezE121u7DGbTycGYou64VpCkG1RzpuyqKkl0fMb02X8ZPCQanVoOZF+s3MOD7cMnrygcNlQHfRcxSDa83HaLH66HPv9rnVfE46niGrp5JPruwfBbi312/xYaGet7+397lwgfnmZ6cP/W8FNh1YBemZjtXbuYuNVClr8W9RKttqWCzWDj1xrP829lzCy+cA0bRQlCRkfPU2ysWzU479euqeP9maUNgbDob06Ew8px6vW88s53BWQ89Y8X0i9Q1r9lajSAoTIVdaGh8f/8+/nj7DpHERCkSNqGGYX/qvpJut/2/3ziGaIWdtU6ocRCNRolEIhk/0WgURVEIBoMEg5nWbUEQMsi9dNJvuRRT6Y6K7zKZVanZFkM5HIeKQq+C1USlx1VQQRxrhSSDtdPWxIOWLMvMzMzgcrkIBFL2r6qqKpxOJ1ardVVnWSVJIhqNljwYIx26OKkniQLvP0gNHi+PDFNrNPLqyZ2cv9iLP5ipCLh0s5/Dz6wnFAwx7stdlLxYqJrGZ9/08s6eTn7f+7C4z6oq4XBc4TXnvaqqqpwP17efPuW5tja21Dp55MlffL3USNJB8Ybed43zTEMze+zN3HGXiHxaEjKP4LmxPt5o7eTcWAifvPQ6UJoGshyNpQunFZ43GGLqSZ0u18OvNj+RFz+kNp2BUy0b0UtDPPL9kSq9neecz3HJVdp6UxlIDkIhQ4+VRvRFoxEiaeeyAIhpJFxS1acBQmGhHPdnbtFq3sDxxt2cHcusdShA0j48F3Mtwrl+sndRyKjVJxQZymEQdZxu27usZF46gsoMfd7PqTduYGv1AS5OduNdI6EZDfo63EMq75/5Ztm3NTAxycDEJKffPcr49V4e3Fq+oJ5d+3diaa3LS+bVGOrwRt3Ltv1ioJd0vHb6KD8/+3WRn0yduwapmolQcYnE+WAxGHjp4A7+ucR18wRAwsRsNHOy5rW92xj1zXJ7oMj7kQbrLFWYDTo8UQ9KnMx8edt2esbGmPKnEoudeieDORJ6m2ur+Y8v7aem1sRWW03y3i1JEiaTKXNzmoYsy1kkXyQSyXh9LhKqvrlE31JVfQkyL1H/77uKiuU2hnKz3FYUehWsNCqEXgVrAitxw65YbpcPiqIwNBRTb4iiiN1ux+l0rqitdj6kB2MsJyRR5GhbK6Ig8Lv7qcGWJxzmV30Pefv5rYz0uuh9MpnxuQtXezmyv537+kncodL0z2AkyjePR3hp/Ua+Gnyy4PJJhZecpvCSJIxGI8FgEHUB9eCloSFe3LiRsE1h0Fc6a9S8SPJ5qbbdnhjlcGMb22rW0T2zworBRLOSysHs9z4efsg7G3fzhyf3F518G1NPRolEwkl1WCzowojRaJj34V9VNTRNTSPxMok8gKPr2thUA499n5DwmM5G3Tyevc7zdc9zYapY29zSoAHRSIRwJJIx0DPGB44IQrZ9V5i7jvntu8OBJ1ij07zVeoBPR+8QUaMsBFEQECUJpLmqPg1VTZB9SkY4R0zVF1MLz7XvCuL8oRyiIPL2xoP0uX6LtWpxie+LhTs8gDs8wCHHQaYizXzj6VnR7RcLo2CgztPOv33+5Ypu98Nb3/Bs5yYO11Zx9Uzu8IOlYNf+nVjX13P5Rm4yzyCakNUIirZw/10JnH7zBX59vvgAjMSJWmtcx1SJrLZmvZ4fvHyYf1pMexaAw1DHkC+zbt6re7Yx7vdza6C4MgvVBhNVeh3u8Ay+kIIoxs7/Ix2b8EdD3B99mly2wVDPsMebMXUkCQLvHN7Byd2bQVNpsdgW3GZChafX67FarRnvqaqak+iLRCJ5VX1AFslXjKqvQmTFUA5W03JAORyHikKvgtVEpcdVsGaQCC5YLqwlkqzc2xoKhXC5XHg8qQdtg8GQtNWWmz1gJY+nJIocaY0V2n/vXqY67oPHPexqqOdE6zYuXOklEo23RxD48sIDXj2+h4ezbsa9pVHAjLpncdqsdDrreOjKbfeJRuMKr7RjY9DrMRqNyeMWCoVShMk8+PrJE05t2kRYkRkPLr+KJ1868NWxIV5o2Ui7NUq/vzTKjuKQzAbOekcD/jh4n+9t3MV7T4qzfKmqlqyPp6opO5LRaEBvMOS0cybsqwkkBmJJlZiUqv3WZK3mVFsrk+ErPPZlK3yCio8HnvMcqzvGxanLKCzv5IiWtr+JPUikKev1ukxL7WLtu2lE32xkhquTZzm+7jBdMy6e+BMp1MXVbxMQkEQhrupLPYbFgipT5J6iqrH/K7E6fQnr8NyjKsZT2t/ZcJiB6fdQiYVyiMLKD26G/NepNbRyct1+vhgvfaDAvCjwKzAJRlrcnfz66/PL2548uNLzmO2tzZz8/im++O3SE4gT2LV/J5a2/GQegFVXXTZW2+MvHeTM/ftJa2ixMEoW/HIEVVv6RJxRp+eHp47wLxcuLXIaJT+skgVPOJIx6XVq9xYmAn5uDmTXN5wPzdZqolqI8eAUmqahi9+D97Wtx2SQONuVqlVbb6hjzBtASdtuR4ODt57tZFOTA7vOgEVa+jBQFEVMJtO8qr65Nl5ZlolGo0SjUfxpasLE+nIRfemqvgqhF0PlOMRQbpbbchvjVPDtR4XQq6CCOCo19JYGTdOYnZ3F5XJlPaABtLe3l60MfaUUeglIosizrS1Igsiv797PoBDuTU7ygEnePr6N0cfTdPeNJx9ivzz/gDdP7eN8ZIDZUGkUFneHxji+o4NRwywzkZjdN70+nppUKmXXx8tCAYT7548f8/qWLVyaeoInHCrJPiyEXFTj+ZEnvLZhK5NhX0nsrcUglQyc+/2oqvLpcDdvb9jJBwMLBw4oSsoGnYAUV0/GBkHZn5kbdKHX65LBMOk/ibH2voYW9taL3Bn/VZpCTMqwhgqArEW44znL0boXuTJ9nYha+mOrJoI90uoBSpKE0WBEpy/wsWYh+27877lEn4rKzenLbKnqxCKt5/7MQAYpmlhf2iYKJvtiacEx5R1zxgMxVV92KEfsmiXwVttBBqbfQ44fb78vdg1OKPmkZCCHuOyDP09kGL88xenm43w90YNPzr4frBZMggnbeBufXruHrK3seZ+OruFRpmqqefevf8gnv/iIoH9pScS79u/EuqGey9fzk3lVegezZWK13bt7G0+DM0zOZFtBC4VZV8NEeDrDUr8YGHQSP3rlCP984VJWfbulQgD0gpXxSGo/T+7cgisc4GYRyjy9KNFsteGKeJC1NAJUgB2NzayrreLju6l7RZ3BycRskLASW1YE3jrUSdv6GnY0NNCoM7HcSFf1zYWqqjlr9cUmo1RCoVBsonAOEqq+9GuYLMvJYKfvGsqByCoHlJPlNlE2o4IKVhIVQq+CNYOKQi+Fcmqroii43W6mp6eThIIgCMm02oGBgWWvT7dUrDShBzFVzaGWJix6PT+7fSdjIKECv+/tZpPdzsmXO3k65ObyjR7QNL661MOrJ3by/sOHlKq5Xz3o482DnbzXc4/gnPp4Utpseb4H5oUIqrn4+NEj3tq2jTNPe5eVTMun0Evg04EefrB5F78dXP4aWsXCJ4e5Mj7AKy3b+Gwkd8H+hYIuCiHyEt+ZKEpYLJbYCDSt9puiqJxq24RNN0CP5x4axNSaigJp200lukpIosj1ic84XH+Ki64rqCXSvCiyQjgSziiLkNjfkj3IF5i+2+vrot26mb2ODu64+5LHMZ3cS50PWgbRl9hM8ao+KWcox+tNzzDh/xBJLyDPCeVMErNzdH2CIOQk+ko1KI6qIXpnPuaI8zmG/ArdvoGSrHcpMAtmpNF6bt4ewS+vPrE1NePl329f5wd/9Qb3v7jJk57FJXDv3LcwmScKUpxwX32rbVtrE1VNVVxdQuhElcHJdGiGgmWZeWCQJH506uiykHkQs9oO+1J1845ubcerhLjRXziZ5zBZMOsExsPZKvqOunq2Ntfzu5upe1id3oHLF04m5hokib96eT8+S5DDja3UiKs/sRpTjhsxGo0ZrydKDuQK5Uj/SSAajdLX15el6ksP6fg2kysVhV4M5WS5/a6SyxWsLiqEXgUVxLEWa+glkhRX4+YRDoeZnp7G7XYnHyr0ej1OpxO73Z5s40oETiwVq0WQCoLArnX1/PTwAf7l5m18kczB1mO3m8duN7UGA6+9sQfPuJ+HvZOcOd/F917s5Hd3iwu0yIeoIvP7S7d5Y982fnH/NpCqj1ecqrJwwv2P3d28u2MHv3tyt+QWp7nIZwbWgI+edPP2ht18MHQ35zLLgdTpOv/xmgj56PVO8cK6Ds6P98U+MU/QRT5iK0k2LRB0kd5AUZJostZwvLmFafkqM/I0VdUkai26AAAgAElEQVTVmUmucUWfMifRNdGLLw59yIF1r3Dm6dm02m9SqvZbgdctOSoTjoQzzk+DPhbsIUor+AA/J313INjHeks7B51buenuTSr50om8XETf3P/PVfUVQ/Qdrd+GL3IORAWDwZBMna6qqkLVUoq+9J9EQqQiKyhkXvPSQznm/iwGg75L2A3rebVxN4MBH13exZFW86GQib5qoYbgExsP7k/hl5c/ZbZQqMCvr13n+cNb2bpvG5c+vMDs7OyCn4NY72nd0Ebjjg2cuTD/pESNwYknPDnvMiuBKpuNPQe38N75y4tehyhIKJpERI0uSZ2nlyR+9Mpz/OzylWUh8xKptgnLa2dzA1U2Ax/dLewc0IsSTVYbPtmHK5KtVmuttXOwYwO/unYj+VqtrgZ3IEogTno5rGb+5MXduPV+3m3dgVUs72GfEC8foNPpYhNMaUhX9fl8PmZnZzMmYxdS9eVK4F3rxEs5EFnlgHJQKpaDSrCC7y7K+8peQQVpWO4b71qy3CYGw1pcSbNSNxBN0/D7/bhcroxBh8Vioa6ujqqqqqzvqZzUhPmwGgq9dHTYa/np4YP84vZdxnzZteWmg0F++eAO66qrePPkTu7dHeHq9X5ee2YznzzsXdQ2NbRkfbzEd3P+/mN+sGMPnw32FdWnUgq9wgk9Dfiop4e3t+7k908WtpUuBgsp9AACcpQb4yMca9zEubHH+RcsKQpXNPbPutCLIkcb2jkz1B2zQauFBV1k1YfTUgRSTiIvDoMo8UprO9UGFwOBjzNaLeQhd1KJrkqy/puqKtyeOsuLjS9ydvRsVu23BHkk5bDvomlE40ReemJtbDBmRBDLYyA2GOin1byew87tXHN1J0M0EkjV4Msk+oB5VH2F2Xe3VLdQJQ4zGc0dCiAKIqIuV7/Q5iX7EqEcWeubS/JJIqKwMDHrjgzijgxSpV/Hq407cEXgxvTypbzOhYMGRu4pPH78FIOooGrldy+60NWDCLz+kxNI7iDnPjhHeIGSBLaqKg6+epj3P7s874DerLMRlP15JzZWCjpJ4pXXnuUXX51b0nqq9PWM+mKk7GKvAgLwo5PP8fPLVxddw28+SIgImpHZaOw5qaHKxt5Nrfz88sJ1Jav0RmpNRiJqhImwi1w3sHprFSd3bednl68lrw1m0UQkKuKLk3971jexZ8c6xiUvP1q/G6uwtod8c1V9s7OzWCwWmpqaMlR96VbeXKq+9PXlCuZYK6q+xPM/VAi9ciDTEm2oBGJUsBqo9LoKKohjLRBP6ZAkCVmWURRl2W9iqqri8XhwuVxJBYggCNTU1OB0OjGb8ycqJh40yvm4lkMbm6ts/KeDz/De/Yf0TLoy34w/sU/4/Pymr4tDW5rYqloZGXDzbHsbV/qHCt5Osj5eOlEiCBgMBoKqwODYDC+3byoo+TbVvOIJPYCQLHN1cJgTLZs4M1J6Mi1Bfiw0kB32zVBnsbK1up4e7/KrWApV6EEs6OLO+BBbq+o5aG/h3GhvwUEXyTpwaYm1kJ/Is0p6jjWvp8Ecpc/3BW65cII7I9E1TdSpaRpDobu83PYyFyYuxMk+JZs8yjHgSqAcibx0DAcHaTIpPFfXyaWpTNVsguDLT/TNPW9yq/rm2nfrjDVss+kZ9se2V8yElyAISEK2fRfIIvjSib5Uzb7s9cUCVKSUwi9O9qVjNjrObHQck1TNa437GfCH6JotvWIvHevUFu5d9zIw4qbOaMUbXXzNtuWGSiwFVxRFfvCfT9N19g6Pu3JP2Oh0Ol7/s9f45R+/mlelJiJiEE3MRFZflfjmm8d47+LilXkAVqmWmcjSycl3jh3ivVs3CS+TI6PW4GRwNtbXTDodbx/eyT98PX+qcb3ZilEnEpCDTIZdeZdrqqrheOcW/un8pSR5ICJiEWwMB2apMhl458hOHspjeHQB/uRbQObNRTqRVaiqb27NPlWN1Z5NPNOmQ6fT5ST6YqUsyuMelJ7oXiH0Vl+pmOiTFUKvgtVApddVsGaw3DfRdEJvtWysxSBB6C2nqiwSiSRttemzTw6HA4fDUdCNK90eXK4olzY6zWb+bM8uPujq4ebI0+Trcwmza6NP0Ykib23eikWTmGxw0Dcxf1qrqqqEE4mgWnoCqjFWHy/ONgy6ZrCYDBxobOLG2NP5VlkSjPl81M1Y2elYx/3p8dKuPH+YbBZuT4zyyoYtPA3MMisvd1jHwgq9uUEXd0LD7Gtcz8vtndyYHi2qPt5CRJ4kCLzS2kGdKUif/3NKFKIc37ZASPMxFu7h2XVHuO25lXwvSRgpCoqiIityTlJYA8KRCOH09N1F2neXC09DI9Qbo5xs3MMXYwvXBksRfWSk8SaJinnsuybRwAv1GxiY/WPyM4ImZJAc6cexmGOTz16bTujFbNYxJWbSvjufqm9Orb4QXvpnz1JraOPVxgOcnfiGiFp6YqVZbuf8uRGm3LM0mh14ImMl38ZyQFVVfn39Bs/u28TLnRs58/sv0NTM8+L0T97ggy/mJ4gAagz1eMog1fb1V5/n87t3Cc9D3C8EET0qeoLK0gJEXtzbyTdPh/AGl+c679A7GAv40YiFUfz5sf38f+ev5V2+Sm/EbjLijniZDc9/fFpq7by0fTP/dO4SkLqk1xmcPPX6eftAJ9Y6Pf84cIW3OnbwbusOaiVDaXasjFCoMm2hWn25gjmi0SiyLCPLMoFAZl9LTH7mqte30mRSRZ2XQjlZbiuEXgWrgUqvq6CCOBKzXLFC8ErZX5SXq+afpmkEAgFcLhdeb6qYs9lsxul0Ul1dXdQDxFpQPq625TYdNoOBtzu3ISsKd8ZiA7GMBE5NA0FAVlV+97iLzro6Xt+1lV9fv8OEN/PhUyP20JozOCGeCJqrXlfXyCQHOlrY4nDwaHp+ohAWr9BL4N7EOCfa2xk1eXGHgotax3zQ4v8Wqk32+cAjvr95F+8PfrPsdf3yYb6gi77gDHvMFg7Wt3FjKqXKzE/kJX2aedFqqeFESyMDwS/p8y9fQMlMdBKDZGRn9U7ue2MWa1EUYwMrVSUqZybW6nU6EIQ00k+N2USTIQ+ZSNl3UyRf0r67QpgMTxBQArzZcoCPRm4vKgwk2UfzqPokRF5v2c3g7O/jASax9+baylRNTSlUkx0i07JbtKpPknIOmHIRfYlrab5QDlEUCQZ7mJT6OeZ8kachjQfeviVlHCT2TUSkKdTBR1/2EAxFaDQ7mSkDUqtYXHn0mCqzmXd/+kO++PfP8Xpi1urjbx7n0oNeQpH5yZ8qvR2f7Fl1q+3xFw9yc7if6QJrA+aDTV/HeCi/cq0Q7GpvI6xX6Blbnv5QravGHY4m02V/eGQvv7t1L2eNPkEQaLVWE1KDcWvt/Fhvd3BkSzs/v5xGDgoxMm9XexPHGiz82+ANlGGNVzdu5QdtO6nT53dPrGUslcxKV/XNdZhomjZvAm8hqr50K+9yqfoqhF4MCXIWVo/QS7c/V2roVbAaKG/GooIK0rASCgydTkckEllThF6pSChVVZmZmcHlcmUUFk7YaudaGQpFOdhZF0K5tdGm1/POju2EFZXuyalE0bNkymb6mfBwaoruqSlOd25FpwncH5qgf2I6qz6egIDeoMdoKCwR9EbfCMc62/Faw4z7/fMvXIJz80x/P+90dvL+wL2SkWlC/F+hA1oN+EPfQ97ZtJffDixf8m2ytJ+WslMWGnRx1/2UvY5m9tqbuT09WnjQxRyICBxv2UiDycNj/8fzL1wiTIaGWWeS2FG9kzvT3xAJR5CVFNGj1+kxGA35+2ec/Esn+XLbd1MfEYgl+CZtoGmk33LAL/u46T7PGy1H+Wq8B5+8NDVROgQEXm3ey6j/oyQZGolGMlS3giBgNBpjfWBut9fIq+JLJ/uKvdfmU/XNV6cvSfTJMg/GP8FhXs9xx36+HruHTwkk05JFUUQQC7eUCQg0hTbx/icPkBWFepMDX9SFtmoU/dIwGwzy8xvXePcnx3lyoQuzxcR4OMjE5PwpvXrBGKuTqmYTDyuJZw/uZsjvZmhiaZbfKl0905Ecdukiumqz0876tjp+f3N5ru1myUxYEZmNxs75kzu38GB8nCl/9jWgzmTBpBeZCrsKuj91OOvZ397KL6/eyHi9zdbAyf3b+bentxjrn8VhNrOnrok/Xb+HBsPintnWApaTzEpX4c1FvgTeSCRSkKpvbs2+pbS/HGym5YD00jGrpdRPH4eV+9ixgm8nKr2uggrSsBbUZAmUqq3RaJTp6Wmmp6czZrkSttriUk7zt7Mc1G/5UI5trDYa+ZNdnfzi9j363O6kGCeXHVwF/vCwh5c2baCu1cDGxvVMTPm50t0fG+AbjBiMhqyaVgvh3MN+Xt27lbPRfnyR/OqtpLN1kQq9BD7q6eHd7bt5r7+EibPxA1eojT6iKnw28Ii32nbxh6F7pWtHVqMANMLhSNFBF7ddIzy/roMmczUjfk/yc4UQeQDba+o52FDLaPA8g8HSEU4LQQOGZ3tx6kNsMW/lm0AsUdmgN8T650IDk0JUYmnJu0miT1VQVIW5sr7lsu8qmsK16XM8W3+QR143g/7SqIFebtyDJ3gWRYtm2LEhZS1Lv16nn49J8jhJAM9BwuIbt+8msQRV37yhHHNIPk94mOngEM/WHUSUdvDlyC1C0UxLZOr7Stl35/aZlsgmPvj0IbKiUK23EVV9KNribZ7lgt9dv8UPX36OOpOVP3x0If5q7uutgIBNX4N7lVWJe3ZtIWBUeNBdeI3XXDBJNoJKlGiGLbu4e43VYOTYge3868WFbcqLgYiIQbAyEoq5Gg5vWk9UVLg7nGnzTthrvVEfUzlUXrmwpWEdu9ua+PX1eLmC+K4/u3EzO7a18t97vgaguaqKbfYG/rJ9P01Ga2l2rEyRTuKsJCRJwmw2F6TqS/w/4ZLIp+rLFcxRiKqvogiLoRyOQ/o4bKljpgoqWAwqhF4FawYrceNeLhvrcmCphF66rTYx2DOZTDidTmpqako267cWSNJystymo9Zk4sd7dvKvt+/yIPE95SDNVEUhHInw/s07PL+5nQn9DH3aFN9/+RlCPo2rPUNEFnn8P7vTw+n92/lk4BGBPOfFUi23CUQUha8e9/Nm+3b+ONC1pHUlUIxCLwFvJMzVp8OcatrK5097StKOTMTaoygqwWDMYlxs0MW5p495a8NOpkM+QqqyIJEnAHucTWypthGllz7/1VLu0LxIDHZiQSwageAjWm0dHFx3iG5/V0mCLpLkzpzZcU1NkUcJNd9K2Xfveq6zybaNRtM2rrq6F79vgsirTXuY9n+BN+TKsNZKkoTRaMypCki/Z869f6bUoZlEX5YtPZ+qb5nsu5PyA4g85PX1hwgp1ZwZvYGsypmqvqxvLIbW6Cb++GU34WgUnajDJInMRhdQF68RHO7cTr88zb/cvcwrL+3ioGzk7rUeBkdGs5atNTaset28LZs2YGmw8dWdpSWYi4IOSbDglnMnORcygyEKAu+cOMS/XLi4pLbMB3taCMaetibsNWY+ups65616A06TCb9cmL02gQ12J7vbmnjvxu3ka3pJx4+fPciYLsDf95xHFARaqqvZVtPAX23aT/231GabjvQ6wOWAQlV9cxN4E6q+xHNA+vryJfDOnYAul2OwWlhtuy1kjhkrCr0KVgOVXldBBWlIXIjLmXxKYDFEmaZpSVtt+gNEdXV10lZbauK03OysuVDOpKPDYubP9+7i72dmGPV4UkNrTUOOz/zKaQP8K/2DHOrYwOEWOx9NdqFD5I1DOxh56uXuQPGhE5oGH93s5o392/ho4BGhecjuUlRqmg4FuTMyzvGWTZwtRfJtmkKvGHvWWGAW24yBI/UbuTz5ZOntIDvoAlKEjF6vLzro4qOhh3y/fQ+/6c9vIbNKBl5qXo/TpDAWusloON/AuPRIJSqnB7EIGAxGvMIkJtHCbvse7s2UUJE5B4IoIIkSEhL6zPjdFbHvPvZ1Yzc4ON2yn8+f3ik6/EEv6nitcRf97t8SCqfUlIm6iosdxCSu8/mIvvS/c6r6ltG+iwgjoevoBCPfaz9MWLNwcfI+ITmUWVNRjRGzAO3iNj79so/ZQOy+ts5oxx18CkKsJUK8bIGAUIoKASuKEweeYSg6zZ14mvlnj2PK4aP7N3P6wBZuX+lmwhUjiar0DnxRz5InV5aC9W3NtGxp5JPrtxZeeAFU6esZD+YgwIrYve+/dJj3rt9YNtN1rb6WiUAADdjaWEd7i5Pf3oh9RxadgTqzmYBSHJEHUGu28sL2zfzsUkpVuH/DBvZsbeGXA3cY9HpwWK3YjAZ2O5r4i/ZnsOtMpdy1ssVaIrMKUfXNVfelk4C51mcwGJLneGLZ2DPEGru4lQDlYD2uKPQqWG1UCL0K1gxWUqFXjsTOXBTTVlmWk7baxEySKIpJW22uWcVSt7Pc1G/pKFeFXgJ1Vgt/2rmVD3p6GQ+HiUaUjPp4xGdzEwP8BxMutqhOTqzbwpmJR3wwdo8NVjunD23jSvcQLm9xNktV0/joZjdv7t/OHwZ6CM8h9ZLnZokGkcNeL1aDkYMNbVyfWJpda6EgjPnQ63Fh1RvYWdvIfc/iEzJzBV1AjJSz2WxFEnmp0AQVjY+Huvjehp28P5CphNGLIieaN7LOEuax7zM8KyhUiiUqR4hGIslxtySJ8SAWffIbmQwNUm9S2VOzlzszy1ezMCdW0L7rjkxzc/ocxxsP8sjrod+3cHq0BgiqxivrOnk49guI0xF6fbzOoLg8aoTFqPqykEb25SP6cq1/LmQtzBPfOURBxwv1e9EJddybGeFpaDJjW3XhJs6dHcEXDCEKAvUmO97IVOyc0ZItmdOOdJIv8+9ygQC8+cIRrkw8ZsCTXYPu3JMeVE3lted3sy+6nXOff4OqyataN29DWwsdu1v5+OrSybxqfQNTIU++LlYQ3nxuP1/19jBboL21WJhEIyEZgkqUNkctz2xu4d+ufEO92YZREgirYSbCxdcPNEo6fnDwGf7XuQtYDUZe2rGFaruJh6Ex/uXJLca8XtrsdkJqlCMNG/nJht1UfQvTbPNhLRF6+bCQqi9fAq+iKBkT8sFgkCdPnmSp+tL//jbbcsvBclupoVfBaqPS6ypYUxAEYVlnnr9tlttQKITL5cLjSc3YG41GnE4ntbW1K/IwtBZI0nRCr9BaaysNi6by1sY2vvF4+epxPxB/IDQacxZXfjTlIqoqvNi0ia8nHjMQcDMQcPPclo0coJnRiVnuD48XzMGpmsaHt7p4a38nH/Q9JJL2AJOy3JZmXwG6pyY5YGhmW20d3TkGswVjiXbgbyaf8nzzBtqtDvr9Cyf+JpAIugiFwhl9P/aArcfn88MctVCiicUEXfjlMDenhjneuJmzY70AHK5vYbvdyBPfVzz2rdy1TIlbvzMTeqVYEItOl5MsmQwNIxtlDtoPcd19LccSK4+F7LsZ1l21cPvu1ch5Oqq20Nawk68m7uc8Hhqx+080HOF7Gw7xaPLXgFqSIupLxUKqvmKIvvTlU8G+udevajIj/lgYwAZLO7trd9E7O0Off4gm1nP+wggurx+dJGHVmRHEKIKkoRN18bZoaFrKrq5pqXqkcxsqxNi9lJJvlVR9kijx/RNHeb/3Fp7g/Gz8548fYDbo+U9/eoLLX13DP+Kdd/nlQvv6FjbuLA2ZZxQtBJUosjb/c8N8X8vJA7u4NzHKU0+OMI0SwSxVM+SbocFm5dTerXxyu5sWmw1v1MessrjajQLwZ88d5l8vXeGNvbswOyV+8/QmxnETclRHMBplvcPOU/8Mf7n1EN9v3YFZ/G4N574NhN58SEw2mUyZiktN05BlmUgkgtvtJhAIJAmkxOvzqfrm2ni/Daq+iuW2ggoqhF4FFWRgLZBPCeRrq6ZpzM7O4nK58Kelk9psNpxOZ1wRtHI38LVguU0MuhOD8nKazQyHwxnf5b4qK2379/J+z2OQpHm/yyfTHkw6HQedbVx3xZRul1xPAKiz2Hjt2S2E/QojU14ejU0tSMgpqsaHN7t4e/92ft/XhZylaCwt2X5jdJSX2tvxWsI8Dcwuah2pwI7Ft+PC6AAvtbSjojHgnz9dMmYzjc4JuojNxCeCLtRkY1Ipt6n6eCmio9Cgi2H/DA6jleNNm2iy6nBHrtPrW1qqZKHQAEWWCUcyE3r1ej3GApUB7vAYESXIUedRLrqWr87VUpFu381AEfbdB6G71BgGedl5mA8Gr6VUfZKIoqhEo1E0VeV77c8yOvMBeqOEwWAu60FXKey7yffmfG6ufXc63M90uJ91xk00hY/yz59cZ3zam1y42mBmJl4/Tkh8dm67YhuZQ/LFib6kqm9OI+PrSp2Tacq+EkMv6fjByef5+b2LWWroTKTaaBJq+R93z3Li4BY2b9vAxfO3CUdWTqnXvqGVts5mPr62dDIPwCBVMxEqfAJlLo7u3MpYcJbe8eWrJeg01DHiiyXL/sWxA/zzpSt4o36Weh/80eGD9I5P8Kcv7uPXE9fxjoQwiyY0RY9RJ4GoMez18H/teoFXmzZj+I6RefDtJ/TyIaHC0+v1+P1+AoEAdrsdu92Oqqo5QzkSFt5gMJhVqw/ISfStJVVfuVluv2t9soLywHfvLlDBmsZyK/TWcg09RVFwu924XKmi6aIoUltbi9PpxGg0rmo7y9XOmkA5EXqapuH3+3G5XMzOZhJZ9tpaOhsb6Whs4tf37jPinZ/o6pqYYp++kZ01TdyfSVn9psI+PhiL1flprK3m1Q1biAZUrvQM4g/lVxYoqspHN7t5Z38nv+mN2TxLFYqRC1/19/PG1q345MfMzpO0mxfJAffS2vbVSD8n2jahaBrDgew6dKqqJevjpRfsNhqN6A36jKCLdJJxrnIo1eTCEmsbzTZ2OxpwmkSqjWHckSd45eUn8zRiCdmRcBglQVzCopVkfnmGLu9FjtW9wKWpy3mDD8oSRdp3vVEvtyfP8+6GY/y27wpRMs+319YfwOX7Ak1SEIXYdakU6bsrjeWy7xo1B4OPLHxx8WPMkgOnsZbJkJt1ZgfeyGSOlcxpV6xBOY9nTpIv3jYtzQKfuZ9kKPmWYt8VBYF3TxzlZ3cuLlhvMdEKg2hE1qIoRPm87wEGUcc77x5C8Chcu3iXGZ9vES0pHB0bW2nb3sSn128vvHABqNbX4wovXlW3f2s7UYPG7UdLK9cwH6ySFU84Qketg9NHtvP3X39JKSa03t67l7oaK/fEIb4Yid1f9YIOEzZ0OpGx4CxGUcd/23eKDVH9d5LMg9VLuS0nzCWyRFHEZDLNq+qbS/Slv54uAEisby7JV46qvnKw3KarBMvp2FTw3cF3805QwZrFcl8o16LlVpZlRkdH8Xg8yRubXq/H6XRit9tXnZxKJx7L1c4KsXbKsoyiKKtW1FZV1WRoSSgUAmJ9vra2FkVR8Hq9GAwGBEGgtaaK/3xwHx91P+LGyPw1uW6NjPHcxjY6bE76fNmFuceCXv4QjJF7J/duRQpIXOoeJBTJfR7Iqspnd3r4/t5Ofvvo4bISegAf9/Tw1vZtfDnai08ujtRL9rYSNO3M0GNOrd+MrKqMhWKqoMUEXaQjFAonLZ5J0maBz1glPYfXtdJokZAZZiTwBf4gEIRWyxbabbvo991b4t7mhqZpRKJRIvHEWoj1UWP8YX8p53dUDXPHfYZn645xy32PgLK8RMRKIJ99V1VUbrrO84NNL/B+/3UiaozUe75pJ5HQdQLRbCVo0r4rSRl9Zi0qAgpV9Wkp+R4A5ugm7t2B+49i6dM+dRJR07HR1ogmpEIyUjbe4tuVIPwy25Ug9rTsv/Oo+lJEX2GhHALw7vGj/OrhlaLCU2z6WjzRlBItosr86uF1ROD1V/dSLevwjvu4efMBkejibKD50NHeRsuWRj69XpoamHrRREhRFrTaJjHnWO5Y30KVw8Ln9x6WpD25NylQra/BbtE4sb+D//frM0tep0mn5629e1nXZOW/P/o0GeAhImLXOVA1GPLPsKnayf+59QjSmBvB9t2pmTcX5ZZyuxooVKWYruqzWq1Z68gVyhGJRFBVlVAolHwWTcd8Cbwr/YxfDpbbxHdRsdtWsFqo9LwKKkjDWrHcapqWlM5Ho1Gmp2PWFKvVitPppKqqqmyIMyGuhNA0rSzUb/mwmsEYuUJLJEnC6XTicDjQ6XSMjY1lta/GaOSdzu0YdTouDsyvRrj0ZIgTW9rxGSNMhPOr+r4Y70EETu3bjhgSuTcwzrgnm1gJRWSu9QzzSvsmPn7cs4i9Lhwa8Ieubt7u3M5nI48IFEPqJcjGEtmBPx/s5dX1W4i6ogx6pohGUwNvvT6RPKpbMOhCFIWkqi8dkpQgaaQ4eRMnbAQBq6TnZOtGaoxe+n1nGQhk99XhwCMazRvYWr2fHu/NkuwzxGooJh70MxSIJZ6xV1G54/6KPbVHuefpxvctIPXSoakq4XCESDTWhy88/ZzvtZ/kq4luOmqaWWeeZjLgxiyZU/X6FDXbvjsHWUSfJC5bcMZyIq+qTxPRz+7i869HcHln0dCSx0QnmdHUaVT81BvtaBiQNfBGPahJYiib4Sumxy5s300n+bR4jT4KDOWIkXxvv3iUD/u+IRAt/PpmNzbgjUzn3BkV+PBRjGizGoy8+YMjBId9XLx4qyT1TlubG1m/vZlPSmSzBTBLdsZDxaXBJtDRtI71G+v54OadkrUnHQZRj11vQxQNRIUgJ/Z18j8vXFj0+gTgyOZNNDdU09nUxKcT9/jZo0cZyzSaGghGZUYDXl5s3MR/3LQfW1hljO+2Ou27arlNRymUaQup+nIRfYnXo9Hogqq+BPGn1+uX7bsqJ8ttuY5vKvj2o0LoVbCmsNwPMOVuuVUUBY/Hg8vlylAE2e12nE5n1k25XJBQv1UIvUwk6uO53e6M0JK6ujpqamoyHvDeNMcAACAASURBVFDytc+s13F662aMksSZvifzbu/Mo37e6NzMBfUx3mj2rGsCKvDpeBcA+zvaeEZswueLMOb2MTDpTtbOm5jxYR83cai5hS97upfVDq8BHzzs4nudnXw60kWgQBVtKoB36W3T0IhGZX7z4BZvbdqB1zfLZFSO18czIknZD5T5gi4sFguyrKQsmaqCqmooioqiqKTHqFr1Rk6s76DRGqZ39n1G/SKiJCHlsWGOBQeIqBF21hzh/szlJe2zqqrJhN5UYq2E0WDISKwtNe57LrLHfowb03cIq/n76lqBqqiEI+E5gSE6jAYj3/iu8PaGE4jqLL2+iwvadxUlvd+oycmSXNeuuUq+BOm3lsgACSPRiR28d7YLWY6lDCfOZ51oxKY3ElUmQICIklCqiTgMdgQseGU/YSVeOyrtMhDXl5L+a86fCyJl383+ZC6SL18ox+vPHeTs0AMmvF4QiFv00y282ds2SRaiahhFiy74ffojYX754Bq1Zivf+5Pj9Nx6Qk/vkyL2NBM1VTb2Ht7Ke+eXdn1JR7W+galwdjmD3Eh8kbH93tzSyOaOxpKTedV6GxZJB8goaghB0IiIYV7Z38k/Xry0qHXWmq0c37kFc42OL6Yf0Fpbw/96cp5+X6ZdvNXciCccZjLo58cdz/DDtp1USQY8wdgxWkvncCmhxc8n+O4eA1heUjNd1WexWLK2my+Bt1BV39wE3qV8j+Vkua0o9CpYLVR6XgUVpKFc7aGRSCRJ/KRLuxPtbGxsLFuiDMrDzroQVkqdma8+ns1mo66uDqvVmrPfzUc4GnU6Xtm8CYNOxyc9vfNu/+OHvZzesZULnl480ewCyXNxc3qIm8TUf03Oao61b8QgS3hmQtzqH6X76RSHLK2019oZmCl0MLY4aMAHXV2807mdD4e6CCmFkHpLP4c1Yuq09KCL9x/d5c93H+KTp12oOdR/CwVdCKKEYc45m0hRVVWVdWYbnfY6nEYBvThD78znuELZyh1BEGKhCmKM5EuELLjCT4mqEfbUHuOO51zR+ywrCpFwmOic9LYYcSktG5GXjnvu8xxyvMTlqWtrq6ZeGhRZiQeGpCk5dXoMxlTR8W1VWzCoDxDxsrv2Je57LpCdl5si5+YOGjRNy1DyJf6ej+hbK/ZdHWb8o1v58Mw9lDh5mXxP1OMw2QnLozmumRpRZRqYpkqqoVpfhzfqJ6yEku9n/M4i+mAu2Ve8fbeAUA4Nju/fy33vKMMz08kFlBwTEEJGnT4Ri74KV2gMXRH3fk/Qzz93XWZv+3pO736Rx/eG6H7UX9R+6XU6Tr76LL/4qvjrSj6YJBt+OYJSqNU2DdvamtiwoYEPbpWOzHMaajCIGmHFQ0COqajNUj2CXsepvZv550vFE5miIPLG3p3oHPCrkSsYA3r+YtNR/r3/StYEW6OxnslgEE84yF9uPsAPW3dijCtuv+t203Qiq1ye0VcDq6VSTNQGnluXO6EgzxXMkVD0zafqy5XAW8i+lYM6rmK5rWC1Uel5FawpLPfNO/GAUA720HzEj8Viwel0Ul1dTU9PD9FoFEVRyprQWwtJt8ut0JuvPl4h6sqFjqFeEjnevgGDJPHBw+6869GAPz7o4XTnFi7N9OGOBgreh6cBL08DsdpxRlHHSwc2I0UkeoenONDQylTAv8Aalg5V0/j9wy7e6ezkj4MPCS9Qa2opCj1VU4mEI4Qj4aygC4PBwCdDvbyzaQ+/HUjVj8ok8lIptgsFXehFieeb2qgzi1h1Kj5lmKfB80xpoClgshhQFSkZrKCmkTayooCiQJr6SwD8ko9g0M+2mkPc81xMEn75rqIaMft3JByOrTMOg16PwWhEWuGBg4bGXffXPFd3nAtTl1Ap72CddMiyTDgczjhfDXoDBmNmYMj+2r3UiPfxh2PnrBDuZk/tCdyRKAOBwggKQRDQSTqyw3e1DCXfWrPv6rEx3b+BT87fyzh/E+1yGhsIRfOXGkj0c1mdAXWGKl2M2JuVA4SV2HUvudbsP5hL9uUj+ub8uSDSQzme27WDp3jp80yi1+lSyr00G296gEhC6es0NuAOx9SIiqIgqP8/e28W3cZ9oHv+akFhIQmQBLiJ2ndKsnZZlmzJdmzHsbM57k7s9O2+9/btzqTPnJmeM2c689QnDzn9mJfkcZK+tzu7k3RipxPbcRLvki3LsvaNlESJFMUNIIl9q2UegAIKGwmS4BbhO0c2CRQLfxQKVf/66luEvIU3lwNYeQznRwY4zwA9a7r5zAPHSAQT+IeD9N7oJ5WaPmfv2c8e4z9OzE2dVg4CIrLQwKQ6fYN4OfSs7aZ7jZffnbtYk7H47M3YBI2E6idqObfYxWYUZwNHdm3ghx+emtU6bZLEw1s2s3qVh1+MnSY0lKDN3sQX1+3jf/W+h2o5rjklBz6lmXvRCJF0ir/ZfIDnLWQecN+r0+p22wyWg9XUCkEQkGUZWZanVfUVq/tmUvVVauA19/+l3g7muRTqhF4dS4f6nldHHUWwqsmWgiTTdZ2pqSkmJiYKiB+Px4PX68XpdBaM1ST0ljNWQtPtQpGO5fLxZFmmtbU1l49XDarZhrIo8vDa1SiyxK8uXpk2Ne7Vq30807OZ0+Hb+JOzJ+KSupqz5W7u8CEK8H88fIyfXL5IsCgXrtbQDYPfXL3Kczt6+GX/9Bdyc+ma1HQtYzNNpXPZe5IkZ4su5Nw6VV3nDwN9PLt6B78bvIJpp83/P6/IqzQMn72BB9u7aHOm6I+c4F45FR4gZZV3VhhkMtk0S5Oq+XNmkqkTiI0hcpVNzr1cnMhchJsqPquqT9M00qlUTRprawkdnYtT7/Jw26O8N/7+ko2jWqTT6QIlZ3472hFEa9OxwFHfIaTkH4hbWokN0gSib2CXu9jbcpxrU+dIGKE5jUWoon13udp3hXQD926u4u2P8uUG1uKYZls7SfXerNapakEgSIPYiFtuQTUkptKTGIZm+X6amZtZFBxEZ1L1zY7oe3j3LvxihAv3BnIL57L1rH+Zc+tnjitNthZiWihXAGIlAa2wEoe5Mo4isu/q+BBXx4cAaPd4OP6lh7BFNXovDNA/cLdkzJ9+4gh/vHCBVA2Lw9y2DsYSE7P+u53r19K5uoXXzs+vACiXjSekialjpCicA9gEJ6LcyCO7N/LvJ6tT5jU7XOxdv4bWFieiC14dvcDvhzKK+PUNbTzSuYnv976bW15CpN3RjCjYGAiHSGgqf50l8xxFZPr9Tmjd7+8f8jdrYGXktlWj6ism+qyqvlgsVrI+k+gz5+yqqubOSYsJ67myTujVsVSo73l1rCgsxh1JWZZzhN5iwiy3mJiYKLjb09raSktLS1mr6kop8VgJ46w16ZhIJAgEAkxNTeXuqDscDrxeb0k+XjWoVkEoiSKHu1fhttv58dkLpKbZ5q9dvcHT2zdxlsFpizJmwo2In4+nbtI4Yue/7zlKUo2TTBskVYNIQuPW5CTDoXCNaiky0AyDV6/38cWtO3nl9uXKC1ap0DPITCyTiSRpNa9Qsck27A7TZlp6/AkmE1wcH+Xh9g28P3rTQuSV9+kpooTP3sCOVh8+h4AhjDAY+wNlekdmhAAIFWySuknMaBoh1Y9Dc7K9ZR/XJs9WJGzMdYqShE2WkWS5xC64FNAMlcuT73Gs7djyJPXM5t9kKkeymM2/tjLNv5Igccx3iFT8V6Qob3tPqsMkI79mm/tTDCfCjCVv1XTIy9W+m0qlkFQPIzc6OXnuRsFYze3oln2o2liGiJsDND2CpkcAEa+tFQQHSV0nkg5ikCdiC3/I/1JZ1Ve9ffexfbu5q09x8d70ZUbm35jknEtqQkdDFVI5N0Hugr6gkMOa2Te9fdck/cbCQX555TQA+3rW88zBYwz1jXLhYqb06PDBB7gWGGYiPPdzRTHctnYCqWDZ2ILKMHhgwzq8nW7euHBlTq8rIuK1u5EFHdWIE9eGKVeFLiAhSV6eOtTDv81QgNGkOHhi93ZsTSJB4rw1dpXIRBIsXOVqVytHOzbwo5t5YrDd3owgaBiGyO1wEFXX+evNB/iLNTtxCKVkTV2hlz/G3q+w7gMreTtYVX3FMAyjbFafqepLJpMFpWKDg5ljqSzLZYs5ZFlekG1lva6pE3p1LBXqe14ddRTBnByrNbwDXQlmW20gECAYDOYer5b4WQlEGdw/llvTJu33+4lE8gxNU1MTXq+3Yj5erccnCAI72nz8w+GD/OTcRfyxyrba31+7yVPbNnFRuMtIYm5KIPM1I+kkP+77hOc27ORC7BwRLTPZWt/dyZGNG4nF4croBHemapO1F1fTnB4Y4lPdm3lzqHx24EwKPbPoImOPVHN/Y1Nsmby4MlZDw3LhbmDQH5qg2e5gm6eD68Gx3EW7iMC25jbWNTbSbAdF0kBIEE6PMJo4z8DMEYZzhigIiJIE2WNEyBinyd7Mzo4D9IevkEqlyx7jDMhbMbOT5RxhY1H1SaKIMI19t9ZIGykuTb7Lw76jXJy8SkgLzvxHCwyjYvNvRslZjgxVRIVjvn1EYy9BFbmAE7E38dl347Yd4kbkdK3fQgmWwr5rXrglk0lcdHOnt5Uzl/uRRAlBLLxgdUkeDCOEbtRCBayT1jLqSEmw4VU8ICgYhkRMSxCv0LBcSvbNTtX3xMF99CXGuDY2XLrOkl/ysAl2ZMFGWC1UswnlSjkKVH3T23cLXzrDHp4ZvMUZ+tng8/HsXz6KETQI6jH6zleOc5gtGuVWQuk46RliE4qxZVUXbaua+f35i8hy9Zm8TsmBW3YiCDqGkSShjZKcwcbvlLs4vn8LL330UcUlOxo9PLxjI1qjyn8MnUYNl1+y0+Hhsc6t/OhWhsyTBZl2h5tQepIGycdAOIRmGPyXzfsrknlQV6jd7xmCsPQ208WAIAg5Uq4YpqovHo/j92eO4TabjXQ6M69RVbVE1WddX7GNdz7bsa7Qq2M5oL7n1bGisBh3ohaDJNN1nVAoRCAQIB7PX9W73W68Xi8ul6uq97pSCL0/d8utmY/n9/tzdwwFQci1DxfbDOYzvtlswzUeN393aD+/vnKV3vFAxeX+cP0mj2/eQKNN4UbYX3G56WCqRVRd5+Xbl3lm7QPcjPUSSIW4HR3hdnQEgI2dXexfs4loUieR0piIJxkOhYilVRJqelY6DYDhSJiWoIM9vi7O+4dLF6ig0CtXdJFRVdkzOWdCmcbaIiLPaqs9O36PJ9duYSIRpbvJzbqmBjxKmrHERUJqgNACknfVYiBynXWO7bhpZ0S9A4AsSSh2BVmSs6q+8uqscoSNAAUEn9XCuxBHatVIc2HyHTY17SWW7qQ3WjtyYTYwdJ1kKkU6lco3/4qZ7Thd6Y8syBz37ScS+/GsXi+cvIBdHueB5se4OPX23Ac+DyyEfVcQhUwBRHa/ajJ6OHdWp39oqOx2FLGhCJDSaqcQM2EY6Ry5B+AUnTTKzaiGzFRqIqfcmw6VVH1Wou/Thw9wMXSXm4Ex60LlOcCC1Qk0KB6mUmMVlyv+o5zltvjbaB6/9MwverZ21yBP8pmlHDfGRml1uWnv8KAa8JmuB9GTOmpMZWQkyPXBATR99udMu9hAUoe4NjtitqPZw/Zt3fz85EczBhcKCPjsHiTBAENFNWLEtSmm33B5uOQu9ves5a3r14ha8klFQaSzycOONZ20tDoZF0P8dORDmOYeg8/exDOrH+B/3cgojN1yA05ZYirlp1Hu4E4ohCjAP/Qc5enOzRXJPKgr9O53QhPq20CSJJxOJ6Io4vf7URSF9evXl1X1mb9rmlai6jNhqvqKib5qVH1qUXFYHXUsBep7Xh0rDiZxsFAwD8gLQZKVy1OTJImWlhZaW1vL3omaDiuN0FvO45wL6Wh+noFAoMQmPZt8vGowVwWhz+Xkq3se4A99Nzl5p7K9660b/Rxa081Br5OPA1XYwIqQn/NkaK9XB67xRPdmnOI97ibyF6G3YsPcIk+8NTW46PF5aRRbcElOMCTiCZiIJrk4OkYsPX1AO8CVsXEeWbeOroYmhqOFF/vFF7MzFV2UU/QVE3lrGj1s8DTjkEUUSUCRBCTBQBI1/qJ1PUPRTxhP3WO8NA5vSaBmJ7KqqnI58jEP+I6AoBFmsqAhU8o25lpnBuVy+sxijow9M/Nz8aeUy1nLqrJEMavqq8FF6M3wOdocqzncephTE7MLqJ8PdE0nlUqSsuyTsiRnCNEZvusiIsd8h4jEfjan106qw6S1V9nf8iyXpj4mZczBo71AmKt91+TIBASa1AO89d4o/mA4d4431WKmrcyjtJCcpgSjltD0OJoeRxBEfIoPHTuT6Sl0Y/bKfXOPf+bhBznjv83tKX/2e5BXyE03ozGAFqWNqeQ4xbcl5oRs+26GMxLIUQJGYR6fYcATPQ/g18P8+kapOnSd18enduxHiOhcuTbIwMhIPrNvmq+5gIhNbGQ8ObsSDJei8PiDO/lBrpCj/Isooo1WpRGMJHFttCoythgOsZmeDau5NTlOIBrjse3baGlxYnOKaJLO7ViAt6auEBub+SDvsbl4bt1evt+baQXucLSQ0qOEUkGabF3cCQVZ29DC/95zlN1NbTMeI+93Mud+f/+Q3wYrIT9vIVHccFuNqq9cA6+p6iuGIAglJN+dO3eYmJhg/fr1dHd3F1zXTHdDr446FhJ1Qq+OOoqwEJZbq63WJBHsdjter5fm5uY5T0xWAlEGf36W21rn49V6fMVotNn43LatdLmbePnS1Zz6ohinB4fY3ubj8Y4tvDXaN8tXydrOLKv+09ANjnSsZXODwo1oacA6QFiNcT1caglWZJnHerbiwEUyDYm0jq4bCELGTqobBklVxx+NMxQK8f6dO3x22zb+mOgloVm+u9lrI13XicVj0xZdtDpdbHA3AwZxVSWpaThlmUZZwSYKNCkSbgdMpu8wlLgCGlC8S0dgf+sBNEFjKjU6y21YO2Qaa9Mkk6nc904gM+G8nbjIjtYHGY3fZTI1Mu16psvpMwk9U9Wn6aZCK6/MKj6KZqzAeYLPVPXlmjmrxHjiLsFUgEd8R/lo4mNS+sKxp5qFEDUhy5l9p9oLqqO+QyTjv6Qam20l6Eac8civ6HEfZyotVt2Cu1Qotu/qup67mDIhiw7s0f288mZfjig1yuS+Nds7iCfuYqBlSaN8DtxCwjB0UtoYINBq84LgRjdENAziWoyUNrP0VhIlvnD8Id4ausq9oDVuIF+WU/guCom+JrmZmBrK31ggQ7LnlX8GhmUN1dh3y6KolOOLew5xLniHvsnRTJ5m1qZrZBV9d0J+7oQyqsYj2zfz7AOHSYRTxKIp+u4MMREOZs5XBc27Ah6lndFZlmBIgsBzjz/ID0+crLhMk9xAo2xDM2LE1PKZeNVARGbz6g2s7/LSpCls2NrK66OXCE2UtnDOhEbZwQsbDvL/9b6LhESH00MwPYGmqzTbOrkdCvHZNTv4i3UP0KW4Zl4hdYVendCrbwMTs7Eem6o+a7EgFGb1Fav7rCQgwPDwMP/0T/+U+w5KkkRnZyednZ10dXVx+PBhNm3axIYNG2htba3xu50ezz//PJcvX8btduPxeHIxTl/5ylf4xje+UbL89773PQYHB2lqaiIcDrNz505eeOGFRR1zHbVDndCrY8VhoRV6tSLJDMPI2WqtWQ61yFOr9VgXGivBcjvTtjQMg0gkQiAQqHk+XjWYb8afTRJ5aHU3XY2N/OrSVe5VCDa/Nu4nnGzisxt28rt705RNFMGq0LPig9EBHmpfy1pnBwPx6gmulK5yemrmwPOW5iaOdq2iUWxEU1X+6449DEcnkESQRdDUNJqaQhQFNB2SqoCKiCBKKDYZmwiKJGCXdcLaKIPRsyAYuJ0ObIJCQosTVjMtwJNpgRIpWhl8MnGGXZ4HsIsORhN3qn7PtYBhGKSzRF5J06rdjpj9oK4FP2ab5wDAjKReJWQIm2xOn+XGtKnAKlb16bqesfWqpUyoWcaRJ/nEbIZaZftuSo9zYfIdDrUe48zEORL67C+4p4OqqqSSKVQLQazYbCiKHVGq7kJKFCQe9h5ET76KTi3GZzAReweHvIY9LY9zefIEKstECloBZoB52qpslGUalXbCdzfw2w96MciQzSaZZyX1XJIH9BBaBdLWbJEWcsSRkG9zrRmMAkuuIIg0ik5EqQEEG4YhE1JDpIvG2OBw8rlHH+Rnlz4kXoXaOLv2HBGnCJlSlZSRRIDc9yo/DqEkq3Fm+y7TEn2yKPHlAw/x6uA5xhORquy7p8Zuccq4hYGBU7Jx6NBGDri2IRkCaAZ6XCMwGqHvlh9/PJj5TlnUfOZnVgnPPfogvzh9Gh1wSQ4aFDsCBpIkADoYGmk9QlSt/jsmiRI71qyn1dOEbBOQbSKiLNDWsJq0lOZHQyfnlSvbKDv46sYH+X7vu7TYmlAkgYlkRq3ebOtgIp7k/939OEdbV6OUyWqthPu9FKJOZt0fGXrVoBZKxWpUfVbCz+PxMJXNgdY0jaGhIYaGMk3hv/3tb3N/29zczIYNG3L/Nm7cSE9PD93d3XMe60xYs2ZNrhxk165dfO1rX+Po0aMly33zm98E4Fvf+lbusX/8x39kYGCgLPlXx/JHndCro44izNdyq6oqk5OTTExM5C5gRFHM2WprkadmYqURest5nJUIM13XmZqaIhAILFg+3mzHZxjGnCfz65o9/I9D+3n7Vj/v3x4ou8xQKEzkepovbd/DK0PnqzQslSr0THw4NsCnVm0iriQYT9W2zGAyFWYylc9SkyMST3Xu5bz/PYLxYME+pygKdrsd0bx4Kri+zofFY0BKT+fezFy29aXgRbY2bWWNazuDsWuz/vvZwixoSFoLGgQBxW5HsdnKvofrwTNsde9HRCCQKpM/OEdUylvL23fL2DBhxpy+gmKOrH3XQOfi5Lvsb32Ec5NXiFUoMpgN0tnGWjMbTABsioJdURBmcQHlEJ087NtNNPZz5qPMK4eEOkgyco8Hmp9kOBFiJNFb0/XXApqmkUwlUdMWZaNNxq7YadS3cPWiwLlrheMubm1URBdOUSClRZFlOU/2kbeFmt9Zowx7lWlyFXLEV448micMQ0czomhEc4+5ZQ+C0IJuSATTQdpa3Dx8sId/P/veHEyfGTTamplMjpYl8iTJtLDPzr5bbiFzi7hsTp4/eIgf931AUquCKLZsYxMpdE6M3Mjl8ZmfV4ejlU8/vZdENI6a0EhG02CAIGX+PhFPc3t4nHsTAYvlWuDpw3v4+PYgbrERj0MlpYWJpsYRBQHJKH8ZIwoinZ42dPTMPqhrNDhceBoaaPO4aWq2IzaIvDd+jQ/i1yEbq/V491EGkv28MXxp5vc+DVrtjTy/bh//s+8EHc5WomqQYCrzIh5bG3bRybcOPMFWV8us132/l0Lc74Qm1ElNE8WW21qjWNXn8/n4zW9+Q29vL7du3aK/v58bN25w9+5dxsbGCuYvU1NTnD17lrNnz+YeE0WR7373uzz11FM1H+vq1av57ne/O+NyJ0+e5KWXXuL06cIYhW984xs8+eSTvPjii6xZs6bm46tjYVEn9OpYcVjok/hcyadyNkxFUXK22oU44awEogxWluXWHKOqqgQCASYmJgry8bxeLy0tLYsefmtelJoXtPP5HnjsCp/btoUNrS384sJlEmXs5cFEgtcu9fHcrr38auhcVeOD0vIJE2/eu8kza7eR0K4QrsKmNhcYhkEsGeOX19/m6bWHuJ48TVgPgWFkJ2blLE1Grg2yYPxFxMJc0BvuZV3DejY27uFW5Py81lUJVhtjvqBBRLHbsdlsM1IXvaFP2OLeh4CAP3VvQcZoosC+Wyanr6yqz5LTVwxRFHLW3TNjf2Kv91GuBG9kPvPZwsi2HacKS1LMO/ez3Rd8ipd9zWsIx34y+7FUCQMNf/T3NNu20u55lCvhU6g1VinOBaqWVTZajis2mw3FrqCIToSpHl57/y5T4enJV0lQcEkKKXU0rxArp0bLWUGxtLpaih6Kj0lWEqqG9l1VC5JpRhDYv2Enazeu4rUrV/HYvETVMCljdkpKj83HZGKMtEUhapLlpftjdfbdSjAAu2TjLw4d4n9eeRs9V8VR+BJVI6e6yxOoKZz8a1/GMpv7fCwErUtSeGDXKp5p2oCiiiiqjUbRgdNjw+EWMMQUgkimTAUwVAMtLaCmdAQJJFlElgVkh4ShCNyIjSAJIg1yKw5RYSIVYSwZ5FL0NsmACkU9UV/c8Ch9YT8f+Ms3pleLVc5mPt29g1/dPo/X7mIymc+QbbZ14LM38/dbDrPW0TSn9d/vltv7ndCEeoaeiaVQKrpcLvbu3cvevXsBGBoaIhqNIooizc3NOaLP+m9iIhMxoOs6gUDlgrrFwOuvv86aNWtwu90Fj5sk3uuvv87Xvva1pRhaHfNAndCro44izCZDzzAMwuEwgUCAaDR/p76xsRGv10tjY+OCTrpWCqG30iy3d+/eLcg7dDgc+Hw+3G73kk4iRVHMNUnOdxySKLK7o522h1z85NxFRiKlF9cJVeP3l2/w3M7dvDw0fV5XJcutFa8PXOeL63fz0dQZUnrtFEtG1tKXsqjTXhs8zdNrDzGRusXtiVtlRmVYyADzIaPmVr070duortWsa3iAO9GLNVtvLtuloKBBQrHbM81ss1hXX+gsW5r2IgoSY8nFKR2wwkr0FU9KSnP6sj/rRvafmtO+fXD39+xre5RrwX4mUn4kUcrm9WWUfeXUdYZhkC5RNooZ8slmm9YGWAk97m2sViKEY/8x67+dC6LpXqLpG+xsPEbcaKI3/MHMf7QAUFWVZDJZoopVFCVTPKN1MnLTy7sfXZsx3UxEwm1zk0wPTbtcgRW0xA1qVfBZlX0ViD5qY9/d17MD3PCby3/IjbJJbkIUGgERAwkDAQMBzdAJq0F0w3JuNAwUwUU8FEWjhgAAIABJREFUHSWtpXPjKk/kzYRKRB8FcmpZlHjhwSP827V3s2pCw/Jfc3nLOq3rq2JIHls7/mQ+P9DcvnZRwSHZUUQZQTAYCoe4G55E0xM8um4z11IBPu6fnmATLJ+/VeFZ7bYSBYGvbn6St0ZvcDU0v5saGxraONa5hTeGrpHWI8TUDIkrAB5bJ+sb2vlvmw/QYasuL68c7nd11v3+/qG+DUwsB2LTHIPdbs/Za4sxNTVFf38/uq7niMClwsmTJ0vIPBNut5vXXnutTuitQNQJvTpWHJaDQk/TtJwN0wxLNW2Yra2tOByOBR3jbMa6HLDcx2kYRo6QNS22kMnH8/l8uFyuZXE33Ero1QpdTY38twN7eenCJW5PTpU8H02nefNaP1/Y/gC/GZqOkKpsuTVhAL+5c4XnNxzkXf9H6HM2omWgZ8sKUum8PVbKlhXYZJmTk9c40LKZNY0wFDOz7IqIvBoq8iphKHYXpXETq5ybuRefu/rDADQ1oyJT1cJmNUVRChprZ4u+8DnWN/awVu5hIHp1zuupNWbK6StW9Z0bf4ddvqPcDSsMxgYLbNVmTp8oioiCgKbrBTduzLbjuTbVSYLEEe8BpPS7hBPTE1G1h85E/B0koZF9zccZTYa4F1+czzGdTpNMJguOS6a93bSEOuI9fHAqyJ3hmfd/AZFmpZVEunyRTrXIqPAonzFnzeqroX13/45dhJQEF/pvFryiqoeAUuWogESrrQUBO5ohMpmcJK2laHI4mUiMZktk5kLkVYHsOkVB4IUHj/Kjvg/QTPV3iarPuj2KyL5KRF/2F4fUSFRNISDQbm9BEnQMNAxUND2FZkQLiowE4PntR/hkso/+8CiyTc6p+TAyTeVWMtZK1Ba9tCWnz2zeLTzOOyQ7X93yKL+4c5Gh+OyKOoqxw9PNkfZNvDxwmmg6n1EriwpOsZUHWtbw4rrdtMjzmx/e7wq9OplVz9AzsdCW29mMYTrXTnNzM/v27VvwsZw8eZLLlzPZ14ODg2WLLgYHB8vm6gF4PJ5cBl8dKwt1Qq+OOoowXYZeMplkYmKCycnJ3KTCZrPlbJiLfVJZ7kSZieVquS2XjwfQ0tKCz+dbtHy8ajHfYoxK8Lmc/PXe3fzq8jWujI2VPB9KpDjRO8hnt1QuyqhGoQegGwav3L7KlzY8yJvjH85+sIaBaraOWtRpNpst0zpaNKk67b/OVucq1jdK+BkrT+TNfhSzRn/kJtvdPfjsq/EnZ0dUGICaTpNMJdG0fNGFmetWq0n97chVOp0b2OY+wPXQmZqsc6Fgzemz0m8GcDtxgbXNPfiafFyauJQj+yrl9EFGlSeKIrquk06nc6q+ahV6siBzvO0gsdhLqDXOy5sNNCOCP/oqDba17Gl+lItTJyjtGq4Niom8chZlwZCQgrv51R/7CtSklSAg0qL45k3mTf8aLIh9d8+2HmLOJOcHblYt7DTQSKl+dF3D0A08cgt2xypUPUFXg49CekxEMwRiWpRkDa3VXz5whF/e+qgwM69E1SeYA7b+L/cu7JITl9RA6ZFIQBLtpPQETkkkqY2UkqUWKKLMV3Ye5T8HPiKYjmbXkFffAaBnvseiIGbLafJkbE6NieXzrKDEdMlO/mrLcX506yxjyZBVzDgrCAg81tlDt6uRH998s+A5l+xG1ew82rGF51b34BLndrPAivud0Lrf3z/Ut4GJ5UBsVkPoLQbu3r1LKBQqUNc9//zzBUUXodD0cSRut7tO6K1Q1Am9OlYcFvqupJU00XUdQRCIRqMEAgHClmZQl8uF1+vF7XYv2Z3SWhUlLDTMcZqqmqWehKTTaSYmJkry8TRNwzAMOjo6lvzkXA4LRegBeBx2vrx7B69es3H6bqm6KBCLc+bWCE9v2M7vh8uVPEyfoWdFWtf4ze1rfGH9Ed4cr9IeaBg5AiFHyGQJBLuiIJYj07MW2jNj1znSuRO3kWY8NYIkinO0r80P10JX2dOyl5QWJ6TOnKNimO85lUTX86qMnI1xAcY/Eu8noUV5oPlhLk6dqPn6Fxqmffdu/DptjjU8suoYZyY/zhQ0JJMFijxr7qNu6OiqXhK1YJIGGYJPyjXwWvcdWbDxaNsBorGfwjxVp7VCIj1AMj3EnpbPcDtyh8l0bUpPDMv30KoUMpWN1u0iYSc9voPfvHWtbAZiOeTJvIVrsq+E+dh3d2zaiuY2OHUrr4osZwW1rtuqMjVhExtIavcwSBUXQedG2Sg24JYbMJDJWHgzKkgDAd3Q0QwdSRARBLMhOrMtk1qKuB4tsPc+v+9BXr97jpiapkFyo0gKBlmbu6GhoaEbGpIgIQs2ZFHOkXYCOqAhoKHpMTRtCq3AsAt2eR1TyQGm/Tyzyjm30sCXth/ip7feqS6SIUfyCSUEqrlvViJkFdHGX207zo9unuVebDK/ylz2n1D0+ZUfQqvi5omurQRTQX55+2TBc26bl3AS/uvmAzzetg5FrM2coq7Qq5NZy8FquhywHLaDOYalvmb4zne+U1Jm8cILL/DNb36TZ599lp07dxIMZkrpmprmlt9Zx/LF8rtiraOOJYap/NA0LVdyYW039Xg8eL3eXOvRUsI6Vk3TlvyEUgnWcS4loRePxwkEAgX5eE6nE6/Xi8fjobe3l3Q6vWyz/hZa6dhos/H5nq24FBvv3Lpd8vxIOIJ0R+Qz63bw+vCVgufy5Eh1r5XQVF7uv8JzGx7i7fHK9luzvTVVpASy2+0ZJVC5fcm8mLOM7YORyzy+eh/RRJDJxGTucTFL0kiSmPtZFBfuQun85DkOtR4iGT5D0oiVXUY337M1100UsCulpMlCYCo1RkqPs7f1Mc5NvL2gr7WQGE8MEk0FOeQ+xJ/u/in3uM1mw67Ys+oeC7GiZfL5chZeXc8RfcXI7DsiTpuTR7r2EAz9EFFcXheZBhr+yO/odj5Is30f/ZGzM/9RpXWV3SfFHLlcDJlGQoMbeeP9KyXPVUKz0k4iPcRSkHkzYTr77rZ1G2nodPHujQuIgpgjjipbQU2aLf+EKIo4lS40PZQh8yrCQDUiUKHNWUBEQgRDR8/r1AABRVBw2lwI2DCQeWLHLs4H74Au0GKzoelT6FoKAZCQkAURAQlBlDCMeMYmq6molT4fIfcfBMAuryGYGrc8XrotzI3Y0dDCE5t28G99f6z4znPHvSp2j0o5egYGsiDzN1sf4xcDVxhJBLMW46yqz7RbF53ICuy7CEiiSJezlc+s2crH4330hkYKlm+ytSIYDr6x+wh7GttrdszOEZRl3tv9gnrLbZ3UNLHUlltTTAFLT+iVa6bdtWsXAC+99BLf+ta38Hg8065jJgVfHcsXy/Pqv446psFCn8TNTDyA0dFRIHOgbm1tpbW1dckP2sUwc9WWM6EHSzdOwzCIRCL4/f6C4hK3243X6y3Ix5MkiXQ6veyswSYWo1zEKcs8vXkTq9xuXr50hXiRYmkoGCLel+a5bXt4ffgyiaySYqaW23JI6Rov91/luQ2HeXv8VAGpV67oQpSkDJFXqazASuRZxtHQ2IimaZz0X+XJVQe5FviASCqSKVzQVDQNCtyAWbJGEsVc5ppktrPWAKcnTnPEd5TrofdR9fzxRtd1kqkUaWtjrSRiV+zIVTTW1hIxNcylyRPsb32cTybeWsRXnj8MQFXTJJMpglqIQGicJ1d/io/Gz2DYtBIS2GrfLQrqQ9cNNF3LEX7mz4Zh0Cg18YhvB2Pj/0pOmSeQV/JllaBiDfeduSAY/wiHvIYHmh/j4tTbs/pbk8izRhLMlDWoGC0M93Xy3pnrVb9Ok+xF1cZYLgrHarF5zXqau5t4+8aFkotKwyiy7mIh+YpgE1tIq1HSWihHGlmz+qqFgU75bWigG0l0LfM5PrXzIS4Ez3OniIjKLAmg5g+hc+BX7dIqwuokBlqhbVcoXZ3X4ebxjdv58Y13pl1nTnVnTfabpTNBFiT+y9bjvHK3l3vxSSQp/700svxnTslnsV9b7btNNhedziaeXrONl25+QESNFygFPTYf612r+OrGfax3lA+fnyusZN79SmjVW26Xh9V0OWCpt4P1WmGpr79CoVBJ2YX5u2mjNX+3us2sCAaDFQsz6ljeWL5X/3XUsYgwDINYLEYgECi4Q2G322lra1vydtPpIMvysiahTJhk2WKp38x8PL/fnyNpRVHMFZeUy8dbSEtrLbBY47NJIvu7Oljb7OGdW/18OFCYZzURj/Ob89d5ats2bqZGuRH2W56d3dVfStf4df8Vnlt/mHf8p1C19LRFF9MSecXKPPOfhVB5L3CFz3Q9zsXJE6T0dF6RpZntqRmyRtc09BKmD0RRyqr5xIKfZ4tT/g95yPcIvaETxNOxDJFnbayVJexKJhNwqS7bVCPNxRVE6hlk7PSpZDJn8RQAwQZXIic42PUgE6kwtyK3qluhICBKQk7JZ0Wb0sbuJi8T4Z9js0noupDbdyrm9GX3Q1Eqsu8uwiecUAdJaePsbX6cqCbQFz417fK6rucUeSakLKE+3YWLXe/g5iU3H1+uchsDDrEJgSianpx54WWEjWvW07nOyx96Pyn7vFnEYOilRQ6iIOast5LQgCBIJNMZG36lzLfp7LuzwWf3PMypwDXuRfwzLzwH2KQ2onoMTS+vNLQOucnewDNb9/CjG28XEFSVbgzpuo5RdP6b7iaSdZ0iAi9uOc6rg70MxicpPldlObns99Eylux/DMOgw9FMu8PJ4ba1/M9rb2ZVkPkxeBQfx9t6OGT3YQwHGFLCORWr+W8+aqL7XZ0HdXUa1LcBFKpV73dC7/nnn+fy5cucPn16RkLO7XbnrLflUE7pV8fyR53Qq2PFoZYTGV3XCQaDBAIBEol8yLQsy6iqSnt7+4wS5aXGci2cKMZiFXiUy8ertrhkuW/LxSYcfU4Hz/VsY0dHB/9x8TJBy3dENwx+f+0Ge7s7eay9hTfuZqx1sxDo5ZDSNH7Rd4Evrt/HG4PvoGZVf5WKLnKYhsjL/FD+WPHGyDme6XqEjyfeRhTlkhNhhpTJE3yaWapgGNnHpiNrpJyaT5SkitfbOjrvjbzHYe9DXAi9SVrPkHlKtrF2uWTjpI0Ul6dOsaflOOcn313q4ZSFYRikskSebk7wBQElq+Y0zxnXgx/R7ljHQ96H+DAwh0KWLHa6t9NlixBJ/g67UnhjwLTvmvEC5s8FeWlF8WCimLd+W1V9tb5o140EgehrSEIjezxHSOPiWvDDgtIMPauMtZLLkpwl8qTKU0YRGVHbTijYgiyWt5KXgywoOCSRlFr5AmM54pH9BwnJsYpkHoCRVXcWEHnZLMZ86YSMXW4hoQ5jk20Fdl2rWmxa+24JyVde1Scg8Ll9x3h35Dzj8dJG81pAFt2kdUhrM+8DLtnBc9sO8oMbb5Y8V7zvmzdc8jEK1c0Frdv+K1uO88bQFe4lE2hG9ed4AWi0uXDb7HS6nGx1t/GT/pNIsoxoFqhg0Gbv4svrDrE2KZIKx0iTmY9YnQGQmQsVk3yKoiDL8ozvqU7k1LcBLI/suKWG1W67VAT3ciH0oDwRZyrzduzYkXvsyJEjXLlSPgojFApx5MiRhRlgHQuKOqFXx4qEIAizsvYVoxzpI0lSzlY7OjrK1NTUsiV2rKg33WZQKR/P5/NVXVyyGJbW+WApFISSKNLja+UfHjrI27fucGqgsAHr3NAIHcEGnt+wj59cO8FsFHqGQUHRxY8vf8xfbnuY85PnSUpa5aIL81XKEXlVfM66ofOHkfN8uutxTgdKlWeCICDLElBqobMSfObPhiVzjSKLsiAIhSSfKKHrGqlURh34VuxNHut+jOvBEyAvfWFMOST1GH3hczzQfIyLU+8t9XByMAyDZJlcN7tdwWZTypKpY4k7TKZGeNh3hIuTVwhp1RNJLbYW9jZvRk38gUiyfKlJoX3XMlaMLCmRte1qlpw+3UAvUwJg5vQVW3fnu49oRoSJ2B8QBYUH3A+hCq1cmHyXVDJRpBLNKGNnumi0s4Hb4y7evHELzdBZ09TKc08c4w8nzhBNVCZ2BESabG6S6dISnuWKBmcDnzp6mD/e+oRAtPy+U47IMxWZhTulgEPuJK4Omb/mrbbF65zOvmtQdj5kJfkkUeK5g4/y2uBpQqny+XvzhYiCITQSV2dW/imSwpd3PsQP+v407XKlRJ5Q9jtQjuzMj0vghS3HeWf4Ev6UQEytrAQt3vReuwebIBDXIrQ7mtjU5OXlO/kGcDNb8eH2fTzTvYuNjswNYLMt21S5Wv9pmkY8Hicejxe9tlCW6LPZbAXFYuay9yPMczDcv4RefRtksNR2W+sYgIoRFIuBI0eO8PWvf71EnXfiRKbY7Otf/3rusRdffJG//du/LbHoXr58GYBnn312EUZcR61RJ/TquK9gtdWaEyOHw5ErRTBPDOadluVOksHKGetCEI+GYRAOhwkEAiX5eD6fD6fTOauJb91yWxk+p5MvbN9CT7uPn5+/SCydJyBGI1Fev9jHi9sf4leDlRUrJnTDIJ1KkUymCgKuZcXGa0M3+Mza/QynBriXsFwYFhF5xbbaWQVNASld5Q/D53iy63E+CbxTsZTDigKyxjJ5M6DAsqvlyJrMRb2mquULKwFBEvnA/wGPdD3KjdCHpEkumcV2OsTUEHeiV9jZfITLU1U2Ey8QrHbQgqxBux1ZnjlrMK0nuTD5NhsbdxPXOuiN9M74mj1N21htjxKO/2xOYxbI7zs2Cif+xYo+q6rPtO+mi6zfxQSf+ftsoBspxiNvoaVFdjU+yYA+zHC6D5vNhmJXMkqyaaAILYQja/ht7xAT8XyL7mB4gh+E3+crxw7T3zvM9Tt3yv59vtF2ZWDTmg1s2tLNSxfL288zxGyeyBOwkE9ldkqHvIqEOkw1N0GEnOquqOTBJPmmUfbJoswXDx7n1zffI5qOZ0k+QMxn9c2fIBKQ5Q6CqdEZl5RFmRd3HeWHfW9VPOpWS+TlX728/VgWJF7ccozfDnxE3GhkMjU9gW8YIAkibQ4PoBFOTxE1NLZ6VrHF085/DhQWyzgkB/9j65Psc6+iQcx/r82cyeJoD8MwUFW1ItGXTCYL8ipz70OWS5TbqqouqTppKVDPECwsBblftwEsD5XiclHoff3rX+ef//mf+Zd/+ZccSXf58mW+//3v853vfKeAuDt69ChPP/003/72t/nWt76Ve/zb3/42f//3f8/OnTsXffx1zB/CfFROFbD86snq+LPDbLLYDMMgFArh9/sL7oiWK0UwMT4+zujoKF6vl66urpqOvdYYGRnB7/fT3t5Oe3v7Ug+nIoaHhwkEAnR2duLz+ea1Ll3XmZycJBAIlOTjeb3esq2L1cDclh0dHbS1tc1rjAsBv9/PyMjIku+XI9EYPzl3geFQPlhXU1WSiQRfPrSHP070kiyjOMrY+VKkUsmcNVeSRBTFjqIUtrce7ViPIIe4HsqQAeWIvMwP85vQ2gSZT3ft5ZOJ6ki92ULVNFLJFKqannY5AYHj3ce55j9BklhBxpokSgiiuCyIvmalnVXOjVwJzt2yOldouk7KzFfMYr5Zg53ODdglL5eCF8s+LyDwYOt+nPrHJNTqc+FqgWKCz/x5unlbtTl9JqmgWhSlPvdenK49XAm+P+N3QdF7+PB2nEsjpaUKVhzu2sQqzcObp88UTA5blA5S6l0MY3nePCnG8YMP4jeCfDxYSv6WJfJmyNZUJC+6nkA1ohWXmReypJ5ddvD5/Uf5Re/bJLT8cbccCppcc+o+qjrG2uXVBNP+GT9PWZB48YFH+Pmtd8ufI2ZJ5E0HRbTx1a3H+MWtdxGkNu7FJy3PGmW3hc/uRhIMQunJXPnGVnc32zwd/GfRzar9rT18ZcMh1tqaakKsaJpWQvKZKr9KsDZNF6v6/hzJHlVVuXXrFqIosnnz5qUezpIgnU7T39+PJEls2rRpqYezZIhEIty7d4+Ghga6u7uXZAx+v5+JiQkA9u/fv6TfuVAoxLe//W0ApqYykQpf//rXKxJ03/ve95iamqK5uZmLFy/y8MMP88ILLyzaeOuo7ZS+rtCr488WqqrmSB/zokUUxZytdjrSZ6XYWGHljLUWltt0Ok0gEGBycnLW+XizGWNdoTc9Ohtc/O3Bvbxy5TqXR8YyDwoCaVXllx9f4KtHDvDG+FViauZCxFQepFJFRIypqCpzWjsxcpvdrZ3sa+7hk8krNSfyTKQNld8Pn+XprkdrSuqZ5GU6XVgqoGRLBYwsCWAt5Hjn3rsc7TzKcOgy/mQhUSJALpevuIF3MaeQU6kxNCPNvtbHOD/xfkH+2kIhQ4omSVvIJ5vNhr0GWYMj8X689iT7Ww7wyeSZgudsgo2HfQdIJ18moS8Q8TINKhEZ5XL6MurQyjl9proUyC2beQIURcGu2Elxi3RskD3NTzCSDDEcL22pFbFhpHbxs4v9RJKJkueLcWr4Ji2OBr701HF+984pkqlklswbWhFkniAIPHP8Ud4aOFdisS0mWKsh8jLL2REQF47My7wIHU1tPLJjJy9dfxNdAFnOKMisYfKGnql1MMybJZbnClY3DdFnk7xEtciMn6ciKry46yg/u/keSaNwBy1H5EmSiCDMzU7nkhx8ecsRftb/JxRpFfdKMgMLcwadkkKz4iKcnkLV8+eprZ5uetydvDJYeGz4m01PcaRlLQ2GlFPPFm+j2ZKQkiThdDpxOp0FjxuGkSP2IpEIoVCoYC6QSCQKMqBNVCL6VnLuWt1qujyUacsBy8lyuxCZt7OF2+0uUNzNhK997WsLOJo6Fht1Qq+OFYnpDpyJRIJAIMDU1FRuYmq322ltbaWlpaWqg/9KsbHCyiH05pNPF4/H8fv9Bc1Ms83HqwbLhTCrhOU0vha7gy/v2kFXUxN/6ruZI5VUTeOVC9f43K7t/GnsMmPhUIEKyCy6yGTUlcIMGDcMOB+4RzDVwmHfHk4FzmcWWIBJk2poOVLv7MR7aPMgqTLkZaEiT5blDJFnmYALolC2kONi5AI7PDtpVr0MRPpyWX26YaBlM/uKkbNdFhF+CzXBDKcnOT/5HrtajjAYvcFkanqV1lxgkFWRJZOo2WObQH7/qeUkPpC8R1pPcbj1MKcmMu2vTXITD7VuJxz7KSyAcnM+mEtOn2n1KwdN1UjoiayqT2Us/CpN9g10NB/jdvQmU+l7QMZiOzq5ht9evTarDNvJRJQf9L7Hf3/8UT784BYT4Zsst21aDpIo8exjj/LbvlNEk/ksQD1LwpsKrtmqyBxyG3F1Ya3GWzs3sH6Vj59df7vkuQKrnnXMWVIvV8JhGCWPFUMSFFRBJpGayq9XKNaDgkN28JWdh/nxzbdQLcRfrYk8AI/SyBc3HuQnN/+IQ17NcCKYa6Mt2RZAh6OZtJFgMjWefxDY2tTNzuYuXh44k3lfBkiCxP+54/PsdrUjGZllc+RolWQozI6EsGbrQUaJ43Q6WbVqVVlVn6m8LW6pNjGfUo6lxlK3mi4H1EnNDJYDsWnNYK+jjqVEndCr488ClbLUGhsb8Xq9NDY2zmqislJIMlg5Y53tOM3P1O/3E4vlL6bMfDyXy7XkY1xsLCdCD6DBZuOpjevZ4vPym8tXuRIOZxpHUyl+9sHHfG73Dk4mehlVw9jtCopiR5LKKY6y/8+kuxc8djs8hW7Ag20P8NHEpQV7L6qh8frwWZ7uOsbFqROk9Mo2p3JIqyqpZApNKyUvZ3vxdjVyhQ2Nm9jhfZD+6AUg27xrKrE0Pf+zRZVVTNdk2lOt1kupZkSfbmhcmHyf9Y078No7uBE+P+91QpbIM4tSzKwgsmoTux1xgS44Q2k/t6PnOOo9Sl+kj32eDkKxueXlLRXK5fSl0ymSyWSBIs/MxtN0DQxyOX1YXOGRyEVE8TLexn10Nz5Mf3icM4Map8tYTquBgcjLt67ypaObOHFynKnwwrSs1gqKzc4zjz3Cf1x+l1SWCC1P5EmIYvX7pEPuJqHOnDM3Hzy08QE0p8pvb300uz/MEnGVSzmsJF/mpotiW0Ugca/MqjIKOAEBt72R53cc4ge9f8LIrlvXtIKbE7Ug8gC6G9p4tHs7P775Fk55NfcSU7nm62K02T1IokEoFShRZj+5ajeyIPDyQF6Z12Rz8X/v/AI9Ll/BudhUzBZsI2ZH9Jm/z3SuKM5Pk2UZWZZL5kPWnNFiC+98SjmWGnUya3ko05YDlgOZZo5hqRtu66ijvgfWsSJhToA0TcvZak3bgyiKNDc34/V6SwKJq4V5gqikaFhOWO4klIlqx6lpGlNTUzXPx6sGy40wK8ZyHJ8oimxs9vB3B/fxUXsbvzp3IUfAvnL+Mp/Z1cNUe5QrwdKL2EIiL/uTkRHhZZQemecHolPYRImDLT18PHV1wd6LZmi8du8MT3QeZiB6iWB6csa/SaXTpJIpdD27X5sXRTZlVhf6xeiP3KTLsYpt7sNcD53KXLxJEkgS1k6FgubdbPtu7uesrbe4kkMQhBI1nyiKc8rpux25QrPSxp6W45yffHfO79e0lSVTefJJEATs2YvKxVCOxNUwEOHR1o34Y28v+OstFAwM0qkMKZpXtAgoih2bYivI05sup0/XdfyhTzBEB+/ecjAYSmJooBlqppFVqLZUQaBFaSOhDvLT64N85cgxzp/tZXi89srOWsDlaOCpYw/x0sW3C1WO8yDyAOxyJ2ltAoPp8zTng6d3PURfbJBrQ7VVAJb7jO3yGqZS48iSlCP4sJBahgE+p5vPbt/Lv159o8J6yW7L+ZMTu70bWe9p4aX+d3HIGZutUUaZ12Z3I4kQTk+hFc3xmmxOnlt3iHeGLzMQzTdZr3K283/t+AzrHc0Fy5vjLiYVzHN0MdFXTPhVUrpWsu9Wq1ATRRGHw4HD4Sh4fK6lHDabrSzZt9hkSp3Qq28DE8uB2FwOpGIddUCd0KtjhSKZTDI6OspFC/JFAAAgAElEQVTU1FTu5FbLLLW65bb2mClDL5VKMTExwcTExIJ8prUY41JjOX7W1s+tW5L4fz51nNN3h/jwzl0kWebkwBC7uzo41r6J98ZuAhZbbfYX85qmmMiz4mY4gCJJ7PFs5XxwbiqhamBg8MeRcxz19eCShhlODJYuYxhZIi9PmAiCgGK3o9QwjHw4cY+4Fmen5xiXg++VXaay/ZIcwZcn/DLqPsMwMjbWov1IgJyKbzaFHFOpceJqlP2tj/PJRPkG0EowFZ3JVKqAfLIr9kUNdu90rmFzwyqM5H8SioZpth9AlPZwL/J7VoI9FPLbMlWwLTNtmzabrezfTJfTZxhe7k5t5ZUr/STVzDqbbK0IQisJLU4sHSr8I8FCRFiIvhalnaR6F7Mz7ee97/Gpnt2sX93NB2fPlLz2UsLT6OHYkf389NybOeuyiQwRLiHMgahXJB+aHkUz4jMvPEd8ft9x3h4+SyARmnnhecIurSKsTgJ6+f0H6HC18PiG7fyw720EyjfmGRaFaObQLxbuR1V+/z/VvYekEeN3gx/hklczVIbM89rd2ESIpINlb9bubl7HrtZufnzj3YJv/K7mjfxvWx+jw9ZY1VggP5cot23mo+qzjnsuxI4gCNhsNmw2Gw0NDQXPVbLvptPp3D+rAwby9t1iwm+hjt11Mmt5WE2XA5bDdjDHUFfo1bHUqO+BdaxIxGKxXLNQQ0MDXq+XpqbaNI1BIXFiGMayzhVZjiRPOVTK0IvFYgQCgYJ8PJfLhdfrrWk+3nzGuFywnBR65XINdV1HHR7mqe2b2b2mmw/uDHJ1ZJwLw6OsiXv47Nqd/PbepYKcPDBj8coTeVZcnRpDFjrZ6d7I5dDCNo6e9F9ld/MGNjc2cCNyDci0WabS2VyiHGEiodgVlAqEyXwxlZ7kSqiPHs/DXA2eqPrvBEDKqu+sMMgE4WvFZJ+WybHK2S+L1mW17FrLOcyPLKnHuDh1smpSTzeMTGNtKpW77Jay5JNssy1a0YdNtLPHsxeXcYF0/O3c47HkGQThEqsbnySSDjCVPLtII5o9DMMgmUpm98vMY5Jkls7MZZonkNb28v5tnfPDN3LrA9AJYehB7KITl7Md1YBgcjxrxTTLFfJERKujk1hiAAO1gKT5050LtLua+fyTj/Puh58QjATLjmQxsaarm56e9fz0kz8VHGPnQ+QB2MRmDDRUPTzzwnPE5/Y+wjsj5xaFzFOkdqJaDG2aWIId3jVs7+jgxzfeKdmWVrVZYU4fGOglzF+59t3cugSB5zce4dxEH/2REVxyN8OJYG4fVESZVnsThqESVYNEyxB5EiKfX3uQ4fgEP7l1Mve4iMhXNz7GsfZNtEjOkr+bK6ZT9ZnbxFq2YqrqQqEQoVAo996t5J51m9S6lEPX9VwpRzlVXyX7biVV33zIuDqhV98GJpaDOq5uua1juaC+B9axItHc3EwkEqGlpaXEUlALmJMh04a0nA/WK4XQs6rfDMMgFAoRCAQK8vE8Hg9er3dB8vFmM8blQJiVw1KPzzAMIpEIfr+/4E69x+PB5/PR39+Prut4ZDvNLU6anXY2trTw2tVeBianCMZjPL99Ly8PnUfVjaqJPCsuTo5wQOpmW+NarkcGav4erbgw1c+mxi52uPdxZvRkztYPIEkydruyKMeGYHqKvvDtnP12PhAAwVRlWcZuBt8XWHbLFHIUmwWtlt2UlOYT/zvs9z3OuQqNwZn23yTpdDp33S5b2n8X89bJuoYtbHC4SCZ+RrrMWA0jSSj2OxR5Pd1NX2Ao/Col9bFLCGtOlon5EXkg0Mq9UA+vXLlNPF1qvYPM+VEnga6PIAgyba5OYlqChBbOEzQGeGw+0uoYupHZa4oVR/dC4/x7+I987uBhhJDBiU/OZJYpU6qw0Ni7fQeSR+IXZ9/JPSYKphV97qORRTeCIJHSAjMvPEc8s/soJ8cv448vPClqk3wkdJW0Hqu4zCNrdiDIKi/1vZ97zFQST3eDroDgM8jaeCu37zbaXHx58xF+ffsEUT1Bg62L0UQYzdDxKk0okkhKTxBMjZe13kKG8PurjY/w6zunCKbzpNS+1m18ZcNB1ttbFyy3sxjlCBpN0wgEAkxOTubO+06nE4/HgyAIZZV9xZhvKYep8i2OsDGJxnQ289RU881UyiHLckX77kw3cK0ZgvcrloPVdDlgqbeDVUW7nK8R67g/UN8D61iRkCSJrq6uBX+NlUDoWe9263p5+8tygDWXsLe3tyDzsLW1ldbW1gXNx6sGy91yu1SEnq7rBINB/H5/Ll+nXK6hSYLruo5Nkuh0NNDcbWe1x80vzl/CH4nyyvlrPLtzF+fDgwzE5haMf8Y/xEHfavY1b+Ps1PWavc9iaKrKxbGbjDta2NV8gLP+D5FlG3b74mcHTaQC2OI2trgP0hf6uObrN8PwRbm0ebeaQg4TceK8F/0dD3Y9xSf+tzHQELNFKGpaJW1tPC7T/rsYEBDY23KIBv0UycTMSs+Uepu0OsSaps8zGjlFyvAvwigrw0qKmpBlGbvdPo/9UiSl7uaDAfhkqPrvlGGoJNUh7KIbp9JBMOXHEHQabS2IRgQRFUG0AZUzxP6z70MabS6+8KljXLt6mxsDtzJkv2ndFTP/Xyii77EHD9MbHuRqb+YGgShk7ObzJQ1koQlRUEhpC7e/fHrXQ3w82ctIdGLBXsOETWwlpUNSi5R93gC+sOUQ10N3uDSS2ZbVEHkmKlls80RfnuRrkJ18eesR/r03k83XYGtnPB7HLtlokZ2EUhOE0AAhF+UgFN08apQdvLDhCD+8+R4pXc0+1shfbzrGwdY1NIm1v1lcLTRNK4kgaWhoKCkEq1Upx1zbd037brWlHCbZp6pqwc1c87WLbbtmXIA5vnrLbV2hZ2KpLbfW64TlfI1Yx/2B+h5YRx0VIMtyrhFsOcOcMJtWueV4kk+lUgQCGYWCGX6vKAper5fm5uZlkwWykiy3i2EFNy8qAoFAzt4jyzJer5fW1taSz81KiIqiiGEYyMDahgb+4aFDvH97gHdu3ea3l3o5tHYVmzvaeXN0bnl4H/vvsrahmcc6D/H2+Ol5vc8CZFUHyVQqF5h+Vx3HqTg41P0I18MXavdas8RofAQZmY2Ne7gVqU2rbDWoqpDDYt9VdZVTw29wqPMJLoyfIJaKlq5PljP7T3YdcynkmAtsgsJB74OI8V+gUVllVAyDNMHor2hzPU5EXUUwufj7gRlab7Xamba2+RxDDX0rNya8vNHbT0qbmwJR1UMIehiP0g44MIwQaT1D/JhK3OnImpie4Gd973Bk3XaOePfzwdlPcm2qBeLJbHNqjoSwtKnO6j1jYBNtPH38EX7Xe4pgPFwzIg9AEpxIopOkNjbvdVXCEzsf5ELoFkPh8QV7DROy2EzakEhopSpAA5ANiS/vPMJvBz5iIhmaFZE3E4qJvgbZxV9uPswPb/4xQ2SLbtKGHa9DIJwOEkhWzik0ieFOVzPPrtnH93vfzBF9B1p7+Iv1e9no8C2ZAsxa9GbOQ1wuF21tbWWdC4tdylEtpivlqGTf1XWdRCJBIpEoWZ95nDPn4+Z8d7nMHRcTS01kLRcsteW2TujVsZxQ3wPrWJFYjMnWSmu6NSc4lcLPlwKxWAy/35/LfTGxevXqnGVkOWGxCbPZwpxcmxPxhRqfScBabT52ux2fz4fH46kYom+OZ2JiAqfTmbvLLooibkniM5s3sq29jZcvXeH0wD3aG108v3kPrw5fJqHP/ns2EJ1irD/Cs+sOczl0hYn0PDKqzKKLVAo9O1ETzMZaRWFUDdIYc7LFvZO+0OW5v848MRS/iySuZ23DDgaiV5ZsHFBUyGE57pilIR+N/pE9voe5F77NaHyw4HkzZD23LooLOTI/15Lo63SsYWtjB+n4v8+55iIcfwuHsosO16cYjb1Zo5FNj0pEnt1un+cNnC7uBdfzRt8wk/G+eY8z01atoggRECQUuQsNjYTqp1KxSDFZ89FIHxuaO/js44/z+/ffzxx/rESERaVVuKI80ZfPWysl+gwMdE2nw9vBoX09/OxC5jOUZbmGx1MRm9RKQh2q0fpK8cSOB+mNDjAQKm0PrzVEHOg4iGuFKkAD0DUNj9LAF3sO8sO+t9ANvcbbshAuycGXs2SeANhEFw6bF1UNM6WGQch8N6xNuwXqUAw2NHZwtGMz/3rtTwAoop1n1hzkUfdalMk0ASWA3W7PHfsXYx6g63pOkWcSBS6XC5/PV1JeUQ0qlXKY5/Nyqj7rd6qY+CuX0TdXVZ+5Xa0wDKNsKYe1kMN6vjDzBM1SjuJ/C7kPLjXqCr38/gtLtx2Kz8d11LGUqBN6daxYWPNDFgIrJZsOltdYzXw8v99fEJTs8XiIRCJomobL5VqWky1rdqKu68vyDqgoimhZNVStJzLlii5Mm09jY+O0Chtdz1zIJZPJXGGNOV5FUXIZPO2Kwt8d2s/50VHev3mbV85f54ltWxnWJrk4NTzrMSd0lV/1X+Z41wZWOaNcmmVZRq4Z1NJYa7X+YHnPN6MjyOJqNjZu41Zk4ay+M2Egepu1DevZ7n6Ia6EPl2wcxTCAdDpFMpnKTbbPjb/PjraDdHhWcTt2dUEKOWaCU25kl3sXTv18QfHFXJFIXUKWxlnd9AXuhV9Hp3I5wHygqirJZLJgm9QiWF7AwWR8L+/cCnJrYv5Engmn3IFoRND1/A0cCZlGuQUDO2kjSUqb2RraPzXKWDTIl576FG+fPEMomj8eGdkynXzWWlbFV4now9Kcnf27o/sOYDQa/PzCO4iiRK1PRU75/2fvTZ8bSe87z09euC8CBM8iWaz76Oqq6qu6W313q6WWJUuy7PFuzMbuzsRObOyb2Y1ZOzbCL/zC/8LGvphwbMR6NLY8ttS6LEtt932rq1t9VNddRbJ4F0kcJG4gj30BJJgAARAgARLVwjeCUSgykflk4kHm83yf3/f7HSGjLrZ3p+a+FRcvnX2Et5cvsZjcC+m3gCSH2chvEocmkafrOj67hz88+SB/c+O14ndU6Ny0wik5+JOjj/GjqbfwKmFkQSGrw0p2aYtHXj357unAGEd8A/z99AeIoohX9vG9iYc4rXvJrKxTq7bPfH5Z/91tVawJXdfLFXnm99zpdJYr8to9TrLeN+qFclQTfdVefZ2S78qyjCzLNeW7ZlVfNBoll8shy3L5eVEvlKMW0WcuMN7L2G/vuG6Alczbz2paE70KvR72G70e2MM9i04TeuYNuhtIsu3QDYSeVSpS7Y8XCoVQFIWbN2+Wyahuxb1E6LUD2wVdVCfeWd9nXSXVdZ3BwUGSyWR5dd0kI2rJaAYdNv7o/uPMxTe4NLeI3+nkqYHDvL1yu6WQDBNvL01zxNvPY/1n+SCyvRzV0HVy+TyFfH6TyCsFCiiyTL1Z/vXEPKfFCcZdh5lN3269oW3CbGqGWN7H/X3PcTX2LmqHSKVmYFbk5XM5dPNaCgI2ux2bojCfvc6gY5zT/gtcWf9t04EcWmli2Uwgh5XwMwf4dtHJCd9p+qR1ctm/3fL+3UDV7rKR+ikjnm+wkV9mI/9l2/ZtTl7L93OhRCrY7G2YvAxzdWWC31y/VScmYGdwKSMIegTDqJQxG6gYelESqggubMoweT1LXos13F+qkOW/3nyD7z52gbvTMa7cLhLoQskTrfr7afYhK8lnTd7FAJ/bx7OPP8LrU59xdyFSDPfQtGJ1n0lGtBjSUw27PExOW6VeReJucGRgglMTY/zDzTc6sPfasMsHiBeKn5+VyDMAr83NH51+hB/eegOpwxNaj+zh3x57hp/MvItLtmEYaZK6i/VC80Egzw+fwUDj57OfIIoiI84h/s3kAzzgH0fSxfIzy/qvVR5aDdO30iSLzNfNVIfVI/LMirz9ICm6Wb5rLggmEglyuRzhcBiPx1MRvlGdvpvL5cqev1aYvn87CeXoBvQkt/svt4VKa54eodfDfqPXA3vooQ66gSRrFvvZ1lryzHr+ePfCNbX6wHVjGX27gjGaDbqoRj0DbrOqLRQKVWxvDrjNwbX5Ws3mEfMxvE6RgbCNfsnD7dkITw9P8s/zl4okjSghSSXCRhTrkmwmbiXWyGgFnhg6z7trn9bcxpT1FCwTNNkaztDEgP7y+h3O9x1iwnWIO+nWKgLbiURhgw9WP+SB0AWi2SnWcp2T+NWCbq1uLP1OEkVsppG5Zdu72VnSWoLzwaf5NPpWxX5aC+QoJe/WCOQw4ZAdnO9/mD45STb9t6REkMROTNZUNtK/wq6cYMTzBywmf81uiJzq6kZrlUk72l7QzvD6bZ0rd2/tel9WuJUDoC1hbEMqG0YaQ0u3ROz9/NZvuS88wTdGn+Tdi5+SytQOZDD7kPn9LfYbrXx/OnPsJMNjIf7bF2+Uq7ms1X2V+xJqkHzCtrcGmxRE01PoRu104J1CQOC5Uw8RY4Mf33ynrftuBJs0RFKNYxh6BZEH4LN7+Df3XeBvbr3RURJEEZwMuQZ4aeI4P7r9E3R0ZLGftC6TUJsj8xRB4k8mH+Wj1dvcSixjE+28MHye54YOMeboL24kUrc6rBbRZw13sC6EQWVVenVVn2EYxONx1tbWyuMgh8NBOBzeNyJvO+xEvmv+3vy3XVV91nujNZSjWpZcS75bLeHdLpTDWtXXTZ/LfktNuwHdUKVoldz2CL0e9hu9HtjDPYtOP2DvNQ892FuirJY/ntvtJhQK4fV6a34+3Z4iC/dWMMZO0GrQBWwOzOsReY2+i/VkNOaAezCXY9Tt51YqyumJMIUc/NHEA/zj1MdA5XfPJPaKJJ9Ufm2daS+k13lvUePpkYd4a+1j8wRQNY18rUCBHSaDfhqb4oh3hPsDj/BF/KOW398u6Oh8HLnIEc9RjviGuLXxSeePaa1uLP1OkiTsdhuyrNQtcEoUYlyKfcDZvqeYSV5hvbC9ZLDVQI4h1yinfeMk1/8LsSpyTSxVh5iSXan0WthlemqucI28Os0B7zeJZm6QVpsneQ0MCvkC+XwOXTfK52y321FsSsthD7UgYCeafoiffjnHeq75IJDtIeJRRjC0BQyaf05WEnuD6IZERl2pu48vV+9whTu89PjD2LIyFz+/zEayNpmjlyo9zfuTIAh886mnuL6xwK+ufYQkb37XK6S7VT5r5cq+KlhJPmsohyx4AQFV39jynt3A6/Dyjfsf4td3LhLL7cIjtEUoYpCMniNXSFcQeaIo4rW5+ZP7LvA3NzvnIWkXPThlJyf7+pn0ufm72z8HQJYGSagG6TpJu9Xot/v49vgD/OjWe+SMAg8ET/DSgdOccA9gE7dfsNsu3KGa6Mvlcg3DHaxQFIW+vr6uCgZrBTuR70JrRJ/5f/NYzabcSpKE0+ncojDYaShHLaJvt9YHO0WP0OuOKkUrufz7/Fn00B3oEXo99FAHPcntVjTyx2skz6xuZ7eSZdC+CrhOYaft22nQhfWnegCzG1LdOuAOAOOhAdJagTupOIYm8n+c/zr/+cpbFDS9XIll/lRz7CbRVyT4JJbUdV6dV3lx7BH+ZfE98lYfMkHAViLydjsIu5VYZCUb54nwM1yKv09e3z/Z663kTUK2fk76v8bV9fc6cgxN18nncuQt5uSm7ExucmCtGnk+j73NpPc+Bpxj3NyoXUm5HaoDOQQETvvPERJnyWR/gstpL5F8xco+XdfLZA81fPqkEsknSiJSiSxuJZDDMHJspH6O136WPse3WUq+ik79CX1Rppwnn8tXTFLtdhuKUrs6dicQGOfa6ii/vna9rRJbEPAoI+jaHDutSjSJPRBxy0EMwUlBz9b02dOBX90upll/85GHEDfgvY8vls+pmshDALvNwbeffYZfXHufdGHrZyEI5sJglXy3qN+tIPmsHn3VJIQo2FAUB5nccqmyT7Tse+cY8Pbz+KmT/N31vQlfMSEJHvK6RDK3SbibBLhTcfInpx7lhzdfa/txRUHCIwcRBR30FC+OHWQ+tcAvZn8HgCINs66qZLT6KbZW3BeY4GRgmP/v5psc8ozwp5OPc8QdwiPZd93WZsIdzKr0VCpVU7JbKBRYWVlhZWVlV/LdbsR28t1GoRyN5LvWMe5OfIRbDeUwKzEbya7NKr69COXohjCIbkA3SG6tC+I99LDf6PXCHu5Z7FWF3r1E6HWKhKrljydJUlme2aw09V64pt3exlYJvd0GXVgH19Ur5+2GS1I46QuT0zXWC3n+rwe/yf999W0KpaRLk9DTtJIEs/x6q/QylUrx48QG3zn8ML+ZewtK8hy7zYbYxkHgRiHNrxd/x1MDD7Gen2MpO7f9mzqESH4NdUPldOApLsffbtt+1Xopq7swhp9OfIlf6edc8Bm+jL6L2kKFVzUGHKMc94yhZ35OniSSKCGJle0yKPomVpN8WimQQzWJPovRXjF5t0QUi5uEnyhKdYm+TO5z4EuGPE+j6jZW0m9UtqMkU87lc2Wpp+kR1T6JvwDGcWbXA3wwE2Ex0b7gCxNuZRRdW6A9XnE6ul4kjxQc2OQwBjI6kNOiWySsv5n6GJ/dw7e//gwffXKFxZXFCiJPFCW8Lh9ff/IC/3jpTdQWn4umR9+W6shqUs8AkHAqg6Tyc+VtrNfE6svXik/feHCE+w5N8A/X2/c93haGgaFL6JKHjVwxBMOsghYQGHKHeOHQaX5467U2evgJeOQ+ZEHEIEtBW2TI1c8zBx7iF7PvkNWKRKwijRAr5Mjp28uZBeAPxh5kPZfiH2c+5Hvjj/PS6H0ERMe2790tzHAHSZLI5XIkEonyfdNmsxEIBJBluS3y3XuZ6IPWqvqy2SzxeLxMqhmGUfE86nQoRz35rvm51dpfJ0I5qiXHv6/oBsltN1QJ9tCDiR6h10MPdXAvSm7b3dZ6/nj9/f0EAoEdmRtD95JlcO9U6DW6hu0MuoDOE3nVsIsSA3YnCTXP/37f09xYX+WtxVusF7KIkoRs5T0MSoReMfFOVVU0rdjueDbLyzcu84Njz/Lawrtl7zxBELakpkpmxeEOztHA4K2VS5z0jXPSd5arG9uHcnQK64U4l+JXOdf3LF/E3tj+DXVgUPI/zOWKZBfFibJisxVJ0TYMpNcLa3wRfYeTgUe4m5lt2QPQpwQ56jmKx7hMPtOY+BAAofR5W536Kom+GoEcWpE0LlQRjuW+U6oKNV8XvyMayfTriKKfA54XSRSWiWU+21LlIZVCWNq3wq+QV08zHXPw1tQ8qXxnUlBdyihoS1RL4tsBgyyGvgyAgIhL9IPgRxdkMoVNWW48k+C/XH2N50+fY3xkiA8++6Qsww8H+nnkwdP86PM2V7YJbEptARE7NjlEVl1EluWShFffQvy16tN3bPAgYyP9/OzW++1tfz2UfCoFw4asDBDLLlcQeQCPjZ4k6HXww9s7v6eYcEhe7KITQdDAUCloa+RLn+vDg6foczj4h+l/LW8vS4PE1XxTZN6oK8Tzw6f4xewnyIKT//P09zjnG25KXtsOmB551sVPsxK+nhXJTuW7tYg+exsqz/cLtar6stksq6urJJNFibUgCAQCgXKFXTPyXfPf3YRyNJJdV4enNBPKUYvsa4YY6pFIRXTDdeiGKsEeejDRI/R6uGfRq9DbRDsr9AzDIJ1OE4lEWvLH2+t2dgrdTug1uoadCLqAzn/X6sEr23AbBvj6GfP4WE7H+TK2xvX4yuZGpaapqlZFlogoig1DFPnJ1GX+cPIJLkW/YCUTLRI1qkr1N3u3RN/VjVk2CiHO+B/i0vrHbbgCO0NSTfBJ9AseDD7PF7HWpHEGpZTVXA7NJHQpeQjZ7Yht7gs6GpfjH3DIcwab5GBxm+RgEZEj3pOEbE7s+jS5/N/tKt+3kuirhBmsUCT5KgM5zOTdLe0TBUs1X55c7mUU6RD99heYSf4M2JQpt3MioOr3cWnJxTszMzXb1S4U02xXtw3AaA90dCNWIsNE3HIIHQep3F00vUhwvDb9GaO+MN//xou8/t5H9Pf1ceT4AX58qbOVbZLgQpZ8ZNVFwCQMAKoqQ1v06Ts7dhxfyMk/3fpwkzjc4ULDtigHzujIohtB7mMjv4KiyGUizybZ+N7xh/kkepP3Z5d2fCi33IciSmAUUPUEBS2yZZvnDjzEan6FVxcvlX8ni0GSGuVKvUZ4ceQskijw8p3POB88wksHTnLYObjjNrcCwzDKz16TyLPZbITD4W3HTM3Kd3eSvmut6LuX5Lu5XK7Co1kQhPI4xlwAaVa+W/1vLZJvp1V9tT43aC6Uo7oaU5KkLdV81aEcPbltEd1Applt6Elue+gG9HphDz3UgdVDzzoI6Ea0g3w0B6SRSKTsjycIAn6/n1AotK0/3l61s9Po9jbWIhzrBV309/fT19fX9qCLvYQoCAwoLjZUCckt4lYE7g8GmUumeX9xhlw+V55AgTmZsSFJcoWs7VcLN3hu5DSjfVFubtzZEqZg+m/VJfpqhCnUmmgvZCJohsbZwKN8Hv+wg1emMTJaio8in3Ah9AKfx17ddvuip1tlOIPY5pTVRphKXmLcdZyDntPMJC/X3Oag+xjjTh9a5ufo2SztzRLdimIgh1zkaGoEcpiS3fLrcvpudeXaZWTpDkf6/5iFjTcxxGT5+7bb6yrQz2LiGP90ZY5kfnlX+9ruSG5lFLRljI5f+SoYoOsqamEJA3BJIVDCqBRQjQ3upmP86Pab/K8vfR9dV/mb3/5zR5sjCU5k0UtO3f56t+LTd+HwGQr2Aq/NVPpKauV9lWg2cTOUY0f9x0LkASiSFyQfaS1W8aw4FBjmkbFD/OP0uy3LlqFYYelVQohoFLRoQ4/Rbx98givr15lJbl5TSfSSMRyk1MZBI2G7n2+NneXNxRuoBvxPRx7nwb4J3Hsgsa1H5PX39+Pz+Xb1/W5GBtqu9N1ued7n8/kKixCzIq+WtctO5LuCIHWNSRYAACAASURBVHQkfbca9UI5dF2vG8qhaRqZTKbCn9psj0nuWT+nnXgIflXQTZLbHqHXQzeg1wt7uGfR6QGISWq0a+LVSeyGhKpFBkmSRDAYJBgMttHXqSe5bQes7asliXY4HIRCoX0JuugkfLIdr2FDNkQ0m8bt+GW+P3GEj5aXuB5dKXq62Rv7472+eJtzoREeDp3m49hVsA7EStejLtGnaVv7bemaSVVk33ImRkHXeTj0NT6NdSagohnk9Swfrn3EI/0vcHP9fbL61oTTTU+3GuEMsrKn/WE2fZ0h5yRHvee5mdgkNUL2IY57DiLkXqOQ6SRp1RysgRzW+6MBqIUCuXyuLPs2oWpJ7kb/jiH/t1jPrRFNf1baGRX+fOXX205URHLqWd6b1vh8+UZ7T7AKAhJuZRhdm4ctdHcHUZbTb6asFntjHIF1bCjYJQ9jgaM8MHGQf4l+RqKQ5duPPkYmUeCDm1dIZNubDCugoEh95cq8He/H4tMnIPDifReYzi3y5cqdknzX9OkzSb/SvRtAqyQhirsyJbsNiL4qIg9AkVyIch8pNVJBOX7twEkUB/zodmuVjoroxC65kAUJwyh64m3RG1sgCiJ/dPhp3lr+mEguXv69LAbJGA42Co3JvFP+MU71jXApusJ3Jx7gqDfEgNLXUpt3AmtAmFkl1y4irxm0O313v+W7hUKBtbU14vHNPhAIBOjv79/RGHS7UI5aFX3NhHJUk307ke/a7Xbs9spgFtMTsLqaL1cK9Kquxszn89y6dascylFLvtutY7l2YL8lt9axc4/Q66Eb0OuFPfTQAJIklVc768kVuwE7IfRyuRyRSIR4PF6RehoKhXbkj9dKO7uVLIN7h9BbX19ndXW1/HuPx0N/fz9ut7urgi7aBXMClY5EKGgaLx18nsvxKxwJGzw0+jBvLEyT1LaXAX4WWSSWC/D0wEO8tWaRxZaugSyKlUQfDTzWTPJP08BSJQiQlFKkMimeHn6Mi5G3i/5eUvOpqe1Cwcjz/up7PBB8kLXsLWKlKi6r0bc5dZEkEbvNjqwoe95OE8uZaVT7CCf9F7i58TvOBM7j4zb57N+2OaW1fTAATVWLwSE1/AYFUcQohXEkc6/isd2H1/mH3In+Agw2yeLKLlThzWd9jXGAO/Fx/unqNHmtsKU97YQi+rBLTnRtlkbETFtRh8iTJAlB3OyZDsXGs0dPs2qs8NO5H5d+K/LK3TgGDp594EHEdJ73r18hnolXH6VlCIg45EEyamtej41gl51854FH+fWdi8RyRfKx3v24gnQoXRuT5DPJv8r2UiIN2dymBFEUkSUbkjRIorBS8b4XD51nKb/KF4t3Grdd9OCUXBRJXg0DDV3Poml3yTcRm2ETbfzgyFP8YvYtMhZJrSwNktTYtjLvsYFjHHSHOeo/wB+OBLELnffJq0XkKYpSTovf7+foXsh3TbuAdpyrqqrlRUmzf5pev50Yc5vjp+rxbTPyXfPvnZLvKoqCoii43e6Kv2maVv6MEokEqVQKURTRdb08P0mnKxfrzGrMWqEc+91H24H9ltxa51o9Qq+HbkCvF/Zwz2IvHkqyLJdM9ru3ogwqCb1G1YSmP97a2hqJxGblwnapp51oZ7eiW9toBl1Eo1GA8uDblKM0E3RxLxJ5uq6XTcatFaSF9TTnQvezpq7z9sr7vDhxGFV3cise40p8peE+7yTjRLJpvjH+KF+uXyZaaFzFI5Qq76qHjmXpZYngM1+b/64ko/xm9jO+PvoU7y29UrGvaq++Tn4KBgafRD/mhO8kHtHPjdhnFAqFMlkiyxJ2mx1JlveNyLNCMwr4FCcvDDxFIvl35Enud5NqohgcUiCfy1cQebX8BgVL1Z3OTUT9LieHv4uqSyxsvIqu5yvku7WqQiVxmGj+OO/NxJnfuFqWcm7KOtsLpzyIRAZd2101WtNoksgDuHDwLCG/k98svIFeQR7p6CV/tteXlhHFIE+ffxBbxsmrly6SUaM7bJyAQx4lo87TLmJz2D/A4ydO8ffX36w6hzotsN6vrWSBhdSr+LH8bQsMAUkcJp5bLtYIisWgju8ev8Dn8dtMJ+7WbIND8uKQnGUvvLy2s+vptXn4zuSj/HjmNVSLRF2RRomruW0987514AHOhw4y7u4jILgbbtsOGIZBIpFgdXW1K4m87dBt8l1N04hEIkSj0fKYxOv1Eg6Ht1Sv7QW6Xb4rSRIOhwNd10mlUni9XgYGBurKdxtVY+4mlKNbsN+SW+uCf4/Q66Eb0OuFPdzTsD5QO4FuJXeqsZ082OrzYj7gTX+8/v7+LbKNTrYTuvt6dluFnpXQsiam2Ww2Jicn68pR6hF5+x100SxUVSUajW5JWA6FQvh8vvJ5DEgBzgUe4fPYDWxSDo9T59/0H2cjpzGbTHAttoJeY0qbVPP8ZOpLnhyaZNyd47N467LFCuml9Q8WaVteU3ll4VNeHP0mn62+TVpNF/2oqhKpTcKnWr7brs9J0zR+t/w7DrgOcNx3gUuRd1FkGZvdjtwFA3mn7OGw+ygBWULWr5DL/L+sI+J1PQOGQSKz+3TNdqEsrbUGhwgC9hYmtLqxQSL9GwTBwYT/CQzBy3LyTXSK/knmd1fTNAT6iGaO8/50kpur9UNDrJPG3RL2bnkU9BV0tg8j2DVqEXmCUOz/VUSeItj41pmvcTH+Kb9dqE06be5XQ9dWeWPxNzhEG9+98HUu3V5hZm0NA6lYWWnk0fQUmpFpuCuHPFqS2bZnvHHf6FEGB/z86Hob+nWpCs/8rA3DKC4sWMZG5X5QIvjsyjix7BK6UZKu6SL/3ZkneHXxM1Yz8ZKdgIxbDqCIMoKgg6EVSTx1a6BFKzjsH+ds/zh/P/XKZvuQkKQDrOXXUY366ckSIv/+2POcDAzSrziw46q7bTtgEnnWoClFUcpKhm5/jjaDvZTvmhYv0Wi0/Fz3eDyEw+E9G4e2im6S71pDMZqpxqz+UVW16VCObg5T2W/JrWoZv7XTlqiHHnaKHqHXQw8NYD4sVLX+ALNbYMqDNU0rDwxUVSUWi+2JP16zbYTuIctqoVtIR5PQikaj5c/OlGPE43HsdvuWz+9eCbpoBNMXcH19vdx2p9NJKBSqWUHqkBROu4co6Cp/N/Vbjvv7mGWOSH4Jr93NHx85wUZO4O3FGdI15InvLE8z7g7w7OAF3lq72FSlzLawEH2UPqPXI1/y1OBTrGZvsJxeRtc1NK1U1adrJUmmXieQQ0KSaiTvNgFV1YqebqU+NLMxTUbP8sTYH3J5/V109vfeNug4wEHXCG6WyeR+jKZaXdp0EunXkaR+Au7vkcr+joI2u29tLU9wq4ND7HZsO5QyGUaWROY1QGbI/Ri6EGA5+S9FCZY8RCI/ycW5DF/eLZ63oiil7zUY6OWk1FryMBOtEn1FMu9u58MvWiDyAAY8Azxx7DS/mHu1IelTC1k9z8sLv+Lh0TN8fXiSj29dJ5qMoCCjiE4EIQhIGMiohkpOW8Mk7xzyMHltFaMN/oGCIPL8qYe4q0b59fTFXe/PilpEnrkwYA3vscsHWM9HEEUBGTt+Wz8/OP0A/zTzCXlNwW8LIWBgGHkKhbsUjEKp7cKmVx9s249q4fHh+5EkjZ/NvrXZRsGNLoRYyUWpU08IwIhzgP/l2HOMu5x4RW9Lx20VtYg8M2jqq0LkbYftCKNaFX2N5LumTNSEw+HYE2VIp1BPvgv1q/qAbcm+RlV9zVSmbVeNuZNQjnry3f2okDP7H/Qktz30YKLXC3u4p9HpCj1r0m23w0ro6bq+xZek0/54zbYRuvt67jfpaKa8WT87c+Dr9/tJpVIVvodw7wZdWJHJZIhEIhVScI/HQygU2jIorYYgCJz3jRE+4eFn85/z97eu8fjQJEGbjYvRjwB46eCDJHIy7y7OkNYrib3ZVJylmQTfGn+IqfQtlrM7leXVh4HBW6uXOB88wvG+EFPJ6xV/t4ZwbA3kUNmax1Ek+or+amL5tVgiQgoFtUg8mW8UBGyKgs1mJyOm+DB6kQeCjxPJTrGWm2/7+W4HrxLgpPc4Dv0LCrm3aFQfpWlrxFM/w2U/j8t+hvX0r/asnWBJAM7lymSJKArYbfY2ehKpJDPvIAo++uz/PVdXV/lofpHbkaktWxYnekCVCNwMToCt1SL1Jo6b+yv+uJUDoC9jsL0f5Y5hbPZ3E6J5r6pB5AGcGT7BYNjFy7O/2dWhL0YuAfD4iQcIcozZ5ShXF26g65t+bbJgQ5FDGCgg2DHQUERfqenF61vQEi1fo0FvP187eZpfTX9EorA1oGanaJbIA7BJQxR0DZ8thGBouG0i3zh6nJ9M/ZKcXqhBEFcep24/KvXJeum7kiDynUNPcDl2g9uJBcvvXRSEILF87XuuQ7Tx0thZzgQmmPAE8OxBRV4ymWR1dXULkVcvaOr3DVbCqNrvrVq+a1bxqaq6ZUyVzWaZn58vB0VUS3e7KX23VTSq6tsN0Wcu7gqCsKOU21ZCOaxEXy6Xq1CImDB9/8wF5r0I5bCOb/erf/QIvR66DUIHyJBu9a3u4SuIQqHQUeLl7t27rK6uMjAwwMDAQMeO0w7cvn2bTCaDy+WqMMg1SZFuWAU1DIPLly8DcOrUqa4cHOdyOW7evInNZuPYsWN7dlzT23BjY3NiWSvoIp1OMzU1hdPp5NChQ1uktXDv+ONZfQHNPisIAj6fj1AotCMvnZxW4LfxGf76+tsYhsGLY0eRxA021HVERM71nSOn2vgyuspMIrbl/c+MHCZlrDCTWtr1+dXDYfcQkx4/l9Y/3nbbWmEcuq5vMcCvixKRZ7fba/aHSc9hwjYv1zY+bPU0WoaIxJj7EP12H15WyeValxuKoh+/60ViyV9Ch+WghrE1AVgqTYjaHxziI5o9ya2owrszcxR0N4LgJqMusdthVbHp1f5qRtVuBXz2MTR1EcPIF+8fVN1LdnvCBuiajmY0T+QJCDx//FGW9Hkux27tsgFbMewa5OHAaQoZjTt317ixtHkMSRrGMNIYepLNkzfJK3eJ7JMwENENDVVPoRlZjBpVr48fOYvNLfIvd37XtrZbiTxRkLHJARTJiSSAgM6WfiN4KOgZVD2OZmQ5HBzj7PA4L09vn2Rr7TdFzri+lNByQARRoM/u5w8OPcLP77xNTt8kBUTBiSb0E81vvQ8f8Q7xtaFJTvj78ckyQWG0o+MF81lktSWRZXnfF0HvVRiGQTweZ21trUxC2Wy2cgKwSRaZ8t162O/03b3CdqEcuq6zvr7OxsYGhmGUKxtN7DZ9txHqyXcLhfqBTJ0M5SgUCkxPTyPLMocOHdrVvnaKSCRCJFK0Hjh37tw95T/YQ9egrUPIHqHXwz2NTgdWrK2tsby8TCgUYnh4uGPH2Q3MB/3S0lLFypUZltBtviRXr15F0zROnDjRlStbqqpy7do1JEni5MmTHT2WVdZjJbQaeRtms1lu3bpV9tAz92O+914h8tbX14lGo+VVX1EU6evro6+vry1S8OlMhP82c5GPVqc46gvzyOAQ0fxCWao37jpA2HaAtKqTKmjcSawzkyxWiVwYGMeupLmamNl1O+ohZPNxof8Il+IfkNdbr4bSdQNd18o+a6pWlO02QnUQh/naq3g567+faxvvk9cbe4m1AgGRAecoIVsQtyThFgsUcq9XVEPtDBIB9x+Qyn5KQZtrS1ut0A2DfKnCpCIB2G5HlttN5IkkCuf5cE7i4nzluQhIyPIwBS1NQd99Sms1TKIPQ8RjG0bNz2EYasNBXDXJZyapNrwopSTfigqykrSWOkQeFCW2Xztyilfvvkei0PlglEPecc64jvG7G7dYScroWgTDaK6STkACwYEg2EGQKV4QEbfdyXP33ce7d69zNxkrb20IIiBiGAKqkUXTcyiiC1FQEAQD0BHM6yWAYZSusWF65eoYho5QqhgUBA3BSGJURyWbR5RGyekJVL3om/X42P1INo13lr7Y+QXDSvRRJvms84oHB08x4Qvys5lNiW1RVu1GF4tkXrEfFc8vZPfx3YlT9DvSDDgGGZIPoQidC0kwDINUKsXq6mqZyJMkqSyt/aoRR52G1a/ZJHzsdjvhcLjmonI9+W4ul2toddPp9N1uga7rRKNRIpFIeXzvcrkIh8OIorgtqd6OUI56MBe8qqXWZihHvfbUC+Votl3ZbJbZ2VnsdjsTExNtOZdWsbKyQjweL6pDzp//SvW5HvYMPUKvhx5MdJrQi8ViLCws4Pf7GRsb69hxdoJaHmtQTAobHR3tSrIM4MaNG+TzeY4ePbovaWbbQdd1rly5giAInD59umPHMFevTa8ZURQJBoOEQqGGQRf5fJ6bN2+W32MOZK0/3WhiDMVJfTwer+izsiwTDAYJBAJtX+VMaXk+iEzxX29/QLKQ5bmRozwYHuZG4gZJtdIQesQ5xKjzIOtZnc8idxlyehhwC3y23npYRrMQBZEnw6dIqUvMpWdafr9hGORMvyKLV6KsKIglSU7Rp09rOPAXRQlZknh08DHuZq6xoUWKVVM7PC9ZsHHcd4p+RULPv4vaoZRUj+NrGIZGKtee6kJd18nl8xQsRF4nE4ALxiQ3ImP8+voM+Rr+jiYk0YMo9pHT4mh6qu52O4EkOHDKQXTNkt5qkV1CFWlTB1uq+UrQdX0rkSdJDYeyAgJPHHoQyZXnzeX2+sxtD4HHBp8jWBD55NYV1hJrO97TZHiCYwfH+OXNdxofUbAhCDYMI4Nh1B/PmJU61smyKbdvuH95nIy6hm7kEAWRPzz+OJfit7i9sdDwfbuBQ3TwrckLXI7d4Fr8TrFPlapEZdFPQfATzW3KbJ2SnZfG7+OQz0CW0hxSzuPU/R0z5a9H5IVCIfr6+npEXoswFyetKcA2m41wOIzX693R59cofbfe86yWfNeUg3bjmKgealU4mkSeaUFireSzKjQaBXGYqGW30E6ir1EoRz3Islyzoq/6+59KpVhYWMDpdO7bvGxpaYlEIoEsy5w9e3Zf2tDDPY8eoddDDyY0TetoYEUikeDOnTt4PB4OHjzYseO0glwuV9MfT5ZlUqkUQ0ND9Pf373Mr6+PWrVtks1kOHTq0rTfafqCTsmCThI1EImUi2kzM6+vrq0loVQdd6LrO0tISqVSq7ipoLaKvXXKHnaBQKBCLxSoSa+12O8FgEL/f3/E2LWTXeXPlOj+d+YRJbz//9ugjLGTuktNS5PUUsXxl9dNRz2G80gCiYCdrJPkwsrsqlu1w1DvKpCfA57HmiClzomM1HpckGbvdVpfINwyjrkefFQ+EHySZW2QpPb2ZultV0Vfv8xpwHGDUOUhAzJLN/jPsQeCGQzmKw3aCeOqXO96Hpmvkc3nyFgmRUqoA6YyUxstS6hyv3IywuLFVblgPkhhAFL1kC6vobfC4c8pDSOTQ9SZJK4OtJN82RJ8Jgc1gnkbyXbMq742VD4nn15trV9sgIskH0LQFMDQeC58nZPRxc36ZqZVpDKN5e4/7xk/i9iu8M/f5rltVm8iTmng2CQjyOOnCMgYqfruPbx17mJ/NvE1G65xc/VTwMKdCo/xs5q0tIUOSGCSj21nPb+AQZR4OH2bS6yLoUJnPfMIZ3xPYo2Hyqc3vovV5Zn2u7eR5ZhgG6XSa1dXVsvl/j8jbOWp5DiqKUvYc7MSzvRxOVCd9txaqgx26Vb5rGAYbGxusrq6WKxwdDgfhcLjCeqURtpPv1jtuLZKv3VV91rFLtXy3XtuqPztzYdjtdjM6OtqWdrWK+fl50uk0drud++67b1/a0MM9jx6h10MPJjpN6Fn9yg4fPtyx42wHczW5VmiA6bG2urrKysoK4XCYwcHBfWvrdpieniaVSnHw4MEKD5BuQrtlwbVIWGvQRa1BWqOgC3N7q1mxOaDN5XJ1q1YFQagg+HYzMWrlvNfXNyfmLpeLUCjU9OC0XTAMg2upu/xy/gs+XLnFdyfOIkoqVzZmOOUbxSMLLGcrffNcspNHgg8jibCSjREvpFlIRdhQ22dob8IjOXly4BTXNz4mpdWWF2qaTj6fq/CukWUZm92OvEPiyexbVp++E4FTCFqSmcSVmu8RRYGwa5hB1wgOScYuKfgVBQofoWrTO2rHbiAKXvzur7OR/gBNb9770Pz+FCzPEEWRixV57SbyBD8p/RDLWQWJST6fW+Ty8s484WSpHwEnOS2KZrQukZZw4FRCGFqbwi9Knmq6OYFs4i2mVFcsSS1FUeTJww8huQq8ufzR7tvUMmQkeQRNnYcqEmrSO8Z93iMYqk4+q3NtfoHFWP3qtkePnmdDTPDZ3Zu7alE1kScgIJbSrreHiCCPkS4sYaDxwPAJxgIBfn7nvV21qREkQeZbBx9lPr3I59Gt565Io9hlJ48MjOC3GdilDHPpz0Ao4JCcPNr3bXy54R2RNNVVWbWukVmRZyXygsEgwWCwq0idewG1Khz3OwX4Xpbv1iJGd1vhWAvNhHLUQ6flu9WyXfP/jVRY9eS7nfa0m52dJZvN4na7OXHiREeP1cNXFj1Cr4ceTJgR7J2CGZCgKArHjx/v2HHqwfTHi0Qi5UFTPX+8SCTC0tISwWCQkZGRPW9rs5idnWVjY4OxsTH8fv9+N6cmrl+/TqFQ4NixY9hsth3vp9mgCyuqSbyd+OOZaWUmwdcM0VdLurvTCggzsTaZ3CSmvF4voVAIp9PZ0v7ajaxW4LONef7z9TdRBInvH7qfN1Y+YyOf5vHwUTyywN3scsV7ZEHi4dBp3GIC1cigSINkVEhpBlPJFRYy7UvFfXrgDHezN4jlN6umVE0jXzUpMZPlOjURPeiexCtL3Ix/Wqzk0w1G3ZOEbX14ZQEhf5lU9gus5IcoFAkHyUzcLb3eq0mRx/EoguAhkXm14XaqppYmecXvg0BnrqfBABFtnKWMzPWNNDfiC5j1bKcDRzjsmOCVqxfJa1vTA5uBJAYQBTeqkSevRZp6jyL6sYsKun53R8esBUM3tkhrzWpOqFHNV1XVd3b0JIcHw/zr0gckC8lS7sTWyWPnUKrMU+doZgh7NniCCWWUtWiKT6Yuoemb38sXznyNq4kppuM7l5kX7/0aul6697dE5AGIII+RKSzgkO28dPQRLsVucnOjc2nWTtnJ9w9/jZ9Ov0HOqCSJJcHFoPsI5/pD2KVVriTfwCm6cMsuslqSg+6TPBT4Jn5xa/DYTkkac6Jv2nqkUqkKv9ZGVfE9NEY6nWZlZaWCGO12z0Fd1ysku90k360mmmVZJhwO74l6wYRJmteq6GuGJ9jLUI5kMrntvE+SpJpEX7vk+9PT0xQKBXw+H0ePHt31/nr4vUSP0OuhBxOdJvQ0TePq1auIosipU6c6dpxq1PLHM73GgsFgzaqxeDzO/Px8V/r9WTE/P088HmdkZIRgMLjfzakJUxZ8+PDhlgmonQRdmO+rXjk139uuSa21oq+ZiVE10Wcd2NYyt04kEkSj0fLA1DzvUCi0K2K0E5jOrPE3tz/gi+gc3504iy7keGPlc9yyg8fDR3FLsJK9i5V66Lf3cS4wyVr2I9JqkUAJOY7gkI4QyavMpFZZya6jNvDBagaP9p8gW1hiNjVDvoqILQ5M7YgNwgTaAVmQOeQ9wqi9H40Yfgm07NuoxnKRbNDMqr7i60aVWWaSaXUoh9iByYok9eNzPkM89a8YxmZlqAFoaonI0zaJvFYNuZuBLgyzmD3I+2sb3FyvXzEoIvL9sWf5Ym6OW2t3dnw8QXAgi33ohkFWW6m7nUMOI5ND15uX+TaCoRdl3OV7FcVJsCiK2w9VDRjvG+Pc2EE+iX3JnWSRbGo0Jq2eNJYDOXYJSR6vWZm3HdySi+cHHyOdKHDx5hWeve8h3lj4hFh2Z1Lh3RN5RQjyBOnCAifCk5weHOHlqXe2SF/bibCzn+fGzvCP05VEuiLaeHzoEQbdLrLaFNdTHxBQ+pAEgZyexjAMnuz/PpP2s9jE1sO7rBN96zPNakVQDUEQcDgcW55p3eo7203IZDKsrq6SShV9PL8KUuX9lO/Wup7dRox2o3x3dXWVWCxGKBTC4/HUlPA2ku/uNpQDinMEXdcJBoPlcLoeemgRPUKvhx5MmCEBndy/6ad2+vTpjg/4stkskUiEeDxeIc0MhUL4/f6GD5xu9PurhaWlJSKRSFd7/U1NTZFOp5mcnMTtdjf1nt0EXdQi8szPei8mGdUVEOZPowoIcxBrepqkUqkyuS5JUjmxtlvDWQBihTS/WvySl+98zAF3kBfHjvLy3Luoho5HdvBQcJKAzU5SjZOyhGjcFzjCkF1hNvlmxf4CygH89kPoOCjooBkGugEFA6L5LNc3Fsjp2yxAGAYFVeV+30FkfYNbiWsgCNhL17rd/UEWZCY9B+lTXNgFUEQDm2AAaVRtFcNIEXAcJ5v9AFWrLzM0AEPX0cpkn1aS8NYn+oRS0ukWj75dBHKU9ozH+RQiTtYzv0EtTdi0snQRbKY0r43XU+cAc7kx3l+JMZWoT6xV40L/abx6kNdvfLSrAZQg2JClAXLaBppeKdt2ySMIRhTD2H2oxq6IPMDvCPDUkTPM5Rf4LHp16/7N+6AlSKEpog8BQdycSDYDSR5H1xYxjJ1bdxwLHOG54QvcTc2TUVWyeVhObHBzbZpCEwnW7SLyoBSAUVjhW0cfZiG3zKdru5P9bofD/nFO94/wq9n3ORE4zBF/Hw7JwCGDU/bwWfwNsnoSj+LBMFRS6joaKse9D/NA4HmCYvvVBNUVT1B8Jlkr3qtRy6fP1qF77r2GbDbL6upqueLeHNcEg8GvbIVjJ+W7uVyO1dXVsn3OvXo990u+u7y8zMbGBoODgzVVPoZhlFUq1T+N5Lu1QjlM+a5hGBUV52Yw3cDAQFcXUPTQ1egRej30YKLThB6030+tGqYXydraWk2JYrNeY93i97cdVlZWut7rb2ZmhmQy942AHgAAIABJREFUycTEBF6vt+G27Qi6qCbyumUCYVZAVFf1NaqKlSQJp9NZroLoRAVUO6EZOh/Gpvl/rr0OGvyPJy7wy4UPSFh88o75Rjjk6ccpFqv2dHS8iovHQqeYTbyC3kT4gyI6GHY9iGp4SGs6GVUnVsigGzpO2YYsSGQKWRYTEVZTMTJqjjP9hxnx2LmdubajJ3/AFmDEMYQiShgUPc4EQUQWBGRBwCFKuMQ0ydzbqNukp/bZz+GxDZFI/YJWKplMok+3kH3F9F2tPtHHpum/VcLbCtFnAIbmwG1/knR2lo30xZKHpA2b0s5JukxeOMl8xsN7KxFmkztLRfUrXr4x9AT/fPkiqXxi+zc0gCQGEAQvGXUJ0HErB0BbxmBn0l4Thm5UfG6tEnkAp4aOMjHQx68XGye/1jy+OVnUjZaJPquM10SRzLuLYezsuvhtAZ4ZPcdafoqbyUq/yaBtkBOe+0FX2EjrfDh7lWTV59pOIg9AkA+gGQm+d+ICv5p7j0ShvYnI1TgfPsGJ4AFyeoygA9ZyF1nLTwGgSOMktQIO0U5WT5Et+YK6RR9PDvyAcfspFNqbcl9d8VRNlJgT/eoK9e0m+rWIvm4LU+gEqoknQRDKC5T3EvHUbljlu9aq0O3ku4qibFEV9fX10d/f39ULn62i0/LdhYUFUqkUw8PD247Pq2GOaav9+hrNI//2b/+WV155hWAwyPj4OOPj4wQCAUZGRjh//vyeFHu0ir/+679mbm4Or9dLIpHg9OnT/Omf/ul+N6uHSvQIvR56sML0RekUbty4QT6f58iRI3XlkjuB6Y+3trZWPgdBEOjr6yMUCpW9X5qF6fdns9k4duxY29rZbqytrbG8vNzVXn9zc3Osr69z4MABAoFAzW3qBV2Ew2F8Pt+Ogi66bVBQC4VCoXzeJkwSspVJUSPz8v3AzdQKv5z/nHfv3uR/PvYon8SuMZ2q9BlzSDYeCE7ik224ZIl0IcHZ4GGSuU9Jqq17kjlED4YB69kY+XwWwZAIOkfpc05gU/ooCApeJYAs5EkUIiiCgCwKiBjFHwFUQyCvQ94o/l9BRBbBLuho2jSJ/GXalTYrCnYGXU+BvkQm9/Gu9lVJ9FWm79aVy0CZ8JBEqfxaFKXyyMgwDPKFAvlcruzp5nEeIeC9QCr3EbrRHu84Q5hgOT/IdFLg/ZU75LT2LCz98djXefvmFVZ3SAxuQkSRR5AEF7o6vavwi3YQeaIg8sLxR1nUFvgydmPHbandQKOUy9HcxFEQRGy2CVR1EVBbvveKgsTTo4/gtal8GHlj2+0FRB7uexIKbtazKkvrcWais6TyqdLfd0fkAQjyGDapwEtHz/AP06+j6ruT/VfDKbsY9Qww6PTjkGVCjiAHvAp3Uq9yN2clMwUU6SAqkNNSZLRE+ffnAk9z2vs4AXGorW3LZDIVC6KiKJbHUc0ST1bfWesiVrM+fdZ/73VyJp/Ps7a2Vg6zso5L7/Vz6yS+yum77UI7qvoWFxfJZrOMjIy0LVivViiH+fMXf/EXTE1N1X2v1+vl0KFDW37GxsbqKnM6ib/8y78E4K/+6q/Kv/uP//E/MjY2xp//+Z/veXt6qIseoddDD1Y0WhVrB3Yiv2yEWhVd2/njNbvfa9euIUkSJ0+e3HU7O4VYLMbCwgKBQIADBw7sd3NqYmFhgVgsVtPnr1bQxXbVlO0IuthvmHJw63m73W5CoRAulwtBENB1vWZFX6PVTzOMoNrTaD8Gs6qhcy25xPurUxjo9DkVXlm8SMGoPRg/6B5g0tPPEe8Q/UqCxfRvmz6Wbujkc6VV/dLvJEna9HOybGsTPRzxPYBWuEKqcH3nJ9gmuJVJgvYTJNI/7cj+dcOoIPjM13ojoq/UX6xefqIo4LA7kBUFAXDbH0EUvSQyr7XcJgEbqnCISMHDUkbmo7UVVjLxnZ3gNvjOgaf44s48sw2SVLeDTRpGFnTQoiAGQLAVfQS1labJvXYQeQBBZ5BnT5zlnxffJqO1PyG6EbaSfDKKMkqhMItR9b2uruSrdW+e8I1zYeAwH669RtZo7Vx0vViRF7INcsR7EofoLpGRInkV4qkCny7eIlVopUJTQJDH6XMYPDoxyY+n3mqpTfUQsAW4MHSEPqeIQ9ZRSbCcvY1fCTLqGuVy7NfkjEpZt4CEXT5CWkuSVGNl/9Fj3oe4z/c1BsWDiGL7KruqpaBmBdluxlHVqFWNZf5bD6Yhf/UCVrf79BUKBdbW1ojHN+9rJpG3H8TEvQ5N08pjfeuir91uL1eKdnv67l6hGaLP9Gk2F9FHRkbKkvhqz752pu8uLS3x05/+lJmZGe7cucP8/HxTyjBZljl48CD/6T/9J55//vm2tGc7vP/++/y7f/fvuHjxIj6fr/z7ubk5XnjhBV599dWeRLh70CP0eujBik4Tenfu3CGRSDA+Pl5xg2wVu/HHawZ77fe3U2xsbDA7O4vX62ViYmK/m1MT1T5/9YIuaqUNW7EXQRedhGEYpNNpIpFIWcYE4PP5Gp53NaqJvmYmRVaizzop2guiT9d1bmfX+Cwyi8cu8+XGDJfi0w3fc7Zvkif7Jylon5PVVutup+k6+VyOvEV2Uxy425AkueETPuw8xKj9ANH0r9B3UXHVDkiChxHP86RSv0Rnb0gawzAqvPnKEt4G9/+yR58oFglT2wh+11PEUj9nu8pFTZggWuhnNSezkNb4IrpAdoeJtK3i68MXWI1k+XzxWkvvkwQvNsmPoK0C1dJ4AUQ/CC40I42u10jGNYr930qMlok8qfXv3rnRUwyF3Pxm8d2W39tuiGIAQXCiaUsVPn26sWn8Xg+CIPC10Yfw2rN8FvuoQsq7HUwiz7p/0ZSRW94vI3O+71FseMgVDDJ5A003ilW5Iug65DSDu8kN5uILZFUVQxpi3GfnUDjIP88WFxQkQcQpOcloObQa3oAj7mFOBEfw2QREoejzCRQrfEUBRRJQhShXNt7BlNcHbSOc9j/Icvpz7uYqKywV0YcihsgZBuv5CFrpezXmPM65wLOM2I4g075QpFpE3l5XkJl2L7WIvkbVWLUImv326TOr7q1jUzPEq9vCrO4F6LpOLBarWLT3eDyEw+EtY6adynf3In23G2COnc3xtylXttvtDA0NbXu+nUjf3djY4NKlSywuLqKqKvPz80xPTzM1NcXa2tbK+kceeYQf/vCHuz5uM/jLv/xL3n//fV599dUtfzt+/Dh/9md/xn/4D/9hT9rSw7boEXo99GBFoVCoO4BqB3aTymoYBslkkkgksit/vGZx5coVdF3n5MmTXetxkkwmmZmZweVycejQof1uTk2YPn/9/f0oikIkEimTT5IklasAujnoYjcwB1CRSIRsNgtsEpjBYLBtg3yT6KtV1VcPVpmTlfDrRH83DIOpzBpfxBeQJJWLkRvcSdeXbCqixBn/QU77HXikKGl1s8JK1TTy+RyFwuYEu0ha2pBaqFoREDnsewgHCeLZ/SZJRIY9L6DlL5NXb+/pka19p1zhKG7KFjWLN1k1REFhIPg9kpnfUVDnKn36BJEcp5hK+3hn+S6r2c5U4TWDY76DnHIf5ZWrF8mqmW22FrDLo0hGCvQmUlYFJ4gBNCNTJPbqEHmSJJWDJpqFJMg8PHGGAb+bz9avMptcbOn9nYAkjWAYaXS98edZK5BDEhS+c+gpppIfs5SZr9h+s6qvSM4V7+0CglCbyDP72W6G8v22QSa957ERQDaceOw6kdwiiiQgiQaGoJHXUthEN5ouk9MADGwSKCKs5aeZSX9JM16YEgoPhZ5H06PcSLxdPmuHNFgMIUFHE5wk1CQZrbjo45b8PBn+I8btJ1BoLSW+EbLZLGtraxWebt0mBbX69FWTfdtZUtRKlO/kApaqqltsQ3w+H/39/S1bvvRQ/OzNYDSz8s7lchEOh3G5XC3vqyffLQbcrKyslMehNpuNcDiM1+utOc7ei1CO9fV17t4tjgNPnz5dQdKur6+Xyb2pqSkikQh//Md/zIMPPtjyue8EL7zwAj6fj5dffnnL3x5++GHGxsZq/q2HfUFbJ4Ld8QTsoYcuhjlQbDQYq4aZeBqJRNrij9cszCQ3TdO6ltAz29VJErZdsEolFEWhv7+fQCBwTwddNILZb6PRaEVibTAYJBAItH3SJIoiDodjy6q1Wf1Qq6KvUChQKBQqKgZhU55SXdG3m++BIAgcdoUZdvj5MDrNuOMADwaP8urdT9moYThf0DV+F7vNVMrLkN3FhPsQDtHAhoYdA6+iktEX0aQsdtvOBtkGOrc2PsJnG2DS/X0iqc7IXpuDzlLyXwg6H8IlD5PeA4KxXNFgqXBUZBmb3YYsVfZPc7C/1aevwHLkH+nzPYUijhFLvomAnZxynqmMi7eXZ8lqCzWDFPYSNzZmuLUxy3fPPMP03Ujdaj1RcOKQ+kFbBpp8ThkZ0DJIghNBHEVVk2ilir2dEnkem5cLB0/jckm8vvQhqeTeymvrQZLH0LVVDCO77bbVn/eAc5BnD5zh7bu/pGAUEEWpKNU1CT9K5J/R+LqLQrHCsR19KaKKuPNrHPHCF/GfkEk1QeDuAEHbCGcDj/Bp9GV08gjIOOQBII+mLSMKQbI4Wc+vlOW1R9znebjvmwSl4ba1o1Y4g1kd321SUEEQUBSlZrvM1NRazzRzccK68AudkV2aUtBoNFoeh3m9Xvr7+9vqE/37AsMw2NjYYHV1tTxuMv2Ud7pobyXnqo/VKH3X7F/VuNfku9UBN7Isl8ffVnktsGWMVy+Mo5rwq0X6VUt3a1X1WeeC1WNiv9/PuXPnOHfu3G5Of8eYm5vj8ccfr/k3v9/P3NzcHreoh71Cj9Dr4Z5Hpx9G5sOiGULPXPGMRqMV/nhm4mmnV5ElSaJQKLREPu41Wrmee41cLsfa2lo58MEwDJxOJ/39/TsKurhXiDxVVYnFYsRisS1Jve2Qg7cKU5pUTXxbib5qwk9VVVRVrUv0VVf1tUL0uUQbz/Uf55C7n5/Ofsqz4fPcSs1xef1Oze3j+QSpQoZozkMyv4hemuzbJIXjgTEOuXx4bAa5wizaDqWzG/kVLhc2OBX4EzYyv0bVk9u/qUOIZj7GrUwQdP+ARBNS1p1A0zRy1RWOpc+23mcpCAKSJCFJEub0WkDBEIbI6AHu5g0yupes/O9ZzMR4d+Zj1Dp+iUKp6gpLJdZefLd1dH469zqTngN8/+yTXJy5zfz6ZsWbLPZhE22gte63p2kaur4BbCCKLuy2AwiChKavQgv9UhYUnjv+MLqS5fWld9Cj3bNYUyTzVnaUZHs+fIYDHjtvrPysqFYWzPtg6V9LFZ9hgGHUD3TRDR1dtYQgUeo/5Yljc23qc5zmbN8hljOf8tvI29u/YYc45n2AoM3NJ9G/R8SGSx7BMLJo6jwggjRGXE2R06MASMg8Ef4eR50PYhd27zUMm89j07e1m4m8ZiBJEi6Xa0u1ltWSolp6We+5Zvr0VVf1NZJd6rpe9nQzxylut5twOIzT2b5Kyt8XmAqc1dXVMolmrSDrxPNBEARkWUaW5S2e3vXkuybZV6sfdZt8N5/Ps7q6Wv7Oi6JIKBQiGAw2PQ6tt53Z52tV9dXy6zP/rSb5rCnF3VQ4YfW3rgWfz9cj9L7C6BF6PfSwDcwbdiPzWlMKsr6+XuGPZxJBe0WIdDNZZqIsieuSNpo+cVYpjwmXy8Xk5GRTQRfm7+4VfzwoDp6i0WhNX8dODUh3g0ZEnylPqa6AaDQhqhXG0Yh0P+gM8b8deZqL8Tts5PNMjAzw68WLFp8JA10v+rwVjALpfIawcwBFVMnqMQzg2sYc1zZAEiTOBiY44HLhV1Ry6gJqi6SDamT5IvY6R/3PYFNvkC60OT20BaQKd8ioSwy6/wC9cJ1coTXvt3owqxEKlvuvTVGwtSBVFlDICcdZzLiYTsHV+Crx3GKpqqg4wBUFF3b7OIpRoKDdxdCNMllTDC4okjZUVWJtEn0WCU+T3mqtYDo5z3RynkeHz3D/6OO8cvW3SGIYmRw08GyshgHlSsXyOQgCopBHNFbBEBDFAAhOdCOPpq/QyEnlxMARjo8M8+vFt8nr++vrWI2dknluxcvXxx/mTvILfhudqb+hUPz8DcPA0PVylRoUPfIEgVKfsfQlSs+OUmVfxe62EH2bC5YiEo8N/gEQ4ePof2vpfFqBiMyF/hdZy17hVvI6LnkYw0ijqvOAgSC4KYhh4vlI+XxDtlGe7v8BQ/Lhtjwzqok8+GqHMzSqVLc+16xEjaZpZDIZMplKKb5Z2VVNzqRSqYqF5p1KQXsoIpVKsbq6Wr7+siwTDofx+/37Nm4SRRGn07mFnN1OvtuoH+2VfFdV1YrF9E7I6a3trlfVV030CYJQob5Jp9MVCwzdNEY2U6m9Xu8+t6SH/UCP0Ovhnsd+VeiZq3Nra2sVZIEpXTCTP/cS9wKhZ5XcWle/9hqmTGJtba08mDErAJxOJ4uLizUf2I2CLu6VirxMJkM0Gm2YWHsvwTr4tA5mag1kzR9N00in0+WQExMm0Verok8QBBySwpOhI5zyDXFpfZH/4eDXeXX5ExbSq2iapTJJKPplxdUENtFGn20EVV8nrxePpxkav4tN8bsY2ESF495RBp0ufLKAW9YpaMvk9a2y3lq4uf4BI66T9DmGWM92rmpnO+hGnqXkK/jtp/G5v1uq1msdBqCZKYCle5kAKDYbdputqQmFKHjJGJMs5xxMJ+Hi6h3yenVIhLXtafJaGkGwYZNHMSigWomyimqsEslXQfRVsjMCVJJ8bSL6Ply7hFMM8KcPfofXrnxIItOc3LIukSdJiBXfdwP0GBBDREEUB0CQMRDR9BhGKdnUrXh49sQD3EpP8fP5rQbc+w1JHkfX7rZM5j0QPsOE38N7q7/YdlsznMVK5G3nkVfsOtX9pzHR51VCPHvgJT5e/Tlpfa1M9rWbNfbJYR4OPc/VjbfQ9CSCvl6xyCCIfWQNDxv5ovG7U/Ryvu8ZjrgewCuGdn38fD5fXhg1EQgEyl62v29o9FxTVbVmtbpV1lsLoiji8XjKUtButmfpRlRLQSVJKktBu9Wnrpvlu7WSgP1+P+FweE+/8+ZnV4voA8pzPev16BbfThN+v7/h37er4Ovh3kZ39cYeeuhCVHvo7Zc/XjO4Fwg9k/gyva32ejBpTSCrDrowVwNNksc6+f0qBF2kUikikUgFieX3+wkGg19J75xGA1nrgNVaAdGI6LOSfA67nUc948xnY/zb8ef4PD7FbxY+whAop6qayOsF7mZjeGQXXtlPWlspy3DNv19an+FSaR4rCSKHPSMMOgaxiwJ2CRyigF0EWcyRKsxXkAgAi+mrJG0DHHL/gGjql/uagrueu0wyN8OQ5wfkcxcpaLNNvc8AVLVQmpiW5ImUDOPt9iriaROC4MAQhtlQ+4jkJSI5iTvJNLcSy6h6a/Jfw8hT0BYRBSc2+f9n781iI7nyc8/fORG57xtZZJFVqr1UpV1qtZbe3G7vM/diDAyMAQYGBMOvfrIBv9gP7Xe/Xgz6PgwGHmAw9niWe23pqmW3rW6p1S2pJbWkKqlKVaq9WMyNSeaeEefMQzKSmcnIZJJMksmq/AEUS8zMyJPBYMSJ7/z/37dIy1pC0+pUY236O3cV+lgXZjb79PQIfZ1qrFHPHxK/eRShq/zfN/+e3zv7Hb684+fr/OD9O7qQ50YLVK4zblOEEcY8zx8/RzxS47/e/fEIY95vJIa5gLLvoV0SXgcR9kT5rWPf4Fr5I97JDj9edyLkOXQHZ3TTPkx0T2Wo1ppT0cc5l7jA20t/h6V6z0lOdWhn4WkHQp/Eg9dIcjH2AmHT4NPi/4FyWUiQxhxrNlTtInP+k1yMvsRR3znCMjHyew1ikJCXSqWmKasudPv09bddOgLNysoKa2trm7yKlVKsrq723NybpumavGua5sTPa/aLfh9HKWUnHO2wCqIH2b6rtaZYLJLL5bZMAj5Ims0my8vLPZ/VMAwymQyzs7MHOLLNRKNRgE2dRg6lUqnznCkPH1NBb8qhZ78q9CzL4sGDB67+eJNyUT8Mgh7QEfT2c3XYzd/QCbpIJBI9Aozz70Fl+M5zDsNk16lE7BagpZSdxNpHtfLBuSEKh8Odn/cLff2VD26tKQBeIXghc4pnnzrFz7OXeSf3mWt+ZNmqUraqJL0pAoaiYuVcx2drxZW1O1xxmZeFzSBPx0+Q8RlETIuafRu1LlysNpf5pJnjTOy3MdRt1hqf7Gj/jAObCnfL/0TM9wRR/wtUKm+gcA9J0IC1Xklpd3lQ+tbFWEcAUfIE+WaCtZagZgvqtqCmJMVGgxvlPKvNG2Mbv9I1mtYdPMYMAC17QLrxIKGP7rZ8QKvRhD66WvY74o/EZ85jYIF9Hyed9PW7b/ONzEUWk9/gp1c/6BGYugNBOu+x7im40/PWM0ePs5CJ87MH77NSMTHNRewd+tPtBUL4kMbsus/baD5+Uhi8Ovc8yYDgndzwitLdCHlb4QhxwtjY0EuZ74CweS//f4FoYEi5cUzhCMm4Vof2inyic3wBeGQMjwyCtol5olyIPsFXpTe56dK6LUQQJWfJt0qcCj/FmdBzzPtO42H3N93NZpN8Ps/KykbycCwWI51OT4W8HdDt6eb4fPl8PtLpNKFQqBO+0S/UOAJN/yLWpPmrHQStVotsNtsRmycxWXkv2Mv2Xdu2KZfLHRujQCDAzMzMRLV/93v5QftzzMzMMDc3NxH3e25Eo9GehZF+FhcX93E0U/aTh/dsNGXKmHAmRs4JHtoXICcwYJImNpPmTzcIwzCwLGtfkm4dP55un7itgi6cn1mWRblcxuPxdAS8wyLkdVeSOhMnpxIxkUhM7ITkINlK6CuXyxSLxU1tKFprWF7DIyU/SD/B92ae4rPSDf6/Oz+nqayNqpx1wabQXMUrTVK+eaqtJdSI4gO0RcF3cm1/Op/08nTiOGfCGXyGl3zjAQL4orRMyDPLrO9/AvsDlLqFOiDRpdT4jNXGZdLBVwkKg3Ltjc5jnZuDZhO0B42BFBKvz4PXYyJFkDpnWKr7uFc3+DB3j1Lz630cvaZlP0AK/3q13jKa0fdjb8v+xoLBRjXfepACXW2YfS2XXnOmHXrRvIstdE9VFsD7uc8JmSH+w7Pf5t2rl1leW94s5EmJsYvz1sX585ycSfPz3Md8fOdXG9ulHcqhxQwahbbXUHqNYZ57e4VhHEFjY1ujVYMCPJd5ilPxJL/M/xtfVgaHyvQLeYL2dUAae9Ni5zfC/MaRH/Dl2sdkG1+isRFS9tf0bfjzdQnH60dQ53jaQBD0zGJIA6VWaFh5nkl9H69o8nHhf3fRIw2EsUDFbuHVkt+Z/WMWfOcx2b3Q1mq1Otdkh6mQt3O01qytrfW0BHo8HjKZTM8cxzCMoT59OxFouj1ovSPaIRwGHE+37nnjo9z+7TDu9l3DaC+IrK6u0mg0Djx917btjpdf96JbMplkfn7+QDuwRuHll1/m0qVLro+trq7y8ssv7/OIpuwXYlAi1y7Y/5nclEcaJ/ly3NucNH+8USgUCty7d49EIsHRo0cPejgDuX79OtVqlRMnTmwq9R8Hg4Iutvr9OTdGtm3z5Zdf9jzm+Ib0BylMmjBmWRaFQoFisdi5qfd6vaRSqX0NaHlYcI6lfD7fcy5wWpVN03QN4zDDfmQyyE+zl/jnO+/1bLPbV202kMRWJVp6c+XfdvjuzLP4DT//svSLTlKrQDDrP8rpcISEp0HUowkbqt26K5pI1lC6jKUqgEZgIIUHIQwEJko3sHc5rm5MEWc2+C0a9hq52l2KDc2aJVm1JXXbwjQMTMPEEBIpYDF4mg+yt/g0P56Ajd0hMGUKKQO0rPvoPUjy3RD52uJMwLsIdgFtu3spivXqwPV/8J3Z5/BaYX759WVKtWKn9Xsn1yopJE8tXGAhGedXK59xrzqgQnFjNCD8IIKAAUg0Alsto/Vetn97MMy5bfnlnYmd4unMMT4v/ZJ8c/DnchXyDLmn59DH489wPHSM94s/pmHnd7aRjmAsMGQYj4wATVqtLFq3OBp+nNPhx7lcfIOaXeh4O7bPSQamuUhdQ9la48XU73Iu+AJhmdz1Z3MT8qLRKOl0euJvlCcRx0ZjeXm5I5aMK5yhW6Bxq+gbhMfjGeivdhiwbbvTyeHcH0ejUTKZzFRs3iHOMVqv14GNSvFhx9F+V4c6Vjy5XK5nMSwajXL06NGJqh4cxrvvvstrr73G+++/39Ne+/nnn/OHf/iH/OM//iMXL148wBFO6WKsB/JU0Jty6BmnoOdUNeVyuc42nfZQgMcff3yiJyalUonbt28TjUY5duzYQQ9nIDdv3mRtbY1jx46N1dNhWNDFsJsGN3+81dVVKpVKxztk0LlyUoS+RqNBoVDoSVp2KknD4fBECtCTjCPq5/P5nmMpkUiM1KrsrEq3hOKBKPN31/+Vr1bvuj437osQkFCxcp32uO6WuVEJGD5+f/5VPi5e5Vr5dufnPhkkYIaxrAcdbz2PMIl4wsS9YVK+EAJBU1m0lEVD2TSURcT0kfb5CZkQNjQhU+MXNk1tULEFNUtQsaGmQGnwCDDWv0zZrklraWip9vem0hTrZe7XatjaoNm63RFJNlcgtTkXPctC4ASv3/oFDXt84uLOEXiMGQQmTfseezHlMWQMn4yA/QCwO0EK3e26w6Zu35t/kaAO8cGNKxSqhd62yy1IBJM8d+wMfr/kneWPWGmNFrrhjgAZW0/MVdjrn2dcCBFGyii2fZ9Rfg8+I8DvHX+ZpcaXXC9/OfB5ByHkhcwYr868yr36bW5VP0JtUwQ1hB+vkUSgQCtAobHQqorSdUCT9C5wLvoMufqX3K18vF4RSud6YcgotpGm0MhzPPg4T4a+g8iHXauxtnM9abVandbabpFkKuTtHLcCJfxeAAAgAElEQVSU1VQqtS/hDLZtu7buDpuHd6fKT6JPX7e38iR7uh0m3HwHuy1utqoOdaO/OrT73zs57rXWlEolstlsj8AYDAZZWFg4lImxf/Znf0Y8HueHP/xh52evvfYaFy5c4C/+4i8OcGRT+pgKelOm9DMo0WtUWq0WhUJhk79aKpUikUjw1Vdf0Wq1OHPmzERPQNfW1rh58yahUIgTJ04c9HAGcvv2bUqlEkePHiWR2L2pdvfqmtMi3R904caoQReOaNzvq7ZdoW+nk45h1Go18vl8TyViOBzuJNZO2R7OBK8/NMUR8nYq1K6oGh+sXOPvrr+FrXtFGq00ftNHyheh0lzC7jPzb+t6siP0OQLNIL6ZukjCG+PH99/D7mrnDZlxvNKkYe1ciDKEga23J8poDUrZaKU672oYPkLeOWz7HmxR7SaR/Nbcb3KpcJ9Lxas7Gve4ERiYxgwgaNlLjOrZNhwDvzmP1GughifStSto1MDzD8D357+JVTP42dUPN8Spfm+1daHv/JEznMykKagV3lv+eAyfpR8JMgF40EKiVBWlCuz0OJQyBUKiXHzf3DgeOcaLR07y0+V/Htjirux2q/J+CnkAT8Zf4Egwwielj6hZ9zcF3gzCEEF8RhywUaqCUu7ia9BM8mT8Fer2El+v/aznMeedpJyjbGuiRoaLkVcJljNUVuoD39tN5Ou/vrkJeZFIhEwmM9HzqEmmWq2SzWY7fneGYXTmqQddfa+U6glP6P4+6DwlpXQN5NiuaLxTtNadRXxH0AkGg2Qymen8aYf0V+IKITpz8VHmT1u17w5iUPruysoK4XB4kzBbLpd7qluhfV5bWFggHo9PhNC8U370ox+xsrJCPB7n008/5dVXX+WP/uiPDnpYU3qZCnpTpvQzbMIwDEcM6a9q6vdX++qrr6jX65w8eXKiL/K1Wo1r167h9/s5ffr0QQ9nIPfu3aNQKDA3N0cqldrxdtyEWKe9dNAE1/k9jyPoolvoG3UCOw6hb1D1mNMGOr1Z2j5unoPjrnpQSnHbLvIPN9/hk5VrfY+2q65injB+w6TeytOya0MvqMOEvpDh5/ePfoufZz/lTm2jrVAgiXiSCF2npXbY0jcibsEMcj1h1Qm6CJizaLWG0sMFLIALsXNkvMd4/da7m0TPg6It7KURwkvLyqIZLIIMQuLHa6aR2GBnGSYOugl5UkqMbj833a7PQmsiZoTvH/kmv7x2hbsr9zZtLx3O8MrpC3xW/oIba3fWfR77/f/2AOEFEQVMdGfhRKF1eT1ldbBobBhH0Lo2UMDq5ztHv4nPXOWTlfddHz8oIW/Gv8AzyYvcrvyabKtMfVDwyvqoPDKCKUOgNQKF0mWUck80dHgq8X38UvFF6Q33JwgPyKP4jRQXo6+w4D+Pj7YRfnclVvf1zVk0c8PxIHVuyB0cu4tptdPOqNVqZLPZju2DlLITyHbQQt5WOJVYbkLfIL9nt0os5/s4Pq/ThdEdIOL3+8lkMoRCoUMt5hwUbu3K4/YddEvfdb678Q//8A/84z/+YyfQ4vjx4xw7doxMJkMmk2F+fp5oNIppmszNzZHJZKa/+yn7xVTQmzKln1arNXLAgmMg3O+J5bSABAKBTSf0GzduUC6XOX78+ESXYDcaDa5evYrH4+HcuXMHPZyBLC0tkcvlmJmZYWZmZtuvr9frm1b+twq66BbvHKEBev3MxsVOhD6Px9NT8eAm9CmlOom13S3hiUSCRCLxSJs17xTLsigWixSLxc7Nhc/n63gO7sXkrq5bLLVW+LqyzDvLn3FlbbPQEvGECBleWmqVhl3umNwrvZ5vOeRK64QmCAS/Pf8SS/UVPiv1Vrb5ZICgEaJhu7cB7watdVsk0d1CXjtEwG1/emUcU/qwRmid9Agvvz33A/717q9Zro1WnbU/CEyZQMogSpWx1MqWrzBkFK+MInQVVIlhn12t79MeIc9oh12Mwkszz2A2Avzs6ocoNIYw+e7Z52maZd6+7y50wcZxhNwPoU+C8LW9+PCghYHWTWw7i7NvDOMoSq+glbuvYDdBT5g/OP4Kn6y8zUqrL1Fat8+nttoQFPZLyAubSV5Mv0Ddvsv1yhVamDTsPAIDjxHHEI5Xl27P+LUCLGxdRqvR2s6DZoLnU7/J1ZV/pmoXXJ8jjTli3tOcDD29LuSNtljpVGK53VgPwmm57K/qm5SWy0mlXq/3eAFLKUkmk7uqFp8UdlqJ1T1X6j6eRq3+cpKAnePV6/WSyWSIRCLTY3EHuLUr73cl7qD23f/0n/4Tb7755tDXRqNRTp8+zalTpzh16hQnT57k5MmTzM/PH/q/sSkTzVTQmzKln1EEve6LTr8YkkqlhhrejrtFdK+wLIsvvvgCKSUXLlw46OEMJJvN8uDBA1KpFHNzcyO9ZlDQhSPEDqqcdBPxtNZ7IuRtxSChb9iNkDN51VpTr9c7n8E0TZLJJPF4fDrp2AFu7WD77TmotaYsyuSaFb5YvcXbDy5zt9Z78x00/cQ8AarWgx6BzBH1RhH6XkxdwO8J8NMHH24INEJgSJOYN03LWkIzuOpmO59nO0JeNwITn5FCCrEu7A0/n39/9nt8lr/PtdUbux73uDFkBEPGadlLaL15vwq8+DxHkGp1y9ba3Qp53cQ8UX5j9iWWShUyMS9v3n+Hpmqut353Je12VS0PwjmGOuLxnp1LPSDjaOFBiABaN9uBJOvHe7vddKUnEMNvBHl17mmiPsk7uf/Wu7kDFPI8MsBL6ZfwyAqfrfwLUmawhA+JAG2jaaDUqusxsx2Oh5/maOAInxX/X5dHDbyeE5yJvkrKs0DaWMAUu7vpdoKY8vmNil+v19tTqTes5XI/ze8PC41Gg1wux+pq+/zg+LcOsxB5mOivxNqOT1//seSIxm6+g+MIEHlUcfOfCwQCzMzMTEwnU6vV4s033+TTTz/lxo0b3Lt3j6WlpaFVxg4+n48//uM/5s///M/3YaRTHkGmgt6UKf1YljWwdN+5ce+uwOn2xxtFDHFaRI8cOUI6nR7r2MeJ1prPP/8cgIsXL07sJGU7abyDgi6cye12gi6c1+63kLcVOxH69suj72Gj0Wh02uwdQqHQwOrc/aKqK5TsMlfLD/inu7/ifq3Y83jKF8MQLWqWe7VNN53jvUvoOxVa4GLiDP/1zr9j616xLObLIHWVlir1CDSj0hby7PX3arPThFWBbAt70oNlLcEQofGbqRfIVW0+zl/a1nvsDwKPkQEMWvb9zk99xjwGNqgc263IM3YoOgXNCE9nzpD0ewl6BEq3aNk+virluVwYnCDsCH3dIt+BCH0y2W7RtZfpFXoF7aq+MAgfs8EMz6SP4THrvJd9G1uXYT0EZn+FPAMpYggZXJ+xKx6PnWMxGOXT4r+hhEaLAJaqoNTqeovx7pGYPJ/+HVYbV7hf+3TTo0dC3+Gx8HMkzXnCYveptU6LXXeiejgc7pxLHbTWnZCg7bZculX1TdK1e9w0m01yuVzn+uSEeqVSqWkFPu5+xs73Qecm5xzkHKPdC/nTxdDt41bl6PP5yGQyExXAppTqLDR0F3w4Y7x79y7Xr1/n2rVrXL9+nevXr/fMCwESiQQ///nPJ+YzTXmomAp6U6b04ybo1Wq1nokRbN2WOYjl5WWWl5fJZDLMzs6Obdx7waVLl1BKcf78+YldyR0ljde27Y5ZcXfQheMbs9ugi0nGTXTyeDyYptlZuR7EKK27jyLVapV8Pk+5XO78LBqNkkqlJsrXqaIqFFWRz1bu8tb9z1lubBwDPsNLwhOmZi2jtgiScMOHlz9YeJVfF6/x5er1nrTUgBkhaAapN++g10UTQVuYQUhXoU8rja3sDbEcEFIipbGdcN4BCHxGCkMYWPbmlmSHi9HzRD3zvHXnPdQ2wzr2AyG8eIwZtG7iEb51UWqwSKmUbgeIrP9eBOxIdDKlh5fnniHjN7Eoc3n151iqt7ol5TvKY6HnuVep8culT0b3Jeyq6Nv4guHTv80i39bnYg8Ys6AKoKsDn/VY9DhPpY6xat3j89LHgAHCixBeNJ52KEtnaO02Vinl+nRarn+J9mdSZTQ2UoYBw/mp6+fp2iFdz9GgLdAV0A1M4ePbR75LtvYx2fo1kEls4aVpL6230u4eicm52MukvAkurfxXrL59FfFd5Jnkf0dKPoZ3l9V40L42O961zo1yKBQik8n0CHlb4dZy6fx7WMulm6/aYb/G9QcJwPj9xx5mukVj51iq1+tDhT54OI+lvaRWq7G8vNwJZZnEKkcn6CSbzfbcF4ZCIRYWFgiHwwNfVygUOiLf3bt3efXVV3nppZf2a+hTHi2mgt6UKf3Yto1lWR1/vFwu17ngwNZtmVuRz+e5f/8+yWSS+fn5cQ17T/jyyy8nPpF3WBqvU1HZfbPg9XpJp9MDwwnGGXRxUGitOyEt3aJTJBIhlUptqnjovgEaxcPI4/FsqnZ42CeuWmsqlQr5fL5zPnAqHpLJ5NA2+4Mmay1RsstcWV3m85UlPi3d7DyW9EbxSk3F2pmH3DPxsxwLz/Hj+7+gZtc71XwgCJkJTCFpNO+jBghPzl9T98W+Hcww/moHiQe/mUGpAkq7VzIFjCDfm/0u7z/4iq/Xbo19DDtFCh8eI4OBBt1CCBMw0KoEutzzXCc8pCPkiY0qx+3gNfx8a+4ZkgH4dOVfaaqtQzp8IsyTie+xXGvxs7sfDkyBHYV+r9IdCX0A6wnCqOXB4zb8fH/hRdbsW3y52l+Rtl6RZ298FiEExtD2b9H28EOCbjAsmGMUZgPHeDb5OJ/k/x8UGmXO0bILKFXe+sUjEDATPB57kaA0+XLlTRq6NyDDkBGeTf3PzPvO4ie26/cbJOTtZm417L12EsixU2+1g8KyrE6VozNnicVipNPpib4+TTKtVotsNtuzIBqJRAgEAj2i37BjqbsDovuYmtRF8r2m0WiQzWY7djeTlK7s4Nz/ZbPZntZsn8/HwsLCRImOU6YwFfSmTNmM06awE3+8UVhZWeHOnTtDK8omhcOQyFutVrl+/TqBQIBTp04BG+bP3YnDwWCQdDo90Kx4P4Mu9gpnElIoFDYl1m732N2N0Nd/EzQpk7Sd4LRp5/P5zmd3zgfDqjsnDa01RZ1npVWg2Grx1WqOt5cvs2bVMIVBwhtFUKdmF7feWB8Sye8ffYWq3eTtBx9i6e5WRAiaMTzrya22qq3/jaktpJnetN1x/g22gzP8WENCPJ6JP0XUM8u/3PmAuj24omuv8RqzGMKD0DVQK2yaFokwQobRGCgri7KqnWe0hTwDKbe33wJmiG/NP0XMZ/NR4a2dVXCKIE8lf5tfLn3NzbXb2379MDaJfFp3UmV7kRieBZSdA13bOIa60ncBnsk8wclYjHeW39wkQG5fyBs/z6VeJmTWuFL6KVomsYWHlrXEOKbIcd885yLPovQaX5beYrPfpORs/D9wOvISYb390Kl+3IS8YDBIJpPZ9zmGWyDHsJRL2PBWcxNnDmqO4JYIut9BAg8blmV1qhxHSVndbmIqtI8lN9H4YQ136a8cFUKQTCYnrl25Wq2yvLzcmUNDW5Sdn58nnU4/lL+bKYeeqaA3ZUo/9+/f5969dlvWdv3xRmFYRdmk8fXXX1OpVCY6kbc7jffo0aPkcrlNrZCHJehipyilKJVKFAqFzgTSMIxOYu04RadHRehTSrGyskKhUOisvj8s4SGWbpGzHmBjcqe2wldr9/kgf52yVSPmDaPUGo0dVP4EDB+/O/8yN8sP+FXxssvjUbzCQ61xqyPAOK21IDrCzLC5xLiEPoGJ35wBXcZW7iKmRPL9I99jpWHx9r0PsPexDddrzGIKY71FdPBNIWyITtJMIWQQZWWRorUtIU8guZh+nBOROKZR5ePiT9gqTGQUTkefw9QL/PTuJ1Ssta1fsAt6hD68SHMGu3mHQZ8jGUjz/YVn+LL8Idn63Z5jaRKEvDPRJzkenuNm+R1Wm0toc56mvTKWqjyJydOp7yP1GldXf9LzmBB+MsFnORF6lozvGAGVRojdnatt26ZYLFIoFDqtawcl5G3FTrzVDiKQw00cDYfDZDKZibJ+OEy4iaPRaJRMJrOjxXznWHI7ngaF73V7PvYfU4dhPtqP2z6dxBbwRqPB8vJyz/2DlJIjR44wOzs70fPVKY88U0FvypR+ms0m169fJ5lMbtsfbxRqtRrXrl3D7/dz+vTpsW573Ny6dYvV1VUWFhaIx+MHPRxXms0mV65c6fnZwxZ0MQi3mySPx9MRnfZzAvKwCH1u+9Tr9ZJMJonFYg/dpE4pxQN1h7JV5VY1R6lpk23UubZ2H1tXqNvDk1PdOBc5ztnYY7x+96dYWgHtUAZbKaQwiPnSaLWKrdcG7s926y5tgU+NJvT1i3ztUIXhYzVlCK+MjdSG+97SVW6Vx1tttnk8cbwyDCq/3qo5GDfRSRoSaaQQIoi2s8DwbSyGj3ExdZSIV3B17ReUWjtrvR6O5KnEd1B2mC+Ky3xV+moP3qMLEQEZBPsB0CX0AShNyBPh20efQYsSH+R+NnxTdLUr78MlwRQ+nk4+T9of4sbaL1lp3gEE2lygYd1HbyHujsJi+EkeC57k8+J/2fDIEx58xlFORV9i3n+KuFxAsvvqLsdMvvt8GggEyGQyhEKhXW9/PxkUyNFoNPZVnHHbpzvxHZyygVKKYrFIPp/v7NO9FEfdfPqc74PCXaA9F3Hz6pvEBUZnn+Zyuc7fxyRWjrp5TgohSKfTzM/PH5oujCmPNFNBb8qUfhxhYq9wBCjTNDl//vyevc84uHv3LsVikbm5OVKp1EEPpwdHeMnn82MJujhMQl6r1aJQKPR45fh8PlKp1J6I0LvBTejbqhXlIIQ+Z5+urKx0Jp9+v59UKjWwTfthQinFkn2bq5XPuFm+wrHQN7lfa/FR4QaCFuVteuz5hI//eOzb/Mu9D1iqbrxWCIEhJQFPhIARpGHdZTuX+r0S+jwyhscIY1tLaNyPzW+mXqDcNHjvwccjj3cUpAjgNdJIbFDlTZ54/dhKodyEvJ5jVCBkEoQfrWvtSj8g4U9zIfkYcZ9JwJRkG9e4VdlcTblXzPofYzH0BOWG4nZllUv5ywPaZXeCAGOuHXqhVjY9GjTDvDr/NB6jyvv5t4H164FqJziPMocVTuouAiFHE41HwWeE+EbqRYKG4vPSW1iOX6Hwo4w0jdbgSsNRCRhxnk1+l2z9Mx7U2gn2QvgxjRnORV/heOACQY6O5VznJpA4Ql4wGHyozqfdgRz9As12Ajmcfw+6zjlV47lcrmefzszMTFyV42HBCT3I5XKd39VBV44OCncZxaev/5gyDGPf/9a01pRKJbLZbM8+nZmZmSjB2a1yENpptPPz89Mq1ymHiamgN2VKP3st6Nm2zeXLlxFCcPHixT17n3GwtLRELpdjZmaGmZnd++eMA7egC4dBabwPQ9AFtL0B8/k8q6sbVVOhUIhUKnXobpJ2K/SNK0Wu2Wx2UoCdY+Kw7tNxUbBz3Kpd5WblCnHvKZbrig/zN9FYVK3lEYIONLbdDmb43fmXqdhNfrb8q/WWxY3flUAQ8aSQuk5T5Xc1Zjehz0lQdWOQ0Oc1k5jCj1J5lEsa6mJwgbORJ/inm+/QUju9Tkh8xhGkkAhs0DVQa2w15XET8kZpAz0SOs6zM+cJeyWl1lWulT7YVVjFuIh5MpyJvMKVlTy/zl3a3cZkCoRnPfm397OFzCgvzz1BwGzyXv7fex53KkcdhBDr1wRn8Yee68Ug+oU+J6BjFJ5IvMBcIMyvC//UMzZtzGHpBpadG21DA/DLKBcTr2DQ4IvS6+vjDWMaCTK+RR6PvEJCnh/LgskgIS+dThMKhR658+luAzmc61ytVqNQKHQEEr/f36lyfNT26ThwvHGz2WzndzHp+9TN89Fp552EVnCtNeVymeXl5c48zufzMTMzM1H7VGvdqRzsroYMh8MsLCwcusrhKVOYCnpTprgzrE1wt2ituXTpElprLly4MNEtfNlslgcPHpBKpZibmzvQsQwLurhz5w5KKc6dO9fjyfGwBF1Uq1Xy+TyVykZLYDQaJZVKPXSriPsl9DkpwE7SGrinAD/KKBRrqkSpVcAwItysZCk2K1StGl+UrvKgnuutrtK6LTr1CSRzwQzfPfIcbz/4mOXGZuHOI30EjShar2Kp7bf4DqM7NGE7Qp/PjOMxwqAb2CrbCVIAMKXJbx35AR9lb3K1dH3ksQhMfOYRJBbYeUZNPnXE0c52RhTyLiTPcSaRpmrf4au1j9qfTsZB+AHZFhH1ePf3Tkj7jnI89CKXCktcLny5vRfLBIgAqGJbGO3i8cR5TsZSaFHm/fy7bCXkjbJPO+KeBqWHH0vt7dJVFSo6wh9Ayj/H86mnubH2DqXmva7PlMQWflr2ElpvP5DEwSvDPJn4Fh5hcWnln0EYmMYsASPCyfBzpDxHiBunMMXuryFu1WOTLpAcJN3izKghCtA+loLBIOFwuCd5d7p/R8MRnbLZbGee7/V6yWQyh7YSX2tNq9VyreobpRW8+/uwCtFh9AdJeDweMpnMRHWMuIm40D5POcm1U6YcUqaC3pQpbgxb8RoHX3zxBZZlcfbs2V2n5u4lhUKBe/fuEY/HWVhY2Pf311pTqVS2DLq4cuUKzWaTM2fO4PP5Nol4h7Gt1kmszefz1Ovt9ishBPF4nFQqNVFmwvvBuIQ+y7IoFos94mg8HieZTE6Ur8skorUiay+Rb92nYVewlKauNPmGxbsPPqfYKHWe6/iOdf+t/ebsC/gMPx/kv2C5sbnqyCeDBMwwtp3D7hNnxv9Z6Anh0APEGUP68ZkJBArLut+Vkip4KvEEKe88/+32e0Or9Twygyl9CN1se+ONOLXpF/LkemvtoPOXV/qZCc1yIjLDbMjHrcqvyDbuDH4DEQQZAYx28IbaXSXYbkn7Fngs9Cz3Kw3ef/AZTaft1BUPGDProSEbx0rIjPLikceJ+zx8sfoRucZSz6t2KuRtRU/ibue4cn+uITy8dORbeFjhy9WfrQt+IIwkSgRoqTxK7fz4D5kpzsdewCsVn6+8iSlTHA+/QNo3R1hGiJqLeBhPyJUj5OXz+Z7qsXQ6TTgcPhTX2klCa02j0aBUKlEqlYb6qTn0V2E5/97LQI7DSKVSIZvNdkQn0zTJZDLEYrGHcj85Pn1uVX3DWsHdLE8G+fTV63Wy2Wxnfm4YBul0mkQiMVH7tFKpsLy83JlLQ/tzzs/Pk0qlJmqsU6bsgKmgN2WKG3st6F29epVGo8GpU6cmuhqoVCpx+/ZtIpEIx48f37f3dTw4crlcj5g1KOji2rVr1Go1Tpw4QSAQONT+eG7pqoZhdIIupga9vexE6HPw+/3EYjECgcCBh3EcNhq6Tta6w+3qJT7N/4SzsVdROsFyo8Evcpdo6sEtZd9KP03SF+PXpWvcKN/d9HjAiOCTfpQuYam9TUbtp33K6K3sRWuk9BEwM9h2AbtrTF7p5ftz36Nqwbv3P6WqNB4ZRwiNoP2FWtky4GJjAGArG6U2rj9SCqQ0elo4w54Yz86cJeyR+KTANMDWDR7Ub/CgdhPFNiu7hA9kElCdMImDwiv9XIi/itA+Gpam1LT5YPlzGva6yCWTgAlqufMaKSSvzr1AzKf4RV9bLeydkLcVTssuWiOE5JnUN8l4g3yS/2dsvXFzKbyLNO08ll3eaN9dF45HGaNAcDLyAjP+I9ja5lr5F2g0p8Mvshh4nJg4iZTjM853ktW7vcd8Ph+ZTGYq5O0Qt+oxj8dDOp0mGo32iDPdAs2jkpa6U2q1GtlstrOI54hO+x0cNknspBXcNM0eb75ardbZp0KIjn/1JAV01Ot1lpeXexZwDcPgyJEjzMzMPLK//ykPHVNBb8oUN1qt1sBJ0jj4+uuvqVQqPPbYY4TD4T17n91SLpe5ceMGwWCQkydP7vn77TTowtmfMzMzRCKRzoTiMAl5TuVYsVjsSaxNpVIPZbrqXqO1pl6vs7Kywurq6kh/z/0VfVuZlD+KOFWz+XyearWK1+clesRL3SiSa93jVvUSx4IvUrcNCo0q92urfF66RlNtvlF4MXWBWX+at+7/gpraLHj5ZBC/EURg0Txgkcnx5/PIGB4ZpNG8jV5P8DWNOF4jyrcyz2AgeevGz6hb1R5hBiGQQwIUtAa1hZAX8cZ5LnOOhN/AZpVLKz/bAy88E4w0IMFeYrdBDOPAxOTJ5G/QtHx8tWbzZeHznuCQC8lznE8e4ZfZf6XR53t4UEJeNwKDZ1LfYMYf5nLhxzR0mXYxnwb82EaSRvMOSg0RYfuCOJxjKmjEuRB/kZAnxddr71O27uITXs5Gv8OM7yxRcWKs5y+3EAGfz0c6nT60LYsHjXNOzWaznQVM0zQ7otOwfTookGOUtNTtBHIcRhqNBtlstmOrIaXszCUfps85TpxWcLeqvkH3+EIIV8uTg6wQbTabHYue7nFmMhnm5+cnSnScMmUMTAW9KVPc2GtB79atW6yurrK4uDjRvg21Wo1r167h8/k4c+bMnr2PW9CF1+sduoraHXRx9+7dnqAIwzA2CTPOquKk0Ww2O+mqzmd6lNJV9wLbtjtVjs5Np8fjIZlMEovFaLVam6r6ttO6+zDe/GyFWwu4lJJEItEjttd0nnzra+7VvuJ65RPCxhGOBp9jzWpRtRVNW9NQiqXaCvdqWcqtCv/9wre4Vyvwfv4z1/eWwiRkxjCApn3P9Tn7hSF8GCLUbsPVCkEV7BJKVdBaI7Xke3Pf4055lQ+Wfu26jR6hD1CqN3RBSoEhDRKBDOcSx4h5TEIeSUuXuFR6d58CLeS6P53Z/rczX1SrW6bw7s1wkiB8zJo+FkJPcbdc5cbqfV48cobb1UvcqX7d8/RJEPIM4eXJxHMcCUS4vPIv1O1Sz+PaOIKlW1j2RlbdWBgAACAASURBVAq006rb0wbuMreWmDyd/gFRb4KylSck/fiEn5CZJOE5hU+Ot43QEfK6F9umQt7u6fceG2f12E7SUt0COSZ17jSIVqtFNpvtiDlCCJLJ5NBF4SnDsW2bXC5HsVjsnI8Mw+jxpu7HqRB18+rbq7mT2zgBkskk8/PzU1uVKQ8rU0FvyhQ3LMsaybtkp9y9e5discjc3BypVGrP3me3NJtNrly5gmmanD9/fuzbHxZ0MegmwS2xttFoUCwWtzQCNk1z06r0QU1W3UIZwuFwJ5RheoO0fSzLolAoUCwWO8eAz+cjlUptac7sHEdToa8Xx0g6l8t19oXTAp5IJAb+7SilKKiv+Kr8Hl+V38MjE4CBRoIQxM1Zkr7j+GSafLNBzYKQ6eetpV9QbLoHNUhhEDGTaL2GpUquzxknpgjhM2MIbQMKgY3WDdANtG6BkEiZQIq2D6qwc0D7ZnnGN8sTiWf5t9sfU6jnXT36PNLDkfA8M8EEQdODVwp8psBnGPg8Bmut+1xf+zX2dttn9wzR67tn54FhPndjQCbXQy9WQFfI+E9wPLxI1AgQNGOUrSwNBXVbUbKaXFu5RqmxIZAdhJA3GzjO2ehJgobmcvEnNPoFUBFCGXGa1gO0Hi0pWeBDyggILydCj3Mu+gzKqmI0PJRzBq1m7zHi5qvm8/kwTXNb+6Lb/sIRgg57iMAk4NYGmkqlSCQSe3792EkgR3e7ZfcxNUmBHJZlkcvlehZH4/E46XT6kfMcHhduFbmhUIhMJkMgEOipEO2v6hvFp6//mNrpXNxJ187lcj3z/2g0ytGjRzt+21OmPKRMBb0pU9zYa0FvaWmJXC7HzMwMMzMze/Y+u8W2bS5fvoyUkgsXLoxlm6MGXbi9bpSgC8cIuN9TrdFoDGwZcIS+/q9xT6z72xUdYrGYqzfglNFwq3IMBAKk0+ldJyz2t6A8KkKf45HVXZFjmiapVGpb1SNK2RTUV1wtv8dXa++4PseQIaLmURZCrxDzHuPa2jL5Rp6WaqIRKK2xtebr8h0KzSI+GSRohmla99E7FLtMEcJrRNvtrM5pwTlMtGp73+kyemQPP4k04kgRQOh6O3UVeGXmVYp1m18ufQRAwpfmieRjRL0Sj9HiXvUahfo9aqoyeMtdQRydc93g7t19QoCMtgU+5Hrl3hj9Do052lGyJRaDxzgWmiNoSNaan1Fs9FY+Ou3KEi+ZwMt4zUWKLfiidJ18c38qOqXw8FTyBTK+ICuNG9yqfOzypCRK+LF0BdsubrFFA9OYQQgJ2sZv+Ih7Z7kQe5G0J41PpRFCdK51/QLNoPlLd3tctzDT3x43SMhz/NwmRcQ5bPSHCEgpO9VjB10F1+1H2388DZo7OcJxvzizn+2Wtm13OjyccUajUTKZzESHzk0yTkV+NpvtzHX8fj8zMzOEQqGRttHt09f9fdjcyemu6a8SNU0Ty7I2CbPOeSqbzfYIiMFgkIWFBSKR8YT/TJky4UwFvSlT3LBte+jq0m7J5XIsLS2RSqWYm5vbs/fZLVprPv/8cwAuXLiwK0FiWNBFOp0eOPHqF/F2GnShtabVarmGJww6d7mlfe1E6HOqnPL5fMfsWkrZSVedrh7vjHq9Tj6f72m3dqoc93pF9mEV+px25Xw+3xEFvF5vx8txpzdpStvk7a+4V/+Cyys/odXnddZNQCZ5IvHbaOB+/StWGncwpZcjgSfwyhkatqRiaYotm9vlZdZaRWwsRDtmtOurHUsBEtZDKtB6vdKuilYVxjHNEAhmgkc5HponbBr4TC/Q9v7TqkzIE0frOFLAvcpHfLHyAQLdlQTcHcbRThPW2mm/HDy+zjnwwIU+p3IvBBiABF1ti3xsc2FMJkH4wV7mVOQix0MzVJofstK8tOmpG76DqvNblEJiSImQgkzgFQx5gqplU1OastWgbFWpWzVqdpXV5vKmbe6Es7GnOBme5bPCG67HtZYplPBiqTxqSHKvEAEi3uOcCZ8jYGi8okXM+xhBI44pvZgqjmDrRZ+d+Kp1t8dBu4LMmQNNhbzd0+/n5rSBplKpAxfytsKZO203kMOtAmucgRxuVVnhcJhMJoPf7x/LezyK9CfCejyejj/1OH53SqmeufhWPn22bfM3f/M3XLlyhUwmw7Fjxzhx4gSLi4skEglmZmaIRqNA+1x19OjRiUvZnTJlj5kKelOmuLHXgl6xWOTu3bvEYjEWFxf37H3GweXLl7Ftm/Pnz+/If8QJuugu2TdNc0tPk3EJeVsxSOhzhDc3RhVm3LzcnM8ej8cnfiI/qVSrVfL5fE+F56RUOXa3M/XfAA1iEoQ+J5Sl28dyrzyyajrHg+YVvi5/zJ2qSyVTF8dDz5H2LZJv3uNG+QO6pwV+GeVI8AIxz2MYIojS0LRXsbXdkfI6X0LS0pqapajYmruVBzyo3sXWFnFfhoXQHFGPH58h8AqBAiytURpsrbE1GAIkAo8EKcCQAp+QeAxFqXmNB9XPetJlhQwiRQJll1FWgYTvJPOhb1Cymlxa+XCoqOnQ1vl6fdUOhdAn/O1W2Y4H37oPn7ZBZdkctuEFYwbUCuej51kIJMjX36Zq3dy06a2EvEGYMohPJvEaEbwyhcc4RsWCQrPJzcodio376G34E6b9R3k2+QT3qx+SrX+9+QkiiJIJWiqPUlUEBrOBUwTMMFobIL0EjSg+aeKVgrBUePVNpGgQ872E3ziN1OmRxzMKg4S+YfOdRyFAYa9oNptks9nOopOziJlKpQ69n5vTDeF2vRslkGOnvmpubaDBYJBMJjNtrdwF/YmwhmGQyWS2DGYZF/3CsfO9UqnwJ3/yJ0Pn5JFIhBMnTnDu3DlOnTrFyZMnOXXqFPPz8xN3nnLOBY4IOWXKGJgKelOmuOGsIO0Vq6ur3Lp1i3A4zGOPPbZn7zMOrly5QrPZ5MyZM9sSS9yCLhw/s2Ete/0inlIKIUTn+fu16tbdfjJqBVZ3ulez2aRSqXRuvJ0qp2g0OnETjMOA1ppyuUw+n+8YiAshiMfjpFKpia9y3IlvUbeh9F7dSLdarY7v4LjblbdC0WTFvkWucZMHjevcKn/UI4h1E/Uc4Wz0FQrNu1xf+8WALQo8RhxT+JC6hVaDKrAkad9p0v7zIEwqrTtka19QV+7efTtBaYWy2+cxaYQxjDiGMBAqixSa07Hfo6l8XCp9xmpz+wm+6wV9PVYEIwl9XSKfaCud+1zRZ4KRADyABjsLRpq4J8GZyCxxU/Kg+mMaXUERDgOFPGMjCXgnSLwk/E8S9p6haQs0GkOAIQRKQ0tBU2lqtqZsW9yvLnMx8RQpr4+V5jVMAeb68y0NTa2o6RAChU968AkTv6HxyxaN5oe07GXQCoRF01pCUUdgkgn9R2K+V/Do3VXDbwentW55ebkz55FS4vF4tpwHjauC/WGk1Wp1/NwcHCFv0q9V42CngRxuwrGz8Ol0OmSz2c52/H4/mUxmz69VDzP9ovMkpgFfuXKF119/natXr3Lnzh3u3bs30j1aIBDgzJkz/OVf/iXPP//8Pox0OG+88QZ/9Vd/xZ//+Z/zR3/0RwOf96Mf/Yjbt28TiURYW1vj4sWLQ5+/V9uYcmiYCnpTprix14JetVrl+vXrBAIBTp06tWfvMw6uXbtGrVbj5MmTI61+OmEP3RPZUChEOp0mHA6PHHShtR57Nd442El4gmmaBAKBTcLMJH2uSWVQu7ITynDYqxwOSuhrNpvk8/meQBrn7/QgqhyUUtREjmLrFsXmEl+svk3dXtn0vKRnkVPRF/ly9eestgb7o0nhw2ckkbqBVpvFob2iW8gDQIAhjfXfjUQaSaTwg66DKvBY+NsYcp5f5n5Ka4iP3qhsEvrYOJ8O4mCEPj8+zyIXYudIeEwsdYsHtQ+cEbW/hAQ02l5pVzmOWcjbDhHvaTK+MwSMAD7pp1z/OQ37PooG7b2u2pWUwo+WIZSy1sNbigxrO5YixEz4fyDmfQlTn97XBau1tTVyuVznvGqaZidhdSOBeWcBCm5C36NQke4sZHb7ucZisaG2Io8SSinXAIWtjifDMGi1Wp3FYY/HQyaTmbaB7wK3EBGnDXyS5lVu41RKYds25XKZmzdvcu3aNa5fv861a9d6LFgc/uAP/oC//du/3e+hd3jttdeIRCIsLi7yn//zf+aHP/zhQHHtr//6rwH44Q9/2PnZn/3Zn7G4uMhf/MVfjPR+49jGlEPFVNCbMsUNpzprr2g0Gly9ehWv18vZs2f37H3GwY0bNyiXyxw/fnygwaxTPZXL5Trl+rAxkQ0EAgNf1x92AeNvq91rarXappAPJ/1tWCtTvyAzFfo2UEp1vNz625X3IwnwoNkroa/RaJDL5XomvZFIpJOuPCnUdZ57jUt8uvIWq637mx5/PPY9fDLEzcqnFJu3Bm5nQ9iro1Vuz8Y7XMjbjBABpIyCMBFIzkde4X4tz5elD/dkfLsT+toty+3TktixiGaKAMdjL5LyRglJG4Nl7pbfGFiV2a7I021/PhEADISU62NxBuGkmvSlm2gbVAmoDfhwQRDh9f+xQLfaXzgLeV7C3lPMB5/EZ3hpNS9TaX1Cu1XYBt0Atb5t4UPLBAoLy15FbRkOYpIK/CZh39MEzScw9OwWzx8fowp5o2xn0Plp0DHlGN73X/MmKSl1p1iWRT6f76l0doK+DtoG4jCwk0AOwzBc28G3m+T8qKGU2tQ9M4khIkopCoUC+Xy+x6sxFotx9OhR1/mK1pp8Ps+1a9c6Il+pVOK1114bW7Dfbrh9+zY/+MEPBgp67777Lq+99hrvv/9+T0uu87q33nprS5umcWxjyqFjrCe8yZHzp0yZcJyV6r306RsXzljdPFG6kzAdA10pZae1ZK+DLg6SQS2gsViMZDLZmcT3r0g7X92+fd045uT9nmr7mRp3kNi23WkBHWcow2FDSonf799k7j1M6HO+uoVloJMS12q1eiqPJ8V30A2/SHHS/20WZp/mfvMSl1d/SrZ+tfP45dK/AXAy/A1OhJ6hqta4Uf4VdbvUsx2lG9Ss+0jhx2scxUCg7SXYYTpuP0qpTanbTtjFMLSuYduO2CS5VHqTuO8E353/H8nV7vHFygfYerBn0HZZ1+LW/3660kzX/9Mt9NHXxtt+kura1kYln+hJ4N38vl4Z5snE80R9CUyqLK29TqmapbT5qRtjWm+ttTs3catIUW4LP07eyZYY66JdZv3fTvKIan+tV0iCBmGsP8cDIkDCe5oj/lMIdY21yv9CDcv1TbVMo4QHW1WxrVtDBybwEgt8k4jnWUKeJzD0sfa+26dla+d6lc1me4S87aZWO3Sn5fa/T78nrXOOsm2barXak/AOvcJMtzhzGIQZJ2G1WCx2RIdIJEI6nZ4GM2yD/uOpVqv1HKtSSoLBIFLKzvFl2za1Wq0z/+rfVv8x9agvlmqtO37WztwqFAoxMzMzUceqm0citMe6sLBAOBwe+FohBOl0mnQ6zTe/+c39GO5YeeONN1hcXNzkr+cIcG+88QZ/+qd/uufbmPJoMxX0pjw07PVF3xHJnBvBSZ5kuAl6jujSXz3l+G4Maq3pr8Q7jBV5SqlOC6hTLeWImG4hH1JKAoHAptVER+jr/7Isa6DQ1y/yHZabnlFw83Lz+/1DW7UfRUYV+vpFPrfKPuemaZLN7r0iynHfSxzNPEXBukHFKlK1V1izCtyvXeF6+X0ADLyci72K34jQUg2+XH2HptoQNpWuU7eWAIHXSGAI366q9pRS2MruCDJCCKQhkWIn+06hVJFCrUih9jF+c4FvH/k9GlaF5XqOG+XPsfXeVIzvSOhzvPp0/7Y2hL60f5HzifOEDMHt6k8oN5bYHITRi9agbBtbbzxv5621Nui19tdW6Pa1LR14nln/Y1jNjyhX3hj8fJnEFj5aVg6Nu+gqRYC4/2UC5im8xiJ+4zhCzWz8be3T6ay7et5ZdNuNkLcV3Wm53RX9w5JSBwkzUkrXiuNJWNxywr66q4dCoRCZTGaiKp0PG/1pwIP83PoDOfqPp3q93jneuxmUvDtJ17xx4+aT6ff7mZmZIRQKHfDoNnDOVcvLyz3zFZ/Px8LCwiOxoPvuu+8ODMuIRqO8/vrrW4px49jGlEebqaA35aFCCDG0HWm32zYMA9u2sW17ovwq+ukW9Bzfre7VaCcJMxaLTXzQxW4Yd2LtIKFvWAqh2yTV7abnMAl9jUaj4+XmEAqFSKVSBIPBQ/EZJoFuoa+7etRBCIHf7+9UOAwT+iYx1dIkyIx5oWemoeJNKipHtnGdW5Vfc6n0k/VHJE8nfhetNZdX/52W6q4I0jTtQvtZwodHziGFgUS1vfb0cO/U8Qp5ru9A3brFZ4X/FWmkCMpZvn3kN2nZNlfWrpCt3RjT+wxnu0KfxEPUN8t8cIFZfwIlCjyovsWyXUCr+kZFH+sVfWKjom+8Qt72CJgLzAefJmT4qNbfZrX85pBn+1FGipZdQGl3ITjkuUAq8DuEPM8g9Wzv+Wsf/3y01lQqFbLZbOeaYRhGp7V2v/+Wu4W+7gobN2HGufYNEmYOsgJLKdUR8pxFzmnC6u5ptVpks9nOPEAI0fFzc5tbCSHweDx4PJ5NopTbHMoJ5HB+7giGDlsFchxWKpUKy8vLnb8hr9dLJpMZe3L9bqlWqywvL/eI+qZpMj8/Tzqdnqix7iW3b9/mlVdecX0sFotx+/btfdnGlEebyVUkpkyZQBxBz7KsQyHorayssLy8kRq5m6CLw+SZ41SOraysbErr3QtDZsMwCAaDm24Ouiep3V+DbnqklJtEPqf1chL2vROe0j2xjkajpFKpiWr/OEy4BYgYhtGpHu2+OdlJRd+kCX1Se4mIeSL+eU74X6YUv81y4xrXKx/ySfGfkUieSvw+GsWNyieUmnd7Xq90g4btnNMkHiOKIX0YyJ62XM1GuureCXn9aJSdo2zn+Lx4DSFDLAaf42zseS6VrlBoLiPsLFtVvY0bARjCz9nE0yS8frwCPFIipJdy6y4r9c94UFtBWQWUExQBAyv62p9044H9EPI8MsF86EUiZgBl3WSt9r8xuP7RQBszKA22rmJbbjdDgmTgt4j5XiFoPI0g6Px433GEvFwu17k5NgyDVCo1kd6jw4QZp1q9vwpr0OJWt2g47gAqN0/XQCDQSVidsjPcAg/i8TjpdHrHacCD5lBu9ifOta7fjsLBCXjpv/ZN+hzWqb53PK134pO5HzQaDZaXl3tsQqSUzM7OcuTIkYk7X+0lbmEe3USj0S3FuHFsY8qUyVUkpkzZAXtZoQfDvekmAafKp1gsAnRu8HcTdCGlnKjJxDDcKseCwSCpVIpQKLTvn2PQJLW7RXfUNqZBrbt7jXOzmc/nOz5Kju/gMM/FKcPp9rJ0bkq2ChAZZ+vuJAh9AoO48Rjx4GOcCn6LsnrASuseq60cd2tfkPEd43T4BeqqQqmZ5UHtKi3dXbmnaNkrG5EIRgpT+FDWEra18by9F/I2o3Udbde5Vf4xAKcir3Ih+hR3axW+rtxA6BaoHHtpyOaRIc7FniTpDeAVTe5X/xv5ag2MWcAGu4ATKCEAw5RtYRR6KvrQGuW07bqMV2mFtjQIkOvVgR07BrEzjcwjU8wGnyZoBPBJE23nKdX+nhLu1ZhaxNEyiNY2SjexrPs4wqkpkwQ9Zwl4jmGICKaM4TeOY+qzB3rzqbWmWq2SzWYPhZA3CqZpYprmwAqs/vNU97WwvwJrp+corTWlUolsNtsR8vx+f0fIOyzzmUnD8R4sFAo9ISJ7GcwwqCtiWMCLZVlYltUT9gaTG8jRbDbJZrMdYWdQy/JB02q1OkKug+N/Nz8/P9FFDnuFc68xKHxwv7YxZcqj99c3ZcoucC5YkyboOeJAdwoetFsSTpw48dAHXTiVY90rhpOYAurgdtOjtR5Y0aeUchX6+hMIna9xtJy4JSsO8x2cMhpuVSMej6cTILKTCfx2hD4n3GXShD4DHzF5jJjvGPjgYvh3qKgsZStLXZVJehZ5Iv7b1FWFQuMmV1ffpWYXO6/XaGrNZZRS+MwkHm8GoVYQlBH7KOQN4sbaOwBEPAt8N/MyNdumqQPkGkXuVm+AysMuPffCZoZj4ZOETS9BQ2KKGvfKb/CgVQcRAhkHGQR7uDded+uu1gLbtjdV5LWvDW2hr53B0f5u9y2oiXVFbxShTxLkWOQ7RMwAqPusVv8LNeqDMm/XX5TExoel2hWGzrtGfS8T8z1HwDyLRy6AcrECOMDLm1OR5yySGIZBMpmcuJv4cbFVBVa/2DfsHDWo1VJKyerqKtlstrNI4tiLTFq74mHCLbk0HA6TyWQOrDJ/lICXfsFvq0CO/qq+vW4HdyodnQV4IUQnnG6S5ldOwm4+n+8pmIjH4xw9evSR7s6IxWJDH9+q+m5c25gyZXLOGFOmjIH9CsaYlKTbQUEXkUiEYrGIx+NxFfMehqALR3DqTusVQhCPx0kmk4euckwIMVDoG1bRNyiBcKdCn1vlmHOzmUgkDr0/zUHhGLIXCoXOgsBetoHD3gh9/f5XeyU+SDxE5DwR73zvAwYc8Z7iVPglVq0cN8ofcWXl31BqY5GlaRexWcU0wphiDiEkAolEILBQ9jL73fbqsNa6w6Xi33f+P+45znczL1JVHm5WHvCgfr8tguka6EqPyCeFyVzwDHFPHK8hMYXAI9rffYakad1hufY6JcuiJKJt8c5IAQpUGey7LiNyR+v2Mau6PPIMKZGyt7XWYLNH37aEPgQh7yKL4efxS4uVyv/JypBm2jYetJFBaYWliiidw5Bxkv7fJew5R8BzHg/H10e3PsAJuaQ5FXnOOdupxnlUz63DAqi6q666r32DWi27MQyjMxeYJHHkMOGWXDrp3oPdLdzd7CSQw60dfBzXve55uyOQxWIxMpnMjluW9wK3hF1oi7kLCwvTtnXoBFn0Vxc7lEqlgWEX49zGlCnTq9yUKdtgUlputwq6aDabFIvFTePsr8ZzJhOHKehikOCUSCRIJBIP3eS926/IzZh8kEefm9DneMv0CzOON2S/4LTbyrEpbfHfSQJ2/lYPOgl4N0LfoLa4/gqHvfxcHh1BN32IvOKM93s8vvAbLNevo0QDRRNbV1DaQgOrrRXuVb/A0k5VhoHXSGMIL5Im2s6yl22vW7HSuslK8SYARwJPcD7yBLlGmc9XPkEJPxHPImeiZ4maXgKGIld9m0rr37GsfkHSAGOmLeDpFqg1sEts97ONKuR14xbGMUjok/gJeheIeRbxSC8BI4iwb1Na/RHOkSWEbL+XEO0UXiOJloH1jZkYRgSfTOD3nMAnZ/EZR/GIowgm96bHTchzKvIeRSFvKwado/pbLSuVCvV6fZPVitMems/nexa4us9Xk+6pdlA4vq7dlY6HvWV5K99HN/F4WDu4UyXaX9U37G/Zqc7vFsgOutLRDbffP7SPASe5dsoG0Wi0x+ann8XFxX3ZxpRHm4frznfKI89+VegdlKBXq9XI5XKb0kX7xYHucQ4KugAOlT/eIMHJSax91ASnYUJfdzJcvzG5m7eMlLIjNkF7vzri8GE5PiaNVqtFPp/vMQ4PBoOk0+mJTQI+DEKfm09mpBbhePob+P1+hBDYrNBUD2jYS+hAmouR05StEnWlqSubml1jtZWnYpVQxtx67V4LbeeAvT+3G8JHwn+K1P/P3pvFyHGdZ/9PVe/7Ut1NchZZCyVZHCaBE/uDScX2l4SJacU25EkiykFsZxzRdC5CI4B1pzAAoRtHQmLpJg4URHJixOFFmAS2ZekfIRbwgTRs2UgQaWTJotamKHGqqnumZ+m96n8xPqWq6lO9TFdPV3e/P2Bgs9VTrC6erjrnOe/7PMGDCIs+BEVxN7EXgI4yEpEQ3p/8AzS0FiKiDrX+PDaaRVzbfAWCGIYg5iEIPkDbgiAEASG4W8nXvo69Vh7ahTwBu+Ohm5DXCwGA35fCXPT/IOaLICACgl5HrfEithvfg4Y6tnUdur4r4jHRT9c1QCwgGb0T0cDt0FthtJo++H1JiEhC0KMQEUYAAQR8AU9+lxh2o3sS8oaDtUey55jZezCTySAUChn3pF4bXGZPNfM9atyeauOCeTDLsmzYbHg1YdVNWGfEXgI5zDYv7Fh24TgQCBiCPhPIIpEICoWC5yod7Qm7wO58cG5uDpIkTe0YGIZjx47hxRdf5P63SqWCY8eO7csxiNmGBD2CGIBxeOixSZaiKBYhplvQhVnQY+c6qUEXPGEkHA5DkqSpnmTuFXObiNlk1y70VatV7OzsQNM0i5gH7F7zd955B4qicCv6Zk08HQSe4BSPx7uG0ngdLwh9tVoNqqpa/GRYMIvZR0nXdYhIISykEPbf9otXq4j6XsZW8yVsNl5AQHsHUjCNUOx98IsFaPBDhw8+IQS/4IMAEYLQhq5X0Ww30dB11DUN1XYNSv0thH1JpIN5BEQfgoKAoCAC0KFBhw4Bmq7/osVUgChg9we77aU+QYAPNVTrP0W18f+hBZbLa4UtEzcBiGIKB4MfwM2xe9CCDw2tDbn2BsqNn0OHBui/WHyJmV/81u5ngCBC0FuAVnL4W0Yj5IV8eRyM/ipiYhh+VFDeuYgtSxttGII/s3uO0AFdg0+IIeDLIRb+NYR9ixC0PCrlMDZ2qka1zHtX5r1FNLvf8aplxvls4Al5zB+LhLy9Y6907BUi0suywimEijemAgFvi8fDsL29bQln8fv9yOfzM72p160d3DyX6ieQw3zMRCKBZDKJQCAAXdc9cX1rtRrW1tYs5+3z+XDw4EEUCgWa83Xh3nvvxcrKCiqViqU1dnV1FQBw1113Wd5fLBZRqVSwtLS052MQhB1hBImg4+tdIWYe9qAdFRsbGygWi0gkEnjf+943sr8H4AddmBcFvYIufvazn0HXdcNHj01Ow+HwRIgyvAV8sqfcfgAAIABJREFULBaDJEmerXCaBJyuazQaha7rlgmqE3ZfGRL6dq+roigWASuZTEKSJE+10+wH3YQ+J+zjiY0pNl7N1zWdTu85YVkQBLT1DbRQQlvbgoYWdL2Jlr6BWqsItfr/UG+/CwE++MUYRGFXGBIgwocIYqE70Gy8hlqLv5s+OOw+9oupkxCAIEQhihHs7rm2oGkV6Jq1uiga/BWEQ/8HO+0aGloDG823sdW4ipa2DUuVnuCHKCYgIIhd57rdtlgdu2Ieq4rbvTbibniFIEDQG4C2AXSkyorQhTggRiHAB1EIQArdjLg/hZDgQ1AANE3BRu3SLz6a+ItPp0OHBlEIIh3+dQRFCX4hjYCYgyimISIG6HE4YQ4MsrfFca+qSeizizOjfHawKnpWuSMIglGRN212EPsJTyAdJgm0l6caD6+Kx8Ngv64+nw+5XG4mux6Gxbxpur29jUql0nPz3ywe26v69mNMNRqNjq4fQRCQz+dx6NAhumdhV1RbXl7GV7/6VZw+fZr7nrNnzyKdTuP8+fPGaysrKzhy5Ajuv/9+y3tvv/12AMBzzz1nEe8GOQYxFbj6BSdBj5gqRi3obW1t4Y033kA0GsXNN988kr/DKeiCTV6ddvftibXvvvtuV08GpwX0OCemuq5jZ2cHqqpadgpnVRhxC6fryqtwMv8OT5ThBSYwvDimRs3Ozo6lelYQBOO6Tlowy6jhtTD1EvrMxGIxZLPZkfo4acIOGtpVNDUZjXYJbexARBCiEIIo+NHStiEIOtr6DnYaL6HReBmazsRxHwQxBkEIQRAC2BWzWtDaO9D1bQhC0Pjvv/jboOst7Apwv/g8ehO6XoeOJqD3WwkuIhK4HdHAEYi+BAABGkQ0NQ1VrQG5+jI2m29gt51Vh6a1oWmm1FpRhE8UYSnJE/wQhTgEIYSAmMDByFGEfSGI0CGiCRHtXalO38Fm9f+hqasQBD+C/hsQ9OWg6w3oehN+MYmALw9RiCLkm0PEfwSCXtjjv04n7Xa7YzyxljgnRtEOXqvVIMsyCXkuY7+u+9Gy7CT0dQtD4wnHXt7kqtfrkGXZ2CgZViAldnG6rolEwqhcH0Q8HtWYarfbRsKuWQfIZrOYm5vjzglnjXPnzqFYLOKFF14wNsCXlpawsLCABx98sCOo4rHHHsP6+jrS6TSef/553HnnnTh16lTHcVdWVrCxsYGLFy92/Ld+j0FMBSToEYQTTIQYFbVaDVeuXEEoFMKtt97q6rF5QRestbRbKIFdyDP743XzU+Nh34Her91CZsJbKpUsibWZTAbZbNZTyV+TBGvXVlXVaKUZ9rrupfqKZ0g+yUKfruvY3t6GoiiuXddZhgl9rLJhe3u7Z2WDN8TjJjSxjLa2jl3vPR2a3gD0JjQ00dJKaGoqthqrqLWuAnoDul6Dro9u04lHMnwMQf/taGoaGpq221YLwCf6ADEETdfR0ltoag1UmtewUX8NydAtyEeWkAgcQlgMotH8OQQI0PQW2voWGu3rEIUQAmIGPjGOgJhH0L+IABag6yEjLd3ezr9fmIU+8/2qH6HPfp/qtoC2V+ay+4AkSSTkDUG9XoeiKMZC2gsCKasS5aXuOsETZUKh0NhEM3tFFruu1Ao+HM1mE4qiYH19HUD/17VbIIcTewnkYGiaZiTXmu/NyWQS8/PznvP0I4gphgQ9gnBi1IJes9nEyy+/DJ/PhzvuuMOVY/YbdGFm2KCLQUUZZkRt/xnWPJqlfpVKJUtibTabRSaToQnmHtF13UgCZt+HUScB72VMjUM8HgZd17G5uQlVVQ3hmVWMTGPC8n7BE0hFUUQ6nUYsFrO0W+61dXeslcdoQsd1NLS30dbKaOnb0LQqNOyg0VbQ0tYhCiEIQgi+X/yvrrex3XgejdbbXY8d8BUAiGhrm9D0Tt8mXQcEPQZRTCDoP4iI/xYERAnhwAEE/QfhE/IQIECHBkFoA5qAtiBCFAIQ9XhHeuiks5cqUZ7FgKZpKJVKJOS5DE9wSqfTyOVynr2u3cITnGCijF3sG2XVIavIYrDrShtQe4elKZdKJeNe6cZ1NW9ymQW/bmOKBXL88Ic/xH//939jYWEBt9xyC2699VYsLi4a7dVmsTAajWJ+fr6j2owgiJFDgh5BdKOb99ewaJpmJBEtLS3teZHoFHTBvKGczPPN4h2rygNgVEMMu2jltS912y0URdFR6OtGq9VCuVxGuVw2KnGCwSCy2WzXakSiO0wg5bVrj8sTxzwx7WdMmcXjcXjK8HASSNl1JeF5b5jvg3aBtFtL3V5FGa8JfQx7yjRDEOpo6zKa2nW0NBlNbQOiGEZASMMnZuEXshDFLARdhIYqdOxWAGqood1qo1EX0GqJaLd8aDX9CIeSSCQSnhVGxglvQ6LXApoRCoWQSqUQjUbHWn01ydgrnIDJF5zMY8ou9jnBS0kNBoN7/s7yBKdkMol8Pk+WEEPAKt1UVTXmsIlEAvl8fqTtqmxM2cdVo9Ew1gT33XefJaUW2H3GFAoFzM/PY35+HjfccAN+9Vd/Fb/yK7+CeNzZu5QgiJFBgh5BdIM92EbFiy++CE3TcMcddwy8kDcLLuagC1aa7zRxdWqrdUvI64W9Qob9OLXF+Xw+rtDH/AEpsdZdeAJpKBSCJElIJpOevK6DisejqhLtBk8gDQQCyGazZBo+BKzS0Rz440Zl7rQJfXvBngLKgpTIy21vsAX09vY21tfX+xL47EFUo66+mmRarZZhNcLmBKlUCrlcbmoFJ7M/rV3oc5q7mudU5rHl8/m49ypWQaqqqrFZEI/Hkc/nyYt4CNjmnrnSLRqNolAojDXF3myv84//+I/4j//4D8iy3NfvHjp0CLfccotRzfeJT3yCRD6CGD0k6BFEN5rN5kh9e15++WU0m03cdtttfU84W60WSqUSSqWSpXIql8t1XcCOW8jrhq7rjkJfP9c/FAohk8kgmUzSQmePNJtNqKpqEUgjkQgkSXJs1/Y6g4rH9ipRttgZRuhrt9uGkGeuIGV+lpN4Xb0A88pUFMUQRvajgpTXvtSP7yNPlPHqvz1rWbYLeeSNNRyNRgOyLFtSwVklPUsFt48tJ1j1FQl9/Mqx/ahw8jJ2z2PzvcpprWZ+/rHW8FqthlKpZMzDotEo8vk8+aMNAasml2XZ+I6HQiEUCoWRhjTtBeY/uba2hmvXruHtt9/GtWvXoCgK3n77bRSLxa4etceOHcMTTzyxfydMELMJCXoE0Y1RC3pXrlxBrVbDzTff3HOCxPxgzLvP4XAYuVyuqzDQLegCgKcmD3Z0XUer1UKtVsPm5ia2trZ6GtybTX77NSOfZer1OlRV5fouRiIRT4+PvWJPHhxU6OtV0cD+jnK5bFkMUQXp8LCqBkVRDBGNbWiMs8V+0oU+ll5tF/JGnQI6C9i93ID+WkDt6eD2ljgeZqHPXn01bbAqffM9lirHusPmVLx7Vbe5riAIiEQiiMVinrCumFR2dnawtrZm+Lv6/X7k83nPbe4xn0TzBi8ASJKEubk5owCh0WjgzTffxJUrV/Dqq6/itddew5UrV/D666+j0Wjg7rvvxte+9rVxfQwuxWIRJ06c6Pqer371qzh9+nTX9ywvL2N1dRXJZBKpVMq4v99zzz24//77XTtfgugDEvQIohutVqungDQMr7/+Ora3t/G+970PiUSC+x62yDLv6sfjceRyOcfdvGGDLrwCq8KxtxWnUikkEgmup5oT09YONyw7OztQVRVbW1vGa8lkEpIkzexiyLzQ6adKlNe65PP5sLGxYRHeo9EoJEny3O77JOHUstxrQ2PceF3oY0KeLMuWEBES8oaHJ+S50QLKhD6eT183oY83piaxdZq1gJZKJWN+FovFkM/nx9qqOMkwoW99fR3r6+tdk1EZ9jAqc0qqV+/H46Jer2Ntbc2YbzHf3Ewm46nNZl57NbB735qfn+/7+9Vut7GxsYFsNjuqU90zTz31FB5++GFDiDOzsbGBSqWCZ555pudxlpeXUalUUCwWkUwmcfToUZw+fRrHjx8f1akThBOu3nAnb1ZAEGOGTabtoqHZF4pVSwiCYCwGnASXbkEXkyTksTZFe1sx8xszLzLNQqi9osFuSN5oNIwkQWAy01GHgSWAqqpqGVfpdBrZbHZqfYb6xe/3w+/3IxaLGa+ZKxrsY6vdbmNnZ8e4lrzjJZO74QGhUGgqx9SoYYbh5ntBMBhELpfzrKejGVEUEYlEOhZC9s0INrbMbXLmexXgrtDnlAZMQt7w8EIZ3PRyM3uA2p9/Tm2WrVYLrVar4141qJ/aOGGivqIoxpwpEomgUChQC+iQ2EV9c+WY3aOW/X/zBpgd3n1qFjslms0mZFm2JC0zn2sv3WN1XTe+W2YxNxaLYWFhYWAfPOZj60Wef/55XLx4kZvG+9BDD+Guu+7q6zgLCwt49NFH3T49ghg7JOgRU8eoJ7Tsgc4eoMMGXZhba9n5j9sfbxCYP2C5XDbESOY3lkwme04GzQsdM7zUQfvi2ek4+xWaMEqcKh3J4L43giAgEAh0fPeY0Le5uYn19XXuosbsdwmQ79UgtNttQ8gzh7PkcrmpaFnuV+hjC+heQh8vzdKpetsu5LkRIkKMXsjrBdugCgaDjkKfXZhx2pRgQp9dmBmH0McTG8LhMPL5PFU9D0m1WoUsy9je3gaw+++ey+UsPqRso8sumvLCqNi9ireBCsAYn/Z71rQJfTxfRy8mLTM/v7W1NUtITygUwvz8PNLp9NR9v9LpNFfMu3z5MgBgaWlpv0+JIDwFtdwSU0e73e6r9WCvXL9+HbIsG7t1ZuP8QCBglORPYtDFINTrdZRKJWxsbOxrIANv8dwtHdXJS82rgpimadjY2ICqqha/MV6lIzEY1WoViqJYWpZTqRSy2SxEUeRW9PXje2X+mbZFTj/wfLGYV+ikhrO4QTehzwl7dQyrdnQzDZjgBwolk0nkcjlPhzLY/dTM9ywnm4FRBAd1Oz+7X2YoFEI+n5/pe4Eb1Ot1yLJsCG6iKEKSJOP5NQy8hHAm8DkxLWnO7B6rKIrxHfJqQIvdzw/YnYvMzc0hl8vN3PdrZWUFjz/+eN/vP3v2LFXoEV6BWm4Johv79UBTVdX4/9MedGGG5+OWSCSQzWb3pYXGqUqmWzpqtVq1TIAAa9uSvZphHPCqm4LBILLZ7FiDAyYdXnAAa1m2V9DaK3Ls7XDmhQ5rh2NVEgx7wMu0VjMA/OrcSCTS1St0lhimoo9HKBRCPB5HMBhEq9WaKEsGrzCpQh7DXH1sbqnrZjOgaRr3GciEPrsosxehj1mOyLJsiEDBYBD5fH4qqnPHid3XcRQtoN3uVXbvR7PVQLPZ7HgGss0ue1Wf1zZRmfgsy7KxIRyNRlEoFDzn62gXc4Hdf7MDBw7g4MGDUzm/6MW5c+d6hmDwuHz5MlZXVwHshm0sLS3h1KlTbp8eQewrVKFHTB2apnWtgNgrsx50sbW1BVVVjUUB8wfMZrOeXQjpuu4o9DlVM+x35VWz2USpVML6+jolq7oIG7OKoqBWqwFwr2XZKcmyW8DLNCU5szFrDhGJxWJGiAixN3g+pN0w+4n207o7y7RaLaiqahmzXq3CcRMm9PHaLLslhPMqr3g+tew+K8uycf8LBALI5/MT4ZfpZVhqablcNl7zSguo+RlofxY6rSt5LeFM6NvPccJrWQ2FQigUCp7biOJZAgiCgFwuh7m5Oc+JpPtFsVjEV77yFVy8eHGg31teXsaXvvQlnDx50vLasWPHKOWW2G8o5ZYgusEmGm4dyx50wYhEIrjlllscf88p6GKS2mo1TTN83Ng1nQYfN17bUq8WS7cFmUajAVVVLS3LTBSJRqMTM0a8Bs97cL/aFLsFvDgxSUnOvOqmeDxujFlib5ifM+Yxy+wbeOOqW+suCX3v4STkdQuqmgXsm13m8eUk9Jl9aoPBoHGvZfc3v99veLnN2jhzE56XWzKZRD6f93wIVjfvx14t4W5UivbC3rLqVfFZ0zSoqgpVVS1z0nQ6jfn5+Zm+dwG7rbN33nnnwJV1xWIRi4uLltcuXLiAc+fO4eLFi+TFR+wnJOgRRDfcEPTMyWxmISubzSIWi+HNN99EOBzG4cOHO/7uaQi6YO2f5XLZklgrSRJSqdTEeaT0i1OLZbfKq0EFmWq1ClVVLa0TiUQCkiR5rs1jknDyHpQkyWIWPq5z41X0TYrQZ2/5AkgUcQOekDfImOUZ3HfzE7UnhJtFv0l5NvULT8iLx+PI5/M0ZnvAq+jrJvQBu+M2EokgHA4b42tak+dHhaZpKJVKUFXVEL+mZcz2agnnYReQhxlXtVoNsiwbVjEsSCSTyXhqjOq6bvj5mb9v8XgcCwsLVAEPoFKp4EMf+hCeeeaZDnFuL6yurmJ5eRmnTp3C+fPnXThDgugL8tAjiG4M83BmnlDdgi7YItz8sJ2WoAte+2coFDISayflc+yVbomDTpVXvGQ43sKZCU7mSs90Ou3pluVJgBlam9sUA4EAcrlcXynL+4EoigiHwx2Lsm5Jzv2Mq1EvnOv1ulFFykgmk5AkaeIXmONkWCGP4fP5HP1EnYQ+3gbFNAl95pRqs5CXy+Vow6RPnBJSWWstszAAdu9tmqYZ6eG9noOTOq5GCU/E8aqX217pljzfrVK0VqtZxhs7Vr8VyM1mE7IsW/wHWZCIlzam2TNhbW3NUnkdDoexsLCAVCo1xrPzFhcuXACAPYl5lUqlIy2X/blYLA5/cgQxJkjQI6YSQRAcWyd5sIWreTffKeiCTQJardbUBF3UajUjsZYRjUYNT6xJ+RyjwrxTbKabINOtso8JhtFoFKIoQtf1mb/Gg8KSVcvlsrEImjTxuZvQN0hogttCX61Wg6IolsV5KpWCJEkkPg8Ba1E0V36Poop0FoU+1qZoDmiJxWLI5/NTI4qMC3t1E+tWYKIIE2TsY8tpXAHgtlh6cVyNEnY/kGXZEHHC4TDy+fzMzLsEQTAEZHv1mblS1Dy2uo0rNqYCgQDq9bolsCOTySCXy3nOKmZ7extra2sW4TIQCGBubg6SJM3EOBiEy5cv7+n3lpeXsbq6iueee65D1COIScdbdzWC2Gd4QRes/dFpQsUq7tiOmtlHbdKCLnZ2dlAqlSyJtclkEtlslhZBfeAkyLAqkfX1dW6bEvPPY0nJzEPG/uO1iacXcEpWlSQJ8Xh8Yr5/3eiW5DyoIOM0rnjXqVqtQlEU437Agm8kSfK8d5OXcRLy2IbRflWRjkroY2LMOAQZJuyXSiUS8lzGnqzplK7q8/kQjUY7Kvp448q+MWHeNAA6rQbYuPJCpbVb8IJEKBG4E6dKUfu4Mqfussp2O4FAwOhAMY+xcY4ru1AO7H6XDh48iEKhMFVj3k1eeOGFPQtyvKo+Vpl35MiRoc6LIMYJrRaJqaRbhR4v6IItXLt5Qpn98Xw+H1qtFt566y0A1mRU5iHj1Uko+/yqqho7goIgGO2ftHDfO7yUykAggGw2i3Q6DV3Xuf587XYb1WrVMGpmsFQ4+4+XWkX2C14gw6yFiHQTZOyL5lqt5tiyZE+xBIDNzU1LgnU6nYYkSWNPU5xkeEIes3DwUnDAJAp9TkJeLpejgJYhaTQakGXZ2OgUBAGZTAaSJA20yeQ0rswVyObx5WQ1AMCxxdKLc6xu2KuxmD2EvROEcIY3rnhtyz6fD4IgoNVqodlsotlsWsQzYPf686qQRznH4nnSCoKAfD6PQ4cO0UZuDyqVSs9222KxiEqlYgm5OHbsGM6cOdMhBl66dAkAcObMGfdPliD2CQrFIKaSZrPZYbTLC7pg6ZfZbNZx4cpLq93e3kalUjEmpE7fIy8Z2/NCA3w+HzKZDDKZDE0ihoBXNdZv+6fdQ6Yfs2izgGz+mbTFTT/wfNwoRKQ/nMZVL3P7aDSKSCRiEZBpsdk/uq4b91ovC3l7ZdgwjmFawllgkzk4IBqNIp/Pk5A3JM1mE4qiYH193XiNCXn7IezzLCycKq4Y9vR5Ns689iysVquQZdloAWWhDOMObJp02Aa1LMvGOAmHwygUCkYLLxtXvKo+J/x+P1foG2ae3G63oSiKxdoH2P2Ozc/Pk51FHxSLRZw4cQKLi4t45plnHN93++23A4ClvbZSqeCBBx7Agw8+aLzGAjEeeeQRnDx5cvQfgCDeg1JuCaIXrVbLWLSytLtSqWQJumCTKaeduH6DLroFJvDgLW7C4bBjG9ywsAWQ/fOzqjGaTO6dRqNhtNay8RGJRJDL5Yb2wDGnwtl/nO7b9sXNpFYxAPw04GQyiVwuRxPfIeBVjQHdq5pZpaj9vkWbAFaYkKcoirFpMksVOKMU+njPsWg0atxrib3Dq35mHQteqNjfS0q4+Vk4zhZLe9uyKIpGKMMkPpe9BK/asVAo9N22zObuvLE1yLMwGAx2nb+z4C5FUSybtMlkEvPz87QRMSAnTpzA8ePHuybSrqysYGNjAxcvXrS8XqlU8PDDDwOAsXFx5swZSyUfQewTJOgRRC9arRZ2dnY6gi6Y2NKtasqtoItugQk83PZR44lN4XAYkiSRT8uQ1Go1qKpq8V6Mx+NG++co0XXd4kFk/nHCS5WivWC+lqySgXzc3IH5NimKYiyAWIVyJpOBKIoDV4pSS/gusy7k9WIYoS8YDKLRaGBra8vimcmCA4i9wzY7zXOkSdo04VVe9SP08drC3b5n2dsqnfwHicGp1WpYW1uzVDvm83nXqp/Ncyy72Of0LHz99dfx9a9/HaIo4sYbb8RNN92Ew4cP49ChQ4jH45YK10gkgoWFBQpmIIjZhgQ9gujF22+/jXfffdf4cyKRMLx1eA989j0wi3hmIc/NBdmgbXD2RXM4HO46AeWJTbPmNTYqmEhs9mFJpVLIZrOO3ov7hRuVosMkow577tvb21AUxeLjlslkurbDE71hFXmqqhqir8/ngyRJhpDX6/d5laLdFjesJdw+vqZtIavrOtbX1y02BsFgsOemEbHLoEIfsCvImNvBx3XPmmR4icBsjjTu55gb2J+F5oo+pzWP2cbCfN8a9J7VarWMtkrGfrYtTzN2b8f9rnY0Pwvt4+s73/kOvvWtbzn+bjabxcLCAt7//vdjaWkJhw8fxi233IJMJjPy8yYIwpOQoEcQvSiXy3j99dcNY/d+gi7MHnn2ttr9wKm90mnRbG8pYQt3FvQB7O62d/v8RG9YZZOqqhMZGjBopeigyajDYA6oYWKTKIpG1Ri1dO4dno+b3+83fNyGXQDtpSV8WrwfmR+poiiG+ERCnjtommZYZLBnH9tUc9r08tLmhJfh+Q/OUiKwWeizCzK97lm9NieYSFoqlSzVjvl8nirLh8Quku41pGVUsA3Jb3/72/jf//1fvPHGG3jnnXe6etUyJEnCLbfcgl/7tV/D6dOnqeqYIGYHEvQIohcs3dHpYc8T8XRdH4uQ1w22aK7Vah3VMd2+u8FgEPF43Khk8Gp7pZfhVTZNk9hkThrspzrGzZZwntjEqsa6+VoSveGF37BAhlQqNXLxzKklvNs9yyt+V71gwUqqqpKQ5zLm0Cq2EA6Hw0ZrLRP0eOmo+xHGMckwDy9VVS3+gxQksgvvnjWIl1qr1cL29rbx3ng8jnw+TxupQ8IT973k7WjGXj3YarWMP5fLZbz22mt49dVX8dprrznaozz44IP4gz/4g/087b5YXl7G6uoqkskkUqmU0UZ+zz334P777+/7OI899hiKxSISiQQ2NzextLSEU6dOjeq0CcLrkKBHEL3QNI1bgdRv0IXXYbvB6+vrfe0C7mfV1aTDFpalUskYQ36/3+I1Ns0M2xLerVWJJ4jsp9g0zTiJTezajvt7zhbNtVqto2LUCa+EvPCubSgUQi6XIz/SIeFd23A4jFwuh3g83te1JaGPD+/akv9g/zh5qXUT+kRRNGxR7M/DaRpbo0TXdSNEgs07YrEYCoWC50TSdrsNWZYtXtXAbuXd3Nxch/DYbrfx9ttv48qVK7hy5Qpee+01XLlyBX6/H3/913+Nubm5/f4IPVleXkalUkGxWEQymcTRo0dx+vRpHD9+vO9jnDt3DgAsQRZnz57F4uLiQKIgQUwRJOgRRC9Ya4X5z24EXYybVquFcrmMcrlsTHSCwSCy2SxSqRQAjK3qatJpt9solUod19Yrgsg40XV94MAEc3tlIBBAvV5HpVIx3k+VTe7Aq74JhUKQJGkiru2g3o8ALIEJ5sWz25+VhLzRwWtbDoVCyOfzfQt5vZhVoY9VQMuybBFJzdWOxN7gXVufzwefz4dWq9U1QIgXxkGbqu/BLDjW1taMzdRwOIxCoeA5AVrTNJRKJUv7OrBbQTg/Pz9VLexnz57Fo48+uuffv3z5MlZWVvDcc89ZgkCKxSJOnDiBZ555BouLi26cKkFMEq7e+Gdv1U7MDPsZdDFqGo0GVFXFxsaGJbE3m812LCwjkUjHZKJb1VW1WjW84Rg+nw/hcHjiva76odlsGkIepQHzEQQBfr8ffr/fMrHu5qPWarWMViT7sUKhkNHqVa/Xx1J1NekwP6xSqWQR8iZNbDJXD5vRdZ1bGcNSLXmCn1tpzk4i6aRdWy/CgkTsQt4orq3P50M0Gu1oK+0m9PGqRtkYtY8vrwl9zCZClmVDEKFx6w7MS1eWZWN8BINB5PN549ran4fmseU01zJvqprH16wJfdvb21hbWzMS2O3X1ivw7l/Abgv7wsICEonEGM/Omzz11FNYXFzsSPVlIt5TTz2F06dPj+PUCGJqIEGPmEreffddrK+vIxgMGj/hcHjiJknVahWqqmJzc9N4LR6PQ5IkRCKRvj8Lb2Fjrrqye/S1221sb293iDG8FrhRVMbsB/V63RBJGZQGPBiCICAQCCAQCCAejxuv2/1k2HuZqF6r1YyJO8MtMWbaYVW6Zl+hSCSCXC43VdWkqfvuAAAgAElEQVQ3giAgHA53tFh1C3lhQp/5fgmgY0w5jS0nIc/NqrFZhVU2KYoydrGpH6HPLMgwH1v7PcsrQh+rbJJl2RC6qQLaPexiUyAQQC6X66jcd3oeMqGPd9/SNM1R6OM9EydtDtuLarUKWZaNuabf70cul0M6nfbU52SC7trammUzKRQKYX5+3nPn6yUuX77cIeYxkskkvv/975OgRxBDQoIeMXVomoZr164BgCXxFZiMlEWWmKWqquX8U6kUJEnqqGTZK92qrnim9mzR3Gw2sbW1ZTkW75p6rXqBwRNJKQ3YHVgl6fr6uvEaE6Cj0WjX9kqeGDMtLXBu0Gq1jEpSJuRFo1HkcrmZEqCZRxVP6ONV9JnvZWbMYysYDKLZbGJzc9O4toP6uBF8eEKeV6tv3Bb67GKf2/ctXtWYk9hEDI5dbPL5fIbYNMic0Sz02edaTmOLBbt1G1vm8TVpz0T7pp8oipAkCdls1lPzcWB3HbG2tmYRXf1+P+bm5pDL5Sbquu+Vy5cvY3V1FcBuq+wggRbFYtHRby+VSqFYLLp2ngQxq5CgR0wdoihicXERiqKgVqtZjGqd2gDtokE4HB7LLvvGxgZKpZIlVTWTySCTySAQCOzLebCFbjAYtLQPmMUYc0VftwWzV4I4eCKpIAiGSOq1xLRJo1arQVVVS0UeTyR1aq/sVnXl9bE1aprNpiGSsntZLBYzhDxiF1EUuXYD3dKcnUI5AoEAgsEgGo0Gtre3p3ZsjRInIW8Sq8a8JvTpuo6dnR3IsmyIDF6tbJpE6vU6ZFk2NpdGJTY5baoCMO5P9udiL6Fv3NWivWi1WlAUBeVyGcDueWcyGeRyOc+l29vHAbA7Fg4cOICDBw96TngcFVevXkWlUrFU0S0vL+Ott97qGWhhnhPySCaTJOgRhAuQoEdMJYVCAYVCwfBhqlar2NnZQbVaNcQoM72qg5ifXDgcdj2trN1uG6mqzJODpaqm02nPTHLMixFz+Xy3BTNv4sk8Y+wefaP4nKwVSVGUDpE0m83OZPiHm+zs7EBVVUvF5l4qSXtVXQ06tqYh5IXnmxmPx5HL5abKcHvU8IQ+lhJurnZkizOWkN5sNi2LkVlpgRsW5uOmKIrRmhYIBJDP5ydOyOvFOIQ+JuSxjSmfzwdJkmYigX3UNBoNKIpi2HAIgoBsNgtJkvZ9HtZN6DOLfP2MLfOY6mY5MEpY6JiqqsbzLJVKIZ/P79tmdb80m00oimLpNBAEAblcDocOHfLc+Y6aRx55pCO04tSpUzh37hzuuusuLC0tOf4u+y6RtyBBjJbJW+UQxACYfZgymYzxOvMtqdVqFqGPVRIA75mys3ROhlk0YAmLTOgbhGazaSTWmpM/Jy1V1akyxsmfz8kzxs12aJagqKqq8W/q8/mQzWaRyWQ8I5JOIqw6RFEUS7VjOp2GJEmuTnZ7ja1BQl54Y8uL48C+qAR2J8O5XI5awoeEFyRi9x/sNrb6FZFnMb3SScibxfbPfoU+Jsj0I/SJooidnR3LxpRXWxQnDXvVGABkMhnXn2duwIQ+N4JezOLeqHxrWVK4oijGPTcej6NQKLhmH+MWmqZBVVWL6AgA6XQa8/PzM/v85SXQHj16FABw4cIFnD9/3vF3U6lU12P3quAjCKI/SNAjZhJRFBGLxYwQBEa73TYEvp2dHWOSzSYiAIYSpKrVKv71X/8V//Vf/4UPf/jD+MhHPgJg1wsrm81OlV+TUxDHoKmo5iAOVtXnNOlk1Y5mU/tAIGCIpLTw2TvMr4m1sgPjq3bsFfLCE2N2dnY87alZr9ehKEpH23Iul/PcwmfSYNUh9iCRfD7f4T/oJMbY71tmr6te6ZWTXi3aDV4gw6wKeb0YROjrJiIDu9e40WigXC5PrI/auGGVuqVSyVI1lsvlJs6Go9vY4iWFO9lZAJ0WNOzPg7aF2xOXI5EICoWC56widF1HuVy2iI7ArvC4sLDQUSU5a1QqlY5QC/bnXu2y7H32oCrGxsaGY2AGQRD9M10zS4IYEp/Ph0Qi0eEd12q1uEJfv/58tVoNTz75JL7zne8YD7ZyuYy77rrLSKydBbqlwJknmKyqj008ewVx+P1+VKtVS3tiKDSeBMVpg1d548Vqx24hL8OIyOZFzSiEvlqtBkVRLBPeSV1Ueg2ekLfXIBGnseUkxjht/ExStWg3eHYG5OO2N3hiDM+/KxAIQNM0y5gzMy2BCaNG0zSj/ZPdF+LxOPL5/NRVYfl8Pscqdyb0mQW/bmnhThV95uci8yteW1szxmcwGEShUPDchjW7h62trVm6c8LhMBYWFqbOImAvLC8vY3V1Fc8999yehbdkMmnpOLDDqwAkCGIwSNAjiB4wESqVSlnKx/vx57t+/TqefPJJPPvss5YJQ6FQwBe+8AUIgoCdnR202+2R+PNNCk5BHIOGJQDvtWnGYjH4fD602+2Zva7DwGtb9vv9kCRp4JS/cdKviGwfXzwRmeehttcWpWq1CkVRjL9jVG3LswjPI48JeW5WWwwiIpsr+njVopMi9PGSVUnIcw+ej1s6nUYulzOqOwet6COhbxdeJVY0GkWhUJiZTVWGk9DXLS2cCX122NzN5/OhWq0a7/H7/cjn856s1GWio/m7EggEMDc3B0mSPHe+44QnuLHKvCNHjvT8/WPHjuHFF1/k/rdKpYJjx44Nd4IEQZCgRxB7pZs/309+8hM8/vjjePbZZ40FJQDcfPPN+NSnPoUPfehDEEURlUplJP5804JTWILdGBzY/ffQdR2apmF7e9tSdTUpi2UvoGma4TPGQlom0duxF/2kOdsFmV7hOf2kCzL/QTY+WcpfNpslIW9IWq0WSqVSh5DHWmv3i24islO16CBt4WzxvJ/wWu4nUeD3Kjwjfibk2e8L3drCefeuWRf6eInL4XAYhUJh5tsp7XRLC+e17pp/7AiCgM3NTTQaDcszcpz3ilqtBlmWLZt1Pp8PBw8eRKFQoPuYjWPHjuHMmTMd1XmXLl0CAJw5c8byerFYRKVSsQRl3HvvvVhZWelo3V1dXQUA3HXXXaM6fYKYGQRzy6BLuH5AgpgUrl+/jvvvvx8/+tGPLK9/9KMfxRe/+EUsLS0ZQRw8fz4nvOT1NS5YGIOqqhaxzpyq6rRYNouqZszX1ezPN0vXlcFrT6S25ffoVi3Kw55cydp7zKb2lLbsDjwhLxaLGa21XsepWrTRaMBpjrZfzwTWQifLsiEI+Xw+oyJvFu+VbtJqtYxq0lH5uHUT+njYhT52D5s0oY9XTRoMBpHP5+mZ5gLNZhOyLFvaKdmY5Ql8jEAgwPXpG+UmBS9sShAE5PN5HDp0iJ7BDlQqFTzwwAN48MEHDTFudXUVy8vLeOSRR3Dy5EnL+2+//XYA6GjRPXv2LNLptCVAY2VlBUeOHMH999+/D5+EIDyHqw8gEvQIwkW+9rWv4R/+4R8A7C64PvnJT+KLX/yi8ZCz068/nxP2SVE4HJ64SXcv2KRcVVXDj2qQqiZeVUytVuu6WHaztdLrNJtNlEolrK+vWwIDzMmfhDOsRYnnz+cEa9FkIvI0hiXsB0zIM5vaT5KQ14u9CH1u+T+SkDdaeIEMiUQC+Xx+30Jw3BD62L3La88Je0slBbW4B2/s2qtJeZXu7M9O2Dcp2DxsGKGv3W4bCcbme2Ymk8H8/DwFTvVBpVLBww8/DABGBfGZM2csVXiMlZUVbGxs4OLFix3/7bHHHsP6+jrS6TSef/553HnnnTh16tRoT54gvAsJegThVX72s5/ha1/7Gt7//vfjC1/4Ag4dOrSn4/Tjz+eEuQWQCQaT6M/H2mRUVbWEMWQyGWQymaEFkG6tlTx4rZXhcNiTi5l+aDQaUFXVEiTCxJBIJDKRn8kr8Fq8gPfawnlQW3j/8KqaYrEY8vn8THhh7WWxzNrLewl9TMhTFMXYQPH5fJAkCZlMhoS8IeFVQnstkGFQoU8URe4m2DiejdVqFWtra0brOonQ7sHsOFRVNcbCoCK0/d5lDuboVY1sH2Pdno26rhvBJ+Zxm0gksLCwMBUbPgRBTDQk6BHErMKSE1nbLvv/Tm1/ZibFn0/TNKyvr0NVVaPKaT+9mgZtrTRfV/tixovU63VDyGMkEomZSlseFU6JwEwMEQShayoqD2q3fw+ekBePxw0RetYZdJMCsCZXMs8rJgySkOceLFm1VCoZAsOkidBeFvrq9TrW1tYMbzRRFCFJErLZLI3dIWEbVLIsG3Myt8NE2L2Lt1HhtE5dXV3F3//93yMSieDGG2/ELbfcgltvvRUHDx7saFePRCJGci1BEIQHIEGPIAgrzFDd3rY7Sf58rVYL5XIZ5XLZOO9gMIhcLodkMjn2irFuyYI87BVXTEQdl4BarVahqqol0MHsP0jsHV5F3iAidLewhFG3Vk4CzWYTqqpifX2dhLw9MOgmBfBe8MIs2A6MErZBZU5WjUQiKBQKU1MlNE6hj5cKnM1mIUmS5zYrJw2eB2EoFDLCRPbjXmC3HTCPs29961v43ve+x/09FnSxuLiII0eO4OjRozh8+DBuuukm17wpCYIghoAEPYIgejMp/ny8xXokEoEkSYjH455fQA4axLGfQgwvSEQQBKTTaWSzWZrYDommaUZbOBNH3PRqcvJQ69VaOS3+j05CnpfaEycZtlg3p5+Kouh47xo00XmW0XXdEPJYVVM4HEY+n58Zb1L2bLSLfW4Ifa1Wy/BGY2QyGUiSRGnhLrCzs4O1tTWj7T4QCCCfz3ticxXY/X6pqop/+qd/wosvvog333wTsiz3/D2fz4cbbrgBhw8fxgc/+EH84R/+Ic2DCIIYByToEQSxd1hrw87Ozlj9+Xitn9Pi4cbEVHZd+2kfcVOI4QWJiKKIdDoNSZI82w48KfDawvezmtQN/0cvCzE8IS+RSCCXy5GQ5wI7OztQFMUQ+UVRRDabRTabhc/nGzjoxZ7o7PXxNUp41bqhUAj5fH4iNqj2A/MmmPk+1o/QFwgEUK/XOyrN3UwFnmXsrcte9iBsNBqQZRmVSgUAUKvVcO3aNVQqFaiqitdeew2vvPIKrl696niMr33ta7j77rv365QH5qGHHsLm5iZeeOEFAMCpU6cGCpJYXl7G6uoqkskkUqmUMd++5557KF2WIMYLCXoEQbjPfvjzra+v45//+Z/x0ksv4fd///eRz+cBAMlkEpIkTf1ifS9CzCCpgrquY3NzE4qiWHywWCIwtSANR7vdRrlctvhghUIh5HI5JBKJsS/WB22t9FpqZbPZNNrnSMhzn2q1ClmWHYW8XrTbbe746kfo88L4GiXs3ivLsnE/DwaDyOfznrg3TAKDCn0ALJuL0zy+Rk2z2YQsyxPRutxutyHLsmXDBwAkScLc3FyHsLuzs4PXX38dV65cMX5effVV+P1+fOMb38ANN9yw3x+hL1ZWVnD+/HksLi4CAC5fvoyVlRV8/OMfx6OPPtrXMZaXl1GpVFAsFpFMJnH06FGcPn0ax48fH+WpEwTRGxL0CILYP9zw52Mx9t///vcNoen3fu/3cN9991HrJzBwRQwviKNer6NcLhuLSb/fj2w2S4b2LsBLpgyHw8jlchNRdePG+Bpl0AtLXF5fXzdemxWRfz/gCXmsPdGNxfqg/qL28cWqryZRiOH5jHmtPXGSYa2Vqqoa9172PHNqDfdS6q7XabfbUFUVpVLJEMfS6TRyuZznWpdZsIx5LAC7FZrz8/NT5af60EMP4a677sLS0pLl9XPnzuHChQt45JFHcPLkyZ7HOXv2bN/iH0EQ+4qrDyPquyIIois+nw+JRAKJRMJ4rV9/vjfffBPf+c53cOnSJcvi7uabb8bv/u7vQhRFw79pFtuzGKIoIhKJdExIuy2Uq9Wq0U5rRhAERCIRJJNJEkOGpNVqoVQqoVwuGwuISCSCXC43UT5Ybo0ve9AL+9mrKOQk5OVyOQpqcYFqtQpFUYz2OVZ1k81mXRVnWYCGPeShW1gCb3w5Ccl7sXQYNbquY3t72+JB6Pf7jfZEr53vpMFrXQ6Hw0YgA9C9oo/NR8yQ0PcemqahXC5DURTj2ZZIJFAoFDy3wcpL2QV2k3YXFhYsc9Np4Yc//CGefvppPP7440aFHgCcPHkSFy5cwJNPPtmXoEcQxGxAgh5BEAMjCAICgQBSqRRSqZTxOmsp/fGPf4zHH38cly5dsvze0aNH8elPfxpLS0sQBAGqqlqO6ZY/37TAWyiza6yqKiqVSocnHwvC2NnZMV7jBXGEQqGZva69aLVaUFUV5XLZuL7RaBS5XA7RaHRqrpvT+Oom9NnHFjB4UrY9mRIgIc9NarUaZFkeuZDXC7/fD7/fzxX6nIKEegnJZkFmXF6gTMhj5+lln7FJg1fx6NS6zMYXE/gY9vHFxL5uQp99bE2r0McTx6LRKAqFgucq3NhYWFtbs9iShEIhzM/PT71wXiwWUSwWLYIem2938wUkCGL2IEGPIAjXuHLlCs6fP48f//jHxmuCIOB3fud38LnPfQ4333yzoz+fruvGBJyZHAP9+/PNAryKMdb6GYvFHBfKzWYTzWbTWOAzeCLMLFdK8sIYWFCLXZSYVgRB4C6UWVWuU+tuq9UyWjoZdiFZFEVUKhXL9zuVSkGSJBLyXKBWq0FRFCMwQBAEo7XWS0E4vcYXLxWVJyS7XTHaC3vrss/ngyRJZGvgEtvb21hbW7NU7e8lMXwvQl+3itFpEPp44lgoFDIqHr32eewpu8Duv+uhQ4eQz+c9d75u88QTT6BYLHa03BaLRQC7m+P9cvnyZayurhq/v7S0NFCwBkEQ3sc7MzyCICaev/zLv8RPf/pTALuT8bvvvht/8id/gptuusl4jyRJxv/vx5/PqWpj0KqgSYYnNPEqxoLBIILBYEd7NFu4mFN3m82m8f/NzJKRPYPX+hmPx43EZeK9qtxAIIB4PG68ruu6ZSz1IyQDu9/fRCJhCKW6rk/t+Bo1kyLkdcM8vsx0E5IHqRgNBoN7FvrsFY+DhokQ3alWq1hbWzP+HUdV8TirQp9dHPOyx2O9Xocsy5YUY1EUceDAARw4cGBmvm/JZLJDzAOAJ598EgD6FuSuXr2KSqWC06dPG68tLy/jrbfeopRbgpgiKBSDIAjXeOKJJ3DhwgX83//7f/HHf/zHOHDgwMDH6Nefzwk2yWaVfOFweGKrzur1OlRVtbQmuiU07TUowZ4oOMkTbN71pTAGd2AVIaqqcr0e7Zhb7qlitD/q9ToURTEqHgVBQDqdhiRJnjO0dxuzkGyv6HN6Tgy6CWQXF7yc/DmJ1Ot1rK2tWYRSSZKQzWbHvjHHsx4wC308vCb02YVoJpRmMhnP3VNZwrl5U00QBEiShEOHDnnO128crK6uYnl5Gffdd1/fYpy9ZRcALly4gHPnzuHixYtc0ZAgiH2BUm4Jgpg9WKUZq8hgbbv2CjMek+bPZ6+4AfZPaGKLGHM1H/O34jGJlZK1Ws3wIGRQ66d72IUmAIbQ5Pf7uUEJ5vZ7M7NYMdqLWRbyeuFUMdpoNByFPl5r+MbGxkRXPHoZu4fmJAmlwwh9PA/IUdzDms0mZFk2rq+XK0o1TTNSds1zjHQ6jfn5edpYM3HixAkcP34c58+fH+o4TBg8derU0MciCGLPkKBHEATBYC25tVrN0Z/PCa/58+3s7EBRFIsXGVuoj3OHulvbWz+LZCaiBoPBsYow9tRPwBvXd1rgCdH9Xt+9VozyhL5phRcmkk6nkcvlZl7I64XZesBe1dcN1mIeiUSMe5iXNyu8TKvVgqIoKJfLxmtMKJ308esUJtRoNPoS+sxi316FPl6YUyaTQS6X89x9Udd1rK+vQ5Zly/WJx+NYWFjoaIuedc6dOwcAAwtwlUoFyWTS8lqxWDTEwccff9y1cyQIYiBcXQx56w5PEAQxIKIoIhaLIRaLTaQ/n67r2N7ehqqqhocQqwjJZrOeWOj065/GqvoajYangjjsQilVNLkLz8MtlUoNJDSJoohIJNLRSt4tcbdXIuq0tIaTkDc85kpPMywVXFXVjlAXYLfaqVwuW0QoXmv4uDcrvEy73TaqsJjQxO4P07KR0i1MqJvQ182jr1+hT9M0lEolqKpqVLklk0nk83nPXV9d17G5uQlZli3JteFwGPPz8wMHoMwCjz32GBKJxMCed8vLy1hdXcVzzz3XIeoRBDFdkKBHEMRU4vP5kEgkOgIi+vHnc0rtdNOfj01sVVU1Uv1EUTSEPK/tqPNgrcz2IA5N0xzbKnlVMaIodrREMxFmr5N7tlBXFKVDKKXWOXfgCXluC6U+nw/RaNSSMuy0SB40KMHrreE8IW/ahJBxwqtoSiaThlBqv4c1Gg3Lj7kSFSChzw5PaIrH4ygUCjNjbTBqoY/ZR7DrG4vFUCgUPNmqak8xBnYrYOfm5iBJ0sx+T7rx1FNPYX19vUPMe+ihh/oS+Oz+ecB7SblHjhxx5yQJghg7tKIhCGJmYJVmqVQKqVTKeL1ffz62kLMfkydGOe2mv/LKK3j66afx/ve/H/Pz8wB2RYtsNotMJjPRlUQMURQNwdMMr62SVU0yYdUsXuyl2opVPCqKYiyIJk0o9Tp2s/X9rnjstkh2ag13Eunt/mleaKvkGcSTkOcerGKsXC4bQkgikUAul7Pcs5zuYU6bFTyhbxbDXnRdR7lchqIoRkV8NBpFoVCg1PBfMKjQx3xseUIfO140GkU8Hker1UKz2fSMz6j9eQHsPttZcq2XN1XGyerqKp5//vkO4a5SqXRsJhSLRVQqFUvIxbFjx3DmzJmO6rxLly4BAM6cOTOiMycIYr8hDz2CIAgH3PTne+WVV/DNb34Tly9fBgDceOON+Ku/+itIkoR0Oj3Tk1onEaafIA4mogYCAaMij1UA+Hw+Q8ibBqF03Ng9CCelddkpKKGbf9o4qq1IyBst7XYb5XK5o6Ipn8+PJDWcWQ/wmEahT9d1bGxsQFEU43OHw2EUCgXyRBsSJvRtbGygVCo5eoua4fmMBoPBfRP67OEcwO64z+fzOHToEG2udaFYLGJ5eRlHjx61vL6xsYFisYivfvWrOHXqlPH67bffDgCW9tpKpYIHHngADz74oPEaC8R45JFHcPLkyX36NARBcKBQDIIgiHHSjz8fsDsJf/HFF/Hv//7vWF1dNV4XBAFf+MIX8PnPf94QpGZZ0OPBq7aq1Wpd0yoZgiAgkUggm80iHA5P7ALZK/CEPC95PO4Ve1CCWYjhMSoRptlsQlVVrK+vd7R+zkpr4ijRNM0Q8swVY/l83tLKPQra7TZ3jDkJMpOY6szzRQsGg8jn80gkEp4970miVqthbW3NqDD2+XzI5/NIpVKOgUJOG2KjFvp4nonAbkDH/Pw83dP6gPnfOfH444/j+PHjxp9XVlawsbGBixcvWt5XqVTw8MMPA4CxUXTmzBlLJR9BEGOBBD2CIAivYfbn297exrPPPotvf/vb+PnPf268x+fz4aMf/Sg+9alP4eDBg5bfd9Ofb5oxizCVSgVbW1tdBT6eCBMOhz29QPYK1WoVsixbwkRmwYOwW1slj72KMCTkjRZN07C+vg5VVQ0BLRKJIJ/Pj71izN5W2Wg0uJtCDLPPqJeEPrsvWiAQQC6Xo3ADl2g0GpBlGZVKBcDuOJAkCdlstusmIJuP8O5joxL6dF03PBPN4ziRSGBhYWHk4jlBEMQEQYIeQYwKNmmiRChirzz55JP427/9W4uQFw6Hcffdd+Mzn/kM4vE415+Px6D+fLOAruvGIp0JLIFAwKjGs7dWOokwvMULu7azDi8VOJvNzrwHoVMljFO1ldMYA9ARxpBIJJDP50nIcwHW+inLsvFvEw6HDSHPy/fObmEvPJzG2DCBQv1QrVaxtrZmhM/4fD7kcjlkMhlPX99JodVqQVEUI13Zrc2UYYS+YDCIJ598Epubmzh8+DBuu+023HjjjQgGg6hUKpBl2fK8jUQiWFhYoPk0QRBEJyToEcQoeOqpp/AXf/EXHd4Udh577DEUi0UkEglsbm5iaWmp6/tHdQzCe/zgBz/Al7/8ZePPiUQCf/RHf4TPf/7zyGazlve66c/Hqvqm2SeOV23TTzXIoAtkexAHu77TfG0ZdiGPwkT6Y9AxZiYUCiGbzSKRSMzEGBsluq53CAuhUAi5XG7iWz95PqMsEZUHu4/Zq/qG/R7bAw76rRgj+kPTNKNdlQls++Gj2Y/Q9+KLL+LBBx+0/J4oijhw4ADm5+exsLCA+fl53HTTTfjgBz+IgwcPTvR3jiAIYoS4enOkGTox86ysrCCRSGBxcdGo0HPi3LlzAIDz588br509exZvvfVWXxHybh2D8CapVAqBQACJRAIrKyv47Gc/i0QiwX2vKIqIxWKIxWKQJMl4vR9/Pqe0O3NYhPlnkhdaPP+rYDCIXC6HZDLZc8Hg8/kQjUY72n2cgjjY9WeVJwwvpqG6xc7ODmRZNj4zCXmDwRtj5rTKarWKSqXCrcqt1+t455138M4770zl93c/cPJw6/ceMQkMmojqdB/bS3I4sNv6qSiKEXDAqnYlSSIh2gV4ycCxWAyFQqEjaXkUCIKAQCCAQCDATQ5vNBoIh8P45V/+ZbzwwguGyKdpmnH/+slPfmL8niiKuOGGG3D48GEcPnwYt956K2699VbcdtttU/F9JAiC8BJUoUcQv6BYLOLEiRM4f/48t1ru8uXLWFlZsaRImX/vmWeeweLiYte/w41jEN5ma2vLMMp3C7M/n13o6+cePon+fCyRslQqGQucUVfbsOvMWqLNlTBO13kcaahusb29DUVRLEIea62lRfrwtFotlEolizl8LBYz2hLtIozTGJtmMXkYdF3H1tYWZFk2xFLycOMHCrH7WK/kcPv9jFWMsdZPYDfcIJfLkdjvAryqUi8nAzcaDVy9ehUvv/wy3n77bVy9ehVXr17Fu9R7shgAACAASURBVO++i2vXrvWcj3zuc5/DAw88sE9nu3eoE4cgiBFDFXoEMQ6eeuopLC4udviBMAHuqaeewunTp0d+DMLbxONx14/Jds9TqRRSqZTxOguIYJUYrG3XXgnUaDQ6kju96s/XbrcNEYQtPsPhMHK5HOLx+EjPzVylYK6s7JaGyn42Nzctx/FqUqWu60ZrLQl5o4GlPJbLZWMMx2Ix5PN5RCIR433me4Wu6x3+j2YfyGazabQ5MiZZTB4GNoZlWTaqlP1+P3K5HNLp9NR//l6Y72P2MeZUmdxqtdBqtYx2ex6RSATZbBbxeHzmxWQ3YGI0CxTxcjJwu92GLMtGgM+NN96IG2+8EZIkYW5uDsFgELVaDa+//jpeeeUVXLlyBa+88gpeffVVvPXWW4bQd/Xq1TF/kt5QJw5BEJMGCXoE0SeXL192NPdNJpP4/ve/31OMc+MYBMEwC0eZTMZ4vR9/Pl3XjcWcudV8XP58rJrJLIJEo1HkcjlEo9GxLnDM19lMt5AEVkFpZpxBHLquGxV5TAQhIc9deGI0T8jjwQT2YDA4tJjME/q8XpHbL/b2cJ/PB0mSkMlkSGTqQTehj4nJtVoNm5ub3PbwarWKt99+G4C1atQ83ujfoDf29HAvi9GaphnJtebqzlQqhfn5ect9LRwO44477sAdd9xhOUatVsNrr70GWZbxgQ98YN/OfS9cvnwZFy5cwHPPPWd5/f7778eJEydw77339tWJM+wxCIIgBoEEPYLok2KxiOPHj3P/WyqVQrFY3JdjEEQv+vHnYz/j9udrNpuGkGduS2RCnpcRRRGRSKRDrOnma8W7tj6fz1Il6ebi2EnIYyIICXnD4yTkuTGGu4nJPKHPXOXndByvVY32g10EoTAG9xAEAX6/H1tbWyiXy8bzgFXkAegYa05Vo9Qe7kyj0YAsy8YGmpfHMC8pGtjdZFtYWHD0BuYRDodx5MiRUZym61AnDkEQkwgJegTRB73CMpLJZE8xzo1jEMQw+Hw+JBKJjgqgfvz5nFqy9uLP12w28dJLLyEej1u8w+LxOHK5XM9qJq/TKyTB7tHXbrexvb3dcW15i+NQKNSXAMOEPHNLl8/nQzabJSHPJZjPo7l6JRqNIp/Pj1yMFkXR+L6ZmaSq0X7gpapSVal7MOFGUZS+Pdy6VY32ag9nzwn250kQk4el1WpBURTDh1AQBMOH0GtjmPlSrq2tWWw6QqEQ5ufnPVlF6CbUiUMQxCTijRkbQXgcluw2yK7kKI5BEG6zn/58mqbh3/7t3/DEE0/g+vXr+NCHPoQ///M/RyKRQC6X25c0v3HBqmB4SZWDeqfxBBgmorIFmaIoJOSNCNaGZg5sYe3h4zayd7NqdC9pqG5Rr9ehKIqxEcZSVSl52R2ckoELhUJPr1KnqlFm42AX+8zt4Xam2QeSVe6qqmpsWqVSKeTzeVdDs9yiWq3i+vXrlnuB3+/HoUOHkM/np+LfpBfUiUMQxCRCsyKC6AOz0MGjV/WdW8cgiP3CTX++er2OH/zgB/jud7+LUqlkvC8ej+N973uf51trR0k/3mnmir5uLZV+vx+aphkik5dbuiYRTdOMijxzWyKryPPygrdX1ShP6GNivplRtd4zGo0GFEUxNsAEQUA6naZUVRfZ3t7G2tqaIfi7lQwsCIJj1ahTezjPBxJAh8A3SUKfpmlYX1+HoijGfSIej6NQKHSIoF6gXq9DlmXLv4Eoijhw4AAOHDgwM5tA1IlDEMSkQrMjYqI5ceLEQO9PJpO4ePHiwH8PK5+3TzoZGxsbjiX2bh6DIMbNIP585XIZTz/9NL73ve9ZJrq5XA6f/vSn8bGPfQxvvvnmyEWCScQsqJrvC7yWymq1Ck3TLKIqe6+qqtja2urw6JuVRZobOAl5rCJvEkQGHt2qRgdNQx3WO63ZbEJRFKyvrxuvMSHPi9VMk0i1WsXa2polUCSXyyGTyYx0DPfTHm4W/LptWng58EXXdVQqFciybNyLI5EICoWCJzeteN85QRAgSRIOHTqEYDA4xrPbf6gThyCISYUEPWKieeaZZ/bt70omk8bDmkc/qVVuHIMgvIjZn69SqeC73/0uvvnNb1rG+9zcHD7zmc/gwx/+sEVQctOfb9phLZXhcBibm5vY3t42/NuY2Orz+YwF8X6HnEwTvEqbcDiMfD4/0UJeL/pJQ+23PbxXS2Wr1YKqqpZQnFQqhVwuN3OCwqjg+RB6oXLXqT28mw+kFwNfmF/p2tqacW79ti+PA7bRYw7xAXYF9Pn5+am2vugGdeIQBDGpkKBHEH1y7NgxvPjii9z/VqlUcOzYsX05BkF4mTfffBOnTp0yDMAB4PDhw/jyl7+MT3ziE/D7/SPx55uUtM5hYd5XiqIY18vv90OSJKTTacsCfdhKK3Z9J6XVzS2YkKeqqpHwOAtCXi/6aQ938k6zV6Yzsc78/fZyW+IkYk9VZT6EkiR5ukK3Hx9I83jrFvjCE5TdfFbYqx79fj/y+fzQ7cujQNd1rK+vQ5ZlS7J9PB7H/Py8RbyfRagThyCISYUEPYLok3vvvRcrKyuoVCqWB/Lq6ioA4K677rK8v1gsolKpYGlpac/HGAfFYrFnK/NXv/rVnildy8vLWF1dRTKZRCqVMiq17rnnHtx///2unS/hLa5cuWKIeXfccQf+9E//FL/9279tEZrc9Odj8NI6w+GwpxeugzCIkMcYpNKqVqt1TansFsQxLfCEvFAohHw+78lKG6/gFJLA806r1WpotVrcgITt7W1cu3ZtbJVW00Kz2TSqHhksVXWSfQh5PpBA98CXfpOdg8HgQOPM7jsniqLRvuy1KmdeAAqwu0kxPz/vSfFxXFAnDkEQk8jkPtkJwmWYOOBUEn/8+HF8/OMfx8MPP4zz588brz/88MO47777LMId8J6/33PPPWeId4MeYxysrq5icXHREOLMbGxsoFKp9BTzGIuLi4YB8NGjR3H69GnH9C9iOvjN3/xN/M3f/A2SySTuvPPOgRYKg/jz1Wo1S5XBtLaWMl8mRVGMxZjf7zdM7PfyOZwqrbqZ1/Na3cwVMOZqSZ/PN1ELRFa5oigKCXkuYvZOY8nA5u8na6Vngky3SiunlkriPdrtttFKOUvty05Cn706md3bnJKd+xlndt85r1c97uzs4Pr165bvVCAQwKFDh5DL5ejeZoM6cQiCmEQE9tB3EdcPSBCj5Ny5cygWi3jhhRcMMW9paQkLCwt48MEHO8rjH3vsMayvryOdTuP555/HnXfeiVOnTnUcd2VlBRsbG9wQjn6PMQ4eeughnDlzhtsW8NBDD+Guu+7qS3g8e/YsHn300VGcIkEY7aRM6NvZ2THEgH6ea1735xuFkLdXeJ5WdkHVjM/n4y6MvbbgdRLycrkcEomEZ8bCJMPzIXQKCuhWacVjUsbZqGFiqaqqhidaIpFAPp+n9mUb3ZKdzX5yZnw+H4LBoHEfZHg5tMXumwjsCpYHDx7EgQMHJmZDa7+5fPkyVlZWLBvxwO5G9/LyMi5evGiZ//I6cQY9BkEQM4mrE0wS9AiCsPDYY49xK/AuX76MS5cu9d0uS4IeMQ769efj4QV/Pp6QFwgEjNZaL4lMTv58Tgtje7VkOBweKAnVLXRdx8bGBhRFMdq5g8Eg8vk8CXkuwRNL9+JDuBcBZtKrcvuFJ5bGYjHk8/kO/zmiOzy/UVbR103o85qg3Gw2IcuypeVTEATkcjnMzc1RVWsfnD17Ful02tJFs7KygiNHjnTMf2+//XYA6BDvBjkGQRAzCQl6BEHsPysrK3j88cf7fj8JeoSX6Mefz4n98OfjiUyBQMCoyJsUkYm3MGb+fE7zjV5JqG6eG0/Iy+VySCaTE3ONvQzvGo+ifblb4IvTODMHvpjH2aQJfbxrHA6HUSgUEIvFxnx20wG7xmtra4ZYysYPG3dO44wnKAeDwZEKfbx2a2DXO3F+fp4qNQdk2jtxCIIYOyToEQSxv5w7dw4nT54cyP/u7NmzuPfee43Aj2KxiKWlJZrQEJ6iH38+J9yoBJoWIa8X3ZJQeZirJc0i6l6qJVnVoyzLJOSNCJ7x/jiqHnmBLzz/RzP7JSgPC+8ak9eju+i6jq2tLciybIyZUChkiKXsGjuNs24bF6OoHNV1HeVy2VKlCey2XM/Pz5PASxAE4U1I0CMIYv8oFov4yle+wt2B7Mby8jK+9KUv4eTJk5bXjh07Ri0HhKex+/OZhT63/Plefvll/N3f/R2uXbuGM2fO4ODBgwgGg5AkaaqEvF50C+LgMUhAglP7cj6fJyHPJXgCiBev8aCCMuCdZGdd17G9vQ1Zlo1wAy9e40lnZ2cHa2trRljGXq7xXoS+vVSO8jYpgF1/yoWFBa4HMkEQBOEZSNAjCGL/OHv27J5aBYrFIhYXFy2vXbhwAefOnSNTYGIisfvz1Wo1VKvVgfz5rl69in/5l3/BD3/4Q+O/nTlzBp/97GdpcW5i2ICEdruN9fX1qa56HCc8kYmFtnjN67EbgwrKgiA4Csqj+MzVahVra2vY2dkBsDvOc7kcMpnMxFxjr1Ov17G2tmYESLBrnE6nXWvH5gnK7M9O/PznP8cTTzyBWCyGm2++GYcPH8Ztt92GQ4cOodVqWcToYDCIubk5ZLNZGhcEQRDex9UbNbmjEgThSKVSwdNPP72nijq7mAcAR48eBbAr7JnNggliEjAv5jOZjPF6P/58r732Gi5evIif/vSnxmuiKOIjH/kIfuM3fgM7Oztot9sj8eebRHw+H6LRaEcSqpNvGmudZsKHmVAoZLTL1ev1ifRN8xJMyGOVTKMQQPYLURSNKlozvGTner2OVqtlpGnbj9Nv5Wg/2FNKRVGEJEnIZrMTd429ij1AQhAEZLNZSJLk+v3X/Oww061y9NKlS3jjjTcAwLAuYcTjcSwsLGBxcRFLS0v4wAc+AEEQSMwjCIKYQUjQI4gp48SJEwO9P5lMOrbTXrhwAQBfnOtFpVLpaPtgfy4WiwMfjyC8iiiKiMViiMVikCTJeL3dbuMnP/kJvvGNb+Dy5cuW9//6r/867r77bhw8eNBIqzQzK0mdg+L3++H3+y3eUOz6qapqJKqa4XmoTYpvmpeoVquQZRnb29sAdoU8SZKQyWSmblyKoohIJNKRFtutcpS15psZNAm10WhAlmVUKhUAoxWZZpV2uw1FUVAul4022HQ6jXw+v+8psE5Cn6Zp+LM/+zPE43G89NJLeOONNyxja2trCy+99BJeeukl/Od//qfxuiRJOHz4MG699Vb80i/9Ej75yU9Ssi1BEMSUQ3d5gpgynnnmGdeOZRYhBmF5eRmrq6t47rnnyMuFmEmuX7+Oc+fO4dlnnzVe8/v9uPvuu/HFL34RuVyuqz9fq9VCq9UyxBNGP/58swLPv421fbLWWqfqF/azublpHG+/2yknBV61WDabRTabnTmRiVc5qut6V6GPVzlqF+x9Ph+2trYswn4mk0EulyNBxiU0TUOpVIKqqtA0DcBueEShUEAwGBzz2VkRRRFzc3M4c+YMyuWyce5Xr15FqVSCoih49dVXceXKFcvYUlUVqqriRz/6EQDg3XffxZe//OVxfQyCIAhiH6BZAkEQjrzwwgt7FuR4VX2sMu/IkSNDnRdBeJ2vf/3rhpjn9/uNkBjz9yKVShn/v19/PiZEmTEnwobD4akXopiQpyiKxb9NkqSOtk+n6pdxtlNOCvV6HbIsG6InVYvxEQSBWznKwnWcxhpPsAd2x3I8HkckEkGr1YIoilNXAbmf6LqO9fV1KIpiVPBGo1EUCoWOCkwvwBMeBUHATTfdhI985COWc9Z1HdeuXcOVK1fwyiuvGD+vvvoq2u02brzxxjF9CoIgCGK/mO7ZKEEQQ1GpVHq22xaLRVQqFUvIxbFjx3DmzJkOMfDSpUsAdkMAvAyrMEwmk0ilUobHzj333DOQn+Bjjz2GYrGIRCKBzc1NLC0tDRwuQkwmv/Vbv4X/+Z//wYc+9CGcOXMG8/PzXd8/jD+fruuGUMBa9QC+EDXJ/ny8IIa9+Le52U5pFlCnpS2a1/aZyWQgSdLUi5huIggCAoEAAoEA4vG48Tr7vqqqis3NzY7001arhfX1dUu1HrWID46u69jc3IQsy8YmSCgUQqFQMDw1vYSu69jY2IAsyxbrgGg0ioWFBSQSiY7fEQQB8/PzmJ+fx8c+9jHjdU3T0Gq1PFd5uFceeughbG5u4oUXXgAAnDp1aqC5lFtzOoIgCC9CKbcEQXApFos4ceIEFhcXu7bx3n777QBgaa+tVCp44IEH8OCDDxqvra6uYnl5GY888ghOnjw5+g8wBMvLy6hUKigWi0gmkzh69ChOnz6N48eP932Mc+fOAYAl/OPs2bNYXFykCSQxNKyVz96265QCa2bS/PmchLz98G8zt1PWajWL0Oc0fwoEAtzr6zUBwU6z2YSiKB1tn5IkIRAIjPHMpgfm96goivFdjcViyOfzCIfDji3iTvDG2ay24JvZ2dnB2tqaIcIHAgHk83lPJonzrAOA3X/b+fn5iUqNHgUrKys4f/68sbl8+fJlrKys4OMf/zgeffTRvo7hxpyOIAjCRSjlliCI0bO4uPj/t3d3sW3d5R/Av7Zj59XHTmJnefNQYeumNEIImJAziQlmaBVpAhlocjUwamYhsVRCKVxQfFGFC5QASiWEIIWUCwQWKPpfwOpKRbypRiLiTanHtDHKegLVbCexT9rETRz7f5GdMx/7OH6JnRwn349UQU+cX088Jznn6+f3PHC5XCUveEZGRpBMJlXVeIIgYHp6GrOzswCg3CAuLi6qKvn0anBwsOwLRS3hcBjBYBBLS0uq45cuXYLH48H4+HhVg0aIZCaTCVarVVW1IW/x0wr6GrE/XzabxebmZsFE1cMcxLDfdsqdnR3Nir6dnR3s7OwoPedkeg1fdnZ2sLq6ikQiobxObDYbHA7HsanwOWpy9VU8Hleqa1taWpRqMVmxLeJaQV/u6y/XSe4Fmd/vUa7g7ezs1OXXvrW1hWg0quqD19TUhL6+PjidTl2e82GamZnB1NSU6nppZGQEY2NjCAaDCIVCZb1BfNBrOiIiPWOgR0RFlTNgY2FhQfO4IAiq6rSTJBQKweVyFWw5li9KQ6EQJiYmjuLU6BiTt/jZbLaG788nV+QdVZBXivy8WCyWglBVDl9yK/r0GL6k02msrq6qpn0KggCHw1EQKlF1im37dDqd6OjoKOu/sdFoVAL2XOwF+a6dnR3EYjFlK6XeB7fk96cE9s65p6cHvb29ujzno/CnP/0JN2/exMLCgirUO3fuHILBIF555RXd7/ggIqq3xv8tTkSkM+FwuOgwEUEQcOPGDQZ6dGgaqT/fw4cPEY/HlYoVk8mErq4udHZ2NsRNbu5znfszoNrwJb9HXy2eg93dXSXIy5326XA4CkIjqo7WNvFab/usZS9IraCvEb7ftEJpPU8Hlqth19fXVccdDgf6+vpYEatBFEWIoqg5UGplZeWoTouISDf099uOiEgHwuEwIpEIgL0LykoGWoiiWHSrss1mU6b9Eh0lo9GI9vZ2tLe3o7u7WzleTn8+OQzMDweq6c8nSRKWlpbgcrmUf8NoNCoVeY0QLJRSKnzJ789Xy+c3999aX19XTc+U+7fpcdpno8rfRnnY2z5NJhPa2trQ1tamHMvtBakV9MnVu7n03GtTaxKsIAhwOp26DMUymQxWV1extramnC8A2O12DAwMMEgv4vr168r1Vy75Gmp4eLjstQ5yTUdEpGcM9IiI8qysrECSJFUVndfrxb1790oOtMitYtIiCAIDPdK1w+rPl0qlcP36dQSDQWxubuK5557Dl770JV1vlau1YuFLOp0uWtGn9fzmDuKQq/rkKaiZTEYJ8uTAtK2tDU6nU/Xv0sHk92+TQ+murq4jD8H26wV5kNda7sTdw/gas9ksEokEYrGYaqhIT0+PLkMxrfMF9s55cHBQNf2YCgmCoNl3+ZVXXgGAsgO5g1zTERHpHQM9IqI8c3NzBUMrxsbGEAgEMDo6uu9gD7mHT24YQtToatmfb3NzE6FQCK+88oqqKmhwcBDvec97GmIibD3Jz7XZbFbd8GsN4kilUtje3i46iKOpqQm7u7tK6Nrc3Iyenh4GCTW0vb2NWCymvJljMBjQ1dWF7u5u3YfSlbzWSg19kUP7/KCvFt/LWr0ItYaK6IXW+QJ75zwwMACbzXaif8YdRCQSwc2bN3HhwoWyh6wd5JqOiEjvGOgREeXRmkArb+0IBoP7DvvIDTu0lKrgI2oklfTnW19fx69+9Sv8+te/VlX9nDp1Cp/97GfxgQ98AHfv3q1bf75GV2wQh9YU1K2tLezu7iKdTqvWePToEVZWVgqq+eSeaQwZyrezs4N4PK5McQf03b+tEuUMfcn9Iwf229vbqkEPwMGnOz98+BDRaFTpRWixWOB0OmG1WnX5et3c3EQ0GlVtlzebzejr64PD4dDlOTeSixcvYmxsrKLKuoNc0xER6V1jX3EQEeXxeDwVPV4QBCwuLqqOSZJUMNRC/nup7bLy4/JvamTJZLLowAyi4yK3P19LSwt++tOf4kc/+pEq/HjiiSdw/vx5vP/971f1lapH/7jjTJ6C2tzcDEmSIEmSsr3PbDajvb0dBoMB29vbSi9EeRCHXFEMNPZwhMMkDxVZW1tTKh9tNhscDocu+7fVUm6An0srVD7odOdUKoVoNKqE/yaTCU6nE3a7XZehWP6Wa2Dve7O3txePPfbYifw5VYvrsVyBQAAjIyMVB3AHuaYjItI7BnpEdKzcunXrQJ/v9XoRiUSwtLRUdfAmCILqRjmf1rvFRMdRNBrF+fPncf/+feXY008/jZdffhnPP/88DAZDXfrzVVIB1Oi0tvdZLBY4HA7NiarFeqaVOxyhpaXl0Hqm6YnWIAar1Qqn01kQcJ00cqic38eumunOFosFu7u7yrRtg8EAh8Ohi16EWnZ2dhCLxVS/8+Vz7u/vb/hqzYM46PVYrvn5eVit1op73tXimo6ISM9O7m8ZIqIitAI3+V3coaGhkp/vdrvx6quvan5MkiS43e6DneAhmZmZwcbGBu7cuQNgr+dMJVPh5AtpQRBgs9mUG57z58+zEfUJ8dZbbylh3unTp/HlL38Zn/jEJ1Q35rXsz5e7phz05W4rza0AanTZbBYPHjxALBZTnhOz2QyHw7Fvj65yhyPI/flKBan16JmmJ5lMBolEAvF4XDWIgdOBSys13Tn/9ZbJZApCvmw2i7W1NTx8+FBX1aNalZrA3rbr/v5+XQ7paFShUAiJRKLgumFmZqasa4mDXtMREekZAz0iohxutxt+v7/gndzbt28DAPx+v+q4KIqQJEnVVHl8fBw+n69gm0ckEgEAjI6O1uv0a8bn8+HKlSvKhXA4HIbP58Pt27dx9erVstdxuVzKhfPw8DAmJiYwMjJSl3Mm/fnwhz+Mq1evorm5GR/96EcrqrCppD9fKpVSKnqAvRBADgpy+1Yeh/582WwWm5ubiMViyrbkpqYmOByOqrcj7jccoZKeablBau7z24hBajabRTKZRDweV15beh7E0Ehypzvv7u5ibW1NtcVergKVt+yWWz16GNvws9ks1tfXVQEvsFetOTAwwNdGjUUiESwvLxcEd5IkFbQ20boeq/Sajoio0Rhy31WqkZovSER0WCRJwuXLlzE9Pa1cAEYiEXi9XszNzeHcuXOqxz/11FMAULCdY3JyEna7XdXrxefzYWhoSPfVaTMzM5qT3wKBAILBoObzoGVycrKi8I/oIOSb/vxtu7k33cU0Sn8+OciTgw2TyYTu7m50dnYe6rnu1zNNi1aQKldM6o3WFubm5mY4nU50dHQ0XDCpV1rBWEdHB5xOp6q6Tat6VP5T7B7GbDZrVo8e5Hskm81CkiTEYjHV67y1tRWDg4PczlkHoijC6/UqAyxkyWQSoihiampKtWtA63qs0ms6IqJDUNMLCQZ6RER5JEnC7OwsAChN/P1+f0HABeyFdMlkUrOR8/z8PBKJBOx2O5aXl/Hss89WtGX1qHi9XkiShIWFBdVWFblK7+zZs2UFdQz06KiV25+vGL3059va2kIsFlO2vRqNRnR3d+uur5jWVkq5wkpL/iAOuTLrKComs9ksHj58iFgspmz7NJvNcDqdmr0IqTpawVhrayt6enrQ1tZW0Tq5Qzdy/xRT7Tbx/Em7wN5rY2BgAF1dXXxt1InctqOYhYUFVcV/seuxSq7piIgOAQM9IiKqH/kiOv9iWX5X+8yZM/tOopMx0CO9Krc/n5bD7M+XPznTaDSiq6sLXV1dDbVNuFiFVe5041z1qLDaz9bWFqLRqKry0eFwoLOzk2FNDT148ADRaFT5PrNYLHA6nbBarTV7nvfbJl7MvXv3cP36dbS1teG9730vTp8+jdOnT2NwcBAPHz5U9Y80mUzo7e1FT0+PrsJ0IiJqGDW9sNDfXgciIjpS169fhyiKBe9e5/bCK1c4HFbeYZfXbIQqRTre9N6f79GjR4jH48r6BoNBCfL0uE21lP0GcaRSqYLgZWdnBzs7O0qQKav1IA6twFSPlY+NLj8wPWjPx/3kfm/n2m+b+B/+8Ae89tprAIC//vWvqs9zOBwYHByEy+XCmTNn8OEPfxh2u52vDyIi0gVW6BERUVkmJydx8+ZNLC4ulrVVxev14qWXXlL1qPF6vXC73brvI0iU6zD68+3s7OD//u//cPv2bXzyk5/EqVOnYDAYYLfb4XA4GjLIq0alFVa5AU5+f75iYdH29jZisVhBYNrd3d1QlY96t729jWg0qgwv0GNgmslksLKygh/+8Id47bXXcO/evaK9IGVGoxGPP/44nnzySTzxxBMYGhrC888/z9cOERGVg1tuiYjocMnbbS9cuFB2GCeKoqoHHwAEg0EEfpB+CwAAHUlJREFUAoGyQ0EivapVfz6TyYQ//vGPuH79Ou7fvw8AGBkZweXLl+FwOGA2m+v9pTSETCajuW03nU5rPl6rYtJkMmF9fV3powUAnZ2dJyowPQzpdBqxWEx5ng0Gg/I86zH0ymQyyoCOdDqNt99+GysrK3j77bcRj8dx9+5d3L17t+hrDQBefPFFfP3rXz/EsyYiogbFLbdERHS4Ll68iLGxsYoq6/LDPODd7brBYFA1AZio0RgMBpjNZthsNthsNuV4uf35UqkU/vjHP+KXv/wl/vvf/yrHu7u78ZnPfAYWi0X5nHr052s0RqMRra2taG1tVR3fbxCHHLJqsVgssNlsaG9v1021WKPb3d3F6uoq1tbWlFDbZrPB6XTqMpjOZrNIJpOIxWJKWGc0GvG+970Pzz33HKxWq/LY7e1t/Oc//8G//vUvvP7663jjjTfwr3/9C2+99Ray2Syn3BIR0ZFghR4R0THj8XgqerwgCPsOuQgEAgBQcQAnSVLBTY4oivB4PBgZGcHCwkJF6xE1Mrk/39bWFn7729/ixz/+Mf79738rH7fb7fjUpz6Fj3/84wXhRy37850E2WxWCfTW19dVQw2K0RrE0dzcfOKD1HJkMhkkEgnE43FlG3pHRwd6enoKetnpRf6ADgBobm7GwMBARb39tra2sLGxgZ6ennqd6qGSh2IJggCbzYZkMgkAOH/+fEVv6M3Pz0MURVitVmxsbLB/LhHRu1ihR0RExd26datma83Pz8NqtVbc806+KVhaWmqIyoVa3HzwBob2YzQaEYlE8O1vfxt///vfleN2ux0vvvgiXnjhBWSzWc3+fLlhYK5y+/OdNNlsFpIkqQKm9vZ2ZWutVkVfsUEcWs+v2Wxm0Id3n+dYLKb0nWttbUVPTw/a2tqO+Oy05Q/oAPa+j/r6+uB0Oiv+76pVNdroXC6XagjWxMSEauJ9KVpvAk5OTuLevXvsn0tEVGMM9IiISFMoFEIikSi4AJ+ZmSnrolxry618kzA0NFSbk6yBWtx88AaGSnnzzTfh8/mUrX0dHR344he/iM9//vPo6OhQPbbc/nzpdBrpdLqgAk3uz2exWNDS0oKWlpYTEUJpbaFsaWlBT0+PasKuxWJRbafMHcSRO3V3Z2dH+f+5qhnEcZxks1k8fPhQVeHW3NwMp9OJjo4OXT4Hjx49QiwWUwZ0AHshe09PD3p7e1nt+o7BwUFcvXq16s8Ph8MIBoNYWlpSHb906RI8Hg/Gx8c1rw2IiKg6DPSIiKhAJBLB8vJyQRglSZLqhgjYC+kkSVINuXC73fD7/QXVebdv3wYA+P3+Op15ZWpx88EbGCpHS0sL2trakE6n8eKLL8Ln88Fut2s+9qD9+ba3twumwhoMBiXoa2lpOVYhVDabxcbGBmKxmPJ1VxIw5QZ0uT+z9hvEkUqlkEqlVOvIW6Nzn195GMdxkV/h1tTUBKfTCZvNpsvXUTqdRjweRyKRUIXhDocDfX19sFgsR3h2x08oFILL5Sr43S//DgyFQpiYmDiKUyMiOpYY6BERkYooivjCF76A4eFh+Hw+5XgymYQoipiamlI9Xu7Zl7u91u/34/Lly5ienlaORSIRXLt2DXNzc7rZhluLmw/ewFA5BgYG8Nvf/lbp1VaN3OCps7NTOS5vyU2lUkpVXyqVUrZBAnuhlxxISZKkHG/k/nxypVgsFlPCNbPZDKfTCUEQDhwwlRrEkVvN9+jRo2O9NTq/ws1oNMLhcKCzs1OXX0cmk8Ha2hpWV1eRyWSU4zabDQMDA8dum6xehMPhor/fBUHAjRs3+PuQiKiGGOgREZHKxYsXIUkSwuGw5sfzq81GRkaQTCZVF/GCIGB6ehqzs7MAgEQiAQBYXFxUVfIdtVrcfPAGhsqVv7W2VoxGI9rb29He3o7u7m7l+O7urua23ePQn29zcxOxWEypFDOZTHA6nRUNNKiWyWRCW1ubqk+cvE26WEWf1tbo3EEcclWfxWLRVaXbzs6OUuEG7IXKXV1d6O7u1mXom81mlQEd8rZrYK+H4uDgYN2+B4+TcDiMSCQCYO8Nvkr6wYqiWLTfns1mU9puEBFRbTDQIyIilf0m3mopNq1WEISKJ+MetlrcfPAGhvTKZDLBarUW9Itr5P58qVQKsVhMGV5hNBrR3d2Nrq6uIw0b5W3SZrNZFRpls1lVLz65sm97e1vXgzh2d3exurqKtbU15XVht9vhcDgKpjDrgda2a2DvuRwcHNTtlmC9WVlZgSRJqjehvF5vWf1gcyt/tQiCwN+HREQ1xkCPiIhOpFrcfPAGhhpNo/bn297eRiwWU77n9F4pJpOfm/xBHJlMRhnEkT9tt9Qgjtzn2GQy1TSoymQyWF9fRzweV7aqWq1WOJ3OqreK19vm5iai0aiqyrSpqQn9/f1wOBwM8iowNzdXUIU/NjaGQCCA0dHRfSvsk8kkAKhe50REVF8M9IiI6ESqxc0Hb2DouNBrf778LZ8A0NnZCYfDgaamxr2MNRqNSoVjLq1BHPI2aXkQh/xzB9irwtSq6Ks05NSaENzW1oaenh7d9pt79OgRotGoqsLRaDSit7cXjz32mG62hzcSrQFOw8PDAIBgMLhv1X3uGwRaSr0BRkRElWvcKyEiIqIDqMXNB29g6Lg7iv582WwWv//97/HDH/4QDx48wFe/+lV0d3fDZrPB4XAc68mkxQZxFOvPJ/93kHsJyvKf45aWFlgsloKQK5vN4sGDB4jFYkpVYHNzM3p6etDe3q7L6jatkNdgMMDhcKC/v7+hg96DkAdUlUsQhIIWG5IkFfSElf9eqtpcfpw8OCVffq9dIiI6uJP5G4+IiE68Wtx88AaGTqp69ed744038JOf/ASvvfaacjyZTOKZZ57R7ZbPw9DU1ISmpia0t7crx7QGccj9+Ur1QJSfy42NDSXIq+WE4HrQ6usH7FVs9vf3F1Q7njS3bt060Od7vV5EIhHVxPpKCYKgqiDNp1UBSERE1WOgR0REJ1Ytbj54A0O05yD9+f7zn/8gGAziH//4h3KstbUVn/70p/H0008jHo/XrT9fo9pvEIdWfz65/+H29nbBmxBNTU1obW1VhnS0tLTo5jnOZrNKX7/cCtCOjg4MDg6qQk46GK3fV3Jl3tDQUMnPd7vdePXVVzU/JkkS3G73wU6QiIhUGOgREdGJVYubD97AEO1vv/58//znP/G9730Pv/nNb5TjZrMZ586dwwsvvICOjg4lhKp1f77jKvf5zlWs51wmk0E6nS5oEaD1HMth6mHIZrOQJAmxWEzVs7G1tRUDAwMlWx5QZdxuN/x+f0F13u3btwEAfr9fdVwURUiSpBqUMT4+Dp/PV7B1NxKJAABGR0frdfpERCcSAz0iIjqxKr35OM43MDMzM9jY2MCdO3cA7E02HBsbK/vz5e1agiDAZrMpVYvnz5/HpUuX6nLO1Li2trbwzW9+E4uLi0rVVVNTEz73uc/B7/ejo6OjLv35TqLd3V3E43Gsr68rW1VzB4vs7u4W7c+n9RznD+KQ+/PVMkx9+PAhotEoUqmUcsxsNqO/vx/d3d26qBw8bvx+Py5fvozp6Wnld1kkEsG1a9cwNzdXEPTJPftyt+iOjIzg7NmzmJ2dVQ3QmJ2dxYULF/adkktERJUz5PagqJGaL0hERFQvk5OTsNvtqpsPn8+HoaGhgiDqqaeeAoCCHkOVrKFHPp8PV65cUbZbhcNh+Hw+nD17FlevXi1rDa/XC0mSIIoiBEHA8PAwJiYmMDIyUs9Tpwb1gx/8AN/5zncA7FWUvfDCC3j55Zfx+OOPaz6+3P58xci94ywWizJd1mw2H+tgKJPJYG1tDaurq8hkMgD2WgQ4nc6yBosUG8Qhr5XPbDYXBKlagzj2k0qlEI1GVb3/TCYTent70dPTc6KD2cMgSRJmZ2cBQBk64vf7NYM4n8+HZDJZMFgDAObn55FIJGC327G8vIxnn322ojeIiIiOsZpeeDDQIyKiE6/cm4/jeAMzMzOD0dHRghu2QCCAYDCIubk5nDt3ruQ6k5OTZYd/RH/5y1/wta99DU8//TRefvllJSyvVDn9+YoxGAxK0Hec+vNls1kkEgnE43Gk02kAQFtbG3p6egqm51azdjqdRiqVKujPV+yeIncQx/LyMuLxOE6fPo0nnnhC6f23vb2NeDyu6kdqMBjQ09ODvr4+bqUmIqLjgoEeERER1YZcWbewsKBqiF5plR4DPdITeUtuKpVSqvpSqZSqF1sxjdqfL5vNYmNjA7FYDNvb2wCAlpYWOJ1O1dCMev3bxQZxyO7fv4+pqSlV8Od0OvH444+jv78fg4ODcLlc6O/vR29vL/r7+0/0ZGMiIjqWahrosYceERHRCSeKIkRRVAV6csP5lZWVozotoqoZjUa0t7ejvb0d3d3dyvHd3V3NbbuN3p9vc3MT0WhUOWez2Qyn0wlBEA6l2rDYII5MJqOEe83NzXC5XLh3757y8Vgshlgshr/85S/KMaPRiPe85z04ffo0Tp8+jSeffBJPPvkkHn/88UMbyEFERNQI+FuRiIjoBLt+/TpEUSzYciuKIgBgeHi47LXC4bAyDEResxG2HdPJYTKZYLVaYbValWPl9udLp9NIp9Oq/m7A0fbny+85ZzKZ4HA40NnZqYttw0ajEa2trWhtbYXdbsfi4iJee+01/P3vf8dbb70FURSxsrKC+/fvK6FqJpPB3bt3cffuXdy8eVNZy2KxwOPxYHZ2VvfVkkRERIeBW26JiIiowOTkJG7evInFxcWyJhN6vV689NJLqn57Xq8Xbre7IQaDEOXTc3++nZ0dxGIxpeec0WhEV1cXurq6dBt2PXjwANFoVPX8WSwWDAwMoL29HW+99RZef/11vPHGG8r/ym8s5Prd736Hvr6+wzx1IiKiWmEPPSIiIqqfSCQCr9eLCxculB3G5W/ZBYBgMIhAIFB2KEjUCDKZjBLuHXZ/vq2tLUiShPX1daV6sLOzEw6HQ7fbUbe2thCNRrG5uakca2pqQl9fH5xO574B58OHD/Hmm2/i9ddfx5tvvoknn3wSXq/3ME677kRRhMfj2fcxU1NTmJiY2PcxXq8XkUgEgiDAZrMpIe/58+f5ZgoRkf4w0CMiIqL68Xg8GBkZwZUrVw60jhwMjo2NHXgtIr3b3d1VhXxa/fmKKdWf729/+xu++93vYnl5GT6fD5/4xCcgCAKcTicsFku9v7SqPHr0CLFYDBsbG8oxo9GInp4e9Pb26raS8LCEQiHMzs4qQVyuZDIJSZJw69atkuvIg41EUYQgCBgeHsbExARGRkbqdepERFQ9DsUgIiKi+ggEAlWFeZIkQRAE1TH571rb5oiOG5PJhI6ODtVE2YP253v77bfxs5/9DH/+85+VY/F4HKdOnUJLS0v9v6gqpNNpxONxJBIJ1dfocDjQ19en2wDysC0vL2NxcbHg5yYAzMzMYHR0tKx1BgcHOWGciOiEYqBHREREAID5+XlYrdaKt2nJW76WlpY0b06JTiqDwQCz2QybzaaqwirVn291dRW//OUv8Yc//EEJxcxmM86ePQuv14v//e9/qi27tezPV61MJoO1tTWsrq4ik8kox202GwYGBtDa2npk56ZHdrtd8+dlOBwGALYpICKikhjoEREREUKhEBKJREGYNzMzU1bAl98/D3i3Mm9oaKg2J3kIatWPan5+HqIowmq1YmNjgxN/ScVgMCiBXGdnp3J8bW0N3//+9/Hzn/8c29vbymOfe+45fOYzn0F3dzeAve2s+cM5Dtqfr1rZbBaJRALxeBzpdFo53t7ejsHBQVXFIr2rWG+8+fl5LCwsHPLZEBFRI2KgR0REdMJFIhEsLy8XBFaSJKn6XwF7IZ0kSarqEbfbDb/fX1Btcvv2bQCA3++v05nXh8vlUsLIavpRBQIBAFBtW56cnMS9e/fYpJ6K+sUvfoFvfetbqu+5559/Hl/5yldw6tSpkv35MpmM8rFcpfrzVSubzSqTa+XwEQCam5sxODgIm812pBWDjSgQCJQcgqElHA4jEokA2PsZzTcQiIhOBg7FICIiOsFEUYTX68Xw8LDqeDKZhCiKmJqaUt0YPvXUUwCg2l4rSRIuX76M6elp5Zg8EGNubg7nzp07pK/m4CYnJw/UjyocDsPn8xVsP5YnWt66dUuzmpFOtkQigY985CPK3z/0oQ9hamoKH/zgB4t+Trn9+YqxWCxobm6GxWJBS0sLWlpaYDabywrhNjc3EY1GVeFhU1MT+vv74XA4GORVQRRFXLx4EYuLixV9ntfrxUsvvaT6Oev1euF2u/kGAhGR/nAoBhEREdXGxYsXIUmS0rcpX374NDIygmQyqQqrBEHA9PQ0ZmdnAeyFEwCwuLh44vpAhUIhuFyugmpF+XkMhUJVVeDQ8Wa1WvHpT38a9+/fxxe+8AV87GMfKxmKVdufT7a9va2qrJPXlIM+rf58jx49QjQaxYMHD5TPMRqN6O3txWOPPXbgqr+TbGZmpqqqurm5uYKf02NjYwgEAhgdHT1xP4OJiE4SVugRERERveOgFXoejweCIGhW2TzzzDNwuVwVV+AQ1UImk1HCPbmqL5VKYWdnp+TnGgwGmEwmVY88g8EAh8OB/v5+NDWxRuAgJEnCM888U7MKXrlCemxsrOKJ5UREVFes0CMiIiKql4P0oxJFsWi/PZvNpvTmIzpsRqMRbW1taGtrU4ZrAMDu7m7J/nzy9l5ZZ2cn+vv70dLScqhfg554PJ6KHl8s6AeAYDAIQHu4UCmSJBVUBMt/588bIqLjjYEeERER0TtWVlYgSZJqW6zX6y1roIUkSft+XBAE3mCT7phMJnR0dKim0eb359vc3IQkSTCZTDh16hQn1wK4detWzdYq1vKgFHkqd37PTiIiOhkY6BERERG94yD9qJLJJIC9fmhEjaxYfz6qjzt37lQdyGlV9clvHAwNDR3ovIiISN/YuZaIiIjoHVo3x/IEYHlbXDGlgo9SFXxEdDJJklTy54coikorAJnb7cbi4mJBGHj79m0AgN/vr+2JEhGRrjDQIyIiInqHVuhWbj8q+XEbGxuaH8+fDkxEVO42fI/HA6/Xq/oZ5ff7cfnyZdWxSCSCa9euYW5ujj9viIiOOW65JSIiIkJt+lEJgqBsvdVSiwmWRHR8uFwuuFyuosN0ZCMjIwVvCgiCgOnpaczOzgIAEokEAGBxcXHf9gBERHQ8MNAjIiIiesdB+1G53W68+uqrmh+TJAlut/tgJ0hEx045AzYWFhY0jwuCgCtXrtT6lIiIqAEw0CMiIiLCXhjn9/vL7kcliiIkSVJVwoyPj8Pn80GSJNU6cu+r0dHRep1+zYmiCI/Hs+9jpqamVBOBtciVj4IgwGazKRWM58+fLzk5mIiIiIi0GbLZbK3XrPmCRERERPUmSRIuX76M6elpJYyLRCLwer2Ym5vDuXPnVI9/6qmnAKBgi+7k5CTsdruqasbn82FoaKihAqxQKITZ2VkliMuVTCYhSVJZlUVy3y9RFCEIAoaHhzExMVFyiyERERHRMWOo6WIM9IiIiIj2SJJU0I/K7/dr9qPy+XxIJpNYXFws+Nj8/DwSiQTsdjuWl5fx7LPPYmxsrL4nX2MzMzOaFYvyx0ZHR8vq0zU5OYmrV6/W4xSJ9iUPi+BwCCIi0omaBnrccktERET0jkr6URXraQWg5DbURmC32zWDkHA4DABsuk+6FgqF8I1vfANTU1P7hunz8/MQRRFWqxUbGxs4c+ZMxeF7LdYgIiKqFAM9IiIiIipQLJScn5/fN8wkOko+nw9WqxUul0up0CsmEAgAgCrEn5ycxL1798reHl+LNYiIiKrBQI+IiIiIyhIIBKqqPgyHw8pgEFEUWcFEdSOHzaIo4tq1a0UfFw6HEQwGsbS0pDp+6dIleDwejI+Pa069rvUaRERE1TIe9QkQERERkf6Joog7d+5UPMxiZWUFkiRhYmICExMTuHLlCoLBIGZmZup0pkSlhUIhuFyugm3lcgAXCoUOZQ0iIqJqMdAjIiIiopJmZmaqqqrTmhA8NjaGa9euKVV7RIctHA4XHZYhCAJu3LhxKGsQERFVi4EeEREREe1LkiTcvHmz4uo8AJpbDoeHhwEAwWDwwOdGVA1RFGGz2TQ/ZrPZIIrioaxBRERULQZ6RERERLQvOXirph+Y1mACuaqJgQcdhVLDMgRBKPmYWqxBRER0EAz0iIiIiGhf4XC4qs/zer145plnGj7YkCSp4b8GelcymQQAWK3WI12DiIjoIDjlloiIiIj2defOnaK9wkrRquqTK/OGhoYOdF6HIRQK4Rvf+Aampqb27SE4Pz8PURRhtVqxsbFR1STfWqxBpRXbJisrJ7ytxRpEREQHwUCPiIiIiPYlSVLJ7baiKEKSJJw5c0Y55na74ff7C8LA27dvAwD8fn/tT7ZGfD4frFYrXC5XyXAmEAgAAK5cuaIcm5ycxL1793Dp0qWy/r1arNHoPB5PRY8XBAGLi4sV/zvy63FjY0Pz48lksmSAXYs1iIiIDoKBHhEREREVVW6fOzmMWVpaUoIMv9+Py5cvY3p6WjkWiURw7do1zM3N6TrwWFhYALD39V+7dq3o48LhMILBIJaWllTHL126BI/Hg/Hx8ZJhaC3WOA5u3bp1aP+WIAjKtlkt5TzftViDiIioWgz0iIiIiKgol8sFl8tVcsLtyMhIQVWSIAiYnp7G7OwsACCRSAAAFhcXVZV8jSwUCsHlchWEk3KYEwqFMDExUfc1qDJutxuvvvqq5sckSYLb7T6UNYiIiKrFQI+IiIiI9lVO5ZRc0ZZPEATVNtLjJhwOF600FAQBN27cKBnG1WINqsz4+Dh8Ph8kSVI995FIBAAwOjqqerzWlvJK1yAiIqolTrklIiIiIqqSKIpFByTYbLaytizXYg1Sk/seFut/ODIygrNnzyrVo7LZ2VlcuHChoILU4/HA6/Wq1qt0DSIiolpihR4RERERURVKDcsQBKFkGFeLNehdgUAAoijizp07APbCtRs3bmBwcFDVyxEArl69ivn5eczMzMBut2N5eRnnzp3TnCystaW80jWIiIhqiYEeEREREVEV5IEIVqv1SNegd1W6vbvcrczFtpRXsgYREVEtccstEREREVEVim2TlZWqvqvVGkRERHTyMNAjIiIiIqqCvP1yY2ND8+NaWzTrsQYRERGdPAz0iIiIiIiqJAiCsm1Wi8vlOpQ1iIiI6GRhoEdEREREVCW32110W6wkSXC73YeyBhEREZ0sDPSIiIiIiKo0Pj4OURQLArlIJAIAGB0dVR0XRVH5WLVrEBERETHQIyIiIiIqQg7ZilXQjYyM4OzZs5idnVUdn52dxYULF3DmzBnVcY/HA6/Xq1qv0jWIiIiIDNlsttZr1nxBIiIiIqLDFAgEIIoi7ty5o4RvZ86cweDgIKanpwsGVczPzyORSMBut2N5eRnPPvssxsbGCtb1+XxIJpNYXFws+Fi5axAREVFDMtR0MQZ6REREREREREREdVXTQI9bbomIiIiIiIiIiBoIAz0iIiIiIiIiIqIGwkCPiIiIiIiIiIiogTDQIyIiIiIiIiIiaiAM9IiIiIiIiIiIiBoIAz0iIiIiIiIiIqIGwkCPiIiIiIiIiIiogTTVYU1DHdYkIiIiIiIiIiIisEKPiIiIiIiIiIiooTDQIyIiIiIiIiIiaiAM9IiIiIiIiIiIiBoIAz0iIiIiIiIiIqIGwkCPiIiIiIiIiIiogTDQIyIiIiIiIiIiaiAM9IiIiIiIiIiIiBoIAz0iIiIiIiIiIqIGwkCPiIiIiIiIiIiogTDQIyIiIiIiIiIiaiAM9IiIiIiIiIiIiBoIAz0iIiIiIiIiIqIGwkCPiIiIiIiIiIiogTDQIyIiIiIiIiIiaiAM9IiIiIiIiIiIiBoIAz0iIiIiIiIiIqIGwkCPiIiIiIiIiIiogTDQIyIiIiIiIiIiaiAM9IiIiIiIiIiIiBrI/wPT+PRCPHDxHwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<Figure size 792x432 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 346,
+ "width": 634
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_problem_3d(current_problem, ((-10,-10), (10,10)))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "The Bohachevsky problem has many local optima."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABPQAAAK1CAYAAABPbbCcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3VeQI+eZLug3E0AZlEOCttmGbdhkk2w2PSVaiRRJjTga6Yg7Rxpzzk5oIrTavdmIidDs7sWMLhS6k/ZCsxFnNnZ0hkfjYjgjNxQ9u0m2d2zf1Ybtq6p9V8JUoeDS7EX1n5XISvgEkAm8T0RHV6FQqCwggcp88X3/J5mmCSIiIiIiIiIiIgoGudMbQERERERERERERLVjoEdERERERERERBQgDPSIiIiIiIiIiIgChIEeERERERERERFRgDDQIyIiIiIiIiIiChAGekRERERERERERAHCQI+IiIiIiIiIiChAGOgREREREREREREFCAM9IiIiIiIiIiKiAGGgR0REREREREREFCAM9IiIiIiIiIiIiAKEgR4REREREREREVGAMNAjIiIiIiIiIiIKEAZ6REREREREREREAcJAj4iIiIiIiIiIKEAY6BEREREREREREQUIAz0iIiIiIiIiIqIAYaBHREREREREREQUIAz0iIiIiIiIiIiIAiTcgts0W3CbREREREREREREQSV5eWOs0CMiIiIiIiIiIgoQBnpEREREREREREQBwkCPiIiIiIiIiIgoQBjoERERERERERERBQgDPSIiIiIiIiIiogBhoEdERERERERERBQgDPSIiIiIiIiIiIgChIEeERERERERERFRgDDQIyIiIiIiIiIiChAGekRERERERERERAHCQI+IiIiIiIiIiChAGOgREREREREREREFCAM9IiIiIiIiIiKiAGGgR0REREREREREFCAM9IiIiIiIiIiIiAKEgR4REREREREREVGAMNAjIiIiIiIiIiIKEAZ6REREREREREREAcJAj4iIiIiIiIiIKEAY6BEREREREREREQUIAz0iIiIiIiIiIqIAYaBHREREREREREQUIAz0iIiIiIiIiIiIAoSBHhERERERERERUYAw0CMiIiIiIiIiIgoQBnpEREREREREREQBwkCPiIiIiIiIiIgoQBjoERERERERERER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\n",
+ "text/plain": [
+ "<Figure size 792x432 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 346,
+ "width": 634
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_problem_3d(current_problem, ((-2.5,-2.5), (2.5,2.5)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 254,
+ "width": 258
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "ax = plt.figure().gca()\n",
+ "plot_problem_controur(current_problem, ((-2.5,-2.5), (2.5,2.5)), optimum=(0,0), ax=ax)\n",
+ "ax.set_aspect('equal')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "## ($\\mu$,$\\lambda$) evolutionary strategy\n",
+ "\n",
+ "Some basic initialization parameters."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "search_space_dims = 2 # we want to plot the individuals so this must be 2\n",
+ "\n",
+ "MIN_VALUE, MAX_VALUE = -10., 10.\n",
+ "MIN_STRAT, MAX_STRAT = 0.0000001, 1. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# We are facing a minimization problem\n",
+ "creator.create(\"FitnessMin\", base.Fitness, weights=(-1.0,))\n",
+ "\n",
+ "# Evolutionary strategies need a location (mean)\n",
+ "creator.create(\"Individual\", array.array, typecode='d', \n",
+ " fitness=creator.FitnessMin, strategy=None)\n",
+ "# ...and a value of the strategy parameter.\n",
+ "creator.create(\"Strategy\", array.array, typecode=\"d\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "Evolutionary strategy individuals are more complex than those we have seen so far.\n",
+ "\n",
+ "They need a custom creation/initialization function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def init_univariate_es_ind(individual_class, strategy_class,\n",
+ " size, min_value, max_value, \n",
+ " min_strat, max_strat):\n",
+ " ind = individual_class(random.uniform(min_value, max_value) \n",
+ " for _ in range(size))\n",
+ " # we modify the instance to include the strategy in run-time.\n",
+ " ind.strategy = strategy_class(random.uniform(min_strat, max_strat) for _ in range(size))\n",
+ " return ind"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "toolbox = base.Toolbox() \n",
+ "toolbox.register(\"individual\", init_univariate_es_ind, \n",
+ " creator.Individual, \n",
+ " creator.Strategy,\n",
+ " search_space_dims, \n",
+ " MIN_VALUE, MAX_VALUE, \n",
+ " MIN_STRAT, MAX_STRAT)\n",
+ "toolbox.register(\"population\", tools.initRepeat, list, \n",
+ " toolbox.individual)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "How does an individual and a population looks like?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "ind = toolbox.individual()\n",
+ "pop = toolbox.population(n=3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def plot_individual(individual, ax=None):\n",
+ " 'Plots an ES indiviual as center and 3*sigma ellipsis.'\n",
+ " cov = np.eye(len(individual)) * individual.strategy\n",
+ " plot_cov_ellipse(individual, cov, volume=0.99, alpha=0.56, ax=ax)\n",
+ " if ax:\n",
+ " ax.scatter(individual[0], individual[1], \n",
+ " marker='+', color='k', zorder=100)\n",
+ " else:\n",
+ " plt.scatter(individual[0], individual[1], \n",
+ " marker='+', color='k', zorder=100)\n",
+ "\n",
+ " \n",
+ "def plot_population(pop, gen=None, max_gen=None, ax=None):\n",
+ " if gen:\n",
+ " plt.subplot(max_gen, 1, gen)\n",
+ " \n",
+ " for ind in pop:\n",
+ " plot_individual(ind, ax)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x432 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 363,
+ "width": 381
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_problem_controur(current_problem, ((-10,-10), (10,10)), optimum=(0,0))\n",
+ "plot_individual(ind)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x432 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 363,
+ "width": 381
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_problem_controur(current_problem, ((-10,-10), (10,10)), optimum=(0,0))\n",
+ "plot_population(pop)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### Mutation of an evolution strategy individual according to its strategy attribute. \n",
+ "First the strategy is mutated according to an extended log normal rule, \n",
+ "$$\n",
+ "\\boldsymbol{\\sigma}_t = \\exp(\\tau_0 \\mathcal{N}_0(0, 1)) \\left[ \\sigma_{t-1, 1}\\exp(\\tau\n",
+ "\\mathcal{N}_1(0, 1)), \\ldots, \\sigma_{t-1, n} \\exp(\\tau\n",
+ "\\mathcal{N}_n(0, 1))\\right],\n",
+ "$$\n",
+ "with \n",
+ "$$\\tau_0 =\n",
+ "\\frac{c}{\\sqrt{2n}}\\text{ and }\\tau = \\frac{c}{\\sqrt{2\\sqrt{n}}},\n",
+ "$$\n",
+ "\n",
+ "the individual is mutated by a normal distribution of mean 0 and standard deviation of $\\boldsymbol{\\sigma}_{t}$ (its current strategy). \n",
+ "\n",
+ "A recommended choice is $c=1$ when using a $(10,100)$ evolution strategy."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "toolbox.register(\"mutate\", tools.mutESLogNormal, c=1, indpb=0.1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "Blend crossover on both, the individual and the strategy."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "toolbox.register(\"mate\", tools.cxESBlend, alpha=0.1)\n",
+ "toolbox.register(\"evaluate\", current_problem)\n",
+ "toolbox.register(\"select\", tools.selBest)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "mu_es, lambda_es = 3,21\n",
+ "\n",
+ "pop = toolbox.population(n=mu_es)\n",
+ "hof = tools.HallOfFame(1)\n",
+ "\n",
+ "pop_stats = tools.Statistics(key=copy.deepcopy)\n",
+ "pop_stats.register('pop', copy.deepcopy) # -- copies the populations themselves\n",
+ " \n",
+ "pop, logbook = algorithms.eaMuCommaLambda(pop, toolbox, mu=mu_es, lambda_=lambda_es, \n",
+ " cxpb=0.6, mutpb=0.3, ngen=40, stats=pop_stats, halloffame=hof, verbose=False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### The final population"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x432 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 363,
+ "width": 381
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_problem_controur(current_problem, ((-10,-10), (10,10)), optimum=(0,0))\n",
+ "plot_population(pop)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "The plot (most probably) shows a \"dark blue\" ellipse as all individuals are overlapping. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "Let's see how the evolutionary process took place in animated form."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from matplotlib import animation\n",
+ "from IPython.display import HTML"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def animate(i):\n",
+ " 'Updates all plots to match frame _i_ of the animation.'\n",
+ " ax.clear()\n",
+ " plot_problem_controur(current_problem, ((-10.1,-10.1), (10.1,10.1)), optimum=(0,0), ax=ax)\n",
+ " plot_population(logbook[i]['pop'], ax=ax)\n",
+ " ax.set_title('$t=$' +str(i))\n",
+ " return []"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "scrolled": false,
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ }
+ ],
+ "source": [
+ "fig = plt.figure(figsize=(5,5))\n",
+ "ax = fig.gca()\n",
+ "anim = animation.FuncAnimation(fig, animate, frames=len(logbook), interval=300, blit=True)\n",
+ "plt.close()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n",
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "<video width=\"360\" height=\"360\" controls autoplay loop>\n",
+ " <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAB2eG1kYXQAAAKuBgX//6rcRem9\n",
+ "5tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQg\n",
+ "QVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcv\n",
+ "eDI2NC5odG1sIC0gb3B0aW9uczogY2FiYWM9MSByZWY9MyBkZWJsb2NrPTE6MDowIGFuYWx5c2U9\n",
+ "MHgzOjB4MTEzIG1lPWhleCBzdWJtZT03IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVm\n",
+ "PTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0xIDh4OGRjdD0xIGNxbT0wIGRlYWR6\n",
+ "b25lPTIxLDExIGZhc3RfcHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9MTEgbG9v\n",
+ "a2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxh\n",
+ "Y2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHly\n",
+ "YW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3\n",
+ "ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTMgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVz\n",
+ "aD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBx\n",
+ "cG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAEi1ZYiE\n",
+ "ABX//vfJ78Cm61tbtb+Tz0j8LLc+wio/blsTtOoAAAMArjQYNfYPa05T/g/I8QMewnayqemoqpHk\n",
+ "anuELmLXUel3onIF3IDMoYI6UGf62WJprsCSOIW3h2+ozi75pEKaXfAkkY//d84mfFez0nu6xqGB\n",
+ "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\n",
+ "\">\n",
+ " Your browser does not support the video tag.\n",
+ "</video>"
+ ],
+ "text/plain": [
+ "<IPython.core.display.HTML object>"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "HTML(anim.to_html5_video())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "How the population progressed as the evolution proceeded?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "pop = toolbox.population(n=mu_es)\n",
+ "\n",
+ "stats = tools.Statistics(lambda ind: ind.fitness.values)\n",
+ "stats.register(\"avg\", np.mean)\n",
+ "stats.register(\"std\", np.std)\n",
+ "stats.register(\"min\", np.min)\n",
+ "stats.register(\"max\", np.max)\n",
+ " \n",
+ "pop, logbook = algorithms.eaMuCommaLambda(pop, toolbox, \n",
+ " mu=mu_es, lambda_=lambda_es, \n",
+ " cxpb=0.6, mutpb=0.3, \n",
+ " ngen=40, stats=stats, \n",
+ " verbose=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 504x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 269,
+ "width": 449
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(1, figsize=(7, 4))\n",
+ "plt.plot(logbook.select('avg'), 'b-', label='Avg. fitness')\n",
+ "plt.fill_between(range(len(logbook)), logbook.select('max'), logbook.select('min'), facecolor='blue', alpha=0.47)\n",
+ "plt.plot(logbook.select('std'), 'm--', label='Std. deviation')\n",
+ "plt.legend(frameon=True)\n",
+ "plt.ylabel('Fitness'); plt.xlabel('Iterations');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "What happens if we increase $\\mu$ and $\\lambda$?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 504x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 269,
+ "width": 449
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "mu_es, lambda_es = 10,100\n",
+ "pop, logbook = algorithms.eaMuCommaLambda(toolbox.population(n=mu_es), toolbox, mu=mu_es, lambda_=lambda_es, \n",
+ " cxpb=0.6, mutpb=0.3, ngen=40, stats=stats, halloffame=hof, verbose=False)\n",
+ "plt.figure(1, figsize=(7, 4))\n",
+ "plt.plot(logbook.select('avg'), 'b-', label='Avg. fitness')\n",
+ "plt.fill_between(range(len(logbook)), logbook.select('max'), logbook.select('min'), facecolor='blue', alpha=0.47)\n",
+ "plt.plot(logbook.select('std'), 'm--', label='Std. deviation')\n",
+ "plt.legend(frameon=True)\n",
+ "plt.ylabel('Fitness'); plt.xlabel('Iterations');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "# Covariance Matrix Adaptation Evolutionary Strategy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "* In an evolution strategy, new candidate solutions are sampled according to a multivariate normal distribution in the $\\mathbb{R}^n$. \n",
+ "* Recombination amounts to selecting a new mean value for the distribution. \n",
+ "* Mutation amounts to adding a random vector, a perturbation with zero mean. \n",
+ "* Pairwise dependencies between the variables in the distribution are represented by a covariance matrix. \n",
+ "\n",
+ "### The covariance matrix adaptation (CMA) is a method to update the covariance matrix of this distribution. \n",
+ "\n",
+ "> This is particularly useful, if the objective function $f()$ is ill-conditioned."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### CMA-ES features\n",
+ "\n",
+ "* Adaptation of the covariance matrix amounts to learning a second order model of the underlying objective function.\n",
+ "* This is similar to the approximation of the inverse Hessian matrix in the Quasi-Newton method in classical optimization. \n",
+ "* In contrast to most classical methods, fewer assumptions on the nature of the underlying objective function are made. \n",
+ "* *Only the ranking between candidate solutions is exploited* for learning the sample distribution and neither derivatives nor even the function values themselves are required by the method."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from deap import cma"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "A similar setup to the previous one."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/mmmm1998/.local/lib/python3.6/site-packages/deap/creator.py:141: RuntimeWarning: A class named 'Individual' has already been created and it will be overwritten. Consider deleting previous creation of that class or rename it.\n",
+ " RuntimeWarning)\n"
+ ]
+ }
+ ],
+ "source": [
+ "creator.create(\"Individual\", list, fitness=creator.FitnessMin)\n",
+ "toolbox = base.Toolbox()\n",
+ "toolbox.register(\"evaluate\", current_problem)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "We will place our start point by hand at $(5,5)$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Best individual is [-2.524016407520609e-08, -4.0857988576506457e-08], fitness: (6.517009154549669e-14,)\n"
+ ]
+ }
+ ],
+ "source": [
+ "cma_es = cma.Strategy(centroid=[5.0]*search_space_dims, sigma=5.0, lambda_=5*search_space_dims)\n",
+ "toolbox.register(\"generate\", cma_es.generate, creator.Individual)\n",
+ "toolbox.register(\"update\", cma_es.update)\n",
+ "\n",
+ "hof = tools.HallOfFame(1)\n",
+ "stats = tools.Statistics(lambda ind: ind.fitness.values)\n",
+ "stats.register(\"avg\", np.mean)\n",
+ "stats.register(\"std\", np.std)\n",
+ "stats.register(\"min\", np.min)\n",
+ "stats.register(\"max\", np.max)\n",
+ "\n",
+ "# The CMA-ES algorithm converge with good probability with those settings\n",
+ "pop, logbook = algorithms.eaGenerateUpdate(toolbox, ngen=60, stats=stats, \n",
+ " halloffame=hof, verbose=False)\n",
+ " \n",
+ "print(\"Best individual is %s, fitness: %s\" % (hof[0], hof[0].fitness.values))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4IAAAIbCAYAAAC+FyBeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3WtwXGed7/vf0sWWdbWdi4FYCbYJTxIFNsTocPDUTHI2ggQOw8xo4ohT1Ezh2jje1FTFbxKbmUn8wkwdxpc3Ztcw25czhqlhNoqDi5qzNzhEYYbZB4UAMpcdJTwhkRPLIbZjyVKrdbP6cl6sXu1Wq1vqlnupe63+fqpUVq9+eq1HWg7Fz/9n/R8nmUwKAAAAAFA9aso9AQAAAADAyiIIAgAAAECVIQgCAAAAQJUhCAIAAABAlSEIAgAAAECVIQgCAAAAQJUhCAIAAABAlSEIAgAAAECVIQgCAAAAQJUhCAIAAABAlSEIAgAAAECVIQgCAAAAQJUhCAIAAABAlSEIAgAAAECVIQgCAAAAQJUhCAIAAABAlSEIAgAAAECVIQgCAAAAQJWpK/cEqt3AwMAvJG2SFJX0WpmnAwAAAKDyvE9Ss6RzW7du/XApTkgQLL9NktpSX7eVeS4AAAAAKtemUp2IIFh+UUltNTU1amxsLPdcFI1GJUnNzc1lngn8wP0NP+5xuHF/w437G37c43Dz8/5OTU0pkUhIbnYoCYJg+b0m6bbGxkYZY8o9Fw0MDEhSRcwFpcf9DT/ucbhxf8ON+xt+3ONw8/P+Wmu9oFmyR8loFgMAAAAAVYYgCAAAAABVhiAIAAAAAFWGIAgAAAAAVYYgCAAAAABVhiAIAAAAAFWGIAgAAAAAVYZ9BAEAAFBS0WhUkUhEU1NTisViSiaT5Z5SRXnllVfKPQX4aLH76ziOVq9erZaWFq1fv141NeWryxEEAQAAUBLJZFKXL1/W6OhouadSkRoaGso9BfiokPubTCY1MzOjmZkZTU5Oqr29vWxhkCAIAACAkohEIhodHZXjOLrpppvU0tKiVatWlbXqUUkmJyclSU1NTWWeCfxQyP1NJBKanJzUxYsXNTU1pdHRUd18880rNcV5+K8SAAAAJXH16lVJ0oYNG3TLLbeooaGBEAhkqKmpUUtLi971rndJkiYmJso3l7JdGQAAAKEyMzMjSWptbS3zTIDK5lUNZ2dnyzYHgiAAAABKwmsKU1tbW+aZAJXNcRxJKmsjJYIgAAAAAKwgLwiWE0EQAAAAAKoMQRAAAAAAqgzbR2CexsZGWhoDAAAAIUdFEPOsXr1ajsNfCwAAACw0ODioxx57TJ2dneru7i73dHAD+H/8WCAeL//DqwAAANWit7dX+/btK/c0lnTmzBk99dRT+sAHPqCPfexj+tjHPiZJ6urqCsT8MV8oloYaYx6W9AlJY6lDr1trj+UYt0fSltS4tZIGco0rdmzYEAQBAABWzvHjxzU8PKz9+/eXeyp5RSIRPfXUU3r++efn7RMZiUQ0PDys/v7+nJ/5/ve/r56enpWcKgoU+CBojDkqSdbaXanXD0s6ZYwZstb25RuXOnbKGLPFWrt3sXMuNjaMCIIAAAAro7+/X8PDw5LcymClhqajR4+qra1tXgiUpNbWVvX19amtrW3BZ7q7uzU+Pl6xP1O1C/TSUGPMAUldmYEtw2jGuC5Jj0rKDnF7Je0xxmxeztiwIggCAACsjOPHj2vbtm2S3CBYqV5++eW877W3ty8IiJI0Pj6eMyCiMgQ2CBpj1krao6zAZq19xlrrWGvPZhzeLmnIWjuWNXYo9e3DyxwbSvF4uWcAAAAQft6Syv3796u9vV2Dg4MaHBws97RyGh4e1vj4eLmngRIKbBCUdCD1Z9+io1xduv78YLYxST3LHBtKVAQBAAD89+1vf1vbtm1Te3t7evlkZlXwzJkzMsbIGLPgs5FIRMaYeeOHh4f12GOPaceOHers7JQxRp2dnerq6tJjjz22rDn29vbKGKPh4eH0NY0xOnPmjCS3i6h3nezPeM8PZn/G+7kOHTokya2Kdnd3yxijHTt2pJfKZjt06JC6urrSHUtzPZd4/PhxdXV1yRiT/rmzz1fImGoQ5GcEu7xvUktEPSPW2oNZYzcrf2AcTb2/nLElE41GNTAw4Mepi7Ju3TolEo6GhoZ09erVck8HPqmEv2vwF/c43Li/4Rb0+9vQ0KDJycm87//3H7+pZ/51SDPXgrMEqWFVrR7+PzbrM793R0nO5/1+Tpw4oYMHD2pyclJ/+Id/qMOHD6u3t1d797oL3n7/939fLS0tmpiY0A9/+EN99KMfTZ/ju9/9riTp/vvv1+TkpC5cuKDPf/7zeuyxx/Snf/qnkqQvfelLevnll/VP//RPamlpWfS+5POZz3xGn/nMZ/TZz35W4+Pj+tGPfjTv56irc+NEa2tr+vzeZ+6//361tbXpX/7lX+Z9ZnZ2VpI0OjqqP/qjP5IkffKTn5QxRqdPn9Zf//Vf6+///u/nzeOzn/2s7rrrLv3d3/2dNm7cqCNHjmjHjh06ePCgurrcWPCNb3xDX/va1/Stb31Ld999t1588UV96Utf0h//8R9r/fr1BY+5UYX+nhOJhGZmZsr233yQK4Kb5VboHrXW7vW+JHUaY055g1JLSBfjdQUtamyYxeOS41AVBAAApfc/+t8MVAiUpJlrcf2P/jdLes7vfOc7amlpSYeYzO+/853vpMd5e/X95Cc/mff5vr4+dXV1qaWlRZIbcCYmJtIhUJK+8IUvaGJiQi+++GJJ557Jewawubm54M94cz59+rQ++clP6p//+Z/1hS98QU8++aQ2bty4YL5/8zd/o/HxcR08eFAbN26UJO3evVuS9A//8A/pcT/4wQ9011136e6775YkffSjH9W3vvWteQG6kDHVIsgVQckNZWezjn1V0oAx5mFr7TOSvGifb7lnpmLGllRzc3POsv9KGxoaUjzuaNOmTdq0aVO5p4MS8/7FaevWrWWeCfzCPQ437m+4heH+vvLKK5KkpqamvGP+5IE79d9+8BtNzwYnDK5ZXas/eeDORX+uQniVoqamJv3jP/6jenp65p3z85//vPr6+vTd735Xf/7nfy5J+rM/+zN985vf1A9/+EP91V/9VXrsiy++qJMnT6Y/b61Va2vrvPNt2LBBknT58uUbnrvjOHIcZ8F54qnmEuvXr1/wXr7PePPq6enRX/zFX8x77/bbb9eFCxcUj8fTDWhOnz4tSXrggQcWzGtycjJ9/jvuuEPPPvusvv71r2vXrl1qbW3VRz7ykXnjCxmzXJn3txA1NTVqbGxMh9LFWGsVjUZvaH7Zgh4ElblFROr12VSg2iXpGWV0D80js8JXzNjQ4hlBAADglz954H36kwfeV+5plJW3ZcSJEyd04sSJBe8PDg5qeHhY7e3tam9vV0dHx7xjZ86cUWtra7rbqCRt3LhRg4ODikQi6QDlPffW0dHh28+Sq1tooe97lcHFeD/Dtm3bdPLkyUXHPvHEE3r55ZfTv9dt27bp8ccfn/fzFzKmWgR5aai0eOXuI5KU0f0zX4hb752nmLFhRtdQAAAA/3hbRlhrF3x5TWOOHz+eHu8d+/a3vy3JbcbyyCOPzDvnE088IUk6fPiwJLeZzLFjx9TR0TEvMK6kSCSy6PsTExN53/MCpHeOQjqWtre3q6+vTydPntS2bdvU39+/oKlMIWOqRZCD4FkVXqEb0/Vln7kMZXxfzNhQiscdJZPlngUAAED4XLhwQf39/XrooYdyvu+Fvu9///sLjj399NOKRCLq7+/X5z73uXmf8zqPDg8Pq6urS93d3br33nvTyypv1Pj4eM5gt1TYWy7vvO3t7ZJU1LYaXvXQqyB6AbrYMWEX5CDYJy3a4OXnWWPzjVur+V1CixkbWlQFAQAASs9rBOOFu2wdHR1qbW1VJBJJb7fgjY9EInryySfTW05kOnPmjF566SWdPHlSfX196uvr0/79+/POo9j9CpcKfPkqdrk+540dG1u40C77PK2trellm5lbZXgyj2VX9e69994F4wsZUy2CHASPpv6c93SnMcbbVuJA1tjN2aHRGHNf6tveZY4NLYIgAABA6X3zm9/Ugw8+uOgYb9nnsWPH0se84Pjss8/mDJHDw8MaHBzUvn37dOjQofTX8ePHF+yRt2/fPnV3d+cMVsXygluuwNfe3q7h4WGdOXNG/f396TGLhcpcS0G/8pWvpOf92GOPqbe3N72nYOY5d+zYoePHj6ePHT3qxgWvelrImGoS2CBorR2StFfzA59Sx57JbCKT+v6ZHGMPSDporT27nLFhFouVewYAAADh4lUDlwodn/70pyVdbxojuZXC9vZ2tba25lxW2tPTowcffFC9vb3pRignTpzQ4cOH1dXVpX379qXHek1avK0fipEd4hZ7hm///v1qbW3VU089lXPp5WLPCGZep6OjQ319fXrwwQf18ssva9++fXrhhRe0f/9+7dy5Mz2up6dHvb296uzsVGdnp1544YX0s4DFjKkWTjLgD4MZYx6W2yHUqy0/Z609lmfsHkk3SRqR1FmqsTdiYGDg3yTdX0nbR5w/36YPf/gmLeN/G1DhwtCaHIvjHocb9zfcwnB/ve0jCmmHX42K3V6gGIODgzp8+LD2798/b9no4OCgdu/ereHhYfX19aXfy+wuitIo9v4W899LxvYRP9q6desDy5ziPGHYPuIZuRW8QsYeLOK8BY8NIyqCAAAAwdHd3b0gBEpuNe3xxx9Ph0HvfUIgArs0FP7iGUEAAIBg8Bq/5Fvq6S0vrebGKFgo8BVB+IOKIAAAQDB4nUYPHz48b6N5r1GLt2SUKiAyEQSRExVBAACA4Hj++ed1+PBh7du3T8PDw2ptbVVbW5u2bds279lAwEMQRE5UBAEAAIKjtbV10X0DgWw8I4icCIIAAABAeBEEkRNLQwEAAIDwIggiJyqCAAAAQHgRBJETFUEAAAAgvAiCyImKIAAAABBeBEHkRBAEAAAAwosgiJxYGgoAAACEF0EQOVERBAAAAMKLIIicEgn3CwAAAED4EASRF8tDAQAAgHCqK/cEULliMam+vtyzAAAAQCGGh4d1/PhxjY2N6Wtf+1pgzo3yoCKIvHhOEAAAoPTOnDmjHTt2qLOzU52dneru7tbx48dv+LzDw8Pq7e3VhQsXSjDLlTt3tq6uLu3bty+w5w8KgiDyYmkoAABAaR05ckS7d+/Wzp079bOf/Uzf+MY3JEmHDx/W4ODgvLGRSES9vb0Fn7utrW3en6Xk57kzRSIRDQ8Pq7+//4bPk+t3V6rzhwFLQ5FTMklFEAAAoJQuXLigb37zm3r88ce1bds2SVJHR4dOnz6trq4udXR0zBvf3d2t8fFx9fT0FHT+1tZWSVJLS0tpJ+7zubOv09fXd8OBM9/vrlTnDwOCIHKKx6kIAgAAlNKLL74oSWpvb1/w3unTpxccGx8fr8rAkuv3U6zFfnelOH8YsDQUOcXjVAQBAABKyQsm3/ve9xa851XcSnF+P1RjIA07giByIggCAACU1kc/+lFJ0rPPPqtDhw4pEonkHNfb2ytjTPp5NmOMjDE6c+bMvHH9/f3asWOHurq61NXVpSeffLJkcy323IcOHVJXV1e6+U3mM3hnzpxJ/wzZIpGIjDHp5/kGBwdljFFnZ2feOXnv79ixQ8PDw/PGLPW7W+z83s/R3d2tzs7OvE1lvJ/n0KFDkqTjx4+ru7tb9913n770pS8tmFOlYmkocorFWBoKAAD88W/PWv37D35b0Nj7/vfb9ZntH5x37L+f+rXO/uR8QZ//g0/eqQcenB9A/tv/81P99uXLBX3+/3z4A9r6sTsKGruUlpYWHTx4UHv27NGJEyd04sQJffGLX9SuXbvmVQR7enrU09Ojzs5OtbW1qa+vb8G5Dh06pBMnTujIkSN66KGHFIlEtHv37pLMs9hzd3V16Z577tHJkyfV3t6uQ4cOaceOHenPP/TQQ2ptbVUkElF/f3/6+UhJ+v73vy9J+tSnPiXpemU0uwI5ODioHTt26Itf/KKOHDmi8fFx7dixQ93d3Xr++efTn1vqd5fv/N7PISn9cwwODmr37t3q6urS6dOnF1RtJyYm1N3dnZ6/MUanT5/Wvn37dPLkySV+y+VHRRA5UREEAAAova6uLvX19aXD0IkTJ/Txj3+8qC6Wg4OD6RD50EMPSXIDzv79+294fsWee9++fRofH9fXvva19LN3TzzxhCTp2LFj6XGPPPKIJOnHP/7xvM+fOXNGDz744IKAlh262tvb1dPToyeeeEKtra1qb2/Xzp070+GyUPnOf+jQIQ0PD+vIkSPpn6Ojo0P79+/X8PCwjh49mh7rfba3t1ef+tSndPr0ae3cuVNPPvmkNm7cGJiOpARB5EQQBAAA8Ed7e7tOnjyp06dPq6OjQ5FIJOcyx3y8ZZSf/vSn5x0vxXN8xZ67t7dXkUgkvSei9yVp3tLXz33uc5LcZbGZ+vv70+8tdr1cYdQLbMtZipl9/qefflqtra0LOrd6gT1z3t5ne3p6tHPnznnjb7vtNknKu+y3krA0FDkRBAEAgF8eeNAsWK5ZjM9s/+CC5aLF+L/+0/+27M+Wkrd1RHd3twYHB3X8+PEFYSdXE5mXXnpJkj/dL4s5txfAtm3btuRSyPb2dnV0dGhwcFDDw8Nqb2/XmTNn1NraOm+p6FJNc/r7+3XmzBn19/drfHx80bG5zpXrWCQSUSQSWRACMz+TK2z6vZWG36gIIie2jwAAAFgZjz/+uKTrIcyTr6rkZ7WpmHN7Y5cKZB5vT79vf/vbktxqordktJBr7dixQ7t371Z7e7tOnz6tI0eOLDm3UshXDZ2YmMj7mVJ0gfUbQRA50SwGAACgtC5cuJDzuBc0Cl3aec8990jKvyRysYBSynN7VcPBwcGCzu0Fwaeffjr9bF/2stB8Ae7JJ59Uf3+/nn/+ee3cuXPZQSvX+b1z5fs5vArmjV6n0hAEkRNLQwEAAErrG9/4Rs4qltdcxGvOkilXoPCe38vej9DrwJmrQldoWCvm3JnP1HnPFmbKdaynp0eRSERPPvmktm3bljdgZf8Mzz77rNrb2+cFQC+sjo2N5TzHYmEs+/xeSM21RUfm+5mfzXXdQqujlYBnBJETQRAAAKC0fvrTn+rChQu6ePGinnjiCbW1tam/v1+HDx/Wtm3b5oUNya24DQ8Pp5+lu/fee9Xa2qqHHnpI27Zt04kTJ3T77benn7fzwlp2NW/fvn3q7e3V/v37F1wjW7Hn/spXvqLu7m7t27dPP/7xj/V7v/d7On/+vJ599tmc1+rp6VFvb6+effbZnKHYC1LZIc77XRw6dEif/vSn9b3vfS/dwOWFF17Q4ODgvGf88v3u8p3/8ccfV39/v5566qn0c4vDw8PavXu3Ojo65jWFWSxgRqPR9M9R6ctDqQgiJ4IgAABAaX39619Xd3e3Xn75ZXV1denjH/+4jh07pv379+dstrJ//361trbqqaeeSj9X5zl58qR6enp0/Phx7d69W2NjY3r++eclLQwqXlOTQpeeFnPujo4O9fX16cEHH9TLL7+sffv26YUXXtD+/fsXdNT0xnuVvcUqoNmVtSNHjqijo0MnTpxI72nY19ennp4eDQ4O6vDhw/Pmlu93l+/8ra2t6uvr06c+9Snt27dPnZ2d2r17tx555BGdPn065+9psSW4QVga6iSTyXLPoaoNDAz8m6T7m5ubZczyu2eVytDQkM6fb9Mrr9wkY6T775dqa8s9K5TKwMCAJGnr1q1lngn8wj0ON+5vuIXh/r7yyiuSpLvvvrvMM6lMk5OTkqSmpqYVv3YkEqn4ClXQFXt/i/nvxVrrVRt/tHXr1geWOcV5qAgiL6qCAAAA4UAIRDaCIPKKxQiCAAAAQBgRBJEXewkCAAAA4UQQRF4EQQAAACCcCILIKx6X5ubKPQsAAAAApUYQRF5UBAEAAIBwIggiL5rFAAAAAKVXCVv4EQSRFxVBAABQDMdxJElx/g8EsCgvCHr/zZQDQRB5sY8gAAAoRkNDgyR383IA+Xmbz69evbpsc6gr25VR8QiCAACgGOvWrdP09LQuXbqkWCymlpYWrVq1So7jlLXyAVSCZDKpZDKpyclJXbx4UZLU0tJStvkQBJFXLMbSUAAAULjW1lbNzMxodHRUV65c0ZUrV8o9pYqSSCQkSTU1LMoLo2Lvb2Njo9avX+/nlBZFEEReVAQBAEAxHMfRhg0b1NTUpEgkoqmpKcVisYpojFEJZmZmJLkBAOFTyP11HEerV69WS0uL1q9fX9Z/FCAIIi+axQAAgOVobm5Wc3NzuadRcQYGBiRJd999d5lnAj8E7f5Sl0ZeVAQBAACAcCIIIi+CIAAAABBOBEHkRbMYAAAAIJwIgsgrkXCDYKoBEgAAAICQCGyzGGPMgKT7JI1JGpXk9V49Zq3dm2P8HklbUuPXShqw1h7Lc+6Cx4ad1zCGLscAAABAeAQ2CKYMSdqc+v7nkg5Ya/uyBxljjkqStXZXxrFTxpgt2aGxmLHVwFseWl9f7pkAAAAAKJUgB8Eha+32pQYZY7okPSppXdZbeyW9bow5aq0dKnZstaBhDAAAABA+1bDgb7vc0DiWeTAj0D28zLFVgSAIAAAAhE81BMEuuc/65TImqWeZY6sCm8oDAAAA4RPkpaHeUs77Ui+3KHdTl82SFjw3mDKq688YFju2pKLRqAYGBvw6fcHWrXNXxV669LZGRuJav75Bb70V18WLVzQzM1Pm2aFUKuHvGvzFPQ437m+4cX/Dj3scbkG5v0EOgpslrbXWHvQOGGMGMpu6GGPWLnGOsdR5ihpbTWKxpOJxqa7OKfdUAAAAAJRIkIPg9hyNW45KOmqM6bXWntX1LSXyLffMVMzYkmtubpYxphyXnmdoyP2VbtjwbjU0SGvXSjfdJN1++4Yyzwyl4P0L1datW8s8E/iFexxu3N9w4/6GH/c43Py8v9ZaRaPRkp4zsM8I5une+fPUn97WD6NLnCazCljM2KpBsxgAAAAgfAIbBPMs5fSqeZslKaP7Z74Qt977TDFjq0ksRhAEAAAAwiaQQdAYMyDpagHP9UlueFu/yPuZlcVixlYFuoYCAAAA4RPIIJiSK5R5zVzOZhzrU/4q31rN7xJazNiqwNJQAAAAIHyCGgT7JG3N3vhd0idSf34149hRSZuzq4fGGG/bid5ljq0KVAQBAACA8AlqEPyqpOOZgS0V1vbI7SaaDojW2j5Jz0g6kHWOA5IOprqLFj22WlARBAAAAMInkNtHWGvHjDE7JR1IbbngPde3NVdYs9ZuN8bsMcYckDQiqVPSqRybzxc1thrQLAYAAAAIn0AGQSnd5XPXkgOvjz+49Kjix4YdS0MBAACA8Anq0lCsEJaGAgAAAOFDEMSikkmqggAAAEDYEASxJIIgAAAAEC4EQSyJ5aEAAABAuBAEsSQqggAAAEC4EASxJLaQAAAAAMKFIIglJRIEQQAAACBMCIJYUizG0lAAAAAgTAiCWBLNYgAAAIBwIQhiSQRBAAAAIFwIglgSS0MBAACAcCEIYklUBAEAAIBwIQhiSQRBAAAAIFwIglgSG8oDAAAA4UIQxJKoCAIAAADhQhDEkmIxgiAAAAAQJgRBLImloQAAAEC4EASxJJaGAgAAAOFCEMSSvIpgMlnumQAAAAAoBYIgCsLyUAAAACA8CIIoCMtDAQAAgPAgCKIgdA4FAAAAwoMgiIIkEiwNBQAAAMKCIIiCUBEEAAAAwoMgiILQLAYAAAAID4IgCkKzGAAAACA8CIIoCEEQAAAACA+CIAoSi7E0FAAAAAgLgiAKQkUQAAAACA+CIApCsxgAAAAgPAiCKAgVQQAAACA8CIIoCEEQAAAACA+CIApCsxgAAAAgPAiCKAgVQQAAACA8CIIoCEEQAAAACA+CIAoSixEEAQAAgLAgCKIgyaSUSLhfAAAAAIKNIIiCsTwUAAAACAeCIApG51AAAAAgHAiCKBgVQQAAACAcCIIoGEEQAAAACAeCIAoWj7M0FAAAAAgDgiAKRkUQAAAACAeCIArGXoIAAABAOBAEUTCWhgIAAADhQBBEwQiCAAAAQDgQBFGweFyamyv3LAAAAADcKIIgCkZFEAAAAAiHunJPoNSMMQOSPm6tHcvx3h5JWySNSVoracBaeyzPeQoeWy1oFgMAAACEQ6iCoDHmUUn35XnvqCRZa3dlHDtljNlird273LHVhIogAAAAEA6hWRpqjFkrKWdIM8Z0SXo0x/t7Je0xxmxezthqwz6CAAAAQDiEJghK+ktJR/O8t13SUPZyUWvtUOrbh5c5tqoQBAEAAIBwCEUQTFXxfrbIkC65z/rlMiapZ5ljq0osxtJQAAAAIAxCEQQlbbfWPrPI+5sljeZ5bzT1/nLGVhUqggAAAEA4BL5ZTKq754FF3l+7xCnGlAp3xYwttWg0qoGBAT9OXZR169ZJki5delsjIwvLf1evNuv8+UlduXJJyWRypaeHEqmEv2vwF/c43Li/4cb9DT/ucbgF5f4GuiLoNW7JeH4vl/WpP/Mt91zu2KoUiyUVjztyHKfcUwEAAACwTEGvCO7N3OIhj3zLPD2ZVcBixpZUc3OzjDF+nb5gQ0Nupt6w4d1qaFj4fnOzdOut67Rp03tWeGYoBe9fqLZu3VrmmcAv3ONw4/6GG/c3/LjH4ebn/bXWKhqNlvScga0IGmMeVv4uoWkZ3T/zhbj1SlUAixlbrdhLEAAAAAi+QAbB1LN8ndbaswV+ZEzXl33mkrm0tJixVYeGMQAAAEDwBXVpaJek+4wxp7KO35f685QxZkzSV1NhsS/jvWxrU+97ihlbdQiCAAAAQPAFMgimtopYsF2EMeaopEflbieRuYTzqKTnjDFrM48bY7zA17vMsVWHvQQBAACA4Avk0tACzFvaaa3tkxscs7eZOCDpYOYS02LGViMqggAAAEDwBbIimC21l+An5C4ZldyK3lm5XUWHJMlau90Ys8cYc0DSiKROSaestceyz1fM2GpDEAQAAACCLxRB0Fp7UNLBAscVc05koWsoAAAMxv3VAAAgAElEQVQAEHxhXRoKn1ARBAAAAIKPIIii0CwGAAAACD6CIIpCRRAAAAAIPoIgikIQBAAAAIKPIIiixGIEQQAAACDoCIIoCl1DAQAAgOAjCKIoBEEAAAAg+AiCKEoi4S4NTSTKPRMAAAAAy0UQRNGoCgIAAADBRhBE0egcCgAAAAQbQRBFIwgCAAAAwUYQRNFYGgoAAAAEG0EQRWMvQQAAACDYCIIoGhVBAAAAINgIgigazwgCAAAAwUYQRNGoCAIAAADBRhBE0XhGEAAAAAg2giCKxtJQAAAAINgIgigaS0MBAACAYCMIomhUBAEAAIBgq1vJixlj3ivpPklj1tofruS1UToEQQAAACDYfKkIGmOeMMbEjTFfzDi2U9Lrkk5Jes4Y81M/rg3/xWIsDQUAAACCzK+loT2SfmGtPSFJxpg2SUclOZKOSzoh6SPGmP/bp+vDR1QEAQAAgGDzKwhukvRwxutHU38esNb+Z2vtLkmflLTdp+vDRwRBAAAAINj8CoLrJI1kvN4lKSm3KihJstb2Sdrs0/XhI7qGAgAAAMHmVxA8K+kvpfSzgZslnbXWvuENMMZskjTm0/Xho2SSMAgAAAAEmV9dQ78s6QfGmL2p10lJe7PGPC1pyKfrw2fe8tDa2nLPBAAAAECxfKkIppZ9fkRuU5jjkj6ZuV2EMeZvJW2V1OfH9eE/KoIAAABAcPm2j6C19qzcZwNzvfdlSV9OdRNFANEwBgAAAAiucm0of9Va+6/W2vGVvD5Kh70EAQAAgOAq14byfWwoH2xUBAEAAIDgYkN5LAtBEAAAAAguNpTHssRiBEEAAAAgqNhQHsuSSPCMIAAAABBUbCiPZaFZDAAAABBcbCiPZeEZQQAAACC42FAey0IQBAAAAIKLDeWxLDSLAQAAAILLr2cEC8KG8sEVj/OMIAAAABBUvlUEJckY0y13T8E2a+1DGccfl9Rnrf2ln9eHf1gaCgAAAASXb0HQGPMzSffJ3UQ+mfX2LyU9b4zZZK2N+DUH+IeKIAAAABBcviwNzWgGc0jSf85+P9VMZkDS3/pxffiPiiAAAAAQXH49I/inkj5hrf2ytfZYnjFn5S4bRQB5FcFkdq0XAAAAQMXzKwhuttY+v8SYtakvBBRVQQAAACCY/AqCvzDG/KclxjwityqIgOI5QQAAACCY/GoW87eSnjbGbJE0b2moMeY/SjogqU1sKB9o7CUIAAAABJMvQdBa+4wx5rikL0vaK0nGmBFdXwrqSBqw1v6lH9fHyqAiCAAAAASTbxvKW2t3yV3++Uu5wW9d6k9H0kFJXX5dGyuDZwQBAACAYPJ1Q3lr7TOSnpEkY8wmSaPW2nE/r4mVQxAEAAAAgsnXIJjJWnuu1Oc0xqyV5C0vXStps6TnrLUH84zfI2mLpLHU+IF821sUM7ZaxWIsDQUAAACCaMWCYDZjTKuk9dbaN5b5+bWSjltrt2cdO2eM6bHWbs0af1RKL1n1jp0yxmyx1u5d7thqRkUQAAAACCbfgqAx5quSHpZbpcsneQNzeETSw8aYo15gs9aOGWP6Use7rLV9qbl0SXpU7nOKmfZKej11jqFix1Y7giAAAAAQTL40izHG/Fe5wWmLrjeIyfV1I9f/udxlmwMFjN0uachaO5Z5MCPQPbzMsVWNrqEAAABAMPlVEXxE0uuSPpnv2UBjTJuk9cu9gLX2rBZW7SQ3qI3JDYqertSxXMYk9cjtZFrs2KpGRRAAAAAIJr+C4KikZxZrEJPqHlrSDqLes32SdmZV9DYr/+b1o5q/fLWYsSUTjUY1MFBIcdNf69a52frSpbc1MrJ4ue/atTpdvlyvVavGNDaWLzujElXC3zX4i3scbtzfcOP+hh/3ONyCcn/9CoJnJd3n07nnMcZslrRLbiVvraStqWqh9/7afJ9NGVMq3BUzFlIsllQ8LjmOU+6pAAAAACiCX0Hwy5JeM8bcYa1906drSEo/u7dXSjd6OWCM2ZXxTJ+3/LSQklUxY0uqublZxpiVvuwCQ0Pur23DhneroWHxsU1NUlubtHnzTSswM5SC9y9UW7duXWIkgop7HG7c33Dj/oYf9zjc/Ly/1lpFo9GSntOXZjGpELZdUp8xpiXfuNQWEqW8bp9SDWRSlULJXc65mMwqYDFjq14sJs3NlXsWAAAAAIpV8opgqgmM16hls6Q3jDFewPIqbl6gupHtI/J5Tm7DmAOStqe2lMi8Zrb1SlUAixkLKZGgaygAAAAQRCWvCKaawGzR9a0j1mW8Xpf6ytxCYlmMMUeNMbmexPSWhHZlHBvT4h1KM/cFLGZsVYvF6BoKAAAABJFfzwhu1fXK2WgqHEpasG3EjSy1fDR1vvsym8PoejOXzGWefcrfvGat5ncJLWZsVUsmr1cFa2vLPRsAAAAAhfIlCFprf7HIe6XaNuKspL6sECi5IVSSnsk4dlTSc8aYtZnbShhjvMDXu8yxVc/bVJ4gCAAAAASHL81iVshOSZszt3xINYh5VNJZa+1e73iqicwzcp8bzHRA0sHMMFnMWLA8FAAAAAgiXyqCxpi4pHXW2sgiY3ZKGrHWnl7ONay1Z40xe+VuF5G51HSvtfZgjvHbjTF7jDEHJI1I6pR0ylp77EbGVjuvIggAAAAgOPx6RtCR+xxg3iAo9xm+v5S0rCAopbep2FXE+AUBsRRjq1k8TkUQAAAACJqSBEFjzIcyXnrP1W3KsUG618Bls9wAl68pCwKCIAgAAAAET6kqggclfTzr2FLdNR1JubZ/QIBMTUnRqHTLLeWeCQAAAIBClSoI7pX0V5LaUq8/LukXmr+FQ/befEOpzyHAIhFpvBQ9YAEAAACsmJIEwdR2Edu918aYhKT/uFizGIRDNCpNTLj7CdYEuQctAAAAUEX8+r/unyAEVod43A2Ck5PlngkAAACAQvkSBK21z/txXlSmiQmWhwIAAABBUrKuodbaX2a+1vXuoaOZ1UFjTKuuPy+4NvNzCCYvCG7cWO6ZAAAAACjEDQdBY8xrkt5rjHkkY3P4s5KSGWPyfTxZijmgvCYm3KYxAAAAAIKhFEtDf5E6z1DWcSf1NZ76Opf6Gs94j/YiITA76zaNmZkp90wAAAAAFOKGq3HW2u05jhHwqoy3PLShodwzAQAAALAUAhtKgoYxAAAAQHDccBA0xnzIGPPeEswFAcZzggAAAEBwlKIieFbSfy3BeRBgk5NuGIzFyj0TAAAAAEsp1dLQBYsCjTFtxpjfGmMeL9E1UMGSSbdhzMREuWcCAAAAYCmlCoKjOY6tl7SlROdHAPCcIAAAABAMpQqCY8t8DyFCEAQAAACCga6hKJmJCfcrmSz3TAAAAAAsplRBcGSR93ItG0UIxWJuEJycLPdMAAAAACzmhjeUT9lljOmUG/q8paBrJSUl9aTeU8bx9anv26y1D5VoDqgA0ai7jURzc7lnAgAAACCfUgXBzcrfGGZ7jmNJSU7qT4SI95zge95T7pkAAAAAyKcUQfB5uYFuTPMrgvl4FcG1Jbg2KgwNYwAAAIDKd8NB0Fr7iVJMBOEwPe0uD52dlVavLvdsAAAAAORC11CU3MSE+5wgAAAAgMpEEETJsTwUAAAAqGwEQZSc1zkUAAAAQGUiCKLkvCAYj5d7JgAAAAByIQii5BIJNwxOTJR7JgAAAAByIQjCFzSMAQAAACoXQRC+oGEMAAAAULkIgvCFFwSTyXLPBAAAAEA2giB8MTcnTU5KU1PlngkAAACAbARB+IbnBAEAAIDKRBCEb3hOEAAAAKhMBEH4hiAIAAAAVCaCIHwzNeXuJzg3V+6ZAAAAAMhEEISvolGqggAAAEClIQjCVzSMAQAAACoPQRC+4jlBAAAAoPIQBOErryKYSJR7JgAAAAA8BEH4KpFwnxOMRss9EwAAAAAegiB8x/JQAAAAoLIQBOE7GsYAAAAAlYUgCN+xhQQAAABQWQiC8N3srBsGp6fLPRMAAAAAEkEQK4TnBAEAAIDKQRDEiiAIAgAAAJWDIIgVQcMYAAAAoHIQBLEiJifdMDg3V+6ZAAAAACAIYsVEo24YBAAAAFBedeWewI0wxhyQtFbSR1KHjlprj+UZu0fSFkljqc8MlGIsCuc9J7h+fblnAgAAAFS3wAZBY8xzknZZa4dSr7skPWeM+YS1dnvW2KOSZK3dlXHslDFmi7V273LHojg0jAEAAAAqQyCXhqYqgXu9EChJ1to+ScckPWyMeThjbJekRyVlh7i9kvYYYzYvZyyKNzHhfiUS5Z4JAAAAUN0CGQQldUk6lSOYnUr92ZNxbLukIWvtWObAjBD58DLHhs65343rv3x3SP/60pCSyWTJzx+Pu0FwcrLkpwYAAABQhKAGQUnanPrKNJrxnqdL7rN+uYxpfmgsZmzo/L//c0ivvTWps+d+p9HpK75cg4YxAAAAQPkF9RnBj0vabK09m3XcC4A/zzrWl+c8o5ofGosZW1LRaFQDAwN+nb4go6NX09+/NTKsuonZkl+jtrZe7e01mpwcU4SNBcum3H/X4D/ucbhxf8ON+xt+3ONwC8r9DWQQTC3dzA6B0vWK3VFJMsasXeJUY0qFu2LGhtWtbfWqldQg6Vps0pe/HJOTCU1P16m2ttaHswMAAAAoRCCDYC7GmPvkPsN3MKNS6G1UkG+5Z6ZixpZcc3OzjDHluHTa4C9+qvvkrtu85Mzqtts2lvwaq1ZJDQ3S5s03lfzcWJr3L1Rbt24t80zgF+5xuHF/w437G37c43Dz8/5aaxWNRkt6ziA/I5jtlKRjWVs8jOYbnJJZBSxmbChteFdz+nsnNuNLw5hr16TpaWluruSnBgAAAFCgUATB1N5/fZl7/0npJaRS/hC3XqkKYDFjw2rjxus/+ioldS0x48t1pqfpHAoAAACUU+CDoDFmj6Sx7BCYYUzXl33mMpTxfTFjQ+fmDdcrgg2SpuL+tPecmnK/AAAAAJRHoINgauP4m7KWg3obznv6lL/Kt1bzu4QWMzZ01t/clP5+taSpOX8KoFQEAQAAgPIKbBBMNYfpzBEC12p+mDsqaXN2V9DU5yWpd5ljQ6e+vla1q92/Eo4czcX8CYJUBAEAAIDyCmQQNMZslvS8pPuMMc9lfA1IOicpvXmHtbZP0jOSDmSd5oDmdxgtamxYNbWtSn+fjPmzNJSKIAAAAFBeQd0+4pTcql9XnvfnPctnrd1ujNmTWjI6IqlT0ilr7bHsDxYzNoxuurlBkctukxgnMa1kMinHcUp6jczOofX1JT01AAAAgAIEMghaa4venMNae9CPsWFzyy0NOpf6fpUSupaY0eraNSW/zvS0uzy0ra3kpwYAAACwhEAuDYV/WtetTn/fIMfXzqEsDwUAAADKgyCIedrWrlZS0oySmlVS0zwnCAAAAIQOQRDzNDTWqumudv0vJTSkJHsJAgAAACFEEMQ8juPo5rbr+wlOUREEAAAAQocgiAVuamlMfz8Vn1AymSz5NTI7hwIAAABYWQRBLNDcsEp1NW5D2XhyTnOJWV+u43UOBQAAALCyCIJYIB5P6NaaBm2Qo1vlaCoe8eU6dA4FAAAAyoMgiAVmp2d1W2xat6tG75LDc4IAAABAyBAEscCaxgZ5TwWukjQdG/flOnQOBQAAAMqDIIgFampr5NS6G8s7chSP+bM0dGaGiiAAAABQDgRB5FS7qjn9fTI+6Uvn0NlZOocCAAAA5UAQRE6rVrVe/15xzSXpHAoAAACEBUEQOdWuakl/3yA2lgcAAADChCCInOoyloY2yNF03J8gSMMYAAAAYOURBJFT7aqm9PcNkqbm/GkYQ0UQAAAAWHkEQeTk1KxS0qmVJNXK0TWfNpXnGUEAAABg5REEkZPjOFJtRufQWJTOoQAAAEBIEASRV+2qDRqRdEEJTWlOc8lrvlyHqiAAAACwsgiCyKuu6f26XNeit5XUrKRpnzqH0jAGAAAAWFkEQSyqsfb6NhJTPj4nSMMYAAAAYOUQBLGoNXUZQdDHiiBBEAAAAFg5BEEsan5FMOrLNXhGEAAAAFhZBEEsqjE2ri1y1KEaJefGfbmG1zk0FvPl9AAAAACyEASxqNpYROtVo0Y5qldMc4lZX67Dc4IAAADAyiEIYlFOxl6CDfL3OUGWhwIAAAArgyCIRTm1TenvGyRNxf0JglQEAQAAgJVDEMSinLrrFcE1cnzdS5AgCAAAAKwMgiAWlbk0dLWkqZh/ewmyNBQAAABYGQRBLMqpWaWkUy9JqpWjOZ8qgnQOBQAAAFYOQRBLqsmoCtbpmuYS13y5DlVBAAAAYGUQBLGkzOcEG+T42jmU5wQBAAAA/xEEsaTM5wTXSJr2sXMoFUEAAADAfwRBLGn+XoKOpuL+NIyhIggAAACsDIIgluTUt2mmoV2/UVxDSvi2NJS9BAEAAICVQRDEkpyaBtU3btGEpDn5t6k8nUMBAACAlUEQREEaaprkpP66zCVmFaNzKAAAABBYBEEUxHEcNWY8K+hXVZDloQAAAID/CIIo2Jq6VtVIqpN83UKCiiAAAADgr7pyTwDBkLj2jm6/9o42qVajSlIRBAAAAAKMiiAK49SpNul2cWmQNM2m8gAAAEBgEQRRkPl7CUpTMX/2EqRzKAAAAOA/giAK4tTUS84qSVKNHDnJWcUSc75ci86hAAAAgL8IgiiYU5dVFeQ5QQAAACCQCIIo2PzloQ6dQwEAAICAIgiiYNnPCU5TEQQAAAACiSCIgi2sCPrTMIaKIAAAAOCvUARBY8xaY8zacs8j7Jy6pvT3a+TfM4Kzs24QpHMoAAAA4I/AbyhvjHlY0nFJeyUdW2TcHklbJI1JWitpwFqbc3wxY6tKTaPcfztIqF6O4okZxRJzqqupL/mlvM6hra0lPzUAAABQ9QIbBI0xz8kNakNyw9piY49KkrV2V8axU8aYLdbavcsdW20cx5FT26RkfELXlFS93OcEW2rWl/xaBEEAAADAP4FdGmqt/YS1druko4uNM8Z0SXpUbsUw015Je4wxm5cztlrVtXXq3Kpb9CslNCP52jmUhjEAAACAPwIbBIuwXdKQtXYs86C1dij17cPLHFuVnNpGram7XoBlL0EAAAAgeKohCHbJXUKay5iknmWOrVqNdS3p79lLEAAAAAieagiCmyWN5nlvNPX+csZWrcba60HQr70E6RwKAAAA+CewzWIKUcCWEmNKhbtixvohGo1qYGDAr9MXbN26dZKkS5fe1shIPOcYR9fUUi81OI7eSUxr+K03VaPaks/l7bcbNTQ0q5mZdzQ3N1fy83vq6uoUq7LEWQl/1+Av7nG4cX/DjfsbftzjcAvK/Q17RdBrZ5lvuedyx1a1dfW/1V1Ord6rGq2WNOfM+HKdaDSh6eka1dX59+8VTU1NWrfuJq1Zs8a3awAAAACVJtQVQeVf5unJrAIWM7bkmpubZYzx8xIFGRpy++Js2PBuNTTkHjM3Nqzk3IgkqUFS0/o12tCwseRzaWyUmpulLVs2lPzcnkRCevVV6Z57fLtERfH+hWrr1q1lngn8wj0ON+5vuHF/w497HG5+3l9rraLRaEnPGeqKYEb3z3whbr1SFcBixlY7p7Y5/f0aOYHeQuLSJeniRfeZRAAAAKBahDoIpozp+rLPXIYyvi9mbNXKDIIN8q9hjLepvF8SCen8efcaly75dx0AAACg0lRDEOxT/irf2tT7yxlbtZy6zCDoaCoW8eU6MzNuSIvn7llzw955xw2Ab7whXb7szzUAAACASlQNQfCopM3ZXUGNMfelvu1d5tiq5dQ2pb9vkDSbmFY86U/XTS8MlloyKb35pvTWW1IkIo2OsoE9AAAAqkcYguDarD/nsdb2SXpG0oGstw5IOmitPbucsVWtZo28vzr1clQr+VYVnJqSJnxYeXrlilsFHB+//prloQAAAKgWge0aaow5Kndfv4+kDh0wxvTIfY5vZ0bzF1lrtxtj9hhjDkgakdQp6ZS19lj2eYsZW60cx5FT16xkKvytkfTm5CvqaNsmx3FKeq3Ll93K3a23SqXcRcKrBnq8YLhpk1TiHwEAAACoOIENgtbaXUWOP+jH2Grl1F4Pgg1ydGXuii7NvKl3rXlvSa8TiUgXLkg33yzdeWdpzjky4oa+q1evH5uacpeHRiJSW1tprgMAAABUqjAsDUU5ZD0nKEnnJl/STLz0D/S9+ab7FSnR6tM333TDZTaWhwIAAKBaEASxLDV1rXJqW+SsepdizmpJUiIZ12sTv1AymSzptWIxt7Onte6WDzfi6lU37I2OLnzPqxTe6DUAAACASkcQxLLUrH636tffr/q2j+jWts708fG5K7o480bJr3flivtMX65KXjGynw3MNDvrBsVcIREAAAAIE4IgblhL/XrdtuZ96ddvTA76skT03DlpaGj520mMj0sXL7qhMh+WhwIAAKAaEARRErc33aU1te5G834tEZ2ddSt6r766vM+/+ab0u98tPmZkxA2DMX+2RQQAAAAqAkEQNyyZjCk5+7bubPlw+phfS0Tffttd2vn228V9bmLCrQa+887i42Ixd2noYlVDAAAAIOgIgrghyfikYld/rPjEL9UYn1qRJaKvv+5+XbtW+Ge8amAhRUqWhwIAACDsCIK4IfGp15SMT7jfT/xa7avf7fsS0akp6fx56bXXChsfjboVxMuXCxt/9aq7RLSYoAkAAAAECUEQN6S2qUNOKvhJCcUjv9CdTfem3/drieiFC24YHBlZeuz5824QLHRbiETCPS9VQQAAAIQVQRA3xKmpU13rRySnzj2QmFbD9Bu6rWFLeswb0dIvEU0k3C6ir766eGOXqSl3SejFi8Wd/8qVwiuIAAAAQNAQBHHDnLpm1bV8KP06OfeObnNqry8RlT9LRMfH3crguXP5xxRbDcw89+jo8reqAAAAACoZQRAlUbP6XappvN4oJjn9ukzDHenXfi0RffNN9ysSWfjezIzbYbTYaqCHpjEAAAAIK4IgSqa20cipvyX9un7qNd2++noYdJeITpb0mrGY9MYb7hLR7Krf+fNuCIzHl3dugiAAAADCiiCIknEcR3WtH5Zq1rgHkjFtiI2pqaZJkrdE9JclXyJ65Yq7RPTChevHZmeXt99gpslJt4NormojAAAAEGQEQZSUU7PKbR6T+qvl1KzWluYPpt/3a4nouXPS0ND1Z/qGh91q4GKNZApBVRAAAABhRBBEydXUt6m25QOqWbNZdW0fVcvqW+dvNB8d1HQ8WtJrzs66zwq++qq7/99bb7ndQm+U1z202GYzAAAAQCUjCMIXtQ3tqmu+R47j/hW7vemueV1EbeTnSiSX+fBeHm+/7QbAX//a/X5u7sbPOTvrLg+9evXGzwUAAABUCoIgVkSNU6v3t2xVTeqv3GRsXEPRl0p+nVdflX7zG3dpaKm88w57CgIAACBcCIJYEclkUmuuXdYHaxrlpI5dmnlDl2dKmNjkVvAuXFh+p9BcRkbcMHijzxsCAAAAlYIgCN8lk0nFIj9XfOpV1Sem9f6a5vR7r0/8SlOxiTLObmmxmLu5/MhIuWcCAAAAlAZBEL5zHEc19TelX7cmpnVLTYMk93nB30R+pniyssttdA8FAABAmBAEsSJq1mxSzer3pF/foVrVpv76Tccn9PrEr0q+v2ApjY66YfDatXLPBAAAALhxBEGsCMdxVNt8r+TUu68TM7pr9bvT778ze0GXZ86Xa3pLSiTcMEjTGAAAAIQBQRArxqlZpdrGO9OvG69d0btWXa8SDkV/rcnYeDmmVhC6hwIAACAsCIJYUTVr3ivVNrkvkjHdXlOvxtoWSVJCCf0m8jPFEiXYANAH4+Nuw5jp6XLPBAAAALgxBEGsKMepUV3TPenXyZkLMo13q8aplSTNxCf1WvSXFfu84MiIdPFiuWcBAAAA3BiCIFZczeoNcupvSb+un3lD72v6D+nXI7O/08WZc+WY2pLeftvdp3CuMouWAAAAQEEIgiiLuuZ7pNTW8sn4lG5edYve1fDe9Pvnoi9pYu5qeSa3iNlZNwwOD5d7JgAAAMDyEQRRFk5di2rWbFFto1H9+gfk1DZoU/O9aqprkyQllZSN/EyxROXt13DhghsE2UoCAAAAQUUQRNnUNd+l2qY75aSeD6xxanVXa6dqnTpJ0mxiWq9O/KLinhe8ds2tCp6v3N0uAAAAgEURBFFRGmqbdGfLh9Ovr167qN9Nv17GGeX21ltuZXB2ttwzAQAAAIpHEERFScQiumn1e/SeNVvSx96YfFlvTw9VVGVwbk763e+kN94o90wAAACA4hEEURGSsajmxl9U7Oq/KzE3rjua7lFL3TrvXQ1F/5denRioqD0G33rL/WJfQQAAAAQNQRAVITb5ipLX3pEkxScH5ciRae1MN4+RpCuzb+nXY/+uqVikXNOcJx53gyBVQQAAAAQNQRAVoa7pbqW3k5gbVfLa21pdu0YfXPv72tBwR3rcdDyqX139d12eqYz9Gy5edMPg5GS5ZwIAAAAUjiCIiuDUNatmzXvTr2PRV5RMxlXj1Op9LR/SnS33qUZud9GE4vrtxFm9NvErJZLxMs3YRVUQAAAAQUQQRMWobXy/5NS7LxLTSkwNpd+7taFdH1z3B1pT25w+dmnmDf167H9qJl7ectylS27jmImJsk4DAAAAKBhBEBXDqalXbZNJv45PvaZkfCb9uqmuVR9c+we6efVt6WOTsXH98uqPNDL7dlHXiiViik6/qfGxn2giMqB4fPn7QCQS7lYS584t+xQAAADAiqor9wSATDUNtysx/aaS8QlJccUnf6O61g+l36+rqdf7W7aqtX69zkVfUlJJxZNz+k3kp7ptzft0R9Pdcpz5/76RSMY1GYsoGhvT9NyIVl0bUUvymtaknkmUpJnZt3Wt4Xa1Nd2rmpri/33k8mV3k/k77pDa2pYeDwAAAJQTQRAVxXFqVFGcDKsAABy8SURBVNvcodj4TyRJidkLSszdoZr6dRljHL17zWY1162TjfxMswl3/4a3pl/TROyqbm+8W9PxCUVjY4rGxjQViygpdw/CFkl3qVbKCIGSVC+pfua8xmYuSE13ad2aTXKc+WMWk0xerwp+6ENLjwcAAADKiaWhqDg1q26Ws2pD+nVi9q15m8knk0klk0m11K/Tf1j3gNatujX9XmRuRC+N/38aiv5K12be1HRsPB0CJWlC0mzqdVzSRM1qXcu4drMSapwc1O9Gn9PV2YtFbWL/zjtuVfDq1aJ/ZAAAAGBFURFERaprvkdzo5cl1ai2qUNSUuntJWJjio39RKpdLaemQXc6DYrW3aSR2KhikpolrZejOjkaUkIjSqqhtknNdWvVXLdWTmJOTm2TGhpu0xqnVnOxaUUnfq7G2LgcSTVydMv/3969L8dtJfgd/wHdZPOuJnWxLMmyRdk+np3xzqzoqWQrmSRbI+W//Gft5AVGegOp/AQu6Q0kv0BmpT+zW7UrpbKpSuWPXVOzWW+SOTMjasa6WNa1RVFk3wDkjwOQaLCbbIpXEN9PVatJNIA+1AHQ/cM5OAib+uP8P+jBwJTeH/2BJgYO9lXuBw+kuTlpZmZ7/l8AAACArUAQxJ7klUblD08rbH4Xd9FMddMM65ICKVhUFCxKkkYljXZp4H6/XNWHB/61yv5gz/caKA9rcvJnajafqjn/aw1GTS0q0lNFilrP9U3tf2py8IhOjvxAYwPVNcv9/LkbRfTZM+nQobf4wwEAAIAdQBDEnlUaNfIHV6epKOxzhE9/WAOD76iU3JJiHYODhzVw8Jyai+5aQzUfS3E30pfNJ5pvPlF14F2dHPuBRsrjPdfz7bfS4cPSwYPSBi4zBAAAAHYMQRB7luf58gYPr5ruD70vv3JcCuuKwoaisB7/XFcUNOT5FflDx+SVJzc04It7T0+V0Y/0nqRDwRvdf/MbPW08kCR9KF9+63vZl9/pwPC0To58orK/OmTWaq5V8MkT6Z13Vr0MAAAA7DqCIHbUwED32yukx2TJjs8SBNKrVyu/e57nbjzvD8hT75a5zRoujerjiRmdaH+kF/O/1kTg7hj/J/L1ZOme/qn+QCfHfqTDlROrAuf9+65V8PBh6S3uRgEAAABsK4IgdkS5LB075h7pcLRWAEx+bzRc69of/+ha23baSHlClaH31H7z/+QpkidP78jTVNTW/de/1vdLf9Dp8R9rpDyxvMyrV9Ljx65l8N13d77MAAAAwFoIglilVIp08qS7FcLz56sD2sbW5YLQsWPSiRPuhuuVysbX8+yZu+buu+9cIFxcfPsyvY3SyLT8wSNqL/yLotYzSdKAPE3L03y7pt+8/HtNDp/WeyMfL3cXvX9fOnLEdQ+lVRAAAAB7CUEQHRYXF/X++wMaGZEePnQtcU+euJatZnP95RO+Lx09Kh0/7h7vvy8ND799uQ4dkqamXCvboUPSo0cuaG2kTJvllcdUPvCvFDW/U3vh/0jxoDUT8vRDSd8v3dX/rt/X+2Of6mDlmBYWPD1+7ILryZMuFAMAAAB7AUEQHRqNhp4+faKZmfd06JBreXv40AWwp09dIExfr5flea4FLAmAH3wgjYxsTdl837UsHjmycg3ew4cuFAbB1rzHejzPk1c5poGBIwoWf6tg6d5yd9Gj8jQVtfTN66/1ff2wTo19qj/8YVy+78JgtSpNTrrH+DgjigIAAGD3EAR7MMZcknRaUk1SVdKstfb67pZq542MSB99JJ065VoGHz503TQfP3bPSQDzPBfQjh93XUFPnZLGxranTOWyW/+xY9K9e+59HzxwIXWneH5Z5bE/kT/0noLX3yhqv5Ak1RQplFRrPdU/vfzvOl7/UIv1jzVQKmt83IXBAwekiYmVUFitbl1YBgAAAPpBEOzCGHNNkqy1F1PTbhhjTltrL+9eyXZPerCXWs0Fwu+/d62Ei4tu+tGjLqBNTKy/vq1QqUiffOLC59ycaxn89lvp5cudeX9J8svj8qp/rrDxSMHi79QaOCDVv5UkRYr0YOl3+m7pnobKoxp8OazKgyEN+kMaHhzS5PiQDk8O6+jBIR0+OKCpKW85HA70d+tDAAAA4K0QBDOMMWclXZA0mXnpsqS7xphr1tq5nS/Z3lGtuseHH7rBW+bn3TVw1erulGd8XPrxj91gNAcPuoBaq0lLS1K97p43M+DNejzPU2nouPzKMZ3yPB0eOqW5hX/W6/ZLlSX9UKFa7ddq6bWaitSUC8/f1SK17ktNSZF8DQ8OaWxoSBOjQzowWtHkREUHqxUdnqzonUMVHZmq6MDYoIYr5Q3fH7FfURSp2Q7VbAXxI5QkjY8MaGRoQL5Pf1YAAID9gCC42nlJc9bajhsVWGvnjDGS9Lmkq7tRsL2mUnHXAO4VBw+61rRnz6SFBRe2FhddEEweSTBMHu321r1/Es7GBqr6tPozPal/q3DhXzSoSIMrc3VdNlCkJ80lPWgu6vv51N8kTxVJYerhe54qQwMaHRnQ2NighiolKZLCwZJU8hRFUhhG7nmppTAMFYWSIqneaCgMI/2XW/9N7XaoVitQ0A7VDiK9CkMtBWFHuY7Ik5d678HBsipDZY2ODmh0ZFBjo4MaH6/owMSQJsYqmhgd0EhlQEEUKQwjBUGoIIwUhJHaQagwCNVqhQoC955BECgMXdfi8mApvkek5MlTFEXy5F5z0z3FL8v3fZX85NmT73sqxQ/388r0JLwm2dmTt3J9prdSI0n9eZ46li+VVtaXTCuX4t9LnvykbMvr0bYFdQAAgK1CEFztrNx1gd3UJP1CBME9y/fdNYNHjqxMC0MXAJNgmH7U6+4RBK7V0IWo7j9nf1+bp6Ptd/Xot79T0KqvW+6SPEVavdIpeapmw2MkaantHs+X1IgnzynU88w6fihfI6nl17ps843CVdOOy1M5/f7N0A3VOt9UpDd6Lem1pEeS/q8CvUkt60v6iXwX5iR5PUJw4o4Cpcf8qUj6U5XiP3nlfyf9FyZrDCX9OlP+MUlGnfftyJYgKVNdkb7JLD8pTx/Gyyfv3q3aI0kLkn6bWf6wPJ3o8jevrGPltYWS9GSo5IKr58JmtRForBF2K3TnL57UGC6rMTYoedLS0qI8SVP/9e800Aiys3aMUuTF/4QTQ4rGBzvWXXq6KDWCtQc1Sl6bGpY3Nrj8/+l5UvjdgtQKloP9Wvx3RuUNdX4cBfdfqcsm2X35Y2PyBlaG5Y3CSOH9+d4LZIpTem9CXqq1O2oFCh4t9PXenuepfPJAx7So3lb7+z6XL/sqH+/sTx++aSp41v0eOa14qOS/+etbbvlKWeWjnXt2ON9Q8HKpr/f3RwZUOjzaMS14uaRwvtFjiczy4xWVpjqHhA6eLSp809+QzqXqkPwDQ53Lf7+gsN7fWbrSwRH5Y4Md09qPXitq9TeCWOnIqPzhzr747fuvFIX9dSMpvzsub7Bz22vfX2NEtezy7x3o2PZqz15o8GV7uX7XstPb3qrl2fbeattL9uG//cf/tae2vagVqP3odV/LFmnb8zxPP/zZB/pPP5tWubT/7gXmRdvZZy6HjDGRpNvW2nNdXrsracpam+02+tZmZ2f/XtK/36r1obtSqaRyubz8SH4PgpLqdU9R5GWCXvp3LxMG+2/ticJI9XpT9cWmGkst1Zeaaiw1VV9qqRH/3FhqKghCHf/kuCoHx/Wm3tJCvaU39ZaCB89UarT6eq9+guBarALNSyr5nsq+r3LJ18eNsO+zRd8oUDry+pJm1P89M9YKgusJFOlOlyD4gz6X7xYEp+TptPo76L9WpN9kln9Hnk72ufxzhZrL1N0JeXq3z+UfK9T9zPLT8nSwz+XvK9TjzPJGvib63Ha6bXs/kq/hPpf/jQJlv378mfzOkxBrYNt7+23vhULdZdvrwLbHttcPtr1ibHuhIs0q1H/+d4f0yYmhVa/vkv8xMzPzH7ZiRbQIphhj1rvKrSZpeifKgq0VBIGCIFCj0Xm2x/d9lUqlVLdA123Q972Oad2eN8It48kdaisd64iiSO1WJM/34kFiBuR5g/I8T3/4ra/X8y21W6GCIFLQCtVsharXAzWbgZpNN93zpL84PaHqu6Ou/PHfce/OUzXetDs+VjxP8ktxt8ak62PJ03+cOazDR4fle65bZhRF+ud/eKpmM1DQjtRshmo0AjUb7trBditU0HLdP6N2pJ98NKk3QahGM3StWl4kfdt5di9SqkEq6ecZ+/OPj0glT0mbWdgI1Ppdr8b5Tr7n6dMPqgpC1y02DCP59UB6vn5rrCSVfV8n4jPLURQpjKShelta7P++JCsl3xp56lzK6UQAwH7lSTo8Oaz9+GlHi2CKMWZa0l1JN62157u8PivpjLV2y76jJS2CY2Njiq9B3FWzs7OSpJmZmV0uCbbDdtZvFEWrAm6zEciPA6fveR3dUDay3iiKu/tFkaKw832SxDQw0HkmMgojBWEYz7ISOpPukV5q+V7hPooiKYoP/ZHrINo5Lf67fW/V+7eabTWbgaL08nHIjFLXT4ZhJL/kqzI8oDC+tjIMI71ZaGhpqakgiP/++G9fbp1WFP+fSJXhskYnhqRI+v3d3yuKpEPVo1pabLnrR1P/h5HS63OvjVWHNDKROtMZSS+fLKhZb6UndfwQRSvddSemRlQZGVh+OYqk5w/n1W63FUXrh9rqkTENZrpIPf22puznU9euuZF08NiEyqkuUmEY6em3PU4idFnJ4ZPVjoGQ2q1Azx/O914gzfN05P3Oc4jNeku1x/11kfLLvg6d6OxiVX/T1PzTN13nr9Xc31WNR+caGCpr8uh4xzyL83UtvOivi1RldFAHMl2kFl4uafFVfydRhicqGp/qvP/Nq6dv1Oize97o5LBGM93zXj5+rVaf3fPGD41qONM97/nDeQV9dg2tvtNj2+uze95Ul23vWa9tr4tDmW3v0YNHWnjWWK7fNe3wtpfFtvd2216yD39gTuypba/dCvTi4Rpd6tOKtO15nv7Nvz2ld6b6u8/Xdn7PstZqYWFBokVw27xY5/VdGhcT2PuyYcrzPFWGNn+ISVpp5Xsb6PQieb6nsr+RJbq/90qG3FiIHRgsa2BwE39/nx86Wa+euHLO/NmJt39vSfrkyPrzrOXTdze3/J8e29zyPzm+ueU/29zi22XlS8aPdrkk2+jHm11+k3W/2eU3se/Nth9LR4f3d/3uZTuw7a3swx+81fJr2uxxf48e97B99t9Vj5uQGim0V+CbUu+BZAAAAAAgFwiCq9XkAl8vhb6HIAAAAID8Iwiudlu9WwSr8esAAAAAkFsEwdWuSZrOjiBqjDkT//irnS8SAAAAAGwdgmCGtfa2pJuSrmReuiLpqrX2zs6XCgAAAAC2DqOGdmGtPW+MuWSMuSLpuaSfSrphrb2+y0UDAAAAgE0jCPZgrb2622UAAAAAgO1A11AAAAAAKBiCIAAAAAAUDEEQAAAAAAqGIAgAAAAABUMQBAAAAICCIQgCAAAAQMEQBAEAAACgYAiCAAAAAFAwBEEAAAAAKBgviqLdLkOhzc7OPpB03Pd9jYyM7HZxtLCwIEkaGxvb5ZJgO1C/+x91vL9Rv/sb9bv/Ucf723bW7+LiosIwlKSHMzMzJ7ZineWtWAk2ZUySwjBc3nj2gr1UFmw96nf/o473N+p3f6N+9z/qeH/b5vrdspRJENx99ySdkrQg6fe7XBYAAAAAe8+HciHw3latkK6hAAAAAFAwDBYDAAAAAAVDEAQAAACAgiEIAgAAAEDBEAQBAAAAoGAIggAAAABQMARBAAAAACgYgiAAAAAAFAxBEAAAAAAKhiAIAAAAAAVDEAQAAACAgiEIAgAAAEDBEAQBAAAAoGAIggAAAABQMARBAAAAACgYgiAAAAAAFAxBENiHjDFVY0x1t8sBAACAvam82wUAsLWMMZ9L+krSZUnX15jvkqTTkmqSqpJmrbU95wcAbD1jzKykn1tra11e4zgNYNsQBCGJD5v9wBhzS67+5uTqcK15r0mStfZiatoNY8xpa+3lbS0oNsUYc0Wufj+LJ13rta+yX+dP3JL/RfxrVdK0pFvW2qs95qeOc8wYc0HSmR6vcZzOmTjUn5HbH19Imopfut6tzth/8ys+6X5Oru4k6W63utvrdexFUbTbZcAu6/VhI2mOD5v8McZMS7or6WKPg9JZSbckTabPQKeWO22tndup8qJ/cdi/mNRPqi5vWmvPZ+Zlv86ZOAR+la7LeNo9uXqbycxPHedYXLezcmE/ezzmOJ1DcRBMTuDUJH0t6Yq19naXedl/cypbd3EovCHpXLqu81DHXCNYcPGHzQW5boRplyVdij90sL+clzsIdXRDSn2p+Hzni4T1xC2Bl9Nf/uIPnOuSPo8/iJJ52a/z6S/l6vJaMiHeT29LOhPXqyTqeJ/4QtK1Hq9xnM6nOWvtaWutZ62dtNae6xEC2X9zKv4sPpsOdykvUvPloo4JguDDpnjOaqUrQ1ZN0i92sCzo31lJN7p8eNyIn9P1xn6dT1/L7YOzfcxLHedY/CXxH9eYheP0/sb+m0NxK/4lZcKdtfZmHP7vpCbnoo4JguDDpnimlTprlfEifh1707RW18+L1GsJ9uscstbeiVsRsl26P9dKN7MEdZxv5621N9d4neP0/sb+m09X4udVrbxd5KKOGSwG0+q9QfNhs8/0cUuJmqjzvernkqYzZxyllfr6OjON/XofSHUT/WXmzDJ1nFPx4BFX1nid43SOxa29yQBAp9V9cBD233xKd89P78PPuwzolYs6JggWGB82hZSMYNbrLBX2qDgEZEOgtHJW8ZrEfr0fxN1/L8p96ahKmkmfAKCO8yvp2r3OQC8cp/NrWlI1HQqMMbPpkV7Zf3MtGQToQnqwl3g03xvJQF95qmO6hhYbHzbF06urUYKb0OeIMeaMXLfBq6mgwH6dc9baOWvt5XiU0IuSrmSuDaWO8+tyr1uBpHCczq9uXX6vyQ0OkrQSsv/mW1WrT8p+qc5B23JTxwTBYuPDpmBSXct61e2UcnDgwrIbWn1/KvbrfSQecbAmaTYVBqnjHIq/JPYaJXQZx+n86tHSm3TbT0aZZP/NuexIsKkTsbmrY4JggfFhU1g1rZyt6oZ7U+VAfO3Y7ewQ1uzX+9Itufq8IlHHeRR3Fftpl2t8e+E4nUM9ugQm+2LSLZj9N9/WqpvPpHzVMdcIgg+b4rmtlQvZs6rqbzQs7KJ4sInaGjekZb/OoTjcf5a9cbxW6utsahp1nC9n5e4FeSMzPTkW3zDG1CR9GYdFjtM5E99M/owxZjJ7y4Au2H/z6Y5675dZuahjWgRxW73PWPBhsz9dkzSdPXOZun7hVztfJPQr7l52MBsCMyOYsV/n0wW5L5LZLxrduoRSxzkS32fsnLX2fPqhlXpKpiUthhyn86nbl/tk/023BrP/5tNtac3BYL7OzLvn65ggCD5s9p9q5rlD3Lf9plYPX35FnYOOYI+J98ufdgmBVXXWN/t1Pt1R930waSFMD0JBHe8vHS0HHKdz6bbcCL/Z1sBz8fOXqWnsv/mUXOP7WXpifMsQqXN/zUUde1EU7XYZsMviriov0tcaGWNuSbqzRtcz7DFxt7JpuQNUcuC5I3eGMnsPsqR74UFJzyX9VNKtLvc6wh4RDxQyq84zjpL7AjktNxrh9dT87Nc5E39B+EKp/TWu97ty9TaTmZ86zqn4+HtOK9195+SO15fTA45wnM6P+Av/V+rcf8/IHbdXjSbK/ptP8T75i/TxOK63WnL7iNT0PV/HBEFI4sMG2OuS60/WmOVcdiQz9uv8iYPfZa20EFXl6q3rLQeoY2DviMNg0iqU7MNf9mrBZf/Np/gSjYtaGfClZ73t9TomCAIAAABAwXCNIAAAAAAUDEEQAAAAAAqGIAgAAAAABUMQBAAAAICCIQgCAAAAQMEQBAEAAACgYAiCAAAAAFAwBEEAAAAAKBiCIAAAAAAUDEEQAAAAAAqGIAgAAAAABUMQBAAAAICCIQgCAAAAQMEQBAEA+5Yx5pYxJjLG3NrtsmwlY8wNY8zd3S4HACC/CIIAgCKoZScYY87EQfHMbhRoLX2U7XNJ03ux7ACAfCjvdgEAANhGqwJgyheSzu5UQTZovbLNSJq21t7ZofIAAPYZgiAAYD97kXlOq+5kQTZozbLFAZAQCAB4a3QNBQDsZ7XM81rzbIoxZjuC5ZaUbS3bVG4AwB5HiyAAoFCMMWclpQePuWuMkSRZa73MvJ/LddM8I2lO0k1r7eXMPFVJL+NfvXiZr+L1TabmuSLpL+Va++YkXbPWXn2bshljovjHmWz30HgdlyV9Fk/6On6vm5n5zkiajcty2hgzHZfxjKQpSX9lrb2ojHj9yXy1ePlfZf8WAMDeRosgAKBQrLW3JU1qpWvlOUmn42nLjDHXJN2QC1GepIuSLhljZnutOw5TN+Jfb8fTqpLuyV3zdz5+r9uSrsTvseGypXS0GBpjrsgFyVuSTsldS3hH0o3se6WXjcPrXbmQelOuK+2FeH3p9Z+J152UcyZ+qWM+AMDeR4sgAKBwrLU1Y0xy3eCctXYu/XocjC5IumqtvR4vc9sYc1UuDH6etLDF60oWvSZp0lq7HLJSr8+kpl+MW9YuyAXMvsvWSxzSLkm6nmqdq0m6HAfUC8aYa10GmElaAk8n7xWHxrtyo5OmW0AvxmVMptUkzRhjLvRTRgDA3kGLIAAAq30RP2db0ZJ79/2ix3LX0iEw5VSX6Xek5QC3Ucm60oPgJK1y2TJL0q/i5y9S05Jla3IhdTlwpn6e7vbm2eCXhGUAQH7QIggAwGpJOLubau1L6zXAyu1uE9MhMG4JPKeV20NMvWUZlQmXyTWB3VoQk2nLoTPVUvmiR3jt5oZcK+Y1Y8xludB5fQPLAwD2CIIgAKCougawuBulJNWSwV76UJNU7RWI4usEv5LranlHroXua7kw2O3WFuuFwxdaHUar0qpwmC6f1KOFr19x99hzWhks5orctY4XaRUEgHyhaygAoOiyQSz5fSO3Veg5bxwsX8qFsNPW2pn4Gr5+WtG6hcQ1rXM7iG6thRtqkbTW3rbWzsgNYpNci3gtFaABADlAEAQA7GfVzPO6unTj3Kzkmr3zmYFfNnP/vilpVehLBoHpVuYzmXk2ff9Aa+1cPGhM0hL4Ntc6AgB2CUEQALCfTWWeu+nWkpW0dK26LYIx5qwx5lK3FfUIV591mZaevtGySSshMr3sl/HzF1rtYmae9LJ9B8Ls7SQyuE4QAHKEawQBAPvZet0kz2jlfn5TqevcvpRrWTtjjHkp6a/kgs4ZuQD382QlfbSs3Za7NvCGMeZLuXB3MfX+l40x1cwN39cqW1fW2pvGmJuSPjfG3JD0y/ilK/HfcrXLrSO6Sv9NcdmSkHcpbiU9b62dS90C4058D0QAQE7QIggAKIJuYe2yXFfJs3KtaMvX41lra/F1cFflQtmF+DEndyuIXoGqW+veL+Vu0j4tN2DMufjx89T7Z29H0bNsa/1d1trzcjetT25ify9+33Ope/+tWrZLmJ3K/hzPk7SUzhpjIrlur1fj/ysAQI54URTtdhkAAAAAADuIFkEAAAAAKBiCIAAAAAAUDEEQAAAAAAqGIAgAAAAABUMQBAAAAICCIQgCAAAAQMEQBAEAAACgYAiCAAAAAFAwBEEAAAAAKBiCIAAAAAAUDEEQAAAAAAqGIAgAAAAABUMQBAAAAICCIQgCAAAAQMEQBAEAAACgYAiCAAAAAFAwBEEAAAAAKBiCIAAAAAAUzP8HiWc3f3jOFaIAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<Figure size 504x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "image/png": {
+ "height": 269,
+ "width": 449
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(1, figsize=(7, 4))\n",
+ "plt.plot(logbook.select('avg'), 'b-', label='Avg. fitness')\n",
+ "plt.fill_between(range(len(logbook)), logbook.select('max'), logbook.select('min'), facecolor='blue', alpha=0.47)\n",
+ "plt.plot(logbook.select('std'), 'm--', label='Std. deviation')\n",
+ "plt.legend(frameon=True)\n",
+ "plt.ylabel('Fitness'); plt.xlabel('Iterations');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### OK, but wouldn't it be nice to have an animated plot of how CMA-ES progressed? \n",
+ "\n",
+ "* We need to do some coding to make this animation work.\n",
+ "* We are going to create a class named `PlotableStrategy` that inherits from `deap.cma.Strategy`. This class logs the features we need to make the plots as evolution takes place. That is, for every iteration we store:\n",
+ " * Current centroid and covariance ellipsoid.\n",
+ " * Updated centroid and covariance.\n",
+ " * Sampled individuals.\n",
+ " * Evolution path.\n",
+ " \n",
+ "_Note_: I think that DEAP's implementation of CMA-ES has the drawback of storing information that should be stored as part of \"individuals\". I leave this for an afternoon hack."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from math import sqrt, log, exp\n",
+ "class PlotableStrategy(cma.Strategy):\n",
+ " \"\"\"This is a modification of deap.cma.Strategy class.\n",
+ " We store the execution data in order to plot it.\n",
+ " **Note:** This class should not be used for other uses than\n",
+ " the one it is meant for.\"\"\"\n",
+ " \n",
+ " def __init__(self, centroid, sigma, **kargs):\n",
+ " \"\"\"Does the original initialization and then reserves \n",
+ " the space for the statistics.\"\"\"\n",
+ " super(PlotableStrategy, self).__init__(centroid, sigma, **kargs)\n",
+ " \n",
+ " self.stats_centroids = []\n",
+ " self.stats_new_centroids = []\n",
+ " self.stats_covs = []\n",
+ " self.stats_new_covs = []\n",
+ " self.stats_offspring = []\n",
+ " self.stats_offspring_weights = []\n",
+ " self.stats_ps = []\n",
+ " \n",
+ " def update(self, population):\n",
+ " \"\"\"Update the current covariance matrix strategy from the\n",
+ " *population*.\n",
+ " \n",
+ " :param population: A list of individuals from which to update the\n",
+ " parameters.\n",
+ " \"\"\"\n",
+ " # -- store current state of the algorithm\n",
+ " self.stats_centroids.append(copy.deepcopy(self.centroid))\n",
+ " self.stats_covs.append(copy.deepcopy(self.C))\n",
+ " \n",
+ " \n",
+ " population.sort(key=lambda ind: ind.fitness, reverse=True)\n",
+ " \n",
+ " # -- store sorted offspring\n",
+ " self.stats_offspring.append(copy.deepcopy(population))\n",
+ " \n",
+ " old_centroid = self.centroid\n",
+ " self.centroid = np.dot(self.weights, population[0:self.mu])\n",
+ " \n",
+ " # -- store new centroid\n",
+ " self.stats_new_centroids.append(copy.deepcopy(self.centroid))\n",
+ " \n",
+ " c_diff = self.centroid - old_centroid\n",
+ " \n",
+ " \n",
+ " # Cumulation : update evolution path\n",
+ " self.ps = (1 - self.cs) * self.ps \\\n",
+ " + sqrt(self.cs * (2 - self.cs) * self.mueff) / self.sigma \\\n",
+ " * np.dot(self.B, (1. / self.diagD) \\\n",
+ " * np.dot(self.B.T, c_diff))\n",
+ " \n",
+ " # -- store new evol path\n",
+ " self.stats_ps.append(copy.deepcopy(self.ps))\n",
+ " \n",
+ " hsig = float((np.linalg.norm(self.ps) / \n",
+ " sqrt(1. - (1. - self.cs)**(2. * (self.update_count + 1.))) / self.chiN\n",
+ " < (1.4 + 2. / (self.dim + 1.))))\n",
+ " \n",
+ " self.update_count += 1\n",
+ " \n",
+ " self.pc = (1 - self.cc) * self.pc + hsig \\\n",
+ " * sqrt(self.cc * (2 - self.cc) * self.mueff) / self.sigma \\\n",
+ " * c_diff\n",
+ " \n",
+ " # Update covariance matrix\n",
+ " artmp = population[0:self.mu] - old_centroid\n",
+ " self.C = (1 - self.ccov1 - self.ccovmu + (1 - hsig) \\\n",
+ " * self.ccov1 * self.cc * (2 - self.cc)) * self.C \\\n",
+ " + self.ccov1 * np.outer(self.pc, self.pc) \\\n",
+ " + self.ccovmu * np.dot((self.weights * artmp.T), artmp) \\\n",
+ " / self.sigma**2\n",
+ " \n",
+ " # -- store new covs\n",
+ " self.stats_new_covs.append(copy.deepcopy(self.C))\n",
+ " \n",
+ " self.sigma *= np.exp((np.linalg.norm(self.ps) / self.chiN - 1.) \\\n",
+ " * self.cs / self.damps)\n",
+ " \n",
+ " self.diagD, self.B = np.linalg.eigh(self.C)\n",
+ " indx = np.argsort(self.diagD)\n",
+ " \n",
+ " self.cond = self.diagD[indx[-1]]/self.diagD[indx[0]]\n",
+ " \n",
+ " self.diagD = self.diagD[indx]**0.5\n",
+ " self.B = self.B[:, indx]\n",
+ " self.BD = self.B * self.diagD"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "It is now possible to use/test our new class."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "toolbox = base.Toolbox()\n",
+ "toolbox.register(\"evaluate\", current_problem)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "max_gens = 40\n",
+ "cma_es = PlotableStrategy(centroid=[5.0]*search_space_dims, sigma=1.0, lambda_=5*search_space_dims)\n",
+ "toolbox.register(\"generate\", cma_es.generate, creator.Individual)\n",
+ "toolbox.register(\"update\", cma_es.update)\n",
+ "\n",
+ "# The CMA-ES algorithm converge with good probability with those settings\n",
+ "a = algorithms.eaGenerateUpdate(toolbox, ngen=max_gens, verbose=False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "Me can now code the `animate_cma_es()` function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {
+ "internals": {},
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "norm=colors.Normalize(vmin=np.min(cma_es.weights), vmax=np.max(cma_es.weights))\n",
+ "sm = cm.ScalarMappable(norm=norm, cmap=plt.get_cmap('gray'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def animate_cma_es(gen):\n",
+ " ax.cla()\n",
+ " plot_problem_controur(current_problem, ((-11,-11), (11,11)), optimum=(0,0), ax=ax)\n",
+ " \n",
+ " plot_cov_ellipse(cma_es.stats_centroids[gen], cma_es.stats_covs[gen], volume=0.99, alpha=0.29, ax=ax)\n",
+ " ax.plot(cma_es.stats_centroids[gen][0], cma_es.stats_centroids[gen][1], 'ro', markeredgecolor = 'none', ms=10)\n",
+ " \n",
+ " plot_cov_ellipse(cma_es.stats_new_centroids[gen], cma_es.stats_new_covs[gen], volume=0.99, \n",
+ " alpha=0.29, fc='green', ec='darkgreen', ax=ax)\n",
+ " ax.plot(cma_es.stats_new_centroids[gen][0], cma_es.stats_new_centroids[gen][1], 'go', markeredgecolor = 'none', ms=10)\n",
+ " \n",
+ " for i in range(gen+1):\n",
+ " if i == 0:\n",
+ " ax.plot((0,cma_es.stats_ps[i][0]),\n",
+ " (0,cma_es.stats_ps[i][1]), 'b--')\n",
+ " else:\n",
+ " ax.plot((cma_es.stats_ps[i-1][0],cma_es.stats_ps[i][0]),\n",
+ " (cma_es.stats_ps[i-1][1],cma_es.stats_ps[i][1]),'b--')\n",
+ " \n",
+ " for i,ind in enumerate(cma_es.stats_offspring[gen]):\n",
+ " if i < len(cma_es.weights):\n",
+ " color = sm.to_rgba(cma_es.weights[i])\n",
+ " else:\n",
+ " color= sm.to_rgba(norm.vmin)\n",
+ " ax.plot(ind[0], ind[1], 'o', color = color, ms=5, markeredgecolor = 'none')\n",
+ " \n",
+ " ax.set_ylim((-10,10))\n",
+ " ax.set_xlim((-10,10))\n",
+ " ax.set_title('$t=$' +str(gen))\n",
+ " return []"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_type": "subslide"
+ },
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "### CMA-ES progress "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {
+ "internals": {},
+ "scrolled": false,
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ }
+ ],
+ "source": [
+ "fig = plt.figure(figsize=(6,6))\n",
+ "ax = fig.gca()\n",
+ "anim = animation.FuncAnimation(fig, animate_cma_es, frames=max_gens, interval=300, blit=True)\n",
+ "plt.close()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n",
+ " s)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "<video width=\"432\" height=\"432\" controls autoplay loop>\n",
+ " <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAADDY21kYXQAAAKuBgX//6rcRem9\n",
+ "5tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQg\n",
+ "QVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcv\n",
+ "eDI2NC5odG1sIC0gb3B0aW9uczogY2FiYWM9MSByZWY9MyBkZWJsb2NrPTE6MDowIGFuYWx5c2U9\n",
+ "MHgzOjB4MTEzIG1lPWhleCBzdWJtZT03IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVm\n",
+ "PTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0xIDh4OGRjdD0xIGNxbT0wIGRlYWR6\n",
+ "b25lPTIxLDExIGZhc3RfcHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9MTIgbG9v\n",
+ "a2FoZWFkX3RocmVhZHM9MiBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxh\n",
+ "Y2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHly\n",
+ "YW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3\n",
+ "ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTMgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVz\n",
+ "aD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBx\n",
+ "cG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAEuXZYiE\n",
+ "ABX//vfJ78Cm61tbtb+Tz0j8LLc+wio/blsTtOoAAAMAABnblS+MhuoLgPtAAD55H/DesPiJPhYt\n",
+ "DrdXw9gibfozk/MoKRDI40mmUp68+R9UNcB7EC3X63zp44jGtN24F4A909NdSXaNsqSSugFioR2F\n",
+ "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\n",
+ "\">\n",
+ " Your browser does not support the video tag.\n",
+ "</video>"
+ ],
+ "text/plain": [
+ "<IPython.core.display.HTML object>"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "HTML(anim.to_html5_video())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end"
+ },
+ "slide_helper": "subslide_end",
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "* Current centroid and covariance: **red**.\n",
+ "* Updated centroid and covariance: **green**. \n",
+ "* Sampled individuals: **shades of gray representing their corresponding weight**.\n",
+ "* Evolution path: **blue line starting in (0,0)**. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "internals": {
+ "slide_helper": "subslide_end",
+ "slide_type": "subslide"
+ },
+ "slide_helper": "slide_end",
+ "slideshow": {
+ "slide_type": "slide"
+ }
+ },
+ "source": [
+ "## Homework\n",
+ "\n",
+ "1. Make an animated plot with the covariance update process. You can rely on the notebook of the previous demonstration class.\n",
+ "2. Compare ES, CMA-ES and a genetic algortihm.\n",
+ "2. How do you think that evolutionary strategies and CMA-ES should be modified in order to cope with combinatorial problems?\n",
+ "3. How can evolution strategies be improved?\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "source": [
+ "<hr/>\n",
+ "<div class=\"container-fluid\">\n",
+ " <div class='well'>\n",
+ " <div class=\"row\">\n",
+ " <div class=\"col-md-3\" align='center'>\n",
+ " <img align='center'alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\"/>\n",
+ " </div>\n",
+ " <div class=\"col-md-9\">\n",
+ " This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/).\n",
+ " </div>\n",
+ " </div>\n",
+ " </div>\n",
+ "</div>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/json": {
+ "Software versions": [
+ {
+ "module": "Python",
+ "version": "3.6.7 64bit [GCC 8.2.0]"
+ },
+ {
+ "module": "IPython",
+ "version": "6.3.1"
+ },
+ {
+ "module": "OS",
+ "version": "Linux 4.15.0 50 generic x86_64 with Ubuntu 18.04 bionic"
+ },
+ {
+ "module": "scipy",
+ "version": "1.1.0"
+ },
+ {
+ "module": "numpy",
+ "version": "1.14.5"
+ },
+ {
+ "module": "matplotlib",
+ "version": "2.2.2"
+ },
+ {
+ "module": "seaborn",
+ "version": "0.9.0"
+ },
+ {
+ "module": "deap",
+ "version": "1.2"
+ }
+ ]
+ },
+ "text/html": [
+ "<table><tr><th>Software</th><th>Version</th></tr><tr><td>Python</td><td>3.6.7 64bit [GCC 8.2.0]</td></tr><tr><td>IPython</td><td>6.3.1</td></tr><tr><td>OS</td><td>Linux 4.15.0 50 generic x86_64 with Ubuntu 18.04 bionic</td></tr><tr><td>scipy</td><td>1.1.0</td></tr><tr><td>numpy</td><td>1.14.5</td></tr><tr><td>matplotlib</td><td>2.2.2</td></tr><tr><td>seaborn</td><td>0.9.0</td></tr><tr><td>deap</td><td>1.2</td></tr><tr><td colspan='2'>Wed May 29 19:31:25 2019 MSK</td></tr></table>"
+ ],
+ "text/latex": [
+ "\\begin{tabular}{|l|l|}\\hline\n",
+ "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n",
+ "Python & 3.6.7 64bit [GCC 8.2.0] \\\\ \\hline\n",
+ "IPython & 6.3.1 \\\\ \\hline\n",
+ "OS & Linux 4.15.0 50 generic x86\\_64 with Ubuntu 18.04 bionic \\\\ \\hline\n",
+ "scipy & 1.1.0 \\\\ \\hline\n",
+ "numpy & 1.14.5 \\\\ \\hline\n",
+ "matplotlib & 2.2.2 \\\\ \\hline\n",
+ "seaborn & 0.9.0 \\\\ \\hline\n",
+ "deap & 1.2 \\\\ \\hline\n",
+ "\\hline \\multicolumn{2}{|l|}{Wed May 29 19:31:25 2019 MSK} \\\\ \\hline\n",
+ "\\end{tabular}\n"
+ ],
+ "text/plain": [
+ "Software versions\n",
+ "Python 3.6.7 64bit [GCC 8.2.0]\n",
+ "IPython 6.3.1\n",
+ "OS Linux 4.15.0 50 generic x86_64 with Ubuntu 18.04 bionic\n",
+ "scipy 1.1.0\n",
+ "numpy 1.14.5\n",
+ "matplotlib 2.2.2\n",
+ "seaborn 0.9.0\n",
+ "deap 1.2\n",
+ "Wed May 29 19:31:25 2019 MSK"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# To install run: pip install version_information\n",
+ "%load_ext version_information\n",
+ "%version_information scipy, numpy, matplotlib, seaborn, deap"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<link href=\"https://fonts.googleapis.com/css?family=Fira+Sans:300,300i,600,600i\" rel=\"stylesheet\">\n",
+ "<link href=\"https://fonts.googleapis.com/css?family=Inconsolata\" rel=\"stylesheet\">\n",
+ "<link href=\"https://fonts.googleapis.com/css?family=Titillium+Web:400,400i,700,700i\" rel=\"stylesheet\">\n",
+ "<style>\n",
+ ".text_cell_render {\n",
+ "font-style: regular;\n",
+ "font-family: 'Fira Sans', sans-serif;\n",
+ "display: block;\n",
+ "}\n",
+ "/*font-weight: 200;*/\n",
+ "/*text-align: left;\n",
+ "line-height: 100%;\n",
+ "display: block;\n",
+ "}*/\n",
+ ".text_cell_render h1 {\n",
+ "/*font-size: 24pt;*/\n",
+ "font-family: 'Titillium Web', sans-serif;\n",
+ "font-weight: bold;\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.5em;\n",
+ "color:#4a4a4a;\n",
+ "}\n",
+ "\n",
+ ".reveal h1 {\n",
+ "font-family: 'Titillium Web', sans-serif;\n",
+ "/*font-size: 24pt;*/\n",
+ "font-weight: bold;\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.5em;\n",
+ "color:#4a4a4a;\n",
+ "}\n",
+ ".text_cell_render h2 {\n",
+ "/*font-size: 21pt;*/\n",
+ " font-family: 'Titillium Web', sans-serif;\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.3em;\n",
+ "color:#595959;\n",
+ "}\n",
+ ".text_cell_render h3 {\n",
+ " font-family: 'Titillium Web', sans-serif;\n",
+ "/*font-size: 19pt;*/\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.3em;\n",
+ "color:#595959;\n",
+ "}\n",
+ ".text_cell_render h4 {\n",
+ " font-family: 'Titillium Web', sans-serif;\n",
+ "/*font-size: 17pt;*/\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.3em;\n",
+ "color:#595959;\n",
+ "}\n",
+ ".text_cell_render h5 {\n",
+ " font-family: 'Titillium Web', sans-serif;\n",
+ "/*font-size: 15pt;*/\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.3em;\n",
+ "color:#595959;\n",
+ "}\n",
+ "div.text_cell_render{\n",
+ "line-height: 120%;\n",
+ "font-size: 100%;\n",
+ "font-weight: 400;\n",
+ "text-align: justify;\n",
+ "margin-left:0em;\n",
+ "margin-right:0em;\n",
+ "}\n",
+ ".reveal div.text_cell_render{\n",
+ "line-height: 120%;\n",
+ "font-size: 74%;\n",
+ "font-weight: 400;\n",
+ "text-align: justify;\n",
+ "margin-left:0em;\n",
+ "margin-right:0em;\n",
+ "}\n",
+ "\n",
+ ".reveal h2 {\n",
+ "font-family: 'Titillium Web', sans-serif;\n",
+ "/*font-size: 24pt;*/\n",
+ "font-weight: bold;\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.5em;\n",
+ "color:#595959;\n",
+ "}\n",
+ ".reveal h3 {\n",
+ "font-family: 'Titillium Web', sans-serif;\n",
+ "/*font-size: 24pt;*/\n",
+ "font-weight: bold;\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.5em;\n",
+ "color:#595959;\n",
+ "}\n",
+ ".reveal h4 {\n",
+ "font-family: 'Titillium Web', sans-serif;\n",
+ "font-weight: bold;\n",
+ "margin-bottom: 0.1em;\n",
+ "margin-top: 0.5em;\n",
+ "color:#595959;\n",
+ "}\n",
+ ".reveal .code_cell {\n",
+ " font-size: 92%;\n",
+ "}\n",
+ ".reveal code {\n",
+ "font-family: 'Inconsolata', monospace;\n",
+ "}\n",
+ ".reveal pre {\n",
+ "font-family: 'Inconsolata', monospace;\n",
+ "}\n",
+ "code {\n",
+ "font-family: 'Inconsolata', monospace;\n",
+ "}\n",
+ "pre {\n",
+ "font-family: 'Inconsolata', monospace;\n",
+ "}\n",
+ ".CodeMirror{\n",
+ "font-family: \"Inconsolata\", monospace;\n",
+ "}\n",
+ "</style>\n"
+ ],
+ "text/plain": [
+ "<IPython.core.display.HTML object>"
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# this code is here for cosmetic reasons\n",
+ "from IPython.core.display import HTML\n",
+ "from urllib.request import urlopen\n",
+ "HTML(urlopen('https://raw.githubusercontent.com/lmarti/jupyter_custom/master/custom.include').read().decode('utf-8'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "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",
+ "version": "3.6.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/data/Automata and Computability using Jupyter.ipynb b/src/test/data/Automata and Computability using Jupyter.ipynb
new file mode 100644
index 00000000..145a82bd
--- /dev/null
+++ b/src/test/data/Automata and Computability using Jupyter.ipynb
@@ -0,0 +1,2095 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# Jove helps teach models of computation using Jupyter \n",
+ "\n",
+ "Included are modules on:\n",
+ "\n",
+ "* Sets, strings and languages\n",
+ "* Language operations\n",
+ "* Construction of and operations on DFA and NFA\n",
+ "* Regular expression parsing and automata inter-conversion\n",
+ "* Derivate-based parsing\n",
+ "* Pushdown automata\n",
+ "* The construction of parsers using context-free productions, including\n",
+ " a full lexer/parser for Jove's own markdown syntax\n",
+ "* Studies of parsing: ambiguity, associativity, precedence\n",
+ "* Turing machines (including one for the Collatz problem)\n",
+ "\n",
+ "For a complete Jove top-level reference, kindly refer to https://github.com/ganeshutah/Jove from where you can download and obtain Jove. You can also visit this Github link now and poke around (the NBViewer will display the contents).\n",
+ "\n",
+ "Once you are in the top-level Gallery link we provide, feel free to explore the hierarchy of modules found there.\n",
+ "\n",
+ "These notebooks should give you an idea of the contents.\n",
+ "\n",
+ "* [DFA Illustrations (has a Youtube)](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/tutorial/DFAUnit2.ipynb)\n",
+ "\n",
+ "* [Regular Operations](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/driver/Drive_AllRegularOps.ipynb)\n",
+ "\n",
+ "* [PDA Operations](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/driver/Drive_PDA_Based_Parsing.ipynb)\n",
+ "\n",
+ "* [TM Operations](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/driver/Drive_TM.ipynb)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/jpeg": "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\n",
+ "text/html": [
+ "\n",
+ " <iframe\n",
+ " width=\"400\"\n",
+ " height=\"300\"\n",
+ " src=\"https://www.youtube.com/embed/dGcLHtYLgDU\"\n",
+ " frameborder=\"0\"\n",
+ " allowfullscreen\n",
+ " ></iframe>\n",
+ " "
+ ],
+ "text/plain": [
+ "<IPython.lib.display.YouTubeVideo at 0x7fa7a1ee4c50>"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import YouTubeVideo\n",
+ "YouTubeVideo('dGcLHtYLgDU')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "You may use any of these help commands:\n",
+ "help(ResetStNum)\n",
+ "help(NxtStateStr)\n",
+ "\n",
+ "You may use any of these help commands:\n",
+ "help(mkp_dfa)\n",
+ "help(mk_dfa)\n",
+ "help(totalize_dfa)\n",
+ "help(addtosigma_delta)\n",
+ "help(step_dfa)\n",
+ "help(run_dfa)\n",
+ "help(accepts_dfa)\n",
+ "help(comp_dfa)\n",
+ "help(union_dfa)\n",
+ "help(intersect_dfa)\n",
+ "help(pruneUnreach)\n",
+ "help(iso_dfa)\n",
+ "help(langeq_dfa)\n",
+ "help(same_status)\n",
+ "help(h_langeq_dfa)\n",
+ "help(fixptDist)\n",
+ "help(min_dfa)\n",
+ "help(pairFR)\n",
+ "help(state_combos)\n",
+ "help(sepFinNonFin)\n",
+ "help(bash_eql_classes)\n",
+ "help(listminus)\n",
+ "help(bash_1)\n",
+ "help(mk_rep_eqc)\n",
+ "help(F_of)\n",
+ "help(rep_of_s)\n",
+ "help(q0_of)\n",
+ "help(Delta_of)\n",
+ "help(mk_state_eqc_name)\n",
+ "\n",
+ "You may use any of these help commands:\n",
+ "help(mk_nfa)\n",
+ "help(totalize_nfa)\n",
+ "help(step_nfa)\n",
+ "help(run_nfa)\n",
+ "help(ec_step_nfa)\n",
+ "help(Eclosure)\n",
+ "help(Echelp)\n",
+ "help(accepts_nfa)\n",
+ "help(nfa2dfa)\n",
+ "help(n2d)\n",
+ "help(inSets)\n",
+ "help(rev_dfa)\n",
+ "help(min_dfa_brz)\n",
+ "\n",
+ "You may use any of these help commands:\n",
+ "help(re2nfa)\n",
+ "\n",
+ "You may use any of these help commands:\n",
+ "help(RE2Str)\n",
+ "help(mk_gnfa)\n",
+ "help(mk_gnfa_from_D)\n",
+ "help(dfa2nfa)\n",
+ "help(del_gnfa_states)\n",
+ "help(gnfa_w_REStr)\n",
+ "help(del_one_gnfa_state)\n",
+ "help(Edges_Exist_Via)\n",
+ "help(choose_state_to_del)\n",
+ "help(form_alt_RE)\n",
+ "help(form_concat_RE)\n",
+ "help(form_kleene_RE)\n",
+ "\n",
+ "You may use any of these help commands:\n",
+ "help(md2mc)\n",
+ ".. and if you want to dig more, then ..\n",
+ "help(default_line_attr)\n",
+ "help(length_ok_input_items)\n",
+ "help(union_line_attr_list_fld)\n",
+ "help(extend_rsltdict)\n",
+ "help(form_delta)\n",
+ "help(get_machine_components)\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "import sys\n",
+ "sys.path[0:0] = ['/home/mmmm1998/Документы/Репозитории/Jove','/home/mmmm1998/Документы/Репозитории/Jove/3rdparty'] # Put these at the head of the search path\n",
+ "from jove.DotBashers import *\n",
+ "from jove.Def_DFA import *\n",
+ "from jove.Def_NFA import *\n",
+ "from jove.Def_RE2NFA import *\n",
+ "from jove.Def_NFA2RE import *\n",
+ "from jove.Def_md2mc import *"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ " # Jove allows you to set problems in markdown and have students solve"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "1) LOdd1Three0 : Set of strings over {0,1} with an odd # of 1s OR exactly three 0s. \n",
+ "\n",
+ "* Hint on how to arrive at the language:\n",
+ "\n",
+ " - develop NFAs for the two cases and perform their union. Obtain DFA\n",
+ "\n",
+ " - develop REs for the two cases and perform the union. \n",
+ "\n",
+ " - Testing the creations:\n",
+ "\n",
+ " . Come up with language for even # of 1s and separately for \"other than three 0s\". \n",
+ " \n",
+ " . Do two intersections. \n",
+ " \n",
+ " . Is the language empty?\n",
+ "\n",
+ "\n",
+ "2) Language of strings over {0,1} with exactly two occurrences of 0101 in it.\n",
+ "\n",
+ " * Come up with it directly (take overlaps into account, i.e. 010101 has two occurrences in it\n",
+ "\n",
+ " * Come up in another way\n",
+ "\n",
+ "Notes:\n",
+ "\n",
+ "* Most of the problem students will have in this course is interpreting English (technical English)\n",
+ "\n",
+ "* So again, read the writeup at the beginning of Module6 (should be ready soon today) and work on using the tool.\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "__Solutions__\n",
+ "\n",
+ "1) LOdd1Three0 : Set of strings over {0,1} with an odd # of 1s OR exactly three 0s. \n",
+ "\n",
+ "* Hint on how to arrive at the language:\n",
+ "\n",
+ " - develop NFAs for the two cases and perform their union. Obtain DFA\n",
+ "\n",
+ " - develop REs for the two cases and perform the union. \n",
+ "\n",
+ " - Testing the creations:\n",
+ "\n",
+ " . Come up with language for even # of 1s and separately for \"other than three 0s\". \n",
+ " \n",
+ " . Do two intersections. \n",
+ " \n",
+ " . Is the language empty?\n",
+ "\n",
+ "\n",
+ "2) Language of strings over {0,1} with exactly two occurrences of 0101 in it.\n",
+ "\n",
+ " * Come up with it directly (take overlaps into account, i.e. 010101 has two occurrences in it\n",
+ "\n",
+ " * Come up in another way\n",
+ "\n",
+ "Notes:\n",
+ "\n",
+ "* Most of the problem students will have in this course is interpreting English (technical English)\n",
+ "\n",
+ "* So again, read the writeup at the beginning of Module6 (should be ready soon today) and work on using the tool.\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
+ " -->\n",
+ "<!-- Title: %3 Pages: 1 -->\n",
+ "<svg width=\"337pt\" height=\"130pt\"\n",
+ " viewBox=\"0.00 0.00 337.49 130.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 126.496)\">\n",
+ "<title>%3</title>\n",
+ "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-126.496 333.4879,-126.496 333.4879,4 -4,4\"/>\n",
+ "<!-- EMPTY -->\n",
+ "<g id=\"node1\" class=\"node\">\n",
+ "<title>EMPTY</title>\n",
+ "</g>\n",
+ "<!-- St6 -->\n",
+ "<g id=\"node4\" class=\"node\">\n",
+ "<title>St6</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"117.748\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"117.748\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"117.748\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St6</text>\n",
+ "</g>\n",
+ "<!-- EMPTY&#45;&gt;St6 -->\n",
+ "<g id=\"edge1\" class=\"edge\">\n",
+ "<title>EMPTY&#45;&gt;St6</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M54.2274,-26.748C62.5578,-26.748 71.8652,-26.748 80.7317,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"80.8526,-30.2481 90.8525,-26.748 80.8525,-23.2481 80.8526,-30.2481\"/>\n",
+ "</g>\n",
+ "<!-- St7 -->\n",
+ "<g id=\"node2\" class=\"node\">\n",
+ "<title>St7</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"210.2439\" cy=\"-66.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"210.2439\" y=\"-63.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St7</text>\n",
+ "</g>\n",
+ "<!-- St7&#45;&gt;St7 -->\n",
+ "<g id=\"edge4\" class=\"edge\">\n",
+ "<title>St7&#45;&gt;St7</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M202.1954,-88.1313C201.2017,-98.4165 203.8846,-107.496 210.2439,-107.496 214.3179,-107.496 216.8831,-103.7698 217.9393,-98.3874\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"221.4462,-98.2458 218.2925,-88.1313 214.4503,-98.0048 221.4462,-98.2458\"/>\n",
+ "<text text-anchor=\"middle\" x=\"210.2439\" y=\"-111.296\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St3 -->\n",
+ "<g id=\"node3\" class=\"node\">\n",
+ "<title>St3</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"302.7399\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"302.7399\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"302.7399\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St3</text>\n",
+ "</g>\n",
+ "<!-- St7&#45;&gt;St3 -->\n",
+ "<g id=\"edge5\" class=\"edge\">\n",
+ "<title>St7&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M231.2327,-57.6714C242.276,-52.8957 256.0912,-46.9213 268.6265,-41.5004\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.1064,-44.6737 277.8957,-37.4919 267.3279,-38.2487 270.1064,-44.6737\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-51.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St3 -->\n",
+ "<g id=\"edge6\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M298.2498,-53.3928C298.1026,-63.3224 299.5993,-71.496 302.7399,-71.496 304.7028,-71.496 306.0235,-68.3032 306.7021,-63.4843\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"310.2027,-63.562 307.23,-53.3928 303.2123,-63.1963 310.2027,-63.562\"/>\n",
+ "<text text-anchor=\"middle\" x=\"302.7399\" y=\"-75.296\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St3 -->\n",
+ "<g id=\"edge7\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M294.7089,-52.5298C292.0942,-71.0489 294.7712,-89.496 302.7399,-89.496 309.2145,-89.496 312.1957,-77.318 311.6836,-62.8181\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"315.1409,-62.1814 310.7709,-52.5298 308.1683,-62.8 315.1409,-62.1814\"/>\n",
+ "<text text-anchor=\"middle\" x=\"302.7399\" y=\"-93.296\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St6&#45;&gt;St7 -->\n",
+ "<g id=\"edge2\" class=\"edge\">\n",
+ "<title>St6&#45;&gt;St7</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M142.5352,-37.4672C154.0203,-42.434 167.7743,-48.3819 179.8769,-53.6157\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"178.5861,-56.8707 189.1539,-57.6276 181.3647,-50.4458 178.5861,-56.8707\"/>\n",
+ "<text text-anchor=\"middle\" x=\"165.996\" y=\"-51.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St6&#45;&gt;St3 -->\n",
+ "<g id=\"edge3\" class=\"edge\">\n",
+ "<title>St6&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M144.5288,-23.4275C157.4841,-21.9831 173.275,-20.4598 187.496,-19.748 207.6911,-18.7371 212.7968,-18.7371 232.9919,-19.748 243.6576,-20.2819 255.2064,-21.2722 265.7798,-22.3433\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"265.6447,-25.8486 275.9591,-23.4275 266.3861,-18.888 265.6447,-25.8486\"/>\n",
+ "<text text-anchor=\"middle\" x=\"210.2439\" y=\"-23.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "</g>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<graphviz.dot.Digraph at 0x7fa7a1407eb8>"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "RE_Odd1s = \"(0* 1 0* (1 0* 1 0)*)*\"\n",
+ "NFA_Odd1s = re2nfa(RE_Odd1s)\n",
+ "DO_Odd1s = dotObj_dfa(min_dfa(nfa2dfa(NFA_Odd1s)))\n",
+ "DO_Odd1s"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
+ " -->\n",
+ "<!-- Title: %3 Pages: 1 -->\n",
+ "<svg width=\"658pt\" height=\"284pt\"\n",
+ " viewBox=\"0.00 0.00 658.17 284.40\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 280.3956)\">\n",
+ "<title>%3</title>\n",
+ "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-280.3956 654.173,-280.3956 654.173,4 -4,4\"/>\n",
+ "<!-- EMPTY -->\n",
+ "<g id=\"node1\" class=\"node\">\n",
+ "<title>EMPTY</title>\n",
+ "</g>\n",
+ "<!-- St3 -->\n",
+ "<g id=\"node2\" class=\"node\">\n",
+ "<title>St3</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"113.748\" cy=\"-64.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"113.748\" y=\"-61.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St3</text>\n",
+ "</g>\n",
+ "<!-- EMPTY&#45;&gt;St3 -->\n",
+ "<g id=\"edge1\" class=\"edge\">\n",
+ "<title>EMPTY&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M54.4476,-64.748C62.7759,-64.748 72.0138,-64.748 80.671,-64.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"80.8425,-68.2481 90.8425,-64.748 80.8425,-61.2481 80.8425,-68.2481\"/>\n",
+ "</g>\n",
+ "<!-- St28 -->\n",
+ "<g id=\"node4\" class=\"node\">\n",
+ "<title>St28</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"206.2439\" cy=\"-102.748\" rx=\"26.7961\" ry=\"26.7961\"/>\n",
+ "<text text-anchor=\"middle\" x=\"206.2439\" y=\"-99.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St28</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St28 -->\n",
+ "<g id=\"edge2\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St28</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M135.2009,-73.5615C146.0654,-78.0249 159.5218,-83.5532 171.7913,-88.5939\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.7247,-91.9395 181.3046,-92.5022 173.3848,-85.4646 170.7247,-91.9395\"/>\n",
+ "<text text-anchor=\"middle\" x=\"157.996\" y=\"-87.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St2 -->\n",
+ "<g id=\"node9\" class=\"node\">\n",
+ "<title>St2</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"206.2439\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"206.2439\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"206.2439\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St2</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St2 -->\n",
+ "<g id=\"edge3\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St2</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M135.2009,-55.9345C146.0654,-51.4711 159.5218,-45.9428 171.7913,-40.9021\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"173.3848,-44.0314 181.3046,-36.9938 170.7247,-37.5565 173.3848,-44.0314\"/>\n",
+ "<text text-anchor=\"middle\" x=\"157.996\" y=\"-51.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St7 -->\n",
+ "<g id=\"node3\" class=\"node\">\n",
+ "<title>St7</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"306.6396\" cy=\"-140.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"306.6396\" y=\"-137.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St7</text>\n",
+ "</g>\n",
+ "<!-- St14 -->\n",
+ "<g id=\"node7\" class=\"node\">\n",
+ "<title>St14</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"410.9348\" cy=\"-178.748\" rx=\"26.7766\" ry=\"26.7766\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"410.9348\" cy=\"-178.748\" rx=\"30.796\" ry=\"30.796\"/>\n",
+ "<text text-anchor=\"middle\" x=\"410.9348\" y=\"-175.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St14</text>\n",
+ "</g>\n",
+ "<!-- St7&#45;&gt;St14 -->\n",
+ "<g id=\"edge8\" class=\"edge\">\n",
+ "<title>St7&#45;&gt;St14</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M328.2496,-148.6216C340.9751,-153.2582 357.4467,-159.2596 372.3352,-164.6842\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"371.2412,-168.0106 381.8351,-168.1455 373.6375,-161.4336 371.2412,-168.0106\"/>\n",
+ "<text text-anchor=\"middle\" x=\"358.7872\" y=\"-164.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St9 -->\n",
+ "<g id=\"node10\" class=\"node\">\n",
+ "<title>St9</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"410.9348\" cy=\"-102.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"410.9348\" cy=\"-102.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"410.9348\" y=\"-99.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St9</text>\n",
+ "</g>\n",
+ "<!-- St7&#45;&gt;St9 -->\n",
+ "<g id=\"edge9\" class=\"edge\">\n",
+ "<title>St7&#45;&gt;St9</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M322.6201,-124.4374C331.4358,-116.5952 343.0576,-107.993 355.2872,-103.748 361.135,-101.7181 367.5409,-100.6416 373.8592,-100.1683\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.3967,-103.6549 384.296,-99.8796 374.203,-96.6575 374.3967,-103.6549\"/>\n",
+ "<text text-anchor=\"middle\" x=\"358.7872\" y=\"-107.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St28&#45;&gt;St7 -->\n",
+ "<g id=\"edge4\" class=\"edge\">\n",
+ "<title>St28&#45;&gt;St7</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M231.319,-112.239C244.8151,-117.3473 261.5757,-123.6912 275.8574,-129.0969\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"274.6867,-132.396 285.2782,-132.6626 277.1647,-125.8493 274.6867,-132.396\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-125.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St20 -->\n",
+ "<g id=\"node8\" class=\"node\">\n",
+ "<title>St20</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"306.6396\" cy=\"-64.748\" rx=\"26.7766\" ry=\"26.7766\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"306.6396\" cy=\"-64.748\" rx=\"30.796\" ry=\"30.796\"/>\n",
+ "<text text-anchor=\"middle\" x=\"306.6396\" y=\"-61.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St20</text>\n",
+ "</g>\n",
+ "<!-- St28&#45;&gt;St20 -->\n",
+ "<g id=\"edge5\" class=\"edge\">\n",
+ "<title>St28&#45;&gt;St20</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M224.4383,-82.9539C231.9312,-76.1751 241.1599,-69.3865 250.9919,-65.748 255.6192,-64.0356 260.6145,-62.9665 265.6469,-62.3523\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"266.1767,-65.8249 275.9228,-61.6699 265.7128,-58.8403 266.1767,-65.8249\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-69.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St31 -->\n",
+ "<g id=\"node5\" class=\"node\">\n",
+ "<title>St31</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"515.2301\" cy=\"-216.748\" rx=\"26.7961\" ry=\"26.7961\"/>\n",
+ "<text text-anchor=\"middle\" x=\"515.2301\" y=\"-213.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St31</text>\n",
+ "</g>\n",
+ "<!-- St31&#45;&gt;St31 -->\n",
+ "<g id=\"edge16\" class=\"edge\">\n",
+ "<title>St31&#45;&gt;St31</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M505.5658,-241.9922C504.8993,-252.4937 508.1207,-261.3956 515.2301,-261.3956 519.7845,-261.3956 522.7434,-257.7423 524.1066,-252.3555\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"527.6262,-252.2288 524.8944,-241.9922 520.6464,-251.6981 527.6262,-252.2288\"/>\n",
+ "<text text-anchor=\"middle\" x=\"515.2301\" y=\"-265.1956\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St21 -->\n",
+ "<g id=\"node11\" class=\"node\">\n",
+ "<title>St21</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"619.5254\" cy=\"-178.748\" rx=\"26.7766\" ry=\"26.7766\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"619.5254\" cy=\"-178.748\" rx=\"30.796\" ry=\"30.796\"/>\n",
+ "<text text-anchor=\"middle\" x=\"619.5254\" y=\"-175.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St21</text>\n",
+ "</g>\n",
+ "<!-- St31&#45;&gt;St21 -->\n",
+ "<g id=\"edge17\" class=\"edge\">\n",
+ "<title>St31&#45;&gt;St21</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M534.3531,-197.7153C542.7017,-190.6783 553.0515,-183.5059 563.8777,-179.748 568.5389,-178.13 573.5546,-177.1177 578.5979,-176.5339\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"579.1261,-180.0075 588.884,-175.8803 578.6822,-173.0215 579.1261,-180.0075\"/>\n",
+ "<text text-anchor=\"middle\" x=\"567.3777\" y=\"-183.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St13 -->\n",
+ "<g id=\"node6\" class=\"node\">\n",
+ "<title>St13</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"515.2301\" cy=\"-140.748\" rx=\"26.7766\" ry=\"26.7766\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"515.2301\" cy=\"-140.748\" rx=\"30.796\" ry=\"30.796\"/>\n",
+ "<text text-anchor=\"middle\" x=\"515.2301\" y=\"-137.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St13</text>\n",
+ "</g>\n",
+ "<!-- St13&#45;&gt;St14 -->\n",
+ "<g id=\"edge19\" class=\"edge\">\n",
+ "<title>St13&#45;&gt;St14</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M484.8466,-135.5746C476.4631,-135.2331 467.5,-135.9109 459.5825,-138.748 452.6474,-141.233 445.9931,-145.1807 439.9521,-149.6489\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"437.7019,-146.9673 432.1259,-155.9762 442.1028,-152.4109 437.7019,-146.9673\"/>\n",
+ "<text text-anchor=\"middle\" x=\"463.0825\" y=\"-142.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St13&#45;&gt;St21 -->\n",
+ "<g id=\"edge18\" class=\"edge\">\n",
+ "<title>St13&#45;&gt;St21</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M544.5449,-149.7622C553.0822,-152.5135 562.3932,-155.6369 570.8777,-158.748 574.3848,-160.0339 578.0132,-161.4196 581.6347,-162.8402\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"580.5318,-166.1688 591.1162,-166.638 583.1346,-159.6706 580.5318,-166.1688\"/>\n",
+ "<text text-anchor=\"middle\" x=\"567.3777\" y=\"-162.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St14&#45;&gt;St31 -->\n",
+ "<g id=\"edge12\" class=\"edge\">\n",
+ "<title>St14&#45;&gt;St31</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M439.9869,-189.3331C452.4748,-193.8831 467.1772,-199.2399 480.2569,-204.0055\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"479.2851,-207.3765 489.8791,-207.5113 481.6815,-200.7994 479.2851,-207.3765\"/>\n",
+ "<text text-anchor=\"middle\" x=\"463.0825\" y=\"-202.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St14&#45;&gt;St13 -->\n",
+ "<g id=\"edge13\" class=\"edge\">\n",
+ "<title>St14&#45;&gt;St13</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M439.9869,-168.1629C451.4012,-164.0041 464.6656,-159.1712 476.8498,-154.7318\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"478.1363,-157.9883 486.3339,-151.2763 475.7399,-151.4112 478.1363,-157.9883\"/>\n",
+ "<text text-anchor=\"middle\" x=\"463.0825\" y=\"-164.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St20&#45;&gt;St28 -->\n",
+ "<g id=\"edge11\" class=\"edge\">\n",
+ "<title>St20&#45;&gt;St28</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M277.6189,-75.7324C266.1742,-80.0642 252.9312,-85.0767 240.983,-89.5991\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"239.4325,-86.4436 231.319,-93.257 241.9105,-92.9904 239.4325,-86.4436\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-89.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St20&#45;&gt;St9 -->\n",
+ "<g id=\"edge10\" class=\"edge\">\n",
+ "<title>St20&#45;&gt;St9</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M335.8929,-74.4706C344.4288,-77.3792 353.7545,-80.6267 362.2872,-83.748 366.8881,-85.431 371.7139,-87.25 376.4648,-89.0725\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"375.4262,-92.4237 386.0152,-92.7762 377.9572,-85.8973 375.4262,-92.4237\"/>\n",
+ "<text text-anchor=\"middle\" x=\"358.7872\" y=\"-87.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St2&#45;&gt;St3 -->\n",
+ "<g id=\"edge7\" class=\"edge\">\n",
+ "<title>St2&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M179.7427,-23.0296C171.4174,-22.8306 162.3533,-23.6528 154.496,-26.748 147.4422,-29.5266 140.8882,-34.1656 135.1892,-39.2654\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"132.6436,-36.8601 127.9809,-46.3738 137.5587,-41.8443 132.6436,-36.8601\"/>\n",
+ "<text text-anchor=\"middle\" x=\"157.996\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St2&#45;&gt;St20 -->\n",
+ "<g id=\"edge6\" class=\"edge\">\n",
+ "<title>St2&#45;&gt;St20</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M231.55,-35.9221C239.9751,-39.0077 249.4001,-42.4932 257.9919,-45.748 261.4604,-47.0619 265.0625,-48.441 268.667,-49.831\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"267.5348,-53.1459 278.1238,-53.4983 270.0658,-46.6194 267.5348,-53.1459\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-49.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St9&#45;&gt;St7 -->\n",
+ "<g id=\"edge15\" class=\"edge\">\n",
+ "<title>St9&#45;&gt;St7</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M385.6795,-111.9498C371.2741,-117.1984 353.0992,-123.8204 337.8108,-129.3907\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"336.4472,-126.1624 328.2496,-132.8744 338.8436,-132.7395 336.4472,-126.1624\"/>\n",
+ "<text text-anchor=\"middle\" x=\"358.7872\" y=\"-126.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St9&#45;&gt;St13 -->\n",
+ "<g id=\"edge14\" class=\"edge\">\n",
+ "<title>St9&#45;&gt;St13</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M437.5736,-99.8796C446.9662,-99.7337 457.4541,-100.5794 466.5825,-103.748 473.0481,-105.9923 479.3439,-109.4545 485.1449,-113.3783\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"483.1298,-116.2411 493.2522,-119.3695 487.29,-110.6115 483.1298,-116.2411\"/>\n",
+ "<text text-anchor=\"middle\" x=\"463.0825\" y=\"-107.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St21&#45;&gt;St31 -->\n",
+ "<g id=\"edge21\" class=\"edge\">\n",
+ "<title>St21&#45;&gt;St31</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M590.4517,-189.341C577.9381,-193.9003 563.2043,-199.2686 550.1084,-204.0401\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"548.6747,-200.8373 540.4771,-207.5492 551.0711,-207.4143 548.6747,-200.8373\"/>\n",
+ "<text text-anchor=\"middle\" x=\"567.3777\" y=\"-202.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St21&#45;&gt;St21 -->\n",
+ "<g id=\"edge20\" class=\"edge\">\n",
+ "<title>St21&#45;&gt;St21</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M609.7849,-208.1969C609.5754,-218.773 612.8222,-227.3956 619.5254,-227.3956 623.8196,-227.3956 626.6953,-223.8569 628.1525,-218.5328\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"631.6747,-218.5142 629.2659,-208.1969 624.715,-217.7645 631.6747,-218.5142\"/>\n",
+ "<text text-anchor=\"middle\" x=\"619.5254\" y=\"-231.1956\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "</g>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<graphviz.dot.Digraph at 0x7fa7a169b8d0>"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "RE_Ex3z = \"1* 0 1* 0 1* 0 1* + (0* 1 0* (1 0* 1 0*)*)\"\n",
+ "NFA_Ex3z = re2nfa(RE_Ex3z)\n",
+ "DO_Ex3z = dotObj_dfa(min_dfa(nfa2dfa(NFA_Ex3z)))\n",
+ "DO_Ex3z"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# Check out all remaining modules of Jove covering these\n",
+ "\n",
+ "* Brzozowski derivatives for parsing\n",
+ "* Brzozowski minimization\n",
+ "* Context-free parsing\n",
+ "* (soon to come) [Binary Decision Diagrams; obtain now from software/ at](http://www.cs.utah.edu/fv)\n",
+ "* (soon to come) Post Correspondence Problem"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# Brzozowski's minimization defined\n",
+ "\n",
+ "It is nothing but these steps done in this order:\n",
+ "\n",
+ "* Reverse\n",
+ "* Determinize\n",
+ "* Reverse\n",
+ "* Determinize\n",
+ "\n",
+ "Voila! The machine is now minimal!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# The above example, with min_dfa replaced by the rev;det;rev;det\n",
+ "\n",
+ "DofNFA_Ex3z = nfa2dfa(re2nfa(\"1* 0 1* 0 1* 0 1* + (0* 1 0* (1 0* 1 0*)*)\"))\n",
+ "dotObj_dfa(DofNFA_Ex3z)\n",
+ "dotObj_dfa(DofNFA_Ex3z)\n",
+ "minDofNFA_Ex3z = nfa2dfa(rev_dfa(nfa2dfa(rev_dfa(DofNFA_Ex3z))))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
+ " -->\n",
+ "<!-- Title: %3 Pages: 1 -->\n",
+ "<svg width=\"627pt\" height=\"280pt\"\n",
+ " viewBox=\"0.00 0.00 626.98 280.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 276.496)\">\n",
+ "<title>%3</title>\n",
+ "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-276.496 622.9758,-276.496 622.9758,4 -4,4\"/>\n",
+ "<!-- EMPTY -->\n",
+ "<g id=\"node1\" class=\"node\">\n",
+ "<title>EMPTY</title>\n",
+ "</g>\n",
+ "<!-- St0 -->\n",
+ "<g id=\"node5\" class=\"node\">\n",
+ "<title>St0</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"113.748\" cy=\"-64.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"113.748\" y=\"-61.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St0</text>\n",
+ "</g>\n",
+ "<!-- EMPTY&#45;&gt;St0 -->\n",
+ "<g id=\"edge1\" class=\"edge\">\n",
+ "<title>EMPTY&#45;&gt;St0</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M54.4476,-64.748C62.7759,-64.748 72.0138,-64.748 80.671,-64.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"80.8425,-68.2481 90.8425,-64.748 80.8425,-61.2481 80.8425,-68.2481\"/>\n",
+ "</g>\n",
+ "<!-- St4 -->\n",
+ "<g id=\"node2\" class=\"node\">\n",
+ "<title>St4</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"206.2439\" cy=\"-102.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"206.2439\" y=\"-99.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St4</text>\n",
+ "</g>\n",
+ "<!-- St2 -->\n",
+ "<g id=\"node4\" class=\"node\">\n",
+ "<title>St2</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"302.7399\" cy=\"-140.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"302.7399\" y=\"-137.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St2</text>\n",
+ "</g>\n",
+ "<!-- St4&#45;&gt;St2 -->\n",
+ "<g id=\"edge4\" class=\"edge\">\n",
+ "<title>St4&#45;&gt;St2</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M227.6595,-111.1814C240.6522,-116.2979 257.4514,-122.9134 271.8638,-128.589\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.7972,-131.9305 281.3842,-132.3381 273.3621,-125.4174 270.7972,-131.9305\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-126.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St7 -->\n",
+ "<g id=\"node10\" class=\"node\">\n",
+ "<title>St7</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"302.7399\" cy=\"-64.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"302.7399\" cy=\"-64.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"302.7399\" y=\"-61.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St7</text>\n",
+ "</g>\n",
+ "<!-- St4&#45;&gt;St7 -->\n",
+ "<g id=\"edge5\" class=\"edge\">\n",
+ "<title>St4&#45;&gt;St7</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M227.6595,-94.3145C239.5444,-89.6343 254.6142,-83.6998 268.1288,-78.3778\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"269.6048,-81.5582 277.6268,-74.6375 267.0398,-75.0451 269.6048,-81.5582\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-88.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St5 -->\n",
+ "<g id=\"node3\" class=\"node\">\n",
+ "<title>St5</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"495.7318\" cy=\"-216.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"495.7318\" y=\"-213.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St5</text>\n",
+ "</g>\n",
+ "<!-- St5&#45;&gt;St5 -->\n",
+ "<g id=\"edge16\" class=\"edge\">\n",
+ "<title>St5&#45;&gt;St5</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M486.9516,-238.1313C485.8676,-248.4165 488.7943,-257.496 495.7318,-257.496 500.1762,-257.496 502.9745,-253.7698 504.1268,-248.3874\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"507.6341,-248.2556 504.5121,-238.1313 500.6391,-247.9928 507.6341,-248.2556\"/>\n",
+ "<text text-anchor=\"middle\" x=\"495.7318\" y=\"-261.296\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St9 -->\n",
+ "<g id=\"node7\" class=\"node\">\n",
+ "<title>St9</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"592.2278\" cy=\"-178.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"592.2278\" cy=\"-178.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"592.2278\" y=\"-175.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St9</text>\n",
+ "</g>\n",
+ "<!-- St5&#45;&gt;St9 -->\n",
+ "<g id=\"edge17\" class=\"edge\">\n",
+ "<title>St5&#45;&gt;St9</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M517.1474,-208.3145C529.0322,-203.6343 544.102,-197.6998 557.6166,-192.3778\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"559.0927,-195.5582 567.1147,-188.6375 556.5277,-189.0451 559.0927,-195.5582\"/>\n",
+ "<text text-anchor=\"middle\" x=\"543.9798\" y=\"-202.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St3 -->\n",
+ "<g id=\"node6\" class=\"node\">\n",
+ "<title>St3</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"399.2359\" cy=\"-178.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"399.2359\" cy=\"-178.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"399.2359\" y=\"-175.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St3</text>\n",
+ "</g>\n",
+ "<!-- St2&#45;&gt;St3 -->\n",
+ "<g id=\"edge8\" class=\"edge\">\n",
+ "<title>St2&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M324.1555,-149.1814C336.0403,-153.8616 351.1101,-159.7961 364.6247,-165.1181\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"363.5358,-168.4509 374.1228,-168.8585 366.1007,-161.9377 363.5358,-168.4509\"/>\n",
+ "<text text-anchor=\"middle\" x=\"350.9879\" y=\"-164.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St8 -->\n",
+ "<g id=\"node9\" class=\"node\">\n",
+ "<title>St8</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"399.2359\" cy=\"-102.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"399.2359\" cy=\"-102.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"399.2359\" y=\"-99.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St8</text>\n",
+ "</g>\n",
+ "<!-- St2&#45;&gt;St8 -->\n",
+ "<g id=\"edge9\" class=\"edge\">\n",
+ "<title>St2&#45;&gt;St8</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M324.1555,-132.3145C336.0403,-127.6343 351.1101,-121.6998 364.6247,-116.3778\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"366.1007,-119.5582 374.1228,-112.6375 363.5358,-113.0451 366.1007,-119.5582\"/>\n",
+ "<text text-anchor=\"middle\" x=\"350.9879\" y=\"-126.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St0&#45;&gt;St4 -->\n",
+ "<g id=\"edge2\" class=\"edge\">\n",
+ "<title>St0&#45;&gt;St4</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M135.2009,-73.5615C147.1086,-78.4535 162.1298,-84.6246 175.2894,-90.031\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"174.3275,-93.4196 184.9074,-93.9823 176.9876,-86.9447 174.3275,-93.4196\"/>\n",
+ "<text text-anchor=\"middle\" x=\"157.996\" y=\"-87.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St1 -->\n",
+ "<g id=\"node11\" class=\"node\">\n",
+ "<title>St1</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"206.2439\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"206.2439\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"206.2439\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St1</text>\n",
+ "</g>\n",
+ "<!-- St0&#45;&gt;St1 -->\n",
+ "<g id=\"edge3\" class=\"edge\">\n",
+ "<title>St0&#45;&gt;St1</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M135.2009,-55.9345C146.0654,-51.4711 159.5218,-45.9428 171.7913,-40.9021\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"173.3848,-44.0314 181.3046,-36.9938 170.7247,-37.5565 173.3848,-44.0314\"/>\n",
+ "<text text-anchor=\"middle\" x=\"157.996\" y=\"-50.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St5 -->\n",
+ "<g id=\"edge12\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St5</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M424.3371,-188.6328C436.708,-193.5045 451.7395,-199.4238 464.8132,-204.5723\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"463.7657,-207.9213 474.3527,-208.3289 466.3307,-201.4082 463.7657,-207.9213\"/>\n",
+ "<text text-anchor=\"middle\" x=\"447.4839\" y=\"-202.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St6 -->\n",
+ "<g id=\"node8\" class=\"node\">\n",
+ "<title>St6</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"495.7318\" cy=\"-140.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"495.7318\" cy=\"-140.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"495.7318\" y=\"-137.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St6</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St6 -->\n",
+ "<g id=\"edge13\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St6</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M424.3371,-168.8631C435.6173,-164.421 449.1097,-159.1077 461.3128,-154.3022\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"462.7342,-157.5041 470.7562,-150.5833 460.1692,-150.9909 462.7342,-157.5041\"/>\n",
+ "<text text-anchor=\"middle\" x=\"447.4839\" y=\"-164.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St9&#45;&gt;St5 -->\n",
+ "<g id=\"edge21\" class=\"edge\">\n",
+ "<title>St9&#45;&gt;St5</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M565.7723,-173.7375C557.4494,-173.2025 548.3752,-173.7335 540.4798,-176.748 532.0836,-179.9536 524.2656,-185.5397 517.5893,-191.5382\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"515.0159,-189.1592 510.31,-198.6516 519.9083,-194.1657 515.0159,-189.1592\"/>\n",
+ "<text text-anchor=\"middle\" x=\"543.9798\" y=\"-180.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St9&#45;&gt;St9 -->\n",
+ "<g id=\"edge20\" class=\"edge\">\n",
+ "<title>St9&#45;&gt;St9</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M583.3069,-204.049C582.6917,-214.574 585.6653,-223.496 592.2278,-223.496 596.5344,-223.496 599.2955,-219.6536 600.5109,-214.0374\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"604.0043,-214.2517 601.1487,-204.049 597.0185,-213.8056 604.0043,-214.2517\"/>\n",
+ "<text text-anchor=\"middle\" x=\"592.2278\" y=\"-227.296\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St6&#45;&gt;St3 -->\n",
+ "<g id=\"edge19\" class=\"edge\">\n",
+ "<title>St6&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M469.2763,-135.7375C460.9535,-135.2025 451.8793,-135.7335 443.9839,-138.748 436.7558,-141.5076 429.9563,-146.0314 423.9447,-151.0637\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"421.2601,-148.7777 416.2693,-158.1234 425.9989,-153.9297 421.2601,-148.7777\"/>\n",
+ "<text text-anchor=\"middle\" x=\"447.4839\" y=\"-142.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St6&#45;&gt;St9 -->\n",
+ "<g id=\"edge18\" class=\"edge\">\n",
+ "<title>St6&#45;&gt;St9</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M522.4242,-137.9141C530.6727,-137.9159 539.6445,-138.8424 547.4798,-141.748 554.0841,-144.1971 560.4169,-148.0657 566.1344,-152.3966\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"564.1035,-155.2598 574.0308,-158.961 568.5784,-149.8768 564.1035,-155.2598\"/>\n",
+ "<text text-anchor=\"middle\" x=\"543.9798\" y=\"-145.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St8&#45;&gt;St2 -->\n",
+ "<g id=\"edge15\" class=\"edge\">\n",
+ "<title>St8&#45;&gt;St2</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M372.7804,-97.7375C364.4575,-97.2025 355.3833,-97.7335 347.4879,-100.748 339.0917,-103.9536 331.2737,-109.5397 324.5973,-115.5382\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"322.024,-113.1592 317.3181,-122.6516 326.9164,-118.1657 322.024,-113.1592\"/>\n",
+ "<text text-anchor=\"middle\" x=\"350.9879\" y=\"-104.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St8&#45;&gt;St6 -->\n",
+ "<g id=\"edge14\" class=\"edge\">\n",
+ "<title>St8&#45;&gt;St6</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M425.9282,-99.9141C434.1767,-99.9159 443.1485,-100.8424 450.9839,-103.748 457.5881,-106.1971 463.9209,-110.0657 469.6384,-114.3966\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"467.6075,-117.2598 477.5349,-120.961 472.0824,-111.8768 467.6075,-117.2598\"/>\n",
+ "<text text-anchor=\"middle\" x=\"447.4839\" y=\"-107.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St7&#45;&gt;St4 -->\n",
+ "<g id=\"edge11\" class=\"edge\">\n",
+ "<title>St7&#45;&gt;St4</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M276.2844,-59.7375C267.9616,-59.2025 258.8873,-59.7335 250.9919,-62.748 242.5957,-65.9536 234.7777,-71.5397 228.1014,-77.5382\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"225.528,-75.1592 220.8221,-84.6516 230.4204,-80.1657 225.528,-75.1592\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-66.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St7&#45;&gt;St8 -->\n",
+ "<g id=\"edge10\" class=\"edge\">\n",
+ "<title>St7&#45;&gt;St8</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M329.4322,-61.9141C337.6808,-61.9159 346.6526,-62.8424 354.4879,-65.748 361.0922,-68.1971 367.4249,-72.0657 373.1424,-76.3966\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"371.1116,-79.2598 381.0389,-82.961 375.5864,-73.8768 371.1116,-79.2598\"/>\n",
+ "<text text-anchor=\"middle\" x=\"350.9879\" y=\"-69.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "<!-- St1&#45;&gt;St0 -->\n",
+ "<g id=\"edge7\" class=\"edge\">\n",
+ "<title>St1&#45;&gt;St0</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M179.7427,-23.0296C171.4174,-22.8306 162.3533,-23.6528 154.496,-26.748 147.4422,-29.5266 140.8882,-34.1656 135.1892,-39.2654\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"132.6436,-36.8601 127.9809,-46.3738 137.5587,-41.8443 132.6436,-36.8601\"/>\n",
+ "<text text-anchor=\"middle\" x=\"157.996\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St1&#45;&gt;St7 -->\n",
+ "<g id=\"edge6\" class=\"edge\">\n",
+ "<title>St1&#45;&gt;St7</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M232.9363,-23.9141C241.1848,-23.9159 250.1566,-24.8424 257.9919,-27.748 264.5962,-30.1971 270.929,-34.0657 276.6465,-38.3966\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"274.6156,-41.2598 284.5429,-44.961 279.0905,-35.8768 274.6156,-41.2598\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-31.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
+ "</g>\n",
+ "</g>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<graphviz.dot.Digraph at 0x7fa7a14078d0>"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dotObj_dfa(minDofNFA_Ex3z)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# What's the largest postage that can't be made using 3,5 and 7 cents?\n",
+ "\n",
+ "Answer is 4. Find it out."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
+ " -->\n",
+ "<!-- Title: %3 Pages: 1 -->\n",
+ "<svg width=\"611pt\" height=\"94pt\"\n",
+ " viewBox=\"0.00 0.00 610.98 94.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 90.496)\">\n",
+ "<title>%3</title>\n",
+ "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-90.496 606.9758,-90.496 606.9758,4 -4,4\"/>\n",
+ "<!-- EMPTY -->\n",
+ "<g id=\"node1\" class=\"node\">\n",
+ "<title>EMPTY</title>\n",
+ "</g>\n",
+ "<!-- St5 -->\n",
+ "<g id=\"node6\" class=\"node\">\n",
+ "<title>St5</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"117.748\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"117.748\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"117.748\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St5</text>\n",
+ "</g>\n",
+ "<!-- EMPTY&#45;&gt;St5 -->\n",
+ "<g id=\"edge1\" class=\"edge\">\n",
+ "<title>EMPTY&#45;&gt;St5</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M54.2274,-26.748C62.5578,-26.748 71.8652,-26.748 80.7317,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"80.8526,-30.2481 90.8525,-26.748 80.8525,-23.2481 80.8526,-30.2481\"/>\n",
+ "</g>\n",
+ "<!-- St1 -->\n",
+ "<g id=\"node2\" class=\"node\">\n",
+ "<title>St1</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"483.7318\" cy=\"-26.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"483.7318\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St1</text>\n",
+ "</g>\n",
+ "<!-- St0 -->\n",
+ "<g id=\"node7\" class=\"node\">\n",
+ "<title>St0</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"576.2278\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"576.2278\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"576.2278\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St0</text>\n",
+ "</g>\n",
+ "<!-- St1&#45;&gt;St0 -->\n",
+ "<g id=\"edge6\" class=\"edge\">\n",
+ "<title>St1&#45;&gt;St0</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M506.596,-26.748C516.4069,-26.748 528.1231,-26.748 539.121,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"539.3596,-30.2481 549.3596,-26.748 539.3596,-23.2481 539.3596,-30.2481\"/>\n",
+ "<text text-anchor=\"middle\" x=\"527.9798\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St4 -->\n",
+ "<g id=\"node3\" class=\"node\">\n",
+ "<title>St4</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"210.2439\" cy=\"-26.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"210.2439\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St4</text>\n",
+ "</g>\n",
+ "<!-- St2 -->\n",
+ "<g id=\"node4\" class=\"node\">\n",
+ "<title>St2</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"298.7399\" cy=\"-26.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
+ "<text text-anchor=\"middle\" x=\"298.7399\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St2</text>\n",
+ "</g>\n",
+ "<!-- St4&#45;&gt;St2 -->\n",
+ "<g id=\"edge3\" class=\"edge\">\n",
+ "<title>St4&#45;&gt;St2</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M233.0339,-26.748C242.9691,-26.748 254.8086,-26.748 265.6831,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"265.7197,-30.2481 275.7197,-26.748 265.7196,-23.2481 265.7197,-30.2481\"/>\n",
+ "<text text-anchor=\"middle\" x=\"254.4919\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St3 -->\n",
+ "<g id=\"node5\" class=\"node\">\n",
+ "<title>St3</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"391.2359\" cy=\"-26.748\" rx=\"22.9609\" ry=\"22.9609\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"391.2359\" cy=\"-26.748\" rx=\"26.9983\" ry=\"26.9983\"/>\n",
+ "<text text-anchor=\"middle\" x=\"391.2359\" y=\"-23.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">St3</text>\n",
+ "</g>\n",
+ "<!-- St2&#45;&gt;St3 -->\n",
+ "<g id=\"edge4\" class=\"edge\">\n",
+ "<title>St2&#45;&gt;St3</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M321.6041,-26.748C331.415,-26.748 343.1312,-26.748 354.1291,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"354.3677,-30.2481 364.3677,-26.748 354.3676,-23.2481 354.3677,-30.2481\"/>\n",
+ "<text text-anchor=\"middle\" x=\"342.9879\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St3&#45;&gt;St1 -->\n",
+ "<g id=\"edge5\" class=\"edge\">\n",
+ "<title>St3&#45;&gt;St1</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M417.9895,-26.748C428.1536,-26.748 439.8553,-26.748 450.5433,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"450.799,-30.2481 460.799,-26.748 450.7989,-23.2481 450.799,-30.2481\"/>\n",
+ "<text text-anchor=\"middle\" x=\"439.4839\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St5&#45;&gt;St4 -->\n",
+ "<g id=\"edge2\" class=\"edge\">\n",
+ "<title>St5&#45;&gt;St4</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M144.5016,-26.748C154.6657,-26.748 166.3674,-26.748 177.0554,-26.748\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.3111,-30.2481 187.3111,-26.748 177.3111,-23.2481 177.3111,-30.2481\"/>\n",
+ "<text text-anchor=\"middle\" x=\"165.996\" y=\"-30.548\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "<!-- St0&#45;&gt;St0 -->\n",
+ "<g id=\"edge7\" class=\"edge\">\n",
+ "<title>St0&#45;&gt;St0</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M567.3069,-52.049C566.6917,-62.574 569.6653,-71.496 576.2278,-71.496 580.5344,-71.496 583.2955,-67.6536 584.5109,-62.0374\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"588.0043,-62.2517 585.1487,-52.049 581.0185,-61.8056 588.0043,-62.2517\"/>\n",
+ "<text text-anchor=\"middle\" x=\"576.2278\" y=\"-75.296\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
+ "</g>\n",
+ "</g>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<graphviz.dot.Digraph at 0x7fa7a169ba90>"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dotObj_dfa(min_dfa_brz(nfa2dfa(re2nfa(\"(111+11111+1111111)*\"))))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# Show ambiguity in parsing"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Generating LALR tables\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Parsing an arithmetic expression\n",
+ "pdaEamb = md2mc('''PDA\n",
+ "!!E -> E * E | E + E | ~E | ( E ) | 2 | 3\n",
+ "I : '', # ; E# -> M\n",
+ "M : '', E ; ~E -> M\n",
+ "M : '', E ; E+E -> M\n",
+ "M : '', E ; E*E -> M\n",
+ "M : '', E ; (E) -> M\n",
+ "M : '', E ; 2 -> M\n",
+ "M : '', E ; 3 -> M\n",
+ "M : ~, ~ ; '' -> M\n",
+ "M : 2, 2 ; '' -> M\n",
+ "M : 3, 3 ; '' -> M\n",
+ "M : (, ( ; '' -> M\n",
+ "M : ), ) ; '' -> M\n",
+ "M : +, + ; '' -> M\n",
+ "M : *, * ; '' -> M\n",
+ "M : '', # ; # -> F\n",
+ "'''\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "You may use any of these help commands:\n",
+ "help(explore_pda)\n",
+ "help(run_pda)\n",
+ "help(classify_l_id_path)\n",
+ "help(h_run_pda)\n",
+ "help(interpret_w_eps)\n",
+ "help(step_pda)\n",
+ "help(suvivor_id)\n",
+ "help(term_id)\n",
+ "help(final_id)\n",
+ "help(cvt_str_to_sym)\n",
+ "help(is_surv_id)\n",
+ "help(subsumed)\n",
+ "help(is_term_id)\n",
+ "help(is_final_id)\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from jove.Def_PDA import *"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "*** Exploring wrt STKMAX = 7 ; increase it if needed ***\n",
+ "String 3+2*3+2*3 accepted by your PDA in 13 ways :-) \n",
+ "Here are the ways: \n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E*E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E*E*E#')\n",
+ "-> ('M', '+2*3+2*3', '+E*E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E*E#')\n",
+ "-> ('M', '*3+2*3', '*E*E#')\n",
+ "-> ('M', '3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3+2*3', '+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E*E#')\n",
+ "-> ('M', '*3+2*3', '*E*E#')\n",
+ "-> ('M', '3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3+2*3', '+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E#')\n",
+ "-> ('M', '*3+2*3', '*E#')\n",
+ "-> ('M', '3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3+2*3', '+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E#')\n",
+ "-> ('M', '*3+2*3', '*E#')\n",
+ "-> ('M', '3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3', '+E#')\n",
+ "-> ('M', '2*3', 'E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3+2*3', '+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E+E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E+E*E#')\n",
+ "-> ('M', '*3+2*3', '*E+E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E+E*E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E+E*E#')\n",
+ "-> ('M', '+2*3+2*3', '+E+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E+E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E+E*E#')\n",
+ "-> ('M', '*3+2*3', '*E+E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E*E+E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E*E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E*E+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E*E+E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E+E#')\n",
+ "-> ('M', '2*3+2*3', '2*E+E#')\n",
+ "-> ('M', '*3+2*3', '*E+E#')\n",
+ "-> ('M', '3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3', '+E#')\n",
+ "-> ('M', '2*3', 'E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E#')\n",
+ "-> ('M', '2*3+2*3', 'E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E*E#')\n",
+ "-> ('M', '*3+2*3', '*E*E#')\n",
+ "-> ('M', '3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E#')\n",
+ "-> ('M', '2*3+2*3', 'E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E#')\n",
+ "-> ('M', '*3+2*3', '*E#')\n",
+ "-> ('M', '3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3', 'E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E#')\n",
+ "-> ('M', '2*3+2*3', 'E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E#')\n",
+ "-> ('M', '*3+2*3', '*E#')\n",
+ "-> ('M', '3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3', '+E#')\n",
+ "-> ('M', '2*3', 'E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E#')\n",
+ "-> ('M', '2*3+2*3', 'E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E+E*E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E+E*E#')\n",
+ "-> ('M', '2*3+2*3', '2*E+E*E#')\n",
+ "-> ('M', '*3+2*3', '*E+E*E#')\n",
+ "-> ('M', '3+2*3', 'E+E*E#')\n",
+ "-> ('M', '3+2*3', '3+E*E#')\n",
+ "-> ('M', '+2*3', '+E*E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E#')\n",
+ "-> ('M', '2*3+2*3', 'E#')\n",
+ "-> ('M', '2*3+2*3', 'E+E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E+E#')\n",
+ "-> ('M', '2*3+2*3', '2*E+E#')\n",
+ "-> ('M', '*3+2*3', '*E+E#')\n",
+ "-> ('M', '3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3', '+E#')\n",
+ "-> ('M', '2*3', 'E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+E+E#')\n",
+ "-> ('M', '3+2*3+2*3', '3+E+E#')\n",
+ "-> ('M', '+2*3+2*3', '+E+E#')\n",
+ "-> ('M', '2*3+2*3', 'E+E#')\n",
+ "-> ('M', '2*3+2*3', 'E*E+E#')\n",
+ "-> ('M', '2*3+2*3', '2*E+E#')\n",
+ "-> ('M', '*3+2*3', '*E+E#')\n",
+ "-> ('M', '3+2*3', 'E+E#')\n",
+ "-> ('M', '3+2*3', '3+E#')\n",
+ "-> ('M', '+2*3', '+E#')\n",
+ "-> ('M', '2*3', 'E#')\n",
+ "-> ('M', '2*3', 'E*E#')\n",
+ "-> ('M', '2*3', '2*E#')\n",
+ "-> ('M', '*3', '*E#')\n",
+ "-> ('M', '3', 'E#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n"
+ ]
+ }
+ ],
+ "source": [
+ "explore_pda(\"3+2*3+2*3\", pdaEamb, STKMAX=7)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# Show how to disambiguate"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Generating LALR tables\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Parsing an arithmetic expression\n",
+ "pdaE = md2mc('''PDA\n",
+ "!!E -> E+T | T\n",
+ "!!T -> T*F | F\n",
+ "!!F -> 2 | 3 | ~F | (E)\n",
+ "I : '', # ; E# -> M\n",
+ "M : '', E ; E+T -> M\n",
+ "M : '', E ; T -> M\n",
+ "M : '', T ; T*F -> M\n",
+ "M : '', T ; F -> M\n",
+ "M : '', F ; 2 -> M\n",
+ "M : '', F ; 3 -> M\n",
+ "M : '', F ; ~F -> M\n",
+ "M : '', F ; (E) -> M\n",
+ "M : ~, ~ ; '' -> M\n",
+ "M : 2, 2 ; '' -> M\n",
+ "M : 3, 3 ; '' -> M\n",
+ "M : (, ( ; '' -> M\n",
+ "M : ), ) ; '' -> M\n",
+ "M : +, + ; '' -> M\n",
+ "M : *, * ; '' -> M\n",
+ "M : '', # ; # -> F\n",
+ "'''\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "*** Exploring wrt STKMAX = 7 ; increase it if needed ***\n",
+ "String 3+2*3+2*3 accepted by your PDA in 1 ways :-) \n",
+ "Here are the ways: \n",
+ "Final state ('F', '', '#')\n",
+ "Reached as follows:\n",
+ "-> ('I', '3+2*3+2*3', '#')\n",
+ "-> ('M', '3+2*3+2*3', 'E#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+T#')\n",
+ "-> ('M', '3+2*3+2*3', 'E+T+T#')\n",
+ "-> ('M', '3+2*3+2*3', 'T+T+T#')\n",
+ "-> ('M', '3+2*3+2*3', 'F+T+T#')\n",
+ "-> ('M', '3+2*3+2*3', '3+T+T#')\n",
+ "-> ('M', '+2*3+2*3', '+T+T#')\n",
+ "-> ('M', '2*3+2*3', 'T+T#')\n",
+ "-> ('M', '2*3+2*3', 'T*F+T#')\n",
+ "-> ('M', '2*3+2*3', 'F*F+T#')\n",
+ "-> ('M', '2*3+2*3', '2*F+T#')\n",
+ "-> ('M', '*3+2*3', '*F+T#')\n",
+ "-> ('M', '3+2*3', 'F+T#')\n",
+ "-> ('M', '3+2*3', '3+T#')\n",
+ "-> ('M', '+2*3', '+T#')\n",
+ "-> ('M', '2*3', 'T#')\n",
+ "-> ('M', '2*3', 'T*F#')\n",
+ "-> ('M', '2*3', 'F*F#')\n",
+ "-> ('M', '2*3', '2*F#')\n",
+ "-> ('M', '*3', '*F#')\n",
+ "-> ('M', '3', 'F#')\n",
+ "-> ('M', '3', '3#')\n",
+ "-> ('M', '', '#')\n",
+ "-> ('F', '', '#') .\n"
+ ]
+ }
+ ],
+ "source": [
+ "explore_pda(\"3+2*3+2*3\", pdaE, STKMAX=7)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# And finally, run a Turing Machine with \"dynamic tape allocation\" :-)\n",
+ "\n",
+ "* Why not show how TMs are encoded? \n",
+ "* This markdown gets parsed to build a TM!\n",
+ "* This TM is for the famous \"3x+1\" problem (Collatz's Problem)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "collatz_tm_str = \"\"\"\n",
+ "TM\n",
+ "\n",
+ "i_start : 0; ., R -> i_start !! erase this zero and try to find more\n",
+ "i_start : 1; 1, R -> goto_lsb !! we have a proper number, go to the lsb\n",
+ "i_start : .; ., S -> error !! error on no input or input == 0\n",
+ "\n",
+ "\n",
+ "goto_lsb : 0; 0,R | 1; 1,R -> goto_lsb !! scan off the right edge of the number\n",
+ "goto_lsb : .; .,L -> branch !! take a step back to be on the lsb and start branch\n",
+ "\n",
+ "\n",
+ "branch : 0; .,L -> branch !! number is even, divide by two and re-branch\n",
+ "branch : 1; 1,L -> check_n_eq_1 !! number is odd, check if it is 1\n",
+ "\n",
+ "\n",
+ "check_n_eq_1 : 0; 0,R | 1; 1,R -> 01_fma !! number wasn't 1, goto 3n+1\n",
+ "check_n_eq_1 : .; .,R -> f_halt !! number was 1, halt\n",
+ "\n",
+ "\n",
+ "!! carrying 0 we see a 0 so write 0 and carry 0 forward\n",
+ "00_fma : 0; 0,L -> 00_fma\n",
+ "\n",
+ "!! carrying 0 we see a 1 (times 3 is 11) so write 1 and carry 1 forward\n",
+ "00_fma : 1; 1,L -> 01_fma\n",
+ "\n",
+ "!! reached the end of the number, go back to the start\n",
+ "00_fma : .; .,R -> goto_lsb \n",
+ "\n",
+ "\n",
+ "!! carrying 1 we see a 0 so write 1 and carry 0 forward\n",
+ "01_fma : 0; 1,L -> 00_fma \n",
+ "\n",
+ "!! carrying 1 we see a 1 (times 3 is 11, plus our carry is 100) so write 0 and carry 10 forward\n",
+ "01_fma : 1; 0,L -> 10_fma \n",
+ "\n",
+ "!! reached the end of the number, write our 1 and go back to the start\n",
+ "01_fma : .; 1,R -> goto_lsb \n",
+ "\n",
+ "\n",
+ "!! carrying 10 we see a 0, so write 0 and carry 1 forward\n",
+ "10_fma : 0; 0,L -> 01_fma\n",
+ "\n",
+ "!! carrying 10 we see a 1 (times 3 is 11, plus our carry is 101), so write 1 and carry 10 forward\n",
+ "10_fma : 1; 1,L -> 10_fma\n",
+ "\n",
+ "!! reached the end of the number, write a 0 from our 10 and carry 1\n",
+ "10_fma : .; 0,L -> 01_fma\n",
+ "\n",
+ "!!\"\"\"\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Generating LALR tables\n"
+ ]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
+ " -->\n",
+ "<!-- Title: %3 Pages: 1 -->\n",
+ "<svg width=\"961pt\" height=\"326pt\"\n",
+ " viewBox=\"0.00 0.00 960.66 326.29\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 322.2941)\">\n",
+ "<title>%3</title>\n",
+ "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-322.2941 956.6563,-322.2941 956.6563,4 -4,4\"/>\n",
+ "<!-- EMPTY -->\n",
+ "<g id=\"node1\" class=\"node\">\n",
+ "<title>EMPTY</title>\n",
+ "</g>\n",
+ "<!-- i_start -->\n",
+ "<g id=\"node5\" class=\"node\">\n",
+ "<title>i_start</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"123.4971\" cy=\"-46.9475\" rx=\"32.4942\" ry=\"32.4942\"/>\n",
+ "<text text-anchor=\"middle\" x=\"123.4971\" y=\"-43.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">i_start</text>\n",
+ "</g>\n",
+ "<!-- EMPTY&#45;&gt;i_start -->\n",
+ "<g id=\"edge1\" class=\"edge\">\n",
+ "<title>EMPTY&#45;&gt;i_start</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M54.1366,-46.9475C62.3991,-46.9475 71.6905,-46.9475 80.7226,-46.9475\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"80.7414,-50.4476 90.7413,-46.9475 80.7413,-43.4476 80.7414,-50.4476\"/>\n",
+ "</g>\n",
+ "<!-- branch -->\n",
+ "<g id=\"node2\" class=\"node\">\n",
+ "<title>branch</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"413.3339\" cy=\"-114.9475\" rx=\"34.394\" ry=\"34.394\"/>\n",
+ "<text text-anchor=\"middle\" x=\"413.3339\" y=\"-111.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n",
+ "</g>\n",
+ "<!-- branch&#45;&gt;branch -->\n",
+ "<g id=\"edge7\" class=\"edge\">\n",
+ "<title>branch&#45;&gt;branch</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M400.9619,-147.2131C400.831,-158.378 404.955,-167.3945 413.3339,-167.3945 418.9635,-167.3945 422.6723,-163.3243 424.4604,-157.267\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"427.9499,-157.5676 425.7059,-147.2131 421.003,-156.7069 427.9499,-157.5676\"/>\n",
+ "<text text-anchor=\"middle\" x=\"413.3339\" y=\"-171.1945\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; .,L</text>\n",
+ "</g>\n",
+ "<!-- check_n_eq_1 -->\n",
+ "<g id=\"node3\" class=\"node\">\n",
+ "<title>check_n_eq_1</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"582.5254\" cy=\"-119.9475\" rx=\"61.99\" ry=\"61.99\"/>\n",
+ "<text text-anchor=\"middle\" x=\"582.5254\" y=\"-116.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">check_n_eq_1</text>\n",
+ "</g>\n",
+ "<!-- branch&#45;&gt;check_n_eq_1 -->\n",
+ "<g id=\"edge8\" class=\"edge\">\n",
+ "<title>branch&#45;&gt;check_n_eq_1</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M447.9806,-115.9714C466.008,-116.5042 488.7503,-117.1763 510.3821,-117.8155\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"510.4538,-121.3191 520.5529,-118.1161 510.6607,-114.3221 510.4538,-121.3191\"/>\n",
+ "<text text-anchor=\"middle\" x=\"484.2809\" y=\"-121.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1 ; 1,L</text>\n",
+ "</g>\n",
+ "<!-- 01_fma -->\n",
+ "<g id=\"node4\" class=\"node\">\n",
+ "<title>01_fma</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"760.6165\" cy=\"-194.9475\" rx=\"38.1938\" ry=\"38.1938\"/>\n",
+ "<text text-anchor=\"middle\" x=\"760.6165\" y=\"-191.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">01_fma</text>\n",
+ "</g>\n",
+ "<!-- check_n_eq_1&#45;&gt;01_fma -->\n",
+ "<g id=\"edge9\" class=\"edge\">\n",
+ "<title>check_n_eq_1&#45;&gt;01_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M640.9754,-140.4924C661.2223,-148.0138 683.9329,-156.9073 704.2699,-165.9475 708.6274,-167.8845 713.1247,-169.997 717.5894,-172.1699\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"716.1406,-175.3583 726.6529,-176.6782 719.2582,-169.0908 716.1406,-175.3583\"/>\n",
+ "<text text-anchor=\"middle\" x=\"683.2699\" y=\"-184.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; 0,R </text>\n",
+ "<text text-anchor=\"middle\" x=\"683.2699\" y=\"-169.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\"> 1 ; 1,R</text>\n",
+ "</g>\n",
+ "<!-- f_halt -->\n",
+ "<g id=\"node10\" class=\"node\">\n",
+ "<title>f_halt</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"760.6165\" cy=\"-102.9475\" rx=\"31.373\" ry=\"31.373\"/>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"760.6165\" cy=\"-102.9475\" rx=\"35.3956\" ry=\"35.3956\"/>\n",
+ "<text text-anchor=\"middle\" x=\"760.6165\" y=\"-99.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">f_halt</text>\n",
+ "</g>\n",
+ "<!-- check_n_eq_1&#45;&gt;f_halt -->\n",
+ "<g id=\"edge10\" class=\"edge\">\n",
+ "<title>check_n_eq_1&#45;&gt;f_halt</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M644.3132,-114.0495C667.6237,-111.8243 693.6923,-109.3359 715.2317,-107.2798\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"715.7877,-110.7427 725.4098,-106.3082 715.1224,-103.7744 715.7877,-110.7427\"/>\n",
+ "<text text-anchor=\"middle\" x=\"683.2699\" y=\"-116.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">. ; .,R</text>\n",
+ "</g>\n",
+ "<!-- goto_lsb -->\n",
+ "<g id=\"node6\" class=\"node\">\n",
+ "<title>goto_lsb</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"270.9406\" cy=\"-114.9475\" rx=\"40.8928\" ry=\"40.8928\"/>\n",
+ "<text text-anchor=\"middle\" x=\"270.9406\" y=\"-111.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">goto_lsb</text>\n",
+ "</g>\n",
+ "<!-- 01_fma&#45;&gt;goto_lsb -->\n",
+ "<g id=\"edge16\" class=\"edge\">\n",
+ "<title>01_fma&#45;&gt;goto_lsb</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M722.8337,-201.8586C652.8892,-213.0782 499.3821,-230.283 378.887,-190.9475 353.035,-182.5082 327.9581,-165.5656 308.4914,-149.815\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"310.7034,-147.1024 300.7772,-143.398 306.2268,-152.4839 310.7034,-147.1024\"/>\n",
+ "<text text-anchor=\"middle\" x=\"484.2809\" y=\"-216.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">. ; 1,R</text>\n",
+ "</g>\n",
+ "<!-- 10_fma -->\n",
+ "<g id=\"node7\" class=\"node\">\n",
+ "<title>10_fma</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"914.3097\" cy=\"-246.9475\" rx=\"38.1938\" ry=\"38.1938\"/>\n",
+ "<text text-anchor=\"middle\" x=\"914.3097\" y=\"-243.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">10_fma</text>\n",
+ "</g>\n",
+ "<!-- 01_fma&#45;&gt;10_fma -->\n",
+ "<g id=\"edge15\" class=\"edge\">\n",
+ "<title>01_fma&#45;&gt;10_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M793.5249,-215.1272C801.0352,-219.1407 809.1193,-223.0155 816.9631,-225.9475 832.5063,-231.7576 850.0776,-236.1629 865.9716,-239.4\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"865.6538,-242.9032 876.1359,-241.3616 866.9804,-236.03 865.6538,-242.9032\"/>\n",
+ "<text text-anchor=\"middle\" x=\"837.4631\" y=\"-240.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1 ; 0,L</text>\n",
+ "</g>\n",
+ "<!-- 00_fma -->\n",
+ "<g id=\"node9\" class=\"node\">\n",
+ "<title>00_fma</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"914.3097\" cy=\"-118.9475\" rx=\"38.1938\" ry=\"38.1938\"/>\n",
+ "<text text-anchor=\"middle\" x=\"914.3097\" y=\"-115.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">00_fma</text>\n",
+ "</g>\n",
+ "<!-- 01_fma&#45;&gt;00_fma -->\n",
+ "<g id=\"edge14\" class=\"edge\">\n",
+ "<title>01_fma&#45;&gt;00_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M794.8124,-177.1712C802.1055,-173.4296 809.7756,-169.5315 816.9631,-165.9475 834.3931,-157.2562 853.6895,-147.8875 870.4745,-139.819\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"872.011,-142.9639 879.5133,-135.4828 868.9832,-136.6525 872.011,-142.9639\"/>\n",
+ "<text text-anchor=\"middle\" x=\"837.4631\" y=\"-169.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; 1,L</text>\n",
+ "</g>\n",
+ "<!-- i_start&#45;&gt;i_start -->\n",
+ "<g id=\"edge2\" class=\"edge\">\n",
+ "<title>i_start&#45;&gt;i_start</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M114.1221,-78.5082C114.1221,-89.0285 117.2471,-97.4446 123.4971,-97.4446 127.501,-97.4446 130.2224,-93.9906 131.6613,-88.7422\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"135.1729,-88.8502 132.8721,-78.5082 128.2214,-88.0277 135.1729,-88.8502\"/>\n",
+ "<text text-anchor=\"middle\" x=\"123.4971\" y=\"-101.2446\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; .,R</text>\n",
+ "</g>\n",
+ "<!-- i_start&#45;&gt;goto_lsb -->\n",
+ "<g id=\"edge3\" class=\"edge\">\n",
+ "<title>i_start&#45;&gt;goto_lsb</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M153.3345,-60.7083C173.6728,-70.0882 201.0174,-82.6994 224.2209,-93.4007\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"223.0001,-96.6919 233.5468,-97.7017 225.9318,-90.3354 223.0001,-96.6919\"/>\n",
+ "<text text-anchor=\"middle\" x=\"192.9942\" y=\"-91.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1 ; 1,R</text>\n",
+ "</g>\n",
+ "<!-- error -->\n",
+ "<g id=\"node8\" class=\"node\">\n",
+ "<title>error</title>\n",
+ "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"270.9406\" cy=\"-27.9475\" rx=\"27.8951\" ry=\"27.8951\"/>\n",
+ "<text text-anchor=\"middle\" x=\"270.9406\" y=\"-24.2475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">error</text>\n",
+ "</g>\n",
+ "<!-- i_start&#45;&gt;error -->\n",
+ "<g id=\"edge4\" class=\"edge\">\n",
+ "<title>i_start&#45;&gt;error</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M155.8542,-42.7779C178.5978,-39.8471 209.1074,-35.9155 232.9987,-32.8368\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.6531,-36.2815 243.1237,-31.5321 232.7584,-29.3389 233.6531,-36.2815\"/>\n",
+ "<text text-anchor=\"middle\" x=\"192.9942\" y=\"-44.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">. ; .,S</text>\n",
+ "</g>\n",
+ "<!-- goto_lsb&#45;&gt;branch -->\n",
+ "<g id=\"edge6\" class=\"edge\">\n",
+ "<title>goto_lsb&#45;&gt;branch</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M312.1266,-114.9475C329.704,-114.9475 350.2684,-114.9475 368.2523,-114.9475\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"368.5006,-118.4476 378.5006,-114.9475 368.5006,-111.4476 368.5006,-118.4476\"/>\n",
+ "<text text-anchor=\"middle\" x=\"345.387\" y=\"-118.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">. ; .,L</text>\n",
+ "</g>\n",
+ "<!-- goto_lsb&#45;&gt;goto_lsb -->\n",
+ "<g id=\"edge5\" class=\"edge\">\n",
+ "<title>goto_lsb&#45;&gt;goto_lsb</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M257.0961,-153.499C257.5094,-164.9689 262.1242,-173.8939 270.9406,-173.8939 276.8641,-173.8939 280.891,-169.865 283.0212,-163.7423\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"286.5372,-163.9479 284.7851,-153.499 279.6388,-162.76 286.5372,-163.9479\"/>\n",
+ "<text text-anchor=\"middle\" x=\"270.9406\" y=\"-192.6939\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; 0,R </text>\n",
+ "<text text-anchor=\"middle\" x=\"270.9406\" y=\"-177.6939\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\"> 1 ; 1,R</text>\n",
+ "</g>\n",
+ "<!-- 10_fma&#45;&gt;01_fma -->\n",
+ "<g id=\"edge17\" class=\"edge\">\n",
+ "<title>10_fma&#45;&gt;01_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M891.1439,-216.3106C881.9914,-206.6223 870.624,-197.1024 857.9631,-191.9475 842.676,-185.7234 824.8929,-184.6823 808.7401,-185.7763\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"808.0224,-182.3291 798.4035,-186.7706 808.6927,-189.297 808.0224,-182.3291\"/>\n",
+ "<text text-anchor=\"middle\" x=\"837.4631\" y=\"-210.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; 0,L </text>\n",
+ "<text text-anchor=\"middle\" x=\"837.4631\" y=\"-195.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\"> . ; 0,L</text>\n",
+ "</g>\n",
+ "<!-- 10_fma&#45;&gt;10_fma -->\n",
+ "<g id=\"edge18\" class=\"edge\">\n",
+ "<title>10_fma&#45;&gt;10_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M900.0632,-282.7127C900.2093,-294.1942 904.9581,-303.2941 914.3097,-303.2941 920.5928,-303.2941 924.7981,-299.1863 926.9257,-293.0082\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"930.4488,-293.1371 928.5562,-282.7127 923.535,-292.0421 930.4488,-293.1371\"/>\n",
+ "<text text-anchor=\"middle\" x=\"914.3097\" y=\"-307.0941\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1 ; 1,L</text>\n",
+ "</g>\n",
+ "<!-- 00_fma&#45;&gt;01_fma -->\n",
+ "<g id=\"edge12\" class=\"edge\">\n",
+ "<title>00_fma&#45;&gt;01_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M876.6487,-111.3608C857.675,-109.4491 834.9441,-110.2053 816.9631,-119.9475 804.2825,-126.818 807.4719,-135.3028 798.9631,-146.9475 796.4853,-150.3385 793.8626,-153.8219 791.1981,-157.289\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"788.342,-155.26 784.9537,-165.2985 793.8625,-159.564 788.342,-155.26\"/>\n",
+ "<text text-anchor=\"middle\" x=\"837.4631\" y=\"-123.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">1 ; 1,L</text>\n",
+ "</g>\n",
+ "<!-- 00_fma&#45;&gt;goto_lsb -->\n",
+ "<g id=\"edge13\" class=\"edge\">\n",
+ "<title>00_fma&#45;&gt;goto_lsb</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M888.1197,-90.4893C859.6708,-62.8227 811.4429,-24.9475 760.6165,-24.9475 413.3339,-24.9475 413.3339,-24.9475 413.3339,-24.9475 371.9436,-24.9475 332.7971,-52.4553 306.0641,-77.0555\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"303.3568,-74.8 298.5201,-84.2263 308.1795,-79.8736 303.3568,-74.8\"/>\n",
+ "<text text-anchor=\"middle\" x=\"582.5254\" y=\"-28.7475\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">. ; .,R</text>\n",
+ "</g>\n",
+ "<!-- 00_fma&#45;&gt;00_fma -->\n",
+ "<g id=\"edge11\" class=\"edge\">\n",
+ "<title>00_fma&#45;&gt;00_fma</title>\n",
+ "<path fill=\"none\" stroke=\"#000000\" d=\"M900.0632,-154.7127C900.2093,-166.1942 904.9581,-175.2941 914.3097,-175.2941 920.5928,-175.2941 924.7981,-171.1863 926.9257,-165.0082\"/>\n",
+ "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"930.4488,-165.1371 928.5562,-154.7127 923.535,-164.0421 930.4488,-165.1371\"/>\n",
+ "<text text-anchor=\"middle\" x=\"914.3097\" y=\"-179.0941\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">0 ; 0,L</text>\n",
+ "</g>\n",
+ "</g>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<graphviz.dot.Digraph at 0x7fa7a0d23908>"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Now show the above TM graphically!\n",
+ "collatz_tm = md2mc(collatz_tm_str)\n",
+ "dotObj_tm(collatz_tm, FuseEdges=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "You may use any of these help commands:\n",
+ "help(step_tm)\n",
+ "help(run_tm)\n",
+ "help(explore_tm)\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from jove.Def_TM import *"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Allocating 8 tape cells to the RIGHT!\n",
+ "Allocating 8 tape cells to the LEFT!\n",
+ "Detailing the halted configs now.\n",
+ "Accepted at ('f_halt', 5, '.....1..............', 65)\n",
+ " via .. \n",
+ " ->('i_start', 0, '0110', 100)\n",
+ " ->('i_start', 1, '.110', 99)\n",
+ " ->('goto_lsb', 2, '.110', 98)\n",
+ " ->('goto_lsb', 3, '.110', 97)\n",
+ " ->('goto_lsb', 4, '.110', 96)\n",
+ " ->('branch', 3, '.110........', 95)\n",
+ " ->('branch', 2, '.11.........', 94)\n",
+ " ->('check_n_eq_1', 1, '.11.........', 93)\n",
+ " ->('01_fma', 2, '.11.........', 92)\n",
+ " ->('10_fma', 1, '.10.........', 91)\n",
+ " ->('10_fma', 0, '.10.........', 90)\n",
+ " ->('01_fma', 7, '........010.........', 89)\n",
+ " ->('goto_lsb', 8, '.......1010.........', 88)\n",
+ " ->('goto_lsb', 9, '.......1010.........', 87)\n",
+ " ->('goto_lsb', 10, '.......1010.........', 86)\n",
+ " ->('goto_lsb', 11, '.......1010.........', 85)\n",
+ " ->('branch', 10, '.......1010.........', 84)\n",
+ " ->('branch', 9, '.......101..........', 83)\n",
+ " ->('check_n_eq_1', 8, '.......101..........', 82)\n",
+ " ->('01_fma', 9, '.......101..........', 81)\n",
+ " ->('10_fma', 8, '.......100..........', 80)\n",
+ " ->('01_fma', 7, '.......100..........', 79)\n",
+ " ->('10_fma', 6, '.......000..........', 78)\n",
+ " ->('01_fma', 5, '......0000..........', 77)\n",
+ " ->('goto_lsb', 6, '.....10000..........', 76)\n",
+ " ->('goto_lsb', 7, '.....10000..........', 75)\n",
+ " ->('goto_lsb', 8, '.....10000..........', 74)\n",
+ " ->('goto_lsb', 9, '.....10000..........', 73)\n",
+ " ->('goto_lsb', 10, '.....10000..........', 72)\n",
+ " ->('branch', 9, '.....10000..........', 71)\n",
+ " ->('branch', 8, '.....1000...........', 70)\n",
+ " ->('branch', 7, '.....100............', 69)\n",
+ " ->('branch', 6, '.....10.............', 68)\n",
+ " ->('branch', 5, '.....1..............', 67)\n",
+ " ->('check_n_eq_1', 4, '.....1..............', 66)\n",
+ " ->('f_halt', 5, '.....1..............', 65)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Will loop if the Collatz (\"3x+1\") program will ever loop!\n",
+ "explore_tm(collatz_tm, \"0110\", 100)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "run_control": {
+ "frozen": false,
+ "read_only": false
+ }
+ },
+ "source": [
+ "# END: You have a ton more waiting for your execution pleasure!"
+ ]
+ }
+ ],
+ "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.6.8"
+ },
+ "toc": {
+ "colors": {
+ "hover_highlight": "#DAA520",
+ "running_highlight": "#FF0000",
+ "selected_highlight": "#FFD700"
+ },
+ "moveMenuLeft": true,
+ "nav_menu": {
+ "height": "318px",
+ "width": "252px"
+ },
+ "navigate_menu": true,
+ "number_sections": true,
+ "sideBar": true,
+ "threshold": 4,
+ "toc_cell": false,
+ "toc_section_display": "block",
+ "toc_window_display": false,
+ "widenNotebook": false
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/src/test/data/Cue Combination with Neural Populations .ipynb b/src/test/data/Cue Combination with Neural Populations .ipynb
new file mode 100644
index 00000000..1d11ff75
--- /dev/null
+++ b/src/test/data/Cue Combination with Neural Populations .ipynb
@@ -0,0 +1,9822 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Humans and animals integrate multisensory cues near-optimally\n",
+ "## An intuition for how populations of neurons can perform Bayesian inference"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "from __future__ import division\n",
+ "import numpy as np\n",
+ "from scipy.special import factorial\n",
+ "import scipy.stats as stats\n",
+ "import pylab\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import seaborn as sns\n",
+ "sns.set_style(\"darkgrid\")\n",
+ "import ipywidgets\n",
+ "from IPython.display import display\n",
+ "from matplotlib.font_manager import FontProperties\n",
+ "fontP = FontProperties()\n",
+ "fontP.set_size('medium')\n",
+ "%config InlineBackend.figure_format = 'svg'\n",
+ "\n",
+ "\n",
+ "def mean_firing_rate(gain, stimulus, preferred_stimulus, std_tc, baseline):\n",
+ " # Gaussian tuning curve that determines the mean firing rate (Poisson rate parameter) for a given stimulus\n",
+ " return baseline + gain*stats.norm.pdf(preferred_stimulus, loc = stimulus, scale = std_tc)\n",
+ "\n",
+ "def get_spikes(gain, stimulus, preferred_stimuli, std_tc, baseline):\n",
+ " # produce a vector of spikes for some population given some stimulus\n",
+ " lambdas = mean_firing_rate(gain, stimulus, preferred_stimuli, std_tc, baseline)\n",
+ " return np.random.poisson(lambdas)\n",
+ " \n",
+ "def likelihood(stimulus, r, gain, preferred_stimuli, std_tc, baseline):\n",
+ " # returns p(r|s)\n",
+ " lambdas = mean_firing_rate(gain, stimulus, preferred_stimuli, std_tc, baseline)\n",
+ " return np.prod(lambdas**r)\n",
+ "\n",
+ "def spikes_and_inference(r_V = True,\n",
+ " r_A = True,\n",
+ " show_tuning_curves = False,\n",
+ " show_spike_count = False,\n",
+ " show_likelihoods = True,\n",
+ " true_stimulus = 10,\n",
+ " number_of_neurons = 40,\n",
+ " r_V_gain = 15,\n",
+ " r_A_gain = 75,\n",
+ " r_V_tuning_curve_sigma = 10,\n",
+ " r_A_tuning_curve_sigma = 10,\n",
+ " tuning_curve_baseline = 0,\n",
+ " joint_likelihood = True,\n",
+ " r_V_plus_r_A = True,\n",
+ " cue = False):\n",
+ " np.random.seed(7)\n",
+ " max_s = 40\n",
+ " preferred_stimuli = np.linspace(-max_s*2, max_s*2, number_of_neurons)\n",
+ " n_hypothesized_s = 250\n",
+ " hypothesized_s = np.linspace(-max_s, max_s, n_hypothesized_s)\n",
+ " gains = {'r1': r_V_gain,\n",
+ " 'r2': r_A_gain,\n",
+ " 'r1+r2': r_V_gain + r_A_gain}\n",
+ " sigma_TCs = {'r1': r_V_tuning_curve_sigma,\n",
+ " 'r2': r_A_tuning_curve_sigma,\n",
+ " 'r1+r2': (r_V_tuning_curve_sigma + r_A_tuning_curve_sigma)/2}\n",
+ " spikes = {'r1': get_spikes(gains['r1'], true_stimulus, preferred_stimuli, sigma_TCs['r1'], tuning_curve_baseline),\n",
+ " 'r2': get_spikes(gains['r2'], true_stimulus, preferred_stimuli, sigma_TCs['r2'], tuning_curve_baseline)}\n",
+ " spikes['r1+r2'] = spikes['r1'] + spikes['r2']\n",
+ " active_pops = []\n",
+ " if r_V: active_pops.append('r1')\n",
+ " if r_A: active_pops.append('r2')\n",
+ " if r_V_plus_r_A: active_pops.append('r1+r2')\n",
+ "\n",
+ " colors = {'r1': sns.xkcd_rgb['light purple'],\n",
+ " 'r2': sns.xkcd_rgb['dark pink'],\n",
+ " 'r1+r2': sns.xkcd_rgb['royal blue'],\n",
+ " 'joint': sns.xkcd_rgb['gold']}\n",
+ " nSubplots = show_spike_count + show_tuning_curves + show_likelihoods\n",
+ " fig, axes = plt.subplots(nSubplots, figsize = (7, 1.5*nSubplots)) # number of subplots according to what's been requested\n",
+ " if not isinstance(axes, np.ndarray): axes = [axes] # makes axes into a list even if it's just one subplot\n",
+ " subplot_idx = 0\n",
+ " \n",
+ " def plot_true_stimulus_and_legend(subplot_idx):\n",
+ " axes[subplot_idx].plot(true_stimulus, 0, 'k^', markersize = 12, clip_on = False, label = 'true rattlesnake location')\n",
+ " axes[subplot_idx].legend(loc = 'center left', bbox_to_anchor = (1, 0.5), prop = fontP)\n",
+ " \n",
+ " if show_tuning_curves:\n",
+ " for neuron in range(number_of_neurons):\n",
+ " if r_V:\n",
+ " axes[subplot_idx].plot(hypothesized_s,\n",
+ " mean_firing_rate(gains['r1'],\n",
+ " hypothesized_s,\n",
+ " preferred_stimuli[neuron],\n",
+ " sigma_TCs['r1'],\n",
+ " tuning_curve_baseline),\n",
+ " color = colors['r1'])\n",
+ " if r_A:\n",
+ " axes[subplot_idx].plot(hypothesized_s,\n",
+ " mean_firing_rate(gains['r2'],\n",
+ " hypothesized_s,\n",
+ " preferred_stimuli[neuron],\n",
+ " sigma_TCs['r2'],\n",
+ " tuning_curve_baseline),\n",
+ " color = colors['r2'])\n",
+ " axes[subplot_idx].set_xlabel('location $s$')\n",
+ " axes[subplot_idx].set_ylabel('mean firing rate\\n(spikes/s)')\n",
+ " axes[subplot_idx].set_ylim((0, 4))\n",
+ " axes[subplot_idx].set_xlim((-40, 40))\n",
+ " axes[subplot_idx].set_yticks(np.linspace(0, 4, 5))\n",
+ " subplot_idx += 1\n",
+ "\n",
+ " if show_spike_count:\n",
+ " idx = abs(preferred_stimuli) < max_s\n",
+ " if r_V:\n",
+ " axes[subplot_idx].plot(preferred_stimuli[idx], spikes['r1'][idx], 'o', color = colors['r1'],\n",
+ " clip_on = False, label = '$\\mathbf{r}_\\mathrm{V}$',\n",
+ " markersize=4)\n",
+ " if r_A:\n",
+ " axes[subplot_idx].plot(preferred_stimuli[idx], spikes['r2'][idx], 'o', color = colors['r2'],\n",
+ " clip_on = False, label = '$\\mathbf{r}_\\mathrm{A}$',\n",
+ " markersize=4)\n",
+ " if r_V_plus_r_A:\n",
+ " axes[subplot_idx].plot(preferred_stimuli[idx], spikes['r1+r2'][idx], 'o', color = colors['r1+r2'],\n",
+ " clip_on = False, label = '$\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}$',\n",
+ " markersize=8, zorder=1)\n",
+ " axes[subplot_idx].set_xlabel('preferred location')\n",
+ " axes[subplot_idx].set_ylabel('spike count')\n",
+ " axes[subplot_idx].set_ylim((0, 10))\n",
+ " axes[subplot_idx].set_xlim((-40, 40))\n",
+ " plot_true_stimulus_and_legend(subplot_idx)\n",
+ " subplot_idx += 1\n",
+ "\n",
+ " if show_likelihoods:\n",
+ " if cue:\n",
+ " var = 'c'\n",
+ " else:\n",
+ " var = '\\mathbf{r}'\n",
+ " likelihoods = {}\n",
+ " \n",
+ " for population in active_pops:\n",
+ " likelihoods[population] = np.zeros_like(hypothesized_s)\n",
+ " for idx, ort in enumerate(hypothesized_s):\n",
+ " likelihoods[population][idx] = likelihood(ort, spikes[population], gains[population],\n",
+ " preferred_stimuli, sigma_TCs[population], tuning_curve_baseline)\n",
+ " likelihoods[population] /= np.sum(likelihoods[population]) # normalize\n",
+ "\n",
+ " if r_V:\n",
+ " axes[subplot_idx].plot(hypothesized_s, likelihoods['r1'], color = colors['r1'],\n",
+ " linewidth = 2, label = '$p({}_\\mathrm{{V}}|s)$'.format(var))\n",
+ " if r_A:\n",
+ " axes[subplot_idx].plot(hypothesized_s, likelihoods['r2'], color = colors['r2'],\n",
+ " linewidth = 2, label = '$p({}_\\mathrm{{A}}|s)$'.format(var))\n",
+ " if r_V_plus_r_A:\n",
+ " axes[subplot_idx].plot(hypothesized_s, likelihoods['r1+r2'], color = colors['r1+r2'],\n",
+ " linewidth = 2, label = '$p({}_\\mathrm{{V}}+{}_\\mathrm{{A}}|s)$'.format(var, var))\n",
+ " if joint_likelihood:\n",
+ " product = likelihoods['r1']*likelihoods['r2']\n",
+ " product /= np.sum(product)\n",
+ " axes[subplot_idx].plot(hypothesized_s, product, color = colors['joint'],linewidth = 7,\n",
+ " label = '$p({}_\\mathrm{{V}}|s)\\ p({}_\\mathrm{{A}}|s)$'.format(var, var), zorder = 1)\n",
+ "\n",
+ " axes[subplot_idx].set_xlabel('location $s$')\n",
+ " axes[subplot_idx].set_ylabel('probability')\n",
+ " axes[subplot_idx].set_xlim((-40, 40))\n",
+ " axes[subplot_idx].legend()\n",
+ " axes[subplot_idx].set_yticks([])\n",
+ " \n",
+ " plot_true_stimulus_and_legend(subplot_idx)\n",
+ " subplot_idx += 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<p>We live in a complex environment and must constantly integrate sensory information to interact with the world around us. Inputs from different modalities might not always be congruent with each other, but dissociating the true nature of the stimulus may be a matter of life or death for an organism.</p>\n",
+ "<img src=\"http://www.wtadler.com/picdrop/rattlesnake.jpg\" width=25% height=25% align=\"left\" style=\"margin: 10px 10px 10px 0px;\" >\n",
+ "<p>You hear and see evidence of a rattlesnake in tall grass near you. You get an auditory and a visual cue of the snake's location $s$. Both cues are associated with a likelihood function indicating the probability of that cue for all possible locations of the snake. The likelihood function associated with the visual cue, $p(c_\\mathrm{V}|s)$, has high uncertainty, because of the tall grass. The auditory cue is easier to localize, so its associated likelihood function, $p(c_\\mathrm{A}|s)$, is sharper. In accordance with Bayes' Rule, and assuming a flat prior over the snake's location, an optimal estimate of the location of the snake can be computed by multiplying the two likelihoods. This joint likelihood will be between the two cues but closer to the less uncertain cue, and will have less uncertainty than both unimodal likelihood functions.</p>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
+ "<svg height=\"127pt\" version=\"1.1\" viewBox=\"0 0 595 127\" width=\"595pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ " <defs>\n",
+ " <style type=\"text/css\">\n",
+ "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
+ " </style>\n",
+ " </defs>\n",
+ " <g id=\"figure_1\">\n",
+ " <g id=\"patch_1\">\n",
+ " <path d=\"M 0 127.765156 \n",
+ "L 595.785625 127.765156 \n",
+ "L 595.785625 0 \n",
+ "L 0 0 \n",
+ "z\n",
+ "\" style=\"fill:#ffffff;\"/>\n",
+ " </g>\n",
+ " <g id=\"axes_1\">\n",
+ " <g id=\"patch_2\">\n",
+ " <path d=\"M 21.38875 90.36 \n",
+ "L 411.98875 90.36 \n",
+ "L 411.98875 7.2 \n",
+ "L 21.38875 7.2 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_1\">\n",
+ " <g id=\"xtick_1\">\n",
+ " <g id=\"line2d_1\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 21.38875 90.36 \n",
+ "L 21.38875 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_2\"/>\n",
+ " <g id=\"text_1\">\n",
+ " <!-- −40 -->\n",
+ " <defs>\n",
+ " <path d=\"M 52.828125 31.203125 \n",
+ "L 5.5625 31.203125 \n",
+ "L 5.5625 39.40625 \n",
+ "L 52.828125 39.40625 \n",
+ "z\n",
+ "\" id=\"ArialMT-2212\"/>\n",
+ " <path d=\"M 32.328125 0 \n",
+ "L 32.328125 17.140625 \n",
+ "L 1.265625 17.140625 \n",
+ "L 1.265625 25.203125 \n",
+ "L 33.9375 71.578125 \n",
+ "L 41.109375 71.578125 \n",
+ "L 41.109375 25.203125 \n",
+ "L 50.78125 25.203125 \n",
+ "L 50.78125 17.140625 \n",
+ "L 41.109375 17.140625 \n",
+ "L 41.109375 0 \n",
+ "z\n",
+ "M 32.328125 25.203125 \n",
+ "L 32.328125 57.46875 \n",
+ "L 9.90625 25.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-34\"/>\n",
+ " <path d=\"M 4.15625 35.296875 \n",
+ "Q 4.15625 48 6.765625 55.734375 \n",
+ "Q 9.375 63.484375 14.515625 67.671875 \n",
+ "Q 19.671875 71.875 27.484375 71.875 \n",
+ "Q 33.25 71.875 37.59375 69.546875 \n",
+ "Q 41.9375 67.234375 44.765625 62.859375 \n",
+ "Q 47.609375 58.5 49.21875 52.21875 \n",
+ "Q 50.828125 45.953125 50.828125 35.296875 \n",
+ "Q 50.828125 22.703125 48.234375 14.96875 \n",
+ "Q 45.65625 7.234375 40.5 3 \n",
+ "Q 35.359375 -1.21875 27.484375 -1.21875 \n",
+ "Q 17.140625 -1.21875 11.234375 6.203125 \n",
+ "Q 4.15625 15.140625 4.15625 35.296875 \n",
+ "M 13.1875 35.296875 \n",
+ "Q 13.1875 17.671875 17.3125 11.828125 \n",
+ "Q 21.4375 6 27.484375 6 \n",
+ "Q 33.546875 6 37.671875 11.859375 \n",
+ "Q 41.796875 17.71875 41.796875 35.296875 \n",
+ "Q 41.796875 52.984375 37.671875 58.78125 \n",
+ "Q 33.546875 64.59375 27.390625 64.59375 \n",
+ "Q 21.34375 64.59375 17.71875 59.46875 \n",
+ "Q 13.1875 52.9375 13.1875 35.296875 \n",
+ "\" id=\"ArialMT-30\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(12.9075 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_2\">\n",
+ " <g id=\"line2d_3\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 70.21375 90.36 \n",
+ "L 70.21375 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_4\"/>\n",
+ " <g id=\"text_2\">\n",
+ " <!-- −30 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.203125 18.890625 \n",
+ "L 12.984375 20.0625 \n",
+ "Q 14.5 12.59375 18.140625 9.296875 \n",
+ "Q 21.78125 6 27 6 \n",
+ "Q 33.203125 6 37.46875 10.296875 \n",
+ "Q 41.75 14.59375 41.75 20.953125 \n",
+ "Q 41.75 27 37.796875 30.921875 \n",
+ "Q 33.84375 34.859375 27.734375 34.859375 \n",
+ "Q 25.25 34.859375 21.53125 33.890625 \n",
+ "L 22.515625 41.609375 \n",
+ "Q 23.390625 41.5 23.921875 41.5 \n",
+ "Q 29.546875 41.5 34.03125 44.421875 \n",
+ "Q 38.53125 47.359375 38.53125 53.46875 \n",
+ "Q 38.53125 58.296875 35.25 61.46875 \n",
+ "Q 31.984375 64.65625 26.8125 64.65625 \n",
+ "Q 21.6875 64.65625 18.265625 61.421875 \n",
+ "Q 14.84375 58.203125 13.875 51.765625 \n",
+ "L 5.078125 53.328125 \n",
+ "Q 6.6875 62.15625 12.390625 67.015625 \n",
+ "Q 18.109375 71.875 26.609375 71.875 \n",
+ "Q 32.46875 71.875 37.390625 69.359375 \n",
+ "Q 42.328125 66.84375 44.9375 62.5 \n",
+ "Q 47.5625 58.15625 47.5625 53.265625 \n",
+ "Q 47.5625 48.640625 45.0625 44.828125 \n",
+ "Q 42.578125 41.015625 37.703125 38.765625 \n",
+ "Q 44.046875 37.3125 47.5625 32.6875 \n",
+ "Q 51.078125 28.078125 51.078125 21.140625 \n",
+ "Q 51.078125 11.765625 44.234375 5.25 \n",
+ "Q 37.40625 -1.265625 26.953125 -1.265625 \n",
+ "Q 17.53125 -1.265625 11.296875 4.34375 \n",
+ "Q 5.078125 9.96875 4.203125 18.890625 \n",
+ "\" id=\"ArialMT-33\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(61.7325 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_3\">\n",
+ " <g id=\"line2d_5\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 119.03875 90.36 \n",
+ "L 119.03875 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_6\"/>\n",
+ " <g id=\"text_3\">\n",
+ " <!-- −20 -->\n",
+ " <defs>\n",
+ " <path d=\"M 50.34375 8.453125 \n",
+ "L 50.34375 0 \n",
+ "L 3.03125 0 \n",
+ "Q 2.9375 3.171875 4.046875 6.109375 \n",
+ "Q 5.859375 10.9375 9.828125 15.625 \n",
+ "Q 13.8125 20.3125 21.34375 26.46875 \n",
+ "Q 33.015625 36.03125 37.109375 41.625 \n",
+ "Q 41.21875 47.21875 41.21875 52.203125 \n",
+ "Q 41.21875 57.421875 37.46875 61 \n",
+ "Q 33.734375 64.59375 27.734375 64.59375 \n",
+ "Q 21.390625 64.59375 17.578125 60.78125 \n",
+ "Q 13.765625 56.984375 13.71875 50.25 \n",
+ "L 4.6875 51.171875 \n",
+ "Q 5.609375 61.28125 11.65625 66.578125 \n",
+ "Q 17.71875 71.875 27.9375 71.875 \n",
+ "Q 38.234375 71.875 44.234375 66.15625 \n",
+ "Q 50.25 60.453125 50.25 52 \n",
+ "Q 50.25 47.703125 48.484375 43.546875 \n",
+ "Q 46.734375 39.40625 42.65625 34.8125 \n",
+ "Q 38.578125 30.21875 29.109375 22.21875 \n",
+ "Q 21.1875 15.578125 18.9375 13.203125 \n",
+ "Q 16.703125 10.84375 15.234375 8.453125 \n",
+ "z\n",
+ "\" id=\"ArialMT-32\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(110.5575 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_4\">\n",
+ " <g id=\"line2d_7\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 167.86375 90.36 \n",
+ "L 167.86375 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_8\"/>\n",
+ " <g id=\"text_4\">\n",
+ " <!-- −10 -->\n",
+ " <defs>\n",
+ " <path d=\"M 37.25 0 \n",
+ "L 28.46875 0 \n",
+ "L 28.46875 56 \n",
+ "Q 25.296875 52.984375 20.140625 49.953125 \n",
+ "Q 14.984375 46.921875 10.890625 45.40625 \n",
+ "L 10.890625 53.90625 \n",
+ "Q 18.265625 57.375 23.78125 62.296875 \n",
+ "Q 29.296875 67.234375 31.59375 71.875 \n",
+ "L 37.25 71.875 \n",
+ "z\n",
+ "\" id=\"ArialMT-31\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(159.3825 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_5\">\n",
+ " <g id=\"line2d_9\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 216.68875 90.36 \n",
+ "L 216.68875 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_10\"/>\n",
+ " <g id=\"text_5\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(213.908281 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_6\">\n",
+ " <g id=\"line2d_11\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 265.51375 90.36 \n",
+ "L 265.51375 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_12\"/>\n",
+ " <g id=\"text_6\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(259.952812 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_7\">\n",
+ " <g id=\"line2d_13\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 314.33875 90.36 \n",
+ "L 314.33875 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_14\"/>\n",
+ " <g id=\"text_7\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(308.777812 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_8\">\n",
+ " <g id=\"line2d_15\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 363.16375 90.36 \n",
+ "L 363.16375 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_16\"/>\n",
+ " <g id=\"text_8\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(357.602813 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_9\">\n",
+ " <g id=\"line2d_17\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 411.98875 90.36 \n",
+ "L 411.98875 7.2 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_18\"/>\n",
+ " <g id=\"text_9\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(406.427813 104.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_10\">\n",
+ " <!-- location $s$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.390625 0 \n",
+ "L 6.390625 71.578125 \n",
+ "L 15.1875 71.578125 \n",
+ "L 15.1875 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6c\"/>\n",
+ " <path d=\"M 3.328125 25.921875 \n",
+ "Q 3.328125 40.328125 11.328125 47.265625 \n",
+ "Q 18.015625 53.03125 27.640625 53.03125 \n",
+ "Q 38.328125 53.03125 45.109375 46.015625 \n",
+ "Q 51.90625 39.015625 51.90625 26.65625 \n",
+ "Q 51.90625 16.65625 48.90625 10.90625 \n",
+ "Q 45.90625 5.171875 40.15625 2 \n",
+ "Q 34.421875 -1.171875 27.640625 -1.171875 \n",
+ "Q 16.75 -1.171875 10.03125 5.8125 \n",
+ "Q 3.328125 12.796875 3.328125 25.921875 \n",
+ "M 12.359375 25.921875 \n",
+ "Q 12.359375 15.96875 16.703125 11.015625 \n",
+ "Q 21.046875 6.0625 27.640625 6.0625 \n",
+ "Q 34.1875 6.0625 38.53125 11.03125 \n",
+ "Q 42.875 16.015625 42.875 26.21875 \n",
+ "Q 42.875 35.84375 38.5 40.796875 \n",
+ "Q 34.125 45.75 27.640625 45.75 \n",
+ "Q 21.046875 45.75 16.703125 40.8125 \n",
+ "Q 12.359375 35.890625 12.359375 25.921875 \n",
+ "\" id=\"ArialMT-6f\"/>\n",
+ " <path d=\"M 40.4375 19 \n",
+ "L 49.078125 17.875 \n",
+ "Q 47.65625 8.9375 41.8125 3.875 \n",
+ "Q 35.984375 -1.171875 27.484375 -1.171875 \n",
+ "Q 16.84375 -1.171875 10.375 5.78125 \n",
+ "Q 3.90625 12.75 3.90625 25.734375 \n",
+ "Q 3.90625 34.125 6.6875 40.421875 \n",
+ "Q 9.46875 46.734375 15.15625 49.875 \n",
+ "Q 20.84375 53.03125 27.546875 53.03125 \n",
+ "Q 35.984375 53.03125 41.359375 48.75 \n",
+ "Q 46.734375 44.484375 48.25 36.625 \n",
+ "L 39.703125 35.296875 \n",
+ "Q 38.484375 40.53125 35.375 43.15625 \n",
+ "Q 32.28125 45.796875 27.875 45.796875 \n",
+ "Q 21.234375 45.796875 17.078125 41.03125 \n",
+ "Q 12.9375 36.28125 12.9375 25.984375 \n",
+ "Q 12.9375 15.53125 16.9375 10.796875 \n",
+ "Q 20.953125 6.0625 27.390625 6.0625 \n",
+ "Q 32.5625 6.0625 36.03125 9.234375 \n",
+ "Q 39.5 12.40625 40.4375 19 \n",
+ "\" id=\"ArialMT-63\"/>\n",
+ " <path d=\"M 40.4375 6.390625 \n",
+ "Q 35.546875 2.25 31.03125 0.53125 \n",
+ "Q 26.515625 -1.171875 21.34375 -1.171875 \n",
+ "Q 12.796875 -1.171875 8.203125 3 \n",
+ "Q 3.609375 7.171875 3.609375 13.671875 \n",
+ "Q 3.609375 17.484375 5.34375 20.625 \n",
+ "Q 7.078125 23.78125 9.890625 25.6875 \n",
+ "Q 12.703125 27.59375 16.21875 28.5625 \n",
+ "Q 18.796875 29.25 24.03125 29.890625 \n",
+ "Q 34.671875 31.15625 39.703125 32.90625 \n",
+ "Q 39.75 34.71875 39.75 35.203125 \n",
+ "Q 39.75 40.578125 37.25 42.78125 \n",
+ "Q 33.890625 45.75 27.25 45.75 \n",
+ "Q 21.046875 45.75 18.09375 43.578125 \n",
+ "Q 15.140625 41.40625 13.71875 35.890625 \n",
+ "L 5.125 37.0625 \n",
+ "Q 6.296875 42.578125 8.984375 45.96875 \n",
+ "Q 11.671875 49.359375 16.75 51.1875 \n",
+ "Q 21.828125 53.03125 28.515625 53.03125 \n",
+ "Q 35.15625 53.03125 39.296875 51.46875 \n",
+ "Q 43.453125 49.90625 45.40625 47.53125 \n",
+ "Q 47.359375 45.171875 48.140625 41.546875 \n",
+ "Q 48.578125 39.3125 48.578125 33.453125 \n",
+ "L 48.578125 21.734375 \n",
+ "Q 48.578125 9.46875 49.140625 6.21875 \n",
+ "Q 49.703125 2.984375 51.375 0 \n",
+ "L 42.1875 0 \n",
+ "Q 40.828125 2.734375 40.4375 6.390625 \n",
+ "M 39.703125 26.03125 \n",
+ "Q 34.90625 24.078125 25.34375 22.703125 \n",
+ "Q 19.921875 21.921875 17.671875 20.9375 \n",
+ "Q 15.4375 19.96875 14.203125 18.09375 \n",
+ "Q 12.984375 16.21875 12.984375 13.921875 \n",
+ "Q 12.984375 10.40625 15.640625 8.0625 \n",
+ "Q 18.3125 5.71875 23.4375 5.71875 \n",
+ "Q 28.515625 5.71875 32.46875 7.9375 \n",
+ "Q 36.421875 10.15625 38.28125 14.015625 \n",
+ "Q 39.703125 17 39.703125 22.796875 \n",
+ "z\n",
+ "\" id=\"ArialMT-61\"/>\n",
+ " <path d=\"M 25.78125 7.859375 \n",
+ "L 27.046875 0.09375 \n",
+ "Q 23.34375 -0.6875 20.40625 -0.6875 \n",
+ "Q 15.625 -0.6875 12.984375 0.828125 \n",
+ "Q 10.359375 2.34375 9.28125 4.8125 \n",
+ "Q 8.203125 7.28125 8.203125 15.1875 \n",
+ "L 8.203125 45.015625 \n",
+ "L 1.765625 45.015625 \n",
+ "L 1.765625 51.859375 \n",
+ "L 8.203125 51.859375 \n",
+ "L 8.203125 64.703125 \n",
+ "L 16.9375 69.96875 \n",
+ "L 16.9375 51.859375 \n",
+ "L 25.78125 51.859375 \n",
+ "L 25.78125 45.015625 \n",
+ "L 16.9375 45.015625 \n",
+ "L 16.9375 14.703125 \n",
+ "Q 16.9375 10.9375 17.40625 9.859375 \n",
+ "Q 17.875 8.796875 18.921875 8.15625 \n",
+ "Q 19.96875 7.515625 21.921875 7.515625 \n",
+ "Q 23.390625 7.515625 25.78125 7.859375 \n",
+ "\" id=\"ArialMT-74\"/>\n",
+ " <path d=\"M 6.640625 61.46875 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 61.46875 \n",
+ "z\n",
+ "M 6.640625 0 \n",
+ "L 6.640625 51.859375 \n",
+ "L 15.4375 51.859375 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-69\"/>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.5 51.859375 \n",
+ "L 14.5 44.484375 \n",
+ "Q 20.21875 53.03125 31 53.03125 \n",
+ "Q 35.6875 53.03125 39.625 51.34375 \n",
+ "Q 43.5625 49.65625 45.515625 46.921875 \n",
+ "Q 47.46875 44.1875 48.25 40.4375 \n",
+ "Q 48.734375 37.984375 48.734375 31.890625 \n",
+ "L 48.734375 0 \n",
+ "L 39.9375 0 \n",
+ "L 39.9375 31.546875 \n",
+ "Q 39.9375 36.921875 38.90625 39.578125 \n",
+ "Q 37.890625 42.234375 35.28125 43.8125 \n",
+ "Q 32.671875 45.40625 29.15625 45.40625 \n",
+ "Q 23.53125 45.40625 19.453125 41.84375 \n",
+ "Q 15.375 38.28125 15.375 28.328125 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6e\"/>\n",
+ " <path id=\"ArialMT-20\"/>\n",
+ " <path d=\"M 50 53.078125 \n",
+ "L 48.296875 44.578125 \n",
+ "Q 44.734375 46.53125 40.765625 47.5 \n",
+ "Q 36.8125 48.484375 32.625 48.484375 \n",
+ "Q 25.53125 48.484375 21.453125 46.0625 \n",
+ "Q 17.390625 43.65625 17.390625 39.5 \n",
+ "Q 17.390625 34.671875 26.859375 32.078125 \n",
+ "Q 27.59375 31.890625 27.9375 31.78125 \n",
+ "L 30.8125 30.90625 \n",
+ "Q 39.796875 28.421875 42.796875 25.6875 \n",
+ "Q 45.796875 22.953125 45.796875 18.21875 \n",
+ "Q 45.796875 9.515625 38.890625 4.046875 \n",
+ "Q 31.984375 -1.421875 20.796875 -1.421875 \n",
+ "Q 16.453125 -1.421875 11.671875 -0.578125 \n",
+ "Q 6.890625 0.25 1.125 2 \n",
+ "L 2.875 11.28125 \n",
+ "Q 7.8125 8.734375 12.59375 7.421875 \n",
+ "Q 17.390625 6.109375 21.78125 6.109375 \n",
+ "Q 28.375 6.109375 32.5 8.9375 \n",
+ "Q 36.625 11.765625 36.625 16.109375 \n",
+ "Q 36.625 20.796875 25.78125 23.6875 \n",
+ "L 24.859375 23.921875 \n",
+ "L 21.78125 24.703125 \n",
+ "Q 14.9375 26.515625 11.765625 29.46875 \n",
+ "Q 8.59375 32.421875 8.59375 37.015625 \n",
+ "Q 8.59375 45.75 15.15625 50.875 \n",
+ "Q 21.734375 56 33.015625 56 \n",
+ "Q 37.453125 56 41.671875 55.265625 \n",
+ "Q 45.90625 54.546875 50 53.078125 \n",
+ "\" id=\"DejaVuSans-Oblique-73\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(193.31375 118.378906)scale(0.11 -0.11)\">\n",
+ " <use transform=\"translate(0 0.421875)\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use transform=\"translate(22.216797 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(77.832031 0.421875)\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use transform=\"translate(127.832031 0.421875)\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use transform=\"translate(183.447266 0.421875)\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use transform=\"translate(211.230469 0.421875)\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use transform=\"translate(233.447266 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(289.0625 0.421875)\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use transform=\"translate(344.677734 0.421875)\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use transform=\"translate(372.460938 0.421875)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_2\">\n",
+ " <g id=\"text_11\">\n",
+ " <!-- probability -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.59375 -19.875 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.59375 51.859375 \n",
+ "L 14.59375 45.125 \n",
+ "Q 17.4375 49.078125 21 51.046875 \n",
+ "Q 24.5625 53.03125 29.640625 53.03125 \n",
+ "Q 36.28125 53.03125 41.359375 49.609375 \n",
+ "Q 46.4375 46.1875 49.015625 39.953125 \n",
+ "Q 51.609375 33.734375 51.609375 26.3125 \n",
+ "Q 51.609375 18.359375 48.75 11.984375 \n",
+ "Q 45.90625 5.609375 40.453125 2.21875 \n",
+ "Q 35.015625 -1.171875 29 -1.171875 \n",
+ "Q 24.609375 -1.171875 21.109375 0.6875 \n",
+ "Q 17.625 2.546875 15.375 5.375 \n",
+ "L 15.375 -19.875 \n",
+ "z\n",
+ "M 14.546875 25.640625 \n",
+ "Q 14.546875 15.625 18.59375 10.84375 \n",
+ "Q 22.65625 6.0625 28.421875 6.0625 \n",
+ "Q 34.28125 6.0625 38.453125 11.015625 \n",
+ "Q 42.625 15.96875 42.625 26.375 \n",
+ "Q 42.625 36.28125 38.546875 41.203125 \n",
+ "Q 34.46875 46.140625 28.8125 46.140625 \n",
+ "Q 23.1875 46.140625 18.859375 40.890625 \n",
+ "Q 14.546875 35.640625 14.546875 25.640625 \n",
+ "\" id=\"ArialMT-70\"/>\n",
+ " <path d=\"M 6.5 0 \n",
+ "L 6.5 51.859375 \n",
+ "L 14.40625 51.859375 \n",
+ "L 14.40625 44 \n",
+ "Q 17.4375 49.515625 20 51.265625 \n",
+ "Q 22.5625 53.03125 25.640625 53.03125 \n",
+ "Q 30.078125 53.03125 34.671875 50.203125 \n",
+ "L 31.640625 42.046875 \n",
+ "Q 28.421875 43.953125 25.203125 43.953125 \n",
+ "Q 22.3125 43.953125 20.015625 42.21875 \n",
+ "Q 17.71875 40.484375 16.75 37.40625 \n",
+ "Q 15.28125 32.71875 15.28125 27.15625 \n",
+ "L 15.28125 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-72\"/>\n",
+ " <path d=\"M 14.703125 0 \n",
+ "L 6.546875 0 \n",
+ "L 6.546875 71.578125 \n",
+ "L 15.328125 71.578125 \n",
+ "L 15.328125 46.046875 \n",
+ "Q 20.90625 53.03125 29.546875 53.03125 \n",
+ "Q 34.328125 53.03125 38.59375 51.09375 \n",
+ "Q 42.875 49.171875 45.625 45.671875 \n",
+ "Q 48.390625 42.1875 49.953125 37.25 \n",
+ "Q 51.515625 32.328125 51.515625 26.703125 \n",
+ "Q 51.515625 13.375 44.921875 6.09375 \n",
+ "Q 38.328125 -1.171875 29.109375 -1.171875 \n",
+ "Q 19.921875 -1.171875 14.703125 6.5 \n",
+ "z\n",
+ "M 14.59375 26.3125 \n",
+ "Q 14.59375 17 17.140625 12.84375 \n",
+ "Q 21.296875 6.0625 28.375 6.0625 \n",
+ "Q 34.125 6.0625 38.328125 11.0625 \n",
+ "Q 42.53125 16.0625 42.53125 25.984375 \n",
+ "Q 42.53125 36.140625 38.5 40.96875 \n",
+ "Q 34.46875 45.796875 28.765625 45.796875 \n",
+ "Q 23 45.796875 18.796875 40.796875 \n",
+ "Q 14.59375 35.796875 14.59375 26.3125 \n",
+ "\" id=\"ArialMT-62\"/>\n",
+ " <path d=\"M 6.203125 -19.96875 \n",
+ "L 5.21875 -11.71875 \n",
+ "Q 8.109375 -12.5 10.25 -12.5 \n",
+ "Q 13.1875 -12.5 14.9375 -11.515625 \n",
+ "Q 16.703125 -10.546875 17.828125 -8.796875 \n",
+ "Q 18.65625 -7.46875 20.515625 -2.25 \n",
+ "Q 20.75 -1.515625 21.296875 -0.09375 \n",
+ "L 1.609375 51.859375 \n",
+ "L 11.078125 51.859375 \n",
+ "L 21.875 21.828125 \n",
+ "Q 23.96875 16.109375 25.640625 9.8125 \n",
+ "Q 27.15625 15.875 29.25 21.625 \n",
+ "L 40.328125 51.859375 \n",
+ "L 49.125 51.859375 \n",
+ "L 29.390625 -0.875 \n",
+ "Q 26.21875 -9.421875 24.46875 -12.640625 \n",
+ "Q 22.125 -17 19.09375 -19.015625 \n",
+ "Q 16.0625 -21.046875 11.859375 -21.046875 \n",
+ "Q 9.328125 -21.046875 6.203125 -19.96875 \n",
+ "\" id=\"ArialMT-79\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(15.073594 73.847969)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"88.916016\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"144.53125\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"200.146484\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"255.761719\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"311.376953\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"333.59375\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"355.810547\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"378.027344\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"405.810547\" xlink:href=\"#ArialMT-79\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_19\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 21.38875 86.58 \n",
+ "L 237.865858 86.511195 \n",
+ "L 241.003208 86.357762 \n",
+ "L 244.140557 85.935251 \n",
+ "L 245.709232 85.525142 \n",
+ "L 247.277907 84.899876 \n",
+ "L 248.846581 83.974849 \n",
+ "L 250.415256 82.647499 \n",
+ "L 251.983931 80.801048 \n",
+ "L 253.552605 78.312512 \n",
+ "L 255.12128 75.065573 \n",
+ "L 256.689955 70.968113 \n",
+ "L 258.25863 65.973097 \n",
+ "L 259.827304 60.100221 \n",
+ "L 261.395979 53.454666 \n",
+ "L 267.670678 24.552146 \n",
+ "L 269.239352 18.729338 \n",
+ "L 270.808027 14.325366 \n",
+ "L 272.376702 11.673137 \n",
+ "L 273.945377 10.98 \n",
+ "L 275.514051 12.300963 \n",
+ "L 277.082726 15.531482 \n",
+ "L 278.651401 20.421133 \n",
+ "L 280.220075 26.605673 \n",
+ "L 283.357425 41.107075 \n",
+ "L 286.494774 55.611688 \n",
+ "L 288.063449 62.031991 \n",
+ "L 289.632123 67.63654 \n",
+ "L 291.200798 72.348633 \n",
+ "L 292.769473 76.171738 \n",
+ "L 294.338148 79.169387 \n",
+ "L 295.906822 81.443417 \n",
+ "L 297.475497 83.113919 \n",
+ "L 299.044172 84.303082 \n",
+ "L 300.612846 85.123869 \n",
+ "L 302.181521 85.673437 \n",
+ "L 303.750196 86.030536 \n",
+ "L 306.887545 86.393768 \n",
+ "L 311.593569 86.549952 \n",
+ "L 325.711642 86.57997 \n",
+ "L 411.98875 86.58 \n",
+ "L 411.98875 86.58 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_20\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 21.38875 86.58 \n",
+ "L 164.138148 86.483068 \n",
+ "L 173.550196 86.248335 \n",
+ "L 179.824895 85.886589 \n",
+ "L 184.530919 85.425537 \n",
+ "L 189.236943 84.728042 \n",
+ "L 192.374292 84.094012 \n",
+ "L 195.511642 83.297578 \n",
+ "L 198.648991 82.316985 \n",
+ "L 201.78634 81.134137 \n",
+ "L 204.92369 79.737044 \n",
+ "L 208.061039 78.122383 \n",
+ "L 211.198389 76.297954 \n",
+ "L 215.904413 73.217801 \n",
+ "L 222.179111 68.694358 \n",
+ "L 228.45381 64.170089 \n",
+ "L 231.59116 62.109164 \n",
+ "L 234.728509 60.296406 \n",
+ "L 237.865858 58.811787 \n",
+ "L 241.003208 57.723852 \n",
+ "L 242.571883 57.345626 \n",
+ "L 244.140557 57.084481 \n",
+ "L 245.709232 56.943623 \n",
+ "L 247.277907 56.924792 \n",
+ "L 248.846581 57.028219 \n",
+ "L 250.415256 57.252627 \n",
+ "L 251.983931 57.595255 \n",
+ "L 255.12128 58.617078 \n",
+ "L 258.25863 60.044769 \n",
+ "L 261.395979 61.812029 \n",
+ "L 264.533328 63.840272 \n",
+ "L 269.239352 67.1855 \n",
+ "L 277.082726 72.882634 \n",
+ "L 281.78875 75.999799 \n",
+ "L 284.926099 77.854991 \n",
+ "L 288.063449 79.502741 \n",
+ "L 291.200798 80.933341 \n",
+ "L 294.338148 82.148556 \n",
+ "L 297.475497 83.159211 \n",
+ "L 300.612846 83.982626 \n",
+ "L 305.31887 84.913912 \n",
+ "L 310.024895 85.550272 \n",
+ "L 314.730919 85.966791 \n",
+ "L 321.005617 86.290031 \n",
+ "L 330.417666 86.496695 \n",
+ "L 347.673087 86.574247 \n",
+ "L 411.98875 86.58 \n",
+ "L 411.98875 86.58 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_21\">\n",
+ " <path clip-path=\"url(#pe842c8cf30)\" d=\"M 21.38875 86.58 \n",
+ "L 241.003208 86.477806 \n",
+ "L 244.140557 86.289945 \n",
+ "L 247.277907 85.828228 \n",
+ "L 248.846581 85.410244 \n",
+ "L 250.415256 84.800731 \n",
+ "L 251.983931 83.934391 \n",
+ "L 253.552605 82.734552 \n",
+ "L 255.12128 81.116061 \n",
+ "L 256.689955 78.990693 \n",
+ "L 258.25863 76.275287 \n",
+ "L 259.827304 72.902487 \n",
+ "L 261.395979 68.833372 \n",
+ "L 262.964654 64.070697 \n",
+ "L 264.533328 58.670908 \n",
+ "L 267.670678 46.50021 \n",
+ "L 270.808027 34.020036 \n",
+ "L 272.376702 28.406381 \n",
+ "L 273.945377 23.638865 \n",
+ "L 275.514051 20.009697 \n",
+ "L 277.082726 17.752187 \n",
+ "L 278.651401 17.015948 \n",
+ "L 280.220075 17.85049 \n",
+ "L 281.78875 20.199717 \n",
+ "L 283.357425 23.908164 \n",
+ "L 284.926099 28.738013 \n",
+ "L 286.494774 34.394305 \n",
+ "L 292.769473 59.027613 \n",
+ "L 294.338148 64.390125 \n",
+ "L 295.906822 69.1102 \n",
+ "L 297.475497 73.135071 \n",
+ "L 299.044172 76.464985 \n",
+ "L 300.612846 79.141043 \n",
+ "L 302.181521 81.231955 \n",
+ "L 303.750196 82.821492 \n",
+ "L 305.31887 83.997898 \n",
+ "L 306.887545 84.845921 \n",
+ "L 308.45622 85.441582 \n",
+ "L 310.024895 85.849413 \n",
+ "L 313.162244 86.298923 \n",
+ "L 316.299593 86.481252 \n",
+ "L 322.574292 86.570719 \n",
+ "L 364.928509 86.58 \n",
+ "L 411.98875 86.58 \n",
+ "L 411.98875 86.58 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_22\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 -6 \n",
+ "L -6 6 \n",
+ "L 6 6 \n",
+ "z\n",
+ "\" id=\"m1ab8fe30c1\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use x=\"265.51375\" xlink:href=\"#m1ab8fe30c1\" y=\"86.58\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"patch_3\">\n",
+ " <path d=\"M 21.38875 90.36 \n",
+ "L 21.38875 7.2 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_4\">\n",
+ " <path d=\"M 411.98875 90.36 \n",
+ "L 411.98875 7.2 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_5\">\n",
+ " <path d=\"M 21.38875 90.36 \n",
+ "L 411.98875 90.36 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_6\">\n",
+ " <path d=\"M 21.38875 7.2 \n",
+ "L 411.98875 7.2 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"legend_1\">\n",
+ " <g id=\"line2d_23\">\n",
+ " <path d=\"M 422.78875 21.152813 \n",
+ "L 446.78875 21.152813 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_24\"/>\n",
+ " <g id=\"text_12\">\n",
+ " <!-- $p(c_\\mathrm{V}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 49.609375 33.6875 \n",
+ "Q 49.609375 40.875 46.484375 44.671875 \n",
+ "Q 43.359375 48.484375 37.5 48.484375 \n",
+ "Q 33.5 48.484375 29.859375 46.4375 \n",
+ "Q 26.21875 44.390625 23.390625 40.484375 \n",
+ "Q 20.609375 36.625 18.9375 31.15625 \n",
+ "Q 17.28125 25.6875 17.28125 20.3125 \n",
+ "Q 17.28125 13.484375 20.40625 9.796875 \n",
+ "Q 23.53125 6.109375 29.296875 6.109375 \n",
+ "Q 33.546875 6.109375 37.1875 8.109375 \n",
+ "Q 40.828125 10.109375 43.40625 13.921875 \n",
+ "Q 46.1875 17.921875 47.890625 23.34375 \n",
+ "Q 49.609375 28.765625 49.609375 33.6875 \n",
+ "M 21.78125 46.390625 \n",
+ "Q 25.390625 51.125 30.296875 53.5625 \n",
+ "Q 35.203125 56 41.21875 56 \n",
+ "Q 49.609375 56 54.25 50.5 \n",
+ "Q 58.890625 45.015625 58.890625 35.109375 \n",
+ "Q 58.890625 27 56 19.65625 \n",
+ "Q 53.125 12.3125 47.703125 6.5 \n",
+ "Q 44.09375 2.640625 39.546875 0.609375 \n",
+ "Q 35.015625 -1.421875 29.984375 -1.421875 \n",
+ "Q 24.171875 -1.421875 20.21875 1 \n",
+ "Q 16.265625 3.421875 14.3125 8.203125 \n",
+ "L 8.6875 -20.796875 \n",
+ "L -0.296875 -20.796875 \n",
+ "L 14.40625 54.6875 \n",
+ "L 23.390625 54.6875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Oblique-70\"/>\n",
+ " <path d=\"M 31 75.875 \n",
+ "Q 24.46875 64.65625 21.28125 53.65625 \n",
+ "Q 18.109375 42.671875 18.109375 31.390625 \n",
+ "Q 18.109375 20.125 21.3125 9.0625 \n",
+ "Q 24.515625 -2 31 -13.1875 \n",
+ "L 23.1875 -13.1875 \n",
+ "Q 15.875 -1.703125 12.234375 9.375 \n",
+ "Q 8.59375 20.453125 8.59375 31.390625 \n",
+ "Q 8.59375 42.28125 12.203125 53.3125 \n",
+ "Q 15.828125 64.359375 23.1875 75.875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-28\"/>\n",
+ " <path d=\"M 53.609375 52.59375 \n",
+ "L 51.8125 43.703125 \n",
+ "Q 48.578125 46.046875 44.9375 47.21875 \n",
+ "Q 41.3125 48.390625 37.40625 48.390625 \n",
+ "Q 33.109375 48.390625 29.21875 46.875 \n",
+ "Q 25.34375 45.359375 22.703125 42.578125 \n",
+ "Q 18.5 38.328125 16.203125 32.609375 \n",
+ "Q 13.921875 26.90625 13.921875 20.796875 \n",
+ "Q 13.921875 13.421875 17.609375 9.8125 \n",
+ "Q 21.296875 6.203125 28.8125 6.203125 \n",
+ "Q 32.515625 6.203125 36.6875 7.328125 \n",
+ "Q 40.875 8.453125 45.40625 10.6875 \n",
+ "L 43.703125 1.8125 \n",
+ "Q 39.796875 0.203125 35.671875 -0.609375 \n",
+ "Q 31.546875 -1.421875 27.203125 -1.421875 \n",
+ "Q 16.3125 -1.421875 10.453125 4.015625 \n",
+ "Q 4.59375 9.46875 4.59375 19.578125 \n",
+ "Q 4.59375 28.078125 7.640625 35.234375 \n",
+ "Q 10.6875 42.390625 16.703125 48.09375 \n",
+ "Q 20.796875 52 26.3125 54 \n",
+ "Q 31.84375 56 38.375 56 \n",
+ "Q 42.1875 56 45.9375 55.140625 \n",
+ "Q 49.703125 54.296875 53.609375 52.59375 \n",
+ "\" id=\"DejaVuSans-Oblique-63\"/>\n",
+ " <path d=\"M 28.609375 0 \n",
+ "L 0.78125 72.90625 \n",
+ "L 11.078125 72.90625 \n",
+ "L 34.1875 11.53125 \n",
+ "L 57.328125 72.90625 \n",
+ "L 67.578125 72.90625 \n",
+ "L 39.796875 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-56\"/>\n",
+ " <path d=\"M 21 76.421875 \n",
+ "L 21 -23.578125 \n",
+ "L 12.703125 -23.578125 \n",
+ "L 12.703125 76.421875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-7c\"/>\n",
+ " <path d=\"M 8.015625 75.875 \n",
+ "L 15.828125 75.875 \n",
+ "Q 23.140625 64.359375 26.78125 53.3125 \n",
+ "Q 30.421875 42.28125 30.421875 31.390625 \n",
+ "Q 30.421875 20.453125 26.78125 9.375 \n",
+ "Q 23.140625 -1.703125 15.828125 -13.1875 \n",
+ "L 8.015625 -13.1875 \n",
+ "Q 14.5 -2 17.703125 9.0625 \n",
+ "Q 20.90625 20.125 20.90625 31.390625 \n",
+ "Q 20.90625 42.671875 17.703125 53.65625 \n",
+ "Q 14.5 64.65625 8.015625 75.875 \n",
+ "\" id=\"DejaVuSans-29\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 25.352813)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-63\"/>\n",
+ " <use transform=\"translate(157.470703 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(208.09082 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(241.782227 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(293.881836 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_25\">\n",
+ " <path d=\"M 422.78875 39.272813 \n",
+ "L 446.78875 39.272813 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_26\"/>\n",
+ " <g id=\"text_13\">\n",
+ " <!-- $p(c_\\mathrm{A}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 34.1875 63.1875 \n",
+ "L 20.796875 26.90625 \n",
+ "L 47.609375 26.90625 \n",
+ "z\n",
+ "M 28.609375 72.90625 \n",
+ "L 39.796875 72.90625 \n",
+ "L 67.578125 0 \n",
+ "L 57.328125 0 \n",
+ "L 50.6875 18.703125 \n",
+ "L 17.828125 18.703125 \n",
+ "L 11.1875 0 \n",
+ "L 0.78125 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-41\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 43.472813)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-63\"/>\n",
+ " <use transform=\"translate(157.470703 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(208.09082 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(241.782227 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(293.881836 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_27\">\n",
+ " <path d=\"M 422.78875 57.392813 \n",
+ "L 446.78875 57.392813 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_28\"/>\n",
+ " <g id=\"text_14\">\n",
+ " <!-- $p(c_\\mathrm{V}|s)\\ p(c_\\mathrm{A}|s)$ -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 61.592813)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-63\"/>\n",
+ " <use transform=\"translate(157.470703 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(208.09082 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(241.782227 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(293.881836 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " <use transform=\"translate(365.365886 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(428.842449 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(467.856121 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-63\"/>\n",
+ " <use transform=\"translate(522.836589 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(573.456707 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(607.148113 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(659.247722 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_29\"/>\n",
+ " <g id=\"line2d_30\">\n",
+ " <g>\n",
+ " <use x=\"434.78875\" xlink:href=\"#m1ab8fe30c1\" y=\"74.862188\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_15\">\n",
+ " <!-- true rattlesnake location -->\n",
+ " <defs>\n",
+ " <path d=\"M 40.578125 0 \n",
+ "L 40.578125 7.625 \n",
+ "Q 34.515625 -1.171875 24.125 -1.171875 \n",
+ "Q 19.53125 -1.171875 15.546875 0.578125 \n",
+ "Q 11.578125 2.34375 9.640625 5 \n",
+ "Q 7.71875 7.671875 6.9375 11.53125 \n",
+ "Q 6.390625 14.109375 6.390625 19.734375 \n",
+ "L 6.390625 51.859375 \n",
+ "L 15.1875 51.859375 \n",
+ "L 15.1875 23.09375 \n",
+ "Q 15.1875 16.21875 15.71875 13.8125 \n",
+ "Q 16.546875 10.359375 19.234375 8.375 \n",
+ "Q 21.921875 6.390625 25.875 6.390625 \n",
+ "Q 29.828125 6.390625 33.296875 8.421875 \n",
+ "Q 36.765625 10.453125 38.203125 13.9375 \n",
+ "Q 39.65625 17.4375 39.65625 24.078125 \n",
+ "L 39.65625 51.859375 \n",
+ "L 48.4375 51.859375 \n",
+ "L 48.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-75\"/>\n",
+ " <path d=\"M 42.09375 16.703125 \n",
+ "L 51.171875 15.578125 \n",
+ "Q 49.03125 7.625 43.21875 3.21875 \n",
+ "Q 37.40625 -1.171875 28.375 -1.171875 \n",
+ "Q 17 -1.171875 10.328125 5.828125 \n",
+ "Q 3.65625 12.84375 3.65625 25.484375 \n",
+ "Q 3.65625 38.578125 10.390625 45.796875 \n",
+ "Q 17.140625 53.03125 27.875 53.03125 \n",
+ "Q 38.28125 53.03125 44.875 45.953125 \n",
+ "Q 51.46875 38.875 51.46875 26.03125 \n",
+ "Q 51.46875 25.25 51.421875 23.6875 \n",
+ "L 12.75 23.6875 \n",
+ "Q 13.234375 15.140625 17.578125 10.59375 \n",
+ "Q 21.921875 6.0625 28.421875 6.0625 \n",
+ "Q 33.25 6.0625 36.671875 8.59375 \n",
+ "Q 40.09375 11.140625 42.09375 16.703125 \n",
+ "M 13.234375 30.90625 \n",
+ "L 42.1875 30.90625 \n",
+ "Q 41.609375 37.453125 38.875 40.71875 \n",
+ "Q 34.671875 45.796875 27.984375 45.796875 \n",
+ "Q 21.921875 45.796875 17.796875 41.75 \n",
+ "Q 13.671875 37.703125 13.234375 30.90625 \n",
+ "\" id=\"ArialMT-65\"/>\n",
+ " <path d=\"M 3.078125 15.484375 \n",
+ "L 11.765625 16.84375 \n",
+ "Q 12.5 11.625 15.84375 8.84375 \n",
+ "Q 19.1875 6.0625 25.203125 6.0625 \n",
+ "Q 31.25 6.0625 34.171875 8.515625 \n",
+ "Q 37.109375 10.984375 37.109375 14.3125 \n",
+ "Q 37.109375 17.28125 34.515625 19 \n",
+ "Q 32.71875 20.171875 25.53125 21.96875 \n",
+ "Q 15.875 24.421875 12.140625 26.203125 \n",
+ "Q 8.40625 27.984375 6.46875 31.125 \n",
+ "Q 4.546875 34.28125 4.546875 38.09375 \n",
+ "Q 4.546875 41.546875 6.125 44.5 \n",
+ "Q 7.71875 47.46875 10.453125 49.421875 \n",
+ "Q 12.5 50.921875 16.03125 51.96875 \n",
+ "Q 19.578125 53.03125 23.640625 53.03125 \n",
+ "Q 29.734375 53.03125 34.34375 51.265625 \n",
+ "Q 38.96875 49.515625 41.15625 46.5 \n",
+ "Q 43.359375 43.5 44.1875 38.484375 \n",
+ "L 35.59375 37.3125 \n",
+ "Q 35.015625 41.3125 32.203125 43.546875 \n",
+ "Q 29.390625 45.796875 24.265625 45.796875 \n",
+ "Q 18.21875 45.796875 15.625 43.796875 \n",
+ "Q 13.03125 41.796875 13.03125 39.109375 \n",
+ "Q 13.03125 37.40625 14.109375 36.03125 \n",
+ "Q 15.1875 34.625 17.484375 33.6875 \n",
+ "Q 18.796875 33.203125 25.25 31.453125 \n",
+ "Q 34.578125 28.953125 38.25 27.359375 \n",
+ "Q 41.9375 25.78125 44.03125 22.75 \n",
+ "Q 46.140625 19.734375 46.140625 15.234375 \n",
+ "Q 46.140625 10.84375 43.578125 6.953125 \n",
+ "Q 41.015625 3.078125 36.171875 0.953125 \n",
+ "Q 31.34375 -1.171875 25.25 -1.171875 \n",
+ "Q 15.140625 -1.171875 9.84375 3.03125 \n",
+ "Q 4.546875 7.234375 3.078125 15.484375 \n",
+ "\" id=\"ArialMT-73\"/>\n",
+ " <path d=\"M 6.640625 0 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 30.765625 \n",
+ "L 36.234375 51.859375 \n",
+ "L 47.609375 51.859375 \n",
+ "L 27.78125 32.625 \n",
+ "L 49.609375 0 \n",
+ "L 38.765625 0 \n",
+ "L 21.625 26.515625 \n",
+ "L 15.4375 20.5625 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 79.062188)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"27.783203\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"61.083984\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"116.699219\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"200.097656\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"233.398438\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"289.013672\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"316.796875\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"344.580078\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"366.796875\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"422.412109\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"472.412109\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"528.027344\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"583.642578\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"633.642578\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"689.257812\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"717.041016\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"739.257812\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"794.873047\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"844.873047\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"900.488281\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"928.271484\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"950.488281\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"1006.103516\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <defs>\n",
+ " <clipPath id=\"pe842c8cf30\">\n",
+ " <rect height=\"83.16\" width=\"390.6\" x=\"21.38875\" y=\"7.2\"/>\n",
+ " </clipPath>\n",
+ " </defs>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x1127eccf8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "spikes_and_inference(show_likelihoods = True, r_V_plus_r_A = False, cue = True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Behavioral experiments have demonstrated that humans perform near-optimal Bayesian inference on ambiguous sensory information (van Beers *et al.*, 1999; Ernst & Banks, 2002; Kording & Wolpert, 2004; Stocker & Simoncelli, 2006). This has been demonstrated in cue combination experiments in which subjects report a near-optimal estimate of the stimulus given two noisy measurements of that stimulus. However, the neural basis for how humans might perform these computations is unclear. \n",
+ "\n",
+ "Ma *et. al.* (2006) propose that variance in cortical activity, rather than impairing sensory systems, is an adaptive mechanism to encode uncertainty in sensory measurements. They provide theory showing how the brain might use probabilistic population codes to perform near-optimal cue combination. We will re-derive the theory in here, and demonstrate it by simulating and decoding neural populations.\n",
+ "\n",
+ "## Cues can be represented by neural populations\n",
+ "\n",
+ "To return to our deadly rattlesnake, let's now assume that $c_\\mathrm{V}$ and $c_\\mathrm{A}$ are represented by populations of neurons $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$, respectively. For our math and simulations, we assume that $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$ are each composed of $N$ neurons that:\n",
+ "\n",
+ "* have independent Poisson variability\n",
+ "* have regularly spaced Gaussian tuning curves that are identical in mean and variance for neurons with the same index in both populations\n",
+ "\n",
+ "The populations may have different gains, $g_\\mathrm{V}$ and $g_\\mathrm{A}$.\n",
+ "\n",
+ "These are the tuning curves for the neurons in $\\mathbf{r}_\\mathrm{V}$ (purple) and $\\mathbf{r}_\\mathrm{A}$ (red). Each curve represents the mean firing rate of a single neuron given a location $s$. Each neuron thus has a preferred location, which is where its tuning curve peaks."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
+ "<svg height=\"131pt\" version=\"1.1\" viewBox=\"0 0 449 131\" width=\"449pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ " <defs>\n",
+ " <style type=\"text/css\">\n",
+ "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
+ " </style>\n",
+ " </defs>\n",
+ " <g id=\"figure_1\">\n",
+ " <g id=\"patch_1\">\n",
+ " <path d=\"M 0 131.344063 \n",
+ "L 449.369031 131.344063 \n",
+ "L 449.369031 0 \n",
+ "L 0 0 \n",
+ "z\n",
+ "\" style=\"fill:#ffffff;\"/>\n",
+ " </g>\n",
+ " <g id=\"axes_1\">\n",
+ " <g id=\"patch_2\">\n",
+ " <path d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 10.778906 \n",
+ "L 46.008094 10.778906 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_1\">\n",
+ " <g id=\"xtick_1\">\n",
+ " <g id=\"line2d_1\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 46.008094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_2\"/>\n",
+ " <g id=\"text_1\">\n",
+ " <!-- −40 -->\n",
+ " <defs>\n",
+ " <path d=\"M 52.828125 31.203125 \n",
+ "L 5.5625 31.203125 \n",
+ "L 5.5625 39.40625 \n",
+ "L 52.828125 39.40625 \n",
+ "z\n",
+ "\" id=\"ArialMT-2212\"/>\n",
+ " <path d=\"M 32.328125 0 \n",
+ "L 32.328125 17.140625 \n",
+ "L 1.265625 17.140625 \n",
+ "L 1.265625 25.203125 \n",
+ "L 33.9375 71.578125 \n",
+ "L 41.109375 71.578125 \n",
+ "L 41.109375 25.203125 \n",
+ "L 50.78125 25.203125 \n",
+ "L 50.78125 17.140625 \n",
+ "L 41.109375 17.140625 \n",
+ "L 41.109375 0 \n",
+ "z\n",
+ "M 32.328125 25.203125 \n",
+ "L 32.328125 57.46875 \n",
+ "L 9.90625 25.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-34\"/>\n",
+ " <path d=\"M 4.15625 35.296875 \n",
+ "Q 4.15625 48 6.765625 55.734375 \n",
+ "Q 9.375 63.484375 14.515625 67.671875 \n",
+ "Q 19.671875 71.875 27.484375 71.875 \n",
+ "Q 33.25 71.875 37.59375 69.546875 \n",
+ "Q 41.9375 67.234375 44.765625 62.859375 \n",
+ "Q 47.609375 58.5 49.21875 52.21875 \n",
+ "Q 50.828125 45.953125 50.828125 35.296875 \n",
+ "Q 50.828125 22.703125 48.234375 14.96875 \n",
+ "Q 45.65625 7.234375 40.5 3 \n",
+ "Q 35.359375 -1.21875 27.484375 -1.21875 \n",
+ "Q 17.140625 -1.21875 11.234375 6.203125 \n",
+ "Q 4.15625 15.140625 4.15625 35.296875 \n",
+ "M 13.1875 35.296875 \n",
+ "Q 13.1875 17.671875 17.3125 11.828125 \n",
+ "Q 21.4375 6 27.484375 6 \n",
+ "Q 33.546875 6 37.671875 11.859375 \n",
+ "Q 41.796875 17.71875 41.796875 35.296875 \n",
+ "Q 41.796875 52.984375 37.671875 58.78125 \n",
+ "Q 33.546875 64.59375 27.390625 64.59375 \n",
+ "Q 21.34375 64.59375 17.71875 59.46875 \n",
+ "Q 13.1875 52.9375 13.1875 35.296875 \n",
+ "\" id=\"ArialMT-30\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(37.526844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_2\">\n",
+ " <g id=\"line2d_3\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 94.833094 93.938906 \n",
+ "L 94.833094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_4\"/>\n",
+ " <g id=\"text_2\">\n",
+ " <!-- −30 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.203125 18.890625 \n",
+ "L 12.984375 20.0625 \n",
+ "Q 14.5 12.59375 18.140625 9.296875 \n",
+ "Q 21.78125 6 27 6 \n",
+ "Q 33.203125 6 37.46875 10.296875 \n",
+ "Q 41.75 14.59375 41.75 20.953125 \n",
+ "Q 41.75 27 37.796875 30.921875 \n",
+ "Q 33.84375 34.859375 27.734375 34.859375 \n",
+ "Q 25.25 34.859375 21.53125 33.890625 \n",
+ "L 22.515625 41.609375 \n",
+ "Q 23.390625 41.5 23.921875 41.5 \n",
+ "Q 29.546875 41.5 34.03125 44.421875 \n",
+ "Q 38.53125 47.359375 38.53125 53.46875 \n",
+ "Q 38.53125 58.296875 35.25 61.46875 \n",
+ "Q 31.984375 64.65625 26.8125 64.65625 \n",
+ "Q 21.6875 64.65625 18.265625 61.421875 \n",
+ "Q 14.84375 58.203125 13.875 51.765625 \n",
+ "L 5.078125 53.328125 \n",
+ "Q 6.6875 62.15625 12.390625 67.015625 \n",
+ "Q 18.109375 71.875 26.609375 71.875 \n",
+ "Q 32.46875 71.875 37.390625 69.359375 \n",
+ "Q 42.328125 66.84375 44.9375 62.5 \n",
+ "Q 47.5625 58.15625 47.5625 53.265625 \n",
+ "Q 47.5625 48.640625 45.0625 44.828125 \n",
+ "Q 42.578125 41.015625 37.703125 38.765625 \n",
+ "Q 44.046875 37.3125 47.5625 32.6875 \n",
+ "Q 51.078125 28.078125 51.078125 21.140625 \n",
+ "Q 51.078125 11.765625 44.234375 5.25 \n",
+ "Q 37.40625 -1.265625 26.953125 -1.265625 \n",
+ "Q 17.53125 -1.265625 11.296875 4.34375 \n",
+ "Q 5.078125 9.96875 4.203125 18.890625 \n",
+ "\" id=\"ArialMT-33\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(86.351844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_3\">\n",
+ " <g id=\"line2d_5\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 143.658094 93.938906 \n",
+ "L 143.658094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_6\"/>\n",
+ " <g id=\"text_3\">\n",
+ " <!-- −20 -->\n",
+ " <defs>\n",
+ " <path d=\"M 50.34375 8.453125 \n",
+ "L 50.34375 0 \n",
+ "L 3.03125 0 \n",
+ "Q 2.9375 3.171875 4.046875 6.109375 \n",
+ "Q 5.859375 10.9375 9.828125 15.625 \n",
+ "Q 13.8125 20.3125 21.34375 26.46875 \n",
+ "Q 33.015625 36.03125 37.109375 41.625 \n",
+ "Q 41.21875 47.21875 41.21875 52.203125 \n",
+ "Q 41.21875 57.421875 37.46875 61 \n",
+ "Q 33.734375 64.59375 27.734375 64.59375 \n",
+ "Q 21.390625 64.59375 17.578125 60.78125 \n",
+ "Q 13.765625 56.984375 13.71875 50.25 \n",
+ "L 4.6875 51.171875 \n",
+ "Q 5.609375 61.28125 11.65625 66.578125 \n",
+ "Q 17.71875 71.875 27.9375 71.875 \n",
+ "Q 38.234375 71.875 44.234375 66.15625 \n",
+ "Q 50.25 60.453125 50.25 52 \n",
+ "Q 50.25 47.703125 48.484375 43.546875 \n",
+ "Q 46.734375 39.40625 42.65625 34.8125 \n",
+ "Q 38.578125 30.21875 29.109375 22.21875 \n",
+ "Q 21.1875 15.578125 18.9375 13.203125 \n",
+ "Q 16.703125 10.84375 15.234375 8.453125 \n",
+ "z\n",
+ "\" id=\"ArialMT-32\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(135.176844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_4\">\n",
+ " <g id=\"line2d_7\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 192.483094 93.938906 \n",
+ "L 192.483094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_8\"/>\n",
+ " <g id=\"text_4\">\n",
+ " <!-- −10 -->\n",
+ " <defs>\n",
+ " <path d=\"M 37.25 0 \n",
+ "L 28.46875 0 \n",
+ "L 28.46875 56 \n",
+ "Q 25.296875 52.984375 20.140625 49.953125 \n",
+ "Q 14.984375 46.921875 10.890625 45.40625 \n",
+ "L 10.890625 53.90625 \n",
+ "Q 18.265625 57.375 23.78125 62.296875 \n",
+ "Q 29.296875 67.234375 31.59375 71.875 \n",
+ "L 37.25 71.875 \n",
+ "z\n",
+ "\" id=\"ArialMT-31\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(184.001844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_5\">\n",
+ " <g id=\"line2d_9\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 241.308094 93.938906 \n",
+ "L 241.308094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_10\"/>\n",
+ " <g id=\"text_5\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(238.527625 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_6\">\n",
+ " <g id=\"line2d_11\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 290.133094 93.938906 \n",
+ "L 290.133094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_12\"/>\n",
+ " <g id=\"text_6\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(284.572156 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_7\">\n",
+ " <g id=\"line2d_13\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 338.958094 93.938906 \n",
+ "L 338.958094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_14\"/>\n",
+ " <g id=\"text_7\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(333.397156 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_8\">\n",
+ " <g id=\"line2d_15\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 387.783094 93.938906 \n",
+ "L 387.783094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_16\"/>\n",
+ " <g id=\"text_8\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(382.222156 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_9\">\n",
+ " <g id=\"line2d_17\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 436.608094 93.938906 \n",
+ "L 436.608094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_18\"/>\n",
+ " <g id=\"text_9\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(431.047156 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_10\">\n",
+ " <!-- location $s$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.390625 0 \n",
+ "L 6.390625 71.578125 \n",
+ "L 15.1875 71.578125 \n",
+ "L 15.1875 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6c\"/>\n",
+ " <path d=\"M 3.328125 25.921875 \n",
+ "Q 3.328125 40.328125 11.328125 47.265625 \n",
+ "Q 18.015625 53.03125 27.640625 53.03125 \n",
+ "Q 38.328125 53.03125 45.109375 46.015625 \n",
+ "Q 51.90625 39.015625 51.90625 26.65625 \n",
+ "Q 51.90625 16.65625 48.90625 10.90625 \n",
+ "Q 45.90625 5.171875 40.15625 2 \n",
+ "Q 34.421875 -1.171875 27.640625 -1.171875 \n",
+ "Q 16.75 -1.171875 10.03125 5.8125 \n",
+ "Q 3.328125 12.796875 3.328125 25.921875 \n",
+ "M 12.359375 25.921875 \n",
+ "Q 12.359375 15.96875 16.703125 11.015625 \n",
+ "Q 21.046875 6.0625 27.640625 6.0625 \n",
+ "Q 34.1875 6.0625 38.53125 11.03125 \n",
+ "Q 42.875 16.015625 42.875 26.21875 \n",
+ "Q 42.875 35.84375 38.5 40.796875 \n",
+ "Q 34.125 45.75 27.640625 45.75 \n",
+ "Q 21.046875 45.75 16.703125 40.8125 \n",
+ "Q 12.359375 35.890625 12.359375 25.921875 \n",
+ "\" id=\"ArialMT-6f\"/>\n",
+ " <path d=\"M 40.4375 19 \n",
+ "L 49.078125 17.875 \n",
+ "Q 47.65625 8.9375 41.8125 3.875 \n",
+ "Q 35.984375 -1.171875 27.484375 -1.171875 \n",
+ "Q 16.84375 -1.171875 10.375 5.78125 \n",
+ "Q 3.90625 12.75 3.90625 25.734375 \n",
+ "Q 3.90625 34.125 6.6875 40.421875 \n",
+ "Q 9.46875 46.734375 15.15625 49.875 \n",
+ "Q 20.84375 53.03125 27.546875 53.03125 \n",
+ "Q 35.984375 53.03125 41.359375 48.75 \n",
+ "Q 46.734375 44.484375 48.25 36.625 \n",
+ "L 39.703125 35.296875 \n",
+ "Q 38.484375 40.53125 35.375 43.15625 \n",
+ "Q 32.28125 45.796875 27.875 45.796875 \n",
+ "Q 21.234375 45.796875 17.078125 41.03125 \n",
+ "Q 12.9375 36.28125 12.9375 25.984375 \n",
+ "Q 12.9375 15.53125 16.9375 10.796875 \n",
+ "Q 20.953125 6.0625 27.390625 6.0625 \n",
+ "Q 32.5625 6.0625 36.03125 9.234375 \n",
+ "Q 39.5 12.40625 40.4375 19 \n",
+ "\" id=\"ArialMT-63\"/>\n",
+ " <path d=\"M 40.4375 6.390625 \n",
+ "Q 35.546875 2.25 31.03125 0.53125 \n",
+ "Q 26.515625 -1.171875 21.34375 -1.171875 \n",
+ "Q 12.796875 -1.171875 8.203125 3 \n",
+ "Q 3.609375 7.171875 3.609375 13.671875 \n",
+ "Q 3.609375 17.484375 5.34375 20.625 \n",
+ "Q 7.078125 23.78125 9.890625 25.6875 \n",
+ "Q 12.703125 27.59375 16.21875 28.5625 \n",
+ "Q 18.796875 29.25 24.03125 29.890625 \n",
+ "Q 34.671875 31.15625 39.703125 32.90625 \n",
+ "Q 39.75 34.71875 39.75 35.203125 \n",
+ "Q 39.75 40.578125 37.25 42.78125 \n",
+ "Q 33.890625 45.75 27.25 45.75 \n",
+ "Q 21.046875 45.75 18.09375 43.578125 \n",
+ "Q 15.140625 41.40625 13.71875 35.890625 \n",
+ "L 5.125 37.0625 \n",
+ "Q 6.296875 42.578125 8.984375 45.96875 \n",
+ "Q 11.671875 49.359375 16.75 51.1875 \n",
+ "Q 21.828125 53.03125 28.515625 53.03125 \n",
+ "Q 35.15625 53.03125 39.296875 51.46875 \n",
+ "Q 43.453125 49.90625 45.40625 47.53125 \n",
+ "Q 47.359375 45.171875 48.140625 41.546875 \n",
+ "Q 48.578125 39.3125 48.578125 33.453125 \n",
+ "L 48.578125 21.734375 \n",
+ "Q 48.578125 9.46875 49.140625 6.21875 \n",
+ "Q 49.703125 2.984375 51.375 0 \n",
+ "L 42.1875 0 \n",
+ "Q 40.828125 2.734375 40.4375 6.390625 \n",
+ "M 39.703125 26.03125 \n",
+ "Q 34.90625 24.078125 25.34375 22.703125 \n",
+ "Q 19.921875 21.921875 17.671875 20.9375 \n",
+ "Q 15.4375 19.96875 14.203125 18.09375 \n",
+ "Q 12.984375 16.21875 12.984375 13.921875 \n",
+ "Q 12.984375 10.40625 15.640625 8.0625 \n",
+ "Q 18.3125 5.71875 23.4375 5.71875 \n",
+ "Q 28.515625 5.71875 32.46875 7.9375 \n",
+ "Q 36.421875 10.15625 38.28125 14.015625 \n",
+ "Q 39.703125 17 39.703125 22.796875 \n",
+ "z\n",
+ "\" id=\"ArialMT-61\"/>\n",
+ " <path d=\"M 25.78125 7.859375 \n",
+ "L 27.046875 0.09375 \n",
+ "Q 23.34375 -0.6875 20.40625 -0.6875 \n",
+ "Q 15.625 -0.6875 12.984375 0.828125 \n",
+ "Q 10.359375 2.34375 9.28125 4.8125 \n",
+ "Q 8.203125 7.28125 8.203125 15.1875 \n",
+ "L 8.203125 45.015625 \n",
+ "L 1.765625 45.015625 \n",
+ "L 1.765625 51.859375 \n",
+ "L 8.203125 51.859375 \n",
+ "L 8.203125 64.703125 \n",
+ "L 16.9375 69.96875 \n",
+ "L 16.9375 51.859375 \n",
+ "L 25.78125 51.859375 \n",
+ "L 25.78125 45.015625 \n",
+ "L 16.9375 45.015625 \n",
+ "L 16.9375 14.703125 \n",
+ "Q 16.9375 10.9375 17.40625 9.859375 \n",
+ "Q 17.875 8.796875 18.921875 8.15625 \n",
+ "Q 19.96875 7.515625 21.921875 7.515625 \n",
+ "Q 23.390625 7.515625 25.78125 7.859375 \n",
+ "\" id=\"ArialMT-74\"/>\n",
+ " <path d=\"M 6.640625 61.46875 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 61.46875 \n",
+ "z\n",
+ "M 6.640625 0 \n",
+ "L 6.640625 51.859375 \n",
+ "L 15.4375 51.859375 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-69\"/>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.5 51.859375 \n",
+ "L 14.5 44.484375 \n",
+ "Q 20.21875 53.03125 31 53.03125 \n",
+ "Q 35.6875 53.03125 39.625 51.34375 \n",
+ "Q 43.5625 49.65625 45.515625 46.921875 \n",
+ "Q 47.46875 44.1875 48.25 40.4375 \n",
+ "Q 48.734375 37.984375 48.734375 31.890625 \n",
+ "L 48.734375 0 \n",
+ "L 39.9375 0 \n",
+ "L 39.9375 31.546875 \n",
+ "Q 39.9375 36.921875 38.90625 39.578125 \n",
+ "Q 37.890625 42.234375 35.28125 43.8125 \n",
+ "Q 32.671875 45.40625 29.15625 45.40625 \n",
+ "Q 23.53125 45.40625 19.453125 41.84375 \n",
+ "Q 15.375 38.28125 15.375 28.328125 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6e\"/>\n",
+ " <path id=\"ArialMT-20\"/>\n",
+ " <path d=\"M 50 53.078125 \n",
+ "L 48.296875 44.578125 \n",
+ "Q 44.734375 46.53125 40.765625 47.5 \n",
+ "Q 36.8125 48.484375 32.625 48.484375 \n",
+ "Q 25.53125 48.484375 21.453125 46.0625 \n",
+ "Q 17.390625 43.65625 17.390625 39.5 \n",
+ "Q 17.390625 34.671875 26.859375 32.078125 \n",
+ "Q 27.59375 31.890625 27.9375 31.78125 \n",
+ "L 30.8125 30.90625 \n",
+ "Q 39.796875 28.421875 42.796875 25.6875 \n",
+ "Q 45.796875 22.953125 45.796875 18.21875 \n",
+ "Q 45.796875 9.515625 38.890625 4.046875 \n",
+ "Q 31.984375 -1.421875 20.796875 -1.421875 \n",
+ "Q 16.453125 -1.421875 11.671875 -0.578125 \n",
+ "Q 6.890625 0.25 1.125 2 \n",
+ "L 2.875 11.28125 \n",
+ "Q 7.8125 8.734375 12.59375 7.421875 \n",
+ "Q 17.390625 6.109375 21.78125 6.109375 \n",
+ "Q 28.375 6.109375 32.5 8.9375 \n",
+ "Q 36.625 11.765625 36.625 16.109375 \n",
+ "Q 36.625 20.796875 25.78125 23.6875 \n",
+ "L 24.859375 23.921875 \n",
+ "L 21.78125 24.703125 \n",
+ "Q 14.9375 26.515625 11.765625 29.46875 \n",
+ "Q 8.59375 32.421875 8.59375 37.015625 \n",
+ "Q 8.59375 45.75 15.15625 50.875 \n",
+ "Q 21.734375 56 33.015625 56 \n",
+ "Q 37.453125 56 41.671875 55.265625 \n",
+ "Q 45.90625 54.546875 50 53.078125 \n",
+ "\" id=\"DejaVuSans-Oblique-73\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(217.933094 121.957813)scale(0.11 -0.11)\">\n",
+ " <use transform=\"translate(0 0.421875)\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use transform=\"translate(22.216797 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(77.832031 0.421875)\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use transform=\"translate(127.832031 0.421875)\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use transform=\"translate(183.447266 0.421875)\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use transform=\"translate(211.230469 0.421875)\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use transform=\"translate(233.447266 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(289.0625 0.421875)\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use transform=\"translate(344.677734 0.421875)\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use transform=\"translate(372.460938 0.421875)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_2\">\n",
+ " <g id=\"ytick_1\">\n",
+ " <g id=\"line2d_19\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_20\"/>\n",
+ " <g id=\"text_11\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(33.447156 97.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_2\">\n",
+ " <g id=\"line2d_21\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 73.148906 \n",
+ "L 436.608094 73.148906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_22\"/>\n",
+ " <g id=\"text_12\">\n",
+ " <!-- 1 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(33.447156 76.727812)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_3\">\n",
+ " <g id=\"line2d_23\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 52.358906 \n",
+ "L 436.608094 52.358906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_24\"/>\n",
+ " <g id=\"text_13\">\n",
+ " <!-- 2 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(33.447156 55.937813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_4\">\n",
+ " <g id=\"line2d_25\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 31.568906 \n",
+ "L 436.608094 31.568906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_26\"/>\n",
+ " <g id=\"text_14\">\n",
+ " <!-- 3 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(33.447156 35.147813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_5\">\n",
+ " <g id=\"line2d_27\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 10.778906 \n",
+ "L 436.608094 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_28\"/>\n",
+ " <g id=\"text_15\">\n",
+ " <!-- 4 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(33.447156 14.357813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_16\">\n",
+ " <!-- mean firing rate -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.453125 51.859375 \n",
+ "L 14.453125 44.578125 \n",
+ "Q 16.890625 48.390625 20.9375 50.703125 \n",
+ "Q 25 53.03125 30.171875 53.03125 \n",
+ "Q 35.9375 53.03125 39.625 50.640625 \n",
+ "Q 43.3125 48.25 44.828125 43.953125 \n",
+ "Q 50.984375 53.03125 60.84375 53.03125 \n",
+ "Q 68.5625 53.03125 72.703125 48.75 \n",
+ "Q 76.859375 44.484375 76.859375 35.59375 \n",
+ "L 76.859375 0 \n",
+ "L 68.109375 0 \n",
+ "L 68.109375 32.671875 \n",
+ "Q 68.109375 37.9375 67.25 40.25 \n",
+ "Q 66.40625 42.578125 64.15625 43.984375 \n",
+ "Q 61.921875 45.40625 58.890625 45.40625 \n",
+ "Q 53.421875 45.40625 49.796875 41.765625 \n",
+ "Q 46.1875 38.140625 46.1875 30.125 \n",
+ "L 46.1875 0 \n",
+ "L 37.40625 0 \n",
+ "L 37.40625 33.6875 \n",
+ "Q 37.40625 39.546875 35.25 42.46875 \n",
+ "Q 33.109375 45.40625 28.21875 45.40625 \n",
+ "Q 24.515625 45.40625 21.359375 43.453125 \n",
+ "Q 18.21875 41.5 16.796875 37.734375 \n",
+ "Q 15.375 33.984375 15.375 26.90625 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6d\"/>\n",
+ " <path d=\"M 42.09375 16.703125 \n",
+ "L 51.171875 15.578125 \n",
+ "Q 49.03125 7.625 43.21875 3.21875 \n",
+ "Q 37.40625 -1.171875 28.375 -1.171875 \n",
+ "Q 17 -1.171875 10.328125 5.828125 \n",
+ "Q 3.65625 12.84375 3.65625 25.484375 \n",
+ "Q 3.65625 38.578125 10.390625 45.796875 \n",
+ "Q 17.140625 53.03125 27.875 53.03125 \n",
+ "Q 38.28125 53.03125 44.875 45.953125 \n",
+ "Q 51.46875 38.875 51.46875 26.03125 \n",
+ "Q 51.46875 25.25 51.421875 23.6875 \n",
+ "L 12.75 23.6875 \n",
+ "Q 13.234375 15.140625 17.578125 10.59375 \n",
+ "Q 21.921875 6.0625 28.421875 6.0625 \n",
+ "Q 33.25 6.0625 36.671875 8.59375 \n",
+ "Q 40.09375 11.140625 42.09375 16.703125 \n",
+ "M 13.234375 30.90625 \n",
+ "L 42.1875 30.90625 \n",
+ "Q 41.609375 37.453125 38.875 40.71875 \n",
+ "Q 34.671875 45.796875 27.984375 45.796875 \n",
+ "Q 21.921875 45.796875 17.796875 41.75 \n",
+ "Q 13.671875 37.703125 13.234375 30.90625 \n",
+ "\" id=\"ArialMT-65\"/>\n",
+ " <path d=\"M 8.6875 0 \n",
+ "L 8.6875 45.015625 \n",
+ "L 0.921875 45.015625 \n",
+ "L 0.921875 51.859375 \n",
+ "L 8.6875 51.859375 \n",
+ "L 8.6875 57.375 \n",
+ "Q 8.6875 62.59375 9.625 65.140625 \n",
+ "Q 10.890625 68.5625 14.078125 70.671875 \n",
+ "Q 17.28125 72.796875 23.046875 72.796875 \n",
+ "Q 26.765625 72.796875 31.25 71.921875 \n",
+ "L 29.9375 64.265625 \n",
+ "Q 27.203125 64.75 24.75 64.75 \n",
+ "Q 20.75 64.75 19.09375 63.03125 \n",
+ "Q 17.4375 61.328125 17.4375 56.640625 \n",
+ "L 17.4375 51.859375 \n",
+ "L 27.546875 51.859375 \n",
+ "L 27.546875 45.015625 \n",
+ "L 17.4375 45.015625 \n",
+ "L 17.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-66\"/>\n",
+ " <path d=\"M 6.5 0 \n",
+ "L 6.5 51.859375 \n",
+ "L 14.40625 51.859375 \n",
+ "L 14.40625 44 \n",
+ "Q 17.4375 49.515625 20 51.265625 \n",
+ "Q 22.5625 53.03125 25.640625 53.03125 \n",
+ "Q 30.078125 53.03125 34.671875 50.203125 \n",
+ "L 31.640625 42.046875 \n",
+ "Q 28.421875 43.953125 25.203125 43.953125 \n",
+ "Q 22.3125 43.953125 20.015625 42.21875 \n",
+ "Q 17.71875 40.484375 16.75 37.40625 \n",
+ "Q 15.28125 32.71875 15.28125 27.15625 \n",
+ "L 15.28125 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-72\"/>\n",
+ " <path d=\"M 4.984375 -4.296875 \n",
+ "L 13.53125 -5.5625 \n",
+ "Q 14.0625 -9.515625 16.5 -11.328125 \n",
+ "Q 19.78125 -13.765625 25.4375 -13.765625 \n",
+ "Q 31.546875 -13.765625 34.859375 -11.328125 \n",
+ "Q 38.1875 -8.890625 39.359375 -4.5 \n",
+ "Q 40.046875 -1.8125 39.984375 6.78125 \n",
+ "Q 34.234375 0 25.640625 0 \n",
+ "Q 14.9375 0 9.078125 7.71875 \n",
+ "Q 3.21875 15.4375 3.21875 26.21875 \n",
+ "Q 3.21875 33.640625 5.90625 39.90625 \n",
+ "Q 8.59375 46.1875 13.6875 49.609375 \n",
+ "Q 18.796875 53.03125 25.6875 53.03125 \n",
+ "Q 34.859375 53.03125 40.828125 45.609375 \n",
+ "L 40.828125 51.859375 \n",
+ "L 48.921875 51.859375 \n",
+ "L 48.921875 7.03125 \n",
+ "Q 48.921875 -5.078125 46.453125 -10.125 \n",
+ "Q 44 -15.1875 38.640625 -18.109375 \n",
+ "Q 33.296875 -21.046875 25.484375 -21.046875 \n",
+ "Q 16.21875 -21.046875 10.5 -16.875 \n",
+ "Q 4.78125 -12.703125 4.984375 -4.296875 \n",
+ "M 12.25 26.859375 \n",
+ "Q 12.25 16.65625 16.296875 11.96875 \n",
+ "Q 20.359375 7.28125 26.46875 7.28125 \n",
+ "Q 32.515625 7.28125 36.609375 11.9375 \n",
+ "Q 40.71875 16.609375 40.71875 26.5625 \n",
+ "Q 40.71875 36.078125 36.5 40.90625 \n",
+ "Q 32.28125 45.75 26.3125 45.75 \n",
+ "Q 20.453125 45.75 16.34375 40.984375 \n",
+ "Q 12.25 36.234375 12.25 26.859375 \n",
+ "\" id=\"ArialMT-67\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(15.207656 90.568438)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-6d\"/>\n",
+ " <use x=\"83.300781\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"138.916016\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"194.53125\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"250.146484\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"277.929688\" xlink:href=\"#ArialMT-66\"/>\n",
+ " <use x=\"305.712891\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"327.929688\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"361.230469\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"383.447266\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"439.0625\" xlink:href=\"#ArialMT-67\"/>\n",
+ " <use x=\"494.677734\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"522.460938\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"555.761719\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"611.376953\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"639.160156\" xlink:href=\"#ArialMT-65\"/>\n",
+ " </g>\n",
+ " <!-- (spikes/s) -->\n",
+ " <defs>\n",
+ " <path d=\"M 23.390625 -21.046875 \n",
+ "Q 16.109375 -11.859375 11.078125 0.4375 \n",
+ "Q 6.0625 12.75 6.0625 25.921875 \n",
+ "Q 6.0625 37.546875 9.8125 48.1875 \n",
+ "Q 14.203125 60.546875 23.390625 72.796875 \n",
+ "L 29.6875 72.796875 \n",
+ "Q 23.78125 62.640625 21.875 58.296875 \n",
+ "Q 18.890625 51.5625 17.1875 44.234375 \n",
+ "Q 15.09375 35.109375 15.09375 25.875 \n",
+ "Q 15.09375 2.390625 29.6875 -21.046875 \n",
+ "z\n",
+ "\" id=\"ArialMT-28\"/>\n",
+ " <path d=\"M 3.078125 15.484375 \n",
+ "L 11.765625 16.84375 \n",
+ "Q 12.5 11.625 15.84375 8.84375 \n",
+ "Q 19.1875 6.0625 25.203125 6.0625 \n",
+ "Q 31.25 6.0625 34.171875 8.515625 \n",
+ "Q 37.109375 10.984375 37.109375 14.3125 \n",
+ "Q 37.109375 17.28125 34.515625 19 \n",
+ "Q 32.71875 20.171875 25.53125 21.96875 \n",
+ "Q 15.875 24.421875 12.140625 26.203125 \n",
+ "Q 8.40625 27.984375 6.46875 31.125 \n",
+ "Q 4.546875 34.28125 4.546875 38.09375 \n",
+ "Q 4.546875 41.546875 6.125 44.5 \n",
+ "Q 7.71875 47.46875 10.453125 49.421875 \n",
+ "Q 12.5 50.921875 16.03125 51.96875 \n",
+ "Q 19.578125 53.03125 23.640625 53.03125 \n",
+ "Q 29.734375 53.03125 34.34375 51.265625 \n",
+ "Q 38.96875 49.515625 41.15625 46.5 \n",
+ "Q 43.359375 43.5 44.1875 38.484375 \n",
+ "L 35.59375 37.3125 \n",
+ "Q 35.015625 41.3125 32.203125 43.546875 \n",
+ "Q 29.390625 45.796875 24.265625 45.796875 \n",
+ "Q 18.21875 45.796875 15.625 43.796875 \n",
+ "Q 13.03125 41.796875 13.03125 39.109375 \n",
+ "Q 13.03125 37.40625 14.109375 36.03125 \n",
+ "Q 15.1875 34.625 17.484375 33.6875 \n",
+ "Q 18.796875 33.203125 25.25 31.453125 \n",
+ "Q 34.578125 28.953125 38.25 27.359375 \n",
+ "Q 41.9375 25.78125 44.03125 22.75 \n",
+ "Q 46.140625 19.734375 46.140625 15.234375 \n",
+ "Q 46.140625 10.84375 43.578125 6.953125 \n",
+ "Q 41.015625 3.078125 36.171875 0.953125 \n",
+ "Q 31.34375 -1.171875 25.25 -1.171875 \n",
+ "Q 15.140625 -1.171875 9.84375 3.03125 \n",
+ "Q 4.546875 7.234375 3.078125 15.484375 \n",
+ "\" id=\"ArialMT-73\"/>\n",
+ " <path d=\"M 6.59375 -19.875 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.59375 51.859375 \n",
+ "L 14.59375 45.125 \n",
+ "Q 17.4375 49.078125 21 51.046875 \n",
+ "Q 24.5625 53.03125 29.640625 53.03125 \n",
+ "Q 36.28125 53.03125 41.359375 49.609375 \n",
+ "Q 46.4375 46.1875 49.015625 39.953125 \n",
+ "Q 51.609375 33.734375 51.609375 26.3125 \n",
+ "Q 51.609375 18.359375 48.75 11.984375 \n",
+ "Q 45.90625 5.609375 40.453125 2.21875 \n",
+ "Q 35.015625 -1.171875 29 -1.171875 \n",
+ "Q 24.609375 -1.171875 21.109375 0.6875 \n",
+ "Q 17.625 2.546875 15.375 5.375 \n",
+ "L 15.375 -19.875 \n",
+ "z\n",
+ "M 14.546875 25.640625 \n",
+ "Q 14.546875 15.625 18.59375 10.84375 \n",
+ "Q 22.65625 6.0625 28.421875 6.0625 \n",
+ "Q 34.28125 6.0625 38.453125 11.015625 \n",
+ "Q 42.625 15.96875 42.625 26.375 \n",
+ "Q 42.625 36.28125 38.546875 41.203125 \n",
+ "Q 34.46875 46.140625 28.8125 46.140625 \n",
+ "Q 23.1875 46.140625 18.859375 40.890625 \n",
+ "Q 14.546875 35.640625 14.546875 25.640625 \n",
+ "\" id=\"ArialMT-70\"/>\n",
+ " <path d=\"M 6.640625 0 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 30.765625 \n",
+ "L 36.234375 51.859375 \n",
+ "L 47.609375 51.859375 \n",
+ "L 27.78125 32.625 \n",
+ "L 49.609375 0 \n",
+ "L 38.765625 0 \n",
+ "L 21.625 26.515625 \n",
+ "L 15.4375 20.5625 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6b\"/>\n",
+ " <path d=\"M 0 -1.21875 \n",
+ "L 20.75 72.796875 \n",
+ "L 27.78125 72.796875 \n",
+ "L 7.078125 -1.21875 \n",
+ "z\n",
+ "\" id=\"ArialMT-2f\"/>\n",
+ " <path d=\"M 12.359375 -21.046875 \n",
+ "L 6.0625 -21.046875 \n",
+ "Q 20.65625 2.390625 20.65625 25.875 \n",
+ "Q 20.65625 35.0625 18.5625 44.09375 \n",
+ "Q 16.890625 51.421875 13.921875 58.15625 \n",
+ "Q 12.015625 62.546875 6.0625 72.796875 \n",
+ "L 12.359375 72.796875 \n",
+ "Q 21.53125 60.546875 25.921875 48.1875 \n",
+ "Q 29.6875 37.546875 29.6875 25.921875 \n",
+ "Q 29.6875 12.75 24.625 0.4375 \n",
+ "Q 19.578125 -11.859375 12.359375 -21.046875 \n",
+ "\" id=\"ArialMT-29\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(27.132 75.888594)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-28\"/>\n",
+ " <use x=\"33.300781\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"83.300781\" xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"138.916016\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"161.132812\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"211.132812\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"266.748047\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"316.748047\" xlink:href=\"#ArialMT-2f\"/>\n",
+ " <use x=\"344.53125\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"394.53125\" xlink:href=\"#ArialMT-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_29\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.934733 \n",
+ "L 403.665925 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_30\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.918039 \n",
+ "L 127.579178 93.9389 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_31\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.919107 \n",
+ "L 140.128576 93.938903 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_32\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.839912 \n",
+ "L 74.244238 93.928401 \n",
+ "L 218.562311 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_33\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.859531 \n",
+ "L 82.087612 93.933142 \n",
+ "L 348.762311 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_34\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.542031 \n",
+ "L 60.126166 93.787124 \n",
+ "L 82.087612 93.910086 \n",
+ "L 144.8346 93.938824 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_35\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.669981 \n",
+ "L 66.400865 93.861383 \n",
+ "L 104.049058 93.933973 \n",
+ "L 411.509299 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_36\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 92.594279 \n",
+ "L 53.851467 93.088161 \n",
+ "L 63.263515 93.46418 \n",
+ "L 75.812913 93.733066 \n",
+ "L 94.637009 93.886983 \n",
+ "L 136.991226 93.937546 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_37\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.168919 \n",
+ "L 58.557491 93.532636 \n",
+ "L 75.812913 93.787489 \n",
+ "L 102.480383 93.913141 \n",
+ "L 179.345443 93.938877 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_38\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 90.08897 \n",
+ "L 52.282793 91.119187 \n",
+ "L 58.557491 91.907553 \n",
+ "L 66.400865 92.621641 \n",
+ "L 74.244238 93.106465 \n",
+ "L 83.656287 93.475058 \n",
+ "L 96.205684 93.738166 \n",
+ "L 115.02978 93.888414 \n",
+ "L 157.383997 93.937592 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_39\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 92.075795 \n",
+ "L 56.988817 92.766929 \n",
+ "L 67.96954 93.238044 \n",
+ "L 82.087612 93.602957 \n",
+ "L 100.911708 93.82825 \n",
+ "L 132.285202 93.926413 \n",
+ "L 268.759901 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_40\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 84.62335 \n",
+ "L 50.714118 86.254351 \n",
+ "L 55.420142 87.65841 \n",
+ "L 60.126166 88.853396 \n",
+ "L 64.83219 89.859092 \n",
+ "L 71.106889 90.941317 \n",
+ "L 77.381588 91.772544 \n",
+ "L 83.656287 92.398919 \n",
+ "L 91.49966 92.956789 \n",
+ "L 100.911708 93.385626 \n",
+ "L 113.461106 93.695938 \n",
+ "L 130.716527 93.868553 \n",
+ "L 165.227371 93.934851 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_41\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 90.129144 \n",
+ "L 55.420142 91.159005 \n",
+ "L 64.83219 91.984467 \n",
+ "L 75.812913 92.702627 \n",
+ "L 86.793636 93.195469 \n",
+ "L 100.911708 93.579994 \n",
+ "L 118.16713 93.807341 \n",
+ "L 146.403274 93.919456 \n",
+ "L 242.092431 93.938904 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_42\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 74.890096 \n",
+ "L 50.714118 77.591421 \n",
+ "L 55.420142 80.039399 \n",
+ "L 60.126166 82.230085 \n",
+ "L 64.83219 84.166708 \n",
+ "L 69.538214 85.858435 \n",
+ "L 74.244238 87.319082 \n",
+ "L 78.950262 88.565848 \n",
+ "L 83.656287 89.618128 \n",
+ "L 89.930985 90.754173 \n",
+ "L 96.205684 91.629973 \n",
+ "L 102.480383 92.292349 \n",
+ "L 110.323756 92.884647 \n",
+ "L 119.735805 93.342149 \n",
+ "L 130.716527 93.645777 \n",
+ "L 146.403274 93.841654 \n",
+ "L 174.639419 93.928616 \n",
+ "L 320.526166 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_43\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 87.355349 \n",
+ "L 60.126166 89.382467 \n",
+ "L 71.106889 90.708889 \n",
+ "L 80.518937 91.628723 \n",
+ "L 89.930985 92.346884 \n",
+ "L 100.911708 92.955111 \n",
+ "L 113.461106 93.405449 \n",
+ "L 129.147853 93.712705 \n",
+ "L 151.109299 93.881688 \n",
+ "L 195.03219 93.936911 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_44\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 61.021118 \n",
+ "L 53.851467 66.829727 \n",
+ "L 60.126166 71.156709 \n",
+ "L 64.83219 74.157921 \n",
+ "L 69.538214 76.922589 \n",
+ "L 74.244238 79.436217 \n",
+ "L 78.950262 81.692833 \n",
+ "L 83.656287 83.693941 \n",
+ "L 88.362311 85.447308 \n",
+ "L 93.068335 86.965681 \n",
+ "L 97.774359 88.265507 \n",
+ "L 102.480383 89.365726 \n",
+ "L 108.755082 90.557411 \n",
+ "L 115.02978 91.479522 \n",
+ "L 121.304479 92.179479 \n",
+ "L 129.147853 92.807898 \n",
+ "L 138.559901 93.295648 \n",
+ "L 149.540624 93.621174 \n",
+ "L 165.227371 93.832651 \n",
+ "L 191.894841 93.925882 \n",
+ "L 311.114118 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_45\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 84.324395 \n",
+ "L 60.126166 86.446664 \n",
+ "L 77.381588 89.008148 \n",
+ "L 88.362311 90.398567 \n",
+ "L 97.774359 91.378875 \n",
+ "L 107.186407 92.155268 \n",
+ "L 118.16713 92.82252 \n",
+ "L 130.716527 93.324643 \n",
+ "L 144.8346 93.649061 \n",
+ "L 163.658696 93.845416 \n",
+ "L 196.600865 93.929881 \n",
+ "L 376.998455 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_46\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 45.866352 \n",
+ "L 52.282793 50.463866 \n",
+ "L 75.812913 68.196853 \n",
+ "L 82.087612 72.415281 \n",
+ "L 86.793636 75.321787 \n",
+ "L 91.49966 77.984712 \n",
+ "L 96.205684 80.393171 \n",
+ "L 100.911708 82.544396 \n",
+ "L 105.617732 84.442615 \n",
+ "L 110.323756 86.097793 \n",
+ "L 115.02978 87.524348 \n",
+ "L 119.735805 88.73989 \n",
+ "L 124.441829 89.764057 \n",
+ "L 130.716527 90.867592 \n",
+ "L 136.991226 91.716441 \n",
+ "L 143.265925 92.357028 \n",
+ "L 151.109299 92.928471 \n",
+ "L 160.521347 93.368587 \n",
+ "L 173.070744 93.687819 \n",
+ "L 190.326166 93.865948 \n",
+ "L 224.837009 93.934671 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_47\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 82.073093 \n",
+ "L 53.851467 82.790128 \n",
+ "L 61.694841 83.730696 \n",
+ "L 72.675564 85.298534 \n",
+ "L 100.911708 89.477722 \n",
+ "L 111.892431 90.786944 \n",
+ "L 121.304479 91.690985 \n",
+ "L 130.716527 92.394212 \n",
+ "L 141.69725 92.987535 \n",
+ "L 154.246648 93.424994 \n",
+ "L 169.933395 93.722028 \n",
+ "L 191.894841 93.884411 \n",
+ "L 237.386407 93.937268 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_48\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 34.609842 \n",
+ "L 49.145443 35.891302 \n",
+ "L 52.282793 37.3791 \n",
+ "L 55.420142 39.055844 \n",
+ "L 60.126166 41.882792 \n",
+ "L 64.83219 45.020704 \n",
+ "L 71.106889 49.558358 \n",
+ "L 80.518937 56.757397 \n",
+ "L 89.930985 63.924989 \n",
+ "L 96.205684 68.449844 \n",
+ "L 100.911708 71.632987 \n",
+ "L 105.617732 74.599118 \n",
+ "L 110.323756 77.325884 \n",
+ "L 115.02978 79.80016 \n",
+ "L 119.735805 82.017198 \n",
+ "L 124.441829 83.979547 \n",
+ "L 129.147853 85.695824 \n",
+ "L 133.853877 87.179428 \n",
+ "L 138.559901 88.447266 \n",
+ "L 143.265925 89.51856 \n",
+ "L 149.540624 90.676642 \n",
+ "L 155.815323 91.570756 \n",
+ "L 162.090021 92.247973 \n",
+ "L 169.933395 92.854514 \n",
+ "L 179.345443 93.323921 \n",
+ "L 190.326166 93.636151 \n",
+ "L 206.012913 93.838141 \n",
+ "L 234.249058 93.928183 \n",
+ "L 375.42978 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_49\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 81.563155 \n",
+ "L 52.282793 81.502079 \n",
+ "L 58.557491 81.645425 \n",
+ "L 64.83219 81.986168 \n",
+ "L 72.675564 82.66378 \n",
+ "L 80.518937 83.573938 \n",
+ "L 91.49966 85.116954 \n",
+ "L 121.304479 89.524965 \n",
+ "L 132.285202 90.825518 \n",
+ "L 141.69725 91.721667 \n",
+ "L 151.109299 92.417472 \n",
+ "L 162.090021 93.003422 \n",
+ "L 174.639419 93.434537 \n",
+ "L 190.326166 93.726562 \n",
+ "L 212.287612 93.885728 \n",
+ "L 259.347853 93.937522 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_50\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 32.060152 \n",
+ "L 47.576768 31.887945 \n",
+ "L 49.145443 31.779455 \n",
+ "L 52.282793 31.754772 \n",
+ "L 55.420142 31.986408 \n",
+ "L 58.557491 32.471502 \n",
+ "L 61.694841 33.204088 \n",
+ "L 64.83219 34.175216 \n",
+ "L 67.96954 35.373131 \n",
+ "L 71.106889 36.783516 \n",
+ "L 74.244238 38.38977 \n",
+ "L 78.950262 41.125369 \n",
+ "L 83.656287 44.190574 \n",
+ "L 88.362311 47.511211 \n",
+ "L 94.637009 52.204032 \n",
+ "L 111.892431 65.346541 \n",
+ "L 118.16713 69.780168 \n",
+ "L 122.873154 72.877602 \n",
+ "L 127.579178 75.747695 \n",
+ "L 132.285202 78.371965 \n",
+ "L 136.991226 80.74084 \n",
+ "L 141.69725 82.852708 \n",
+ "L 146.403274 84.712761 \n",
+ "L 151.109299 86.331733 \n",
+ "L 155.815323 87.724615 \n",
+ "L 160.521347 88.909401 \n",
+ "L 165.227371 89.905943 \n",
+ "L 171.50207 90.977622 \n",
+ "L 177.776768 91.800141 \n",
+ "L 184.051467 92.419502 \n",
+ "L 191.894841 92.970685 \n",
+ "L 201.306889 93.393974 \n",
+ "L 213.856287 93.699908 \n",
+ "L 231.111708 93.869824 \n",
+ "L 265.622552 93.934938 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_51\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 83.0308 \n",
+ "L 53.851467 82.24598 \n",
+ "L 60.126166 81.805216 \n",
+ "L 66.400865 81.554081 \n",
+ "L 72.675564 81.504814 \n",
+ "L 78.950262 81.659834 \n",
+ "L 85.224961 82.011547 \n",
+ "L 93.068335 82.701114 \n",
+ "L 100.911708 83.620555 \n",
+ "L 111.892431 85.171263 \n",
+ "L 141.69725 89.571947 \n",
+ "L 152.677973 90.863789 \n",
+ "L 162.090021 91.75205 \n",
+ "L 171.50207 92.440463 \n",
+ "L 182.482793 93.019094 \n",
+ "L 195.03219 93.443931 \n",
+ "L 210.718937 93.731012 \n",
+ "L 232.680383 93.887016 \n",
+ "L 279.740624 93.937565 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_52\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 39.398373 \n",
+ "L 47.576768 38.520921 \n",
+ "L 49.145443 37.687447 \n",
+ "L 52.282793 36.161901 \n",
+ "L 55.420142 34.839506 \n",
+ "L 58.557491 33.735935 \n",
+ "L 61.694841 32.864451 \n",
+ "L 64.83219 32.23565 \n",
+ "L 67.96954 31.857238 \n",
+ "L 71.106889 31.733879 \n",
+ "L 74.244238 31.867096 \n",
+ "L 77.381588 32.255245 \n",
+ "L 80.518937 32.893542 \n",
+ "L 83.656287 33.774165 \n",
+ "L 86.793636 34.886415 \n",
+ "L 89.930985 36.216927 \n",
+ "L 93.068335 37.749944 \n",
+ "L 96.205684 39.46762 \n",
+ "L 100.911708 42.347149 \n",
+ "L 105.617732 45.526313 \n",
+ "L 111.892431 50.100689 \n",
+ "L 122.873154 58.526217 \n",
+ "L 130.716527 64.460769 \n",
+ "L 136.991226 68.952512 \n",
+ "L 141.69725 72.104111 \n",
+ "L 146.403274 75.034632 \n",
+ "L 151.109299 77.723187 \n",
+ "L 155.815323 80.158001 \n",
+ "L 160.521347 82.335524 \n",
+ "L 165.227371 84.25932 \n",
+ "L 169.933395 85.938826 \n",
+ "L 174.639419 87.388063 \n",
+ "L 179.345443 88.62437 \n",
+ "L 184.051467 89.667225 \n",
+ "L 190.326166 90.79236 \n",
+ "L 196.600865 91.659108 \n",
+ "L 202.875564 92.314158 \n",
+ "L 210.718937 92.899437 \n",
+ "L 220.130985 93.351081 \n",
+ "L 231.111708 93.650485 \n",
+ "L 246.798455 93.843368 \n",
+ "L 275.0346 93.928826 \n",
+ "L 424.058696 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_53\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 85.813765 \n",
+ "L 60.126166 83.762507 \n",
+ "L 67.96954 82.816043 \n",
+ "L 75.812913 82.091271 \n",
+ "L 82.087612 81.706993 \n",
+ "L 88.362311 81.517111 \n",
+ "L 94.637009 81.530912 \n",
+ "L 100.911708 81.747718 \n",
+ "L 107.186407 82.15694 \n",
+ "L 115.02978 82.908392 \n",
+ "L 124.441829 84.088468 \n",
+ "L 136.991226 85.943683 \n",
+ "L 157.383997 88.991556 \n",
+ "L 168.36472 90.384679 \n",
+ "L 177.776768 91.367608 \n",
+ "L 187.188817 92.146564 \n",
+ "L 198.16954 92.816448 \n",
+ "L 210.718937 93.32091 \n",
+ "L 224.837009 93.647091 \n",
+ "L 243.661106 93.844691 \n",
+ "L 276.603274 93.929795 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_54\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 53.313198 \n",
+ "L 53.851467 47.423503 \n",
+ "L 58.557491 44.108464 \n",
+ "L 63.263515 41.050801 \n",
+ "L 67.96954 38.324588 \n",
+ "L 71.106889 36.725536 \n",
+ "L 74.244238 35.323029 \n",
+ "L 77.381588 34.133587 \n",
+ "L 80.518937 33.171435 \n",
+ "L 83.656287 32.44822 \n",
+ "L 86.793636 31.972784 \n",
+ "L 89.930985 31.750974 \n",
+ "L 93.068335 31.78553 \n",
+ "L 96.205684 32.076024 \n",
+ "L 99.343034 32.618872 \n",
+ "L 102.480383 33.407407 \n",
+ "L 105.617732 34.432011 \n",
+ "L 108.755082 35.680316 \n",
+ "L 111.892431 37.137452 \n",
+ "L 115.02978 38.786336 \n",
+ "L 119.735805 41.577297 \n",
+ "L 124.441829 44.686717 \n",
+ "L 130.716527 49.198548 \n",
+ "L 138.559901 55.172533 \n",
+ "L 149.540624 63.566114 \n",
+ "L 155.815323 68.112282 \n",
+ "L 162.090021 72.337709 \n",
+ "L 166.796046 75.250239 \n",
+ "L 171.50207 77.919582 \n",
+ "L 176.208094 80.334632 \n",
+ "L 180.914118 82.492428 \n",
+ "L 185.620142 84.397032 \n",
+ "L 190.326166 86.058278 \n",
+ "L 195.03219 87.490486 \n",
+ "L 199.738214 88.7112 \n",
+ "L 204.444238 89.740018 \n",
+ "L 210.718937 90.848926 \n",
+ "L 216.993636 91.702224 \n",
+ "L 223.268335 92.346403 \n",
+ "L 231.111708 92.92128 \n",
+ "L 240.523756 93.364255 \n",
+ "L 251.504479 93.657419 \n",
+ "L 267.191226 93.845887 \n",
+ "L 296.996046 93.930368 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_55\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 88.824252 \n",
+ "L 60.126166 86.726186 \n",
+ "L 78.950262 83.923756 \n",
+ "L 88.362311 82.777251 \n",
+ "L 96.205684 82.064103 \n",
+ "L 102.480383 81.69062 \n",
+ "L 108.755082 81.51233 \n",
+ "L 115.02978 81.537958 \n",
+ "L 121.304479 81.766245 \n",
+ "L 127.579178 82.186049 \n",
+ "L 135.422552 82.948742 \n",
+ "L 144.8346 84.138519 \n",
+ "L 157.383997 85.999451 \n",
+ "L 177.776768 89.041256 \n",
+ "L 188.757491 90.426245 \n",
+ "L 198.16954 91.401308 \n",
+ "L 207.581588 92.172581 \n",
+ "L 218.562311 92.834585 \n",
+ "L 231.111708 93.332053 \n",
+ "L 245.22978 93.652966 \n",
+ "L 264.053877 93.846852 \n",
+ "L 298.56472 93.931073 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_56\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 68.365635 \n",
+ "L 52.282793 63.835394 \n",
+ "L 60.126166 57.875305 \n",
+ "L 72.675564 48.305724 \n",
+ "L 78.950262 43.863156 \n",
+ "L 83.656287 40.828408 \n",
+ "L 88.362311 38.130628 \n",
+ "L 91.49966 36.553345 \n",
+ "L 94.637009 35.174621 \n",
+ "L 97.774359 34.010725 \n",
+ "L 100.911708 33.075599 \n",
+ "L 104.049058 32.380578 \n",
+ "L 107.186407 31.934166 \n",
+ "L 110.323756 31.741857 \n",
+ "L 113.461106 31.806026 \n",
+ "L 116.598455 32.125881 \n",
+ "L 119.735805 32.697475 \n",
+ "L 122.873154 33.513793 \n",
+ "L 126.010503 34.56489 \n",
+ "L 129.147853 35.838095 \n",
+ "L 132.285202 37.318266 \n",
+ "L 135.422552 38.988087 \n",
+ "L 140.128576 41.806108 \n",
+ "L 144.8346 44.936971 \n",
+ "L 151.109299 49.468271 \n",
+ "L 160.521347 56.664169 \n",
+ "L 169.933395 63.835394 \n",
+ "L 176.208094 68.365635 \n",
+ "L 180.914118 71.553963 \n",
+ "L 185.620142 74.525978 \n",
+ "L 190.326166 77.259084 \n",
+ "L 195.03219 79.739927 \n",
+ "L 199.738214 81.963558 \n",
+ "L 204.444238 83.932352 \n",
+ "L 209.150262 85.654789 \n",
+ "L 213.856287 87.14416 \n",
+ "L 218.562311 88.417298 \n",
+ "L 223.268335 89.493379 \n",
+ "L 229.543034 90.657016 \n",
+ "L 235.817732 91.555753 \n",
+ "L 242.092431 92.236719 \n",
+ "L 249.935805 92.846863 \n",
+ "L 259.347853 93.319287 \n",
+ "L 270.328576 93.6337 \n",
+ "L 286.015323 93.837245 \n",
+ "L 314.251467 93.928072 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_57\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 91.218051 \n",
+ "L 55.420142 90.201173 \n",
+ "L 66.400865 88.773581 \n",
+ "L 80.518937 86.670329 \n",
+ "L 97.774359 84.088468 \n",
+ "L 107.186407 82.908392 \n",
+ "L 115.02978 82.15694 \n",
+ "L 121.304479 81.747718 \n",
+ "L 127.579178 81.530912 \n",
+ "L 133.853877 81.517111 \n",
+ "L 140.128576 81.706993 \n",
+ "L 146.403274 82.091271 \n",
+ "L 154.246648 82.816043 \n",
+ "L 162.090021 83.762507 \n",
+ "L 173.070744 85.33503 \n",
+ "L 199.738214 89.302314 \n",
+ "L 210.718937 90.642922 \n",
+ "L 220.130985 91.57592 \n",
+ "L 229.543034 92.306612 \n",
+ "L 240.523756 92.927417 \n",
+ "L 253.073154 93.388688 \n",
+ "L 268.759901 93.704669 \n",
+ "L 290.721347 93.879325 \n",
+ "L 334.644238 93.936805 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_58\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 80.334632 \n",
+ "L 50.714118 77.919582 \n",
+ "L 55.420142 75.250239 \n",
+ "L 60.126166 72.337709 \n",
+ "L 64.83219 69.202157 \n",
+ "L 71.106889 64.727471 \n",
+ "L 78.950262 58.804789 \n",
+ "L 93.068335 48.039885 \n",
+ "L 97.774359 44.686717 \n",
+ "L 102.480383 41.577297 \n",
+ "L 107.186407 38.786336 \n",
+ "L 110.323756 37.137452 \n",
+ "L 113.461106 35.680316 \n",
+ "L 116.598455 34.432011 \n",
+ "L 119.735805 33.407407 \n",
+ "L 122.873154 32.618872 \n",
+ "L 126.010503 32.076024 \n",
+ "L 129.147853 31.78553 \n",
+ "L 132.285202 31.750974 \n",
+ "L 135.422552 31.972784 \n",
+ "L 138.559901 32.44822 \n",
+ "L 141.69725 33.171435 \n",
+ "L 144.8346 34.133587 \n",
+ "L 147.971949 35.323029 \n",
+ "L 151.109299 36.725536 \n",
+ "L 154.246648 38.324588 \n",
+ "L 158.952672 41.050801 \n",
+ "L 163.658696 44.108464 \n",
+ "L 168.36472 47.423503 \n",
+ "L 174.639419 52.111907 \n",
+ "L 193.463515 66.39662 \n",
+ "L 199.738214 70.755945 \n",
+ "L 204.444238 73.785963 \n",
+ "L 209.150262 76.581957 \n",
+ "L 213.856287 79.128273 \n",
+ "L 218.562311 81.417901 \n",
+ "L 223.268335 83.451452 \n",
+ "L 227.974359 85.23596 \n",
+ "L 232.680383 86.783606 \n",
+ "L 237.386407 88.110434 \n",
+ "L 242.092431 89.235127 \n",
+ "L 246.798455 90.177896 \n",
+ "L 253.073154 91.187814 \n",
+ "L 259.347853 91.959509 \n",
+ "L 267.191226 92.65737 \n",
+ "L 275.0346 93.130329 \n",
+ "L 284.446648 93.489213 \n",
+ "L 296.996046 93.744785 \n",
+ "L 317.388817 93.895853 \n",
+ "L 364.449058 93.938222 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_59\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 92.715704 \n",
+ "L 56.988817 92.002989 \n",
+ "L 66.400865 91.182725 \n",
+ "L 75.812913 90.158051 \n",
+ "L 86.793636 88.722695 \n",
+ "L 100.911708 86.614443 \n",
+ "L 118.16713 84.038706 \n",
+ "L 127.579178 82.868502 \n",
+ "L 135.422552 82.128408 \n",
+ "L 141.69725 81.729833 \n",
+ "L 147.971949 81.524544 \n",
+ "L 154.246648 81.522573 \n",
+ "L 160.521347 81.724015 \n",
+ "L 166.796046 82.119026 \n",
+ "L 174.639419 82.855309 \n",
+ "L 182.482793 83.810503 \n",
+ "L 193.463515 85.389876 \n",
+ "L 220.130985 89.350489 \n",
+ "L 231.111708 90.682602 \n",
+ "L 240.523756 91.607703 \n",
+ "L 249.935805 92.330866 \n",
+ "L 260.916527 92.944107 \n",
+ "L 273.465925 93.398797 \n",
+ "L 289.152672 93.70952 \n",
+ "L 311.114118 93.880753 \n",
+ "L 355.037009 93.936869 \n",
+ "L 436.608094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_60\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 87.822896 \n",
+ "L 50.714118 86.446691 \n",
+ "L 55.420142 84.845688 \n",
+ "L 60.126166 83.004623 \n",
+ "L 64.83219 80.912389 \n",
+ "L 69.538214 78.56332 \n",
+ "L 74.244238 75.958464 \n",
+ "L 78.950262 73.106742 \n",
+ "L 83.656287 70.025925 \n",
+ "L 89.930985 65.61042 \n",
+ "L 97.774359 59.731218 \n",
+ "L 113.461106 47.775036 \n",
+ "L 118.16713 44.437907 \n",
+ "L 122.873154 41.350373 \n",
+ "L 127.579178 38.586887 \n",
+ "L 130.716527 36.959192 \n",
+ "L 133.853877 35.52532 \n",
+ "L 136.991226 34.302112 \n",
+ "L 140.128576 33.304166 \n",
+ "L 143.265925 32.543544 \n",
+ "L 146.403274 32.02953 \n",
+ "L 149.540624 31.768444 \n",
+ "L 152.677973 31.763507 \n",
+ "L 155.815323 32.014781 \n",
+ "L 158.952672 32.519164 \n",
+ "L 162.090021 33.270455 \n",
+ "L 165.227371 34.259479 \n",
+ "L 168.36472 35.474277 \n",
+ "L 171.50207 36.900345 \n",
+ "L 174.639419 38.520921 \n",
+ "L 179.345443 41.275157 \n",
+ "L 184.051467 44.355297 \n",
+ "L 188.757491 47.686979 \n",
+ "L 195.03219 52.388436 \n",
+ "L 212.287612 65.522559 \n",
+ "L 218.562311 69.944138 \n",
+ "L 223.268335 73.030513 \n",
+ "L 227.974359 75.88837 \n",
+ "L 232.680383 78.499703 \n",
+ "L 237.386407 80.855375 \n",
+ "L 242.092431 82.954151 \n",
+ "L 246.798455 84.801537 \n",
+ "L 251.504479 86.40852 \n",
+ "L 256.210503 87.790272 \n",
+ "L 260.916527 88.964911 \n",
+ "L 265.622552 89.952354 \n",
+ "L 271.89725 91.013559 \n",
+ "L 278.171949 91.827438 \n",
+ "L 284.446648 92.439846 \n",
+ "L 292.290021 92.984407 \n",
+ "L 301.70207 93.402209 \n",
+ "L 314.251467 93.703819 \n",
+ "L 331.506889 93.871072 \n",
+ "L 367.586407 93.935537 \n",
+ "L 436.608094 93.938904 \n",
+ "L 436.608094 93.938904 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_61\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.474183 \n",
+ "L 58.557491 93.069807 \n",
+ "L 69.538214 92.515187 \n",
+ "L 80.518937 91.721667 \n",
+ "L 89.930985 90.825518 \n",
+ "L 99.343034 89.726645 \n",
+ "L 110.323756 88.220433 \n",
+ "L 146.403274 83.003248 \n",
+ "L 154.246648 82.225751 \n",
+ "L 160.521347 81.791943 \n",
+ "L 166.796046 81.548407 \n",
+ "L 173.070744 81.507016 \n",
+ "L 179.345443 81.669805 \n",
+ "L 185.620142 82.028801 \n",
+ "L 193.463515 82.726276 \n",
+ "L 201.306889 83.65183 \n",
+ "L 212.287612 85.207549 \n",
+ "L 240.523756 89.398413 \n",
+ "L 251.504479 90.721982 \n",
+ "L 260.916527 91.639184 \n",
+ "L 270.328576 92.354847 \n",
+ "L 281.309299 92.960575 \n",
+ "L 293.858696 93.408749 \n",
+ "L 309.545443 93.714282 \n",
+ "L 331.506889 93.88215 \n",
+ "L 376.998455 93.937181 \n",
+ "L 436.608094 93.938901 \n",
+ "L 436.608094 93.938901 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_62\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 91.615288 \n",
+ "L 52.282793 90.734936 \n",
+ "L 58.557491 89.593408 \n",
+ "L 63.263515 88.536395 \n",
+ "L 67.96954 87.28438 \n",
+ "L 72.675564 85.818011 \n",
+ "L 77.381588 84.12016 \n",
+ "L 82.087612 82.177115 \n",
+ "L 86.793636 79.979844 \n",
+ "L 91.49966 77.525287 \n",
+ "L 96.205684 74.817589 \n",
+ "L 100.911708 71.8692 \n",
+ "L 105.617732 68.701736 \n",
+ "L 111.892431 64.193268 \n",
+ "L 119.735805 58.247397 \n",
+ "L 132.285202 48.661654 \n",
+ "L 138.559901 44.190574 \n",
+ "L 143.265925 41.125369 \n",
+ "L 147.971949 38.38977 \n",
+ "L 151.109299 36.783516 \n",
+ "L 154.246648 35.373131 \n",
+ "L 157.383997 34.175216 \n",
+ "L 160.521347 33.204088 \n",
+ "L 163.658696 32.471502 \n",
+ "L 166.796046 31.986408 \n",
+ "L 169.933395 31.754772 \n",
+ "L 173.070744 31.779455 \n",
+ "L 176.208094 32.060152 \n",
+ "L 179.345443 32.593399 \n",
+ "L 182.482793 33.372643 \n",
+ "L 185.620142 34.388379 \n",
+ "L 188.757491 35.62834 \n",
+ "L 191.894841 37.077747 \n",
+ "L 195.03219 38.719596 \n",
+ "L 199.738214 41.501445 \n",
+ "L 204.444238 44.603618 \n",
+ "L 209.150262 47.951491 \n",
+ "L 216.993636 53.869895 \n",
+ "L 231.111708 64.638661 \n",
+ "L 237.386407 69.119069 \n",
+ "L 242.092431 72.259989 \n",
+ "L 246.798455 75.17853 \n",
+ "L 251.504479 77.854285 \n",
+ "L 256.210503 80.275925 \n",
+ "L 260.916527 82.440294 \n",
+ "L 265.622552 84.351288 \n",
+ "L 270.328576 86.018612 \n",
+ "L 275.0346 87.456484 \n",
+ "L 279.740624 88.682383 \n",
+ "L 284.446648 89.715867 \n",
+ "L 290.721347 90.830166 \n",
+ "L 296.996046 91.687929 \n",
+ "L 303.270744 92.335717 \n",
+ "L 311.114118 92.914044 \n",
+ "L 320.526166 93.359893 \n",
+ "L 331.506889 93.655125 \n",
+ "L 347.193636 93.845054 \n",
+ "L 376.998455 93.930278 \n",
+ "L 436.608094 93.938882 \n",
+ "L 436.608094 93.938882 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_63\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.789697 \n",
+ "L 64.83219 93.502852 \n",
+ "L 78.950262 93.054837 \n",
+ "L 89.930985 92.493077 \n",
+ "L 100.911708 91.690985 \n",
+ "L 110.323756 90.786944 \n",
+ "L 119.735805 89.680547 \n",
+ "L 130.716527 88.167483 \n",
+ "L 165.227371 83.14295 \n",
+ "L 173.070744 82.329385 \n",
+ "L 180.914118 81.772563 \n",
+ "L 187.188817 81.540458 \n",
+ "L 193.463515 81.510888 \n",
+ "L 199.738214 81.685307 \n",
+ "L 206.012913 82.055178 \n",
+ "L 213.856287 82.764426 \n",
+ "L 221.69966 83.699035 \n",
+ "L 232.680383 85.262095 \n",
+ "L 260.916527 89.446084 \n",
+ "L 271.89725 90.76106 \n",
+ "L 281.309299 91.670365 \n",
+ "L 290.721347 92.378556 \n",
+ "L 301.70207 92.976824 \n",
+ "L 314.251467 93.418547 \n",
+ "L 329.938214 93.718958 \n",
+ "L 351.89966 93.883516 \n",
+ "L 397.391226 93.937234 \n",
+ "L 436.608094 93.938865 \n",
+ "L 436.608094 93.938865 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_64\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.192861 \n",
+ "L 55.420142 92.639612 \n",
+ "L 63.263515 91.933675 \n",
+ "L 69.538214 91.153678 \n",
+ "L 75.812913 90.133646 \n",
+ "L 80.518937 89.182052 \n",
+ "L 85.224961 88.047476 \n",
+ "L 89.930985 86.709761 \n",
+ "L 94.637009 85.15033 \n",
+ "L 99.343034 83.353309 \n",
+ "L 104.049058 81.306747 \n",
+ "L 108.755082 79.00391 \n",
+ "L 113.461106 76.44455 \n",
+ "L 118.16713 73.636097 \n",
+ "L 122.873154 70.594671 \n",
+ "L 129.147853 66.222632 \n",
+ "L 135.422552 61.570799 \n",
+ "L 155.815323 46.12288 \n",
+ "L 160.521347 42.897853 \n",
+ "L 165.227371 39.959127 \n",
+ "L 168.36472 38.195016 \n",
+ "L 171.50207 36.610449 \n",
+ "L 174.639419 35.223773 \n",
+ "L 177.776768 34.051341 \n",
+ "L 180.914118 33.107189 \n",
+ "L 184.051467 32.402758 \n",
+ "L 187.188817 31.946663 \n",
+ "L 190.326166 31.744516 \n",
+ "L 193.463515 31.798815 \n",
+ "L 196.600865 32.108889 \n",
+ "L 199.738214 32.670911 \n",
+ "L 202.875564 33.477982 \n",
+ "L 206.012913 34.520267 \n",
+ "L 209.150262 35.785194 \n",
+ "L 212.287612 37.257712 \n",
+ "L 215.424961 38.920583 \n",
+ "L 220.130985 41.72963 \n",
+ "L 224.837009 44.853395 \n",
+ "L 231.111708 49.378272 \n",
+ "L 240.523756 56.570935 \n",
+ "L 249.935805 63.745716 \n",
+ "L 256.210503 68.281305 \n",
+ "L 260.916527 71.474796 \n",
+ "L 265.622552 74.452681 \n",
+ "L 270.328576 77.192117 \n",
+ "L 275.0346 79.679524 \n",
+ "L 279.740624 81.909749 \n",
+ "L 284.446648 83.884995 \n",
+ "L 289.152672 85.613601 \n",
+ "L 293.858696 87.10875 \n",
+ "L 298.56472 88.3872 \n",
+ "L 303.270744 89.468082 \n",
+ "L 309.545443 90.637292 \n",
+ "L 315.820142 91.540669 \n",
+ "L 322.094841 92.225401 \n",
+ "L 329.938214 92.839166 \n",
+ "L 339.350262 93.314622 \n",
+ "L 350.330985 93.631231 \n",
+ "L 366.017732 93.836341 \n",
+ "L 394.253877 93.92796 \n",
+ "L 436.608094 93.938702 \n",
+ "L 436.608094 93.938702 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_65\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.898421 \n",
+ "L 72.675564 93.717409 \n",
+ "L 88.362311 93.415298 \n",
+ "L 100.911708 92.971432 \n",
+ "L 111.892431 92.370684 \n",
+ "L 121.304479 91.660004 \n",
+ "L 130.716527 90.748067 \n",
+ "L 140.128576 89.634181 \n",
+ "L 151.109299 88.114363 \n",
+ "L 185.620142 83.100533 \n",
+ "L 193.463515 82.297645 \n",
+ "L 199.738214 81.839629 \n",
+ "L 206.012913 81.569579 \n",
+ "L 212.287612 81.500636 \n",
+ "L 218.562311 81.636186 \n",
+ "L 224.837009 81.969584 \n",
+ "L 232.680383 82.639168 \n",
+ "L 240.523756 83.543061 \n",
+ "L 249.935805 84.847821 \n",
+ "L 284.446648 89.893346 \n",
+ "L 293.858696 90.96436 \n",
+ "L 303.270744 91.831617 \n",
+ "L 314.251467 92.594036 \n",
+ "L 325.23219 93.122943 \n",
+ "L 337.781588 93.505634 \n",
+ "L 353.468335 93.759937 \n",
+ "L 376.998455 93.899755 \n",
+ "L 433.470744 93.938511 \n",
+ "L 436.608094 93.938612 \n",
+ "L 436.608094 93.938612 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_66\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.736479 \n",
+ "L 60.126166 93.422311 \n",
+ "L 69.538214 93.017967 \n",
+ "L 77.381588 92.489678 \n",
+ "L 85.224961 91.716441 \n",
+ "L 91.49966 90.867592 \n",
+ "L 97.774359 89.764057 \n",
+ "L 102.480383 88.73989 \n",
+ "L 107.186407 87.524348 \n",
+ "L 111.892431 86.097793 \n",
+ "L 116.598455 84.442615 \n",
+ "L 121.304479 82.544396 \n",
+ "L 126.010503 80.393171 \n",
+ "L 130.716527 77.984712 \n",
+ "L 135.422552 75.321787 \n",
+ "L 140.128576 72.415281 \n",
+ "L 144.8346 69.285117 \n",
+ "L 151.109299 64.81619 \n",
+ "L 158.952672 58.897587 \n",
+ "L 173.070744 48.12839 \n",
+ "L 177.776768 44.769977 \n",
+ "L 182.482793 41.65336 \n",
+ "L 187.188817 38.853332 \n",
+ "L 190.326166 37.197441 \n",
+ "L 193.463515 35.732601 \n",
+ "L 196.600865 34.475973 \n",
+ "L 199.738214 33.44252 \n",
+ "L 202.875564 32.64471 \n",
+ "L 206.012913 32.09227 \n",
+ "L 209.150262 31.791983 \n",
+ "L 212.287612 31.747555 \n",
+ "L 215.424961 31.959535 \n",
+ "L 218.562311 32.425306 \n",
+ "L 221.69966 33.139135 \n",
+ "L 224.837009 34.092296 \n",
+ "L 227.974359 35.273243 \n",
+ "L 231.111708 36.667846 \n",
+ "L 234.249058 38.25967 \n",
+ "L 238.955082 40.97645 \n",
+ "L 243.661106 44.026524 \n",
+ "L 248.36713 47.335913 \n",
+ "L 254.641829 52.019834 \n",
+ "L 273.465925 66.309679 \n",
+ "L 279.740624 70.675377 \n",
+ "L 284.446648 73.711107 \n",
+ "L 289.152672 76.513336 \n",
+ "L 293.858696 79.066176 \n",
+ "L 298.56472 81.362409 \n",
+ "L 303.270744 83.402462 \n",
+ "L 307.976768 85.193223 \n",
+ "L 312.682793 86.746756 \n",
+ "L 317.388817 88.079021 \n",
+ "L 322.094841 89.208649 \n",
+ "L 326.800865 90.155824 \n",
+ "L 333.075564 91.17079 \n",
+ "L 339.350262 91.946628 \n",
+ "L 347.193636 92.648518 \n",
+ "L 355.037009 93.12442 \n",
+ "L 364.449058 93.485711 \n",
+ "L 376.998455 93.743149 \n",
+ "L 395.822552 93.889808 \n",
+ "L 436.608094 93.937433 \n",
+ "L 436.608094 93.937433 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_67\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.929623 \n",
+ "L 85.224961 93.797202 \n",
+ "L 104.049058 93.522012 \n",
+ "L 118.16713 93.089445 \n",
+ "L 129.147853 92.544261 \n",
+ "L 140.128576 91.762111 \n",
+ "L 149.540624 90.876479 \n",
+ "L 158.952672 89.787689 \n",
+ "L 169.933395 88.290762 \n",
+ "L 188.757491 85.426506 \n",
+ "L 201.306889 83.636173 \n",
+ "L 209.150262 82.713668 \n",
+ "L 216.993636 82.020141 \n",
+ "L 223.268335 81.664783 \n",
+ "L 229.543034 81.505877 \n",
+ "L 235.817732 81.551206 \n",
+ "L 242.092431 81.798544 \n",
+ "L 248.36713 82.235834 \n",
+ "L 256.210503 83.016999 \n",
+ "L 265.622552 84.22256 \n",
+ "L 278.171949 86.092495 \n",
+ "L 296.996046 88.908216 \n",
+ "L 307.976768 90.314748 \n",
+ "L 317.388817 91.310763 \n",
+ "L 326.800865 92.102571 \n",
+ "L 337.781588 92.785697 \n",
+ "L 348.762311 93.250416 \n",
+ "L 362.880383 93.609595 \n",
+ "L 381.704479 93.830746 \n",
+ "L 413.077973 93.926752 \n",
+ "L 436.608094 93.937107 \n",
+ "L 436.608094 93.937107 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_68\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.892489 \n",
+ "L 67.96954 93.707671 \n",
+ "L 80.518937 93.410332 \n",
+ "L 89.930985 92.997958 \n",
+ "L 97.774359 92.459954 \n",
+ "L 105.617732 91.673557 \n",
+ "L 111.892431 90.811311 \n",
+ "L 118.16713 89.691602 \n",
+ "L 122.873154 88.65344 \n",
+ "L 127.579178 87.422344 \n",
+ "L 132.285202 85.978795 \n",
+ "L 136.991226 84.305384 \n",
+ "L 141.69725 82.387992 \n",
+ "L 146.403274 80.217048 \n",
+ "L 151.109299 77.78882 \n",
+ "L 155.815323 75.106661 \n",
+ "L 160.521347 72.182123 \n",
+ "L 165.227371 69.035854 \n",
+ "L 171.50207 64.54976 \n",
+ "L 179.345443 58.619103 \n",
+ "L 193.463515 47.863207 \n",
+ "L 198.16954 44.520681 \n",
+ "L 202.875564 41.425803 \n",
+ "L 207.581588 38.653112 \n",
+ "L 210.718937 37.018327 \n",
+ "L 213.856287 35.576675 \n",
+ "L 216.993636 34.345079 \n",
+ "L 220.130985 33.338229 \n",
+ "L 223.268335 32.568289 \n",
+ "L 226.405684 32.044654 \n",
+ "L 229.543034 31.77376 \n",
+ "L 232.680383 31.75895 \n",
+ "L 235.817732 32.000407 \n",
+ "L 238.955082 32.49515 \n",
+ "L 242.092431 33.237095 \n",
+ "L 245.22978 34.21718 \n",
+ "L 248.36713 35.423547 \n",
+ "L 251.504479 36.841786 \n",
+ "L 254.641829 38.455215 \n",
+ "L 259.347853 41.200155 \n",
+ "L 264.053877 44.272852 \n",
+ "L 268.759901 47.599037 \n",
+ "L 275.0346 52.296209 \n",
+ "L 292.290021 65.434599 \n",
+ "L 298.56472 69.862219 \n",
+ "L 303.270744 72.954132 \n",
+ "L 307.976768 75.818114 \n",
+ "L 312.682793 78.435918 \n",
+ "L 317.388817 80.798192 \n",
+ "L 322.094841 82.903512 \n",
+ "L 326.800865 84.757228 \n",
+ "L 331.506889 86.370201 \n",
+ "L 336.212913 87.757512 \n",
+ "L 340.918937 88.937218 \n",
+ "L 345.624961 89.929203 \n",
+ "L 351.89966 90.995637 \n",
+ "L 358.174359 91.813827 \n",
+ "L 364.449058 92.429704 \n",
+ "L 372.292431 92.977568 \n",
+ "L 381.704479 93.398106 \n",
+ "L 394.253877 93.701871 \n",
+ "L 411.509299 93.870451 \n",
+ "L 436.608094 93.929912 \n",
+ "L 436.608094 93.929912 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_69\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.937107 \n",
+ "L 102.480383 93.819555 \n",
+ "L 121.304479 93.579994 \n",
+ "L 135.422552 93.195469 \n",
+ "L 146.403274 92.702627 \n",
+ "L 157.383997 91.984467 \n",
+ "L 166.796046 91.159005 \n",
+ "L 176.208094 90.129144 \n",
+ "L 187.188817 88.688654 \n",
+ "L 201.306889 86.577172 \n",
+ "L 218.562311 84.005695 \n",
+ "L 227.974359 82.842168 \n",
+ "L 235.817732 82.109709 \n",
+ "L 242.092431 81.718269 \n",
+ "L 248.36713 81.520677 \n",
+ "L 254.641829 81.526591 \n",
+ "L 260.916527 81.735723 \n",
+ "L 267.191226 82.137854 \n",
+ "L 275.0346 82.881747 \n",
+ "L 282.877973 83.842683 \n",
+ "L 293.858696 85.426506 \n",
+ "L 320.526166 89.382467 \n",
+ "L 331.506889 90.708889 \n",
+ "L 340.918937 91.628723 \n",
+ "L 350.330985 92.346884 \n",
+ "L 361.311708 92.955111 \n",
+ "L 373.861106 93.405449 \n",
+ "L 389.547853 93.712705 \n",
+ "L 411.509299 93.881688 \n",
+ "L 436.608094 93.929623 \n",
+ "L 436.608094 93.929623 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_70\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.929912 \n",
+ "L 80.518937 93.802022 \n",
+ "L 96.205684 93.538901 \n",
+ "L 107.186407 93.142032 \n",
+ "L 115.02978 92.674915 \n",
+ "L 122.873154 91.985058 \n",
+ "L 129.147853 91.221599 \n",
+ "L 135.422552 90.221722 \n",
+ "L 140.128576 89.287723 \n",
+ "L 144.8346 88.17286 \n",
+ "L 149.540624 86.85687 \n",
+ "L 154.246648 85.320965 \n",
+ "L 158.952672 83.548938 \n",
+ "L 163.658696 81.528379 \n",
+ "L 168.36472 79.251958 \n",
+ "L 173.070744 76.718705 \n",
+ "L 177.776768 73.935211 \n",
+ "L 182.482793 70.916668 \n",
+ "L 188.757491 66.570186 \n",
+ "L 195.03219 61.936053 \n",
+ "L 216.993636 45.357173 \n",
+ "L 221.69966 42.191561 \n",
+ "L 226.405684 39.329372 \n",
+ "L 229.543034 37.625224 \n",
+ "L 232.680383 36.107176 \n",
+ "L 235.817732 34.792922 \n",
+ "L 238.955082 33.698048 \n",
+ "L 242.092431 32.835721 \n",
+ "L 245.22978 32.216426 \n",
+ "L 248.36713 31.847758 \n",
+ "L 251.504479 31.734259 \n",
+ "L 254.641829 31.877332 \n",
+ "L 257.779178 32.27521 \n",
+ "L 260.916527 32.922991 \n",
+ "L 264.053877 33.812738 \n",
+ "L 267.191226 34.933646 \n",
+ "L 270.328576 36.272253 \n",
+ "L 273.465925 37.812714 \n",
+ "L 276.603274 39.537112 \n",
+ "L 281.309299 42.425239 \n",
+ "L 286.015323 45.611105 \n",
+ "L 292.290021 50.191366 \n",
+ "L 303.270744 58.619103 \n",
+ "L 311.114118 64.54976 \n",
+ "L 317.388817 69.035854 \n",
+ "L 322.094841 72.182123 \n",
+ "L 326.800865 75.106661 \n",
+ "L 331.506889 77.78882 \n",
+ "L 336.212913 80.217048 \n",
+ "L 340.918937 82.387992 \n",
+ "L 345.624961 84.305384 \n",
+ "L 350.330985 85.978795 \n",
+ "L 355.037009 87.422344 \n",
+ "L 359.743034 88.65344 \n",
+ "L 364.449058 89.691602 \n",
+ "L 370.723756 90.811311 \n",
+ "L 376.998455 91.673557 \n",
+ "L 383.273154 92.324968 \n",
+ "L 391.116527 92.906763 \n",
+ "L 400.528576 93.355502 \n",
+ "L 411.509299 93.652813 \n",
+ "L 427.196046 93.844214 \n",
+ "L 436.608094 93.892489 \n",
+ "L 436.608094 93.892489 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_71\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938612 \n",
+ "L 121.304479 93.82825 \n",
+ "L 141.69725 93.572848 \n",
+ "L 155.815323 93.18229 \n",
+ "L 166.796046 92.682807 \n",
+ "L 177.776768 91.956441 \n",
+ "L 187.188817 91.12317 \n",
+ "L 196.600865 90.085545 \n",
+ "L 207.581588 88.637417 \n",
+ "L 221.69966 86.521249 \n",
+ "L 238.955082 83.95643 \n",
+ "L 248.36713 82.803059 \n",
+ "L 256.210503 82.082149 \n",
+ "L 262.485202 81.701463 \n",
+ "L 268.759901 81.515442 \n",
+ "L 275.0346 81.533185 \n",
+ "L 281.309299 81.753822 \n",
+ "L 287.583997 82.166579 \n",
+ "L 295.427371 82.921791 \n",
+ "L 304.839419 84.10512 \n",
+ "L 317.388817 85.962267 \n",
+ "L 337.781588 89.008148 \n",
+ "L 348.762311 90.398567 \n",
+ "L 358.174359 91.378875 \n",
+ "L 367.586407 92.155268 \n",
+ "L 378.56713 92.82252 \n",
+ "L 391.116527 93.324643 \n",
+ "L 405.2346 93.649061 \n",
+ "L 424.058696 93.845416 \n",
+ "L 436.608094 93.898421 \n",
+ "L 436.608094 93.898421 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_72\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.937433 \n",
+ "L 97.774359 93.826887 \n",
+ "L 115.02978 93.56922 \n",
+ "L 126.010503 93.198327 \n",
+ "L 135.422552 92.648518 \n",
+ "L 143.265925 91.946628 \n",
+ "L 149.540624 91.17079 \n",
+ "L 155.815323 90.155824 \n",
+ "L 160.521347 89.208649 \n",
+ "L 165.227371 88.079021 \n",
+ "L 169.933395 86.746756 \n",
+ "L 174.639419 85.193223 \n",
+ "L 179.345443 83.402462 \n",
+ "L 184.051467 81.362409 \n",
+ "L 188.757491 79.066176 \n",
+ "L 193.463515 76.513336 \n",
+ "L 198.16954 73.711107 \n",
+ "L 202.875564 70.675377 \n",
+ "L 209.150262 66.309679 \n",
+ "L 215.424961 61.662206 \n",
+ "L 235.817732 46.208668 \n",
+ "L 240.523756 42.977289 \n",
+ "L 245.22978 40.030296 \n",
+ "L 248.36713 38.25967 \n",
+ "L 251.504479 36.667846 \n",
+ "L 254.641829 35.273243 \n",
+ "L 257.779178 34.092296 \n",
+ "L 260.916527 33.139135 \n",
+ "L 264.053877 32.425306 \n",
+ "L 267.191226 31.959535 \n",
+ "L 270.328576 31.747555 \n",
+ "L 273.465925 31.791983 \n",
+ "L 276.603274 32.09227 \n",
+ "L 279.740624 32.64471 \n",
+ "L 282.877973 33.44252 \n",
+ "L 286.015323 34.475973 \n",
+ "L 289.152672 35.732601 \n",
+ "L 292.290021 37.197441 \n",
+ "L 295.427371 38.853332 \n",
+ "L 300.133395 41.65336 \n",
+ "L 304.839419 44.769977 \n",
+ "L 311.114118 49.288364 \n",
+ "L 320.526166 56.477696 \n",
+ "L 329.938214 63.655956 \n",
+ "L 336.212913 68.196853 \n",
+ "L 342.487612 72.415281 \n",
+ "L 347.193636 75.321787 \n",
+ "L 351.89966 77.984712 \n",
+ "L 356.605684 80.393171 \n",
+ "L 361.311708 82.544396 \n",
+ "L 366.017732 84.442615 \n",
+ "L 370.723756 86.097793 \n",
+ "L 375.42978 87.524348 \n",
+ "L 380.135805 88.73989 \n",
+ "L 384.841829 89.764057 \n",
+ "L 391.116527 90.867592 \n",
+ "L 397.391226 91.716441 \n",
+ "L 403.665925 92.357028 \n",
+ "L 411.509299 92.928471 \n",
+ "L 420.921347 93.368587 \n",
+ "L 433.470744 93.687819 \n",
+ "L 436.608094 93.736479 \n",
+ "L 436.608094 93.736479 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_73\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938865 \n",
+ "L 140.128576 93.836375 \n",
+ "L 160.521347 93.596205 \n",
+ "L 174.639419 93.225488 \n",
+ "L 187.188817 92.662739 \n",
+ "L 198.16954 91.928124 \n",
+ "L 207.581588 91.08703 \n",
+ "L 216.993636 90.041661 \n",
+ "L 227.974359 88.585974 \n",
+ "L 243.661106 86.222906 \n",
+ "L 259.347853 83.907471 \n",
+ "L 268.759901 82.764426 \n",
+ "L 276.603274 82.055178 \n",
+ "L 282.877973 81.685307 \n",
+ "L 289.152672 81.510888 \n",
+ "L 295.427371 81.540458 \n",
+ "L 301.70207 81.772563 \n",
+ "L 307.976768 82.19588 \n",
+ "L 315.820142 82.962294 \n",
+ "L 325.23219 84.155266 \n",
+ "L 337.781588 86.018051 \n",
+ "L 358.174359 89.05777 \n",
+ "L 369.155082 90.440035 \n",
+ "L 378.56713 91.412474 \n",
+ "L 387.979178 92.181191 \n",
+ "L 398.959901 92.840578 \n",
+ "L 411.509299 93.33573 \n",
+ "L 425.627371 93.654902 \n",
+ "L 436.608094 93.789697 \n",
+ "L 436.608094 93.789697 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_74\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938702 \n",
+ "L 116.598455 93.836341 \n",
+ "L 133.853877 93.59745 \n",
+ "L 144.8346 93.251066 \n",
+ "L 154.246648 92.734686 \n",
+ "L 162.090021 92.072271 \n",
+ "L 168.36472 91.337111 \n",
+ "L 174.639419 90.371816 \n",
+ "L 180.914118 89.128495 \n",
+ "L 185.620142 87.983983 \n",
+ "L 190.326166 86.635332 \n",
+ "L 195.03219 85.064075 \n",
+ "L 199.738214 83.254508 \n",
+ "L 204.444238 81.194919 \n",
+ "L 209.150262 78.878872 \n",
+ "L 213.856287 76.306487 \n",
+ "L 218.562311 73.485616 \n",
+ "L 223.268335 70.432848 \n",
+ "L 229.543034 66.048225 \n",
+ "L 235.817732 61.387804 \n",
+ "L 256.210503 45.951721 \n",
+ "L 260.916527 42.739548 \n",
+ "L 265.622552 39.817498 \n",
+ "L 268.759901 38.066507 \n",
+ "L 271.89725 36.496535 \n",
+ "L 275.0346 35.125786 \n",
+ "L 278.171949 33.970447 \n",
+ "L 281.309299 33.044364 \n",
+ "L 284.446648 32.358767 \n",
+ "L 287.583997 31.922046 \n",
+ "L 290.721347 31.739578 \n",
+ "L 293.858696 31.813616 \n",
+ "L 296.996046 32.143246 \n",
+ "L 300.133395 32.724402 \n",
+ "L 303.270744 33.549951 \n",
+ "L 306.408094 34.609842 \n",
+ "L 309.545443 35.891302 \n",
+ "L 312.682793 37.3791 \n",
+ "L 315.820142 39.055844 \n",
+ "L 320.526166 41.882792 \n",
+ "L 325.23219 45.020704 \n",
+ "L 331.506889 49.558358 \n",
+ "L 340.918937 56.757397 \n",
+ "L 350.330985 63.924989 \n",
+ "L 356.605684 68.449844 \n",
+ "L 361.311708 71.632987 \n",
+ "L 366.017732 74.599118 \n",
+ "L 370.723756 77.325884 \n",
+ "L 375.42978 79.80016 \n",
+ "L 380.135805 82.017198 \n",
+ "L 384.841829 83.979547 \n",
+ "L 389.547853 85.695824 \n",
+ "L 394.253877 87.179428 \n",
+ "L 398.959901 88.447266 \n",
+ "L 403.665925 89.51856 \n",
+ "L 409.940624 90.676642 \n",
+ "L 416.215323 91.570756 \n",
+ "L 422.490021 92.247973 \n",
+ "L 430.333395 92.854514 \n",
+ "L 436.608094 93.192861 \n",
+ "L 436.608094 93.192861 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_75\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938901 \n",
+ "L 160.521347 93.833996 \n",
+ "L 180.914118 93.589336 \n",
+ "L 195.03219 93.212748 \n",
+ "L 207.581588 92.642422 \n",
+ "L 218.562311 91.899515 \n",
+ "L 227.974359 91.050585 \n",
+ "L 237.386407 89.997494 \n",
+ "L 248.36713 88.53433 \n",
+ "L 264.053877 86.166998 \n",
+ "L 279.740624 83.858827 \n",
+ "L 289.152672 82.726276 \n",
+ "L 296.996046 82.028801 \n",
+ "L 303.270744 81.669805 \n",
+ "L 309.545443 81.507016 \n",
+ "L 315.820142 81.548407 \n",
+ "L 322.094841 81.791943 \n",
+ "L 328.36954 82.225751 \n",
+ "L 336.212913 83.003248 \n",
+ "L 345.624961 84.20569 \n",
+ "L 358.174359 86.073878 \n",
+ "L 376.998455 88.891472 \n",
+ "L 387.979178 90.300664 \n",
+ "L 397.391226 91.299293 \n",
+ "L 406.803274 92.093677 \n",
+ "L 417.783997 92.779468 \n",
+ "L 428.76472 93.246312 \n",
+ "L 436.608094 93.474183 \n",
+ "L 436.608094 93.474183 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_76\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938882 \n",
+ "L 136.991226 93.833585 \n",
+ "L 154.246648 93.589193 \n",
+ "L 165.227371 93.235606 \n",
+ "L 174.639419 92.709379 \n",
+ "L 182.482793 92.035311 \n",
+ "L 188.757491 91.288122 \n",
+ "L 195.03219 90.308114 \n",
+ "L 199.738214 89.391491 \n",
+ "L 204.444238 88.296126 \n",
+ "L 209.150262 87.001663 \n",
+ "L 213.856287 85.489113 \n",
+ "L 218.562311 83.741949 \n",
+ "L 223.268335 81.747314 \n",
+ "L 227.974359 79.497298 \n",
+ "L 232.680383 76.99022 \n",
+ "L 237.386407 74.231846 \n",
+ "L 242.092431 71.236442 \n",
+ "L 248.36713 66.916023 \n",
+ "L 254.641829 62.300278 \n",
+ "L 267.191226 52.665406 \n",
+ "L 275.0346 46.812949 \n",
+ "L 279.740624 43.538509 \n",
+ "L 284.446648 40.534995 \n",
+ "L 289.152672 37.875756 \n",
+ "L 292.290021 36.327877 \n",
+ "L 295.427371 34.9812 \n",
+ "L 298.56472 33.851654 \n",
+ "L 301.70207 32.952798 \n",
+ "L 304.839419 32.295545 \n",
+ "L 307.976768 31.887945 \n",
+ "L 311.114118 31.735018 \n",
+ "L 314.251467 31.838655 \n",
+ "L 317.388817 32.197574 \n",
+ "L 320.526166 32.80735 \n",
+ "L 323.663515 33.660506 \n",
+ "L 326.800865 34.746663 \n",
+ "L 329.938214 36.052752 \n",
+ "L 333.075564 37.563277 \n",
+ "L 336.212913 39.260617 \n",
+ "L 340.918937 42.114066 \n",
+ "L 345.624961 45.272827 \n",
+ "L 351.89966 49.829145 \n",
+ "L 361.311708 57.037039 \n",
+ "L 370.723756 64.193268 \n",
+ "L 376.998455 68.701736 \n",
+ "L 381.704479 71.8692 \n",
+ "L 386.410503 74.817589 \n",
+ "L 391.116527 77.525287 \n",
+ "L 395.822552 79.979844 \n",
+ "L 400.528576 82.177115 \n",
+ "L 405.2346 84.12016 \n",
+ "L 409.940624 85.818011 \n",
+ "L 414.646648 87.28438 \n",
+ "L 419.352672 88.536395 \n",
+ "L 424.058696 89.593408 \n",
+ "L 430.333395 90.734936 \n",
+ "L 436.608094 91.615288 \n",
+ "L 436.608094 91.615288 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_77\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 180.914118 93.831567 \n",
+ "L 201.306889 93.58235 \n",
+ "L 215.424961 93.19982 \n",
+ "L 226.405684 92.709179 \n",
+ "L 237.386407 91.993744 \n",
+ "L 246.798455 91.170882 \n",
+ "L 256.210503 90.143614 \n",
+ "L 267.191226 88.705686 \n",
+ "L 281.309299 86.595809 \n",
+ "L 298.56472 84.022184 \n",
+ "L 307.976768 82.855309 \n",
+ "L 315.820142 82.119026 \n",
+ "L 322.094841 81.724015 \n",
+ "L 328.36954 81.522573 \n",
+ "L 334.644238 81.524544 \n",
+ "L 340.918937 81.729833 \n",
+ "L 347.193636 82.128408 \n",
+ "L 355.037009 82.868502 \n",
+ "L 362.880383 83.826575 \n",
+ "L 373.861106 85.408184 \n",
+ "L 400.528576 89.366492 \n",
+ "L 411.509299 90.695762 \n",
+ "L 420.921347 91.61823 \n",
+ "L 430.333395 92.33889 \n",
+ "L 436.608094 92.715704 \n",
+ "L 436.608094 92.715704 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_78\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938904 \n",
+ "L 157.383997 93.830761 \n",
+ "L 174.639419 93.580755 \n",
+ "L 185.620142 93.219839 \n",
+ "L 195.03219 92.683609 \n",
+ "L 202.875564 91.997727 \n",
+ "L 209.150262 91.23836 \n",
+ "L 215.424961 90.243477 \n",
+ "L 220.130985 89.313843 \n",
+ "L 224.837009 88.203874 \n",
+ "L 229.543034 86.893284 \n",
+ "L 234.249058 85.363235 \n",
+ "L 238.955082 83.597436 \n",
+ "L 243.661106 81.583366 \n",
+ "L 248.36713 79.313547 \n",
+ "L 253.073154 76.786832 \n",
+ "L 257.779178 74.009603 \n",
+ "L 262.485202 70.996821 \n",
+ "L 268.759901 66.656808 \n",
+ "L 275.0346 62.027208 \n",
+ "L 296.996046 45.441669 \n",
+ "L 301.70207 42.269256 \n",
+ "L 306.408094 39.398373 \n",
+ "L 309.545443 37.687447 \n",
+ "L 312.682793 36.161901 \n",
+ "L 315.820142 34.839506 \n",
+ "L 318.957491 33.735935 \n",
+ "L 322.094841 32.864451 \n",
+ "L 325.23219 32.23565 \n",
+ "L 328.36954 31.857238 \n",
+ "L 331.506889 31.733879 \n",
+ "L 334.644238 31.867096 \n",
+ "L 337.781588 32.255245 \n",
+ "L 340.918937 32.893542 \n",
+ "L 344.056287 33.774165 \n",
+ "L 347.193636 34.886415 \n",
+ "L 350.330985 36.216927 \n",
+ "L 353.468335 37.749944 \n",
+ "L 356.605684 39.46762 \n",
+ "L 361.311708 42.347149 \n",
+ "L 366.017732 45.526313 \n",
+ "L 372.292431 50.100689 \n",
+ "L 383.273154 58.526217 \n",
+ "L 391.116527 64.460769 \n",
+ "L 397.391226 68.952512 \n",
+ "L 402.09725 72.104111 \n",
+ "L 406.803274 75.034632 \n",
+ "L 411.509299 77.723187 \n",
+ "L 416.215323 80.158001 \n",
+ "L 420.921347 82.335524 \n",
+ "L 425.627371 84.25932 \n",
+ "L 430.333395 85.938826 \n",
+ "L 435.039419 87.388063 \n",
+ "L 436.608094 87.822896 \n",
+ "L 436.608094 87.822896 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_79\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 201.306889 93.829088 \n",
+ "L 221.69966 93.575243 \n",
+ "L 235.817732 93.186704 \n",
+ "L 246.798455 92.689441 \n",
+ "L 257.779178 91.965815 \n",
+ "L 267.191226 91.135149 \n",
+ "L 276.603274 90.10011 \n",
+ "L 287.583997 88.654519 \n",
+ "L 301.70207 86.539892 \n",
+ "L 318.957491 83.972818 \n",
+ "L 328.36954 82.816043 \n",
+ "L 336.212913 82.091271 \n",
+ "L 342.487612 81.706993 \n",
+ "L 348.762311 81.517111 \n",
+ "L 355.037009 81.530912 \n",
+ "L 361.311708 81.747718 \n",
+ "L 367.586407 82.15694 \n",
+ "L 375.42978 82.908392 \n",
+ "L 384.841829 84.088468 \n",
+ "L 397.391226 85.943683 \n",
+ "L 417.783997 88.991556 \n",
+ "L 428.76472 90.384679 \n",
+ "L 436.608094 91.218051 \n",
+ "L 436.608094 91.218051 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_80\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 177.776768 93.827867 \n",
+ "L 195.03219 93.572135 \n",
+ "L 206.012913 93.203758 \n",
+ "L 215.424961 92.65737 \n",
+ "L 223.268335 91.959509 \n",
+ "L 229.543034 91.187814 \n",
+ "L 235.817732 90.177896 \n",
+ "L 240.523756 89.235127 \n",
+ "L 245.22978 88.110434 \n",
+ "L 249.935805 86.783606 \n",
+ "L 254.641829 85.23596 \n",
+ "L 259.347853 83.451452 \n",
+ "L 264.053877 81.417901 \n",
+ "L 268.759901 79.128273 \n",
+ "L 273.465925 76.581957 \n",
+ "L 278.171949 73.785963 \n",
+ "L 282.877973 70.755945 \n",
+ "L 289.152672 66.39662 \n",
+ "L 295.427371 61.753551 \n",
+ "L 317.388817 45.188633 \n",
+ "L 322.094841 42.036772 \n",
+ "L 326.800865 39.19211 \n",
+ "L 329.938214 37.501607 \n",
+ "L 333.075564 35.998632 \n",
+ "L 336.212913 34.700729 \n",
+ "L 339.350262 33.623308 \n",
+ "L 342.487612 32.779339 \n",
+ "L 345.624961 32.179092 \n",
+ "L 348.762311 31.82993 \n",
+ "L 351.89966 31.736158 \n",
+ "L 355.037009 31.898935 \n",
+ "L 358.174359 32.31625 \n",
+ "L 361.311708 32.982963 \n",
+ "L 364.449058 33.890911 \n",
+ "L 367.586407 35.029075 \n",
+ "L 370.723756 36.3838 \n",
+ "L 373.861106 37.93907 \n",
+ "L 376.998455 39.676823 \n",
+ "L 381.704479 42.582007 \n",
+ "L 386.410503 45.781126 \n",
+ "L 392.685202 50.372956 \n",
+ "L 405.2346 60.008395 \n",
+ "L 413.077973 65.873407 \n",
+ "L 419.352672 70.270483 \n",
+ "L 424.058696 73.334523 \n",
+ "L 428.76472 76.167768 \n",
+ "L 433.470744 78.753158 \n",
+ "L 436.608094 80.334632 \n",
+ "L 436.608094 80.334632 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_81\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 220.130985 93.837157 \n",
+ "L 240.523756 93.598469 \n",
+ "L 254.641829 93.229694 \n",
+ "L 267.191226 92.669456 \n",
+ "L 278.171949 91.937595 \n",
+ "L 287.583997 91.09911 \n",
+ "L 296.996046 90.056321 \n",
+ "L 307.976768 88.603144 \n",
+ "L 322.094841 86.483959 \n",
+ "L 339.350262 83.923756 \n",
+ "L 348.762311 82.777251 \n",
+ "L 356.605684 82.064103 \n",
+ "L 362.880383 81.69062 \n",
+ "L 369.155082 81.51233 \n",
+ "L 375.42978 81.537958 \n",
+ "L 381.704479 81.766245 \n",
+ "L 387.979178 82.186049 \n",
+ "L 395.822552 82.948742 \n",
+ "L 405.2346 84.138519 \n",
+ "L 417.783997 85.999451 \n",
+ "L 436.608094 88.824252 \n",
+ "L 436.608094 88.824252 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_82\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 196.600865 93.837245 \n",
+ "L 213.856287 93.600163 \n",
+ "L 224.837009 93.256152 \n",
+ "L 234.249058 92.74302 \n",
+ "L 242.092431 92.084453 \n",
+ "L 248.36713 91.35327 \n",
+ "L 254.641829 90.392844 \n",
+ "L 260.916527 89.155334 \n",
+ "L 265.622552 88.015796 \n",
+ "L 270.328576 86.672619 \n",
+ "L 275.0346 85.107281 \n",
+ "L 279.740624 83.303991 \n",
+ "L 284.446648 81.250917 \n",
+ "L 289.152672 78.941476 \n",
+ "L 293.858696 76.3756 \n",
+ "L 298.56472 73.560933 \n",
+ "L 303.270744 70.513828 \n",
+ "L 309.545443 66.13548 \n",
+ "L 315.820142 61.479331 \n",
+ "L 336.212913 46.037231 \n",
+ "L 340.918937 42.818606 \n",
+ "L 345.624961 39.888194 \n",
+ "L 348.762311 38.130628 \n",
+ "L 351.89966 36.553345 \n",
+ "L 355.037009 35.174621 \n",
+ "L 358.174359 34.010725 \n",
+ "L 361.311708 33.075599 \n",
+ "L 364.449058 32.380578 \n",
+ "L 367.586407 31.934166 \n",
+ "L 370.723756 31.741857 \n",
+ "L 373.861106 31.806026 \n",
+ "L 376.998455 32.125881 \n",
+ "L 380.135805 32.697475 \n",
+ "L 383.273154 33.513793 \n",
+ "L 386.410503 34.56489 \n",
+ "L 389.547853 35.838095 \n",
+ "L 392.685202 37.318266 \n",
+ "L 395.822552 38.988087 \n",
+ "L 400.528576 41.806108 \n",
+ "L 405.2346 44.936971 \n",
+ "L 411.509299 49.468271 \n",
+ "L 420.921347 56.664169 \n",
+ "L 430.333395 63.835394 \n",
+ "L 436.608094 68.365635 \n",
+ "L 436.608094 68.365635 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_83\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 240.523756 93.834794 \n",
+ "L 260.916527 93.591639 \n",
+ "L 275.0346 93.217015 \n",
+ "L 287.583997 92.649222 \n",
+ "L 298.56472 91.909084 \n",
+ "L 307.976768 91.062767 \n",
+ "L 317.388817 90.012248 \n",
+ "L 328.36954 88.551567 \n",
+ "L 344.056287 86.185632 \n",
+ "L 359.743034 83.875006 \n",
+ "L 369.155082 82.738939 \n",
+ "L 376.998455 82.037527 \n",
+ "L 383.273154 81.674899 \n",
+ "L 389.547853 81.508231 \n",
+ "L 395.822552 81.545682 \n",
+ "L 402.09725 81.785412 \n",
+ "L 408.371949 82.215731 \n",
+ "L 416.215323 82.989547 \n",
+ "L 425.627371 84.188852 \n",
+ "L 436.608094 85.813765 \n",
+ "L 436.608094 85.813765 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_84\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 216.993636 93.834511 \n",
+ "L 234.249058 93.591965 \n",
+ "L 245.22978 93.240793 \n",
+ "L 254.641829 92.717866 \n",
+ "L 262.485202 92.0477 \n",
+ "L 268.759901 91.304537 \n",
+ "L 275.0346 90.329451 \n",
+ "L 281.309299 89.074455 \n",
+ "L 286.015323 87.919954 \n",
+ "L 290.721347 86.560317 \n",
+ "L 295.427371 84.977193 \n",
+ "L 300.133395 83.155049 \n",
+ "L 304.839419 81.082414 \n",
+ "L 309.545443 78.753158 \n",
+ "L 314.251467 76.167768 \n",
+ "L 318.957491 73.334523 \n",
+ "L 323.663515 70.270483 \n",
+ "L 329.938214 65.873407 \n",
+ "L 337.781588 60.008395 \n",
+ "L 355.037009 46.899797 \n",
+ "L 359.743034 43.619406 \n",
+ "L 364.449058 40.608011 \n",
+ "L 369.155082 37.93907 \n",
+ "L 372.292431 36.3838 \n",
+ "L 375.42978 35.029075 \n",
+ "L 378.56713 33.890911 \n",
+ "L 381.704479 32.982963 \n",
+ "L 384.841829 32.31625 \n",
+ "L 387.979178 31.898935 \n",
+ "L 391.116527 31.736158 \n",
+ "L 394.253877 31.82993 \n",
+ "L 397.391226 32.179092 \n",
+ "L 400.528576 32.779339 \n",
+ "L 403.665925 33.623308 \n",
+ "L 406.803274 34.700729 \n",
+ "L 409.940624 35.998632 \n",
+ "L 413.077973 37.501607 \n",
+ "L 416.215323 39.19211 \n",
+ "L 420.921347 42.036772 \n",
+ "L 425.627371 45.188633 \n",
+ "L 431.90207 49.738797 \n",
+ "L 436.608094 53.313198 \n",
+ "L 436.608094 53.313198 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_85\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 260.916527 93.832382 \n",
+ "L 281.309299 93.584692 \n",
+ "L 295.427371 93.20415 \n",
+ "L 306.408094 92.715704 \n",
+ "L 317.388817 92.002989 \n",
+ "L 326.800865 91.182725 \n",
+ "L 336.212913 90.158051 \n",
+ "L 347.193636 88.722695 \n",
+ "L 361.311708 86.614443 \n",
+ "L 378.56713 84.038706 \n",
+ "L 387.979178 82.868502 \n",
+ "L 395.822552 82.128408 \n",
+ "L 402.09725 81.729833 \n",
+ "L 408.371949 81.524544 \n",
+ "L 414.646648 81.522573 \n",
+ "L 420.921347 81.724015 \n",
+ "L 427.196046 82.119026 \n",
+ "L 435.039419 82.855309 \n",
+ "L 436.608094 83.0308 \n",
+ "L 436.608094 83.0308 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_86\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 237.386407 93.83171 \n",
+ "L 254.641829 93.583588 \n",
+ "L 265.622552 93.225129 \n",
+ "L 275.0346 92.692251 \n",
+ "L 282.877973 92.010325 \n",
+ "L 289.152672 91.255034 \n",
+ "L 295.427371 90.265127 \n",
+ "L 300.133395 89.339844 \n",
+ "L 304.839419 88.234756 \n",
+ "L 309.545443 86.929554 \n",
+ "L 314.251467 85.405349 \n",
+ "L 318.957491 83.64577 \n",
+ "L 323.663515 81.638184 \n",
+ "L 328.36954 79.374967 \n",
+ "L 333.075564 76.854793 \n",
+ "L 337.781588 74.08384 \n",
+ "L 342.487612 71.076835 \n",
+ "L 348.762311 66.743322 \n",
+ "L 355.037009 62.118298 \n",
+ "L 376.998455 45.526313 \n",
+ "L 381.704479 42.347149 \n",
+ "L 386.410503 39.46762 \n",
+ "L 389.547853 37.749944 \n",
+ "L 392.685202 36.216927 \n",
+ "L 395.822552 34.886415 \n",
+ "L 398.959901 33.774165 \n",
+ "L 402.09725 32.893542 \n",
+ "L 405.2346 32.255245 \n",
+ "L 408.371949 31.867096 \n",
+ "L 411.509299 31.733879 \n",
+ "L 414.646648 31.857238 \n",
+ "L 417.783997 32.23565 \n",
+ "L 420.921347 32.864451 \n",
+ "L 424.058696 33.735935 \n",
+ "L 427.196046 34.839506 \n",
+ "L 430.333395 36.161901 \n",
+ "L 433.470744 37.687447 \n",
+ "L 436.608094 39.398373 \n",
+ "L 436.608094 39.398373 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_87\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 281.309299 93.82992 \n",
+ "L 301.70207 93.577625 \n",
+ "L 315.820142 93.191097 \n",
+ "L 326.800865 92.696048 \n",
+ "L 337.781588 91.975157 \n",
+ "L 347.193636 91.147094 \n",
+ "L 356.605684 90.114643 \n",
+ "L 367.586407 88.671598 \n",
+ "L 381.704479 86.558533 \n",
+ "L 398.959901 83.98924 \n",
+ "L 408.371949 82.829079 \n",
+ "L 416.215323 82.100458 \n",
+ "L 422.490021 81.712595 \n",
+ "L 428.76472 81.518856 \n",
+ "L 435.039419 81.528714 \n",
+ "L 436.608094 81.563155 \n",
+ "L 436.608094 81.563155 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_88\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 257.779178 93.82884 \n",
+ "L 275.0346 93.575029 \n",
+ "L 286.015323 93.209153 \n",
+ "L 295.427371 92.666169 \n",
+ "L 303.270744 91.972319 \n",
+ "L 309.545443 91.20475 \n",
+ "L 315.820142 90.199862 \n",
+ "L 320.526166 89.261484 \n",
+ "L 325.23219 88.141713 \n",
+ "L 329.938214 86.82031 \n",
+ "L 334.644238 85.27854 \n",
+ "L 339.350262 83.500277 \n",
+ "L 344.056287 81.473225 \n",
+ "L 348.762311 79.1902 \n",
+ "L 353.468335 76.650413 \n",
+ "L 358.174359 73.860664 \n",
+ "L 362.880383 70.836376 \n",
+ "L 369.155082 66.483456 \n",
+ "L 375.42978 61.844834 \n",
+ "L 397.391226 45.272827 \n",
+ "L 402.09725 42.114066 \n",
+ "L 406.803274 39.260617 \n",
+ "L 409.940624 37.563277 \n",
+ "L 413.077973 36.052752 \n",
+ "L 416.215323 34.746663 \n",
+ "L 419.352672 33.660506 \n",
+ "L 422.490021 32.80735 \n",
+ "L 425.627371 32.197574 \n",
+ "L 428.76472 31.838655 \n",
+ "L 431.90207 31.735018 \n",
+ "L 435.039419 31.887945 \n",
+ "L 436.608094 32.060152 \n",
+ "L 436.608094 32.060152 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_89\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 300.133395 93.837934 \n",
+ "L 320.526166 93.60072 \n",
+ "L 334.644238 93.233879 \n",
+ "L 347.193636 92.676145 \n",
+ "L 358.174359 91.947034 \n",
+ "L 367.586407 91.111157 \n",
+ "L 376.998455 90.070949 \n",
+ "L 387.979178 88.620292 \n",
+ "L 402.09725 86.502604 \n",
+ "L 419.352672 83.940076 \n",
+ "L 428.76472 82.790128 \n",
+ "L 436.608094 82.073093 \n",
+ "L 436.608094 82.073093 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_90\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 276.603274 93.838141 \n",
+ "L 293.858696 93.602856 \n",
+ "L 304.839419 93.261204 \n",
+ "L 314.251467 92.751304 \n",
+ "L 322.094841 92.096567 \n",
+ "L 328.36954 91.369344 \n",
+ "L 334.644238 90.41377 \n",
+ "L 340.918937 89.182052 \n",
+ "L 345.624961 88.047476 \n",
+ "L 350.330985 86.709761 \n",
+ "L 355.037009 85.15033 \n",
+ "L 359.743034 83.353309 \n",
+ "L 364.449058 81.306747 \n",
+ "L 369.155082 79.00391 \n",
+ "L 373.861106 76.44455 \n",
+ "L 378.56713 73.636097 \n",
+ "L 383.273154 70.594671 \n",
+ "L 389.547853 66.222632 \n",
+ "L 395.822552 61.570799 \n",
+ "L 416.215323 46.12288 \n",
+ "L 420.921347 42.897853 \n",
+ "L 425.627371 39.959127 \n",
+ "L 428.76472 38.195016 \n",
+ "L 431.90207 36.610449 \n",
+ "L 435.039419 35.223773 \n",
+ "L 436.608094 34.609842 \n",
+ "L 436.608094 34.609842 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_91\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 320.526166 93.835587 \n",
+ "L 340.918937 93.593929 \n",
+ "L 355.037009 93.221262 \n",
+ "L 367.586407 92.655995 \n",
+ "L 378.56713 91.91862 \n",
+ "L 387.979178 91.074915 \n",
+ "L 397.391226 90.02697 \n",
+ "L 408.371949 88.568782 \n",
+ "L 424.058696 86.204268 \n",
+ "L 436.608094 84.324395 \n",
+ "L 436.608094 84.324395 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_92\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 296.996046 93.83543 \n",
+ "L 314.251467 93.594717 \n",
+ "L 325.23219 93.245947 \n",
+ "L 334.644238 92.726301 \n",
+ "L 342.487612 92.06002 \n",
+ "L 348.762311 91.320867 \n",
+ "L 355.037009 90.350685 \n",
+ "L 361.311708 89.101536 \n",
+ "L 366.017732 87.952036 \n",
+ "L 370.723756 86.597898 \n",
+ "L 375.42978 85.020713 \n",
+ "L 380.135805 83.204861 \n",
+ "L 384.841829 81.138751 \n",
+ "L 389.547853 78.816099 \n",
+ "L 394.253877 76.237209 \n",
+ "L 398.959901 73.410145 \n",
+ "L 403.665925 70.351733 \n",
+ "L 409.940624 65.960867 \n",
+ "L 417.783997 60.1007 \n",
+ "L 435.039419 46.986772 \n",
+ "L 436.608094 45.866352 \n",
+ "L 436.608094 45.866352 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_93\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 340.918937 93.833191 \n",
+ "L 361.311708 93.587021 \n",
+ "L 375.42978 93.208459 \n",
+ "L 386.410503 92.722202 \n",
+ "L 397.391226 92.012202 \n",
+ "L 406.803274 91.194535 \n",
+ "L 416.215323 90.172457 \n",
+ "L 427.196046 88.739681 \n",
+ "L 436.608094 87.355349 \n",
+ "L 436.608094 87.355349 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_94\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 317.388817 93.832651 \n",
+ "L 334.644238 93.5864 \n",
+ "L 345.624961 93.230385 \n",
+ "L 355.037009 92.700841 \n",
+ "L 362.880383 92.022853 \n",
+ "L 369.155082 91.271621 \n",
+ "L 375.42978 90.286672 \n",
+ "L 380.135805 89.365726 \n",
+ "L 384.841829 88.265507 \n",
+ "L 389.547853 86.965681 \n",
+ "L 394.253877 85.447308 \n",
+ "L 398.959901 83.693941 \n",
+ "L 403.665925 81.692833 \n",
+ "L 408.371949 79.436217 \n",
+ "L 413.077973 76.922589 \n",
+ "L 417.783997 74.157921 \n",
+ "L 422.490021 71.156709 \n",
+ "L 428.76472 66.829727 \n",
+ "L 435.039419 62.209322 \n",
+ "L 436.608094 61.021118 \n",
+ "L 436.608094 61.021118 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_95\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 361.311708 93.830746 \n",
+ "L 381.704479 93.579994 \n",
+ "L 395.822552 93.195469 \n",
+ "L 406.803274 92.702627 \n",
+ "L 417.783997 91.984467 \n",
+ "L 427.196046 91.159005 \n",
+ "L 436.608094 90.129144 \n",
+ "L 436.608094 90.129144 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_96\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 337.781588 93.829804 \n",
+ "L 355.037009 93.577902 \n",
+ "L 366.017732 93.214513 \n",
+ "L 375.42978 92.674915 \n",
+ "L 383.273154 91.985058 \n",
+ "L 389.547853 91.221599 \n",
+ "L 395.822552 90.221722 \n",
+ "L 400.528576 89.287723 \n",
+ "L 405.2346 88.17286 \n",
+ "L 409.940624 86.85687 \n",
+ "L 414.646648 85.320965 \n",
+ "L 419.352672 83.548938 \n",
+ "L 424.058696 81.528379 \n",
+ "L 428.76472 79.251958 \n",
+ "L 433.470744 76.718705 \n",
+ "L 436.608094 74.890096 \n",
+ "L 436.608094 74.890096 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_97\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 381.704479 93.82825 \n",
+ "L 402.09725 93.572848 \n",
+ "L 416.215323 93.18229 \n",
+ "L 427.196046 92.682807 \n",
+ "L 436.608094 92.075795 \n",
+ "L 436.608094 92.075795 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_98\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 356.605684 93.83903 \n",
+ "L 373.861106 93.60553 \n",
+ "L 384.841829 93.266223 \n",
+ "L 394.253877 92.759537 \n",
+ "L 402.09725 92.108613 \n",
+ "L 408.371949 91.385334 \n",
+ "L 414.646648 90.434594 \n",
+ "L 420.921347 89.208649 \n",
+ "L 425.627371 88.079021 \n",
+ "L 430.333395 86.746756 \n",
+ "L 435.039419 85.193223 \n",
+ "L 436.608094 84.62335 \n",
+ "L 436.608094 84.62335 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_99\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 400.528576 93.836375 \n",
+ "L 420.921347 93.596205 \n",
+ "L 435.039419 93.225488 \n",
+ "L 436.608094 93.168919 \n",
+ "L 436.608094 93.168919 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_100\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 376.998455 93.836341 \n",
+ "L 394.253877 93.59745 \n",
+ "L 405.2346 93.251066 \n",
+ "L 414.646648 92.734686 \n",
+ "L 422.490021 92.072271 \n",
+ "L 428.76472 91.337111 \n",
+ "L 435.039419 90.371816 \n",
+ "L 436.608094 90.08897 \n",
+ "L 436.608094 90.08897 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_101\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 420.921347 93.833996 \n",
+ "L 436.608094 93.669981 \n",
+ "L 436.608094 93.669981 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_102\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 397.391226 93.833585 \n",
+ "L 414.646648 93.589193 \n",
+ "L 425.627371 93.235606 \n",
+ "L 435.039419 92.709379 \n",
+ "L 436.608094 92.594279 \n",
+ "L 436.608094 92.594279 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_103\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.859531 \n",
+ "L 436.608094 93.859531 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_104\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 417.783997 93.830761 \n",
+ "L 435.039419 93.580755 \n",
+ "L 436.608094 93.542031 \n",
+ "L 436.608094 93.542031 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_105\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.919107 \n",
+ "L 436.608094 93.919107 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_106\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.839912 \n",
+ "L 436.608094 93.839912 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_107\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.934733 \n",
+ "L 436.608094 93.934733 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_108\">\n",
+ " <path clip-path=\"url(#p1e7b2deaa9)\" d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.918039 \n",
+ "L 436.608094 93.918039 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:1.75;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_3\">\n",
+ " <path d=\"M 46.008094 93.938906 \n",
+ "L 46.008094 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_4\">\n",
+ " <path d=\"M 436.608094 93.938906 \n",
+ "L 436.608094 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_5\">\n",
+ " <path d=\"M 46.008094 93.938906 \n",
+ "L 436.608094 93.938906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_6\">\n",
+ " <path d=\"M 46.008094 10.778906 \n",
+ "L 436.608094 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <defs>\n",
+ " <clipPath id=\"p1e7b2deaa9\">\n",
+ " <rect height=\"83.16\" width=\"390.6\" x=\"46.008094\" y=\"10.778906\"/>\n",
+ " </clipPath>\n",
+ " </defs>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x11a296e80>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "spikes_and_inference(show_tuning_curves = True, show_likelihoods = False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The tuning curves are dense enough that we can also assume that $\\sum_{i=0}^N f_i(s) = k$ (*i.e.*, the sum of the tuning curves in a population is constant.)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "First, we will show how the brain can decode a likelihood over stimulus from neural activity. Then we will ask how the brain can compute joint likelihoods.\n",
+ "### How can the brain decode $p(\\mathbf{r_\\mathrm{V}}|s)$?\n",
+ "\n",
+ "\\begin{align}\n",
+ "L(s) &= p(\\mathbf{r_\\mathrm{V}}\\ |\\ s) \\tag{1} \\\\ \n",
+ "&= \\prod_{i=0}^N \\frac{e^{-g_\\mathrm{V}\\ f_i(s)}\\ g_\\mathrm{V}\\ f_i(s)^{r_{\\mathrm{V}i}}}{r_{\\mathrm{V}i}!} \\tag{2} \\\\\n",
+ "&\\propto \\prod_{i=0}^N e^{-g_\\mathrm{V}\\ f_i(s)}\\ f_i(s)^{r_{\\mathrm{V}i}} \\tag{3} \\\\\n",
+ "&= e^{-g_\\mathrm{V}\\sum_{i=0}^N f_i(s)} \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}}\\tag{4} \\\\ \n",
+ "&= e^{-g_\\mathrm{V}k} \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}} \\tag{5} \\\\\n",
+ "&\\propto \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}} \\tag{6} \\\\\n",
+ "\\end{align}\n",
+ "\n",
+ "### Then what is the joint likelihood $p(\\mathbf{r_\\mathrm{V}}|s)\\ p(\\mathbf{r_\\mathrm{A}}|s)$?\n",
+ "\n",
+ "\\begin{align}\n",
+ "L(s) &= p(\\mathbf{r_\\mathrm{V}}\\ |\\ s)\\ p(\\mathbf{r_\\mathrm{A}}|s) \\tag{7} \\\\\n",
+ "&\\propto \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}}\\ \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{A}i}} \\tag{8} \\\\\n",
+ "&= \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{9} \\\\\n",
+ "\\end{align}\n",
+ "\n",
+ "## How can the brain compute the joint likelihood $p(\\mathbf{r}_\\mathrm{V}|s)\\ p(\\mathbf{r}_\\mathrm{A}|s)$?\n",
+ "The fact that we see neurons from $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$ being added on a neuron-by-neuron basis in the exponent above suggests that we could construct a third population vector, $\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}$, and decode that.\n",
+ "\n",
+ "### First, we must prove that the sum of two Poisson-distributed random variables $X+Y$ is again Poisson-distributed.\n",
+ "\\begin{align}\n",
+ "X &\\sim \\textrm{Poisson}(\\lambda_x) \\textrm{, so } p(X=k)=\\frac{\\lambda_x^k\\ e^{-\\lambda_x}}{k!} \\tag{10} \\\\\n",
+ "Y &\\sim \\textrm{Poisson}(\\lambda_y) \\textrm{, so } p(X=k)=\\frac{\\lambda_y^k\\ e^{-\\lambda_y}}{k!} \\tag{11} \\\\\n",
+ "X+Y &\\overset{?}{\\sim} \\textrm{Poisson}(\\lambda_{x+y}) \\textrm{ and, if so, } \\lambda_{x+y}=? \\tag{12} \\\\\n",
+ "\\end{align}\n",
+ "\n",
+ "\\begin{align}\n",
+ "p(X+Y=n) &= p(X=0)\\ p(Y=n) + p(X=1)\\ p(Y=n-1)\\ +...+\\ p(X=n-1)\\ p(Y = 1) + p(X=n)\\ p(Y=0) \\tag{13} \\\\\n",
+ "&= \\sum_{k=0}^n p(X=k)\\ p(Y=n-k) \\tag{14} \\\\\n",
+ "&= \\sum_{k=0}^n \\frac{\\lambda_x^k\\ e^{-\\lambda_x}\\ \\lambda_y^{n-k}\\ e^{-\\lambda_y}}{k!(n-k)!} \\tag{15} \\\\\n",
+ "&= e^{-(\\lambda_x+\\lambda_y)} \\sum_{k=0}^n \\frac{1}{k!(n-k)!}\\ \\lambda_x^k\\ \\lambda_y^{n-k} \\tag{16} \\\\\n",
+ "&= e^{-(\\lambda_x+\\lambda_y)} \\frac{1}{n!} \\sum_{k=0}^n \\frac{n!}{k!(n-k)!}\\ \\lambda_x^k\\ \\lambda_y^{n-k} \\tag{17} \\\\\n",
+ "&= e^{-(\\lambda_x+\\lambda_y)} \\frac{1}{n!} \\sum_{k=0}^n \\binom{n}{k}\\ \\lambda_x^k\\ \\lambda_y^{n-k}\\ [ \\textrm{because} \\frac{n!}{k!(n-k)!}=\\binom{n}{k} ]\\tag{18} \\\\\n",
+ "&=\\frac{e^{-(\\lambda_x + \\lambda_y)}(\\lambda_x+\\lambda_y)^n}{n!} [ \\textrm{because} \\sum_{k=0}^n \\binom{n}{k}\\ x^ky^{n-k} = (x+y)^n ]\\tag{19} \\\\\n",
+ "\\end{align}\n",
+ "\n",
+ "Therefore, $X + Y \\sim \\mathrm{Poisson}(\\lambda_x + \\lambda_y)$.\n",
+ "\n",
+ "## What is $p(\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A} | s)$?\n",
+ "\n",
+ "In our case:\n",
+ "\n",
+ "\\begin{align}\n",
+ "r_{\\mathrm{V}i} &\\sim \\textrm{Poisson}(g_\\mathrm{V}\\ f_i(s)) \\tag{20} \\\\\n",
+ "r_{\\mathrm{A}i} &\\sim \\textrm{Poisson}(g_\\mathrm{A}\\ f_i(s)) \\tag{21} \\\\\n",
+ "r_{\\mathrm{V}i}+r_{\\mathrm{A}i} &\\sim \\textrm{Poisson}((g_\\mathrm{V}+g_\\mathrm{A})\\ f_i(s)) \\tag{22} \\\\\n",
+ "\\end{align}\n",
+ "\n",
+ "\\begin{align}\n",
+ "L(s)&=p(\\mathbf{r}_\\mathrm{V} + \\mathbf{r}_\\mathrm{A}\\ |\\ s)\n",
+ "= \\prod_{i=0}^N \\frac{e^{-f_i(s)(g_\\mathrm{V}+g_\\mathrm{A})}\\ (g_\\mathrm{V}+g_\\mathrm{A})\\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}}}{(r_{\\mathrm{V}i}+r_{\\mathrm{A}i})!} \\tag{23} \\\\\n",
+ "&\\propto \\prod_{i=0}^N e^{-f_i(s)(g_\\mathrm{V}+g_\\mathrm{A})}\\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{24} \\\\\n",
+ "&= e^{-(g_\\mathrm{V}+g_\\mathrm{A})\\sum_{i=0}^Nf_i(s)} \\prod_{i=0}^N \\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{25} \\\\\n",
+ "&= e^{-(g_\\mathrm{V}+g_\\mathrm{A})k} \\prod_{i=0}^N \\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{26} \\\\\n",
+ "&\\propto \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{27} \\\\\n",
+ "\\end{align}\n",
+ "\n",
+ "Since equations $(9)$ and $(27)$ are proportional, we have shown that optimal cue combination can be executed by decoding linear sums of populations."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "$$x = 2$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Simulation\n",
+ "Here are the spike counts (during 1 s) from the two populations on one trial. Depicted in blue is a third population vector that is the sum of $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
+ "<svg height=\"131pt\" version=\"1.1\" viewBox=\"0 0 622 131\" width=\"622pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ " <defs>\n",
+ " <style type=\"text/css\">\n",
+ "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
+ " </style>\n",
+ " </defs>\n",
+ " <g id=\"figure_1\">\n",
+ " <g id=\"patch_1\">\n",
+ " <path d=\"M 0 131.478125 \n",
+ "L 622.117656 131.478125 \n",
+ "L 622.117656 0 \n",
+ "L 0 0 \n",
+ "z\n",
+ "\" style=\"fill:#ffffff;\"/>\n",
+ " </g>\n",
+ " <g id=\"axes_1\">\n",
+ " <g id=\"patch_2\">\n",
+ " <path d=\"M 47.720781 93.938906 \n",
+ "L 438.320781 93.938906 \n",
+ "L 438.320781 10.778906 \n",
+ "L 47.720781 10.778906 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_1\">\n",
+ " <g id=\"xtick_1\">\n",
+ " <g id=\"line2d_1\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 47.720781 93.938906 \n",
+ "L 47.720781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_2\"/>\n",
+ " <g id=\"text_1\">\n",
+ " <!-- −40 -->\n",
+ " <defs>\n",
+ " <path d=\"M 52.828125 31.203125 \n",
+ "L 5.5625 31.203125 \n",
+ "L 5.5625 39.40625 \n",
+ "L 52.828125 39.40625 \n",
+ "z\n",
+ "\" id=\"ArialMT-2212\"/>\n",
+ " <path d=\"M 32.328125 0 \n",
+ "L 32.328125 17.140625 \n",
+ "L 1.265625 17.140625 \n",
+ "L 1.265625 25.203125 \n",
+ "L 33.9375 71.578125 \n",
+ "L 41.109375 71.578125 \n",
+ "L 41.109375 25.203125 \n",
+ "L 50.78125 25.203125 \n",
+ "L 50.78125 17.140625 \n",
+ "L 41.109375 17.140625 \n",
+ "L 41.109375 0 \n",
+ "z\n",
+ "M 32.328125 25.203125 \n",
+ "L 32.328125 57.46875 \n",
+ "L 9.90625 25.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-34\"/>\n",
+ " <path d=\"M 4.15625 35.296875 \n",
+ "Q 4.15625 48 6.765625 55.734375 \n",
+ "Q 9.375 63.484375 14.515625 67.671875 \n",
+ "Q 19.671875 71.875 27.484375 71.875 \n",
+ "Q 33.25 71.875 37.59375 69.546875 \n",
+ "Q 41.9375 67.234375 44.765625 62.859375 \n",
+ "Q 47.609375 58.5 49.21875 52.21875 \n",
+ "Q 50.828125 45.953125 50.828125 35.296875 \n",
+ "Q 50.828125 22.703125 48.234375 14.96875 \n",
+ "Q 45.65625 7.234375 40.5 3 \n",
+ "Q 35.359375 -1.21875 27.484375 -1.21875 \n",
+ "Q 17.140625 -1.21875 11.234375 6.203125 \n",
+ "Q 4.15625 15.140625 4.15625 35.296875 \n",
+ "M 13.1875 35.296875 \n",
+ "Q 13.1875 17.671875 17.3125 11.828125 \n",
+ "Q 21.4375 6 27.484375 6 \n",
+ "Q 33.546875 6 37.671875 11.859375 \n",
+ "Q 41.796875 17.71875 41.796875 35.296875 \n",
+ "Q 41.796875 52.984375 37.671875 58.78125 \n",
+ "Q 33.546875 64.59375 27.390625 64.59375 \n",
+ "Q 21.34375 64.59375 17.71875 59.46875 \n",
+ "Q 13.1875 52.9375 13.1875 35.296875 \n",
+ "\" id=\"ArialMT-30\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(39.239531 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_2\">\n",
+ " <g id=\"line2d_3\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 96.545781 93.938906 \n",
+ "L 96.545781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_4\"/>\n",
+ " <g id=\"text_2\">\n",
+ " <!-- −30 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.203125 18.890625 \n",
+ "L 12.984375 20.0625 \n",
+ "Q 14.5 12.59375 18.140625 9.296875 \n",
+ "Q 21.78125 6 27 6 \n",
+ "Q 33.203125 6 37.46875 10.296875 \n",
+ "Q 41.75 14.59375 41.75 20.953125 \n",
+ "Q 41.75 27 37.796875 30.921875 \n",
+ "Q 33.84375 34.859375 27.734375 34.859375 \n",
+ "Q 25.25 34.859375 21.53125 33.890625 \n",
+ "L 22.515625 41.609375 \n",
+ "Q 23.390625 41.5 23.921875 41.5 \n",
+ "Q 29.546875 41.5 34.03125 44.421875 \n",
+ "Q 38.53125 47.359375 38.53125 53.46875 \n",
+ "Q 38.53125 58.296875 35.25 61.46875 \n",
+ "Q 31.984375 64.65625 26.8125 64.65625 \n",
+ "Q 21.6875 64.65625 18.265625 61.421875 \n",
+ "Q 14.84375 58.203125 13.875 51.765625 \n",
+ "L 5.078125 53.328125 \n",
+ "Q 6.6875 62.15625 12.390625 67.015625 \n",
+ "Q 18.109375 71.875 26.609375 71.875 \n",
+ "Q 32.46875 71.875 37.390625 69.359375 \n",
+ "Q 42.328125 66.84375 44.9375 62.5 \n",
+ "Q 47.5625 58.15625 47.5625 53.265625 \n",
+ "Q 47.5625 48.640625 45.0625 44.828125 \n",
+ "Q 42.578125 41.015625 37.703125 38.765625 \n",
+ "Q 44.046875 37.3125 47.5625 32.6875 \n",
+ "Q 51.078125 28.078125 51.078125 21.140625 \n",
+ "Q 51.078125 11.765625 44.234375 5.25 \n",
+ "Q 37.40625 -1.265625 26.953125 -1.265625 \n",
+ "Q 17.53125 -1.265625 11.296875 4.34375 \n",
+ "Q 5.078125 9.96875 4.203125 18.890625 \n",
+ "\" id=\"ArialMT-33\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(88.064531 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_3\">\n",
+ " <g id=\"line2d_5\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 145.370781 93.938906 \n",
+ "L 145.370781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_6\"/>\n",
+ " <g id=\"text_3\">\n",
+ " <!-- −20 -->\n",
+ " <defs>\n",
+ " <path d=\"M 50.34375 8.453125 \n",
+ "L 50.34375 0 \n",
+ "L 3.03125 0 \n",
+ "Q 2.9375 3.171875 4.046875 6.109375 \n",
+ "Q 5.859375 10.9375 9.828125 15.625 \n",
+ "Q 13.8125 20.3125 21.34375 26.46875 \n",
+ "Q 33.015625 36.03125 37.109375 41.625 \n",
+ "Q 41.21875 47.21875 41.21875 52.203125 \n",
+ "Q 41.21875 57.421875 37.46875 61 \n",
+ "Q 33.734375 64.59375 27.734375 64.59375 \n",
+ "Q 21.390625 64.59375 17.578125 60.78125 \n",
+ "Q 13.765625 56.984375 13.71875 50.25 \n",
+ "L 4.6875 51.171875 \n",
+ "Q 5.609375 61.28125 11.65625 66.578125 \n",
+ "Q 17.71875 71.875 27.9375 71.875 \n",
+ "Q 38.234375 71.875 44.234375 66.15625 \n",
+ "Q 50.25 60.453125 50.25 52 \n",
+ "Q 50.25 47.703125 48.484375 43.546875 \n",
+ "Q 46.734375 39.40625 42.65625 34.8125 \n",
+ "Q 38.578125 30.21875 29.109375 22.21875 \n",
+ "Q 21.1875 15.578125 18.9375 13.203125 \n",
+ "Q 16.703125 10.84375 15.234375 8.453125 \n",
+ "z\n",
+ "\" id=\"ArialMT-32\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(136.889531 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_4\">\n",
+ " <g id=\"line2d_7\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 194.195781 93.938906 \n",
+ "L 194.195781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_8\"/>\n",
+ " <g id=\"text_4\">\n",
+ " <!-- −10 -->\n",
+ " <defs>\n",
+ " <path d=\"M 37.25 0 \n",
+ "L 28.46875 0 \n",
+ "L 28.46875 56 \n",
+ "Q 25.296875 52.984375 20.140625 49.953125 \n",
+ "Q 14.984375 46.921875 10.890625 45.40625 \n",
+ "L 10.890625 53.90625 \n",
+ "Q 18.265625 57.375 23.78125 62.296875 \n",
+ "Q 29.296875 67.234375 31.59375 71.875 \n",
+ "L 37.25 71.875 \n",
+ "z\n",
+ "\" id=\"ArialMT-31\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(185.714531 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_5\">\n",
+ " <g id=\"line2d_9\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 243.020781 93.938906 \n",
+ "L 243.020781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_10\"/>\n",
+ " <g id=\"text_5\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(240.240313 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_6\">\n",
+ " <g id=\"line2d_11\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 291.845781 93.938906 \n",
+ "L 291.845781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_12\"/>\n",
+ " <g id=\"text_6\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(286.284844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_7\">\n",
+ " <g id=\"line2d_13\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 340.670781 93.938906 \n",
+ "L 340.670781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_14\"/>\n",
+ " <g id=\"text_7\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(335.109844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_8\">\n",
+ " <g id=\"line2d_15\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 389.495781 93.938906 \n",
+ "L 389.495781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_16\"/>\n",
+ " <g id=\"text_8\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(383.934844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_9\">\n",
+ " <g id=\"line2d_17\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 438.320781 93.938906 \n",
+ "L 438.320781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_18\"/>\n",
+ " <g id=\"text_9\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(432.759844 108.096719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_10\">\n",
+ " <!-- preferred location -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.59375 -19.875 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.59375 51.859375 \n",
+ "L 14.59375 45.125 \n",
+ "Q 17.4375 49.078125 21 51.046875 \n",
+ "Q 24.5625 53.03125 29.640625 53.03125 \n",
+ "Q 36.28125 53.03125 41.359375 49.609375 \n",
+ "Q 46.4375 46.1875 49.015625 39.953125 \n",
+ "Q 51.609375 33.734375 51.609375 26.3125 \n",
+ "Q 51.609375 18.359375 48.75 11.984375 \n",
+ "Q 45.90625 5.609375 40.453125 2.21875 \n",
+ "Q 35.015625 -1.171875 29 -1.171875 \n",
+ "Q 24.609375 -1.171875 21.109375 0.6875 \n",
+ "Q 17.625 2.546875 15.375 5.375 \n",
+ "L 15.375 -19.875 \n",
+ "z\n",
+ "M 14.546875 25.640625 \n",
+ "Q 14.546875 15.625 18.59375 10.84375 \n",
+ "Q 22.65625 6.0625 28.421875 6.0625 \n",
+ "Q 34.28125 6.0625 38.453125 11.015625 \n",
+ "Q 42.625 15.96875 42.625 26.375 \n",
+ "Q 42.625 36.28125 38.546875 41.203125 \n",
+ "Q 34.46875 46.140625 28.8125 46.140625 \n",
+ "Q 23.1875 46.140625 18.859375 40.890625 \n",
+ "Q 14.546875 35.640625 14.546875 25.640625 \n",
+ "\" id=\"ArialMT-70\"/>\n",
+ " <path d=\"M 6.5 0 \n",
+ "L 6.5 51.859375 \n",
+ "L 14.40625 51.859375 \n",
+ "L 14.40625 44 \n",
+ "Q 17.4375 49.515625 20 51.265625 \n",
+ "Q 22.5625 53.03125 25.640625 53.03125 \n",
+ "Q 30.078125 53.03125 34.671875 50.203125 \n",
+ "L 31.640625 42.046875 \n",
+ "Q 28.421875 43.953125 25.203125 43.953125 \n",
+ "Q 22.3125 43.953125 20.015625 42.21875 \n",
+ "Q 17.71875 40.484375 16.75 37.40625 \n",
+ "Q 15.28125 32.71875 15.28125 27.15625 \n",
+ "L 15.28125 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-72\"/>\n",
+ " <path d=\"M 42.09375 16.703125 \n",
+ "L 51.171875 15.578125 \n",
+ "Q 49.03125 7.625 43.21875 3.21875 \n",
+ "Q 37.40625 -1.171875 28.375 -1.171875 \n",
+ "Q 17 -1.171875 10.328125 5.828125 \n",
+ "Q 3.65625 12.84375 3.65625 25.484375 \n",
+ "Q 3.65625 38.578125 10.390625 45.796875 \n",
+ "Q 17.140625 53.03125 27.875 53.03125 \n",
+ "Q 38.28125 53.03125 44.875 45.953125 \n",
+ "Q 51.46875 38.875 51.46875 26.03125 \n",
+ "Q 51.46875 25.25 51.421875 23.6875 \n",
+ "L 12.75 23.6875 \n",
+ "Q 13.234375 15.140625 17.578125 10.59375 \n",
+ "Q 21.921875 6.0625 28.421875 6.0625 \n",
+ "Q 33.25 6.0625 36.671875 8.59375 \n",
+ "Q 40.09375 11.140625 42.09375 16.703125 \n",
+ "M 13.234375 30.90625 \n",
+ "L 42.1875 30.90625 \n",
+ "Q 41.609375 37.453125 38.875 40.71875 \n",
+ "Q 34.671875 45.796875 27.984375 45.796875 \n",
+ "Q 21.921875 45.796875 17.796875 41.75 \n",
+ "Q 13.671875 37.703125 13.234375 30.90625 \n",
+ "\" id=\"ArialMT-65\"/>\n",
+ " <path d=\"M 8.6875 0 \n",
+ "L 8.6875 45.015625 \n",
+ "L 0.921875 45.015625 \n",
+ "L 0.921875 51.859375 \n",
+ "L 8.6875 51.859375 \n",
+ "L 8.6875 57.375 \n",
+ "Q 8.6875 62.59375 9.625 65.140625 \n",
+ "Q 10.890625 68.5625 14.078125 70.671875 \n",
+ "Q 17.28125 72.796875 23.046875 72.796875 \n",
+ "Q 26.765625 72.796875 31.25 71.921875 \n",
+ "L 29.9375 64.265625 \n",
+ "Q 27.203125 64.75 24.75 64.75 \n",
+ "Q 20.75 64.75 19.09375 63.03125 \n",
+ "Q 17.4375 61.328125 17.4375 56.640625 \n",
+ "L 17.4375 51.859375 \n",
+ "L 27.546875 51.859375 \n",
+ "L 27.546875 45.015625 \n",
+ "L 17.4375 45.015625 \n",
+ "L 17.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-66\"/>\n",
+ " <path d=\"M 40.234375 0 \n",
+ "L 40.234375 6.546875 \n",
+ "Q 35.296875 -1.171875 25.734375 -1.171875 \n",
+ "Q 19.53125 -1.171875 14.328125 2.25 \n",
+ "Q 9.125 5.671875 6.265625 11.796875 \n",
+ "Q 3.421875 17.921875 3.421875 25.875 \n",
+ "Q 3.421875 33.640625 6 39.96875 \n",
+ "Q 8.59375 46.296875 13.765625 49.65625 \n",
+ "Q 18.953125 53.03125 25.34375 53.03125 \n",
+ "Q 30.03125 53.03125 33.6875 51.046875 \n",
+ "Q 37.359375 49.078125 39.65625 45.90625 \n",
+ "L 39.65625 71.578125 \n",
+ "L 48.390625 71.578125 \n",
+ "L 48.390625 0 \n",
+ "z\n",
+ "M 12.453125 25.875 \n",
+ "Q 12.453125 15.921875 16.640625 10.984375 \n",
+ "Q 20.84375 6.0625 26.5625 6.0625 \n",
+ "Q 32.328125 6.0625 36.34375 10.765625 \n",
+ "Q 40.375 15.484375 40.375 25.140625 \n",
+ "Q 40.375 35.796875 36.265625 40.765625 \n",
+ "Q 32.171875 45.75 26.171875 45.75 \n",
+ "Q 20.3125 45.75 16.375 40.96875 \n",
+ "Q 12.453125 36.1875 12.453125 25.875 \n",
+ "\" id=\"ArialMT-64\"/>\n",
+ " <path id=\"ArialMT-20\"/>\n",
+ " <path d=\"M 6.390625 0 \n",
+ "L 6.390625 71.578125 \n",
+ "L 15.1875 71.578125 \n",
+ "L 15.1875 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6c\"/>\n",
+ " <path d=\"M 3.328125 25.921875 \n",
+ "Q 3.328125 40.328125 11.328125 47.265625 \n",
+ "Q 18.015625 53.03125 27.640625 53.03125 \n",
+ "Q 38.328125 53.03125 45.109375 46.015625 \n",
+ "Q 51.90625 39.015625 51.90625 26.65625 \n",
+ "Q 51.90625 16.65625 48.90625 10.90625 \n",
+ "Q 45.90625 5.171875 40.15625 2 \n",
+ "Q 34.421875 -1.171875 27.640625 -1.171875 \n",
+ "Q 16.75 -1.171875 10.03125 5.8125 \n",
+ "Q 3.328125 12.796875 3.328125 25.921875 \n",
+ "M 12.359375 25.921875 \n",
+ "Q 12.359375 15.96875 16.703125 11.015625 \n",
+ "Q 21.046875 6.0625 27.640625 6.0625 \n",
+ "Q 34.1875 6.0625 38.53125 11.03125 \n",
+ "Q 42.875 16.015625 42.875 26.21875 \n",
+ "Q 42.875 35.84375 38.5 40.796875 \n",
+ "Q 34.125 45.75 27.640625 45.75 \n",
+ "Q 21.046875 45.75 16.703125 40.8125 \n",
+ "Q 12.359375 35.890625 12.359375 25.921875 \n",
+ "\" id=\"ArialMT-6f\"/>\n",
+ " <path d=\"M 40.4375 19 \n",
+ "L 49.078125 17.875 \n",
+ "Q 47.65625 8.9375 41.8125 3.875 \n",
+ "Q 35.984375 -1.171875 27.484375 -1.171875 \n",
+ "Q 16.84375 -1.171875 10.375 5.78125 \n",
+ "Q 3.90625 12.75 3.90625 25.734375 \n",
+ "Q 3.90625 34.125 6.6875 40.421875 \n",
+ "Q 9.46875 46.734375 15.15625 49.875 \n",
+ "Q 20.84375 53.03125 27.546875 53.03125 \n",
+ "Q 35.984375 53.03125 41.359375 48.75 \n",
+ "Q 46.734375 44.484375 48.25 36.625 \n",
+ "L 39.703125 35.296875 \n",
+ "Q 38.484375 40.53125 35.375 43.15625 \n",
+ "Q 32.28125 45.796875 27.875 45.796875 \n",
+ "Q 21.234375 45.796875 17.078125 41.03125 \n",
+ "Q 12.9375 36.28125 12.9375 25.984375 \n",
+ "Q 12.9375 15.53125 16.9375 10.796875 \n",
+ "Q 20.953125 6.0625 27.390625 6.0625 \n",
+ "Q 32.5625 6.0625 36.03125 9.234375 \n",
+ "Q 39.5 12.40625 40.4375 19 \n",
+ "\" id=\"ArialMT-63\"/>\n",
+ " <path d=\"M 40.4375 6.390625 \n",
+ "Q 35.546875 2.25 31.03125 0.53125 \n",
+ "Q 26.515625 -1.171875 21.34375 -1.171875 \n",
+ "Q 12.796875 -1.171875 8.203125 3 \n",
+ "Q 3.609375 7.171875 3.609375 13.671875 \n",
+ "Q 3.609375 17.484375 5.34375 20.625 \n",
+ "Q 7.078125 23.78125 9.890625 25.6875 \n",
+ "Q 12.703125 27.59375 16.21875 28.5625 \n",
+ "Q 18.796875 29.25 24.03125 29.890625 \n",
+ "Q 34.671875 31.15625 39.703125 32.90625 \n",
+ "Q 39.75 34.71875 39.75 35.203125 \n",
+ "Q 39.75 40.578125 37.25 42.78125 \n",
+ "Q 33.890625 45.75 27.25 45.75 \n",
+ "Q 21.046875 45.75 18.09375 43.578125 \n",
+ "Q 15.140625 41.40625 13.71875 35.890625 \n",
+ "L 5.125 37.0625 \n",
+ "Q 6.296875 42.578125 8.984375 45.96875 \n",
+ "Q 11.671875 49.359375 16.75 51.1875 \n",
+ "Q 21.828125 53.03125 28.515625 53.03125 \n",
+ "Q 35.15625 53.03125 39.296875 51.46875 \n",
+ "Q 43.453125 49.90625 45.40625 47.53125 \n",
+ "Q 47.359375 45.171875 48.140625 41.546875 \n",
+ "Q 48.578125 39.3125 48.578125 33.453125 \n",
+ "L 48.578125 21.734375 \n",
+ "Q 48.578125 9.46875 49.140625 6.21875 \n",
+ "Q 49.703125 2.984375 51.375 0 \n",
+ "L 42.1875 0 \n",
+ "Q 40.828125 2.734375 40.4375 6.390625 \n",
+ "M 39.703125 26.03125 \n",
+ "Q 34.90625 24.078125 25.34375 22.703125 \n",
+ "Q 19.921875 21.921875 17.671875 20.9375 \n",
+ "Q 15.4375 19.96875 14.203125 18.09375 \n",
+ "Q 12.984375 16.21875 12.984375 13.921875 \n",
+ "Q 12.984375 10.40625 15.640625 8.0625 \n",
+ "Q 18.3125 5.71875 23.4375 5.71875 \n",
+ "Q 28.515625 5.71875 32.46875 7.9375 \n",
+ "Q 36.421875 10.15625 38.28125 14.015625 \n",
+ "Q 39.703125 17 39.703125 22.796875 \n",
+ "z\n",
+ "\" id=\"ArialMT-61\"/>\n",
+ " <path d=\"M 25.78125 7.859375 \n",
+ "L 27.046875 0.09375 \n",
+ "Q 23.34375 -0.6875 20.40625 -0.6875 \n",
+ "Q 15.625 -0.6875 12.984375 0.828125 \n",
+ "Q 10.359375 2.34375 9.28125 4.8125 \n",
+ "Q 8.203125 7.28125 8.203125 15.1875 \n",
+ "L 8.203125 45.015625 \n",
+ "L 1.765625 45.015625 \n",
+ "L 1.765625 51.859375 \n",
+ "L 8.203125 51.859375 \n",
+ "L 8.203125 64.703125 \n",
+ "L 16.9375 69.96875 \n",
+ "L 16.9375 51.859375 \n",
+ "L 25.78125 51.859375 \n",
+ "L 25.78125 45.015625 \n",
+ "L 16.9375 45.015625 \n",
+ "L 16.9375 14.703125 \n",
+ "Q 16.9375 10.9375 17.40625 9.859375 \n",
+ "Q 17.875 8.796875 18.921875 8.15625 \n",
+ "Q 19.96875 7.515625 21.921875 7.515625 \n",
+ "Q 23.390625 7.515625 25.78125 7.859375 \n",
+ "\" id=\"ArialMT-74\"/>\n",
+ " <path d=\"M 6.640625 61.46875 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 61.46875 \n",
+ "z\n",
+ "M 6.640625 0 \n",
+ "L 6.640625 51.859375 \n",
+ "L 15.4375 51.859375 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-69\"/>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.5 51.859375 \n",
+ "L 14.5 44.484375 \n",
+ "Q 20.21875 53.03125 31 53.03125 \n",
+ "Q 35.6875 53.03125 39.625 51.34375 \n",
+ "Q 43.5625 49.65625 45.515625 46.921875 \n",
+ "Q 47.46875 44.1875 48.25 40.4375 \n",
+ "Q 48.734375 37.984375 48.734375 31.890625 \n",
+ "L 48.734375 0 \n",
+ "L 39.9375 0 \n",
+ "L 39.9375 31.546875 \n",
+ "Q 39.9375 36.921875 38.90625 39.578125 \n",
+ "Q 37.890625 42.234375 35.28125 43.8125 \n",
+ "Q 32.671875 45.40625 29.15625 45.40625 \n",
+ "Q 23.53125 45.40625 19.453125 41.84375 \n",
+ "Q 15.375 38.28125 15.375 28.328125 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6e\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(200.222188 122.091875)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"88.916016\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"144.53125\" xlink:href=\"#ArialMT-66\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"227.929688\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"261.230469\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"294.53125\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"350.146484\" xlink:href=\"#ArialMT-64\"/>\n",
+ " <use x=\"405.761719\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"433.544922\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"455.761719\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"511.376953\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"561.376953\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"616.992188\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"644.775391\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"666.992188\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"722.607422\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_2\">\n",
+ " <g id=\"ytick_1\">\n",
+ " <g id=\"line2d_19\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 47.720781 93.938906 \n",
+ "L 438.320781 93.938906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_20\"/>\n",
+ " <g id=\"text_11\">\n",
+ " <!-- 0.0 -->\n",
+ " <defs>\n",
+ " <path d=\"M 9.078125 0 \n",
+ "L 9.078125 10.015625 \n",
+ "L 19.09375 10.015625 \n",
+ "L 19.09375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-2e\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(26.820781 97.517813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-2e\"/>\n",
+ " <use x=\"83.398438\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_2\">\n",
+ " <g id=\"line2d_21\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 47.720781 73.148906 \n",
+ "L 438.320781 73.148906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_22\"/>\n",
+ " <g id=\"text_12\">\n",
+ " <!-- 2.5 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.15625 18.75 \n",
+ "L 13.375 19.53125 \n",
+ "Q 14.40625 12.796875 18.140625 9.390625 \n",
+ "Q 21.875 6 27.15625 6 \n",
+ "Q 33.5 6 37.890625 10.78125 \n",
+ "Q 42.28125 15.578125 42.28125 23.484375 \n",
+ "Q 42.28125 31 38.0625 35.34375 \n",
+ "Q 33.84375 39.703125 27 39.703125 \n",
+ "Q 22.75 39.703125 19.328125 37.765625 \n",
+ "Q 15.921875 35.84375 13.96875 32.765625 \n",
+ "L 5.71875 33.84375 \n",
+ "L 12.640625 70.609375 \n",
+ "L 48.25 70.609375 \n",
+ "L 48.25 62.203125 \n",
+ "L 19.671875 62.203125 \n",
+ "L 15.828125 42.96875 \n",
+ "Q 22.265625 47.46875 29.34375 47.46875 \n",
+ "Q 38.71875 47.46875 45.15625 40.96875 \n",
+ "Q 51.609375 34.46875 51.609375 24.265625 \n",
+ "Q 51.609375 14.546875 45.953125 7.46875 \n",
+ "Q 39.0625 -1.21875 27.15625 -1.21875 \n",
+ "Q 17.390625 -1.21875 11.203125 4.25 \n",
+ "Q 5.03125 9.71875 4.15625 18.75 \n",
+ "\" id=\"ArialMT-35\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(26.820781 76.727813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-2e\"/>\n",
+ " <use x=\"83.398438\" xlink:href=\"#ArialMT-35\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_3\">\n",
+ " <g id=\"line2d_23\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 47.720781 52.358906 \n",
+ "L 438.320781 52.358906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_24\"/>\n",
+ " <g id=\"text_13\">\n",
+ " <!-- 5.0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(26.820781 55.937813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-35\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-2e\"/>\n",
+ " <use x=\"83.398438\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_4\">\n",
+ " <g id=\"line2d_25\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 47.720781 31.568906 \n",
+ "L 438.320781 31.568906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_26\"/>\n",
+ " <g id=\"text_14\">\n",
+ " <!-- 7.5 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.734375 62.203125 \n",
+ "L 4.734375 70.65625 \n",
+ "L 51.078125 70.65625 \n",
+ "L 51.078125 63.8125 \n",
+ "Q 44.234375 56.546875 37.515625 44.484375 \n",
+ "Q 30.8125 32.421875 27.15625 19.671875 \n",
+ "Q 24.515625 10.6875 23.78125 0 \n",
+ "L 14.75 0 \n",
+ "Q 14.890625 8.453125 18.0625 20.40625 \n",
+ "Q 21.234375 32.375 27.171875 43.484375 \n",
+ "Q 33.109375 54.59375 39.796875 62.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-37\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(26.820781 35.147813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-37\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-2e\"/>\n",
+ " <use x=\"83.398438\" xlink:href=\"#ArialMT-35\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_5\">\n",
+ " <g id=\"line2d_27\">\n",
+ " <path clip-path=\"url(#p0815fe872f)\" d=\"M 47.720781 10.778906 \n",
+ "L 438.320781 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_28\"/>\n",
+ " <g id=\"text_15\">\n",
+ " <!-- 10.0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(21.259844 14.357813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " <use x=\"111.230469\" xlink:href=\"#ArialMT-2e\"/>\n",
+ " <use x=\"139.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_16\">\n",
+ " <!-- spike count -->\n",
+ " <defs>\n",
+ " <path d=\"M 3.078125 15.484375 \n",
+ "L 11.765625 16.84375 \n",
+ "Q 12.5 11.625 15.84375 8.84375 \n",
+ "Q 19.1875 6.0625 25.203125 6.0625 \n",
+ "Q 31.25 6.0625 34.171875 8.515625 \n",
+ "Q 37.109375 10.984375 37.109375 14.3125 \n",
+ "Q 37.109375 17.28125 34.515625 19 \n",
+ "Q 32.71875 20.171875 25.53125 21.96875 \n",
+ "Q 15.875 24.421875 12.140625 26.203125 \n",
+ "Q 8.40625 27.984375 6.46875 31.125 \n",
+ "Q 4.546875 34.28125 4.546875 38.09375 \n",
+ "Q 4.546875 41.546875 6.125 44.5 \n",
+ "Q 7.71875 47.46875 10.453125 49.421875 \n",
+ "Q 12.5 50.921875 16.03125 51.96875 \n",
+ "Q 19.578125 53.03125 23.640625 53.03125 \n",
+ "Q 29.734375 53.03125 34.34375 51.265625 \n",
+ "Q 38.96875 49.515625 41.15625 46.5 \n",
+ "Q 43.359375 43.5 44.1875 38.484375 \n",
+ "L 35.59375 37.3125 \n",
+ "Q 35.015625 41.3125 32.203125 43.546875 \n",
+ "Q 29.390625 45.796875 24.265625 45.796875 \n",
+ "Q 18.21875 45.796875 15.625 43.796875 \n",
+ "Q 13.03125 41.796875 13.03125 39.109375 \n",
+ "Q 13.03125 37.40625 14.109375 36.03125 \n",
+ "Q 15.1875 34.625 17.484375 33.6875 \n",
+ "Q 18.796875 33.203125 25.25 31.453125 \n",
+ "Q 34.578125 28.953125 38.25 27.359375 \n",
+ "Q 41.9375 25.78125 44.03125 22.75 \n",
+ "Q 46.140625 19.734375 46.140625 15.234375 \n",
+ "Q 46.140625 10.84375 43.578125 6.953125 \n",
+ "Q 41.015625 3.078125 36.171875 0.953125 \n",
+ "Q 31.34375 -1.171875 25.25 -1.171875 \n",
+ "Q 15.140625 -1.171875 9.84375 3.03125 \n",
+ "Q 4.546875 7.234375 3.078125 15.484375 \n",
+ "\" id=\"ArialMT-73\"/>\n",
+ " <path d=\"M 6.640625 0 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 30.765625 \n",
+ "L 36.234375 51.859375 \n",
+ "L 47.609375 51.859375 \n",
+ "L 27.78125 32.625 \n",
+ "L 49.609375 0 \n",
+ "L 38.765625 0 \n",
+ "L 21.625 26.515625 \n",
+ "L 15.4375 20.5625 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6b\"/>\n",
+ " <path d=\"M 40.578125 0 \n",
+ "L 40.578125 7.625 \n",
+ "Q 34.515625 -1.171875 24.125 -1.171875 \n",
+ "Q 19.53125 -1.171875 15.546875 0.578125 \n",
+ "Q 11.578125 2.34375 9.640625 5 \n",
+ "Q 7.71875 7.671875 6.9375 11.53125 \n",
+ "Q 6.390625 14.109375 6.390625 19.734375 \n",
+ "L 6.390625 51.859375 \n",
+ "L 15.1875 51.859375 \n",
+ "L 15.1875 23.09375 \n",
+ "Q 15.1875 16.21875 15.71875 13.8125 \n",
+ "Q 16.546875 10.359375 19.234375 8.375 \n",
+ "Q 21.921875 6.390625 25.875 6.390625 \n",
+ "Q 29.828125 6.390625 33.296875 8.421875 \n",
+ "Q 36.765625 10.453125 38.203125 13.9375 \n",
+ "Q 39.65625 17.4375 39.65625 24.078125 \n",
+ "L 39.65625 51.859375 \n",
+ "L 48.4375 51.859375 \n",
+ "L 48.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-75\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(15.073594 80.179453)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"50\" xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"105.615234\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"127.832031\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"177.832031\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"233.447266\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"261.230469\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"311.230469\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"366.845703\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"422.460938\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"478.076172\" xlink:href=\"#ArialMT-74\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_29\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 4 \n",
+ "C 1.060812 4 2.078319 3.578535 2.828427 2.828427 \n",
+ "C 3.578535 2.078319 4 1.060812 4 0 \n",
+ "C 4 -1.060812 3.578535 -2.078319 2.828427 -2.828427 \n",
+ "C 2.078319 -3.578535 1.060812 -4 0 -4 \n",
+ "C -1.060812 -4 -2.078319 -3.578535 -2.828427 -2.828427 \n",
+ "C -3.578535 -2.078319 -4 -1.060812 -4 0 \n",
+ "C -4 1.060812 -3.578535 2.078319 -2.828427 2.828427 \n",
+ "C -2.078319 3.578535 -1.060812 4 0 4 \n",
+ "z\n",
+ "\" id=\"m1450a83354\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use style=\"fill:#0504aa;\" x=\"52.728474\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"72.759243\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"92.790012\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"112.820781\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"132.85155\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"152.88232\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"172.913089\" xlink:href=\"#m1450a83354\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"192.943858\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"212.974627\" xlink:href=\"#m1450a83354\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"233.005397\" xlink:href=\"#m1450a83354\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"253.036166\" xlink:href=\"#m1450a83354\" y=\"44.042906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"273.066935\" xlink:href=\"#m1450a83354\" y=\"68.990906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"293.097704\" xlink:href=\"#m1450a83354\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"313.128474\" xlink:href=\"#m1450a83354\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"333.159243\" xlink:href=\"#m1450a83354\" y=\"60.674906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"353.190012\" xlink:href=\"#m1450a83354\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"373.220781\" xlink:href=\"#m1450a83354\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"393.25155\" xlink:href=\"#m1450a83354\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"413.28232\" xlink:href=\"#m1450a83354\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"433.313089\" xlink:href=\"#m1450a83354\" y=\"93.938906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_30\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 2 \n",
+ "C 0.530406 2 1.03916 1.789267 1.414214 1.414214 \n",
+ "C 1.789267 1.03916 2 0.530406 2 0 \n",
+ "C 2 -0.530406 1.789267 -1.03916 1.414214 -1.414214 \n",
+ "C 1.03916 -1.789267 0.530406 -2 0 -2 \n",
+ "C -0.530406 -2 -1.03916 -1.789267 -1.414214 -1.414214 \n",
+ "C -1.789267 -1.03916 -2 -0.530406 -2 0 \n",
+ "C -2 0.530406 -1.789267 1.03916 -1.414214 1.414214 \n",
+ "C -1.03916 1.789267 -0.530406 2 0 2 \n",
+ "z\n",
+ "\" id=\"mcc64feb0d3\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"52.728474\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"72.759243\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"92.790012\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"112.820781\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"132.85155\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"152.88232\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"172.913089\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"192.943858\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"212.974627\" xlink:href=\"#mcc64feb0d3\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"233.005397\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"253.036166\" xlink:href=\"#mcc64feb0d3\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"273.066935\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"293.097704\" xlink:href=\"#mcc64feb0d3\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"313.128474\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"333.159243\" xlink:href=\"#mcc64feb0d3\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"353.190012\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"373.220781\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"393.25155\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"413.28232\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"433.313089\" xlink:href=\"#mcc64feb0d3\" y=\"93.938906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_31\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 2 \n",
+ "C 0.530406 2 1.03916 1.789267 1.414214 1.414214 \n",
+ "C 1.789267 1.03916 2 0.530406 2 0 \n",
+ "C 2 -0.530406 1.789267 -1.03916 1.414214 -1.414214 \n",
+ "C 1.03916 -1.789267 0.530406 -2 0 -2 \n",
+ "C -0.530406 -2 -1.03916 -1.789267 -1.414214 -1.414214 \n",
+ "C -1.789267 -1.03916 -2 -0.530406 -2 0 \n",
+ "C -2 0.530406 -1.789267 1.03916 -1.414214 1.414214 \n",
+ "C -1.03916 1.789267 -0.530406 2 0 2 \n",
+ "z\n",
+ "\" id=\"me135730355\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use style=\"fill:#cb416b;\" x=\"52.728474\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"72.759243\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"92.790012\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"112.820781\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"132.85155\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"152.88232\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"172.913089\" xlink:href=\"#me135730355\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"192.943858\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"212.974627\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"233.005397\" xlink:href=\"#me135730355\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"253.036166\" xlink:href=\"#me135730355\" y=\"52.358906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"273.066935\" xlink:href=\"#me135730355\" y=\"68.990906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"293.097704\" xlink:href=\"#me135730355\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"313.128474\" xlink:href=\"#me135730355\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"333.159243\" xlink:href=\"#me135730355\" y=\"68.990906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"353.190012\" xlink:href=\"#me135730355\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"373.220781\" xlink:href=\"#me135730355\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"393.25155\" xlink:href=\"#me135730355\" y=\"77.306906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"413.28232\" xlink:href=\"#me135730355\" y=\"85.622906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"433.313089\" xlink:href=\"#me135730355\" y=\"93.938906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_32\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 -6 \n",
+ "L -6 6 \n",
+ "L 6 6 \n",
+ "z\n",
+ "\" id=\"mcb2ae40e2b\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use x=\"291.845781\" xlink:href=\"#mcb2ae40e2b\" y=\"93.938906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"patch_3\">\n",
+ " <path d=\"M 47.720781 93.938906 \n",
+ "L 47.720781 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_4\">\n",
+ " <path d=\"M 438.320781 93.938906 \n",
+ "L 438.320781 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_5\">\n",
+ " <path d=\"M 47.720781 93.938906 \n",
+ "L 438.320781 93.938906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_6\">\n",
+ " <path d=\"M 47.720781 10.778906 \n",
+ "L 438.320781 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"legend_1\">\n",
+ " <g id=\"line2d_33\"/>\n",
+ " <g id=\"line2d_34\">\n",
+ " <g>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"461.120781\" xlink:href=\"#mcc64feb0d3\" y=\"25.799531\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_17\">\n",
+ " <!-- $\\mathbf{r}_\\mathrm{V}$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 49.03125 39.796875 \n",
+ "Q 46.734375 40.875 44.453125 41.375 \n",
+ "Q 42.1875 41.890625 39.890625 41.890625 \n",
+ "Q 33.15625 41.890625 29.515625 37.5625 \n",
+ "Q 25.875 33.25 25.875 25.203125 \n",
+ "L 25.875 0 \n",
+ "L 8.40625 0 \n",
+ "L 8.40625 54.6875 \n",
+ "L 25.875 54.6875 \n",
+ "L 25.875 45.703125 \n",
+ "Q 29.25 51.078125 33.609375 53.53125 \n",
+ "Q 37.984375 56 44.09375 56 \n",
+ "Q 44.96875 56 45.984375 55.921875 \n",
+ "Q 47.015625 55.859375 48.96875 55.609375 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Bold-72\"/>\n",
+ " <path d=\"M 28.609375 0 \n",
+ "L 0.78125 72.90625 \n",
+ "L 11.078125 72.90625 \n",
+ "L 34.1875 11.53125 \n",
+ "L 57.328125 72.90625 \n",
+ "L 67.578125 72.90625 \n",
+ "L 39.796875 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-56\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(482.720781 29.999531)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(50.273438 -16.40625)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_35\"/>\n",
+ " <g id=\"line2d_36\">\n",
+ " <g>\n",
+ " <use style=\"fill:#cb416b;\" x=\"461.120781\" xlink:href=\"#me135730355\" y=\"42.773906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_18\">\n",
+ " <!-- $\\mathbf{r}_\\mathrm{A}$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 34.1875 63.1875 \n",
+ "L 20.796875 26.90625 \n",
+ "L 47.609375 26.90625 \n",
+ "z\n",
+ "M 28.609375 72.90625 \n",
+ "L 39.796875 72.90625 \n",
+ "L 67.578125 0 \n",
+ "L 57.328125 0 \n",
+ "L 50.6875 18.703125 \n",
+ "L 17.828125 18.703125 \n",
+ "L 11.1875 0 \n",
+ "L 0.78125 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-41\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(482.720781 46.973906)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(50.273438 -16.40625)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_37\"/>\n",
+ " <g id=\"line2d_38\">\n",
+ " <g>\n",
+ " <use style=\"fill:#0504aa;\" x=\"461.120781\" xlink:href=\"#m1450a83354\" y=\"59.748281\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_19\">\n",
+ " <!-- $\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 46 62.703125 \n",
+ "L 46 35.5 \n",
+ "L 73.1875 35.5 \n",
+ "L 73.1875 27.203125 \n",
+ "L 46 27.203125 \n",
+ "L 46 0 \n",
+ "L 37.796875 0 \n",
+ "L 37.796875 27.203125 \n",
+ "L 10.59375 27.203125 \n",
+ "L 10.59375 35.5 \n",
+ "L 37.796875 35.5 \n",
+ "L 37.796875 62.703125 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-2b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(482.720781 63.948281)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.296875)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(50.273438 -16.109375)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(120.375977 0.296875)\" xlink:href=\"#DejaVuSans-2b\"/>\n",
+ " <use transform=\"translate(223.647461 0.296875)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(273.920898 -16.109375)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_39\"/>\n",
+ " <g id=\"line2d_40\">\n",
+ " <g>\n",
+ " <use x=\"461.120781\" xlink:href=\"#mcb2ae40e2b\" y=\"76.722656\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_20\">\n",
+ " <!-- true rattlesnake location -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(482.720781 80.922656)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"27.783203\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"61.083984\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"116.699219\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"200.097656\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"233.398438\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"289.013672\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"316.796875\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"344.580078\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"366.796875\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"422.412109\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"472.412109\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"528.027344\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"583.642578\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"633.642578\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"689.257812\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"717.041016\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"739.257812\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"794.873047\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"844.873047\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"900.488281\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"928.271484\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"950.488281\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"1006.103516\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <defs>\n",
+ " <clipPath id=\"p0815fe872f\">\n",
+ " <rect height=\"83.16\" width=\"390.6\" x=\"47.720781\" y=\"10.778906\"/>\n",
+ " </clipPath>\n",
+ " </defs>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x11a054358>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "spikes_and_inference(show_spike_count = True, show_likelihoods = False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Here are the decoded likelihoods for each population alone $(6)$, the joint likelihood $(9)$, and the likelihood for the summed population $(27)$. Note that the joint likelihood (gold) is less uncertain than either unimodal likelihood. Also note that it is identical to the likelihood for the summed population (blue)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
+ "<svg height=\"132pt\" version=\"1.1\" viewBox=\"0 0 595 132\" width=\"595pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ " <defs>\n",
+ " <style type=\"text/css\">\n",
+ "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
+ " </style>\n",
+ " </defs>\n",
+ " <g id=\"figure_1\">\n",
+ " <g id=\"patch_1\">\n",
+ " <path d=\"M 0 132.712344 \n",
+ "L 595.785625 132.712344 \n",
+ "L 595.785625 0 \n",
+ "L 0 0 \n",
+ "z\n",
+ "\" style=\"fill:#ffffff;\"/>\n",
+ " </g>\n",
+ " <g id=\"axes_1\">\n",
+ " <g id=\"patch_2\">\n",
+ " <path d=\"M 21.38875 95.307187 \n",
+ "L 411.98875 95.307187 \n",
+ "L 411.98875 12.147188 \n",
+ "L 21.38875 12.147188 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_1\">\n",
+ " <g id=\"xtick_1\">\n",
+ " <g id=\"line2d_1\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 21.38875 95.307187 \n",
+ "L 21.38875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_2\"/>\n",
+ " <g id=\"text_1\">\n",
+ " <!-- −40 -->\n",
+ " <defs>\n",
+ " <path d=\"M 52.828125 31.203125 \n",
+ "L 5.5625 31.203125 \n",
+ "L 5.5625 39.40625 \n",
+ "L 52.828125 39.40625 \n",
+ "z\n",
+ "\" id=\"ArialMT-2212\"/>\n",
+ " <path d=\"M 32.328125 0 \n",
+ "L 32.328125 17.140625 \n",
+ "L 1.265625 17.140625 \n",
+ "L 1.265625 25.203125 \n",
+ "L 33.9375 71.578125 \n",
+ "L 41.109375 71.578125 \n",
+ "L 41.109375 25.203125 \n",
+ "L 50.78125 25.203125 \n",
+ "L 50.78125 17.140625 \n",
+ "L 41.109375 17.140625 \n",
+ "L 41.109375 0 \n",
+ "z\n",
+ "M 32.328125 25.203125 \n",
+ "L 32.328125 57.46875 \n",
+ "L 9.90625 25.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-34\"/>\n",
+ " <path d=\"M 4.15625 35.296875 \n",
+ "Q 4.15625 48 6.765625 55.734375 \n",
+ "Q 9.375 63.484375 14.515625 67.671875 \n",
+ "Q 19.671875 71.875 27.484375 71.875 \n",
+ "Q 33.25 71.875 37.59375 69.546875 \n",
+ "Q 41.9375 67.234375 44.765625 62.859375 \n",
+ "Q 47.609375 58.5 49.21875 52.21875 \n",
+ "Q 50.828125 45.953125 50.828125 35.296875 \n",
+ "Q 50.828125 22.703125 48.234375 14.96875 \n",
+ "Q 45.65625 7.234375 40.5 3 \n",
+ "Q 35.359375 -1.21875 27.484375 -1.21875 \n",
+ "Q 17.140625 -1.21875 11.234375 6.203125 \n",
+ "Q 4.15625 15.140625 4.15625 35.296875 \n",
+ "M 13.1875 35.296875 \n",
+ "Q 13.1875 17.671875 17.3125 11.828125 \n",
+ "Q 21.4375 6 27.484375 6 \n",
+ "Q 33.546875 6 37.671875 11.859375 \n",
+ "Q 41.796875 17.71875 41.796875 35.296875 \n",
+ "Q 41.796875 52.984375 37.671875 58.78125 \n",
+ "Q 33.546875 64.59375 27.390625 64.59375 \n",
+ "Q 21.34375 64.59375 17.71875 59.46875 \n",
+ "Q 13.1875 52.9375 13.1875 35.296875 \n",
+ "\" id=\"ArialMT-30\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(12.9075 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_2\">\n",
+ " <g id=\"line2d_3\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 70.21375 95.307187 \n",
+ "L 70.21375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_4\"/>\n",
+ " <g id=\"text_2\">\n",
+ " <!-- −30 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.203125 18.890625 \n",
+ "L 12.984375 20.0625 \n",
+ "Q 14.5 12.59375 18.140625 9.296875 \n",
+ "Q 21.78125 6 27 6 \n",
+ "Q 33.203125 6 37.46875 10.296875 \n",
+ "Q 41.75 14.59375 41.75 20.953125 \n",
+ "Q 41.75 27 37.796875 30.921875 \n",
+ "Q 33.84375 34.859375 27.734375 34.859375 \n",
+ "Q 25.25 34.859375 21.53125 33.890625 \n",
+ "L 22.515625 41.609375 \n",
+ "Q 23.390625 41.5 23.921875 41.5 \n",
+ "Q 29.546875 41.5 34.03125 44.421875 \n",
+ "Q 38.53125 47.359375 38.53125 53.46875 \n",
+ "Q 38.53125 58.296875 35.25 61.46875 \n",
+ "Q 31.984375 64.65625 26.8125 64.65625 \n",
+ "Q 21.6875 64.65625 18.265625 61.421875 \n",
+ "Q 14.84375 58.203125 13.875 51.765625 \n",
+ "L 5.078125 53.328125 \n",
+ "Q 6.6875 62.15625 12.390625 67.015625 \n",
+ "Q 18.109375 71.875 26.609375 71.875 \n",
+ "Q 32.46875 71.875 37.390625 69.359375 \n",
+ "Q 42.328125 66.84375 44.9375 62.5 \n",
+ "Q 47.5625 58.15625 47.5625 53.265625 \n",
+ "Q 47.5625 48.640625 45.0625 44.828125 \n",
+ "Q 42.578125 41.015625 37.703125 38.765625 \n",
+ "Q 44.046875 37.3125 47.5625 32.6875 \n",
+ "Q 51.078125 28.078125 51.078125 21.140625 \n",
+ "Q 51.078125 11.765625 44.234375 5.25 \n",
+ "Q 37.40625 -1.265625 26.953125 -1.265625 \n",
+ "Q 17.53125 -1.265625 11.296875 4.34375 \n",
+ "Q 5.078125 9.96875 4.203125 18.890625 \n",
+ "\" id=\"ArialMT-33\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(61.7325 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_3\">\n",
+ " <g id=\"line2d_5\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 119.03875 95.307187 \n",
+ "L 119.03875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_6\"/>\n",
+ " <g id=\"text_3\">\n",
+ " <!-- −20 -->\n",
+ " <defs>\n",
+ " <path d=\"M 50.34375 8.453125 \n",
+ "L 50.34375 0 \n",
+ "L 3.03125 0 \n",
+ "Q 2.9375 3.171875 4.046875 6.109375 \n",
+ "Q 5.859375 10.9375 9.828125 15.625 \n",
+ "Q 13.8125 20.3125 21.34375 26.46875 \n",
+ "Q 33.015625 36.03125 37.109375 41.625 \n",
+ "Q 41.21875 47.21875 41.21875 52.203125 \n",
+ "Q 41.21875 57.421875 37.46875 61 \n",
+ "Q 33.734375 64.59375 27.734375 64.59375 \n",
+ "Q 21.390625 64.59375 17.578125 60.78125 \n",
+ "Q 13.765625 56.984375 13.71875 50.25 \n",
+ "L 4.6875 51.171875 \n",
+ "Q 5.609375 61.28125 11.65625 66.578125 \n",
+ "Q 17.71875 71.875 27.9375 71.875 \n",
+ "Q 38.234375 71.875 44.234375 66.15625 \n",
+ "Q 50.25 60.453125 50.25 52 \n",
+ "Q 50.25 47.703125 48.484375 43.546875 \n",
+ "Q 46.734375 39.40625 42.65625 34.8125 \n",
+ "Q 38.578125 30.21875 29.109375 22.21875 \n",
+ "Q 21.1875 15.578125 18.9375 13.203125 \n",
+ "Q 16.703125 10.84375 15.234375 8.453125 \n",
+ "z\n",
+ "\" id=\"ArialMT-32\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(110.5575 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_4\">\n",
+ " <g id=\"line2d_7\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 167.86375 95.307187 \n",
+ "L 167.86375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_8\"/>\n",
+ " <g id=\"text_4\">\n",
+ " <!-- −10 -->\n",
+ " <defs>\n",
+ " <path d=\"M 37.25 0 \n",
+ "L 28.46875 0 \n",
+ "L 28.46875 56 \n",
+ "Q 25.296875 52.984375 20.140625 49.953125 \n",
+ "Q 14.984375 46.921875 10.890625 45.40625 \n",
+ "L 10.890625 53.90625 \n",
+ "Q 18.265625 57.375 23.78125 62.296875 \n",
+ "Q 29.296875 67.234375 31.59375 71.875 \n",
+ "L 37.25 71.875 \n",
+ "z\n",
+ "\" id=\"ArialMT-31\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(159.3825 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_5\">\n",
+ " <g id=\"line2d_9\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 216.68875 95.307187 \n",
+ "L 216.68875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_10\"/>\n",
+ " <g id=\"text_5\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(213.908281 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_6\">\n",
+ " <g id=\"line2d_11\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 265.51375 95.307187 \n",
+ "L 265.51375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_12\"/>\n",
+ " <g id=\"text_6\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(259.952812 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_7\">\n",
+ " <g id=\"line2d_13\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 314.33875 95.307187 \n",
+ "L 314.33875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_14\"/>\n",
+ " <g id=\"text_7\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(308.777812 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_8\">\n",
+ " <g id=\"line2d_15\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 363.16375 95.307187 \n",
+ "L 363.16375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_16\"/>\n",
+ " <g id=\"text_8\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(357.602813 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_9\">\n",
+ " <g id=\"line2d_17\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 411.98875 95.307187 \n",
+ "L 411.98875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_18\"/>\n",
+ " <g id=\"text_9\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(406.427813 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_10\">\n",
+ " <!-- location $s$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.390625 0 \n",
+ "L 6.390625 71.578125 \n",
+ "L 15.1875 71.578125 \n",
+ "L 15.1875 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6c\"/>\n",
+ " <path d=\"M 3.328125 25.921875 \n",
+ "Q 3.328125 40.328125 11.328125 47.265625 \n",
+ "Q 18.015625 53.03125 27.640625 53.03125 \n",
+ "Q 38.328125 53.03125 45.109375 46.015625 \n",
+ "Q 51.90625 39.015625 51.90625 26.65625 \n",
+ "Q 51.90625 16.65625 48.90625 10.90625 \n",
+ "Q 45.90625 5.171875 40.15625 2 \n",
+ "Q 34.421875 -1.171875 27.640625 -1.171875 \n",
+ "Q 16.75 -1.171875 10.03125 5.8125 \n",
+ "Q 3.328125 12.796875 3.328125 25.921875 \n",
+ "M 12.359375 25.921875 \n",
+ "Q 12.359375 15.96875 16.703125 11.015625 \n",
+ "Q 21.046875 6.0625 27.640625 6.0625 \n",
+ "Q 34.1875 6.0625 38.53125 11.03125 \n",
+ "Q 42.875 16.015625 42.875 26.21875 \n",
+ "Q 42.875 35.84375 38.5 40.796875 \n",
+ "Q 34.125 45.75 27.640625 45.75 \n",
+ "Q 21.046875 45.75 16.703125 40.8125 \n",
+ "Q 12.359375 35.890625 12.359375 25.921875 \n",
+ "\" id=\"ArialMT-6f\"/>\n",
+ " <path d=\"M 40.4375 19 \n",
+ "L 49.078125 17.875 \n",
+ "Q 47.65625 8.9375 41.8125 3.875 \n",
+ "Q 35.984375 -1.171875 27.484375 -1.171875 \n",
+ "Q 16.84375 -1.171875 10.375 5.78125 \n",
+ "Q 3.90625 12.75 3.90625 25.734375 \n",
+ "Q 3.90625 34.125 6.6875 40.421875 \n",
+ "Q 9.46875 46.734375 15.15625 49.875 \n",
+ "Q 20.84375 53.03125 27.546875 53.03125 \n",
+ "Q 35.984375 53.03125 41.359375 48.75 \n",
+ "Q 46.734375 44.484375 48.25 36.625 \n",
+ "L 39.703125 35.296875 \n",
+ "Q 38.484375 40.53125 35.375 43.15625 \n",
+ "Q 32.28125 45.796875 27.875 45.796875 \n",
+ "Q 21.234375 45.796875 17.078125 41.03125 \n",
+ "Q 12.9375 36.28125 12.9375 25.984375 \n",
+ "Q 12.9375 15.53125 16.9375 10.796875 \n",
+ "Q 20.953125 6.0625 27.390625 6.0625 \n",
+ "Q 32.5625 6.0625 36.03125 9.234375 \n",
+ "Q 39.5 12.40625 40.4375 19 \n",
+ "\" id=\"ArialMT-63\"/>\n",
+ " <path d=\"M 40.4375 6.390625 \n",
+ "Q 35.546875 2.25 31.03125 0.53125 \n",
+ "Q 26.515625 -1.171875 21.34375 -1.171875 \n",
+ "Q 12.796875 -1.171875 8.203125 3 \n",
+ "Q 3.609375 7.171875 3.609375 13.671875 \n",
+ "Q 3.609375 17.484375 5.34375 20.625 \n",
+ "Q 7.078125 23.78125 9.890625 25.6875 \n",
+ "Q 12.703125 27.59375 16.21875 28.5625 \n",
+ "Q 18.796875 29.25 24.03125 29.890625 \n",
+ "Q 34.671875 31.15625 39.703125 32.90625 \n",
+ "Q 39.75 34.71875 39.75 35.203125 \n",
+ "Q 39.75 40.578125 37.25 42.78125 \n",
+ "Q 33.890625 45.75 27.25 45.75 \n",
+ "Q 21.046875 45.75 18.09375 43.578125 \n",
+ "Q 15.140625 41.40625 13.71875 35.890625 \n",
+ "L 5.125 37.0625 \n",
+ "Q 6.296875 42.578125 8.984375 45.96875 \n",
+ "Q 11.671875 49.359375 16.75 51.1875 \n",
+ "Q 21.828125 53.03125 28.515625 53.03125 \n",
+ "Q 35.15625 53.03125 39.296875 51.46875 \n",
+ "Q 43.453125 49.90625 45.40625 47.53125 \n",
+ "Q 47.359375 45.171875 48.140625 41.546875 \n",
+ "Q 48.578125 39.3125 48.578125 33.453125 \n",
+ "L 48.578125 21.734375 \n",
+ "Q 48.578125 9.46875 49.140625 6.21875 \n",
+ "Q 49.703125 2.984375 51.375 0 \n",
+ "L 42.1875 0 \n",
+ "Q 40.828125 2.734375 40.4375 6.390625 \n",
+ "M 39.703125 26.03125 \n",
+ "Q 34.90625 24.078125 25.34375 22.703125 \n",
+ "Q 19.921875 21.921875 17.671875 20.9375 \n",
+ "Q 15.4375 19.96875 14.203125 18.09375 \n",
+ "Q 12.984375 16.21875 12.984375 13.921875 \n",
+ "Q 12.984375 10.40625 15.640625 8.0625 \n",
+ "Q 18.3125 5.71875 23.4375 5.71875 \n",
+ "Q 28.515625 5.71875 32.46875 7.9375 \n",
+ "Q 36.421875 10.15625 38.28125 14.015625 \n",
+ "Q 39.703125 17 39.703125 22.796875 \n",
+ "z\n",
+ "\" id=\"ArialMT-61\"/>\n",
+ " <path d=\"M 25.78125 7.859375 \n",
+ "L 27.046875 0.09375 \n",
+ "Q 23.34375 -0.6875 20.40625 -0.6875 \n",
+ "Q 15.625 -0.6875 12.984375 0.828125 \n",
+ "Q 10.359375 2.34375 9.28125 4.8125 \n",
+ "Q 8.203125 7.28125 8.203125 15.1875 \n",
+ "L 8.203125 45.015625 \n",
+ "L 1.765625 45.015625 \n",
+ "L 1.765625 51.859375 \n",
+ "L 8.203125 51.859375 \n",
+ "L 8.203125 64.703125 \n",
+ "L 16.9375 69.96875 \n",
+ "L 16.9375 51.859375 \n",
+ "L 25.78125 51.859375 \n",
+ "L 25.78125 45.015625 \n",
+ "L 16.9375 45.015625 \n",
+ "L 16.9375 14.703125 \n",
+ "Q 16.9375 10.9375 17.40625 9.859375 \n",
+ "Q 17.875 8.796875 18.921875 8.15625 \n",
+ "Q 19.96875 7.515625 21.921875 7.515625 \n",
+ "Q 23.390625 7.515625 25.78125 7.859375 \n",
+ "\" id=\"ArialMT-74\"/>\n",
+ " <path d=\"M 6.640625 61.46875 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 61.46875 \n",
+ "z\n",
+ "M 6.640625 0 \n",
+ "L 6.640625 51.859375 \n",
+ "L 15.4375 51.859375 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-69\"/>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.5 51.859375 \n",
+ "L 14.5 44.484375 \n",
+ "Q 20.21875 53.03125 31 53.03125 \n",
+ "Q 35.6875 53.03125 39.625 51.34375 \n",
+ "Q 43.5625 49.65625 45.515625 46.921875 \n",
+ "Q 47.46875 44.1875 48.25 40.4375 \n",
+ "Q 48.734375 37.984375 48.734375 31.890625 \n",
+ "L 48.734375 0 \n",
+ "L 39.9375 0 \n",
+ "L 39.9375 31.546875 \n",
+ "Q 39.9375 36.921875 38.90625 39.578125 \n",
+ "Q 37.890625 42.234375 35.28125 43.8125 \n",
+ "Q 32.671875 45.40625 29.15625 45.40625 \n",
+ "Q 23.53125 45.40625 19.453125 41.84375 \n",
+ "Q 15.375 38.28125 15.375 28.328125 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6e\"/>\n",
+ " <path id=\"ArialMT-20\"/>\n",
+ " <path d=\"M 50 53.078125 \n",
+ "L 48.296875 44.578125 \n",
+ "Q 44.734375 46.53125 40.765625 47.5 \n",
+ "Q 36.8125 48.484375 32.625 48.484375 \n",
+ "Q 25.53125 48.484375 21.453125 46.0625 \n",
+ "Q 17.390625 43.65625 17.390625 39.5 \n",
+ "Q 17.390625 34.671875 26.859375 32.078125 \n",
+ "Q 27.59375 31.890625 27.9375 31.78125 \n",
+ "L 30.8125 30.90625 \n",
+ "Q 39.796875 28.421875 42.796875 25.6875 \n",
+ "Q 45.796875 22.953125 45.796875 18.21875 \n",
+ "Q 45.796875 9.515625 38.890625 4.046875 \n",
+ "Q 31.984375 -1.421875 20.796875 -1.421875 \n",
+ "Q 16.453125 -1.421875 11.671875 -0.578125 \n",
+ "Q 6.890625 0.25 1.125 2 \n",
+ "L 2.875 11.28125 \n",
+ "Q 7.8125 8.734375 12.59375 7.421875 \n",
+ "Q 17.390625 6.109375 21.78125 6.109375 \n",
+ "Q 28.375 6.109375 32.5 8.9375 \n",
+ "Q 36.625 11.765625 36.625 16.109375 \n",
+ "Q 36.625 20.796875 25.78125 23.6875 \n",
+ "L 24.859375 23.921875 \n",
+ "L 21.78125 24.703125 \n",
+ "Q 14.9375 26.515625 11.765625 29.46875 \n",
+ "Q 8.59375 32.421875 8.59375 37.015625 \n",
+ "Q 8.59375 45.75 15.15625 50.875 \n",
+ "Q 21.734375 56 33.015625 56 \n",
+ "Q 37.453125 56 41.671875 55.265625 \n",
+ "Q 45.90625 54.546875 50 53.078125 \n",
+ "\" id=\"DejaVuSans-Oblique-73\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(193.31375 123.326094)scale(0.11 -0.11)\">\n",
+ " <use transform=\"translate(0 0.421875)\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use transform=\"translate(22.216797 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(77.832031 0.421875)\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use transform=\"translate(127.832031 0.421875)\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use transform=\"translate(183.447266 0.421875)\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use transform=\"translate(211.230469 0.421875)\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use transform=\"translate(233.447266 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(289.0625 0.421875)\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use transform=\"translate(344.677734 0.421875)\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use transform=\"translate(372.460938 0.421875)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_2\">\n",
+ " <g id=\"text_11\">\n",
+ " <!-- probability -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.59375 -19.875 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.59375 51.859375 \n",
+ "L 14.59375 45.125 \n",
+ "Q 17.4375 49.078125 21 51.046875 \n",
+ "Q 24.5625 53.03125 29.640625 53.03125 \n",
+ "Q 36.28125 53.03125 41.359375 49.609375 \n",
+ "Q 46.4375 46.1875 49.015625 39.953125 \n",
+ "Q 51.609375 33.734375 51.609375 26.3125 \n",
+ "Q 51.609375 18.359375 48.75 11.984375 \n",
+ "Q 45.90625 5.609375 40.453125 2.21875 \n",
+ "Q 35.015625 -1.171875 29 -1.171875 \n",
+ "Q 24.609375 -1.171875 21.109375 0.6875 \n",
+ "Q 17.625 2.546875 15.375 5.375 \n",
+ "L 15.375 -19.875 \n",
+ "z\n",
+ "M 14.546875 25.640625 \n",
+ "Q 14.546875 15.625 18.59375 10.84375 \n",
+ "Q 22.65625 6.0625 28.421875 6.0625 \n",
+ "Q 34.28125 6.0625 38.453125 11.015625 \n",
+ "Q 42.625 15.96875 42.625 26.375 \n",
+ "Q 42.625 36.28125 38.546875 41.203125 \n",
+ "Q 34.46875 46.140625 28.8125 46.140625 \n",
+ "Q 23.1875 46.140625 18.859375 40.890625 \n",
+ "Q 14.546875 35.640625 14.546875 25.640625 \n",
+ "\" id=\"ArialMT-70\"/>\n",
+ " <path d=\"M 6.5 0 \n",
+ "L 6.5 51.859375 \n",
+ "L 14.40625 51.859375 \n",
+ "L 14.40625 44 \n",
+ "Q 17.4375 49.515625 20 51.265625 \n",
+ "Q 22.5625 53.03125 25.640625 53.03125 \n",
+ "Q 30.078125 53.03125 34.671875 50.203125 \n",
+ "L 31.640625 42.046875 \n",
+ "Q 28.421875 43.953125 25.203125 43.953125 \n",
+ "Q 22.3125 43.953125 20.015625 42.21875 \n",
+ "Q 17.71875 40.484375 16.75 37.40625 \n",
+ "Q 15.28125 32.71875 15.28125 27.15625 \n",
+ "L 15.28125 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-72\"/>\n",
+ " <path d=\"M 14.703125 0 \n",
+ "L 6.546875 0 \n",
+ "L 6.546875 71.578125 \n",
+ "L 15.328125 71.578125 \n",
+ "L 15.328125 46.046875 \n",
+ "Q 20.90625 53.03125 29.546875 53.03125 \n",
+ "Q 34.328125 53.03125 38.59375 51.09375 \n",
+ "Q 42.875 49.171875 45.625 45.671875 \n",
+ "Q 48.390625 42.1875 49.953125 37.25 \n",
+ "Q 51.515625 32.328125 51.515625 26.703125 \n",
+ "Q 51.515625 13.375 44.921875 6.09375 \n",
+ "Q 38.328125 -1.171875 29.109375 -1.171875 \n",
+ "Q 19.921875 -1.171875 14.703125 6.5 \n",
+ "z\n",
+ "M 14.59375 26.3125 \n",
+ "Q 14.59375 17 17.140625 12.84375 \n",
+ "Q 21.296875 6.0625 28.375 6.0625 \n",
+ "Q 34.125 6.0625 38.328125 11.0625 \n",
+ "Q 42.53125 16.0625 42.53125 25.984375 \n",
+ "Q 42.53125 36.140625 38.5 40.96875 \n",
+ "Q 34.46875 45.796875 28.765625 45.796875 \n",
+ "Q 23 45.796875 18.796875 40.796875 \n",
+ "Q 14.59375 35.796875 14.59375 26.3125 \n",
+ "\" id=\"ArialMT-62\"/>\n",
+ " <path d=\"M 6.203125 -19.96875 \n",
+ "L 5.21875 -11.71875 \n",
+ "Q 8.109375 -12.5 10.25 -12.5 \n",
+ "Q 13.1875 -12.5 14.9375 -11.515625 \n",
+ "Q 16.703125 -10.546875 17.828125 -8.796875 \n",
+ "Q 18.65625 -7.46875 20.515625 -2.25 \n",
+ "Q 20.75 -1.515625 21.296875 -0.09375 \n",
+ "L 1.609375 51.859375 \n",
+ "L 11.078125 51.859375 \n",
+ "L 21.875 21.828125 \n",
+ "Q 23.96875 16.109375 25.640625 9.8125 \n",
+ "Q 27.15625 15.875 29.25 21.625 \n",
+ "L 40.328125 51.859375 \n",
+ "L 49.125 51.859375 \n",
+ "L 29.390625 -0.875 \n",
+ "Q 26.21875 -9.421875 24.46875 -12.640625 \n",
+ "Q 22.125 -17 19.09375 -19.015625 \n",
+ "Q 16.0625 -21.046875 11.859375 -21.046875 \n",
+ "Q 9.328125 -21.046875 6.203125 -19.96875 \n",
+ "\" id=\"ArialMT-79\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(15.073594 78.795156)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"88.916016\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"144.53125\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"200.146484\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"255.761719\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"311.376953\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"333.59375\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"355.810547\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"378.027344\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"405.810547\" xlink:href=\"#ArialMT-79\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_19\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 21.38875 91.527187 \n",
+ "L 237.865858 91.458382 \n",
+ "L 241.003208 91.30495 \n",
+ "L 244.140557 90.882438 \n",
+ "L 245.709232 90.47233 \n",
+ "L 247.277907 89.847064 \n",
+ "L 248.846581 88.922036 \n",
+ "L 250.415256 87.594686 \n",
+ "L 251.983931 85.748236 \n",
+ "L 253.552605 83.2597 \n",
+ "L 255.12128 80.01276 \n",
+ "L 256.689955 75.915301 \n",
+ "L 258.25863 70.920284 \n",
+ "L 259.827304 65.047408 \n",
+ "L 261.395979 58.401853 \n",
+ "L 267.670678 29.499333 \n",
+ "L 269.239352 23.676525 \n",
+ "L 270.808027 19.272553 \n",
+ "L 272.376702 16.620325 \n",
+ "L 273.945377 15.927187 \n",
+ "L 275.514051 17.24815 \n",
+ "L 277.082726 20.47867 \n",
+ "L 278.651401 25.36832 \n",
+ "L 280.220075 31.55286 \n",
+ "L 283.357425 46.054263 \n",
+ "L 286.494774 60.558876 \n",
+ "L 288.063449 66.979178 \n",
+ "L 289.632123 72.583727 \n",
+ "L 291.200798 77.29582 \n",
+ "L 292.769473 81.118925 \n",
+ "L 294.338148 84.116575 \n",
+ "L 295.906822 86.390605 \n",
+ "L 297.475497 88.061106 \n",
+ "L 299.044172 89.250269 \n",
+ "L 300.612846 90.071056 \n",
+ "L 302.181521 90.620625 \n",
+ "L 303.750196 90.977723 \n",
+ "L 306.887545 91.340955 \n",
+ "L 311.593569 91.49714 \n",
+ "L 325.711642 91.527158 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_20\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 21.38875 91.527187 \n",
+ "L 164.138148 91.430255 \n",
+ "L 173.550196 91.195522 \n",
+ "L 179.824895 90.833777 \n",
+ "L 184.530919 90.372724 \n",
+ "L 189.236943 89.67523 \n",
+ "L 192.374292 89.041199 \n",
+ "L 195.511642 88.244766 \n",
+ "L 198.648991 87.264172 \n",
+ "L 201.78634 86.081325 \n",
+ "L 204.92369 84.684232 \n",
+ "L 208.061039 83.069571 \n",
+ "L 211.198389 81.245141 \n",
+ "L 215.904413 78.164988 \n",
+ "L 222.179111 73.641545 \n",
+ "L 228.45381 69.117276 \n",
+ "L 231.59116 67.056351 \n",
+ "L 234.728509 65.243594 \n",
+ "L 237.865858 63.758975 \n",
+ "L 241.003208 62.671039 \n",
+ "L 242.571883 62.292814 \n",
+ "L 244.140557 62.031669 \n",
+ "L 245.709232 61.890811 \n",
+ "L 247.277907 61.871979 \n",
+ "L 248.846581 61.975406 \n",
+ "L 250.415256 62.199814 \n",
+ "L 251.983931 62.542443 \n",
+ "L 255.12128 63.564266 \n",
+ "L 258.25863 64.991957 \n",
+ "L 261.395979 66.759216 \n",
+ "L 264.533328 68.78746 \n",
+ "L 269.239352 72.132687 \n",
+ "L 277.082726 77.829821 \n",
+ "L 281.78875 80.946987 \n",
+ "L 284.926099 82.802179 \n",
+ "L 288.063449 84.449929 \n",
+ "L 291.200798 85.880529 \n",
+ "L 294.338148 87.095743 \n",
+ "L 297.475497 88.106399 \n",
+ "L 300.612846 88.929814 \n",
+ "L 305.31887 89.8611 \n",
+ "L 310.024895 90.497459 \n",
+ "L 314.730919 90.913978 \n",
+ "L 321.005617 91.237218 \n",
+ "L 330.417666 91.443882 \n",
+ "L 347.673087 91.521434 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_21\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 21.38875 91.527187 \n",
+ "L 241.003208 91.424994 \n",
+ "L 244.140557 91.237132 \n",
+ "L 247.277907 90.775415 \n",
+ "L 248.846581 90.357431 \n",
+ "L 250.415256 89.747918 \n",
+ "L 251.983931 88.881579 \n",
+ "L 253.552605 87.681739 \n",
+ "L 255.12128 86.063249 \n",
+ "L 256.689955 83.937881 \n",
+ "L 258.25863 81.222475 \n",
+ "L 259.827304 77.849675 \n",
+ "L 261.395979 73.780559 \n",
+ "L 262.964654 69.017885 \n",
+ "L 264.533328 63.618096 \n",
+ "L 267.670678 51.447397 \n",
+ "L 270.808027 38.967223 \n",
+ "L 272.376702 33.353569 \n",
+ "L 273.945377 28.586052 \n",
+ "L 275.514051 24.956884 \n",
+ "L 277.082726 22.699375 \n",
+ "L 278.651401 21.963135 \n",
+ "L 280.220075 22.797677 \n",
+ "L 281.78875 25.146905 \n",
+ "L 283.357425 28.855352 \n",
+ "L 284.926099 33.6852 \n",
+ "L 286.494774 39.341493 \n",
+ "L 292.769473 63.9748 \n",
+ "L 294.338148 69.337313 \n",
+ "L 295.906822 74.057387 \n",
+ "L 297.475497 78.082259 \n",
+ "L 299.044172 81.412172 \n",
+ "L 300.612846 84.088231 \n",
+ "L 302.181521 86.179143 \n",
+ "L 303.750196 87.76868 \n",
+ "L 305.31887 88.945086 \n",
+ "L 306.887545 89.793109 \n",
+ "L 308.45622 90.38877 \n",
+ "L 310.024895 90.7966 \n",
+ "L 313.162244 91.246111 \n",
+ "L 316.299593 91.42844 \n",
+ "L 322.574292 91.517907 \n",
+ "L 364.928509 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_22\">\n",
+ " <path clip-path=\"url(#p5c1638f74a)\" d=\"M 21.38875 91.527187 \n",
+ "L 237.865858 91.458382 \n",
+ "L 241.003208 91.30495 \n",
+ "L 244.140557 90.882438 \n",
+ "L 245.709232 90.47233 \n",
+ "L 247.277907 89.847064 \n",
+ "L 248.846581 88.922036 \n",
+ "L 250.415256 87.594686 \n",
+ "L 251.983931 85.748236 \n",
+ "L 253.552605 83.2597 \n",
+ "L 255.12128 80.01276 \n",
+ "L 256.689955 75.915301 \n",
+ "L 258.25863 70.920284 \n",
+ "L 259.827304 65.047408 \n",
+ "L 261.395979 58.401853 \n",
+ "L 267.670678 29.499333 \n",
+ "L 269.239352 23.676525 \n",
+ "L 270.808027 19.272553 \n",
+ "L 272.376702 16.620325 \n",
+ "L 273.945377 15.927188 \n",
+ "L 275.514051 17.24815 \n",
+ "L 277.082726 20.47867 \n",
+ "L 278.651401 25.36832 \n",
+ "L 280.220075 31.55286 \n",
+ "L 283.357425 46.054263 \n",
+ "L 286.494774 60.558876 \n",
+ "L 288.063449 66.979178 \n",
+ "L 289.632123 72.583727 \n",
+ "L 291.200798 77.29582 \n",
+ "L 292.769473 81.118925 \n",
+ "L 294.338148 84.116575 \n",
+ "L 295.906822 86.390605 \n",
+ "L 297.475497 88.061106 \n",
+ "L 299.044172 89.250269 \n",
+ "L 300.612846 90.071056 \n",
+ "L 302.181521 90.620625 \n",
+ "L 303.750196 90.977723 \n",
+ "L 306.887545 91.340955 \n",
+ "L 311.593569 91.49714 \n",
+ "L 325.711642 91.527158 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#0504aa;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_23\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 -6 \n",
+ "L -6 6 \n",
+ "L 6 6 \n",
+ "z\n",
+ "\" id=\"mf098c55563\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use x=\"265.51375\" xlink:href=\"#mf098c55563\" y=\"91.527187\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"patch_3\">\n",
+ " <path d=\"M 21.38875 95.307187 \n",
+ "L 21.38875 12.147187 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_4\">\n",
+ " <path d=\"M 411.98875 95.307187 \n",
+ "L 411.98875 12.147187 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_5\">\n",
+ " <path d=\"M 21.38875 95.307187 \n",
+ "L 411.98875 95.307187 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_6\">\n",
+ " <path d=\"M 21.38875 12.147188 \n",
+ "L 411.98875 12.147188 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"legend_1\">\n",
+ " <g id=\"line2d_24\">\n",
+ " <path d=\"M 422.78875 17.04 \n",
+ "L 446.78875 17.04 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_25\"/>\n",
+ " <g id=\"text_12\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 49.609375 33.6875 \n",
+ "Q 49.609375 40.875 46.484375 44.671875 \n",
+ "Q 43.359375 48.484375 37.5 48.484375 \n",
+ "Q 33.5 48.484375 29.859375 46.4375 \n",
+ "Q 26.21875 44.390625 23.390625 40.484375 \n",
+ "Q 20.609375 36.625 18.9375 31.15625 \n",
+ "Q 17.28125 25.6875 17.28125 20.3125 \n",
+ "Q 17.28125 13.484375 20.40625 9.796875 \n",
+ "Q 23.53125 6.109375 29.296875 6.109375 \n",
+ "Q 33.546875 6.109375 37.1875 8.109375 \n",
+ "Q 40.828125 10.109375 43.40625 13.921875 \n",
+ "Q 46.1875 17.921875 47.890625 23.34375 \n",
+ "Q 49.609375 28.765625 49.609375 33.6875 \n",
+ "M 21.78125 46.390625 \n",
+ "Q 25.390625 51.125 30.296875 53.5625 \n",
+ "Q 35.203125 56 41.21875 56 \n",
+ "Q 49.609375 56 54.25 50.5 \n",
+ "Q 58.890625 45.015625 58.890625 35.109375 \n",
+ "Q 58.890625 27 56 19.65625 \n",
+ "Q 53.125 12.3125 47.703125 6.5 \n",
+ "Q 44.09375 2.640625 39.546875 0.609375 \n",
+ "Q 35.015625 -1.421875 29.984375 -1.421875 \n",
+ "Q 24.171875 -1.421875 20.21875 1 \n",
+ "Q 16.265625 3.421875 14.3125 8.203125 \n",
+ "L 8.6875 -20.796875 \n",
+ "L -0.296875 -20.796875 \n",
+ "L 14.40625 54.6875 \n",
+ "L 23.390625 54.6875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Oblique-70\"/>\n",
+ " <path d=\"M 31 75.875 \n",
+ "Q 24.46875 64.65625 21.28125 53.65625 \n",
+ "Q 18.109375 42.671875 18.109375 31.390625 \n",
+ "Q 18.109375 20.125 21.3125 9.0625 \n",
+ "Q 24.515625 -2 31 -13.1875 \n",
+ "L 23.1875 -13.1875 \n",
+ "Q 15.875 -1.703125 12.234375 9.375 \n",
+ "Q 8.59375 20.453125 8.59375 31.390625 \n",
+ "Q 8.59375 42.28125 12.203125 53.3125 \n",
+ "Q 15.828125 64.359375 23.1875 75.875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-28\"/>\n",
+ " <path d=\"M 49.03125 39.796875 \n",
+ "Q 46.734375 40.875 44.453125 41.375 \n",
+ "Q 42.1875 41.890625 39.890625 41.890625 \n",
+ "Q 33.15625 41.890625 29.515625 37.5625 \n",
+ "Q 25.875 33.25 25.875 25.203125 \n",
+ "L 25.875 0 \n",
+ "L 8.40625 0 \n",
+ "L 8.40625 54.6875 \n",
+ "L 25.875 54.6875 \n",
+ "L 25.875 45.703125 \n",
+ "Q 29.25 51.078125 33.609375 53.53125 \n",
+ "Q 37.984375 56 44.09375 56 \n",
+ "Q 44.96875 56 45.984375 55.921875 \n",
+ "Q 47.015625 55.859375 48.96875 55.609375 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Bold-72\"/>\n",
+ " <path d=\"M 28.609375 0 \n",
+ "L 0.78125 72.90625 \n",
+ "L 11.078125 72.90625 \n",
+ "L 34.1875 11.53125 \n",
+ "L 57.328125 72.90625 \n",
+ "L 67.578125 72.90625 \n",
+ "L 39.796875 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-56\"/>\n",
+ " <path d=\"M 21 76.421875 \n",
+ "L 21 -23.578125 \n",
+ "L 12.703125 -23.578125 \n",
+ "L 12.703125 76.421875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-7c\"/>\n",
+ " <path d=\"M 8.015625 75.875 \n",
+ "L 15.828125 75.875 \n",
+ "Q 23.140625 64.359375 26.78125 53.3125 \n",
+ "Q 30.421875 42.28125 30.421875 31.390625 \n",
+ "Q 30.421875 20.453125 26.78125 9.375 \n",
+ "Q 23.140625 -1.703125 15.828125 -13.1875 \n",
+ "L 8.015625 -13.1875 \n",
+ "Q 14.5 -2 17.703125 9.0625 \n",
+ "Q 20.90625 20.125 20.90625 31.390625 \n",
+ "Q 20.90625 42.671875 17.703125 53.65625 \n",
+ "Q 14.5 64.65625 8.015625 75.875 \n",
+ "\" id=\"DejaVuSans-29\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 21.24)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_26\">\n",
+ " <path d=\"M 422.78875 35.16 \n",
+ "L 446.78875 35.16 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_27\"/>\n",
+ " <g id=\"text_13\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 34.1875 63.1875 \n",
+ "L 20.796875 26.90625 \n",
+ "L 47.609375 26.90625 \n",
+ "z\n",
+ "M 28.609375 72.90625 \n",
+ "L 39.796875 72.90625 \n",
+ "L 67.578125 0 \n",
+ "L 57.328125 0 \n",
+ "L 50.6875 18.703125 \n",
+ "L 17.828125 18.703125 \n",
+ "L 11.1875 0 \n",
+ "L 0.78125 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-41\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 39.36)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_28\">\n",
+ " <path d=\"M 422.78875 53.28 \n",
+ "L 446.78875 53.28 \n",
+ "\" style=\"fill:none;stroke:#0504aa;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_29\"/>\n",
+ " <g id=\"text_14\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 46 62.703125 \n",
+ "L 46 35.5 \n",
+ "L 73.1875 35.5 \n",
+ "L 73.1875 27.203125 \n",
+ "L 46 27.203125 \n",
+ "L 46 0 \n",
+ "L 37.796875 0 \n",
+ "L 37.796875 27.203125 \n",
+ "L 10.59375 27.203125 \n",
+ "L 10.59375 35.5 \n",
+ "L 37.796875 35.5 \n",
+ "L 37.796875 62.703125 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-2b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 57.48)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(222.866211 0.578125)\" xlink:href=\"#DejaVuSans-2b\"/>\n",
+ " <use transform=\"translate(326.137695 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(376.411133 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(427.03125 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(460.722656 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(512.822266 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_30\">\n",
+ " <path d=\"M 422.78875 71.4 \n",
+ "L 446.78875 71.4 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_31\"/>\n",
+ " <g id=\"text_15\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}|s)\\ p(\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 75.6)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " <use transform=\"translate(360.658855 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(424.135417 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(463.149089 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(513.422527 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(564.042644 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(597.73405 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(649.83366 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_32\"/>\n",
+ " <g id=\"line2d_33\">\n",
+ " <g>\n",
+ " <use x=\"434.78875\" xlink:href=\"#mf098c55563\" y=\"88.869375\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_16\">\n",
+ " <!-- true rattlesnake location -->\n",
+ " <defs>\n",
+ " <path d=\"M 40.578125 0 \n",
+ "L 40.578125 7.625 \n",
+ "Q 34.515625 -1.171875 24.125 -1.171875 \n",
+ "Q 19.53125 -1.171875 15.546875 0.578125 \n",
+ "Q 11.578125 2.34375 9.640625 5 \n",
+ "Q 7.71875 7.671875 6.9375 11.53125 \n",
+ "Q 6.390625 14.109375 6.390625 19.734375 \n",
+ "L 6.390625 51.859375 \n",
+ "L 15.1875 51.859375 \n",
+ "L 15.1875 23.09375 \n",
+ "Q 15.1875 16.21875 15.71875 13.8125 \n",
+ "Q 16.546875 10.359375 19.234375 8.375 \n",
+ "Q 21.921875 6.390625 25.875 6.390625 \n",
+ "Q 29.828125 6.390625 33.296875 8.421875 \n",
+ "Q 36.765625 10.453125 38.203125 13.9375 \n",
+ "Q 39.65625 17.4375 39.65625 24.078125 \n",
+ "L 39.65625 51.859375 \n",
+ "L 48.4375 51.859375 \n",
+ "L 48.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-75\"/>\n",
+ " <path d=\"M 42.09375 16.703125 \n",
+ "L 51.171875 15.578125 \n",
+ "Q 49.03125 7.625 43.21875 3.21875 \n",
+ "Q 37.40625 -1.171875 28.375 -1.171875 \n",
+ "Q 17 -1.171875 10.328125 5.828125 \n",
+ "Q 3.65625 12.84375 3.65625 25.484375 \n",
+ "Q 3.65625 38.578125 10.390625 45.796875 \n",
+ "Q 17.140625 53.03125 27.875 53.03125 \n",
+ "Q 38.28125 53.03125 44.875 45.953125 \n",
+ "Q 51.46875 38.875 51.46875 26.03125 \n",
+ "Q 51.46875 25.25 51.421875 23.6875 \n",
+ "L 12.75 23.6875 \n",
+ "Q 13.234375 15.140625 17.578125 10.59375 \n",
+ "Q 21.921875 6.0625 28.421875 6.0625 \n",
+ "Q 33.25 6.0625 36.671875 8.59375 \n",
+ "Q 40.09375 11.140625 42.09375 16.703125 \n",
+ "M 13.234375 30.90625 \n",
+ "L 42.1875 30.90625 \n",
+ "Q 41.609375 37.453125 38.875 40.71875 \n",
+ "Q 34.671875 45.796875 27.984375 45.796875 \n",
+ "Q 21.921875 45.796875 17.796875 41.75 \n",
+ "Q 13.671875 37.703125 13.234375 30.90625 \n",
+ "\" id=\"ArialMT-65\"/>\n",
+ " <path d=\"M 3.078125 15.484375 \n",
+ "L 11.765625 16.84375 \n",
+ "Q 12.5 11.625 15.84375 8.84375 \n",
+ "Q 19.1875 6.0625 25.203125 6.0625 \n",
+ "Q 31.25 6.0625 34.171875 8.515625 \n",
+ "Q 37.109375 10.984375 37.109375 14.3125 \n",
+ "Q 37.109375 17.28125 34.515625 19 \n",
+ "Q 32.71875 20.171875 25.53125 21.96875 \n",
+ "Q 15.875 24.421875 12.140625 26.203125 \n",
+ "Q 8.40625 27.984375 6.46875 31.125 \n",
+ "Q 4.546875 34.28125 4.546875 38.09375 \n",
+ "Q 4.546875 41.546875 6.125 44.5 \n",
+ "Q 7.71875 47.46875 10.453125 49.421875 \n",
+ "Q 12.5 50.921875 16.03125 51.96875 \n",
+ "Q 19.578125 53.03125 23.640625 53.03125 \n",
+ "Q 29.734375 53.03125 34.34375 51.265625 \n",
+ "Q 38.96875 49.515625 41.15625 46.5 \n",
+ "Q 43.359375 43.5 44.1875 38.484375 \n",
+ "L 35.59375 37.3125 \n",
+ "Q 35.015625 41.3125 32.203125 43.546875 \n",
+ "Q 29.390625 45.796875 24.265625 45.796875 \n",
+ "Q 18.21875 45.796875 15.625 43.796875 \n",
+ "Q 13.03125 41.796875 13.03125 39.109375 \n",
+ "Q 13.03125 37.40625 14.109375 36.03125 \n",
+ "Q 15.1875 34.625 17.484375 33.6875 \n",
+ "Q 18.796875 33.203125 25.25 31.453125 \n",
+ "Q 34.578125 28.953125 38.25 27.359375 \n",
+ "Q 41.9375 25.78125 44.03125 22.75 \n",
+ "Q 46.140625 19.734375 46.140625 15.234375 \n",
+ "Q 46.140625 10.84375 43.578125 6.953125 \n",
+ "Q 41.015625 3.078125 36.171875 0.953125 \n",
+ "Q 31.34375 -1.171875 25.25 -1.171875 \n",
+ "Q 15.140625 -1.171875 9.84375 3.03125 \n",
+ "Q 4.546875 7.234375 3.078125 15.484375 \n",
+ "\" id=\"ArialMT-73\"/>\n",
+ " <path d=\"M 6.640625 0 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 30.765625 \n",
+ "L 36.234375 51.859375 \n",
+ "L 47.609375 51.859375 \n",
+ "L 27.78125 32.625 \n",
+ "L 49.609375 0 \n",
+ "L 38.765625 0 \n",
+ "L 21.625 26.515625 \n",
+ "L 15.4375 20.5625 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 93.069375)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"27.783203\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"61.083984\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"116.699219\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"200.097656\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"233.398438\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"289.013672\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"316.796875\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"344.580078\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"366.796875\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"422.412109\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"472.412109\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"528.027344\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"583.642578\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"633.642578\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"689.257812\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"717.041016\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"739.257812\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"794.873047\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"844.873047\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"900.488281\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"928.271484\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"950.488281\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"1006.103516\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <defs>\n",
+ " <clipPath id=\"p5c1638f74a\">\n",
+ " <rect height=\"83.16\" width=\"390.6\" x=\"21.38875\" y=\"12.147188\"/>\n",
+ " </clipPath>\n",
+ " </defs>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x11a0a26a0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "spikes_and_inference()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Here, we break the assumption that the two populations have the same tuning curve width. Note that the joint likelihood (gold) is no longer identical to the likelihood for the summed population (blue)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
+ "<svg height=\"132pt\" version=\"1.1\" viewBox=\"0 0 595 132\" width=\"595pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ " <defs>\n",
+ " <style type=\"text/css\">\n",
+ "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
+ " </style>\n",
+ " </defs>\n",
+ " <g id=\"figure_1\">\n",
+ " <g id=\"patch_1\">\n",
+ " <path d=\"M 0 132.712344 \n",
+ "L 595.785625 132.712344 \n",
+ "L 595.785625 0 \n",
+ "L 0 0 \n",
+ "z\n",
+ "\" style=\"fill:#ffffff;\"/>\n",
+ " </g>\n",
+ " <g id=\"axes_1\">\n",
+ " <g id=\"patch_2\">\n",
+ " <path d=\"M 21.38875 95.307187 \n",
+ "L 411.98875 95.307187 \n",
+ "L 411.98875 12.147188 \n",
+ "L 21.38875 12.147188 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_1\">\n",
+ " <g id=\"xtick_1\">\n",
+ " <g id=\"line2d_1\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 21.38875 95.307187 \n",
+ "L 21.38875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_2\"/>\n",
+ " <g id=\"text_1\">\n",
+ " <!-- −40 -->\n",
+ " <defs>\n",
+ " <path d=\"M 52.828125 31.203125 \n",
+ "L 5.5625 31.203125 \n",
+ "L 5.5625 39.40625 \n",
+ "L 52.828125 39.40625 \n",
+ "z\n",
+ "\" id=\"ArialMT-2212\"/>\n",
+ " <path d=\"M 32.328125 0 \n",
+ "L 32.328125 17.140625 \n",
+ "L 1.265625 17.140625 \n",
+ "L 1.265625 25.203125 \n",
+ "L 33.9375 71.578125 \n",
+ "L 41.109375 71.578125 \n",
+ "L 41.109375 25.203125 \n",
+ "L 50.78125 25.203125 \n",
+ "L 50.78125 17.140625 \n",
+ "L 41.109375 17.140625 \n",
+ "L 41.109375 0 \n",
+ "z\n",
+ "M 32.328125 25.203125 \n",
+ "L 32.328125 57.46875 \n",
+ "L 9.90625 25.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-34\"/>\n",
+ " <path d=\"M 4.15625 35.296875 \n",
+ "Q 4.15625 48 6.765625 55.734375 \n",
+ "Q 9.375 63.484375 14.515625 67.671875 \n",
+ "Q 19.671875 71.875 27.484375 71.875 \n",
+ "Q 33.25 71.875 37.59375 69.546875 \n",
+ "Q 41.9375 67.234375 44.765625 62.859375 \n",
+ "Q 47.609375 58.5 49.21875 52.21875 \n",
+ "Q 50.828125 45.953125 50.828125 35.296875 \n",
+ "Q 50.828125 22.703125 48.234375 14.96875 \n",
+ "Q 45.65625 7.234375 40.5 3 \n",
+ "Q 35.359375 -1.21875 27.484375 -1.21875 \n",
+ "Q 17.140625 -1.21875 11.234375 6.203125 \n",
+ "Q 4.15625 15.140625 4.15625 35.296875 \n",
+ "M 13.1875 35.296875 \n",
+ "Q 13.1875 17.671875 17.3125 11.828125 \n",
+ "Q 21.4375 6 27.484375 6 \n",
+ "Q 33.546875 6 37.671875 11.859375 \n",
+ "Q 41.796875 17.71875 41.796875 35.296875 \n",
+ "Q 41.796875 52.984375 37.671875 58.78125 \n",
+ "Q 33.546875 64.59375 27.390625 64.59375 \n",
+ "Q 21.34375 64.59375 17.71875 59.46875 \n",
+ "Q 13.1875 52.9375 13.1875 35.296875 \n",
+ "\" id=\"ArialMT-30\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(12.9075 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_2\">\n",
+ " <g id=\"line2d_3\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 70.21375 95.307187 \n",
+ "L 70.21375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_4\"/>\n",
+ " <g id=\"text_2\">\n",
+ " <!-- −30 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.203125 18.890625 \n",
+ "L 12.984375 20.0625 \n",
+ "Q 14.5 12.59375 18.140625 9.296875 \n",
+ "Q 21.78125 6 27 6 \n",
+ "Q 33.203125 6 37.46875 10.296875 \n",
+ "Q 41.75 14.59375 41.75 20.953125 \n",
+ "Q 41.75 27 37.796875 30.921875 \n",
+ "Q 33.84375 34.859375 27.734375 34.859375 \n",
+ "Q 25.25 34.859375 21.53125 33.890625 \n",
+ "L 22.515625 41.609375 \n",
+ "Q 23.390625 41.5 23.921875 41.5 \n",
+ "Q 29.546875 41.5 34.03125 44.421875 \n",
+ "Q 38.53125 47.359375 38.53125 53.46875 \n",
+ "Q 38.53125 58.296875 35.25 61.46875 \n",
+ "Q 31.984375 64.65625 26.8125 64.65625 \n",
+ "Q 21.6875 64.65625 18.265625 61.421875 \n",
+ "Q 14.84375 58.203125 13.875 51.765625 \n",
+ "L 5.078125 53.328125 \n",
+ "Q 6.6875 62.15625 12.390625 67.015625 \n",
+ "Q 18.109375 71.875 26.609375 71.875 \n",
+ "Q 32.46875 71.875 37.390625 69.359375 \n",
+ "Q 42.328125 66.84375 44.9375 62.5 \n",
+ "Q 47.5625 58.15625 47.5625 53.265625 \n",
+ "Q 47.5625 48.640625 45.0625 44.828125 \n",
+ "Q 42.578125 41.015625 37.703125 38.765625 \n",
+ "Q 44.046875 37.3125 47.5625 32.6875 \n",
+ "Q 51.078125 28.078125 51.078125 21.140625 \n",
+ "Q 51.078125 11.765625 44.234375 5.25 \n",
+ "Q 37.40625 -1.265625 26.953125 -1.265625 \n",
+ "Q 17.53125 -1.265625 11.296875 4.34375 \n",
+ "Q 5.078125 9.96875 4.203125 18.890625 \n",
+ "\" id=\"ArialMT-33\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(61.7325 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_3\">\n",
+ " <g id=\"line2d_5\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 119.03875 95.307187 \n",
+ "L 119.03875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_6\"/>\n",
+ " <g id=\"text_3\">\n",
+ " <!-- −20 -->\n",
+ " <defs>\n",
+ " <path d=\"M 50.34375 8.453125 \n",
+ "L 50.34375 0 \n",
+ "L 3.03125 0 \n",
+ "Q 2.9375 3.171875 4.046875 6.109375 \n",
+ "Q 5.859375 10.9375 9.828125 15.625 \n",
+ "Q 13.8125 20.3125 21.34375 26.46875 \n",
+ "Q 33.015625 36.03125 37.109375 41.625 \n",
+ "Q 41.21875 47.21875 41.21875 52.203125 \n",
+ "Q 41.21875 57.421875 37.46875 61 \n",
+ "Q 33.734375 64.59375 27.734375 64.59375 \n",
+ "Q 21.390625 64.59375 17.578125 60.78125 \n",
+ "Q 13.765625 56.984375 13.71875 50.25 \n",
+ "L 4.6875 51.171875 \n",
+ "Q 5.609375 61.28125 11.65625 66.578125 \n",
+ "Q 17.71875 71.875 27.9375 71.875 \n",
+ "Q 38.234375 71.875 44.234375 66.15625 \n",
+ "Q 50.25 60.453125 50.25 52 \n",
+ "Q 50.25 47.703125 48.484375 43.546875 \n",
+ "Q 46.734375 39.40625 42.65625 34.8125 \n",
+ "Q 38.578125 30.21875 29.109375 22.21875 \n",
+ "Q 21.1875 15.578125 18.9375 13.203125 \n",
+ "Q 16.703125 10.84375 15.234375 8.453125 \n",
+ "z\n",
+ "\" id=\"ArialMT-32\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(110.5575 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_4\">\n",
+ " <g id=\"line2d_7\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 167.86375 95.307187 \n",
+ "L 167.86375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_8\"/>\n",
+ " <g id=\"text_4\">\n",
+ " <!-- −10 -->\n",
+ " <defs>\n",
+ " <path d=\"M 37.25 0 \n",
+ "L 28.46875 0 \n",
+ "L 28.46875 56 \n",
+ "Q 25.296875 52.984375 20.140625 49.953125 \n",
+ "Q 14.984375 46.921875 10.890625 45.40625 \n",
+ "L 10.890625 53.90625 \n",
+ "Q 18.265625 57.375 23.78125 62.296875 \n",
+ "Q 29.296875 67.234375 31.59375 71.875 \n",
+ "L 37.25 71.875 \n",
+ "z\n",
+ "\" id=\"ArialMT-31\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(159.3825 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_5\">\n",
+ " <g id=\"line2d_9\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 216.68875 95.307187 \n",
+ "L 216.68875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_10\"/>\n",
+ " <g id=\"text_5\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(213.908281 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_6\">\n",
+ " <g id=\"line2d_11\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 265.51375 95.307187 \n",
+ "L 265.51375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_12\"/>\n",
+ " <g id=\"text_6\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(259.952812 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_7\">\n",
+ " <g id=\"line2d_13\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 314.33875 95.307187 \n",
+ "L 314.33875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_14\"/>\n",
+ " <g id=\"text_7\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(308.777812 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_8\">\n",
+ " <g id=\"line2d_15\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 363.16375 95.307187 \n",
+ "L 363.16375 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_16\"/>\n",
+ " <g id=\"text_8\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(357.602813 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_9\">\n",
+ " <g id=\"line2d_17\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 411.98875 95.307187 \n",
+ "L 411.98875 12.147188 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_18\"/>\n",
+ " <g id=\"text_9\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(406.427813 109.465)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_10\">\n",
+ " <!-- location $s$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.390625 0 \n",
+ "L 6.390625 71.578125 \n",
+ "L 15.1875 71.578125 \n",
+ "L 15.1875 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6c\"/>\n",
+ " <path d=\"M 3.328125 25.921875 \n",
+ "Q 3.328125 40.328125 11.328125 47.265625 \n",
+ "Q 18.015625 53.03125 27.640625 53.03125 \n",
+ "Q 38.328125 53.03125 45.109375 46.015625 \n",
+ "Q 51.90625 39.015625 51.90625 26.65625 \n",
+ "Q 51.90625 16.65625 48.90625 10.90625 \n",
+ "Q 45.90625 5.171875 40.15625 2 \n",
+ "Q 34.421875 -1.171875 27.640625 -1.171875 \n",
+ "Q 16.75 -1.171875 10.03125 5.8125 \n",
+ "Q 3.328125 12.796875 3.328125 25.921875 \n",
+ "M 12.359375 25.921875 \n",
+ "Q 12.359375 15.96875 16.703125 11.015625 \n",
+ "Q 21.046875 6.0625 27.640625 6.0625 \n",
+ "Q 34.1875 6.0625 38.53125 11.03125 \n",
+ "Q 42.875 16.015625 42.875 26.21875 \n",
+ "Q 42.875 35.84375 38.5 40.796875 \n",
+ "Q 34.125 45.75 27.640625 45.75 \n",
+ "Q 21.046875 45.75 16.703125 40.8125 \n",
+ "Q 12.359375 35.890625 12.359375 25.921875 \n",
+ "\" id=\"ArialMT-6f\"/>\n",
+ " <path d=\"M 40.4375 19 \n",
+ "L 49.078125 17.875 \n",
+ "Q 47.65625 8.9375 41.8125 3.875 \n",
+ "Q 35.984375 -1.171875 27.484375 -1.171875 \n",
+ "Q 16.84375 -1.171875 10.375 5.78125 \n",
+ "Q 3.90625 12.75 3.90625 25.734375 \n",
+ "Q 3.90625 34.125 6.6875 40.421875 \n",
+ "Q 9.46875 46.734375 15.15625 49.875 \n",
+ "Q 20.84375 53.03125 27.546875 53.03125 \n",
+ "Q 35.984375 53.03125 41.359375 48.75 \n",
+ "Q 46.734375 44.484375 48.25 36.625 \n",
+ "L 39.703125 35.296875 \n",
+ "Q 38.484375 40.53125 35.375 43.15625 \n",
+ "Q 32.28125 45.796875 27.875 45.796875 \n",
+ "Q 21.234375 45.796875 17.078125 41.03125 \n",
+ "Q 12.9375 36.28125 12.9375 25.984375 \n",
+ "Q 12.9375 15.53125 16.9375 10.796875 \n",
+ "Q 20.953125 6.0625 27.390625 6.0625 \n",
+ "Q 32.5625 6.0625 36.03125 9.234375 \n",
+ "Q 39.5 12.40625 40.4375 19 \n",
+ "\" id=\"ArialMT-63\"/>\n",
+ " <path d=\"M 40.4375 6.390625 \n",
+ "Q 35.546875 2.25 31.03125 0.53125 \n",
+ "Q 26.515625 -1.171875 21.34375 -1.171875 \n",
+ "Q 12.796875 -1.171875 8.203125 3 \n",
+ "Q 3.609375 7.171875 3.609375 13.671875 \n",
+ "Q 3.609375 17.484375 5.34375 20.625 \n",
+ "Q 7.078125 23.78125 9.890625 25.6875 \n",
+ "Q 12.703125 27.59375 16.21875 28.5625 \n",
+ "Q 18.796875 29.25 24.03125 29.890625 \n",
+ "Q 34.671875 31.15625 39.703125 32.90625 \n",
+ "Q 39.75 34.71875 39.75 35.203125 \n",
+ "Q 39.75 40.578125 37.25 42.78125 \n",
+ "Q 33.890625 45.75 27.25 45.75 \n",
+ "Q 21.046875 45.75 18.09375 43.578125 \n",
+ "Q 15.140625 41.40625 13.71875 35.890625 \n",
+ "L 5.125 37.0625 \n",
+ "Q 6.296875 42.578125 8.984375 45.96875 \n",
+ "Q 11.671875 49.359375 16.75 51.1875 \n",
+ "Q 21.828125 53.03125 28.515625 53.03125 \n",
+ "Q 35.15625 53.03125 39.296875 51.46875 \n",
+ "Q 43.453125 49.90625 45.40625 47.53125 \n",
+ "Q 47.359375 45.171875 48.140625 41.546875 \n",
+ "Q 48.578125 39.3125 48.578125 33.453125 \n",
+ "L 48.578125 21.734375 \n",
+ "Q 48.578125 9.46875 49.140625 6.21875 \n",
+ "Q 49.703125 2.984375 51.375 0 \n",
+ "L 42.1875 0 \n",
+ "Q 40.828125 2.734375 40.4375 6.390625 \n",
+ "M 39.703125 26.03125 \n",
+ "Q 34.90625 24.078125 25.34375 22.703125 \n",
+ "Q 19.921875 21.921875 17.671875 20.9375 \n",
+ "Q 15.4375 19.96875 14.203125 18.09375 \n",
+ "Q 12.984375 16.21875 12.984375 13.921875 \n",
+ "Q 12.984375 10.40625 15.640625 8.0625 \n",
+ "Q 18.3125 5.71875 23.4375 5.71875 \n",
+ "Q 28.515625 5.71875 32.46875 7.9375 \n",
+ "Q 36.421875 10.15625 38.28125 14.015625 \n",
+ "Q 39.703125 17 39.703125 22.796875 \n",
+ "z\n",
+ "\" id=\"ArialMT-61\"/>\n",
+ " <path d=\"M 25.78125 7.859375 \n",
+ "L 27.046875 0.09375 \n",
+ "Q 23.34375 -0.6875 20.40625 -0.6875 \n",
+ "Q 15.625 -0.6875 12.984375 0.828125 \n",
+ "Q 10.359375 2.34375 9.28125 4.8125 \n",
+ "Q 8.203125 7.28125 8.203125 15.1875 \n",
+ "L 8.203125 45.015625 \n",
+ "L 1.765625 45.015625 \n",
+ "L 1.765625 51.859375 \n",
+ "L 8.203125 51.859375 \n",
+ "L 8.203125 64.703125 \n",
+ "L 16.9375 69.96875 \n",
+ "L 16.9375 51.859375 \n",
+ "L 25.78125 51.859375 \n",
+ "L 25.78125 45.015625 \n",
+ "L 16.9375 45.015625 \n",
+ "L 16.9375 14.703125 \n",
+ "Q 16.9375 10.9375 17.40625 9.859375 \n",
+ "Q 17.875 8.796875 18.921875 8.15625 \n",
+ "Q 19.96875 7.515625 21.921875 7.515625 \n",
+ "Q 23.390625 7.515625 25.78125 7.859375 \n",
+ "\" id=\"ArialMT-74\"/>\n",
+ " <path d=\"M 6.640625 61.46875 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 61.46875 \n",
+ "z\n",
+ "M 6.640625 0 \n",
+ "L 6.640625 51.859375 \n",
+ "L 15.4375 51.859375 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-69\"/>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.5 51.859375 \n",
+ "L 14.5 44.484375 \n",
+ "Q 20.21875 53.03125 31 53.03125 \n",
+ "Q 35.6875 53.03125 39.625 51.34375 \n",
+ "Q 43.5625 49.65625 45.515625 46.921875 \n",
+ "Q 47.46875 44.1875 48.25 40.4375 \n",
+ "Q 48.734375 37.984375 48.734375 31.890625 \n",
+ "L 48.734375 0 \n",
+ "L 39.9375 0 \n",
+ "L 39.9375 31.546875 \n",
+ "Q 39.9375 36.921875 38.90625 39.578125 \n",
+ "Q 37.890625 42.234375 35.28125 43.8125 \n",
+ "Q 32.671875 45.40625 29.15625 45.40625 \n",
+ "Q 23.53125 45.40625 19.453125 41.84375 \n",
+ "Q 15.375 38.28125 15.375 28.328125 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6e\"/>\n",
+ " <path id=\"ArialMT-20\"/>\n",
+ " <path d=\"M 50 53.078125 \n",
+ "L 48.296875 44.578125 \n",
+ "Q 44.734375 46.53125 40.765625 47.5 \n",
+ "Q 36.8125 48.484375 32.625 48.484375 \n",
+ "Q 25.53125 48.484375 21.453125 46.0625 \n",
+ "Q 17.390625 43.65625 17.390625 39.5 \n",
+ "Q 17.390625 34.671875 26.859375 32.078125 \n",
+ "Q 27.59375 31.890625 27.9375 31.78125 \n",
+ "L 30.8125 30.90625 \n",
+ "Q 39.796875 28.421875 42.796875 25.6875 \n",
+ "Q 45.796875 22.953125 45.796875 18.21875 \n",
+ "Q 45.796875 9.515625 38.890625 4.046875 \n",
+ "Q 31.984375 -1.421875 20.796875 -1.421875 \n",
+ "Q 16.453125 -1.421875 11.671875 -0.578125 \n",
+ "Q 6.890625 0.25 1.125 2 \n",
+ "L 2.875 11.28125 \n",
+ "Q 7.8125 8.734375 12.59375 7.421875 \n",
+ "Q 17.390625 6.109375 21.78125 6.109375 \n",
+ "Q 28.375 6.109375 32.5 8.9375 \n",
+ "Q 36.625 11.765625 36.625 16.109375 \n",
+ "Q 36.625 20.796875 25.78125 23.6875 \n",
+ "L 24.859375 23.921875 \n",
+ "L 21.78125 24.703125 \n",
+ "Q 14.9375 26.515625 11.765625 29.46875 \n",
+ "Q 8.59375 32.421875 8.59375 37.015625 \n",
+ "Q 8.59375 45.75 15.15625 50.875 \n",
+ "Q 21.734375 56 33.015625 56 \n",
+ "Q 37.453125 56 41.671875 55.265625 \n",
+ "Q 45.90625 54.546875 50 53.078125 \n",
+ "\" id=\"DejaVuSans-Oblique-73\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(193.31375 123.326094)scale(0.11 -0.11)\">\n",
+ " <use transform=\"translate(0 0.421875)\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use transform=\"translate(22.216797 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(77.832031 0.421875)\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use transform=\"translate(127.832031 0.421875)\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use transform=\"translate(183.447266 0.421875)\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use transform=\"translate(211.230469 0.421875)\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use transform=\"translate(233.447266 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(289.0625 0.421875)\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use transform=\"translate(344.677734 0.421875)\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use transform=\"translate(372.460938 0.421875)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_2\">\n",
+ " <g id=\"text_11\">\n",
+ " <!-- probability -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.59375 -19.875 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.59375 51.859375 \n",
+ "L 14.59375 45.125 \n",
+ "Q 17.4375 49.078125 21 51.046875 \n",
+ "Q 24.5625 53.03125 29.640625 53.03125 \n",
+ "Q 36.28125 53.03125 41.359375 49.609375 \n",
+ "Q 46.4375 46.1875 49.015625 39.953125 \n",
+ "Q 51.609375 33.734375 51.609375 26.3125 \n",
+ "Q 51.609375 18.359375 48.75 11.984375 \n",
+ "Q 45.90625 5.609375 40.453125 2.21875 \n",
+ "Q 35.015625 -1.171875 29 -1.171875 \n",
+ "Q 24.609375 -1.171875 21.109375 0.6875 \n",
+ "Q 17.625 2.546875 15.375 5.375 \n",
+ "L 15.375 -19.875 \n",
+ "z\n",
+ "M 14.546875 25.640625 \n",
+ "Q 14.546875 15.625 18.59375 10.84375 \n",
+ "Q 22.65625 6.0625 28.421875 6.0625 \n",
+ "Q 34.28125 6.0625 38.453125 11.015625 \n",
+ "Q 42.625 15.96875 42.625 26.375 \n",
+ "Q 42.625 36.28125 38.546875 41.203125 \n",
+ "Q 34.46875 46.140625 28.8125 46.140625 \n",
+ "Q 23.1875 46.140625 18.859375 40.890625 \n",
+ "Q 14.546875 35.640625 14.546875 25.640625 \n",
+ "\" id=\"ArialMT-70\"/>\n",
+ " <path d=\"M 6.5 0 \n",
+ "L 6.5 51.859375 \n",
+ "L 14.40625 51.859375 \n",
+ "L 14.40625 44 \n",
+ "Q 17.4375 49.515625 20 51.265625 \n",
+ "Q 22.5625 53.03125 25.640625 53.03125 \n",
+ "Q 30.078125 53.03125 34.671875 50.203125 \n",
+ "L 31.640625 42.046875 \n",
+ "Q 28.421875 43.953125 25.203125 43.953125 \n",
+ "Q 22.3125 43.953125 20.015625 42.21875 \n",
+ "Q 17.71875 40.484375 16.75 37.40625 \n",
+ "Q 15.28125 32.71875 15.28125 27.15625 \n",
+ "L 15.28125 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-72\"/>\n",
+ " <path d=\"M 14.703125 0 \n",
+ "L 6.546875 0 \n",
+ "L 6.546875 71.578125 \n",
+ "L 15.328125 71.578125 \n",
+ "L 15.328125 46.046875 \n",
+ "Q 20.90625 53.03125 29.546875 53.03125 \n",
+ "Q 34.328125 53.03125 38.59375 51.09375 \n",
+ "Q 42.875 49.171875 45.625 45.671875 \n",
+ "Q 48.390625 42.1875 49.953125 37.25 \n",
+ "Q 51.515625 32.328125 51.515625 26.703125 \n",
+ "Q 51.515625 13.375 44.921875 6.09375 \n",
+ "Q 38.328125 -1.171875 29.109375 -1.171875 \n",
+ "Q 19.921875 -1.171875 14.703125 6.5 \n",
+ "z\n",
+ "M 14.59375 26.3125 \n",
+ "Q 14.59375 17 17.140625 12.84375 \n",
+ "Q 21.296875 6.0625 28.375 6.0625 \n",
+ "Q 34.125 6.0625 38.328125 11.0625 \n",
+ "Q 42.53125 16.0625 42.53125 25.984375 \n",
+ "Q 42.53125 36.140625 38.5 40.96875 \n",
+ "Q 34.46875 45.796875 28.765625 45.796875 \n",
+ "Q 23 45.796875 18.796875 40.796875 \n",
+ "Q 14.59375 35.796875 14.59375 26.3125 \n",
+ "\" id=\"ArialMT-62\"/>\n",
+ " <path d=\"M 6.203125 -19.96875 \n",
+ "L 5.21875 -11.71875 \n",
+ "Q 8.109375 -12.5 10.25 -12.5 \n",
+ "Q 13.1875 -12.5 14.9375 -11.515625 \n",
+ "Q 16.703125 -10.546875 17.828125 -8.796875 \n",
+ "Q 18.65625 -7.46875 20.515625 -2.25 \n",
+ "Q 20.75 -1.515625 21.296875 -0.09375 \n",
+ "L 1.609375 51.859375 \n",
+ "L 11.078125 51.859375 \n",
+ "L 21.875 21.828125 \n",
+ "Q 23.96875 16.109375 25.640625 9.8125 \n",
+ "Q 27.15625 15.875 29.25 21.625 \n",
+ "L 40.328125 51.859375 \n",
+ "L 49.125 51.859375 \n",
+ "L 29.390625 -0.875 \n",
+ "Q 26.21875 -9.421875 24.46875 -12.640625 \n",
+ "Q 22.125 -17 19.09375 -19.015625 \n",
+ "Q 16.0625 -21.046875 11.859375 -21.046875 \n",
+ "Q 9.328125 -21.046875 6.203125 -19.96875 \n",
+ "\" id=\"ArialMT-79\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(15.073594 78.795156)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"88.916016\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"144.53125\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"200.146484\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"255.761719\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"311.376953\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"333.59375\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"355.810547\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"378.027344\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"405.810547\" xlink:href=\"#ArialMT-79\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_19\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 21.38875 91.527187 \n",
+ "L 236.297184 91.467945 \n",
+ "L 239.434533 91.291905 \n",
+ "L 241.003208 91.083863 \n",
+ "L 242.571883 90.722508 \n",
+ "L 244.140557 90.120186 \n",
+ "L 245.709232 89.157256 \n",
+ "L 247.277907 87.68174 \n",
+ "L 248.846581 85.51645 \n",
+ "L 250.415256 82.476564 \n",
+ "L 251.983931 78.399174 \n",
+ "L 253.552605 73.183384 \n",
+ "L 255.12128 66.835567 \n",
+ "L 256.689955 59.510262 \n",
+ "L 261.395979 35.745881 \n",
+ "L 262.964654 29.240101 \n",
+ "L 264.533328 24.52682 \n",
+ "L 266.102003 22.100542 \n",
+ "L 267.670678 22.225309 \n",
+ "L 269.239352 24.887392 \n",
+ "L 270.808027 29.797776 \n",
+ "L 272.376702 36.443825 \n",
+ "L 275.514051 52.318118 \n",
+ "L 277.082726 60.250242 \n",
+ "L 278.651401 67.492861 \n",
+ "L 280.220075 73.735817 \n",
+ "L 281.78875 78.840254 \n",
+ "L 283.357425 82.812059 \n",
+ "L 284.926099 85.760045 \n",
+ "L 286.494774 87.850832 \n",
+ "L 288.063449 89.269603 \n",
+ "L 289.632123 90.191698 \n",
+ "L 291.200798 90.766149 \n",
+ "L 292.769473 91.109412 \n",
+ "L 295.906822 91.414643 \n",
+ "L 300.612846 91.515298 \n",
+ "L 328.848991 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_20\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 21.38875 91.527187 \n",
+ "L 222.179111 91.42796 \n",
+ "L 228.45381 91.15258 \n",
+ "L 231.59116 90.843902 \n",
+ "L 234.728509 90.332292 \n",
+ "L 237.865858 89.523824 \n",
+ "L 241.003208 88.306922 \n",
+ "L 242.571883 87.508391 \n",
+ "L 244.140557 86.564397 \n",
+ "L 245.709232 85.462878 \n",
+ "L 247.277907 84.194514 \n",
+ "L 248.846581 82.753769 \n",
+ "L 250.415256 81.139929 \n",
+ "L 253.552605 77.41996 \n",
+ "L 256.689955 73.158226 \n",
+ "L 264.533328 61.971647 \n",
+ "L 266.102003 60.033291 \n",
+ "L 267.670678 58.319439 \n",
+ "L 269.239352 56.8792 \n",
+ "L 270.808027 55.755277 \n",
+ "L 272.376702 54.981865 \n",
+ "L 273.945377 54.582924 \n",
+ "L 275.514051 54.570949 \n",
+ "L 277.082726 54.946315 \n",
+ "L 278.651401 55.697263 \n",
+ "L 280.220075 56.800506 \n",
+ "L 281.78875 58.222435 \n",
+ "L 283.357425 59.920813 \n",
+ "L 286.494774 63.94757 \n",
+ "L 295.906822 77.295972 \n",
+ "L 299.044172 81.035043 \n",
+ "L 300.612846 82.659432 \n",
+ "L 302.181521 84.110864 \n",
+ "L 303.750196 85.38972 \n",
+ "L 305.31887 86.501271 \n",
+ "L 306.887545 87.454633 \n",
+ "L 308.45622 88.26173 \n",
+ "L 311.593569 89.493075 \n",
+ "L 314.730919 90.312378 \n",
+ "L 317.868268 90.831613 \n",
+ "L 321.005617 91.145348 \n",
+ "L 325.711642 91.383679 \n",
+ "L 333.555015 91.504434 \n",
+ "L 360.222485 91.527181 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_21\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 21.38875 91.527187 \n",
+ "L 228.45381 91.4593 \n",
+ "L 231.59116 91.312394 \n",
+ "L 234.728509 90.916768 \n",
+ "L 236.297184 90.538752 \n",
+ "L 237.865858 89.969025 \n",
+ "L 239.434533 89.135957 \n",
+ "L 241.003208 87.95467 \n",
+ "L 242.571883 86.331159 \n",
+ "L 244.140557 84.169979 \n",
+ "L 245.709232 81.385765 \n",
+ "L 247.277907 77.918102 \n",
+ "L 248.846581 73.748351 \n",
+ "L 250.415256 68.916072 \n",
+ "L 253.552605 57.78353 \n",
+ "L 256.689955 46.295846 \n",
+ "L 258.25863 41.225848 \n",
+ "L 259.827304 37.068908 \n",
+ "L 261.395979 34.129742 \n",
+ "L 262.964654 32.633941 \n",
+ "L 264.533328 32.699373 \n",
+ "L 266.102003 34.32084 \n",
+ "L 267.670678 37.37076 \n",
+ "L 269.239352 41.61575 \n",
+ "L 270.808027 46.74612 \n",
+ "L 277.082726 69.339364 \n",
+ "L 278.651401 74.119925 \n",
+ "L 280.220075 78.23212 \n",
+ "L 281.78875 81.641773 \n",
+ "L 283.357425 84.371629 \n",
+ "L 284.926099 86.484797 \n",
+ "L 286.494774 88.068004 \n",
+ "L 288.063449 89.216958 \n",
+ "L 289.632123 90.02515 \n",
+ "L 291.200798 90.576471 \n",
+ "L 292.769473 90.941366 \n",
+ "L 295.906822 91.321964 \n",
+ "L 300.612846 91.492394 \n",
+ "L 313.162244 91.527093 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_22\">\n",
+ " <path clip-path=\"url(#p5ffe60a06b)\" d=\"M 21.38875 91.527187 \n",
+ "L 237.865858 91.447531 \n",
+ "L 241.003208 91.180618 \n",
+ "L 242.571883 90.850759 \n",
+ "L 244.140557 90.26414 \n",
+ "L 245.709232 89.270964 \n",
+ "L 247.277907 87.671429 \n",
+ "L 248.846581 85.223384 \n",
+ "L 250.415256 81.667558 \n",
+ "L 251.983931 76.774074 \n",
+ "L 253.552605 70.40826 \n",
+ "L 255.12128 62.605397 \n",
+ "L 258.25863 44.034453 \n",
+ "L 259.827304 34.579532 \n",
+ "L 261.395979 26.200648 \n",
+ "L 262.964654 19.835537 \n",
+ "L 264.533328 16.258798 \n",
+ "L 266.102003 15.927188 \n",
+ "L 267.670678 18.8838 \n",
+ "L 269.239352 24.748866 \n",
+ "L 270.808027 32.799887 \n",
+ "L 275.514051 60.904424 \n",
+ "L 277.082726 68.96873 \n",
+ "L 278.651401 75.629295 \n",
+ "L 280.220075 80.808668 \n",
+ "L 281.78875 84.613732 \n",
+ "L 283.357425 87.261189 \n",
+ "L 284.926099 89.008865 \n",
+ "L 286.494774 90.104966 \n",
+ "L 288.063449 90.758786 \n",
+ "L 289.632123 91.13002 \n",
+ "L 292.769473 91.434282 \n",
+ "L 297.475497 91.519647 \n",
+ "L 338.261039 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "L 411.98875 91.527187 \n",
+ "\" style=\"fill:none;stroke:#0504aa;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_23\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 -6 \n",
+ "L -6 6 \n",
+ "L 6 6 \n",
+ "z\n",
+ "\" id=\"m238277e9c2\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use x=\"265.51375\" xlink:href=\"#m238277e9c2\" y=\"91.527187\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"patch_3\">\n",
+ " <path d=\"M 21.38875 95.307187 \n",
+ "L 21.38875 12.147188 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_4\">\n",
+ " <path d=\"M 411.98875 95.307187 \n",
+ "L 411.98875 12.147188 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_5\">\n",
+ " <path d=\"M 21.38875 95.307187 \n",
+ "L 411.98875 95.307187 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_6\">\n",
+ " <path d=\"M 21.38875 12.147188 \n",
+ "L 411.98875 12.147188 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"legend_1\">\n",
+ " <g id=\"line2d_24\">\n",
+ " <path d=\"M 422.78875 17.04 \n",
+ "L 446.78875 17.04 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_25\"/>\n",
+ " <g id=\"text_12\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 49.609375 33.6875 \n",
+ "Q 49.609375 40.875 46.484375 44.671875 \n",
+ "Q 43.359375 48.484375 37.5 48.484375 \n",
+ "Q 33.5 48.484375 29.859375 46.4375 \n",
+ "Q 26.21875 44.390625 23.390625 40.484375 \n",
+ "Q 20.609375 36.625 18.9375 31.15625 \n",
+ "Q 17.28125 25.6875 17.28125 20.3125 \n",
+ "Q 17.28125 13.484375 20.40625 9.796875 \n",
+ "Q 23.53125 6.109375 29.296875 6.109375 \n",
+ "Q 33.546875 6.109375 37.1875 8.109375 \n",
+ "Q 40.828125 10.109375 43.40625 13.921875 \n",
+ "Q 46.1875 17.921875 47.890625 23.34375 \n",
+ "Q 49.609375 28.765625 49.609375 33.6875 \n",
+ "M 21.78125 46.390625 \n",
+ "Q 25.390625 51.125 30.296875 53.5625 \n",
+ "Q 35.203125 56 41.21875 56 \n",
+ "Q 49.609375 56 54.25 50.5 \n",
+ "Q 58.890625 45.015625 58.890625 35.109375 \n",
+ "Q 58.890625 27 56 19.65625 \n",
+ "Q 53.125 12.3125 47.703125 6.5 \n",
+ "Q 44.09375 2.640625 39.546875 0.609375 \n",
+ "Q 35.015625 -1.421875 29.984375 -1.421875 \n",
+ "Q 24.171875 -1.421875 20.21875 1 \n",
+ "Q 16.265625 3.421875 14.3125 8.203125 \n",
+ "L 8.6875 -20.796875 \n",
+ "L -0.296875 -20.796875 \n",
+ "L 14.40625 54.6875 \n",
+ "L 23.390625 54.6875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Oblique-70\"/>\n",
+ " <path d=\"M 31 75.875 \n",
+ "Q 24.46875 64.65625 21.28125 53.65625 \n",
+ "Q 18.109375 42.671875 18.109375 31.390625 \n",
+ "Q 18.109375 20.125 21.3125 9.0625 \n",
+ "Q 24.515625 -2 31 -13.1875 \n",
+ "L 23.1875 -13.1875 \n",
+ "Q 15.875 -1.703125 12.234375 9.375 \n",
+ "Q 8.59375 20.453125 8.59375 31.390625 \n",
+ "Q 8.59375 42.28125 12.203125 53.3125 \n",
+ "Q 15.828125 64.359375 23.1875 75.875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-28\"/>\n",
+ " <path d=\"M 49.03125 39.796875 \n",
+ "Q 46.734375 40.875 44.453125 41.375 \n",
+ "Q 42.1875 41.890625 39.890625 41.890625 \n",
+ "Q 33.15625 41.890625 29.515625 37.5625 \n",
+ "Q 25.875 33.25 25.875 25.203125 \n",
+ "L 25.875 0 \n",
+ "L 8.40625 0 \n",
+ "L 8.40625 54.6875 \n",
+ "L 25.875 54.6875 \n",
+ "L 25.875 45.703125 \n",
+ "Q 29.25 51.078125 33.609375 53.53125 \n",
+ "Q 37.984375 56 44.09375 56 \n",
+ "Q 44.96875 56 45.984375 55.921875 \n",
+ "Q 47.015625 55.859375 48.96875 55.609375 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Bold-72\"/>\n",
+ " <path d=\"M 28.609375 0 \n",
+ "L 0.78125 72.90625 \n",
+ "L 11.078125 72.90625 \n",
+ "L 34.1875 11.53125 \n",
+ "L 57.328125 72.90625 \n",
+ "L 67.578125 72.90625 \n",
+ "L 39.796875 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-56\"/>\n",
+ " <path d=\"M 21 76.421875 \n",
+ "L 21 -23.578125 \n",
+ "L 12.703125 -23.578125 \n",
+ "L 12.703125 76.421875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-7c\"/>\n",
+ " <path d=\"M 8.015625 75.875 \n",
+ "L 15.828125 75.875 \n",
+ "Q 23.140625 64.359375 26.78125 53.3125 \n",
+ "Q 30.421875 42.28125 30.421875 31.390625 \n",
+ "Q 30.421875 20.453125 26.78125 9.375 \n",
+ "Q 23.140625 -1.703125 15.828125 -13.1875 \n",
+ "L 8.015625 -13.1875 \n",
+ "Q 14.5 -2 17.703125 9.0625 \n",
+ "Q 20.90625 20.125 20.90625 31.390625 \n",
+ "Q 20.90625 42.671875 17.703125 53.65625 \n",
+ "Q 14.5 64.65625 8.015625 75.875 \n",
+ "\" id=\"DejaVuSans-29\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 21.24)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_26\">\n",
+ " <path d=\"M 422.78875 35.16 \n",
+ "L 446.78875 35.16 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_27\"/>\n",
+ " <g id=\"text_13\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 34.1875 63.1875 \n",
+ "L 20.796875 26.90625 \n",
+ "L 47.609375 26.90625 \n",
+ "z\n",
+ "M 28.609375 72.90625 \n",
+ "L 39.796875 72.90625 \n",
+ "L 67.578125 0 \n",
+ "L 57.328125 0 \n",
+ "L 50.6875 18.703125 \n",
+ "L 17.828125 18.703125 \n",
+ "L 11.1875 0 \n",
+ "L 0.78125 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-41\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 39.36)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_28\">\n",
+ " <path d=\"M 422.78875 53.28 \n",
+ "L 446.78875 53.28 \n",
+ "\" style=\"fill:none;stroke:#0504aa;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_29\"/>\n",
+ " <g id=\"text_14\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 46 62.703125 \n",
+ "L 46 35.5 \n",
+ "L 73.1875 35.5 \n",
+ "L 73.1875 27.203125 \n",
+ "L 46 27.203125 \n",
+ "L 46 0 \n",
+ "L 37.796875 0 \n",
+ "L 37.796875 27.203125 \n",
+ "L 10.59375 27.203125 \n",
+ "L 10.59375 35.5 \n",
+ "L 37.796875 35.5 \n",
+ "L 37.796875 62.703125 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-2b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 57.48)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(222.866211 0.578125)\" xlink:href=\"#DejaVuSans-2b\"/>\n",
+ " <use transform=\"translate(326.137695 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(376.411133 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(427.03125 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(460.722656 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(512.822266 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_30\">\n",
+ " <path d=\"M 422.78875 71.4 \n",
+ "L 446.78875 71.4 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_31\"/>\n",
+ " <g id=\"text_15\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}|s)\\ p(\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 75.6)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " <use transform=\"translate(360.658855 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(424.135417 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(463.149089 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(513.422527 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(564.042644 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(597.73405 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(649.83366 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_32\"/>\n",
+ " <g id=\"line2d_33\">\n",
+ " <g>\n",
+ " <use x=\"434.78875\" xlink:href=\"#m238277e9c2\" y=\"88.869375\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_16\">\n",
+ " <!-- true rattlesnake location -->\n",
+ " <defs>\n",
+ " <path d=\"M 40.578125 0 \n",
+ "L 40.578125 7.625 \n",
+ "Q 34.515625 -1.171875 24.125 -1.171875 \n",
+ "Q 19.53125 -1.171875 15.546875 0.578125 \n",
+ "Q 11.578125 2.34375 9.640625 5 \n",
+ "Q 7.71875 7.671875 6.9375 11.53125 \n",
+ "Q 6.390625 14.109375 6.390625 19.734375 \n",
+ "L 6.390625 51.859375 \n",
+ "L 15.1875 51.859375 \n",
+ "L 15.1875 23.09375 \n",
+ "Q 15.1875 16.21875 15.71875 13.8125 \n",
+ "Q 16.546875 10.359375 19.234375 8.375 \n",
+ "Q 21.921875 6.390625 25.875 6.390625 \n",
+ "Q 29.828125 6.390625 33.296875 8.421875 \n",
+ "Q 36.765625 10.453125 38.203125 13.9375 \n",
+ "Q 39.65625 17.4375 39.65625 24.078125 \n",
+ "L 39.65625 51.859375 \n",
+ "L 48.4375 51.859375 \n",
+ "L 48.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-75\"/>\n",
+ " <path d=\"M 42.09375 16.703125 \n",
+ "L 51.171875 15.578125 \n",
+ "Q 49.03125 7.625 43.21875 3.21875 \n",
+ "Q 37.40625 -1.171875 28.375 -1.171875 \n",
+ "Q 17 -1.171875 10.328125 5.828125 \n",
+ "Q 3.65625 12.84375 3.65625 25.484375 \n",
+ "Q 3.65625 38.578125 10.390625 45.796875 \n",
+ "Q 17.140625 53.03125 27.875 53.03125 \n",
+ "Q 38.28125 53.03125 44.875 45.953125 \n",
+ "Q 51.46875 38.875 51.46875 26.03125 \n",
+ "Q 51.46875 25.25 51.421875 23.6875 \n",
+ "L 12.75 23.6875 \n",
+ "Q 13.234375 15.140625 17.578125 10.59375 \n",
+ "Q 21.921875 6.0625 28.421875 6.0625 \n",
+ "Q 33.25 6.0625 36.671875 8.59375 \n",
+ "Q 40.09375 11.140625 42.09375 16.703125 \n",
+ "M 13.234375 30.90625 \n",
+ "L 42.1875 30.90625 \n",
+ "Q 41.609375 37.453125 38.875 40.71875 \n",
+ "Q 34.671875 45.796875 27.984375 45.796875 \n",
+ "Q 21.921875 45.796875 17.796875 41.75 \n",
+ "Q 13.671875 37.703125 13.234375 30.90625 \n",
+ "\" id=\"ArialMT-65\"/>\n",
+ " <path d=\"M 3.078125 15.484375 \n",
+ "L 11.765625 16.84375 \n",
+ "Q 12.5 11.625 15.84375 8.84375 \n",
+ "Q 19.1875 6.0625 25.203125 6.0625 \n",
+ "Q 31.25 6.0625 34.171875 8.515625 \n",
+ "Q 37.109375 10.984375 37.109375 14.3125 \n",
+ "Q 37.109375 17.28125 34.515625 19 \n",
+ "Q 32.71875 20.171875 25.53125 21.96875 \n",
+ "Q 15.875 24.421875 12.140625 26.203125 \n",
+ "Q 8.40625 27.984375 6.46875 31.125 \n",
+ "Q 4.546875 34.28125 4.546875 38.09375 \n",
+ "Q 4.546875 41.546875 6.125 44.5 \n",
+ "Q 7.71875 47.46875 10.453125 49.421875 \n",
+ "Q 12.5 50.921875 16.03125 51.96875 \n",
+ "Q 19.578125 53.03125 23.640625 53.03125 \n",
+ "Q 29.734375 53.03125 34.34375 51.265625 \n",
+ "Q 38.96875 49.515625 41.15625 46.5 \n",
+ "Q 43.359375 43.5 44.1875 38.484375 \n",
+ "L 35.59375 37.3125 \n",
+ "Q 35.015625 41.3125 32.203125 43.546875 \n",
+ "Q 29.390625 45.796875 24.265625 45.796875 \n",
+ "Q 18.21875 45.796875 15.625 43.796875 \n",
+ "Q 13.03125 41.796875 13.03125 39.109375 \n",
+ "Q 13.03125 37.40625 14.109375 36.03125 \n",
+ "Q 15.1875 34.625 17.484375 33.6875 \n",
+ "Q 18.796875 33.203125 25.25 31.453125 \n",
+ "Q 34.578125 28.953125 38.25 27.359375 \n",
+ "Q 41.9375 25.78125 44.03125 22.75 \n",
+ "Q 46.140625 19.734375 46.140625 15.234375 \n",
+ "Q 46.140625 10.84375 43.578125 6.953125 \n",
+ "Q 41.015625 3.078125 36.171875 0.953125 \n",
+ "Q 31.34375 -1.171875 25.25 -1.171875 \n",
+ "Q 15.140625 -1.171875 9.84375 3.03125 \n",
+ "Q 4.546875 7.234375 3.078125 15.484375 \n",
+ "\" id=\"ArialMT-73\"/>\n",
+ " <path d=\"M 6.640625 0 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 30.765625 \n",
+ "L 36.234375 51.859375 \n",
+ "L 47.609375 51.859375 \n",
+ "L 27.78125 32.625 \n",
+ "L 49.609375 0 \n",
+ "L 38.765625 0 \n",
+ "L 21.625 26.515625 \n",
+ "L 15.4375 20.5625 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(456.38875 93.069375)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"27.783203\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"61.083984\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"116.699219\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"200.097656\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"233.398438\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"289.013672\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"316.796875\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"344.580078\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"366.796875\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"422.412109\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"472.412109\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"528.027344\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"583.642578\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"633.642578\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"689.257812\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"717.041016\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"739.257812\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"794.873047\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"844.873047\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"900.488281\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"928.271484\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"950.488281\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"1006.103516\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <defs>\n",
+ " <clipPath id=\"p5ffe60a06b\">\n",
+ " <rect height=\"83.16\" width=\"390.6\" x=\"21.38875\" y=\"12.147188\"/>\n",
+ " </clipPath>\n",
+ " </defs>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x112d43710>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "spikes_and_inference(r_V_tuning_curve_sigma = 7, r_A_tuning_curve_sigma = 10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now you can play interactively with the parameters of the simulation using these sliders, and watch the decoded likelihoods shift around. Every time you change a parameter, new sets of spikes are generated and used to infer $s$.\n",
+ "\n",
+ "For the simulation to be interactive, you'll have to download this notebook."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+ "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
+ "<svg height=\"214pt\" version=\"1.1\" viewBox=\"0 0 613 214\" width=\"613pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+ " <defs>\n",
+ " <style type=\"text/css\">\n",
+ "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
+ " </style>\n",
+ " </defs>\n",
+ " <g id=\"figure_1\">\n",
+ " <g id=\"patch_1\">\n",
+ " <path d=\"M 0 214.504063 \n",
+ "L 613.778594 214.504063 \n",
+ "L 613.778594 -0 \n",
+ "L 0 -0 \n",
+ "z\n",
+ "\" style=\"fill:#ffffff;\"/>\n",
+ " </g>\n",
+ " <g id=\"axes_1\">\n",
+ " <g id=\"patch_2\">\n",
+ " <path d=\"M 39.381719 86.378906 \n",
+ "L 429.981719 86.378906 \n",
+ "L 429.981719 10.778906 \n",
+ "L 39.381719 10.778906 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_1\">\n",
+ " <g id=\"xtick_1\">\n",
+ " <g id=\"line2d_1\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 39.381719 86.378906 \n",
+ "L 39.381719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_2\"/>\n",
+ " <g id=\"text_1\">\n",
+ " <!-- −40 -->\n",
+ " <defs>\n",
+ " <path d=\"M 52.828125 31.203125 \n",
+ "L 5.5625 31.203125 \n",
+ "L 5.5625 39.40625 \n",
+ "L 52.828125 39.40625 \n",
+ "z\n",
+ "\" id=\"ArialMT-2212\"/>\n",
+ " <path d=\"M 32.328125 0 \n",
+ "L 32.328125 17.140625 \n",
+ "L 1.265625 17.140625 \n",
+ "L 1.265625 25.203125 \n",
+ "L 33.9375 71.578125 \n",
+ "L 41.109375 71.578125 \n",
+ "L 41.109375 25.203125 \n",
+ "L 50.78125 25.203125 \n",
+ "L 50.78125 17.140625 \n",
+ "L 41.109375 17.140625 \n",
+ "L 41.109375 0 \n",
+ "z\n",
+ "M 32.328125 25.203125 \n",
+ "L 32.328125 57.46875 \n",
+ "L 9.90625 25.203125 \n",
+ "z\n",
+ "\" id=\"ArialMT-34\"/>\n",
+ " <path d=\"M 4.15625 35.296875 \n",
+ "Q 4.15625 48 6.765625 55.734375 \n",
+ "Q 9.375 63.484375 14.515625 67.671875 \n",
+ "Q 19.671875 71.875 27.484375 71.875 \n",
+ "Q 33.25 71.875 37.59375 69.546875 \n",
+ "Q 41.9375 67.234375 44.765625 62.859375 \n",
+ "Q 47.609375 58.5 49.21875 52.21875 \n",
+ "Q 50.828125 45.953125 50.828125 35.296875 \n",
+ "Q 50.828125 22.703125 48.234375 14.96875 \n",
+ "Q 45.65625 7.234375 40.5 3 \n",
+ "Q 35.359375 -1.21875 27.484375 -1.21875 \n",
+ "Q 17.140625 -1.21875 11.234375 6.203125 \n",
+ "Q 4.15625 15.140625 4.15625 35.296875 \n",
+ "M 13.1875 35.296875 \n",
+ "Q 13.1875 17.671875 17.3125 11.828125 \n",
+ "Q 21.4375 6 27.484375 6 \n",
+ "Q 33.546875 6 37.671875 11.859375 \n",
+ "Q 41.796875 17.71875 41.796875 35.296875 \n",
+ "Q 41.796875 52.984375 37.671875 58.78125 \n",
+ "Q 33.546875 64.59375 27.390625 64.59375 \n",
+ "Q 21.34375 64.59375 17.71875 59.46875 \n",
+ "Q 13.1875 52.9375 13.1875 35.296875 \n",
+ "\" id=\"ArialMT-30\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(30.900469 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_2\">\n",
+ " <g id=\"line2d_3\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 88.206719 86.378906 \n",
+ "L 88.206719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_4\"/>\n",
+ " <g id=\"text_2\">\n",
+ " <!-- −30 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.203125 18.890625 \n",
+ "L 12.984375 20.0625 \n",
+ "Q 14.5 12.59375 18.140625 9.296875 \n",
+ "Q 21.78125 6 27 6 \n",
+ "Q 33.203125 6 37.46875 10.296875 \n",
+ "Q 41.75 14.59375 41.75 20.953125 \n",
+ "Q 41.75 27 37.796875 30.921875 \n",
+ "Q 33.84375 34.859375 27.734375 34.859375 \n",
+ "Q 25.25 34.859375 21.53125 33.890625 \n",
+ "L 22.515625 41.609375 \n",
+ "Q 23.390625 41.5 23.921875 41.5 \n",
+ "Q 29.546875 41.5 34.03125 44.421875 \n",
+ "Q 38.53125 47.359375 38.53125 53.46875 \n",
+ "Q 38.53125 58.296875 35.25 61.46875 \n",
+ "Q 31.984375 64.65625 26.8125 64.65625 \n",
+ "Q 21.6875 64.65625 18.265625 61.421875 \n",
+ "Q 14.84375 58.203125 13.875 51.765625 \n",
+ "L 5.078125 53.328125 \n",
+ "Q 6.6875 62.15625 12.390625 67.015625 \n",
+ "Q 18.109375 71.875 26.609375 71.875 \n",
+ "Q 32.46875 71.875 37.390625 69.359375 \n",
+ "Q 42.328125 66.84375 44.9375 62.5 \n",
+ "Q 47.5625 58.15625 47.5625 53.265625 \n",
+ "Q 47.5625 48.640625 45.0625 44.828125 \n",
+ "Q 42.578125 41.015625 37.703125 38.765625 \n",
+ "Q 44.046875 37.3125 47.5625 32.6875 \n",
+ "Q 51.078125 28.078125 51.078125 21.140625 \n",
+ "Q 51.078125 11.765625 44.234375 5.25 \n",
+ "Q 37.40625 -1.265625 26.953125 -1.265625 \n",
+ "Q 17.53125 -1.265625 11.296875 4.34375 \n",
+ "Q 5.078125 9.96875 4.203125 18.890625 \n",
+ "\" id=\"ArialMT-33\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(79.725469 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_3\">\n",
+ " <g id=\"line2d_5\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 137.031719 86.378906 \n",
+ "L 137.031719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_6\"/>\n",
+ " <g id=\"text_3\">\n",
+ " <!-- −20 -->\n",
+ " <defs>\n",
+ " <path d=\"M 50.34375 8.453125 \n",
+ "L 50.34375 0 \n",
+ "L 3.03125 0 \n",
+ "Q 2.9375 3.171875 4.046875 6.109375 \n",
+ "Q 5.859375 10.9375 9.828125 15.625 \n",
+ "Q 13.8125 20.3125 21.34375 26.46875 \n",
+ "Q 33.015625 36.03125 37.109375 41.625 \n",
+ "Q 41.21875 47.21875 41.21875 52.203125 \n",
+ "Q 41.21875 57.421875 37.46875 61 \n",
+ "Q 33.734375 64.59375 27.734375 64.59375 \n",
+ "Q 21.390625 64.59375 17.578125 60.78125 \n",
+ "Q 13.765625 56.984375 13.71875 50.25 \n",
+ "L 4.6875 51.171875 \n",
+ "Q 5.609375 61.28125 11.65625 66.578125 \n",
+ "Q 17.71875 71.875 27.9375 71.875 \n",
+ "Q 38.234375 71.875 44.234375 66.15625 \n",
+ "Q 50.25 60.453125 50.25 52 \n",
+ "Q 50.25 47.703125 48.484375 43.546875 \n",
+ "Q 46.734375 39.40625 42.65625 34.8125 \n",
+ "Q 38.578125 30.21875 29.109375 22.21875 \n",
+ "Q 21.1875 15.578125 18.9375 13.203125 \n",
+ "Q 16.703125 10.84375 15.234375 8.453125 \n",
+ "z\n",
+ "\" id=\"ArialMT-32\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(128.550469 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_4\">\n",
+ " <g id=\"line2d_7\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 185.856719 86.378906 \n",
+ "L 185.856719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_8\"/>\n",
+ " <g id=\"text_4\">\n",
+ " <!-- −10 -->\n",
+ " <defs>\n",
+ " <path d=\"M 37.25 0 \n",
+ "L 28.46875 0 \n",
+ "L 28.46875 56 \n",
+ "Q 25.296875 52.984375 20.140625 49.953125 \n",
+ "Q 14.984375 46.921875 10.890625 45.40625 \n",
+ "L 10.890625 53.90625 \n",
+ "Q 18.265625 57.375 23.78125 62.296875 \n",
+ "Q 29.296875 67.234375 31.59375 71.875 \n",
+ "L 37.25 71.875 \n",
+ "z\n",
+ "\" id=\"ArialMT-31\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(177.375469 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_5\">\n",
+ " <g id=\"line2d_9\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 234.681719 86.378906 \n",
+ "L 234.681719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_10\"/>\n",
+ " <g id=\"text_5\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(231.90125 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_6\">\n",
+ " <g id=\"line2d_11\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 283.506719 86.378906 \n",
+ "L 283.506719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_12\"/>\n",
+ " <g id=\"text_6\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(277.945781 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_7\">\n",
+ " <g id=\"line2d_13\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 332.331719 86.378906 \n",
+ "L 332.331719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_14\"/>\n",
+ " <g id=\"text_7\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(326.770781 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_8\">\n",
+ " <g id=\"line2d_15\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 381.156719 86.378906 \n",
+ "L 381.156719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_16\"/>\n",
+ " <g id=\"text_8\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(375.595781 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_9\">\n",
+ " <g id=\"line2d_17\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 429.981719 86.378906 \n",
+ "L 429.981719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_18\"/>\n",
+ " <g id=\"text_9\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(424.420781 100.536719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_10\">\n",
+ " <!-- preferred location -->\n",
+ " <defs>\n",
+ " <path d=\"M 6.59375 -19.875 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.59375 51.859375 \n",
+ "L 14.59375 45.125 \n",
+ "Q 17.4375 49.078125 21 51.046875 \n",
+ "Q 24.5625 53.03125 29.640625 53.03125 \n",
+ "Q 36.28125 53.03125 41.359375 49.609375 \n",
+ "Q 46.4375 46.1875 49.015625 39.953125 \n",
+ "Q 51.609375 33.734375 51.609375 26.3125 \n",
+ "Q 51.609375 18.359375 48.75 11.984375 \n",
+ "Q 45.90625 5.609375 40.453125 2.21875 \n",
+ "Q 35.015625 -1.171875 29 -1.171875 \n",
+ "Q 24.609375 -1.171875 21.109375 0.6875 \n",
+ "Q 17.625 2.546875 15.375 5.375 \n",
+ "L 15.375 -19.875 \n",
+ "z\n",
+ "M 14.546875 25.640625 \n",
+ "Q 14.546875 15.625 18.59375 10.84375 \n",
+ "Q 22.65625 6.0625 28.421875 6.0625 \n",
+ "Q 34.28125 6.0625 38.453125 11.015625 \n",
+ "Q 42.625 15.96875 42.625 26.375 \n",
+ "Q 42.625 36.28125 38.546875 41.203125 \n",
+ "Q 34.46875 46.140625 28.8125 46.140625 \n",
+ "Q 23.1875 46.140625 18.859375 40.890625 \n",
+ "Q 14.546875 35.640625 14.546875 25.640625 \n",
+ "\" id=\"ArialMT-70\"/>\n",
+ " <path d=\"M 6.5 0 \n",
+ "L 6.5 51.859375 \n",
+ "L 14.40625 51.859375 \n",
+ "L 14.40625 44 \n",
+ "Q 17.4375 49.515625 20 51.265625 \n",
+ "Q 22.5625 53.03125 25.640625 53.03125 \n",
+ "Q 30.078125 53.03125 34.671875 50.203125 \n",
+ "L 31.640625 42.046875 \n",
+ "Q 28.421875 43.953125 25.203125 43.953125 \n",
+ "Q 22.3125 43.953125 20.015625 42.21875 \n",
+ "Q 17.71875 40.484375 16.75 37.40625 \n",
+ "Q 15.28125 32.71875 15.28125 27.15625 \n",
+ "L 15.28125 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-72\"/>\n",
+ " <path d=\"M 42.09375 16.703125 \n",
+ "L 51.171875 15.578125 \n",
+ "Q 49.03125 7.625 43.21875 3.21875 \n",
+ "Q 37.40625 -1.171875 28.375 -1.171875 \n",
+ "Q 17 -1.171875 10.328125 5.828125 \n",
+ "Q 3.65625 12.84375 3.65625 25.484375 \n",
+ "Q 3.65625 38.578125 10.390625 45.796875 \n",
+ "Q 17.140625 53.03125 27.875 53.03125 \n",
+ "Q 38.28125 53.03125 44.875 45.953125 \n",
+ "Q 51.46875 38.875 51.46875 26.03125 \n",
+ "Q 51.46875 25.25 51.421875 23.6875 \n",
+ "L 12.75 23.6875 \n",
+ "Q 13.234375 15.140625 17.578125 10.59375 \n",
+ "Q 21.921875 6.0625 28.421875 6.0625 \n",
+ "Q 33.25 6.0625 36.671875 8.59375 \n",
+ "Q 40.09375 11.140625 42.09375 16.703125 \n",
+ "M 13.234375 30.90625 \n",
+ "L 42.1875 30.90625 \n",
+ "Q 41.609375 37.453125 38.875 40.71875 \n",
+ "Q 34.671875 45.796875 27.984375 45.796875 \n",
+ "Q 21.921875 45.796875 17.796875 41.75 \n",
+ "Q 13.671875 37.703125 13.234375 30.90625 \n",
+ "\" id=\"ArialMT-65\"/>\n",
+ " <path d=\"M 8.6875 0 \n",
+ "L 8.6875 45.015625 \n",
+ "L 0.921875 45.015625 \n",
+ "L 0.921875 51.859375 \n",
+ "L 8.6875 51.859375 \n",
+ "L 8.6875 57.375 \n",
+ "Q 8.6875 62.59375 9.625 65.140625 \n",
+ "Q 10.890625 68.5625 14.078125 70.671875 \n",
+ "Q 17.28125 72.796875 23.046875 72.796875 \n",
+ "Q 26.765625 72.796875 31.25 71.921875 \n",
+ "L 29.9375 64.265625 \n",
+ "Q 27.203125 64.75 24.75 64.75 \n",
+ "Q 20.75 64.75 19.09375 63.03125 \n",
+ "Q 17.4375 61.328125 17.4375 56.640625 \n",
+ "L 17.4375 51.859375 \n",
+ "L 27.546875 51.859375 \n",
+ "L 27.546875 45.015625 \n",
+ "L 17.4375 45.015625 \n",
+ "L 17.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-66\"/>\n",
+ " <path d=\"M 40.234375 0 \n",
+ "L 40.234375 6.546875 \n",
+ "Q 35.296875 -1.171875 25.734375 -1.171875 \n",
+ "Q 19.53125 -1.171875 14.328125 2.25 \n",
+ "Q 9.125 5.671875 6.265625 11.796875 \n",
+ "Q 3.421875 17.921875 3.421875 25.875 \n",
+ "Q 3.421875 33.640625 6 39.96875 \n",
+ "Q 8.59375 46.296875 13.765625 49.65625 \n",
+ "Q 18.953125 53.03125 25.34375 53.03125 \n",
+ "Q 30.03125 53.03125 33.6875 51.046875 \n",
+ "Q 37.359375 49.078125 39.65625 45.90625 \n",
+ "L 39.65625 71.578125 \n",
+ "L 48.390625 71.578125 \n",
+ "L 48.390625 0 \n",
+ "z\n",
+ "M 12.453125 25.875 \n",
+ "Q 12.453125 15.921875 16.640625 10.984375 \n",
+ "Q 20.84375 6.0625 26.5625 6.0625 \n",
+ "Q 32.328125 6.0625 36.34375 10.765625 \n",
+ "Q 40.375 15.484375 40.375 25.140625 \n",
+ "Q 40.375 35.796875 36.265625 40.765625 \n",
+ "Q 32.171875 45.75 26.171875 45.75 \n",
+ "Q 20.3125 45.75 16.375 40.96875 \n",
+ "Q 12.453125 36.1875 12.453125 25.875 \n",
+ "\" id=\"ArialMT-64\"/>\n",
+ " <path id=\"ArialMT-20\"/>\n",
+ " <path d=\"M 6.390625 0 \n",
+ "L 6.390625 71.578125 \n",
+ "L 15.1875 71.578125 \n",
+ "L 15.1875 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6c\"/>\n",
+ " <path d=\"M 3.328125 25.921875 \n",
+ "Q 3.328125 40.328125 11.328125 47.265625 \n",
+ "Q 18.015625 53.03125 27.640625 53.03125 \n",
+ "Q 38.328125 53.03125 45.109375 46.015625 \n",
+ "Q 51.90625 39.015625 51.90625 26.65625 \n",
+ "Q 51.90625 16.65625 48.90625 10.90625 \n",
+ "Q 45.90625 5.171875 40.15625 2 \n",
+ "Q 34.421875 -1.171875 27.640625 -1.171875 \n",
+ "Q 16.75 -1.171875 10.03125 5.8125 \n",
+ "Q 3.328125 12.796875 3.328125 25.921875 \n",
+ "M 12.359375 25.921875 \n",
+ "Q 12.359375 15.96875 16.703125 11.015625 \n",
+ "Q 21.046875 6.0625 27.640625 6.0625 \n",
+ "Q 34.1875 6.0625 38.53125 11.03125 \n",
+ "Q 42.875 16.015625 42.875 26.21875 \n",
+ "Q 42.875 35.84375 38.5 40.796875 \n",
+ "Q 34.125 45.75 27.640625 45.75 \n",
+ "Q 21.046875 45.75 16.703125 40.8125 \n",
+ "Q 12.359375 35.890625 12.359375 25.921875 \n",
+ "\" id=\"ArialMT-6f\"/>\n",
+ " <path d=\"M 40.4375 19 \n",
+ "L 49.078125 17.875 \n",
+ "Q 47.65625 8.9375 41.8125 3.875 \n",
+ "Q 35.984375 -1.171875 27.484375 -1.171875 \n",
+ "Q 16.84375 -1.171875 10.375 5.78125 \n",
+ "Q 3.90625 12.75 3.90625 25.734375 \n",
+ "Q 3.90625 34.125 6.6875 40.421875 \n",
+ "Q 9.46875 46.734375 15.15625 49.875 \n",
+ "Q 20.84375 53.03125 27.546875 53.03125 \n",
+ "Q 35.984375 53.03125 41.359375 48.75 \n",
+ "Q 46.734375 44.484375 48.25 36.625 \n",
+ "L 39.703125 35.296875 \n",
+ "Q 38.484375 40.53125 35.375 43.15625 \n",
+ "Q 32.28125 45.796875 27.875 45.796875 \n",
+ "Q 21.234375 45.796875 17.078125 41.03125 \n",
+ "Q 12.9375 36.28125 12.9375 25.984375 \n",
+ "Q 12.9375 15.53125 16.9375 10.796875 \n",
+ "Q 20.953125 6.0625 27.390625 6.0625 \n",
+ "Q 32.5625 6.0625 36.03125 9.234375 \n",
+ "Q 39.5 12.40625 40.4375 19 \n",
+ "\" id=\"ArialMT-63\"/>\n",
+ " <path d=\"M 40.4375 6.390625 \n",
+ "Q 35.546875 2.25 31.03125 0.53125 \n",
+ "Q 26.515625 -1.171875 21.34375 -1.171875 \n",
+ "Q 12.796875 -1.171875 8.203125 3 \n",
+ "Q 3.609375 7.171875 3.609375 13.671875 \n",
+ "Q 3.609375 17.484375 5.34375 20.625 \n",
+ "Q 7.078125 23.78125 9.890625 25.6875 \n",
+ "Q 12.703125 27.59375 16.21875 28.5625 \n",
+ "Q 18.796875 29.25 24.03125 29.890625 \n",
+ "Q 34.671875 31.15625 39.703125 32.90625 \n",
+ "Q 39.75 34.71875 39.75 35.203125 \n",
+ "Q 39.75 40.578125 37.25 42.78125 \n",
+ "Q 33.890625 45.75 27.25 45.75 \n",
+ "Q 21.046875 45.75 18.09375 43.578125 \n",
+ "Q 15.140625 41.40625 13.71875 35.890625 \n",
+ "L 5.125 37.0625 \n",
+ "Q 6.296875 42.578125 8.984375 45.96875 \n",
+ "Q 11.671875 49.359375 16.75 51.1875 \n",
+ "Q 21.828125 53.03125 28.515625 53.03125 \n",
+ "Q 35.15625 53.03125 39.296875 51.46875 \n",
+ "Q 43.453125 49.90625 45.40625 47.53125 \n",
+ "Q 47.359375 45.171875 48.140625 41.546875 \n",
+ "Q 48.578125 39.3125 48.578125 33.453125 \n",
+ "L 48.578125 21.734375 \n",
+ "Q 48.578125 9.46875 49.140625 6.21875 \n",
+ "Q 49.703125 2.984375 51.375 0 \n",
+ "L 42.1875 0 \n",
+ "Q 40.828125 2.734375 40.4375 6.390625 \n",
+ "M 39.703125 26.03125 \n",
+ "Q 34.90625 24.078125 25.34375 22.703125 \n",
+ "Q 19.921875 21.921875 17.671875 20.9375 \n",
+ "Q 15.4375 19.96875 14.203125 18.09375 \n",
+ "Q 12.984375 16.21875 12.984375 13.921875 \n",
+ "Q 12.984375 10.40625 15.640625 8.0625 \n",
+ "Q 18.3125 5.71875 23.4375 5.71875 \n",
+ "Q 28.515625 5.71875 32.46875 7.9375 \n",
+ "Q 36.421875 10.15625 38.28125 14.015625 \n",
+ "Q 39.703125 17 39.703125 22.796875 \n",
+ "z\n",
+ "\" id=\"ArialMT-61\"/>\n",
+ " <path d=\"M 25.78125 7.859375 \n",
+ "L 27.046875 0.09375 \n",
+ "Q 23.34375 -0.6875 20.40625 -0.6875 \n",
+ "Q 15.625 -0.6875 12.984375 0.828125 \n",
+ "Q 10.359375 2.34375 9.28125 4.8125 \n",
+ "Q 8.203125 7.28125 8.203125 15.1875 \n",
+ "L 8.203125 45.015625 \n",
+ "L 1.765625 45.015625 \n",
+ "L 1.765625 51.859375 \n",
+ "L 8.203125 51.859375 \n",
+ "L 8.203125 64.703125 \n",
+ "L 16.9375 69.96875 \n",
+ "L 16.9375 51.859375 \n",
+ "L 25.78125 51.859375 \n",
+ "L 25.78125 45.015625 \n",
+ "L 16.9375 45.015625 \n",
+ "L 16.9375 14.703125 \n",
+ "Q 16.9375 10.9375 17.40625 9.859375 \n",
+ "Q 17.875 8.796875 18.921875 8.15625 \n",
+ "Q 19.96875 7.515625 21.921875 7.515625 \n",
+ "Q 23.390625 7.515625 25.78125 7.859375 \n",
+ "\" id=\"ArialMT-74\"/>\n",
+ " <path d=\"M 6.640625 61.46875 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 61.46875 \n",
+ "z\n",
+ "M 6.640625 0 \n",
+ "L 6.640625 51.859375 \n",
+ "L 15.4375 51.859375 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-69\"/>\n",
+ " <path d=\"M 6.59375 0 \n",
+ "L 6.59375 51.859375 \n",
+ "L 14.5 51.859375 \n",
+ "L 14.5 44.484375 \n",
+ "Q 20.21875 53.03125 31 53.03125 \n",
+ "Q 35.6875 53.03125 39.625 51.34375 \n",
+ "Q 43.5625 49.65625 45.515625 46.921875 \n",
+ "Q 47.46875 44.1875 48.25 40.4375 \n",
+ "Q 48.734375 37.984375 48.734375 31.890625 \n",
+ "L 48.734375 0 \n",
+ "L 39.9375 0 \n",
+ "L 39.9375 31.546875 \n",
+ "Q 39.9375 36.921875 38.90625 39.578125 \n",
+ "Q 37.890625 42.234375 35.28125 43.8125 \n",
+ "Q 32.671875 45.40625 29.15625 45.40625 \n",
+ "Q 23.53125 45.40625 19.453125 41.84375 \n",
+ "Q 15.375 38.28125 15.375 28.328125 \n",
+ "L 15.375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6e\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(191.883125 114.531875)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"88.916016\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"144.53125\" xlink:href=\"#ArialMT-66\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"227.929688\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"261.230469\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"294.53125\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"350.146484\" xlink:href=\"#ArialMT-64\"/>\n",
+ " <use x=\"405.761719\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"433.544922\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"455.761719\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"511.376953\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"561.376953\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"616.992188\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"644.775391\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"666.992188\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"722.607422\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_2\">\n",
+ " <g id=\"ytick_1\">\n",
+ " <g id=\"line2d_19\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 39.381719 86.378906 \n",
+ "L 429.981719 86.378906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_20\"/>\n",
+ " <g id=\"text_11\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(26.820781 89.957813)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_2\">\n",
+ " <g id=\"line2d_21\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 39.381719 48.578906 \n",
+ "L 429.981719 48.578906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_22\"/>\n",
+ " <g id=\"text_12\">\n",
+ " <!-- 5 -->\n",
+ " <defs>\n",
+ " <path d=\"M 4.15625 18.75 \n",
+ "L 13.375 19.53125 \n",
+ "Q 14.40625 12.796875 18.140625 9.390625 \n",
+ "Q 21.875 6 27.15625 6 \n",
+ "Q 33.5 6 37.890625 10.78125 \n",
+ "Q 42.28125 15.578125 42.28125 23.484375 \n",
+ "Q 42.28125 31 38.0625 35.34375 \n",
+ "Q 33.84375 39.703125 27 39.703125 \n",
+ "Q 22.75 39.703125 19.328125 37.765625 \n",
+ "Q 15.921875 35.84375 13.96875 32.765625 \n",
+ "L 5.71875 33.84375 \n",
+ "L 12.640625 70.609375 \n",
+ "L 48.25 70.609375 \n",
+ "L 48.25 62.203125 \n",
+ "L 19.671875 62.203125 \n",
+ "L 15.828125 42.96875 \n",
+ "Q 22.265625 47.46875 29.34375 47.46875 \n",
+ "Q 38.71875 47.46875 45.15625 40.96875 \n",
+ "Q 51.609375 34.46875 51.609375 24.265625 \n",
+ "Q 51.609375 14.546875 45.953125 7.46875 \n",
+ "Q 39.0625 -1.21875 27.15625 -1.21875 \n",
+ "Q 17.390625 -1.21875 11.203125 4.25 \n",
+ "Q 5.03125 9.71875 4.15625 18.75 \n",
+ "\" id=\"ArialMT-35\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(26.820781 52.157812)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-35\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"ytick_3\">\n",
+ " <g id=\"line2d_23\">\n",
+ " <path clip-path=\"url(#pbb26acfe79)\" d=\"M 39.381719 10.778906 \n",
+ "L 429.981719 10.778906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_24\"/>\n",
+ " <g id=\"text_13\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(21.259844 14.357812)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_14\">\n",
+ " <!-- spike count -->\n",
+ " <defs>\n",
+ " <path d=\"M 3.078125 15.484375 \n",
+ "L 11.765625 16.84375 \n",
+ "Q 12.5 11.625 15.84375 8.84375 \n",
+ "Q 19.1875 6.0625 25.203125 6.0625 \n",
+ "Q 31.25 6.0625 34.171875 8.515625 \n",
+ "Q 37.109375 10.984375 37.109375 14.3125 \n",
+ "Q 37.109375 17.28125 34.515625 19 \n",
+ "Q 32.71875 20.171875 25.53125 21.96875 \n",
+ "Q 15.875 24.421875 12.140625 26.203125 \n",
+ "Q 8.40625 27.984375 6.46875 31.125 \n",
+ "Q 4.546875 34.28125 4.546875 38.09375 \n",
+ "Q 4.546875 41.546875 6.125 44.5 \n",
+ "Q 7.71875 47.46875 10.453125 49.421875 \n",
+ "Q 12.5 50.921875 16.03125 51.96875 \n",
+ "Q 19.578125 53.03125 23.640625 53.03125 \n",
+ "Q 29.734375 53.03125 34.34375 51.265625 \n",
+ "Q 38.96875 49.515625 41.15625 46.5 \n",
+ "Q 43.359375 43.5 44.1875 38.484375 \n",
+ "L 35.59375 37.3125 \n",
+ "Q 35.015625 41.3125 32.203125 43.546875 \n",
+ "Q 29.390625 45.796875 24.265625 45.796875 \n",
+ "Q 18.21875 45.796875 15.625 43.796875 \n",
+ "Q 13.03125 41.796875 13.03125 39.109375 \n",
+ "Q 13.03125 37.40625 14.109375 36.03125 \n",
+ "Q 15.1875 34.625 17.484375 33.6875 \n",
+ "Q 18.796875 33.203125 25.25 31.453125 \n",
+ "Q 34.578125 28.953125 38.25 27.359375 \n",
+ "Q 41.9375 25.78125 44.03125 22.75 \n",
+ "Q 46.140625 19.734375 46.140625 15.234375 \n",
+ "Q 46.140625 10.84375 43.578125 6.953125 \n",
+ "Q 41.015625 3.078125 36.171875 0.953125 \n",
+ "Q 31.34375 -1.171875 25.25 -1.171875 \n",
+ "Q 15.140625 -1.171875 9.84375 3.03125 \n",
+ "Q 4.546875 7.234375 3.078125 15.484375 \n",
+ "\" id=\"ArialMT-73\"/>\n",
+ " <path d=\"M 6.640625 0 \n",
+ "L 6.640625 71.578125 \n",
+ "L 15.4375 71.578125 \n",
+ "L 15.4375 30.765625 \n",
+ "L 36.234375 51.859375 \n",
+ "L 47.609375 51.859375 \n",
+ "L 27.78125 32.625 \n",
+ "L 49.609375 0 \n",
+ "L 38.765625 0 \n",
+ "L 21.625 26.515625 \n",
+ "L 15.4375 20.5625 \n",
+ "L 15.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-6b\"/>\n",
+ " <path d=\"M 40.578125 0 \n",
+ "L 40.578125 7.625 \n",
+ "Q 34.515625 -1.171875 24.125 -1.171875 \n",
+ "Q 19.53125 -1.171875 15.546875 0.578125 \n",
+ "Q 11.578125 2.34375 9.640625 5 \n",
+ "Q 7.71875 7.671875 6.9375 11.53125 \n",
+ "Q 6.390625 14.109375 6.390625 19.734375 \n",
+ "L 6.390625 51.859375 \n",
+ "L 15.1875 51.859375 \n",
+ "L 15.1875 23.09375 \n",
+ "Q 15.1875 16.21875 15.71875 13.8125 \n",
+ "Q 16.546875 10.359375 19.234375 8.375 \n",
+ "Q 21.921875 6.390625 25.875 6.390625 \n",
+ "Q 29.828125 6.390625 33.296875 8.421875 \n",
+ "Q 36.765625 10.453125 38.203125 13.9375 \n",
+ "Q 39.65625 17.4375 39.65625 24.078125 \n",
+ "L 39.65625 51.859375 \n",
+ "L 48.4375 51.859375 \n",
+ "L 48.4375 0 \n",
+ "z\n",
+ "\" id=\"ArialMT-75\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(15.073594 76.399453)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"50\" xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"105.615234\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"127.832031\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"177.832031\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"233.447266\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"261.230469\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"311.230469\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"366.845703\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"422.460938\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"478.076172\" xlink:href=\"#ArialMT-74\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_25\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 4 \n",
+ "C 1.060812 4 2.078319 3.578535 2.828427 2.828427 \n",
+ "C 3.578535 2.078319 4 1.060812 4 0 \n",
+ "C 4 -1.060812 3.578535 -2.078319 2.828427 -2.828427 \n",
+ "C 2.078319 -3.578535 1.060812 -4 0 -4 \n",
+ "C -1.060812 -4 -2.078319 -3.578535 -2.828427 -2.828427 \n",
+ "C -3.578535 -2.078319 -4 -1.060812 -4 0 \n",
+ "C -4 1.060812 -3.578535 2.078319 -2.828427 2.828427 \n",
+ "C -2.078319 3.578535 -1.060812 4 0 4 \n",
+ "z\n",
+ "\" id=\"mc74939113a\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use style=\"fill:#0504aa;\" x=\"44.389411\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"64.42018\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"84.45095\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"104.481719\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"124.512488\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"144.543257\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"164.574026\" xlink:href=\"#mc74939113a\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"184.604796\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"204.635565\" xlink:href=\"#mc74939113a\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"224.666334\" xlink:href=\"#mc74939113a\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"244.697103\" xlink:href=\"#mc74939113a\" y=\"41.018906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"264.727873\" xlink:href=\"#mc74939113a\" y=\"63.698906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"284.758642\" xlink:href=\"#mc74939113a\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"304.789411\" xlink:href=\"#mc74939113a\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"324.82018\" xlink:href=\"#mc74939113a\" y=\"56.138906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"344.85095\" xlink:href=\"#mc74939113a\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"364.881719\" xlink:href=\"#mc74939113a\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"384.912488\" xlink:href=\"#mc74939113a\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"404.943257\" xlink:href=\"#mc74939113a\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#0504aa;\" x=\"424.974026\" xlink:href=\"#mc74939113a\" y=\"86.378906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_26\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 2 \n",
+ "C 0.530406 2 1.03916 1.789267 1.414214 1.414214 \n",
+ "C 1.789267 1.03916 2 0.530406 2 0 \n",
+ "C 2 -0.530406 1.789267 -1.03916 1.414214 -1.414214 \n",
+ "C 1.03916 -1.789267 0.530406 -2 0 -2 \n",
+ "C -0.530406 -2 -1.03916 -1.789267 -1.414214 -1.414214 \n",
+ "C -1.789267 -1.03916 -2 -0.530406 -2 0 \n",
+ "C -2 0.530406 -1.789267 1.03916 -1.414214 1.414214 \n",
+ "C -1.03916 1.789267 -0.530406 2 0 2 \n",
+ "z\n",
+ "\" id=\"m38c2209800\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"44.389411\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"64.42018\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"84.45095\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"104.481719\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"124.512488\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"144.543257\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"164.574026\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"184.604796\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"204.635565\" xlink:href=\"#m38c2209800\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"224.666334\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"244.697103\" xlink:href=\"#m38c2209800\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"264.727873\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"284.758642\" xlink:href=\"#m38c2209800\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"304.789411\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"324.82018\" xlink:href=\"#m38c2209800\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"344.85095\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"364.881719\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"384.912488\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"404.943257\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"424.974026\" xlink:href=\"#m38c2209800\" y=\"86.378906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_27\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 2 \n",
+ "C 0.530406 2 1.03916 1.789267 1.414214 1.414214 \n",
+ "C 1.789267 1.03916 2 0.530406 2 0 \n",
+ "C 2 -0.530406 1.789267 -1.03916 1.414214 -1.414214 \n",
+ "C 1.03916 -1.789267 0.530406 -2 0 -2 \n",
+ "C -0.530406 -2 -1.03916 -1.789267 -1.414214 -1.414214 \n",
+ "C -1.789267 -1.03916 -2 -0.530406 -2 0 \n",
+ "C -2 0.530406 -1.789267 1.03916 -1.414214 1.414214 \n",
+ "C -1.03916 1.789267 -0.530406 2 0 2 \n",
+ "z\n",
+ "\" id=\"m8e055900de\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use style=\"fill:#cb416b;\" x=\"44.389411\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"64.42018\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"84.45095\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"104.481719\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"124.512488\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"144.543257\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"164.574026\" xlink:href=\"#m8e055900de\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"184.604796\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"204.635565\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"224.666334\" xlink:href=\"#m8e055900de\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"244.697103\" xlink:href=\"#m8e055900de\" y=\"48.578906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"264.727873\" xlink:href=\"#m8e055900de\" y=\"63.698906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"284.758642\" xlink:href=\"#m8e055900de\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"304.789411\" xlink:href=\"#m8e055900de\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"324.82018\" xlink:href=\"#m8e055900de\" y=\"63.698906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"344.85095\" xlink:href=\"#m8e055900de\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"364.881719\" xlink:href=\"#m8e055900de\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"384.912488\" xlink:href=\"#m8e055900de\" y=\"71.258906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"404.943257\" xlink:href=\"#m8e055900de\" y=\"78.818906\"/>\n",
+ " <use style=\"fill:#cb416b;\" x=\"424.974026\" xlink:href=\"#m8e055900de\" y=\"86.378906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_28\">\n",
+ " <defs>\n",
+ " <path d=\"M 0 -6 \n",
+ "L -6 6 \n",
+ "L 6 6 \n",
+ "z\n",
+ "\" id=\"m0465d74ff0\"/>\n",
+ " </defs>\n",
+ " <g>\n",
+ " <use x=\"283.506719\" xlink:href=\"#m0465d74ff0\" y=\"86.378906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"patch_3\">\n",
+ " <path d=\"M 39.381719 86.378906 \n",
+ "L 39.381719 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_4\">\n",
+ " <path d=\"M 429.981719 86.378906 \n",
+ "L 429.981719 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_5\">\n",
+ " <path d=\"M 39.381719 86.378906 \n",
+ "L 429.981719 86.378906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_6\">\n",
+ " <path d=\"M 39.381719 10.778906 \n",
+ "L 429.981719 10.778906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"legend_1\">\n",
+ " <g id=\"line2d_29\"/>\n",
+ " <g id=\"line2d_30\">\n",
+ " <g>\n",
+ " <use style=\"fill:#bf77f6;\" x=\"452.781719\" xlink:href=\"#m38c2209800\" y=\"22.019531\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_15\">\n",
+ " <!-- $\\mathbf{r}_\\mathrm{V}$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 49.03125 39.796875 \n",
+ "Q 46.734375 40.875 44.453125 41.375 \n",
+ "Q 42.1875 41.890625 39.890625 41.890625 \n",
+ "Q 33.15625 41.890625 29.515625 37.5625 \n",
+ "Q 25.875 33.25 25.875 25.203125 \n",
+ "L 25.875 0 \n",
+ "L 8.40625 0 \n",
+ "L 8.40625 54.6875 \n",
+ "L 25.875 54.6875 \n",
+ "L 25.875 45.703125 \n",
+ "Q 29.25 51.078125 33.609375 53.53125 \n",
+ "Q 37.984375 56 44.09375 56 \n",
+ "Q 44.96875 56 45.984375 55.921875 \n",
+ "Q 47.015625 55.859375 48.96875 55.609375 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Bold-72\"/>\n",
+ " <path d=\"M 28.609375 0 \n",
+ "L 0.78125 72.90625 \n",
+ "L 11.078125 72.90625 \n",
+ "L 34.1875 11.53125 \n",
+ "L 57.328125 72.90625 \n",
+ "L 67.578125 72.90625 \n",
+ "L 39.796875 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-56\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 26.219531)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(50.273438 -16.40625)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_31\"/>\n",
+ " <g id=\"line2d_32\">\n",
+ " <g>\n",
+ " <use style=\"fill:#cb416b;\" x=\"452.781719\" xlink:href=\"#m8e055900de\" y=\"38.993906\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_16\">\n",
+ " <!-- $\\mathbf{r}_\\mathrm{A}$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 34.1875 63.1875 \n",
+ "L 20.796875 26.90625 \n",
+ "L 47.609375 26.90625 \n",
+ "z\n",
+ "M 28.609375 72.90625 \n",
+ "L 39.796875 72.90625 \n",
+ "L 67.578125 0 \n",
+ "L 57.328125 0 \n",
+ "L 50.6875 18.703125 \n",
+ "L 17.828125 18.703125 \n",
+ "L 11.1875 0 \n",
+ "L 0.78125 0 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-41\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 43.193906)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(50.273438 -16.40625)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_33\"/>\n",
+ " <g id=\"line2d_34\">\n",
+ " <g>\n",
+ " <use style=\"fill:#0504aa;\" x=\"452.781719\" xlink:href=\"#mc74939113a\" y=\"55.968281\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_17\">\n",
+ " <!-- $\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 46 62.703125 \n",
+ "L 46 35.5 \n",
+ "L 73.1875 35.5 \n",
+ "L 73.1875 27.203125 \n",
+ "L 46 27.203125 \n",
+ "L 46 0 \n",
+ "L 37.796875 0 \n",
+ "L 37.796875 27.203125 \n",
+ "L 10.59375 27.203125 \n",
+ "L 10.59375 35.5 \n",
+ "L 37.796875 35.5 \n",
+ "L 37.796875 62.703125 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-2b\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 60.168281)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.296875)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(50.273438 -16.109375)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(120.375977 0.296875)\" xlink:href=\"#DejaVuSans-2b\"/>\n",
+ " <use transform=\"translate(223.647461 0.296875)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(273.920898 -16.109375)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_35\"/>\n",
+ " <g id=\"line2d_36\">\n",
+ " <g>\n",
+ " <use x=\"452.781719\" xlink:href=\"#m0465d74ff0\" y=\"72.942656\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_18\">\n",
+ " <!-- true rattlesnake location -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 77.142656)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"27.783203\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"61.083984\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"116.699219\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"200.097656\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"233.398438\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"289.013672\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"316.796875\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"344.580078\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"366.796875\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"422.412109\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"472.412109\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"528.027344\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"583.642578\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"633.642578\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"689.257812\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"717.041016\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"739.257812\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"794.873047\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"844.873047\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"900.488281\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"928.271484\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"950.488281\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"1006.103516\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"axes_2\">\n",
+ " <g id=\"patch_7\">\n",
+ " <path d=\"M 39.381719 177.098906 \n",
+ "L 429.981719 177.098906 \n",
+ "L 429.981719 101.498906 \n",
+ "L 39.381719 101.498906 \n",
+ "z\n",
+ "\" style=\"fill:#eaeaf2;\"/>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_3\">\n",
+ " <g id=\"xtick_10\">\n",
+ " <g id=\"line2d_37\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 39.381719 177.098906 \n",
+ "L 39.381719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_38\"/>\n",
+ " <g id=\"text_19\">\n",
+ " <!-- −40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(30.900469 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_11\">\n",
+ " <g id=\"line2d_39\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 88.206719 177.098906 \n",
+ "L 88.206719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_40\"/>\n",
+ " <g id=\"text_20\">\n",
+ " <!-- −30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(79.725469 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_12\">\n",
+ " <g id=\"line2d_41\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 137.031719 177.098906 \n",
+ "L 137.031719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_42\"/>\n",
+ " <g id=\"text_21\">\n",
+ " <!-- −20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(128.550469 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_13\">\n",
+ " <g id=\"line2d_43\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 185.856719 177.098906 \n",
+ "L 185.856719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_44\"/>\n",
+ " <g id=\"text_22\">\n",
+ " <!-- −10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(177.375469 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-2212\"/>\n",
+ " <use x=\"58.398438\" xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"114.013672\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_14\">\n",
+ " <g id=\"line2d_45\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 234.681719 177.098906 \n",
+ "L 234.681719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_46\"/>\n",
+ " <g id=\"text_23\">\n",
+ " <!-- 0 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(231.90125 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_15\">\n",
+ " <g id=\"line2d_47\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 283.506719 177.098906 \n",
+ "L 283.506719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_48\"/>\n",
+ " <g id=\"text_24\">\n",
+ " <!-- 10 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(277.945781 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-31\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_16\">\n",
+ " <g id=\"line2d_49\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 332.331719 177.098906 \n",
+ "L 332.331719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_50\"/>\n",
+ " <g id=\"text_25\">\n",
+ " <!-- 20 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(326.770781 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-32\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_17\">\n",
+ " <g id=\"line2d_51\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 381.156719 177.098906 \n",
+ "L 381.156719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_52\"/>\n",
+ " <g id=\"text_26\">\n",
+ " <!-- 30 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(375.595781 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-33\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"xtick_18\">\n",
+ " <g id=\"line2d_53\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 429.981719 177.098906 \n",
+ "L 429.981719 101.498906 \n",
+ "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_54\"/>\n",
+ " <g id=\"text_27\">\n",
+ " <!-- 40 -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(424.420781 191.256719)scale(0.1 -0.1)\">\n",
+ " <use xlink:href=\"#ArialMT-34\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-30\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_28\">\n",
+ " <!-- location $s$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 50 53.078125 \n",
+ "L 48.296875 44.578125 \n",
+ "Q 44.734375 46.53125 40.765625 47.5 \n",
+ "Q 36.8125 48.484375 32.625 48.484375 \n",
+ "Q 25.53125 48.484375 21.453125 46.0625 \n",
+ "Q 17.390625 43.65625 17.390625 39.5 \n",
+ "Q 17.390625 34.671875 26.859375 32.078125 \n",
+ "Q 27.59375 31.890625 27.9375 31.78125 \n",
+ "L 30.8125 30.90625 \n",
+ "Q 39.796875 28.421875 42.796875 25.6875 \n",
+ "Q 45.796875 22.953125 45.796875 18.21875 \n",
+ "Q 45.796875 9.515625 38.890625 4.046875 \n",
+ "Q 31.984375 -1.421875 20.796875 -1.421875 \n",
+ "Q 16.453125 -1.421875 11.671875 -0.578125 \n",
+ "Q 6.890625 0.25 1.125 2 \n",
+ "L 2.875 11.28125 \n",
+ "Q 7.8125 8.734375 12.59375 7.421875 \n",
+ "Q 17.390625 6.109375 21.78125 6.109375 \n",
+ "Q 28.375 6.109375 32.5 8.9375 \n",
+ "Q 36.625 11.765625 36.625 16.109375 \n",
+ "Q 36.625 20.796875 25.78125 23.6875 \n",
+ "L 24.859375 23.921875 \n",
+ "L 21.78125 24.703125 \n",
+ "Q 14.9375 26.515625 11.765625 29.46875 \n",
+ "Q 8.59375 32.421875 8.59375 37.015625 \n",
+ "Q 8.59375 45.75 15.15625 50.875 \n",
+ "Q 21.734375 56 33.015625 56 \n",
+ "Q 37.453125 56 41.671875 55.265625 \n",
+ "Q 45.90625 54.546875 50 53.078125 \n",
+ "\" id=\"DejaVuSans-Oblique-73\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(211.306719 205.117813)scale(0.11 -0.11)\">\n",
+ " <use transform=\"translate(0 0.421875)\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use transform=\"translate(22.216797 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(77.832031 0.421875)\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use transform=\"translate(127.832031 0.421875)\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use transform=\"translate(183.447266 0.421875)\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use transform=\"translate(211.230469 0.421875)\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use transform=\"translate(233.447266 0.421875)\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use transform=\"translate(289.0625 0.421875)\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use transform=\"translate(344.677734 0.421875)\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use transform=\"translate(372.460938 0.421875)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"matplotlib.axis_4\">\n",
+ " <g id=\"text_29\">\n",
+ " <!-- probability -->\n",
+ " <defs>\n",
+ " <path d=\"M 14.703125 0 \n",
+ "L 6.546875 0 \n",
+ "L 6.546875 71.578125 \n",
+ "L 15.328125 71.578125 \n",
+ "L 15.328125 46.046875 \n",
+ "Q 20.90625 53.03125 29.546875 53.03125 \n",
+ "Q 34.328125 53.03125 38.59375 51.09375 \n",
+ "Q 42.875 49.171875 45.625 45.671875 \n",
+ "Q 48.390625 42.1875 49.953125 37.25 \n",
+ "Q 51.515625 32.328125 51.515625 26.703125 \n",
+ "Q 51.515625 13.375 44.921875 6.09375 \n",
+ "Q 38.328125 -1.171875 29.109375 -1.171875 \n",
+ "Q 19.921875 -1.171875 14.703125 6.5 \n",
+ "z\n",
+ "M 14.59375 26.3125 \n",
+ "Q 14.59375 17 17.140625 12.84375 \n",
+ "Q 21.296875 6.0625 28.375 6.0625 \n",
+ "Q 34.125 6.0625 38.328125 11.0625 \n",
+ "Q 42.53125 16.0625 42.53125 25.984375 \n",
+ "Q 42.53125 36.140625 38.5 40.96875 \n",
+ "Q 34.46875 45.796875 28.765625 45.796875 \n",
+ "Q 23 45.796875 18.796875 40.796875 \n",
+ "Q 14.59375 35.796875 14.59375 26.3125 \n",
+ "\" id=\"ArialMT-62\"/>\n",
+ " <path d=\"M 6.203125 -19.96875 \n",
+ "L 5.21875 -11.71875 \n",
+ "Q 8.109375 -12.5 10.25 -12.5 \n",
+ "Q 13.1875 -12.5 14.9375 -11.515625 \n",
+ "Q 16.703125 -10.546875 17.828125 -8.796875 \n",
+ "Q 18.65625 -7.46875 20.515625 -2.25 \n",
+ "Q 20.75 -1.515625 21.296875 -0.09375 \n",
+ "L 1.609375 51.859375 \n",
+ "L 11.078125 51.859375 \n",
+ "L 21.875 21.828125 \n",
+ "Q 23.96875 16.109375 25.640625 9.8125 \n",
+ "Q 27.15625 15.875 29.25 21.625 \n",
+ "L 40.328125 51.859375 \n",
+ "L 49.125 51.859375 \n",
+ "L 29.390625 -0.875 \n",
+ "Q 26.21875 -9.421875 24.46875 -12.640625 \n",
+ "Q 22.125 -17 19.09375 -19.015625 \n",
+ "Q 16.0625 -21.046875 11.859375 -21.046875 \n",
+ "Q 9.328125 -21.046875 6.203125 -19.96875 \n",
+ "\" id=\"ArialMT-79\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(33.066563 164.366875)rotate(-90)scale(0.11 -0.11)\">\n",
+ " <use xlink:href=\"#ArialMT-70\"/>\n",
+ " <use x=\"55.615234\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"88.916016\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"144.53125\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"200.146484\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"255.761719\" xlink:href=\"#ArialMT-62\"/>\n",
+ " <use x=\"311.376953\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"333.59375\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"355.810547\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"378.027344\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"405.810547\" xlink:href=\"#ArialMT-79\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_55\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 39.381719 173.662543 \n",
+ "L 255.858827 173.599992 \n",
+ "L 258.996177 173.460508 \n",
+ "L 262.133526 173.076407 \n",
+ "L 263.702201 172.703581 \n",
+ "L 265.270875 172.135157 \n",
+ "L 266.83955 171.294223 \n",
+ "L 268.408225 170.087541 \n",
+ "L 269.976899 168.40895 \n",
+ "L 271.545574 166.146645 \n",
+ "L 273.114249 163.194882 \n",
+ "L 274.682924 159.469918 \n",
+ "L 276.251598 154.928994 \n",
+ "L 277.820273 149.590016 \n",
+ "L 279.388948 143.548602 \n",
+ "L 285.663646 117.273584 \n",
+ "L 287.232321 111.980123 \n",
+ "L 288.800996 107.976511 \n",
+ "L 290.369671 105.565395 \n",
+ "L 291.938345 104.93527 \n",
+ "L 293.50702 106.136145 \n",
+ "L 295.075695 109.072981 \n",
+ "L 296.644369 113.518118 \n",
+ "L 298.213044 119.140427 \n",
+ "L 301.350393 132.32352 \n",
+ "L 304.487743 145.509532 \n",
+ "L 306.056418 151.346171 \n",
+ "L 307.625092 156.441215 \n",
+ "L 309.193767 160.724936 \n",
+ "L 310.762442 164.200486 \n",
+ "L 312.331116 166.925622 \n",
+ "L 313.899791 168.992922 \n",
+ "L 315.468466 170.51156 \n",
+ "L 317.03714 171.592617 \n",
+ "L 318.605815 172.338787 \n",
+ "L 320.17449 172.838395 \n",
+ "L 321.743165 173.16303 \n",
+ "L 324.880514 173.49324 \n",
+ "L 329.586538 173.635226 \n",
+ "L 345.273285 173.662532 \n",
+ "L 429.981719 173.662543 \n",
+ "L 429.981719 173.662543 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_56\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 39.381719 173.662543 \n",
+ "L 183.699791 173.553248 \n",
+ "L 193.111839 173.29773 \n",
+ "L 199.386538 172.912325 \n",
+ "L 204.092562 172.428877 \n",
+ "L 208.798586 171.707893 \n",
+ "L 211.935936 171.060283 \n",
+ "L 215.073285 170.254857 \n",
+ "L 218.210634 169.273238 \n",
+ "L 221.347984 168.101463 \n",
+ "L 224.485333 166.732279 \n",
+ "L 227.622683 165.167459 \n",
+ "L 232.328707 162.485018 \n",
+ "L 237.034731 159.49205 \n",
+ "L 248.015454 152.329717 \n",
+ "L 251.152803 150.55942 \n",
+ "L 254.290152 149.052054 \n",
+ "L 257.427502 147.875767 \n",
+ "L 260.564851 147.085839 \n",
+ "L 263.702201 146.720382 \n",
+ "L 265.270875 146.703262 \n",
+ "L 268.408225 147.001294 \n",
+ "L 271.545574 147.727921 \n",
+ "L 274.682924 148.84798 \n",
+ "L 277.820273 150.308581 \n",
+ "L 280.957622 152.043236 \n",
+ "L 285.663646 154.993818 \n",
+ "L 296.644369 162.190083 \n",
+ "L 301.350393 164.910009 \n",
+ "L 304.487743 166.504086 \n",
+ "L 307.625092 167.90374 \n",
+ "L 310.762442 169.105613 \n",
+ "L 313.899791 170.115718 \n",
+ "L 317.03714 170.94714 \n",
+ "L 321.743165 171.899035 \n",
+ "L 326.449189 172.559019 \n",
+ "L 331.155213 172.997197 \n",
+ "L 337.429912 173.34268 \n",
+ "L 345.273285 173.545858 \n",
+ "L 359.391357 173.647896 \n",
+ "L 419.000996 173.662543 \n",
+ "L 429.981719 173.662543 \n",
+ "L 429.981719 173.662543 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_57\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 39.381719 173.662543 \n",
+ "L 258.996177 173.569639 \n",
+ "L 262.133526 173.398856 \n",
+ "L 265.270875 172.979113 \n",
+ "L 266.83955 172.599128 \n",
+ "L 268.408225 172.045025 \n",
+ "L 269.976899 171.257444 \n",
+ "L 271.545574 170.166681 \n",
+ "L 273.114249 168.695326 \n",
+ "L 274.682924 166.763173 \n",
+ "L 276.251598 164.294622 \n",
+ "L 277.820273 161.22844 \n",
+ "L 279.388948 157.529244 \n",
+ "L 280.957622 153.19954 \n",
+ "L 282.526297 148.290641 \n",
+ "L 285.663646 137.22637 \n",
+ "L 288.800996 125.880757 \n",
+ "L 290.369671 120.777435 \n",
+ "L 291.938345 116.443329 \n",
+ "L 293.50702 113.144085 \n",
+ "L 295.075695 111.091804 \n",
+ "L 296.644369 110.422495 \n",
+ "L 298.213044 111.18117 \n",
+ "L 299.781719 113.316831 \n",
+ "L 301.350393 116.688146 \n",
+ "L 302.919068 121.078918 \n",
+ "L 304.487743 126.221002 \n",
+ "L 310.762442 148.614918 \n",
+ "L 312.331116 153.489929 \n",
+ "L 313.899791 157.780906 \n",
+ "L 315.468466 161.43988 \n",
+ "L 317.03714 164.467074 \n",
+ "L 318.605815 166.899854 \n",
+ "L 320.17449 168.800684 \n",
+ "L 321.743165 170.245717 \n",
+ "L 323.311839 171.315177 \n",
+ "L 324.880514 172.086107 \n",
+ "L 326.449189 172.627617 \n",
+ "L 328.017863 172.998373 \n",
+ "L 331.155213 173.407018 \n",
+ "L 335.861237 173.611115 \n",
+ "L 346.84196 173.661991 \n",
+ "L 429.981719 173.662543 \n",
+ "L 429.981719 173.662543 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_58\">\n",
+ " <path clip-path=\"url(#p7f846dc5a0)\" d=\"M 39.381719 173.662543 \n",
+ "L 255.858827 173.599992 \n",
+ "L 258.996177 173.460508 \n",
+ "L 262.133526 173.076407 \n",
+ "L 263.702201 172.703581 \n",
+ "L 265.270875 172.135157 \n",
+ "L 266.83955 171.294223 \n",
+ "L 268.408225 170.087541 \n",
+ "L 269.976899 168.40895 \n",
+ "L 271.545574 166.146645 \n",
+ "L 273.114249 163.194882 \n",
+ "L 274.682924 159.469918 \n",
+ "L 276.251598 154.928994 \n",
+ "L 277.820273 149.590016 \n",
+ "L 279.388948 143.548602 \n",
+ "L 285.663646 117.273584 \n",
+ "L 287.232321 111.980123 \n",
+ "L 288.800996 107.976511 \n",
+ "L 290.369671 105.565395 \n",
+ "L 291.938345 104.93527 \n",
+ "L 293.50702 106.136145 \n",
+ "L 295.075695 109.072981 \n",
+ "L 296.644369 113.518118 \n",
+ "L 298.213044 119.140427 \n",
+ "L 301.350393 132.32352 \n",
+ "L 304.487743 145.509532 \n",
+ "L 306.056418 151.346171 \n",
+ "L 307.625092 156.441215 \n",
+ "L 309.193767 160.724936 \n",
+ "L 310.762442 164.200486 \n",
+ "L 312.331116 166.925622 \n",
+ "L 313.899791 168.992922 \n",
+ "L 315.468466 170.51156 \n",
+ "L 317.03714 171.592617 \n",
+ "L 318.605815 172.338787 \n",
+ "L 320.17449 172.838395 \n",
+ "L 321.743165 173.16303 \n",
+ "L 324.880514 173.49324 \n",
+ "L 329.586538 173.635226 \n",
+ "L 345.273285 173.662532 \n",
+ "L 429.981719 173.662543 \n",
+ "L 429.981719 173.662543 \n",
+ "\" style=\"fill:none;stroke:#0504aa;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_59\">\n",
+ " <g>\n",
+ " <use x=\"283.506719\" xlink:href=\"#m0465d74ff0\" y=\"173.662543\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"patch_8\">\n",
+ " <path d=\"M 39.381719 177.098906 \n",
+ "L 39.381719 101.498906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_9\">\n",
+ " <path d=\"M 429.981719 177.098906 \n",
+ "L 429.981719 101.498906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_10\">\n",
+ " <path d=\"M 39.381719 177.098906 \n",
+ "L 429.981719 177.098906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"patch_11\">\n",
+ " <path d=\"M 39.381719 101.498906 \n",
+ "L 429.981719 101.498906 \n",
+ "\" style=\"fill:none;\"/>\n",
+ " </g>\n",
+ " <g id=\"legend_2\">\n",
+ " <g id=\"line2d_60\">\n",
+ " <path d=\"M 440.781719 102.611719 \n",
+ "L 464.781719 102.611719 \n",
+ "\" style=\"fill:none;stroke:#bf77f6;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_61\"/>\n",
+ " <g id=\"text_30\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}|s)$ -->\n",
+ " <defs>\n",
+ " <path d=\"M 49.609375 33.6875 \n",
+ "Q 49.609375 40.875 46.484375 44.671875 \n",
+ "Q 43.359375 48.484375 37.5 48.484375 \n",
+ "Q 33.5 48.484375 29.859375 46.4375 \n",
+ "Q 26.21875 44.390625 23.390625 40.484375 \n",
+ "Q 20.609375 36.625 18.9375 31.15625 \n",
+ "Q 17.28125 25.6875 17.28125 20.3125 \n",
+ "Q 17.28125 13.484375 20.40625 9.796875 \n",
+ "Q 23.53125 6.109375 29.296875 6.109375 \n",
+ "Q 33.546875 6.109375 37.1875 8.109375 \n",
+ "Q 40.828125 10.109375 43.40625 13.921875 \n",
+ "Q 46.1875 17.921875 47.890625 23.34375 \n",
+ "Q 49.609375 28.765625 49.609375 33.6875 \n",
+ "M 21.78125 46.390625 \n",
+ "Q 25.390625 51.125 30.296875 53.5625 \n",
+ "Q 35.203125 56 41.21875 56 \n",
+ "Q 49.609375 56 54.25 50.5 \n",
+ "Q 58.890625 45.015625 58.890625 35.109375 \n",
+ "Q 58.890625 27 56 19.65625 \n",
+ "Q 53.125 12.3125 47.703125 6.5 \n",
+ "Q 44.09375 2.640625 39.546875 0.609375 \n",
+ "Q 35.015625 -1.421875 29.984375 -1.421875 \n",
+ "Q 24.171875 -1.421875 20.21875 1 \n",
+ "Q 16.265625 3.421875 14.3125 8.203125 \n",
+ "L 8.6875 -20.796875 \n",
+ "L -0.296875 -20.796875 \n",
+ "L 14.40625 54.6875 \n",
+ "L 23.390625 54.6875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-Oblique-70\"/>\n",
+ " <path d=\"M 31 75.875 \n",
+ "Q 24.46875 64.65625 21.28125 53.65625 \n",
+ "Q 18.109375 42.671875 18.109375 31.390625 \n",
+ "Q 18.109375 20.125 21.3125 9.0625 \n",
+ "Q 24.515625 -2 31 -13.1875 \n",
+ "L 23.1875 -13.1875 \n",
+ "Q 15.875 -1.703125 12.234375 9.375 \n",
+ "Q 8.59375 20.453125 8.59375 31.390625 \n",
+ "Q 8.59375 42.28125 12.203125 53.3125 \n",
+ "Q 15.828125 64.359375 23.1875 75.875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-28\"/>\n",
+ " <path d=\"M 21 76.421875 \n",
+ "L 21 -23.578125 \n",
+ "L 12.703125 -23.578125 \n",
+ "L 12.703125 76.421875 \n",
+ "z\n",
+ "\" id=\"DejaVuSans-7c\"/>\n",
+ " <path d=\"M 8.015625 75.875 \n",
+ "L 15.828125 75.875 \n",
+ "Q 23.140625 64.359375 26.78125 53.3125 \n",
+ "Q 30.421875 42.28125 30.421875 31.390625 \n",
+ "Q 30.421875 20.453125 26.78125 9.375 \n",
+ "Q 23.140625 -1.703125 15.828125 -13.1875 \n",
+ "L 8.015625 -13.1875 \n",
+ "Q 14.5 -2 17.703125 9.0625 \n",
+ "Q 20.90625 20.125 20.90625 31.390625 \n",
+ "Q 20.90625 42.671875 17.703125 53.65625 \n",
+ "Q 14.5 64.65625 8.015625 75.875 \n",
+ "\" id=\"DejaVuSans-29\"/>\n",
+ " </defs>\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 106.811719)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_62\">\n",
+ " <path d=\"M 440.781719 120.731719 \n",
+ "L 464.781719 120.731719 \n",
+ "\" style=\"fill:none;stroke:#cb416b;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_63\"/>\n",
+ " <g id=\"text_31\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 124.931719)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_64\">\n",
+ " <path d=\"M 440.781719 138.851719 \n",
+ "L 464.781719 138.851719 \n",
+ "\" style=\"fill:none;stroke:#0504aa;stroke-linecap:round;stroke-width:2;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_65\"/>\n",
+ " <g id=\"text_32\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 143.051719)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(222.866211 0.578125)\" xlink:href=\"#DejaVuSans-2b\"/>\n",
+ " <use transform=\"translate(326.137695 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(376.411133 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(427.03125 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(460.722656 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(512.822266 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_66\">\n",
+ " <path d=\"M 440.781719 156.971719 \n",
+ "L 464.781719 156.971719 \n",
+ "\" style=\"fill:none;stroke:#dbb40c;stroke-linecap:round;stroke-width:7;\"/>\n",
+ " </g>\n",
+ " <g id=\"line2d_67\"/>\n",
+ " <g id=\"text_33\">\n",
+ " <!-- $p(\\mathbf{r}_\\mathrm{V}|s)\\ p(\\mathbf{r}_\\mathrm{A}|s)$ -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 161.171719)scale(0.12 -0.12)\">\n",
+ " <use transform=\"translate(0 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(63.476562 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(102.490234 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(152.763672 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-56\"/>\n",
+ " <use transform=\"translate(203.383789 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(237.075195 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(289.174805 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " <use transform=\"translate(360.658855 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-70\"/>\n",
+ " <use transform=\"translate(424.135417 0.578125)\" xlink:href=\"#DejaVuSans-28\"/>\n",
+ " <use transform=\"translate(463.149089 0.578125)\" xlink:href=\"#DejaVuSans-Bold-72\"/>\n",
+ " <use transform=\"translate(513.422527 -15.828125)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n",
+ " <use transform=\"translate(564.042644 0.578125)\" xlink:href=\"#DejaVuSans-7c\"/>\n",
+ " <use transform=\"translate(597.73405 0.578125)\" xlink:href=\"#DejaVuSans-Oblique-73\"/>\n",
+ " <use transform=\"translate(649.83366 0.578125)\" xlink:href=\"#DejaVuSans-29\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"line2d_68\"/>\n",
+ " <g id=\"line2d_69\">\n",
+ " <g>\n",
+ " <use x=\"452.781719\" xlink:href=\"#m0465d74ff0\" y=\"174.441094\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " <g id=\"text_34\">\n",
+ " <!-- true rattlesnake location -->\n",
+ " <g style=\"fill:#262626;\" transform=\"translate(474.381719 178.641094)scale(0.12 -0.12)\">\n",
+ " <use xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"27.783203\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"61.083984\" xlink:href=\"#ArialMT-75\"/>\n",
+ " <use x=\"116.699219\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"172.314453\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"200.097656\" xlink:href=\"#ArialMT-72\"/>\n",
+ " <use x=\"233.398438\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"289.013672\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"316.796875\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"344.580078\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"366.796875\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"422.412109\" xlink:href=\"#ArialMT-73\"/>\n",
+ " <use x=\"472.412109\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " <use x=\"528.027344\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"583.642578\" xlink:href=\"#ArialMT-6b\"/>\n",
+ " <use x=\"633.642578\" xlink:href=\"#ArialMT-65\"/>\n",
+ " <use x=\"689.257812\" xlink:href=\"#ArialMT-20\"/>\n",
+ " <use x=\"717.041016\" xlink:href=\"#ArialMT-6c\"/>\n",
+ " <use x=\"739.257812\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"794.873047\" xlink:href=\"#ArialMT-63\"/>\n",
+ " <use x=\"844.873047\" xlink:href=\"#ArialMT-61\"/>\n",
+ " <use x=\"900.488281\" xlink:href=\"#ArialMT-74\"/>\n",
+ " <use x=\"928.271484\" xlink:href=\"#ArialMT-69\"/>\n",
+ " <use x=\"950.488281\" xlink:href=\"#ArialMT-6f\"/>\n",
+ " <use x=\"1006.103516\" xlink:href=\"#ArialMT-6e\"/>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " </g>\n",
+ " <defs>\n",
+ " <clipPath id=\"pbb26acfe79\">\n",
+ " <rect height=\"75.6\" width=\"390.6\" x=\"39.381719\" y=\"10.778906\"/>\n",
+ " </clipPath>\n",
+ " <clipPath id=\"p7f846dc5a0\">\n",
+ " <rect height=\"75.6\" width=\"390.6\" x=\"39.381719\" y=\"101.498906\"/>\n",
+ " </clipPath>\n",
+ " </defs>\n",
+ "</svg>\n"
+ ],
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x11a7ea828>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "i = ipywidgets.interactive(spikes_and_inference,\n",
+ " true_stimulus = (-40, 40, .1),\n",
+ " number_of_neurons = (2, 200, 1),\n",
+ " r_V_gain = (0, 100, 1),\n",
+ " r_A_gain = (0, 100, 1),\n",
+ " r_V_tuning_curve_sigma = (0.1, 50, .1),\n",
+ " r_A_tuning_curve_sigma = (0.1, 50, .1),\n",
+ " tuning_curve_baseline = (0, 20, .1));\n",
+ "display(ipywidgets.VBox(i.children[2:-1]))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Conclusion\n",
+ "\n",
+ "It has been shown behaviorally that humans perform near-optimal Bayesian inference on ambiguous sensory information. As suggested by Ma *et. al.* (2006) and shown here, it is possible that the brain does this operation by simply performing linear combinations of populations of Poisson neurons receiving various sensory input. Cortical neurons may be particularly well suited for this task because they have Poisson-like firing rates, displaying reliable variability from trial to trial (Tolhurst, Movshon & Dean, 1982; Softky & Koch, 1993).\n",
+ "\n",
+ "High levels of noise in these populations might at first be difficult to reconcile considering highly precise behavioral data. However, variability in neural populations might be direcly representative of uncertainty in environmental stimuli. Variability in cortical populations would then be critical for precise neural coding.\n",
+ "\n",
+ "## References\n",
+ "\n",
+ "* Ernst MO, Banks MS. (2002). Humans integrate visual and haptic information in a statistically optimal fashion. *Nature.*\n",
+ "* Körding KP, Wolpert DM. (2004). Bayesian integration in sensorimotor learning. *Nature.*\n",
+ "* Ma WJ, Beck JM, Latham PE, Pouget A. (2006). Bayesian inference with probabilistic population codes. *Nature Neuroscience.*\n",
+ "* Softky WR, Koch C. (1993). The highly irregular firing of cortical cells is inconsistent with temporal integration of random EPSPs. *Journal of Neuroscience.*\n",
+ "* Stocker AA, Simoncelli EP. (2006). Noise characteristics and prior expectations in human visual speed perception. *Nature Neuroscience.*\n",
+ "* Tolhurst, DJ, Movshon JA, Dean AF. (1983). The statistical reliability of signals in single neurons in cat and monkey visual cortex. *Vision Research.*\n",
+ "* van Beers RJ, Sittig AC, Gon JJ. (1999). Integration of proprioceptive and visual position-information: An experimentally supported model. *Journal of Neurophysiology.*"
+ ]
+ }
+ ],
+ "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.6.8"
+ },
+ "widgets": {
+ "state": {
+ "e94c39980c8b4b6ca5ea32c6bd86c5e5": {
+ "views": [
+ {
+ "cell_index": 30
+ }
+ ]
+ }
+ },
+ "version": "1.2.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/data/Lecture-2B-Single-Atom-Lasing.ipynb b/src/test/data/Lecture-2B-Single-Atom-Lasing.ipynb
new file mode 100644
index 00000000..7ff1ad72
--- /dev/null
+++ b/src/test/data/Lecture-2B-Single-Atom-Lasing.ipynb
@@ -0,0 +1,714 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# QuTiP lecture: Single-Atom-Lasing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Author: J. R. Johansson (robert@riken.jp), http://dml.riken.jp/~rob/\n",
+ "\n",
+ "The latest version of this [IPython notebook](http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html) lecture is available at [http://github.com/jrjohansson/qutip-lectures](http://github.com/jrjohansson/qutip-lectures).\n",
+ "\n",
+ "The other notebooks in this lecture series are indexed at [http://jrjohansson.github.com](http://jrjohansson.github.com)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# setup the matplotlib graphics library and configure it to show \n",
+ "# figures inline in the notebook\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# make qutip available in the rest of the notebook\n",
+ "from qutip import *\n",
+ "\n",
+ "from IPython.display import Image"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Introduction and model\n",
+ "\n",
+ "Consider a single atom coupled to a single cavity mode, as illustrated in the figure below. If there atom excitation rate $\\Gamma$ exceeds the relaxation rate, a population inversion can occur in the atom, and if coupled to the cavity the atom can then act as a photon pump on the cavity."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<IPython.core.display.Image at 0x7f2f341ff160>"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Image(filename='images/schematic-lasing-model.png')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The coherent dynamics in this model is described by the Hamiltonian\n",
+ "\n",
+ "$H = \\hbar \\omega_0 a^\\dagger a + \\frac{1}{2}\\hbar\\omega_a\\sigma_z + \\hbar g\\sigma_x(a^\\dagger + a)$\n",
+ "\n",
+ "where $\\omega_0$ is the cavity energy splitting, $\\omega_a$ is the atom energy splitting and $g$ is the atom-cavity interaction strength.\n",
+ "\n",
+ "In addition to the coherent dynamics the following incoherent processes are also present: \n",
+ "\n",
+ "1. $\\kappa$ relaxation and thermal excitations of the cavity, \n",
+ "2. $\\Gamma$ atomic excitation rate (pumping process).\n",
+ "\n",
+ "The Lindblad master equation for the model is:\n",
+ "\n",
+ "$\\frac{d}{dt}\\rho = -i[H, \\rho] + \\Gamma\\left(\\sigma_+\\rho\\sigma_- - \\frac{1}{2}\\sigma_-\\sigma_+\\rho - \\frac{1}{2}\\rho\\sigma_-\\sigma_+\\right)\n",
+ "+ \\kappa (1 + n_{\\rm th}) \\left(a\\rho a^\\dagger - \\frac{1}{2}a^\\dagger a\\rho - \\frac{1}{2}\\rho a^\\dagger a\\right)\n",
+ "+ \\kappa n_{\\rm th} \\left(a^\\dagger\\rho a - \\frac{1}{2}a a^\\dagger \\rho - \\frac{1}{2}\\rho a a^\\dagger\\right)$\n",
+ "\n",
+ "in units where $\\hbar = 1$.\n",
+ "\n",
+ "References:\n",
+ "\n",
+ " * [Yi Mu, C.M. Savage, Phys. Rev. A 46, 5944 (1992)](http://dx.doi.org/10.1103/PhysRevA.46.5944)\n",
+ "\n",
+ " * [D.A. Rodrigues, J. Imbers, A.D. Armour, Phys. Rev. Lett. 98, 067204 (2007)](http://dx.doi.org/10.1103/PhysRevLett.98.067204)\n",
+ "\n",
+ " * [S. Ashhab, J.R. Johansson, A.M. Zagoskin, F. Nori, New J. Phys. 11, 023030 (2009)](http://dx.doi.org/10.1088/1367-2630/11/2/023030)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Problem parameters"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "w0 = 1.0 * 2 * pi # cavity frequency\n",
+ "wa = 1.0 * 2 * pi # atom frequency\n",
+ "g = 0.05 * 2 * pi # coupling strength\n",
+ "\n",
+ "kappa = 0.04 # cavity dissipation rate\n",
+ "gamma = 0.00 # atom dissipation rate\n",
+ "Gamma = 0.35 # atom pump rate\n",
+ "\n",
+ "N = 50 # number of cavity fock states\n",
+ "n_th_a = 0.0 # avg number of thermal bath excitation\n",
+ "\n",
+ "tlist = np.linspace(0, 150, 101)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Setup the operators, the Hamiltonian and initial state"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# intial state\n",
+ "psi0 = tensor(basis(N,0), basis(2,0)) # start without excitations\n",
+ "\n",
+ "# operators\n",
+ "a = tensor(destroy(N), qeye(2))\n",
+ "sm = tensor(qeye(N), destroy(2))\n",
+ "sx = tensor(qeye(N), sigmax())\n",
+ "\n",
+ "# Hamiltonian\n",
+ "H = w0 * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() + a) * sx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "Quantum object: dims = [[50, 2], [50, 2]], shape = [100, 100], type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}0.0 & 0.0 & 0.0 & 0.314 & 0.0 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 6.283 & 0.314 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.314 & 6.283 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.314 & 0.0 & 0.0 & 12.566 & 0.444 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.444 & 12.566 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\\\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\ddots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 301.593 & 2.177 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 2.177 & 301.593 & 0.0 & 0.0 & 2.199\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 307.876 & 2.199 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 2.199 & 307.876 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 0.0 & 2.199 & 0.0 & 0.0 & 314.159\\\\\\end{array}\\right)\\end{equation*}"
+ ],
+ "text/plain": [
+ "Quantum object: dims = [[50, 2], [50, 2]], shape = [100, 100], type = oper, isherm = True\n",
+ "Qobj data =\n",
+ "[[ 0. 0. 0. ..., 0. 0. 0. ]\n",
+ " [ 0. 6.28318531 0.31415927 ..., 0. 0. 0. ]\n",
+ " [ 0. 0.31415927 6.28318531 ..., 0. 0. 0. ]\n",
+ " ..., \n",
+ " [ 0. 0. 0. ..., 307.87608005\n",
+ " 2.19911486 0. ]\n",
+ " [ 0. 0. 0. ..., 2.19911486\n",
+ " 307.87608005 0. ]\n",
+ " [ 0. 0. 0. ..., 0. 0.\n",
+ " 314.15926536]]"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "H"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Create a list of collapse operators that describe the dissipation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# collapse operators\n",
+ "c_ops = []\n",
+ "\n",
+ "rate = kappa * (1 + n_th_a)\n",
+ "if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * a)\n",
+ "\n",
+ "rate = kappa * n_th_a\n",
+ "if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * a.dag())\n",
+ "\n",
+ "rate = gamma\n",
+ "if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * sm)\n",
+ "\n",
+ "rate = Gamma\n",
+ "if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * sm.dag())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Evolve the system\n",
+ "\n",
+ "Here we evolve the system with the Lindblad master equation solver, and we request that the expectation values of the operators $a^\\dagger a$ and $\\sigma_+\\sigma_-$ are returned by the solver by passing the list `[a.dag()*a, sm.dag()*sm]` as the fifth argument to the solver."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "opt = Odeoptions(nsteps=2000) # allow extra time-steps \n",
+ "output = mesolve(H, psi0, tlist, c_ops, [a.dag() * a, sm.dag() * sm], options=opt)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualize the results\n",
+ "\n",
+ "Here we plot the excitation probabilities of the cavity and the atom (these expectation values were calculated by the `mesolve` above)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nEVm9ov7emPUvUWJionTs2FF27NiRL7hyjRgxQlauXGmYb9iwoVy9erVgkTYa3PXq1ZOlS5fKmTNn\nxMXFRZKTkw3r6tSpI9u3bzfM//nnn+Lm5ibbtm2TnJwc+eSTTyQoKEiys7MN2z/22GPy999/y+XL\nl8XX11ciIiLk6NGjkpGRIU8++aRMmTLFaB2HDx8WX19fiY2NFb1eL4sXL5Y6depIVlaWiIi88MIL\n8q9//UtSUlKkZs2a8vPPP4uIyIEDB8TT01O2bdsmIiKXL1+W06dPi4hIZGSkzJ8/X0REFi1aJG3b\nts33mePGjZNevXrJzZs35c6dO9KjRw95++23RURk06ZN4ufnJydPnpS7d+/KgAEDCg3utLQ0qVy5\nspw5c0ZERK5evSonT54s9HO1Wq388ccfIiJy/Phx8fPzk7Vr14qISEJCgmg0GtHpdIbt165dK0FB\nQXL69GnR6XQydepUadOmjdHfo7V/32ydXi/y998iv/0msmiRyLvvivTvL9KypYiPjxLOYWEivXqJ\njBsnMmuWyLp1IseOiaSmql09kWmpFtx9+/aVw4cPi1arNRrc3bt3l99++80w37FjRzl48GDBIm0w\nuHfv3i0VK1Y0HMmGh4fL559/blj/YHC///778vzzzxvm9Xq9+Pv7y86dOw3bL1++3LD+2WeflVGj\nRhnmv/zyS+ndu7fRWl555RX573//m29Zw4YNDftOTU2VWrVqSWhoqLzyyiuGbV5++WV5/fXXje4z\nb3AvXLgwX4Dq9Xpxc3PLF8R79+6VunXriojIiy++aAhxEZEzZ84UGdxeXl7y448/yr179/Kte/Bz\njXnttddk/PjxIiISHx9fILi7dOliaIeIiE6nE1dXV7l06VKBfVnz982WZGaKnDwp8uOPIh9+KDJk\niEirViJeXsrUqpXICy+ITJoksmSJyN69IsnJSrATOYqi/t6Y7Rr3xo0b4evri4iICGi12qJO1eeb\nf/C51GWhmWKafcmkh78munjxYnTu3BkeHh4AlGdnL168GOPGjTO6/ZUrV1CrVi3DvEajQWBgIC5f\nvmxY5ufnZ3hfqVKlfPMVK1ZEWlqa0X1fvHgR33//Pb788kvDsuzsbFy5cgUA4Onpib59++Lzzz/H\nmjVrDNskJSXh6aeffphmAwCuXbuGe/fuoXnz5oZlIgL9PwPwXrlyBS1btjSsy9vuB7m5uWHVqlWY\n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\nzcRnAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2e086208>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "n_c = output.expect[0]\n",
+ "n_a = output.expect[1]\n",
+ "\n",
+ "fig, axes = plt.subplots(1, 1, figsize=(8,6))\n",
+ "\n",
+ "axes.plot(tlist, n_c, label=\"Cavity\")\n",
+ "axes.plot(tlist, n_a, label=\"Atom excited state\")\n",
+ "axes.set_xlim(0, 150)\n",
+ "axes.legend(loc=0)\n",
+ "axes.set_xlabel('Time')\n",
+ "axes.set_ylabel('Occupation probability');"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Steady state: cavity fock-state distribution and wigner function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "rho_ss = steadystate(H, c_ops)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nzjnnoNls4rjjjuv35fWF2fz/zZYtW/DBD34Q3/zmNzF37txBX07PKPO6MUhmrKjeaaedsGnTpvj2\npk2bsGDBggFeUf/YcccdsXnzZrzuda/D008/jR122GHQl1Q77XYbxxxzDD760Y/i/e9/P4DZ8bgB\nYNttt8X73vc+3H333SP9mG+//XZcf/31uOGGGzA1NYWXXnoJH/3oR0f6MQPA/PnzAQCvfe1rcfTR\nR2Pjxo0j/5j7zbp167Tb77//fjz22GNYtmwZAPEx8v7774+NGzfO+Ofc9JiJK6+8EjfccANuueWW\nPl1R/5mtuoBeLz/ykY/Er5ejiu5142Mf+xi+//3vD/rSAMxg+4c8PKbVauFHP/oRjjzyyEFfVl84\n8sgjcdVVVwEArrrqqpH7nygMQ5x44ol405vehNNOOy3ePsqP+y9/+Uuc+DA5OYl169Zhv/32G+nH\nfO6552LTpk147LHH8B//8R945zvfiX//938f6ce8detWvPzyywCAV155BTfffDP23nvvkX7Mw8Re\ne+2FZ555Bo899hgee+wxLFiwAL/+9a9nvKAuYu3atbjwwguxZs0ajI+PD/pyesZs1AWm18tRRfe6\nMSyCGgAGNqa8Dm644YZwjz32CBcuXBiee+65g76cnnDssceG8+fPDxuNRrhgwYJw9erV4XPPPRe+\n613vChctWhSuWLEifP755wd9mbXy85//PLQsK1y2bFm47777hvvuu2944403jvTjvu+++8L99tsv\nXLZsWbj33nuHF1xwQRiG4Ug/Zpn169eHRxxxRBiGo/2YH3300XDZsmXhsmXLwj333DP+uzXKj3mY\neeMb3xg+99xzg76MnrP77ruHb3jDG+K/p6eeeuqgL6lnzAZdIGN6vZwNyK8bwwIPf2EYhmEYhmGY\nLpmx9g+GYRiGYRiGGRZYVDMMwzAMwzBMl7CoZhiGYRiGYZguYVHNMAzDMAzDMF3CopphGIZhGIZh\nuoRFNcMwDMMwDMN0CYtqZsay66674h3veMegL6NnrFy5ErZt409/+tOgL4VhGIZhmAJYVDNdsX79\neti2bfzauHFjz+7bsixYltWz8zMMwzD9g15PLrrookFfCsN0hDvoC2BGg+OOOw6HH354ZvvChQt7\ndp88t4hhGGb04GIJM1NhUc3Uwpvf/GYcd9xxg74MpgtefvllzJs3b9CXwTAMwzAzErZ/MH1jw4YN\nWLFiBV796ldjzpw5/7+9+4+JuowDOP7+3vEjuWOJsFQwEhsiYsNEwxMtFcqzVLRN5o2gTkxlc5it\nnBrpnCxL8kfmprQBZSyHc26ojXkhpbOVFdrEgQ5FIxfLgKHDTQ+5pz/cXR13xw8P7Yef13Yb93yf\ne57P98ae+/Dc8zyQlJRESUmJ17oXL17EarUyYsQIgoODiYqKYv78+Zw+fbrHPi5fvkxcXBxRUVHU\n1tb2WHf69OnExMTQ3NyMxWJhyJAhGAwGzGYzDQ0NbnV7Wt/sbW23TqfDarXyzTffMGXKFAwGAyNG\njOC9994DoK2tjZycHIYOHYrBYGDu3Lk0Nzd7jbOjo4O8vDyGDRtGSEgIkydPprq62mvdqqoqXnjh\nBcLCwhg0aBCJiYkUFRX5jPnMmTPMmjWLwYMHk5iY2OP7JYQQD9Knn36KTqejurqagoICRo4cSUhI\nCMnJyXz77bfA3SUjU6dOxWg0EhkZSUFBwT8ctXiYyUy1GBA3b96kpaXFreyRRx7BaDQCcPjwYRYs\nWEBkZCRvvfUWoaGh7Nu3jyVLltDY2Og2EP7000+kpqbS1dVFTk4O48aNo7W1lRMnTvDdd98xYcIE\nrzGcPn2aF198kfDwcL7//nsef/zxHmPWNI2bN2/y7LPPYjKZ2Lx5M42NjXz00Uekp6dz7tw5dLre\n/+70tbb7zJkzHD58mGXLlvHqq69SXl5Ofn4+gYGBlJWVERsby8aNG2loaGDnzp1kZ2fz1VdfebST\nnZ1NQEAAa9eu5caNGxQVFWE2m6msrCQ1NdVV75NPPmH58uVMmTKF/Px8DAYDNpuN3NxcLl26xJYt\nW9xibmpqIjU1lYyMDBYuXEhHR0ev9yqEEA/amjVrcDgcvPHGG9y+fZutW7diNpspLi4mNzeX5cuX\nk5WVRXl5OevXrycmJobMzMx/OmzxMFJC+OHrr79WmqZ5fVgsFqWUUnfu3FHR0dEqLCxMNTc3u15r\nt9tVSkqK0uv1qqGhQSmllMPhUAkJCWrQoEGqtrbWoz+Hw+H6+YknnlAzZsxQSills9mU0WhUKSkp\nqq2trU+xP/fcc0rTNFVYWOhWXlhYqDRNU0ePHnWVbdiwQWmapn755RePdv4eh5OmaUqv16sffvjB\n7X6HDx+uNE1TK1eudKv/5ptvKk3T1IULFzz6nDx5surs7HSVX716VRmNRhUfH+8q++2331RwcLDK\nzMz0iG/lypVKr9erxsZGt5g1TVPFxcU+3x8hhHiQnJ8nW7duVUopVVpaqjRNU0lJSW5j4KFDh5Sm\naSogIEDV1NS4yp1jrMlk6nOfJSUl6vXXX1ebNm1S2dnZymazua51dHQMwF2Jh4ks/xADYtmyZVRV\nVbk98vPzAaipqeHXX39l8eLFDBs2zPWawMBAVq9ejcPhoKKiAoCff/6Zuro6rFYr48aN8+in+4yw\nUoqysjJeeukl0tLSOHbsGGFhYX2OW6/Xk5eX51bmXMpx8eLFPrfjjclkYtKkSa7ngYGBrufd+5w6\ndarPPletWkVAwF9fKkVFRZGZmcn58+e5cOECAAcOHMBut7N48WJaWlrcHnPmzMHhcFBVVeXWbnh4\nOFar1a97FEKI+y03N9dtDHSOlyaTye2bS+cY2335njdKKbKysjh69Ch79uwhPz+fXbt2YbFYuHTp\nEgDvvvvuAN+J+L+T5R9iQMTGxjJz5kyv1y5fvgxAQkKCx7WxY8e61XEOhk8//XSf+q2pqeHEiROY\nzWYOHjzY713jkZGRBAUFuZWFh4cD0Nra2q+2uhs1apRHmTPhj4mJ8Vrurc/4+HifZY2NjcTFxVFf\nXw9AWlqa11g0TePatWtuZU8++aTsshdC/Ot1H0t9jaPOa30Zu7dt20ZlZSVXrlxxLfMLDQ0lKSmJ\nsrIy0tPTfS41FMIXSarFf5amacTGxhIYGEh1dTWVlZVej/XriV6v93lN/e3Ivp6Szzt37vS7bV/t\nqXs8JtD5us8//5zhw4d7rdP9AygkJOSe+hJCiAfJ11ja0xjbE7vdzgcffIDVanXt+3F67LHHaGpq\noqSkhB07dtxT++LhJUm1uO+cZ1WfO3fO41pdXR3w10zE6NGjgbub/HqjlOLRRx+loqICs9nMyy+/\nzP79+5k3b95Ahe4yZMgQ4O6pHdHR0a7yW7du0dzc7Ir7fqirq+Opp57yKAPP9y08PNznNwZCCCHg\n/PnztLS08Pzzz3tc0+v12Gw2Pvvssz5tVBfi7+Q3Rtx3EyZMIDo6mtLSUn7//XdXeWdnJ4WFheh0\nOtLT0wEYP348CQkJlJSUuBLH3oSGhmKz2UhOTmbhwoUcPHhwwO8hLi4OwON0ju3bt/d7drm/Sy62\nb99OZ2en6/nVq1f54osvGDNmjCuujIwMgoOD2bBhA7du3fJo4/r169jt9n71K4QQ/0W9jbFdXV0A\nXk+I0uv1mEwmmZwQ90RmqsV9p9Pp2LVrFwsWLGDSpEksXboUo9FIeXk5p06d4p133nH7z4ulpaWk\npqbyzDPPkJOTQ0JCAu3t7Rw/fpzZs2ezYsUKjz4MBgOVlZXMnTuXRYsWUVZWRkZGRq+x9TUhTktL\nIy4ujvXr19Pa2srIkSM5efIkp06dIiIiol+JdX+T8K6uLqZNm4bFYuHGjRvs2bOH27dvs3PnTled\nqKgodu/ezZIlS4iPjycrK4vo6Gj++OMPamtrqaiooL6+3m2WXQgh/o96G2MTExOJjY2lvr7etT9F\nKUV5eTlNTU0YDAbg7vGuEydOvO/xiv8PSarFAzFnzhyOHTtGQUEBhYWF2O12xo4dS3FxsccJFBMn\nTuTHH39k06ZN7N+/n7a2NiIiIkhOTnbt+gbP2YiQkBC+/PJL5s+fzyuvvEJXVxcWi8VnTL7Ol/ZG\np9Nx6NAh8vLy+PjjjwkKCmLWrFkcP36clJSUPrfTU5/dy5119+7dy+7du3n//fdpb28nMTGRvXv3\nup1RDfDaa68xevRoPvzwQ4qKimhvbyciIoIxY8ZQUFDA0KFDffYlhBD/Rv0dq/oyrut0Oo4cOcK6\ndes4e/YsQUFBOBwO5s2bx759+8jIyODtt99m9uzZ/oQuHkKautedUUIIIYQQQghA1lQLIYQQQgjh\nN0mqhRBCCCGE8JMk1UIIIYQQQvhJkmohhBBCCCH8JEm1EEIIIYQQfpKkWgghhBBCCD9JUi2EEEII\nIYSfJKkWQgghhBDCT5JUCyGEEEII4SdJqoUQQgghhPDTn2J5mS49ZUbWAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2df0b550>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(1, 2, figsize=(12,6))\n",
+ "\n",
+ "xvec = np.linspace(-5,5,200)\n",
+ "\n",
+ "rho_cavity = ptrace(rho_ss, 0)\n",
+ "W = wigner(rho_cavity, xvec, xvec)\n",
+ "wlim = abs(W).max()\n",
+ "\n",
+ "axes[1].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n",
+ "axes[1].set_xlabel(r'Im $\\alpha$', fontsize=18)\n",
+ "axes[1].set_ylabel(r'Re $\\alpha$', fontsize=18)\n",
+ "\n",
+ "axes[0].bar(arange(0, N), real(rho_cavity.diag()), color=\"blue\", alpha=0.6)\n",
+ "axes[0].set_ylim(0, 1)\n",
+ "axes[0].set_xlim(0, N)\n",
+ "axes[0].set_xlabel('Fock number', fontsize=18)\n",
+ "axes[0].set_ylabel('Occupation probability', fontsize=18);"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Cavity fock-state distribution and Wigner function as a function of time"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tlist = np.linspace(0, 25, 5)\n",
+ "output = mesolve(H, psi0, tlist, c_ops, [], options=Odeoptions(nsteps=5000))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2YAAAF6CAYAAAByXks3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWusLFlZPv7UWququ/fpM+fAGP4QIpgfYAQRGdCAysyY\nIMSYKI6XhEQFjIZPxgT0g0b95BgUMDjGT6LxwoiGxMQwigS8wAySqBiMQT4IQQYQRJzx7Dm9u7uq\n1uX/Ya131arqqu7q3n3dZz3JTl929f3t1e+znvd93sQYYxARERERERERERERERFxMLBDP4GIiIiI\niIiIiIiIiIg7HZGYRUREREREREREREREHBiRmEVERERERERERERERBwYkZhFREREREREREREREQc\nGJGYRUREREREREREREREHBiRmEVERERERERERERERBwYkZhFREREREREREREREQcGOLQTyCiwl/8\nxV/g05/+NBhjePazn42f+ImfuNRxERH7wGQywdvf/nZ8/dd/PZ566im89a1vRZIkC8e9973vxVe+\n8hX80z/9Ex544AG8/vWvP8CzjbiT8a//+q94+OGH8c53vtNf1zcun/e85+FLX/oSbt68iXe84x14\nwxvesK+nHXEHoy1mH3nkEXzpS1/CfD7Hc5/7XPzQD/1Q6237HhcRsS10rad918+Y3wIwEUeBW7du\nmZe97GX+8itf+Urzta99bePjIiL2hZ/8yZ80n//8540xxrzoRS/y50N85jOfMb/9279tjDHma1/7\nmrl586b53Oc+t9fnGXFn4zd/8zfNAw88YN70pjf569aJy9/93d81jz/+uCnLci/PNyKiLWa/8IUv\nmHe84x3+8k/91E+Z27dvL9y273EREdtC23r6n//5n8aYfutnzG8tYinjlvHqV78aUsq1b/foo4/i\nRS96kb/8rd/6rfj7v//7jY+LiFgHm8bt5z73OXz5y1/Gc5/7XADAhz70IX8+xL//+7/j7W9/OwDg\n677u6/D85z8f//Iv/3K5Jx1xx2HTOAWAt771rXjd615Xu26duMyyDM95znMgRCw0ieiPbcfs//7v\n/+Jv/uZvUBQFAODatWvIsmzhtn2Pi4hoYtOYbVtPP/GJTwDot37G/NYi/sJsEf/1X/8FY0wt8D73\nuc/h3e9+d+dtXvnKV+J1r3udl3gJN2/exGc+85mF4/seFxHRF5eJ27/7u7/DzZs38Z73vAe3bt3C\n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\nQyC72d1zzp5z7X4/MzuTZc/+ryu7vxzOf8/Dji6TQ3QTPdcvHD2ATIyVExozYAyZbDClWsfNQ+9y\nfePEq98v07q2vd40ZfnLxuYsFWwY5xYbm7PTgjYf2IvGDEjCy6bMS042xNw+Xj4bv7vTvWaZvs+2\nbNj6cWEFW16bIPFqr1mi56bz/GwJ6joV7nOS50TP90NQ5oHcQGMGZMCEQo43IPzeWxak/0xsuCKb\nLRu2Z/Pi6pqZXjQF50r3kC6nG7OjCcrhgBwSnn9sb878Hh/B4Ob6k8YMSJPTK0ilUiMIG0lOpPIa\nuX1J/HSWdft8naByer6d14ff5oNs/S27kV8/1zvsKcstXnwgBASZWx9w0ZgBachGU5buczK9lH6u\nSfd1dXPPQxBfWy+aMi8EZW+NF8688mgybuw1S+V5yZ7rJ6+PPoA/cu0w27ORO4zGaW4D35ht27aN\nMRnTd+kcuihJr7/2WsI6Y8nkjzoX3stUNrq2bdvm2l6zVJ39e9qwEZFJU3bm75mNw2+lxH8nXvHz\n7yTdfDg5v3Ws39PGDcrRXo9t27al1dR5sT7IhmyP6eZ4qb7mr73+uqPn2yBkTNbXeVJ+ZNbvMZ1c\nZfRsNGaMmfNjOpXJ9+mM9nt6cejY6eUTrRzSlc7KJIj58WKvWTq/ZxA2IjLdU+b0tc2k8bB5g1NK\nrXlKdUy3mqVUX1cbm7OzJdqYP5ubf5dBXO8FfbxUXv9kTXYQ1qtOnPmhQKqZdVM+ZDaIY2aa28A3\nZoCfMv2S00x4eUJ7Pp/348V/6ja+ftk+hyed1yiVpi9oG2epHqY42nPcWt7phqwtOXZ7vQrvubkH\nwY3n+8XWeSN9bp0eQWMGuMTpOT1ujuelTMZ1Olcvv0Q6H764N9tXEM10HDdq28zN809zpTlzcl5Z\nPmXHBk7PgbTt/cznD0TzlSvNmcmS6667zkjixi2j23XXXZetqJJZbq7cyCw3G2/Zzi2Z5eb0xrqW\nm223ZJkNGWPZRxAAAAAAkGM4lBEAAAAAfEZjBgAAAAA+s6ox27hxo8aNG6fDhw97Ptb999+vSCSi\nyspKLV++XJ999plnY3V2dqq8vFxlZWVqaWnxbJzTotGorr/+es2ZM0dz587VY4895vmYkhSLxVRV\nVaWlS5dmZbwgILPuILPZQ2bd4VdmpfzLLZl1B5nNrlzMLZl1QbZOlHRq//79pr6+3pSUlJhPPvnE\n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\njzzySPwNyVRPT48mTpyoVatW6Rvf+IbWrFmjEydOZFTr0ksv1a9+9StNmzZNU6dO1cUXX6zvfve7\njuYnSYODg/EvSJw8ebJr32S/efNmLVmyJOPnt7e3KxwOa/78+a7Mxw1e5TZXMyt5k1sym7p8yKwU\n/HUtmU0dmU2fTZmVci+3Qd6mJbPuCEJmPW3MvPpSvuPHj2vFihV69NFHNX78+IxqvPDCC5o0aZKq\nqqocf7owPDysnTt36s4779TOnTt1wQUXaMOGDRnV2rt3r/7whz+ot7dXAwMDOn78uJ599llH8ztb\nKBRy5b158MEHdd5552nlypUZPf/EiRNqbm7W+vXr4//m9L1wgxe5zeXMSt7nlswmlw+Zlexa15LZ\n5Mhs+mzJrJSbuQ3qNi2Zza3MetqYFRUVKRqNxu9Ho1GFw2FHNU+dOqWbbrpJP/vZz/SjH/0o4zpv\nvvmmnn/+ec2YMUM333yzXnnlFd16660Z1QqHwwqHw1q4cKEkacWKFdq5c2dGtd555x1dc801uuyy\ny1RQUKDly5frzTffzKjWmSZPnqyPP/5YkvTRRx9p0qRJjuo9+eST6ujocPQHtnfvXvX29qqyslIz\nZsxQX1+fqqurdeDAAUdzc8rt3OZ6ZiVvcktmU5cPmZWCv64ls6kjs+mzIbNS7uY2qNu0ZDa3Mutp\nY1ZTU6M9e/aot7dXQ0NDeu6557Rs2bKM6xljtHr1alVUVOiee+5xNLfm5mZFo1H19PToL3/5ixYt\nWqSnn346o1pTpkxRcXGx/vvf/0qStm7dqjlz5mRUq7y8XNu3b9fnn38uY4y2bt2qioqKjGqdadmy\nZXrqqackSU899ZSj/7g6Ozv1yCOPqL29XV/72tcyrjNv3jwNDg6qp6dHPT09CofD2rlzpyt/ZE64\nmdt8yKzkTW7JbOryIbNS8Ne1ZDZ1ZDZ9Qc+slNu5Deo2LZnNscymfbmQNHV0dJhZs2aZmTNnmubm\nZke1Xn/9dRMKhUxlZaVZsGCBWbBggXnxxRcdz7Grq8vxVWzeffddU1NTY+bPn29+/OMfO7rCXUtL\ni6moqDBz5841t956qxkaGkrr+Q0NDeaKK64whYWFJhwOm82bN5tPPvnEfOc73zFlZWVm8eLF5tNP\nP82o1hNPPGFKS0vNtGnT4u/B2rVr06p13nnnxed1phkzZvh+1aXT3MptvmTWGGe5JbPO5UNmjQnO\nupbMOkdm0xeUzI5WLx9yG/RtWjKbXr0gZpYvmAYAAAAAn3n+BdMAAAAAgORozAAAAADAZzRmAAAA\nAOAzGjMAAAAA8BmNGQAAAAD4jMYMAAAAAHxGYwYAAAAAPqMxAwAAAACf/R9jhv20ohCclwAAAABJ\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2dd91128>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "rho_ss_sublist = output.states\n",
+ "\n",
+ "xvec = np.linspace(-5,5,200)\n",
+ "\n",
+ "fig, axes = plt.subplots(2, len(rho_ss_sublist), figsize=(3*len(rho_ss_sublist), 6))\n",
+ "\n",
+ "for idx, rho_ss in enumerate(rho_ss_sublist):\n",
+ "\n",
+ " # trace out the cavity density matrix\n",
+ " rho_ss_cavity = ptrace(rho_ss, 0)\n",
+ " \n",
+ " # calculate its wigner function\n",
+ " W = wigner(rho_ss_cavity, xvec, xvec)\n",
+ " \n",
+ " # plot its wigner function\n",
+ " wlim = abs(W).max()\n",
+ " axes[0,idx].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n",
+ " axes[0,idx].set_title(r'$t = %.1f$' % tlist[idx])\n",
+ " \n",
+ " # plot its fock-state distribution\n",
+ " axes[1,idx].bar(arange(0, N), real(rho_ss_cavity.diag()), color=\"blue\", alpha=0.8)\n",
+ " axes[1,idx].set_ylim(0, 1)\n",
+ " axes[1,idx].set_xlim(0, 15)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Steady state average photon occupation in cavity as a function of pump rate\n",
+ "\n",
+ "References:\n",
+ "\n",
+ " * [S. Ashhab, J.R. Johansson, A.M. Zagoskin, F. Nori, New J. Phys. 11, 023030 (2009)](http://dx.doi.org/10.1088/1367-2630/11/2/023030)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def calulcate_avg_photons(N, Gamma):\n",
+ " \n",
+ " # collapse operators\n",
+ " c_ops = []\n",
+ "\n",
+ " rate = kappa * (1 + n_th_a)\n",
+ " if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * a)\n",
+ "\n",
+ " rate = kappa * n_th_a\n",
+ " if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * a.dag())\n",
+ "\n",
+ " rate = gamma\n",
+ " if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * sm)\n",
+ "\n",
+ " rate = Gamma\n",
+ " if rate > 0.0:\n",
+ " c_ops.append(sqrt(rate) * sm.dag())\n",
+ " \n",
+ " # Ground state and steady state for the Hamiltonian: H = H0 + g * H1\n",
+ " rho_ss = steadystate(H, c_ops)\n",
+ " \n",
+ " # cavity photon number\n",
+ " n_cavity = expect(a.dag() * a, rho_ss)\n",
+ " \n",
+ " # cavity second order coherence function\n",
+ " g2_cavity = expect(a.dag() * a.dag() * a * a, rho_ss) / (n_cavity ** 2)\n",
+ "\n",
+ " return n_cavity, g2_cavity"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Gamma_max = 2 * (4*g**2) / kappa\n",
+ "Gamma_vec = np.linspace(0.1, Gamma_max, 50)\n",
+ "\n",
+ "n_avg_vec = []\n",
+ "g2_vec = []\n",
+ "\n",
+ "for Gamma in Gamma_vec:\n",
+ " n_avg, g2 = calulcate_avg_photons(N, Gamma)\n",
+ " n_avg_vec.append(n_avg)\n",
+ " g2_vec.append(g2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nwOwFfs89UL++7TTB49ZbzZz6jz+2nURERETcpRIuXpGRARMmmC32WrSwnSa4hIVB//5mms8PP9hO\nIyIiIu5QCRevmDUL6tQxR9KL55UsCUOGmC0fN2+2nUZERESKSiVcPG7zZli5Ev78Z9tJgltMDCQm\nmvnhhw7ZTiMiIiJFoRIuHnXmDEybZnbxKF3adprg16gRdOlidkzJzLSdRkRERApLJVw8au5cqFZN\n88B9qXNnqFoV3ntPR9uLiIgECpVw8ZgdO2DxYjMKLr7jcsH998P+/fDNN7bTiIiISGGohItHZGfD\n1KnQuzeULWs7TeiJjIRBg+C772DtWttpRERE5I+ohItHzJ8P0dHQpo3tJKGrfHlzKNLUqbBnj+00\nIiIicjkq4eLY3r2mhN93n5kaIfbExkKvXvD662avdhEREfFPKuHiSG6uWRB4881QoYLtNAJwww1Q\nty589pntJCIiIlIQlXBx5PvvTRFPSLCdRPK64w5YvRpSU20nERERkUtRCRe3HTwIX3xhduYI058k\nv1KqFNx1l9mzPSvLdhoRERG5kKqTuCU3F/7zH7jxRrNHtfifFi2gcmWYN892EhEREbmQSri4ZelS\nOHoUunWznUQK4nLB3XebbQvT0mynERERkbxUwqXI0tNhxgx44AEID7edRi6nfHm45Rb44AOdpiki\nIuJPVMKlyD76CNq2hVq1bCeRwujQwcwLX7zYdhIRERE5SyVcimTVKti504yuSmAICzOLZ2fNMlOI\nRERExD6PlPAvvviC+++/n9mzZ3vi7cRPnTxpRsHvv98cky6Bo3p1iI83//1ERETEPrdL+OnTp3n7\n7beJj49n1apVPPnkk6xatYr27dvz9ttvc/r0aU/mFD8wYwY0awb16tlOIu74059g1y745RfbSURE\nRKTIJfzAgQOMGjWKbt26ERYWxvz58xk+fDgNGzZkxIgRzJ8/H4AuXbowatQoDh486PHQ4nu//gob\nNpgj0SUwRUbCfffBhx/qSHsRERHbXLm5hdszYdOmTbz88svs2LGDIUOG8Kc//emyr8/NzWXu3Lm8\n/vrr1K5dm0cffZR6PhpCdblcFPK3JYVw+jSMHm22u2vc2HYacWraNIiIMP89RURExBl3e+cflvAl\nS5Ywbtw4SpYsydChQ2nWrFmRL/Lzzz8zfvx4Tp06xWOPPcb1119f5PcoCpVwz/rsMzhyBPr1s51E\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2dd97c50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(1, 1, figsize=(12,6))\n",
+ "\n",
+ "axes.plot(Gamma_vec * kappa / (4*g**2), n_avg_vec, color=\"blue\", alpha=0.6, label=\"numerical\")\n",
+ "\n",
+ "axes.set_xlabel(r'$\\Gamma\\kappa/(4g^2)$', fontsize=18)\n",
+ "axes.set_ylabel(r'Occupation probability $\\langle n \\rangle$', fontsize=18)\n",
+ "axes.set_xlim(0, 2);"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n77+vGjVqaN68eerXr58WLVqkXr165dtnnz599MQTT+jFF1/M18d7zpw5at26tT788EP99ttvGj9+\nvIYMGaIzZ86ob9++evrppzV//ny98MILatWqlR544AFJUkpKiipXrqw33nhDwcHBOnHihN555x11\n6tRJe/fuLfGVeJvNpp9//lnbt29XbGysatasqXr16mnr1q2KiIjQ7bffro8++kje3t6aOXOmunXr\npnXr1um2226TJH300Ud69tln9cQTT2jAgAE6cOCABg8erLNnz96w+4zNZtOqVat06NAhvfPOO8rI\nyND48ePVr18/hYSEqGXLlpo/f75WrlypP//5z2rQoIHGjBmT92919913KyMjQ7Gxsapfv76WL1+u\nMWPGKCMjQ2PHji3Rz8FpGC7ART4mAKCEDh82jA8+MIyXXjKM9esNIzvb6opQWmFhYcbQoUML3TZ8\n+HDDZrMZcXFxeesyMjKMwMBA48knn8xbFx0dbdSsWdNISUnJ9/7u3bsbbdu2zVueOHGiYbPZjGnT\nphU4ls1mM5o2bWpkX/VlevbZZw2bzWa88cYbeeuysrKMmjVrGlFRUdf9TFlZWcaRI0cMm81mfPvt\ntwWOfyP16tUzfH19jaSkpHzru3btarRo0cLIzMzMW5ednW00b97c6Nu3b95ySEiI8eCDD+Z778KF\nCw2bzZav7k8++cSw2WzG4cOH8x07MDDQSEtLy1s3bdo0w2azGaNGjcq3z9tuu83o0qVL3vKkSZMM\nLy8v48CBA/najRo1yggKCsr3s3VEpc2ddF8BALicpCTp73+XZswwr4rHxkodOkgONKAF7MzX11f3\n3HNP3rKnp6eaNGmio0eP5q1bvny5evbsqSpVqigrKytvuu+++7R9+3adO3cu3z4ffvjhQo/VvXv3\nfFfOmzZtKkm6//7789ZVqlRJjRo1UmJiYr73/u1vf1ObNm3k7+8vDw8P1fvfncW//vprqT53hw4d\nVLNmzbzlixcvatWqVRowYIAk5X3GnJwc3XvvvVq1apUkKTExUceOHctrl6t3795ydy9eR4uOHTvK\n/6qnaBX2c8hdf+2/Q4cOHRQWFlbg3+H06dPavXt3CX4CzsOhu69ER0fr+++/V82aNbVz584C25OT\nkzVkyBD99ttvysrK0nPPPacRI0aUf6EAAKeQkiItWWI+8Kd7d2n4cKkc782DhQICAgqs8/T01KVL\n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\ns/nWr1q1yrDZbMbcuXPzrf/8888Nm81mbNu2zTAMw/jwww8Nm81mbN68OV+7Nm3aGG5ubsbhw4fz\n1oWFhRlRUVEFjv3666/nrcvKyjJq1KhheHh4GAkJCXnrFy9ebNhsNmPlypWGYRhGenq6UaVKFWPk\nyJH5jhsfH294enoa77//fpGfG6W3Z49hPPecYfzvKwgAgNMqbe6k+4oDSktL05/+9Cc1bNhQXl5e\n8vT01LBhw2QYhvbv3y9JCg8Pl4eHhx577DF98803OnnyZLH3371797wr4pLUsmVLScrrorFz505d\nuHBBAwYMyPe+/v37l+hzPHzNk16WL18uT09PPfLII8rKysqbunfvLklavXq1JGnDhg2qV6+e7rjj\njnzvf+SRR2R+12/sgQceyJuvVKmSGjVqpKZNm6pevXp565s2bSpJSkxMlCStX79e6enpGjRoUL76\nQkJC1LRpU61atapEnx83ZhjSTz9JH38sPfGE1LGj1RUBAGANQrkDioqK0ocffqjx48drxYoV2rJl\ni/7yl79IUl6/8oYNG+qHH35QTk6Ohg4dqtq1a6tjx47FCo7Vr7l7LvcGzNx9nzhxQpJUs2bNfO2u\nXb6R2rVr51s+efKkLl++LF9fX3l6euZNwcHBstlsOn36dN7xCztWcHBwsY8dEBCQb9nT07PQddKV\nz537i023bt3y1efp6aldu3YpJSWl2MfHjWVmSp9+Kq1fL73wgvS/35EAAHBJ9Cl3MJcuXdLixYsV\nGxurcePG5a3fvn17gbaRkZGKjIxUZmam1qxZo9dee00PPvigDh8+XCB4l0RumD558qSaN2+etz4p\nKalE+7m2r3dgYKC8vLy0Zs2aQtvX+d+dfbVr19aePXsKbC/p8UsqMDBQkvTpp5/q1ltvLbDd39+/\nTI/vSs6ckWbOlIKCpOefZxxyAAAI5Q4mIyND2dnZcnfP/08ze/bs677Hw8NDXbp00fPPP6++ffsq\nPj7+pkJ5q1at5Ovrq/nz5+uee+7JW//111+Xep+S2aXkrbfeUmpqqrp27Xrddh07dtTs2bO1efNm\n3XnnnZIkwzD0zTffFPsm09K466675O/vr/3792vo0KFldhxXd/Cg9Pe/S127SvfdJ5XhPykAAE6D\nUG6RZcuWFeiOUa1aNXXr1k0dOnTQ//3f/6l27doKDAzUrFmzdPz48XxtZ86cqdWrV6tnz54KCQlR\n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\nIqIo+wdhfz7Nsc2PAgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2d5dd128>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(1, 1, figsize=(12,6))\n",
+ "\n",
+ "axes.plot(Gamma_vec * kappa / (4*g**2), g2_vec, color=\"blue\", alpha=0.6, label=\"numerical\")\n",
+ "\n",
+ "axes.set_xlabel(r'$\\Gamma\\kappa/(4g^2)$', fontsize=18)\n",
+ "axes.set_ylabel(r'$g^{(2)}(0)$', fontsize=18)\n",
+ "axes.set_xlim(0, 2)\n",
+ "axes.text(0.1, 1.1, \"Lasing regime\", fontsize=16)\n",
+ "axes.text(1.5, 1.8, \"Thermal regime\", fontsize=16);"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Here we see that lasing is suppressed for $\\Gamma\\kappa/(4g^2) > 1$. \n",
+ "\n",
+ "\n",
+ "Let's look at the fock-state distribution at $\\Gamma\\kappa/(4g^2) = 0.5$ (lasing regime) and $\\Gamma\\kappa/(4g^2) = 1.5$ (suppressed regime):"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Case 1: $\\Gamma\\kappa/(4g^2) = 0.5$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Gamma = 0.5 * (4*g**2) / kappa"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "c_ops = [sqrt(kappa * (1 + n_th_a)) * a, sqrt(kappa * n_th_a) * a.dag(), sqrt(gamma) * sm, sqrt(Gamma) * sm.dag()]\n",
+ "\n",
+ "rho_ss = steadystate(H, c_ops)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nBFkgP2n+LTVbMY7695z2/wcYO/r6+rRv377Q+uXLl+viiy9OfZyxem8GALQxp0WeeeYZZ+HChbXl\n5cuXO3fccYevzbXXXuusXLmytnzCCSc4+/btCx1r+vTpjiS++OKLL774yuVr+vTpI3cD7DBnn322\n8+yzz9aWV6xY4axYsaK2vHDhQmfLli2h/bg388UXX3zxledX1ntzyyq6p556qnbu3Kldu3bp6KOP\n1qpVq7Ry5Upfm/7+ft13331asmSJtmzZoo9//OPWbssvv/zyaJ02AABjjmP0rurv79fll1+um266\nSXv27NHOnTv12c9+NrQP92YAQCu1LOj29PTovvvu08KFC1WpVHT11VfrxBNP1C9+4XbZu/baa/XF\nL35R69ev14wZM3TIIYfowQcfbNXpAgAwpqxevVo33HCD3n77bV100UXq7e3Vhg0bNGfOHF166aWa\nM2eOenp69POf/5yuywCAtlNwnMAgWAAAAAAAOlhHP/Ru48aNmj17tmbOnKk777yz1afTMa666ipN\nnjxZc+fOra1799131dfXp1mzZumCCy7Qe++918IzbH+7d+/WOeeco5NOOkmf/vSnde+990riOmax\nf/9+LViwQPPnz9ecOXP0/e9/XxLXsBGVSkW9vb21yYO4htlMmzZNJ598snp7e2tdcLmGjXn00Ud1\n0kknqVQq6Z///Kdv24oVKzRz5kzNnj1bjz/+eIvOELfeequmTp2q3t5e9fb2auPGja0+pTGLz7Ht\nyXZPwOjKK6t0bNCtVCq6/vrrtXHjRm3fvl0rV67Ujh07Wn1aHWHZsmWhG9sdd9yhvr4+vfTSSzrv\nvPN0xx13tOjsOkO5XNZPf/pTvfDCC9qyZYvuv/9+7dixg+uYwYQJE7Rp0yY999xzev7557Vp0yb9\n7W9/4xo24J577tGcOXNq3Ue5htkUCgVt3rxZ27Zt08DAgCSuYaPmzp2r1atXh54/uX37dq1atUrb\nt2/Xxo0b9fWvf13VarVFZzm2FQoF3XTTTdq2bZu2bdumCy+8sNWnNCbxObZ92e4JGF15ZZWODboD\nAwOaMWOGpk2bpnK5rCVLlmjt2rWtPq2OcNZZZ2nSpEm+devWrdPSpUslSUuXLtWaNWtacWod46ij\njtL8+fMlSYceeqhOPPFE7dmzh+uY0cSJEyVJg4ODqlQqmjRpEtcwozfeeEPr16/XNddcU5swiGuY\nXXAUD9ewMbNnz9asWbNC69euXavLLrtM5XJZ06ZN04wZM/gA2UKMWms9Pse2N/6NtFZeWaVjg+6e\nPXt07LHH1pZ5YH1z3nrrrdqM1pMnT9Zbb73V4jPqHLt27dK2bdu0YMECrmNG1WpV8+fP1+TJk2td\nwbmG2Xzzm9/UT37yExWL9f+dcw2zKRQKOv/883Xqqafql7/8pSSuYd7efPNNTZ06tbbMPbu1fvaz\nn2nevHm6+uqr6ZbfInyObV+2ewJar5H7cstmXW4WMzyOnEKhwPVN6YMPPtDixYt1zz336LDDDvNt\n4zomKxaLeu655/Sf//xHCxcu1KZNm3zbuYbxHnvsMR155JHq7e3V5s2brW24hsmeeuopTZkyRf/6\n17/U19en2bNn+7ZzDf36+vq0b9++0Prly5fXxomnwTUdOVF/Rrfffruuu+463XLLLZKkm2++Wd/6\n1rf061//erRPcczj73/7st0TzjrrrFafFgxp78sdG3SPOeYY7d69u7a8e/du32+Lkc3kyZO1b98+\nHXXUUdq7d6+OPPLIVp9S2xsaGtLixYt15ZVX6pJLLpHEdWzU4YcfrosuukjPPvss1zCDp59+WuvW\nrdP69eu1f/9+/fe//9WVV17JNcxoypQpkqRPfOIT+tKXvqSBgQGuYYwnnngi8z7Be/Ybb7yhY445\nJs/TgiHtn9E111yT6ZcTyA+fY9uX7Z5A0G29Ru7LHdt1+dRTT9XOnTu1a9cuDQ4OatWqVerv72/1\naXWs/v5+Pfzww5Kkhx9+uBbcYOc4jq6++mrNmTNHN954Y2091zG9t99+u9Zl7n//+5+eeOIJ9fb2\ncg0zWL58uXbv3q1XX31VjzzyiM4991z95je/4Rpm8NFHH+n999+XJH344Yd6/PHHNXfuXK5hDswx\nbv39/XrkkUc0ODioV199VTt37mQ20xbZu3dv7fXq1at9s5pi9PA5tj1F3RPQeg3dl50Otn79emfW\nrFnO9OnTneXLl7f6dDrGkiVLnClTpjjlctmZOnWq88ADDzjvvPOOc9555zkzZ850+vr6nH//+9+t\nPs229te//tUpFArOvHnznPnz5zvz5893NmzYwHXM4Pnnn3d6e3udefPmOXPnznV+/OMfO47jcA0b\ntHnzZufiiy92HIdrmMUrr7zizJs3z5k3b55z0kkn1e4lXMPG/PGPf3SmTp3qTJgwwZk8ebJz4YUX\n1rbdfvvtzvTp050TTjjB2bhxYwvPcmy78sornblz5zonn3yys2jRImffvn2tPqUxi8+x7SfqnoDR\nlVdWKTgO04oBAAAAALpHx3ZdBgAAAADAhqALAAAAAOgqBF0AAAAAQFch6AIAAAAAugpBFwAAAADQ\nVQi6AAAAAICuQtAFAAAAAHQVgi4AAACQwebNm1UsFnXXXXe1+lQARCDoAgAAAA0oFAqtPgUAEQi6\nAAAAAICuQtAFAAAAmvDQQw+pWCzqySef1G233aZp06Zp4sSJWrBggZ566ilJbnfnM888U4ceeqiO\nPvpo3XbbbS0+a6C7EXQBAACAHHzve9/TmjVrdOONN+qHP/yhXn31VV144YX6wx/+oMWLF+vzn/+8\n7rrrLs2ePVu33HKLfve737X6lIGu1dPqEwAwcu6991698MILGjdunH70ox/pV7/6lYrFogYGBrR4\n8WJ95StfafUpAgDQNarVqrZs2aKeHvcj9pw5c7Ro0SJdccUV2rp1q0455RRJ0lVXXaXjjjtO999/\nv6644opUx37wwQf1zDPP6JOf/KR27typr371q+rr65MkffjhhzrkkENG5ocCOhRBF+hSO3bs0BFH\nHKFvfOMbOvnkkzV+/HjdfvvtGj9+vNauXaurrrqKoAsAQI6uu+66WsiVpDPPPFOSdMYZZ9RCriSV\ny2WddtppevrppxOP6TiOvva1r2loaEi///3vVSwW9f777+v444/X1q1bNX36dN188826++678/+B\ngA5G0AW61MDAgPr7+/WnP/1JRxxxhG6++WaNHz9ekvTOO++oWGTkAgAAefrUpz7lW540aZIk6fjj\njw+1nTRpkt55553EY959993asGGDdu3aVbt3H3bYYfrMZz6j3/72t1q0aJEvRANw8UkX6FJLly7V\npEmTtGnTJvX19enwww+vbdu0aZPOPvvs1p0cAABdqFQqZVqfZHBwUHfeeaeWLVumQw891LftyCOP\n1Ouvv64HHnhAl19+eUPHB7oZQRfocsFQu3//fj322GN0WwYAoM29+OKLevvtt2tjcU2lUkmPP/64\nLrnkEnppARb8qwC62GuvvaZdu3bpnHPOqa1bs2aNyuWyFi1apE2bNqUaHwQAAPJXKBRit1cqFUnS\nscceG9pWKpV0xhln6Nxzzx2RcwM6HUEX6GJPPvmkpkyZolmzZtXWPf300/ryl7+scrmsdevW6fTT\nT2/hGQIAMHY5jhO7fd68eZo5c6Z27Njh2+eRRx7R66+/rsHBQUlMVOdWAAAAyElEQVTSP/7xjxE9\nT6ATMRkV0MVeeeWV0GMLLr/8cq1YsULf+c53tGzZMro7AQCQg6TqrK190j7FYlGPPfaYfvCDH+j5\n55/XuHHjVK1W1d/fr5UrV+rSSy/Vt7/9bX3hC19o5tSBrlRwkn6VBAAAAABAB6GUAwAAAADoKgRd\nAAAAAEBXIegCAAAAALoKQRcAAAAA0FUIugAAAACArkLQBQAAAAB0FYIuAAAAAKCrEHQBAAAAAF2F\noAsAAAAA6CoEXQAAAABAV/l/OtK274a/KB0AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2c13f588>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(1, 2, figsize=(16,6))\n",
+ "\n",
+ "xvec = np.linspace(-10,10,200)\n",
+ "\n",
+ "rho_cavity = ptrace(rho_ss, 0)\n",
+ "W = wigner(rho_cavity, xvec, xvec)\n",
+ "wlim = abs(W).max()\n",
+ "axes[1].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n",
+ "axes[1].set_xlabel(r'Im $\\alpha$', fontsize=18)\n",
+ "axes[1].set_ylabel(r'Re $\\alpha$', fontsize=18)\n",
+ "\n",
+ "axes[0].bar(arange(0, N), real(rho_cavity.diag()), color=\"blue\", alpha=0.6)\n",
+ "axes[0].set_xlabel(r'$n$', fontsize=18)\n",
+ "axes[0].set_ylabel(r'Occupation probability', fontsize=18)\n",
+ "axes[0].set_ylim(0, 1)\n",
+ "axes[0].set_xlim(0, N);"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Case 2: $\\Gamma\\kappa/(4g^2) = 1.5$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Gamma = 1.5 * (4*g**2) / kappa"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "c_ops = [sqrt(kappa * (1 + n_th_a)) * a, sqrt(kappa * n_th_a) * a.dag(), sqrt(gamma) * sm, sqrt(Gamma) * sm.dag()]\n",
+ "\n",
+ "rho_ss = steadystate(H, c_ops)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nMjej+tKXvqSlS5dq69at2n333fW5z31O55xzTqR5VCsqlYpmzJihBx54QBMnTtRHP/rRumZUF110\nkcaPH68rr7xSmzdv1mGHHab//M//1G677RZ9EzQNAQDkiM+VztGMCgCQp1abUbXUdXn79u360Y9+\npFtuuUVr1qyR67r62Mc+pnPOOUennXaaxowZ09Jgf/azn+nCCy+Ubds6++yzdckll+jmm2+WJC1c\nuFCvv/66zjrrLL388styHEeXXHKJTj/99Po3wS8kAIAc8bnSOYIuACBPXQ26YS+++KJuvfVWLVmy\nRH/4wx80btw4nXrqqTrnnHM0e/bsdk7ZNn4hAQDkic+VzhF0AQB5GrSg69u2bZsWLlyoO++8M9h2\n0EEH6dJLL9Wpp57ayakz4xcSAECe+FzpHEEXAJCnVoNu2x2lfv3rX+uWW27RnXfeqS1btmjvvffW\n2WefrVKppJtvvlmnnXaann76aV155ZXtvgQAAAAAAC1rqaK7detWLV26VLfccosef/xxFQoFfepT\nn9K5556r448/PrhkUKVS0RlnnKHVq1dr8+bNXRu8j7+8AwDyxOdK56joAgDy1LWK7v/8n/9T99xz\nj7Zv3659991X3/rWt/SFL3xBe+21V/1JCwWddNJJ+rd/+7fMAwEAAAAAIA+ZK7qlUkknnXSSzjvv\nPM2bN6/p8S+99JJWr16tM888s9MxNsVf3gEAeeJzpXNUdAEAeepaM6o//vGP2mOPPdoeWDfxCwkA\nIE98rnSOoAsAyFOrQdfMeuDs2bN13333pe7/yU9+oqlTp2Z+YQAAAAAAuiFz0H3ppZf07rvvpu5/\n99139dJLL+UxJgAAAAAA2tb25YXiXnvtNY0ZMyav0wEAgGFsn3320fve9z5ZlqVisah169YN9ZAA\nAAg0DLpr1qzRmjVrgrnQ99xzj1544YW649544w398Ic/1CGHHNKdUQIAgGHFMAytXr1au+2221AP\nBQCAOg2D7i9+8QtdffXVweN77rlH99xzT+Kx06ZN04033pjv6AAAwLBFwy4AwHDVsOvy1q1btWXL\nFknS1KlTdeONN+qkk06KnsAwtMsuu+j9739/d0faAN0xAQB54nOlualTp2r8+PGyLEsLFy7Uueee\nG9lP12UAQJ5a7brcsKI7fvx4jR8/XpK0atUqffjDH9aee+7Z2QgBAMBO75e//KUmTJigP/7xj5o3\n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\n2CguLvasZ2VlGTU1Nb1ex9jMwsLCwuLLxdux2bRPdNPS0tTU1KTm5mZFRkaqtLRUJSUlPfZxuVza\nsGGD8vLyVFNTo+9///t9Tlv+7LPPRqpsAADGHONbs6tcLpfmzZun5cuXq7W1VU1NTbr55pt7vYax\nGQBgJtOCblBQkDZs2KCsrCx1dXVp8eLFmjp1qjZt+uY+1IKCAt15552qrKxUbGysxo8fr23btplV\nLgAAY8ru3bv18MMP69SpU7rrrruUmpqqvXv3KiEhQXPnzlVCQoKCgoL00ksvMXUZADDq2AzjOzfB\nAgAAAADgx0z7eiFfcLvdcjqdiouL05o1a8wux28sWrRI4eHhSkpK8mz797//rczMTMXHx+unP/2p\nzpw5Y2KFo19LS4tuu+02JSYm6oc//KFefPFFSfSjNy5cuKD09HSlpKQoISFBTzzxhCT6cCi6urqU\nmprqeXgQfeid6OhoTZs2TampqZ4puPTh0LzyyitKTExUYGCgPvzwwx5txcXFiouLk9Pp1P79+02q\nEE8//bQcDodSU1OVmpoqt9ttdkljFtexo1NfYwJGlq+yit8G3a6uLi1dulRut1sNDQ0qKSlRY2Oj\n2WX5hfz8/F4D2+rVq5WZmal//vOfuuOOO7R69WqTqvMPdrtdv/3tb/XJJ5+opqZGGzduVGNjI/3o\nhSuvvFJVVVX66KOPVF9fr6qqKr3zzjv04RC88MILSkhI8EwfpQ+9Y7PZVF1drbq6Os/3wdKHQ5OU\nlKTdu3fr1ltv7bG9oaFBpaWlamhokNvt1kMPPaTu7m6TqhzbbDabli9frrq6OtXV1WnWrFlmlzQm\ncR07evU1JmBk+Sqr+G3Qra2tVWxsrKKjo2W325WXl6fy8nKzy/ILM2fOVFhYWI9tFRUVWrhwoSRp\n4cKFKisrM6M0v3H11VcrJSVFkjRhwgRNnTpVra2t9KOXgoODJUmdnZ3q6upSWFgYfeilY8eOqbKy\nUkuWLPE8MIg+9N537+KhD4fG6XQqPj6+1/by8nLdf//9stvtio6OVmxsLBeQJuKuNfNxHTu68W/E\nXL7KKn4bdFtbWzV58mTPOl9Yf3lOnDjheaJ1eHi4Tpw4YXJF/qO5uVl1dXVKT0+nH73U3d2tlJQU\nhYeHe6aC04fe+eUvf6m1a9cqIOD//zunD71js9n0k5/8RGlpafrDH/4giT70tePHj8vhcHjWGbPN\n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\nAAAAlvJ/9XlXVQVMy7sAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2f2d425c18>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(1, 2, figsize=(16,6))\n",
+ "\n",
+ "xvec = np.linspace(-10,10,200)\n",
+ "\n",
+ "rho_cavity = ptrace(rho_ss, 0)\n",
+ "W = wigner(rho_cavity, xvec, xvec)\n",
+ "wlim = abs(W).max()\n",
+ "axes[1].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n",
+ "axes[1].set_xlabel(r'Im $\\alpha$', fontsize=18)\n",
+ "axes[1].set_ylabel(r'Re $\\alpha$', fontsize=18)\n",
+ "\n",
+ "axes[0].bar(arange(0, N), real(rho_cavity.diag()), color=\"blue\", alpha=0.6)\n",
+ "axes[0].set_xlabel(r'$n$', fontsize=18)\n",
+ "axes[0].set_ylabel(r'Occupation probability', fontsize=18)\n",
+ "axes[0].set_ylim(0, 1)\n",
+ "axes[0].set_xlim(0, N);"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Too large pumping rate $\\Gamma$ kills the lasing process: reversed threshold."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Software version"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<table><tr><th>Software</th><th>Version</th></tr><tr><td>IPython</td><td>2.0.0</td></tr><tr><td>OS</td><td>posix [linux]</td></tr><tr><td>Python</td><td>3.4.1 (default, Jun 9 2014, 17:34:49) \n",
+ "[GCC 4.8.3]</td></tr><tr><td>QuTiP</td><td>3.0.0.dev-5a88aa8</td></tr><tr><td>Numpy</td><td>1.8.1</td></tr><tr><td>matplotlib</td><td>1.3.1</td></tr><tr><td>Cython</td><td>0.20.1post0</td></tr><tr><td>SciPy</td><td>0.13.3</td></tr><tr><td colspan='2'>Thu Jun 26 14:28:35 2014 JST</td></tr></table>"
+ ],
+ "text/plain": [
+ "<IPython.core.display.HTML at 0x7f2f2d5a0048>"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from qutip.ipynbtools import version_table\n",
+ "\n",
+ "version_table()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.15rc1"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/data/Population_Genetics.ipynb b/src/test/data/Population_Genetics.ipynb
new file mode 100644
index 00000000..838a6375
--- /dev/null
+++ b/src/test/data/Population_Genetics.ipynb
@@ -0,0 +1,2187 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "## Population Genetics in *an* RNA World\n",
+ "\n",
+ "In order to study population genetics, we first need a model of a population. And even before that, we need to define what we mean by *population*. Populations can be defined on many levels and with many diffferent criteria. For our purposes, we will simply say that a population is a set of individuals sharing a common environment. And because this is population *genetics* we can think of individuals as entities comprising of specific genes or chromosomes. \n",
+ "\n",
+ "So where do we get a population from? As you may have discussed in previous workshops, there are very large datasets containing sequencing information from different populations. So we could download one of these datasets and perform some analysis on it. But I find this can be dry and tedious. So why download data when we can simply create our own?\n",
+ "\n",
+ "In this workshop we're going to be creating and studying our own \"artificial\" populations to illustrate some important population genetics concepts and methodologies. Not only will this help you learn population genetics, but you will get a lot more programming practice than if we were to simply parse data files and go from there. \n",
+ "\n",
+ "More specifically, we're going to build our own RNA world.\n",
+ "\n",
+ "As you may know, RNA is widely thought to be the first self replicating life-form to arise x billion years ago. One of the strongest arguments for this theory is that RNA is able to carry information in its nucleotides like DNA, and like protein, it is able to adopt higher order structures to catalyze reactions, such as self replication. So it is likely, and there is growing evidence that this is the case, that the first form of replicating life was RNA. And because of this dual property of RNA as an information vessel as well as a structural/functional element we can use RNA molecules to build very nice population models. \n",
+ "\n",
+ "So in this notebook, I'll be walking you through building genetic populations, simulating their evolution, and using statistics and other mathematical tools for understanding key properties of populations.\n",
+ "\n",
+ "### Building an RNA population\n",
+ "\n",
+ "As we saw earlier, RNA has the nice property of posessing a strong mapping between information carrying (sequence) and function (structure). This is analogous to what is known in evolutionary terms as a genotype and a phenotype. With these properties, we have everything we need to model a population, and simulate its evolution.\n",
+ "\n",
+ "#### RNA sequence-structure\n",
+ "\n",
+ "We can think of the genotype as a sequence $s$ consisting of letters/nucleotides from the alphabet $\\{U,A,C,G\\}$. The corresponding phenotype $\\omega$ is the secondary structure of $s$ which can be thought of as a pairing between nucleotides in the primary sequence that give rise to a 2D architecture. Because it has been shown that the function of many biomolecules, including RNA, is driven by structure this gives us a good proxy for phenotype. \n",
+ "\n",
+ "Below is an example of what an RNA secondary structure, or pairing, looks like."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<img src=\"http://www.tbi.univie.ac.at/~pkerp/forgi/_images/1y26_ss.png\"/>"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Image object>"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "### 1\n",
+ "\n",
+ "from IPython.display import Image\n",
+ "#This will load an image of an RNA secondary structure\n",
+ "Image(url='http://www.tbi.univie.ac.at/~pkerp/forgi/_images/1y26_ss.png')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As you can see, unparied positions are forming loop-like structures, and paired positions are forming stem-like structures. It is this spatial arrangement of nucleotides that drives RNA's function. Therefore, another sequence that adopts a similar shape, is likely to behave in a similar manner. Another thing to notice is that, although in reality this is often not the case, in general we only allow pairs between $\\{C,G\\}$ and $\\{A, U\\}$ nucleotides, most modern approaches allow for non-canonical pairings and you will find some examples of this in the above structure.\n",
+ "\n",
+ "*How do we go from a sequence to a structure?*\n",
+ "\n",
+ "So a secondary structure is just a list of pairings between positions. How do we get the optimal pairing?\n",
+ "\n",
+ "The algorithm we're going to be using in our simulations is known as the Nussinov Algorithm. The Nussinov algorithm is one of the first and simplest attempts at predicting RNA structure. Because bonds tend to stabilize RNA, the algorithm tries to maximize the number of pairs in the structure and return that as its solution. Current approaches achieve more accurate solutions by using energy models based one experimental values to then obtain a structure that minimizes free energy. But since we're not really concerned with the accuracy of our predictions, Nussinov is a good entry point. Furthermore, the main algorithmic concepts are the same between Nussinov and state of the art RNA structure prediction algorithms. I implemented the algorithm in a separate file called `fold.py` that we can import and use its functions. I'm not going to go into detail here on how the algorithm works because it is beyond the scope of this workshop but there is a bonus exercise at the end if you're curious.\n",
+ "\n",
+ "You can predict a secondary structure by calling `nussinov()` with a sequence string and it will return a tuple in the form `(structure, pairs)`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ACCCGAUGUUAUAUAUACCU\n",
+ "(...(..(((....).))))\n"
+ ]
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "from fold import nussinov\n",
+ "\n",
+ "sequence_to_fold = \"ACCCGAUGUUAUAUAUACCU\"\n",
+ "struc = nussinov(sequence_to_fold)\n",
+ "print(sequence_to_fold)\n",
+ "print(struc[0])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true,
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "source": [
+ "You will see a funny dot-bracket string in the output. This is a representation of the structure of an RNA. Quite simply, a matching parir of parentheses (open and close) correspond to the nucleotides at those positions being paried. Whereas, a dot means that that position is unpaired in the structure. Feel free to play around with the input sequence to get a better understanding of the notation.\n",
+ "\n",
+ "So that's enough about RNA structure prediction. Let's move on to building our populations.\n",
+ "\n",
+ "### Fitness of a sequence: Target Structure\n",
+ "\n",
+ "Now that we have a good way of getting a phenotype (secondary structure), we need a way to evaluate the fitness of that phenotype. If we think in real life terms, fitness is the ability of a genotype to replicate into the next generation. If you have a gene carrying a mutation that causes some kind of disease, your fitness is decreased and you have a lower chance of contributing offspring to the next generation. On a molecular level the same concept applies. A molecule needs to accomplish a certain function, i.e. bind to some other molecule or send some kind of signal. And as we've seen before, the most important factor that determines how well it can carry out this function is its structure. So we can imagine that a certain structure, we can call this a 'target' structure, is required in order to accomplish a certain function. So a sequence that folds correctly to a target structure is seen as having a greater fitness than one that does not. Since we've encoded structures as simple dot-bracket strings, we can easily compare structures and thus evaluate the fitness between a given structure and the target, or 'correct' structure. \n",
+ "\n",
+ "There are many ways to compare structures $w_{1}$ and $w_{2}$, but we're going to use one of the simplest ways, which is base-pair distance. This is just the number of pairs in $w_{1}$ that are not in $w_{2}$. Again, this is beyond the scope of this workshop so I'll just give you the code for it and if you would like to know more you can ask me."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "('((....))', [(0, 7), (1, 6)])\n",
+ "('.(....).', [(1, 6)])\n",
+ "1\n"
+ ]
+ }
+ ],
+ "source": [
+ "### 3\n",
+ "\n",
+ "#ss_to_bp() and bp_distance() by Vladimir Reinharz.\n",
+ "def ss_to_bp(ss):\n",
+ " bps = set()\n",
+ " l = []\n",
+ " for i, x in enumerate(ss):\n",
+ " if x == '(':\n",
+ " l.append(i)\n",
+ " elif x == ')':\n",
+ " bps.add((l.pop(), i))\n",
+ " return bps\n",
+ "\n",
+ "def bp_distance(w1, w2):\n",
+ " \"\"\"\n",
+ " return base pair distance between structures w1 and w1. \n",
+ " w1 and w1 are lists of tuples representing pairing indices.\n",
+ " \"\"\"\n",
+ " return len(set(w1).symmetric_difference(set(w2)))\n",
+ "\n",
+ "#let's fold two sequences\n",
+ "w1 = nussinov(\"CCAAAAGG\")\n",
+ "w2 = nussinov(\"ACAAAAGA\")\n",
+ "\n",
+ "print(w1)\n",
+ "print(w2)\n",
+ "\n",
+ "#give the list of pairs to bp_distance and see what the distance is.\n",
+ "print(bp_distance(w1[-1], w2[-1]))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Defining a cell: a little bit of Object Oriented Programming (OOP)\n",
+ "\n",
+ "Since we're going to be playing aroudn with sequences and structures and fitness values a lot, it's best to package it all nicely into an object. As you'll have seen with Vlad, objects are just a nice way of grouping data into an easily accessible form. \n",
+ "\n",
+ "We're trying to simulate evolution on a very simple kind of organism, or cell. It contains two copies of a RNA gene, each with a corresponding structure. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AACCCCUU (....). AACCCCUU (....).\n"
+ ]
+ }
+ ],
+ "source": [
+ "### 4\n",
+ "class Cell:\n",
+ " def __init__(self, seq_1, struc_1, seq_2, struc_2):\n",
+ " self.sequence_1 = seq_1\n",
+ " self.sequence_2 = seq_2\n",
+ " self.structure_1 = struc_1\n",
+ " self.structure_2 = struc_2\n",
+ " \n",
+ "#for now just try initializing a Cell with made up sequences and structures\n",
+ "cell = Cell(\"AACCCCUU\", \"((.....))\", \"GGAAAACA\", \"(....).\")\n",
+ "print(cell.sequence_1, cell.structure_2, cell.sequence_1, cell.structure_2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Populations of Cells\n",
+ "\n",
+ "Now we've defined a 'Cell'. Since a population is a collection of individuals our populations will naturally consist of **lists** of 'Cell' objects, each with their own sequences. Here we initialize all the Cells with random sequences and add them to the 'population' list."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "### 5\n",
+ "import random\n",
+ "\n",
+ "def populate(target, pop_size=100):\n",
+ " \n",
+ " population = []\n",
+ "\n",
+ " for i in range(pop_size):\n",
+ " #get a random sequence to start with\n",
+ " sequence = \"\".join([random.choice(\"AUCG\") for _ in range(len(target))])\n",
+ " #use nussinov to get the secondary structure for the sequence\n",
+ " structure = nussinov(sequence)\n",
+ " #add a new Cell object to the population list\n",
+ " new_cell = Cell(sequence, structure, sequence, structure)\n",
+ " new_cell.id = i\n",
+ " new_cell.parent = i\n",
+ " population.append(new_cell)\n",
+ " \n",
+ " return population"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Try creating a new population and printing the first 10 sequences and structures (in dot-bracket) on the first chromosome!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 GGACGGAGCAUUAUCUGCUA (((...(....).))..).. GGACGGAGCAUUAUCUGCUA (((...(....).))..)..\n",
+ "1 ACAAUCGCCUCACUCACGUU (.(..((..(.....))))) ACAAUCGCCUCACUCACGUU (.(..((..(.....)))))\n",
+ "2 UCCGUUCUAUUAGUUCAUAG .(..(((.....)...).)) UCCGUUCUAUUAGUUCAUAG .(..(((.....)...).))\n",
+ "3 CAAACCUUGUUCGUAAUACA .(....)((((....).))) CAAACCUUGUUCGUAAUACA .(....)((((....).)))\n",
+ "4 GCAUCGAGUGCGCGGCAUAA ((..((....)).).).... GCAUCGAGUGCGCGGCAUAA ((..((....)).).)....\n",
+ "5 GAAUUCUGAGAUCAUACUCG (((((.....)..))..)). GAAUUCUGAGAUCAUACUCG (((((.....)..))..)).\n",
+ "6 GGAACCGUAGGCUUUGCAAG (.(((....)..))..)... GGAACCGUAGGCUUUGCAAG (.(((....)..))..)...\n",
+ "7 GCAAAAGACAGCCCGCAUCA ((....).)((....).).. GCAAAAGACAGCCCGCAUCA ((....).)((....).)..\n",
+ "8 GGGUACCGACAACGGAGCUC ((.(.(((....)))).).) GGGUACCGACAACGGAGCUC ((.(.(((....)))).).)\n",
+ "9 CUCUUAUUUCACUUAGCUGU (.(((.....)...))..). CUCUUAUUUCACUUAGCUGU (.(((.....)...))..).\n"
+ ]
+ }
+ ],
+ "source": [
+ "### 6\n",
+ "target = \"(.(((....).).).)....\"\n",
+ "pop = populate(target, pop_size=100)\n",
+ "for p in pop[:10]:\n",
+ " print(p.id, p.sequence_1, p.structure_1[0], p.sequence_2, p.structure_2[0])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## The Fitness of a Cell\n",
+ "\n",
+ "Now that we can store populatoins of cells, we need a way to evaluate the fitness of a given Cell. Recall that a Cell is simply an object that contains two RNA sequences (think of it as two copies of a gene on each chromosome). \n",
+ "\n",
+ "So we simply need to loop through each Cell in a population and compute base pair distance to the target structure. However, simply using base-pair distance is not a very good measure of fitness. There are two reasons for this: \n",
+ "\n",
+ "1. We want fitness to represent a *probability* that a cell will reproduce, and base pair distance is an integer.\n",
+ "2. We want this probability to be a *relative* measure. That is, we want to be the fitness to be proportional to how good a cell is with respect to all others in the population. This touches on an important principle in evolution where we only need to be 'better' than the competition and not good in some absolute measure. For example, if you and I are being chased by a bear. In order to survive, I only need to be faster than you, and not necessarily some absolute level of fitness.\n",
+ "\n",
+ "In order to get a probability (number between 0 and 1) we use the following equation to define the fitness of a structure $\\omega$ on a target structure $T$:\n",
+ "\n",
+ "$$P(\\omega, T) = N^{-1} exp(\\frac{-\\beta \\texttt{dist}(\\omega, T)}{\\texttt{len}(\\omega)})$$\n",
+ "\n",
+ "$$N = \\sum_{i \\in Pop}{P(\\omega_i, T})$$\n",
+ "\n",
+ "Here, the $N$ is what gives us the 'relative' measure because we divide the fitness of the Cell by the sum of the fitness of every other Cell. \n",
+ "\n",
+ "Let's take a quick look at how this function behaves if we plot different base pair distance values.\n",
+ "\n",
+ "What is the effect of the parameter $\\beta$? Try plotting the same function but with different values of $\\beta$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0,0.5,'P(w, T)')"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import math\n",
+ "import seaborn as sns\n",
+ "\n",
+ "target_length = 50\n",
+ "beta = -2\n",
+ "\n",
+ "plt.plot([math.exp(beta * (bp_dist / float(target_length))) for bp_dist in range(target_length)])\n",
+ "plt.xlabel(\"Base pair distance to target structure\")\n",
+ "plt.ylabel(\"P(w, T)\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As you can see, it's a very simple function that evaluates to 1 (highest fitness) if the base pair distance is 0, and decreases as the structures get further and further away from the target. I didn't include the $N$ in the plotting as it will be a bit more annoying to compute, but it is simply a scaling factor so the shape and main idea won't be different.\n",
+ "\n",
+ "Now we can use this function to get a fitness value for each Cell in our population."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.013612068231863143 6 6\n",
+ "0.007470461436952334 9 9\n",
+ "0.009124442203822766 8 8\n",
+ "0.007470461436952334 9 9\n",
+ "0.013612068231863143 6 6\n",
+ "0.007470461436952334 9 9\n",
+ "0.02030681957427158 4 4\n",
+ "0.009124442203822766 8 8\n",
+ "0.006116296518116008 10 10\n",
+ "0.009124442203822766 8 8\n"
+ ]
+ }
+ ],
+ "source": [
+ "### 7\n",
+ "\n",
+ "def compute_fitness(population, target, beta=-2):\n",
+ " \"\"\"\n",
+ " Assigns a fitness and bp_distance value to each cell in the population.\n",
+ " \"\"\"\n",
+ " #store the fitness values of each cell\n",
+ " tot = []\n",
+ " #iterate through each cell\n",
+ " for cell in population:\n",
+ " \n",
+ " #calculate the bp_distance of each chromosome using the cell's structure\n",
+ " bp_distance_1 = bp_distance(cell.structure_1[-1], ss_to_bp(target))\n",
+ " bp_distance_2 = bp_distance(cell.structure_2[-1], ss_to_bp(target))\n",
+ " \n",
+ " #use the bp_distances and the above fitness equation to calculate the fitness of each chromosome\n",
+ " fitness_1 = math.exp((beta * bp_distance_1 / float(len(cell.sequence_1))))\n",
+ " fitness_2 = math.exp((beta * bp_distance_2 / float(len(cell.sequence_2))))\n",
+ "\n",
+ " #get the fitness of the whole cell by multiplying the fitnesses of each chromosome\n",
+ " cell.fitness = fitness_1 * fitness_2\n",
+ " \n",
+ " #store the bp_distance of each chromosome.\n",
+ " cell.bp_distance_1 = bp_distance_1\n",
+ " cell.bp_distance_2 = bp_distance_2\n",
+ " \n",
+ " \n",
+ " #add the cell's fitness value to the list of all fitness values (used for normalization later)\n",
+ " tot.append(cell.fitness)\n",
+ "\n",
+ " #normalization factor is sum of all fitness values in population\n",
+ " norm = np.sum(tot)\n",
+ " #divide all fitness values by the normalization factor.\n",
+ " for cell in population:\n",
+ " cell.fitness = cell.fitness / norm\n",
+ "\n",
+ " return None\n",
+ "\n",
+ "compute_fitness(pop, target)\n",
+ "for cell in pop[:10]:\n",
+ " print(cell.fitness, cell.bp_distance_1, cell.bp_distance_2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Introducing diversity: Mutations\n",
+ "\n",
+ "Evolution would go nowhere without random mutations. While mutations are technically just random errors in the copying of genetic material, they are essential in the process of evolution. This is because they introduce novel diversity to populatons, which with a low frequency can be beneficial. And when a beneficial mutation arises (i.e. a mutation that increases fitness, or replication probability) it quickly takes over the population and the populatioin as a whole has a higher fitness.\n",
+ "\n",
+ "Implementing mutations in our model will be quite straightforward. Since mutations happen at the genotype/sequence level, we simply have to iterate through our strings of nucleotides (sequences) and randomly introduce changes."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AAAAGGAGUGUGUAUGU\n",
+ "('AcAAGgAuUGUuaAaGa', True)\n"
+ ]
+ }
+ ],
+ "source": [
+ "def mutate(sequence, mutation_rate=0.001):\n",
+ " \"\"\"Takes a sequence and mutates bases with probability mutation_rate\"\"\"\n",
+ " \n",
+ " #start an empty string to store the mutated sequence\n",
+ " new_sequence = \"\"\n",
+ " #boolean storing whether or not the sequence got mutated\n",
+ " mutated = False\n",
+ " #go through every bp in the sequence\n",
+ " for bp in sequence:\n",
+ " #generate a random number between 0 and 1\n",
+ " r = random.random()\n",
+ " #if r is below mutation rate, introduce a mutation\n",
+ " if r < mutation_rate:\n",
+ " #add a randomly sampled nucleotide to the new sequence\n",
+ " new_sequence = new_sequence + random.choice(\"aucg\")\n",
+ " mutated = True\n",
+ " else:\n",
+ " #if the mutation condition did not get met, copy the current bp to the new sequence\n",
+ " new_sequence = new_sequence + bp\n",
+ " \n",
+ " return (new_sequence, mutated)\n",
+ "\n",
+ "sequence_to_mutate = 'AAAAGGAGUGUGUAUGU'\n",
+ "print(sequence_to_mutate)\n",
+ "print(mutate(sequence_to_mutate, mutation_rate=0.5))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Selection\n",
+ "\n",
+ "The final process in this evolution model is selection. Once you have populations with a diverse range of fitnesses, we need to select the fittest individuals and let them replicate and contribute offspring to the next generation. In real populations this is just the process of reproduction. If you're fit enough you will be likely to reproduce more than another individual who is not as well suited to the environment.\n",
+ "\n",
+ "In order to represent this process in our model, we will use the fitness values that we assigned to each Cell earlier and use that to select replicating Cells. This is equivalent to sampling from a population with the sampling being weighted by the fitness of each Cell. Thankfully, `numpy.random.choice` comes to the rescue here. Once we have sampled enough Cells to build our next generation, we introduce mutations and compute the fitness values of the new generation."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "GAGCUUUAAACUAAUCUAAU\n",
+ "GCAAAAGACAGCCaGCAUCA\n",
+ "UUUCUUUUUCCCCCCCGAUG\n",
+ "AAGCCCUAGGUAUGUUGUAG\n",
+ "AAGAAGUACCCAUACAGAUG\n",
+ "CUAAGACGACUUUUAGUUCA\n",
+ "ACCUGCCAUCAUCACCAGAC\n",
+ "AGAAUUGCUGUUCUCUAUCU\n",
+ "GCGGAUCAUACUCCAAGUCG\n",
+ "GAGCUUUAAACUAAUCUAAU\n"
+ ]
+ }
+ ],
+ "source": [
+ "def selection(population, target, mutation_rate=0.001, beta=-2):\n",
+ " \"\"\"\n",
+ " Returns a new population with offspring of the input population\n",
+ " \"\"\"\n",
+ "\n",
+ " #select the sequences that will be 'parents' and contribute to the next generation\n",
+ " parents = np.random.choice(population, len(population), p=[rna.fitness for rna in population], replace=True)\n",
+ "\n",
+ " #build the next generation using the parents list\n",
+ " next_generation = [] \n",
+ " for i, p in enumerate(parents):\n",
+ " new_cell = Cell(p.sequence_1, p.structure_1, p.sequence_2, p.structure_2)\n",
+ " new_cell.id = i\n",
+ " new_cell.parent = p.id\n",
+ " \n",
+ " next_generation.append(new_cell)\n",
+ "\n",
+ " #introduce mutations in next_generation sequeneces and re-fold when a mutation occurs\n",
+ " for rna in next_generation: \n",
+ " mutated_sequence_1, mutated_1 = mutate(rna.sequence_1, mutation_rate=mutation_rate)\n",
+ " mutated_sequence_2, mutated_2 = mutate(rna.sequence_2, mutation_rate=mutation_rate)\n",
+ " \n",
+ " if mutated_1:\n",
+ " rna.sequence_1 = mutated_sequence_1\n",
+ " rna.structure_1 = nussinov(mutated_sequence_1)\n",
+ " if mutated_2:\n",
+ " rna.sequence_2 = mutated_sequence_2\n",
+ " rna.structure_2 = nussinov(mutated_sequence_2)\n",
+ " else:\n",
+ " continue\n",
+ "\n",
+ " #update fitness values for the new generation\n",
+ " compute_fitness(next_generation, target, beta=beta)\n",
+ "\n",
+ " return next_generation\n",
+ "\n",
+ "next_gen = selection(pop, target)\n",
+ "for cell in next_gen[:10]:\n",
+ " print(cell.sequence_1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Gathering information on our populations\n",
+ "\n",
+ "Here we simply store some statistics (in a dictionary) on the population at each generation such as the average base pair distance and the average fitness of the populations. No coding to do here, it's not a very interesting function but feel free to give it a look."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def record_stats(pop, population_stats):\n",
+ " \"\"\"\n",
+ " Takes a population list and a dictionary and updates it with stats on the population.\n",
+ " \"\"\"\n",
+ " generation_bp_distance_1 = [rna.bp_distance_1 for rna in pop]\n",
+ " generation_bp_distance_2 = [rna.bp_distance_2 for rna in pop]\n",
+ "\n",
+ " mean_bp_distance_1 = np.mean(generation_bp_distance_1)\n",
+ " mean_bp_distance_2 = np.mean(generation_bp_distance_2)\n",
+ " \n",
+ " mean_fitness = np.mean([rna.fitness for rna in pop])\n",
+ "\n",
+ "\n",
+ " population_stats.setdefault('mean_bp_distance_1', []).append(mean_bp_distance_1)\n",
+ " population_stats.setdefault('mean_bp_distance_2', []).append(mean_bp_distance_2)\n",
+ " \n",
+ " population_stats.setdefault('mean_fitness', []).append(mean_fitness)\n",
+ " \n",
+ " return None"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## And finally.... evolution\n",
+ "\n",
+ "We can put all the above parts together in a simple function that does the following:\n",
+ "\n",
+ "1. start a new population and compute its fitness\n",
+ "2. repeat the following for the desired number of generations:\n",
+ " 1. record statistics on population\n",
+ " 2. perform selection+mutation\n",
+ " 3. store new population\n",
+ "\n",
+ "And that's it! We have an evolutionary reactor!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def evolve(target, generations=10, pop_size=100, mutation_rate=0.001, beta=-2):\n",
+ " \"\"\"\n",
+ " Takes target structure and sets up initial population, performs selection and iterates for desired generations.\n",
+ " \"\"\"\n",
+ " #store list of all populations throughotu generations [[cells from generation 1], [cells from gen. 2]...]\n",
+ " populations = []\n",
+ " #start a dictionary that will hold some stats on the populations.\n",
+ " population_stats = {}\n",
+ " \n",
+ " #get a starting population\n",
+ " initial_population = populate(target, pop_size=pop_size)\n",
+ " #compute fitness of initial population\n",
+ " compute_fitness(initial_population, target)\n",
+ "\n",
+ " #set current_generation to initial population.\n",
+ " current_generation = initial_population\n",
+ "\n",
+ " #iterate the selection process over the desired number of generations\n",
+ " for i in range(generations):\n",
+ "\n",
+ " #let's get some stats on the structures in the populations \n",
+ " record_stats(current_generation, population_stats)\n",
+ " \n",
+ " #add the current generation to our list of populations.\n",
+ " populations.append(current_generation)\n",
+ "\n",
+ " #select the next generation\n",
+ " new_gen = selection(current_generation, target, mutation_rate=mutation_rate, beta=beta)\n",
+ " #set current generation to be the generation we just obtained.\n",
+ " current_generation = new_gen \n",
+ " \n",
+ " return (populations, population_stats)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Try a run of the `evolve()` function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pops, pops_stats = evolve(\"(((....)))\", generations=20, pop_size=1000, mutation_rate=0.005, beta=-2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let's see if it actually worked by plotting the average base pair distance as a function of generations for both genes in each cell. We should expect a gradual decrease as the populations get closer to the target structure."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4HNXV+PHv2VVZNUu2JctFtiXbuFcsjBsEQwBjiimGN7RgEkLoL6SR9xc6b5KXhEAwJBAChN5LYohNCzaYZlxw791ylWVbsno7vz9mJGRZZW1pNSvpfJ5nnp2duTNzdrXas3PvzL2iqhhjjDEAPq8DMMYYEz4sKRhjjKlmScEYY0w1SwrGGGOqWVIwxhhTzZKCMcaYapYUjDHGVLOkYIwxppolBWOMMdUivA7gaCUnJ2t6errXYRhjTKuyaNGifaqa0li5VpcU0tPTWbhwoddhGGNMqyIiW4MpZ9VHxhhjqllSMMYYU82SgjHGmGqtrk3BmPamrKyMrKwsiouLvQ7FtAKBQIC0tDQiIyOPaXtLCsaEuaysLBISEkhPT0dEvA7HhDFVJScnh6ysLDIyMo5pH1Z9ZEyYKy4upnPnzpYQTKNEhM6dOzfprNKSgjGtgCUEE6ymflbaTVLYunoRX//1WkqKC70OxRhjwla7SQoHd21g7N7XWPPle16HYowxYavdJIWB488lT2MpXfaO16EYY45Beno6+/bta9Z9nnLKKdU9JEyZMoWDBw/WW/bPf/4zhYXe1jQ89thj9OvXDxFp9veiSrtJCtGBWNYmTuC4g59RXlridTjGmDAza9YskpKS6l0fDklhwoQJfPzxx/Tu3Ttkx2hXl6T6h55P0pcfsWL+bIaedL7X4Rhz1O59dyWrduY16z4Hd+/A3ecOabDMli1bmDx5MmPHjuXLL7/khBNO4Oqrr+buu+9m7969vPTSSwwZMoSbb76ZFStWUFZWxj333MPUqVPZsmULV155JQUFBYDza3f8+PHMnTuXe+65h+TkZFasWMHo0aN58cUXG2wo/cMf/sDs2bOJiYnh5Zdfpl+/fkyfPp1AIMDChQvJy8vjoYce4pxzzqlz+6KiIq6++mqWLl3KwIEDKSoqql5X1a9aTEwMl1xyCVlZWVRUVHDnnXeyZ88edu7cyaRJk0hOTmbOnDlcf/31LFiwgKKiIqZNm8a9995bvZ+rrrqKd999l7KyMt544w0GDhxIfn4+N998MwsXLkREuPvuu7nooov48MMPufvuuykpKaFv37784x//ID4+vs74R40a1eDfqTmELCmISAD4DIh2j/Omqt5dq8x04I/ADnfRY6r6VKhiGjThfAq++BlFS94GSwrGHJUNGzbwxhtv8Mwzz3DCCSfw8ssv8/nnnzNz5kx+97vfMXjwYE499VSeeeYZDh48yJgxY/j+979Ply5d+OijjwgEAqxfv55LL720usrm22+/ZeXKlXTv3p0JEybwxRdfMHHixHpjSExMZPny5Tz//PPceuutvPee00a4ZcsWvvnmGzZu3MikSZPYsGEDgUDgiO0ff/xxYmNjWb16NcuWLeP4448/osz7779P9+7d+fe//w1Abm4uiYmJPPTQQ8yZM4fk5GQAfvvb39KpUycqKio47bTTWLZsGcOHDwcgOTmZxYsX89e//pUHH3yQp556ivvvv786foADBw6wb98+/vd//5ePP/6YuLg4HnjgAR566CHuuuuuJvylmiaUZwolwKmqmi8ikcDnIjJbVb+uVe41Vb0phHFUi4mLZ0HCePrmzKGyvBxfRLs6UTJtQGO/6EMpIyODYcOGATBkyBBOO+00RIRhw4axZcsWsrKymDlzJg8++CDg3F+xbds2unfvzk033cSSJUvw+/2sW7euep9jxowhLS0NgJEjR7Jly5YGk8Kll15a/XjbbbdVL7/kkkvw+Xwcd9xx9OnThzVr1jBy5Mgjtv/ss8+45ZZbABg+fHj1l3hNw4YN4+c//zm3334755xzDieddFKdsbz++us8+eSTlJeXs2vXLlatWlW9vwsvvBCA0aNH8/bbbwPw8ccf8+qrr1Zv37FjR9577z1WrVrFhAkTACgtLWXcuHH1vv6WELJvRVVVIN99GulOGqrjBUsHnUenBXNYu+BDBoyb4nU4xrQa0dHR1fM+n6/6uc/no7y8HL/fz1tvvcWAAQMO2+6ee+4hNTWVpUuXUllZedgv+Jr79Pv9lJeXNxhDzaql+ubren40+vfvz+LFi5k1axZ33HEHp5122hG/3Ddv3syDDz7IggUL6NixI9OnTz/shrGq19XYa1JVTj/9dF555ZVjjre5hbShWUT8IrIE2At8pKrz6yh2kYgsE5E3RaRnPfu5VkQWisjC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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def evo_plot(pops_stats):\n",
+ " \"\"\"\n",
+ " Plot base pair distance for each chromosome over generations.\n",
+ " \"\"\"\n",
+ " for m in ['mean_bp_distance_1', 'mean_bp_distance_2']:\n",
+ " plt.plot(pops_stats[m], label=m)\n",
+ " plt.legend()\n",
+ " plt.xlabel(\"Generations\")\n",
+ " plt.ylabel(\"Mean Base Pair Distance\")\n",
+ " \n",
+ "evo_plot(pops_stats)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "You should see a nice drop in base pair distance! Another way of visualizing this is by plotting a histogram of the base pair distance of all Cells in the initial population versus the final population."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def bp_distance_distributions(pops):\n",
+ " \"\"\"\n",
+ " Plots histograms of base pair distance in initial and final populations.\n",
+ " \"\"\"\n",
+ " #plot bp_distance_1 for rnas in first population\n",
+ " g = sns.distplot([rna.bp_distance_1 for rna in pops[0]], label='initial population')\n",
+ " #plot bp_distance_1 for rnas in first population\n",
+ " g = sns.distplot([rna.bp_distance_1 for rna in pops[-1]], label='final population')\n",
+ " g.set(xlabel='Mean Base Pair Distance')\n",
+ " g.legend()\n",
+ "bp_distance_distributions(pops)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Studying our evolved sequences with some Population Genetics tools\n",
+ "\n",
+ "Now that we've generated some sequences, we can analyze them!\n",
+ "\n",
+ "So after several rounds of selection, what do we get? We have a bunch of different sequences. We would like a way to characterize this diversity. One important tool for doing this is by making what is known as phylogenetic trees. \n",
+ "\n",
+ "Phylogenetic trees tell us about which groups of similar sequences are present and how they are likely related in evolutionary time. \n",
+ "\n",
+ "There are several ways of building phylogenetic trees using BioPython. Here we will go over one type and I'll leave another one as an exercise.\n",
+ "\n",
+ "### UPGMA (Unweighted Pair Group Method with Arithmetic Means)\n",
+ "\n",
+ "This is basically a clustering method based on the distance (or number of differences) between every pair of sequences. It assumes that sequences that are more similar are more likely to be related than the other way around. \n",
+ "\n",
+ "For $N$ sequences, the algorithm builds an $NxN$ matrix that stores the distance between each sequence to every other sequence. The algorithm goes through this matrix and finds the pair of sequences that is most similar and merges it into a 'cluster' or in tree terms, connects them to a common node. This process is repeated until all the sequences have been assigned to a group. Refer to the wikipedia article on [UPGMA](https://en.wikipedia.org/wiki/UPGMA) for a more detailed explanation. \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "slideshow": {
+ "slide_type": "-"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from Bio import SeqIO\n",
+ "from Bio.Seq import Seq\n",
+ "from Bio.SeqRecord import SeqRecord\n",
+ "from Bio import AlignIO"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sequences = []\n",
+ "#let's take the first 10 sequences of our population to keep things simple\n",
+ "for seq in pops[-1][:10]:\n",
+ " #store each sequence in the sequences list as a SeqRecord object\n",
+ " sequences.append(SeqRecord(Seq(seq.sequence_1), id=str(seq.id)))\n",
+ " \n",
+ "\n",
+ "#write our sequences to fasta format\n",
+ "with open(\"seq.fasta\", \"w+\") as f:\n",
+ " SeqIO.write(sequences, f, \"fasta\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The UPGMA algorithm requires a `MultipleSeqAlignment` object to build the distance matrix. So now that we have the `seq.fasta` file, we can give it to an online multiple sequence alignment tool. We can do this through BioPython but it requires some installation and setup so we will skip that for now. Go to the [MUSCLE Web Server](http://www.ebi.ac.uk/Tools/msa/muscle/) and give it the `seq.fasta` file. It will take a few seconds and it will give you an alignment and click *Download Alignment File*, copy paste the whole thing to a new file called `aln.clustal`. This is the alignment we will use to build our tree."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#open the alignmnent file\n",
+ "with open(\"aln.clustal\", \"r\") as aln:\n",
+ " #use AlignIO to read the alignment file in 'clustal' format\n",
+ " alignment = AlignIO.read(aln, \"clustal\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "8\t0\n",
+ "7\t0.6\t0\n",
+ "0\t0.8\t0.6\t0\n",
+ "3\t1.0\t0.7\t0.4\t0\n",
+ "6\t1.0\t0.7\t0.4\t0.09999999999999998\t0\n",
+ "9\t0.8\t1.0\t0.5\t0.7\t0.6\t0\n",
+ "1\t0.9\t0.9\t0.8\t0.9\t0.8\t0.4\t0\n",
+ "2\t0.9\t0.9\t0.8\t0.9\t0.8\t0.4\t0.0\t0\n",
+ "4\t0.9\t0.9\t0.9\t1.0\t0.9\t0.5\t0.09999999999999998\t0.09999999999999998\t0\n",
+ "5\t0.9\t0.9\t0.9\t1.0\t0.9\t0.5\t0.09999999999999998\t0.09999999999999998\t0.0\t0\n",
+ "\t8\t7\t0\t3\t6\t9\t1\t2\t4\t5\n"
+ ]
+ }
+ ],
+ "source": [
+ "from Bio.Phylo.TreeConstruction import DistanceCalculator\n",
+ "\n",
+ "#calculate the distance matrix\n",
+ "calculator = DistanceCalculator('identity')\n",
+ "#adds distance matrix to the calculator object and returns it\n",
+ "dm = calculator.get_distance(alignment)\n",
+ "print(dm)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from Bio.Phylo.TreeConstruction import DistanceTreeConstructor\n",
+ "\n",
+ "#initialize a DistanceTreeConstructor object based on our distance calculator object\n",
+ "constructor = DistanceTreeConstructor(calculator)\n",
+ "\n",
+ "#build the tree\n",
+ "upgma_tree = constructor.build_tree(alignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X18VNW97/HPz/CgAoItCVWiJj4gIYAhhIBFvJFqQKt4UERRarUCYrkW20rpva3Hcr3V1t62UKoUOFTrwwm14Au5ioigOeIDJiEEDChJS6YtSiVYRQkImbjOHzNJw2OGMDN7Zvb3/XrlxczsnVm/lQDfWXvvtbY55xAREf86yesCRETEWwoCERGfUxCIiPicgkBExOcUBCIiPqcgEBHxOQWBiIjPKQhERHxOQSAi4nMdvC4gEj179nRZWVlelyEiklTWr1+/yzmX3tZ+SREEWVlZVFRUeF2GiEhSMbO/RrKfDg2JiPicgkBExOcUBCIiPqcgEBHxOQWBiIjPKQhERHxOQSAi4nMKAhERn1MQiIj4nIJARMTnFAQi4gslJSUMGDCAgQMHMnr0aHbt2uV1SQlDQSAiKS8YDDJ9+nReffVVNm3axMCBA/ntb3/rdVkJQ0EgIinPOYdzjoaGBpxzfPrpp5x55plel5UwkmL1URGRE9GxY0fmzZvHgAED6NKlCxdccAGPPPKI12UlDAWBiEeKioq8LiGllZaWtjxubGxk3rx5bNiwgXPPPZe7776bhx56iB//+MfeFZhAdGhIxANFRUVUVVV5XYZvNP+szzvvPMyM8ePH8+abb3pcVeLQiEDEI3l5eQd9apXY6d27N1u2bKG+vp709HRefvllcnJyvC4rYSgIRCTlnXnmmdx///1ceumldOzYkXPOOYfHH3/c67IShoJARHxh6tSpTJ061esyEpLOEYiI+JyCQCRBZGVlxXy26+eff05hYSEXXXQRubm53H///TFtT5KDDg2J+EQwGKRz58688sordO3alcbGRi655BKuvPJKhg0b5nV54iGNCEQSTCAQICcnh8mTJ5Obm0txcTH79u0DQpedzpw5k8LCQvr06cPatWsBaGpqYsaMGQwZMoSBAwcyf/58IHQt/YgRIxgzZgz9+vXDzOjatSsQura+sbERM/Omo5IwFAQiCai2tpZp06axefNmevTowdKlS1u2BYNBysrKmD17NrNmzQJg0aJFdO/enfLycsrLy1m4cCF1dXUAVFZWMmfOHGpqaoBQaOTl5ZGRkcEVV1zB0KFD499BSSg6NCQpLxFn8FZVVZGXl3fU7dnZ2S3bBw8eTCAQaNl23XXXHfb6qlWr2LRpE0uWLAFg9+7d1NbW0qlTJwoLC8nOzm75/rS0NKqqqvjkk08YO3Ys1dXV9O/fP8o9lGSiEYGktGSdwdu5c+eWx2lpaQSDwcO2tX7dOcfcuXOpqqqiqqqKuro6iouLAejSpcsR2+jRoweXXXYZK1eujFU3JEloRCApLxFn8EZ7lDJq1CjmzZvHyJEj6dixIzU1NfTu3fuw/err6+nYsSM9evRg3759vPzyy8ycOTOqtUjyURCIpIBJkyYRCATIz8/HOUd6ejrLli07bL8dO3bwzW9+k6amJr744gvGjx/P1Vdf7UHFkkjMOed1DW0qKChwFRUVXpchSaj5k3eijggSrS5JLWa23jlX0NZ+OkcgIuJzCgIREZ9TEIhIyvrss8/Iy8tr+erZsyf33HOP12UlnLifLDazs4AngF6AAxY45+bEuw4RSX3dunU76PLhwYMHt8zDkH/x4qqhIPB951ylmXUD1pvZy865LR7UIiI+UVNTw86dOxkxYoTXpSScuAeBc24HsCP8+DMzexfoDSgIxFeqqqoSctZzsjvalViLFy/mxhtv1NpKR+DpOQIzywIGAW8fYdsUM6sws4r6+vp4lyYSU6WlpcdcYkKib/HixUyYMMHrMhKSZxPKzKwrsBS4xzn36aHbnXMLgAUQmkcQ5/JEYk5zCOJn48aNBINBBg8e7HUpCcmTEYGZdSQUAk875571ogYR8Y+SkhKNBo7Bi6uGDFgEvOuc+1W82xcR/3nmmWdYsWKF12UkLC8ODQ0HvgG8Y2bN13X9b+ecfksiEhPbtm3zuoSE5sVVQ68DOm0vIpIgNLNYRMTnFAQiIj6nIBAR8TkFgYiIzykIRER8TkEgIuJzCgIREZ9TEIiI+JyCQHwnKyuLXbt2xaWtpqYmBg0axNVXXx2X9kTaQ0EgEmXBYLDl8Zw5c8jJyfGwGpG2KQjEtwKBADk5OUyePJnc3FyKi4vZt28fAEVFRcycOZPCwkL69OnD2rVrgdAn/BkzZjBkyBAGDhzI/PnzgdCS0iNGjGDMmDH069cPgO3bt/PCCy8wadIkbzqYxA4cOMCUKVPo06cPffv2ZenSpV6XlNI8ux+BeM8Pd8eqqqo65g1gamtrKSkpYeHChYwfP56lS5cyceJEIPTJvqysjBUrVjBr1ixWr17NokWL6N69O+Xl5ezfv5/hw4dTXFwMQGVlJdXV1WRnZwNwzz338PDDD/PZZ5/FvqMp5qc//SkZGRnU1NTwxRdf8M9//tPrklKagsCnioqK2vxP0g+ys7NbfgaDBw8mEAi0bGu+yXnr11etWsWmTZtYsmQJALt376a2tpZOnTpRWFjYEgLPP/88GRkZDB48WDegaYff//73vPfeewCcdNJJ9OzZ0+OKUpuCwMfy8vJS/j+ptkY9nTt3bnmclpbWcmio9ba0tLSW4/7OOebOncuoUaMOep/S0lK6dOnS8vyNN95g+fLlrFixgs8//5xPP/2UiRMn8tRTT51ol1LeJ598AsB9991HaWkp5513Hr/97W/p1auXx5WlLp0jEDkOo0aNYt68eTQ2NgJQU1NDQ0PDYfs99NBDbN++nUAgwOLFixk5cqRCgFAwH+mrtWAwyPbt2/nqV79KZWUlF198Mffee683BfuEgkDkOEyaNIl+/fqRn59P//79ufPOOw+6SkiOrvlwZFu+/OUvc+qpp7YcmrvhhhuorKyMdXm+Zs4l/n3hCwoKXEVFhddlpJTmT2F+OTSU6v1MBsfzu7jpppuYMmUKI0eO5PHHH+eFF17gT3/6U2wLTEFmtt45V9DWfjpHICIJ5+c//znf+MY3uOeee0hPT+exxx7zuqSUpiAQkYRzzjnn8Nprr3ldhm/oHIGIiM8pCETEM/Fa9+lb3/oWGRkZ9O/fP+ZtJSMFgYikrOYrum677TZWrlzpcTWJS0EgIp6L9bpPl156KV/60pe86VwSUBCISEKora1l2rRpbN68mR49ehy00Fzzuk+zZ89m1qxZAAet+1ReXs7ChQupq6sDQus+zZkzh5qaGk/6kmx01ZBIgkj1RQDbWtsqVus+SdsUBCIJQIsAxm7dJ2mbgkAkQaT6IoDRHvE0r/s0cuRIOnbsSE1NDb17945qG36hcwQikpSOZ92nCRMmcPHFF7N161YyMzNZtGhRnKtNbFpryKf8sgZPsvQzWeo8EX7oY6KJdK0hjQhERHxOQSAi4nMKAhFJWaNHj+aiiy4iNzeXqVOn0tTU5HVJCcmzIDCzNDPbYGbPe1WDiKS2Z555ho0bN1JdXU19fb3uaXAUXo4IpgPveti+iKS40047DQjNTD5w4ABm5nFFicmTeQRmlgl8Hfgp8D0vahCR+KuqqorpDOojXZE0atQoysrKuPLKKxk3blzM2k5mXo0IZgM/AL442g5mNsXMKsysor6+Pn6ViUhMlJaWejJz+qWXXmLHjh3s37+fV155Je7tJ4O4jwjM7Gpgp3NuvZkVHW0/59wCYAGE5hHEqTyRhJGVlUVFRQU9e/aMWRt///vfufXWW/nwww8xM6ZMmcL06dNj1p5XcwhOPvlkrr32Wp577jmuuOIKT2pIZF6MCIYDY8wsACwGRprZUx7UIeJrwWCQDh068Mtf/pItW7awbt06HnnkEbZs2eJ1aVGxZ88eduzYAYT6+sILL9C3b1+Pq0pMcQ8C59z/cs5lOueygJuAV5xzE+Ndh0iyiOVa/WeccQb5+fkAdOvWjZycHN5//31vOhplDQ0NjBkzhoEDB5KXl0dGRgZTp071uqyEpEXnJOXF+gRlNLS18mhtbS0lJSUsXLiQ8ePHs3TpUiZODH1+al6rf8WKFcyaNYvVq1cftFb//v37GT58OMXFxUBorf7q6urDlmkOBAJs2LCBoUOHxq6jcdSrVy/Ky8u9LiMpeBoEzrlSoNTLGuRf4nFMurmdbt26kZaWRocOHYjlOlKlpaUJHwKRiPVa/Xv27OH6669n9uzZLZdcin9oRCBx03xMGuDVV1+NeeA0S4ZFztoKq1iu1d/Y2Mj111/PLbfc0hIq4i9aYkIOE+v7x0rsNa/V39jYCEBNTQ0NDQ2H7eec44477iAnJ4fvfU9TevwqZUcEqXA4IJa8PCZtZhQXF2Nm3HnnnUyZMiX2HfaZSZMmEQgEyM/PxzlHeno6y5YtO2y/N954gyeffJIBAwa0/H148MEHueqqq+JdsngoJYNAt/07cbE8Jv3666/Tu3dvdu7cyRVXXEHfvn259NJL49OxJNL8s+3ZsyfV1dUtr997770tj1sf9urZs2fL95x00kk8+OCDPPjggwe9Z1FR0UEfki655BKS4Z4kElspGQSQ+rf9O1FeHpNuvp1gRkYGY8eOpaysTEEg4iGdI5CoiPSYdENDA5999lnL41WrVtG/f/+41ioiB0vZEYHEV6THpD/88EPGjh0LhM413HzzzYwePTre5YpIKyl5z2LdG7Vt+hklFv0+JBZ0z2IREYmIgkBExOcUBCISNevXr2fAgAGcf/75fOc739GlqUlCQSAiUXPXXXexcOFCamtrqa2tZeXKlV6XJBFQEIhIVOzYsYNPP/2UYcOGYWbceuutR7xyTBKPgkBEouL9998nMzOz5XlmZmbK3Nsg1WkegUiCSIb7JhxKl7umBo0IRBKAVzd2j6bevXuzffv2lufbt29vWU5EElvEIwIzywBObn7unPtbTCoS8alk/3R9xhlncNppp7Fu3TqGDh3KE088wd133+11WRKBNkcEZjbGzGqBOuC/gADwYozrEpEk9OijjzJp0iTOP/98zjvvPK688kqvS5IIRDIieAAYBqx2zg0ys8sA3WxeRA5TUFBw0JLZkhwiOUfQ6Jz7CDjJzE5yzr0KtLl2hYiIJIdIRgSfmFlX4DXgaTPbCRy+vrCIiCSlSEYE1wL7gO8CK4G/ANfEsigREYmfSILgHOdck3Mu6Jz7g3PuN8CAWBcmIiLxEUkQPGNmMy3kFDObCzwU68JERCQ+IgmCocBZwJtAOfABMDyWRYmISPxEdNUQoXMEpxCaUFbnnPsiplWJiEjcRBIE5YSCYAgwAphgZn+KaVUiIhI3kVw+eodzrvmGwTuAa83sGzGsSURE4qjNIGgOgUPWGvqvWBYlIiLxE8laQ9dorSERkdQVyTmC/0toraEa51w28DVgXUyrEhGRuNFaQ5KU/vjHPzJw4EByc3OZOXOm1+WIJLVIguDQtYbmAHtOpFEz62FmS8zsPTN718wuPpH3E3/56KOPmDFjBmvWrGHz5s384x//YM2aNV6XJZK0IgmCjcBeDl5r6L0TbHcOsNI51xe4CHj3BN9PfGTbtm1ccMEFpKenA3D55ZezdOlSj6sSSV6RXD56WXgC2RfAHwDMbFN7GzSz7sClwG0AzrkDwIH2vp+0XzLdI7f13bvOP/98tm7dSiAQIDMzk2XLlnHggP4KibTXUUcEZnaXmb0D9DWzTa2+6oB2BwGQDdQDj5nZBjP7DzPrcoT2p5hZhZlV1NfXn0BzciTJfI/c008/nXnz5nHjjTcyYsQIsrKySEtL87oskaR1rBHBfxK6TPQh4IetXv/MOffPE2wzH7jbOfd2+JzDD4H7Wu/knFsALAAoKChwJ9CeHEUy3yP3mmuu4ZprQquhL1iwQEEgcgKOGgTOud3AbmBClNvcDmx3zr0dfr6Eg4NGpE07d+4kIyODjz/+mEcffZRnnnnG65JEklYk5wiiyjn3DzP7u5ld6JzbSmhewpZ41yHJbfr06WzcuBGAf//3f6dPnz4eVySSvOIeBGF3E7oUtROwDbjdozokSZWUlHhdgkjK8CQInHNVaFKaiEhCiGQegYiIpDAFgYiIzykIRER8TkEgIuJzCgIREZ9TEIiI+JyCQETE5xQEIiI+pyAQEfE5BYGIiM/5JgiysrLYtWsXe/fu5etf/zp9+/YlNzeXH/4wuguf/vrXvyY3N5f+/fszYcIEPv/886i+v4hItPkmCFq79957ee+999iwYQNvvPEGL7744gm/ZzAY5P333+c3v/kNFRUVVFdX09TUxOLFi6NQsYhI7PguCHbu3Mm3v/1tJk+ezKBBg/jrX//Ktm3bACgqKmLmzJkUFhbSp08f1q5dC0BTUxMzZsxgyJAhDBw4kPnz5wOhG7uMGDGCMWPG0K9fPyAUCPv27SMYDLJ3717OPPNMbzoqIhIhr5ah9lRtbS0lJSX84he/IDMzk/3797dsCwaDlJWVsWLFCmbNmsXq1atZtGgR3bt3p7y8nP379zN8+HCKi4sBqKyspLq6muzsbCA02jj77LM55ZRTKC4ubtlPRCRR+W5EAJCdnd1yDP+yyy5j7969Lduuu+46AAYPHkwgEABg1apVPPHEE+Tl5TF06FA++ugjamtrASgsLGwJgY8//pjnnnuOuro6PvjgAxoaGnjqqafi2zkRkeOU8iOCoqKiw17r3LkzU6ZM4YILLuDss89mz549B20DSEtLIxgMAuCcY+7cuYwaNeqg9yktLaVLly4tz1evXk12djbp6elAKFTefPNNJk6cGO1uiYhEjS9HBB9++CG7d+9m9uzZEe0/atQo5s2bR2NjIwA1NTU0NDQctt/ZZ5/NunXr2Lt3L8451qxZQ05OTlRrFxGJtpQfERxqx44d7Nq1iy1btpCfn8/OnTspKDj2zdImTZpEIBAgPz8f5xzp6eksW7bssP2GDh3KuHHjyM/Pp0OHDgwaNIgpU6bEqisiIlFhzjmva2hTQUGBq6ioiHj/5sNBpaWlBz0WEfETM1vvnGvztsC+PDQkIiL/4ssgaJ5lHEtbt24lLy+v5eu0006L+JyEiEg8+e4cQTwEg0EuvPBCqqqqgNCEtN69ezN27FiPKxMROZwvRwTNAoEAOTk5TJ48mdzcXIqLi9m3bx8QnVnGzdasWcN5553HOeecE98OiohEwNdBAKFZxtOmTWPz5s306NGDpUuXtmxrnmU8e/ZsZs2aBXDQLOPy8nIWLlxIXV0dEJplPGfOHGpqag5qY/HixUyYMCF+nRIROQ4pGwRVVVUUFRW1HJ45muzsbPLy8oCDZxPDic0ybnbgwAGWL1/ODTfcEKWeiYhEl+/PETTPJIbQbOLmQ0Ott7VnlnGzF198kfz8fHr16hWL8kVETljKjgjy8vIoLS1t+bQfLZHOMm5WUlKiw0IiktB8PyI4XpHOMgZoaGjg5ZdfbjmhLCKSiDSzWEQkRWlmsYiIRERBICLic74Mgh/96EecddZZdO3a1etSREQ850kQmNl3zWyzmVWbWYmZnRzP9q+55hrKysri2aSISMKKexCYWW/gO0CBc64/kAbcFM8ahg0bxhlnnBHPJkVEEpZXh4Y6AKeYWQfgVOADj+oQEfG9uM8jcM69b2b/D/gbsA9Y5Zxbdeh+ZjYFmAKhW0C2ly4bFRE5Ni8ODZ0OXAtkA2cCXczssLu7O+cWOOcKnHMFzTeDFxGR6PPi0NDlQJ1zrt451wg8C3zVgzpERARvguBvwDAzO9XMDPga8G48C/jBD35AZmYme/fuJTMzk5/85CfxbF5EJKF4cY7gbTNbAlQCQWADsCCeNTz88MM8/PDD8WxSRCRhebLonHPufuB+L9oWEZGD+XJmsYiI/IuCQETE5xQEIiI+pyAQEfE5BYGIiM8pCEREfE5BICLicwoCERGfUxCIiPicgkBExOc8WWIiVRUVFbFjxw5OOeUUAFatWkVGRobHVYmIHJuCIMqefvppCgoKvC5DRCRiOjQkIuJzCoIou/3228nLy+OBBx7AOed1OSIibVIQRNHTTz/NO++8w9q1a1m7di1PPvmk1yWJiLRJQdBORUVFFBUVHfRa7969AejWrRs333wzZWVlHlQmInJ8FARREgwG2bVrFwCNjY08//zz9O/f3+OqRETapquGomT//v2MGjWKxsZGmpqauPzyy5k8ebLXZYmItElBECVdunRh/fr1XpchInLcdGhIRMTnFARRlJWV1XKeIJY++eQTxo0bR9++fcnJyeGtt96KeZsikrp0aCiJBINBOnTowPTp0xk9ejRLlizhwIED7N271+vSRCSJaUQQA4FAgJycHCZPnkxubi7FxcXs27cPCF12OnPmTAoLC+nTpw9r164FoKmpiRkzZjBkyBAGDhzI/PnzASgtLWXEiBGMGTOGfv36sXv3bl577TXuuOMOADp16kSPHj286aiIpAQFQYzU1tYybdo0Nm/eTI8ePVi6dGnLtmAwSFlZGbNnz2bWrFkALFq0iO7du1NeXk55eTkLFy6krq4OgMrKSubMmUNNTQ11dXWkp6dz++23M2jQICZNmkRDQ4MnfRSR1JCyh4aqqqoOm/AV7ffPy8s76vbs7OyW7YMHDyYQCLRsu+666w57fdWqVWzatIklS5YAsHv3bmpra+nUqROFhYVkZ2cDoRCprKxk7ty5DB06lOnTp/Ozn/2MBx54IAa9FBE/SMkRQWlp6TH/k46Hzp07tzxOS0sjGAwetq3168455s6dS1VVFVVVVdTV1VFcXAyELk1tlpmZSWZmJkOHDgVg3LhxVFZWxrw/IpK6UnZEUFpaGtP3j/ZoY9SoUcybN4+RI0fSsWNHampqWpasaO0rX/kKZ511Flu3buXCCy9kzZo19OvXL6q1iIi/pGwQJJtJkyYRCATIz8/HOUd6ejrLli074r5z587llltu4cCBA5x77rk89thjca5WRFKJJcNSyQUFBa6iosLrMg7SPCKI9chDRKS9zGy9c67NO2Wl5DkCERGJnIJARMTnFAQxMGbMGC1BLSJJI2ZBYGa/N7OdZlbd6rUvmdnLZlYb/vP0WLXvlWeffZauXbt6XYaISMRiOSJ4HBh9yGs/BNY45y4A1oSfp4w9e/bwq1/9ih//+MdelyIiErGYBYFz7jXgn4e8fC3wh/DjPwD/Fqv2vXDffffx/e9/n1NPPdXrUkREIhbvcwS9nHM7wo//AfQ62o5mNsXMKsysor6+Pj7VHYfS0tKDLh2tqqriL3/5C2PHjvWuKBGRdvDsZLELTWA46iQG59wC51yBc64gPT09jpW1z1tvvUVFRQVZWVlccskl1NTUxHStIxGRaIl3EHxoZmcAhP/cGef2Y+auu+7igw8+IBAI8Prrr9OnTx9NNhORpBDvIFgOfDP8+JvAc3FuX0REDhHLy0dLgLeAC81su5ndAfwMuMLMaoHLw89TTlZWFtXV1W3vKCKSAGK26JxzbsJRNn0tVm2KiMjx08xiERGfUxCIiPicgkBExOcUBCIiPqcgEBHxOQWBiIjPKQhERHxOQSAi4nMKAhERn1MQiIj4nIJARMTnLHRbgMRmZvXAX4/z23oCu2JQTqJRP1OLX/oJ/umrl/08xznX5g1dkiII2sPMKpxzBV7XEWvqZ2rxSz/BP31Nhn7q0JCIiM8pCEREfC6Vg2CB1wXEifqZWvzST/BPXxO+nyl7jkBERCKTyiMCERGJQFIHgZmNNrOtZvZnM/vhEbZ3NrM/hre/bWZZ8a8yOiLo6/fMbIuZbTKzNWZ2jhd1nqi2+tlqv+vNzJlZQl+NcTSR9NPMxod/p5vN7D/jXWM0RPD39mwze9XMNoT/7l7lRZ0nysx+b2Y7zeyINyu3kN+Efw6bzCw/3jUek3MuKb+ANOAvwLlAJ2Aj0O+Qfb4N/C78+Cbgj17XHcO+XgacGn58VzL2NZJ+hvfrBrwGrAMKvK47Rr/PC4ANwOnh5xle1x2jfi4A7go/7gcEvK67nX29FMgHqo+y/SrgRcCAYcDbXtfc+iuZRwSFwJ+dc9uccweAxcC1h+xzLfCH8OMlwNfMzOJYY7S02Vfn3KvOub3hp+uAzDjXGA2R/E4BHgB+Dnwez+KiKJJ+TgYecc59DOCc2xnnGqMhkn464LTw4+7AB3GsL2qcc68B/zzGLtcCT7iQdUAPMzsjPtW1LZmDoDfw91bPt4dfO+I+zrkgsBv4clyqi65I+traHYQ+fSSbNvsZHlKf5Zx7IZ6FRVkkv88+QB8ze8PM1pnZ6LhVFz2R9PMnwEQz2w6sAO6OT2lxd7z/huOqg9cFSHSZ2USgAPgfXtcSbWZ2EvAr4DaPS4mHDoQODxURGt29ZmYDnHOfeFpV9E0AHnfO/dLMLgaeNLP+zrkvvC7MT5J5RPA+cFar55nh1464j5l1IDT0/Cgu1UVXJH3FzC4HfgSMcc7tj1Nt0dRWP7sB/YFSMwsQOta6PAlPGEfy+9wOLHfONTrn6oAaQsGQTCLp5x3AMwDOubeAkwmtzZNqIvo37JVkDoJy4AIzyzazToROBi8/ZJ/lwDfDj8cBr7jwmZsk02ZfzWwQMJ9QCCTj8WRoo5/Oud3OuZ7OuSznXBahcyFjnHMV3pTbbpH83V1GaDSAmfUkdKhoWzyLjIJI+vk34GsAZpZDKAjq41plfCwHbg1fPTQM2O2c2+F1Uc2S9tCQcy5oZv8TeInQ1Qm/d85tNrP/A1Q455YDiwgNNf9M6ETOTd5V3H4R9vUXQFfgT+Hz4X9zzo3xrOh2iLCfSS/Cfr4EFJvZFqAJmOGcS6rRbIT9/D6w0My+S+jE8W3J+GHNzEoIBXfP8PmO+4GOAM653xE6/3EV8GdgL3C7N5UemWYWi4j4XDIfGhIRkShQEIiI+JyCQETE5xQEIiI+pyAQEfE5BYEkHTPLOtoqjzFss7StiWuxqsvMiszsq62eP25m46LdjviXgkBSlpmleV1DlBQBX21rJ5H2UhBIsupgZk+b2btmtsTMTgV/xPAqAAACf0lEQVQws4CZ/dzMKoEbzGyymZWb2UYzW9pqv8fD68O/aWbbWn/CNrOZZvZO+Ht+1qrNG8yszMxqzGzEsYozszQz+0W47U1mdmf49aLw6GKJmb0X7oOFt10Vfm19uLbnLXQPjanAd82sqlW7lx6pdpH2UBBIsroQeNQ5lwN8SujeE80+cs7lO+cWA88654Y45y4C3iW0tk2zM4BLgKuBnwGY2ZWElgweGv6eh1vt38E5VwjcQ2jm6LHcQWgZgSHAEGCymWWHtw0Kv0c/Qmv1DzezkwktEXKlc24wkA7gnAsAvwN+7ZzLc86tPVrtIu2lIJBk9Xfn3Bvhx08R+k+x2R9bPe5vZmvN7B3gFiC31bZlzrkvnHNbgF7h1y4HHmu+t4NzrvUa88+G/1wPZLVRXzGhtWWqgLcJLX/evGhcmXNue3iFzarwe/UFtoUXmAMoaeP9j1S7SLsk7VpD4nuHro3S+nlDq8ePA//mnNtoZrcRXsgtrPUKrZHcsKh5/yba/rdjwN3OuZcOetGs6JB2I3mvY9XS3JZIu2lEIMnq7PD69QA3A68fZb9uwA4z60hoRNCWl4HbW51L+FI763sJuCvcLmbWx8y6HGP/rcC59q/7at/YattnhPohEhMKAklWW4FpZvYucDow7yj73Ufo0MwbwHttvalzbiWhJYMrwod17m1nff8BbAEqw5eUzucYn/ydc/sInedYaWbrCf3nvzu8+f8DYw85WSwSNVp9VCRBmFlX59ye8FVEjwC1zrlfe12XpD6NCEQSx+TwKGQzobvpzfe4HvEJjQhERHxOIwIREZ9TEIiI+JyCQETE5xQEIiI+pyAQEfE5BYGIiM/9N0IgZluNIT6nAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from Bio import Phylo\n",
+ "import pylab\n",
+ "#draw the tree\n",
+ "Phylo.draw(upgma_tree)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Introducing mating to the model\n",
+ "\n",
+ "The populations we generated evolved asexually. This means that individuals do not mate or exchange genetic information. So to make our simulation a bit more interesting let's let the Cells mate. This is going to require a few small changes in the `selection()` function. Previously, when we selected sequences to go into the next generation we just let them provide one offspring which was a copy of itself and introduced mutations. Now instead of choosing one Cell at a time, we will randomly choose two 'parents' that will mate. When they mate, each parent will contribute one of its chromosomes to the child. We'll repeat this process until we have filled the next generation."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CGUACCUGAAAAGCUAACUA\n",
+ "GGAACCGUAGGCUUUGCAAG\n",
+ "ACCUGCCAUCAUCACCAGAC\n",
+ "UAGAGGUAGAAUUGUAGGCU\n",
+ "GAUUCCGCGCGAAUACCGCG\n",
+ "GCAUCGAGUGCGCGGCAUAA\n",
+ "UAAUAAAAAGGUGCUGAUAU\n",
+ "GAUUCCGCGCGAAUACCGCG\n",
+ "UCACUAAACUCCUCGACUAC\n",
+ "AUGAUCAUGGUGAGCAGUUU\n"
+ ]
+ }
+ ],
+ "source": [
+ "def selection_with_mating(population, target, mutation_rate=0.001, beta=-2):\n",
+ " next_generation = []\n",
+ " \n",
+ " counter = 0\n",
+ " while len(next_generation) < len(population):\n",
+ " #select two parents based on their fitness\n",
+ " parents_pair = np.random.choice(population, 2, p=[rna.fitness for rna in population], replace=False)\n",
+ " \n",
+ " #take the sequence and structure from the first parent's first chromosome and give it to the child\n",
+ " child_chrom_1 = (parents_pair[0].sequence_1, parents_pair[0].structure_1)\n",
+ "\n",
+ " #do the same for the child's second chromosome and the second parent.\n",
+ " child_chrom_2 = (parents_pair[1].sequence_2, parents_pair[1].structure_2)\n",
+ "\n",
+ "\n",
+ " #initialize the new child Cell witht he new chromosomes.\n",
+ " child_cell = Cell(child_chrom_1[0], child_chrom_1[1], child_chrom_2[0], child_chrom_2[1])\n",
+ "\n",
+ " #give the child and id and store who its parents are\n",
+ " child_cell.id = counter\n",
+ " child_cell.parent_1 = parents_pair[0].id\n",
+ " child_cell.parent_2 = parents_pair[1].id\n",
+ "\n",
+ " #add the child to the new generation\n",
+ " next_generation.append(child_cell)\n",
+ " \n",
+ " counter = counter + 1\n",
+ " \n",
+ " \n",
+ " #introduce mutations in next_generation sequeneces and re-fold when a mutation occurs (same as before)\n",
+ " for rna in next_generation: \n",
+ " mutated_sequence_1, mutated_1 = mutate(rna.sequence_1, mutation_rate=mutation_rate)\n",
+ " mutated_sequence_2, mutated_2 = mutate(rna.sequence_2, mutation_rate=mutation_rate)\n",
+ "\n",
+ " if mutated_1:\n",
+ " rna.sequence_1 = mutated_sequence_1\n",
+ " rna.structure_1 = nussinov(mutated_sequence_1)\n",
+ " if mutated_2:\n",
+ " rna.sequence_2 = mutated_sequence_2\n",
+ " rna.structure_2 = nussinov(mutated_sequence_2)\n",
+ " else:\n",
+ " continue\n",
+ "\n",
+ " #update fitness values for the new generation\n",
+ " compute_fitness(next_generation, target, beta=beta)\n",
+ "\n",
+ " return next_generation \n",
+ "\n",
+ "#run a small test to make sure it works\n",
+ "next_gen = selection_with_mating(pop, target)\n",
+ "for cell in next_gen[:10]:\n",
+ " print(cell.sequence_1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we just have to update our `evolution()` function to call the new `selection_with_mating()` function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def evolve_with_mating(target, generations=10, pop_size=100, mutation_rate=0.001, beta=-2):\n",
+ " populations = []\n",
+ " population_stats = {}\n",
+ " \n",
+ " initial_population = populate(target, pop_size=pop_size)\n",
+ " compute_fitness(initial_population, target)\n",
+ " \n",
+ " current_generation = initial_population\n",
+ "\n",
+ " #iterate the selection process over the desired number of generations\n",
+ " for i in range(generations):\n",
+ " #let's get some stats on the structures in the populations \n",
+ " record_stats(current_generation, population_stats)\n",
+ " \n",
+ " #add the current generation to our list of populations.\n",
+ " populations.append(current_generation)\n",
+ "\n",
+ " #select the next generation, but this time with mutations\n",
+ " new_gen = selection_with_mating(current_generation, target, mutation_rate=mutation_rate, beta=beta)\n",
+ " current_generation = new_gen \n",
+ " \n",
+ " return (populations, population_stats)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Try out the new evolution model!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "pops_mating, pops_stats_mating = evolve_with_mating(\"(((....)))\", generations=20, pop_size=1000, beta=0)\n",
+ "\n",
+ "evo_plot(pops_stats_mating)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Hardy Weinberg Equilibrium\n",
+ "\n",
+ "When we are presented with data from a population we don't know much about. It is often useful to try to learn whether there are any evolutionary or behavioural influences that are shaping population dynamics. This could be in the form of selective pressure, mating preference, genetic drift, mutations, gene flow, etc. So in order to detect if something like this is happening we need to develop a test. This is where Hardy Weinberg comes in. \n",
+ "\n",
+ "The Hardy Weinberg equilibrium states that \"allele and genotype frequencies remain constant in the absence of other evolutionary influences. (such as the ones we mentioned above)\" - Wikipedia.\n",
+ "\n",
+ "So if we can measure allele/genotype frequencies (which we can do because we have sequences), we can see whether the HW principle holds true. If it does not, then we can do more digging to see what could be happening to shift populations away from equilibrium.\n",
+ "\n",
+ "In order to do this we need to define an 'allele'. An allele (for our purproses) will be a locus (position in a sequence) that can take one of two states, a *reference* state or an *alternate* state. For example, we can look at locus number **5** (position 5 in our RNA sequences) and call reference **C**, and alternate **G**. If we are in HW we can predict the frequency of each allele in our population.\n",
+ "\n",
+ "To simplify our notation we will call the alternate allele *A* and the reference allele *a*. We can write the probability of each allele as $p_{A} + p_{a} = 1$. Since we are dealing with diploid populations, each individual will have two copies of each locus so it can be $p_{AA}, p{Aa}, p{aA}, p{aa}$. By simple probability laws we can get an expression for the probability of each genotype based on the probabilities of the single loci $p_{a}$ and $p_{A}$.\n",
+ "\n",
+ "$$p_{aa}\\simeq p_{a}^2$$\n",
+ "\n",
+ "$$p_{AA}\\simeq p_{A}^2$$\n",
+ "\n",
+ "$$p_{Aa,~aA} \\simeq 2 p_{a} p_{A}.$$\n",
+ "\n",
+ "Since it is hard to know what the true probability of observing either $p_{a}$ and $p_{A}$ we can estimate this probability from our data as follows:\n",
+ "\n",
+ "$$\\hat p_a=\\frac{2N_{aa}+N_{aA}}{2N}=1-\\hat p_A.$$\n",
+ "\n",
+ "Where $N$ denotes the number of each genotype that we observe in our sequences. \n",
+ "\n",
+ "Based on these estimates we can expect the following frequencies for each genotype: \n",
+ "\n",
+ "$N_{aa}\\simeq e_{aa}=N \\hat p_a^2$\n",
+ "\n",
+ "$N_{AA}\\simeq e_{AA}= N \\hat p_{A}^2$\n",
+ "\n",
+ "$N_{Aa,~aA} \\simeq e_{Aa} = 2 N \\hat p_{a} \\hat p_{A}.$\n",
+ "\n",
+ "Now we have expected values, and observed values. We need a test to determine whether we have a significant departure from the hypothesis of Hardy Weinberg equilibrium. The statistical test that is commonly used is known as the $\\chi^{2}$ test. If you take a look at the equation you'll see that the statistic simply takes the squared difference between our observed value and the expected value (divided by expected) and sums this for each possible genotype. The reason we take the squared difference is because we want to deal only with positive values, hence the name $\\chi^{2}$.\n",
+ "\n",
+ "$$X^2= \\frac{(N_{aa}-e_{aa})^2}{e_{aa}}+ \\frac{(N_{Aa}-e_{Aa})^2}{e_{Aa}}+ \\frac{(N_{AA}-e_{AA})^2}{e_{AA}}.$$\n",
+ "\n",
+ "The first thing we need to do is get alleles from our sequence data. This boils down to going through each sequence at the position of interest and counting the number of $AA$, $Aa$, $aa$ we get.\n",
+ "\n",
+ "\n",
+ "\\** the sections on Hardy Weinberg and F-statistics are adapted from Simon Gravel's HGEN 661 Notes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def allele_finder(pop, locus, ref, alt):\n",
+ " genotypes = []\n",
+ " for p in pop:\n",
+ " #get the nucleotide at the locus from the first chromosome \n",
+ " locus_1 = p.sequence_1[locus].upper()\n",
+ " #same for the second\n",
+ " locus_2 = p.sequence_2[locus].upper()\n",
+ " \n",
+ " #check that it is either ref or alt, we don't care about other alleles for now.\n",
+ " if locus_1 in (ref, alt) and locus_2 in (ref, alt):\n",
+ " #if the alelle is ref, store a value of 1 in allele_1, and 0 otherwise\n",
+ " allele_1 = int(locus_1 == ref)\n",
+ " #same for the second allele\n",
+ " allele_2 = int(locus_2 == ref)\n",
+ " \n",
+ " #add allele to our list of alleles as a tuple. \n",
+ " genotypes.append((allele_1, allele_2))\n",
+ " return genotypes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[(0, 0), (0, 0), (0, 1), (1, 0), (0, 1), (1, 0), (1, 0), (1, 0), (1, 0), (0, 1)]\n"
+ ]
+ }
+ ],
+ "source": [
+ "pop_hw, stats_hw = evolve_with_mating(\"(((....)))\", pop_size=1000, generations=10, beta=0, mutation_rate=0.005)\n",
+ "alleles = allele_finder(pop_hw[-1], 5, 'C', 'G')\n",
+ "print(alleles[:10])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that we have alleles represented in the right form, we can see if our population is at Hardy Weinberg equilibrium using the $\\chi_{2}$ test and the equations above."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(Power_divergenceResult(statistic=0.001476611280908458, pvalue=0.9693474730942313),\n",
+ " {'hom_ref': (81, 81.14693877551021),\n",
+ " 'het': (120, 119.70612244897958),\n",
+ " 'hom_alt': (44, 44.14693877551021),\n",
+ " 'ref_counts': 282,\n",
+ " 'alt_counts': 208,\n",
+ " 'genotype_count': 245})"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from scipy import stats\n",
+ "from scipy.stats import chi2\n",
+ "\n",
+ "def hardy_weinberg_chi2_test(alleles):\n",
+ " \n",
+ " #store counts for N_AA, N_Aa/aA, N_aa\n",
+ " hom_ref_count = 0\n",
+ " het_count = 0\n",
+ " hom_alt_count = 0\n",
+ " \n",
+ " #each allele in the list alleles is in the form (0,0) or (0,1) or (1,0) or (1,1)\n",
+ " #count how many of each type we have\n",
+ " for a in alleles:\n",
+ " if (a[0]==0 and a[1]==0):\n",
+ " hom_ref_count += 1\n",
+ " elif ((a[0]==0 and a[1]==1) or (a[0]==1 and a[1]==0)):\n",
+ " het_count += 1\n",
+ " elif (a[0]==1 and a[1]==1):\n",
+ " hom_alt_count += 1\n",
+ " else:\n",
+ " continue\n",
+ " \n",
+ " #total number of genotypes: N\n",
+ " genotype_count = hom_ref_count + het_count + hom_alt_count\n",
+ "\n",
+ " #estimate p_a, p_A\n",
+ " alt_counts = (2 * hom_alt_count) + het_count\n",
+ " ref_counts = (2 * hom_ref_count) + het_count\n",
+ " \n",
+ " \n",
+ " #get expectations e_AA, e_aA,Aa, e_aa\n",
+ " hom_ref_expectation = ref_counts**2 / (4.*genotype_count) # the expected number of homozygote references \n",
+ " het_expectation = ref_counts * alt_counts / (2.*genotype_count) # the expected number of hets \n",
+ " hom_alt_expectation = alt_counts**2 / (4.*genotype_count) # the expected number of homozygote nonreferences \n",
+ "\n",
+ " #store observed values in list in the form [N_AA, N_aA,Aa, N_aa]\n",
+ " observations = [hom_ref_count, het_count, hom_alt_count]\n",
+ " #store expected values in the same form\n",
+ " expectations = [hom_ref_expectation, het_expectation, hom_alt_expectation]\n",
+ " \n",
+ " #start a dictionary that will store our results.\n",
+ " statistics = {\n",
+ " 'hom_ref': (hom_ref_count, hom_ref_expectation),\n",
+ " 'het': (het_count, het_expectation),\n",
+ " 'hom_alt': (hom_alt_count, hom_alt_expectation), \n",
+ " 'ref_counts': ref_counts, \n",
+ " 'alt_counts': alt_counts,\n",
+ " 'genotype_count': genotype_count\n",
+ " }\n",
+ "\n",
+ " #call scipy function for chi2 test.\n",
+ " chi_2_statistic = stats.chisquare(observations, f_exp=expectations, ddof=1, axis=0)\n",
+ " \n",
+ " #return chi2 and statistics dictionary\n",
+ " return (chi_2_statistic, statistics)\n",
+ "\n",
+ "hardy_weinberg_chi2_test(alleles)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Can we say that our population is at equilibrium? Can you find parameters for `evolution_with_mating()` that will give us populations outside of the HW equilibrium?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## A brief interlude on the p-value\n",
+ "\n",
+ "Let's take a minute to understand what the p-value means. The p-value is a probability. Specifically, it is the probability of observing a value equal to or more extreme than that our statistic given the test distribution. So in our case, it is the probability of observing a $X^2$ greater than or equal to the one the test gives us under a $\\chi^2$ distribution. When this value is very small, it suggests that it is unlikely that we are sampling from our assumed 'null' distribution and that some other alternate distribution is the true distribution. So a low p-value here would be evidence against the neutral Hardy Weinberg model and would suggest that our population is experiencing some influences such as mating preference, selection, mutation etc.\n",
+ "\n",
+ "A lot of research bases its conclusions solely on p-value and it is important to be very wary of this bad practice. It has become a bad convention that people say a p-value lower than some arbitrary threshold means one's findings are significant. However, very often the p-value does not give us the whole story and we need to know about things like sample size, size of impact, reproducibility, power of the test, etc. (check this out [American Statistical Association statement on p-values](http://www.nature.com/news/statisticians-issue-warning-over-misuse-of-p-values-1.19503), [p-hacking](http://fivethirtyeight.com/features/science-isnt-broken/#part1), and [this](http://allendowney.blogspot.ca/2016/06/there-is-still-only-one-test.html))\n",
+ "\n",
+ "Let's just visualize this very quickly using the $\\chi^{2}_{1}$ distribution. You will see that the p-value corresponds to the shaded red area under the curve. That area is the probability of observing a value as extreme or more than the one we found. When that is a very small area, we can be more confident that our assumption of HW is false."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0,0.5,'$\\\\chi^2_1$')"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#number of samples to take from the x2 distribution.\n",
+ "number_of_samples = 1000\n",
+ "\n",
+ "range_points = 2000\n",
+ "range_start = 0\n",
+ "\n",
+ "degrees_of_freedom = 1\n",
+ "\n",
+ "range_end = chi2.ppf(1-1./number_of_samples, degrees_of_freedom)\n",
+ " \n",
+ "x_range = np.linspace(range_start, range_end, range_points) \n",
+ "plt.plot(x_range, chi2.pdf(x_range, degrees_of_freedom))\n",
+ "\n",
+ "#find the index value of our statistic value. you can put in different values here.\n",
+ "statistic = 0.5\n",
+ "\n",
+ "#find the index in x_range corresponding to the statistic value (within 0.01)\n",
+ "point = 0\n",
+ "for i, nb in enumerate(x_range):\n",
+ " if nb < statistic + .01 and nb > statistic - .01:\n",
+ " point = i\n",
+ "\n",
+ "#fill area under the curve representing p-value\n",
+ "plt.fill_between(x_range[point:], chi2.pdf(x_range, degrees_of_freedom)[point:], alpha=0.3, color=\"red\")\n",
+ "\n",
+ "plt.xlabel(\"X-statistic\")\n",
+ "plt.ylabel(r\"$\\chi^2_%d$\" % degrees_of_freedom)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Population structure: F-statistics\n",
+ "\n",
+ "The last topic we'll cover is F-statistics. \n",
+ "\n",
+ "Once we find that our population strays from the HW condition we can begin to ask why that is the case. Often this deviation from the expected allele frequencies under HW is due to mating preference. Hardy Weinberg assumes that all individuals in a population have an equal probability of mating with any other individual (random mating). However, when certain individuals prefer to mate with specific others (in real populations this can be due to culture, race, geographic barriers, etc.), you get what is known as population structure. Population structure means that we begin to see *sub-populations* within our total population where individuals prefer to mate within their sub-population. This biased mating will result in a higher number of homozygotes than we would expect under Hardy-Weinberg equilibrium. Simply because mating preferences will tend to drive populations toward similar genotypes. So if this is the case, and no other factors are biasing allele dynamics, within sub-populations we should have Hardy-Weinberg like conditions. \n",
+ "\n",
+ "For example, if Raptors fans prefer to mate with other Raptors fans, then when we consider only Raptors fans, we should observe random mating. Simply because if the mating preference criterion is 'being a Raptor's fan' then any Raptor's fan will be equally likely to mate with any other Raptor's fan so we have Hardy Weinberg again.\n",
+ "\n",
+ "Let's express this in quantities we can measure.\n",
+ "\n",
+ "From before we calculated the observed and expected number of heterozygotes in a population. Let's call these $\\hat H$ and $H_{IT}$ respectively. $\\hat H$ is just the count of heterozygotes, and $H_{IT}$ is the same as the expected number of heterozygotes we calculated earlier.\n",
+ "\n",
+ "We define a quantity $e_{IT}$ as a measure of the 'excess heterozygosity' in the population when we consider all individuals $I$ in the total population $T$. $e_{IT} > 1$ when we have more heterozygotes than we expect under HW. And $0 < e_{IT} < 1$ if we have less heterozygotes than we would expect under HW.\n",
+ "\n",
+ "\n",
+ "$$e_{IT}=\\frac{\\mbox{observed proportion of hets}}{\\mbox{expected proportion of hets}}=\\frac{ H_{obs}}{H_{IT}}$$\n",
+ "\n",
+ "We use $e_{IT}$ to define the statistic $F_{IT}$\n",
+ "\n",
+ "$$F_{IT}=1-e_{IT}$$\n",
+ "\n",
+ "So $F_{IT} > 0$ when we have a lack of heterozygotes and $F_{IT} < 0$ when we have an excess of heterozygotes. $F_{IT} = 0$ under random mating.\n",
+ "\n",
+ "When we have a subpropulation $S$ we can calculate the equivalent quantity but instead of considering heterozygosity in the whole population we only take a sub-population into account.\n",
+ "\n",
+ "$$e_{IS} = \\frac{H_{obs}}{H_{IS}}$$\n",
+ "\n",
+ "And lastly, we have $F_{ST}$. This one is not as intuitive to derive so I'm not including the derivation here. But basically it measure the excess heterozygosity in the total population due to the presence of two subpopulations with allele frequencies $p_{1}$ and $p_{2}$.\n",
+ "\n",
+ "$$F_{ST}= \\frac{(p_1-p_2)^2}{4 p (1-p)}$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def F_statistics(total_pop, sub_pop_1, sub_pop_2): \n",
+ " \"\"\"\n",
+ " Uses definitions above and allele counts from two sub-populations and a total population to compute F-statistics.\n",
+ " \"\"\"\n",
+ " #recall that the input dictionaries each contain a tuple in the form(observed, expected) for each genotype\n",
+ " f_IT = 1 - total_pop['het'][0] / (1. * total_pop['het'][1])\n",
+ " \n",
+ " \n",
+ " f_IS_1 = 1 - sub_pop_1['het'][0] / (1. * sub_pop_1['het'][1])\n",
+ " f_IS_2 = 1 - sub_pop_2['het'][0] / (1. * sub_pop_2['het'][1]) \n",
+ " \n",
+ " p1 = sub_pop_1['ref_counts'] / (1. * sub_pop_1['genotype_count'])\n",
+ " p2 = sub_pop_2['ref_counts'] / (1. * sub_pop_2['genotype_count'])\n",
+ " \n",
+ " p = total_pop['ref_counts'] / (1. * total_pop['genotype_count'])\n",
+ " \n",
+ " f_ST = ((p1 - p2) ** 2) / (4.0 * p * (1 - p)) \n",
+ " \n",
+ " F_dict = {\n",
+ " 'f_IT': f_IT,\n",
+ " 'f_IS_1': f_IS_1,\n",
+ " 'f_IS_2': f_IS_2,\n",
+ " 'f_ST': f_ST\n",
+ " }\n",
+ " \n",
+ " return F_dict"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let's get some data for our F-tests. First we need to evolve two populations indepenently of each other, to simulate isolated mating. Then to simulate the total population we combine the two sub-populations. We then use our `allele_finder()` function to get all the alleles, and the `hardy_weinberg_chi_2_test()` function to get our expected and observed counts. Finally we plug those into the `f_statistics()` function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "generation = -1\n",
+ "\n",
+ "#run two independent simulations\n",
+ "sub_pop_1, sub_pop_1_stats= evolve_with_mating(\"(((....)))\", pop_size=1000, generations=15, beta=-1, mutation_rate=0.005)\n",
+ "sub_pop_2, sub_pop_2_stats= evolve_with_mating(\"(((....)))\", pop_size=1000, generations=15, beta=-1, mutation_rate=0.005)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'f_IT': 0.054216581725422874, 'f_IS_1': 0.037559168553200184, 'f_IS_2': -0.08899167437557809, 'f_ST': -0.3885918781521351}\n"
+ ]
+ }
+ ],
+ "source": [
+ "#merge the two populations into a total population.\n",
+ "total_pop = sub_pop_1[generation] + sub_pop_2[generation]\n",
+ "\n",
+ "\n",
+ "#choose a reference and alternate allele\n",
+ "ref_allele = \"A\"\n",
+ "alt_allele = \"G\"\n",
+ "\n",
+ "#choose the position of the locus of interest.\n",
+ "locus = 1\n",
+ "\n",
+ "#get list of alleles for each population\n",
+ "total_pop_alleles = allele_finder(total_pop, locus, ref_allele, alt_allele)\n",
+ "sub_pop_1_alleles = allele_finder(sub_pop_1[generation],locus, ref_allele, alt_allele)\n",
+ "sub_pop_2_alleles = allele_finder(sub_pop_2[generation],locus, ref_allele, alt_allele)\n",
+ "\n",
+ "#get homo/het expectations using hardy weinberg function\n",
+ "total_pop_counts = hardy_weinberg_chi2_test(total_pop_alleles)[1]\n",
+ "sub_pop_1_counts = hardy_weinberg_chi2_test(sub_pop_1_alleles)[1]\n",
+ "sub_pop_2_counts = hardy_weinberg_chi2_test(sub_pop_2_alleles)[1]\n",
+ "\n",
+ "#call f-statistics function\n",
+ "f_statistics = F_statistics(total_pop_counts, sub_pop_1_counts, sub_pop_2_counts)\n",
+ "print(f_statistics)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Try playing with different evolution parameters and see the effect on the different F-statistics. This workshop is a work in progress so there may be some biases in our simulation scheme that can make for come confusing F-statistics. If you come up with anything interesting I would love to know about it."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exercises / Extra Material\n",
+ "\n",
+ "### Programming Exercises\n",
+ "\n",
+ "i. *Heatmap of mutation rates vs. population sizes.* (short) \n",
+ "\n",
+ "Make a heatmap that plots the base pair distance of the average base pair distance of the population at generation `-1` for mutation rates $\\mu = \\{0, 0.001, 0.01, 0.1, 0.5\\}$ and population sizes $N=\\{10, 100, 1000, 10000\\}$. The resulting heatmap will be `5x4` dimensions. You may choose how many generations to evolve your populations, just plot the last one in the heatmap."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "([<matplotlib.axis.YTick at 0x7fa02ba18ac8>,\n",
+ " <matplotlib.axis.YTick at 0x7fa02ba183c8>,\n",
+ " <matplotlib.axis.YTick at 0x7fa02ba59a58>,\n",
+ " <matplotlib.axis.YTick at 0x7fa02acbe978>,\n",
+ " <matplotlib.axis.YTick at 0x7fa02acc5048>],\n",
+ " <a list of 5 Text yticklabel objects>)"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 2 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#lists of mutation rates and population sizes to test\n",
+ "mutation_rates = [0, 0.001, 0.01, 0.1, 0.5]\n",
+ "population_sizes = [10, 100, 1000, 10000]\n",
+ "\n",
+ "#number of generations to run each simulation\n",
+ "generations = 1\n",
+ "#target structure\n",
+ "target = \"(.((....)))\"\n",
+ "\n",
+ "#list to store our results\n",
+ "bp_distances = []\n",
+ "\n",
+ "#nested for loop to go through each combination of mutation rates and population sizes.\n",
+ "for m in mutation_rates:\n",
+ " #list to store the population size results for current mutation rate.\n",
+ " bp_distances_by_pop_size = []\n",
+ " #try each population size\n",
+ " for p in population_sizes:\n",
+ " #call evolve() with m and p \n",
+ " pop, pop_stats = evolve(target, mutation_rate=m, pop_size=p, generations=generations)\n",
+ " #add bp_distance of chromosome 1 at generation -1 (last generation) to bp_distances_by_pop_size\n",
+ " bp_distances_by_pop_size.append(pop_stats['mean_bp_distance_1'][-1])\n",
+ " #add to global list once all combinations of current mutation rate and population sizes.\n",
+ " bp_distances.append(bp_distances_by_pop_size)\n",
+ " \n",
+ "#use bp_distances matrxi to make a heatmap\n",
+ "sns.heatmap(bp_distances)\n",
+ "\n",
+ "#labels\n",
+ "plt.xlabel(\"Population Size\")\n",
+ "#xticks/yticks takes a list of numbers that specify the position of the ticks and a list with the tick labels\n",
+ "plt.xticks([i + .5 for i in range(len(population_sizes))], population_sizes)\n",
+ "plt.ylabel(\"Mutation Rate\")\n",
+ "plt.yticks([i + .5 for i in range(len(mutation_rates))], mutation_rates)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ii. *Introduce mating preferences within a population.* (medium length) \n",
+ "\n",
+ "Modify the `selection_with_mating()` function to allow for mating preferences within a population. In our example above we were just running two independent simulations to study barriers to gene flow. But now you will implement mating preferences within a single simulation. Your function will assign each Cell a new attribute called `self.preference` which will take a string value denoting the mating type the current cell prefers to mate with. For example we can have a population with three mating types: $\\{A, B, C\\}$. Your function will randomly assign preferences to each cell in the initial population. We will define a preference between types $A$ and $B$ as the probability that two cells of those given types will mate if selected. \n",
+ "\n",
+ "$$\n",
+ "preferences(A,B,C) = \n",
+ "\\begin{bmatrix}\n",
+ " 0.7 & 0.1 & 0.2 \\\\\n",
+ " 0.1 & 0.9 & 0 \\\\\n",
+ " 0.2 & 0 & 0.8 \\\\\n",
+ "\\end{bmatrix}\n",
+ "$$\n",
+ "\n",
+ "Once you selected two potential parents for mating (as we did earlier) you will use the matrix to evaluate whether or not the two parents will mate and contribute an offspring to the next generation. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "UAUCUCUAGAA\n",
+ "UCAAACGGUUU\n",
+ "CCUAGACUUUC\n",
+ "UAUCUCUAGAA\n",
+ "CCUAGACUUUC\n",
+ "GGCAaUGGUGC\n",
+ "GGCAaUGGUGC\n",
+ "CGGUGCCAUGG\n",
+ "CCCGGUUACGU\n",
+ "CGGGGAGUUUU\n"
+ ]
+ }
+ ],
+ "source": [
+ "def populate_with_preferences(target, preference_types, pop_size=100):\n",
+ " \n",
+ " population = []\n",
+ "\n",
+ " for i in range(pop_size):\n",
+ " #get a random sequence to start with\n",
+ " sequence = \"\".join([random.choice(\"AUCG\") for _ in range(len(target))])\n",
+ " #use nussinov to get the secondary structure for the sequence\n",
+ " structure = nussinov(sequence)\n",
+ " #add a new Cell object to the population list\n",
+ " new_cell = Cell(sequence, structure, sequence, structure)\n",
+ " new_cell.id = i\n",
+ " new_cell.parent = i\n",
+ " \n",
+ " #assign preference\n",
+ " new_cell.preference = random.choice(preference_types)\n",
+ " population.append(new_cell)\n",
+ " \n",
+ " return population\n",
+ "\n",
+ "def selection_with_mating_preference(population, target, preference_matrix, preference_types, mutation_rate=0.001, beta=-2):\n",
+ " next_generation = []\n",
+ " \n",
+ " counter = 0\n",
+ " while len(next_generation) < len(population):\n",
+ " #select two parents based on their fitness\n",
+ " parents_pair = np.random.choice(population, 2, p=[rna.fitness for rna in population], replace=False)\n",
+ " \n",
+ " #look up probabilty of mating in the preference_matrix\n",
+ " mating_probability = preference_matrix[parents_pair[0].preference][parents_pair[1].preference]\n",
+ " \n",
+ " r = random.random()\n",
+ " #if random number below mating_probability, mate the Cells as before\n",
+ " if r < mating_probability:\n",
+ " #take the sequence and structure from the first parent's first chromosome and give it to the child\n",
+ " child_chrom_1 = (parents_pair[0].sequence_1, parents_pair[0].structure_1)\n",
+ "\n",
+ " #do the same for the child's second chromosome and the second parent.\n",
+ " child_chrom_2 = (parents_pair[1].sequence_2, parents_pair[1].structure_2)\n",
+ "\n",
+ "\n",
+ " #initialize the new child Cell witht he new chromosomes.\n",
+ " child_cell = Cell(child_chrom_1[0], child_chrom_1[1], child_chrom_2[0], child_chrom_2[1])\n",
+ "\n",
+ " #give the child and id and store who its parents are\n",
+ " child_cell.id = counter\n",
+ " child_cell.parent_1 = parents_pair[0].id\n",
+ " child_cell.parent_2 = parents_pair[1].id\n",
+ " \n",
+ " #give the child a random preference\n",
+ " child_cell.preference = random.choice(preference_types)\n",
+ "\n",
+ " #add the child to the new generation\n",
+ " next_generation.append(child_cell)\n",
+ "\n",
+ " counter = counter + 1\n",
+ " \n",
+ " \n",
+ " #introduce mutations in next_generation sequeneces and re-fold when a mutation occurs (same as before)\n",
+ " for rna in next_generation: \n",
+ " mutated_sequence_1, mutated_1 = mutate(rna.sequence_1, mutation_rate=mutation_rate)\n",
+ " mutated_sequence_2, mutated_2 = mutate(rna.sequence_2, mutation_rate=mutation_rate)\n",
+ "\n",
+ " if mutated_1:\n",
+ " rna.sequence_1 = mutated_sequence_1\n",
+ " rna.structure_1 = nussinov(mutated_sequence_1)\n",
+ " if mutated_2:\n",
+ " rna.sequence_2 = mutated_sequence_2\n",
+ " rna.structure_2 = nussinov(mutated_sequence_2)\n",
+ " else:\n",
+ " continue\n",
+ "\n",
+ " #update fitness values for the new generation\n",
+ " compute_fitness(next_generation, target, beta=beta)\n",
+ "\n",
+ " return next_generation \n",
+ "\n",
+ "\n",
+ "def evolve_with_mating_preferences(target, preference_types, preference_matrix,\\\n",
+ " generations=10, pop_size=100, mutation_rate=0.001, beta=-2):\n",
+ " populations = []\n",
+ " population_stats = {}\n",
+ " \n",
+ " initial_population = populate_with_preferences(target, preference_types, pop_size=pop_size)\n",
+ " compute_fitness(initial_population, target)\n",
+ " \n",
+ " current_generation = initial_population\n",
+ "\n",
+ " #iterate the selection process over the desired number of generations\n",
+ " for i in range(generations):\n",
+ " #let's get some stats on the structures in the populations \n",
+ " record_stats(current_generation, population_stats)\n",
+ " \n",
+ " #add the current generation to our list of populations.\n",
+ " populations.append(current_generation)\n",
+ "\n",
+ " #select the next generation, but this time with mutations\n",
+ " new_gen = selection_with_mating_preference(current_generation, target, preference_matrix, \\\n",
+ " preference_types, mutation_rate=mutation_rate, beta=beta)\n",
+ " current_generation = new_gen \n",
+ " \n",
+ " return (populations, population_stats)\n",
+ "\n",
+ "\n",
+ "\n",
+ "#run a small test to make sure it works\n",
+ "target = \".(((....)))\"\n",
+ "#for convenience, let's give the preference types integer values in sequential order\n",
+ "preference_types = [0,1,2]\n",
+ "\n",
+ "preference_matrix = np.array([[0.7, 0.1, 0.2],[0.1, 0.9, 0],[0.2, 0, 0.8]])\n",
+ " \n",
+ "pops, pop_stats = evolve_with_mating_preferences(target, preference_types, preference_matrix)\n",
+ "\n",
+ "for cell in pops[-1][:10]:\n",
+ " print(cell.sequence_1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Population Genetics / Bioinformatics Exercises\n",
+ "\n",
+ "*Exercise 1. Make a tree using maximum parsimony.*\n",
+ "\n",
+ "We saw how to make trees using a distance score. Another popular method is known as the maximum parsimony approach. I won't go into too much detail on this since we are short on time, but I will give a quick intro and we'll look at how ot make a tree using maximum parsimony.\n",
+ "\n",
+ "This approach is based on the principle of parsimony, which states that the simplest explanation for our data is the most likely to be true. So given an alignment, we assume that the best tree is the one that minimizes the number of changes, or mutations. This is often a reasonable assumption to make since mutation rates in real populations are generally low, and things like back-mutations (e.g. A --> C --> A) are unlikely. Computing the tree that that maximizes parsimony directly is a difficult task, but evaluating the parsimony score of a tree given the tree is easy. So this approach basically generates many random trees for the data and scores them based on parsimony keeping the most parsimonious tree. Take a look at [the biopython manual to work through this example](http://biopython.org/wiki/Phylo), and [this one](http://biopython.org/DIST/docs/api/Bio.Phylo.TreeConstruction.ParsimonyTreeConstructor-class.html).\n",
+ "\n",
+ "Since we already have an alignment (`aln.clustal`) we will just re-use it and make a maximum parsimony tree instead. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from Bio.Phylo.TreeConstruction import *\n",
+ "\n",
+ "#open our alignment file (or make a new one if you want)\n",
+ "with open('aln.clustal', 'r') as align:\n",
+ " aln = AlignIO.read(align, 'clustal')\n",
+ "\n",
+ "#create a parsimony scorer object\n",
+ "scorer = ParsimonyScorer()\n",
+ "#the searcher object will search through possible trees and score them.\n",
+ "searcher = NNITreeSearcher(scorer)\n",
+ "\n",
+ "#takes our searcher object and a seed tree (upgma_tree) to find the best tree\n",
+ "constructor = ParsimonyTreeConstructor(searcher, upgma_tree)\n",
+ "\n",
+ "#build the tree \n",
+ "parsimony_tree = constructor.build_tree(aln)\n",
+ "\n",
+ "#draw the tree\n",
+ "Phylo.draw(parsimony_tree)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "*Exercise 2. Bootstrapping*\n",
+ "\n",
+ "We just saw two methods of growing phylogenetic trees given an alignment. However, as we saw with the maximum parsimony approach, there can be many different trees for a single data set. How do we know our tree is a good representation of the data? By 'good' here we will instead use the word 'robust'. Is the tree we use too sensitive to the particularities of the data we gave it? If we make a small change in the sequence will we get a very different tree? Normally these problems would be addressed by re-sampling and seeing if we obtain similar results. But we can't really re-sample evolution. It happened once and we can't make it happen again. So we use something called *bootstrapping* which is a technique often used in statistics where instead of generating new data, you re-sample from your present data.\n",
+ "\n",
+ "So we have a multiple sequence alignment with $M$ sequences (rows) each with sequences of length $N$ nucleotides (columns). For each row, we can randomly sample $N$ nucleotides with replacement to make a new 'bootstrapped' sequence also of length $N$. Think of it as a kind of shuffling of the data. This gives us a whole new alignment that we can again use to make a new tree.\n",
+ "\n",
+ "This process is repeated many times to obtain many trees. The differences in topology (shape/structure) of the trees we obtained are assessed. If after this shuffling/perturbations we still get similar enough looking trees we can say that our final tree is robust to small changes in the data. ([some more reading on this](http://projecteuclid.org/download/pdf_1/euclid.ss/1063994979))\n",
+ "\n",
+ "Let's run a small example of this using the bootstrapping functions in `BioPython`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CLUSTAL X (1.81) multiple sequence alignment\n",
+ "\n",
+ "\n",
+ "8 GAAGAGACAC\n",
+ "7 GGGGGAGCGC\n",
+ "0 GCCACAGCGC\n",
+ "3 ACCACAGUGU\n",
+ "6 CCCACAGUGU\n",
+ "9 CCCACUAGAG\n",
+ "1 CCCUCUCGCG\n",
+ "2 CCCUCUCGCG\n",
+ "4 CUUUUUCGCG\n",
+ "5 CUUUUUCGCG\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "CLUSTAL X (1.81) multiple sequence alignment\n",
+ "\n",
+ "\n",
+ "8 GGAUUUCUUA\n",
+ "7 GAGCCCCCCG\n",
+ "0 AAGGGGCGGG\n",
+ "3 AAGGGGUGGG\n",
+ "6 AAGGGGUGGG\n",
+ "9 AUAUUUGUUA\n",
+ "1 UUCUUUGUUC\n",
+ "2 UUCUUUGUUC\n",
+ "4 UUCUUUGUUC\n",
+ "5 UUCUUUGUUC\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "CLUSTAL X (1.81) multiple sequence alignment\n",
+ "\n",
+ "\n",
+ "8 UCUUGAGAUC\n",
+ "7 CCCGGGGGGC\n",
+ "0 GCGAGGGCAC\n",
+ "3 GUGCAGACCU\n",
+ "6 GUGCCGCCCU\n",
+ "9 UGUACACCAG\n",
+ "1 UGUGCCCCGG\n",
+ "2 UGUGCCCCGG\n",
+ "4 UGUGCCCUGG\n",
+ "5 UGUGCCCUGG\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "CLUSTAL X (1.81) multiple sequence alignment\n",
+ "\n",
+ "\n",
+ "8 GGUGCGCAUG\n",
+ "7 GACGCAUGGG\n",
+ "0 AAGGUAAGAA\n",
+ "3 AAGAUAUGCA\n",
+ "6 AAGCUAUGCA\n",
+ "9 AUUCUUAAAA\n",
+ "1 UUUCAUACGU\n",
+ "2 UUUCAUACGU\n",
+ "4 UUUCAUACGU\n",
+ "5 UUUCAUACGU\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "CLUSTAL X (1.81) multiple sequence alignment\n",
+ "\n",
+ "\n",
+ "8 GCUAGGAACC\n",
+ "7 GCGGGGGGCU\n",
+ "0 AUACGGGGCA\n",
+ "3 AUCCAAGGUU\n",
+ "6 AUCCCCGGUU\n",
+ "9 AUACCCAAGA\n",
+ "1 UAGCCCCCGA\n",
+ "2 UAGCCCCCGA\n",
+ "4 UAGUCCCCGA\n",
+ "5 UAGUCCCCGA\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from Bio.Phylo.Consensus import *\n",
+ "\n",
+ "#open our alignment file.\n",
+ "with open('aln.clustal', 'r') as align:\n",
+ " aln = AlignIO.read(align, 'clustal')\n",
+ "\n",
+ "#take 5 bootstrap samples from our alignment\n",
+ "bootstraps = bootstrap(aln,5)\n",
+ "\n",
+ "#let's print each new alignment in clustal format. you should see 5 different alignments.\n",
+ "for b in bootstraps:\n",
+ " print(b.format('clustal'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Z+/evSftd+DAAT777DNef/11iouLWb58OdnZ2R5ULCLSdG1yhHAqqampnHPOOXTs2JELL7yw/vXCwsL6xfBycnLo378/AOeccw6pqalAMBA++ugjXnnlFZxzdO7cmS5dupCTk8OQIUPq32v79u2MGjWK1NRUhg0bxq233srw4cOj2EsRkebzZKZyU2mmsohI08XFTGUREYk9CRMIzz//PAMHDiQrK4upU6d6XY6ISMxJiEDYvXs3U6ZMYcWKFWzevJnPPvuMFStWeF2WiEhMSYhA+PDDD7nooouou9HOtddey+LFiz2uSkQktiREIFx44YVs3boVv99PIBBgyZIlfPzxx16XJSISUxListOvfvWrzJo1i1tuuYWzzjqLyy67jA8++MDrskREYkqbDISuXbue9NqIESMYMWIEEFybqLHZzCIiiSYhDhkB7NixA4AvvviCp556ivHjx3tckYhIbGmTI4RTmTRpEhs2bACCK51mZGR4XJGISGxJmECou+eBiIicWsIcMhIRkTNTIIiICKBAEBGREAWCiIgACgQREQlRIIiICKBAEBGREAWCiIgACgQREQlRIIiICKBAEBGREAWCiIgACRIIBw8e5Fvf+hYXX3wxWVlZ/PCHP/S6JBGRmONJIJjZf5jZZjPbZGYLzKxTpNt86KGH2LJlC+vXr2f16tX86U9/inSTIiJxJeqBYGYpwANAnnMuG0gC/i2SbXbu3JmrrroKgA4dOpCbm0t1dXUkmxQRiTteHTJqB3zFzNoBnYFPo9Xwnj17eOWVV7jmmmui1aSISFyI+g1ynHOfmNn/Az4CDgHLnXPLT9zPzCYCEwH69u3bpDZycnJO+XogEGDs2LE88MADnH/++U0tXUSkTfPikNFXgRuBdKAP0MXMxp24n3NujnMuzzmXl5yc3OJ209LSuOOOO7jooouYPHlyi9/vdJ544gmysrLIzs5m7NixHD58OGJtiYi0Ji8OGV0LVDnndjrnaoAXgcsi3egXX3zBvn37mD59ekTePxAI8Mknn/DrX/+a8vJyNm3aRG1tLQsXLoxIeyIirc2LQPgIuMTMOpuZAdcA70eywerqavbt20dFRQXZ2dl06tSJgoICsrKyKCoq4tChQwAUFhYydepU8vPzycjIYNWqVQDU1tYyZcoUhgwZwsCBA5k9ezYAJSUlFBQUMHLkSPr37w8E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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#now we want to use the bootstrapping to make new trees based on the new samples. we'll go back to making UPGMA trees.\n",
+ "\n",
+ "#start a calculator that uses sequence identity to calculate differences\n",
+ "calculator = DistanceCalculator('identity')\n",
+ "#start a distance tree constructor object \n",
+ "constructor = DistanceTreeConstructor(calculator)\n",
+ "#generate 5 bootstrap UPGMA trees\n",
+ "trees = bootstrap_trees(aln, 5, constructor)\n",
+ "\n",
+ "#let's look at the trees. (if you have few samples, short sequences the trees might look very similar)\n",
+ "for t in trees:\n",
+ " Phylo.draw(t)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#biopython gives us a useful function that puts all this together by bootstrapping trees and making a 'consensus' tree.\n",
+ "consensus_tree = bootstrap_consensus(aln, 100, constructor, majority_consensus)\n",
+ "Phylo.draw(consensus_tree)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "*Exercise 3. T-tests*\n",
+ "\n",
+ "Similarly to the $\\chi^{2}$ test we saw for testing deviations from HW equilibrium, we can use a T-test to compare differences in means between two independent samples. We can use this to revisit a the first programming question in the exercsies section. Does mutation rate and population size have an effect on the fitness of populations? We can translate this question to, is there a difference in the mean base pair distance between populations under different mutation and population size regimes?\n",
+ "\n",
+ "Scipy has a very useful function that implements the T-test called `scipy.stats.ttest_ind`. Run two independent simulations (with different mutation rates) and compute the difference in mean bp distance between the two at their final generation. Store the populations in two different variables. Give a list of `bp_distance_1` values for each memeber of the population to `ttest_ind()`. \n",
+ "\n",
+ "Make sure to read teh `ttest_ind()` documentation, particularly about the argumetn `equal_var`. What should we set it to?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Ttest_indResult(statistic=1.3671266704990508, pvalue=0.17188793847221653)"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import collections\n",
+ "\n",
+ "target = \"..(((....).))\"\n",
+ "\n",
+ "#run two simulations\n",
+ "hi_mut_pop, hi_mut_stats = evolve(target, generations=5, pop_size=1000, mutation_rate=0.5)\n",
+ "lo_mut_pop, hi_mut_stats = evolve(target, generations=5, pop_size=1000, mutation_rate=0.05)\n",
+ "\n",
+ "#store lits of base pair distances for each population at last generation.\n",
+ "hi_bps = [p.bp_distance_1 for p in hi_mut_pop[-1]]\n",
+ "lo_bps = [p.bp_distance_1 for p in lo_mut_pop[-1]]\n",
+ "\n",
+ "#run the \n",
+ "stats.ttest_ind(hi_bps, lo_bps, equal_var=False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Bonus! (difficult programming exercise)\n",
+ "1. *Nussinov Algorithm (Only try this if you are feeling brave and are done with the other exercises or are interested in getting a taste of Computer Science. It is beyond the scope of this workshop.)*\n",
+ "\n",
+ "There are several approaches for solving this problem, we will look at the simplest one here which is known as the Nussinov Algorithm. This algorithm is a popular example of a class of algorithms know as dynamic programming algorithms. The main idea behind these algorithms is that we can break down the problem into many subproblems which are easier to compute than the full problem. Once we have obtained the solution for the subproblems, we can retrieve the solution to the full problem by doing something called a backtrace (more on the backtrace later). \n",
+ "\n",
+ "Here, the problem is obtaining the optimal pairing on a string of nucleotides. In order to know how good our structure is, we assign a score to it. One possible scoring scheme could be adding 1 to the score per paired set of nucleotides, and 0 otherwise. So in other words, we want a pairing that will give us the highest possible score. We can write this quantity as $OPT(i, j)$ where $i$ and $j$ are the indices of the sequence between which we obtain the pairing score. Our algorithm is therefore going to compute a folding score for all substrings bound by $i$ and $j$ and store the value in what is known as a dynamic programming table. Our dynamic programming table will be a $N$ x $N$ array where $N$ is the length of our sequence. So now that we have a way of measuring how good a structure is, we need a way to evaluate scores given a subsequence. To do this, we set some rules on the structure of an RNA sequence:\n",
+ "\n",
+ "\n",
+ "If $i$ and $j$ form a pair:\n",
+ "1. The pair $i$ and $j$ must form a valid watson-crick pair.\n",
+ "2. $i < j-4$. This ensures that bonding is not happening between positions that are too close to each other, which would produce steric clashes.\n",
+ "3. If pair $(i,j)$ and $(k, l)$ are in the structure, then $i < k < j < l$. This ensures that there is no crossing over of pairs which would result in pseudoknots.\n",
+ "4. No base appears in more than one pair.\n",
+ "\n",
+ "Using these rules we can begin to build our algorithm. The first part of our algorithm needs to take as input indices $i$ and $j$ and return the value $OPT(i,j)$ which is the optimal score of a structure between $i$ and $j$. We start by thinking about values of $i$ and $j$ for which we can immediately know the solution, this is known as a 'base case'. This is a case where the solution is known and no further recursion is required. Once the algorithm reaches the base case, it can return a solution and propagate it upward to the first recursive call. So once we have reached $i$ and $j$ that are too close to form a structure (rule number 2), we know that the score is 0. \n",
+ "\n",
+ "Otherwise, we must weigh the possibility of forming a pair or not forming a pair. If $i$ and $j$ are unpaired, then $OPT(i,j)$ is just $OPT(i, j-1)$ since the score will not increase for unpaired indices. \n",
+ "\n",
+ "The other case is that $i$ is paired to some index $t$ on the interval $[i,j]$. We then add 1 to the score and consider the structure formed before and after the pairing between $i$ and $t$. We can write these two cases as $OPT(i, t-1)$ and $OPT(t+1, j)$. But how do we know which $t$ to pair $i$ with? Well we simply try all possible values of $t$ within the allowed range and choose the best one. \n",
+ "\n",
+ "All of this can be summed up as follows:\n",
+ "\n",
+ "$$ OPT(i,j) = max\\begin{cases}\n",
+ " OPT(i, j-1) \\quad \\text{If $i$ and $j$ are not paired with each other.}\\\\\n",
+ " max(1 + OPT(i, t-1) + OPT(t+1, j)) \\quad \\text{Where we try all values of $t$ < j - 4}\n",
+ " \\end{cases}$$\n",
+ "\n",
+ "\n",
+ "We can now use this recursion to fill our dynamic programming table. Once we have filled the table with scores, we can retrieve the optimal folding by a process called backtracking. We won't go into detail on how this works, but the main idea is that we can start by looking at the entry containing the score for the full sequence $OPT[0][N]$. We can then look at adjacent entries and deduce which case (pairing or not pairing) resulted in the current value. We can continue like this for the full table until we have retrieved the full structure."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "('ACCCGAUGUUAUAUAUACCU', '(...(..(((....).))))')\n"
+ ]
+ }
+ ],
+ "source": [
+ "min_loop_length = 4\n",
+ "\n",
+ "def pair_check(tup):\n",
+ " if tup in [('A', 'U'), ('U', 'A'), ('C', 'G'), ('G', 'C')]:\n",
+ " return True\n",
+ " return False\n",
+ "\n",
+ "def OPT(i,j, sequence):\n",
+ " \"\"\" returns the score of the optimal pairing between indices i and j\"\"\"\n",
+ " #base case: no pairs allowed when i and j are less than 4 bases apart\n",
+ " if i >= j-min_loop_length:\n",
+ " return 0\n",
+ " else:\n",
+ " #i and j can either be paired or not be paired, if not paired then the optimal score is OPT(i,j-1)\n",
+ " unpaired = OPT(i, j-1, sequence)\n",
+ "\n",
+ " #check if j can be involved in a pairing with a position t\n",
+ " pairing = [1 + OPT(i, t-1, sequence) + OPT(t+1, j-1, sequence) for t in range(i, j-4)\\\n",
+ " if pair_check((sequence[t], sequence[j]))]\n",
+ " if not pairing:\n",
+ " pairing = [0]\n",
+ " paired = max(pairing)\n",
+ "\n",
+ "\n",
+ " return max(unpaired, paired)\n",
+ "\n",
+ "\n",
+ "def traceback(i, j, structure, DP, sequence):\n",
+ " #in this case we've gone through the whole sequence. Nothing to do.\n",
+ " if j <= i:\n",
+ " return\n",
+ " #if j is unpaired, there will be no change in score when we take it out, so we just recurse to the next index\n",
+ " elif DP[i][j] == DP[i][j-1]:\n",
+ " traceback(i, j-1, structure, DP, sequence)\n",
+ " #hi\n",
+ " else:\n",
+ " #try pairing j with a matching index k to its left.\n",
+ " for k in [b for b in range(i, j-min_loop_length) if pair_check((sequence[b], sequence[j]))]:\n",
+ " #if the score at i,j is the result of adding 1 from pairing (j,k) and whatever score\n",
+ " #comes from the substructure to its left (i, k-1) and to its right (k+1, j-1)\n",
+ " if k-1 < 0:\n",
+ " if DP[i][j] == DP[k+1][j-1] + 1:\n",
+ " structure.append((k,j))\n",
+ " traceback(k+1, j-1, structure, DP, sequence)\n",
+ " break\n",
+ " elif DP[i][j] == DP[i][k-1] + DP[k+1][j-1] + 1:\n",
+ " #add the pair (j,k) to our list of pairs\n",
+ " structure.append((k,j))\n",
+ " #move the recursion to the two substructures formed by this pairing\n",
+ " traceback(i, k-1, structure, DP, sequence)\n",
+ " traceback(k+1, j-1, structure, DP, sequence)\n",
+ " break\n",
+ "\n",
+ "def write_structure(sequence, structure):\n",
+ " dot_bracket = [\".\" for _ in range(len(sequence))]\n",
+ " for s in structure:\n",
+ " dot_bracket[min(s)] = \"(\"\n",
+ " dot_bracket[max(s)] = \")\"\n",
+ " return \"\".join(dot_bracket)\n",
+ "\n",
+ "\n",
+ "#initialize matrix with zeros where can't have pairings\n",
+ "def initialize(N):\n",
+ " #NxN matrix that stores the scores of the optimal pairings.\n",
+ " DP = np.empty((N,N))\n",
+ " DP[:] = np.NAN\n",
+ " for k in range(0, min_loop_length):\n",
+ " for i in range(N-k):\n",
+ " j = i + k\n",
+ " DP[i][j] = 0\n",
+ " return DP\n",
+ "\n",
+ "def nussinov(sequence):\n",
+ " N = len(sequence)\n",
+ " DP = initialize(N)\n",
+ " structure = []\n",
+ "\n",
+ " #fill the DP matrix\n",
+ " for k in range(min_loop_length, N):\n",
+ " for i in range(N-k):\n",
+ " j = i + k\n",
+ " DP[i][j] = OPT(i,j, sequence)\n",
+ "\n",
+ " #copy values to lower triangle to avoid null references\n",
+ " for i in range(N):\n",
+ " for j in range(0, i):\n",
+ " DP[i][j] = DP[j][i]\n",
+ "\n",
+ "\n",
+ " traceback(0,N-1, structure, DP, sequence)\n",
+ " return (sequence, write_structure(sequence, structure))\n",
+ "\n",
+ "print(nussinov(\"ACCCGAUGUUAUAUAUACCU\"))"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "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.6.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/data/TestEntryLoad1.ipynb b/src/test/data/TestEntryLoad1.ipynb
new file mode 100644
index 00000000..87fe5662
--- /dev/null
+++ b/src/test/data/TestEntryLoad1.ipynb
@@ -0,0 +1,82 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "2+2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$$\\Gamma$$\n"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Latex object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%%latex\n",
+ "$$\\Gamma$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Test Entry"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Text"
+ ]
+ }
+ ],
+ "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.6.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/src/test/data/TestEntryLoad2.ipynb b/src/test/data/TestEntryLoad2.ipynb
new file mode 100644
index 00000000..89c37d28
--- /dev/null
+++ b/src/test/data/TestEntryLoad2.ipynb
@@ -0,0 +1,72 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 0,
+ "metadata": {
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ans = 4\n"
+ ]
+ }
+ ],
+ "source": "2+2"
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "cantor": {
+ "text_entry_content": "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\np, li { white-space: pre-wrap; }\n</style></head><body style=\" font-family:'monospace'; font-size:12pt; font-weight:400; font-style:normal;\">\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Text entry</p></body></html>"
+ }
+ },
+ "source": [
+ "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n",
+ "p, li { white-space: pre-wrap; }\n",
+ "</style></head><body style=\" font-family:'monospace'; font-size:12pt; font-weight:400; font-style:normal;\">\n",
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Text entry</p></body></html>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ },
+ "source": "#### Markdown entry"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "cantor": {
+ "latex_entry": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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"
+ },
+ "metadata": {
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%%latex\n",
+ "\\LaTeX\\ entry"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Octave",
+ "language": "Octave",
+ "name": "octave"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/data/TestMarkdownAttachment.ipynb b/src/test/data/TestMarkdownAttachment.ipynb
new file mode 100644
index 00000000..6adacae4
--- /dev/null
+++ b/src/test/data/TestMarkdownAttachment.ipynb
@@ -0,0 +1,77 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "2+2"
+ ]
+ },
+ {
+ "attachments": {
+ "CantorLogo.png": {
+ "image/png": "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"
+ }
+ },
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![CantorLogo.png](attachment:CantorLogo.png)\n",
+ "![CantorLogo.png](attachment:CantorLogo.png)"
+ ]
+ },
+ {
+ "attachments": {
+ "CantorLogo.png": {
+ "image/png": "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"
+ }
+ },
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![CantorLogo.png](attachment:CantorLogo.png)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "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",
+ "version": "3.6.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/src/test/data/TestNotebookWithJson.ipynb b/src/test/data/TestNotebookWithJson.ipynb
new file mode 100644
index 00000000..f071ca34
--- /dev/null
+++ b/src/test/data/TestNotebookWithJson.ipynb
@@ -0,0 +1,103 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import json\n",
+ "import uuid\n",
+ "from IPython.display import display_javascript, display_html, display\n",
+ "\n",
+ "class RenderJSON(object):\n",
+ " def __init__(self, json_data):\n",
+ " if isinstance(json_data, dict) or isinstance(json_data, list):\n",
+ " self.json_str = json.dumps(json_data)\n",
+ " else:\n",
+ " self.json_str = json_data\n",
+ " self.uuid = str(uuid.uuid4())\n",
+ "\n",
+ " def _ipython_display_(self):\n",
+ " display_html('<div id=\"{}\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>'.format(self.uuid), raw=True)\n",
+ " display_javascript(\"\"\"\n",
+ " require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n",
+ " renderjson.set_show_to_level(2);\n",
+ " document.getElementById('%s').appendChild(renderjson(%s))\n",
+ " });\n",
+ " \"\"\" % (self.uuid, self.json_str), raw=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div id=\"bb6d9031-c990-4aee-849e-6d697430777c\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "\n",
+ " require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n",
+ " renderjson.set_show_to_level(2);\n",
+ " document.getElementById('bb6d9031-c990-4aee-849e-6d697430777c').appendChild(renderjson([{\"a\": 1}, {\"b\": 2, \"in1\": {\"key\": \"value\"}}]))\n",
+ " });\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "RenderJSON([\n",
+ " {\n",
+ " \"a\": 1\n",
+ " }, \n",
+ " {\n",
+ " \"b\": 2,\n",
+ " \"in1\": {\n",
+ " \"key\": \"value\"\n",
+ " }\n",
+ " }\n",
+ "])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "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",
+ "version": "3.6.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/src/test/data/TestNotebookWithModJson.ipynb b/src/test/data/TestNotebookWithModJson.ipynb
new file mode 100644
index 00000000..412bd60e
--- /dev/null
+++ b/src/test/data/TestNotebookWithModJson.ipynb
@@ -0,0 +1,106 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import json\n",
+ "import uuid\n",
+ "from IPython.display import display_javascript, display_html, display\n",
+ "\n",
+ "class RenderJSON(object):\n",
+ " def __init__(self, json_data):\n",
+ " if isinstance(json_data, dict) or isinstance(json_data, list):\n",
+ " self.json_str = json.dumps(json_data)\n",
+ " else:\n",
+ " self.json_str = json_data\n",
+ " self.uuid = str(uuid.uuid4())\n",
+ "\n",
+ " def _ipython_display_(self):\n",
+ " display_html('<div id=\"{}\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>'.format(self.uuid), raw=True)\n",
+ " display_javascript(\"\"\"\n",
+ " require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n",
+ " renderjson.set_show_to_level(2);\n",
+ " document.getElementById('%s').appendChild(renderjson(%s))\n",
+ " });\n",
+ " \"\"\" % (self.uuid, self.json_str), raw=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div id=\"bb6d9031-c990-4aee-849e-6d697430777c\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "\n",
+ " require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n",
+ " renderjson.set_show_to_level(2);\n",
+ " document.getElementById('bb6d9031-c990-4aee-849e-6d697430777c').appendChild(renderjson([{\"a\": 1}, {\"b\": 2, \"in1\": {\"key\": \"value\"}}]))\n",
+ " });\n",
+ " "
+ ],
+ "text/plain": [
+ "<__main__.RenderJSON at 0x7fa1599c6828>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "RenderJSON([\n",
+ " {\n",
+ " \"a\": 1\n",
+ " }, \n",
+ " {\n",
+ " \"b\": 2,\n",
+ " \"in1\": {\n",
+ " \"key\": \"value\"\n",
+ " }\n",
+ " }\n",
+ "])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "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",
+ "version": "3.6.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/src/test/data/TestResultsLoad.ipynb b/src/test/data/TestResultsLoad.ipynb
new file mode 100644
index 00000000..177c5ff2
--- /dev/null
+++ b/src/test/data/TestResultsLoad.ipynb
@@ -0,0 +1,119 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from IPython.display import Latex"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Hello world\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"Hello world\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "Graphics object consisting of 1 graphics primitive"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot(x^2, (x,0,5))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<img src=\"data:image/gif;base64,R0lGODlhEANIAvfNAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAoKCgsLCwwMDA4ODg8PDxAQEBERERISEhQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB4eHh8fHyAgICEhISMjIyQkJCUlJScnJygoKCkpKSsrKywsLC4uLi8vLzAwMDExMTIyMjMzMzQ0NDY2Njg4ODk5OTo6Ojs7Ozw8PD4+Pj8/P0FBQUJCQkNDQ0REREVFRUZGRkdHR0lJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFRUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGNjY2VlZWZmZmdnZ2hoaGlpaWtra2xsbG1tbW5ubm9vb3BwcHFxcXNzc3V1dXZ2dnd3d3h4eHl5eXt7e3x8fH19fX9/f4GBgYKCgoODg4WFhYaGhoeHh4iIiIuLi4yMjI6Ojo+Pj5CQkJGRkZOTk5SUlJaWlpmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqSkpKWlpaampqenp6ioqKmpqaqqqq2tra6urq+vr7CwsLGxsbOzs7W1tba2tri4uLm5ubu7u7+/v8DAwMHBwcLCwsPDw8XFxcbGxsfHx8jIyMnJycrKysvLy83Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tjY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Hh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09Pb29vf39/n5+fr6+vz8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAgUAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEANIAgAI/gCbCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jzCmUmjJnev4ADCx4sUhgAYYQTK17MeLFhxI0jS55MOe3jypgza94c9TLnz6BDi77pebTp06hTR7T0wwKARQdLq55Nu/ZoSGQUvY592Lbv38Ar7zYoO7jx48jtDi9YPLnz59DLLifYPLr169ipTh9YPbv37+CH/m4XaHgCBRVAgBAKz769+5rjm3V/T7++/Y/ERIkCEEeULOa93SfggARaRAkACCL4BICQFejggxBGNF+EFFbo4IQWZqihexhu6OGH1nUI4ogkAidiiSimeNqJKrboYmYsvijjjIrFSOONOOJlY4489ujWjj4GKSRZQA5p5JFaFYnkkkxCpWSTUEZp1JNSVmklT1ReqeWWMmXJ5ZdgouRlmGSW6dGYZqapJkVorunmmwq1CeecdMpJ551r2onnnmTqyeefWxrGg3qAFmooeQEeqiiffi7qqJCNPippjpFOaqmMlV6qaYqZbuopiJ1+KmqGoY5qKoSlnqrqgKmu6ip9/q2+Kmt4sc5qK3a13qrrc7nu6qtxvf4qrG3BDmtsasUeq6xoyS7r7GbNPistZdFOay1j1V6r7WDZbuutXt1+K25d4Y5rLlzlnqvuWumu665ZghL67ryotUvvvV3Zi+++WOnL779T+QvwwE4JTPDBSRmM8MJEKczwwz85DPHEOklM8cU1WYzxxjBpzPHHK3kM8sgmiUzyySGZjPLKHKnM8ssXuQzzzBLJTPPNDdmM884I6czzz9wlCvTQR/lM9M5GH31z0krPzHTTLz8N9cpST31yvOtZrTVpQm/tdZddfy12S1WPfXHZZk+MdtoPr832wm6/fXDccg9Md93/3o33/r56731v337PC3jg7g5OuLqGH25u4oqLy3jj3j4OubaST25t5ZZLi3nmzm7OubKef25s6KILS3rpvp6Ouq5Yry666q7PCnvsr85O+6q2335q7rqPynvvn/4O/KbCD39p8cZPinzyjy7P/KLOP39o9NIXSn31f16P/Z7ab39n997PCX74b45Pfp5hn3+yHRsc0EInBvmRIAAH8Nag+igbYkAfqEjhgC4F8QMDcEHAXNgPfyxrwRUEsowLtCGADViI+RCII2QMADYCcUIQAjgADWQgCKc4IAVJ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\"/>"
+ ],
+ "text/plain": [
+ "Animation with 20 frames"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sines = [plot(c*sin(x), (-2*pi,2*pi), color=Color(c,0,0), ymin=-1, ymax=1) for c in sxrange(0,1,.05)]\n",
+ "a = animate(sines)\n",
+ "a.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$$\\Gamma$$"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Latex object>"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Latex(\"$$\\Gamma$$\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "SageMath 8.1",
+ "language": "",
+ "name": "sagemath"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.15+"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/src/test/data/Transformation2D.ipynb b/src/test/data/Transformation2D.ipynb
new file mode 100644
index 00000000..1b88e9f0
--- /dev/null
+++ b/src/test/data/Transformation2D.ipynb
@@ -0,0 +1,1254 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Rigid-body transformations in a plane (2D)\n",
+ "\n",
+ "> Marcos Duarte \n",
+ "> Laboratory of Biomechanics and Motor Control ([http://demotu.org/](http://demotu.org/)) \n",
+ "> Federal University of ABC, Brazil"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The kinematics of a rigid body is completely described by its pose, i.e., its position and orientation in space (and the corresponding changes are translation and rotation). The translation and rotation of a rigid body are also known as rigid-body transformations (or simply, rigid transformations).\n",
+ "\n",
+ "Remember that in physics, a [rigid body](https://en.wikipedia.org/wiki/Rigid_body) is a model (an idealization) for a body in which deformation is neglected, i.e., the distance between every pair of points in the body is considered constant. Consequently, the position and orientation of a rigid body can be completely described by a corresponding coordinate system attached to it. For instance, two (or more) coordinate systems can be used to represent the same rigid body at two (or more) instants or two (or more) rigid bodies in space.\n",
+ "\n",
+ "Rigid-body transformations are used in motion analysis (e.g., of the human body) to describe the position and orientation of each segment (using a local (anatomical) coordinate system defined for each segment) in relation to a global coordinate system fixed at the laboratory. Furthermore, one can define an additional coordinate system called technical coordinate system also fixed at the rigid body but not based on anatomical landmarks. In this case, the position of the technical markers is first described in the laboratory coordinate system, and then the technical coordinate system is calculated to recreate the anatomical landmarks position in order to finally calculate the original anatomical coordinate system (and obtain its unknown position and orientation through time).\n",
+ "\n",
+ "In what follows, we will study rigid-body transformations by looking at the transformations between two coordinate systems. For simplicity, let's first analyze planar (two-dimensional) rigid-body transformations and later we will extend these concepts to three dimensions (where the study of rotations are more complicated)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Affine transformations\n",
+ "\n",
+ "Translation and rotation are two examples of [affine transformations](https://en.wikipedia.org/wiki/Affine_transformation). Affine transformations preserve straight lines, but not necessarily the distance between points. Other examples of affine transformations are scaling, shear, and reflection. The figure below illustrates different affine transformations in a plane. Note that a 3x3 matrix is shown on top of each transformation; these matrices are known as the transformation matrices and are the mathematical representation of the physical transformations. Next, we will study how to use this approach to describe the translation and rotation of a rigid-body. \n",
+ "<br>\n",
+ "<figure><img src='https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/2D_affine_transformation_matrix.svg/360px-2D_affine_transformation_matrix.svg.png' alt='Affine transformations'/> <figcaption><center><i>Figure. Examples of affine transformations in a plane applied to a square (with the letter <b>F</b> in it) and the corresponding transformation matrices (<a href=\"https://en.wikipedia.org/wiki/Affine_transformation\">image from Wikipedia</a>).</i></center></figcaption> </figure>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Translation\n",
+ "\n",
+ "In a two-dimensional space, two coordinates and one angle are sufficient to describe the pose of the rigid body, totalizing three degrees of freedom for a rigid body. Let's see first the transformation for translation, then for rotation, and combine them at last.\n",
+ "\n",
+ "A pure two-dimensional translation of a coordinate system in relation to other coordinate system and the representation of a point in these two coordinate systems are illustrated in the figure below (remember that this is equivalent to describing a translation between two rigid bodies). \n",
+ "<br>\n",
+ "<figure><img src='./../images/translation2D.png' alt='translation 2D'/> <figcaption><center><i>Figure. A point in two-dimensional space represented in two coordinate systems (Global and local), with one system translated.</i></center></figcaption> </figure>\n",
+ "\n",
+ "The position of point $\\mathbf{P}$ originally described in the local coordinate system but now described in the Global coordinate system in vector form is:\n",
+ "\n",
+ "$$ \\mathbf{P_G} = \\mathbf{L_G} + \\mathbf{P_l} $$\n",
+ "\n",
+ "Or for each component:\n",
+ "\n",
+ "$$ \\mathbf{P_X} = \\mathbf{L_X} + \\mathbf{P}_x $$\n",
+ "\n",
+ "$$ \\mathbf{P_Y} = \\mathbf{L_Y} + \\mathbf{P}_y $$\n",
+ "\n",
+ "And in matrix form is:\n",
+ "\n",
+ "$$\n",
+ "\\begin{bmatrix}\n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "\\mathbf{L_X} \\\\\n",
+ "\\mathbf{L_Y} \n",
+ "\\end{bmatrix} +\n",
+ "\\begin{bmatrix}\n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \n",
+ "\\end{bmatrix}\n",
+ "$$\n",
+ "\n",
+ "Because position and translation can be treated as vectors, the inverse operation, to describe the position at the local coordinate system in terms of the Global coordinate system, is simply:\n",
+ "\n",
+ "$$ \\mathbf{P_l} = \\mathbf{P_G} -\\mathbf{L_G} $$\n",
+ "<br>\n",
+ "$$ \\begin{bmatrix}\n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \n",
+ "\\end{bmatrix} - \n",
+ "\\begin{bmatrix}\n",
+ "\\mathbf{L_X} \\\\\n",
+ "\\mathbf{L_Y} \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "From classical mechanics, this transformation is an example of [Galilean transformation](http://en.wikipedia.org/wiki/Galilean_transformation). \n",
+ "\n",
+ "For example, if the local coordinate system is translated by $\\mathbf{L_G}=[2, 3]$ in relation to the Global coordinate system, a point with coordinates $\\mathbf{P_l}=[4, 5]$ at the local coordinate system will have the position $\\mathbf{P_G}=[6, 8]$ at the Global coordinate system:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import the necessary libraries\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([6, 8])"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "LG = np.array([2, 3]) # (Numpy 1D array with 2 elements)\n",
+ "Pl = np.array([4, 5])\n",
+ "PG = LG + Pl\n",
+ "PG"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This operation also works if we have more than one data point (NumPy knows how to handle vectors with different dimensions):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[ 6, 8],\n",
+ " [ 8, 10],\n",
+ " [10, 12]])"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Pl = np.array([[4, 5], [6, 7], [8, 9]]) # 2D array with 3 rows and two columns\n",
+ "PG = LG + Pl\n",
+ "PG"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Rotation\n",
+ "\n",
+ "A pure two-dimensional rotation of a coordinate system in relation to other coordinate system and the representation of a point in these two coordinate systems are illustrated in the figure below (remember that this is equivalent to describing a rotation between two rigid bodies). The rotation is around an axis orthogonal to this page, not shown in the figure (for a three-dimensional coordinate system the rotation would be around the $\\mathbf{Z}$ axis). \n",
+ "<br>\n",
+ "<figure><img src='./../images/rotation2D.png' alt='rotation 2D'/> <figcaption><center><i>Figure. A point in the two-dimensional space represented in two coordinate systems (Global and local), with one system rotated in relation to the other around an axis orthogonal to both coordinate systems.</i></center></figcaption> </figure>\n",
+ "\n",
+ "Consider we want to express the position of point $\\mathbf{P}$ in the Global coordinate system in terms of the local coordinate system knowing only the coordinates at the local coordinate system and the angle of rotation between the two coordinate systems. \n",
+ "\n",
+ "There are different ways of deducing that, we will see three of these methods next. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 1. Using trigonometry\n",
+ "\n",
+ "From figure below, the coordinates of point $\\mathbf{P}$ in the Global coordinate system can be determined finding the sides of the triangles marked in red. \n",
+ "<br>\n",
+ "<figure><img src='./../images/rotation2Db.png' alt='rotation 2D'/> <figcaption><center><i>Figure. The coordinates of a point at the Global coordinate system in terms of the coordinates of this point at the local coordinate system.</i></center></figcaption> </figure>\n",
+ "\n",
+ "Then: \n",
+ "\n",
+ "$$ \\mathbf{P_X} = \\mathbf{P}_x \\cos \\alpha - \\mathbf{P}_y \\sin \\alpha $$\n",
+ "\n",
+ "$$ \\mathbf{P_Y} = \\mathbf{P}_x \\sin \\alpha + \\mathbf{P}_y \\cos \\alpha $$ \n",
+ "\n",
+ "The equations above can be expressed in matrix form:\n",
+ "\n",
+ "$$\n",
+ "\\begin{bmatrix} \n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} \\begin{bmatrix}\n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "Or simply:\n",
+ "\n",
+ "$$ \\mathbf{P_G} = \\mathbf{R_{Gl}}\\mathbf{P_l} $$\n",
+ "\n",
+ "Where $\\mathbf{R_{Gl}}$ is the rotation matrix that rotates the coordinates from the local to the Global coordinate system:\n",
+ "\n",
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "So, given any position at the local coordinate system, with the rotation matrix above we are able to determine the position at the Global coordinate system. Let's check that before looking at other methods to obtain this matrix. \n",
+ "\n",
+ "For instance, consider a local coordinate system rotated by $45^o$ in relation to the Global coordinate system, a point in the local coordinate system with position $\\mathbf{P_l}=[1, 1]$ will have the following position at the Global coordinate system:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[0. ],\n",
+ " [1.4142]])"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "RGl = np.array([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n",
+ "Pl = np.array([[1, 1]]).T # transpose the array for correct matrix multiplication\n",
+ "PG = np.dot(RGl, Pl) # the function dot() is used for matrix multiplication of arrays\n",
+ "np.around(PG, 4) # round the number due to floating-point arithmetic errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We have rounded the number to 4 decimal places due to [floating-point arithmetic errors in the computation](http://floating-point-gui.de). \n",
+ "\n",
+ "And if we have the points [1,1], [0,1], [1,0] at the local coordinate system, their positions at the Global coordinate system are:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[ 0. , -0.7071, 0.7071],\n",
+ " [ 1.4142, 0.7071, 0.7071]])"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Pl = np.array([[1, 1], [0, 1], [1, 0]]).T # transpose array for matrix multiplication\n",
+ "PG = np.dot(RGl, Pl) # the function dot() is used for matrix multiplication with arrays\n",
+ "np.around(PG, 4) # round the number due to floating point arithmetic errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We have done all the calculations using the array function in NumPy. A [NumPy array is different than a matrix](http://www.scipy.org/NumPy_for_Matlab_Users), if we want to use explicit matrices in NumPy, the calculation above will be:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[ 0. , -0.7071, 0.7071],\n",
+ " [ 1.4142, 0.7071, 0.7071]])"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "RGl = np.mat([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n",
+ "Pl = np.mat([[1, 1], [0,1], [1, 0]]).T # 2x3 matrix\n",
+ "PG = RGl*Pl # matrix multiplication in NumPy\n",
+ "np.around(PG, 4) # round the number due to floating point arithmetic errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Both array and matrix types work in NumPy, but you should choose only one type and not mix them; the array is preferred because it is [the standard vector/matrix/tensor type of NumPy](http://www.scipy.org/NumPy_for_Matlab_Users)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 2. Using direction cosines\n",
+ "\n",
+ "Another way to determine the rotation matrix is to use the concept of direction cosine. \n",
+ "\n",
+ "> Direction cosines are the cosines of the angles between any two vectors. \n",
+ "\n",
+ "For the present case with two coordinate systems, they are the cosines of the angles between each axis of one coordinate system and each axis of the other coordinate system. The figure below illustrates the directions angles between the two coordinate systems, expressing the local coordinate system in terms of the Global coordinate system. \n",
+ "<br>\n",
+ "<figure><img src='./../images/directioncosine2D.png' alt='direction angles 2D'/> <figcaption><center><i>Figure. Definition of direction angles at the two-dimensional space.</i></center></figcaption> </figure> \n",
+ "<br>\n",
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n",
+ "\\cos\\mathbf{X}x & \\cos\\mathbf{X}y \\\\\n",
+ "\\cos\\mathbf{Y}x & \\cos\\mathbf{Y}y \n",
+ "\\end{bmatrix} = \n",
+ "\\begin{bmatrix}\n",
+ "\\cos(\\alpha) & \\cos(90^o+\\alpha) \\\\\n",
+ "\\cos(90^o-\\alpha) & \\cos(\\alpha)\n",
+ "\\end{bmatrix} = \n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} $$ \n",
+ "\n",
+ "The same rotation matrix as obtained before.\n",
+ "\n",
+ "Note that the order of the direction cosines is because in our convention, the first row is for the $\\mathbf{X}$ coordinate and the second row for the $\\mathbf{Y}$ coordinate (the outputs). For the inputs, we followed the same order, first column for the $\\mathbf{x}$ coordinate, second column for the $\\mathbf{y}$ coordinate."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 3. Using a basis\n",
+ "\n",
+ "Another way to deduce the rotation matrix is to view the axes of the rotated coordinate system as unit vectors, versors, of a <a href=\"http://en.wikipedia.org/wiki/Basis_(linear_algebra)\">basis</a> as illustrated in the figure below.\n",
+ "\n",
+ "> A basis is a set of linearly independent vectors that can represent every vector in a given vector space, i.e., a basis defines a coordinate system.\n",
+ "\n",
+ "<figure><img src='./../images/basis2D2.png' alt='basis 2D'/> <figcaption><center><i>Figure. Definition of the rotation matrix using a basis at the two-dimensional space.</i></center></figcaption> </figure>\n",
+ "\n",
+ "The coordinates of these two versors at the local coordinate system in terms of the Global coordinate system are:\n",
+ "\n",
+ "$$ \\begin{array}{l l}\n",
+ "\\mathbf{e}_x = \\cos\\alpha\\:\\mathbf{e_X} + \\sin\\alpha\\:\\mathbf{e_Y} \\\\\n",
+ "\\mathbf{e}_y = -\\sin\\alpha\\:\\mathbf{e_X} + \\cos\\alpha\\:\\mathbf{e_Y}\n",
+ "\\end{array}$$\n",
+ "\n",
+ "Note that as unit vectors, each of the versors above should have norm (length) equals to one, which indeed is the case.\n",
+ "\n",
+ "If we express each versor above as different columns of a matrix, we obtain the rotation matrix again: \n",
+ "\n",
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "This means that the rotation matrix can be viewed as the basis of the rotated coordinate system defined by its versors. \n",
+ "\n",
+ "This third way to derive the rotation matrix is in fact the method most commonly used in motion analysis because the coordinates of markers (in the Global/laboratory coordinate system) are what we measure with cameras. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 4. Using the inner (dot or scalar) product between versors\n",
+ "\n",
+ "Yet another way to deduce the rotation matrix is to define it as the dot product between the versors of the bases related to the two coordinate systems:\n",
+ "\n",
+ "$$\n",
+ "\\mathbf{R_{Gl}} = \\begin{bmatrix}\n",
+ "\\mathbf{\\hat{e}_X}\\! \\cdot \\mathbf{\\hat{e}_x} & \\mathbf{\\hat{e}_X}\\! \\cdot \\mathbf{\\hat{e}_y} \\\\\n",
+ "\\mathbf{\\hat{e}_Y}\\! \\cdot \\mathbf{\\hat{e}_x} & \\mathbf{\\hat{e}_Y}\\! \\cdot \\mathbf{\\hat{e}_y} \n",
+ "\\end{bmatrix}\n",
+ "$$ \n",
+ "\n",
+ "By definition:\n",
+ "\n",
+ "$$ \\hat{\\mathbf{e}}_1\\! \\cdot \\hat{\\mathbf{e}}_2 = ||\\hat{\\mathbf{e}}_1|| \\times ||\\hat{\\mathbf{e}}_2||\\cos(e_1,e_2)=\\cos(e_1,e_2)$$\n",
+ "\n",
+ "And the rotation matrix will be equal to the matrix deduced based on the direction cosines."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Local-to-Global and Global-to-local coordinate systems' rotations"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "If we want the inverse operation, to express the position of point $\\mathbf{P}$ in the local coordinate system in terms of the Global coordinate system, the figure below illustrates that using trigonometry. \n",
+ "<br>\n",
+ "<figure><img src='./../images/rotation2Dc.png' alt='rotation 2D'/> <figcaption><center><i>Figure. The coordinates of a point at the local coordinate system in terms of the coordinates at the Global coordinate system.</i></center></figcaption> </figure>\n",
+ "\n",
+ "Then:\n",
+ "\n",
+ "$$ \\mathbf{P}_x = \\;\\;\\mathbf{P_X} \\cos \\alpha + \\mathbf{P_Y} \\sin \\alpha $$\n",
+ "\n",
+ "$$ \\mathbf{P}_y = -\\mathbf{P_X} \\sin \\alpha + \\mathbf{P_Y} \\cos \\alpha $$\n",
+ "\n",
+ "And in matrix form:\n",
+ "\n",
+ "$$\n",
+ "\\begin{bmatrix} \n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & \\sin\\alpha \\\\\n",
+ "-\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} \\begin{bmatrix}\n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "$$ \\mathbf{P_l} = \\mathbf{R_{lG}}\\mathbf{P_G} $$\n",
+ "\n",
+ "Where $\\mathbf{R_{lG}}$ is the rotation matrix that rotates the coordinates from the Global to the local coordinate system (note the inverse order of the subscripts):\n",
+ "\n",
+ "$$ \\mathbf{R_{lG}} = \\begin{bmatrix}\n",
+ "\\cos\\alpha & \\sin\\alpha \\\\\n",
+ "-\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "If we use the direction cosines to calculate the rotation matrix, because the axes didn't change, the cosines are the same, only the order changes, now $\\mathbf{x, y}$ are the rows (outputs) and $\\mathbf{X, Y}$ are the columns (inputs):\n",
+ "\n",
+ "$$ \\mathbf{R_{lG}} = \\begin{bmatrix}\n",
+ "\\cos\\mathbf{X}x & \\cos\\mathbf{Y}x \\\\\n",
+ "\\cos\\mathbf{X}y & \\cos\\mathbf{Y}y \n",
+ "\\end{bmatrix} = \n",
+ "\\begin{bmatrix}\n",
+ "\\cos(\\alpha) & \\cos(90^o-\\alpha) \\\\\n",
+ "\\cos(90^o+\\alpha) & \\cos(\\alpha)\n",
+ "\\end{bmatrix} = \n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & \\sin\\alpha \\\\\n",
+ "-\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "And defining the versors of the axes in the Global coordinate system for a basis in terms of the local coordinate system would also produce this latter rotation matrix.\n",
+ "\n",
+ "The two sets of equations and matrices for the rotations from Global-to-local and local-to-Global coordinate systems are very similar, this is no coincidence. Each of the rotation matrices we deduced, $\\mathbf{R_{Gl}}$ and $\\mathbf{R_{lG}}$, perform the inverse operation in relation to the other. Each matrix is the inverse of the other. \n",
+ "\n",
+ "In other words, the relation between the two rotation matrices means it is equivalent to instead of rotating the local coordinate system by $\\alpha$ in relation to the Global coordinate system, to rotate the Global coordinate system by $-\\alpha$ in relation to the local coordinate system; remember that $\\cos(-\\alpha)=\\cos(\\alpha)$ and $\\sin(-\\alpha)=-\\sin(\\alpha)$."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Rotation of a Vector\n",
+ "\n",
+ "We can also use the rotation matrix to rotate a vector by a given angle around an axis of the coordinate system as shown in the figure below. \n",
+ "<br>\n",
+ "<figure><img src='./../images/rotation2Dvector.png' alt='rotation 2D of a vector'/> <figcaption><center><i>Figure. Rotation of a position vector $\\mathbf{P}$ by an angle $\\alpha$ in the two-dimensional space.</i></center></figcaption> </figure>\n",
+ "\n",
+ "We will not prove that we use the same rotation matrix, but think that in this case the vector position rotates by the same angle instead of the coordinate system. The new coordinates of the vector position $\\mathbf{P'}$ rotated by an angle $\\alpha$ is simply the rotation matrix (for the angle $\\alpha$) multiplied by the coordinates of the vector position $\\mathbf{P}$:\n",
+ "\n",
+ "$$ \\mathbf{P'} = \\mathbf{R}_\\alpha\\mathbf{P} $$\n",
+ "\n",
+ "Consider for example that $\\mathbf{P}=[2,1]$ and $\\alpha=30^o$; the coordinates of $\\mathbf{P'}$ are:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P':\n",
+ " [[1.23205081]\n",
+ " [1.8660254 ]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = np.pi/6\n",
+ "R = np.array([[np.cos(a), -np.sin(a)], [np.sin(a), np.cos(a)]])\n",
+ "P = np.array([[2, 1]]).T\n",
+ "Pl = np.dot(R, P)\n",
+ "print(\"P':\\n\", Pl)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### The rotation matrix\n",
+ "\n",
+ "**[See here for a review about matrix and its main properties](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/Matrix.ipynb)**.\n",
+ "\n",
+ "A nice property of the rotation matrix is that its inverse is the transpose of the matrix (because the columns/rows are mutually orthogonal and have norm equal to one). \n",
+ "This property can be shown with the rotation matrices we deduced:\n",
+ "\n",
+ "$$ \\begin{array}{l l}\n",
+ "\\mathbf{R}\\:\\mathbf{R^T} & = \n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} \n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & \\sin\\alpha \\\\\n",
+ "-\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} \\\\\n",
+ "& = \\begin{bmatrix}\n",
+ "\\cos^2\\alpha+\\sin^2\\alpha & \\cos\\alpha \\sin\\alpha-\\sin\\alpha \\cos\\alpha\\;\\; \\\\\n",
+ "\\sin\\alpha \\cos\\alpha-\\cos\\alpha \\sin\\alpha & \\sin^2\\alpha+\\cos^2\\alpha\\;\\;\n",
+ "\\end{bmatrix} \\\\\n",
+ "& = \\begin{bmatrix}\n",
+ "1 & 0 \\\\\n",
+ "0 & 1 \n",
+ "\\end{bmatrix} \\\\\n",
+ "& = \\mathbf{I} \\\\\n",
+ "\\mathbf{R^{-1}} = \\mathbf{R^T}\n",
+ "\\end{array} $$\n",
+ "\n",
+ "This means that if we have a rotation matrix, we know its inverse. \n",
+ "\n",
+ "The transpose and inverse operators in NumPy are methods of the array:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Orthogonal matrix (RGl):\n",
+ " [[ 0.7071 -0.7071]\n",
+ " [ 0.7071 0.7071]]\n",
+ "Transpose (RGl.T):\n",
+ " [[ 0.7071 0.7071]\n",
+ " [-0.7071 0.7071]]\n",
+ "Inverse (RGl.I):\n",
+ " [[ 0.7071 0.7071]\n",
+ " [-0.7071 0.7071]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "RGl = np.mat([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n",
+ "\n",
+ "print('Orthogonal matrix (RGl):\\n', np.around(RGl, 4))\n",
+ "print('Transpose (RGl.T):\\n', np.around(RGl.T, 4))\n",
+ "print('Inverse (RGl.I):\\n', np.around(RGl.I, 4))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Using the inverse and the transpose mathematical operations, the coordinates at the local coordinate system given the coordinates at the Global coordinate system and the rotation matrix can be obtained by: \n",
+ "\n",
+ "$$ \\begin{array}{l l}\n",
+ "\\mathbf{P_G} = \\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n",
+ "\\\\\n",
+ "\\mathbf{R_{Gl}^{-1}}\\mathbf{P_G} = \\mathbf{R_{Gl}^{-1}}\\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n",
+ "\\\\\n",
+ "\\mathbf{R_{Gl}^{-1}}\\mathbf{P_G} = \\mathbf{I}\\:\\mathbf{P_l} \\implies \\\\\n",
+ "\\\\\n",
+ "\\mathbf{P_l} = \\mathbf{R_{Gl}^{-1}}\\mathbf{P_G} = \\mathbf{R_{Gl}^T}\\mathbf{P_G} \\quad \\text{or}\n",
+ "\\quad \\mathbf{P_l} = \\mathbf{R_{lG}}\\mathbf{P_G}\n",
+ "\\end{array} $$\n",
+ "\n",
+ "Where we referred the inverse of $\\mathbf{R_{Gl}}\\;(\\:\\mathbf{R_{Gl}^{-1}})$ as $\\mathbf{R_{lG}}$ (note the different order of the subscripts). \n",
+ "\n",
+ "Let's show this calculation in NumPy:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rotation matrix (RGl):\n",
+ " [[ 0.7071 -0.7071]\n",
+ " [ 0.7071 0.7071]]\n",
+ "Position at the local coordinate system (Pl):\n",
+ " [[1]\n",
+ " [1]]\n",
+ "Position at the Global coordinate system (PG=RGl*Pl):\n",
+ " [[0. ]\n",
+ " [1.41]]\n",
+ "Position at the local coordinate system using the inverse of RGl (Pl=RlG*PG):\n",
+ " [[1.]\n",
+ " [1.]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "RGl = np.array([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n",
+ "print('Rotation matrix (RGl):\\n', np.around(RGl, 4))\n",
+ "\n",
+ "Pl = np.array([[1, 1]]).T # transpose the array for correct matrix multiplication\n",
+ "print('Position at the local coordinate system (Pl):\\n', Pl)\n",
+ "\n",
+ "PG = np.dot(RGl, Pl) # the function dot() is used for matrix multiplication with arrays\n",
+ "print('Position at the Global coordinate system (PG=RGl*Pl):\\n', np.around(PG,2))\n",
+ "\n",
+ "Pl = np.dot(RGl.T, PG)\n",
+ "print('Position at the local coordinate system using the inverse of RGl (Pl=RlG*PG):\\n', Pl)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**In summary, some of the properties of the rotation matrix are:** \n",
+ "1. The columns of the rotation matrix form a basis of (independent) unit vectors (versors) and the rows are also independent versors since the transpose of the rotation matrix is another rotation matrix. \n",
+ "2. The rotation matrix is orthogonal. There is no linear combination of one of the lines or columns of the matrix that would lead to the other row or column, i.e., the lines and columns of the rotation matrix are independent, orthogonal, to each other (this is property 1 rewritten). Because each row and column have norm equal to one, this matrix is also sometimes said to be orthonormal. \n",
+ "3. The determinant of the rotation matrix is equal to one (or equal to -1 if a left-hand coordinate system was used, but you should rarely use that). For instance, the determinant of the rotation matrix we deduced is $cos\\alpha cos\\alpha - sin\\alpha(-sin\\alpha)=1$.\n",
+ "4. The inverse of the rotation matrix is equals to its transpose.\n",
+ "\n",
+ "**On the different meanings of the rotation matrix:** \n",
+ "- It represents the coordinate transformation between the coordinates of a point expressed in two different coordinate systems. \n",
+ "- It describes the rotation between two coordinate systems. The columns are the direction cosines (versors) of the axes of the rotated coordinate system in relation to the other coordinate system and the rows are also direction cosines (versors) for the inverse rotation. \n",
+ "- It is an operator for the calculation of the rotation of a vector in a coordinate system.\n",
+ "- Rotation matrices provide a means of numerically representing rotations without appealing to angular specification.\n",
+ "\n",
+ "**Which matrix to use, from local to Global or Global to local?** \n",
+ "- A typical use of the transformation is in movement analysis, where there are the fixed Global (laboratory) coordinate system and the local (moving, e.g. anatomical) coordinate system attached to each body segment. Because the movement of the body segment is measured in the Global coordinate system, using cameras for example, and we want to reconstruct the coordinates of the markers at the anatomical coordinate system, we want the transformation leading from the Global coordinate system to the local coordinate system.\n",
+ "- Of course, if you have one matrix, it is simple to get the other; you just have to pay attention to use the right one."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Translation and rotation\n",
+ "\n",
+ "Consider now the case where the local coordinate system is translated and rotated in relation to the Global coordinate system and a point is described in both coordinate systems as illustrated in the figure below (once again, remember that this is equivalent to describing a translation and a rotation between two rigid bodies). \n",
+ "<br>\n",
+ "<figure><img src='./../images/transrot2D.png' alt='translation and rotation 2D'/> <figcaption><center><i>Figure. A point in two-dimensional space represented in two coordinate systems, with one system translated and rotated.</i></center></figcaption> </figure>\n",
+ "\n",
+ "The position of point $\\mathbf{P}$ originally described in the local coordinate system, but now described in the Global coordinate system in vector form is:\n",
+ "\n",
+ "$$ \\mathbf{P_G} = \\mathbf{L_G} + \\mathbf{R_{Gl}}\\mathbf{P_l} $$\n",
+ "\n",
+ "And in matrix form:\n",
+ "\n",
+ "$$ \\begin{bmatrix}\n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix} \\mathbf{L_{X}} \\\\\\ \\mathbf{L_{Y}} \\end{bmatrix} + \n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} \\begin{bmatrix}\n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "This means that we first *disrotate* the local coordinate system and then correct for the translation between the two coordinate systems. Note that we can't invert this order: the point position is expressed in the local coordinate system and we can't add this vector to another vector expressed in the Global coordinate system, first we have to convert the vectors to the same coordinate system.\n",
+ "\n",
+ "If now we want to find the position of a point at the local coordinate system given its position in the Global coordinate system, the rotation matrix and the translation vector, we have to invert the expression above:\n",
+ "\n",
+ "$$ \\begin{array}{l l}\n",
+ "\\mathbf{P_G} = \\mathbf{L_G} + \\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n",
+ "\\\\\n",
+ "\\mathbf{R_{Gl}^{-1}}(\\mathbf{P_G} - \\mathbf{L_G}) = \\mathbf{R_{Gl}^{-1}}\\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n",
+ "\\\\\n",
+ "\\mathbf{P_l} = \\mathbf{R_{Gl}^{-1}}\\left(\\mathbf{P_G}-\\mathbf{L_G}\\right) = \\mathbf{R_{Gl}^T}\\left(\\mathbf{P_G}-\\mathbf{L_G}\\right) \\quad \\text{or} \\quad \\mathbf{P_l} = \\mathbf{R_{lG}}\\left(\\mathbf{P_G}-\\mathbf{L_G}\\right) \n",
+ "\\end{array} $$\n",
+ "\n",
+ "The expression above indicates that to perform the inverse operation, to go from the Global to the local coordinate system, we first translate and then rotate the coordinate system."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Transformation matrix\n",
+ "\n",
+ "It is possible to combine the translation and rotation operations in only one matrix, called the transformation matrix (also referred as homogeneous transformation matrix):\n",
+ "\n",
+ "$$ \\begin{bmatrix}\n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \\\\\n",
+ "1\n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha & \\mathbf{L_{X}} \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha & \\mathbf{L_{Y}} \\\\\n",
+ "0 & 0 & 1\n",
+ "\\end{bmatrix} \\begin{bmatrix}\n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \\\\\n",
+ "1\n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "Or simply:\n",
+ "\n",
+ "$$ \\mathbf{P_G} = \\mathbf{T_{Gl}}\\mathbf{P_l} $$\n",
+ "\n",
+ "The inverse operation, to express the position at the local coordinate system in terms of the Global coordinate system, is:\n",
+ "\n",
+ "$$ \\mathbf{P_l} = \\mathbf{T_{Gl}^{-1}}\\mathbf{P_G} $$\n",
+ "\n",
+ "However, because $\\mathbf{T_{Gl}}$ is not orthonormal when there is a translation, its inverse is not its transpose. Its inverse in matrix form is given by:\n",
+ "\n",
+ "$$ \\begin{bmatrix}\n",
+ "\\mathbf{P}_x \\\\\n",
+ "\\mathbf{P}_y \\\\\n",
+ "1\n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "\\mathbf{R^{-1}_{Gl}} & \\cdot & - \\mathbf{R^{-1}_{Gl}}\\mathbf{L_{G}} \\\\\n",
+ "\\cdot & \\cdot & \\cdot \\\\\n",
+ "0 & 0 & 1\n",
+ "\\end{bmatrix} \\begin{bmatrix}\n",
+ "\\mathbf{P_X} \\\\\n",
+ "\\mathbf{P_Y} \\\\\n",
+ "1\n",
+ "\\end{bmatrix} $$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Calculation of a basis\n",
+ "\n",
+ "A typical scenario in motion analysis is to calculate the rotation matrix using the position of markers placed on the moving rigid body. With the markers' positions, we create a local basis, which by definition is the rotation matrix for the rigid body with respect to the Global (laboratory) coordinate system. To define a coordinate system using a basís, we also will need to define an origin. \n",
+ "\n",
+ "Let's see how to calculate a basis given the markers' positions. \n",
+ "Consider the markers at m1=[1,1]`, m2=[1,2] and m3=[-1,1] measured in the Global coordinate system as illustrated in the figure below: \n",
+ "<br>\n",
+ "<figure><img src='./../images/transrot2Db.png' alt='translation and rotation 2D'/> <figcaption><center><i>Figure. Three points in the two-dimensional space, two possible vectors given these points, and the corresponding basis.</i></center></figcaption> </figure>\n",
+ "\n",
+ "A possible local coordinate system with origin at the position of m1 is also illustrated in the figure above. Intentionally, the three markers were chosen to form orthogonal vectors. \n",
+ "The translation vector between the two coordinate system is:\n",
+ "\n",
+ "$$\\mathbf{L_{Gl}} = m_1 - [0,0] = [1,1]$$\n",
+ "\n",
+ "The vectors expressing the axes of the local coordinate system are:\n",
+ "\n",
+ "$$ x = m_2 - m_1 = [1,2] - [1,1] = [0,1] $$\n",
+ "\n",
+ "$$ y = m_3 - m_1 = [-1,1] - [1,1] = [-2,0] $$\n",
+ "\n",
+ "Note that these two vectors do not form a basis yet because they are not unit vectors (in fact, only *y* is not a unit vector). Let's normalize these vectors:\n",
+ "\n",
+ "$$ \\begin{array}{}\n",
+ "e_x = \\frac{x}{||x||} = \\frac{[0,1]}{\\sqrt{0^2+1^2}} = [0,1] \\\\\n",
+ "\\\\\n",
+ "e_y = \\frac{y}{||y||} = \\frac{[-2,0]}{\\sqrt{2^2+0^2}} = [-1,0] \n",
+ "\\end{array} $$\n",
+ "\n",
+ "Beware that the versors above are not exactly the same as the ones shown in the right plot of the last figure, the versors above if plotted will start at the origin of the coordinate system, not at [1,1] as shown in the figure.\n",
+ "\n",
+ "We could have done this calculation in NumPy (we will need to do that when dealing with real data later):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "x = [0. 1.] , y = [-2. 0.] \n",
+ "ex= [0. 1.] , ey= [-1. 0.]\n"
+ ]
+ }
+ ],
+ "source": [
+ "m1 = np.array([1.,1.]) # marker 1\n",
+ "m2 = np.array([1.,2.]) # marker 2\n",
+ "m3 = np.array([-1.,1.]) # marker 3\n",
+ "\n",
+ "x = m2 - m1 # vector x\n",
+ "y = m3 - m1 # vector y\n",
+ "\n",
+ "vx = x/np.linalg.norm(x) # versor x\n",
+ "vy = y/np.linalg.norm(y) # verson y\n",
+ "\n",
+ "print(\"x =\", x, \", y =\", y, \"\\nex=\", vx, \", ey=\", vy)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now, both $\\mathbf{e}_x$ and $\\mathbf{e}_y$ are unit vectors (versors) and they are orthogonal, a basis can be formed with these two versors, and we can represent the rotation matrix using this basis (just place the versors of this basis as columns of the rotation matrix):\n",
+ "\n",
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n",
+ "0 & -1 \\\\\n",
+ "1 & 0 \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "This rotation matrix makes sense because from the figure above we see that the local coordinate system we defined is rotated by 90$^o$ in relation to the Global coordinate system and if we use the general form for the rotation matrix:\n",
+ "\n",
+ "$$ \\mathbf{R} = \\begin{bmatrix}\n",
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n",
+ "\\sin\\alpha & \\cos\\alpha \n",
+ "\\end{bmatrix} = \n",
+ "\\begin{bmatrix}\n",
+ "\\cos90^o & -\\sin90^o \\\\\n",
+ "\\sin90^o & \\cos90^o \n",
+ "\\end{bmatrix} =\n",
+ "\\begin{bmatrix}\n",
+ "0 & -1 \\\\\n",
+ "1 & 0 \n",
+ "\\end{bmatrix} $$\n",
+ "\n",
+ "So, the position of any point in the local coordinate system can be represented in the Global coordinate system by:\n",
+ "\n",
+ "$$ \\begin{array}{l l}\n",
+ "\\mathbf{P_G} =& \\mathbf{L_{Gl}} + \\mathbf{R_{Gl}}\\mathbf{P_l} \\\\\n",
+ "\\\\\n",
+ "\\mathbf{P_G} =& \\begin{bmatrix} 1 \\\\ 1 \\end{bmatrix} + \\begin{bmatrix} 0 & -1 \\\\ 1 & 0 \\end{bmatrix} \\mathbf{P_l} \n",
+ "\\end{array} $$\n",
+ "\n",
+ "For example, the point $\\mathbf{P_l}=[1,1]$ has the following position at the Global coordinate system:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Translation vector:\n",
+ " [[1]\n",
+ " [1]]\n",
+ "Rotation matrix:\n",
+ " [[ 0 -1]\n",
+ " [ 1 0]]\n",
+ "Position at the local coordinate system:\n",
+ " [[1]\n",
+ " [1]]\n",
+ "Position at the Global coordinate system, PG = LGl + RGl*Pl:\n",
+ " [[0]\n",
+ " [2]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "LGl = np.array([[1, 1]]).T\n",
+ "print('Translation vector:\\n', LGl)\n",
+ "\n",
+ "RGl = np.array([[0, -1], [1, 0]])\n",
+ "print('Rotation matrix:\\n', RGl)\n",
+ "\n",
+ "Pl = np.array([[1, 1]]).T\n",
+ "print('Position at the local coordinate system:\\n', Pl)\n",
+ "\n",
+ "PG = LGl + np.dot(RGl, Pl)\n",
+ "print('Position at the Global coordinate system, PG = LGl + RGl*Pl:\\n', PG)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Determination of the unknown angle of rotation\n",
+ "\n",
+ "If we didn't know the angle of rotation between the two coordinate systems, which is the typical situation in motion analysis, we simply would equate one of the terms of the two-dimensional rotation matrix in its algebraic form to its correspondent value in the numerical rotation matrix we calculated.\n",
+ "\n",
+ "For instance, taking the first term of the rotation matrices above: $\\cos\\alpha = 0$ implies that $\\theta$ is 90$^o$ or 270$^o$, but combining with another matrix term, $\\sin\\alpha = 1$, implies that $\\alpha=90^o$. We can solve this problem in one step using the tangent $(\\sin\\alpha/\\cos\\alpha)$ function with two terms of the rotation matrix and calculating the angle with the `arctan2(y, x)` function:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The angle is: 90.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "ang = np.arctan2(RGl[1, 0], RGl[0, 0])*180/np.pi\n",
+ "print('The angle is:', ang)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "And this procedure would be repeated for each segment and for each instant of the analyzed movement to find the rotation of each segment."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Joint angle as a sequence of rotations of adjacent segments\n",
+ "\n",
+ "In the notebook about [two-dimensional angular kinematics](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/AngularKinematics2D.ipynb), we calculated segment and joint angles using simple trigonometric relations. We can also calculate these two-dimensional angles using what we learned here about the rotation matrix.\n",
+ "\n",
+ "The segment angle will be given by the matrix representing the rotation from the laboratory coordinate system (G) to a coordinate system attached to the segment and the joint angle will be given by the matrix representing the rotation from one segment coordinate system (l1) to the other segment coordinate system (l2). So, we have to calculate two basis now, one for each segment and the joint angle will be given by the product between the two rotation matrices. \n",
+ "\n",
+ "To define a two-dimensional basis, we need to calculate vectors perpendicular to each of these lines. Here is a way of doing that. First, let's find three non-collinear points for each basis:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x1, y1, x2, y2 = 0, 0, 1, 1 # points at segment 1\n",
+ "x3, y3, x4, y4 = 1.1, 1, 2.1, 0 # points at segment 2\n",
+ "\n",
+ "#The slope of the perpendicular line is minus the inverse of the slope of the line\n",
+ "xl1 = x1 - (y2-y1); yl1 = y1 + (x2-x1) # point at the perpendicular line 1\n",
+ "xl2 = x4 - (y3-y4); yl2 = y4 + (x3-x4) # point at the perpendicular line 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "With these three points, we can create a basis and the corresponding rotation matrix:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "b1x = np.array([x2-x1, y2-y1])\n",
+ "b1x = b1x/np.linalg.norm(b1x) # versor x of basis 1\n",
+ "b1y = np.array([xl1-x1, yl1-y1])\n",
+ "b1y = b1y/np.linalg.norm(b1y) # versor y of basis 1\n",
+ "b2x = np.array([x3-x4, y3-y4])\n",
+ "b2x = b2x/np.linalg.norm(b2x) # versor x of basis 2\n",
+ "b2y = np.array([xl2-x4, yl2-y4])\n",
+ "b2y = b2y/np.linalg.norm(b2y) # versor y of basis 2\n",
+ "\n",
+ "RGl1 = np.array([b1x, b1y]).T # rotation matrix from segment 1 to the laboratory\n",
+ "RGl2 = np.array([b2x, b2y]).T # rotation matrix from segment 2 to the laboratory"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now, the segment and joint angles are simply matrix operations:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rotation matrix for segment 1:\n",
+ " [[ 0.7071 -0.7071]\n",
+ " [ 0.7071 0.7071]]\n",
+ "\n",
+ "Rotation angle of segment 1: 45.0\n",
+ "\n",
+ "Rotation matrix for segment 2:\n",
+ " [[-0.7071 -0.7071]\n",
+ " [ 0.7071 -0.7071]]\n",
+ "\n",
+ "Rotation angle of segment 2: 135.0\n",
+ "\n",
+ "Joint rotation matrix (Rl1l2 = Rl1G*RGl2):\n",
+ " [[ 0. -1.]\n",
+ " [ 1. -0.]]\n",
+ "\n",
+ "Joint angle: 90.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "print('Rotation matrix for segment 1:\\n', np.around(RGl1, 4))\n",
+ "print('\\nRotation angle of segment 1:', np.arctan2(RGl1[1,0], RGl1[0,0])*180/np.pi)\n",
+ "print('\\nRotation matrix for segment 2:\\n', np.around(RGl2, 4))\n",
+ "print('\\nRotation angle of segment 2:', np.arctan2(RGl1[1,0], RGl2[0,0])*180/np.pi)\n",
+ "\n",
+ "Rl1l2 = np.dot(RGl1.T, RGl2) # Rl1l2 = Rl1G*RGl2\n",
+ "\n",
+ "print('\\nJoint rotation matrix (Rl1l2 = Rl1G*RGl2):\\n', np.around(Rl1l2, 4))\n",
+ "print('\\nJoint angle:', np.arctan2(Rl1l2[1,0], Rl1l2[0,0])*180/np.pi)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Same result as obtained in [Angular kinematics in a plane (2D)](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/AngularKinematics2D.ipynb). "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Kinematic chain in a plain (2D)\n",
+ "\n",
+ "The fact that we simply multiplied the rotation matrices to calculate the rotation matrix of one segment in relation to the other is powerful and can be generalized for any number of segments: given a serial kinematic chain with links 1, 2, ..., n and 0 is the base/laboratory, the rotation matrix between the base and last link is: $\\mathbf{R_{n,n-1}R_{n-1,n-2} \\dots R_{2,1}R_{1,0}}$, where each matrix in this product (calculated from right to left) is the rotation of one link with respect to the next one. \n",
+ "\n",
+ "For instance, consider a kinematic chain with two links, the link 1 is rotated by $\\alpha_1$ with respect to the base (0) and the link 2 is rotated by $\\alpha_2$ with respect to the link 1. \n",
+ "Using Sympy, the rotation matrices for link 2 w.r.t. link 1 $(R_{12})$ and for link 1 w.r.t. base 0 $(R_{01})$ are: "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Math\n",
+ "from sympy import sin, cos, Matrix, simplify, latex, symbols\n",
+ "from sympy.interactive import printing\n",
+ "printing.init_printing()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$$\\mathbf{R_{12}}=\\left[\\begin{matrix}\\cos{\\left(\\alpha_{2} \\right)} & - \\sin{\\left(\\alpha_{2} \\right)}\\\\\\sin{\\left(\\alpha_{2} \\right)} & \\cos{\\left(\\alpha_{2} \\right)}\\end{matrix}\\right]$$"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Math object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/latex": [
+ "$$\\mathbf{R_{01}}=\\left[\\begin{matrix}\\cos{\\left(\\alpha_{1} \\right)} & - \\sin{\\left(\\alpha_{1} \\right)}\\\\\\sin{\\left(\\alpha_{1} \\right)} & \\cos{\\left(\\alpha_{1} \\right)}\\end{matrix}\\right]$$"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Math object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "a1, a2 = symbols('alpha1 alpha2')\n",
+ "\n",
+ "R12 = Matrix([[cos(a2), -sin(a2)], [sin(a2), cos(a2)]])\n",
+ "display(Math(latex(r'\\mathbf{R_{12}}=') + latex(R12)))\n",
+ "R01 = Matrix([[cos(a1), -sin(a1)], [sin(a1), cos(a1)]])\n",
+ "display(Math(latex(r'\\mathbf{R_{01}}=') + latex(R01)))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The rotation matrix of link 2 w.r.t. the base $(R_{02})$ is given simply by $R_{01}*R_{12}$:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$$\\mathbf{R_{02}}=\\left[\\begin{matrix}- \\sin{\\left(\\alpha_{1} \\right)} \\sin{\\left(\\alpha_{2} \\right)} + \\cos{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)} & - \\sin{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)} - \\sin{\\left(\\alpha_{2} \\right)} \\cos{\\left(\\alpha_{1} \\right)}\\\\\\sin{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)} + \\sin{\\left(\\alpha_{2} \\right)} \\cos{\\left(\\alpha_{1} \\right)} & - \\sin{\\left(\\alpha_{1} \\right)} \\sin{\\left(\\alpha_{2} \\right)} + \\cos{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)}\\end{matrix}\\right]$$"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Math object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "R02 = R01*R12\n",
+ "display(Math(latex(r'\\mathbf{R_{02}}=') + latex(R02)))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Which simplifies to:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$$\\mathbf{R_{02}}=\\left[\\begin{matrix}\\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)} & - \\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)}\\\\\\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} & \\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)}\\end{matrix}\\right]$$"
+ ],
+ "text/plain": [
+ "<IPython.core.display.Math object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "display(Math(latex(r'\\mathbf{R_{02}}=') + latex(simplify(R02))))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As expected.\n",
+ "\n",
+ "The typical use of all these concepts is in the three-dimensional motion analysis where we will have to deal with angles in different planes, which needs a special manipulation as we will see next."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Problems\n",
+ "\n",
+ "1. A local coordinate system is rotated 30$^o$ clockwise in relation to the Global reference system. \n",
+ " A. Determine the matrices for rotating one coordinate system to another (two-dimensional). \n",
+ " B. What are the coordinates of the point [1, 1] (local coordinate system) at the global coordinate system? \n",
+ " C. And if this point is at the Global coordinate system and we want the coordinates at the local coordinate system? \n",
+ " D. Consider that the local coordinate system, besides the rotation is also translated by [2, 2]. What are the matrices for rotation, translation, and transformation from one coordinate system to another (two-dimensional)? \n",
+ " E. Repeat B and C considering this translation.\n",
+ " \n",
+ "2. Consider a local coordinate system U rotated 45$^o$ clockwise in relation to the Global reference system and another local coordinate system V rotated 45$^o$ clockwise in relation to the local reference system U. \n",
+ " A. Determine the rotation matrices of all possible transformations between the coordinate systems. \n",
+ " B. For the point [1, 1] in the coordinate system U, what are its coordinates in coordinate system V and in the Global coordinate system? \n",
+ " \n",
+ "3. Using the rotation matrix, deduce the new coordinates of a square figure with coordinates [0, 0], [1, 0], [1, 1], and [0, 1] when rotated by 0$^o$, 45$^o$, 90$^o$, 135$^o$, and 180$^o$ (always clockwise).\n",
+ " \n",
+ "4. Solve the problem 2 of [Angular kinematics in a plane (2D)](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/AngularKinematics2D.ipynb) but now using the concept of two-dimensional transformations. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## References\n",
+ "\n",
+ "- Robertson G, Caldwell G, Hamill J, Kamen G (2013) [Research Methods in Biomechanics](http://books.google.com.br/books?id=gRn8AAAAQBAJ). 2nd Edition. Human Kinetics. \n",
+ "- Ruina A, Rudra P (2013) [Introduction to Statics and Dynamics](http://ruina.tam.cornell.edu/Book/index.html). Oxford University Press. \n",
+ "- Winter DA (2009) [Biomechanics and motor control of human movement](http://books.google.com.br/books?id=_bFHL08IWfwC). 4 ed. Hoboken, EUA: Wiley. \n",
+ "- Zatsiorsky VM (1997) [Kinematics of Human Motion](http://books.google.com.br/books/about/Kinematics_of_Human_Motion.html?id=Pql_xXdbrMcC&redir_esc=y). Champaign, Human Kinetics."
+ ]
+ }
+ ],
+ "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.6.8"
+ },
+ "varInspector": {
+ "cols": {
+ "lenName": 16,
+ "lenType": 16,
+ "lenVar": 40
+ },
+ "kernels_config": {
+ "python": {
+ "delete_cmd_postfix": "",
+ "delete_cmd_prefix": "del ",
+ "library": "var_list.py",
+ "varRefreshCmd": "print(var_dic_list())"
+ },
+ "r": {
+ "delete_cmd_postfix": ") ",
+ "delete_cmd_prefix": "rm(",
+ "library": "var_list.r",
+ "varRefreshCmd": "cat(var_dic_list()) "
+ }
+ },
+ "types_to_exclude": [
+ "module",
+ "function",
+ "builtin_function_or_method",
+ "instance",
+ "_Feature"
+ ],
+ "window_display": false
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/src/test/worksheet_test.cpp b/src/test/worksheet_test.cpp
new file mode 100644
index 00000000..f736910c
--- /dev/null
+++ b/src/test/worksheet_test.cpp
@@ -0,0 +1,6864 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+
+#include <QtTest>
+#include <QDebug>
+#include <KLocalizedString>
+#include <QMovie>
+#include <KZip>
+
+#include "worksheet_test.h"
+#include "../worksheet.h"
+#include "../session.h"
+#include "../worksheetentry.h"
+#include "../textentry.h"
+#include "../markdownentry.h"
+#include "../commandentry.h"
+#include "../latexentry.h"
+#include "../lib/backend.h"
+#include "../lib/expression.h"
+#include "../lib/result.h"
+#include "../lib/textresult.h"
+#include "../lib/imageresult.h"
+#include "../lib/latexresult.h"
+#include "../lib/animationresult.h"
+#include "../lib/mimeresult.h"
+#include "../lib/htmlresult.h"
+
+#include "config-cantor-test.h"
+
+static const QString dataPath = QString::fromLocal8Bit(PATH_TO_TEST_NOTEBOOKS)+QLatin1String("/");
+
+void WorksheetTest::initTestCase()
+{
+ const QStringList& backends = Cantor::Backend::listAvailableBackends();
+ if (backends.isEmpty())
+ {
+ QString reason = i18n("Testing of worksheets requires a functioning backends");
+ QSKIP( reason.toStdString().c_str(), SkipAll );
+ }
+}
+
+Worksheet* WorksheetTest::loadWorksheet(const QString& name)
+{
+ Worksheet* w = new Worksheet(Cantor::Backend::getBackend(QLatin1String("null")), nullptr);
+ WorksheetView v(w, nullptr);
+ w->enableEmbeddedMath(false);
+ w->load(dataPath + name);
+ return w;
+}
+
+QString WorksheetTest::plainMarkdown(WorksheetEntry* markdownEntry)
+{
+ QString plain;
+
+ if (markdownEntry->type() == MarkdownEntry::Type)
+ {
+ QString text = markdownEntry->toPlain(QString(), QLatin1String("\n"), QLatin1String("\n"));
+ text.remove(0,1);
+ text.chop(2);
+ plain = text;
+ }
+
+ return plain;
+}
+
+QString WorksheetTest::plainText(WorksheetEntry* textEntry)
+{
+ QString plain;
+
+ if (textEntry->type() == TextEntry::Type)
+ {
+ QString text = textEntry->toPlain(QString(), QLatin1String("\n"), QLatin1String("\n"));
+ text.remove(0,1);
+ text.chop(2);
+ plain = text;
+ }
+
+ return plain;
+}
+
+QString WorksheetTest::plainLatex(WorksheetEntry* latexEntry)
+{
+ QString plain;
+
+ if (latexEntry->type() == LatexEntry::Type)
+ {
+ QString text = latexEntry->toPlain(QString(), QLatin1String("\n"), QLatin1String("\n"));
+ text.remove(0,1);
+ text.chop(2);
+ plain = text;
+ }
+
+ return plain;
+}
+
+int WorksheetTest::entriesCount(Worksheet* worksheet)
+{
+ int count = 0;
+ WorksheetEntry* entry = worksheet->firstEntry();
+ while (entry)
+ {
+ count++;
+ entry = entry->next();
+ }
+ return count;
+}
+
+Cantor::Expression * WorksheetTest::expression(WorksheetEntry* entry)
+{
+ CommandEntry* command = dynamic_cast<CommandEntry*>(entry);
+ if (command)
+ return command->expression();
+ else
+ return nullptr;
+}
+
+QString WorksheetTest::plainCommand(WorksheetEntry* commandEntry)
+{
+ QString plain;
+
+ if (commandEntry->type() == CommandEntry::Type)
+ {
+ plain = commandEntry->toPlain(QString(), QString(), QString());
+ }
+
+ return plain;
+}
+
+void WorksheetTest::testMarkdown(WorksheetEntry* &entry, const QString& content)
+{
+ WorksheetEntry* current = entry;
+ QVERIFY(current);
+ entry = entry->next();
+ QCOMPARE(current->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(current), content);
+}
+
+void WorksheetTest::testTextEntry(WorksheetEntry *& entry, const QString& content)
+{
+ WorksheetEntry* current = entry;
+ QVERIFY(current);
+ entry = entry->next();
+ QCOMPARE(current->type(), (int)TextEntry::Type);
+ QCOMPARE(plainText(current), content);
+}
+
+void WorksheetTest::testCommandEntry(WorksheetEntry *& entry, int id, const QString& content)
+{
+ WorksheetEntry* current = entry;
+ QVERIFY(current);
+ entry = entry->next();
+ QCOMPARE(current->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(current), content);
+ QVERIFY(expression(current));
+ QCOMPARE(expression(current)->id(), id);
+ QCOMPARE(expression(current)->results().size(), 0);
+}
+
+void WorksheetTest::testCommandEntry(WorksheetEntry* entry, int id, int resultsCount, const QString& content)
+{
+ QVERIFY(entry);
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), content);
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), id);
+ QCOMPARE(expression(entry)->results().size(), resultsCount);
+}
+
+void WorksheetTest::testLatexEntry(WorksheetEntry *& entry, const QString& content)
+{
+ WorksheetEntry* current = entry;
+ QVERIFY(current);
+ entry = entry->next();
+ QCOMPARE(current->type(), (int)LatexEntry::Type);
+ QCOMPARE(plainLatex(current), content);
+}
+
+void WorksheetTest::testImageResult(WorksheetEntry* entry, int index)
+{
+ QVERIFY(expression(entry));
+ QVERIFY(expression(entry)->results().size() > index);
+ QCOMPARE(expression(entry)->results().at(index)->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->results().at(index)->data().value<QImage>().isNull() == false);
+}
+
+void WorksheetTest::testTextResult(WorksheetEntry* entry, int index, const QString& content)
+{
+ QVERIFY(expression(entry));
+ QVERIFY(expression(entry)->results().size() > index);
+ QCOMPARE(expression(entry)->results().at(index)->type(), (int)Cantor::TextResult::Type);
+ Cantor::TextResult* result = static_cast<Cantor::TextResult*>(expression(entry)->results().at(index));
+ QVERIFY(result->format() == Cantor::TextResult::PlainTextFormat);
+ QCOMPARE(result->plain(), content);
+}
+
+void WorksheetTest::testHtmlResult(WorksheetEntry* entry, int index, const QString& content)
+{
+ QVERIFY(expression(entry));
+ QVERIFY(expression(entry)->results().size() > index);
+ QCOMPARE(expression(entry)->results().at(index)->type(), (int)Cantor::HtmlResult::Type);
+ Cantor::HtmlResult* result = static_cast<Cantor::HtmlResult*>(expression(entry)->results().at(index));
+ QCOMPARE(result->plain(), content);
+}
+
+void WorksheetTest::testHtmlResult(WorksheetEntry* entry, int index, const QString& plain, const QString& html)
+{
+ QVERIFY(expression(entry));
+ QVERIFY(expression(entry)->results().size() > index);
+ QCOMPARE(expression(entry)->results().at(index)->type(), (int)Cantor::HtmlResult::Type);
+ Cantor::HtmlResult* result = static_cast<Cantor::HtmlResult*>(expression(entry)->results().at(index));
+ QCOMPARE(result->data().toString(), html);
+ QCOMPARE(result->plain(), plain);
+}
+
+void WorksheetTest::testJupyter1()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("Lecture-2B-Single-Atom-Lasing.ipynb")));
+
+ qDebug() << w->firstEntry();
+ QCOMPARE(entriesCount(w.data()), 41);
+
+ WorksheetEntry* entry = w->firstEntry();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String("# QuTiP lecture: Single-Atom-Lasing"));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "Author: J. R. Johansson (robert@riken.jp), http://dml.riken.jp/~rob/\n"
+ "\n"
+ "The latest version of this [IPython notebook](http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html) lecture is available at [http://github.com/jrjohansson/qutip-lectures](http://github.com/jrjohansson/qutip-lectures).\n"
+ "\n"
+ "The other notebooks in this lecture series are indexed at [http://jrjohansson.github.com](http://jrjohansson.github.com)."
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "# setup the matplotlib graphics library and configure it to show \n"
+ "# figures inline in the notebook\n"
+ "%matplotlib inline\n"
+ "import matplotlib.pyplot as plt\n"
+ "import numpy as np"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 1);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "# make qutip available in the rest of the notebook\n"
+ "from qutip import *\n"
+ "\n"
+ "from IPython.display import Image"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 2);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "# Introduction and model\n"
+ "\n"
+ "Consider a single atom coupled to a single cavity mode, as illustrated in the figure below. If there atom excitation rate $\\Gamma$ exceeds the relaxation rate, a population inversion can occur in the atom, and if coupled to the cavity the atom can then act as a photon pump on the cavity."
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "Image(filename='images/schematic-lasing-model.png')"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 3);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "The coherent dynamics in this model is described by the Hamiltonian\n"
+ "\n"
+ "$H = \\hbar \\omega_0 a^\\dagger a + \\frac{1}{2}\\hbar\\omega_a\\sigma_z + \\hbar g\\sigma_x(a^\\dagger + a)$\n"
+ "\n"
+ "where $\\omega_0$ is the cavity energy splitting, $\\omega_a$ is the atom energy splitting and $g$ is the atom-cavity interaction strength.\n"
+ "\n"
+ "In addition to the coherent dynamics the following incoherent processes are also present: \n"
+ "\n"
+ "1. $\\kappa$ relaxation and thermal excitations of the cavity, \n"
+ "2. $\\Gamma$ atomic excitation rate (pumping process).\n"
+ "\n"
+ "The Lindblad master equation for the model is:\n"
+ "\n"
+ "$\\frac{d}{dt}\\rho = -i[H, \\rho] + \\Gamma\\left(\\sigma_+\\rho\\sigma_- - \\frac{1}{2}\\sigma_-\\sigma_+\\rho - \\frac{1}{2}\\rho\\sigma_-\\sigma_+\\right)\n"
+ "+ \\kappa (1 + n_{\\rm th}) \\left(a\\rho a^\\dagger - \\frac{1}{2}a^\\dagger a\\rho - \\frac{1}{2}\\rho a^\\dagger a\\right)\n"
+ "+ \\kappa n_{\\rm th} \\left(a^\\dagger\\rho a - \\frac{1}{2}a a^\\dagger \\rho - \\frac{1}{2}\\rho a a^\\dagger\\right)$\n"
+ "\n"
+ "in units where $\\hbar = 1$.\n"
+ "\n"
+ "References:\n"
+ "\n"
+ " * [Yi Mu, C.M. Savage, Phys. Rev. A 46, 5944 (1992)](http://dx.doi.org/10.1103/PhysRevA.46.5944)\n"
+ "\n"
+ " * [D.A. Rodrigues, J. Imbers, A.D. Armour, Phys. Rev. Lett. 98, 067204 (2007)](http://dx.doi.org/10.1103/PhysRevLett.98.067204)\n"
+ "\n"
+ " * [S. Ashhab, J.R. Johansson, A.M. Zagoskin, F. Nori, New J. Phys. 11, 023030 (2009)](http://dx.doi.org/10.1088/1367-2630/11/2/023030)"
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String("### Problem parameters"));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "w0 = 1.0 * 2 * pi # cavity frequency\n"
+ "wa = 1.0 * 2 * pi # atom frequency\n"
+ "g = 0.05 * 2 * pi # coupling strength\n"
+ "\n"
+ "kappa = 0.04 # cavity dissipation rate\n"
+ "gamma = 0.00 # atom dissipation rate\n"
+ "Gamma = 0.35 # atom pump rate\n"
+ "\n"
+ "N = 50 # number of cavity fock states\n"
+ "n_th_a = 0.0 # avg number of thermal bath excitation\n"
+ "\n"
+ "tlist = np.linspace(0, 150, 101)"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 5);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String("### Setup the operators, the Hamiltonian and initial state"));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "# intial state\n"
+ "psi0 = tensor(basis(N,0), basis(2,0)) # start without excitations\n"
+ "\n"
+ "# operators\n"
+ "a = tensor(destroy(N), qeye(2))\n"
+ "sm = tensor(qeye(N), destroy(2))\n"
+ "sx = tensor(qeye(N), sigmax())\n"
+ "\n"
+ "# Hamiltonian\n"
+ "H = w0 * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() + a) * sx"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 6);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String("H"));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 7);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::LatexResult::Type);
+ {
+ Cantor::LatexResult* result = static_cast<Cantor::LatexResult*>(expression(entry)->result());
+ QCOMPARE(result->code(), QLatin1String(
+ "Quantum object: dims = [[50, 2], [50, 2]], shape = [100, 100], type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}0.0 & 0.0 & 0.0 & 0.314 & 0.0 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 6.283 & 0.314 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.314 & 6.283 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.314 & 0.0 & 0.0 & 12.566 & 0.444 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.444 & 12.566 & \\cdots & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\\\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\ddots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 301.593 & 2.177 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 2.177 & 301.593 & 0.0 & 0.0 & 2.199\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 307.876 & 2.199 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 0.0 & 0.0 & 2.199 & 307.876 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & \\cdots & 0.0 & 2.199 & 0.0 & 0.0 & 314.159\\\\\\end{array}\\right)\\end{equation*}"
+ ));
+ QCOMPARE(result->plain(), QLatin1String(
+ "Quantum object: dims = [[50, 2], [50, 2]], shape = [100, 100], type = oper, isherm = True\n"
+ "Qobj data =\n"
+ "[[ 0. 0. 0. ..., 0. 0. 0. ]\n"
+ " [ 0. 6.28318531 0.31415927 ..., 0. 0. 0. ]\n"
+ " [ 0. 0.31415927 6.28318531 ..., 0. 0. 0. ]\n"
+ " ..., \n"
+ " [ 0. 0. 0. ..., 307.87608005\n"
+ " 2.19911486 0. ]\n"
+ " [ 0. 0. 0. ..., 2.19911486\n"
+ " 307.87608005 0. ]\n"
+ " [ 0. 0. 0. ..., 0. 0.\n"
+ " 314.15926536]]"
+ ));
+ QCOMPARE(result->mimeType(), QStringLiteral("image/x-eps"));
+ }
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String("### Create a list of collapse operators that describe the dissipation"));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "# collapse operators\n"
+ "c_ops = []\n"
+ "\n"
+ "rate = kappa * (1 + n_th_a)\n"
+ "if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * a)\n"
+ "\n"
+ "rate = kappa * n_th_a\n"
+ "if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * a.dag())\n"
+ "\n"
+ "rate = gamma\n"
+ "if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * sm)\n"
+ "\n"
+ "rate = Gamma\n"
+ "if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * sm.dag())"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 8);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "### Evolve the system\n"
+ "\n"
+ "Here we evolve the system with the Lindblad master equation solver, and we request that the expectation values of the operators $a^\\dagger a$ and $\\sigma_+\\sigma_-$ are returned by the solver by passing the list `[a.dag()*a, sm.dag()*sm]` as the fifth argument to the solver."
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "opt = Odeoptions(nsteps=2000) # allow extra time-steps \n"
+ "output = mesolve(H, psi0, tlist, c_ops, [a.dag() * a, sm.dag() * sm], options=opt)"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 9);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "## Visualize the results\n"
+ "\n"
+ "Here we plot the excitation probabilities of the cavity and the atom (these expectation values were calculated by the `mesolve` above)."
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "n_c = output.expect[0]\n"
+ "n_a = output.expect[1]\n"
+ "\n"
+ "fig, axes = plt.subplots(1, 1, figsize=(8,6))\n"
+ "\n"
+ "axes.plot(tlist, n_c, label=\"Cavity\")\n"
+ "axes.plot(tlist, n_a, label=\"Atom excited state\")\n"
+ "axes.set_xlim(0, 150)\n"
+ "axes.legend(loc=0)\n"
+ "axes.set_xlabel('Time')\n"
+ "axes.set_ylabel('Occupation probability');"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 10);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String("## Steady state: cavity fock-state distribution and wigner function"));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String("rho_ss = steadystate(H, c_ops)"));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 11);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "fig, axes = plt.subplots(1, 2, figsize=(12,6))\n"
+ "\n"
+ "xvec = np.linspace(-5,5,200)\n"
+ "\n"
+ "rho_cavity = ptrace(rho_ss, 0)\n"
+ "W = wigner(rho_cavity, xvec, xvec)\n"
+ "wlim = abs(W).max()\n"
+ "\n"
+ "axes[1].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n"
+ "axes[1].set_xlabel(r'Im $\\alpha$', fontsize=18)\n"
+ "axes[1].set_ylabel(r'Re $\\alpha$', fontsize=18)\n"
+ "\n"
+ "axes[0].bar(arange(0, N), real(rho_cavity.diag()), color=\"blue\", alpha=0.6)\n"
+ "axes[0].set_ylim(0, 1)\n"
+ "axes[0].set_xlim(0, N)\n"
+ "axes[0].set_xlabel('Fock number', fontsize=18)\n"
+ "axes[0].set_ylabel('Occupation probability', fontsize=18);"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 13);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String("## Cavity fock-state distribution and Wigner function as a function of time"));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "tlist = np.linspace(0, 25, 5)\n"
+ "output = mesolve(H, psi0, tlist, c_ops, [], options=Odeoptions(nsteps=5000))"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 14);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "rho_ss_sublist = output.states\n"
+ "\n"
+ "xvec = np.linspace(-5,5,200)\n"
+ "\n"
+ "fig, axes = plt.subplots(2, len(rho_ss_sublist), figsize=(3*len(rho_ss_sublist), 6))\n"
+ "\n"
+ "for idx, rho_ss in enumerate(rho_ss_sublist):\n"
+ "\n"
+ " # trace out the cavity density matrix\n"
+ " rho_ss_cavity = ptrace(rho_ss, 0)\n"
+ " \n"
+ " # calculate its wigner function\n"
+ " W = wigner(rho_ss_cavity, xvec, xvec)\n"
+ " \n"
+ " # plot its wigner function\n"
+ " wlim = abs(W).max()\n"
+ " axes[0,idx].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n"
+ " axes[0,idx].set_title(r'$t = %.1f$' % tlist[idx])\n"
+ " \n"
+ " # plot its fock-state distribution\n"
+ " axes[1,idx].bar(arange(0, N), real(rho_ss_cavity.diag()), color=\"blue\", alpha=0.8)\n"
+ " axes[1,idx].set_ylim(0, 1)\n"
+ " axes[1,idx].set_xlim(0, 15)"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 15);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "## Steady state average photon occupation in cavity as a function of pump rate\n"
+ "\n"
+ "References:\n"
+ "\n"
+ " * [S. Ashhab, J.R. Johansson, A.M. Zagoskin, F. Nori, New J. Phys. 11, 023030 (2009)](http://dx.doi.org/10.1088/1367-2630/11/2/023030)"
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "def calulcate_avg_photons(N, Gamma):\n"
+ " \n"
+ " # collapse operators\n"
+ " c_ops = []\n"
+ "\n"
+ " rate = kappa * (1 + n_th_a)\n"
+ " if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * a)\n"
+ "\n"
+ " rate = kappa * n_th_a\n"
+ " if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * a.dag())\n"
+ "\n"
+ " rate = gamma\n"
+ " if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * sm)\n"
+ "\n"
+ " rate = Gamma\n"
+ " if rate > 0.0:\n"
+ " c_ops.append(sqrt(rate) * sm.dag())\n"
+ " \n"
+ " # Ground state and steady state for the Hamiltonian: H = H0 + g * H1\n"
+ " rho_ss = steadystate(H, c_ops)\n"
+ " \n"
+ " # cavity photon number\n"
+ " n_cavity = expect(a.dag() * a, rho_ss)\n"
+ " \n"
+ " # cavity second order coherence function\n"
+ " g2_cavity = expect(a.dag() * a.dag() * a * a, rho_ss) / (n_cavity ** 2)\n"
+ "\n"
+ " return n_cavity, g2_cavity"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 16);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "Gamma_max = 2 * (4*g**2) / kappa\n"
+ "Gamma_vec = np.linspace(0.1, Gamma_max, 50)\n"
+ "\n"
+ "n_avg_vec = []\n"
+ "g2_vec = []\n"
+ "\n"
+ "for Gamma in Gamma_vec:\n"
+ " n_avg, g2 = calulcate_avg_photons(N, Gamma)\n"
+ " n_avg_vec.append(n_avg)\n"
+ " g2_vec.append(g2)"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 17);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "fig, axes = plt.subplots(1, 1, figsize=(12,6))\n"
+ "\n"
+ "axes.plot(Gamma_vec * kappa / (4*g**2), n_avg_vec, color=\"blue\", alpha=0.6, label=\"numerical\")\n"
+ "\n"
+ "axes.set_xlabel(r'$\\Gamma\\kappa/(4g^2)$', fontsize=18)\n"
+ "axes.set_ylabel(r'Occupation probability $\\langle n \\rangle$', fontsize=18)\n"
+ "axes.set_xlim(0, 2);"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 18);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "fig, axes = plt.subplots(1, 1, figsize=(12,6))\n"
+ "\n"
+ "axes.plot(Gamma_vec * kappa / (4*g**2), g2_vec, color=\"blue\", alpha=0.6, label=\"numerical\")\n"
+ "\n"
+ "axes.set_xlabel(r'$\\Gamma\\kappa/(4g^2)$', fontsize=18)\n"
+ "axes.set_ylabel(r'$g^{(2)}(0)$', fontsize=18)\n"
+ "axes.set_xlim(0, 2)\n"
+ "axes.text(0.1, 1.1, \"Lasing regime\", fontsize=16)\n"
+ "axes.text(1.5, 1.8, \"Thermal regime\", fontsize=16);"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 19);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "Here we see that lasing is suppressed for $\\Gamma\\kappa/(4g^2) > 1$. \n"
+ "\n"
+ "\n"
+ "Let's look at the fock-state distribution at $\\Gamma\\kappa/(4g^2) = 0.5$ (lasing regime) and $\\Gamma\\kappa/(4g^2) = 1.5$ (suppressed regime):"
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "### Case 1: $\\Gamma\\kappa/(4g^2) = 0.5$"
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "Gamma = 0.5 * (4*g**2) / kappa"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 20);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "c_ops = [sqrt(kappa * (1 + n_th_a)) * a, sqrt(kappa * n_th_a) * a.dag(), sqrt(gamma) * sm, sqrt(Gamma) * sm.dag()]\n"
+ "\n"
+ "rho_ss = steadystate(H, c_ops)"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 21);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "fig, axes = plt.subplots(1, 2, figsize=(16,6))\n"
+ "\n"
+ "xvec = np.linspace(-10,10,200)\n"
+ "\n"
+ "rho_cavity = ptrace(rho_ss, 0)\n"
+ "W = wigner(rho_cavity, xvec, xvec)\n"
+ "wlim = abs(W).max()\n"
+ "axes[1].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n"
+ "axes[1].set_xlabel(r'Im $\\alpha$', fontsize=18)\n"
+ "axes[1].set_ylabel(r'Re $\\alpha$', fontsize=18)\n"
+ "\n"
+ "axes[0].bar(arange(0, N), real(rho_cavity.diag()), color=\"blue\", alpha=0.6)\n"
+ "axes[0].set_xlabel(r'$n$', fontsize=18)\n"
+ "axes[0].set_ylabel(r'Occupation probability', fontsize=18)\n"
+ "axes[0].set_ylim(0, 1)\n"
+ "axes[0].set_xlim(0, N);"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 22);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "### Case 2: $\\Gamma\\kappa/(4g^2) = 1.5$"
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "Gamma = 1.5 * (4*g**2) / kappa"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 23);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "c_ops = [sqrt(kappa * (1 + n_th_a)) * a, sqrt(kappa * n_th_a) * a.dag(), sqrt(gamma) * sm, sqrt(Gamma) * sm.dag()]\n"
+ "\n"
+ "rho_ss = steadystate(H, c_ops)"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 24);
+ QCOMPARE(expression(entry)->results().size(), 0);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "fig, axes = plt.subplots(1, 2, figsize=(16,6))\n"
+ "\n"
+ "xvec = np.linspace(-10,10,200)\n"
+ "\n"
+ "rho_cavity = ptrace(rho_ss, 0)\n"
+ "W = wigner(rho_cavity, xvec, xvec)\n"
+ "wlim = abs(W).max()\n"
+ "axes[1].contourf(xvec, xvec, W, 100, norm=mpl.colors.Normalize(-wlim,wlim), cmap=plt.get_cmap('RdBu'))\n"
+ "axes[1].set_xlabel(r'Im $\\alpha$', fontsize=18)\n"
+ "axes[1].set_ylabel(r'Re $\\alpha$', fontsize=18)\n"
+ "\n"
+ "axes[0].bar(arange(0, N), real(rho_cavity.diag()), color=\"blue\", alpha=0.6)\n"
+ "axes[0].set_xlabel(r'$n$', fontsize=18)\n"
+ "axes[0].set_ylabel(r'Occupation probability', fontsize=18)\n"
+ "axes[0].set_ylim(0, 1)\n"
+ "axes[0].set_xlim(0, N);"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 26);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::ImageResult::Type);
+ QVERIFY(expression(entry)->result()->data().value<QImage>().isNull() == false);
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "Too large pumping rate $\\Gamma$ kills the lasing process: reversed threshold."
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QLatin1String(
+ "### Software version"
+ ));
+
+ entry = entry->next();
+ QCOMPARE(entry->type(), (int)CommandEntry::Type);
+ QCOMPARE(plainCommand(entry), QLatin1String(
+ "from qutip.ipynbtools import version_table\n"
+ "\n"
+ "version_table()"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->id(), 27);
+ QCOMPARE(expression(entry)->results().size(), 1);
+ testHtmlResult(entry, 0, QString::fromUtf8(
+ "<IPython.core.display.HTML at 0x7f2f2d5a0048>"
+ ), QString::fromUtf8(
+ "<table><tr><th>Software</th><th>Version</th></tr><tr><td>IPython</td><td>2.0.0</td></tr><tr><td>OS</td><td>posix [linux]</td></tr><tr><td>Python</td><td>3.4.1 (default, Jun 9 2014, 17:34:49) \n"
+ "[GCC 4.8.3]</td></tr><tr><td>QuTiP</td><td>3.0.0.dev-5a88aa8</td></tr><tr><td>Numpy</td><td>1.8.1</td></tr><tr><td>matplotlib</td><td>1.3.1</td></tr><tr><td>Cython</td><td>0.20.1post0</td></tr><tr><td>SciPy</td><td>0.13.3</td></tr><tr><td colspan='2'>Thu Jun 26 14:28:35 2014 JST</td></tr></table>"
+ ));
+
+ QCOMPARE(entry->next(), nullptr);
+}
+
+void WorksheetTest::testJupyter2()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("AEC.04 - Evolutionary Strategies and Covariance Matrix Adaptation.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testMarkdown(entry, QLatin1String(
+ "<div align='left' style=\"width:400px;height:120px;overflow:hidden;\">\n"
+ "<a href='http://www.uff.br'>\n"
+ "<img align='left' style='display: block;height: 92%' src='https://github.com/lmarti/jupyter_custom/raw/master/imgs/uff.png' alt='UFF logo' title='UFF logo'/>\n"
+ "</a>\n"
+ "<a href='http://www.ic.uff.br'>\n"
+ "<img align='left' style='display: block;height: 100%' src='https://github.com/lmarti/jupyter_custom/raw/master/imgs/logo-ic.png' alt='IC logo' title='IC logo'/>\n"
+ "</a>\n"
+ "</div>"
+ ));
+
+ testMarkdown(entry, QString::fromLocal8Bit(
+ "# Understanding evolutionary strategies and covariance matrix adaptation\n"
+ "\n"
+ "## Luis Martí, [IC](http://www.ic.uff.br)/[UFF](http://www.uff.br)\n"
+ "\n"
+ "[http://lmarti.com](http://lmarti.com); [lmarti@ic.uff.br](mailto:lmarti@ic.uff.br) \n"
+ "\n"
+ "[Advanced Evolutionary Computation: Theory and Practice](http://lmarti.com/aec-2014) "
+ ));
+
+ testMarkdown(entry, QString::fromLocal8Bit(
+ "The notebook is better viewed rendered as slides. You can convert it to slides and view them by:\n"
+ "- using [nbconvert](http://ipython.org/ipython-doc/1/interactive/nbconvert.html) with a command like:\n"
+ " ```bash\n"
+ " $ ipython nbconvert --to slides --post serve <this-notebook-name.ipynb>\n"
+ " ```\n"
+ "- installing [Reveal.js - Jupyter/IPython Slideshow Extension](https://github.com/damianavila/live_reveal)\n"
+ "- using the online [IPython notebook slide viewer](https://slideviewer.herokuapp.com/) (some slides of the notebook might not be properly rendered).\n"
+ "\n"
+ "This and other related IPython notebooks can be found at the course github repository:\n"
+ "* [https://github.com/lmarti/evolutionary-computation-course](https://github.com/lmarti/evolutionary-computation-course)"
+ ));
+
+ testCommandEntry(entry, 1, QLatin1String(
+ "import numpy as np\n"
+ "import matplotlib.pyplot as plt\n"
+ "import matplotlib.colors as colors\n"
+ "from matplotlib import cm \n"
+ "from mpl_toolkits.mplot3d import axes3d\n"
+ "from scipy.stats import norm, multivariate_normal\n"
+ "import math\n"
+ "\n"
+ "%matplotlib inline\n"
+ "%config InlineBackend.figure_format = 'retina'\n"
+ "plt.rc('text', usetex=True)\n"
+ "plt.rc('font', family='serif')\n"
+ "plt.rcParams['text.latex.preamble'] ='\\\\usepackage{libertine}\\n\\\\usepackage[utf8]{inputenc}'\n"
+ "\n"
+ "import seaborn\n"
+ "seaborn.set(style='whitegrid')\n"
+ "seaborn.set_context('notebook')"
+ ));
+
+ testMarkdown(entry, QString::fromLocal8Bit(
+ "### Statistics recap\n"
+ "\n"
+ "* [Random variable](http://en.wikipedia.org/wiki/Random_variable): a variable whose value is subject to variations due to __chance__. A random variable can take on a set of possible different values, each with an associated probability, in contrast to other mathematical variables.\n"
+ "\n"
+ "* [Probability distribution](http://en.wikipedia.org/wiki/Probability_distribution): mathematical function describing the possible values of a random variable and their associated probabilities.\n"
+ "\n"
+ "* [Probability density function (pdf)](http://en.wikipedia.org/wiki/Probability_density_function) of a __continuous random variable__ is a function that describes the relative likelihood for this random variable to take on a given value. \n"
+ " * The probability of the random variable falling within a particular range of values is given by the integral of this variable’s density over that range.\n"
+ " * The probability density function is nonnegative everywhere, and its integral over the entire space is equal to one.\n"
+ " \n"
+ "<img src='http://upload.wikimedia.org/wikipedia/commons/2/25/The_Normal_Distribution.svg' width='50%' align='center'/>\n"
+ " "
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "### [Moments](http://en.wikipedia.org/wiki/Moment_(mathematics)\n"
+ "\n"
+ "The probability distribution of a random variable is often characterised by a small number of parameters, which also have a practical interpretation.\n"
+ "\n"
+ "* [Mean](http://en.wikipedia.org/wiki/Mean) (a.k.a expected value) refers to one measure of the central tendency either of a probability distribution or of the random variable characterized by that distribution.\n"
+ " * population mean: $\\mu = \\operatorname{E}[X]$.\n"
+ " * estimation of sample mean: $\\bar{x}$.\n"
+ "* [Standard deviation](http://en.wikipedia.org/wiki/Standard_deviation) measures the amount of variation or dispersion from the mean.\n"
+ " * population deviation:\n"
+ " $$\n"
+ "\\sigma = \\sqrt{\\operatorname E[X^2]-(\\operatorname E[X])^2} = \\sqrt{\\frac{1}{N} \\sum_{i=1}^N (x_i - \\mu)^2}.\n"
+ "$$\n"
+ " * unbiased estimator:\n"
+ " $$ \n"
+ " s^2 = \\frac{1}{N-1} \\sum_{i=1}^N (x_i - \\overline{x})^2.\n"
+ " $$"
+ ));
+
+ testMarkdown(entry, QLatin1String("### Two samples"));
+
+ testCommandEntry(entry, 2, QLatin1String(
+ "sample1 = np.random.normal(0, 0.5, 1000)\n"
+ "sample2 = np.random.normal(1,1,500)"
+ ));
+
+ testCommandEntry(entry, 3, QLatin1String(
+ "def plot_normal_sample(sample, mu, sigma):\n"
+ " 'Plots an histogram and the normal distribution corresponding to the parameters.'\n"
+ " x = np.linspace(mu - 4*sigma, mu + 4*sigma, 100)\n"
+ " plt.plot(x, norm.pdf(x, mu, sigma), 'b', lw=2)\n"
+ " plt.hist(sample, 30, normed=True, alpha=0.2)\n"
+ " plt.annotate('3$\\sigma$', \n"
+ " xy=(mu + 3*sigma, 0), xycoords='data',\n"
+ " xytext=(0, 100), textcoords='offset points',\n"
+ " fontsize=15,\n"
+ " arrowprops=dict(arrowstyle=\"->\",\n"
+ " connectionstyle=\"arc,angleA=180,armA=20,angleB=90,armB=15,rad=7\"))\n"
+ " plt.annotate('-3$\\sigma$', \n"
+ " xy=(mu -3*sigma, 0), xycoords='data', \n"
+ " xytext=(0, 100), textcoords='offset points',\n"
+ " fontsize=15,\n"
+ " arrowprops=dict(arrowstyle=\"->\",\n"
+ " connectionstyle=\"arc,angleA=180,armA=20,angleB=90,armB=15,rad=7\"))"
+ ));
+
+ testCommandEntry(entry, 4, 2, QLatin1String(
+ "plt.figure(figsize=(11,4))\n"
+ "plt.subplot(121)\n"
+ "plot_normal_sample(sample1, 0, 0.5)\n"
+ "plt.title('Sample 1: $\\mu=0$, $\\sigma=0.5$')\n"
+ "plt.subplot(122)\n"
+ "plot_normal_sample(sample2, 1, 1)\n"
+ "plt.title('Sample 2: $\\mu=1$, $\\sigma=1$')\n"
+ "plt.tight_layout();"
+ ));
+ testTextResult(entry, 0, QLatin1String(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n"
+ " warnings.warn(\"The 'normed' kwarg is deprecated, and has been \""
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testCommandEntry(entry, 5, 1, QLatin1String(
+ "print('Sample 1; estimated mean:', sample1.mean(), ' and std. dev.: ', sample1.std())\n"
+ "print('Sample 2; estimated mean:', sample2.mean(), ' and std. dev.: ', sample2.std())"
+ ));
+ testTextResult(entry, 0, QLatin1String(
+ "Sample 1; estimated mean: 0.007446590585087637 and std. dev.: 0.5083158965764596\n"
+ "Sample 2; estimated mean: 0.969635147915706 and std. dev.: 1.0213164282805647"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "[Covariance](http://en.wikipedia.org/wiki/Covariance) is a measure of how much two random variables change together. \n"
+ "$$\n"
+ "\\operatorname{cov}(X,Y) = \\operatorname{E}{\\big[(X - \\operatorname{E}[X])(Y - \\operatorname{E}[Y])\\big]},\n"
+ "$$\n"
+ "$$\n"
+ "\\operatorname{cov}(X,X) = s(X),\n"
+ "$$\n"
+ "\n"
+ "* The sign of the covariance therefore shows the tendency in the linear relationship between the variables. \n"
+ "* The magnitude of the covariance is not easy to interpret. \n"
+ "* The normalized version of the covariance, the correlation coefficient, however, shows by its magnitude the strength of the linear relation."
+ ));
+
+ testMarkdown(entry, QLatin1String("### Understanding covariance"));
+
+ testCommandEntry(entry, 6, QLatin1String(
+ "sample_2d = np.array(list(zip(sample1, np.ones(len(sample1))))).T"
+ ));
+
+ testCommandEntry(entry, 7, 1, QLatin1String(
+ "plt.scatter(sample_2d[0,:], sample_2d[1,:], marker='x');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testCommandEntry(entry, 8, 1, QLatin1String(
+ "np.cov(sample_2d) # computes covariance between the two components of the sample"
+ ));
+ testTextResult(entry, 0, QLatin1String(
+ "array([[0.25864369, 0. ],\n"
+ " [0. , 0. ]])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "As the sample is only distributed along one axis, the covariance does not detects any relationship between them."
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "What happens when we rotate the sample?"
+ ));
+
+ testCommandEntry(entry, 9, QLatin1String(
+ "def rotate_sample(sample, angle=-45):\n"
+ " 'Rotates a sample by `angle` degrees.'\n"
+ " theta = (angle/180.) * np.pi\n"
+ " rot_matrix = np.array([[np.cos(theta), -np.sin(theta)], \n"
+ " [np.sin(theta), np.cos(theta)]])\n"
+ " return sample.T.dot(rot_matrix).T"
+ ));
+
+ testCommandEntry(entry, 10, QLatin1String(
+ "rot_sample_2d = rotate_sample(sample_2d)"
+ ));
+
+ testCommandEntry(entry, 11, 1, QLatin1String(
+ "plt.scatter(rot_sample_2d[0,:], rot_sample_2d[1,:], marker='x');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testCommandEntry(entry, 12, 1, QLatin1String(
+ "np.cov(rot_sample_2d)"
+ ));
+ testTextResult(entry, 0, QLatin1String(
+ "array([[0.12932185, 0.12932185],\n"
+ " [0.12932185, 0.12932185]])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "### A two-dimensional normally-distributed variable"
+ ));
+
+ testCommandEntry(entry, 13, 2, QLatin1String(
+ "mu = [0,1]\n"
+ "cov = [[1,0],[0,0.2]] # diagonal covariance, points lie on x or y-axis\n"
+ "sample = np.random.multivariate_normal(mu,cov,1000).T\n"
+ "plt.scatter(sample[0], sample[1], marker='x', alpha=0.29)\n"
+ "\n"
+ "estimated_mean = sample.mean(axis=1)\n"
+ "estimated_cov = np.cov(sample)\n"
+ "e_x,e_y = np.random.multivariate_normal(estimated_mean,estimated_cov,500).T\n"
+ "\n"
+ "plt.plot(e_x,e_y,'rx', alpha=0.47)\n"
+ "x, y = np.mgrid[-4:4:.01, -1:3:.01]\n"
+ "pos = np.empty(x.shape + (2,))\n"
+ "pos[:, :, 0] = x; pos[:, :, 1] = y\n"
+ "rv = multivariate_normal(estimated_mean, estimated_cov)\n"
+ "plt.contour(x, y, rv.pdf(pos), cmap=cm.viridis_r, lw=4)\n"
+ "plt.axis('equal');"
+ ));
+ testTextResult(entry, 0, QLatin1String(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'lw'\n"
+ " s)"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "### This is better understood in 3D"
+ ));
+
+ testCommandEntry(entry, 14, 1, QLatin1String(
+ "fig = plt.figure(figsize=(11,5))\n"
+ "ax = fig.gca(projection='3d')\n"
+ "ax.plot_surface(x, y, rv.pdf(pos), cmap=cm.viridis_r, rstride=30, cstride=10, linewidth=1, alpha=0.47)\n"
+ "ax.plot_wireframe(x, y, rv.pdf(pos), linewidth=0.47, alpha=0.47)\n"
+ "ax.scatter(e_x, e_y, 0.4, marker='.', alpha=0.47)\n"
+ "ax.axis('tight');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "Again, what happens if we rotate the sample?"
+ ));
+
+ testCommandEntry(entry, 15, QLatin1String(
+ "rot_sample = rotate_sample(sample)\n"
+ "estimated_mean = rot_sample.mean(axis=1)\n"
+ "estimated_cov = np.cov(rot_sample)\n"
+ "e_x,e_y = np.random.multivariate_normal(estimated_mean,estimated_cov,500).T"
+ ));
+
+ testCommandEntry(entry, 16, 1, QLatin1String(
+ "fig = plt.figure(figsize=(11,4))\n"
+ "plt.subplot(121)\n"
+ "plt.scatter(rot_sample[0,:], rot_sample[1,:], marker='x', alpha=0.7)\n"
+ "plt.title('\"Original\" data')\n"
+ "plt.axis('equal')\n"
+ "plt.subplot(122)\n"
+ "plt.scatter(e_x, e_y, marker='o', color='g', alpha=0.7)\n"
+ "plt.title('Sampled data')\n"
+ "plt.axis('equal');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "Covariance captures the dependency and can model disposition of the \"original\" sample."
+ ));
+
+ testCommandEntry(entry, 17, QLatin1String(
+ "x, y = np.mgrid[-4:4:.01, -3:3:.01]\n"
+ "pos = np.empty(x.shape + (2,))\n"
+ "pos[:, :, 0] = x; pos[:, :, 1] = y\n"
+ "rv = multivariate_normal(estimated_mean, estimated_cov)"
+ ));
+
+ testCommandEntry(entry, 18, 1, QLatin1String(
+ "fig = plt.figure(figsize=(11,5))\n"
+ "ax = fig.gca(projection='3d')\n"
+ "ax.plot_surface(x, y, rv.pdf(pos), cmap=cm.viridis_r, rstride=30, cstride=10, linewidth=1, alpha=0.47)\n"
+ "ax.plot_wireframe(x, y, rv.pdf(pos), linewidth=0.47, alpha=0.47)\n"
+ "ax.scatter(e_x, e_y, 0.4, marker='.', alpha=0.47)\n"
+ "ax.axis('tight');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "# Evolutionary Strategies\n"
+ "\n"
+ "We will be using DEAP again to present some of the ES main concepts."
+ ));
+
+ testCommandEntry(entry, 19, QLatin1String(
+ "import array, random, time, copy\n"
+ "\n"
+ "from deap import base, creator, benchmarks, tools, algorithms\n"
+ "\n"
+ "random.seed(42) # Fixing a random seed: You should not do this in practice."
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "Before we dive into the discussion lets code some support functions."
+ ));
+
+ testCommandEntry(entry, 20, QLatin1String(
+ "def plot_problem_3d(problem, bounds, resolution=100., \n"
+ " cmap=cm.viridis_r, rstride=10, cstride=10, \n"
+ " linewidth=0.15, alpha=0.65, ax=None):\n"
+ " 'Plots a given deap benchmark problem in 3D mesh.'\n"
+ " (minx,miny),(maxx,maxy) = bounds\n"
+ " x_range = np.arange(minx, maxx, (maxx-minx)/resolution)\n"
+ " y_range = np.arange(miny, maxy, (maxy-miny)/resolution)\n"
+ " \n"
+ " X, Y = np.meshgrid(x_range, y_range)\n"
+ " Z = np.zeros((len(x_range), len(y_range)))\n"
+ " \n"
+ " for i in range(len(x_range)):\n"
+ " for j in range(len(y_range)):\n"
+ " Z[i,j] = problem((x_range[i], y_range[j]))[0]\n"
+ " \n"
+ " if not ax:\n"
+ " fig = plt.figure(figsize=(11,6))\n"
+ " ax = fig.gca(projection='3d')\n"
+ " \n"
+ " cset = ax.plot_surface(X, Y, Z, cmap=cmap, rstride=rstride, cstride=cstride, linewidth=linewidth, alpha=alpha)"
+ ));
+
+ testCommandEntry(entry, 21, QLatin1String(
+ "def plot_problem_controur(problem, bounds, optimum=None,\n"
+ " resolution=100., cmap=cm.viridis_r, \n"
+ " rstride=1, cstride=10, linewidth=0.15,\n"
+ " alpha=0.65, ax=None):\n"
+ " 'Plots a given deap benchmark problem as a countour plot'\n"
+ " (minx,miny),(maxx,maxy) = bounds\n"
+ " x_range = np.arange(minx, maxx, (maxx-minx)/resolution)\n"
+ " y_range = np.arange(miny, maxy, (maxy-miny)/resolution)\n"
+ " \n"
+ " X, Y = np.meshgrid(x_range, y_range)\n"
+ " Z = np.zeros((len(x_range), len(y_range)))\n"
+ " \n"
+ " for i in range(len(x_range)):\n"
+ " for j in range(len(y_range)):\n"
+ " Z[i,j] = problem((x_range[i], y_range[j]))[0]\n"
+ " \n"
+ " if not ax:\n"
+ " fig = plt.figure(figsize=(6,6))\n"
+ " ax = fig.gca()\n"
+ " ax.set_aspect('equal')\n"
+ " ax.autoscale(tight=True)\n"
+ " \n"
+ " cset = ax.contourf(X, Y, Z, cmap=cmap, rstride=rstride, cstride=cstride, linewidth=linewidth, alpha=alpha)\n"
+ " \n"
+ " if optimum:\n"
+ " ax.plot(optimum[0], optimum[1], 'bx', linewidth=4, markersize=15)"
+ ));
+
+ testCommandEntry(entry, 22, QLatin1String(
+ "def plot_cov_ellipse(pos, cov, volume=.99, ax=None, fc='lightblue', ec='darkblue', alpha=1, lw=1):\n"
+ " ''' Plots an ellipse that corresponds to a bivariate normal distribution.\n"
+ " Adapted from http://www.nhsilbert.net/source/2014/06/bivariate-normal-ellipse-plotting-in-python/'''\n"
+ " from scipy.stats import chi2\n"
+ " from matplotlib.patches import Ellipse\n"
+ "\n"
+ " def eigsorted(cov):\n"
+ " vals, vecs = np.linalg.eigh(cov)\n"
+ " order = vals.argsort()[::-1]\n"
+ " return vals[order], vecs[:,order]\n"
+ "\n"
+ " if ax is None:\n"
+ " ax = plt.gca()\n"
+ "\n"
+ " vals, vecs = eigsorted(cov)\n"
+ " theta = np.degrees(np.arctan2(*vecs[:,0][::-1]))\n"
+ "\n"
+ " kwrg = {'facecolor':fc, 'edgecolor':ec, 'alpha':alpha, 'linewidth':lw}\n"
+ "\n"
+ " # Width and height are \"full\" widths, not radius\n"
+ " width, height = 2 * np.sqrt(chi2.ppf(volume,2)) * np.sqrt(vals)\n"
+ " ellip = Ellipse(xy=pos, width=width, height=height, angle=theta, **kwrg)\n"
+ " ax.add_artist(ellip)"
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "### Why benchmarks (test) functions?\n"
+ "\n"
+ "In applied mathematics, [test functions](http://en.wikipedia.org/wiki/Test_functions_for_optimization), also known as artificial landscapes, are useful to evaluate characteristics of optimization algorithms, such as:\n"
+ "\n"
+ "* Velocity of convergence.\n"
+ "* Precision.\n"
+ "* Robustness.\n"
+ "* General performance.\n"
+ "\n"
+ "DEAP has a number of test problems already implemented. See http://deap.readthedocs.org/en/latest/api/benchmarks.html"
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "### [Bohachevsky benchmark problem](http://deap.readthedocs.org/en/latest/api/benchmarks.html#deap.benchmarks.bohachevsky)\n"
+ "\n"
+ "$$\\text{minimize } f(\\mathbf{x}) = \\sum_{i=1}^{N-1}(x_i^2 + 2x_{i+1}^2 - 0.3\\cos(3\\pi x_i) - 0.4\\cos(4\\pi x_{i+1}) + 0.7), \\mathbf{x}\\in \\left[-100,100\\right]^n,$$\n"
+ "\n"
+ "> Optimum in $\\mathbf{x}=\\mathbf{0}$, $f(\\mathbf{x})=0$."
+ ));
+
+ testCommandEntry(entry, 23, QLatin1String(
+ "current_problem = benchmarks.bohachevsky"
+ ));
+
+ testCommandEntry(entry, 24, 1, QLatin1String(
+ "plot_problem_3d(current_problem, ((-10,-10), (10,10)))"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "The Bohachevsky problem has many local optima."
+ ));
+
+ testCommandEntry(entry, 25, 1, QLatin1String(
+ "plot_problem_3d(current_problem, ((-2.5,-2.5), (2.5,2.5)))"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testCommandEntry(entry, 26, 2, QLatin1String(
+ "ax = plt.figure().gca()\n"
+ "plot_problem_controur(current_problem, ((-2.5,-2.5), (2.5,2.5)), optimum=(0,0), ax=ax)\n"
+ "ax.set_aspect('equal')"
+ ));
+ testTextResult(entry, 0, QLatin1String(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QLatin1String(
+ "## ($\\mu$,$\\lambda$) evolutionary strategy\n"
+ "\n"
+ "Some basic initialization parameters."
+ ));
+
+ testCommandEntry(entry, 27, QLatin1String(
+ "search_space_dims = 2 # we want to plot the individuals so this must be 2\n"
+ "\n"
+ "MIN_VALUE, MAX_VALUE = -10., 10.\n"
+ "MIN_STRAT, MAX_STRAT = 0.0000001, 1. "
+ ));
+
+ testCommandEntry(entry, 28, QLatin1String(
+ "# We are facing a minimization problem\n"
+ "creator.create(\"FitnessMin\", base.Fitness, weights=(-1.0,))\n"
+ "\n"
+ "# Evolutionary strategies need a location (mean)\n"
+ "creator.create(\"Individual\", array.array, typecode='d', \n"
+ " fitness=creator.FitnessMin, strategy=None)\n"
+ "# ...and a value of the strategy parameter.\n"
+ "creator.create(\"Strategy\", array.array, typecode=\"d\")"
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "Evolutionary strategy individuals are more complex than those we have seen so far.\n"
+ "\n"
+ "They need a custom creation/initialization function."
+ ));
+
+ testCommandEntry(entry, 29, QLatin1String(
+ "def init_univariate_es_ind(individual_class, strategy_class,\n"
+ " size, min_value, max_value, \n"
+ " min_strat, max_strat):\n"
+ " ind = individual_class(random.uniform(min_value, max_value) \n"
+ " for _ in range(size))\n"
+ " # we modify the instance to include the strategy in run-time.\n"
+ " ind.strategy = strategy_class(random.uniform(min_strat, max_strat) for _ in range(size))\n"
+ " return ind"
+ ));
+
+ testCommandEntry(entry, 30, QLatin1String(
+ "toolbox = base.Toolbox() \n"
+ "toolbox.register(\"individual\", init_univariate_es_ind, \n"
+ " creator.Individual, \n"
+ " creator.Strategy,\n"
+ " search_space_dims, \n"
+ " MIN_VALUE, MAX_VALUE, \n"
+ " MIN_STRAT, MAX_STRAT)\n"
+ "toolbox.register(\"population\", tools.initRepeat, list, \n"
+ " toolbox.individual)"
+ ));
+
+ testMarkdown(entry, QLatin1String(
+ "How does an individual and a population looks like?"
+ ));
+
+ testCommandEntry(entry, 31, QLatin1String(
+ "ind = toolbox.individual()\n"
+ "pop = toolbox.population(n=3)"
+ ));
+
+ testCommandEntry(entry, 32, QLatin1String(
+ "def plot_individual(individual, ax=None):\n"
+ " 'Plots an ES indiviual as center and 3*sigma ellipsis.'\n"
+ " cov = np.eye(len(individual)) * individual.strategy\n"
+ " plot_cov_ellipse(individual, cov, volume=0.99, alpha=0.56, ax=ax)\n"
+ " if ax:\n"
+ " ax.scatter(individual[0], individual[1], \n"
+ " marker='+', color='k', zorder=100)\n"
+ " else:\n"
+ " plt.scatter(individual[0], individual[1], \n"
+ " marker='+', color='k', zorder=100)\n"
+ "\n"
+ " \n"
+ "def plot_population(pop, gen=None, max_gen=None, ax=None):\n"
+ " if gen:\n"
+ " plt.subplot(max_gen, 1, gen)\n"
+ " \n"
+ " for ind in pop:\n"
+ " plot_individual(ind, ax)"
+ ));
+
+ qDebug() << "command entry 33";
+ testCommandEntry(entry, 33, 2, QString::fromUtf8(
+ "plot_problem_controur(current_problem, ((-10,-10), (10,10)), optimum=(0,0))\n"
+ "plot_individual(ind)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ qDebug() << "command entry 34";
+ testCommandEntry(entry, 34, 2, QString::fromUtf8(
+ "plot_problem_controur(current_problem, ((-10,-10), (10,10)), optimum=(0,0))\n"
+ "plot_population(pop)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Mutation of an evolution strategy individual according to its strategy attribute. \n"
+ "First the strategy is mutated according to an extended log normal rule, \n"
+ "$$\n"
+ "\\boldsymbol{\\sigma}_t = \\exp(\\tau_0 \\mathcal{N}_0(0, 1)) \\left[ \\sigma_{t-1, 1}\\exp(\\tau\n"
+ "\\mathcal{N}_1(0, 1)), \\ldots, \\sigma_{t-1, n} \\exp(\\tau\n"
+ "\\mathcal{N}_n(0, 1))\\right],\n"
+ "$$\n"
+ "with \n"
+ "$$\\tau_0 =\n"
+ "\\frac{c}{\\sqrt{2n}}\\text{ and }\\tau = \\frac{c}{\\sqrt{2\\sqrt{n}}},\n"
+ "$$\n"
+ "\n"
+ "the individual is mutated by a normal distribution of mean 0 and standard deviation of $\\boldsymbol{\\sigma}_{t}$ (its current strategy). \n"
+ "\n"
+ "A recommended choice is $c=1$ when using a $(10,100)$ evolution strategy."
+ ));
+
+ qDebug() << "command entry 35";
+ testCommandEntry(entry, 35, QString::fromUtf8(
+ "toolbox.register(\"mutate\", tools.mutESLogNormal, c=1, indpb=0.1)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Blend crossover on both, the individual and the strategy."
+ ));
+
+ qDebug() << "command entry 36";
+ testCommandEntry(entry, 36, QString::fromUtf8(
+ "toolbox.register(\"mate\", tools.cxESBlend, alpha=0.1)\n"
+ "toolbox.register(\"evaluate\", current_problem)\n"
+ "toolbox.register(\"select\", tools.selBest)"
+ ));
+
+ qDebug() << "command entry 37";
+ testCommandEntry(entry, 37, QString::fromUtf8(
+ "mu_es, lambda_es = 3,21\n"
+ "\n"
+ "pop = toolbox.population(n=mu_es)\n"
+ "hof = tools.HallOfFame(1)\n"
+ "\n"
+ "pop_stats = tools.Statistics(key=copy.deepcopy)\n"
+ "pop_stats.register('pop', copy.deepcopy) # -- copies the populations themselves\n"
+ " \n"
+ "pop, logbook = algorithms.eaMuCommaLambda(pop, toolbox, mu=mu_es, lambda_=lambda_es, \n"
+ " cxpb=0.6, mutpb=0.3, ngen=40, stats=pop_stats, halloffame=hof, verbose=False)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### The final population"
+ ));
+
+ qDebug() << "command entry 38";
+ testCommandEntry(entry, 38, 2, QString::fromUtf8(
+ "plot_problem_controur(current_problem, ((-10,-10), (10,10)), optimum=(0,0))\n"
+ "plot_population(pop)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The plot (most probably) shows a \"dark blue\" ellipse as all individuals are overlapping. "
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let's see how the evolutionary process took place in animated form."
+ ));
+
+ qDebug() << "command entry 39";
+ testCommandEntry(entry, 39, QString::fromUtf8(
+ "from matplotlib import animation\n"
+ "from IPython.display import HTML"
+ ));
+
+ qDebug() << "command entry 40";
+ testCommandEntry(entry, 40, QString::fromUtf8(
+ "def animate(i):\n"
+ " 'Updates all plots to match frame _i_ of the animation.'\n"
+ " ax.clear()\n"
+ " plot_problem_controur(current_problem, ((-10.1,-10.1), (10.1,10.1)), optimum=(0,0), ax=ax)\n"
+ " plot_population(logbook[i]['pop'], ax=ax)\n"
+ " ax.set_title('$t=$' +str(i))\n"
+ " return []"
+ ));
+
+ qDebug() << "command entry 41";
+ testCommandEntry(entry, 41, 1, QString::fromUtf8(
+ "fig = plt.figure(figsize=(5,5))\n"
+ "ax = fig.gca()\n"
+ "anim = animation.FuncAnimation(fig, animate, frames=len(logbook), interval=300, blit=True)\n"
+ "plt.close()"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 42";
+ testCommandEntry(entry, 42, 2, QString::fromUtf8(
+ "HTML(anim.to_html5_video())"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)\n"
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ testHtmlResult(entry, 1, QString::fromUtf8(
+ "<IPython.core.display.HTML object>"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "How the population progressed as the evolution proceeded?"
+ ));
+
+ qDebug() << "command entry 43";
+ testCommandEntry(entry, 43, QString::fromUtf8(
+ "pop = toolbox.population(n=mu_es)\n"
+ "\n"
+ "stats = tools.Statistics(lambda ind: ind.fitness.values)\n"
+ "stats.register(\"avg\", np.mean)\n"
+ "stats.register(\"std\", np.std)\n"
+ "stats.register(\"min\", np.min)\n"
+ "stats.register(\"max\", np.max)\n"
+ " \n"
+ "pop, logbook = algorithms.eaMuCommaLambda(pop, toolbox, \n"
+ " mu=mu_es, lambda_=lambda_es, \n"
+ " cxpb=0.6, mutpb=0.3, \n"
+ " ngen=40, stats=stats, \n"
+ " verbose=False)"
+ ));
+
+ qDebug() << "command entry 44";
+ testCommandEntry(entry, 44, 1, QString::fromUtf8(
+ "plt.figure(1, figsize=(7, 4))\n"
+ "plt.plot(logbook.select('avg'), 'b-', label='Avg. fitness')\n"
+ "plt.fill_between(range(len(logbook)), logbook.select('max'), logbook.select('min'), facecolor='blue', alpha=0.47)\n"
+ "plt.plot(logbook.select('std'), 'm--', label='Std. deviation')\n"
+ "plt.legend(frameon=True)\n"
+ "plt.ylabel('Fitness'); plt.xlabel('Iterations');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "What happens if we increase $\\mu$ and $\\lambda$?"
+ ));
+
+ qDebug() << "command entry 45";
+ testCommandEntry(entry, 45, 1, QString::fromUtf8(
+ "mu_es, lambda_es = 10,100\n"
+ "pop, logbook = algorithms.eaMuCommaLambda(toolbox.population(n=mu_es), toolbox, mu=mu_es, lambda_=lambda_es, \n"
+ " cxpb=0.6, mutpb=0.3, ngen=40, stats=stats, halloffame=hof, verbose=False)\n"
+ "plt.figure(1, figsize=(7, 4))\n"
+ "plt.plot(logbook.select('avg'), 'b-', label='Avg. fitness')\n"
+ "plt.fill_between(range(len(logbook)), logbook.select('max'), logbook.select('min'), facecolor='blue', alpha=0.47)\n"
+ "plt.plot(logbook.select('std'), 'm--', label='Std. deviation')\n"
+ "plt.legend(frameon=True)\n"
+ "plt.ylabel('Fitness'); plt.xlabel('Iterations');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Covariance Matrix Adaptation Evolutionary Strategy"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "* In an evolution strategy, new candidate solutions are sampled according to a multivariate normal distribution in the $\\mathbb{R}^n$. \n"
+ "* Recombination amounts to selecting a new mean value for the distribution. \n"
+ "* Mutation amounts to adding a random vector, a perturbation with zero mean. \n"
+ "* Pairwise dependencies between the variables in the distribution are represented by a covariance matrix. \n"
+ "\n"
+ "### The covariance matrix adaptation (CMA) is a method to update the covariance matrix of this distribution. \n"
+ "\n"
+ "> This is particularly useful, if the objective function $f()$ is ill-conditioned."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### CMA-ES features\n"
+ "\n"
+ "* Adaptation of the covariance matrix amounts to learning a second order model of the underlying objective function.\n"
+ "* This is similar to the approximation of the inverse Hessian matrix in the Quasi-Newton method in classical optimization. \n"
+ "* In contrast to most classical methods, fewer assumptions on the nature of the underlying objective function are made. \n"
+ "* *Only the ranking between candidate solutions is exploited* for learning the sample distribution and neither derivatives nor even the function values themselves are required by the method."
+ ));
+
+ qDebug() << "command entry 46";
+ testCommandEntry(entry, 46, QString::fromUtf8(
+ "from deap import cma"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "A similar setup to the previous one."
+ ));
+
+ qDebug() << "command entry 47";
+ testCommandEntry(entry, 47, 1, QString::fromUtf8(
+ "creator.create(\"Individual\", list, fitness=creator.FitnessMin)\n"
+ "toolbox = base.Toolbox()\n"
+ "toolbox.register(\"evaluate\", current_problem)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/home/mmmm1998/.local/lib/python3.6/site-packages/deap/creator.py:141: RuntimeWarning: A class named 'Individual' has already been created and it will be overwritten. Consider deleting previous creation of that class or rename it.\n"
+ " RuntimeWarning)"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "We will place our start point by hand at $(5,5)$."
+ ));
+
+ qDebug() << "command entry 48";
+ testCommandEntry(entry, 48, 1, QString::fromUtf8(
+ "cma_es = cma.Strategy(centroid=[5.0]*search_space_dims, sigma=5.0, lambda_=5*search_space_dims)\n"
+ "toolbox.register(\"generate\", cma_es.generate, creator.Individual)\n"
+ "toolbox.register(\"update\", cma_es.update)\n"
+ "\n"
+ "hof = tools.HallOfFame(1)\n"
+ "stats = tools.Statistics(lambda ind: ind.fitness.values)\n"
+ "stats.register(\"avg\", np.mean)\n"
+ "stats.register(\"std\", np.std)\n"
+ "stats.register(\"min\", np.min)\n"
+ "stats.register(\"max\", np.max)\n"
+ "\n"
+ "# The CMA-ES algorithm converge with good probability with those settings\n"
+ "pop, logbook = algorithms.eaGenerateUpdate(toolbox, ngen=60, stats=stats, \n"
+ " halloffame=hof, verbose=False)\n"
+ " \n"
+ "print(\"Best individual is %s, fitness: %s\" % (hof[0], hof[0].fitness.values))"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Best individual is [-2.524016407520609e-08, -4.0857988576506457e-08], fitness: (6.517009154549669e-14,)"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 49";
+ testCommandEntry(entry, 49, 1, QString::fromUtf8(
+ "plt.figure(1, figsize=(7, 4))\n"
+ "plt.plot(logbook.select('avg'), 'b-', label='Avg. fitness')\n"
+ "plt.fill_between(range(len(logbook)), logbook.select('max'), logbook.select('min'), facecolor='blue', alpha=0.47)\n"
+ "plt.plot(logbook.select('std'), 'm--', label='Std. deviation')\n"
+ "plt.legend(frameon=True)\n"
+ "plt.ylabel('Fitness'); plt.xlabel('Iterations');"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### OK, but wouldn't it be nice to have an animated plot of how CMA-ES progressed? \n"
+ "\n"
+ "* We need to do some coding to make this animation work.\n"
+ "* We are going to create a class named `PlotableStrategy` that inherits from `deap.cma.Strategy`. This class logs the features we need to make the plots as evolution takes place. That is, for every iteration we store:\n"
+ " * Current centroid and covariance ellipsoid.\n"
+ " * Updated centroid and covariance.\n"
+ " * Sampled individuals.\n"
+ " * Evolution path.\n"
+ " \n"
+ "_Note_: I think that DEAP's implementation of CMA-ES has the drawback of storing information that should be stored as part of \"individuals\". I leave this for an afternoon hack."
+ ));
+
+ qDebug() << "command entry 50";
+ testCommandEntry(entry, 50, QString::fromUtf8(
+ "from math import sqrt, log, exp\n"
+ "class PlotableStrategy(cma.Strategy):\n"
+ " \"\"\"This is a modification of deap.cma.Strategy class.\n"
+ " We store the execution data in order to plot it.\n"
+ " **Note:** This class should not be used for other uses than\n"
+ " the one it is meant for.\"\"\"\n"
+ " \n"
+ " def __init__(self, centroid, sigma, **kargs):\n"
+ " \"\"\"Does the original initialization and then reserves \n"
+ " the space for the statistics.\"\"\"\n"
+ " super(PlotableStrategy, self).__init__(centroid, sigma, **kargs)\n"
+ " \n"
+ " self.stats_centroids = []\n"
+ " self.stats_new_centroids = []\n"
+ " self.stats_covs = []\n"
+ " self.stats_new_covs = []\n"
+ " self.stats_offspring = []\n"
+ " self.stats_offspring_weights = []\n"
+ " self.stats_ps = []\n"
+ " \n"
+ " def update(self, population):\n"
+ " \"\"\"Update the current covariance matrix strategy from the\n"
+ " *population*.\n"
+ " \n"
+ " :param population: A list of individuals from which to update the\n"
+ " parameters.\n"
+ " \"\"\"\n"
+ " # -- store current state of the algorithm\n"
+ " self.stats_centroids.append(copy.deepcopy(self.centroid))\n"
+ " self.stats_covs.append(copy.deepcopy(self.C))\n"
+ " \n"
+ " \n"
+ " population.sort(key=lambda ind: ind.fitness, reverse=True)\n"
+ " \n"
+ " # -- store sorted offspring\n"
+ " self.stats_offspring.append(copy.deepcopy(population))\n"
+ " \n"
+ " old_centroid = self.centroid\n"
+ " self.centroid = np.dot(self.weights, population[0:self.mu])\n"
+ " \n"
+ " # -- store new centroid\n"
+ " self.stats_new_centroids.append(copy.deepcopy(self.centroid))\n"
+ " \n"
+ " c_diff = self.centroid - old_centroid\n"
+ " \n"
+ " \n"
+ " # Cumulation : update evolution path\n"
+ " self.ps = (1 - self.cs) * self.ps \\\n"
+ " + sqrt(self.cs * (2 - self.cs) * self.mueff) / self.sigma \\\n"
+ " * np.dot(self.B, (1. / self.diagD) \\\n"
+ " * np.dot(self.B.T, c_diff))\n"
+ " \n"
+ " # -- store new evol path\n"
+ " self.stats_ps.append(copy.deepcopy(self.ps))\n"
+ " \n"
+ " hsig = float((np.linalg.norm(self.ps) / \n"
+ " sqrt(1. - (1. - self.cs)**(2. * (self.update_count + 1.))) / self.chiN\n"
+ " < (1.4 + 2. / (self.dim + 1.))))\n"
+ " \n"
+ " self.update_count += 1\n"
+ " \n"
+ " self.pc = (1 - self.cc) * self.pc + hsig \\\n"
+ " * sqrt(self.cc * (2 - self.cc) * self.mueff) / self.sigma \\\n"
+ " * c_diff\n"
+ " \n"
+ " # Update covariance matrix\n"
+ " artmp = population[0:self.mu] - old_centroid\n"
+ " self.C = (1 - self.ccov1 - self.ccovmu + (1 - hsig) \\\n"
+ " * self.ccov1 * self.cc * (2 - self.cc)) * self.C \\\n"
+ " + self.ccov1 * np.outer(self.pc, self.pc) \\\n"
+ " + self.ccovmu * np.dot((self.weights * artmp.T), artmp) \\\n"
+ " / self.sigma**2\n"
+ " \n"
+ " # -- store new covs\n"
+ " self.stats_new_covs.append(copy.deepcopy(self.C))\n"
+ " \n"
+ " self.sigma *= np.exp((np.linalg.norm(self.ps) / self.chiN - 1.) \\\n"
+ " * self.cs / self.damps)\n"
+ " \n"
+ " self.diagD, self.B = np.linalg.eigh(self.C)\n"
+ " indx = np.argsort(self.diagD)\n"
+ " \n"
+ " self.cond = self.diagD[indx[-1]]/self.diagD[indx[0]]\n"
+ " \n"
+ " self.diagD = self.diagD[indx]**0.5\n"
+ " self.B = self.B[:, indx]\n"
+ " self.BD = self.B * self.diagD"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "It is now possible to use/test our new class."
+ ));
+
+ qDebug() << "command entry 51";
+ testCommandEntry(entry, 51, QString::fromUtf8(
+ "toolbox = base.Toolbox()\n"
+ "toolbox.register(\"evaluate\", current_problem)"
+ ));
+
+ qDebug() << "command entry 52";
+ testCommandEntry(entry, 52, QString::fromUtf8(
+ "max_gens = 40\n"
+ "cma_es = PlotableStrategy(centroid=[5.0]*search_space_dims, sigma=1.0, lambda_=5*search_space_dims)\n"
+ "toolbox.register(\"generate\", cma_es.generate, creator.Individual)\n"
+ "toolbox.register(\"update\", cma_es.update)\n"
+ "\n"
+ "# The CMA-ES algorithm converge with good probability with those settings\n"
+ "a = algorithms.eaGenerateUpdate(toolbox, ngen=max_gens, verbose=False)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Me can now code the `animate_cma_es()` function."
+ ));
+
+ qDebug() << "command entry 53";
+ testCommandEntry(entry, 53, QString::fromUtf8(
+ "norm=colors.Normalize(vmin=np.min(cma_es.weights), vmax=np.max(cma_es.weights))\n"
+ "sm = cm.ScalarMappable(norm=norm, cmap=plt.get_cmap('gray'))"
+ ));
+
+ qDebug() << "command entry 54";
+ testCommandEntry(entry, 54, QString::fromUtf8(
+ "def animate_cma_es(gen):\n"
+ " ax.cla()\n"
+ " plot_problem_controur(current_problem, ((-11,-11), (11,11)), optimum=(0,0), ax=ax)\n"
+ " \n"
+ " plot_cov_ellipse(cma_es.stats_centroids[gen], cma_es.stats_covs[gen], volume=0.99, alpha=0.29, ax=ax)\n"
+ " ax.plot(cma_es.stats_centroids[gen][0], cma_es.stats_centroids[gen][1], 'ro', markeredgecolor = 'none', ms=10)\n"
+ " \n"
+ " plot_cov_ellipse(cma_es.stats_new_centroids[gen], cma_es.stats_new_covs[gen], volume=0.99, \n"
+ " alpha=0.29, fc='green', ec='darkgreen', ax=ax)\n"
+ " ax.plot(cma_es.stats_new_centroids[gen][0], cma_es.stats_new_centroids[gen][1], 'go', markeredgecolor = 'none', ms=10)\n"
+ " \n"
+ " for i in range(gen+1):\n"
+ " if i == 0:\n"
+ " ax.plot((0,cma_es.stats_ps[i][0]),\n"
+ " (0,cma_es.stats_ps[i][1]), 'b--')\n"
+ " else:\n"
+ " ax.plot((cma_es.stats_ps[i-1][0],cma_es.stats_ps[i][0]),\n"
+ " (cma_es.stats_ps[i-1][1],cma_es.stats_ps[i][1]),'b--')\n"
+ " \n"
+ " for i,ind in enumerate(cma_es.stats_offspring[gen]):\n"
+ " if i < len(cma_es.weights):\n"
+ " color = sm.to_rgba(cma_es.weights[i])\n"
+ " else:\n"
+ " color= sm.to_rgba(norm.vmin)\n"
+ " ax.plot(ind[0], ind[1], 'o', color = color, ms=5, markeredgecolor = 'none')\n"
+ " \n"
+ " ax.set_ylim((-10,10))\n"
+ " ax.set_xlim((-10,10))\n"
+ " ax.set_title('$t=$' +str(gen))\n"
+ " return []"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### CMA-ES progress "
+ ));
+
+ qDebug() << "command entry 55";
+ testCommandEntry(entry, 55, 1, QString::fromUtf8(
+ "fig = plt.figure(figsize=(6,6))\n"
+ "ax = fig.gca()\n"
+ "anim = animation.FuncAnimation(fig, animate_cma_es, frames=max_gens, interval=300, blit=True)\n"
+ "plt.close()"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 56";
+ testCommandEntry(entry, 56, 2, QString::fromUtf8(
+ "HTML(anim.to_html5_video())"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "/usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:960: UserWarning: The following kwargs were not used by contour: 'rstride', 'cstride', 'linewidth'\n"
+ " s)"
+ ));
+ testHtmlResult(entry, 1, QString::fromUtf8(
+ "<IPython.core.display.HTML object>"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "* Current centroid and covariance: **red**.\n"
+ "* Updated centroid and covariance: **green**. \n"
+ "* Sampled individuals: **shades of gray representing their corresponding weight**.\n"
+ "* Evolution path: **blue line starting in (0,0)**. "
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Homework\n"
+ "\n"
+ "1. Make an animated plot with the covariance update process. You can rely on the notebook of the previous demonstration class.\n"
+ "2. Compare ES, CMA-ES and a genetic algortihm.\n"
+ "2. How do you think that evolutionary strategies and CMA-ES should be modified in order to cope with combinatorial problems?\n"
+ "3. How can evolution strategies be improved?\n"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "<hr/>\n"
+ "<div class=\"container-fluid\">\n"
+ " <div class='well'>\n"
+ " <div class=\"row\">\n"
+ " <div class=\"col-md-3\" align='center'>\n"
+ " <img align='center'alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\"/>\n"
+ " </div>\n"
+ " <div class=\"col-md-9\">\n"
+ " This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/).\n"
+ " </div>\n"
+ " </div>\n"
+ " </div>\n"
+ "</div>"
+ ));
+
+ qDebug() << "command entry 58";
+ testCommandEntry(entry, 58, 1, QString::fromUtf8(
+ "# To install run: pip install version_information\n"
+ "%load_ext version_information\n"
+ "%version_information scipy, numpy, matplotlib, seaborn, deap"
+ ));
+ testHtmlResult(entry, 0, QString::fromLatin1(
+ "Software versions\n"
+ "Python 3.6.7 64bit [GCC 8.2.0]\n"
+ "IPython 6.3.1\n"
+ "OS Linux 4.15.0 50 generic x86_64 with Ubuntu 18.04 bionic\n"
+ "scipy 1.1.0\n"
+ "numpy 1.14.5\n"
+ "matplotlib 2.2.2\n"
+ "seaborn 0.9.0\n"
+ "deap 1.2\n"
+ "Wed May 29 19:31:25 2019 MSK"
+ ), QString::fromLatin1(
+ "<table><tr><th>Software</th><th>Version</th></tr><tr><td>Python</td><td>3.6.7 64bit [GCC 8.2.0]</td></tr><tr><td>IPython</td><td>6.3.1</td></tr><tr><td>OS</td><td>Linux 4.15.0 50 generic x86_64 with Ubuntu 18.04 bionic</td></tr><tr><td>scipy</td><td>1.1.0</td></tr><tr><td>numpy</td><td>1.14.5</td></tr><tr><td>matplotlib</td><td>2.2.2</td></tr><tr><td>seaborn</td><td>0.9.0</td></tr><tr><td>deap</td><td>1.2</td></tr><tr><td colspan='2'>Wed May 29 19:31:25 2019 MSK</td></tr></table>"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 59";
+ testCommandEntry(entry, 59, 1, QString::fromUtf8(
+ "# this code is here for cosmetic reasons\n"
+ "from IPython.core.display import HTML\n"
+ "from urllib.request import urlopen\n"
+ "HTML(urlopen('https://raw.githubusercontent.com/lmarti/jupyter_custom/master/custom.include').read().decode('utf-8'))"
+ ));
+ testHtmlResult(entry, 0, QString::fromUtf8(
+ "<IPython.core.display.HTML object>"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ " "
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testJupyter3()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("Population_Genetics.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python2"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Population Genetics in *an* RNA World\n"
+ "\n"
+ "In order to study population genetics, we first need a model of a population. And even before that, we need to define what we mean by *population*. Populations can be defined on many levels and with many diffferent criteria. For our purposes, we will simply say that a population is a set of individuals sharing a common environment. And because this is population *genetics* we can think of individuals as entities comprising of specific genes or chromosomes. \n"
+ "\n"
+ "So where do we get a population from? As you may have discussed in previous workshops, there are very large datasets containing sequencing information from different populations. So we could download one of these datasets and perform some analysis on it. But I find this can be dry and tedious. So why download data when we can simply create our own?\n"
+ "\n"
+ "In this workshop we're going to be creating and studying our own \"artificial\" populations to illustrate some important population genetics concepts and methodologies. Not only will this help you learn population genetics, but you will get a lot more programming practice than if we were to simply parse data files and go from there. \n"
+ "\n"
+ "More specifically, we're going to build our own RNA world.\n"
+ "\n"
+ "As you may know, RNA is widely thought to be the first self replicating life-form to arise x billion years ago. One of the strongest arguments for this theory is that RNA is able to carry information in its nucleotides like DNA, and like protein, it is able to adopt higher order structures to catalyze reactions, such as self replication. So it is likely, and there is growing evidence that this is the case, that the first form of replicating life was RNA. And because of this dual property of RNA as an information vessel as well as a structural/functional element we can use RNA molecules to build very nice population models. \n"
+ "\n"
+ "So in this notebook, I'll be walking you through building genetic populations, simulating their evolution, and using statistics and other mathematical tools for understanding key properties of populations.\n"
+ "\n"
+ "### Building an RNA population\n"
+ "\n"
+ "As we saw earlier, RNA has the nice property of posessing a strong mapping between information carrying (sequence) and function (structure). This is analogous to what is known in evolutionary terms as a genotype and a phenotype. With these properties, we have everything we need to model a population, and simulate its evolution.\n"
+ "\n"
+ "#### RNA sequence-structure\n"
+ "\n"
+ "We can think of the genotype as a sequence $s$ consisting of letters/nucleotides from the alphabet $\\{U,A,C,G\\}$. The corresponding phenotype $\\omega$ is the secondary structure of $s$ which can be thought of as a pairing between nucleotides in the primary sequence that give rise to a 2D architecture. Because it has been shown that the function of many biomolecules, including RNA, is driven by structure this gives us a good proxy for phenotype. \n"
+ "\n"
+ "Below is an example of what an RNA secondary structure, or pairing, looks like."
+ ));
+
+ qDebug() << "command entry 1";
+ testCommandEntry(entry, 1, 1, QString::fromUtf8(
+ "### 1\n"
+ "\n"
+ "from IPython.display import Image\n"
+ "#This will load an image of an RNA secondary structure\n"
+ "Image(url='http://www.tbi.univie.ac.at/~pkerp/forgi/_images/1y26_ss.png')"
+ ));
+ testHtmlResult(entry, 0, QString::fromLatin1(
+ "<IPython.core.display.Image object>"
+ ), QString::fromLatin1(
+ "<img src=\"http://www.tbi.univie.ac.at/~pkerp/forgi/_images/1y26_ss.png\"/>"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "As you can see, unparied positions are forming loop-like structures, and paired positions are forming stem-like structures. It is this spatial arrangement of nucleotides that drives RNA's function. Therefore, another sequence that adopts a similar shape, is likely to behave in a similar manner. Another thing to notice is that, although in reality this is often not the case, in general we only allow pairs between $\\{C,G\\}$ and $\\{A, U\\}$ nucleotides, most modern approaches allow for non-canonical pairings and you will find some examples of this in the above structure.\n"
+ "\n"
+ "*How do we go from a sequence to a structure?*\n"
+ "\n"
+ "So a secondary structure is just a list of pairings between positions. How do we get the optimal pairing?\n"
+ "\n"
+ "The algorithm we're going to be using in our simulations is known as the Nussinov Algorithm. The Nussinov algorithm is one of the first and simplest attempts at predicting RNA structure. Because bonds tend to stabilize RNA, the algorithm tries to maximize the number of pairs in the structure and return that as its solution. Current approaches achieve more accurate solutions by using energy models based one experimental values to then obtain a structure that minimizes free energy. But since we're not really concerned with the accuracy of our predictions, Nussinov is a good entry point. Furthermore, the main algorithmic concepts are the same between Nussinov and state of the art RNA structure prediction algorithms. I implemented the algorithm in a separate file called `fold.py` that we can import and use its functions. I'm not going to go into detail here on how the algorithm works because it is beyond the scope of this workshop but there is a bonus exercise at the end if you're curious.\n"
+ "\n"
+ "You can predict a secondary structure by calling `nussinov()` with a sequence string and it will return a tuple in the form `(structure, pairs)`."
+ ));
+
+ qDebug() << "command entry 2";
+ testCommandEntry(entry, 2, 1, QString::fromUtf8(
+ "import numpy as np\n"
+ "from fold import nussinov\n"
+ "\n"
+ "sequence_to_fold = \"ACCCGAUGUUAUAUAUACCU\"\n"
+ "struc = nussinov(sequence_to_fold)\n"
+ "print(sequence_to_fold)\n"
+ "print(struc[0])"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "ACCCGAUGUUAUAUAUACCU\n"
+ "(...(..(((....).))))"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "You will see a funny dot-bracket string in the output. This is a representation of the structure of an RNA. Quite simply, a matching parir of parentheses (open and close) correspond to the nucleotides at those positions being paried. Whereas, a dot means that that position is unpaired in the structure. Feel free to play around with the input sequence to get a better understanding of the notation.\n"
+ "\n"
+ "So that's enough about RNA structure prediction. Let's move on to building our populations.\n"
+ "\n"
+ "### Fitness of a sequence: Target Structure\n"
+ "\n"
+ "Now that we have a good way of getting a phenotype (secondary structure), we need a way to evaluate the fitness of that phenotype. If we think in real life terms, fitness is the ability of a genotype to replicate into the next generation. If you have a gene carrying a mutation that causes some kind of disease, your fitness is decreased and you have a lower chance of contributing offspring to the next generation. On a molecular level the same concept applies. A molecule needs to accomplish a certain function, i.e. bind to some other molecule or send some kind of signal. And as we've seen before, the most important factor that determines how well it can carry out this function is its structure. So we can imagine that a certain structure, we can call this a 'target' structure, is required in order to accomplish a certain function. So a sequence that folds correctly to a target structure is seen as having a greater fitness than one that does not. Since we've encoded structures as simple dot-bracket strings, we can easily compare structures and thus evaluate the fitness between a given structure and the target, or 'correct' structure. \n"
+ "\n"
+ "There are many ways to compare structures $w_{1}$ and $w_{2}$, but we're going to use one of the simplest ways, which is base-pair distance. This is just the number of pairs in $w_{1}$ that are not in $w_{2}$. Again, this is beyond the scope of this workshop so I'll just give you the code for it and if you would like to know more you can ask me."
+ ));
+
+ qDebug() << "command entry 3";
+ testCommandEntry(entry, 3, 1, QString::fromUtf8(
+ "### 3\n"
+ "\n"
+ "#ss_to_bp() and bp_distance() by Vladimir Reinharz.\n"
+ "def ss_to_bp(ss):\n"
+ " bps = set()\n"
+ " l = []\n"
+ " for i, x in enumerate(ss):\n"
+ " if x == '(':\n"
+ " l.append(i)\n"
+ " elif x == ')':\n"
+ " bps.add((l.pop(), i))\n"
+ " return bps\n"
+ "\n"
+ "def bp_distance(w1, w2):\n"
+ " \"\"\"\n"
+ " return base pair distance between structures w1 and w1. \n"
+ " w1 and w1 are lists of tuples representing pairing indices.\n"
+ " \"\"\"\n"
+ " return len(set(w1).symmetric_difference(set(w2)))\n"
+ "\n"
+ "#let's fold two sequences\n"
+ "w1 = nussinov(\"CCAAAAGG\")\n"
+ "w2 = nussinov(\"ACAAAAGA\")\n"
+ "\n"
+ "print(w1)\n"
+ "print(w2)\n"
+ "\n"
+ "#give the list of pairs to bp_distance and see what the distance is.\n"
+ "print(bp_distance(w1[-1], w2[-1]))"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "('((....))', [(0, 7), (1, 6)])\n"
+ "('.(....).', [(1, 6)])\n"
+ "1"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Defining a cell: a little bit of Object Oriented Programming (OOP)\n"
+ "\n"
+ "Since we're going to be playing aroudn with sequences and structures and fitness values a lot, it's best to package it all nicely into an object. As you'll have seen with Vlad, objects are just a nice way of grouping data into an easily accessible form. \n"
+ "\n"
+ "We're trying to simulate evolution on a very simple kind of organism, or cell. It contains two copies of a RNA gene, each with a corresponding structure. "
+ ));
+
+ qDebug() << "command entry 4";
+ testCommandEntry(entry, 4, 1, QString::fromUtf8(
+ "### 4\n"
+ "class Cell:\n"
+ " def __init__(self, seq_1, struc_1, seq_2, struc_2):\n"
+ " self.sequence_1 = seq_1\n"
+ " self.sequence_2 = seq_2\n"
+ " self.structure_1 = struc_1\n"
+ " self.structure_2 = struc_2\n"
+ " \n"
+ "#for now just try initializing a Cell with made up sequences and structures\n"
+ "cell = Cell(\"AACCCCUU\", \"((.....))\", \"GGAAAACA\", \"(....).\")\n"
+ "print(cell.sequence_1, cell.structure_2, cell.sequence_1, cell.structure_2)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "AACCCCUU (....). AACCCCUU (....)."
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Populations of Cells\n"
+ "\n"
+ "Now we've defined a 'Cell'. Since a population is a collection of individuals our populations will naturally consist of **lists** of 'Cell' objects, each with their own sequences. Here we initialize all the Cells with random sequences and add them to the 'population' list."
+ ));
+
+ qDebug() << "command entry 5";
+ testCommandEntry(entry, 5, QString::fromUtf8(
+ "### 5\n"
+ "import random\n"
+ "\n"
+ "def populate(target, pop_size=100):\n"
+ " \n"
+ " population = []\n"
+ "\n"
+ " for i in range(pop_size):\n"
+ " #get a random sequence to start with\n"
+ " sequence = \"\".join([random.choice(\"AUCG\") for _ in range(len(target))])\n"
+ " #use nussinov to get the secondary structure for the sequence\n"
+ " structure = nussinov(sequence)\n"
+ " #add a new Cell object to the population list\n"
+ " new_cell = Cell(sequence, structure, sequence, structure)\n"
+ " new_cell.id = i\n"
+ " new_cell.parent = i\n"
+ " population.append(new_cell)\n"
+ " \n"
+ " return population"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Try creating a new population and printing the first 10 sequences and structures (in dot-bracket) on the first chromosome!"
+ ));
+
+ qDebug() << "command entry 6";
+ testCommandEntry(entry, 6, 1, QString::fromUtf8(
+ "### 6\n"
+ "target = \"(.(((....).).).)....\"\n"
+ "pop = populate(target, pop_size=100)\n"
+ "for p in pop[:10]:\n"
+ " print(p.id, p.sequence_1, p.structure_1[0], p.sequence_2, p.structure_2[0])"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "0 GGACGGAGCAUUAUCUGCUA (((...(....).))..).. GGACGGAGCAUUAUCUGCUA (((...(....).))..)..\n"
+ "1 ACAAUCGCCUCACUCACGUU (.(..((..(.....))))) ACAAUCGCCUCACUCACGUU (.(..((..(.....)))))\n"
+ "2 UCCGUUCUAUUAGUUCAUAG .(..(((.....)...).)) UCCGUUCUAUUAGUUCAUAG .(..(((.....)...).))\n"
+ "3 CAAACCUUGUUCGUAAUACA .(....)((((....).))) CAAACCUUGUUCGUAAUACA .(....)((((....).)))\n"
+ "4 GCAUCGAGUGCGCGGCAUAA ((..((....)).).).... GCAUCGAGUGCGCGGCAUAA ((..((....)).).)....\n"
+ "5 GAAUUCUGAGAUCAUACUCG (((((.....)..))..)). GAAUUCUGAGAUCAUACUCG (((((.....)..))..)).\n"
+ "6 GGAACCGUAGGCUUUGCAAG (.(((....)..))..)... GGAACCGUAGGCUUUGCAAG (.(((....)..))..)...\n"
+ "7 GCAAAAGACAGCCCGCAUCA ((....).)((....).).. GCAAAAGACAGCCCGCAUCA ((....).)((....).)..\n"
+ "8 GGGUACCGACAACGGAGCUC ((.(.(((....)))).).) GGGUACCGACAACGGAGCUC ((.(.(((....)))).).)\n"
+ "9 CUCUUAUUUCACUUAGCUGU (.(((.....)...))..). CUCUUAUUUCACUUAGCUGU (.(((.....)...))..)."
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## The Fitness of a Cell\n"
+ "\n"
+ "Now that we can store populatoins of cells, we need a way to evaluate the fitness of a given Cell. Recall that a Cell is simply an object that contains two RNA sequences (think of it as two copies of a gene on each chromosome). \n"
+ "\n"
+ "So we simply need to loop through each Cell in a population and compute base pair distance to the target structure. However, simply using base-pair distance is not a very good measure of fitness. There are two reasons for this: \n"
+ "\n"
+ "1. We want fitness to represent a *probability* that a cell will reproduce, and base pair distance is an integer.\n"
+ "2. We want this probability to be a *relative* measure. That is, we want to be the fitness to be proportional to how good a cell is with respect to all others in the population. This touches on an important principle in evolution where we only need to be 'better' than the competition and not good in some absolute measure. For example, if you and I are being chased by a bear. In order to survive, I only need to be faster than you, and not necessarily some absolute level of fitness.\n"
+ "\n"
+ "In order to get a probability (number between 0 and 1) we use the following equation to define the fitness of a structure $\\omega$ on a target structure $T$:\n"
+ "\n"
+ "$$P(\\omega, T) = N^{-1} exp(\\frac{-\\beta \\texttt{dist}(\\omega, T)}{\\texttt{len}(\\omega)})$$\n"
+ "\n"
+ "$$N = \\sum_{i \\in Pop}{P(\\omega_i, T})$$\n"
+ "\n"
+ "Here, the $N$ is what gives us the 'relative' measure because we divide the fitness of the Cell by the sum of the fitness of every other Cell. \n"
+ "\n"
+ "Let's take a quick look at how this function behaves if we plot different base pair distance values.\n"
+ "\n"
+ "What is the effect of the parameter $\\beta$? Try plotting the same function but with different values of $\\beta$."
+ ));
+
+ qDebug() << "command entry 8";
+ testCommandEntry(entry, 8, 2, QString::fromUtf8(
+ "%matplotlib inline\n"
+ "import matplotlib.pyplot as plt\n"
+ "import math\n"
+ "import seaborn as sns\n"
+ "\n"
+ "target_length = 50\n"
+ "beta = -2\n"
+ "\n"
+ "plt.plot([math.exp(beta * (bp_dist / float(target_length))) for bp_dist in range(target_length)])\n"
+ "plt.xlabel(\"Base pair distance to target structure\")\n"
+ "plt.ylabel(\"P(w, T)\")"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1("Text(0,0.5,'P(w, T)')"));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "As you can see, it's a very simple function that evaluates to 1 (highest fitness) if the base pair distance is 0, and decreases as the structures get further and further away from the target. I didn't include the $N$ in the plotting as it will be a bit more annoying to compute, but it is simply a scaling factor so the shape and main idea won't be different.\n"
+ "\n"
+ "Now we can use this function to get a fitness value for each Cell in our population."
+ ));
+
+ qDebug() << "command entry 9";
+ testCommandEntry(entry, 9, 1, QString::fromUtf8(
+ "### 7\n"
+ "\n"
+ "def compute_fitness(population, target, beta=-2):\n"
+ " \"\"\"\n"
+ " Assigns a fitness and bp_distance value to each cell in the population.\n"
+ " \"\"\"\n"
+ " #store the fitness values of each cell\n"
+ " tot = []\n"
+ " #iterate through each cell\n"
+ " for cell in population:\n"
+ " \n"
+ " #calculate the bp_distance of each chromosome using the cell's structure\n"
+ " bp_distance_1 = bp_distance(cell.structure_1[-1], ss_to_bp(target))\n"
+ " bp_distance_2 = bp_distance(cell.structure_2[-1], ss_to_bp(target))\n"
+ " \n"
+ " #use the bp_distances and the above fitness equation to calculate the fitness of each chromosome\n"
+ " fitness_1 = math.exp((beta * bp_distance_1 / float(len(cell.sequence_1))))\n"
+ " fitness_2 = math.exp((beta * bp_distance_2 / float(len(cell.sequence_2))))\n"
+ "\n"
+ " #get the fitness of the whole cell by multiplying the fitnesses of each chromosome\n"
+ " cell.fitness = fitness_1 * fitness_2\n"
+ " \n"
+ " #store the bp_distance of each chromosome.\n"
+ " cell.bp_distance_1 = bp_distance_1\n"
+ " cell.bp_distance_2 = bp_distance_2\n"
+ " \n"
+ " \n"
+ " #add the cell's fitness value to the list of all fitness values (used for normalization later)\n"
+ " tot.append(cell.fitness)\n"
+ "\n"
+ " #normalization factor is sum of all fitness values in population\n"
+ " norm = np.sum(tot)\n"
+ " #divide all fitness values by the normalization factor.\n"
+ " for cell in population:\n"
+ " cell.fitness = cell.fitness / norm\n"
+ "\n"
+ " return None\n"
+ "\n"
+ "compute_fitness(pop, target)\n"
+ "for cell in pop[:10]:\n"
+ " print(cell.fitness, cell.bp_distance_1, cell.bp_distance_2)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "0.013612068231863143 6 6\n"
+ "0.007470461436952334 9 9\n"
+ "0.009124442203822766 8 8\n"
+ "0.007470461436952334 9 9\n"
+ "0.013612068231863143 6 6\n"
+ "0.007470461436952334 9 9\n"
+ "0.02030681957427158 4 4\n"
+ "0.009124442203822766 8 8\n"
+ "0.006116296518116008 10 10\n"
+ "0.009124442203822766 8 8"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Introducing diversity: Mutations\n"
+ "\n"
+ "Evolution would go nowhere without random mutations. While mutations are technically just random errors in the copying of genetic material, they are essential in the process of evolution. This is because they introduce novel diversity to populatons, which with a low frequency can be beneficial. And when a beneficial mutation arises (i.e. a mutation that increases fitness, or replication probability) it quickly takes over the population and the populatioin as a whole has a higher fitness.\n"
+ "\n"
+ "Implementing mutations in our model will be quite straightforward. Since mutations happen at the genotype/sequence level, we simply have to iterate through our strings of nucleotides (sequences) and randomly introduce changes."
+ ));
+
+ qDebug() << "command entry 10";
+ testCommandEntry(entry, 10, 1, QString::fromUtf8(
+ "def mutate(sequence, mutation_rate=0.001):\n"
+ " \"\"\"Takes a sequence and mutates bases with probability mutation_rate\"\"\"\n"
+ " \n"
+ " #start an empty string to store the mutated sequence\n"
+ " new_sequence = \"\"\n"
+ " #boolean storing whether or not the sequence got mutated\n"
+ " mutated = False\n"
+ " #go through every bp in the sequence\n"
+ " for bp in sequence:\n"
+ " #generate a random number between 0 and 1\n"
+ " r = random.random()\n"
+ " #if r is below mutation rate, introduce a mutation\n"
+ " if r < mutation_rate:\n"
+ " #add a randomly sampled nucleotide to the new sequence\n"
+ " new_sequence = new_sequence + random.choice(\"aucg\")\n"
+ " mutated = True\n"
+ " else:\n"
+ " #if the mutation condition did not get met, copy the current bp to the new sequence\n"
+ " new_sequence = new_sequence + bp\n"
+ " \n"
+ " return (new_sequence, mutated)\n"
+ "\n"
+ "sequence_to_mutate = 'AAAAGGAGUGUGUAUGU'\n"
+ "print(sequence_to_mutate)\n"
+ "print(mutate(sequence_to_mutate, mutation_rate=0.5))"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "AAAAGGAGUGUGUAUGU\n"
+ "('AcAAGgAuUGUuaAaGa', True)"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Selection\n"
+ "\n"
+ "The final process in this evolution model is selection. Once you have populations with a diverse range of fitnesses, we need to select the fittest individuals and let them replicate and contribute offspring to the next generation. In real populations this is just the process of reproduction. If you're fit enough you will be likely to reproduce more than another individual who is not as well suited to the environment.\n"
+ "\n"
+ "In order to represent this process in our model, we will use the fitness values that we assigned to each Cell earlier and use that to select replicating Cells. This is equivalent to sampling from a population with the sampling being weighted by the fitness of each Cell. Thankfully, `numpy.random.choice` comes to the rescue here. Once we have sampled enough Cells to build our next generation, we introduce mutations and compute the fitness values of the new generation."
+ ));
+
+ qDebug() << "command entry 11";
+ testCommandEntry(entry, 11, 1, QString::fromUtf8(
+ "def selection(population, target, mutation_rate=0.001, beta=-2):\n"
+ " \"\"\"\n"
+ " Returns a new population with offspring of the input population\n"
+ " \"\"\"\n"
+ "\n"
+ " #select the sequences that will be 'parents' and contribute to the next generation\n"
+ " parents = np.random.choice(population, len(population), p=[rna.fitness for rna in population], replace=True)\n"
+ "\n"
+ " #build the next generation using the parents list\n"
+ " next_generation = [] \n"
+ " for i, p in enumerate(parents):\n"
+ " new_cell = Cell(p.sequence_1, p.structure_1, p.sequence_2, p.structure_2)\n"
+ " new_cell.id = i\n"
+ " new_cell.parent = p.id\n"
+ " \n"
+ " next_generation.append(new_cell)\n"
+ "\n"
+ " #introduce mutations in next_generation sequeneces and re-fold when a mutation occurs\n"
+ " for rna in next_generation: \n"
+ " mutated_sequence_1, mutated_1 = mutate(rna.sequence_1, mutation_rate=mutation_rate)\n"
+ " mutated_sequence_2, mutated_2 = mutate(rna.sequence_2, mutation_rate=mutation_rate)\n"
+ " \n"
+ " if mutated_1:\n"
+ " rna.sequence_1 = mutated_sequence_1\n"
+ " rna.structure_1 = nussinov(mutated_sequence_1)\n"
+ " if mutated_2:\n"
+ " rna.sequence_2 = mutated_sequence_2\n"
+ " rna.structure_2 = nussinov(mutated_sequence_2)\n"
+ " else:\n"
+ " continue\n"
+ "\n"
+ " #update fitness values for the new generation\n"
+ " compute_fitness(next_generation, target, beta=beta)\n"
+ "\n"
+ " return next_generation\n"
+ "\n"
+ "next_gen = selection(pop, target)\n"
+ "for cell in next_gen[:10]:\n"
+ " print(cell.sequence_1)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "GAGCUUUAAACUAAUCUAAU\n"
+ "GCAAAAGACAGCCaGCAUCA\n"
+ "UUUCUUUUUCCCCCCCGAUG\n"
+ "AAGCCCUAGGUAUGUUGUAG\n"
+ "AAGAAGUACCCAUACAGAUG\n"
+ "CUAAGACGACUUUUAGUUCA\n"
+ "ACCUGCCAUCAUCACCAGAC\n"
+ "AGAAUUGCUGUUCUCUAUCU\n"
+ "GCGGAUCAUACUCCAAGUCG\n"
+ "GAGCUUUAAACUAAUCUAAU"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Gathering information on our populations\n"
+ "\n"
+ "Here we simply store some statistics (in a dictionary) on the population at each generation such as the average base pair distance and the average fitness of the populations. No coding to do here, it's not a very interesting function but feel free to give it a look."
+ ));
+
+ qDebug() << "command entry 12";
+ testCommandEntry(entry, 12, QString::fromUtf8(
+ "def record_stats(pop, population_stats):\n"
+ " \"\"\"\n"
+ " Takes a population list and a dictionary and updates it with stats on the population.\n"
+ " \"\"\"\n"
+ " generation_bp_distance_1 = [rna.bp_distance_1 for rna in pop]\n"
+ " generation_bp_distance_2 = [rna.bp_distance_2 for rna in pop]\n"
+ "\n"
+ " mean_bp_distance_1 = np.mean(generation_bp_distance_1)\n"
+ " mean_bp_distance_2 = np.mean(generation_bp_distance_2)\n"
+ " \n"
+ " mean_fitness = np.mean([rna.fitness for rna in pop])\n"
+ "\n"
+ "\n"
+ " population_stats.setdefault('mean_bp_distance_1', []).append(mean_bp_distance_1)\n"
+ " population_stats.setdefault('mean_bp_distance_2', []).append(mean_bp_distance_2)\n"
+ " \n"
+ " population_stats.setdefault('mean_fitness', []).append(mean_fitness)\n"
+ " \n"
+ " return None"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## And finally.... evolution\n"
+ "\n"
+ "We can put all the above parts together in a simple function that does the following:\n"
+ "\n"
+ "1. start a new population and compute its fitness\n"
+ "2. repeat the following for the desired number of generations:\n"
+ " 1. record statistics on population\n"
+ " 2. perform selection+mutation\n"
+ " 3. store new population\n"
+ "\n"
+ "And that's it! We have an evolutionary reactor!"
+ ));
+
+ qDebug() << "command entry 13";
+ testCommandEntry(entry, 13, QString::fromUtf8(
+ "def evolve(target, generations=10, pop_size=100, mutation_rate=0.001, beta=-2):\n"
+ " \"\"\"\n"
+ " Takes target structure and sets up initial population, performs selection and iterates for desired generations.\n"
+ " \"\"\"\n"
+ " #store list of all populations throughotu generations [[cells from generation 1], [cells from gen. 2]...]\n"
+ " populations = []\n"
+ " #start a dictionary that will hold some stats on the populations.\n"
+ " population_stats = {}\n"
+ " \n"
+ " #get a starting population\n"
+ " initial_population = populate(target, pop_size=pop_size)\n"
+ " #compute fitness of initial population\n"
+ " compute_fitness(initial_population, target)\n"
+ "\n"
+ " #set current_generation to initial population.\n"
+ " current_generation = initial_population\n"
+ "\n"
+ " #iterate the selection process over the desired number of generations\n"
+ " for i in range(generations):\n"
+ "\n"
+ " #let's get some stats on the structures in the populations \n"
+ " record_stats(current_generation, population_stats)\n"
+ " \n"
+ " #add the current generation to our list of populations.\n"
+ " populations.append(current_generation)\n"
+ "\n"
+ " #select the next generation\n"
+ " new_gen = selection(current_generation, target, mutation_rate=mutation_rate, beta=beta)\n"
+ " #set current generation to be the generation we just obtained.\n"
+ " current_generation = new_gen \n"
+ " \n"
+ " return (populations, population_stats)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Try a run of the `evolve()` function."
+ ));
+
+ qDebug() << "command entry 14";
+ testCommandEntry(entry, 14, QString::fromUtf8(
+ "pops, pops_stats = evolve(\"(((....)))\", generations=20, pop_size=1000, mutation_rate=0.005, beta=-2)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let's see if it actually worked by plotting the average base pair distance as a function of generations for both genes in each cell. We should expect a gradual decrease as the populations get closer to the target structure."
+ ));
+
+ qDebug() << "command entry 15";
+ testCommandEntry(entry, 15, 1, QString::fromUtf8(
+ "def evo_plot(pops_stats):\n"
+ " \"\"\"\n"
+ " Plot base pair distance for each chromosome over generations.\n"
+ " \"\"\"\n"
+ " for m in ['mean_bp_distance_1', 'mean_bp_distance_2']:\n"
+ " plt.plot(pops_stats[m], label=m)\n"
+ " plt.legend()\n"
+ " plt.xlabel(\"Generations\")\n"
+ " plt.ylabel(\"Mean Base Pair Distance\")\n"
+ " \n"
+ "evo_plot(pops_stats)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "You should see a nice drop in base pair distance! Another way of visualizing this is by plotting a histogram of the base pair distance of all Cells in the initial population versus the final population."
+ ));
+
+ qDebug() << "command entry 16";
+ testCommandEntry(entry, 16, 1, QString::fromUtf8(
+ "def bp_distance_distributions(pops):\n"
+ " \"\"\"\n"
+ " Plots histograms of base pair distance in initial and final populations.\n"
+ " \"\"\"\n"
+ " #plot bp_distance_1 for rnas in first population\n"
+ " g = sns.distplot([rna.bp_distance_1 for rna in pops[0]], label='initial population')\n"
+ " #plot bp_distance_1 for rnas in first population\n"
+ " g = sns.distplot([rna.bp_distance_1 for rna in pops[-1]], label='final population')\n"
+ " g.set(xlabel='Mean Base Pair Distance')\n"
+ " g.legend()\n"
+ "bp_distance_distributions(pops)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Studying our evolved sequences with some Population Genetics tools\n"
+ "\n"
+ "Now that we've generated some sequences, we can analyze them!\n"
+ "\n"
+ "So after several rounds of selection, what do we get? We have a bunch of different sequences. We would like a way to characterize this diversity. One important tool for doing this is by making what is known as phylogenetic trees. \n"
+ "\n"
+ "Phylogenetic trees tell us about which groups of similar sequences are present and how they are likely related in evolutionary time. \n"
+ "\n"
+ "There are several ways of building phylogenetic trees using BioPython. Here we will go over one type and I'll leave another one as an exercise.\n"
+ "\n"
+ "### UPGMA (Unweighted Pair Group Method with Arithmetic Means)\n"
+ "\n"
+ "This is basically a clustering method based on the distance (or number of differences) between every pair of sequences. It assumes that sequences that are more similar are more likely to be related than the other way around. \n"
+ "\n"
+ "For $N$ sequences, the algorithm builds an $NxN$ matrix that stores the distance between each sequence to every other sequence. The algorithm goes through this matrix and finds the pair of sequences that is most similar and merges it into a 'cluster' or in tree terms, connects them to a common node. This process is repeated until all the sequences have been assigned to a group. Refer to the wikipedia article on [UPGMA](https://en.wikipedia.org/wiki/UPGMA) for a more detailed explanation. \n"
+ ""
+ ));
+
+ qDebug() << "command entry 18";
+ testCommandEntry(entry, 18, QString::fromUtf8(
+ "from Bio import SeqIO\n"
+ "from Bio.Seq import Seq\n"
+ "from Bio.SeqRecord import SeqRecord\n"
+ "from Bio import AlignIO"
+ ));
+
+ qDebug() << "command entry 19";
+ testCommandEntry(entry, 19, QString::fromUtf8(
+ "sequences = []\n"
+ "#let's take the first 10 sequences of our population to keep things simple\n"
+ "for seq in pops[-1][:10]:\n"
+ " #store each sequence in the sequences list as a SeqRecord object\n"
+ " sequences.append(SeqRecord(Seq(seq.sequence_1), id=str(seq.id)))\n"
+ " \n"
+ "\n"
+ "#write our sequences to fasta format\n"
+ "with open(\"seq.fasta\", \"w+\") as f:\n"
+ " SeqIO.write(sequences, f, \"fasta\")"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The UPGMA algorithm requires a `MultipleSeqAlignment` object to build the distance matrix. So now that we have the `seq.fasta` file, we can give it to an online multiple sequence alignment tool. We can do this through BioPython but it requires some installation and setup so we will skip that for now. Go to the [MUSCLE Web Server](http://www.ebi.ac.uk/Tools/msa/muscle/) and give it the `seq.fasta` file. It will take a few seconds and it will give you an alignment and click *Download Alignment File*, copy paste the whole thing to a new file called `aln.clustal`. This is the alignment we will use to build our tree."
+ ));
+
+ qDebug() << "command entry 21";
+ testCommandEntry(entry, 21, QString::fromUtf8(
+ "#open the alignmnent file\n"
+ "with open(\"aln.clustal\", \"r\") as aln:\n"
+ " #use AlignIO to read the alignment file in 'clustal' format\n"
+ " alignment = AlignIO.read(aln, \"clustal\")"
+ ));
+
+ qDebug() << "command entry 22";
+ testCommandEntry(entry, 22, 1, QString::fromUtf8(
+ "from Bio.Phylo.TreeConstruction import DistanceCalculator\n"
+ "\n"
+ "#calculate the distance matrix\n"
+ "calculator = DistanceCalculator('identity')\n"
+ "#adds distance matrix to the calculator object and returns it\n"
+ "dm = calculator.get_distance(alignment)\n"
+ "print(dm)\n"
+ ""
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "8\t0\n"
+ "7\t0.6\t0\n"
+ "0\t0.8\t0.6\t0\n"
+ "3\t1.0\t0.7\t0.4\t0\n"
+ "6\t1.0\t0.7\t0.4\t0.09999999999999998\t0\n"
+ "9\t0.8\t1.0\t0.5\t0.7\t0.6\t0\n"
+ "1\t0.9\t0.9\t0.8\t0.9\t0.8\t0.4\t0\n"
+ "2\t0.9\t0.9\t0.8\t0.9\t0.8\t0.4\t0.0\t0\n"
+ "4\t0.9\t0.9\t0.9\t1.0\t0.9\t0.5\t0.09999999999999998\t0.09999999999999998\t0\n"
+ "5\t0.9\t0.9\t0.9\t1.0\t0.9\t0.5\t0.09999999999999998\t0.09999999999999998\t0.0\t0\n"
+ "\t8\t7\t0\t3\t6\t9\t1\t2\t4\t5"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 23";
+ testCommandEntry(entry, 23, QString::fromUtf8(
+ "from Bio.Phylo.TreeConstruction import DistanceTreeConstructor\n"
+ "\n"
+ "#initialize a DistanceTreeConstructor object based on our distance calculator object\n"
+ "constructor = DistanceTreeConstructor(calculator)\n"
+ "\n"
+ "#build the tree\n"
+ "upgma_tree = constructor.build_tree(alignment)"
+ ));
+
+ qDebug() << "command entry 24";
+ testCommandEntry(entry, 24, 1, QString::fromUtf8(
+ "from Bio import Phylo\n"
+ "import pylab\n"
+ "#draw the tree\n"
+ "Phylo.draw(upgma_tree)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Introducing mating to the model\n"
+ "\n"
+ "The populations we generated evolved asexually. This means that individuals do not mate or exchange genetic information. So to make our simulation a bit more interesting let's let the Cells mate. This is going to require a few small changes in the `selection()` function. Previously, when we selected sequences to go into the next generation we just let them provide one offspring which was a copy of itself and introduced mutations. Now instead of choosing one Cell at a time, we will randomly choose two 'parents' that will mate. When they mate, each parent will contribute one of its chromosomes to the child. We'll repeat this process until we have filled the next generation."
+ ));
+
+ qDebug() << "command entry 25";
+ testCommandEntry(entry, 25, 1, QString::fromUtf8(
+ "def selection_with_mating(population, target, mutation_rate=0.001, beta=-2):\n"
+ " next_generation = []\n"
+ " \n"
+ " counter = 0\n"
+ " while len(next_generation) < len(population):\n"
+ " #select two parents based on their fitness\n"
+ " parents_pair = np.random.choice(population, 2, p=[rna.fitness for rna in population], replace=False)\n"
+ " \n"
+ " #take the sequence and structure from the first parent's first chromosome and give it to the child\n"
+ " child_chrom_1 = (parents_pair[0].sequence_1, parents_pair[0].structure_1)\n"
+ "\n"
+ " #do the same for the child's second chromosome and the second parent.\n"
+ " child_chrom_2 = (parents_pair[1].sequence_2, parents_pair[1].structure_2)\n"
+ "\n"
+ "\n"
+ " #initialize the new child Cell witht he new chromosomes.\n"
+ " child_cell = Cell(child_chrom_1[0], child_chrom_1[1], child_chrom_2[0], child_chrom_2[1])\n"
+ "\n"
+ " #give the child and id and store who its parents are\n"
+ " child_cell.id = counter\n"
+ " child_cell.parent_1 = parents_pair[0].id\n"
+ " child_cell.parent_2 = parents_pair[1].id\n"
+ "\n"
+ " #add the child to the new generation\n"
+ " next_generation.append(child_cell)\n"
+ " \n"
+ " counter = counter + 1\n"
+ " \n"
+ " \n"
+ " #introduce mutations in next_generation sequeneces and re-fold when a mutation occurs (same as before)\n"
+ " for rna in next_generation: \n"
+ " mutated_sequence_1, mutated_1 = mutate(rna.sequence_1, mutation_rate=mutation_rate)\n"
+ " mutated_sequence_2, mutated_2 = mutate(rna.sequence_2, mutation_rate=mutation_rate)\n"
+ "\n"
+ " if mutated_1:\n"
+ " rna.sequence_1 = mutated_sequence_1\n"
+ " rna.structure_1 = nussinov(mutated_sequence_1)\n"
+ " if mutated_2:\n"
+ " rna.sequence_2 = mutated_sequence_2\n"
+ " rna.structure_2 = nussinov(mutated_sequence_2)\n"
+ " else:\n"
+ " continue\n"
+ "\n"
+ " #update fitness values for the new generation\n"
+ " compute_fitness(next_generation, target, beta=beta)\n"
+ "\n"
+ " return next_generation \n"
+ "\n"
+ "#run a small test to make sure it works\n"
+ "next_gen = selection_with_mating(pop, target)\n"
+ "for cell in next_gen[:10]:\n"
+ " print(cell.sequence_1)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "CGUACCUGAAAAGCUAACUA\n"
+ "GGAACCGUAGGCUUUGCAAG\n"
+ "ACCUGCCAUCAUCACCAGAC\n"
+ "UAGAGGUAGAAUUGUAGGCU\n"
+ "GAUUCCGCGCGAAUACCGCG\n"
+ "GCAUCGAGUGCGCGGCAUAA\n"
+ "UAAUAAAAAGGUGCUGAUAU\n"
+ "GAUUCCGCGCGAAUACCGCG\n"
+ "UCACUAAACUCCUCGACUAC\n"
+ "AUGAUCAUGGUGAGCAGUUU"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Now we just have to update our `evolution()` function to call the new `selection_with_mating()` function."
+ ));
+
+ qDebug() << "command entry 26";
+ testCommandEntry(entry, 26, QString::fromUtf8(
+ "def evolve_with_mating(target, generations=10, pop_size=100, mutation_rate=0.001, beta=-2):\n"
+ " populations = []\n"
+ " population_stats = {}\n"
+ " \n"
+ " initial_population = populate(target, pop_size=pop_size)\n"
+ " compute_fitness(initial_population, target)\n"
+ " \n"
+ " current_generation = initial_population\n"
+ "\n"
+ " #iterate the selection process over the desired number of generations\n"
+ " for i in range(generations):\n"
+ " #let's get some stats on the structures in the populations \n"
+ " record_stats(current_generation, population_stats)\n"
+ " \n"
+ " #add the current generation to our list of populations.\n"
+ " populations.append(current_generation)\n"
+ "\n"
+ " #select the next generation, but this time with mutations\n"
+ " new_gen = selection_with_mating(current_generation, target, mutation_rate=mutation_rate, beta=beta)\n"
+ " current_generation = new_gen \n"
+ " \n"
+ " return (populations, population_stats)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Try out the new evolution model!"
+ ));
+
+ qDebug() << "command entry 28";
+ testCommandEntry(entry, 28, 1, QString::fromUtf8(
+ "pops_mating, pops_stats_mating = evolve_with_mating(\"(((....)))\", generations=20, pop_size=1000, beta=0)\n"
+ "\n"
+ "evo_plot(pops_stats_mating)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Hardy Weinberg Equilibrium\n"
+ "\n"
+ "When we are presented with data from a population we don't know much about. It is often useful to try to learn whether there are any evolutionary or behavioural influences that are shaping population dynamics. This could be in the form of selective pressure, mating preference, genetic drift, mutations, gene flow, etc. So in order to detect if something like this is happening we need to develop a test. This is where Hardy Weinberg comes in. \n"
+ "\n"
+ "The Hardy Weinberg equilibrium states that \"allele and genotype frequencies remain constant in the absence of other evolutionary influences. (such as the ones we mentioned above)\" - Wikipedia.\n"
+ "\n"
+ "So if we can measure allele/genotype frequencies (which we can do because we have sequences), we can see whether the HW principle holds true. If it does not, then we can do more digging to see what could be happening to shift populations away from equilibrium.\n"
+ "\n"
+ "In order to do this we need to define an 'allele'. An allele (for our purproses) will be a locus (position in a sequence) that can take one of two states, a *reference* state or an *alternate* state. For example, we can look at locus number **5** (position 5 in our RNA sequences) and call reference **C**, and alternate **G**. If we are in HW we can predict the frequency of each allele in our population.\n"
+ "\n"
+ "To simplify our notation we will call the alternate allele *A* and the reference allele *a*. We can write the probability of each allele as $p_{A} + p_{a} = 1$. Since we are dealing with diploid populations, each individual will have two copies of each locus so it can be $p_{AA}, p{Aa}, p{aA}, p{aa}$. By simple probability laws we can get an expression for the probability of each genotype based on the probabilities of the single loci $p_{a}$ and $p_{A}$.\n"
+ "\n"
+ "$$p_{aa}\\simeq p_{a}^2$$\n"
+ "\n"
+ "$$p_{AA}\\simeq p_{A}^2$$\n"
+ "\n"
+ "$$p_{Aa,~aA} \\simeq 2 p_{a} p_{A}.$$\n"
+ "\n"
+ "Since it is hard to know what the true probability of observing either $p_{a}$ and $p_{A}$ we can estimate this probability from our data as follows:\n"
+ "\n"
+ "$$\\hat p_a=\\frac{2N_{aa}+N_{aA}}{2N}=1-\\hat p_A.$$\n"
+ "\n"
+ "Where $N$ denotes the number of each genotype that we observe in our sequences. \n"
+ "\n"
+ "Based on these estimates we can expect the following frequencies for each genotype: \n"
+ "\n"
+ "$N_{aa}\\simeq e_{aa}=N \\hat p_a^2$\n"
+ "\n"
+ "$N_{AA}\\simeq e_{AA}= N \\hat p_{A}^2$\n"
+ "\n"
+ "$N_{Aa,~aA} \\simeq e_{Aa} = 2 N \\hat p_{a} \\hat p_{A}.$\n"
+ "\n"
+ "Now we have expected values, and observed values. We need a test to determine whether we have a significant departure from the hypothesis of Hardy Weinberg equilibrium. The statistical test that is commonly used is known as the $\\chi^{2}$ test. If you take a look at the equation you'll see that the statistic simply takes the squared difference between our observed value and the expected value (divided by expected) and sums this for each possible genotype. The reason we take the squared difference is because we want to deal only with positive values, hence the name $\\chi^{2}$.\n"
+ "\n"
+ "$$X^2= \\frac{(N_{aa}-e_{aa})^2}{e_{aa}}+ \\frac{(N_{Aa}-e_{Aa})^2}{e_{Aa}}+ \\frac{(N_{AA}-e_{AA})^2}{e_{AA}}.$$\n"
+ "\n"
+ "The first thing we need to do is get alleles from our sequence data. This boils down to going through each sequence at the position of interest and counting the number of $AA$, $Aa$, $aa$ we get.\n"
+ "\n"
+ "\n"
+ "\\** the sections on Hardy Weinberg and F-statistics are adapted from Simon Gravel's HGEN 661 Notes"
+ ));
+
+ qDebug() << "command entry 29";
+ testCommandEntry(entry, 29, QString::fromUtf8(
+ "def allele_finder(pop, locus, ref, alt):\n"
+ " genotypes = []\n"
+ " for p in pop:\n"
+ " #get the nucleotide at the locus from the first chromosome \n"
+ " locus_1 = p.sequence_1[locus].upper()\n"
+ " #same for the second\n"
+ " locus_2 = p.sequence_2[locus].upper()\n"
+ " \n"
+ " #check that it is either ref or alt, we don't care about other alleles for now.\n"
+ " if locus_1 in (ref, alt) and locus_2 in (ref, alt):\n"
+ " #if the alelle is ref, store a value of 1 in allele_1, and 0 otherwise\n"
+ " allele_1 = int(locus_1 == ref)\n"
+ " #same for the second allele\n"
+ " allele_2 = int(locus_2 == ref)\n"
+ " \n"
+ " #add allele to our list of alleles as a tuple. \n"
+ " genotypes.append((allele_1, allele_2))\n"
+ " return genotypes"
+ ));
+
+ qDebug() << "command entry 30";
+ testCommandEntry(entry, 30, 1, QString::fromUtf8(
+ "pop_hw, stats_hw = evolve_with_mating(\"(((....)))\", pop_size=1000, generations=10, beta=0, mutation_rate=0.005)\n"
+ "alleles = allele_finder(pop_hw[-1], 5, 'C', 'G')\n"
+ "print(alleles[:10])"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "[(0, 0), (0, 0), (0, 1), (1, 0), (0, 1), (1, 0), (1, 0), (1, 0), (1, 0), (0, 1)]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Now that we have alleles represented in the right form, we can see if our population is at Hardy Weinberg equilibrium using the $\\chi_{2}$ test and the equations above."
+ ));
+
+ qDebug() << "command entry 31";
+ testCommandEntry(entry, 31, 1, QString::fromUtf8(
+ "from scipy import stats\n"
+ "from scipy.stats import chi2\n"
+ "\n"
+ "def hardy_weinberg_chi2_test(alleles):\n"
+ " \n"
+ " #store counts for N_AA, N_Aa/aA, N_aa\n"
+ " hom_ref_count = 0\n"
+ " het_count = 0\n"
+ " hom_alt_count = 0\n"
+ " \n"
+ " #each allele in the list alleles is in the form (0,0) or (0,1) or (1,0) or (1,1)\n"
+ " #count how many of each type we have\n"
+ " for a in alleles:\n"
+ " if (a[0]==0 and a[1]==0):\n"
+ " hom_ref_count += 1\n"
+ " elif ((a[0]==0 and a[1]==1) or (a[0]==1 and a[1]==0)):\n"
+ " het_count += 1\n"
+ " elif (a[0]==1 and a[1]==1):\n"
+ " hom_alt_count += 1\n"
+ " else:\n"
+ " continue\n"
+ " \n"
+ " #total number of genotypes: N\n"
+ " genotype_count = hom_ref_count + het_count + hom_alt_count\n"
+ "\n"
+ " #estimate p_a, p_A\n"
+ " alt_counts = (2 * hom_alt_count) + het_count\n"
+ " ref_counts = (2 * hom_ref_count) + het_count\n"
+ " \n"
+ " \n"
+ " #get expectations e_AA, e_aA,Aa, e_aa\n"
+ " hom_ref_expectation = ref_counts**2 / (4.*genotype_count) # the expected number of homozygote references \n"
+ " het_expectation = ref_counts * alt_counts / (2.*genotype_count) # the expected number of hets \n"
+ " hom_alt_expectation = alt_counts**2 / (4.*genotype_count) # the expected number of homozygote nonreferences \n"
+ "\n"
+ " #store observed values in list in the form [N_AA, N_aA,Aa, N_aa]\n"
+ " observations = [hom_ref_count, het_count, hom_alt_count]\n"
+ " #store expected values in the same form\n"
+ " expectations = [hom_ref_expectation, het_expectation, hom_alt_expectation]\n"
+ " \n"
+ " #start a dictionary that will store our results.\n"
+ " statistics = {\n"
+ " 'hom_ref': (hom_ref_count, hom_ref_expectation),\n"
+ " 'het': (het_count, het_expectation),\n"
+ " 'hom_alt': (hom_alt_count, hom_alt_expectation), \n"
+ " 'ref_counts': ref_counts, \n"
+ " 'alt_counts': alt_counts,\n"
+ " 'genotype_count': genotype_count\n"
+ " }\n"
+ "\n"
+ " #call scipy function for chi2 test.\n"
+ " chi_2_statistic = stats.chisquare(observations, f_exp=expectations, ddof=1, axis=0)\n"
+ " \n"
+ " #return chi2 and statistics dictionary\n"
+ " return (chi_2_statistic, statistics)\n"
+ "\n"
+ "hardy_weinberg_chi2_test(alleles)"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "(Power_divergenceResult(statistic=0.001476611280908458, pvalue=0.9693474730942313),\n"
+ " {'hom_ref': (81, 81.14693877551021),\n"
+ " 'het': (120, 119.70612244897958),\n"
+ " 'hom_alt': (44, 44.14693877551021),\n"
+ " 'ref_counts': 282,\n"
+ " 'alt_counts': 208,\n"
+ " 'genotype_count': 245})"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Can we say that our population is at equilibrium? Can you find parameters for `evolution_with_mating()` that will give us populations outside of the HW equilibrium?"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## A brief interlude on the p-value\n"
+ "\n"
+ "Let's take a minute to understand what the p-value means. The p-value is a probability. Specifically, it is the probability of observing a value equal to or more extreme than that our statistic given the test distribution. So in our case, it is the probability of observing a $X^2$ greater than or equal to the one the test gives us under a $\\chi^2$ distribution. When this value is very small, it suggests that it is unlikely that we are sampling from our assumed 'null' distribution and that some other alternate distribution is the true distribution. So a low p-value here would be evidence against the neutral Hardy Weinberg model and would suggest that our population is experiencing some influences such as mating preference, selection, mutation etc.\n"
+ "\n"
+ "A lot of research bases its conclusions solely on p-value and it is important to be very wary of this bad practice. It has become a bad convention that people say a p-value lower than some arbitrary threshold means one's findings are significant. However, very often the p-value does not give us the whole story and we need to know about things like sample size, size of impact, reproducibility, power of the test, etc. (check this out [American Statistical Association statement on p-values](http://www.nature.com/news/statisticians-issue-warning-over-misuse-of-p-values-1.19503), [p-hacking](http://fivethirtyeight.com/features/science-isnt-broken/#part1), and [this](http://allendowney.blogspot.ca/2016/06/there-is-still-only-one-test.html))\n"
+ "\n"
+ "Let's just visualize this very quickly using the $\\chi^{2}_{1}$ distribution. You will see that the p-value corresponds to the shaded red area under the curve. That area is the probability of observing a value as extreme or more than the one we found. When that is a very small area, we can be more confident that our assumption of HW is false."
+ ));
+
+ qDebug() << "command entry 32";
+ testCommandEntry(entry, 32, 2, QString::fromUtf8(
+ "#number of samples to take from the x2 distribution.\n"
+ "number_of_samples = 1000\n"
+ "\n"
+ "range_points = 2000\n"
+ "range_start = 0\n"
+ "\n"
+ "degrees_of_freedom = 1\n"
+ "\n"
+ "range_end = chi2.ppf(1-1./number_of_samples, degrees_of_freedom)\n"
+ " \n"
+ "x_range = np.linspace(range_start, range_end, range_points) \n"
+ "plt.plot(x_range, chi2.pdf(x_range, degrees_of_freedom))\n"
+ "\n"
+ "#find the index value of our statistic value. you can put in different values here.\n"
+ "statistic = 0.5\n"
+ "\n"
+ "#find the index in x_range corresponding to the statistic value (within 0.01)\n"
+ "point = 0\n"
+ "for i, nb in enumerate(x_range):\n"
+ " if nb < statistic + .01 and nb > statistic - .01:\n"
+ " point = i\n"
+ "\n"
+ "#fill area under the curve representing p-value\n"
+ "plt.fill_between(x_range[point:], chi2.pdf(x_range, degrees_of_freedom)[point:], alpha=0.3, color=\"red\")\n"
+ "\n"
+ "plt.xlabel(\"X-statistic\")\n"
+ "plt.ylabel(r\"$\\chi^2_%d$\" % degrees_of_freedom)\n"
+ ""
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Text(0,0.5,'$\\\\chi^2_1$')"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Population structure: F-statistics\n"
+ "\n"
+ "The last topic we'll cover is F-statistics. \n"
+ "\n"
+ "Once we find that our population strays from the HW condition we can begin to ask why that is the case. Often this deviation from the expected allele frequencies under HW is due to mating preference. Hardy Weinberg assumes that all individuals in a population have an equal probability of mating with any other individual (random mating). However, when certain individuals prefer to mate with specific others (in real populations this can be due to culture, race, geographic barriers, etc.), you get what is known as population structure. Population structure means that we begin to see *sub-populations* within our total population where individuals prefer to mate within their sub-population. This biased mating will result in a higher number of homozygotes than we would expect under Hardy-Weinberg equilibrium. Simply because mating preferences will tend to drive populations toward similar genotypes. So if this is the case, and no other factors are biasing allele dynamics, within sub-populations we should have Hardy-Weinberg like conditions. \n"
+ "\n"
+ "For example, if Raptors fans prefer to mate with other Raptors fans, then when we consider only Raptors fans, we should observe random mating. Simply because if the mating preference criterion is 'being a Raptor's fan' then any Raptor's fan will be equally likely to mate with any other Raptor's fan so we have Hardy Weinberg again.\n"
+ "\n"
+ "Let's express this in quantities we can measure.\n"
+ "\n"
+ "From before we calculated the observed and expected number of heterozygotes in a population. Let's call these $\\hat H$ and $H_{IT}$ respectively. $\\hat H$ is just the count of heterozygotes, and $H_{IT}$ is the same as the expected number of heterozygotes we calculated earlier.\n"
+ "\n"
+ "We define a quantity $e_{IT}$ as a measure of the 'excess heterozygosity' in the population when we consider all individuals $I$ in the total population $T$. $e_{IT} > 1$ when we have more heterozygotes than we expect under HW. And $0 < e_{IT} < 1$ if we have less heterozygotes than we would expect under HW.\n"
+ "\n"
+ "\n"
+ "$$e_{IT}=\\frac{\\mbox{observed proportion of hets}}{\\mbox{expected proportion of hets}}=\\frac{ H_{obs}}{H_{IT}}$$\n"
+ "\n"
+ "We use $e_{IT}$ to define the statistic $F_{IT}$\n"
+ "\n"
+ "$$F_{IT}=1-e_{IT}$$\n"
+ "\n"
+ "So $F_{IT} > 0$ when we have a lack of heterozygotes and $F_{IT} < 0$ when we have an excess of heterozygotes. $F_{IT} = 0$ under random mating.\n"
+ "\n"
+ "When we have a subpropulation $S$ we can calculate the equivalent quantity but instead of considering heterozygosity in the whole population we only take a sub-population into account.\n"
+ "\n"
+ "$$e_{IS} = \\frac{H_{obs}}{H_{IS}}$$\n"
+ "\n"
+ "And lastly, we have $F_{ST}$. This one is not as intuitive to derive so I'm not including the derivation here. But basically it measure the excess heterozygosity in the total population due to the presence of two subpopulations with allele frequencies $p_{1}$ and $p_{2}$.\n"
+ "\n"
+ "$$F_{ST}= \\frac{(p_1-p_2)^2}{4 p (1-p)}$$"
+ ));
+
+ qDebug() << "command entry 33";
+ testCommandEntry(entry, 33, QString::fromUtf8(
+ "def F_statistics(total_pop, sub_pop_1, sub_pop_2): \n"
+ " \"\"\"\n"
+ " Uses definitions above and allele counts from two sub-populations and a total population to compute F-statistics.\n"
+ " \"\"\"\n"
+ " #recall that the input dictionaries each contain a tuple in the form(observed, expected) for each genotype\n"
+ " f_IT = 1 - total_pop['het'][0] / (1. * total_pop['het'][1])\n"
+ " \n"
+ " \n"
+ " f_IS_1 = 1 - sub_pop_1['het'][0] / (1. * sub_pop_1['het'][1])\n"
+ " f_IS_2 = 1 - sub_pop_2['het'][0] / (1. * sub_pop_2['het'][1]) \n"
+ " \n"
+ " p1 = sub_pop_1['ref_counts'] / (1. * sub_pop_1['genotype_count'])\n"
+ " p2 = sub_pop_2['ref_counts'] / (1. * sub_pop_2['genotype_count'])\n"
+ " \n"
+ " p = total_pop['ref_counts'] / (1. * total_pop['genotype_count'])\n"
+ " \n"
+ " f_ST = ((p1 - p2) ** 2) / (4.0 * p * (1 - p)) \n"
+ " \n"
+ " F_dict = {\n"
+ " 'f_IT': f_IT,\n"
+ " 'f_IS_1': f_IS_1,\n"
+ " 'f_IS_2': f_IS_2,\n"
+ " 'f_ST': f_ST\n"
+ " }\n"
+ " \n"
+ " return F_dict"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let's get some data for our F-tests. First we need to evolve two populations indepenently of each other, to simulate isolated mating. Then to simulate the total population we combine the two sub-populations. We then use our `allele_finder()` function to get all the alleles, and the `hardy_weinberg_chi_2_test()` function to get our expected and observed counts. Finally we plug those into the `f_statistics()` function."
+ ));
+
+ qDebug() << "command entry 34";
+ testCommandEntry(entry, 34, QString::fromUtf8(
+ "generation = -1\n"
+ "\n"
+ "#run two independent simulations\n"
+ "sub_pop_1, sub_pop_1_stats= evolve_with_mating(\"(((....)))\", pop_size=1000, generations=15, beta=-1, mutation_rate=0.005)\n"
+ "sub_pop_2, sub_pop_2_stats= evolve_with_mating(\"(((....)))\", pop_size=1000, generations=15, beta=-1, mutation_rate=0.005)"
+ ));
+
+ qDebug() << "command entry 35";
+ testCommandEntry(entry, 35, 1, QString::fromUtf8(
+ "#merge the two populations into a total population.\n"
+ "total_pop = sub_pop_1[generation] + sub_pop_2[generation]\n"
+ "\n"
+ "\n"
+ "#choose a reference and alternate allele\n"
+ "ref_allele = \"A\"\n"
+ "alt_allele = \"G\"\n"
+ "\n"
+ "#choose the position of the locus of interest.\n"
+ "locus = 1\n"
+ "\n"
+ "#get list of alleles for each population\n"
+ "total_pop_alleles = allele_finder(total_pop, locus, ref_allele, alt_allele)\n"
+ "sub_pop_1_alleles = allele_finder(sub_pop_1[generation],locus, ref_allele, alt_allele)\n"
+ "sub_pop_2_alleles = allele_finder(sub_pop_2[generation],locus, ref_allele, alt_allele)\n"
+ "\n"
+ "#get homo/het expectations using hardy weinberg function\n"
+ "total_pop_counts = hardy_weinberg_chi2_test(total_pop_alleles)[1]\n"
+ "sub_pop_1_counts = hardy_weinberg_chi2_test(sub_pop_1_alleles)[1]\n"
+ "sub_pop_2_counts = hardy_weinberg_chi2_test(sub_pop_2_alleles)[1]\n"
+ "\n"
+ "#call f-statistics function\n"
+ "f_statistics = F_statistics(total_pop_counts, sub_pop_1_counts, sub_pop_2_counts)\n"
+ "print(f_statistics)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "{'f_IT': 0.054216581725422874, 'f_IS_1': 0.037559168553200184, 'f_IS_2': -0.08899167437557809, 'f_ST': -0.3885918781521351}"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Try playing with different evolution parameters and see the effect on the different F-statistics. This workshop is a work in progress so there may be some biases in our simulation scheme that can make for come confusing F-statistics. If you come up with anything interesting I would love to know about it."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Exercises / Extra Material\n"
+ "\n"
+ "### Programming Exercises\n"
+ "\n"
+ "i. *Heatmap of mutation rates vs. population sizes.* (short) \n"
+ "\n"
+ "Make a heatmap that plots the base pair distance of the average base pair distance of the population at generation `-1` for mutation rates $\\mu = \\{0, 0.001, 0.01, 0.1, 0.5\\}$ and population sizes $N=\\{10, 100, 1000, 10000\\}$. The resulting heatmap will be `5x4` dimensions. You may choose how many generations to evolve your populations, just plot the last one in the heatmap."
+ ));
+
+ qDebug() << "command entry 36";
+ testCommandEntry(entry, 36, 2, QString::fromUtf8(
+ "#lists of mutation rates and population sizes to test\n"
+ "mutation_rates = [0, 0.001, 0.01, 0.1, 0.5]\n"
+ "population_sizes = [10, 100, 1000, 10000]\n"
+ "\n"
+ "#number of generations to run each simulation\n"
+ "generations = 1\n"
+ "#target structure\n"
+ "target = \"(.((....)))\"\n"
+ "\n"
+ "#list to store our results\n"
+ "bp_distances = []\n"
+ "\n"
+ "#nested for loop to go through each combination of mutation rates and population sizes.\n"
+ "for m in mutation_rates:\n"
+ " #list to store the population size results for current mutation rate.\n"
+ " bp_distances_by_pop_size = []\n"
+ " #try each population size\n"
+ " for p in population_sizes:\n"
+ " #call evolve() with m and p \n"
+ " pop, pop_stats = evolve(target, mutation_rate=m, pop_size=p, generations=generations)\n"
+ " #add bp_distance of chromosome 1 at generation -1 (last generation) to bp_distances_by_pop_size\n"
+ " bp_distances_by_pop_size.append(pop_stats['mean_bp_distance_1'][-1])\n"
+ " #add to global list once all combinations of current mutation rate and population sizes.\n"
+ " bp_distances.append(bp_distances_by_pop_size)\n"
+ " \n"
+ "#use bp_distances matrxi to make a heatmap\n"
+ "sns.heatmap(bp_distances)\n"
+ "\n"
+ "#labels\n"
+ "plt.xlabel(\"Population Size\")\n"
+ "#xticks/yticks takes a list of numbers that specify the position of the ticks and a list with the tick labels\n"
+ "plt.xticks([i + .5 for i in range(len(population_sizes))], population_sizes)\n"
+ "plt.ylabel(\"Mutation Rate\")\n"
+ "plt.yticks([i + .5 for i in range(len(mutation_rates))], mutation_rates)"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "([<matplotlib.axis.YTick at 0x7fa02ba18ac8>,\n"
+ " <matplotlib.axis.YTick at 0x7fa02ba183c8>,\n"
+ " <matplotlib.axis.YTick at 0x7fa02ba59a58>,\n"
+ " <matplotlib.axis.YTick at 0x7fa02acbe978>,\n"
+ " <matplotlib.axis.YTick at 0x7fa02acc5048>],\n"
+ " <a list of 5 Text yticklabel objects>)"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "ii. *Introduce mating preferences within a population.* (medium length) \n"
+ "\n"
+ "Modify the `selection_with_mating()` function to allow for mating preferences within a population. In our example above we were just running two independent simulations to study barriers to gene flow. But now you will implement mating preferences within a single simulation. Your function will assign each Cell a new attribute called `self.preference` which will take a string value denoting the mating type the current cell prefers to mate with. For example we can have a population with three mating types: $\\{A, B, C\\}$. Your function will randomly assign preferences to each cell in the initial population. We will define a preference between types $A$ and $B$ as the probability that two cells of those given types will mate if selected. \n"
+ "\n"
+ "$$\n"
+ "preferences(A,B,C) = \n"
+ "\\begin{bmatrix}\n"
+ " 0.7 & 0.1 & 0.2 \\\\\n"
+ " 0.1 & 0.9 & 0 \\\\\n"
+ " 0.2 & 0 & 0.8 \\\\\n"
+ "\\end{bmatrix}\n"
+ "$$\n"
+ "\n"
+ "Once you selected two potential parents for mating (as we did earlier) you will use the matrix to evaluate whether or not the two parents will mate and contribute an offspring to the next generation. "
+ ));
+
+ qDebug() << "command entry 37";
+ testCommandEntry(entry, 37, 1, QString::fromUtf8(
+ "def populate_with_preferences(target, preference_types, pop_size=100):\n"
+ " \n"
+ " population = []\n"
+ "\n"
+ " for i in range(pop_size):\n"
+ " #get a random sequence to start with\n"
+ " sequence = \"\".join([random.choice(\"AUCG\") for _ in range(len(target))])\n"
+ " #use nussinov to get the secondary structure for the sequence\n"
+ " structure = nussinov(sequence)\n"
+ " #add a new Cell object to the population list\n"
+ " new_cell = Cell(sequence, structure, sequence, structure)\n"
+ " new_cell.id = i\n"
+ " new_cell.parent = i\n"
+ " \n"
+ " #assign preference\n"
+ " new_cell.preference = random.choice(preference_types)\n"
+ " population.append(new_cell)\n"
+ " \n"
+ " return population\n"
+ "\n"
+ "def selection_with_mating_preference(population, target, preference_matrix, preference_types, mutation_rate=0.001, beta=-2):\n"
+ " next_generation = []\n"
+ " \n"
+ " counter = 0\n"
+ " while len(next_generation) < len(population):\n"
+ " #select two parents based on their fitness\n"
+ " parents_pair = np.random.choice(population, 2, p=[rna.fitness for rna in population], replace=False)\n"
+ " \n"
+ " #look up probabilty of mating in the preference_matrix\n"
+ " mating_probability = preference_matrix[parents_pair[0].preference][parents_pair[1].preference]\n"
+ " \n"
+ " r = random.random()\n"
+ " #if random number below mating_probability, mate the Cells as before\n"
+ " if r < mating_probability:\n"
+ " #take the sequence and structure from the first parent's first chromosome and give it to the child\n"
+ " child_chrom_1 = (parents_pair[0].sequence_1, parents_pair[0].structure_1)\n"
+ "\n"
+ " #do the same for the child's second chromosome and the second parent.\n"
+ " child_chrom_2 = (parents_pair[1].sequence_2, parents_pair[1].structure_2)\n"
+ "\n"
+ "\n"
+ " #initialize the new child Cell witht he new chromosomes.\n"
+ " child_cell = Cell(child_chrom_1[0], child_chrom_1[1], child_chrom_2[0], child_chrom_2[1])\n"
+ "\n"
+ " #give the child and id and store who its parents are\n"
+ " child_cell.id = counter\n"
+ " child_cell.parent_1 = parents_pair[0].id\n"
+ " child_cell.parent_2 = parents_pair[1].id\n"
+ " \n"
+ " #give the child a random preference\n"
+ " child_cell.preference = random.choice(preference_types)\n"
+ "\n"
+ " #add the child to the new generation\n"
+ " next_generation.append(child_cell)\n"
+ "\n"
+ " counter = counter + 1\n"
+ " \n"
+ " \n"
+ " #introduce mutations in next_generation sequeneces and re-fold when a mutation occurs (same as before)\n"
+ " for rna in next_generation: \n"
+ " mutated_sequence_1, mutated_1 = mutate(rna.sequence_1, mutation_rate=mutation_rate)\n"
+ " mutated_sequence_2, mutated_2 = mutate(rna.sequence_2, mutation_rate=mutation_rate)\n"
+ "\n"
+ " if mutated_1:\n"
+ " rna.sequence_1 = mutated_sequence_1\n"
+ " rna.structure_1 = nussinov(mutated_sequence_1)\n"
+ " if mutated_2:\n"
+ " rna.sequence_2 = mutated_sequence_2\n"
+ " rna.structure_2 = nussinov(mutated_sequence_2)\n"
+ " else:\n"
+ " continue\n"
+ "\n"
+ " #update fitness values for the new generation\n"
+ " compute_fitness(next_generation, target, beta=beta)\n"
+ "\n"
+ " return next_generation \n"
+ "\n"
+ "\n"
+ "def evolve_with_mating_preferences(target, preference_types, preference_matrix,\\\n"
+ " generations=10, pop_size=100, mutation_rate=0.001, beta=-2):\n"
+ " populations = []\n"
+ " population_stats = {}\n"
+ " \n"
+ " initial_population = populate_with_preferences(target, preference_types, pop_size=pop_size)\n"
+ " compute_fitness(initial_population, target)\n"
+ " \n"
+ " current_generation = initial_population\n"
+ "\n"
+ " #iterate the selection process over the desired number of generations\n"
+ " for i in range(generations):\n"
+ " #let's get some stats on the structures in the populations \n"
+ " record_stats(current_generation, population_stats)\n"
+ " \n"
+ " #add the current generation to our list of populations.\n"
+ " populations.append(current_generation)\n"
+ "\n"
+ " #select the next generation, but this time with mutations\n"
+ " new_gen = selection_with_mating_preference(current_generation, target, preference_matrix, \\\n"
+ " preference_types, mutation_rate=mutation_rate, beta=beta)\n"
+ " current_generation = new_gen \n"
+ " \n"
+ " return (populations, population_stats)\n"
+ "\n"
+ "\n"
+ "\n"
+ "#run a small test to make sure it works\n"
+ "target = \".(((....)))\"\n"
+ "#for convenience, let's give the preference types integer values in sequential order\n"
+ "preference_types = [0,1,2]\n"
+ "\n"
+ "preference_matrix = np.array([[0.7, 0.1, 0.2],[0.1, 0.9, 0],[0.2, 0, 0.8]])\n"
+ " \n"
+ "pops, pop_stats = evolve_with_mating_preferences(target, preference_types, preference_matrix)\n"
+ "\n"
+ "for cell in pops[-1][:10]:\n"
+ " print(cell.sequence_1)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "UAUCUCUAGAA\n"
+ "UCAAACGGUUU\n"
+ "CCUAGACUUUC\n"
+ "UAUCUCUAGAA\n"
+ "CCUAGACUUUC\n"
+ "GGCAaUGGUGC\n"
+ "GGCAaUGGUGC\n"
+ "CGGUGCCAUGG\n"
+ "CCCGGUUACGU\n"
+ "CGGGGAGUUUU"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Population Genetics / Bioinformatics Exercises\n"
+ "\n"
+ "*Exercise 1. Make a tree using maximum parsimony.*\n"
+ "\n"
+ "We saw how to make trees using a distance score. Another popular method is known as the maximum parsimony approach. I won't go into too much detail on this since we are short on time, but I will give a quick intro and we'll look at how ot make a tree using maximum parsimony.\n"
+ "\n"
+ "This approach is based on the principle of parsimony, which states that the simplest explanation for our data is the most likely to be true. So given an alignment, we assume that the best tree is the one that minimizes the number of changes, or mutations. This is often a reasonable assumption to make since mutation rates in real populations are generally low, and things like back-mutations (e.g. A --> C --> A) are unlikely. Computing the tree that that maximizes parsimony directly is a difficult task, but evaluating the parsimony score of a tree given the tree is easy. So this approach basically generates many random trees for the data and scores them based on parsimony keeping the most parsimonious tree. Take a look at [the biopython manual to work through this example](http://biopython.org/wiki/Phylo), and [this one](http://biopython.org/DIST/docs/api/Bio.Phylo.TreeConstruction.ParsimonyTreeConstructor-class.html).\n"
+ "\n"
+ "Since we already have an alignment (`aln.clustal`) we will just re-use it and make a maximum parsimony tree instead. "
+ ));
+
+ qDebug() << "command entry 38";
+ testCommandEntry(entry, 38, 1, QString::fromUtf8(
+ "from Bio.Phylo.TreeConstruction import *\n"
+ "\n"
+ "#open our alignment file (or make a new one if you want)\n"
+ "with open('aln.clustal', 'r') as align:\n"
+ " aln = AlignIO.read(align, 'clustal')\n"
+ "\n"
+ "#create a parsimony scorer object\n"
+ "scorer = ParsimonyScorer()\n"
+ "#the searcher object will search through possible trees and score them.\n"
+ "searcher = NNITreeSearcher(scorer)\n"
+ "\n"
+ "#takes our searcher object and a seed tree (upgma_tree) to find the best tree\n"
+ "constructor = ParsimonyTreeConstructor(searcher, upgma_tree)\n"
+ "\n"
+ "#build the tree \n"
+ "parsimony_tree = constructor.build_tree(aln)\n"
+ "\n"
+ "#draw the tree\n"
+ "Phylo.draw(parsimony_tree)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "*Exercise 2. Bootstrapping*\n"
+ "\n"
+ "We just saw two methods of growing phylogenetic trees given an alignment. However, as we saw with the maximum parsimony approach, there can be many different trees for a single data set. How do we know our tree is a good representation of the data? By 'good' here we will instead use the word 'robust'. Is the tree we use too sensitive to the particularities of the data we gave it? If we make a small change in the sequence will we get a very different tree? Normally these problems would be addressed by re-sampling and seeing if we obtain similar results. But we can't really re-sample evolution. It happened once and we can't make it happen again. So we use something called *bootstrapping* which is a technique often used in statistics where instead of generating new data, you re-sample from your present data.\n"
+ "\n"
+ "So we have a multiple sequence alignment with $M$ sequences (rows) each with sequences of length $N$ nucleotides (columns). For each row, we can randomly sample $N$ nucleotides with replacement to make a new 'bootstrapped' sequence also of length $N$. Think of it as a kind of shuffling of the data. This gives us a whole new alignment that we can again use to make a new tree.\n"
+ "\n"
+ "This process is repeated many times to obtain many trees. The differences in topology (shape/structure) of the trees we obtained are assessed. If after this shuffling/perturbations we still get similar enough looking trees we can say that our final tree is robust to small changes in the data. ([some more reading on this](http://projecteuclid.org/download/pdf_1/euclid.ss/1063994979))\n"
+ "\n"
+ "Let's run a small example of this using the bootstrapping functions in `BioPython`."
+ ));
+
+ qDebug() << "command entry 39";
+ testCommandEntry(entry, 39, 1, QString::fromUtf8(
+ "from Bio.Phylo.Consensus import *\n"
+ "\n"
+ "#open our alignment file.\n"
+ "with open('aln.clustal', 'r') as align:\n"
+ " aln = AlignIO.read(align, 'clustal')\n"
+ "\n"
+ "#take 5 bootstrap samples from our alignment\n"
+ "bootstraps = bootstrap(aln,5)\n"
+ "\n"
+ "#let's print each new alignment in clustal format. you should see 5 different alignments.\n"
+ "for b in bootstraps:\n"
+ " print(b.format('clustal'))"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "CLUSTAL X (1.81) multiple sequence alignment\n"
+ "\n"
+ "\n"
+ "8 GAAGAGACAC\n"
+ "7 GGGGGAGCGC\n"
+ "0 GCCACAGCGC\n"
+ "3 ACCACAGUGU\n"
+ "6 CCCACAGUGU\n"
+ "9 CCCACUAGAG\n"
+ "1 CCCUCUCGCG\n"
+ "2 CCCUCUCGCG\n"
+ "4 CUUUUUCGCG\n"
+ "5 CUUUUUCGCG\n"
+ " \n"
+ "\n"
+ "\n"
+ "\n"
+ "CLUSTAL X (1.81) multiple sequence alignment\n"
+ "\n"
+ "\n"
+ "8 GGAUUUCUUA\n"
+ "7 GAGCCCCCCG\n"
+ "0 AAGGGGCGGG\n"
+ "3 AAGGGGUGGG\n"
+ "6 AAGGGGUGGG\n"
+ "9 AUAUUUGUUA\n"
+ "1 UUCUUUGUUC\n"
+ "2 UUCUUUGUUC\n"
+ "4 UUCUUUGUUC\n"
+ "5 UUCUUUGUUC\n"
+ " \n"
+ "\n"
+ "\n"
+ "\n"
+ "CLUSTAL X (1.81) multiple sequence alignment\n"
+ "\n"
+ "\n"
+ "8 UCUUGAGAUC\n"
+ "7 CCCGGGGGGC\n"
+ "0 GCGAGGGCAC\n"
+ "3 GUGCAGACCU\n"
+ "6 GUGCCGCCCU\n"
+ "9 UGUACACCAG\n"
+ "1 UGUGCCCCGG\n"
+ "2 UGUGCCCCGG\n"
+ "4 UGUGCCCUGG\n"
+ "5 UGUGCCCUGG\n"
+ " \n"
+ "\n"
+ "\n"
+ "\n"
+ "CLUSTAL X (1.81) multiple sequence alignment\n"
+ "\n"
+ "\n"
+ "8 GGUGCGCAUG\n"
+ "7 GACGCAUGGG\n"
+ "0 AAGGUAAGAA\n"
+ "3 AAGAUAUGCA\n"
+ "6 AAGCUAUGCA\n"
+ "9 AUUCUUAAAA\n"
+ "1 UUUCAUACGU\n"
+ "2 UUUCAUACGU\n"
+ "4 UUUCAUACGU\n"
+ "5 UUUCAUACGU\n"
+ " \n"
+ "\n"
+ "\n"
+ "\n"
+ "CLUSTAL X (1.81) multiple sequence alignment\n"
+ "\n"
+ "\n"
+ "8 GCUAGGAACC\n"
+ "7 GCGGGGGGCU\n"
+ "0 AUACGGGGCA\n"
+ "3 AUCCAAGGUU\n"
+ "6 AUCCCCGGUU\n"
+ "9 AUACCCAAGA\n"
+ "1 UAGCCCCCGA\n"
+ "2 UAGCCCCCGA\n"
+ "4 UAGUCCCCGA\n"
+ "5 UAGUCCCCGA"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 40";
+ testCommandEntry(entry, 40, 5, QString::fromUtf8(
+ "#now we want to use the bootstrapping to make new trees based on the new samples. we'll go back to making UPGMA trees.\n"
+ "\n"
+ "#start a calculator that uses sequence identity to calculate differences\n"
+ "calculator = DistanceCalculator('identity')\n"
+ "#start a distance tree constructor object \n"
+ "constructor = DistanceTreeConstructor(calculator)\n"
+ "#generate 5 bootstrap UPGMA trees\n"
+ "trees = bootstrap_trees(aln, 5, constructor)\n"
+ "\n"
+ "#let's look at the trees. (if you have few samples, short sequences the trees might look very similar)\n"
+ "for t in trees:\n"
+ " Phylo.draw(t)"
+ ));
+ testImageResult(entry, 0);
+ testImageResult(entry, 1);
+ testImageResult(entry, 2);
+ testImageResult(entry, 3);
+ testImageResult(entry, 4);
+ entry = entry->next();
+
+ qDebug() << "command entry 41";
+ testCommandEntry(entry, 41, 1, QString::fromUtf8(
+ "#biopython gives us a useful function that puts all this together by bootstrapping trees and making a 'consensus' tree.\n"
+ "consensus_tree = bootstrap_consensus(aln, 100, constructor, majority_consensus)\n"
+ "Phylo.draw(consensus_tree)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "*Exercise 3. T-tests*\n"
+ "\n"
+ "Similarly to the $\\chi^{2}$ test we saw for testing deviations from HW equilibrium, we can use a T-test to compare differences in means between two independent samples. We can use this to revisit a the first programming question in the exercsies section. Does mutation rate and population size have an effect on the fitness of populations? We can translate this question to, is there a difference in the mean base pair distance between populations under different mutation and population size regimes?\n"
+ "\n"
+ "Scipy has a very useful function that implements the T-test called `scipy.stats.ttest_ind`. Run two independent simulations (with different mutation rates) and compute the difference in mean bp distance between the two at their final generation. Store the populations in two different variables. Give a list of `bp_distance_1` values for each memeber of the population to `ttest_ind()`. \n"
+ "\n"
+ "Make sure to read teh `ttest_ind()` documentation, particularly about the argumetn `equal_var`. What should we set it to?"
+ ));
+
+ qDebug() << "command entry 42";
+ testCommandEntry(entry, 42, 1, QString::fromUtf8(
+ "import collections\n"
+ "\n"
+ "target = \"..(((....).))\"\n"
+ "\n"
+ "#run two simulations\n"
+ "hi_mut_pop, hi_mut_stats = evolve(target, generations=5, pop_size=1000, mutation_rate=0.5)\n"
+ "lo_mut_pop, hi_mut_stats = evolve(target, generations=5, pop_size=1000, mutation_rate=0.05)\n"
+ "\n"
+ "#store lits of base pair distances for each population at last generation.\n"
+ "hi_bps = [p.bp_distance_1 for p in hi_mut_pop[-1]]\n"
+ "lo_bps = [p.bp_distance_1 for p in lo_mut_pop[-1]]\n"
+ "\n"
+ "#run the \n"
+ "stats.ttest_ind(hi_bps, lo_bps, equal_var=False)"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "Ttest_indResult(statistic=1.3671266704990508, pvalue=0.17188793847221653)"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Bonus! (difficult programming exercise)\n"
+ "1. *Nussinov Algorithm (Only try this if you are feeling brave and are done with the other exercises or are interested in getting a taste of Computer Science. It is beyond the scope of this workshop.)*\n"
+ "\n"
+ "There are several approaches for solving this problem, we will look at the simplest one here which is known as the Nussinov Algorithm. This algorithm is a popular example of a class of algorithms know as dynamic programming algorithms. The main idea behind these algorithms is that we can break down the problem into many subproblems which are easier to compute than the full problem. Once we have obtained the solution for the subproblems, we can retrieve the solution to the full problem by doing something called a backtrace (more on the backtrace later). \n"
+ "\n"
+ "Here, the problem is obtaining the optimal pairing on a string of nucleotides. In order to know how good our structure is, we assign a score to it. One possible scoring scheme could be adding 1 to the score per paired set of nucleotides, and 0 otherwise. So in other words, we want a pairing that will give us the highest possible score. We can write this quantity as $OPT(i, j)$ where $i$ and $j$ are the indices of the sequence between which we obtain the pairing score. Our algorithm is therefore going to compute a folding score for all substrings bound by $i$ and $j$ and store the value in what is known as a dynamic programming table. Our dynamic programming table will be a $N$ x $N$ array where $N$ is the length of our sequence. So now that we have a way of measuring how good a structure is, we need a way to evaluate scores given a subsequence. To do this, we set some rules on the structure of an RNA sequence:\n"
+ "\n"
+ "\n"
+ "If $i$ and $j$ form a pair:\n"
+ "1. The pair $i$ and $j$ must form a valid watson-crick pair.\n"
+ "2. $i < j-4$. This ensures that bonding is not happening between positions that are too close to each other, which would produce steric clashes.\n"
+ "3. If pair $(i,j)$ and $(k, l)$ are in the structure, then $i < k < j < l$. This ensures that there is no crossing over of pairs which would result in pseudoknots.\n"
+ "4. No base appears in more than one pair.\n"
+ "\n"
+ "Using these rules we can begin to build our algorithm. The first part of our algorithm needs to take as input indices $i$ and $j$ and return the value $OPT(i,j)$ which is the optimal score of a structure between $i$ and $j$. We start by thinking about values of $i$ and $j$ for which we can immediately know the solution, this is known as a 'base case'. This is a case where the solution is known and no further recursion is required. Once the algorithm reaches the base case, it can return a solution and propagate it upward to the first recursive call. So once we have reached $i$ and $j$ that are too close to form a structure (rule number 2), we know that the score is 0. \n"
+ "\n"
+ "Otherwise, we must weigh the possibility of forming a pair or not forming a pair. If $i$ and $j$ are unpaired, then $OPT(i,j)$ is just $OPT(i, j-1)$ since the score will not increase for unpaired indices. \n"
+ "\n"
+ "The other case is that $i$ is paired to some index $t$ on the interval $[i,j]$. We then add 1 to the score and consider the structure formed before and after the pairing between $i$ and $t$. We can write these two cases as $OPT(i, t-1)$ and $OPT(t+1, j)$. But how do we know which $t$ to pair $i$ with? Well we simply try all possible values of $t$ within the allowed range and choose the best one. \n"
+ "\n"
+ "All of this can be summed up as follows:\n"
+ "\n"
+ "$$ OPT(i,j) = max\\begin{cases}\n"
+ " OPT(i, j-1) \\quad \\text{If $i$ and $j$ are not paired with each other.}\\\\\n"
+ " max(1 + OPT(i, t-1) + OPT(t+1, j)) \\quad \\text{Where we try all values of $t$ < j - 4}\n"
+ " \\end{cases}$$\n"
+ "\n"
+ "\n"
+ "We can now use this recursion to fill our dynamic programming table. Once we have filled the table with scores, we can retrieve the optimal folding by a process called backtracking. We won't go into detail on how this works, but the main idea is that we can start by looking at the entry containing the score for the full sequence $OPT[0][N]$. We can then look at adjacent entries and deduce which case (pairing or not pairing) resulted in the current value. We can continue like this for the full table until we have retrieved the full structure."
+ ));
+
+ qDebug() << "command entry 43";
+ testCommandEntry(entry, 43, 1, QString::fromUtf8(
+ "min_loop_length = 4\n"
+ "\n"
+ "def pair_check(tup):\n"
+ " if tup in [('A', 'U'), ('U', 'A'), ('C', 'G'), ('G', 'C')]:\n"
+ " return True\n"
+ " return False\n"
+ "\n"
+ "def OPT(i,j, sequence):\n"
+ " \"\"\" returns the score of the optimal pairing between indices i and j\"\"\"\n"
+ " #base case: no pairs allowed when i and j are less than 4 bases apart\n"
+ " if i >= j-min_loop_length:\n"
+ " return 0\n"
+ " else:\n"
+ " #i and j can either be paired or not be paired, if not paired then the optimal score is OPT(i,j-1)\n"
+ " unpaired = OPT(i, j-1, sequence)\n"
+ "\n"
+ " #check if j can be involved in a pairing with a position t\n"
+ " pairing = [1 + OPT(i, t-1, sequence) + OPT(t+1, j-1, sequence) for t in range(i, j-4)\\\n"
+ " if pair_check((sequence[t], sequence[j]))]\n"
+ " if not pairing:\n"
+ " pairing = [0]\n"
+ " paired = max(pairing)\n"
+ "\n"
+ "\n"
+ " return max(unpaired, paired)\n"
+ "\n"
+ "\n"
+ "def traceback(i, j, structure, DP, sequence):\n"
+ " #in this case we've gone through the whole sequence. Nothing to do.\n"
+ " if j <= i:\n"
+ " return\n"
+ " #if j is unpaired, there will be no change in score when we take it out, so we just recurse to the next index\n"
+ " elif DP[i][j] == DP[i][j-1]:\n"
+ " traceback(i, j-1, structure, DP, sequence)\n"
+ " #hi\n"
+ " else:\n"
+ " #try pairing j with a matching index k to its left.\n"
+ " for k in [b for b in range(i, j-min_loop_length) if pair_check((sequence[b], sequence[j]))]:\n"
+ " #if the score at i,j is the result of adding 1 from pairing (j,k) and whatever score\n"
+ " #comes from the substructure to its left (i, k-1) and to its right (k+1, j-1)\n"
+ " if k-1 < 0:\n"
+ " if DP[i][j] == DP[k+1][j-1] + 1:\n"
+ " structure.append((k,j))\n"
+ " traceback(k+1, j-1, structure, DP, sequence)\n"
+ " break\n"
+ " elif DP[i][j] == DP[i][k-1] + DP[k+1][j-1] + 1:\n"
+ " #add the pair (j,k) to our list of pairs\n"
+ " structure.append((k,j))\n"
+ " #move the recursion to the two substructures formed by this pairing\n"
+ " traceback(i, k-1, structure, DP, sequence)\n"
+ " traceback(k+1, j-1, structure, DP, sequence)\n"
+ " break\n"
+ "\n"
+ "def write_structure(sequence, structure):\n"
+ " dot_bracket = [\".\" for _ in range(len(sequence))]\n"
+ " for s in structure:\n"
+ " dot_bracket[min(s)] = \"(\"\n"
+ " dot_bracket[max(s)] = \")\"\n"
+ " return \"\".join(dot_bracket)\n"
+ "\n"
+ "\n"
+ "#initialize matrix with zeros where can't have pairings\n"
+ "def initialize(N):\n"
+ " #NxN matrix that stores the scores of the optimal pairings.\n"
+ " DP = np.empty((N,N))\n"
+ " DP[:] = np.NAN\n"
+ " for k in range(0, min_loop_length):\n"
+ " for i in range(N-k):\n"
+ " j = i + k\n"
+ " DP[i][j] = 0\n"
+ " return DP\n"
+ "\n"
+ "def nussinov(sequence):\n"
+ " N = len(sequence)\n"
+ " DP = initialize(N)\n"
+ " structure = []\n"
+ "\n"
+ " #fill the DP matrix\n"
+ " for k in range(min_loop_length, N):\n"
+ " for i in range(N-k):\n"
+ " j = i + k\n"
+ " DP[i][j] = OPT(i,j, sequence)\n"
+ "\n"
+ " #copy values to lower triangle to avoid null references\n"
+ " for i in range(N):\n"
+ " for j in range(0, i):\n"
+ " DP[i][j] = DP[j][i]\n"
+ "\n"
+ "\n"
+ " traceback(0,N-1, structure, DP, sequence)\n"
+ " return (sequence, write_structure(sequence, structure))\n"
+ "\n"
+ "print(nussinov(\"ACCCGAUGUUAUAUAUACCU\"))"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "('ACCCGAUGUUAUAUAUACCU', '(...(..(((....).))))')"
+ ));
+ entry = entry->next();
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testJupyter4()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("A Reaction-Diffusion Equation Solver in Python with Numpy.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python2"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "This notebook demonstrates how IPython notebooks can be used to discuss the theory and implementation of numerical algorithms on one page.\n"
+ "\n"
+ "With `ipython nbconvert --to markdown name.ipynb` a notebook like this one can be made into a \n"
+ "[blog post](http://georg.io/2013/12/Crank_Nicolson) in one easy step. To display the graphics in your resultant blog post use,\n"
+ "for instance, your [Dropbox Public folder](https://www.dropbox.com/help/16/en) that you can \n"
+ "[activate here](https://www.dropbox.com/enable_public_folder)."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# The Crank-Nicolson Method"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The [Crank-Nicolson method](http://en.wikipedia.org/wiki/Crank%E2%80%93Nicolson_method) is a well-known finite difference method for the\n"
+ "numerical integration of the heat equation and closely related partial differential equations.\n"
+ "\n"
+ "We often resort to a Crank-Nicolson (CN) scheme when we integrate numerically reaction-diffusion systems in one space dimension\n"
+ "\n"
+ "$$\\frac{\\partial u}{\\partial t} = D \\frac{\\partial^2 u}{\\partial x^2} + f(u),$$\n"
+ "\n"
+ "$$\\frac{\\partial u}{\\partial x}\\Bigg|_{x = 0, L} = 0,$$\n"
+ "\n"
+ "where $u$ is our concentration variable, $x$ is the space variable, $D$ is the diffusion coefficient of $u$, $f$ is the reaction term,\n"
+ "and $L$ is the length of our one-dimensional space domain.\n"
+ "\n"
+ "Note that we use [Neumann boundary conditions](http://en.wikipedia.org/wiki/Neumann_boundary_condition) and specify that the solution\n"
+ "$u$ has zero space slope at the boundaries, effectively prohibiting entrance or exit of material at the boundaries (no-flux boundary conditions)."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Finite Difference Methods"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Many fantastic textbooks and tutorials have been written about finite difference methods, for instance a free textbook by\n"
+ "[Lloyd Trefethen](http://people.maths.ox.ac.uk/trefethen/pdetext.html).\n"
+ "\n"
+ "Here we describe a few basic aspects of finite difference methods.\n"
+ "\n"
+ "The above reaction-diffusion equation describes the time evolution of variable $u(x,t)$ in one space dimension ($u$ is a line concentration).\n"
+ "If we knew an analytic expression for $u(x,t)$ then we could plot $u$ in a two-dimensional coordinate system with axes $t$ and $x$.\n"
+ "\n"
+ "To approximate $u(x,t)$ numerically we discretize this two-dimensional coordinate system resulting, in the simplest case, in a\n"
+ "two-dimensional [regular grid](http://en.wikipedia.org/wiki/Regular_grid).\n"
+ "This picture is employed commonly when constructing finite differences methods, see for instance \n"
+ "[Figure 3.2.1 of Trefethen](http://people.maths.ox.ac.uk/trefethen/3all.pdf).\n"
+ "\n"
+ "Let us discretize both time and space as follows:\n"
+ "\n"
+ "$$t_n = n \\Delta t,~ n = 0, \\ldots, N-1,$$\n"
+ "\n"
+ "$$x_j = j \\Delta x,~ j = 0, \\ldots, J-1,$$\n"
+ "\n"
+ "where $N$ and $J$ are the number of discrete time and space points in our grid respectively.\n"
+ "$\\Delta t$ and $\\Delta x$ are the time step and space step respectively and defined as follows:\n"
+ "\n"
+ "$$\\Delta t = T / N,$$\n"
+ "\n"
+ "$$\\Delta x = L / J,$$\n"
+ "\n"
+ "where $T$ is the point in time up to which we will integrate $u$ numerically.\n"
+ "\n"
+ "Our ultimate goal is to construct a numerical method that allows us to approximate the unknonwn analytic solution $u(x,t)$\n"
+ "reasonably well in these discrete grid points.\n"
+ "\n"
+ "That is we want construct a method that computes values $U(j \\Delta x, n \\Delta t)$ (note: capital $U$) so that\n"
+ "\n"
+ "$$U(j \\Delta x, n \\Delta t) \\approx u(j \\Delta x, n \\Delta t)$$\n"
+ "\n"
+ "As a shorthand we will write $U_j^n = U(j \\Delta x, n \\Delta t)$ and $(j,n)$ to refer to grid point $(j \\Delta x, n \\Delta t)$."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## The Crank-Nicolson Stencil"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Based on the two-dimensional grid we construct we then approximate the operators of our reaction-diffusion system.\n"
+ "\n"
+ "For instance, to approximate the time derivative on the left-hand side in grid point $(j,n)$ we use the values of $U$ in two specific grid points:\n"
+ "\n"
+ "$$\\frac{\\partial u}{\\partial t}\\Bigg|_{x = j \\Delta x, t = n \\Delta t} \\approx \\frac{U_j^{n+1} - U_j^n}{\\Delta t}.$$\n"
+ "\n"
+ "We can think of this scheme as a stencil that we superimpose on our $(x,t)$-grid and this particular stencil is\n"
+ "commonly referred to as [forward difference](http://en.wikipedia.org/wiki/Finite_difference#Forward.2C_backward.2C_and_central_differences).\n"
+ "\n"
+ "The spatial part of the [Crank-Nicolson stencil](http://journals.cambridge.org/abstract_S0305004100023197)\n"
+ "(or see [Table 3.2.2 of Trefethen](http://people.maths.ox.ac.uk/trefethen/3all.pdf))\n"
+ "for the heat equation ($u_t = u_{xx}$) approximates the \n"
+ "[Laplace operator](http://en.wikipedia.org/wiki/Laplace_operator) of our equation and takes the following form\n"
+ "\n"
+ "$$\\frac{\\partial^2 u}{\\partial x^2}\\Bigg|_{x = j \\Delta x, t = n \\Delta t} \\approx \\frac{1}{2 \\Delta x^2} \\left( U_{j+1}^n - 2 U_j^n + U_{j-1}^n + U_{j+1}^{n+1} - 2 U_j^{n+1} + U_{j-1}^{n+1}\\right).$$\n"
+ "\n"
+ "To approximate $f(u(j \\Delta x, n \\Delta t))$ we write simply $f(U_j^n)$.\n"
+ "\n"
+ "These approximations define the stencil for our numerical method as pictured on [Wikipedia](http://en.wikipedia.org/wiki/Crank%E2%80%93Nicolson_method).\n"
+ "\n"
+ "![SVG](https://dl.dropboxusercontent.com/u/129945779/georgio/CN-stencil.svg)\n"
+ "\n"
+ "Applying this stencil to grid point $(j,n)$ gives us the following approximation of our reaction-diffusion equation:\n"
+ "\n"
+ "$$\\frac{U_j^{n+1} - U_j^n}{\\Delta t} = \\frac{D}{2 \\Delta x^2} \\left( U_{j+1}^n - 2 U_j^n + U_{j-1}^n + U_{j+1}^{n+1} - 2 U_j^{n+1} + U_{j-1}^{n+1}\\right) + f(U_j^n).$$"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Reordering Stencil into Linear System"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let us define $\\sigma = \\frac{D \\Delta t}{2 \\Delta x^2}$ and reorder the above approximation of our reaction-diffusion equation:\n"
+ "\n"
+ "$$-\\sigma U_{j-1}^{n+1} + (1+2\\sigma) U_j^{n+1} -\\sigma U_{j+1}^{n+1} = \\sigma U_{j-1}^n + (1-2\\sigma) U_j^n + \\sigma U_{j+1}^n + \\Delta t f(U_j^n).$$\n"
+ "\n"
+ "This equation makes sense for space indices $j = 1,\\ldots,J-2$ but it does not make sense for indices $j=0$ and $j=J-1$ (on the boundaries):\n"
+ "\n"
+ "$$j=0:~-\\sigma U_{-1}^{n+1} + (1+2\\sigma) U_0^{n+1} -\\sigma U_{1}^{n+1} = \\sigma U_{-1}^n + (1-2\\sigma) U_0^n + \\sigma U_{1}^n + \\Delta t f(U_0^n),$$\n"
+ "\n"
+ "$$j=J-1:~-\\sigma U_{J-2}^{n+1} + (1+2\\sigma) U_{J-1}^{n+1} -\\sigma U_{J}^{n+1} = \\sigma U_{J-2}^n + (1-2\\sigma) U_{J-1}^n + \\sigma U_{J}^n + \\Delta t f(U_{J-1}^n).$$\n"
+ "\n"
+ "The problem here is that the values $U_{-1}^n$ and $U_J^n$ lie outside our grid.\n"
+ "\n"
+ "However, we can work out what these values should equal by considering our Neumann boundary condition.\n"
+ "Let us discretize our boundary condition at $j=0$ with the \n"
+ "[backward difference](http://en.wikipedia.org/wiki/Finite_difference#Forward.2C_backward.2C_and_central_differences) and\n"
+ "at $j=J-1$ with the\n"
+ "[forward difference](http://en.wikipedia.org/wiki/Finite_difference#Forward.2C_backward.2C_and_central_differences):\n"
+ "\n"
+ "$$\\frac{U_1^n - U_0^n}{\\Delta x} = 0,$$\n"
+ "\n"
+ "$$\\frac{U_J^n - U_{J-1}^n}{\\Delta x} = 0.$$\n"
+ "\n"
+ "These two equations make it clear that we need to amend our above numerical approximation for\n"
+ "$j=0$ with the identities $U_0^n = U_1^n$ and $U_0^{n+1} = U_1^{n+1}$, and\n"
+ "for $j=J-1$ with the identities $U_{J-1}^n = U_J^n$ and $U_{J-1}^{n+1} = U_J^{n+1}$.\n"
+ "\n"
+ "Let us reinterpret our numerical approximation of the line concentration of $u$ in a fixed point in time as a vector $\\mathbf{U}^n$:\n"
+ "\n"
+ "$$\\mathbf{U}^n = \n"
+ "\\begin{bmatrix} U_0^n \\\\ \\vdots \\\\ U_{J-1}^n \\end{bmatrix}.$$\n"
+ "\n"
+ "Using this notation we can now write our above approximation for a fixed point in time, $t = n \\Delta t$, compactly as a linear system:\n"
+ "\n"
+ "$$\n"
+ "\\begin{bmatrix}\n"
+ "1+\\sigma & -\\sigma & 0 & 0 & 0 & \\cdots & 0 & 0 & 0 & 0\\\\\n"
+ "-\\sigma & 1+2\\sigma & -\\sigma & 0 & 0 & \\cdots & 0 & 0 & 0 & 0 \\\\\n"
+ "0 & -\\sigma & 1+2\\sigma & -\\sigma & \\cdots & 0 & 0 & 0 & 0 & 0 \\\\\n"
+ "0 & 0 & \\ddots & \\ddots & \\ddots & \\ddots & 0 & 0 & 0 & 0 \\\\\n"
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & -\\sigma & 1+2\\sigma & -\\sigma \\\\\n"
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -\\sigma & 1+\\sigma\n"
+ "\\end{bmatrix}\n"
+ "\\begin{bmatrix}\n"
+ "U_0^{n+1} \\\\\n"
+ "U_1^{n+1} \\\\\n"
+ "U_2^{n+1} \\\\\n"
+ "\\vdots \\\\\n"
+ "U_{J-2}^{n+1} \\\\\n"
+ "U_{J-1}^{n+1}\n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "1-\\sigma & \\sigma & 0 & 0 & 0 & \\cdots & 0 & 0 & 0 & 0\\\\\n"
+ "\\sigma & 1-2\\sigma & \\sigma & 0 & 0 & \\cdots & 0 & 0 & 0 & 0 \\\\\n"
+ "0 & \\sigma & 1-2\\sigma & \\sigma & \\cdots & 0 & 0 & 0 & 0 & 0 \\\\\n"
+ "0 & 0 & \\ddots & \\ddots & \\ddots & \\ddots & 0 & 0 & 0 & 0 \\\\\n"
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & \\sigma & 1-2\\sigma & \\sigma \\\\\n"
+ "0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \\sigma & 1-\\sigma\n"
+ "\\end{bmatrix}\n"
+ "\\begin{bmatrix}\n"
+ "U_0^{n} \\\\\n"
+ "U_1^{n} \\\\\n"
+ "U_2^{n} \\\\\n"
+ "\\vdots \\\\\n"
+ "U_{J-2}^{n} \\\\\n"
+ "U_{J-1}^{n}\n"
+ "\\end{bmatrix} +\n"
+ "\\begin{bmatrix}\n"
+ "\\Delta t f(U_0^n) \\\\\n"
+ "\\Delta t f(U_1^n) \\\\\n"
+ "\\Delta t f(U_2^n) \\\\\n"
+ "\\vdots \\\\\n"
+ "\\Delta t f(U_{J-2}^n) \\\\\n"
+ "\\Delta t f(U_{J-1}^n)\n"
+ "\\end{bmatrix}.\n"
+ "$$\n"
+ "\n"
+ "Note that since our numerical integration starts with a well-defined initial condition at $n=0$, $\\mathbf{U}^0$, the\n"
+ "vector $\\mathbf{U}^{n+1}$ on the left-hand side is the only unknown in this system of linear equations.\n"
+ "\n"
+ "Thus, to integrate numerically our reaction-diffusion system from time point $n$ to $n+1$ we need to solve numerically for vector $\\mathbf{U}^{n+1}$.\n"
+ "\n"
+ "Let us call the matrix on the left-hand side $A$, the one on the right-hand side $B$,\n"
+ "and the vector on the right-hand side $\\mathbf{f}^n$.\n"
+ "Using this notation we can write the above system as\n"
+ "\n"
+ "$$A \\mathbf{U}^{n+1} = B \\mathbf{U}^n + f^n.$$\n"
+ "\n"
+ "In this linear equation, matrices $A$ and $B$ are defined by our problem: we need to specify these matrices once for our\n"
+ "problem and incorporate our boundary conditions in them.\n"
+ "Vector $\\mathbf{f}^n$ is a function of $\\mathbf{U}^n$ and so needs to be reevaluated in every time point $n$.\n"
+ "We also need to carry out one matrix-vector multiplication every time point, $B \\mathbf{U}^n$, and\n"
+ "one vector-vector addition, $B \\mathbf{U}^n + f^n$.\n"
+ "\n"
+ "The most expensive numerical operation is inversion of matrix $A$ to solve for $\\mathbf{U}^{n+1}$, however we may\n"
+ "get away with doing this only once and store the inverse of $A$ as $A^{-1}$:\n"
+ "\n"
+ "$$\\mathbf{U}^{n+1} = A^{-1} \\left( B \\mathbf{U}^n + f^n \\right).$$"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## A Crank-Nicolson Example in Python"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let us apply the CN method to a two-variable reaction-diffusion system that was introduced by \n"
+ "[Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442):\n"
+ "\n"
+ "$$\\frac{\\partial u}{\\partial t} = D_u \\frac{\\partial^2 u}{\\partial x^2} + f(u,v),$$\n"
+ "\n"
+ "$$\\frac{\\partial v}{\\partial t} = D_v \\frac{\\partial^2 v}{\\partial x^2} - f(u,v),$$\n"
+ "\n"
+ "with Neumann boundary conditions\n"
+ "\n"
+ "$$\\frac{\\partial u}{\\partial x}\\Bigg|_{x=0,L} = 0,$$\n"
+ "\n"
+ "$$\\frac{\\partial v}{\\partial x}\\Bigg|_{x=0,L} = 0.$$\n"
+ "\n"
+ "The variables of this system, $u$ and $v$, represent the concetrations of the active form and its inactive form respectively.\n"
+ "The reaction term $f(u,v)$ describes the interchange (activation and inactivation) between these two states of the protein.\n"
+ "A particular property of this system is that the inactive has much greater diffusivity that the active form, $D_v \\gg D_u$.\n"
+ "\n"
+ "Using the CN method to integrate this system numerically, we need to set up two separate approximations\n"
+ "\n"
+ "$$A_u \\mathbf{U}^{n+1} = B_u \\mathbf{U}^n + \\mathbf{f}^n,$$\n"
+ "\n"
+ "$$A_v \\mathbf{V}^{n+1} = B_v \\mathbf{V}^n - \\mathbf{f}^n,$$\n"
+ "\n"
+ "with two different $\\sigma$ terms, $\\sigma_u = \\frac{D_u \\Delta t}{2 \\Delta x^2}$ and $\\sigma_v = \\frac{D_v \\Delta t}{2 \\Delta x^2}$."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Import Packages"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "For the matrix-vector multiplication, vector-vector addition, and matrix inversion that we will need to carry\n"
+ "out we will use the Python library [NumPy](http://www.numpy.org/).\n"
+ "To visualize our numerical solutions, we will use [pyplot](http://matplotlib.org/api/pyplot_api.html)."
+ ));
+
+ qDebug() << "command entry 1";
+ testCommandEntry(entry, 1, QString::fromUtf8(
+ "import numpy\n"
+ "from matplotlib import pyplot"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Numpy allows us to truncate the numerical values of matrices and vectors to improve their display with \n"
+ "[`set_printoptions`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html)."
+ ));
+
+ qDebug() << "command entry 2";
+ testCommandEntry(entry, 2, QString::fromUtf8(
+ "numpy.set_printoptions(precision=3)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Specify Grid"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Our one-dimensional domain has unit length and we define `J = 100` equally spaced\n"
+ "grid points in this domain.\n"
+ "This divides our domain into `J-1` subintervals, each of length `dx`."
+ ));
+
+ qDebug() << "command entry 3";
+ testCommandEntry(entry, 3, QString::fromUtf8(
+ "L = 1.\n"
+ "J = 100\n"
+ "dx = float(L)/float(J-1)\n"
+ "x_grid = numpy.array([j*dx for j in range(J)])"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Equally, we define `N = 1000` equally spaced grid points on our time domain of length `T = 200` thus dividing our time domain into `N-1` intervals of length `dt`."
+ ));
+
+ qDebug() << "command entry 4";
+ testCommandEntry(entry, 4, QString::fromUtf8(
+ "T = 200\n"
+ "N = 1000\n"
+ "dt = float(T)/float(N-1)\n"
+ "t_grid = numpy.array([n*dt for n in range(N)])"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Specify System Parameters and the Reaction Term"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "We choose our parameter values based on the work by\n"
+ "[Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442)."
+ ));
+
+ qDebug() << "command entry 5";
+ testCommandEntry(entry, 5, QString::fromUtf8(
+ "D_v = float(10.)/float(100.)\n"
+ "D_u = 0.01 * D_v\n"
+ "\n"
+ "k0 = 0.067\n"
+ "f = lambda u, v: dt*(v*(k0 + float(u*u)/float(1. + u*u)) - u)\n"
+ "g = lambda u, v: -f(u,v)\n"
+ " \n"
+ "sigma_u = float(D_u*dt)/float((2.*dx*dx))\n"
+ "sigma_v = float(D_v*dt)/float((2.*dx*dx))\n"
+ "\n"
+ "total_protein = 2.26"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Specify the Initial Condition"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "As discussed by\n"
+ "[Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442),\n"
+ "we can expect to observe interesting behaviour in the steady state of this system\n"
+ "if we choose a heterogeneous initial condition for $u$.\n"
+ "\n"
+ "Here, we initialize $u$ with a step-like heterogeneity:"
+ ));
+
+ qDebug() << "command entry 7";
+ testCommandEntry(entry, 7, QString::fromUtf8(
+ "no_high = 10\n"
+ "U = numpy.array([0.1 for i in range(no_high,J)] + [2. for i in range(0,no_high)])\n"
+ "V = numpy.array([float(total_protein-dx*sum(U))/float(J*dx) for i in range(0,J)])"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Note that we make certain that total protein amounts equal a certain value,\n"
+ "`total_protein`.\n"
+ "The importance of this was discussed by \n"
+ "[Walther *et al.*](http://link.springer.com/article/10.1007%2Fs11538-012-9766-5).\n"
+ "\n"
+ "Let us plot our initial condition for confirmation:"
+ ));
+
+ qDebug() << "command entry 9";
+ testCommandEntry(entry, 9, 1, QString::fromUtf8(
+ "pyplot.ylim((0., 2.1))\n"
+ "pyplot.xlabel('x'); pyplot.ylabel('concentration')\n"
+ "pyplot.plot(x_grid, U)\n"
+ "pyplot.plot(x_grid, V)\n"
+ "pyplot.show()"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The blue curve is the initial condition for $U$, stored in Python variable `U`,\n"
+ "and the green curve is the initial condition for $V$ stored in `V`."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Create Matrices"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The matrices that we need to construct are all tridiagonal so they are easy to\n"
+ "construct with \n"
+ "[`numpy.diagflat`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.diagflat.html)."
+ ));
+
+ qDebug() << "command entry 10";
+ testCommandEntry(entry, 10, QString::fromUtf8(
+ "A_u = numpy.diagflat([-sigma_u for i in range(J-1)], -1) +\\\n"
+ " numpy.diagflat([1.+sigma_u]+[1.+2.*sigma_u for i in range(J-2)]+[1.+sigma_u]) +\\\n"
+ " numpy.diagflat([-sigma_u for i in range(J-1)], 1)\n"
+ " \n"
+ "B_u = numpy.diagflat([sigma_u for i in range(J-1)], -1) +\\\n"
+ " numpy.diagflat([1.-sigma_u]+[1.-2.*sigma_u for i in range(J-2)]+[1.-sigma_u]) +\\\n"
+ " numpy.diagflat([sigma_u for i in range(J-1)], 1)\n"
+ " \n"
+ "A_v = numpy.diagflat([-sigma_v for i in range(J-1)], -1) +\\\n"
+ " numpy.diagflat([1.+sigma_v]+[1.+2.*sigma_v for i in range(J-2)]+[1.+sigma_v]) +\\\n"
+ " numpy.diagflat([-sigma_v for i in range(J-1)], 1)\n"
+ " \n"
+ "B_v = numpy.diagflat([sigma_v for i in range(J-1)], -1) +\\\n"
+ " numpy.diagflat([1.-sigma_v]+[1.-2.*sigma_v for i in range(J-2)]+[1.-sigma_v]) +\\\n"
+ " numpy.diagflat([sigma_v for i in range(J-1)], 1)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "To confirm, this is what `A_u` looks like:"
+ ));
+
+ qDebug() << "command entry 11";
+ testCommandEntry(entry, 11, 1, QString::fromUtf8(
+ "print A_u"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "[[ 1.981 -0.981 0. ... 0. 0. 0. ]\n"
+ " [-0.981 2.962 -0.981 ... 0. 0. 0. ]\n"
+ " [ 0. -0.981 2.962 ... 0. 0. 0. ]\n"
+ " ...\n"
+ " [ 0. 0. 0. ... 2.962 -0.981 0. ]\n"
+ " [ 0. 0. 0. ... -0.981 2.962 -0.981]\n"
+ " [ 0. 0. 0. ... 0. -0.981 1.981]]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Solve the System Iteratively"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "To advance our system by one time step, we need to do one matrix-vector multiplication followed by one vector-vector addition on the right hand side.\n"
+ "\n"
+ "To facilitate this, we rewrite our reaction term so that it accepts concentration vectors $\\mathbf{U}^n$ and $\\mathbf{V}^n$ as arguments\n"
+ "and returns vector $\\mathbf{f}^n$.\n"
+ "\n"
+ "As a reminder, this is our non-vectorial definition of $f$\n"
+ "\n"
+ " f = lambda u, v: v*(k0 + float(u*u)/float(1. + u*u)) - u"
+ ));
+
+ qDebug() << "command entry 12";
+ testCommandEntry(entry, 12, QString::fromUtf8(
+ "f_vec = lambda U, V: numpy.multiply(dt, numpy.subtract(numpy.multiply(V, \n"
+ " numpy.add(k0, numpy.divide(numpy.multiply(U,U), numpy.add(1., numpy.multiply(U,U))))), U))"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let us make certain that this produces the same values as our non-vectorial `f`:"
+ ));
+
+ qDebug() << "command entry 13";
+ testCommandEntry(entry, 13, 1, QString::fromUtf8(
+ "print f(U[0], V[0])"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "0.009961358982745121"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 14";
+ testCommandEntry(entry, 14, 1, QString::fromUtf8(
+ "print f(U[-1], V[-1])"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "-0.06238322322322325"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 15";
+ testCommandEntry(entry, 15, 1, QString::fromUtf8(
+ "print f_vec(U, V)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "[ 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01\n"
+ " -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062 -0.062]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Accounting for rounding of the displayed values due to the `set_printoptions` we set above, we\n"
+ "can see that `f` and `f_vec` generate the same values for our initial condition at both ends of our domain."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "We will use [`numpy.linalg.solve`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.solve.html) to solve\n"
+ "our linear system each time step."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "While we integrate our system over time we will record both `U` and `V` at each\n"
+ "time step in `U_record` and `V_record` respectively so that we can plot\n"
+ "our numerical solutions over time."
+ ));
+
+ qDebug() << "command entry 16";
+ testCommandEntry(entry, 16, QString::fromUtf8(
+ "U_record = []\n"
+ "V_record = []\n"
+ "\n"
+ "U_record.append(U)\n"
+ "V_record.append(V)\n"
+ "\n"
+ "for ti in range(1,N):\n"
+ " U_new = numpy.linalg.solve(A_u, B_u.dot(U) + f_vec(U,V))\n"
+ " V_new = numpy.linalg.solve(A_v, B_v.dot(V) - f_vec(U,V))\n"
+ " \n"
+ " U = U_new\n"
+ " V = V_new\n"
+ " \n"
+ " U_record.append(U)\n"
+ " V_record.append(V)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Plot the Numerical Solution"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Let us take a look at the numerical solution we attain after `N` time steps."
+ ));
+
+ qDebug() << "command entry 18";
+ testCommandEntry(entry, 18, 1, QString::fromUtf8(
+ "pyplot.ylim((0., 2.1))\n"
+ "pyplot.xlabel('x'); pyplot.ylabel('concentration')\n"
+ "pyplot.plot(x_grid, U)\n"
+ "pyplot.plot(x_grid, V)\n"
+ "pyplot.show()"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "And here is a [kymograph](http://en.wikipedia.org/wiki/Kymograph) of the values of `U`.\n"
+ "This plot shows concisely the behaviour of `U` over time and we can clear observe the wave-pinning\n"
+ "behaviour described by [Mori *et al.*](http://www.sciencedirect.com/science/article/pii/S0006349508704442).\n"
+ "Furthermore, we observe that this wave pattern is stable for about 50 units of time and we therefore\n"
+ "conclude that this wave pattern is a stable steady state of our system."
+ ));
+
+ qDebug() << "command entry 21";
+ testCommandEntry(entry, 21, 1, QString::fromUtf8(
+ "U_record = numpy.array(U_record)\n"
+ "V_record = numpy.array(V_record)\n"
+ "\n"
+ "fig, ax = pyplot.subplots()\n"
+ "pyplot.xlabel('x'); pyplot.ylabel('t')\n"
+ "heatmap = ax.pcolor(x_grid, t_grid, U_record, vmin=0., vmax=1.2)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testJupyter5()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("Automata and Computability using Jupyter.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Jove helps teach models of computation using Jupyter \n"
+ "\n"
+ "Included are modules on:\n"
+ "\n"
+ "* Sets, strings and languages\n"
+ "* Language operations\n"
+ "* Construction of and operations on DFA and NFA\n"
+ "* Regular expression parsing and automata inter-conversion\n"
+ "* Derivate-based parsing\n"
+ "* Pushdown automata\n"
+ "* The construction of parsers using context-free productions, including\n"
+ " a full lexer/parser for Jove's own markdown syntax\n"
+ "* Studies of parsing: ambiguity, associativity, precedence\n"
+ "* Turing machines (including one for the Collatz problem)\n"
+ "\n"
+ "For a complete Jove top-level reference, kindly refer to https://github.com/ganeshutah/Jove from where you can download and obtain Jove. You can also visit this Github link now and poke around (the NBViewer will display the contents).\n"
+ "\n"
+ "Once you are in the top-level Gallery link we provide, feel free to explore the hierarchy of modules found there.\n"
+ "\n"
+ "These notebooks should give you an idea of the contents.\n"
+ "\n"
+ "* [DFA Illustrations (has a Youtube)](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/tutorial/DFAUnit2.ipynb)\n"
+ "\n"
+ "* [Regular Operations](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/driver/Drive_AllRegularOps.ipynb)\n"
+ "\n"
+ "* [PDA Operations](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/driver/Drive_PDA_Based_Parsing.ipynb)\n"
+ "\n"
+ "* [TM Operations](http://nbviewer.jupyter.org/github/ganeshutah/Jove/blob/master/notebooks/driver/Drive_TM.ipynb)"
+ ));
+
+ qDebug() << "command entry 1";
+ testCommandEntry(entry, 1, 1, QString::fromUtf8(
+ "from IPython.display import YouTubeVideo\n"
+ "YouTubeVideo('dGcLHtYLgDU')"
+ ));
+ testHtmlResult(entry, 0, QString::fromLatin1(
+ "<IPython.lib.display.YouTubeVideo at 0x7fa7a1ee4c50>"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 2";
+ testCommandEntry(entry, 2, 1, QString::fromUtf8(
+ "import sys\n"
+ "sys.path[0:0] = ['/home/mmmm1998/Документы/Репозитории/Jove','/home/mmmm1998/Документы/Репозитории/Jove/3rdparty'] # Put these at the head of the search path\n"
+ "from jove.DotBashers import *\n"
+ "from jove.Def_DFA import *\n"
+ "from jove.Def_NFA import *\n"
+ "from jove.Def_RE2NFA import *\n"
+ "from jove.Def_NFA2RE import *\n"
+ "from jove.Def_md2mc import *"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "You may use any of these help commands:\n"
+ "help(ResetStNum)\n"
+ "help(NxtStateStr)\n"
+ "\n"
+ "You may use any of these help commands:\n"
+ "help(mkp_dfa)\n"
+ "help(mk_dfa)\n"
+ "help(totalize_dfa)\n"
+ "help(addtosigma_delta)\n"
+ "help(step_dfa)\n"
+ "help(run_dfa)\n"
+ "help(accepts_dfa)\n"
+ "help(comp_dfa)\n"
+ "help(union_dfa)\n"
+ "help(intersect_dfa)\n"
+ "help(pruneUnreach)\n"
+ "help(iso_dfa)\n"
+ "help(langeq_dfa)\n"
+ "help(same_status)\n"
+ "help(h_langeq_dfa)\n"
+ "help(fixptDist)\n"
+ "help(min_dfa)\n"
+ "help(pairFR)\n"
+ "help(state_combos)\n"
+ "help(sepFinNonFin)\n"
+ "help(bash_eql_classes)\n"
+ "help(listminus)\n"
+ "help(bash_1)\n"
+ "help(mk_rep_eqc)\n"
+ "help(F_of)\n"
+ "help(rep_of_s)\n"
+ "help(q0_of)\n"
+ "help(Delta_of)\n"
+ "help(mk_state_eqc_name)\n"
+ "\n"
+ "You may use any of these help commands:\n"
+ "help(mk_nfa)\n"
+ "help(totalize_nfa)\n"
+ "help(step_nfa)\n"
+ "help(run_nfa)\n"
+ "help(ec_step_nfa)\n"
+ "help(Eclosure)\n"
+ "help(Echelp)\n"
+ "help(accepts_nfa)\n"
+ "help(nfa2dfa)\n"
+ "help(n2d)\n"
+ "help(inSets)\n"
+ "help(rev_dfa)\n"
+ "help(min_dfa_brz)\n"
+ "\n"
+ "You may use any of these help commands:\n"
+ "help(re2nfa)\n"
+ "\n"
+ "You may use any of these help commands:\n"
+ "help(RE2Str)\n"
+ "help(mk_gnfa)\n"
+ "help(mk_gnfa_from_D)\n"
+ "help(dfa2nfa)\n"
+ "help(del_gnfa_states)\n"
+ "help(gnfa_w_REStr)\n"
+ "help(del_one_gnfa_state)\n"
+ "help(Edges_Exist_Via)\n"
+ "help(choose_state_to_del)\n"
+ "help(form_alt_RE)\n"
+ "help(form_concat_RE)\n"
+ "help(form_kleene_RE)\n"
+ "\n"
+ "You may use any of these help commands:\n"
+ "help(md2mc)\n"
+ ".. and if you want to dig more, then ..\n"
+ "help(default_line_attr)\n"
+ "help(length_ok_input_items)\n"
+ "help(union_line_attr_list_fld)\n"
+ "help(extend_rsltdict)\n"
+ "help(form_delta)\n"
+ "help(get_machine_components)"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ " # Jove allows you to set problems in markdown and have students solve"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "1) LOdd1Three0 : Set of strings over {0,1} with an odd # of 1s OR exactly three 0s. \n"
+ "\n"
+ "* Hint on how to arrive at the language:\n"
+ "\n"
+ " - develop NFAs for the two cases and perform their union. Obtain DFA\n"
+ "\n"
+ " - develop REs for the two cases and perform the union. \n"
+ "\n"
+ " - Testing the creations:\n"
+ "\n"
+ " . Come up with language for even # of 1s and separately for \"other than three 0s\". \n"
+ " \n"
+ " . Do two intersections. \n"
+ " \n"
+ " . Is the language empty?\n"
+ "\n"
+ "\n"
+ "2) Language of strings over {0,1} with exactly two occurrences of 0101 in it.\n"
+ "\n"
+ " * Come up with it directly (take overlaps into account, i.e. 010101 has two occurrences in it\n"
+ "\n"
+ " * Come up in another way\n"
+ "\n"
+ "Notes:\n"
+ "\n"
+ "* Most of the problem students will have in this course is interpreting English (technical English)\n"
+ "\n"
+ "* So again, read the writeup at the beginning of Module6 (should be ready soon today) and work on using the tool.\n"
+ "\n"
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "__Solutions__\n"
+ "\n"
+ "1) LOdd1Three0 : Set of strings over {0,1} with an odd # of 1s OR exactly three 0s. \n"
+ "\n"
+ "* Hint on how to arrive at the language:\n"
+ "\n"
+ " - develop NFAs for the two cases and perform their union. Obtain DFA\n"
+ "\n"
+ " - develop REs for the two cases and perform the union. \n"
+ "\n"
+ " - Testing the creations:\n"
+ "\n"
+ " . Come up with language for even # of 1s and separately for \"other than three 0s\". \n"
+ " \n"
+ " . Do two intersections. \n"
+ " \n"
+ " . Is the language empty?\n"
+ "\n"
+ "\n"
+ "2) Language of strings over {0,1} with exactly two occurrences of 0101 in it.\n"
+ "\n"
+ " * Come up with it directly (take overlaps into account, i.e. 010101 has two occurrences in it\n"
+ "\n"
+ " * Come up in another way\n"
+ "\n"
+ "Notes:\n"
+ "\n"
+ "* Most of the problem students will have in this course is interpreting English (technical English)\n"
+ "\n"
+ "* So again, read the writeup at the beginning of Module6 (should be ready soon today) and work on using the tool.\n"
+ "\n"
+ "\n"
+ "\n"
+ ""
+ ));
+
+ qDebug() << "command entry 3";
+ testCommandEntry(entry, 3, 1, QString::fromUtf8(
+ "RE_Odd1s = \"(0* 1 0* (1 0* 1 0)*)*\"\n"
+ "NFA_Odd1s = re2nfa(RE_Odd1s)\n"
+ "DO_Odd1s = dotObj_dfa(min_dfa(nfa2dfa(NFA_Odd1s)))\n"
+ "DO_Odd1s"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ qDebug() << "command entry 4";
+ testCommandEntry(entry, 4, 1, QString::fromUtf8(
+ "RE_Ex3z = \"1* 0 1* 0 1* 0 1* + (0* 1 0* (1 0* 1 0*)*)\"\n"
+ "NFA_Ex3z = re2nfa(RE_Ex3z)\n"
+ "DO_Ex3z = dotObj_dfa(min_dfa(nfa2dfa(NFA_Ex3z)))\n"
+ "DO_Ex3z"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Check out all remaining modules of Jove covering these\n"
+ "\n"
+ "* Brzozowski derivatives for parsing\n"
+ "* Brzozowski minimization\n"
+ "* Context-free parsing\n"
+ "* (soon to come) [Binary Decision Diagrams; obtain now from software/ at](http://www.cs.utah.edu/fv)\n"
+ "* (soon to come) Post Correspondence Problem"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Brzozowski's minimization defined\n"
+ "\n"
+ "It is nothing but these steps done in this order:\n"
+ "\n"
+ "* Reverse\n"
+ "* Determinize\n"
+ "* Reverse\n"
+ "* Determinize\n"
+ "\n"
+ "Voila! The machine is now minimal!"
+ ));
+
+ qDebug() << "command entry 5";
+ testCommandEntry(entry, 5, QString::fromUtf8(
+ "# The above example, with min_dfa replaced by the rev;det;rev;det\n"
+ "\n"
+ "DofNFA_Ex3z = nfa2dfa(re2nfa(\"1* 0 1* 0 1* 0 1* + (0* 1 0* (1 0* 1 0*)*)\"))\n"
+ "dotObj_dfa(DofNFA_Ex3z)\n"
+ "dotObj_dfa(DofNFA_Ex3z)\n"
+ "minDofNFA_Ex3z = nfa2dfa(rev_dfa(nfa2dfa(rev_dfa(DofNFA_Ex3z))))"
+ ));
+
+ qDebug() << "command entry 6";
+ testCommandEntry(entry, 6, 1, QString::fromUtf8(
+ "dotObj_dfa(minDofNFA_Ex3z)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# What's the largest postage that can't be made using 3,5 and 7 cents?\n"
+ "\n"
+ "Answer is 4. Find it out."
+ ));
+
+ qDebug() << "command entry 7";
+ testCommandEntry(entry, 7, 1, QString::fromUtf8(
+ "dotObj_dfa(min_dfa_brz(nfa2dfa(re2nfa(\"(111+11111+1111111)*\"))))"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Show ambiguity in parsing"
+ ));
+
+ qDebug() << "command entry 8";
+ testCommandEntry(entry, 8, 1, QString::fromUtf8(
+ "# Parsing an arithmetic expression\n"
+ "pdaEamb = md2mc('''PDA\n"
+ "!!E -> E * E | E + E | ~E | ( E ) | 2 | 3\n"
+ "I : '', # ; E# -> M\n"
+ "M : '', E ; ~E -> M\n"
+ "M : '', E ; E+E -> M\n"
+ "M : '', E ; E*E -> M\n"
+ "M : '', E ; (E) -> M\n"
+ "M : '', E ; 2 -> M\n"
+ "M : '', E ; 3 -> M\n"
+ "M : ~, ~ ; '' -> M\n"
+ "M : 2, 2 ; '' -> M\n"
+ "M : 3, 3 ; '' -> M\n"
+ "M : (, ( ; '' -> M\n"
+ "M : ), ) ; '' -> M\n"
+ "M : +, + ; '' -> M\n"
+ "M : *, * ; '' -> M\n"
+ "M : '', # ; # -> F\n"
+ "'''\n"
+ ")"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Generating LALR tables"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 9";
+ testCommandEntry(entry, 9, 1, QString::fromUtf8(
+ "from jove.Def_PDA import *"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "You may use any of these help commands:\n"
+ "help(explore_pda)\n"
+ "help(run_pda)\n"
+ "help(classify_l_id_path)\n"
+ "help(h_run_pda)\n"
+ "help(interpret_w_eps)\n"
+ "help(step_pda)\n"
+ "help(suvivor_id)\n"
+ "help(term_id)\n"
+ "help(final_id)\n"
+ "help(cvt_str_to_sym)\n"
+ "help(is_surv_id)\n"
+ "help(subsumed)\n"
+ "help(is_term_id)\n"
+ "help(is_final_id)"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 10";
+ testCommandEntry(entry, 10, 1, QString::fromUtf8(
+ "explore_pda(\"3+2*3+2*3\", pdaEamb, STKMAX=7)"
+ ));
+
+ testTextResult(entry, 0, QString::fromUtf8(
+ "*** Exploring wrt STKMAX = 7 ; increase it if needed ***\n"
+ "String 3+2*3+2*3 accepted by your PDA in 13 ways :-) \n"
+ "Here are the ways: \n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E*E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E*E*E#')\n"
+ "-> ('M', '+2*3+2*3', '+E*E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E*E#')\n"
+ "-> ('M', '*3+2*3', '*E*E#')\n"
+ "-> ('M', '3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3+2*3', '+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E*E#')\n"
+ "-> ('M', '*3+2*3', '*E*E#')\n"
+ "-> ('M', '3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3+2*3', '+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E#')\n"
+ "-> ('M', '*3+2*3', '*E#')\n"
+ "-> ('M', '3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3+2*3', '+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E#')\n"
+ "-> ('M', '*3+2*3', '*E#')\n"
+ "-> ('M', '3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3', '+E#')\n"
+ "-> ('M', '2*3', 'E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3+2*3', '+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E+E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E+E*E#')\n"
+ "-> ('M', '*3+2*3', '*E+E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E+E*E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E+E*E#')\n"
+ "-> ('M', '+2*3+2*3', '+E+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E+E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E+E*E#')\n"
+ "-> ('M', '*3+2*3', '*E+E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E*E+E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E*E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E*E+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E*E+E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E+E#')\n"
+ "-> ('M', '2*3+2*3', '2*E+E#')\n"
+ "-> ('M', '*3+2*3', '*E+E#')\n"
+ "-> ('M', '3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3', '+E#')\n"
+ "-> ('M', '2*3', 'E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E#')\n"
+ "-> ('M', '2*3+2*3', 'E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E*E#')\n"
+ "-> ('M', '*3+2*3', '*E*E#')\n"
+ "-> ('M', '3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E#')\n"
+ "-> ('M', '2*3+2*3', 'E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E#')\n"
+ "-> ('M', '*3+2*3', '*E#')\n"
+ "-> ('M', '3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3', 'E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E#')\n"
+ "-> ('M', '2*3+2*3', 'E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E#')\n"
+ "-> ('M', '*3+2*3', '*E#')\n"
+ "-> ('M', '3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3', '+E#')\n"
+ "-> ('M', '2*3', 'E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E#')\n"
+ "-> ('M', '2*3+2*3', 'E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E+E*E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E+E*E#')\n"
+ "-> ('M', '2*3+2*3', '2*E+E*E#')\n"
+ "-> ('M', '*3+2*3', '*E+E*E#')\n"
+ "-> ('M', '3+2*3', 'E+E*E#')\n"
+ "-> ('M', '3+2*3', '3+E*E#')\n"
+ "-> ('M', '+2*3', '+E*E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E#')\n"
+ "-> ('M', '2*3+2*3', 'E#')\n"
+ "-> ('M', '2*3+2*3', 'E+E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E+E#')\n"
+ "-> ('M', '2*3+2*3', '2*E+E#')\n"
+ "-> ('M', '*3+2*3', '*E+E#')\n"
+ "-> ('M', '3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3', '+E#')\n"
+ "-> ('M', '2*3', 'E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') .\n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+E+E#')\n"
+ "-> ('M', '3+2*3+2*3', '3+E+E#')\n"
+ "-> ('M', '+2*3+2*3', '+E+E#')\n"
+ "-> ('M', '2*3+2*3', 'E+E#')\n"
+ "-> ('M', '2*3+2*3', 'E*E+E#')\n"
+ "-> ('M', '2*3+2*3', '2*E+E#')\n"
+ "-> ('M', '*3+2*3', '*E+E#')\n"
+ "-> ('M', '3+2*3', 'E+E#')\n"
+ "-> ('M', '3+2*3', '3+E#')\n"
+ "-> ('M', '+2*3', '+E#')\n"
+ "-> ('M', '2*3', 'E#')\n"
+ "-> ('M', '2*3', 'E*E#')\n"
+ "-> ('M', '2*3', '2*E#')\n"
+ "-> ('M', '*3', '*E#')\n"
+ "-> ('M', '3', 'E#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') ."
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Show how to disambiguate"
+ ));
+
+ qDebug() << "command entry 11";
+ testCommandEntry(entry, 11, 1, QString::fromUtf8(
+ "# Parsing an arithmetic expression\n"
+ "pdaE = md2mc('''PDA\n"
+ "!!E -> E+T | T\n"
+ "!!T -> T*F | F\n"
+ "!!F -> 2 | 3 | ~F | (E)\n"
+ "I : '', # ; E# -> M\n"
+ "M : '', E ; E+T -> M\n"
+ "M : '', E ; T -> M\n"
+ "M : '', T ; T*F -> M\n"
+ "M : '', T ; F -> M\n"
+ "M : '', F ; 2 -> M\n"
+ "M : '', F ; 3 -> M\n"
+ "M : '', F ; ~F -> M\n"
+ "M : '', F ; (E) -> M\n"
+ "M : ~, ~ ; '' -> M\n"
+ "M : 2, 2 ; '' -> M\n"
+ "M : 3, 3 ; '' -> M\n"
+ "M : (, ( ; '' -> M\n"
+ "M : ), ) ; '' -> M\n"
+ "M : +, + ; '' -> M\n"
+ "M : *, * ; '' -> M\n"
+ "M : '', # ; # -> F\n"
+ "'''\n"
+ ")"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Generating LALR tables"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 12";
+ testCommandEntry(entry, 12, 1, QString::fromUtf8(
+ "explore_pda(\"3+2*3+2*3\", pdaE, STKMAX=7)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "*** Exploring wrt STKMAX = 7 ; increase it if needed ***\n"
+ "String 3+2*3+2*3 accepted by your PDA in 1 ways :-) \n"
+ "Here are the ways: \n"
+ "Final state ('F', '', '#')\n"
+ "Reached as follows:\n"
+ "-> ('I', '3+2*3+2*3', '#')\n"
+ "-> ('M', '3+2*3+2*3', 'E#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+T#')\n"
+ "-> ('M', '3+2*3+2*3', 'E+T+T#')\n"
+ "-> ('M', '3+2*3+2*3', 'T+T+T#')\n"
+ "-> ('M', '3+2*3+2*3', 'F+T+T#')\n"
+ "-> ('M', '3+2*3+2*3', '3+T+T#')\n"
+ "-> ('M', '+2*3+2*3', '+T+T#')\n"
+ "-> ('M', '2*3+2*3', 'T+T#')\n"
+ "-> ('M', '2*3+2*3', 'T*F+T#')\n"
+ "-> ('M', '2*3+2*3', 'F*F+T#')\n"
+ "-> ('M', '2*3+2*3', '2*F+T#')\n"
+ "-> ('M', '*3+2*3', '*F+T#')\n"
+ "-> ('M', '3+2*3', 'F+T#')\n"
+ "-> ('M', '3+2*3', '3+T#')\n"
+ "-> ('M', '+2*3', '+T#')\n"
+ "-> ('M', '2*3', 'T#')\n"
+ "-> ('M', '2*3', 'T*F#')\n"
+ "-> ('M', '2*3', 'F*F#')\n"
+ "-> ('M', '2*3', '2*F#')\n"
+ "-> ('M', '*3', '*F#')\n"
+ "-> ('M', '3', 'F#')\n"
+ "-> ('M', '3', '3#')\n"
+ "-> ('M', '', '#')\n"
+ "-> ('F', '', '#') ."
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# And finally, run a Turing Machine with \"dynamic tape allocation\" :-)\n"
+ "\n"
+ "* Why not show how TMs are encoded? \n"
+ "* This markdown gets parsed to build a TM!\n"
+ "* This TM is for the famous \"3x+1\" problem (Collatz's Problem)"
+ ));
+
+ qDebug() << "command entry 13";
+ testCommandEntry(entry, 13, QString::fromUtf8(
+ "collatz_tm_str = \"\"\"\n"
+ "TM\n"
+ "\n"
+ "i_start : 0; ., R -> i_start !! erase this zero and try to find more\n"
+ "i_start : 1; 1, R -> goto_lsb !! we have a proper number, go to the lsb\n"
+ "i_start : .; ., S -> error !! error on no input or input == 0\n"
+ "\n"
+ "\n"
+ "goto_lsb : 0; 0,R | 1; 1,R -> goto_lsb !! scan off the right edge of the number\n"
+ "goto_lsb : .; .,L -> branch !! take a step back to be on the lsb and start branch\n"
+ "\n"
+ "\n"
+ "branch : 0; .,L -> branch !! number is even, divide by two and re-branch\n"
+ "branch : 1; 1,L -> check_n_eq_1 !! number is odd, check if it is 1\n"
+ "\n"
+ "\n"
+ "check_n_eq_1 : 0; 0,R | 1; 1,R -> 01_fma !! number wasn't 1, goto 3n+1\n"
+ "check_n_eq_1 : .; .,R -> f_halt !! number was 1, halt\n"
+ "\n"
+ "\n"
+ "!! carrying 0 we see a 0 so write 0 and carry 0 forward\n"
+ "00_fma : 0; 0,L -> 00_fma\n"
+ "\n"
+ "!! carrying 0 we see a 1 (times 3 is 11) so write 1 and carry 1 forward\n"
+ "00_fma : 1; 1,L -> 01_fma\n"
+ "\n"
+ "!! reached the end of the number, go back to the start\n"
+ "00_fma : .; .,R -> goto_lsb \n"
+ "\n"
+ "\n"
+ "!! carrying 1 we see a 0 so write 1 and carry 0 forward\n"
+ "01_fma : 0; 1,L -> 00_fma \n"
+ "\n"
+ "!! carrying 1 we see a 1 (times 3 is 11, plus our carry is 100) so write 0 and carry 10 forward\n"
+ "01_fma : 1; 0,L -> 10_fma \n"
+ "\n"
+ "!! reached the end of the number, write our 1 and go back to the start\n"
+ "01_fma : .; 1,R -> goto_lsb \n"
+ "\n"
+ "\n"
+ "!! carrying 10 we see a 0, so write 0 and carry 1 forward\n"
+ "10_fma : 0; 0,L -> 01_fma\n"
+ "\n"
+ "!! carrying 10 we see a 1 (times 3 is 11, plus our carry is 101), so write 1 and carry 10 forward\n"
+ "10_fma : 1; 1,L -> 10_fma\n"
+ "\n"
+ "!! reached the end of the number, write a 0 from our 10 and carry 1\n"
+ "10_fma : .; 0,L -> 01_fma\n"
+ "\n"
+ "!!\"\"\"\n"
+ ""
+ ));
+
+ qDebug() << "command entry 14";
+ testCommandEntry(entry, 14, 2, QString::fromUtf8(
+ "# Now show the above TM graphically!\n"
+ "collatz_tm = md2mc(collatz_tm_str)\n"
+ "dotObj_tm(collatz_tm, FuseEdges=True)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Generating LALR tables"
+ ));
+ testImageResult(entry, 1);
+ entry = entry->next();
+
+ qDebug() << "command entry 15";
+ testCommandEntry(entry, 15, 1, QString::fromUtf8(
+ "from jove.Def_TM import *"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "You may use any of these help commands:\n"
+ "help(step_tm)\n"
+ "help(run_tm)\n"
+ "help(explore_tm)"
+ ));
+ entry = entry->next();
+
+ qDebug() << "command entry 16";
+ testCommandEntry(entry, 16, 1, QString::fromUtf8(
+ "# Will loop if the Collatz (\"3x+1\") program will ever loop!\n"
+ "explore_tm(collatz_tm, \"0110\", 100)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Allocating 8 tape cells to the RIGHT!\n"
+ "Allocating 8 tape cells to the LEFT!\n"
+ "Detailing the halted configs now.\n"
+ "Accepted at ('f_halt', 5, '.....1..............', 65)\n"
+ " via .. \n"
+ " ->('i_start', 0, '0110', 100)\n"
+ " ->('i_start', 1, '.110', 99)\n"
+ " ->('goto_lsb', 2, '.110', 98)\n"
+ " ->('goto_lsb', 3, '.110', 97)\n"
+ " ->('goto_lsb', 4, '.110', 96)\n"
+ " ->('branch', 3, '.110........', 95)\n"
+ " ->('branch', 2, '.11.........', 94)\n"
+ " ->('check_n_eq_1', 1, '.11.........', 93)\n"
+ " ->('01_fma', 2, '.11.........', 92)\n"
+ " ->('10_fma', 1, '.10.........', 91)\n"
+ " ->('10_fma', 0, '.10.........', 90)\n"
+ " ->('01_fma', 7, '........010.........', 89)\n"
+ " ->('goto_lsb', 8, '.......1010.........', 88)\n"
+ " ->('goto_lsb', 9, '.......1010.........', 87)\n"
+ " ->('goto_lsb', 10, '.......1010.........', 86)\n"
+ " ->('goto_lsb', 11, '.......1010.........', 85)\n"
+ " ->('branch', 10, '.......1010.........', 84)\n"
+ " ->('branch', 9, '.......101..........', 83)\n"
+ " ->('check_n_eq_1', 8, '.......101..........', 82)\n"
+ " ->('01_fma', 9, '.......101..........', 81)\n"
+ " ->('10_fma', 8, '.......100..........', 80)\n"
+ " ->('01_fma', 7, '.......100..........', 79)\n"
+ " ->('10_fma', 6, '.......000..........', 78)\n"
+ " ->('01_fma', 5, '......0000..........', 77)\n"
+ " ->('goto_lsb', 6, '.....10000..........', 76)\n"
+ " ->('goto_lsb', 7, '.....10000..........', 75)\n"
+ " ->('goto_lsb', 8, '.....10000..........', 74)\n"
+ " ->('goto_lsb', 9, '.....10000..........', 73)\n"
+ " ->('goto_lsb', 10, '.....10000..........', 72)\n"
+ " ->('branch', 9, '.....10000..........', 71)\n"
+ " ->('branch', 8, '.....1000...........', 70)\n"
+ " ->('branch', 7, '.....100............', 69)\n"
+ " ->('branch', 6, '.....10.............', 68)\n"
+ " ->('branch', 5, '.....1..............', 67)\n"
+ " ->('check_n_eq_1', 4, '.....1..............', 66)\n"
+ " ->('f_halt', 5, '.....1..............', 65)"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# END: You have a ton more waiting for your execution pleasure!"
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testJupyter6()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("Cue Combination with Neural Populations .ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Humans and animals integrate multisensory cues near-optimally\n"
+ "## An intuition for how populations of neurons can perform Bayesian inference"
+ ));
+
+ qDebug() << "command entry 30";
+ testCommandEntry(entry, 30, QString::fromUtf8(
+ "from __future__ import division\n"
+ "import numpy as np\n"
+ "from scipy.special import factorial\n"
+ "import scipy.stats as stats\n"
+ "import pylab\n"
+ "import matplotlib.pyplot as plt\n"
+ "%matplotlib inline\n"
+ "import seaborn as sns\n"
+ "sns.set_style(\"darkgrid\")\n"
+ "import ipywidgets\n"
+ "from IPython.display import display\n"
+ "from matplotlib.font_manager import FontProperties\n"
+ "fontP = FontProperties()\n"
+ "fontP.set_size('medium')\n"
+ "%config InlineBackend.figure_format = 'svg'\n"
+ "\n"
+ "\n"
+ "def mean_firing_rate(gain, stimulus, preferred_stimulus, std_tc, baseline):\n"
+ " # Gaussian tuning curve that determines the mean firing rate (Poisson rate parameter) for a given stimulus\n"
+ " return baseline + gain*stats.norm.pdf(preferred_stimulus, loc = stimulus, scale = std_tc)\n"
+ "\n"
+ "def get_spikes(gain, stimulus, preferred_stimuli, std_tc, baseline):\n"
+ " # produce a vector of spikes for some population given some stimulus\n"
+ " lambdas = mean_firing_rate(gain, stimulus, preferred_stimuli, std_tc, baseline)\n"
+ " return np.random.poisson(lambdas)\n"
+ " \n"
+ "def likelihood(stimulus, r, gain, preferred_stimuli, std_tc, baseline):\n"
+ " # returns p(r|s)\n"
+ " lambdas = mean_firing_rate(gain, stimulus, preferred_stimuli, std_tc, baseline)\n"
+ " return np.prod(lambdas**r)\n"
+ "\n"
+ "def spikes_and_inference(r_V = True,\n"
+ " r_A = True,\n"
+ " show_tuning_curves = False,\n"
+ " show_spike_count = False,\n"
+ " show_likelihoods = True,\n"
+ " true_stimulus = 10,\n"
+ " number_of_neurons = 40,\n"
+ " r_V_gain = 15,\n"
+ " r_A_gain = 75,\n"
+ " r_V_tuning_curve_sigma = 10,\n"
+ " r_A_tuning_curve_sigma = 10,\n"
+ " tuning_curve_baseline = 0,\n"
+ " joint_likelihood = True,\n"
+ " r_V_plus_r_A = True,\n"
+ " cue = False):\n"
+ " np.random.seed(7)\n"
+ " max_s = 40\n"
+ " preferred_stimuli = np.linspace(-max_s*2, max_s*2, number_of_neurons)\n"
+ " n_hypothesized_s = 250\n"
+ " hypothesized_s = np.linspace(-max_s, max_s, n_hypothesized_s)\n"
+ " gains = {'r1': r_V_gain,\n"
+ " 'r2': r_A_gain,\n"
+ " 'r1+r2': r_V_gain + r_A_gain}\n"
+ " sigma_TCs = {'r1': r_V_tuning_curve_sigma,\n"
+ " 'r2': r_A_tuning_curve_sigma,\n"
+ " 'r1+r2': (r_V_tuning_curve_sigma + r_A_tuning_curve_sigma)/2}\n"
+ " spikes = {'r1': get_spikes(gains['r1'], true_stimulus, preferred_stimuli, sigma_TCs['r1'], tuning_curve_baseline),\n"
+ " 'r2': get_spikes(gains['r2'], true_stimulus, preferred_stimuli, sigma_TCs['r2'], tuning_curve_baseline)}\n"
+ " spikes['r1+r2'] = spikes['r1'] + spikes['r2']\n"
+ " active_pops = []\n"
+ " if r_V: active_pops.append('r1')\n"
+ " if r_A: active_pops.append('r2')\n"
+ " if r_V_plus_r_A: active_pops.append('r1+r2')\n"
+ "\n"
+ " colors = {'r1': sns.xkcd_rgb['light purple'],\n"
+ " 'r2': sns.xkcd_rgb['dark pink'],\n"
+ " 'r1+r2': sns.xkcd_rgb['royal blue'],\n"
+ " 'joint': sns.xkcd_rgb['gold']}\n"
+ " nSubplots = show_spike_count + show_tuning_curves + show_likelihoods\n"
+ " fig, axes = plt.subplots(nSubplots, figsize = (7, 1.5*nSubplots)) # number of subplots according to what's been requested\n"
+ " if not isinstance(axes, np.ndarray): axes = [axes] # makes axes into a list even if it's just one subplot\n"
+ " subplot_idx = 0\n"
+ " \n"
+ " def plot_true_stimulus_and_legend(subplot_idx):\n"
+ " axes[subplot_idx].plot(true_stimulus, 0, 'k^', markersize = 12, clip_on = False, label = 'true rattlesnake location')\n"
+ " axes[subplot_idx].legend(loc = 'center left', bbox_to_anchor = (1, 0.5), prop = fontP)\n"
+ " \n"
+ " if show_tuning_curves:\n"
+ " for neuron in range(number_of_neurons):\n"
+ " if r_V:\n"
+ " axes[subplot_idx].plot(hypothesized_s,\n"
+ " mean_firing_rate(gains['r1'],\n"
+ " hypothesized_s,\n"
+ " preferred_stimuli[neuron],\n"
+ " sigma_TCs['r1'],\n"
+ " tuning_curve_baseline),\n"
+ " color = colors['r1'])\n"
+ " if r_A:\n"
+ " axes[subplot_idx].plot(hypothesized_s,\n"
+ " mean_firing_rate(gains['r2'],\n"
+ " hypothesized_s,\n"
+ " preferred_stimuli[neuron],\n"
+ " sigma_TCs['r2'],\n"
+ " tuning_curve_baseline),\n"
+ " color = colors['r2'])\n"
+ " axes[subplot_idx].set_xlabel('location $s$')\n"
+ " axes[subplot_idx].set_ylabel('mean firing rate\\n(spikes/s)')\n"
+ " axes[subplot_idx].set_ylim((0, 4))\n"
+ " axes[subplot_idx].set_xlim((-40, 40))\n"
+ " axes[subplot_idx].set_yticks(np.linspace(0, 4, 5))\n"
+ " subplot_idx += 1\n"
+ "\n"
+ " if show_spike_count:\n"
+ " idx = abs(preferred_stimuli) < max_s\n"
+ " if r_V:\n"
+ " axes[subplot_idx].plot(preferred_stimuli[idx], spikes['r1'][idx], 'o', color = colors['r1'],\n"
+ " clip_on = False, label = '$\\mathbf{r}_\\mathrm{V}$',\n"
+ " markersize=4)\n"
+ " if r_A:\n"
+ " axes[subplot_idx].plot(preferred_stimuli[idx], spikes['r2'][idx], 'o', color = colors['r2'],\n"
+ " clip_on = False, label = '$\\mathbf{r}_\\mathrm{A}$',\n"
+ " markersize=4)\n"
+ " if r_V_plus_r_A:\n"
+ " axes[subplot_idx].plot(preferred_stimuli[idx], spikes['r1+r2'][idx], 'o', color = colors['r1+r2'],\n"
+ " clip_on = False, label = '$\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}$',\n"
+ " markersize=8, zorder=1)\n"
+ " axes[subplot_idx].set_xlabel('preferred location')\n"
+ " axes[subplot_idx].set_ylabel('spike count')\n"
+ " axes[subplot_idx].set_ylim((0, 10))\n"
+ " axes[subplot_idx].set_xlim((-40, 40))\n"
+ " plot_true_stimulus_and_legend(subplot_idx)\n"
+ " subplot_idx += 1\n"
+ "\n"
+ " if show_likelihoods:\n"
+ " if cue:\n"
+ " var = 'c'\n"
+ " else:\n"
+ " var = '\\mathbf{r}'\n"
+ " likelihoods = {}\n"
+ " \n"
+ " for population in active_pops:\n"
+ " likelihoods[population] = np.zeros_like(hypothesized_s)\n"
+ " for idx, ort in enumerate(hypothesized_s):\n"
+ " likelihoods[population][idx] = likelihood(ort, spikes[population], gains[population],\n"
+ " preferred_stimuli, sigma_TCs[population], tuning_curve_baseline)\n"
+ " likelihoods[population] /= np.sum(likelihoods[population]) # normalize\n"
+ "\n"
+ " if r_V:\n"
+ " axes[subplot_idx].plot(hypothesized_s, likelihoods['r1'], color = colors['r1'],\n"
+ " linewidth = 2, label = '$p({}_\\mathrm{{V}}|s)$'.format(var))\n"
+ " if r_A:\n"
+ " axes[subplot_idx].plot(hypothesized_s, likelihoods['r2'], color = colors['r2'],\n"
+ " linewidth = 2, label = '$p({}_\\mathrm{{A}}|s)$'.format(var))\n"
+ " if r_V_plus_r_A:\n"
+ " axes[subplot_idx].plot(hypothesized_s, likelihoods['r1+r2'], color = colors['r1+r2'],\n"
+ " linewidth = 2, label = '$p({}_\\mathrm{{V}}+{}_\\mathrm{{A}}|s)$'.format(var, var))\n"
+ " if joint_likelihood:\n"
+ " product = likelihoods['r1']*likelihoods['r2']\n"
+ " product /= np.sum(product)\n"
+ " axes[subplot_idx].plot(hypothesized_s, product, color = colors['joint'],linewidth = 7,\n"
+ " label = '$p({}_\\mathrm{{V}}|s)\\ p({}_\\mathrm{{A}}|s)$'.format(var, var), zorder = 1)\n"
+ "\n"
+ " axes[subplot_idx].set_xlabel('location $s$')\n"
+ " axes[subplot_idx].set_ylabel('probability')\n"
+ " axes[subplot_idx].set_xlim((-40, 40))\n"
+ " axes[subplot_idx].legend()\n"
+ " axes[subplot_idx].set_yticks([])\n"
+ " \n"
+ " plot_true_stimulus_and_legend(subplot_idx)\n"
+ " subplot_idx += 1"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "<p>We live in a complex environment and must constantly integrate sensory information to interact with the world around us. Inputs from different modalities might not always be congruent with each other, but dissociating the true nature of the stimulus may be a matter of life or death for an organism.</p>\n"
+ "<img src=\"http://www.wtadler.com/picdrop/rattlesnake.jpg\" width=25% height=25% align=\"left\" style=\"margin: 10px 10px 10px 0px;\" >\n"
+ "<p>You hear and see evidence of a rattlesnake in tall grass near you. You get an auditory and a visual cue of the snake's location $s$. Both cues are associated with a likelihood function indicating the probability of that cue for all possible locations of the snake. The likelihood function associated with the visual cue, $p(c_\\mathrm{V}|s)$, has high uncertainty, because of the tall grass. The auditory cue is easier to localize, so its associated likelihood function, $p(c_\\mathrm{A}|s)$, is sharper. In accordance with Bayes' Rule, and assuming a flat prior over the snake's location, an optimal estimate of the location of the snake can be computed by multiplying the two likelihoods. This joint likelihood will be between the two cues but closer to the less uncertain cue, and will have less uncertainty than both unimodal likelihood functions.</p>"
+ ));
+
+ qDebug() << "command entry 31";
+ testCommandEntry(entry, 31, 1, QString::fromUtf8(
+ "spikes_and_inference(show_likelihoods = True, r_V_plus_r_A = False, cue = True)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Behavioral experiments have demonstrated that humans perform near-optimal Bayesian inference on ambiguous sensory information (van Beers *et al.*, 1999; Ernst & Banks, 2002; Kording & Wolpert, 2004; Stocker & Simoncelli, 2006). This has been demonstrated in cue combination experiments in which subjects report a near-optimal estimate of the stimulus given two noisy measurements of that stimulus. However, the neural basis for how humans might perform these computations is unclear. \n"
+ "\n"
+ "Ma *et. al.* (2006) propose that variance in cortical activity, rather than impairing sensory systems, is an adaptive mechanism to encode uncertainty in sensory measurements. They provide theory showing how the brain might use probabilistic population codes to perform near-optimal cue combination. We will re-derive the theory in here, and demonstrate it by simulating and decoding neural populations.\n"
+ "\n"
+ "## Cues can be represented by neural populations\n"
+ "\n"
+ "To return to our deadly rattlesnake, let's now assume that $c_\\mathrm{V}$ and $c_\\mathrm{A}$ are represented by populations of neurons $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$, respectively. For our math and simulations, we assume that $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$ are each composed of $N$ neurons that:\n"
+ "\n"
+ "* have independent Poisson variability\n"
+ "* have regularly spaced Gaussian tuning curves that are identical in mean and variance for neurons with the same index in both populations\n"
+ "\n"
+ "The populations may have different gains, $g_\\mathrm{V}$ and $g_\\mathrm{A}$.\n"
+ "\n"
+ "These are the tuning curves for the neurons in $\\mathbf{r}_\\mathrm{V}$ (purple) and $\\mathbf{r}_\\mathrm{A}$ (red). Each curve represents the mean firing rate of a single neuron given a location $s$. Each neuron thus has a preferred location, which is where its tuning curve peaks."
+ ));
+
+ qDebug() << "command entry 32";
+ testCommandEntry(entry, 32, 1, QString::fromUtf8(
+ "spikes_and_inference(show_tuning_curves = True, show_likelihoods = False)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The tuning curves are dense enough that we can also assume that $\\sum_{i=0}^N f_i(s) = k$ (*i.e.*, the sum of the tuning curves in a population is constant.)"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "First, we will show how the brain can decode a likelihood over stimulus from neural activity. Then we will ask how the brain can compute joint likelihoods.\n"
+ "### How can the brain decode $p(\\mathbf{r_\\mathrm{V}}|s)$?\n"
+ "\n"
+ "\\begin{align}\n"
+ "L(s) &= p(\\mathbf{r_\\mathrm{V}}\\ |\\ s) \\tag{1} \\\\ \n"
+ "&= \\prod_{i=0}^N \\frac{e^{-g_\\mathrm{V}\\ f_i(s)}\\ g_\\mathrm{V}\\ f_i(s)^{r_{\\mathrm{V}i}}}{r_{\\mathrm{V}i}!} \\tag{2} \\\\\n"
+ "&\\propto \\prod_{i=0}^N e^{-g_\\mathrm{V}\\ f_i(s)}\\ f_i(s)^{r_{\\mathrm{V}i}} \\tag{3} \\\\\n"
+ "&= e^{-g_\\mathrm{V}\\sum_{i=0}^N f_i(s)} \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}}\\tag{4} \\\\ \n"
+ "&= e^{-g_\\mathrm{V}k} \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}} \\tag{5} \\\\\n"
+ "&\\propto \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}} \\tag{6} \\\\\n"
+ "\\end{align}\n"
+ "\n"
+ "### Then what is the joint likelihood $p(\\mathbf{r_\\mathrm{V}}|s)\\ p(\\mathbf{r_\\mathrm{A}}|s)$?\n"
+ "\n"
+ "\\begin{align}\n"
+ "L(s) &= p(\\mathbf{r_\\mathrm{V}}\\ |\\ s)\\ p(\\mathbf{r_\\mathrm{A}}|s) \\tag{7} \\\\\n"
+ "&\\propto \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}}\\ \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{A}i}} \\tag{8} \\\\\n"
+ "&= \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{9} \\\\\n"
+ "\\end{align}\n"
+ "\n"
+ "## How can the brain compute the joint likelihood $p(\\mathbf{r}_\\mathrm{V}|s)\\ p(\\mathbf{r}_\\mathrm{A}|s)$?\n"
+ "The fact that we see neurons from $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$ being added on a neuron-by-neuron basis in the exponent above suggests that we could construct a third population vector, $\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A}$, and decode that.\n"
+ "\n"
+ "### First, we must prove that the sum of two Poisson-distributed random variables $X+Y$ is again Poisson-distributed.\n"
+ "\\begin{align}\n"
+ "X &\\sim \\textrm{Poisson}(\\lambda_x) \\textrm{, so } p(X=k)=\\frac{\\lambda_x^k\\ e^{-\\lambda_x}}{k!} \\tag{10} \\\\\n"
+ "Y &\\sim \\textrm{Poisson}(\\lambda_y) \\textrm{, so } p(X=k)=\\frac{\\lambda_y^k\\ e^{-\\lambda_y}}{k!} \\tag{11} \\\\\n"
+ "X+Y &\\overset{?}{\\sim} \\textrm{Poisson}(\\lambda_{x+y}) \\textrm{ and, if so, } \\lambda_{x+y}=? \\tag{12} \\\\\n"
+ "\\end{align}\n"
+ "\n"
+ "\\begin{align}\n"
+ "p(X+Y=n) &= p(X=0)\\ p(Y=n) + p(X=1)\\ p(Y=n-1)\\ +...+\\ p(X=n-1)\\ p(Y = 1) + p(X=n)\\ p(Y=0) \\tag{13} \\\\\n"
+ "&= \\sum_{k=0}^n p(X=k)\\ p(Y=n-k) \\tag{14} \\\\\n"
+ "&= \\sum_{k=0}^n \\frac{\\lambda_x^k\\ e^{-\\lambda_x}\\ \\lambda_y^{n-k}\\ e^{-\\lambda_y}}{k!(n-k)!} \\tag{15} \\\\\n"
+ "&= e^{-(\\lambda_x+\\lambda_y)} \\sum_{k=0}^n \\frac{1}{k!(n-k)!}\\ \\lambda_x^k\\ \\lambda_y^{n-k} \\tag{16} \\\\\n"
+ "&= e^{-(\\lambda_x+\\lambda_y)} \\frac{1}{n!} \\sum_{k=0}^n \\frac{n!}{k!(n-k)!}\\ \\lambda_x^k\\ \\lambda_y^{n-k} \\tag{17} \\\\\n"
+ "&= e^{-(\\lambda_x+\\lambda_y)} \\frac{1}{n!} \\sum_{k=0}^n \\binom{n}{k}\\ \\lambda_x^k\\ \\lambda_y^{n-k}\\ [ \\textrm{because} \\frac{n!}{k!(n-k)!}=\\binom{n}{k} ]\\tag{18} \\\\\n"
+ "&=\\frac{e^{-(\\lambda_x + \\lambda_y)}(\\lambda_x+\\lambda_y)^n}{n!} [ \\textrm{because} \\sum_{k=0}^n \\binom{n}{k}\\ x^ky^{n-k} = (x+y)^n ]\\tag{19} \\\\\n"
+ "\\end{align}\n"
+ "\n"
+ "Therefore, $X + Y \\sim \\mathrm{Poisson}(\\lambda_x + \\lambda_y)$.\n"
+ "\n"
+ "## What is $p(\\mathbf{r}_\\mathrm{V}+\\mathbf{r}_\\mathrm{A} | s)$?\n"
+ "\n"
+ "In our case:\n"
+ "\n"
+ "\\begin{align}\n"
+ "r_{\\mathrm{V}i} &\\sim \\textrm{Poisson}(g_\\mathrm{V}\\ f_i(s)) \\tag{20} \\\\\n"
+ "r_{\\mathrm{A}i} &\\sim \\textrm{Poisson}(g_\\mathrm{A}\\ f_i(s)) \\tag{21} \\\\\n"
+ "r_{\\mathrm{V}i}+r_{\\mathrm{A}i} &\\sim \\textrm{Poisson}((g_\\mathrm{V}+g_\\mathrm{A})\\ f_i(s)) \\tag{22} \\\\\n"
+ "\\end{align}\n"
+ "\n"
+ "\\begin{align}\n"
+ "L(s)&=p(\\mathbf{r}_\\mathrm{V} + \\mathbf{r}_\\mathrm{A}\\ |\\ s)\n"
+ "= \\prod_{i=0}^N \\frac{e^{-f_i(s)(g_\\mathrm{V}+g_\\mathrm{A})}\\ (g_\\mathrm{V}+g_\\mathrm{A})\\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}}}{(r_{\\mathrm{V}i}+r_{\\mathrm{A}i})!} \\tag{23} \\\\\n"
+ "&\\propto \\prod_{i=0}^N e^{-f_i(s)(g_\\mathrm{V}+g_\\mathrm{A})}\\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{24} \\\\\n"
+ "&= e^{-(g_\\mathrm{V}+g_\\mathrm{A})\\sum_{i=0}^Nf_i(s)} \\prod_{i=0}^N \\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{25} \\\\\n"
+ "&= e^{-(g_\\mathrm{V}+g_\\mathrm{A})k} \\prod_{i=0}^N \\ f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{26} \\\\\n"
+ "&\\propto \\prod_{i=0}^N f_i(s)^{r_{\\mathrm{V}i}+r_{\\mathrm{A}i}} \\tag{27} \\\\\n"
+ "\\end{align}\n"
+ "\n"
+ "Since equations $(9)$ and $(27)$ are proportional, we have shown that optimal cue combination can be executed by decoding linear sums of populations."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "$$x = 2$$"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Simulation\n"
+ "Here are the spike counts (during 1 s) from the two populations on one trial. Depicted in blue is a third population vector that is the sum of $\\mathbf{r}_\\mathrm{V}$ and $\\mathbf{r}_\\mathrm{A}$."
+ ));
+
+ qDebug() << "command entry 33";
+ testCommandEntry(entry, 33, 1, QString::fromUtf8(
+ "spikes_and_inference(show_spike_count = True, show_likelihoods = False)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Here are the decoded likelihoods for each population alone $(6)$, the joint likelihood $(9)$, and the likelihood for the summed population $(27)$. Note that the joint likelihood (gold) is less uncertain than either unimodal likelihood. Also note that it is identical to the likelihood for the summed population (blue)."
+ ));
+
+ qDebug() << "command entry 34";
+ testCommandEntry(entry, 34, 1, QString::fromUtf8(
+ "spikes_and_inference()"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Here, we break the assumption that the two populations have the same tuning curve width. Note that the joint likelihood (gold) is no longer identical to the likelihood for the summed population (blue)."
+ ));
+
+ qDebug() << "command entry 35";
+ testCommandEntry(entry, 35, 1, QString::fromUtf8(
+ "spikes_and_inference(r_V_tuning_curve_sigma = 7, r_A_tuning_curve_sigma = 10)"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Now you can play interactively with the parameters of the simulation using these sliders, and watch the decoded likelihoods shift around. Every time you change a parameter, new sets of spikes are generated and used to infer $s$.\n"
+ "\n"
+ "For the simulation to be interactive, you'll have to download this notebook."
+ ));
+
+ qDebug() << "command entry 36";
+ testCommandEntry(entry, 36, 1, QString::fromUtf8(
+ "i = ipywidgets.interactive(spikes_and_inference,\n"
+ " true_stimulus = (-40, 40, .1),\n"
+ " number_of_neurons = (2, 200, 1),\n"
+ " r_V_gain = (0, 100, 1),\n"
+ " r_A_gain = (0, 100, 1),\n"
+ " r_V_tuning_curve_sigma = (0.1, 50, .1),\n"
+ " r_A_tuning_curve_sigma = (0.1, 50, .1),\n"
+ " tuning_curve_baseline = (0, 20, .1));\n"
+ "display(ipywidgets.VBox(i.children[2:-1]))"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "\n"
+ "\n"
+ ""
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Conclusion\n"
+ "\n"
+ "It has been shown behaviorally that humans perform near-optimal Bayesian inference on ambiguous sensory information. As suggested by Ma *et. al.* (2006) and shown here, it is possible that the brain does this operation by simply performing linear combinations of populations of Poisson neurons receiving various sensory input. Cortical neurons may be particularly well suited for this task because they have Poisson-like firing rates, displaying reliable variability from trial to trial (Tolhurst, Movshon & Dean, 1982; Softky & Koch, 1993).\n"
+ "\n"
+ "High levels of noise in these populations might at first be difficult to reconcile considering highly precise behavioral data. However, variability in neural populations might be direcly representative of uncertainty in environmental stimuli. Variability in cortical populations would then be critical for precise neural coding.\n"
+ "\n"
+ "## References\n"
+ "\n"
+ "* Ernst MO, Banks MS. (2002). Humans integrate visual and haptic information in a statistically optimal fashion. *Nature.*\n"
+ "* Körding KP, Wolpert DM. (2004). Bayesian integration in sensorimotor learning. *Nature.*\n"
+ "* Ma WJ, Beck JM, Latham PE, Pouget A. (2006). Bayesian inference with probabilistic population codes. *Nature Neuroscience.*\n"
+ "* Softky WR, Koch C. (1993). The highly irregular firing of cortical cells is inconsistent with temporal integration of random EPSPs. *Journal of Neuroscience.*\n"
+ "* Stocker AA, Simoncelli EP. (2006). Noise characteristics and prior expectations in human visual speed perception. *Nature Neuroscience.*\n"
+ "* Tolhurst, DJ, Movshon JA, Dean AF. (1983). The statistical reliability of signals in single neurons in cat and monkey visual cortex. *Vision Research.*\n"
+ "* van Beers RJ, Sittig AC, Gon JJ. (1999). Integration of proprioceptive and visual position-information: An experimentally supported model. *Journal of Neurophysiology.*"
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testJupyter7()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("Transformation2D.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "# Rigid-body transformations in a plane (2D)\n"
+ "\n"
+ "> Marcos Duarte \n"
+ "> Laboratory of Biomechanics and Motor Control ([http://demotu.org/](http://demotu.org/)) \n"
+ "> Federal University of ABC, Brazil"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The kinematics of a rigid body is completely described by its pose, i.e., its position and orientation in space (and the corresponding changes are translation and rotation). The translation and rotation of a rigid body are also known as rigid-body transformations (or simply, rigid transformations).\n"
+ "\n"
+ "Remember that in physics, a [rigid body](https://en.wikipedia.org/wiki/Rigid_body) is a model (an idealization) for a body in which deformation is neglected, i.e., the distance between every pair of points in the body is considered constant. Consequently, the position and orientation of a rigid body can be completely described by a corresponding coordinate system attached to it. For instance, two (or more) coordinate systems can be used to represent the same rigid body at two (or more) instants or two (or more) rigid bodies in space.\n"
+ "\n"
+ "Rigid-body transformations are used in motion analysis (e.g., of the human body) to describe the position and orientation of each segment (using a local (anatomical) coordinate system defined for each segment) in relation to a global coordinate system fixed at the laboratory. Furthermore, one can define an additional coordinate system called technical coordinate system also fixed at the rigid body but not based on anatomical landmarks. In this case, the position of the technical markers is first described in the laboratory coordinate system, and then the technical coordinate system is calculated to recreate the anatomical landmarks position in order to finally calculate the original anatomical coordinate system (and obtain its unknown position and orientation through time).\n"
+ "\n"
+ "In what follows, we will study rigid-body transformations by looking at the transformations between two coordinate systems. For simplicity, let's first analyze planar (two-dimensional) rigid-body transformations and later we will extend these concepts to three dimensions (where the study of rotations are more complicated)."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Affine transformations\n"
+ "\n"
+ "Translation and rotation are two examples of [affine transformations](https://en.wikipedia.org/wiki/Affine_transformation). Affine transformations preserve straight lines, but not necessarily the distance between points. Other examples of affine transformations are scaling, shear, and reflection. The figure below illustrates different affine transformations in a plane. Note that a 3x3 matrix is shown on top of each transformation; these matrices are known as the transformation matrices and are the mathematical representation of the physical transformations. Next, we will study how to use this approach to describe the translation and rotation of a rigid-body. \n"
+ "<br>\n"
+ "<figure><img src='https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/2D_affine_transformation_matrix.svg/360px-2D_affine_transformation_matrix.svg.png' alt='Affine transformations'/> <figcaption><center><i>Figure. Examples of affine transformations in a plane applied to a square (with the letter <b>F</b> in it) and the corresponding transformation matrices (<a href=\"https://en.wikipedia.org/wiki/Affine_transformation\">image from Wikipedia</a>).</i></center></figcaption> </figure>"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Translation\n"
+ "\n"
+ "In a two-dimensional space, two coordinates and one angle are sufficient to describe the pose of the rigid body, totalizing three degrees of freedom for a rigid body. Let's see first the transformation for translation, then for rotation, and combine them at last.\n"
+ "\n"
+ "A pure two-dimensional translation of a coordinate system in relation to other coordinate system and the representation of a point in these two coordinate systems are illustrated in the figure below (remember that this is equivalent to describing a translation between two rigid bodies). \n"
+ "<br>\n"
+ "<figure><img src='./../images/translation2D.png' alt='translation 2D'/> <figcaption><center><i>Figure. A point in two-dimensional space represented in two coordinate systems (Global and local), with one system translated.</i></center></figcaption> </figure>\n"
+ "\n"
+ "The position of point $\\mathbf{P}$ originally described in the local coordinate system but now described in the Global coordinate system in vector form is:\n"
+ "\n"
+ "$$ \\mathbf{P_G} = \\mathbf{L_G} + \\mathbf{P_l} $$\n"
+ "\n"
+ "Or for each component:\n"
+ "\n"
+ "$$ \\mathbf{P_X} = \\mathbf{L_X} + \\mathbf{P}_x $$\n"
+ "\n"
+ "$$ \\mathbf{P_Y} = \\mathbf{L_Y} + \\mathbf{P}_y $$\n"
+ "\n"
+ "And in matrix form is:\n"
+ "\n"
+ "$$\n"
+ "\\begin{bmatrix}\n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "\\mathbf{L_X} \\\\\n"
+ "\\mathbf{L_Y} \n"
+ "\\end{bmatrix} +\n"
+ "\\begin{bmatrix}\n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \n"
+ "\\end{bmatrix}\n"
+ "$$\n"
+ "\n"
+ "Because position and translation can be treated as vectors, the inverse operation, to describe the position at the local coordinate system in terms of the Global coordinate system, is simply:\n"
+ "\n"
+ "$$ \\mathbf{P_l} = \\mathbf{P_G} -\\mathbf{L_G} $$\n"
+ "<br>\n"
+ "$$ \\begin{bmatrix}\n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \n"
+ "\\end{bmatrix} - \n"
+ "\\begin{bmatrix}\n"
+ "\\mathbf{L_X} \\\\\n"
+ "\\mathbf{L_Y} \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "From classical mechanics, this transformation is an example of [Galilean transformation](http://en.wikipedia.org/wiki/Galilean_transformation). \n"
+ "\n"
+ "For example, if the local coordinate system is translated by $\\mathbf{L_G}=[2, 3]$ in relation to the Global coordinate system, a point with coordinates $\\mathbf{P_l}=[4, 5]$ at the local coordinate system will have the position $\\mathbf{P_G}=[6, 8]$ at the Global coordinate system:"
+ ));
+
+ qDebug() << "command entry 1";
+ testCommandEntry(entry, 1, QString::fromUtf8(
+ "# Import the necessary libraries\n"
+ "import numpy as np"
+ ));
+
+ qDebug() << "command entry 2";
+ testCommandEntry(entry, 2, 1, QString::fromUtf8(
+ "LG = np.array([2, 3]) # (Numpy 1D array with 2 elements)\n"
+ "Pl = np.array([4, 5])\n"
+ "PG = LG + Pl\n"
+ "PG"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "array([6, 8])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "This operation also works if we have more than one data point (NumPy knows how to handle vectors with different dimensions):"
+ ));
+
+ qDebug() << "command entry 3";
+ testCommandEntry(entry, 3, 1, QString::fromUtf8(
+ "Pl = np.array([[4, 5], [6, 7], [8, 9]]) # 2D array with 3 rows and two columns\n"
+ "PG = LG + Pl\n"
+ "PG"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "array([[ 6, 8],\n"
+ " [ 8, 10],\n"
+ " [10, 12]])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Rotation\n"
+ "\n"
+ "A pure two-dimensional rotation of a coordinate system in relation to other coordinate system and the representation of a point in these two coordinate systems are illustrated in the figure below (remember that this is equivalent to describing a rotation between two rigid bodies). The rotation is around an axis orthogonal to this page, not shown in the figure (for a three-dimensional coordinate system the rotation would be around the $\\mathbf{Z}$ axis). \n"
+ "<br>\n"
+ "<figure><img src='./../images/rotation2D.png' alt='rotation 2D'/> <figcaption><center><i>Figure. A point in the two-dimensional space represented in two coordinate systems (Global and local), with one system rotated in relation to the other around an axis orthogonal to both coordinate systems.</i></center></figcaption> </figure>\n"
+ "\n"
+ "Consider we want to express the position of point $\\mathbf{P}$ in the Global coordinate system in terms of the local coordinate system knowing only the coordinates at the local coordinate system and the angle of rotation between the two coordinate systems. \n"
+ "\n"
+ "There are different ways of deducing that, we will see three of these methods next. "
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### 1. Using trigonometry\n"
+ "\n"
+ "From figure below, the coordinates of point $\\mathbf{P}$ in the Global coordinate system can be determined finding the sides of the triangles marked in red. \n"
+ "<br>\n"
+ "<figure><img src='./../images/rotation2Db.png' alt='rotation 2D'/> <figcaption><center><i>Figure. The coordinates of a point at the Global coordinate system in terms of the coordinates of this point at the local coordinate system.</i></center></figcaption> </figure>\n"
+ "\n"
+ "Then: \n"
+ "\n"
+ "$$ \\mathbf{P_X} = \\mathbf{P}_x \\cos \\alpha - \\mathbf{P}_y \\sin \\alpha $$\n"
+ "\n"
+ "$$ \\mathbf{P_Y} = \\mathbf{P}_x \\sin \\alpha + \\mathbf{P}_y \\cos \\alpha $$ \n"
+ "\n"
+ "The equations above can be expressed in matrix form:\n"
+ "\n"
+ "$$\n"
+ "\\begin{bmatrix} \n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} \\begin{bmatrix}\n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "Or simply:\n"
+ "\n"
+ "$$ \\mathbf{P_G} = \\mathbf{R_{Gl}}\\mathbf{P_l} $$\n"
+ "\n"
+ "Where $\\mathbf{R_{Gl}}$ is the rotation matrix that rotates the coordinates from the local to the Global coordinate system:\n"
+ "\n"
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "So, given any position at the local coordinate system, with the rotation matrix above we are able to determine the position at the Global coordinate system. Let's check that before looking at other methods to obtain this matrix. \n"
+ "\n"
+ "For instance, consider a local coordinate system rotated by $45^o$ in relation to the Global coordinate system, a point in the local coordinate system with position $\\mathbf{P_l}=[1, 1]$ will have the following position at the Global coordinate system:"
+ ));
+
+ qDebug() << "command entry 4";
+ testCommandEntry(entry, 4, 1, QString::fromUtf8(
+ "RGl = np.array([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n"
+ "Pl = np.array([[1, 1]]).T # transpose the array for correct matrix multiplication\n"
+ "PG = np.dot(RGl, Pl) # the function dot() is used for matrix multiplication of arrays\n"
+ "np.around(PG, 4) # round the number due to floating-point arithmetic errors"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "array([[0. ],\n"
+ " [1.4142]])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "We have rounded the number to 4 decimal places due to [floating-point arithmetic errors in the computation](http://floating-point-gui.de). \n"
+ "\n"
+ "And if we have the points [1,1], [0,1], [1,0] at the local coordinate system, their positions at the Global coordinate system are:"
+ ));
+
+ qDebug() << "command entry 5";
+ testCommandEntry(entry, 5, 1, QString::fromUtf8(
+ "Pl = np.array([[1, 1], [0, 1], [1, 0]]).T # transpose array for matrix multiplication\n"
+ "PG = np.dot(RGl, Pl) # the function dot() is used for matrix multiplication with arrays\n"
+ "np.around(PG, 4) # round the number due to floating point arithmetic errors"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "array([[ 0. , -0.7071, 0.7071],\n"
+ " [ 1.4142, 0.7071, 0.7071]])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "We have done all the calculations using the array function in NumPy. A [NumPy array is different than a matrix](http://www.scipy.org/NumPy_for_Matlab_Users), if we want to use explicit matrices in NumPy, the calculation above will be:"
+ ));
+
+ qDebug() << "command entry 6";
+ testCommandEntry(entry, 6, 1, QString::fromUtf8(
+ "RGl = np.mat([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n"
+ "Pl = np.mat([[1, 1], [0,1], [1, 0]]).T # 2x3 matrix\n"
+ "PG = RGl*Pl # matrix multiplication in NumPy\n"
+ "np.around(PG, 4) # round the number due to floating point arithmetic errors"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "array([[ 0. , -0.7071, 0.7071],\n"
+ " [ 1.4142, 0.7071, 0.7071]])"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Both array and matrix types work in NumPy, but you should choose only one type and not mix them; the array is preferred because it is [the standard vector/matrix/tensor type of NumPy](http://www.scipy.org/NumPy_for_Matlab_Users)."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### 2. Using direction cosines\n"
+ "\n"
+ "Another way to determine the rotation matrix is to use the concept of direction cosine. \n"
+ "\n"
+ "> Direction cosines are the cosines of the angles between any two vectors. \n"
+ "\n"
+ "For the present case with two coordinate systems, they are the cosines of the angles between each axis of one coordinate system and each axis of the other coordinate system. The figure below illustrates the directions angles between the two coordinate systems, expressing the local coordinate system in terms of the Global coordinate system. \n"
+ "<br>\n"
+ "<figure><img src='./../images/directioncosine2D.png' alt='direction angles 2D'/> <figcaption><center><i>Figure. Definition of direction angles at the two-dimensional space.</i></center></figcaption> </figure> \n"
+ "<br>\n"
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n"
+ "\\cos\\mathbf{X}x & \\cos\\mathbf{X}y \\\\\n"
+ "\\cos\\mathbf{Y}x & \\cos\\mathbf{Y}y \n"
+ "\\end{bmatrix} = \n"
+ "\\begin{bmatrix}\n"
+ "\\cos(\\alpha) & \\cos(90^o+\\alpha) \\\\\n"
+ "\\cos(90^o-\\alpha) & \\cos(\\alpha)\n"
+ "\\end{bmatrix} = \n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} $$ \n"
+ "\n"
+ "The same rotation matrix as obtained before.\n"
+ "\n"
+ "Note that the order of the direction cosines is because in our convention, the first row is for the $\\mathbf{X}$ coordinate and the second row for the $\\mathbf{Y}$ coordinate (the outputs). For the inputs, we followed the same order, first column for the $\\mathbf{x}$ coordinate, second column for the $\\mathbf{y}$ coordinate."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### 3. Using a basis\n"
+ "\n"
+ "Another way to deduce the rotation matrix is to view the axes of the rotated coordinate system as unit vectors, versors, of a <a href=\"http://en.wikipedia.org/wiki/Basis_(linear_algebra)\">basis</a> as illustrated in the figure below.\n"
+ "\n"
+ "> A basis is a set of linearly independent vectors that can represent every vector in a given vector space, i.e., a basis defines a coordinate system.\n"
+ "\n"
+ "<figure><img src='./../images/basis2D2.png' alt='basis 2D'/> <figcaption><center><i>Figure. Definition of the rotation matrix using a basis at the two-dimensional space.</i></center></figcaption> </figure>\n"
+ "\n"
+ "The coordinates of these two versors at the local coordinate system in terms of the Global coordinate system are:\n"
+ "\n"
+ "$$ \\begin{array}{l l}\n"
+ "\\mathbf{e}_x = \\cos\\alpha\\:\\mathbf{e_X} + \\sin\\alpha\\:\\mathbf{e_Y} \\\\\n"
+ "\\mathbf{e}_y = -\\sin\\alpha\\:\\mathbf{e_X} + \\cos\\alpha\\:\\mathbf{e_Y}\n"
+ "\\end{array}$$\n"
+ "\n"
+ "Note that as unit vectors, each of the versors above should have norm (length) equals to one, which indeed is the case.\n"
+ "\n"
+ "If we express each versor above as different columns of a matrix, we obtain the rotation matrix again: \n"
+ "\n"
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "This means that the rotation matrix can be viewed as the basis of the rotated coordinate system defined by its versors. \n"
+ "\n"
+ "This third way to derive the rotation matrix is in fact the method most commonly used in motion analysis because the coordinates of markers (in the Global/laboratory coordinate system) are what we measure with cameras. "
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### 4. Using the inner (dot or scalar) product between versors\n"
+ "\n"
+ "Yet another way to deduce the rotation matrix is to define it as the dot product between the versors of the bases related to the two coordinate systems:\n"
+ "\n"
+ "$$\n"
+ "\\mathbf{R_{Gl}} = \\begin{bmatrix}\n"
+ "\\mathbf{\\hat{e}_X}\\! \\cdot \\mathbf{\\hat{e}_x} & \\mathbf{\\hat{e}_X}\\! \\cdot \\mathbf{\\hat{e}_y} \\\\\n"
+ "\\mathbf{\\hat{e}_Y}\\! \\cdot \\mathbf{\\hat{e}_x} & \\mathbf{\\hat{e}_Y}\\! \\cdot \\mathbf{\\hat{e}_y} \n"
+ "\\end{bmatrix}\n"
+ "$$ \n"
+ "\n"
+ "By definition:\n"
+ "\n"
+ "$$ \\hat{\\mathbf{e}}_1\\! \\cdot \\hat{\\mathbf{e}}_2 = ||\\hat{\\mathbf{e}}_1|| \\times ||\\hat{\\mathbf{e}}_2||\\cos(e_1,e_2)=\\cos(e_1,e_2)$$\n"
+ "\n"
+ "And the rotation matrix will be equal to the matrix deduced based on the direction cosines."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Local-to-Global and Global-to-local coordinate systems' rotations"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "If we want the inverse operation, to express the position of point $\\mathbf{P}$ in the local coordinate system in terms of the Global coordinate system, the figure below illustrates that using trigonometry. \n"
+ "<br>\n"
+ "<figure><img src='./../images/rotation2Dc.png' alt='rotation 2D'/> <figcaption><center><i>Figure. The coordinates of a point at the local coordinate system in terms of the coordinates at the Global coordinate system.</i></center></figcaption> </figure>\n"
+ "\n"
+ "Then:\n"
+ "\n"
+ "$$ \\mathbf{P}_x = \\;\\;\\mathbf{P_X} \\cos \\alpha + \\mathbf{P_Y} \\sin \\alpha $$\n"
+ "\n"
+ "$$ \\mathbf{P}_y = -\\mathbf{P_X} \\sin \\alpha + \\mathbf{P_Y} \\cos \\alpha $$\n"
+ "\n"
+ "And in matrix form:\n"
+ "\n"
+ "$$\n"
+ "\\begin{bmatrix} \n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & \\sin\\alpha \\\\\n"
+ "-\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} \\begin{bmatrix}\n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "$$ \\mathbf{P_l} = \\mathbf{R_{lG}}\\mathbf{P_G} $$\n"
+ "\n"
+ "Where $\\mathbf{R_{lG}}$ is the rotation matrix that rotates the coordinates from the Global to the local coordinate system (note the inverse order of the subscripts):\n"
+ "\n"
+ "$$ \\mathbf{R_{lG}} = \\begin{bmatrix}\n"
+ "\\cos\\alpha & \\sin\\alpha \\\\\n"
+ "-\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "If we use the direction cosines to calculate the rotation matrix, because the axes didn't change, the cosines are the same, only the order changes, now $\\mathbf{x, y}$ are the rows (outputs) and $\\mathbf{X, Y}$ are the columns (inputs):\n"
+ "\n"
+ "$$ \\mathbf{R_{lG}} = \\begin{bmatrix}\n"
+ "\\cos\\mathbf{X}x & \\cos\\mathbf{Y}x \\\\\n"
+ "\\cos\\mathbf{X}y & \\cos\\mathbf{Y}y \n"
+ "\\end{bmatrix} = \n"
+ "\\begin{bmatrix}\n"
+ "\\cos(\\alpha) & \\cos(90^o-\\alpha) \\\\\n"
+ "\\cos(90^o+\\alpha) & \\cos(\\alpha)\n"
+ "\\end{bmatrix} = \n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & \\sin\\alpha \\\\\n"
+ "-\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "And defining the versors of the axes in the Global coordinate system for a basis in terms of the local coordinate system would also produce this latter rotation matrix.\n"
+ "\n"
+ "The two sets of equations and matrices for the rotations from Global-to-local and local-to-Global coordinate systems are very similar, this is no coincidence. Each of the rotation matrices we deduced, $\\mathbf{R_{Gl}}$ and $\\mathbf{R_{lG}}$, perform the inverse operation in relation to the other. Each matrix is the inverse of the other. \n"
+ "\n"
+ "In other words, the relation between the two rotation matrices means it is equivalent to instead of rotating the local coordinate system by $\\alpha$ in relation to the Global coordinate system, to rotate the Global coordinate system by $-\\alpha$ in relation to the local coordinate system; remember that $\\cos(-\\alpha)=\\cos(\\alpha)$ and $\\sin(-\\alpha)=-\\sin(\\alpha)$."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Rotation of a Vector\n"
+ "\n"
+ "We can also use the rotation matrix to rotate a vector by a given angle around an axis of the coordinate system as shown in the figure below. \n"
+ "<br>\n"
+ "<figure><img src='./../images/rotation2Dvector.png' alt='rotation 2D of a vector'/> <figcaption><center><i>Figure. Rotation of a position vector $\\mathbf{P}$ by an angle $\\alpha$ in the two-dimensional space.</i></center></figcaption> </figure>\n"
+ "\n"
+ "We will not prove that we use the same rotation matrix, but think that in this case the vector position rotates by the same angle instead of the coordinate system. The new coordinates of the vector position $\\mathbf{P'}$ rotated by an angle $\\alpha$ is simply the rotation matrix (for the angle $\\alpha$) multiplied by the coordinates of the vector position $\\mathbf{P}$:\n"
+ "\n"
+ "$$ \\mathbf{P'} = \\mathbf{R}_\\alpha\\mathbf{P} $$\n"
+ "\n"
+ "Consider for example that $\\mathbf{P}=[2,1]$ and $\\alpha=30^o$; the coordinates of $\\mathbf{P'}$ are:"
+ ));
+
+ qDebug() << "command entry 7";
+ testCommandEntry(entry, 7, 1, QString::fromUtf8(
+ "a = np.pi/6\n"
+ "R = np.array([[np.cos(a), -np.sin(a)], [np.sin(a), np.cos(a)]])\n"
+ "P = np.array([[2, 1]]).T\n"
+ "Pl = np.dot(R, P)\n"
+ "print(\"P':\\n\", Pl)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "P':\n"
+ " [[1.23205081]\n"
+ " [1.8660254 ]]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### The rotation matrix\n"
+ "\n"
+ "**[See here for a review about matrix and its main properties](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/Matrix.ipynb)**.\n"
+ "\n"
+ "A nice property of the rotation matrix is that its inverse is the transpose of the matrix (because the columns/rows are mutually orthogonal and have norm equal to one). \n"
+ "This property can be shown with the rotation matrices we deduced:\n"
+ "\n"
+ "$$ \\begin{array}{l l}\n"
+ "\\mathbf{R}\\:\\mathbf{R^T} & = \n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} \n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & \\sin\\alpha \\\\\n"
+ "-\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} \\\\\n"
+ "& = \\begin{bmatrix}\n"
+ "\\cos^2\\alpha+\\sin^2\\alpha & \\cos\\alpha \\sin\\alpha-\\sin\\alpha \\cos\\alpha\\;\\; \\\\\n"
+ "\\sin\\alpha \\cos\\alpha-\\cos\\alpha \\sin\\alpha & \\sin^2\\alpha+\\cos^2\\alpha\\;\\;\n"
+ "\\end{bmatrix} \\\\\n"
+ "& = \\begin{bmatrix}\n"
+ "1 & 0 \\\\\n"
+ "0 & 1 \n"
+ "\\end{bmatrix} \\\\\n"
+ "& = \\mathbf{I} \\\\\n"
+ "\\mathbf{R^{-1}} = \\mathbf{R^T}\n"
+ "\\end{array} $$\n"
+ "\n"
+ "This means that if we have a rotation matrix, we know its inverse. \n"
+ "\n"
+ "The transpose and inverse operators in NumPy are methods of the array:"
+ ));
+
+ qDebug() << "command entry 8";
+ testCommandEntry(entry, 8, 1, QString::fromUtf8(
+ "RGl = np.mat([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n"
+ "\n"
+ "print('Orthogonal matrix (RGl):\\n', np.around(RGl, 4))\n"
+ "print('Transpose (RGl.T):\\n', np.around(RGl.T, 4))\n"
+ "print('Inverse (RGl.I):\\n', np.around(RGl.I, 4))"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Orthogonal matrix (RGl):\n"
+ " [[ 0.7071 -0.7071]\n"
+ " [ 0.7071 0.7071]]\n"
+ "Transpose (RGl.T):\n"
+ " [[ 0.7071 0.7071]\n"
+ " [-0.7071 0.7071]]\n"
+ "Inverse (RGl.I):\n"
+ " [[ 0.7071 0.7071]\n"
+ " [-0.7071 0.7071]]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Using the inverse and the transpose mathematical operations, the coordinates at the local coordinate system given the coordinates at the Global coordinate system and the rotation matrix can be obtained by: \n"
+ "\n"
+ "$$ \\begin{array}{l l}\n"
+ "\\mathbf{P_G} = \\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n"
+ "\\\\\n"
+ "\\mathbf{R_{Gl}^{-1}}\\mathbf{P_G} = \\mathbf{R_{Gl}^{-1}}\\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n"
+ "\\\\\n"
+ "\\mathbf{R_{Gl}^{-1}}\\mathbf{P_G} = \\mathbf{I}\\:\\mathbf{P_l} \\implies \\\\\n"
+ "\\\\\n"
+ "\\mathbf{P_l} = \\mathbf{R_{Gl}^{-1}}\\mathbf{P_G} = \\mathbf{R_{Gl}^T}\\mathbf{P_G} \\quad \\text{or}\n"
+ "\\quad \\mathbf{P_l} = \\mathbf{R_{lG}}\\mathbf{P_G}\n"
+ "\\end{array} $$\n"
+ "\n"
+ "Where we referred the inverse of $\\mathbf{R_{Gl}}\\;(\\:\\mathbf{R_{Gl}^{-1}})$ as $\\mathbf{R_{lG}}$ (note the different order of the subscripts). \n"
+ "\n"
+ "Let's show this calculation in NumPy:"
+ ));
+
+ qDebug() << "command entry 9";
+ testCommandEntry(entry, 9, 1, QString::fromUtf8(
+ "RGl = np.array([[np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)]])\n"
+ "print('Rotation matrix (RGl):\\n', np.around(RGl, 4))\n"
+ "\n"
+ "Pl = np.array([[1, 1]]).T # transpose the array for correct matrix multiplication\n"
+ "print('Position at the local coordinate system (Pl):\\n', Pl)\n"
+ "\n"
+ "PG = np.dot(RGl, Pl) # the function dot() is used for matrix multiplication with arrays\n"
+ "print('Position at the Global coordinate system (PG=RGl*Pl):\\n', np.around(PG,2))\n"
+ "\n"
+ "Pl = np.dot(RGl.T, PG)\n"
+ "print('Position at the local coordinate system using the inverse of RGl (Pl=RlG*PG):\\n', Pl)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Rotation matrix (RGl):\n"
+ " [[ 0.7071 -0.7071]\n"
+ " [ 0.7071 0.7071]]\n"
+ "Position at the local coordinate system (Pl):\n"
+ " [[1]\n"
+ " [1]]\n"
+ "Position at the Global coordinate system (PG=RGl*Pl):\n"
+ " [[0. ]\n"
+ " [1.41]]\n"
+ "Position at the local coordinate system using the inverse of RGl (Pl=RlG*PG):\n"
+ " [[1.]\n"
+ " [1.]]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "**In summary, some of the properties of the rotation matrix are:** \n"
+ "1. The columns of the rotation matrix form a basis of (independent) unit vectors (versors) and the rows are also independent versors since the transpose of the rotation matrix is another rotation matrix. \n"
+ "2. The rotation matrix is orthogonal. There is no linear combination of one of the lines or columns of the matrix that would lead to the other row or column, i.e., the lines and columns of the rotation matrix are independent, orthogonal, to each other (this is property 1 rewritten). Because each row and column have norm equal to one, this matrix is also sometimes said to be orthonormal. \n"
+ "3. The determinant of the rotation matrix is equal to one (or equal to -1 if a left-hand coordinate system was used, but you should rarely use that). For instance, the determinant of the rotation matrix we deduced is $cos\\alpha cos\\alpha - sin\\alpha(-sin\\alpha)=1$.\n"
+ "4. The inverse of the rotation matrix is equals to its transpose.\n"
+ "\n"
+ "**On the different meanings of the rotation matrix:** \n"
+ "- It represents the coordinate transformation between the coordinates of a point expressed in two different coordinate systems. \n"
+ "- It describes the rotation between two coordinate systems. The columns are the direction cosines (versors) of the axes of the rotated coordinate system in relation to the other coordinate system and the rows are also direction cosines (versors) for the inverse rotation. \n"
+ "- It is an operator for the calculation of the rotation of a vector in a coordinate system.\n"
+ "- Rotation matrices provide a means of numerically representing rotations without appealing to angular specification.\n"
+ "\n"
+ "**Which matrix to use, from local to Global or Global to local?** \n"
+ "- A typical use of the transformation is in movement analysis, where there are the fixed Global (laboratory) coordinate system and the local (moving, e.g. anatomical) coordinate system attached to each body segment. Because the movement of the body segment is measured in the Global coordinate system, using cameras for example, and we want to reconstruct the coordinates of the markers at the anatomical coordinate system, we want the transformation leading from the Global coordinate system to the local coordinate system.\n"
+ "- Of course, if you have one matrix, it is simple to get the other; you just have to pay attention to use the right one."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Translation and rotation\n"
+ "\n"
+ "Consider now the case where the local coordinate system is translated and rotated in relation to the Global coordinate system and a point is described in both coordinate systems as illustrated in the figure below (once again, remember that this is equivalent to describing a translation and a rotation between two rigid bodies). \n"
+ "<br>\n"
+ "<figure><img src='./../images/transrot2D.png' alt='translation and rotation 2D'/> <figcaption><center><i>Figure. A point in two-dimensional space represented in two coordinate systems, with one system translated and rotated.</i></center></figcaption> </figure>\n"
+ "\n"
+ "The position of point $\\mathbf{P}$ originally described in the local coordinate system, but now described in the Global coordinate system in vector form is:\n"
+ "\n"
+ "$$ \\mathbf{P_G} = \\mathbf{L_G} + \\mathbf{R_{Gl}}\\mathbf{P_l} $$\n"
+ "\n"
+ "And in matrix form:\n"
+ "\n"
+ "$$ \\begin{bmatrix}\n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix} \\mathbf{L_{X}} \\\\\\ \\mathbf{L_{Y}} \\end{bmatrix} + \n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} \\begin{bmatrix}\n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "This means that we first *disrotate* the local coordinate system and then correct for the translation between the two coordinate systems. Note that we can't invert this order: the point position is expressed in the local coordinate system and we can't add this vector to another vector expressed in the Global coordinate system, first we have to convert the vectors to the same coordinate system.\n"
+ "\n"
+ "If now we want to find the position of a point at the local coordinate system given its position in the Global coordinate system, the rotation matrix and the translation vector, we have to invert the expression above:\n"
+ "\n"
+ "$$ \\begin{array}{l l}\n"
+ "\\mathbf{P_G} = \\mathbf{L_G} + \\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n"
+ "\\\\\n"
+ "\\mathbf{R_{Gl}^{-1}}(\\mathbf{P_G} - \\mathbf{L_G}) = \\mathbf{R_{Gl}^{-1}}\\mathbf{R_{Gl}}\\mathbf{P_l} \\implies \\\\\n"
+ "\\\\\n"
+ "\\mathbf{P_l} = \\mathbf{R_{Gl}^{-1}}\\left(\\mathbf{P_G}-\\mathbf{L_G}\\right) = \\mathbf{R_{Gl}^T}\\left(\\mathbf{P_G}-\\mathbf{L_G}\\right) \\quad \\text{or} \\quad \\mathbf{P_l} = \\mathbf{R_{lG}}\\left(\\mathbf{P_G}-\\mathbf{L_G}\\right) \n"
+ "\\end{array} $$\n"
+ "\n"
+ "The expression above indicates that to perform the inverse operation, to go from the Global to the local coordinate system, we first translate and then rotate the coordinate system."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Transformation matrix\n"
+ "\n"
+ "It is possible to combine the translation and rotation operations in only one matrix, called the transformation matrix (also referred as homogeneous transformation matrix):\n"
+ "\n"
+ "$$ \\begin{bmatrix}\n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \\\\\n"
+ "1\n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha & \\mathbf{L_{X}} \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha & \\mathbf{L_{Y}} \\\\\n"
+ "0 & 0 & 1\n"
+ "\\end{bmatrix} \\begin{bmatrix}\n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \\\\\n"
+ "1\n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "Or simply:\n"
+ "\n"
+ "$$ \\mathbf{P_G} = \\mathbf{T_{Gl}}\\mathbf{P_l} $$\n"
+ "\n"
+ "The inverse operation, to express the position at the local coordinate system in terms of the Global coordinate system, is:\n"
+ "\n"
+ "$$ \\mathbf{P_l} = \\mathbf{T_{Gl}^{-1}}\\mathbf{P_G} $$\n"
+ "\n"
+ "However, because $\\mathbf{T_{Gl}}$ is not orthonormal when there is a translation, its inverse is not its transpose. Its inverse in matrix form is given by:\n"
+ "\n"
+ "$$ \\begin{bmatrix}\n"
+ "\\mathbf{P}_x \\\\\n"
+ "\\mathbf{P}_y \\\\\n"
+ "1\n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "\\mathbf{R^{-1}_{Gl}} & \\cdot & - \\mathbf{R^{-1}_{Gl}}\\mathbf{L_{G}} \\\\\n"
+ "\\cdot & \\cdot & \\cdot \\\\\n"
+ "0 & 0 & 1\n"
+ "\\end{bmatrix} \\begin{bmatrix}\n"
+ "\\mathbf{P_X} \\\\\n"
+ "\\mathbf{P_Y} \\\\\n"
+ "1\n"
+ "\\end{bmatrix} $$"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Calculation of a basis\n"
+ "\n"
+ "A typical scenario in motion analysis is to calculate the rotation matrix using the position of markers placed on the moving rigid body. With the markers' positions, we create a local basis, which by definition is the rotation matrix for the rigid body with respect to the Global (laboratory) coordinate system. To define a coordinate system using a basís, we also will need to define an origin. \n"
+ "\n"
+ "Let's see how to calculate a basis given the markers' positions. \n"
+ "Consider the markers at m1=[1,1]`, m2=[1,2] and m3=[-1,1] measured in the Global coordinate system as illustrated in the figure below: \n"
+ "<br>\n"
+ "<figure><img src='./../images/transrot2Db.png' alt='translation and rotation 2D'/> <figcaption><center><i>Figure. Three points in the two-dimensional space, two possible vectors given these points, and the corresponding basis.</i></center></figcaption> </figure>\n"
+ "\n"
+ "A possible local coordinate system with origin at the position of m1 is also illustrated in the figure above. Intentionally, the three markers were chosen to form orthogonal vectors. \n"
+ "The translation vector between the two coordinate system is:\n"
+ "\n"
+ "$$\\mathbf{L_{Gl}} = m_1 - [0,0] = [1,1]$$\n"
+ "\n"
+ "The vectors expressing the axes of the local coordinate system are:\n"
+ "\n"
+ "$$ x = m_2 - m_1 = [1,2] - [1,1] = [0,1] $$\n"
+ "\n"
+ "$$ y = m_3 - m_1 = [-1,1] - [1,1] = [-2,0] $$\n"
+ "\n"
+ "Note that these two vectors do not form a basis yet because they are not unit vectors (in fact, only *y* is not a unit vector). Let's normalize these vectors:\n"
+ "\n"
+ "$$ \\begin{array}{}\n"
+ "e_x = \\frac{x}{||x||} = \\frac{[0,1]}{\\sqrt{0^2+1^2}} = [0,1] \\\\\n"
+ "\\\\\n"
+ "e_y = \\frac{y}{||y||} = \\frac{[-2,0]}{\\sqrt{2^2+0^2}} = [-1,0] \n"
+ "\\end{array} $$\n"
+ "\n"
+ "Beware that the versors above are not exactly the same as the ones shown in the right plot of the last figure, the versors above if plotted will start at the origin of the coordinate system, not at [1,1] as shown in the figure.\n"
+ "\n"
+ "We could have done this calculation in NumPy (we will need to do that when dealing with real data later):"
+ ));
+
+ qDebug() << "command entry 10";
+ testCommandEntry(entry, 10, 1, QString::fromUtf8(
+ "m1 = np.array([1.,1.]) # marker 1\n"
+ "m2 = np.array([1.,2.]) # marker 2\n"
+ "m3 = np.array([-1.,1.]) # marker 3\n"
+ "\n"
+ "x = m2 - m1 # vector x\n"
+ "y = m3 - m1 # vector y\n"
+ "\n"
+ "vx = x/np.linalg.norm(x) # versor x\n"
+ "vy = y/np.linalg.norm(y) # verson y\n"
+ "\n"
+ "print(\"x =\", x, \", y =\", y, \"\\nex=\", vx, \", ey=\", vy)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "x = [0. 1.] , y = [-2. 0.] \n"
+ "ex= [0. 1.] , ey= [-1. 0.]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Now, both $\\mathbf{e}_x$ and $\\mathbf{e}_y$ are unit vectors (versors) and they are orthogonal, a basis can be formed with these two versors, and we can represent the rotation matrix using this basis (just place the versors of this basis as columns of the rotation matrix):\n"
+ "\n"
+ "$$ \\mathbf{R_{Gl}} = \\begin{bmatrix}\n"
+ "0 & -1 \\\\\n"
+ "1 & 0 \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "This rotation matrix makes sense because from the figure above we see that the local coordinate system we defined is rotated by 90$^o$ in relation to the Global coordinate system and if we use the general form for the rotation matrix:\n"
+ "\n"
+ "$$ \\mathbf{R} = \\begin{bmatrix}\n"
+ "\\cos\\alpha & -\\sin\\alpha \\\\\n"
+ "\\sin\\alpha & \\cos\\alpha \n"
+ "\\end{bmatrix} = \n"
+ "\\begin{bmatrix}\n"
+ "\\cos90^o & -\\sin90^o \\\\\n"
+ "\\sin90^o & \\cos90^o \n"
+ "\\end{bmatrix} =\n"
+ "\\begin{bmatrix}\n"
+ "0 & -1 \\\\\n"
+ "1 & 0 \n"
+ "\\end{bmatrix} $$\n"
+ "\n"
+ "So, the position of any point in the local coordinate system can be represented in the Global coordinate system by:\n"
+ "\n"
+ "$$ \\begin{array}{l l}\n"
+ "\\mathbf{P_G} =& \\mathbf{L_{Gl}} + \\mathbf{R_{Gl}}\\mathbf{P_l} \\\\\n"
+ "\\\\\n"
+ "\\mathbf{P_G} =& \\begin{bmatrix} 1 \\\\ 1 \\end{bmatrix} + \\begin{bmatrix} 0 & -1 \\\\ 1 & 0 \\end{bmatrix} \\mathbf{P_l} \n"
+ "\\end{array} $$\n"
+ "\n"
+ "For example, the point $\\mathbf{P_l}=[1,1]$ has the following position at the Global coordinate system:"
+ ));
+
+ qDebug() << "command entry 11";
+ testCommandEntry(entry, 11, 1, QString::fromUtf8(
+ "LGl = np.array([[1, 1]]).T\n"
+ "print('Translation vector:\\n', LGl)\n"
+ "\n"
+ "RGl = np.array([[0, -1], [1, 0]])\n"
+ "print('Rotation matrix:\\n', RGl)\n"
+ "\n"
+ "Pl = np.array([[1, 1]]).T\n"
+ "print('Position at the local coordinate system:\\n', Pl)\n"
+ "\n"
+ "PG = LGl + np.dot(RGl, Pl)\n"
+ "print('Position at the Global coordinate system, PG = LGl + RGl*Pl:\\n', PG)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Translation vector:\n"
+ " [[1]\n"
+ " [1]]\n"
+ "Rotation matrix:\n"
+ " [[ 0 -1]\n"
+ " [ 1 0]]\n"
+ "Position at the local coordinate system:\n"
+ " [[1]\n"
+ " [1]]\n"
+ "Position at the Global coordinate system, PG = LGl + RGl*Pl:\n"
+ " [[0]\n"
+ " [2]]"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Determination of the unknown angle of rotation\n"
+ "\n"
+ "If we didn't know the angle of rotation between the two coordinate systems, which is the typical situation in motion analysis, we simply would equate one of the terms of the two-dimensional rotation matrix in its algebraic form to its correspondent value in the numerical rotation matrix we calculated.\n"
+ "\n"
+ "For instance, taking the first term of the rotation matrices above: $\\cos\\alpha = 0$ implies that $\\theta$ is 90$^o$ or 270$^o$, but combining with another matrix term, $\\sin\\alpha = 1$, implies that $\\alpha=90^o$. We can solve this problem in one step using the tangent $(\\sin\\alpha/\\cos\\alpha)$ function with two terms of the rotation matrix and calculating the angle with the `arctan2(y, x)` function:"
+ ));
+
+ qDebug() << "command entry 12";
+ testCommandEntry(entry, 12, 1, QString::fromUtf8(
+ "ang = np.arctan2(RGl[1, 0], RGl[0, 0])*180/np.pi\n"
+ "print('The angle is:', ang)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "The angle is: 90.0"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "And this procedure would be repeated for each segment and for each instant of the analyzed movement to find the rotation of each segment."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "#### Joint angle as a sequence of rotations of adjacent segments\n"
+ "\n"
+ "In the notebook about [two-dimensional angular kinematics](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/AngularKinematics2D.ipynb), we calculated segment and joint angles using simple trigonometric relations. We can also calculate these two-dimensional angles using what we learned here about the rotation matrix.\n"
+ "\n"
+ "The segment angle will be given by the matrix representing the rotation from the laboratory coordinate system (G) to a coordinate system attached to the segment and the joint angle will be given by the matrix representing the rotation from one segment coordinate system (l1) to the other segment coordinate system (l2). So, we have to calculate two basis now, one for each segment and the joint angle will be given by the product between the two rotation matrices. \n"
+ "\n"
+ "To define a two-dimensional basis, we need to calculate vectors perpendicular to each of these lines. Here is a way of doing that. First, let's find three non-collinear points for each basis:"
+ ));
+
+ qDebug() << "command entry 13";
+ testCommandEntry(entry, 13, QString::fromUtf8(
+ "x1, y1, x2, y2 = 0, 0, 1, 1 # points at segment 1\n"
+ "x3, y3, x4, y4 = 1.1, 1, 2.1, 0 # points at segment 2\n"
+ "\n"
+ "#The slope of the perpendicular line is minus the inverse of the slope of the line\n"
+ "xl1 = x1 - (y2-y1); yl1 = y1 + (x2-x1) # point at the perpendicular line 1\n"
+ "xl2 = x4 - (y3-y4); yl2 = y4 + (x3-x4) # point at the perpendicular line 2"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "With these three points, we can create a basis and the corresponding rotation matrix:"
+ ));
+
+ qDebug() << "command entry 14";
+ testCommandEntry(entry, 14, QString::fromUtf8(
+ "b1x = np.array([x2-x1, y2-y1])\n"
+ "b1x = b1x/np.linalg.norm(b1x) # versor x of basis 1\n"
+ "b1y = np.array([xl1-x1, yl1-y1])\n"
+ "b1y = b1y/np.linalg.norm(b1y) # versor y of basis 1\n"
+ "b2x = np.array([x3-x4, y3-y4])\n"
+ "b2x = b2x/np.linalg.norm(b2x) # versor x of basis 2\n"
+ "b2y = np.array([xl2-x4, yl2-y4])\n"
+ "b2y = b2y/np.linalg.norm(b2y) # versor y of basis 2\n"
+ "\n"
+ "RGl1 = np.array([b1x, b1y]).T # rotation matrix from segment 1 to the laboratory\n"
+ "RGl2 = np.array([b2x, b2y]).T # rotation matrix from segment 2 to the laboratory"
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Now, the segment and joint angles are simply matrix operations:"
+ ));
+
+ qDebug() << "command entry 15";
+ testCommandEntry(entry, 15, 1, QString::fromUtf8(
+ "print('Rotation matrix for segment 1:\\n', np.around(RGl1, 4))\n"
+ "print('\\nRotation angle of segment 1:', np.arctan2(RGl1[1,0], RGl1[0,0])*180/np.pi)\n"
+ "print('\\nRotation matrix for segment 2:\\n', np.around(RGl2, 4))\n"
+ "print('\\nRotation angle of segment 2:', np.arctan2(RGl1[1,0], RGl2[0,0])*180/np.pi)\n"
+ "\n"
+ "Rl1l2 = np.dot(RGl1.T, RGl2) # Rl1l2 = Rl1G*RGl2\n"
+ "\n"
+ "print('\\nJoint rotation matrix (Rl1l2 = Rl1G*RGl2):\\n', np.around(Rl1l2, 4))\n"
+ "print('\\nJoint angle:', np.arctan2(Rl1l2[1,0], Rl1l2[0,0])*180/np.pi)"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Rotation matrix for segment 1:\n"
+ " [[ 0.7071 -0.7071]\n"
+ " [ 0.7071 0.7071]]\n"
+ "\n"
+ "Rotation angle of segment 1: 45.0\n"
+ "\n"
+ "Rotation matrix for segment 2:\n"
+ " [[-0.7071 -0.7071]\n"
+ " [ 0.7071 -0.7071]]\n"
+ "\n"
+ "Rotation angle of segment 2: 135.0\n"
+ "\n"
+ "Joint rotation matrix (Rl1l2 = Rl1G*RGl2):\n"
+ " [[ 0. -1.]\n"
+ " [ 1. -0.]]\n"
+ "\n"
+ "Joint angle: 90.0"
+ ));
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Same result as obtained in [Angular kinematics in a plane (2D)](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/AngularKinematics2D.ipynb). "
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "### Kinematic chain in a plain (2D)\n"
+ "\n"
+ "The fact that we simply multiplied the rotation matrices to calculate the rotation matrix of one segment in relation to the other is powerful and can be generalized for any number of segments: given a serial kinematic chain with links 1, 2, ..., n and 0 is the base/laboratory, the rotation matrix between the base and last link is: $\\mathbf{R_{n,n-1}R_{n-1,n-2} \\dots R_{2,1}R_{1,0}}$, where each matrix in this product (calculated from right to left) is the rotation of one link with respect to the next one. \n"
+ "\n"
+ "For instance, consider a kinematic chain with two links, the link 1 is rotated by $\\alpha_1$ with respect to the base (0) and the link 2 is rotated by $\\alpha_2$ with respect to the link 1. \n"
+ "Using Sympy, the rotation matrices for link 2 w.r.t. link 1 $(R_{12})$ and for link 1 w.r.t. base 0 $(R_{01})$ are: "
+ ));
+
+ qDebug() << "command entry 16";
+ testCommandEntry(entry, 16, QString::fromUtf8(
+ "from IPython.display import display, Math\n"
+ "from sympy import sin, cos, Matrix, simplify, latex, symbols\n"
+ "from sympy.interactive import printing\n"
+ "printing.init_printing()"
+ ));
+
+ qDebug() << "command entry 17";
+ testCommandEntry(entry, 17, 2, QString::fromUtf8(
+ "a1, a2 = symbols('alpha1 alpha2')\n"
+ "\n"
+ "R12 = Matrix([[cos(a2), -sin(a2)], [sin(a2), cos(a2)]])\n"
+ "display(Math(latex(r'\\mathbf{R_{12}}=') + latex(R12)))\n"
+ "R01 = Matrix([[cos(a1), -sin(a1)], [sin(a1), cos(a1)]])\n"
+ "display(Math(latex(r'\\mathbf{R_{01}}=') + latex(R01)))"
+ ));
+ {
+ QCOMPARE(expression(entry)->results()[0]->type(), (int)Cantor::LatexResult::Type);
+ Cantor::LatexResult* result = static_cast<Cantor::LatexResult*>(expression(entry)->results()[0]);
+ QCOMPARE(result->code(), QLatin1String(
+ "$$\\mathbf{R_{12}}=\\left[\\begin{matrix}\\cos{\\left(\\alpha_{2} \\right)} & - \\sin{\\left(\\alpha_{2} \\right)}\\\\\\sin{\\left(\\alpha_{2} \\right)} & \\cos{\\left(\\alpha_{2} \\right)}\\end{matrix}\\right]$$"
+ ));
+ QCOMPARE(result->plain(), QLatin1String(
+ "<IPython.core.display.Math object>"
+ ));
+ QCOMPARE(result->mimeType(), QStringLiteral("image/x-eps"));
+ }
+ {
+ QCOMPARE(expression(entry)->results()[1]->type(), (int)Cantor::LatexResult::Type);
+ Cantor::LatexResult* result = static_cast<Cantor::LatexResult*>(expression(entry)->results()[1]);
+ QCOMPARE(result->code(), QLatin1String(
+ "$$\\mathbf{R_{01}}=\\left[\\begin{matrix}\\cos{\\left(\\alpha_{1} \\right)} & - \\sin{\\left(\\alpha_{1} \\right)}\\\\\\sin{\\left(\\alpha_{1} \\right)} & \\cos{\\left(\\alpha_{1} \\right)}\\end{matrix}\\right]$$"
+ ));
+ QCOMPARE(result->plain(), QLatin1String(
+ "<IPython.core.display.Math object>"
+ ));
+ QCOMPARE(result->mimeType(), QStringLiteral("image/x-eps"));
+ }
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "The rotation matrix of link 2 w.r.t. the base $(R_{02})$ is given simply by $R_{01}*R_{12}$:"
+ ));
+
+ qDebug() << "command entry 18";
+ testCommandEntry(entry, 18, 1, QString::fromUtf8(
+ "R02 = R01*R12\n"
+ "display(Math(latex(r'\\mathbf{R_{02}}=') + latex(R02)))"
+ ));
+ {
+ QCOMPARE(expression(entry)->results()[0]->type(), (int)Cantor::LatexResult::Type);
+ Cantor::LatexResult* result = static_cast<Cantor::LatexResult*>(expression(entry)->results()[0]);
+ QCOMPARE(result->code(), QLatin1String(
+ "$$\\mathbf{R_{02}}=\\left[\\begin{matrix}- \\sin{\\left(\\alpha_{1} \\right)} \\sin{\\left(\\alpha_{2} \\right)} + \\cos{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)} & - \\sin{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)} - \\sin{\\left(\\alpha_{2} \\right)} \\cos{\\left(\\alpha_{1} \\right)}\\\\\\sin{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)} + \\sin{\\left(\\alpha_{2} \\right)} \\cos{\\left(\\alpha_{1} \\right)} & - \\sin{\\left(\\alpha_{1} \\right)} \\sin{\\left(\\alpha_{2} \\right)} + \\cos{\\left(\\alpha_{1} \\right)} \\cos{\\left(\\alpha_{2} \\right)}\\end{matrix}\\right]$$"
+ ));
+ QCOMPARE(result->plain(), QLatin1String(
+ "<IPython.core.display.Math object>"
+ ));
+ QCOMPARE(result->mimeType(), QStringLiteral("image/x-eps"));
+ }
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "Which simplifies to:"
+ ));
+
+ qDebug() << "command entry 19";
+ testCommandEntry(entry, 19, 1, QString::fromUtf8(
+ "display(Math(latex(r'\\mathbf{R_{02}}=') + latex(simplify(R02))))"
+ ));
+ {
+ QCOMPARE(expression(entry)->results()[0]->type(), (int)Cantor::LatexResult::Type);
+ Cantor::LatexResult* result = static_cast<Cantor::LatexResult*>(expression(entry)->results()[0]);
+ QCOMPARE(result->code(), QLatin1String(
+ "$$\\mathbf{R_{02}}=\\left[\\begin{matrix}\\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)} & - \\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)}\\\\\\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} & \\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)}\\end{matrix}\\right]$$"
+ ));
+ QCOMPARE(result->plain(), QLatin1String(
+ "<IPython.core.display.Math object>"
+ ));
+ QCOMPARE(result->mimeType(), QStringLiteral("image/x-eps"));
+ }
+ entry = entry->next();
+
+ testMarkdown(entry, QString::fromUtf8(
+ "As expected.\n"
+ "\n"
+ "The typical use of all these concepts is in the three-dimensional motion analysis where we will have to deal with angles in different planes, which needs a special manipulation as we will see next."
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## Problems\n"
+ "\n"
+ "1. A local coordinate system is rotated 30$^o$ clockwise in relation to the Global reference system. \n"
+ " A. Determine the matrices for rotating one coordinate system to another (two-dimensional). \n"
+ " B. What are the coordinates of the point [1, 1] (local coordinate system) at the global coordinate system? \n"
+ " C. And if this point is at the Global coordinate system and we want the coordinates at the local coordinate system? \n"
+ " D. Consider that the local coordinate system, besides the rotation is also translated by [2, 2]. What are the matrices for rotation, translation, and transformation from one coordinate system to another (two-dimensional)? \n"
+ " E. Repeat B and C considering this translation.\n"
+ " \n"
+ "2. Consider a local coordinate system U rotated 45$^o$ clockwise in relation to the Global reference system and another local coordinate system V rotated 45$^o$ clockwise in relation to the local reference system U. \n"
+ " A. Determine the rotation matrices of all possible transformations between the coordinate systems. \n"
+ " B. For the point [1, 1] in the coordinate system U, what are its coordinates in coordinate system V and in the Global coordinate system? \n"
+ " \n"
+ "3. Using the rotation matrix, deduce the new coordinates of a square figure with coordinates [0, 0], [1, 0], [1, 1], and [0, 1] when rotated by 0$^o$, 45$^o$, 90$^o$, 135$^o$, and 180$^o$ (always clockwise).\n"
+ " \n"
+ "4. Solve the problem 2 of [Angular kinematics in a plane (2D)](http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/AngularKinematics2D.ipynb) but now using the concept of two-dimensional transformations. "
+ ));
+
+ testMarkdown(entry, QString::fromUtf8(
+ "## References\n"
+ "\n"
+ "- Robertson G, Caldwell G, Hamill J, Kamen G (2013) [Research Methods in Biomechanics](http://books.google.com.br/books?id=gRn8AAAAQBAJ). 2nd Edition. Human Kinetics. \n"
+ "- Ruina A, Rudra P (2013) [Introduction to Statics and Dynamics](http://ruina.tam.cornell.edu/Book/index.html). Oxford University Press. \n"
+ "- Winter DA (2009) [Biomechanics and motor control of human movement](http://books.google.com.br/books?id=_bFHL08IWfwC). 4 ed. Hoboken, EUA: Wiley. \n"
+ "- Zatsiorsky VM (1997) [Kinematics of Human Motion](http://books.google.com.br/books/about/Kinematics_of_Human_Motion.html?id=Pql_xXdbrMcC&redir_esc=y). Champaign, Human Kinetics."
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testMarkdownAttachment()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("TestMarkdownAttachment.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testCommandEntry(entry, 1, 1, QString::fromUtf8(
+ "2+2"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "4"
+ ));
+ entry = entry->next();
+
+ // Tests attachments via toJupyterJson: ugly, but works
+ QVERIFY(entry);
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QString::fromLatin1(
+ "![CantorLogo.png](attachment:CantorLogo.png)\n"
+ "![CantorLogo.png](attachment:CantorLogo.png)"
+ ));
+ QJsonValue value = entry->toJupyterJson();
+ QVERIFY(value.isObject());
+ QVERIFY(value.toObject().contains(QLatin1String("attachments")));
+ entry = entry->next();
+
+ QVERIFY(entry);
+ QCOMPARE(entry->type(), (int)MarkdownEntry::Type);
+ QCOMPARE(plainMarkdown(entry), QString::fromLatin1(
+ "![CantorLogo.png](attachment:CantorLogo.png)"
+ ));
+ value = entry->toJupyterJson();
+ QVERIFY(value.isObject());
+ QVERIFY(value.toObject().contains(QLatin1String("attachments")));
+ entry = entry->next();
+
+ testCommandEntry(entry, -1, QString::fromUtf8(
+ ""
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testEntryLoad1()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("TestEntryLoad1.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testCommandEntry(entry, 2, 1, QString::fromUtf8(
+ "2+2"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "4"
+ ));
+ entry = entry->next();
+
+ testLatexEntry(entry, QString::fromLatin1(
+ "$$\\Gamma$$"
+ ));
+
+ testMarkdown(entry, QString::fromLatin1(
+ "### Test Entry"
+ ));
+
+ testMarkdown(entry, QString::fromLatin1(
+ "Text"
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testEntryLoad2()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("TestEntryLoad2.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("octave"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testCommandEntry(entry, 0, 1, QString::fromUtf8(
+ "2+2"
+ ));
+ testTextResult(entry, 0, QString::fromLatin1(
+ "ans = 4"
+ ));
+ entry = entry->next();
+
+ testTextEntry(entry, QString::fromLatin1(
+ "Text entry"
+ ));
+
+ testMarkdown(entry, QString::fromLatin1(
+ "#### Markdown entry"
+ ));
+
+ testLatexEntry(entry, QString::fromLatin1(
+ "\\LaTeX\\ entry"
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testResultsLoad()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("TestResultsLoad.ipynb")));
+
+ QCOMPARE(w->isReadOnly(), false);
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("sage"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testCommandEntry(entry, 9, QString::fromUtf8(
+ "from IPython.display import Latex"
+ ));
+
+ testCommandEntry(entry, 16, 1, QString::fromUtf8(
+ "print(\"Hello world\")"
+ ));
+ testTextResult(entry, 0, QString::fromUtf8(
+ "Hello world"
+ ));
+ entry = entry->next();
+
+ testCommandEntry(entry, 17, 1, QString::fromUtf8(
+ "plot(x^2, (x,0,5))"
+ ));
+ testImageResult(entry, 0);
+ entry = entry->next();
+
+ testCommandEntry(entry, 6, 1, QString::fromUtf8(
+ "sines = [plot(c*sin(x), (-2*pi,2*pi), color=Color(c,0,0), ymin=-1, ymax=1) for c in sxrange(0,1,.05)]\n"
+ "a = animate(sines)\n"
+ "a.show()"
+ ));
+ QVERIFY(expression(entry));
+ QCOMPARE(expression(entry)->results().at(0)->type(), (int)Cantor::AnimationResult::Type);
+ QVERIFY(static_cast<Cantor::AnimationResult*>(expression(entry)->results().at(0))->url().isValid());
+ entry = entry->next();
+
+ testCommandEntry(entry, 15, 1, QString::fromUtf8(
+ "Latex(\"$$\\Gamma$$\")"
+ ));
+ QCOMPARE(expression(entry)->result()->type(), (int)Cantor::LatexResult::Type);
+ {
+ Cantor::LatexResult* result = static_cast<Cantor::LatexResult*>(expression(entry)->result());
+ QCOMPARE(result->code(), QLatin1String(
+ "$$\\Gamma$$"
+ ));
+ QCOMPARE(result->plain(), QLatin1String(
+ "<IPython.core.display.Latex object>"
+ ));
+ QCOMPARE(result->mimeType(), QStringLiteral("image/x-eps"));
+ }
+ entry = entry->next();
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testMimeResult()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("TestNotebookWithJson.ipynb")));
+
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testCommandEntry(entry, 6, QString::fromUtf8(
+ "import json\n"
+ "import uuid\n"
+ "from IPython.display import display_javascript, display_html, display\n"
+ "\n"
+ "class RenderJSON(object):\n"
+ " def __init__(self, json_data):\n"
+ " if isinstance(json_data, dict) or isinstance(json_data, list):\n"
+ " self.json_str = json.dumps(json_data)\n"
+ " else:\n"
+ " self.json_str = json_data\n"
+ " self.uuid = str(uuid.uuid4())\n"
+ "\n"
+ " def _ipython_display_(self):\n"
+ " display_html('<div id=\"{}\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>'.format(self.uuid), raw=True)\n"
+ " display_javascript(\"\"\"\n"
+ " require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n"
+ " renderjson.set_show_to_level(2);\n"
+ " document.getElementById('%s').appendChild(renderjson(%s))\n"
+ " });\n"
+ " \"\"\" % (self.uuid, self.json_str), raw=True)"
+ ));
+
+ testCommandEntry(entry, 7, 2, QString::fromUtf8(
+ "RenderJSON([\n"
+ " {\n"
+ " \"a\": 1\n"
+ " }, \n"
+ " {\n"
+ " \"b\": 2,\n"
+ " \"in1\": {\n"
+ " \"key\": \"value\"\n"
+ " }\n"
+ " }\n"
+ "])"
+ ));
+ testHtmlResult(entry, 0, QString::fromLatin1(
+ ""
+ ), QString::fromLatin1(
+ "<div id=\"bb6d9031-c990-4aee-849e-6d697430777c\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>"
+ ));
+ {
+ QVERIFY(expression(entry)->results().size() > 1);
+ QCOMPARE(expression(entry)->results().at(1)->type(), (int)Cantor::MimeResult::Type);
+ Cantor::MimeResult* result = static_cast<Cantor::MimeResult*>(expression(entry)->results().at(1));
+ QJsonObject mimeData = result->data().value<QJsonObject>();
+ QStringList mimeKeys = mimeData.keys();
+ QCOMPARE(mimeKeys.size(), 1);
+ QVERIFY(mimeKeys.contains(QLatin1String("application/javascript")));
+ QJsonArray value = QJsonArray::fromStringList(QStringList{
+ QLatin1String("\n"),
+ QLatin1String(" require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n"),
+ QLatin1String(" renderjson.set_show_to_level(2);\n"),
+ QLatin1String(" document.getElementById('bb6d9031-c990-4aee-849e-6d697430777c').appendChild(renderjson([{\"a\": 1}, {\"b\": 2, \"in1\": {\"key\": \"value\"}}]))\n"),
+ QLatin1String(" });\n"),
+ QLatin1String(" ")
+ });
+ QCOMPARE(mimeData[QLatin1String("application/javascript")].toArray(), value);
+ }
+ entry = entry->next();
+
+ testCommandEntry(entry, -1, QString::fromUtf8(
+ ""
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testMimeResultWithPlain()
+{
+ QScopedPointer<Worksheet> w(loadWorksheet(QLatin1String("TestNotebookWithModJson.ipynb")));
+
+ QCOMPARE(w->session()->backend()->id(), QLatin1String("python3"));
+
+ WorksheetEntry* entry = w->firstEntry();
+
+ testCommandEntry(entry, 6, QString::fromUtf8(
+ "import json\n"
+ "import uuid\n"
+ "from IPython.display import display_javascript, display_html, display\n"
+ "\n"
+ "class RenderJSON(object):\n"
+ " def __init__(self, json_data):\n"
+ " if isinstance(json_data, dict) or isinstance(json_data, list):\n"
+ " self.json_str = json.dumps(json_data)\n"
+ " else:\n"
+ " self.json_str = json_data\n"
+ " self.uuid = str(uuid.uuid4())\n"
+ "\n"
+ " def _ipython_display_(self):\n"
+ " display_html('<div id=\"{}\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>'.format(self.uuid), raw=True)\n"
+ " display_javascript(\"\"\"\n"
+ " require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n"
+ " renderjson.set_show_to_level(2);\n"
+ " document.getElementById('%s').appendChild(renderjson(%s))\n"
+ " });\n"
+ " \"\"\" % (self.uuid, self.json_str), raw=True)"
+ ));
+
+ testCommandEntry(entry, 7, 2, QString::fromUtf8(
+ "RenderJSON([\n"
+ " {\n"
+ " \"a\": 1\n"
+ " }, \n"
+ " {\n"
+ " \"b\": 2,\n"
+ " \"in1\": {\n"
+ " \"key\": \"value\"\n"
+ " }\n"
+ " }\n"
+ "])"
+ ));
+ testHtmlResult(entry, 0, QString::fromLatin1(
+ ""
+ ), QString::fromLatin1(
+ "<div id=\"bb6d9031-c990-4aee-849e-6d697430777c\" style=\"height: 600px; width:100%;font: 12px/18px monospace !important;\"></div>"
+ ));
+ {
+ QVERIFY(expression(entry)->results().size() > 1);
+ QCOMPARE(expression(entry)->results().at(1)->type(), (int)Cantor::MimeResult::Type);
+ Cantor::MimeResult* result = static_cast<Cantor::MimeResult*>(expression(entry)->results().at(1));
+ QJsonObject mimeData = result->data().value<QJsonObject>();
+ QStringList mimeKeys = mimeData.keys();
+ QCOMPARE(mimeKeys.size(), 2);
+ QVERIFY(mimeKeys.contains(QLatin1String("application/javascript")));
+ QVERIFY(mimeKeys.contains(QLatin1String("text/plain")));
+ QCOMPARE(mimeData[QLatin1String("text/plain")].toString(), QLatin1String(""));
+ QJsonArray value = QJsonArray::fromStringList(QStringList{
+ QLatin1String("\n"),
+ QLatin1String(" require([\"https://rawgit.com/caldwell/renderjson/master/renderjson.js\"], function() {\n"),
+ QLatin1String(" renderjson.set_show_to_level(2);\n"),
+ QLatin1String(" document.getElementById('bb6d9031-c990-4aee-849e-6d697430777c').appendChild(renderjson([{\"a\": 1}, {\"b\": 2, \"in1\": {\"key\": \"value\"}}]))\n"),
+ QLatin1String(" });\n"),
+ QLatin1String(" ")
+ });
+ QCOMPARE(mimeData[QLatin1String("application/javascript")].toArray(), value);
+ }
+ entry = entry->next();
+
+ testCommandEntry(entry, -1, QString::fromUtf8(
+ ""
+ ));
+
+ QCOMPARE(entry, nullptr);
+}
+
+void WorksheetTest::testMathRender()
+{
+ Worksheet* w = new Worksheet(Cantor::Backend::getBackend(QLatin1String("octave")), nullptr);
+ WorksheetView v(w, nullptr);
+ v.setEnabled(false);
+ w->enableEmbeddedMath(true);
+
+ if (!w->mathRenderer()->mathRenderAvailable())
+ QSKIP("This test needs workable embedded math (pdflatex)", SkipSingle);
+
+ MarkdownEntry* entry = static_cast<MarkdownEntry*>(WorksheetEntry::create(MarkdownEntry::Type, w));
+ entry->setContent(QLatin1String("$$12$$"));
+ entry->evaluate(WorksheetEntry::InternalEvaluation);
+
+ // Give 1 second to math renderer
+ QTest::qWait(1000);
+
+ QDomDocument doc;
+ QBuffer buffer;
+ KZip archive(&buffer);
+ QDomElement elem = entry->toXml(doc, &archive);
+
+ QDomNodeList list = elem.elementsByTagName(QLatin1String("EmbeddedMath"));
+ QCOMPARE(list.count(), 1);
+ QDomElement mathNode = list.at(0).toElement();
+ bool rendered = mathNode.attribute(QStringLiteral("rendered")).toInt();
+ QCOMPARE(rendered, true);
+}
+
+void WorksheetTest::testMathRender2()
+{
+ Worksheet* w = new Worksheet(Cantor::Backend::getBackend(QLatin1String("octave")), nullptr);
+ WorksheetView v(w, nullptr);
+ v.setEnabled(false);
+ w->enableEmbeddedMath(true);
+
+ if (!w->mathRenderer()->mathRenderAvailable())
+ QSKIP("This test needs workable embedded math (pdflatex)", SkipSingle);
+
+ MarkdownEntry* entry = static_cast<MarkdownEntry*>(WorksheetEntry::create(MarkdownEntry::Type, w));
+ entry->setContent(QLatin1String("2 $12$ 4"));
+ entry->evaluate(WorksheetEntry::InternalEvaluation);
+
+ // Give 1 second to math renderer
+ QTest::qWait(1000);
+
+ QDomDocument doc;
+ QBuffer buffer;
+ KZip archive(&buffer);
+ QDomElement elem = entry->toXml(doc, &archive);
+
+ QDomNodeList list = elem.elementsByTagName(QLatin1String("EmbeddedMath"));
+ QCOMPARE(list.count(), 1);
+ QDomElement mathNode = list.at(0).toElement();
+ bool rendered = mathNode.attribute(QStringLiteral("rendered")).toInt();
+ QCOMPARE(rendered, true);
+ QCOMPARE(mathNode.text(), QLatin1String("$12$"));
+}
+
+QTEST_MAIN( WorksheetTest )
diff --git a/src/test/worksheet_test.h b/src/test/worksheet_test.h
new file mode 100644
index 00000000..7de4ec2b
--- /dev/null
+++ b/src/test/worksheet_test.h
@@ -0,0 +1,72 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ ---
+ Copyright (C) 2019 Sirgienko Nikita <warquark@gmail.com>
+*/
+
+#include <QObject>
+
+class Worksheet;
+class WorksheetEntry;
+namespace Cantor {
+ class Expression;
+}
+
+class WorksheetTest: public QObject
+{
+ Q_OBJECT
+
+ private Q_SLOTS:
+ /* Jupyter load tests */
+ void initTestCase();
+ void testJupyter1();
+ void testJupyter2();
+ void testJupyter3();
+ void testJupyter4();
+ void testJupyter5();
+ void testJupyter6();
+ void testJupyter7();
+
+ void testMarkdownAttachment();
+ void testEntryLoad1();
+ void testEntryLoad2();
+ void testResultsLoad();
+ void testMimeResult();
+ void testMimeResultWithPlain();
+
+ /* common features tests */
+ void testMathRender();
+ void testMathRender2();
+
+ private:
+ static Worksheet* loadWorksheet(const QString& name);
+ static int entriesCount(Worksheet* worksheet);
+ static Cantor::Expression* expression(WorksheetEntry* entry);
+ static QString plainMarkdown(WorksheetEntry* markdownEntry);
+ static QString plainText(WorksheetEntry* textEntry);
+ static QString plainCommand(WorksheetEntry* commandEntry);
+ static QString plainLatex(WorksheetEntry* latexEntry);
+ static void testMarkdown(WorksheetEntry* &entry, const QString& content);
+ static void testCommandEntry(WorksheetEntry* &entry, int id, const QString& content);
+ static void testCommandEntry(WorksheetEntry* entry, int id, int resultsCount, const QString& content);
+ static void testLatexEntry(WorksheetEntry* &entry, const QString& content);
+ static void testTextEntry(WorksheetEntry* &entry, const QString& content);
+ static void testImageResult(WorksheetEntry* entry, int index);
+ static void testTextResult(WorksheetEntry* entry, int index, const QString& content);
+ static void testHtmlResult(WorksheetEntry* entry, int index, const QString& content);
+ static void testHtmlResult(WorksheetEntry* entry, int index, const QString& plain, const QString& html);
+};
diff --git a/src/textentry.cpp b/src/textentry.cpp
index 502a1062..31b56a06 100644
--- a/src/textentry.cpp
+++ b/src/textentry.cpp
@@ -1,354 +1,593 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "textentry.h"
#include "worksheettextitem.h"
#include "lib/epsrenderer.h"
#include "latexrenderer.h"
+#include "jupyterutils.h"
+#include "mathrender.h"
+
+#include "settings.h"
-#include <QGraphicsLinearLayout>
-#include <QScopedPointer>
+#include <QScopedPointer>
+#include <QGraphicsLinearLayout>
+#include <QJsonValue>
+#include <QJsonObject>
+#include <QJsonArray>
#include <QDebug>
#include <KLocalizedString>
-
-TextEntry::TextEntry(Worksheet* worksheet) : WorksheetEntry(worksheet), m_textItem(new WorksheetTextItem(this, Qt::TextEditorInteraction))
+#include <KColorScheme>
+#include <QStringList>
+#include <QInputDialog>
+
+QStringList standartRawCellTargetNames = {QLatin1String("None"), QLatin1String("LaTeX"), QLatin1String("reST"), QLatin1String("HTML"), QLatin1String("Markdown")};
+QStringList standartRawCellTargetMimes = {QString(), QLatin1String("text/latex"), QLatin1String("text/restructuredtext"), QLatin1String("text/html"), QLatin1String("text/markdown")};
+
+TextEntry::TextEntry(Worksheet* worksheet) : WorksheetEntry(worksheet)
+ , m_rawCell(false)
+ , m_convertTarget()
+ , m_targetActionGroup(nullptr)
+ , m_ownTarget{nullptr}
+ , m_targetMenu(nullptr)
+ , m_textItem(new WorksheetTextItem(this, Qt::TextEditorInteraction))
{
m_textItem->enableRichText(true);
connect(m_textItem, &WorksheetTextItem::moveToPrevious, this, &TextEntry::moveToPreviousEntry);
connect(m_textItem, &WorksheetTextItem::moveToNext, this, &TextEntry::moveToNextEntry);
+ // Modern syntax of signal/stots don't work on this connection (arguments don't match)
connect(m_textItem, SIGNAL(execute()), this, SLOT(evaluate()));
connect(m_textItem, &WorksheetTextItem::doubleClick, this, &TextEntry::resolveImagesAtCursor);
+
+ // Init raw cell target menus
+ // This used only for raw cells, but removing and creating this on convertation more complex
+ // that just create them always
+ m_targetActionGroup= new QActionGroup(this);
+ m_targetActionGroup->setExclusive(true);
+ connect(m_targetActionGroup, &QActionGroup::triggered, this, &TextEntry::convertTargetChanged);
+
+ m_targetMenu = new QMenu(i18n("Raw Cell Targets"));
+ for (const QString& key : standartRawCellTargetNames)
+ {
+ QAction* action = new QAction(key, m_targetActionGroup);
+ action->setCheckable(true);
+ m_targetMenu->addAction(action);
+ }
+ m_ownTarget = new QAction(i18n("Add custom target"), m_targetActionGroup);
+ m_ownTarget->setCheckable(true);
+ m_targetMenu->addAction(m_ownTarget);
+}
+
+TextEntry::~TextEntry()
+{
+ m_targetMenu->deleteLater();
}
void TextEntry::populateMenu(QMenu* menu, QPointF pos)
{
- bool imageSelected = false;
- QTextCursor cursor = m_textItem->textCursor();
- const QChar repl = QChar::ObjectReplacementCharacter;
- if (cursor.hasSelection()) {
- QString selection = m_textItem->textCursor().selectedText();
- imageSelected = selection.contains(repl);
- } else {
- // we need to try both the current cursor and the one after the that
- cursor = m_textItem->cursorForPosition(pos);
- qDebug() << cursor.position();
- for (int i = 2; i; --i) {
- int p = cursor.position();
- if (m_textItem->document()->characterAt(p-1) == repl &&
- cursor.charFormat().hasProperty(Cantor::EpsRenderer::CantorFormula)) {
- m_textItem->setTextCursor(cursor);
- imageSelected = true;
- break;
+ if (m_rawCell)
+ {
+ menu->addAction(i18n("Convert to Text Entry"), this, &TextEntry::convertToTextEntry);
+ menu->addMenu(m_targetMenu);
+ }
+ else
+ {
+ menu->addAction(i18n("Convert to Raw Cell"), this, &TextEntry::convertToRawCell);
+
+ bool imageSelected = false;
+ QTextCursor cursor = m_textItem->textCursor();
+ const QChar repl = QChar::ObjectReplacementCharacter;
+ if (cursor.hasSelection())
+ {
+ QString selection = m_textItem->textCursor().selectedText();
+ imageSelected = selection.contains(repl);
+ }
+ else
+ {
+ // we need to try both the current cursor and the one after the that
+ cursor = m_textItem->cursorForPosition(pos);
+ qDebug() << cursor.position();
+ for (int i = 2; i; --i)
+ {
+ int p = cursor.position();
+ if (m_textItem->document()->characterAt(p-1) == repl &&
+ cursor.charFormat().hasProperty(Cantor::EpsRenderer::CantorFormula))
+ {
+ m_textItem->setTextCursor(cursor);
+ imageSelected = true;
+ break;
+ }
+ cursor.movePosition(QTextCursor::NextCharacter);
}
- cursor.movePosition(QTextCursor::NextCharacter);
+ }
+
+ if (imageSelected)
+ {
+ menu->addAction(i18n("Show LaTeX code"), this, SLOT(resolveImagesAtCursor()));
}
}
- if (imageSelected) {
- menu->addAction(i18n("Show LaTeX code"), this, SLOT(resolveImagesAtCursor()));
- menu->addSeparator();
- }
+ menu->addSeparator();
WorksheetEntry::populateMenu(menu, pos);
}
bool TextEntry::isEmpty()
{
return m_textItem->document()->isEmpty();
}
int TextEntry::type() const
{
return Type;
}
bool TextEntry::acceptRichText()
{
return true;
}
bool TextEntry::focusEntry(int pos, qreal xCoord)
{
if (aboutToBeRemoved())
return false;
m_textItem->setFocusAt(pos, xCoord);
return true;
}
void TextEntry::setContent(const QString& content)
{
m_textItem->setPlainText(content);
}
void TextEntry::setContent(const QDomElement& content, const KZip& file)
{
Q_UNUSED(file);
if(content.firstChildElement(QLatin1String("body")).isNull())
return;
+ if (content.hasAttribute(QLatin1String("convertTarget")))
+ {
+ convertToRawCell();
+ m_convertTarget = content.attribute(QLatin1String("convertTarget"));
+
+ // Set current action status
+ int idx = standartRawCellTargetMimes.indexOf(m_convertTarget);
+ if (idx != -1)
+ m_targetMenu->actions()[idx]->setChecked(true);
+ else
+ addNewTarget(m_convertTarget);
+ }
+ else
+ convertToTextEntry();
+
QDomDocument doc = QDomDocument();
QDomNode n = doc.importNode(content.firstChildElement(QLatin1String("body")), true);
doc.appendChild(n);
QString html = doc.toString();
qDebug() << html;
m_textItem->setHtml(html);
}
+void TextEntry::setContentFromJupyter(const QJsonObject& cell)
+{
+ if (JupyterUtils::isRawCell(cell))
+ {
+ convertToRawCell();
+
+ const QJsonObject& metadata = JupyterUtils::getMetadata(cell);
+ QJsonValue format = metadata.value(QLatin1String("format"));
+ // Also checks "raw_mimetype", because raw cell don't corresponds Jupyter Notebook specification
+ // See https://github.com/jupyter/notebook/issues/4730
+ if (format.isUndefined())
+ format = metadata.value(QLatin1String("raw_mimetype"));
+ m_convertTarget = format.toString(QString());
+
+ // Set current action status
+ int idx = standartRawCellTargetMimes.indexOf(m_convertTarget);
+ if (idx != -1)
+ m_targetMenu->actions()[idx]->setChecked(true);
+ else
+ addNewTarget(m_convertTarget);
+
+ m_textItem->setPlainText(JupyterUtils::getSource(cell));
+
+ setJupyterMetadata(metadata);
+ }
+ else if (JupyterUtils::isMarkdownCell(cell))
+ {
+ convertToTextEntry();
+
+ QJsonObject cantorMetadata = JupyterUtils::getCantorMetadata(cell);
+ m_textItem->setHtml(cantorMetadata.value(QLatin1String("text_entry_content")).toString());
+ }
+}
+
+QJsonValue TextEntry::toJupyterJson()
+{
+ // Simple logic:
+ // If convertTarget is empty, it's user maded cell and we convert it to a markdown
+ // If convertTarget setted, it's raw cell from Jupyter and we convert it to Jupyter cell
+
+ QTextDocument* doc = m_textItem->document()->clone();
+ QTextCursor cursor = doc->find(QString(QChar::ObjectReplacementCharacter));
+ while(!cursor.isNull())
+ {
+ QTextCharFormat format = cursor.charFormat();
+ if (format.hasProperty(Cantor::EpsRenderer::CantorFormula))
+ {
+ showLatexCode(cursor);
+ }
+
+ cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter), cursor);
+ }
+
+ QJsonObject metadata(jupyterMetadata());
+
+ QString entryData;
+ QString entryType;
+
+ if (!m_rawCell)
+ {
+ entryType = QLatin1String("markdown");
+
+ // Add raw text of entry to metadata, for situation when
+ // Cantor opens .ipynb converted from our .cws format
+ QJsonObject cantorMetadata;
+
+ if (Settings::storeTextEntryFormatting())
+ {
+ entryData = doc->toHtml();
+
+ // Remove DOCTYPE from html
+ entryData.remove(QRegExp(QLatin1String("<!DOCTYPE[^>]*>\\n")));
+
+ cantorMetadata.insert(QLatin1String("text_entry_content"), entryData);
+ }
+ else
+ entryData = doc->toPlainText();
+
+ metadata.insert(JupyterUtils::cantorMetadataKey, cantorMetadata);
+
+ // Replace our $$ formulas to $
+ entryData.replace(QLatin1String("$$"), QLatin1String("$"));
+
+ }
+ else
+ {
+ entryType = QLatin1String("raw");
+ metadata.insert(QLatin1String("format"), m_convertTarget);
+ entryData = doc->toPlainText();
+ }
+
+ QJsonObject entry;
+ entry.insert(QLatin1String("cell_type"), entryType);
+ entry.insert(QLatin1String("metadata"), metadata);
+ JupyterUtils::setSource(entry, entryData);
+
+ return entry;
+}
+
QDomElement TextEntry::toXml(QDomDocument& doc, KZip* archive)
{
Q_UNUSED(archive);
QScopedPointer<QTextDocument> document(m_textItem->document()->clone());
//make sure that the latex code is shown instead of the rendered formulas
QTextCursor cursor = document->find(QString(QChar::ObjectReplacementCharacter));
while(!cursor.isNull())
{
QTextCharFormat format = cursor.charFormat();
if (format.hasProperty(Cantor::EpsRenderer::CantorFormula))
showLatexCode(cursor);
cursor = document->find(QString(QChar::ObjectReplacementCharacter), cursor);
}
const QString& html = document->toHtml();
qDebug() << html;
QDomElement el = doc.createElement(QLatin1String("Text"));
QDomDocument myDoc = QDomDocument();
myDoc.setContent(html);
el.appendChild(myDoc.documentElement().firstChildElement(QLatin1String("body")));
+ if (m_rawCell)
+ el.setAttribute(QLatin1String("convertTarget"), m_convertTarget);
+
return el;
}
QString TextEntry::toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)
{
Q_UNUSED(commandSep);
if (commentStartingSeq.isEmpty())
return QString();
/*
// would this be plain enough?
QTextCursor cursor = m_textItem->textCursor();
cursor.movePosition(QTextCursor::Start);
cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
QString text = m_textItem->resolveImages(cursor);
text.replace(QChar::ParagraphSeparator, '\n');
text.replace(QChar::LineSeparator, '\n');
*/
QString text = m_textItem->toPlainText();
if (!commentEndingSeq.isEmpty())
return commentStartingSeq + text + commentEndingSeq + QLatin1String("\n");
return commentStartingSeq + text.replace(QLatin1String("\n"), QLatin1String("\n") + commentStartingSeq) + QLatin1String("\n");
}
void TextEntry::interruptEvaluation()
{
}
bool TextEntry::evaluate(EvaluationOption evalOp)
{
- QTextCursor cursor = findLatexCode();
- while (!cursor.isNull())
+ int i = 0;
+ if (worksheet()->embeddedMathEnabled() && !m_rawCell)
{
- QString latexCode = cursor.selectedText();
- qDebug()<<"found latex: "<<latexCode;
-
- latexCode.remove(0, 2);
- latexCode.remove(latexCode.length() - 2, 2);
- latexCode.replace(QChar::ParagraphSeparator, QLatin1Char('\n')); //Replace the U+2029 paragraph break by a Normal Newline
- latexCode.replace(QChar::LineSeparator, QLatin1Char('\n')); //Replace the line break by a Normal Newline
-
-
- Cantor::LatexRenderer* renderer=new Cantor::LatexRenderer(this);
- renderer->setLatexCode(latexCode);
- renderer->setEquationOnly(true);
- renderer->setEquationType(Cantor::LatexRenderer::InlineEquation);
- renderer->setMethod(Cantor::LatexRenderer::LatexMethod);
+ // Render math in $$...$$ via Latex
+ QTextCursor cursor = findLatexCode();
+ while (!cursor.isNull())
+ {
+ QString latexCode = cursor.selectedText();
+ qDebug()<<"found latex: " << latexCode;
- renderer->renderBlocking();
+ latexCode.remove(0, 2);
+ latexCode.remove(latexCode.length() - 2, 2);
+ latexCode.replace(QChar::ParagraphSeparator, QLatin1Char('\n'));
+ latexCode.replace(QChar::LineSeparator, QLatin1Char('\n'));
- bool success;
- QTextImageFormat formulaFormat;
- if (renderer->renderingSuccessful()) {
- Cantor::EpsRenderer* epsRend = worksheet()->epsRenderer();
- formulaFormat = epsRend->render(m_textItem->document(), renderer);
- success = !formulaFormat.name().isEmpty();
- } else {
- success = false;
- }
+ MathRenderer* renderer = worksheet()->mathRenderer();
+ renderer->renderExpression(++i, latexCode, Cantor::LatexRenderer::InlineEquation, this, SLOT(handleMathRender(QSharedPointer<MathRenderResult>)));
- qDebug()<<"rendering successful? "<<success;
- if (!success) {
cursor = findLatexCode(cursor);
- continue;
}
-
- formulaFormat.setProperty(Cantor::EpsRenderer::Delimiter, QLatin1String("$$"));
-
- cursor.insertText(QString(QChar::ObjectReplacementCharacter), formulaFormat);
- delete renderer;
-
- cursor = findLatexCode(cursor);
}
evaluateNext(evalOp);
return true;
}
void TextEntry::updateEntry()
{
qDebug() << "update Entry";
QTextCursor cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter));
while(!cursor.isNull())
{
QTextImageFormat format=cursor.charFormat().toImageFormat();
- if (format.hasProperty(Cantor::EpsRenderer::CantorFormula))
- {
- qDebug() << "found a formula... rendering the eps...";
- const QUrl& url=QUrl::fromLocalFile(format.property(Cantor::EpsRenderer::ImagePath).toString());
- QSizeF s = worksheet()->epsRenderer()->renderToResource(m_textItem->document(), url, QUrl(format.name()));
- qDebug() << "rendering successful? " << s.isValid();
- //cursor.deletePreviousChar();
- //cursor.insertText(QString(QChar::ObjectReplacementCharacter), format);
- }
+ if (format.hasProperty(Cantor::EpsRenderer::CantorFormula))
+ worksheet()->mathRenderer()->rerender(m_textItem->document(), format);
cursor = m_textItem->document()->find(QString(QChar::ObjectReplacementCharacter), cursor);
}
}
void TextEntry::resolveImagesAtCursor()
{
QTextCursor cursor = m_textItem->textCursor();
if (!cursor.hasSelection())
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor);
cursor.insertText(m_textItem->resolveImages(cursor));
}
QTextCursor TextEntry::findLatexCode(const QTextCursor& cursor) const
{
QTextDocument *doc = m_textItem->document();
QTextCursor startCursor;
if (cursor.isNull())
startCursor = doc->find(QLatin1String("$$"));
else
startCursor = doc->find(QLatin1String("$$"), cursor);
if (startCursor.isNull())
return startCursor;
const QTextCursor endCursor = doc->find(QLatin1String("$$"), startCursor);
if (endCursor.isNull())
return endCursor;
startCursor.setPosition(startCursor.selectionStart());
startCursor.setPosition(endCursor.position(), QTextCursor::KeepAnchor);
return startCursor;
}
QString TextEntry::showLatexCode(QTextCursor& cursor)
{
QString latexCode = cursor.charFormat().property(Cantor::EpsRenderer::Code).toString();
cursor.deletePreviousChar();
latexCode = QLatin1String("$$") + latexCode + QLatin1String("$$");
cursor.insertText(latexCode);
return latexCode;
}
int TextEntry::searchText(const QString& text, const QString& pattern,
QTextDocument::FindFlags qt_flags)
{
Qt::CaseSensitivity caseSensitivity;
if (qt_flags & QTextDocument::FindCaseSensitively)
caseSensitivity = Qt::CaseSensitive;
else
caseSensitivity = Qt::CaseInsensitive;
int position;
if (qt_flags & QTextDocument::FindBackward)
position = text.lastIndexOf(pattern, -1, caseSensitivity);
else
position = text.indexOf(pattern, 0, caseSensitivity);
return position;
}
WorksheetCursor TextEntry::search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos)
{
if (!(flags & WorksheetEntry::SearchText) ||
(pos.isValid() && pos.entry() != this))
return WorksheetCursor();
QTextCursor textCursor = m_textItem->search(pattern, qt_flags, pos);
int position = 0;
QTextCursor latexCursor;
QString latex;
if (flags & WorksheetEntry::SearchLaTeX) {
const QString repl = QString(QChar::ObjectReplacementCharacter);
latexCursor = m_textItem->search(repl, qt_flags, pos);
while (!latexCursor.isNull()) {
latex = m_textItem->resolveImages(latexCursor);
position = searchText(latex, pattern, qt_flags);
if (position >= 0) {
break;
}
WorksheetCursor c(this, m_textItem, latexCursor);
latexCursor = m_textItem->search(repl, qt_flags, c);
}
}
if (latexCursor.isNull()) {
if (textCursor.isNull())
return WorksheetCursor();
else
return WorksheetCursor(this, m_textItem, textCursor);
} else {
if (textCursor.isNull() || latexCursor < textCursor) {
int start = latexCursor.selectionStart();
latexCursor.insertText(latex);
QTextCursor c = m_textItem->textCursor();
c.setPosition(start + position);
c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor,
pattern.length());
return WorksheetCursor(this, m_textItem, c);
} else {
return WorksheetCursor(this, m_textItem, textCursor);
}
}
}
void TextEntry::layOutForWidth(qreal w, bool force)
{
if (size().width() == w && !force)
return;
m_textItem->setGeometry(0, 0, w);
setSize(QSizeF(m_textItem->width(), m_textItem->height() + VerticalMargin));
}
bool TextEntry::wantToEvaluate()
{
return !findLatexCode().isNull();
}
+
+bool TextEntry::isConvertableToTextEntry(const QJsonObject& cell)
+{
+ if (!JupyterUtils::isMarkdownCell(cell))
+ return false;
+
+ QJsonObject cantorMetadata = JupyterUtils::getCantorMetadata(cell);
+ const QJsonValue& textContentValue = cantorMetadata.value(QLatin1String("text_entry_content"));
+
+ if (!textContentValue.isString())
+ return false;
+
+ const QString& textContent = textContentValue.toString();
+ const QString& source = JupyterUtils::getSource(cell);
+
+ return textContent == source;
+}
+
+
+void TextEntry::handleMathRender(QSharedPointer<MathRenderResult> result)
+{
+ if (!result->successfull)
+ {
+ qDebug() << "MarkdownEntry: math render failed with message" << result->errorMessage;
+ return;
+ }
+
+ const QString& code = result->renderedMath.property(Cantor::EpsRenderer::Code).toString();
+ const QString& delimiter = QLatin1String("$$");
+ QTextCursor cursor = m_textItem->document()->find(delimiter + code + delimiter);
+ if (!cursor.isNull())
+ {
+ m_textItem->document()->addResource(QTextDocument::ImageResource, result->uniqueUrl, QVariant(result->image));
+ result->renderedMath.setProperty(Cantor::EpsRenderer::Delimiter, QLatin1String("$$"));
+ cursor.insertText(QString(QChar::ObjectReplacementCharacter), result->renderedMath);
+ }
+}
+
+void TextEntry::convertToRawCell()
+{
+ m_rawCell = true;
+ m_targetMenu->actions().at(0)->setChecked(true);
+
+ KColorScheme scheme = KColorScheme(QPalette::Normal, KColorScheme::View);
+ m_textItem->setBackgroundColor(scheme.background(KColorScheme::AlternateBackground).color());
+
+ // Resolve all latex inserts
+ QTextCursor cursor(m_textItem->document());
+ cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
+ cursor.insertText(m_textItem->resolveImages(cursor));
+}
+
+void TextEntry::convertToTextEntry()
+{
+ m_rawCell = false;
+ m_convertTarget.clear();
+
+ KColorScheme scheme = KColorScheme(QPalette::Normal, KColorScheme::View);
+ m_textItem->setBackgroundColor(scheme.background(KColorScheme::NormalBackground).color());
+}
+
+void TextEntry::convertTargetChanged(QAction* action)
+{
+ int index = standartRawCellTargetNames.indexOf(action->text());
+ if (index != -1)
+ {
+ m_convertTarget = standartRawCellTargetMimes[index];
+ }
+ else if (action == m_ownTarget)
+ {
+ bool ok;
+ const QString& target = QInputDialog::getText(worksheet()->worksheetView(), i18n("Cantor"), i18n("Target mimetype:"), QLineEdit::Normal, QString(), &ok);
+ if (ok && !target.isEmpty())
+ {
+ addNewTarget(target);
+ m_convertTarget = target;
+ }
+ }
+ else
+ {
+ m_convertTarget = action->text();
+ }
+}
+
+void TextEntry::addNewTarget(const QString& target)
+{
+ QAction* action = new QAction(target, m_targetActionGroup);
+ action->setCheckable(true);
+ action->setChecked(true);
+ m_targetMenu->insertAction(m_targetMenu->actions().last(), action);
+}
diff --git a/src/textentry.h b/src/textentry.h
index 8b31a07a..7763e8f9 100644
--- a/src/textentry.h
+++ b/src/textentry.h
@@ -1,90 +1,106 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef TEXTENTRY_H
#define TEXTENTRY_H
#include <QString>
#include <QDomElement>
#include <QDomDocument>
#include <QIODevice>
#include <KZip>
#include <QTextCursor>
#include <KArchive>
-
#include "worksheetentry.h"
#include "worksheettextitem.h"
+#include "mathrendertask.h"
class TextEntry : public WorksheetEntry
{
Q_OBJECT
public:
explicit TextEntry(Worksheet* worksheet);
- ~TextEntry() override = default;
+ ~TextEntry() override;
enum {Type = UserType + 1};
int type() const override;
bool isEmpty() override;
bool acceptRichText() override;
bool focusEntry(int pos = WorksheetTextItem::TopLeft, qreal xCoord=0) override;
// do we need/get this?
//bool worksheetContextMenuEvent(...);
//void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
void setContent(const QString& content) override;
void setContent(const QDomElement& content, const KZip& file) override;
+ void setContentFromJupyter(const QJsonObject& cell) override;
+ static bool isConvertableToTextEntry(const QJsonObject& cell);
QDomElement toXml(QDomDocument& doc, KZip* archive) override;
+ QJsonValue toJupyterJson() override;
QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq) override;
void interruptEvaluation() override;
void layOutForWidth(qreal w, bool force = false) override;
int searchText(const QString& text, const QString& pattern,
QTextDocument::FindFlags qt_flags);
WorksheetCursor search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos = WorksheetCursor()) override;
public Q_SLOTS:
bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) override;
void resolveImagesAtCursor();
void updateEntry() override;
void populateMenu(QMenu* menu, QPointF pos) override;
+ void convertToRawCell();
+ void convertToTextEntry();
+ void convertTargetChanged(QAction* action);
protected:
bool wantToEvaluate() override;
+ protected Q_SLOTS:
+ void handleMathRender(QSharedPointer<MathRenderResult> result);
+
private:
QTextCursor findLatexCode(const QTextCursor& cursor = QTextCursor()) const;
QString showLatexCode(QTextCursor& cursor);
+ void addNewTarget(const QString& target);
private:
+ bool m_rawCell;
+ QString m_convertTarget;
+ QActionGroup* m_targetActionGroup;
+ QAction* m_ownTarget;
+ QMenu* m_targetMenu;
+
WorksheetTextItem* m_textItem;
};
#endif //TEXTENTRY_H
diff --git a/src/textresultitem.cpp b/src/textresultitem.cpp
index ffb0ebff..c858652c 100644
--- a/src/textresultitem.cpp
+++ b/src/textresultitem.cpp
@@ -1,160 +1,203 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "textresultitem.h"
#include "commandentry.h"
#include "lib/result.h"
#include "lib/textresult.h"
#include "lib/latexresult.h"
#include "lib/epsrenderer.h"
+#include "lib/mimeresult.h"
+#include "lib/htmlresult.h"
#include <QDebug>
#include <QFileDialog>
#include <QTextCursor>
#include <KStandardAction>
#include <KLocalizedString>
TextResultItem::TextResultItem(QGraphicsObject* parent, Cantor::Result* result)
: WorksheetTextItem(parent), ResultItem(result)
{
setTextInteractionFlags(Qt::TextSelectableByMouse);
update();
}
double TextResultItem::setGeometry(double x, double y, double w)
{
return WorksheetTextItem::setGeometry(x, y, w);
}
void TextResultItem::populateMenu(QMenu* menu, QPointF pos)
{
QAction * copy = KStandardAction::copy(this, SLOT(copy()), menu);
if (!textCursor().hasSelection())
copy->setEnabled(false);
menu->addAction(copy);
ResultItem::addCommonActions(this, menu);
Cantor::Result* res = result();
if (res->type() == Cantor::LatexResult::Type) {
QAction* showCodeAction = nullptr;
Cantor::LatexResult* lres = dynamic_cast<Cantor::LatexResult*>(res);
if (lres->isCodeShown())
showCodeAction = menu->addAction(i18n("Show Rendered"));
else
showCodeAction = menu->addAction(i18n("Show Code"));
connect(showCodeAction, &QAction::triggered, this, &TextResultItem::toggleLatexCode);
+ } else if (res->type() == Cantor::HtmlResult::Type) {
+ Cantor::HtmlResult* hres = static_cast<Cantor::HtmlResult*>(res);
+ switch (hres->format())
+ {
+ case Cantor::HtmlResult::Html:
+ connect(menu->addAction(i18n("Show Html Code")), &QAction::triggered, this, &TextResultItem::showHtmlSource);
+ if (!hres->plain().isEmpty())
+ connect(menu->addAction(i18n("Show Plain Alternative")), &QAction::triggered, this, &TextResultItem::showPlain);
+ break;
+
+ case Cantor::HtmlResult::HtmlSource:
+ connect(menu->addAction(i18n("Show Html")), &QAction::triggered, this, &TextResultItem::showHtml);
+ if (!hres->plain().isEmpty())
+ connect(menu->addAction(i18n("Show Plain Alternative")), &QAction::triggered, this, &TextResultItem::showPlain);
+ break;
+
+ case Cantor::HtmlResult::PlainAlternative:
+ connect(menu->addAction(i18n("Show Html")), &QAction::triggered, this, &TextResultItem::showHtml);
+ connect(menu->addAction(i18n("Show Html Code")), &QAction::triggered, this, &TextResultItem::showHtmlSource);
+ break;
+
+ }
}
menu->addSeparator();
qDebug() << "populate Menu";
emit menuCreated(menu, mapToParent(pos));
}
void TextResultItem::update()
{
- Q_ASSERT(m_result->type() == Cantor::TextResult::Type || m_result->type() == Cantor::LatexResult::Type);
+ Q_ASSERT(
+ m_result->type() == Cantor::TextResult::Type
+ || m_result->type() == Cantor::LatexResult::Type
+ || m_result->type() == Cantor::MimeResult::Type
+ || m_result->type() == Cantor::HtmlResult::Type
+ );
switch(m_result->type()) {
case Cantor::TextResult::Type:
- {
- QTextCursor cursor = textCursor();
- cursor.movePosition(QTextCursor::Start);
- cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
- QString html = m_result->toHtml();
- if (html.isEmpty())
- cursor.removeSelectedText();
- else
- cursor.insertHtml(html);
- }
+ case Cantor::MimeResult::Type:
+ case Cantor::HtmlResult::Type:
+ setHtml(m_result->toHtml());
break;
case Cantor::LatexResult::Type:
setLatex(dynamic_cast<Cantor::LatexResult*>(m_result));
break;
default:
break;
}
}
void TextResultItem::setLatex(Cantor::LatexResult* result)
{
QTextCursor cursor = textCursor();
cursor.movePosition(QTextCursor::Start);
cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
QString latex = result->toLatex().trimmed();
if (latex.startsWith(QLatin1String("\\begin{eqnarray*}")) &&
latex.endsWith(QLatin1String("\\end{eqnarray*}"))) {
latex = latex.mid(17);
latex = latex.left(latex.size() - 15);
}
if (result->isCodeShown()) {
if (latex.isEmpty())
cursor.removeSelectedText();
else
cursor.insertText(latex);
} else {
QTextImageFormat format;
Cantor::EpsRenderer* renderer = qobject_cast<Worksheet*>(scene())->epsRenderer();;
format = renderer->render(cursor.document(),
result->data().toUrl());
format.setProperty(Cantor::EpsRenderer::CantorFormula,
Cantor::EpsRenderer::LatexFormula);
format.setProperty(Cantor::EpsRenderer::Code, latex);
format.setProperty(Cantor::EpsRenderer::Delimiter, QLatin1String("$$"));
if(format.isValid())
cursor.insertText(QString(QChar::ObjectReplacementCharacter), format);
else
cursor.insertText(i18n("Cannot render Eps file. You may need additional packages"));
}
}
double TextResultItem::width() const
{
return WorksheetTextItem::width();
}
double TextResultItem::height() const
{
return WorksheetTextItem::height();
}
void TextResultItem::toggleLatexCode()
{
Cantor::LatexResult* lr = dynamic_cast<Cantor::LatexResult*>(result());
if(lr->isCodeShown())
lr->showRendered();
else
lr->showCode();
parentEntry()->updateEntry();
}
+void TextResultItem::showHtml()
+{
+ Cantor::HtmlResult* hr = static_cast<Cantor::HtmlResult*>(result());
+ hr->setFormat(Cantor::HtmlResult::Html);
+ parentEntry()->updateEntry();
+}
+
+void TextResultItem::showHtmlSource()
+{
+ Cantor::HtmlResult* hr = static_cast<Cantor::HtmlResult*>(result());
+ hr->setFormat(Cantor::HtmlResult::HtmlSource);
+ parentEntry()->updateEntry();
+}
+
+void TextResultItem::showPlain()
+{
+ Cantor::HtmlResult* hr = static_cast<Cantor::HtmlResult*>(result());
+ hr->setFormat(Cantor::HtmlResult::PlainAlternative);
+ parentEntry()->updateEntry();
+}
+
void TextResultItem::saveResult()
{
Cantor::Result* res = result();
const QString& filename = QFileDialog::getSaveFileName(worksheet()->worksheetView(), i18n("Save result"), QString(), res->mimeType());
qDebug() << "saving result to " << filename;
res->save(filename);
}
void TextResultItem::deleteLater()
{
WorksheetTextItem::deleteLater();
}
diff --git a/src/textresultitem.h b/src/textresultitem.h
index f29aa560..0ca77436 100644
--- a/src/textresultitem.h
+++ b/src/textresultitem.h
@@ -1,55 +1,58 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef TEXTRESULTITEM_H
#define TEXTRESULTITEM_H
#include "resultitem.h"
#include "worksheettextitem.h"
#include "worksheetentry.h"
#include "lib/latexresult.h"
class TextResultItem : public WorksheetTextItem, public ResultItem
{
Q_OBJECT
public:
explicit TextResultItem(QGraphicsObject* parent, Cantor::Result* result);
~TextResultItem() override = default;
using WorksheetTextItem::setGeometry;
double setGeometry(double x, double y, double w) override;
void populateMenu(QMenu* menu, QPointF pos) override;
void update() override;
void setLatex(Cantor::LatexResult* result);
double width() const override;
double height() const override;
void deleteLater() override;
protected Q_SLOTS:
void toggleLatexCode();
+ void showHtml();
+ void showHtmlSource();
+ void showPlain();
void saveResult();
};
#endif //TEXTRESULTITEM_H
diff --git a/src/worksheet.cpp b/src/worksheet.cpp
index c2e83fd2..2afe3bea 100644
--- a/src/worksheet.cpp
+++ b/src/worksheet.cpp
@@ -1,1958 +1,2254 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "worksheet.h"
+#include <QtGlobal>
+#include <QApplication>
#include <QBuffer>
#include <QDebug>
#include <QDrag>
#include <QGraphicsWidget>
#include <QPrinter>
#include <QTimer>
#include <QXmlQuery>
+#include <QJsonArray>
+#include <QJsonDocument>
#include <KMessageBox>
#include <KActionCollection>
#include <KFontAction>
#include <KFontSizeAction>
#include <KToggleAction>
+#include <KLocalizedString>
#include "settings.h"
#include "commandentry.h"
#include "textentry.h"
#include "markdownentry.h"
#include "latexentry.h"
#include "imageentry.h"
#include "pagebreakentry.h"
#include "placeholderentry.h"
+#include "jupyterutils.h"
#include "lib/backend.h"
#include "lib/extension.h"
#include "lib/helpresult.h"
#include "lib/session.h"
#include "lib/defaulthighlighter.h"
+#include "lib/backend.h"
#include <config-cantor.h>
const double Worksheet::LeftMargin = 4;
const double Worksheet::RightMargin = 4;
const double Worksheet::TopMargin = 12;
const double Worksheet::EntryCursorLength = 30;
const double Worksheet::EntryCursorWidth = 2;
Worksheet::Worksheet(Cantor::Backend* backend, QWidget* parent)
: QGraphicsScene(parent)
{
m_session = backend->createSession();
m_highlighter = nullptr;
m_firstEntry = nullptr;
m_lastEntry = nullptr;
m_lastFocusedTextItem = nullptr;
m_dragEntry = nullptr;
m_placeholderEntry = nullptr;
m_viewWidth = 0;
m_protrusion = 0;
m_dragScrollTimer = nullptr;
m_choosenCursorEntry = nullptr;
m_isCursorEntryAfterLastEntry = false;
m_entryCursorItem = addLine(0,0,0,0);
const QColor& color = (palette().color(QPalette::Base).lightness() < 128) ? Qt::white : Qt::black;
QPen pen(color);
pen.setWidth(EntryCursorWidth);
m_entryCursorItem->setPen(pen);
m_entryCursorItem->hide();
m_cursorItemTimer = new QTimer(this);
connect(m_cursorItemTimer, &QTimer::timeout, this, &Worksheet::animateEntryCursor);
m_cursorItemTimer->start(500);
m_isPrinting = false;
m_loginDone = false;
m_readOnly = false;
m_isLoadingFromFile = false;
+ m_jupyterMetadata = nullptr;
+
enableHighlighting(Settings::self()->highlightDefault());
enableCompletion(Settings::self()->completionDefault());
enableExpressionNumbering(Settings::self()->expressionNumberingDefault());
enableAnimations(Settings::self()->animationDefault());
+ enableEmbeddedMath(Settings::self()->embeddedMathDefault());
}
Worksheet::~Worksheet()
{
// This is necessary, because a SeachBar might access firstEntry()
// while the scene is deleted. Maybe there is a better solution to
// this problem, but I can't seem to find it.
m_firstEntry = nullptr;
if (m_loginDone)
m_session->logout();
if (m_session)
{
disconnect(m_session, 0, 0, 0);
if (m_session->status() != Cantor::Session::Disable)
m_session->logout();
m_session->deleteLater();
m_session = nullptr;
}
+ if (m_jupyterMetadata)
+ delete m_jupyterMetadata;
}
void Worksheet::loginToSession()
{
m_session->login();
#ifdef WITH_EPS
session()->setTypesettingEnabled(Settings::self()->typesetDefault());
#else
session()->setTypesettingEnabled(false);
#endif
m_loginDone = true;
}
void Worksheet::print(QPrinter* printer)
{
m_epsRenderer.useHighResolution(true);
+ m_mathRenderer.useHighResolution(true);
m_isPrinting = true;
QRect pageRect = printer->pageRect();
qreal scale = 1; // todo: find good scale for page size
// todo: use epsRenderer()->scale() for printing ?
const qreal width = pageRect.width()/scale;
const qreal height = pageRect.height()/scale;
setViewSize(width, height, scale, true);
QPainter painter(printer);
painter.scale(scale, scale);
painter.setRenderHint(QPainter::Antialiasing);
WorksheetEntry* entry = firstEntry();
qreal y = TopMargin;
while (entry) {
qreal h = 0;
do {
if (entry->type() == PageBreakEntry::Type) {
entry = entry->next();
break;
}
h += entry->size().height();
entry = entry->next();
} while (entry && h + entry->size().height() <= height);
render(&painter, QRectF(0, 0, width, height),
QRectF(0, y, width, h));
y += h;
if (entry)
printer->newPage();
}
//render(&painter);
painter.end();
m_isPrinting = false;
m_epsRenderer.useHighResolution(false);
+ m_mathRenderer.useHighResolution(false);
m_epsRenderer.setScale(-1); // force update in next call to setViewSize,
worksheetView()->updateSceneSize(); // ... which happens in here
}
bool Worksheet::isPrinting()
{
return m_isPrinting;
}
void Worksheet::setViewSize(qreal w, qreal h, qreal s, bool forceUpdate)
{
Q_UNUSED(h);
m_viewWidth = w;
if (s != m_epsRenderer.scale() || forceUpdate) {
m_epsRenderer.setScale(s);
+ m_mathRenderer.setScale(s);
for (WorksheetEntry *entry = firstEntry(); entry; entry = entry->next())
entry->updateEntry();
}
updateLayout();
}
void Worksheet::updateLayout()
{
bool cursorRectVisible = false;
bool atEnd = worksheetView()->isAtEnd();
if (currentTextItem()) {
QRectF cursorRect = currentTextItem()->sceneCursorRect();
cursorRectVisible = worksheetView()->isVisible(cursorRect);
}
const qreal w = m_viewWidth - LeftMargin - RightMargin;
qreal y = TopMargin;
const qreal x = LeftMargin;
for (WorksheetEntry *entry = firstEntry(); entry; entry = entry->next())
y += entry->setGeometry(x, y, w);
setSceneRect(QRectF(0, 0, m_viewWidth + m_protrusion, y));
if (cursorRectVisible)
makeVisible(worksheetCursor());
else if (atEnd)
worksheetView()->scrollToEnd();
drawEntryCursor();
}
void Worksheet::updateEntrySize(WorksheetEntry* entry)
{
bool cursorRectVisible = false;
bool atEnd = worksheetView()->isAtEnd();
if (currentTextItem()) {
QRectF cursorRect = currentTextItem()->sceneCursorRect();
cursorRectVisible = worksheetView()->isVisible(cursorRect);
}
qreal y = entry->y() + entry->size().height();
for (entry = entry->next(); entry; entry = entry->next()) {
entry->setY(y);
y += entry->size().height();
}
setSceneRect(QRectF(0, 0, m_viewWidth + m_protrusion, y));
if (cursorRectVisible)
makeVisible(worksheetCursor());
else if (atEnd)
worksheetView()->scrollToEnd();
drawEntryCursor();
}
void Worksheet::addProtrusion(qreal width)
{
if (m_itemProtrusions.contains(width))
++m_itemProtrusions[width];
else
m_itemProtrusions.insert(width, 1);
if (width > m_protrusion) {
m_protrusion = width;
- qreal y = lastEntry()->size().height() + lastEntry()->y();
+ qreal y = lastEntry() ? lastEntry()->size().height() + lastEntry()->y() : 0;
setSceneRect(QRectF(0, 0, m_viewWidth + m_protrusion, y));
}
}
void Worksheet::updateProtrusion(qreal oldWidth, qreal newWidth)
{
removeProtrusion(oldWidth);
addProtrusion(newWidth);
}
void Worksheet::removeProtrusion(qreal width)
{
if (--m_itemProtrusions[width] == 0) {
m_itemProtrusions.remove(width);
if (width == m_protrusion) {
qreal max = -1;
for (qreal p : m_itemProtrusions.keys()) {
if (p > max)
max = p;
}
m_protrusion = max;
qreal y = lastEntry()->size().height() + lastEntry()->y();
setSceneRect(QRectF(0, 0, m_viewWidth + m_protrusion, y));
}
}
}
bool Worksheet::isEmpty()
{
return !m_firstEntry;
}
bool Worksheet::isLoadingFromFile()
{
return m_isLoadingFromFile;
}
void Worksheet::makeVisible(WorksheetEntry* entry)
{
QRectF r = entry->boundingRect();
r = entry->mapRectToScene(r);
r.adjust(0, -10, 0, 10);
worksheetView()->makeVisible(r);
}
void Worksheet::makeVisible(const WorksheetCursor& cursor)
{
if (cursor.textCursor().isNull()) {
if (cursor.entry())
makeVisible(cursor.entry());
return;
}
QRectF r = cursor.textItem()->sceneCursorRect(cursor.textCursor());
QRectF er = cursor.entry()->boundingRect();
er = cursor.entry()->mapRectToScene(er);
er.adjust(0, -10, 0, 10);
r.adjust(0, qMax(qreal(-100.0), er.top() - r.top()),
0, qMin(qreal(100.0), er.bottom() - r.bottom()));
worksheetView()->makeVisible(r);
}
WorksheetView* Worksheet::worksheetView()
{
return qobject_cast<WorksheetView*>(views().first());
}
void Worksheet::setModified()
{
- emit modified();
+ if (!m_isLoadingFromFile)
+ emit modified();
}
WorksheetCursor Worksheet::worksheetCursor()
{
WorksheetEntry* entry = currentEntry();
WorksheetTextItem* item = currentTextItem();
if (!entry || !item)
return WorksheetCursor();
return WorksheetCursor(entry, item, item->textCursor());
}
void Worksheet::setWorksheetCursor(const WorksheetCursor& cursor)
{
if (!cursor.isValid())
return;
if (m_lastFocusedTextItem)
m_lastFocusedTextItem->clearSelection();
m_lastFocusedTextItem = cursor.textItem();
cursor.textItem()->setTextCursor(cursor.textCursor());
}
WorksheetEntry* Worksheet::currentEntry()
{
QGraphicsItem* item = focusItem();
// Entry cursor activate
if (m_choosenCursorEntry || m_isCursorEntryAfterLastEntry)
return nullptr;
if (!item /*&& !hasFocus()*/)
item = m_lastFocusedTextItem;
/*else
m_focusItem = item;*/
while (item && (item->type() < QGraphicsItem::UserType ||
item->type() >= QGraphicsItem::UserType + 100))
item = item->parentItem();
if (item) {
WorksheetEntry* entry = qobject_cast<WorksheetEntry*>(item->toGraphicsObject());
if (entry && entry->aboutToBeRemoved()) {
if (entry->isAncestorOf(m_lastFocusedTextItem))
m_lastFocusedTextItem = nullptr;
return nullptr;
}
return entry;
}
return nullptr;
}
WorksheetEntry* Worksheet::firstEntry()
{
return m_firstEntry;
}
WorksheetEntry* Worksheet::lastEntry()
{
return m_lastEntry;
}
void Worksheet::setFirstEntry(WorksheetEntry* entry)
{
if (m_firstEntry)
disconnect(m_firstEntry, SIGNAL(aboutToBeDeleted()),
this, SLOT(invalidateFirstEntry()));
m_firstEntry = entry;
if (m_firstEntry)
connect(m_firstEntry, SIGNAL(aboutToBeDeleted()),
this, SLOT(invalidateFirstEntry()), Qt::DirectConnection);
}
void Worksheet::setLastEntry(WorksheetEntry* entry)
{
if (m_lastEntry)
disconnect(m_lastEntry, SIGNAL(aboutToBeDeleted()),
this, SLOT(invalidateLastEntry()));
m_lastEntry = entry;
if (m_lastEntry)
connect(m_lastEntry, SIGNAL(aboutToBeDeleted()),
this, SLOT(invalidateLastEntry()), Qt::DirectConnection);
}
void Worksheet::invalidateFirstEntry()
{
if (m_firstEntry)
setFirstEntry(m_firstEntry->next());
}
void Worksheet::invalidateLastEntry()
{
if (m_lastEntry)
setLastEntry(m_lastEntry->previous());
}
WorksheetEntry* Worksheet::entryAt(qreal x, qreal y)
{
QGraphicsItem* item = itemAt(x, y, QTransform());
while (item && (item->type() <= QGraphicsItem::UserType ||
item->type() >= QGraphicsItem::UserType + 100))
item = item->parentItem();
if (item)
return qobject_cast<WorksheetEntry*>(item->toGraphicsObject());
return nullptr;
}
WorksheetEntry* Worksheet::entryAt(QPointF p)
{
return entryAt(p.x(), p.y());
}
void Worksheet::focusEntry(WorksheetEntry *entry)
{
if (!entry)
return;
entry->focusEntry();
resetEntryCursor();
//bool rt = entry->acceptRichText();
//setActionsEnabled(rt);
//setAcceptRichText(rt);
//ensureCursorVisible();
}
void Worksheet::startDrag(WorksheetEntry* entry, QDrag* drag)
{
if (m_readOnly)
return;
resetEntryCursor();
m_dragEntry = entry;
WorksheetEntry* prev = entry->previous();
WorksheetEntry* next = entry->next();
m_placeholderEntry = new PlaceHolderEntry(this, entry->size());
m_placeholderEntry->setPrevious(prev);
m_placeholderEntry->setNext(next);
if (prev)
prev->setNext(m_placeholderEntry);
else
setFirstEntry(m_placeholderEntry);
if (next)
next->setPrevious(m_placeholderEntry);
else
setLastEntry(m_placeholderEntry);
m_dragEntry->hide();
Qt::DropAction action = drag->exec();
qDebug() << action;
if (action == Qt::MoveAction && m_placeholderEntry) {
qDebug() << "insert in new position";
prev = m_placeholderEntry->previous();
next = m_placeholderEntry->next();
}
m_dragEntry->setPrevious(prev);
m_dragEntry->setNext(next);
if (prev)
prev->setNext(m_dragEntry);
else
setFirstEntry(m_dragEntry);
if (next)
next->setPrevious(m_dragEntry);
else
setLastEntry(m_dragEntry);
m_dragEntry->show();
m_dragEntry->focusEntry();
const QPointF scenePos = worksheetView()->sceneCursorPos();
if (entryAt(scenePos) != m_dragEntry)
m_dragEntry->hideActionBar();
updateLayout();
if (m_placeholderEntry) {
m_placeholderEntry->setPrevious(nullptr);
m_placeholderEntry->setNext(nullptr);
m_placeholderEntry->hide();
m_placeholderEntry->deleteLater();
m_placeholderEntry = nullptr;
}
m_dragEntry = nullptr;
}
void Worksheet::evaluate()
{
qDebug()<<"evaluate worksheet";
if (!m_loginDone && !m_readOnly)
loginToSession();
firstEntry()->evaluate(WorksheetEntry::EvaluateNext);
- emit modified();
+ setModified();
}
void Worksheet::evaluateCurrentEntry()
{
if (!m_loginDone && !m_readOnly)
loginToSession();
WorksheetEntry* entry = currentEntry();
if(!entry)
return;
entry->evaluateCurrentItem();
}
bool Worksheet::completionEnabled()
{
return m_completionEnabled;
}
void Worksheet::showCompletion()
{
WorksheetEntry* current = currentEntry();
if (current)
current->showCompletion();
}
WorksheetEntry* Worksheet::appendEntry(const int type, bool focus)
{
WorksheetEntry* entry = WorksheetEntry::create(type, this);
if (entry)
{
qDebug() << "Entry Appended";
entry->setPrevious(lastEntry());
if (lastEntry())
lastEntry()->setNext(entry);
if (!firstEntry())
setFirstEntry(entry);
setLastEntry(entry);
updateLayout();
if (focus)
{
makeVisible(entry);
focusEntry(entry);
}
- emit modified();
+ setModified();
}
return entry;
}
WorksheetEntry* Worksheet::appendCommandEntry()
{
return appendEntry(CommandEntry::Type);
}
WorksheetEntry* Worksheet::appendTextEntry()
{
return appendEntry(TextEntry::Type);
}
WorksheetEntry* Worksheet::appendMarkdownEntry()
{
return appendEntry(MarkdownEntry::Type);
}
WorksheetEntry* Worksheet::appendPageBreakEntry()
{
return appendEntry(PageBreakEntry::Type);
}
WorksheetEntry* Worksheet::appendImageEntry()
{
return appendEntry(ImageEntry::Type);
}
WorksheetEntry* Worksheet::appendLatexEntry()
{
return appendEntry(LatexEntry::Type);
}
void Worksheet::appendCommandEntry(const QString& text)
{
WorksheetEntry* entry = lastEntry();
if(!entry->isEmpty())
{
entry = appendCommandEntry();
}
if (entry)
{
focusEntry(entry);
entry->setContent(text);
evaluateCurrentEntry();
}
}
WorksheetEntry* Worksheet::insertEntry(const int type, WorksheetEntry* current)
{
if (!current)
current = currentEntry();
if (!current)
return appendEntry(type);
WorksheetEntry *next = current->next();
WorksheetEntry *entry = nullptr;
if (!next || next->type() != type || !next->isEmpty())
{
entry = WorksheetEntry::create(type, this);
entry->setPrevious(current);
entry->setNext(next);
current->setNext(entry);
if (next)
next->setPrevious(entry);
else
setLastEntry(entry);
updateLayout();
- emit modified();
+ setModified();
} else {
entry = next;
}
focusEntry(entry);
makeVisible(entry);
return entry;
}
WorksheetEntry* Worksheet::insertTextEntry(WorksheetEntry* current)
{
return insertEntry(TextEntry::Type, current);
}
WorksheetEntry* Worksheet::insertMarkdownEntry(WorksheetEntry* current)
{
return insertEntry(MarkdownEntry::Type, current);
}
WorksheetEntry* Worksheet::insertCommandEntry(WorksheetEntry* current)
{
return insertEntry(CommandEntry::Type, current);
}
WorksheetEntry* Worksheet::insertImageEntry(WorksheetEntry* current)
{
return insertEntry(ImageEntry::Type, current);
}
WorksheetEntry* Worksheet::insertPageBreakEntry(WorksheetEntry* current)
{
return insertEntry(PageBreakEntry::Type, current);
}
WorksheetEntry* Worksheet::insertLatexEntry(WorksheetEntry* current)
{
return insertEntry(LatexEntry::Type, current);
}
void Worksheet::insertCommandEntry(const QString& text)
{
WorksheetEntry* entry = insertCommandEntry();
if(entry&&!text.isNull())
{
entry->setContent(text);
evaluateCurrentEntry();
}
}
WorksheetEntry* Worksheet::insertEntryBefore(int type, WorksheetEntry* current)
{
if (!current)
current = currentEntry();
if (!current)
return nullptr;
WorksheetEntry *prev = current->previous();
WorksheetEntry *entry = nullptr;
if(!prev || prev->type() != type || !prev->isEmpty())
{
entry = WorksheetEntry::create(type, this);
entry->setNext(current);
entry->setPrevious(prev);
current->setPrevious(entry);
if (prev)
prev->setNext(entry);
else
setFirstEntry(entry);
updateLayout();
- emit modified();
+ setModified();
}
else
entry = prev;
focusEntry(entry);
return entry;
}
WorksheetEntry* Worksheet::insertTextEntryBefore(WorksheetEntry* current)
{
return insertEntryBefore(TextEntry::Type, current);
}
WorksheetEntry* Worksheet::insertMarkdownEntryBefore(WorksheetEntry* current)
{
return insertEntryBefore(MarkdownEntry::Type, current);
}
WorksheetEntry* Worksheet::insertCommandEntryBefore(WorksheetEntry* current)
{
return insertEntryBefore(CommandEntry::Type, current);
}
WorksheetEntry* Worksheet::insertPageBreakEntryBefore(WorksheetEntry* current)
{
return insertEntryBefore(PageBreakEntry::Type, current);
}
WorksheetEntry* Worksheet::insertImageEntryBefore(WorksheetEntry* current)
{
return insertEntryBefore(ImageEntry::Type, current);
}
WorksheetEntry* Worksheet::insertLatexEntryBefore(WorksheetEntry* current)
{
return insertEntryBefore(LatexEntry::Type, current);
}
void Worksheet::interrupt()
{
if (m_session->status() == Cantor::Session::Running)
{
m_session->interrupt();
emit updatePrompt();
}
}
void Worksheet::interruptCurrentEntryEvaluation()
{
currentEntry()->interruptEvaluation();
}
void Worksheet::highlightItem(WorksheetTextItem* item)
{
if (!m_highlighter)
return;
QTextDocument *oldDocument = m_highlighter->document();
QList<QList<QTextLayout::FormatRange> > formats;
if (oldDocument)
{
for (QTextBlock b = oldDocument->firstBlock();
b.isValid(); b = b.next())
{
formats.append(b.layout()->additionalFormats());
}
}
// Not every highlighter is a Cantor::DefaultHighligther (e.g. the
// highlighter for KAlgebra)
Cantor::DefaultHighlighter* hl = qobject_cast<Cantor::DefaultHighlighter*>(m_highlighter);
if (hl) {
hl->setTextItem(item);
} else {
m_highlighter->setDocument(item->document());
}
if (oldDocument)
{
QTextCursor cursor(oldDocument);
cursor.beginEditBlock();
for (QTextBlock b = oldDocument->firstBlock();
b.isValid(); b = b.next())
{
b.layout()->setAdditionalFormats(formats.first());
formats.pop_front();
}
cursor.endEditBlock();
}
}
void Worksheet::rehighlight()
{
if(m_highlighter)
{
// highlight every entry
WorksheetEntry* entry;
for (entry = firstEntry(); entry; entry = entry->next()) {
WorksheetTextItem* item = entry->highlightItem();
if (!item)
continue;
highlightItem(item);
m_highlighter->rehighlight();
}
entry = currentEntry();
WorksheetTextItem* textitem = entry ? entry->highlightItem() : nullptr;
if (textitem && textitem->hasFocus())
highlightItem(textitem);
} else
{
// remove highlighting from entries
WorksheetEntry* entry;
for (entry = firstEntry(); entry; entry = entry->next()) {
WorksheetTextItem* item = entry->highlightItem();
if (!item)
continue;
QTextCursor cursor(item->document());
cursor.beginEditBlock();
for (QTextBlock b = item->document()->firstBlock();
b.isValid(); b = b.next())
{
b.layout()->clearAdditionalFormats();
}
cursor.endEditBlock();
}
update();
}
}
void Worksheet::enableHighlighting(bool highlight)
{
if(highlight)
{
if(m_highlighter)
m_highlighter->deleteLater();
if (!m_readOnly)
m_highlighter=session()->syntaxHighlighter(this);
else
m_highlighter=nullptr;
if(!m_highlighter)
m_highlighter=new Cantor::DefaultHighlighter(this);
connect(m_highlighter, SIGNAL(rulesChanged()), this, SLOT(rehighlight()));
}else
{
if(m_highlighter)
m_highlighter->deleteLater();
m_highlighter=nullptr;
}
rehighlight();
}
void Worksheet::enableCompletion(bool enable)
{
m_completionEnabled=enable;
}
Cantor::Session* Worksheet::session()
{
return m_session;
}
bool Worksheet::isRunning()
{
return m_session && m_session->status()==Cantor::Session::Running;
}
bool Worksheet::isReadOnly()
{
return m_readOnly;
}
bool Worksheet::showExpressionIds()
{
return m_showExpressionIds;
}
bool Worksheet::animationsEnabled()
{
return m_animationsEnabled;
}
void Worksheet::enableAnimations(bool enable)
{
m_animationsEnabled = enable;
}
+bool Worksheet::embeddedMathEnabled()
+{
+ return m_embeddedMathEnabled && m_mathRenderer.mathRenderAvailable();
+}
+
+void Worksheet::enableEmbeddedMath(bool enable)
+{
+ m_embeddedMathEnabled = enable;
+}
+
void Worksheet::enableExpressionNumbering(bool enable)
{
m_showExpressionIds=enable;
emit updatePrompt();
}
QDomDocument Worksheet::toXML(KZip* archive)
{
QDomDocument doc( QLatin1String("CantorWorksheet") );
QDomElement root=doc.createElement( QLatin1String("Worksheet") );
root.setAttribute(QLatin1String("backend"), (m_session ? m_session->backend()->name(): m_backendName));
doc.appendChild(root);
for( WorksheetEntry* entry = firstEntry(); entry; entry = entry->next())
{
QDomElement el = entry->toXml(doc, archive);
root.appendChild( el );
}
return doc;
}
+QJsonDocument Worksheet::toJupyterJson()
+{
+ QJsonDocument doc;
+ QJsonObject root;
+
+ QJsonObject metadata(m_jupyterMetadata ? *m_jupyterMetadata : QJsonObject());
+
+ QJsonObject kernalInfo;
+ if (m_session && m_session->backend())
+ kernalInfo = JupyterUtils::getKernelspec(m_session->backend());
+ else
+ kernalInfo.insert(QLatin1String("name"), m_backendName);
+ metadata.insert(QLatin1String("kernelspec"), kernalInfo);
+
+ root.insert(QLatin1String("metadata"), metadata);
+
+ // Not sure, but it looks like we support nbformat version 4.5
+ root.insert(QLatin1String("nbformat"), 4);
+ root.insert(QLatin1String("nbformat_minor"), 5);
+
+ QJsonArray cells;
+ for( WorksheetEntry* entry = firstEntry(); entry; entry = entry->next())
+ {
+ const QJsonValue entryJson = entry->toJupyterJson();
+
+ if (!entryJson.isNull())
+ cells.append(entryJson);
+ }
+ root.insert(QLatin1String("cells"), cells);
+
+ doc.setObject(root);
+ return doc;
+}
+
void Worksheet::save( const QString& filename )
{
QFile file(filename);
if ( !file.open(QIODevice::WriteOnly) )
{
KMessageBox::error( worksheetView(),
i18n( "Cannot write file %1." , filename ),
i18n( "Error - Cantor" ));
return;
}
save(&file);
}
QByteArray Worksheet::saveToByteArray()
{
QBuffer buffer;
save(&buffer);
return buffer.buffer();
}
void Worksheet::save( QIODevice* device)
{
qDebug()<<"saving to filename";
- KZip zipFile( device );
+ switch (m_type)
+ {
+ case CantorWorksheet:
+ {
+ KZip zipFile( device );
+ if ( !zipFile.open(QIODevice::WriteOnly) )
+ {
+ KMessageBox::error( worksheetView(),
+ i18n( "Cannot write file." ),
+ i18n( "Error - Cantor" ));
+ return;
+ }
- if ( !zipFile.open(QIODevice::WriteOnly) )
- {
- KMessageBox::error( worksheetView(),
- i18n( "Cannot write file." ),
- i18n( "Error - Cantor" ));
- return;
- }
+ QByteArray content = toXML(&zipFile).toByteArray();
+ qDebug()<<"content: "<<content;
+ zipFile.writeFile( QLatin1String("content.xml"), content.data());
+ break;
+ }
- QByteArray content = toXML(&zipFile).toByteArray();
- qDebug()<<"content: "<<content;
- zipFile.writeFile( QLatin1String("content.xml"), content.data());
+ case JupyterNotebook:
+ {
+ if (!device->isWritable())
+ {
+ KMessageBox::error( worksheetView(),
+ i18n( "Cannot write file." ),
+ i18n( "Error - Cantor" ));
+ return;
+ }
- /*zipFile.close();*/
+ const QJsonDocument& doc = toJupyterJson();
+ device->write(doc.toJson(QJsonDocument::Indented));
+ break;
+ }
+ }
}
void Worksheet::savePlain(const QString& filename)
{
QFile file(filename);
if(!file.open(QIODevice::WriteOnly))
{
KMessageBox::error(worksheetView(), i18n("Error saving file %1", filename), i18n("Error - Cantor"));
return;
}
QString cmdSep=QLatin1String(";\n");
QString commentStartingSeq = QLatin1String("");
QString commentEndingSeq = QLatin1String("");
if (!m_readOnly)
{
Cantor::Backend * const backend=session()->backend();
if (backend->extensions().contains(QLatin1String("ScriptExtension")))
{
Cantor::ScriptExtension* e=dynamic_cast<Cantor::ScriptExtension*>(backend->extension(QLatin1String(("ScriptExtension"))));
cmdSep=e->commandSeparator();
commentStartingSeq = e->commentStartingSequence();
commentEndingSeq = e->commentEndingSequence();
}
}
else
KMessageBox::information(worksheetView(), i18n("In read-only mode Cantor couldn't guarantee, that the export will be valid for %1", m_backendName), i18n("Cantor"));
QTextStream stream(&file);
for(WorksheetEntry * entry = firstEntry(); entry; entry = entry->next())
{
const QString& str=entry->toPlain(cmdSep, commentStartingSeq, commentEndingSeq);
if(!str.isEmpty())
stream << str + QLatin1Char('\n');
}
file.close();
}
void Worksheet::saveLatex(const QString& filename)
{
qDebug()<<"exporting to Latex: " <<filename;
QFile file(filename);
if(!file.open(QIODevice::WriteOnly))
{
KMessageBox::error(worksheetView(), i18n("Error saving file %1", filename), i18n("Error - Cantor"));
return;
}
QString xml = toXML().toString();
QTextStream stream(&file);
QXmlQuery query(QXmlQuery::XSLT20);
query.setFocus(xml);
QString stylesheet = QStandardPaths::locate(QStandardPaths::DataLocation, QLatin1String("xslt/latex.xsl"));
if (stylesheet.isEmpty())
{
KMessageBox::error(worksheetView(), i18n("Error loading latex.xsl stylesheet"), i18n("Error - Cantor"));
return;
}
query.setQuery(QUrl(stylesheet));
QString out;
if (query.evaluateTo(&out))
// Transform HTML escaped special characters to valid LaTeX characters (&, <, >)
stream << out.replace(QLatin1String("&amp;"), QLatin1String("&"))
.replace(QLatin1String("&gt;"), QLatin1String(">"))
.replace(QLatin1String("&lt;"), QLatin1String("<"));
file.close();
}
bool Worksheet::load(const QString& filename )
{
+ qDebug() << "loading worksheet" << filename;
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
KMessageBox::error(worksheetView(), i18n("Couldn't open the file %1", filename), i18n("Cantor"));
return false;
}
bool rc = load(&file);
if (rc && !m_readOnly)
m_session->setWorksheetPath(filename);
return rc;
}
void Worksheet::load(QByteArray* data)
{
QBuffer buf(data);
load(&buf);
}
bool Worksheet::load(QIODevice* device)
{
- KZip file(device);
- if (!file.open(QIODevice::ReadOnly)) {
- qDebug()<<"not a zip file";
- QApplication::restoreOverrideCursor();
- KMessageBox::error(worksheetView(), i18n("The selected file is not a valid Cantor project file."), i18n("Cantor"));
+ if (!device->isReadable())
+ {
+ KMessageBox::error(worksheetView(), i18n("Couldn't open the selected file for reading"), i18n("Cantor"));
return false;
}
- const KArchiveEntry* contentEntry=file.directory()->entry(QLatin1String("content.xml"));
+ KZip archive(device);
+
+ if (archive.open(QIODevice::ReadOnly))
+ return loadCantorWorksheet(archive);
+ else
+ {
+ qDebug() <<"not a zip file";
+ // Go to begin of data, we need read all data in second time
+ device->seek(0);
+
+ QJsonParseError error;
+ const QJsonDocument& doc = QJsonDocument::fromJson(device->readAll(), &error);
+ if (error.error != QJsonParseError::NoError)
+ {
+ qDebug()<<"not a json file, parsing failed with error: " << error.errorString();
+ QApplication::restoreOverrideCursor();
+ KMessageBox::error(worksheetView(), i18n("The selected file is not a valid Cantor or Jupyter project file."), i18n("Cantor"));
+ return false;
+ }
+ else
+ return loadJupyterNotebook(doc);
+ }
+}
+
+bool Worksheet::loadCantorWorksheet(const KZip& archive)
+{
+ m_type = Type::CantorWorksheet;
+
+ const KArchiveEntry* contentEntry=archive.directory()->entry(QLatin1String("content.xml"));
if (!contentEntry->isFile())
{
qDebug()<<"content.xml file not found in the zip archive";
QApplication::restoreOverrideCursor();
KMessageBox::error(worksheetView(), i18n("The selected file is not a valid Cantor project file."), i18n("Cantor"));
return false;
}
const KArchiveFile* content = static_cast<const KArchiveFile*>(contentEntry);
QByteArray data = content->data();
// qDebug()<<"read: "<<data;
QDomDocument doc;
doc.setContent(data);
QDomElement root=doc.documentElement();
// qDebug()<<root.tagName();
m_backendName=root.attribute(QLatin1String("backend"));
Cantor::Backend* b=Cantor::Backend::getBackend(m_backendName);
if (!b)
{
QApplication::restoreOverrideCursor();
KMessageBox::information(worksheetView(), i18n("%1 backend was not found. Editing and executing entries is not possible", m_backendName), i18n("Cantor"));
m_readOnly = true;
}
else
m_readOnly = false;
if(!m_readOnly && !b->isEnabled())
{
QApplication::restoreOverrideCursor();
KMessageBox::information(worksheetView(), i18n("There are some problems with the %1 backend,\n"\
"please check your configuration or install the needed packages.\n"
"You will only be able to view this worksheet.", m_backendName), i18n("Cantor"));
m_readOnly = true;
}
if (m_readOnly)
{
// TODO: Handle this here?
for (QAction* action : m_richTextActionList)
action->setEnabled(false);
}
m_isLoadingFromFile = true;
//cleanup the worksheet and all it contains
delete m_session;
m_session=nullptr;
m_loginDone = false;
//file can only be loaded in a worksheet that was not eidted/modified yet (s.a. CantorShell::load())
//in this case on the default "first entry" is available -> delete it.
if (m_firstEntry) {
delete m_firstEntry;
m_firstEntry = nullptr;
}
resetEntryCursor();
if (!m_readOnly)
m_session=b->createSession();
qDebug()<<"loading entries";
QDomElement expressionChild = root.firstChildElement();
WorksheetEntry* entry = nullptr;
while (!expressionChild.isNull()) {
QString tag = expressionChild.tagName();
// Don't add focus on load
if (tag == QLatin1String("Expression"))
{
entry = appendEntry(CommandEntry::Type, false);
- entry->setContent(expressionChild, file);
+ entry->setContent(expressionChild, archive);
} else if (tag == QLatin1String("Text"))
{
entry = appendEntry(TextEntry::Type, false);
- entry->setContent(expressionChild, file);
+ entry->setContent(expressionChild, archive);
} else if (tag == QLatin1String("Markdown"))
{
entry = appendEntry(MarkdownEntry::Type, false);
- entry->setContent(expressionChild, file);
+ entry->setContent(expressionChild, archive);
} else if (tag == QLatin1String("Latex"))
{
entry = appendEntry(LatexEntry::Type, false);
- entry->setContent(expressionChild, file);
+ entry->setContent(expressionChild, archive);
} else if (tag == QLatin1String("PageBreak"))
{
entry = appendEntry(PageBreakEntry::Type, false);
- entry->setContent(expressionChild, file);
+ entry->setContent(expressionChild, archive);
}
else if (tag == QLatin1String("Image"))
{
entry = appendEntry(ImageEntry::Type, false);
- entry->setContent(expressionChild, file);
+ entry->setContent(expressionChild, archive);
}
if (m_readOnly && entry)
{
entry->setAcceptHoverEvents(false);
entry = nullptr;
}
expressionChild = expressionChild.nextSiblingElement();
}
if (m_readOnly)
clearFocus();
m_isLoadingFromFile = false;
//Set the Highlighting, depending on the current state
//If the session isn't logged in, use the default
enableHighlighting( m_highlighter!=nullptr || Settings::highlightDefault() );
emit loaded();
return true;
}
+bool Worksheet::loadJupyterNotebook(const QJsonDocument& doc)
+{
+ m_type = Type::JupyterNotebook;
+
+ int nbformatMajor, nbformatMinor;
+ if (!JupyterUtils::isJupyterNotebook(doc))
+ {
+ // Two possiblities: old jupyter notebook (with another scheme) or just not a notebook at AlignLeft
+ std::tie(nbformatMajor, nbformatMinor) = JupyterUtils::getNbformatVersion(doc.object());
+ if (nbformatMajor == 0 && nbformatMinor == 0)
+ {
+ QApplication::restoreOverrideCursor();
+ showInvalidNotebookSchemeError();
+ }
+ else
+ {
+ KMessageBox::error(worksheetView(), i18n("The file is old Jupyter notebook (found version %1.%2), which isn't supported by Cantor",nbformatMajor, nbformatMinor ), i18n("Cantor"));
+ }
+
+ return false;
+ }
+
+ QJsonObject notebookObject = doc.object();
+ std::tie(nbformatMajor, nbformatMinor) = JupyterUtils::getNbformatVersion(notebookObject);
+
+ if (QT_VERSION_CHECK(nbformatMajor, nbformatMinor, 0) < QT_VERSION_CHECK(4,0,0))
+ {
+ QApplication::restoreOverrideCursor();
+ KMessageBox::error(worksheetView(), i18n("Cantor doesn't support import Jupyter notebooks with version lower that 4.0 (detected %1.%2)",nbformatMajor, nbformatMinor), i18n("Cantor"));
+ return false;
+ }
+
+ const QJsonArray& cells = JupyterUtils::getCells(notebookObject);
+ const QJsonObject& metadata = JupyterUtils::getMetadata(notebookObject);
+ if (m_jupyterMetadata)
+ delete m_jupyterMetadata;
+ m_jupyterMetadata = new QJsonObject(metadata);
+
+ const QJsonObject& kernalspec = metadata.value(QLatin1String("kernelspec")).toObject();
+ m_backendName = JupyterUtils::getKernelName(kernalspec);
+ if (kernalspec.isEmpty() || m_backendName.isEmpty())
+ {
+ QApplication::restoreOverrideCursor();
+ showInvalidNotebookSchemeError();
+ return false;
+ }
+
+ Cantor::Backend* backend = Cantor::Backend::getBackend(m_backendName);
+ if (!backend)
+ {
+ QApplication::restoreOverrideCursor();
+ KMessageBox::information(worksheetView(), i18n("%1 backend was not found. Editing and executing entries is not possible", m_backendName), i18n("Cantor"));
+ m_readOnly = true;
+ }
+ else
+ m_readOnly = false;
+
+ if(!m_readOnly && !backend->isEnabled())
+ {
+ QApplication::restoreOverrideCursor();
+ KMessageBox::information(worksheetView(), i18n("There are some problems with the %1 backend,\n"\
+ "please check your configuration or install the needed packages.\n"
+ "You will only be able to view this worksheet.", m_backendName), i18n("Cantor"));
+ m_readOnly = true;
+ }
+
+ if (m_readOnly)
+ {
+ for (QAction* action : m_richTextActionList)
+ action->setEnabled(false);
+ }
+
+
+ m_isLoadingFromFile = true;
+
+ if (m_session)
+ delete m_session;
+ m_session = nullptr;
+ m_loginDone = false;
+
+ if (m_firstEntry) {
+ delete m_firstEntry;
+ m_firstEntry = nullptr;
+ }
+
+ resetEntryCursor();
+
+ if (!m_readOnly)
+ m_session=backend->createSession();
+
+ qDebug() << "loading jupyter entries";
+
+ WorksheetEntry* entry = nullptr;
+ for (QJsonArray::const_iterator iter = cells.begin(); iter != cells.end(); iter++) {
+ if (!JupyterUtils::isJupyterCell(*iter))
+ {
+ QApplication::restoreOverrideCursor();
+ QString explanation;
+ if (iter->isObject())
+ explanation = i18n("an object with keys: %1", iter->toObject().keys().join(QLatin1String(", ")));
+ else
+ explanation = i18n("non object JSON value");
+
+ m_isLoadingFromFile = false;
+ showInvalidNotebookSchemeError(i18n("found incorrect data (%1) that is not Jupyter cell", explanation));
+ return false;
+ }
+
+ const QJsonObject& cell = iter->toObject();
+ QString cellType = JupyterUtils::getCellType(cell);
+
+ if (cellType == QLatin1String("code"))
+ {
+ if (LatexEntry::isConvertableToLatexEntry(cell))
+ {
+ entry = appendEntry(LatexEntry::Type, false);
+ entry->setContentFromJupyter(cell);
+ entry->evaluate(WorksheetEntry::InternalEvaluation);
+ }
+ else
+ {
+ entry = appendEntry(CommandEntry::Type, false);
+ entry->setContentFromJupyter(cell);
+ }
+ }
+ else if (cellType == QLatin1String("markdown"))
+ {
+ if (TextEntry::isConvertableToTextEntry(cell))
+ {
+ entry = appendEntry(TextEntry::Type, false);
+ entry->setContentFromJupyter(cell);
+ }
+ else
+ {
+ entry = appendEntry(MarkdownEntry::Type, false);
+ entry->setContentFromJupyter(cell);
+ entry->evaluate(WorksheetEntry::InternalEvaluation);
+ }
+ }
+ else if (cellType == QLatin1String("raw"))
+ {
+ if (PageBreakEntry::isConvertableToPageBreakEntry(cell))
+ entry = appendEntry(PageBreakEntry::Type, false);
+ else
+ entry = appendEntry(TextEntry::Type, false);
+ entry->setContentFromJupyter(cell);
+ }
+
+ if (m_readOnly && entry)
+ {
+ entry->setAcceptHoverEvents(false);
+ entry = nullptr;
+ }
+ }
+
+ if (m_readOnly)
+ clearFocus();
+
+ m_isLoadingFromFile = false;
+
+ enableHighlighting( m_highlighter!=nullptr || Settings::highlightDefault() );
+
+ emit loaded();
+ return true;
+}
+
+void Worksheet::showInvalidNotebookSchemeError(QString additionalInfo)
+{
+ if (additionalInfo.isEmpty())
+ KMessageBox::error(worksheetView(), i18n("The file is not valid Jupyter notebook"), i18n("Cantor"));
+ else
+ KMessageBox::error(worksheetView(), i18n("Invalid Jupyter notebook scheme: %1", additionalInfo), i18n("Cantor"));
+}
+
+
void Worksheet::gotResult(Cantor::Expression* expr)
{
if(expr==nullptr)
expr=qobject_cast<Cantor::Expression*>(sender());
if(expr==nullptr)
return;
//We're only interested in help results, others are handled by the WorksheetEntry
for (auto* result : expr->results())
{
if(result && result->type()==Cantor::HelpResult::Type)
{
QString help = result->toHtml();
//Do some basic LaTeX replacing
help.replace(QRegExp(QLatin1String("\\\\code\\{([^\\}]*)\\}")), QLatin1String("<b>\\1</b>"));
help.replace(QRegExp(QLatin1String("\\$([^\\$])\\$")), QLatin1String("<i>\\1</i>"));
emit showHelp(help);
//TODO: break after the first help result found, not clear yet how to handle multiple requests for help within one single command (e.g. ??ev;??int).
break;
}
}
}
void Worksheet::removeCurrentEntry()
{
qDebug()<<"removing current entry";
WorksheetEntry* entry=currentEntry();
if(!entry)
return;
// In case we just removed this
if (entry->isAncestorOf(m_lastFocusedTextItem))
m_lastFocusedTextItem = nullptr;
entry->startRemoving();
}
Cantor::EpsRenderer* Worksheet::epsRenderer()
{
return &m_epsRenderer;
}
+MathRenderer* Worksheet::mathRenderer()
+{
+ return &m_mathRenderer;
+}
+
QMenu* Worksheet::createContextMenu()
{
QMenu *menu = new QMenu(worksheetView());
connect(menu, SIGNAL(aboutToHide()), menu, SLOT(deleteLater()));
return menu;
}
void Worksheet::populateMenu(QMenu *menu, QPointF pos)
{
WorksheetEntry* entry = entryAt(pos);
if (entry && !entry->isAncestorOf(m_lastFocusedTextItem)) {
WorksheetTextItem* item =
qgraphicsitem_cast<WorksheetTextItem*>(itemAt(pos, QTransform()));
if (item && item->isEditable())
m_lastFocusedTextItem = item;
}
if (!isRunning())
menu->addAction(QIcon::fromTheme(QLatin1String("system-run")), i18n("Evaluate Worksheet"),
this, SLOT(evaluate()), 0);
else
menu->addAction(QIcon::fromTheme(QLatin1String("process-stop")), i18n("Interrupt"), this,
SLOT(interrupt()), 0);
menu->addSeparator();
if (entry) {
QMenu* insert = new QMenu(menu);
QMenu* insertBefore = new QMenu(menu);
insert->addAction(QIcon::fromTheme(QLatin1String("run-build")), i18n("Command Entry"), entry, SLOT(insertCommandEntry()));
insert->addAction(QIcon::fromTheme(QLatin1String("draw-text")), i18n("Text Entry"), entry, SLOT(insertTextEntry()));
#ifdef Discount_FOUND
insert->addAction(QIcon::fromTheme(QLatin1String("text-x-markdown")), i18n("Markdown Entry"), entry, SLOT(insertMarkdownEntry()));
#endif
#ifdef WITH_EPS
insert->addAction(QIcon::fromTheme(QLatin1String("text-x-tex")), i18n("LaTeX Entry"), entry, SLOT(insertLatexEntry()));
#endif
insert->addAction(QIcon::fromTheme(QLatin1String("image-x-generic")), i18n("Image"), entry, SLOT(insertImageEntry()));
insert->addAction(QIcon::fromTheme(QLatin1String("go-next-view-page")), i18n("Page Break"), entry, SLOT(insertPageBreakEntry()));
insertBefore->addAction(QIcon::fromTheme(QLatin1String("run-build")), i18n("Command Entry"), entry, SLOT(insertCommandEntryBefore()));
insertBefore->addAction(QIcon::fromTheme(QLatin1String("draw-text")), i18n("Text Entry"), entry, SLOT(insertTextEntryBefore()));
#ifdef Discount_FOUND
insertBefore->addAction(QIcon::fromTheme(QLatin1String("text-x-markdown")), i18n("Markdown Entry"), entry, SLOT(insertMarkdownEntryBefore()));
#endif
#ifdef WITH_EPS
insertBefore->addAction(QIcon::fromTheme(QLatin1String("text-x-tex")), i18n("LaTeX Entry"), entry, SLOT(insertLatexEntryBefore()));
#endif
insertBefore->addAction(QIcon::fromTheme(QLatin1String("image-x-generic")), i18n("Image"), entry, SLOT(insertImageEntryBefore()));
insertBefore->addAction(QIcon::fromTheme(QLatin1String("go-next-view-page")), i18n("Page Break"), entry, SLOT(insertPageBreakEntryBefore()));
insert->setTitle(i18n("Insert Entry After"));
insert->setIcon(QIcon::fromTheme(QLatin1String("edit-table-insert-row-below")));
insertBefore->setTitle(i18n("Insert Entry Before"));
insertBefore->setIcon(QIcon::fromTheme(QLatin1String("edit-table-insert-row-above")));
menu->addMenu(insert);
menu->addMenu(insertBefore);
} else {
menu->addAction(QIcon::fromTheme(QLatin1String("run-build")), i18n("Insert Command Entry"), this, SLOT(appendCommandEntry()));
menu->addAction(QIcon::fromTheme(QLatin1String("draw-text")), i18n("Insert Text Entry"), this, SLOT(appendTextEntry()));
#ifdef Discount_FOUND
menu->addAction(QIcon::fromTheme(QLatin1String("text-x-markdown")), i18n("Insert Markdown Entry"), this, SLOT(appendMarkdownEntry()));
#endif
#ifdef WITH_EPS
menu->addAction(QIcon::fromTheme(QLatin1String("text-x-tex")), i18n("Insert LaTeX Entry"), this, SLOT(appendLatexEntry()));
#endif
menu->addAction(QIcon::fromTheme(QLatin1String("image-x-generic")), i18n("Insert Image"), this, SLOT(appendImageEntry()));
menu->addAction(QIcon::fromTheme(QLatin1String("go-next-view-page")), i18n("Insert Page Break"), this, SLOT(appendPageBreakEntry()));
}
}
void Worksheet::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
if (m_readOnly)
return;
// forward the event to the items
QGraphicsScene::contextMenuEvent(event);
if (!event->isAccepted()) {
event->accept();
QMenu *menu = createContextMenu();
populateMenu(menu, event->scenePos());
menu->popup(event->screenPos());
}
}
void Worksheet::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
QGraphicsScene::mousePressEvent(event);
/*
if (event->button() == Qt::LeftButton && !focusItem() && lastEntry() &&
event->scenePos().y() > lastEntry()->y() + lastEntry()->size().height())
lastEntry()->focusEntry(WorksheetTextItem::BottomRight);
*/
if (!m_readOnly)
updateEntryCursor(event);
}
void Worksheet::keyPressEvent(QKeyEvent *keyEvent)
{
if (m_readOnly)
return;
// If we choose entry by entry cursor and press text button (not modifiers, for example, like Control)
if ((m_choosenCursorEntry || m_isCursorEntryAfterLastEntry) && !keyEvent->text().isEmpty())
addEntryFromEntryCursor();
QGraphicsScene::keyPressEvent(keyEvent);
}
void Worksheet::createActions(KActionCollection* collection)
{
// Mostly copied from KRichTextWidget::createActions(KActionCollection*)
// It would be great if this wasn't necessary.
// Text color
QAction * action;
/* This is "format-stroke-color" in KRichTextWidget */
action = new QAction(QIcon::fromTheme(QLatin1String("format-text-color")),
i18nc("@action", "Text &Color..."), collection);
action->setIconText(i18nc("@label text color", "Color"));
action->setPriority(QAction::LowPriority);
m_richTextActionList.append(action);
collection->addAction(QLatin1String("format_text_foreground_color"), action);
connect(action, SIGNAL(triggered()), this, SLOT(setTextForegroundColor()));
// Text color
action = new QAction(QIcon::fromTheme(QLatin1String("format-fill-color")),
i18nc("@action", "Text &Highlight..."), collection);
action->setPriority(QAction::LowPriority);
m_richTextActionList.append(action);
collection->addAction(QLatin1String("format_text_background_color"), action);
connect(action, SIGNAL(triggered()), this, SLOT(setTextBackgroundColor()));
// Font Family
m_fontAction = new KFontAction(i18nc("@action", "&Font"), collection);
m_richTextActionList.append(m_fontAction);
collection->addAction(QLatin1String("format_font_family"), m_fontAction);
connect(m_fontAction, SIGNAL(triggered(QString)), this,
SLOT(setFontFamily(QString)));
// Font Size
m_fontSizeAction = new KFontSizeAction(i18nc("@action", "Font &Size"),
collection);
m_richTextActionList.append(m_fontSizeAction);
collection->addAction(QLatin1String("format_font_size"), m_fontSizeAction);
connect(m_fontSizeAction, SIGNAL(fontSizeChanged(int)), this,
SLOT(setFontSize(int)));
// Bold
m_boldAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-text-bold")),
i18nc("@action boldify selected text", "&Bold"),
collection);
m_boldAction->setPriority(QAction::LowPriority);
QFont bold;
bold.setBold(true);
m_boldAction->setFont(bold);
m_richTextActionList.append(m_boldAction);
collection->addAction(QLatin1String("format_text_bold"), m_boldAction);
collection->setDefaultShortcut(m_boldAction, Qt::CTRL + Qt::Key_B);
connect(m_boldAction, SIGNAL(triggered(bool)), this, SLOT(setTextBold(bool)));
// Italic
m_italicAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-text-italic")),
i18nc("@action italicize selected text",
"&Italic"),
collection);
m_italicAction->setPriority(QAction::LowPriority);
QFont italic;
italic.setItalic(true);
m_italicAction->setFont(italic);
m_richTextActionList.append(m_italicAction);
collection->addAction(QLatin1String("format_text_italic"), m_italicAction);
collection->setDefaultShortcut(m_italicAction, Qt::CTRL + Qt::Key_I);
connect(m_italicAction, SIGNAL(triggered(bool)), this, SLOT(setTextItalic(bool)));
// Underline
m_underlineAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-text-underline")),
i18nc("@action underline selected text",
"&Underline"),
collection);
m_underlineAction->setPriority(QAction::LowPriority);
QFont underline;
underline.setUnderline(true);
m_underlineAction->setFont(underline);
m_richTextActionList.append(m_underlineAction);
collection->addAction(QLatin1String("format_text_underline"), m_underlineAction);
collection->setDefaultShortcut(m_underlineAction, Qt::CTRL + Qt::Key_U);
connect(m_underlineAction, SIGNAL(triggered(bool)), this, SLOT(setTextUnderline(bool)));
// Strike
m_strikeOutAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-text-strikethrough")),
i18nc("@action", "&Strike Out"),
collection);
m_strikeOutAction->setPriority(QAction::LowPriority);
m_richTextActionList.append(m_strikeOutAction);
collection->addAction(QLatin1String("format_text_strikeout"), m_strikeOutAction);
collection->setDefaultShortcut(m_strikeOutAction, Qt::CTRL + Qt::Key_L);
connect(m_strikeOutAction, SIGNAL(triggered(bool)), this, SLOT(setTextStrikeOut(bool)));
// Alignment
QActionGroup *alignmentGroup = new QActionGroup(this);
// Align left
m_alignLeftAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-justify-left")),
i18nc("@action", "Align &Left"),
collection);
m_alignLeftAction->setPriority(QAction::LowPriority);
m_alignLeftAction->setIconText(i18nc("@label left justify", "Left"));
m_richTextActionList.append(m_alignLeftAction);
collection->addAction(QLatin1String("format_align_left"), m_alignLeftAction);
connect(m_alignLeftAction, SIGNAL(triggered()), this,
SLOT(setAlignLeft()));
alignmentGroup->addAction(m_alignLeftAction);
// Align center
m_alignCenterAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-justify-center")),
i18nc("@action", "Align &Center"),
collection);
m_alignCenterAction->setPriority(QAction::LowPriority);
m_alignCenterAction->setIconText(i18nc("@label center justify", "Center"));
m_richTextActionList.append(m_alignCenterAction);
collection->addAction(QLatin1String("format_align_center"), m_alignCenterAction);
connect(m_alignCenterAction, SIGNAL(triggered()), this,
SLOT(setAlignCenter()));
alignmentGroup->addAction(m_alignCenterAction);
// Align right
m_alignRightAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-justify-right")),
i18nc("@action", "Align &Right"),
collection);
m_alignRightAction->setPriority(QAction::LowPriority);
m_alignRightAction->setIconText(i18nc("@label right justify", "Right"));
m_richTextActionList.append(m_alignRightAction);
collection->addAction(QLatin1String("format_align_right"), m_alignRightAction);
connect(m_alignRightAction, SIGNAL(triggered()), this,
SLOT(setAlignRight()));
alignmentGroup->addAction(m_alignRightAction);
// Align justify
m_alignJustifyAction = new KToggleAction(QIcon::fromTheme(QLatin1String("format-justify-fill")),
i18nc("@action", "&Justify"),
collection);
m_alignJustifyAction->setPriority(QAction::LowPriority);
m_alignJustifyAction->setIconText(i18nc("@label justify fill", "Justify"));
m_richTextActionList.append(m_alignJustifyAction);
collection->addAction(QLatin1String("format_align_justify"), m_alignJustifyAction);
connect(m_alignJustifyAction, SIGNAL(triggered()), this,
SLOT(setAlignJustify()));
alignmentGroup->addAction(m_alignJustifyAction);
/*
// List style
KSelectAction* selAction;
selAction = new KSelectAction(QIcon::fromTheme("format-list-unordered"),
i18nc("@title:menu", "List Style"),
collection);
QStringList listStyles;
listStyles << i18nc("@item:inmenu no list style", "None")
<< i18nc("@item:inmenu disc list style", "Disc")
<< i18nc("@item:inmenu circle list style", "Circle")
<< i18nc("@item:inmenu square list style", "Square")
<< i18nc("@item:inmenu numbered lists", "123")
<< i18nc("@item:inmenu lowercase abc lists", "abc")
<< i18nc("@item:inmenu uppercase abc lists", "ABC");
selAction->setItems(listStyles);
selAction->setCurrentItem(0);
action = selAction;
m_richTextActionList.append(action);
collection->addAction("format_list_style", action);
connect(action, SIGNAL(triggered(int)),
this, SLOT(_k_setListStyle(int)));
connect(action, SIGNAL(triggered()),
this, SLOT(_k_updateMiscActions()));
// Indent
action = new QAction(QIcon::fromTheme("format-indent-more"),
i18nc("@action", "Increase Indent"), collection);
action->setPriority(QAction::LowPriority);
m_richTextActionList.append(action);
collection->addAction("format_list_indent_more", action);
connect(action, SIGNAL(triggered()),
this, SLOT(indentListMore()));
connect(action, SIGNAL(triggered()),
this, SLOT(_k_updateMiscActions()));
// Dedent
action = new QAction(QIcon::fromTheme("format-indent-less"),
i18nc("@action", "Decrease Indent"), collection);
action->setPriority(QAction::LowPriority);
m_richTextActionList.append(action);
collection->addAction("format_list_indent_less", action);
connect(action, SIGNAL(triggered()), this, SLOT(indentListLess()));
connect(action, SIGNAL(triggered()), this, SLOT(_k_updateMiscActions()));
*/
}
WorksheetTextItem* Worksheet::lastFocusedTextItem()
{
return m_lastFocusedTextItem;
}
void Worksheet::updateFocusedTextItem(WorksheetTextItem* newItem)
{
// No need update and emit signals about editing actions in readonly
// So support only copy action and reset selection
if (m_readOnly)
{
if (m_lastFocusedTextItem && m_lastFocusedTextItem != newItem)
{
disconnect(this, SIGNAL(copy()), m_lastFocusedTextItem, SLOT(copy()));
m_lastFocusedTextItem->clearSelection();
}
if (newItem && m_lastFocusedTextItem != newItem)
{
connect(this, SIGNAL(copy()), newItem, SLOT(copy()));
emit copyAvailable(newItem->isCopyAvailable());
}
else if (!newItem)
{
emit copyAvailable(false);
}
m_lastFocusedTextItem = newItem;
return;
}
if (m_lastFocusedTextItem && m_lastFocusedTextItem != newItem) {
disconnect(m_lastFocusedTextItem, SIGNAL(undoAvailable(bool)),
this, SIGNAL(undoAvailable(bool)));
disconnect(m_lastFocusedTextItem, SIGNAL(redoAvailable(bool)),
this, SIGNAL(redoAvailable(bool)));
disconnect(this, SIGNAL(undo()), m_lastFocusedTextItem, SLOT(undo()));
disconnect(this, SIGNAL(redo()), m_lastFocusedTextItem, SLOT(redo()));
disconnect(m_lastFocusedTextItem, SIGNAL(cutAvailable(bool)),
this, SIGNAL(cutAvailable(bool)));
disconnect(m_lastFocusedTextItem, SIGNAL(copyAvailable(bool)),
this, SIGNAL(copyAvailable(bool)));
disconnect(m_lastFocusedTextItem, SIGNAL(pasteAvailable(bool)),
this, SIGNAL(pasteAvailable(bool)));
disconnect(this, SIGNAL(cut()), m_lastFocusedTextItem, SLOT(cut()));
disconnect(this, SIGNAL(copy()), m_lastFocusedTextItem, SLOT(copy()));
m_lastFocusedTextItem->clearSelection();
}
if (newItem && m_lastFocusedTextItem != newItem) {
setAcceptRichText(newItem->richTextEnabled());
emit undoAvailable(newItem->isUndoAvailable());
emit redoAvailable(newItem->isRedoAvailable());
connect(newItem, SIGNAL(undoAvailable(bool)),
this, SIGNAL(undoAvailable(bool)));
connect(newItem, SIGNAL(redoAvailable(bool)),
this, SIGNAL(redoAvailable(bool)));
connect(this, SIGNAL(undo()), newItem, SLOT(undo()));
connect(this, SIGNAL(redo()), newItem, SLOT(redo()));
emit cutAvailable(newItem->isCutAvailable());
emit copyAvailable(newItem->isCopyAvailable());
emit pasteAvailable(newItem->isPasteAvailable());
connect(newItem, SIGNAL(cutAvailable(bool)),
this, SIGNAL(cutAvailable(bool)));
connect(newItem, SIGNAL(copyAvailable(bool)),
this, SIGNAL(copyAvailable(bool)));
connect(newItem, SIGNAL(pasteAvailable(bool)),
this, SIGNAL(pasteAvailable(bool)));
connect(this, SIGNAL(cut()), newItem, SLOT(cut()));
connect(this, SIGNAL(copy()), newItem, SLOT(copy()));
} else if (!newItem) {
emit undoAvailable(false);
emit redoAvailable(false);
emit cutAvailable(false);
emit copyAvailable(false);
emit pasteAvailable(false);
}
m_lastFocusedTextItem = newItem;
}
/*!
* handles the paste action triggered in cantor_part.
* Pastes into the last focused text item.
* In case the "new entry"-cursor is currently shown,
* a new entry is created first which the content will be pasted into.
*/
void Worksheet::paste() {
if (m_choosenCursorEntry || m_isCursorEntryAfterLastEntry)
addEntryFromEntryCursor();
m_lastFocusedTextItem->paste();
}
void Worksheet::setRichTextInformation(const RichTextInfo& info)
{
m_boldAction->setChecked(info.bold);
m_italicAction->setChecked(info.italic);
m_underlineAction->setChecked(info.underline);
m_strikeOutAction->setChecked(info.strikeOut);
m_fontAction->setFont(info.font);
if (info.fontSize > 0)
m_fontSizeAction->setFontSize(info.fontSize);
if (info.align & Qt::AlignLeft)
m_alignLeftAction->setChecked(true);
else if (info.align & Qt::AlignCenter)
m_alignCenterAction->setChecked(true);
else if (info.align & Qt::AlignRight)
m_alignRightAction->setChecked(true);
else if (info.align & Qt::AlignJustify)
m_alignJustifyAction->setChecked(true);
}
void Worksheet::setAcceptRichText(bool b)
{
if (!m_readOnly)
for(QAction * action : m_richTextActionList)
action->setEnabled(b);
}
WorksheetTextItem* Worksheet::currentTextItem()
{
QGraphicsItem* item = focusItem();
if (!item)
item = m_lastFocusedTextItem;
while (item && item->type() != WorksheetTextItem::Type)
item = item->parentItem();
return qgraphicsitem_cast<WorksheetTextItem*>(item);
}
void Worksheet::setTextForegroundColor()
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setTextForegroundColor();
}
void Worksheet::setTextBackgroundColor()
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setTextBackgroundColor();
}
void Worksheet::setTextBold(bool b)
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setTextBold(b);
}
void Worksheet::setTextItalic(bool b)
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setTextItalic(b);
}
void Worksheet::setTextUnderline(bool b)
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setTextUnderline(b);
}
void Worksheet::setTextStrikeOut(bool b)
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setTextStrikeOut(b);
}
void Worksheet::setAlignLeft()
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setAlignment(Qt::AlignLeft);
}
void Worksheet::setAlignRight()
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setAlignment(Qt::AlignRight);
}
void Worksheet::setAlignCenter()
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setAlignment(Qt::AlignCenter);
}
void Worksheet::setAlignJustify()
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setAlignment(Qt::AlignJustify);
}
void Worksheet::setFontFamily(const QString& font)
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setFontFamily(font);
}
void Worksheet::setFontSize(int size)
{
WorksheetTextItem* item = currentTextItem();
if (item)
item->setFontSize(size);
}
bool Worksheet::isShortcut(const QKeySequence& sequence)
{
return m_shortcuts.contains(sequence);
}
void Worksheet::registerShortcut(QAction* action)
{
for (auto& shortcut : action->shortcuts())
m_shortcuts.insert(shortcut, action);
connect(action, SIGNAL(changed()), this, SLOT(updateShortcut()));
}
void Worksheet::updateShortcut()
{
QAction* action = qobject_cast<QAction*>(sender());
if (!action)
return;
// delete the old shortcuts of this action
QList<QKeySequence> shortcuts = m_shortcuts.keys(action);
for (auto& shortcut : shortcuts)
m_shortcuts.remove(shortcut);
// add the new shortcuts
for (auto& shortcut : action->shortcuts())
m_shortcuts.insert(shortcut, action);
}
void Worksheet::dragEnterEvent(QGraphicsSceneDragDropEvent* event)
{
qDebug() << "enter";
if (m_dragEntry)
event->accept();
else
QGraphicsScene::dragEnterEvent(event);
}
void Worksheet::dragLeaveEvent(QGraphicsSceneDragDropEvent* event)
{
if (!m_dragEntry) {
QGraphicsScene::dragLeaveEvent(event);
return;
}
qDebug() << "leave";
event->accept();
if (m_placeholderEntry) {
m_placeholderEntry->startRemoving();
m_placeholderEntry = nullptr;
}
}
void Worksheet::dragMoveEvent(QGraphicsSceneDragDropEvent* event)
{
if (!m_dragEntry) {
QGraphicsScene::dragMoveEvent(event);
return;
}
QPointF pos = event->scenePos();
WorksheetEntry* entry = entryAt(pos);
WorksheetEntry* prev = nullptr;
WorksheetEntry* next = nullptr;
if (entry) {
if (pos.y() < entry->y() + entry->size().height()/2) {
prev = entry->previous();
next = entry;
} else if (pos.y() >= entry->y() + entry->size().height()/2) {
prev = entry;
next = entry->next();
}
} else {
WorksheetEntry* last = lastEntry();
if (last && pos.y() > last->y() + last->size().height()) {
prev = last;
next = nullptr;
}
}
if (prev || next) {
PlaceHolderEntry* oldPlaceHolder = m_placeholderEntry;
if (prev && prev->type() == PlaceHolderEntry::Type &&
(!prev->aboutToBeRemoved() || prev->stopRemoving())) {
m_placeholderEntry = qgraphicsitem_cast<PlaceHolderEntry*>(prev);
m_placeholderEntry->changeSize(m_dragEntry->size());
} else if (next && next->type() == PlaceHolderEntry::Type &&
(!next->aboutToBeRemoved() || next->stopRemoving())) {
m_placeholderEntry = qgraphicsitem_cast<PlaceHolderEntry*>(next);
m_placeholderEntry->changeSize(m_dragEntry->size());
} else {
m_placeholderEntry = new PlaceHolderEntry(this, QSizeF(0,0));
m_placeholderEntry->setPrevious(prev);
m_placeholderEntry->setNext(next);
if (prev)
prev->setNext(m_placeholderEntry);
else
setFirstEntry(m_placeholderEntry);
if (next)
next->setPrevious(m_placeholderEntry);
else
setLastEntry(m_placeholderEntry);
m_placeholderEntry->changeSize(m_dragEntry->size());
}
if (oldPlaceHolder && oldPlaceHolder != m_placeholderEntry)
oldPlaceHolder->startRemoving();
updateLayout();
}
const QPoint viewPos = worksheetView()->mapFromScene(pos);
const int viewHeight = worksheetView()->viewport()->height();
if ((viewPos.y() < 10 || viewPos.y() > viewHeight - 10) &&
!m_dragScrollTimer) {
m_dragScrollTimer = new QTimer(this);
m_dragScrollTimer->setSingleShot(true);
m_dragScrollTimer->setInterval(100);
connect(m_dragScrollTimer, SIGNAL(timeout()), this,
SLOT(updateDragScrollTimer()));
m_dragScrollTimer->start();
}
event->accept();
}
void Worksheet::dropEvent(QGraphicsSceneDragDropEvent* event)
{
if (!m_dragEntry)
QGraphicsScene::dropEvent(event);
event->accept();
}
void Worksheet::updateDragScrollTimer()
{
if (!m_dragScrollTimer)
return;
const QPoint viewPos = worksheetView()->viewCursorPos();
const QWidget* viewport = worksheetView()->viewport();
const int viewHeight = viewport->height();
if (!m_dragEntry || !(viewport->rect().contains(viewPos)) ||
(viewPos.y() >= 10 && viewPos.y() <= viewHeight - 10)) {
delete m_dragScrollTimer;
m_dragScrollTimer = nullptr;
return;
}
if (viewPos.y() < 10)
worksheetView()->scrollBy(-10*(10 - viewPos.y()));
else
worksheetView()->scrollBy(10*(viewHeight - viewPos.y()));
m_dragScrollTimer->start();
}
void Worksheet::updateEntryCursor(QGraphicsSceneMouseEvent* event)
{
// determine the worksheet entry near which the entry cursor will be shown
resetEntryCursor();
if (event->button() == Qt::LeftButton && !focusItem())
{
const qreal y = event->scenePos().y();
for (WorksheetEntry* entry = firstEntry(); entry; entry = entry->next())
{
if (entry == firstEntry() && y < entry->y() )
{
m_choosenCursorEntry = firstEntry();
break;
}
else if (entry->y() < y && (entry->next() && y < entry->next()->y()))
{
m_choosenCursorEntry = entry->next();
break;
}
else if (entry->y() < y && entry == lastEntry())
{
m_isCursorEntryAfterLastEntry = true;
break;
}
}
}
if (m_choosenCursorEntry || m_isCursorEntryAfterLastEntry)
drawEntryCursor();
}
void Worksheet::addEntryFromEntryCursor()
{
qDebug() << "Add new entry from entry cursor";
if (m_isCursorEntryAfterLastEntry)
insertCommandEntry(lastEntry());
else
insertCommandEntryBefore(m_choosenCursorEntry);
resetEntryCursor();
}
void Worksheet::animateEntryCursor()
{
if ((m_choosenCursorEntry || m_isCursorEntryAfterLastEntry) && m_entryCursorItem)
m_entryCursorItem->setVisible(!m_entryCursorItem->isVisible());
}
void Worksheet::resetEntryCursor()
{
m_choosenCursorEntry = nullptr;
m_isCursorEntryAfterLastEntry = false;
m_entryCursorItem->hide();
}
void Worksheet::drawEntryCursor()
{
if (m_entryCursorItem && (m_choosenCursorEntry || (m_isCursorEntryAfterLastEntry && lastEntry())))
{
qreal x;
qreal y;
if (m_isCursorEntryAfterLastEntry)
{
x = lastEntry()->x();
y = lastEntry()->y() + lastEntry()->size().height() - (EntryCursorWidth - 1);
}
else
{
x = m_choosenCursorEntry->x();
y = m_choosenCursorEntry->y();
}
m_entryCursorItem->setLine(x,y,x+EntryCursorLength,y);
m_entryCursorItem->show();
}
}
+
+void Worksheet::setType(Worksheet::Type type)
+{
+ m_type = type;
+}
+
+Worksheet::Type Worksheet::type() const
+{
+ return m_type;
+}
diff --git a/src/worksheet.h b/src/worksheet.h
index 446ea7a6..4947ca3b 100644
--- a/src/worksheet.h
+++ b/src/worksheet.h
@@ -1,304 +1,326 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2009 Alexander Rieder <alexanderrieder@gmail.com>
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef WORKSHEET_H
#define WORKSHEET_H
#include <QGraphicsScene>
#include <QDomElement>
#include <QGraphicsLinearLayout>
#include <QSyntaxHighlighter>
#include <QGraphicsRectItem>
#include <KZip>
#include <QMenu>
#include "worksheetview.h"
#include "lib/epsrenderer.h"
+#include "mathrender.h"
#include "worksheetcursor.h"
namespace Cantor {
class Backend;
class Session;
class Expression;
}
class WorksheetEntry;
class PlaceHolderEntry;
class WorksheetTextItem;
class QAction;
class QDrag;
class QPrinter;
class KActionCollection;
class KToggleAction;
class KFontAction;
class KFontSizeAction;
class Worksheet : public QGraphicsScene
{
Q_OBJECT
public:
+ enum Type {
+ CantorWorksheet,
+ JupyterNotebook
+ };
+
Worksheet(Cantor::Backend* backend, QWidget* parent);
~Worksheet() override;
Cantor::Session* session();
void loginToSession();
bool isRunning();
bool isReadOnly();
bool showExpressionIds();
bool animationsEnabled();
+ bool embeddedMathEnabled();
bool isPrinting();
void setViewSize(qreal w, qreal h, qreal s, bool forceUpdate = false);
WorksheetView* worksheetView();
void makeVisible(WorksheetEntry*);
void makeVisible(const WorksheetCursor&);
void setModified();
void startDrag(WorksheetEntry* entry, QDrag* drag);
void createActions(KActionCollection*);
QMenu* createContextMenu();
void populateMenu(QMenu* menu, QPointF pos);
Cantor::EpsRenderer* epsRenderer();
+ MathRenderer* mathRenderer();
bool isEmpty();
bool isLoadingFromFile();
WorksheetEntry* currentEntry();
WorksheetEntry* firstEntry();
WorksheetEntry* lastEntry();
WorksheetTextItem* currentTextItem();
WorksheetTextItem* lastFocusedTextItem();
WorksheetCursor worksheetCursor();
void setWorksheetCursor(const WorksheetCursor&);
// For WorksheetEntry::startDrag
void resetEntryCursor();
void addProtrusion(qreal width);
void updateProtrusion(qreal oldWidth, qreal newWidth);
void removeProtrusion(qreal width);
bool isShortcut(const QKeySequence&);
+ void setType(Worksheet::Type type);
+ Worksheet::Type type() const;
+
// richtext
struct RichTextInfo {
bool bold;
bool italic;
bool underline;
bool strikeOut;
QString font;
qreal fontSize;
Qt::Alignment align;
};
public Q_SLOTS:
WorksheetEntry* appendCommandEntry();
void appendCommandEntry(const QString& text);
WorksheetEntry* appendTextEntry();
WorksheetEntry* appendMarkdownEntry();
WorksheetEntry* appendImageEntry();
WorksheetEntry* appendPageBreakEntry();
WorksheetEntry* appendLatexEntry();
WorksheetEntry* insertCommandEntry(WorksheetEntry* current = nullptr);
void insertCommandEntry(const QString& text);
WorksheetEntry* insertTextEntry(WorksheetEntry* current = nullptr);
WorksheetEntry* insertMarkdownEntry(WorksheetEntry* current = nullptr);
WorksheetEntry* insertImageEntry(WorksheetEntry* current = nullptr);
WorksheetEntry* insertPageBreakEntry(WorksheetEntry* current = nullptr);
WorksheetEntry* insertLatexEntry(WorksheetEntry* current = nullptr);
WorksheetEntry* insertCommandEntryBefore(WorksheetEntry* current = nullptr);
WorksheetEntry* insertTextEntryBefore(WorksheetEntry* current = nullptr);
WorksheetEntry* insertMarkdownEntryBefore(WorksheetEntry* current = nullptr);
WorksheetEntry* insertImageEntryBefore(WorksheetEntry* current = nullptr);
WorksheetEntry* insertPageBreakEntryBefore(WorksheetEntry* current = nullptr);
WorksheetEntry* insertLatexEntryBefore(WorksheetEntry* current = nullptr);
void updateLayout();
void updateEntrySize(WorksheetEntry*);
void print(QPrinter*);
void paste();
void focusEntry(WorksheetEntry*);
void evaluate();
void evaluateCurrentEntry();
void interrupt();
void interruptCurrentEntryEvaluation();
bool completionEnabled();
//void showCompletion();
void highlightItem(WorksheetTextItem*);
void rehighlight();
void enableHighlighting(bool);
void enableCompletion(bool);
void enableExpressionNumbering(bool);
void enableAnimations(bool);
+ void enableEmbeddedMath(bool);
QDomDocument toXML(KZip* archive = nullptr);
void save(const QString& filename);
void save(QIODevice*);
QByteArray saveToByteArray();
void savePlain(const QString& filename);
void saveLatex(const QString& filename);
bool load(QIODevice*);
void load(QByteArray* data);
bool load(const QString& filename);
void gotResult(Cantor::Expression* expr = nullptr);
void removeCurrentEntry();
void setFirstEntry(WorksheetEntry*);
void setLastEntry(WorksheetEntry*);
void invalidateFirstEntry();
void invalidateLastEntry();
void updateFocusedTextItem(WorksheetTextItem*);
void updateDragScrollTimer();
void registerShortcut(QAction*);
void updateShortcut();
// richtext
void setRichTextInformation(const Worksheet::RichTextInfo&);
void setAcceptRichText(bool b);
void setTextForegroundColor();
void setTextBackgroundColor();
void setTextBold(bool b);
void setTextItalic(bool b);
void setTextUnderline(bool b);
void setTextStrikeOut(bool b);
void setAlignLeft();
void setAlignRight();
void setAlignCenter();
void setAlignJustify();
void setFontFamily(const QString&);
void setFontSize(int size);
Q_SIGNALS:
void modified();
void loaded();
void showHelp(const QString&);
void updatePrompt();
void undoAvailable(bool);
void redoAvailable(bool);
void undo();
void redo();
void cutAvailable(bool);
void copyAvailable(bool);
void pasteAvailable(bool);
void cut();
void copy();
protected:
void contextMenuEvent(QGraphicsSceneContextMenuEvent*) override;
void mousePressEvent(QGraphicsSceneMouseEvent*) override;
void dragEnterEvent(QGraphicsSceneDragDropEvent*) override;
void dragLeaveEvent(QGraphicsSceneDragDropEvent*) override;
void dragMoveEvent(QGraphicsSceneDragDropEvent*) override;
void dropEvent(QGraphicsSceneDragDropEvent*) override;
void keyPressEvent(QKeyEvent*) override;
+ QJsonDocument toJupyterJson();
+
private Q_SLOTS:
void showCompletion();
//void checkEntriesForSanity();
WorksheetEntry* appendEntry(int type, bool focus = true);
WorksheetEntry* insertEntry(int type, WorksheetEntry* current = nullptr);
WorksheetEntry* insertEntryBefore(int type, WorksheetEntry* current = nullptr);
void animateEntryCursor();
private:
WorksheetEntry* entryAt(qreal x, qreal y);
WorksheetEntry* entryAt(QPointF p);
WorksheetEntry* entryAt(int row);
void updateEntryCursor(QGraphicsSceneMouseEvent*);
void addEntryFromEntryCursor();
void drawEntryCursor();
int entryCount();
+ bool loadCantorWorksheet(const KZip& archive);
+ bool loadJupyterNotebook(const QJsonDocument& doc);
+ void showInvalidNotebookSchemeError(QString additionalInfo = QString());
private:
static const double LeftMargin;
static const double RightMargin;
static const double TopMargin;
static const double EntryCursorLength;
static const double EntryCursorWidth;
Cantor::Session *m_session;
QSyntaxHighlighter* m_highlighter;
Cantor::EpsRenderer m_epsRenderer;
+ MathRenderer m_mathRenderer;
WorksheetEntry* m_firstEntry;
WorksheetEntry* m_lastEntry;
WorksheetEntry* m_dragEntry;
WorksheetEntry* m_choosenCursorEntry;
bool m_isCursorEntryAfterLastEntry;
QTimer* m_cursorItemTimer;
QGraphicsLineItem* m_entryCursorItem;
PlaceHolderEntry* m_placeholderEntry;
WorksheetTextItem* m_lastFocusedTextItem;
QTimer* m_dragScrollTimer;
double m_viewWidth;
double m_protrusion;
QMap<qreal, int> m_itemProtrusions;
QMap<QKeySequence, QAction*> m_shortcuts;
QList<QAction *> m_richTextActionList;
KToggleAction* m_boldAction;
KToggleAction* m_italicAction;
KToggleAction* m_underlineAction;
KToggleAction* m_strikeOutAction;
KFontAction* m_fontAction;
KFontSizeAction* m_fontSizeAction;
KToggleAction* m_alignLeftAction;
KToggleAction* m_alignCenterAction;
KToggleAction* m_alignRightAction;
KToggleAction* m_alignJustifyAction;
bool m_completionEnabled;
+ bool m_embeddedMathEnabled;
bool m_showExpressionIds;
bool m_animationsEnabled;
bool m_loginDone;
bool m_isPrinting;
bool m_isLoadingFromFile;
bool m_readOnly;
+ Type m_type = CantorWorksheet;
+
QString m_backendName;
+ QJsonObject* m_jupyterMetadata;
};
#endif // WORKSHEET_H
diff --git a/src/worksheetentry.cpp b/src/worksheetentry.cpp
index 19be15cc..091e0df9 100644
--- a/src/worksheetentry.cpp
+++ b/src/worksheetentry.cpp
@@ -1,813 +1,830 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "worksheetentry.h"
#include "commandentry.h"
#include "textentry.h"
#include "markdownentry.h"
#include "latexentry.h"
#include "imageentry.h"
#include "pagebreakentry.h"
#include "settings.h"
#include "actionbar.h"
#include "worksheettoolbutton.h"
#include <QDrag>
#include <QPropertyAnimation>
#include <QParallelAnimationGroup>
#include <QMetaMethod>
#include <QMimeData>
#include <QGraphicsProxyWidget>
#include <QBitmap>
+#include <QJsonArray>
+#include <QJsonObject>
#include <QIcon>
#include <KLocalizedString>
#include <QDebug>
struct AnimationData
{
QAnimationGroup* animation;
QPropertyAnimation* sizeAnimation;
QPropertyAnimation* opacAnimation;
QPropertyAnimation* posAnimation;
const char* slot;
QGraphicsObject* item;
};
const qreal WorksheetEntry::VerticalMargin = 4;
WorksheetEntry::WorksheetEntry(Worksheet* worksheet) : QGraphicsObject()
{
m_next = nullptr;
m_prev = nullptr;
m_animation = nullptr;
m_actionBar = nullptr;
m_actionBarAnimation = nullptr;
m_aboutToBeRemoved = false;
+ m_jupyterMetadata = nullptr;
setAcceptHoverEvents(true);
worksheet->addItem(this);
}
WorksheetEntry::~WorksheetEntry()
{
emit aboutToBeDeleted();
if (next())
next()->setPrevious(previous());
if (previous())
previous()->setNext(next());
if (m_animation) {
m_animation->animation->deleteLater();
delete m_animation;
}
+ if (m_jupyterMetadata)
+ delete m_jupyterMetadata;
}
int WorksheetEntry::type() const
{
return Type;
}
WorksheetEntry* WorksheetEntry::create(int t, Worksheet* worksheet)
{
switch(t)
{
case TextEntry::Type:
return new TextEntry(worksheet);
case MarkdownEntry::Type:
return new MarkdownEntry(worksheet);
case CommandEntry::Type:
return new CommandEntry(worksheet);
case ImageEntry::Type:
return new ImageEntry(worksheet);
case PageBreakEntry::Type:
return new PageBreakEntry(worksheet);
case LatexEntry::Type:
return new LatexEntry(worksheet);
default:
return nullptr;
}
}
void WorksheetEntry::insertCommandEntry()
{
worksheet()->insertCommandEntry(this);
}
void WorksheetEntry::insertTextEntry()
{
worksheet()->insertTextEntry(this);
}
void WorksheetEntry::insertMarkdownEntry()
{
worksheet()->insertMarkdownEntry(this);
}
void WorksheetEntry::insertLatexEntry()
{
worksheet()->insertLatexEntry(this);
}
void WorksheetEntry::insertImageEntry()
{
worksheet()->insertImageEntry(this);
}
void WorksheetEntry::insertPageBreakEntry()
{
worksheet()->insertPageBreakEntry(this);
}
void WorksheetEntry::insertCommandEntryBefore()
{
worksheet()->insertCommandEntryBefore(this);
}
void WorksheetEntry::insertTextEntryBefore()
{
worksheet()->insertTextEntryBefore(this);
}
void WorksheetEntry::insertMarkdownEntryBefore()
{
worksheet()->insertMarkdownEntryBefore(this);
}
void WorksheetEntry::insertLatexEntryBefore()
{
worksheet()->insertLatexEntryBefore(this);
}
void WorksheetEntry::insertImageEntryBefore()
{
worksheet()->insertImageEntryBefore(this);
}
void WorksheetEntry::insertPageBreakEntryBefore()
{
worksheet()->insertPageBreakEntryBefore(this);
}
void WorksheetEntry::showCompletion()
{
}
WorksheetEntry* WorksheetEntry::next() const
{
return m_next;
}
WorksheetEntry* WorksheetEntry::previous() const
{
return m_prev;
}
void WorksheetEntry::setNext(WorksheetEntry* n)
{
m_next = n;
}
void WorksheetEntry::setPrevious(WorksheetEntry* p)
{
m_prev = p;
}
void WorksheetEntry::startDrag(QPointF grabPos)
{
// We need reset entry cursor manually, because otherwise the entry cursor will be visible on dragable item
worksheet()->resetEntryCursor();
QDrag* drag = new QDrag(worksheetView());
qDebug() << size();
const qreal scale = worksheet()->epsRenderer()->scale();
QPixmap pixmap((size()*scale).toSize());
pixmap.fill(QColor(255, 255, 255, 0));
QPainter painter(&pixmap);
const QRectF sceneRect = mapRectToScene(boundingRect());
worksheet()->render(&painter, pixmap.rect(), sceneRect);
painter.end();
QBitmap mask = pixmap.createMaskFromColor(QColor(255, 255, 255),
Qt::MaskInColor);
pixmap.setMask(mask);
drag->setPixmap(pixmap);
if (grabPos.isNull()) {
const QPointF scenePos = worksheetView()->sceneCursorPos();
drag->setHotSpot((mapFromScene(scenePos) * scale).toPoint());
} else {
drag->setHotSpot((grabPos * scale).toPoint());
}
drag->setMimeData(new QMimeData());
worksheet()->startDrag(this, drag);
}
QRectF WorksheetEntry::boundingRect() const
{
return QRectF(QPointF(0,0), m_size);
}
void WorksheetEntry::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
Q_UNUSED(painter);
Q_UNUSED(option);
Q_UNUSED(widget);
}
bool WorksheetEntry::focusEntry(int pos, qreal xCoord)
{
Q_UNUSED(pos);
Q_UNUSED(xCoord);
if (flags() & QGraphicsItem::ItemIsFocusable) {
setFocus();
return true;
}
return false;
}
void WorksheetEntry::moveToPreviousEntry(int pos, qreal x)
{
WorksheetEntry* entry = previous();
while (entry && !(entry->wantFocus() && entry->focusEntry(pos, x)))
entry = entry->previous();
}
void WorksheetEntry::moveToNextEntry(int pos, qreal x)
{
WorksheetEntry* entry = next();
while (entry && !(entry->wantFocus() && entry->focusEntry(pos, x)))
entry = entry->next();
}
Worksheet* WorksheetEntry::worksheet()
{
return qobject_cast<Worksheet*>(scene());
}
WorksheetView* WorksheetEntry::worksheetView()
{
return worksheet()->worksheetView();
}
WorksheetCursor WorksheetEntry::search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos)
{
Q_UNUSED(pattern);
Q_UNUSED(flags);
Q_UNUSED(qt_flags);
Q_UNUSED(pos);
return WorksheetCursor();
}
void WorksheetEntry::keyPressEvent(QKeyEvent* event)
{
// This event is used in Entries that set the ItemIsFocusable flag
switch(event->key()) {
case Qt::Key_Left:
case Qt::Key_Up:
if (event->modifiers() == Qt::NoModifier)
moveToPreviousEntry(WorksheetTextItem::BottomRight, 0);
break;
case Qt::Key_Right:
case Qt::Key_Down:
if (event->modifiers() == Qt::NoModifier)
moveToNextEntry(WorksheetTextItem::TopLeft, 0);
break;
/*case Qt::Key_Enter:
case Qt::Key_Return:
if (event->modifiers() == Qt::ShiftModifier)
evaluate();
else if (event->modifiers() == Qt::ControlModifier)
worksheet()->insertCommandEntry();
break;
case Qt::Key_Delete:
if (event->modifiers() == Qt::ShiftModifier)
startRemoving();
break;*/
default:
event->ignore();
}
}
void WorksheetEntry::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
QMenu *menu = worksheet()->createContextMenu();
populateMenu(menu, event->pos());
menu->popup(event->screenPos());
}
void WorksheetEntry::populateMenu(QMenu* menu, QPointF pos)
{
if (!worksheet()->isRunning() && wantToEvaluate())
menu->addAction(QIcon::fromTheme(QLatin1String("media-playback-start")), i18n("Evaluate Entry"), this, SLOT(evaluate()), 0);
menu->addAction(QIcon::fromTheme(QLatin1String("edit-delete")), i18n("Remove Entry"), this, SLOT(startRemoving()), 0);
menu->addSeparator();
worksheet()->populateMenu(menu, mapToScene(pos));
}
bool WorksheetEntry::evaluateCurrentItem()
{
// A default implementation that works well for most entries,
// because they have only one item.
return evaluate();
}
void WorksheetEntry::evaluateNext(EvaluationOption opt)
{
// For cases, when code want *just* evaluate
// the entry, for example, on load stage.
// This internal evaluation shouldn't marked as
// modifying change.
if (opt == InternalEvaluation)
return;
WorksheetEntry* entry = next();
while (entry && !entry->wantFocus())
entry = entry->next();
if (entry) {
if (opt == EvaluateNext || Settings::self()->autoEval()) {
entry->evaluate(EvaluateNext);
} else if (opt == FocusNext) {
worksheet()->setModified();
entry->focusEntry(WorksheetTextItem::BottomRight);
} else {
worksheet()->setModified();
}
} else if (opt != DoNothing) {
if (!worksheet()->isLoadingFromFile() && (!isEmpty() || type() != CommandEntry::Type))
worksheet()->appendCommandEntry();
else
focusEntry();
worksheet()->setModified();
}
}
qreal WorksheetEntry::setGeometry(qreal x, qreal y, qreal w)
{
setPos(x, y);
layOutForWidth(w);
return size().height();
}
void WorksheetEntry::recalculateSize()
{
qreal height = size().height();
layOutForWidth(size().width(), true);
if (height != size().height())
worksheet()->updateEntrySize(this);
}
QPropertyAnimation* WorksheetEntry::sizeChangeAnimation(QSizeF s)
{
QSizeF oldSize;
QSizeF newSize;
if (s.isValid()) {
oldSize = size();
newSize = s;
} else {
oldSize = size();
layOutForWidth(size().width(), true);
newSize = size();
}
QPropertyAnimation* sizeAn = new QPropertyAnimation(this, "size", this);
sizeAn->setDuration(200);
sizeAn->setStartValue(oldSize);
sizeAn->setEndValue(newSize);
sizeAn->setEasingCurve(QEasingCurve::InOutQuad);
connect(sizeAn, &QPropertyAnimation::valueChanged, this, &WorksheetEntry::sizeAnimated);
return sizeAn;
}
void WorksheetEntry::sizeAnimated()
{
worksheet()->updateEntrySize(this);
}
void WorksheetEntry::animateSizeChange()
{
if (!worksheet()->animationsEnabled()) {
recalculateSize();
return;
}
if (m_animation) {
layOutForWidth(size().width(), true);
return;
}
QPropertyAnimation* sizeAn = sizeChangeAnimation();
m_animation = new AnimationData;
m_animation->item = nullptr;
m_animation->slot = nullptr;
m_animation->opacAnimation = nullptr;
m_animation->posAnimation = nullptr;
m_animation->sizeAnimation = sizeAn;
m_animation->sizeAnimation->setEasingCurve(QEasingCurve::OutCubic);
m_animation->animation = new QParallelAnimationGroup(this);
m_animation->animation->addAnimation(m_animation->sizeAnimation);
connect(m_animation->animation, &QAnimationGroup::finished, this, &WorksheetEntry::endAnimation);
m_animation->animation->start();
}
void WorksheetEntry::fadeInItem(QGraphicsObject* item, const char* slot)
{
if (!worksheet()->animationsEnabled()) {
recalculateSize();
if (slot)
invokeSlotOnObject(slot, item);
return;
}
if (m_animation) {
// this calculates the new size and calls updateSizeAnimation
layOutForWidth(size().width(), true);
if (slot)
invokeSlotOnObject(slot, item);
return;
}
QPropertyAnimation* sizeAn = sizeChangeAnimation();
m_animation = new AnimationData;
m_animation->sizeAnimation = sizeAn;
m_animation->sizeAnimation->setEasingCurve(QEasingCurve::OutCubic);
m_animation->opacAnimation = new QPropertyAnimation(item, "opacity", this);
m_animation->opacAnimation->setDuration(200);
m_animation->opacAnimation->setStartValue(0);
m_animation->opacAnimation->setEndValue(1);
m_animation->opacAnimation->setEasingCurve(QEasingCurve::OutCubic);
m_animation->posAnimation = nullptr;
m_animation->animation = new QParallelAnimationGroup(this);
m_animation->item = item;
m_animation->slot = slot;
m_animation->animation->addAnimation(m_animation->sizeAnimation);
m_animation->animation->addAnimation(m_animation->opacAnimation);
connect(m_animation->animation, &QAnimationGroup::finished, this, &WorksheetEntry::endAnimation);
m_animation->animation->start();
}
void WorksheetEntry::fadeOutItem(QGraphicsObject* item, const char* slot)
{
// Note: The default value for slot is SLOT(deleteLater()), so item
// will be deleted after the animation.
if (!worksheet()->animationsEnabled()) {
recalculateSize();
if (slot)
invokeSlotOnObject(slot, item);
return;
}
if (m_animation) {
// this calculates the new size and calls updateSizeAnimation
layOutForWidth(size().width(), true);
if (slot)
invokeSlotOnObject(slot, item);
return;
}
QPropertyAnimation* sizeAn = sizeChangeAnimation();
m_animation = new AnimationData;
m_animation->sizeAnimation = sizeAn;
m_animation->opacAnimation = new QPropertyAnimation(item, "opacity", this);
m_animation->opacAnimation->setDuration(200);
m_animation->opacAnimation->setStartValue(1);
m_animation->opacAnimation->setEndValue(0);
m_animation->opacAnimation->setEasingCurve(QEasingCurve::OutCubic);
m_animation->posAnimation = nullptr;
m_animation->animation = new QParallelAnimationGroup(this);
m_animation->item = item;
m_animation->slot = slot;
m_animation->animation->addAnimation(m_animation->sizeAnimation);
m_animation->animation->addAnimation(m_animation->opacAnimation);
connect(m_animation->animation, &QAnimationGroup::finished, this, &WorksheetEntry::endAnimation);
m_animation->animation->start();
}
void WorksheetEntry::endAnimation()
{
if (!m_animation)
return;
QAnimationGroup* anim = m_animation->animation;
if (anim->state() == QAbstractAnimation::Running) {
anim->stop();
if (m_animation->sizeAnimation)
setSize(m_animation->sizeAnimation->endValue().toSizeF());
if (m_animation->opacAnimation) {
qreal opac = m_animation->opacAnimation->endValue().value<qreal>();
m_animation->item->setOpacity(opac);
}
if (m_animation->posAnimation) {
const QPointF& pos = m_animation->posAnimation->endValue().toPointF();
m_animation->item->setPos(pos);
}
// If the animation was connected to a slot, call it
if (m_animation->slot)
invokeSlotOnObject(m_animation->slot, m_animation->item);
}
m_animation->animation->deleteLater();
delete m_animation;
m_animation = nullptr;
}
bool WorksheetEntry::animationActive()
{
return m_animation;
}
void WorksheetEntry::updateSizeAnimation(QSizeF size)
{
// Update the current animation, so that the new ending will be size
if (!m_animation)
return;
if (m_aboutToBeRemoved)
// do not modify the remove-animation
return;
if (m_animation->sizeAnimation) {
QPropertyAnimation* sizeAn = m_animation->sizeAnimation;
qreal progress = static_cast<qreal>(sizeAn->currentTime()) /
sizeAn->totalDuration();
QEasingCurve curve = sizeAn->easingCurve();
qreal value = curve.valueForProgress(progress);
sizeAn->setEndValue(size);
QSizeF newStart = 1/(1-value)*(sizeAn->currentValue().toSizeF() - value*size);
sizeAn->setStartValue(newStart);
} else {
m_animation->sizeAnimation = sizeChangeAnimation(size);
int d = m_animation->animation->duration() -
m_animation->animation->currentTime();
m_animation->sizeAnimation->setDuration(d);
m_animation->animation->addAnimation(m_animation->sizeAnimation);
}
}
void WorksheetEntry::invokeSlotOnObject(const char* slot, QObject* obj)
{
const QMetaObject* metaObj = obj->metaObject();
const QByteArray normSlot = QMetaObject::normalizedSignature(slot);
const int slotIndex = metaObj->indexOfSlot(normSlot.constData());
if (slotIndex == -1)
qDebug() << "Warning: Tried to invoke an invalid slot:" << slot;
const QMetaMethod method = metaObj->method(slotIndex);
method.invoke(obj, Qt::DirectConnection);
}
bool WorksheetEntry::aboutToBeRemoved()
{
return m_aboutToBeRemoved;
}
void WorksheetEntry::startRemoving()
{
if (!worksheet()->animationsEnabled()) {
m_aboutToBeRemoved = true;
remove();
return;
}
if (m_aboutToBeRemoved)
return;
if (focusItem()) {
if (!next()) {
if (previous() && previous()->isEmpty() &&
!previous()->aboutToBeRemoved()) {
previous()->focusEntry();
} else {
WorksheetEntry* next = worksheet()->appendCommandEntry();
setNext(next);
next->focusEntry();
}
} else {
next()->focusEntry();
}
}
if (m_animation) {
endAnimation();
}
m_aboutToBeRemoved = true;
m_animation = new AnimationData;
m_animation->sizeAnimation = new QPropertyAnimation(this, "size", this);
m_animation->sizeAnimation->setDuration(300);
m_animation->sizeAnimation->setEndValue(QSizeF(size().width(), 0));
m_animation->sizeAnimation->setEasingCurve(QEasingCurve::InOutQuad);
connect(m_animation->sizeAnimation, &QPropertyAnimation::valueChanged, this, &WorksheetEntry::sizeAnimated);
connect(m_animation->sizeAnimation, &QPropertyAnimation::finished, this, &WorksheetEntry::remove);
m_animation->opacAnimation = new QPropertyAnimation(this, "opacity", this);
m_animation->opacAnimation->setDuration(300);
m_animation->opacAnimation->setEndValue(0);
m_animation->opacAnimation->setEasingCurve(QEasingCurve::OutCubic);
m_animation->posAnimation = nullptr;
m_animation->animation = new QParallelAnimationGroup(this);
m_animation->animation->addAnimation(m_animation->sizeAnimation);
m_animation->animation->addAnimation(m_animation->opacAnimation);
m_animation->animation->start();
}
bool WorksheetEntry::stopRemoving()
{
if (!m_aboutToBeRemoved)
return true;
if (m_animation->animation->state() == QAbstractAnimation::Stopped)
// we are too late to stop the deletion
return false;
m_aboutToBeRemoved = false;
m_animation->animation->stop();
m_animation->animation->deleteLater();
delete m_animation;
m_animation = nullptr;
return true;
}
void WorksheetEntry::remove()
{
if (!m_aboutToBeRemoved)
return;
if (previous() && previous()->next() == this)
previous()->setNext(next());
else
worksheet()->setFirstEntry(next());
if (next() && next()->previous() == this)
next()->setPrevious(previous());
else
worksheet()->setLastEntry(previous());
// make the entry invisible to QGraphicsScene's itemAt() function
hide();
worksheet()->updateLayout();
deleteLater();
}
void WorksheetEntry::setSize(QSizeF size)
{
prepareGeometryChange();
if (m_actionBar && size != m_size)
m_actionBar->updatePosition();
m_size = size;
}
QSizeF WorksheetEntry::size()
{
return m_size;
}
bool WorksheetEntry::hasActionBar()
{
return m_actionBar;
}
void WorksheetEntry::showActionBar()
{
if (m_actionBar && !m_actionBarAnimation)
return;
if (m_actionBarAnimation) {
if (m_actionBarAnimation->endValue().toReal() == 1)
return;
m_actionBarAnimation->stop();
delete m_actionBarAnimation;
m_actionBarAnimation = nullptr;
}
if (!m_actionBar) {
m_actionBar = new ActionBar(this);
m_actionBar->addButton(QIcon::fromTheme(QLatin1String("edit-delete")), i18n("Remove Entry"),
this, SLOT(startRemoving()));
WorksheetToolButton* dragButton;
dragButton = m_actionBar->addButton(QIcon::fromTheme(QLatin1String("transform-move")),
i18n("Drag Entry"));
connect(dragButton, SIGNAL(pressed()), this, SLOT(startDrag()));
if (wantToEvaluate()) {
QString toolTip = i18n("Evaluate Entry");
m_actionBar->addButton(QIcon::fromTheme(QLatin1String("media-playback-start")), toolTip,
this, SLOT(evaluate()));
}
m_actionBar->addSpace();
addActionsToBar(m_actionBar);
}
if (worksheet()->animationsEnabled()) {
m_actionBarAnimation = new QPropertyAnimation(m_actionBar, "opacity",
this);
m_actionBarAnimation->setStartValue(0);
m_actionBarAnimation->setKeyValueAt(0.666, 0);
m_actionBarAnimation->setEndValue(1);
m_actionBarAnimation->setDuration(600);
connect(m_actionBarAnimation, &QPropertyAnimation::finished, this, &WorksheetEntry::deleteActionBarAnimation);
m_actionBarAnimation->start();
}
}
void WorksheetEntry::hideActionBar()
{
if (!m_actionBar)
return;
if (m_actionBarAnimation) {
if (m_actionBarAnimation->endValue().toReal() == 0)
return;
m_actionBarAnimation->stop();
delete m_actionBarAnimation;
m_actionBarAnimation = nullptr;
}
if (worksheet()->animationsEnabled()) {
m_actionBarAnimation = new QPropertyAnimation(m_actionBar, "opacity",
this);
m_actionBarAnimation->setEndValue(0);
m_actionBarAnimation->setEasingCurve(QEasingCurve::Linear);
m_actionBarAnimation->setDuration(200);
connect(m_actionBarAnimation, &QPropertyAnimation::finished, this, &WorksheetEntry::deleteActionBar);
m_actionBarAnimation->start();
} else {
deleteActionBar();
}
}
void WorksheetEntry::deleteActionBarAnimation()
{
if (m_actionBarAnimation) {
delete m_actionBarAnimation;
m_actionBarAnimation = nullptr;
}
}
void WorksheetEntry::deleteActionBar()
{
if (m_actionBar) {
delete m_actionBar;
m_actionBar = nullptr;
}
deleteActionBarAnimation();
}
void WorksheetEntry::addActionsToBar(ActionBar*)
{
}
void WorksheetEntry::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
Q_UNUSED(event);
showActionBar();
}
void WorksheetEntry::hoverLeaveEvent(QGraphicsSceneHoverEvent* event)
{
Q_UNUSED(event);
hideActionBar();
}
WorksheetTextItem* WorksheetEntry::highlightItem()
{
return nullptr;
}
bool WorksheetEntry::wantFocus()
{
return true;
}
+
+QJsonObject WorksheetEntry::jupyterMetadata() const
+{
+ return m_jupyterMetadata ? *m_jupyterMetadata : QJsonObject();
+}
+
+void WorksheetEntry::setJupyterMetadata(QJsonObject metadata)
+{
+ if (m_jupyterMetadata == nullptr)
+ m_jupyterMetadata = new QJsonObject();
+ *m_jupyterMetadata = metadata;
+}
diff --git a/src/worksheetentry.h b/src/worksheetentry.h
index 54031692..759a760d 100644
--- a/src/worksheetentry.h
+++ b/src/worksheetentry.h
@@ -1,190 +1,197 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef WORKSHEETENTRY_H
#define WORKSHEETENTRY_H
#include <QGraphicsObject>
#include <QGraphicsSceneContextMenuEvent>
#include "worksheet.h"
#include "worksheettextitem.h"
#include "worksheetcursor.h"
class TextEntry;
class MarkdownEntry;
class CommandEntry;
class ImageEntry;
class PageBreakEntry;
class LaTeXEntry;
class WorksheetTextItem;
class ActionBar;
class QPainter;
class QWidget;
class QPropertyAnimation;
+class QJsonObject;
struct AnimationData;
class WorksheetEntry : public QGraphicsObject
{
Q_OBJECT
public:
explicit WorksheetEntry(Worksheet* worksheet);
~WorksheetEntry() override;
enum {Type = UserType};
int type() const override;
virtual bool isEmpty()=0;
static WorksheetEntry* create(int t, Worksheet* worksheet);
WorksheetEntry* next() const;
WorksheetEntry* previous() const;
void setNext(WorksheetEntry*);
void setPrevious(WorksheetEntry*);
QRectF boundingRect() const override;
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = nullptr) override;
virtual bool acceptRichText() = 0;
virtual void setContent(const QString& content)=0;
virtual void setContent(const QDomElement& content, const KZip& file)=0;
+ virtual void setContentFromJupyter(const QJsonObject& cell)=0;
virtual QDomElement toXml(QDomDocument& doc, KZip* archive)=0;
+ virtual QJsonValue toJupyterJson()=0;
virtual QString toPlain(const QString& commandSep, const QString& commentStartingSeq, const QString& commentEndingSeq)=0;
virtual void interruptEvaluation()=0;
virtual void showCompletion();
virtual bool focusEntry(int pos = WorksheetTextItem::TopLeft, qreal xCoord = 0);
virtual qreal setGeometry(qreal x, qreal y, qreal w);
virtual void layOutForWidth(qreal w, bool force = false) = 0;
QPropertyAnimation* sizeChangeAnimation(QSizeF s = QSizeF());
virtual void populateMenu(QMenu* menu, QPointF pos);
bool aboutToBeRemoved();
QSizeF size();
enum EvaluationOption {
InternalEvaluation, DoNothing, FocusNext, EvaluateNext
};
virtual WorksheetTextItem* highlightItem();
bool hasActionBar();
enum SearchFlag {SearchCommand=1, SearchResult=2, SearchError=4,
SearchText=8, SearchLaTeX=16, SearchAll=31};
virtual WorksheetCursor search(const QString& pattern, unsigned flags,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos = WorksheetCursor());
public Q_SLOTS:
virtual bool evaluate(WorksheetEntry::EvaluationOption evalOp = FocusNext) = 0;
virtual bool evaluateCurrentItem();
virtual void updateEntry() = 0;
void insertCommandEntry();
void insertTextEntry();
void insertMarkdownEntry();
void insertLatexEntry();
void insertImageEntry();
void insertPageBreakEntry();
void insertCommandEntryBefore();
void insertTextEntryBefore();
void insertMarkdownEntryBefore();
void insertLatexEntryBefore();
void insertImageEntryBefore();
void insertPageBreakEntryBefore();
virtual void sizeAnimated();
virtual void startRemoving();
bool stopRemoving();
void moveToPreviousEntry(int pos = WorksheetTextItem::BottomRight, qreal x = 0);
void moveToNextEntry(int pos = WorksheetTextItem::TopLeft, qreal x = 0);
void recalculateSize();
// similar to recalculateSize, but the size change is animated
void animateSizeChange();
// animate the size change and the opacity of item
void fadeInItem(QGraphicsObject* item = nullptr, const char* slot = nullptr);
void fadeOutItem(QGraphicsObject* item = nullptr, const char* slot = "deleteLater()");
void endAnimation();
void showActionBar();
void hideActionBar();
void startDrag(QPointF grabPos = QPointF());
Q_SIGNALS:
void aboutToBeDeleted();
protected:
Worksheet* worksheet();
WorksheetView* worksheetView();
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
void evaluateNext(EvaluationOption opt);
void hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
void hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
void setSize(QSizeF size);
bool animationActive();
void updateSizeAnimation(QSizeF size);
void invokeSlotOnObject(const char* slot, QObject* obj);
virtual void addActionsToBar(ActionBar* actionBar);
virtual bool wantToEvaluate() = 0;
virtual bool wantFocus();
+ QJsonObject jupyterMetadata() const;
+ void setJupyterMetadata(QJsonObject metadata);
+
protected Q_SLOTS:
virtual void remove();
void deleteActionBar();
void deleteActionBarAnimation();
protected:
static const qreal VerticalMargin;
private:
QSizeF m_size;
WorksheetEntry* m_prev;
WorksheetEntry* m_next;
Q_PROPERTY(QSizeF size READ size WRITE setSize)
AnimationData* m_animation;
ActionBar* m_actionBar;
QPropertyAnimation* m_actionBarAnimation;
bool m_aboutToBeRemoved;
+ QJsonObject* m_jupyterMetadata;
};
#endif // WORKSHEETENTRY_H
diff --git a/src/worksheetimageitem.cpp b/src/worksheetimageitem.cpp
index 9cb1971b..30dfe4f8 100644
--- a/src/worksheetimageitem.cpp
+++ b/src/worksheetimageitem.cpp
@@ -1,160 +1,172 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "worksheetimageitem.h"
#include "worksheet.h"
#include <QMovie>
#include <QImage>
#include <QGraphicsSceneContextMenuEvent>
#include <QUrl>
#include <QMenu>
#include <QDebug>
WorksheetImageItem::WorksheetImageItem(QGraphicsObject* parent)
: QGraphicsObject(parent)
{
connect(this, SIGNAL(menuCreated(QMenu*,QPointF)), parent,
SLOT(populateMenu(QMenu*,QPointF)), Qt::DirectConnection);
m_maxWidth = 0;
}
WorksheetImageItem::~WorksheetImageItem()
{
if (worksheet() && m_maxWidth > 0 && width() > m_maxWidth)
worksheet()->removeProtrusion(width() - m_maxWidth);
}
int WorksheetImageItem::type() const
{
return Type;
}
bool WorksheetImageItem::imageIsValid()
{
return !m_pixmap.isNull();
}
qreal WorksheetImageItem::setGeometry(qreal x, qreal y, qreal w, bool centered)
{
if (width() <= w && centered) {
setPos(x + w/2 - width()/2, y);
} else {
setPos(x, y);
if (m_maxWidth < width())
worksheet()->updateProtrusion(width() - m_maxWidth, width() - w);
else
worksheet()->addProtrusion(width() - w);
}
m_maxWidth = w;
return height();
}
qreal WorksheetImageItem::height() const
{
return m_size.height();
}
qreal WorksheetImageItem::width() const
{
return m_size.width();
}
QSizeF WorksheetImageItem::size()
{
return m_size;
}
void WorksheetImageItem::setSize(QSizeF size)
{
qreal oldProtrusion = x() + m_size.width() - m_maxWidth;
qreal newProtrusion = x() + size.width() - m_maxWidth;
if (oldProtrusion > 0) {
if (newProtrusion > 0)
worksheet()->updateProtrusion(oldProtrusion, newProtrusion);
else
worksheet()->removeProtrusion(oldProtrusion);
} else {
if (newProtrusion > 0)
worksheet()->addProtrusion(newProtrusion);
}
m_size = size;
}
QSize WorksheetImageItem::imageSize()
{
return m_pixmap.size();
}
QRectF WorksheetImageItem::boundingRect() const
{
return QRectF(QPointF(0, 0), m_size);
}
#include <QStyleOptionGraphicsItem>
void WorksheetImageItem::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter->drawPixmap(QRectF(QPointF(0,0), m_size), m_pixmap,
m_pixmap.rect());
}
void WorksheetImageItem::setEps(const QUrl& url)
{
const QImage img = worksheet()->epsRenderer()->renderToImage(url, &m_size);
m_pixmap = QPixmap::fromImage(img.convertToFormat(QImage::Format_ARGB32));
}
void WorksheetImageItem::setImage(QImage img)
{
m_pixmap = QPixmap::fromImage(img);
setSize(m_pixmap.size());
}
+void WorksheetImageItem::setImage(QImage img, QSize displaySize)
+{
+ m_pixmap = QPixmap::fromImage(img);
+ m_pixmap = m_pixmap.scaled(displaySize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+ setSize(m_pixmap.size());
+}
+
void WorksheetImageItem::setPixmap(QPixmap pixmap)
{
m_pixmap = pixmap;
}
+QPixmap WorksheetImageItem::pixmap() const
+{
+ return m_pixmap;
+}
+
void WorksheetImageItem::populateMenu(QMenu* menu, QPointF pos)
{
emit menuCreated(menu, mapToParent(pos));
}
void WorksheetImageItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
QMenu *menu = worksheet()->createContextMenu();
populateMenu(menu, event->pos());
menu->popup(event->screenPos());
}
Worksheet* WorksheetImageItem::worksheet()
{
return qobject_cast<Worksheet*>(scene());
}
diff --git a/src/worksheetimageitem.h b/src/worksheetimageitem.h
index a8817484..d6fd1ed1 100644
--- a/src/worksheetimageitem.h
+++ b/src/worksheetimageitem.h
@@ -1,78 +1,80 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#ifndef WORKSHEETIMAGEITEM_H
#define WORKSHEETIMAGEITEM_H
#include <QPixmap>
#include <QGraphicsObject>
class Worksheet;
class QImage;
class QGraphicsSceneContextMenuEvent;
class QMenu;
class WorksheetImageItem : public QGraphicsObject
{
Q_OBJECT
public:
explicit WorksheetImageItem(QGraphicsObject* parent);
~WorksheetImageItem() override;
enum {Type = UserType + 101};
int type() const override;
bool imageIsValid();
virtual qreal setGeometry(qreal x, qreal y, qreal w, bool centered=false);
qreal height() const;
qreal width() const;
QSizeF size();
void setSize(QSizeF size);
QSize imageSize();
QRectF boundingRect() const override;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget = nullptr) override;
void setEps(const QUrl &url);
void setImage(QImage img);
+ void setImage(QImage img, QSize displaySize);
void setPixmap(QPixmap pixmap);
+ QPixmap pixmap() const;
virtual void populateMenu(QMenu* menu, QPointF pos);
Worksheet* worksheet();
Q_SIGNALS:
void sizeChanged();
void menuCreated(QMenu*, QPointF);
protected:
void contextMenuEvent(QGraphicsSceneContextMenuEvent*) override;
private:
QPixmap m_pixmap;
QSizeF m_size;
qreal m_maxWidth;
};
#endif //WORKSHEETIMAGEITEM_H
diff --git a/src/worksheettextitem.cpp b/src/worksheettextitem.cpp
index c7590e8d..2f5acd91 100644
--- a/src/worksheettextitem.cpp
+++ b/src/worksheettextitem.cpp
@@ -1,926 +1,928 @@
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
---
Copyright (C) 2012 Martin Kuettler <martin.kuettler@gmail.com>
*/
#include "worksheettextitem.h"
#include "worksheet.h"
#include "worksheetentry.h"
#include "lib/epsrenderer.h"
#include "worksheetcursor.h"
+#include "extended_document.h"
#include <QApplication>
#include <QClipboard>
#include <QMimeData>
#include <QTextDocument>
#include <QAbstractTextDocumentLayout>
#include <QTextCursor>
#include <QTextBlock>
#include <QTextLine>
#include <QGraphicsSceneResizeEvent>
#include <QtGlobal>
#include <QDebug>
#include <KStandardAction>
#include <QAction>
#include <QColorDialog>
#include <KColorScheme>
#include <QFontDatabase>
WorksheetTextItem::WorksheetTextItem(QGraphicsObject* parent, Qt::TextInteractionFlags ti)
: QGraphicsTextItem(parent)
{
+ setDocument(new ExtendedDocument(this));
setTextInteractionFlags(ti);
if (ti & Qt::TextEditable) {
setCursor(Qt::IBeamCursor);
connect(this, SIGNAL(sizeChanged()), parent,
SLOT(recalculateSize()));
}
m_completionEnabled = false;
m_completionActive = false;
m_itemDragable = false;
m_richTextEnabled = false;
m_size = document()->size();;
m_maxWidth = -1;
setAcceptDrops(true);
setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
connect(document(), SIGNAL(contentsChanged()), this, SLOT(testSize()));
connect(this, SIGNAL(menuCreated(QMenu*,QPointF)), parent,
SLOT(populateMenu(QMenu*,QPointF)), Qt::DirectConnection);
connect(this, SIGNAL(deleteEntry()), parent, SLOT(startRemoving()));
connect(this, &WorksheetTextItem::cursorPositionChanged, this, &WorksheetTextItem::updateRichTextActions);
connect(document(), SIGNAL(undoAvailable(bool)),
this, SIGNAL(undoAvailable(bool)));
connect(document(), SIGNAL(redoAvailable(bool)),
this, SIGNAL(redoAvailable(bool)));
}
WorksheetTextItem::~WorksheetTextItem()
{
if (worksheet() && this == worksheet()->lastFocusedTextItem())
worksheet()->updateFocusedTextItem(nullptr);
if (worksheet() && m_maxWidth > 0 && width() > m_maxWidth)
worksheet()->removeProtrusion(width() - m_maxWidth);
}
int WorksheetTextItem::type() const
{
return Type;
}
/*
void WorksheetTextItem::setHeight()
{
m_height = height();
}
*/
void WorksheetTextItem::testSize()
{
qreal h = document()->size().height();
if (h != m_size.height()) {
emit sizeChanged();
m_size.setHeight(h);
}
qreal w = document()->size().width();
if (w != m_size.width()) {
if (m_maxWidth > 0) {
qreal oldDiff = m_size.width() - m_maxWidth;
qreal newDiff = w - m_maxWidth;
if (w > m_maxWidth) {
if (m_size.width() > m_maxWidth)
worksheet()->updateProtrusion(oldDiff, newDiff);
else
worksheet()->addProtrusion(newDiff);
} else if (m_size.width() > m_maxWidth) {
worksheet()->removeProtrusion(oldDiff);
}
}
m_size.setWidth(w);
}
}
qreal WorksheetTextItem::setGeometry(qreal x, qreal y, qreal w, bool centered)
{
if (m_size.width() < w && centered)
setPos(x + w/2 - m_size.width()/2, y);
else
setPos(x,y);
qreal oldDiff = 0;
if (m_maxWidth > 0 && width() > m_maxWidth)
oldDiff = width() - m_maxWidth;
m_maxWidth = w;
setTextWidth(w);
m_size = document()->size();
if (oldDiff) {
if (m_size.width() > m_maxWidth) {
qreal newDiff = m_size.width() - m_maxWidth;
worksheet()->updateProtrusion(oldDiff, newDiff);
} else {
worksheet()->removeProtrusion(oldDiff);
}
} else if (m_size.width() > m_maxWidth) {
qreal newDiff = m_size.width() - m_maxWidth;
worksheet()->addProtrusion(newDiff);
}
return m_size.height();
}
void WorksheetTextItem::populateMenu(QMenu* menu, QPointF pos)
{
qDebug() << "populate Menu";
QAction * cut = KStandardAction::cut(this, SLOT(cut()), menu);
QAction * copy = KStandardAction::copy(this, SLOT(copy()), menu);
QAction * paste = KStandardAction::paste(this, SLOT(paste()), menu);
if (!textCursor().hasSelection()) {
cut->setEnabled(false);
copy->setEnabled(false);
}
if (QApplication::clipboard()->text().isEmpty()) {
paste->setEnabled(false);
}
bool actionAdded = false;
if (isEditable()) {
menu->addAction(cut);
actionAdded = true;
}
if (!m_itemDragable && (flags() & Qt::TextSelectableByMouse)) {
menu->addAction(copy);
actionAdded = true;
}
if (isEditable()) {
menu->addAction(paste);
actionAdded = true;
}
if (actionAdded)
menu->addSeparator();
emit menuCreated(menu, mapToParent(pos));
}
QKeyEvent* WorksheetTextItem::eventForStandardAction(KStandardAction::StandardAction actionID)
{
// there must be a better way to get the shortcut...
QAction * action = KStandardAction::create(actionID, this, SLOT(copy()), this);
QKeySequence keySeq = action->shortcut();
// we do not support key sequences with multiple keys here
int code = keySeq[0];
const int ModMask = Qt::ShiftModifier | Qt::ControlModifier |
Qt::AltModifier | Qt::MetaModifier;
const int KeyMask = ~ModMask;
QKeyEvent* event = new QKeyEvent(QEvent::KeyPress, code & KeyMask,
QFlags<Qt::KeyboardModifier>(code & ModMask));
delete action;
return event;
}
void WorksheetTextItem::cut()
{
if (richTextEnabled()) {
QKeyEvent* event = eventForStandardAction(KStandardAction::Cut);
QApplication::sendEvent(worksheet(), event);
delete event;
} else {
copy();
textCursor().removeSelectedText();
}
}
void WorksheetTextItem::paste()
{
if (richTextEnabled()) {
QKeyEvent* event = eventForStandardAction(KStandardAction::Paste);
QApplication::sendEvent(worksheet(), event);
delete event;
} else {
textCursor().insertText(QApplication::clipboard()->text());
}
}
void WorksheetTextItem::copy()
{
if (richTextEnabled()) {
QKeyEvent* event = eventForStandardAction(KStandardAction::Copy);
QApplication::sendEvent(worksheet(), event);
delete event;
} else {
if (!textCursor().hasSelection())
return;
QString text = resolveImages(textCursor());
text.replace(QChar::ParagraphSeparator, QLatin1Char('\n'));
text.replace(QChar::LineSeparator, QLatin1Char('\n'));
QApplication::clipboard()->setText(text);
}
}
void WorksheetTextItem::undo()
{
document()->undo();
}
void WorksheetTextItem::redo()
{
document()->redo();
}
void WorksheetTextItem::clipboardChanged()
{
if (isEditable())
emit pasteAvailable(!QApplication::clipboard()->text().isEmpty());
}
void WorksheetTextItem::selectionChanged()
{
emit copyAvailable(textCursor().hasSelection());
if (isEditable())
emit cutAvailable(textCursor().hasSelection());
}
QString WorksheetTextItem::resolveImages(const QTextCursor& cursor)
{
int start = cursor.selectionStart();
int end = cursor.selectionEnd();
const QString repl = QString(QChar::ObjectReplacementCharacter);
QString result;
QTextCursor cursor1 = textCursor();
cursor1.setPosition(start);
QTextCursor cursor2 = document()->find(repl, cursor1);
for (; !cursor2.isNull() && cursor2.selectionEnd() <= end;
cursor2 = document()->find(repl, cursor1)) {
cursor1.setPosition(cursor2.selectionStart(), QTextCursor::KeepAnchor);
result += cursor1.selectedText();
QVariant var = cursor2.charFormat().property(Cantor::EpsRenderer::Delimiter);
QString delim;
if (var.isValid())
delim = var.value<QString>();
else
delim = QLatin1String("");
result += delim + cursor2.charFormat().property(Cantor::EpsRenderer::Code).value<QString>() + delim;
cursor1.setPosition(cursor2.selectionEnd());
}
cursor1.setPosition(end, QTextCursor::KeepAnchor);
result += cursor1.selectedText();
return result;
}
void WorksheetTextItem::setCursorPosition(const QPointF& pos)
{
QTextCursor cursor = cursorForPosition(pos);
setTextCursor(cursor);
emit cursorPositionChanged(cursor);
//setLocalCursorPosition(mapFromParent(pos));
}
QPointF WorksheetTextItem::cursorPosition() const
{
return mapToParent(localCursorPosition());
}
void WorksheetTextItem::setLocalCursorPosition(const QPointF& pos)
{
int p = document()->documentLayout()->hitTest(pos, Qt::FuzzyHit);
QTextCursor cursor = textCursor();
cursor.setPosition(p);
setTextCursor(cursor);
emit cursorPositionChanged(cursor);
}
QPointF WorksheetTextItem::localCursorPosition() const
{
QTextCursor cursor = textCursor();
QTextBlock block = cursor.block();
int p = cursor.position() - block.position();
QTextLine line = block.layout()->lineForTextPosition(p);
if (!line.isValid()) // can this happen?
return block.layout()->position();
return QPointF(line.cursorToX(p), line.y() + line.height());
}
QRectF WorksheetTextItem::sceneCursorRect(QTextCursor cursor) const
{
return mapRectToScene(cursorRect(cursor));
}
QRectF WorksheetTextItem::cursorRect(QTextCursor cursor) const
{
if (cursor.isNull())
cursor = textCursor();
QTextCursor startCursor = cursor;
startCursor.setPosition(cursor.selectionStart());
QTextBlock block = startCursor.block();
if (!block.layout())
return mapRectToScene(boundingRect());
int p = startCursor.position() - block.position();
QTextLine line = block.layout()->lineForTextPosition(p);
QRectF r1(line.cursorToX(p), line.y(), 1, line.height()+line.leading());
if (!cursor.hasSelection())
return r1;
QTextCursor endCursor = cursor;
endCursor.setPosition(cursor.selectionEnd());
block = endCursor.block();
p = endCursor.position() - block.position();
line = block.layout()->lineForTextPosition(p);
QRectF r2(line.cursorToX(p), line.y(), 1, line.height()+line.leading());
if (r1.y() == r2.y())
return r1.united(r2);
else
return QRectF(x(), qMin(r1.y(), r2.y()), boundingRect().width(),
qMax(r1.y() + r1.height(), r2.y() + r2.height()));
}
QTextCursor WorksheetTextItem::cursorForPosition(const QPointF& pos) const
{
QPointF lpos = mapFromParent(pos);
int p = document()->documentLayout()->hitTest(lpos, Qt::FuzzyHit);
QTextCursor cursor = textCursor();
cursor.setPosition(p);
return cursor;
}
bool WorksheetTextItem::isEditable()
{
return textInteractionFlags() & Qt::TextEditable;
}
void WorksheetTextItem::setBackgroundColor(const QColor& color)
{
m_backgroundColor = color;
}
const QColor& WorksheetTextItem::backgroundColor() const
{
return m_backgroundColor;
}
bool WorksheetTextItem::richTextEnabled()
{
return m_richTextEnabled;
}
void WorksheetTextItem::enableCompletion(bool b)
{
m_completionEnabled = b;
}
void WorksheetTextItem::activateCompletion(bool b)
{
m_completionActive = b;
}
void WorksheetTextItem::setItemDragable(bool b)
{
m_itemDragable = b;
}
void WorksheetTextItem::enableRichText(bool b)
{
m_richTextEnabled = b;
}
void WorksheetTextItem::setFocusAt(int pos, qreal xCoord)
{
QTextCursor cursor = textCursor();
if (pos == TopLeft) {
cursor.movePosition(QTextCursor::Start);
} else if (pos == BottomRight) {
cursor.movePosition(QTextCursor::End);
} else {
QTextLine line;
if (pos == TopCoord) {
line = document()->firstBlock().layout()->lineAt(0);
} else {
QTextLayout* layout = document()->lastBlock().layout();
qDebug() << document()->blockCount() << "blocks";
qDebug() << document()->lastBlock().lineCount() << "lines in last block";
line = layout->lineAt(document()->lastBlock().lineCount()-1);
}
qreal x = mapFromScene(xCoord, 0).x();
int p = line.xToCursor(x);
cursor.setPosition(p);
// Hack: The code for selecting the last line above does not work.
// This is a workaround
if (pos == BottomCoord)
while (cursor.movePosition(QTextCursor::Down))
;
}
setTextCursor(cursor);
emit cursorPositionChanged(cursor);
setFocus();
}
Cantor::Session* WorksheetTextItem::session()
{
return worksheet()->session();
}
void WorksheetTextItem::keyPressEvent(QKeyEvent *event)
{
switch (event->key()) {
case Qt::Key_Left:
if (event->modifiers() == Qt::NoModifier && textCursor().atStart()) {
emit moveToPrevious(BottomRight, 0);
qDebug()<<"Reached leftmost valid position";
return;
}
break;
case Qt::Key_Right:
if (event->modifiers() == Qt::NoModifier && textCursor().atEnd()) {
emit moveToNext(TopLeft, 0);
qDebug()<<"Reached rightmost valid position";
return;
}
break;
case Qt::Key_Up:
if (event->modifiers() == Qt::NoModifier && !textCursor().movePosition(QTextCursor::Up)) {
qreal x = mapToScene(localCursorPosition()).x();
emit moveToPrevious(BottomCoord, x);
qDebug()<<"Reached topmost valid position" << localCursorPosition().x();
return;
}
break;
case Qt::Key_Down:
if (event->modifiers() == Qt::NoModifier && !textCursor().movePosition(QTextCursor::Down)) {
qreal x = mapToScene(localCursorPosition()).x();
emit moveToNext(TopCoord, x);
qDebug()<<"Reached bottommost valid position" << localCursorPosition().x();
return;
}
break;
case Qt::Key_Enter:
case Qt::Key_Return:
if (event->modifiers() == Qt::NoModifier && m_completionActive) {
emit applyCompletion();
return;
}
break;
case Qt::Key_Tab:
qDebug() << "Tab";
break;
default:
break;
}
int p = textCursor().position();
bool b = textCursor().hasSelection();
QGraphicsTextItem::keyPressEvent(event);
if (p != textCursor().position())
emit cursorPositionChanged(textCursor());
if (b != textCursor().hasSelection())
selectionChanged();
}
bool WorksheetTextItem::sceneEvent(QEvent *event)
{
if (event->type() == QEvent::KeyPress) {
// QGraphicsTextItem's TabChangesFocus feature prevents calls to
// keyPressEvent for Tab, even when it's turned off. So we got to catch
// that here.
QKeyEvent* kev = dynamic_cast<QKeyEvent*>(event);
if (kev->key() == Qt::Key_Tab && kev->modifiers() == Qt::NoModifier) {
emit tabPressed();
return true;
} else if ((kev->key() == Qt::Key_Tab &&
kev->modifiers() == Qt::ShiftModifier) ||
kev->key() == Qt::Key_Backtab) {
emit backtabPressed();
return true;
}
} else if (event->type() == QEvent::ShortcutOverride) {
QKeyEvent* kev = dynamic_cast<QKeyEvent*>(event);
QKeySequence seq(kev->key() + kev->modifiers());
if (worksheet()->isShortcut(seq)) {
qDebug() << "ShortcutOverride" << kev->key() << kev->modifiers();
kev->ignore();
return false;
}
}
return QGraphicsTextItem::sceneEvent(event);
}
void WorksheetTextItem::focusInEvent(QFocusEvent *event)
{
QGraphicsTextItem::focusInEvent(event);
//parentItem()->ensureVisible(QRectF(), 0, 0);
WorksheetEntry* entry = qobject_cast<WorksheetEntry*>(parentObject());
WorksheetCursor c(entry, this, textCursor());
// No need make the text item visible
// if we just hide/show window, it it not necessary
if (event->reason() != Qt::ActiveWindowFocusReason)
worksheet()->makeVisible(c);
worksheet()->updateFocusedTextItem(this);
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this,
SLOT(clipboardChanged()));
emit receivedFocus(this);
emit cursorPositionChanged(textCursor());
}
void WorksheetTextItem::focusOutEvent(QFocusEvent *event)
{
QGraphicsTextItem::focusOutEvent(event);
emit cursorPositionChanged(QTextCursor());
}
void WorksheetTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
int p = textCursor().position();
bool b = textCursor().hasSelection();
QGraphicsTextItem::mousePressEvent(event);
if (isEditable() && event->button() == Qt::MiddleButton &&
QApplication::clipboard()->supportsSelection() &&
!event->isAccepted())
event->accept();
if (m_itemDragable && event->button() == Qt::LeftButton)
event->accept();
if (p != textCursor().position())
emit cursorPositionChanged(textCursor());
if (b != textCursor().hasSelection())
selectionChanged();
}
void WorksheetTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
{
const QPointF buttonDownPos = event->buttonDownPos(Qt::LeftButton);
if (m_itemDragable && event->buttons() == Qt::LeftButton &&
contains(buttonDownPos) &&
(event->pos() - buttonDownPos).manhattanLength() >= QApplication::startDragDistance()) {
ungrabMouse();
emit drag(mapToParent(buttonDownPos), mapToParent(event->pos()));
event->accept();
} else {
bool b = textCursor().hasSelection();
QGraphicsTextItem::mouseMoveEvent(event);
if (b != textCursor().hasSelection())
selectionChanged();
}
}
void WorksheetTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
int p = textCursor().position();
// custom middle-click paste that does not copy rich text
if (isEditable() && event->button() == Qt::MiddleButton &&
QApplication::clipboard()->supportsSelection() &&
!richTextEnabled()) {
setLocalCursorPosition(mapFromScene(event->scenePos()));
const QString& text = QApplication::clipboard()->text(QClipboard::Selection);
textCursor().insertText(text);
} else {
QGraphicsTextItem::mouseReleaseEvent(event);
}
if (p != textCursor().position())
emit cursorPositionChanged(textCursor());
}
void WorksheetTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
QTextCursor cursor = textCursor();
const QChar repl = QChar::ObjectReplacementCharacter;
if (!cursor.hasSelection()) {
// We look at the current cursor and the next cursor for a
// ObjectReplacementCharacter
for (int i = 2; i; --i) {
if (document()->characterAt(cursor.position()-1) == repl) {
setTextCursor(cursor);
emit doubleClick();
return;
}
cursor.movePosition(QTextCursor::NextCharacter);
}
} else if (cursor.selectedText().contains(repl)) {
emit doubleClick();
return;
}
QGraphicsTextItem::mouseDoubleClickEvent(event);
}
void WorksheetTextItem::dragEnterEvent(QGraphicsSceneDragDropEvent* event)
{
if (isEditable() && event->mimeData()->hasFormat(QLatin1String("text/plain"))) {
if (event->proposedAction() & (Qt::CopyAction | Qt::MoveAction)) {
event->acceptProposedAction();
} else if (event->possibleActions() & Qt::CopyAction) {
event->setDropAction(Qt::CopyAction);
event->accept();
} else if (event->possibleActions() & Qt::MoveAction) {
event->setDropAction(Qt::MoveAction);
event->accept();
} else {
event->ignore();
}
} else {
event->ignore();
}
}
void WorksheetTextItem::dragMoveEvent(QGraphicsSceneDragDropEvent* event)
{
if (isEditable() && event->mimeData()->hasFormat(QLatin1String("text/plain")))
setLocalCursorPosition(mapFromScene(event->scenePos()));
}
void WorksheetTextItem::dropEvent(QGraphicsSceneDragDropEvent* event)
{
if (isEditable()) {
if (richTextEnabled() && event->mimeData()->hasFormat(QLatin1String("text/html")))
textCursor().insertHtml(event->mimeData()->html());
else
textCursor().insertText(event->mimeData()->text());
event->accept();
}
}
void WorksheetTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
QMenu *menu = worksheet()->createContextMenu();
populateMenu(menu, event->pos());
menu->popup(event->screenPos());
}
void WorksheetTextItem::insertTab()
{
QTextCursor cursor = textCursor();
cursor.clearSelection();
cursor.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor);
QString sel = cursor.selectedText();
bool spacesOnly = true;
qDebug() << sel;
for (QString::iterator it = sel.begin(); it != sel.end(); ++it) {
if (! it->isSpace()) {
spacesOnly = false;
break;
}
}
cursor.setPosition(cursor.selectionEnd());
if (spacesOnly) {
while (document()->characterAt(cursor.position()) == QLatin1Char(' '))
cursor.movePosition(QTextCursor::NextCharacter);
}
QTextLayout *layout = textCursor().block().layout();
if (!layout) {
cursor.insertText(QLatin1String(" "));
} else {
cursor.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor);
int i = cursor.selectionEnd() - cursor.selectionStart();
i = ((i+4) & (~3)) - i;
cursor.setPosition(cursor.selectionEnd());
QString insertBlankSpace = QLatin1String(" ");
cursor.insertText(insertBlankSpace.repeated(i));
}
setTextCursor(cursor);
emit cursorPositionChanged(textCursor());
}
void WorksheetTextItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* o, QWidget* w) {
if (m_backgroundColor.isValid()) {
painter->setPen(QPen(Qt::NoPen));
painter->setBrush(m_backgroundColor);
painter->drawRect(boundingRect());
}
QGraphicsTextItem::paint(painter, o, w);
}
double WorksheetTextItem::width() const
{
return m_size.width();
}
double WorksheetTextItem::height() const
{
return m_size.height();
}
Worksheet* WorksheetTextItem::worksheet()
{
return qobject_cast<Worksheet*>(scene());
}
WorksheetView* WorksheetTextItem::worksheetView()
{
return worksheet()->worksheetView();
}
void WorksheetTextItem::clearSelection()
{
QTextCursor cursor = textCursor();
cursor.clearSelection();
setTextCursor(cursor);
selectionChanged();
}
bool WorksheetTextItem::isUndoAvailable()
{
return document()->isUndoAvailable();
}
bool WorksheetTextItem::isRedoAvailable()
{
return document()->isRedoAvailable();
}
bool WorksheetTextItem::isCutAvailable()
{
return isEditable() && textCursor().hasSelection();
}
bool WorksheetTextItem::isCopyAvailable()
{
return !m_itemDragable && textCursor().hasSelection();
}
bool WorksheetTextItem::isPasteAvailable()
{
return isEditable() && !QApplication::clipboard()->text().isEmpty();
}
QTextCursor WorksheetTextItem::search(QString pattern,
QTextDocument::FindFlags qt_flags,
const WorksheetCursor& pos)
{
if (pos.isValid() && pos.textItem() != this)
return QTextCursor();
QTextDocument* doc = document();
QTextCursor cursor;
if (pos.isValid()) {
cursor = doc->find(pattern, pos.textCursor(), qt_flags);
} else {
cursor = textCursor();
if (qt_flags & QTextDocument::FindBackward)
cursor.movePosition(QTextCursor::End);
else
cursor.movePosition(QTextCursor::Start);
cursor = doc->find(pattern, cursor, qt_flags);
}
return cursor;
}
// RichText
void WorksheetTextItem::updateRichTextActions(QTextCursor cursor)
{
if (cursor.isNull())
return;
Worksheet::RichTextInfo info;
QTextCharFormat fmt = cursor.charFormat();
info.bold = (fmt.fontWeight() == QFont::Bold);
info.italic = fmt.fontItalic();
info.underline = fmt.fontUnderline();
info.strikeOut = fmt.fontStrikeOut();
info.font = fmt.fontFamily();
info.fontSize = fmt.font().pointSize();
QTextBlockFormat bfmt = cursor.blockFormat();
info.align = bfmt.alignment();
worksheet()->setRichTextInformation(info);
}
void WorksheetTextItem::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
{
qDebug() << format;
QTextCursor cursor = textCursor();
QTextCursor wordStart(cursor);
QTextCursor wordEnd(cursor);
wordStart.movePosition(QTextCursor::StartOfWord);
wordEnd.movePosition(QTextCursor::EndOfWord);
//cursor.beginEditBlock();
if (!cursor.hasSelection() && cursor.position() != wordStart.position() && cursor.position() != wordEnd.position())
cursor.select(QTextCursor::WordUnderCursor);
cursor.mergeCharFormat(format);
//q->mergeCurrentCharFormat(format);
//cursor.endEditBlock();
setTextCursor(cursor);
}
void WorksheetTextItem::setTextForegroundColor()
{
QTextCharFormat fmt = textCursor().charFormat();
QColor color = fmt.foreground().color();
color = QColorDialog::getColor(color, worksheetView());
if (!color.isValid())
color = KColorScheme(QPalette::Active, KColorScheme::View).foreground().color();
QTextCharFormat newFmt;
newFmt.setForeground(color);
mergeFormatOnWordOrSelection(newFmt);
}
void WorksheetTextItem::setTextBackgroundColor()
{
QTextCharFormat fmt = textCursor().charFormat();
QColor color = fmt.background().color();
color = QColorDialog::getColor(color, worksheetView());
if (!color.isValid())
color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
QTextCharFormat newFmt;
newFmt.setBackground(color);
mergeFormatOnWordOrSelection(newFmt);
}
void WorksheetTextItem::setTextBold(bool b)
{
QTextCharFormat fmt;
fmt.setFontWeight(b ? QFont::Bold : QFont::Normal);
mergeFormatOnWordOrSelection(fmt);
}
void WorksheetTextItem::setTextItalic(bool b)
{
QTextCharFormat fmt;
fmt.setFontItalic(b);
mergeFormatOnWordOrSelection(fmt);
}
void WorksheetTextItem::setTextUnderline(bool b)
{
QTextCharFormat fmt;
fmt.setFontUnderline(b);
mergeFormatOnWordOrSelection(fmt);
}
void WorksheetTextItem::setTextStrikeOut(bool b)
{
QTextCharFormat fmt;
fmt.setFontStrikeOut(b);
mergeFormatOnWordOrSelection(fmt);
}
void WorksheetTextItem::setAlignment(Qt::Alignment a)
{
QTextBlockFormat fmt;
fmt.setAlignment(a);
QTextCursor cursor = textCursor();
cursor.mergeBlockFormat(fmt);
setTextCursor(cursor);
}
void WorksheetTextItem::setFontFamily(const QString& font)
{
if (!richTextEnabled())
return;
QTextCharFormat fmt;
fmt.setFontFamily(font);
mergeFormatOnWordOrSelection(fmt);
}
void WorksheetTextItem::setFontSize(int size)
{
if (!richTextEnabled())
return;
QTextCharFormat fmt;
fmt.setFontPointSize(size);
mergeFormatOnWordOrSelection(fmt);
}
void WorksheetTextItem::allowEditing()
{
setTextInteractionFlags(Qt::TextEditorInteraction);
}
void WorksheetTextItem::denyEditing()
{
- setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
+ setTextInteractionFlags(Qt::TextBrowserInteraction | Qt::TextSelectableByKeyboard);
}
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
new file mode 100644
index 00000000..0e0b472f
--- /dev/null
+++ b/thirdparty/CMakeLists.txt
@@ -0,0 +1,32 @@
+# This cmake file are managing embeded 3party Cantor dependencies
+
+# 3dparty patched Discount
+# Embedded for a while
+include(ExternalProject)
+set (DISCOUNT_ONLY_LIBRARY ON)
+set (DISCOUNT_MAKE_INSTALL OFF)
+ExternalProject_Add(
+ discount_project
+ URL ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/discount-2.2.6-patched.tar
+ SOURCE_SUBDIR cmake
+ CMAKE_ARGS DISCOUNT_ONLY_LIBRARY DISCOUNT_MAKE_INSTALL
+ CMAKE_CACHE_ARGS "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true"
+ PREFIX ${CMAKE_CURRENT_BINARY_DIR}/thirdparty
+ STEP_TARGETS configure build
+ EXCLUDE_FROM_ALL TRUE
+)
+
+ExternalProject_Get_Property(discount_project source_dir)
+ExternalProject_Get_Property(discount_project binary_dir)
+
+add_library(Discount::Lib STATIC IMPORTED)
+set_target_properties(Discount::Lib PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES ${source_dir}
+ IMPORTED_LOCATION ${binary_dir}/libmarkdown.a
+ POSITION_INDEPENDENT_CODE ON
+)
+add_dependencies(Discount::Lib discount_project-build)
+set(Discount_FOUND TRUE)
+
+# preview.sty
+install(FILES thirdparty/standalone.cls DESTINATION ${KDE_INSTALL_DATADIR}/cantor/latex )
diff --git a/thirdparty/discount-2.2.6-patched.tar b/thirdparty/discount-2.2.6-patched.tar
new file mode 100644
index 00000000..73d517ee
Binary files /dev/null and b/thirdparty/discount-2.2.6-patched.tar differ
diff --git a/thirdparty/standalone.cls b/thirdparty/standalone.cls
new file mode 100644
index 00000000..958de71d
--- /dev/null
+++ b/thirdparty/standalone.cls
@@ -0,0 +1,954 @@
+%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de>
+%% ---------------------------------------------------------------------------
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Martin Scharrer.
+%%
+%% This work consists of the files standalone.dtx and standalone.ins
+%% and the derived filebase standalone.sty, standalone.cls and
+%% standalone.cfg.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{standalone}[%
+ 2015/07/15
+ v1.2
+ Class to compile TeX sub-files standalone]
+\newif\ifstandalone
+\standalonetrue
+\newif\ifstandalonebeamer
+\standalonebeamerfalse
+\let\onlyifstandalone\@firstofone
+\let\IfStandalone\@firstoftwo
+\def\sa@border@left{0.50001bp}
+\let\sa@border@right\sa@border@left
+\let\sa@border@top\sa@border@left
+\let\sa@border@bottom\sa@border@left
+\def\rem@bp#1bp\relax#2\@nnil{#1}%
+\def\default@bp#1#2{%
+ \begingroup
+ \afterassignment\remove@to@nnil
+ \dimen@ #2bp\relax\@nnil
+ \expandafter
+ \endgroup
+ \expandafter
+ \def\expandafter#1\expandafter{\the\dimen@}%
+}
+\def\sa@readborder#1 #2 #3 #4 #5\@nnil{%
+ \ifx\\#2#3#4\\%
+ \default@bp\sa@border@left{#1}%
+ \let\sa@border@right\sa@border@left
+ \let\sa@border@top\sa@border@left
+ \let\sa@border@bottom\sa@border@left
+ \else
+ \ifx\\#4\\%
+ \default@bp\sa@border@left{#1}%
+ \let\sa@border@right\sa@border@left
+ \default@bp\sa@border@top{#2}%
+ \let\sa@border@bottom\sa@border@top
+ \else
+ \default@bp\sa@border@left{#1}%
+ \default@bp\sa@border@bottom{#2}%
+ \default@bp\sa@border@right{#3}%
+ \default@bp\sa@border@top{#4}%
+ \fi\fi
+}%
+\expandafter\ifx\csname ifluatex\endcsname\relax
+ \IfFileExists{ifluatex.sty}{\@firstoftwo}{\@secondoftwo}{%
+ \RequirePackage{ifluatex}
+ }{
+ \begingroup
+ \expandafter\ifx\csname directlua\endcsname\relax
+ \endgroup
+ \expandafter\let\csname ifluatex\expandafter\endcsname\csname iffalse\endcsname
+ \else
+ \endgroup
+ \expandafter\let\csname ifluatex\expandafter\endcsname\csname iftrue\endcsname
+ \fi
+ }
+\fi
+\expandafter\ifx\csname ifpdf\endcsname\relax
+ \IfFileExists{ifpdf.sty}{\@firstoftwo}{\@secondoftwo}{%
+ \RequirePackage{ifpdf}
+ }{
+ \begingroup
+ \expandafter\ifx\csname pdfoutput\endcsname\relax
+ \endgroup
+ \expandafter\let\csname ifpdf\expandafter\endcsname\csname iffalse\endcsname
+ \else
+ \endgroup
+ \ifnum\pdfoutput<1
+ \expandafter\let\csname ifpdf\expandafter\endcsname\csname iffalse\endcsname
+ \else
+ \expandafter\let\csname ifpdf\expandafter\endcsname\csname iftrue\endcsname
+ \fi
+ \fi
+ }
+\fi
+\expandafter\ifx\csname ifxetex\endcsname\relax
+ \IfFileExists{ifxetex.sty}{\@firstoftwo}{\@secondoftwo}{%
+ \RequirePackage{ifxetex}
+ }{
+ \begingroup
+ \expandafter\ifx\csname XeTeXrevision\endcsname\relax
+ \endgroup
+ \expandafter\let\csname ifxetex\expandafter\endcsname\csname iffalse\endcsname
+ \else
+ \endgroup
+ \expandafter\let\csname ifxetex\expandafter\endcsname\csname iftrue\endcsname
+ \fi
+ }
+\fi
+\let\sa@classoptionslist\@classoptionslist
+\RequirePackage{xkeyval}
+\newif\ifsa@preview
+\newif\ifsa@crop
+\newif\ifsa@multi
+\newif\ifsa@multido
+\newif\ifsa@varwidth
+\newif\ifsa@ignorerest
+\newif\ifsa@ignoreempty
+\newif\ifsa@tikz
+\newif\ifsa@pstricks
+\newif\ifsa@convert
+\newif\ifsa@float
+\newif\ifsa@math
+\let\sa@beamertrue\standalonebeamertrue
+\let\sa@beamerfalse\standalonebeamerfalse
+\def\sa@clsoption{%
+ \define@key{standalone.cls}%
+}
+\sa@clsoption{border}{%
+ \sa@readborder#1 {} {} {} {} \@nnil
+}
+\sa@clsoption{margin}{%
+ \sa@readborder#1 {} {} {} {} \@nnil
+}
+\def\sa@boolean#1#2{%
+ \sa@boolorvalue{#1}{#2}%
+ {\ClassError{standalone}{Invalid value '#2' for boolean key '#1'}{}}%
+}
+\def\sa@boolorvalue#1#2{%
+ \begingroup
+ \edef\@tempa{#2}%
+ \def\@tempb{true}%
+ \ifx\@tempa\@tempb
+ \endgroup
+ \csname sa@#1true\endcsname
+ \expandafter\@gobble
+ \else
+ \def\@tempb{false}%
+ \ifx\@tempa\@tempb
+ \endgroup
+ \csname sa@#1false\endcsname
+ \expandafter\expandafter
+ \expandafter\@gobble
+ \else
+ \endgroup
+ \expandafter\expandafter
+ \expandafter\@firstofone
+ \fi\fi
+}
+\sa@clsoption{preview}[true]{%
+ \sa@boolean{preview}{#1}%
+ \ifsa@preview
+ \setkeys{standalone.cls}{crop=false,float=false}%
+ \fi
+}
+\sa@previewtrue
+\sa@clsoption{crop}[true]{%
+ \sa@boolean{crop}{#1}%
+ \ifsa@crop
+ \setkeys{standalone.cls}{preview=false,float=false}%
+ \fi
+}
+\sa@clsoption{ignorerest}[true]{%
+ \sa@boolean{ignorerest}{#1}%
+}
+\sa@clsoption{ignoreempty}[true]{%
+ \sa@boolean{ignoreempty}{#1}%
+}
+\sa@clsoption{multi}[true]{%
+ \sa@boolorvalue{multi}{#1}{\sa@multitrue\AtBeginDocument{\standaloneenv{#1}}}%
+}
+\sa@clsoption{multido}[true]{%
+ \sa@boolean{multido}{#1}%
+ \ifsa@multido
+ \setkeys{standalone.cls}{multi=samultido}%
+ \fi
+}
+\sa@clsoption{math}[true]{%
+ \sa@boolean{math}{#1}%
+ \ifsa@math
+ \setkeys{standalone.cls}{multi=true,ignoreempty=true,border=0.50001bp}%
+ \fi
+}
+\AtBeginDocument{\ifsa@math\sa@math\fi}
+\def\sa@math{%
+ \standaloneenv{math}%
+ \def\({\begingroup\math}%
+ \def\){\endmath\endgroup}%
+ \def\[{\(\displaystyle}%
+ \def\]{\)}%
+ \def\displaymath{\math\displaystyle}%
+ \def\enddisplaymath{\endmath}%
+ \newcommand*\multimathsep{%
+ \endmath
+ \math
+ \let\\\multimathsep
+ }%
+ \newenvironment{multimath}{%
+ \math
+ \let\\\multimathsep
+ }{%
+ \endmath
+ }%
+ \newcommand*\multidisplaymathsep{%
+ \endmath
+ \math\displaystyle
+ \let\\\multidisplaymathsep
+ }%
+ \newenvironment{multidisplaymath}{%
+ \math\displaystyle
+ \let\\\multidisplaymathsep
+ }{%
+ \endmath
+ }%
+}
+\sa@clsoption{varwidth}[true]{%
+ \sa@boolorvalue{varwidth}{#1}{\sa@varwidthtrue\def\sa@width{#1}}%
+ \ifsa@varwidth
+ \def\sa@varwidth{\varwidth{\sa@width}}%
+ \def\sa@endvarwidth{\endvarwidth}%
+ \else
+ \let\sa@varwidth\@empty
+ \let\sa@endvarwidth\@empty
+ \fi
+}
+\let\sa@varwidth\@empty
+\let\sa@endvarwidth\@empty
+\sa@clsoption{tikz}[true]{%
+ \sa@boolean{tikz}{#1}%
+ \ifsa@tikz
+ \setkeys{standalone.cls}{multi=tikzpicture,varwidth=false}%
+ \fi
+}
+\sa@clsoption{pstricks}[true]{%
+ \sa@boolean{pstricks}{#1}%
+ \ifsa@pstricks
+ \setkeys{standalone.cls}{multi=pspicture,varwidth=false}%
+ \fi
+}
+\sa@clsoption{beamer}[true]{%
+ \sa@boolean{beamer}{#1}%
+ \ifstandalonebeamer
+ \def\sa@class{beamer}%
+ \setkeys{standalone.cls}{preview=false,crop=false,varwidth=false}%
+ \else
+ \begingroup
+ \def\@tempa{beamer}%
+ \ifx\@tempa\sa@class
+ \endgroup
+ \def\sa@class{article}%
+ \else
+ \endgroup
+ \fi
+ \fi
+}
+\sa@clsoption{class}{%
+ \def\sa@class{#1}%
+}
+\def\sa@class{article}
+\sa@clsoption{float}[true]{%
+ \sa@boolean{float}{#1}%
+ \ifsa@float
+ \let\@float\sa@origfloat
+ \let\end@float\sa@origendfloat
+ \else
+ \ifx\@float\sa@nofloat\else
+ \let\sa@origfloat\@float
+ \fi
+ \ifx\end@float\sa@endnofloat\else
+ \let\sa@origendfloat\end@float
+ \fi
+ \let\@float\sa@nofloat
+ \let\end@float\sa@endnofloat
+ \fi
+}
+\def\sa@nofloat#1{%
+ \def\@captype{#1}%
+ \trivlist\item[]%
+ \@ifnextchar[{%
+ \begingroup
+ \def\@tempa[####1]{%
+ \endgroup
+ }\@tempa
+ }{}%
+}
+\def\sa@endnofloat{%
+ \endtrivlist
+}
+\sa@clsoption{convert}[]{%
+ \setkeys{standalone.cls/convert}{true,#1}%
+}
+\sa@clsoption{disable@convert}[]{%
+ \typeout{Disable conversion}
+ \sa@convertfalse
+ \let\sa@converttrue\relax
+}
+\def\sa@convertoption{%
+ \define@key{standalone.cls/convert}%
+}
+\def\sa@convertvar#1#2{%
+ \define@key{standalone.cls/convert}{#1}{%
+ \@namedef{sa@convert@#1}{##1}%
+ }%
+ \@namedef{sa@convert@#1}{#2}%
+}
+\sa@convertoption{true}[]{%
+ \sa@converttrue
+}
+\sa@convertoption{false}[]{%
+ \sa@convertfalse
+}
+\sa@convertoption{png}[]{%
+ \setkeys{standalone.cls/convert}{true,outext={.png}}%
+}
+\sa@clsoption{png}[]{%
+ \setkeys{standalone.cls/convert}{png,#1}%
+}
+\sa@convertoption{realmainfile}[]{%
+ \RequirePackage{currfile-abspath}%
+ \getmainfile
+ \let\sa@convert@mainfile\themainfile
+}
+\sa@convertoption{jpg}[]{%
+ \setkeys{standalone.cls/convert}{true,outext={.jpg}}%
+}
+\sa@clsoption{jpg}[]{%
+ \setkeys{standalone.cls/convert}{jpg,#1}%
+}
+\sa@convertoption{gif}[]{%
+ \setkeys{standalone.cls/convert}{true,outext={.gif}}%
+}
+\sa@clsoption{gif}[]{%
+ \setkeys{standalone.cls/convert}{gif,#1}%
+}
+\sa@convertoption{onfailure}{%
+ \begingroup
+ \edef\@tempa{#1}%
+ \def\@tempb{error}%
+ \ifx\@tempa\@tempb
+ \endgroup
+ \let\sa@convert@failuremsg\ClassError
+ \else
+ \def\@tempb{warning}%
+ \ifx\@tempa\@tempb
+ \endgroup
+ \let\sa@convert@failuremsg\ClassWarning
+ \else
+ \def\@tempb{info}%
+ \ifx\@tempa\@tempb
+ \endgroup
+ \let\sa@convert@failuremsg\ClassInfo
+ \else
+ \def\@tempb{ignore}%
+ \ifx\@tempa\@tempb
+ \endgroup
+ \def\sa@convert@failuremsg##1##2##3{}%
+ \let\sa@convert@notfoundmsg\@gobbletwo
+ \else
+ \let\on@line\@empty
+ \ClassError{standalone}{Invalid value '\@tempa' for the 'onfailure' option.\MessageBreak
+ Valid values: 'error', 'warning', 'info', 'ignore'}{}%
+ \endgroup
+ \fi\fi\fi\fi
+}
+\let\sa@convert@failuremsg\ClassWarning
+\let\sa@convert@notfoundmsg\ClassWarning
+\sa@convertoption{defgsdevice}{%
+ \sa@defgsdevice#1\relax\relax
+}
+\def\sa@defgsdevice#1#2{%
+ \@namedef{sa@gsdevice@#1}{#2}%
+}
+\@namedef{sa@gsdevice@.jpg}{jpeg}%
+\@namedef{sa@gsdevice@.png}{png16m}%
+\sa@convertoption{command}{%
+ \def\sa@convert@command{#1}%
+}
+\sa@convertoption{pdf2svg}[]{%
+ \def\sa@convert@command{pdf2svg \infile\space\outfile}%
+ \sa@convertvar{outext}{.svg}
+}
+\sa@convertoption{imagemagick}[]{%
+ \def\sa@convert@command{\convertexe\space -density \density\space \infile\space \ifx\size\empty\else -resize \size\fi\space -quality 90 \outfile}%
+ \let\sa@convert@pageoffset\m@ne
+}
+\sa@convertoption{ghostscript}[]{%
+ \def\sa@convert@command{\gsexe\space -dSAFER -dBATCH -dNOPAUSE -sDEVICE=\gsdevice\space -r\density\space -sOutputFile=\outfile\space \infile}%
+ \let\sa@convert@pageoffset\z@
+}
+\sa@convertvar{latexoptions}{ -shell-escape }
+\sa@convertvar{subjobname}{\jobname}
+\sa@convertvar{mainfile}{\jobname}
+\sa@convertvar{quote}{}
+\let\sa@convert@quote\relax
+\sa@convertvar{size}{}
+\sa@convertvar{inname}{\subjobname}
+\sa@convertvar{infile}{\inname\inext}
+\sa@convertvar{outext}{.png}
+\sa@convertvar{outname}{\inname}
+\sa@convertvar{outfile}{\outname\ifsa@multi\sa@multi@pagemark\fi\outext}
+\def\sa@multi@pagemark{-\percent0d}%
+\sa@convertvar{density}{300}
+\sa@convertvar{gsdevice}{%
+ \expandafter\ifx\csname sa@gsdevice@\outext\endcsname\relax
+ \expandafter\@gobble\outext
+ \else
+ \csname sa@gsdevice@\outext\endcsname
+ \fi
+}
+\ifluatex
+ \sa@convertvar{latex}{lualatex}
+ \sa@convertvar{inext}{.pdf}
+ \sa@convertvar{precommand}{}
+ \setkeys{standalone.cls/convert}{imagemagick}
+\else
+\ifpdf
+ \sa@convertvar{latex}{pdflatex}
+ \sa@convertvar{inext}{.pdf}
+ \sa@convertvar{precommand}{}
+ \setkeys{standalone.cls/convert}{imagemagick}
+\else
+\ifxetex
+ \sa@convertvar{latex}{xelatex}
+ \sa@convertvar{inext}{.pdf}
+ \sa@convertvar{precommand}{}
+ \setkeys{standalone.cls/convert}{imagemagick}
+\else
+ \sa@convertvar{latex}{latex}
+ \sa@convertvar{inext}{.ps}
+ \sa@convertvar{precommand}{dvips \jobname.dvi}
+ \setkeys{standalone.cls/convert}{ghostscript}
+\fi\fi\fi
+\begingroup
+\ifluatex
+ \csname @tempswa\directlua{
+ if os.type == "windows" then
+ tex.sprint("true")
+ else
+ tex.sprint("false")
+ end
+ }\endcsname
+\else
+ \IfFileExists{/dev/null}{\@tempswafalse}{\@tempswatrue}%
+\fi
+\if@tempswa
+ \endgroup
+ \sa@convertvar{convertexe}{imgconvert}
+ \sa@convertvar{gsexe}{gswin32c}
+\else
+ \endgroup
+ \sa@convertvar{convertexe}{convert}
+ \sa@convertvar{gsexe}{gs}
+\fi
+\newcommand*\standaloneenv[1]{%
+ \begingroup
+ \edef\@tempa{\endgroup\noexpand\@for\noexpand\@tempa:=\zap@space#1 \@empty}%
+ \@tempa\do{\expandafter\@standaloneenv\expandafter{\@tempa}}%
+ \setkeys{standalone.cls}{multi}%
+}
+\@onlypreamble\standaloneenv
+\newcommand*{\standaloneconfig}{\setkeys{standalone.cls}}
+\let\@standaloneenv\@gobble
+\newcount\sa@internal
+\newcounter{sapage}
+\let\standalone\empty
+\let\endstandalone\relax
+\def\sa@width{\linewidth}
+\InputIfFileExists{standalone.cfg}{}{}
+\begingroup
+\def\@tempa{\endgroup\setkeys*{standalone.cls}}
+\expandafter\expandafter\expandafter\@tempa
+\expandafter\expandafter\expandafter{\csname opt@standalone.cls\endcsname}
+\let\@classoptionslist\XKV@rm
+\disable@keys{standalone.cls}{crop,preview,class,beamer,ignorerest}
+\AtBeginDocument{%
+ \disable@keys{standalone.cls}{multi}%
+}
+\expandafter\expandafter\expandafter\LoadClass
+\expandafter\expandafter\expandafter[%
+\expandafter\@classoptionslist
+\expandafter]\expandafter{\sa@class}
+\ifsa@ignorerest
+ \def\sa@startignore{\sa@boxit}
+\else
+ \let\sa@startignore\relax
+\fi
+\ifsa@ignorerest
+ \def\sa@stopignore{\endsa@boxit}
+\else
+ \let\sa@stopignore\relax
+\fi
+\ifsa@multido
+\RequirePackage{multido}
+\let\sa@orig@multido@\multido@
+\renewcommand{\multido@}[6]{%
+ \sa@stopignore
+ \sa@orig@multido@{#1}{#2}{#3}{#4}{#5}{%
+ \sa@startignore
+ \begin{samultido}%
+ \let\multido@\sa@orig@multido@
+ #6%
+ \end{samultido}%
+ \sa@stopignore
+ }%
+ \sa@startignore
+}
+\fi
+\ifsa@convert
+\ifx\sa@convert@quote\relax
+\begingroup
+\@tempswafalse
+\expandafter\ifx\csname pdftexbanner\endcsname\relax
+ \@tempswatrue
+\else
+\def\MiKTeX{MiKTeX}
+\@onelevel@sanitize\MiKTeX
+\expandafter\def\expandafter\testmiktex\expandafter#\expandafter1\MiKTeX#2\relax{%
+ \ifx\empty#2\empty
+ \@tempswafalse
+ \else
+ \@tempswatrue
+ \fi
+}
+\expandafter\expandafter
+\expandafter\testmiktex\expandafter\pdftexbanner\MiKTeX\relax\relax
+
+\fi
+\expandafter
+\endgroup
+\if@tempswa
+\def\sa@convert@quote{"}
+\else
+\def\sa@convert@quote{'}
+\fi
+\fi
+\fi
+\ifsa@varwidth
+ \RequirePackage{varwidth}
+\fi
+\ifsa@tikz
+ \RequirePackage{tikz}
+\fi
+\ifsa@pstricks
+ \RequirePackage{pstricks}
+\fi
+\ifsa@preview
+\RequirePackage{preview}
+\ifsa@multi\else
+ \@ifundefined{endstandalone}{%
+ \renewenvironment{standalone}
+ {\preview\sa@varwidth}
+ {\sa@endvarwidth\endpreview}
+ }{}% TODO: Add info message?
+\fi
+\def\PreviewBbAdjust{-\sa@border@left\space -\sa@border@bottom\space \sa@border@right\space \sa@border@top}%
+\def\@standaloneenv#1{%
+ \expandafter\ifx\csname sa@orig@#1\endcsname\relax
+ \expandafter\let\csname sa@orig@#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\let\csname sa@orig@end#1\expandafter\endcsname\csname end#1\endcsname
+ \fi
+ \expandafter\def\csname #1\endcsname{%
+ \ifnum\sa@internal=0
+ \addtocounter{sapage}\@ne
+ \preview
+ \sa@varwidth
+ \fi
+ \advance\sa@internal\@ne
+ \csname sa@orig@#1\endcsname
+ }%
+ \expandafter\def\csname end#1\endcsname{%
+ \csname sa@orig@end#1\endcsname
+ \advance\sa@internal\m@ne
+ \ifnum\sa@internal=0
+ \sa@endvarwidth
+ \endpreview
+ \fi
+ }%
+}%
+\fi
+\ifsa@crop
+\newbox\sa@box
+\pagestyle{empty}
+\hoffset=-72.27pt
+\voffset=-72.27pt
+\topmargin=0pt
+\headheight=0pt
+\headsep=0pt
+\marginparsep=0pt
+\marginparwidth=0pt
+\footskip=0pt
+\marginparpush=0pt
+\oddsidemargin=0pt
+\evensidemargin=0pt
+\topskip=0pt
+\textheight=\maxdimen
+\def\sa@boxit{%
+ \setbox\sa@box\hbox\bgroup\color@setgroup\sa@varwidth
+}%
+\def\endsa@boxit{%
+ \sa@endvarwidth\color@endgroup\egroup
+}%
+\renewenvironment{standalone}{%
+ \ifsa@multi
+ \sa@startignore
+ \else
+ \sa@boxit
+ \fi
+}{%
+ \ifsa@multi
+ \sa@stopignore
+ \else
+ \endsa@boxit
+ \sa@handlebox
+ \fi
+}
+\ifsa@multi\else
+ \sa@ignorerestfalse
+\fi
+\ifsa@ignorerest
+ \def\@standaloneenv#1{%
+ \expandafter\ifx\csname sa@orig@#1\endcsname\relax
+ \expandafter\let\csname sa@orig@#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\let\csname sa@orig@end#1\expandafter\endcsname\csname end#1\endcsname
+ \fi
+ \expandafter\def\csname #1\endcsname{%
+ \ifnum\sa@internal=0
+ \addtocounter{sapage}\@ne
+ \edef\@tempa{\endgroup
+ \noexpand\endsa@boxit
+ \begingroup
+ \def\noexpand\@currenvir{\@currenvir}%
+ \def\noexpand\@currenvline{\@currenvline}%
+ }%
+ \@tempa
+ \sa@boxit
+ \fi
+ \advance\sa@internal\@ne
+ \csname sa@orig@#1\endcsname
+ }%
+ \expandafter\def\csname end#1\endcsname{%
+ \csname sa@orig@end#1\endcsname
+ \advance\sa@internal\m@ne
+ \ifnum\sa@internal=0
+ \endsa@boxit
+ \sa@handlebox
+ \aftergroup\sa@boxit
+ \fi
+ }%
+ }%
+\else
+ \def\@standaloneenv#1{%
+ \expandafter\ifx\csname sa@orig@#1\endcsname\relax
+ \expandafter\let\csname sa@orig@#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\let\csname sa@orig@end#1\expandafter\endcsname\csname end#1\endcsname
+ \fi
+ \expandafter\def\csname #1\endcsname{%
+ \ifnum\sa@internal=0
+ \addtocounter{sapage}\@ne
+ \sa@boxit
+ \fi
+ \advance\sa@internal\@ne
+ \csname sa@orig@#1\endcsname
+ }%
+ \expandafter\def\csname end#1\endcsname{%
+ \csname sa@orig@end#1\endcsname
+ \advance\sa@internal\m@ne
+ \ifnum\sa@internal=0
+ \endsa@boxit
+ \sa@handlebox
+ \fi
+ }%
+ }%
+\fi
+\def\sa@handlebox{%
+ \ifcase
+ 0%
+ \ifsa@ignoreempty
+ \ifdim\wd\sa@box=\z@
+ \ifdim\ht\sa@box=\z@
+ \ifdim\dp\sa@box=\z@
+ 1%
+ \fi\fi\fi
+ \fi
+ \relax
+ \sbox\sa@box{%
+ \hskip\sa@border@left
+ \@tempdima=\ht\sa@box
+ \advance\@tempdima\sa@border@top\relax
+ \ht\sa@box=\@tempdima
+ \@tempdima=\dp\sa@box
+ \advance\@tempdima\sa@border@bottom\relax
+ \dp\sa@box=\@tempdima
+ \raise\dp\sa@box
+ \box\sa@box
+ \hskip\sa@border@right
+ }%
+ \sa@placebox
+ \fi
+}
+\ifcase0%
+ \ifpdf\else\ifluatex\else\ifxetex\else 1\fi\fi\fi
+ \relax
+ \def\sa@placebox{%
+ \newpage
+ \global\pdfpagewidth=\wd\sa@box
+ \global\pdfpageheight=\ht\sa@box
+ \global\paperwidth=\wd\sa@box
+ \global\paperheight=\ht\sa@box
+ \global\hsize=\wd\sa@box
+ \global\vsize=\ht\sa@box
+ \global\@colht=\ht\sa@box
+ \global\@colroom=\ht\sa@box
+ \noindent\usebox\sa@box
+ \newpage
+ }
+ \else
+ \def\sa@placebox{%
+ \global\paperwidth=\wd\sa@box
+ \global\paperheight=\ht\sa@box
+ \global\@colht=\maxdimen
+ \global\@colroom=\maxdimen
+ \global\hsize=\maxdimen
+ \global\vsize=\maxdimen
+ \sa@papersize
+ \ifsa@multi
+ \begingroup
+ \@tempdima0.99626\paperwidth
+ \@tempdimb0.99626\paperheight
+ \edef\@tempc{\strip@pt\@tempdima}%
+ \edef\@tempd{\strip@pt\@tempdimb}%
+ \advance\@tempdima by .998pt
+ \advance\@tempdimb by .998pt
+ \def\strip@float##1.##2\relax{##1}%
+ \edef\@tempa{\expandafter\strip@float\the\@tempdima\relax}%
+ \edef\@tempb{\expandafter\strip@float\the\@tempdimb\relax}%
+ \special{ps::%
+ \@percentchar\@percentchar PageBoundingBox: 0 0 \@tempa\space\@tempb^^J%
+ \@percentchar\@percentchar HiResPageBoundingBox: 0 0 \@tempc\space\@tempd^^J%
+ \@percentchar\@percentchar BeginPageSetup^^J%
+ << /PageSize [\@tempc\space\@tempd]
+ >> setpagedevice^^J%<<
+ 0 0 bop^^J%
+ \@percentchar\@percentchar EndPageSetup}%
+ \endgroup
+ \fi
+ \topskip=0pt
+ \noindent\sa@ps@content
+ \newpage
+ }
+\def\sa@ps@content{%
+ \noindent\usebox\sa@box
+ \global\def\sa@ps@content{%
+ \@tempdima\sa@yoffset
+ \advance\@tempdima-\topskip
+ \dp\sa@box\z@
+ \ht\sa@box\z@
+ \noindent\lower\@tempdima\copy\sa@box
+ }%
+}
+\def\sa@papersize{%
+ \global\let\sa@papersize\relax
+ \special{papersize=\the\paperwidth,\the\paperheight}%
+ \global\sa@yoffset=\paperheight
+ \special{ps::%
+ \@percentchar\@percentchar HiResBoundingBox: 0 0 \the\paperwidth\space\the\paperheight^^J%
+ }%
+}
+\newlength\sa@yoffset
+\fi
+\fi
+\ifstandalonebeamer
+\newenvironment{standaloneframe}{%
+ \@ifnextchar<%
+ {\@standaloneframe}%
+ {\@@standaloneframe{}}%
+}{\end{frame}}%
+\def\@standaloneframe<#1>{%
+ \@@standaloneframe{<#1>}%
+}
+\def\@@standaloneframe#1{%
+ \@ifnextchar[%]
+ {\@@@standaloneframe{#1}}%
+ {\@@@standaloneframe{#1}[]}%
+}%
+\def\@@@standaloneframe#1[{%
+ \@ifnextchar<%
+ {\@@@@standaloneframe{#1}[}%
+ {\@@@@@@standaloneframe{#1}[}%
+}%
+\def\@@@@standaloneframe#1[#2]{%
+ \@ifnextchar[%]
+ {\@@@@@standaloneframe{#1}{#2}}%
+ {\begin{frame}#1[#2][environment=standaloneframe]}%
+}%
+\def\@@@@@standaloneframe#1#2[#3]{%
+ \begin{frame}#1[#2][environment=standaloneframe,#3]%
+}%
+\def\@@@@@@standaloneframe#1[#2]{%
+ \begin{frame}#1[environment=standaloneframe,#2]%
+}%
+\fi
+\expandafter\ifx\csname sa@internal@run\endcsname\relax\else
+ \AtEndDocument{%
+ \immediate\write\@mainaux{\gdef\noexpand\sa@multi@numpages{\arabic{sapage}}}%
+ }
+ \sa@convertfalse
+\fi
+\ifsa@convert
+\let\sa@convert@stop\stop
+\begingroup
+\let\on@line\@gobble
+\def\sa@convert#1{%
+ \IfFileExists{\outfile}{%
+ \edef\filemodbefore{\csname pdffilemoddate\endcsname{\outfile}}%
+ }{%
+ \IfFileExists{\outname\outext}{%
+ \edef\filemodbefore{\csname pdffilemoddate\endcsname{\outname\outext}}%
+ }{%
+ \IfFileExists{\outname-0\outext}{%
+ \edef\filemodbefore{\csname pdffilemoddate\endcsname{\outname-0\outext}}%
+ }{%
+ \IfFileExists{\outname-1\outext}{%
+ \edef\filemodbefore{\csname pdffilemoddate\endcsname{\outname-1\outext}}%
+ }{%
+ \def\filemodbefore{}%
+ }}}}%
+ \edef\@tempa{\jobname}%
+ \edef\@tempb{\sa@convert@subjobname}%
+ \@onelevel@sanitize\@tempa
+ \@onelevel@sanitize\@tempb
+ \@tempswafalse
+ \ifx\@tempa\@tempb
+ \@tempswatrue
+ \edef\infile@filemodbefore{\csname pdffilemoddate\endcsname{\infile}}%
+ \else
+ \global\let\sa@convert@stop\relax
+ \fi
+ \immediate\write18{\sa@convert@latex\space\sa@convert@latexoptions\space
+ -jobname \sa@convert@quote\sa@convert@subjobname\sa@convert@quote\space
+ \sa@convert@quote\string\expandafter\string\def\string\csname\space
+ sa@internal@run\string\endcsname{1}\string\input{\sa@convert@mainfile}\sa@convert@quote}%
+ \begingroup
+ \gdef\sa@multi@numpages{1}%
+ \IfFileExists{\sa@convert@subjobname.aux}{%
+ \globaldefs=\m@ne
+ \@@input\sa@convert@subjobname.aux\relax
+ \globaldefs=\z@
+ \xdef\sa@multi@numpages{\sa@multi@numpages}%
+ }{}%
+ \endgroup
+ \setcounter{sapage}{\sa@multi@numpages}%
+ \addtocounter{sapage}\sa@convert@pageoffset
+ \ifnum\c@sapage=\z@
+ \def\sa@multi@pagemark{}%
+ \edef\sa@lastoutfile{\outfile}%
+ \else
+ \@tempcnta\z@
+ \loop\ifnum\value{sapage}>0
+ \advance\@tempcnta\@ne
+ \divide\c@sapage by 10\relax
+ \repeat
+ \edef\sa@multi@pagemark{-\percent0\the\@tempcnta d}%
+ \begingroup
+ \setcounter{sapage}{\sa@multi@numpages}%
+ \addtocounter{sapage}\sa@convert@pageoffset
+ \def\sa@multi@pagemark{-\arabic{sapage}}%
+ \xdef\sa@lastoutfile{\outfile}%
+ \endgroup
+ \fi
+ \if@tempswa
+ \edef\infile@filemodafter{\csname pdffilemoddate\endcsname{\infile}}%
+ \ifx\infile@filemodbefore\infile@filemodafter
+ \global\let\sa@convert@stop\relax
+ \fi
+ \fi
+ \edef\sa@convert@precommand{\sa@convert@precommand}%
+ \ifx\sa@convert@precommand\@empty\else
+ \immediate\write18{\sa@convert@precommand}%
+ \fi
+ \immediate\write18{\sa@convert@command}%
+ \@tempswafalse
+ \IfFileExists{\sa@lastoutfile}{%
+ \edef\filemodafter{\csname pdffilemoddate\endcsname{\sa@lastoutfile}}%
+ \ifx\filemodbefore\filemodafter
+ \expandafter\ifx\csname pdffilemoddate\endcsname\relax\else
+ \sa@convert@failuremsg{standalone}{#1}{}%
+ \fi
+ \else
+ \typeout{Class standalone:^^JOutput written on \sa@lastoutfile.}%
+ \fi
+ }{%
+ \sa@convert@failuremsg{standalone}{#1}{}%
+ }%
+}
+\let\subjobname\sa@convert@subjobname
+\let\mainfile\sa@convert@mainfile
+\let\infile\sa@convert@infile
+\let\inext\sa@convert@inext
+\let\inname\sa@convert@inname
+\let\gsdevice\sa@convert@gsdevice
+\let\convertexe\sa@convert@convertexe
+\let\gsexe\sa@convert@gsexe
+\let\density\sa@convert@density
+\let\size\sa@convert@size
+\let\outext\sa@convert@outext
+\let\outname\sa@convert@outname
+\let\outfile\sa@convert@outfile
+\let\percent\@percentchar
+\let\quote\sa@convert@quote
+\ifcase0%
+ \expandafter\ifx\csname pdfshellescape\endcsname\relax
+ \ifeof18 \else 3\fi
+ \else\the\pdfshellescape\fi
+\relax% 0
+ \sa@convert@failuremsg
+ {standalone}{Shell escape disabled! Cannot convert file '\infile'.}{}%
+ \global\let\sa@convert@stop\relax
+\or% 1
+ \sa@convert{Conversion unsuccessful!\MessageBreak
+ There might be something wrong with your\MessageBreak
+ conversation software or the file permissions!}%
+\else% 2 or 3
+ \sa@convert{Conversion failed! Please ensure that shell escape\MessageBreak is enabled (e.g. use '-shell-escape').}%
+\fi
+\endgroup
+\expandafter\sa@convert@stop
+\fi
+\begingroup
+\toks@\expandafter{%
+ \document
+ \sa@cls@afterbegindocument
+}
+\xdef\document{\the\toks@}%
+\toks@\expandafter{%
+ \expandafter
+ \sa@cls@beforeenddocument
+ \enddocument
+}
+\xdef\enddocument{\the\toks@}%
+\endgroup
+\def\sa@cls@afterbegindocument{\standalone\ignorespaces}
+\def\sa@cls@beforeenddocument{\ifhmode\unskip\fi\endstandalone}
+\endinput
+%%
+%% End of file `standalone.cls'.