From 098e11375d5a8be05865974b59afd7772c9dc852 Mon Sep 17 00:00:00 2001 From: "Bozawglanian, Hagop (hb755d)" Date: Tue, 3 Apr 2018 21:46:51 +0000 Subject: [PATCH] VNFRQTS - Use Case setup Manual Scale out use case first use case to be added. Change-Id: Iadebeee519c5c41af7d22b0522934e1237cedb37 Issue-ID: VNFRQTS-154 Signed-off-by: Bozawglanian, Hagop (hb755d) --- .gitignore | 107 +++++++++++++ .gitreview | 6 + conf.py | 362 ++++++++++++++++++++++++++++++++++++++++++++ docs/Scale_Out_Workflow.png | Bin 0 -> 51735 bytes docs/index.rst | 7 + docs/manual_use_case.rst | 44 ++++++ docs/release-notes.rst | 39 +++++ etc/requirements.txt | 8 + tox.ini | 15 ++ 9 files changed, 588 insertions(+) create mode 100644 .gitignore create mode 100644 .gitreview create mode 100644 conf.py create mode 100755 docs/Scale_Out_Workflow.png create mode 100644 docs/index.rst create mode 100644 docs/manual_use_case.rst create mode 100644 docs/release-notes.rst create mode 100644 etc/requirements.txt create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6e28c0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,107 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django: +*.log +local_settings.py + +# Flask: +instance/ +.webassets-cache + +# Scrapy: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# test-procedure +docs/conf.py +Makefile + +# Mac +*DS_Store* + diff --git a/.gitreview b/.gitreview new file mode 100644 index 0000000..18feea4 --- /dev/null +++ b/.gitreview @@ -0,0 +1,6 @@ +[gerrit] +host=gerrit.onap.org +port=29418 +project=vnfrqts/usecases.git + + diff --git a/conf.py b/conf.py new file mode 100644 index 0000000..7896db0 --- /dev/null +++ b/conf.py @@ -0,0 +1,362 @@ +# -*- coding: utf-8 -*- +# +# ONAP documentation build configuration file, created by +# sphinx-quickstart on Wed Jul 19 16:25:31 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os +import shlex + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.graphviz', + 'sphinx.ext.todo', + 'sphinx.ext.pngmath', + 'sphinx.ext.viewcode', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'ONAP' +copyright = u'2018, ONAP Contributors' +author = u'ONAP Contributors' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = 'test' +# The full version, including alpha/beta/rc tags. +release = 'test' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'classic' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +html_logo = '_static/logo_onap_2017.png' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = '_static/favicon.ico' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' +#html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# Now only 'ja' uses this config value +#html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +#html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'ONAPdoc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', + +# Latex figure (float) alignment +#'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'ONAP.tex', u'ONAP Documentation', + u'ONAP Contributors', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'onap', u'ONAP Documentation', + [author], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'ONAP', u'ONAP Documentation', + author, 'ONAP', 'Open Network Automation Platform', + 'Platform'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False + + +# -- Options for Epub output ---------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project +epub_author = author +epub_publisher = author +epub_copyright = copyright + +# The basename for the epub file. It defaults to the project name. +#epub_basename = project + +# The HTML theme for the epub output. Since the default themes are not optimized +# for small screen space, using the same theme for HTML and epub output is +# usually not wise. This defaults to 'epub', a theme designed to save visual +# space. +#epub_theme = 'epub' + +# The language of the text. It defaults to the language option +# or 'en' if the language is not set. +#epub_language = '' + +# The scheme of the identifier. Typical schemes are ISBN or URL. +#epub_scheme = '' + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +#epub_identifier = '' + +# A unique identification for the text. +#epub_uid = '' + +# A tuple containing the cover image and cover page html template filenames. +#epub_cover = () + +# A sequence of (type, uri, title) tuples for the guide element of content.opf. +#epub_guide = () + +# HTML files that should be inserted before the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_pre_files = [] + +# HTML files shat should be inserted after the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_post_files = [] + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + +# The depth of the table of contents in toc.ncx. +#epub_tocdepth = 3 + +# Allow duplicate toc entries. +#epub_tocdup = True + +# Choose between 'default' and 'includehidden'. +#epub_tocscope = 'default' + +# Fix unsupported image types using the Pillow. +#epub_fix_images = False + +# Scale large images. +#epub_max_image_width = 0 + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#epub_show_urls = 'inline' + +# If false, no index is generated. +#epub_use_index = True + diff --git a/docs/Scale_Out_Workflow.png b/docs/Scale_Out_Workflow.png new file mode 100755 index 0000000000000000000000000000000000000000..b1b985dbc83cff3c3ab74a06df246e4ad7ee7e8e GIT binary patch literal 51735 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

n0E0BAiWaLY2m$qPJmFU05vi3YN zB=Q+E&yRaGtfHW#;>dpKI{O^XA5pQYa@wPyaZc>vpa#4Gj*|R4Y_m<~V5-kob+-%8 z0K1xS?z!htT6fNn_{K6$%2Y(0MJrdCw76UjsVu+Im!OZQmQ3|#zKxz^yPAIwP2XFn zhg0&6=Fh~}z;XKFBSVa7jj|%(DzEqK+StSrp^7maX_5Cp_E9P9Ezwwt4Maoo^4`Y zeXRF1Mj*(pxOH1v-IvR%>sXy4-@dx69q<@xscRzc9x*&0(YF*MI{!(q4g7i!MeQqxRtISVLDme z#2)hX1TJ?O_HopsMCdL9|Gd>ceb2wwQ4ahg`u?sR89yAoo`Tg2R;qK9Dyr;p@5xa^ zrcA2BHlEnF3y*OLQ|K=#&FviTCuBNNZahg7TDDYw1d%yAichPq4I^Z6Q~JU}LZ60r zO)7Ow{&6CTGHUnW2ssi{P5lnRok!bUgdj3Rz5bw2#@xTz2(CSP6tAE_l}Ou7?;*BI z5L2rBX-m!G8AYA0%n=Y0okr z{WGgOo@naeD9|JJ}t{h1QZ=Y8&+GA}_o|--g&q zV<1TiEcH9^p2eI!p@~jo)|Ga7tS{gDz^{cR%?ZC^(yk>KIS?pT!CLQ$g6bIL`TD5o z9LewdhdC-P{YpX%tZErP1`}t&z>8P2&re&F^~%x%+beA=X%P6q-SQ=|bI~nn*b8N( zom=-m;idG=SVBeWSY*5;2~_0&3o$|94FK!BFMX|z6KR_sq2C0`pAEj!^EjnF^WmD3 z4EHSVz2ln3aAp=Hg>3-dA!3sAd^uCX z$G6&`f8|H#V`OEOz;{TJv~fYAYaGqO31TNM`iRiEStq_22LXGz^d(_b!QuLFmtb^J zl->SaeJg!wAHpe~>8lx$v$@fi1xZy6^l6{CQqPgS9G7H)-AkT#m8NDclu0%3WM(OP z0|*^xSpvxj2^FEPs+&1?atwdN15?ob+Y?9Q1B_h!uwS?dfo>K$xqf&ApswNZ3h;Tf zx*?LboX|nB1Gz@IndxwSIYoy4Jr9Rzg7;E<5HrJquOEBL^|8-&Wj;hVGkD)+4m^ov z=cvlw8?!9QhAg~5Kfcl~boIskvupYfR=#q=CFH+cx;wgBkV`i-|Hu764CH{ui$#{z zhVw0vF3J%^j1>@uLXOyC*xEdMeeQFO**weeV^s=FVA;~J5QtKarjvuStq?Wb&Mc6X zXFFl^XJVqTZDSKqx1WH3F&DCRa{szd@?OuAU=7mbK6Fv?3FoK%E)tkpi=haBo_ku^ zBiSh;A+eUJ5s#eBr;pZhk`@-DoH%1LTv$&NWrf0Adp(8d8})`741PGcq4$ekPQB|& zkQ!kcQbXuUyh~n1OiT=f7_MoAs}0%`#29FkHkII(!Ryp|=D)>t5->jzVytFauiqk< z{>jx1X(W_bg?Tv+ZEv)OP(J&u@nfN`MhDE39&4PREt*f3lV06}a%I3{^YzaehmLLfr6 zmD|$Gk70JrcT)J)^FteF9>Bb?8<-csx3Y}i^l3GmagF~AjAcyX%lmUU$}`8;;nm8G ztsRZJjgbT-OBvxFgC6Ex#4H*PC07pEwsqMo)wdtFl>Nl#vwk#GmUy*KAG(qz_E_X? zuF#=CS+NL45@~E^10dBd9m%;HI)Af~=Ze*w9HG!8Gn zP~N=`VYtsp+1_vnU!*PkrHm*p-XTlKVe{BHUE5;W-roJexWTrcmkky?a&(<(-I6{+ z#$9wWmlq+)XD>f=QG9+8bw)NiM0p6gU$-@%sr8^7W;e(^J1IVVnd&AE*MT4fChmS~ zzO@kKV};O}eqSJM1jVnVPaT4LVmENF1}LE{-(Voyd>JYpTUdP^(oc_#pm;;8y>~5* z#lgzs@wXlrTF=1WKY5~-?f*-G_ob%#sW;rdL?lo7^7^7vd7Aoq7(6`eC}=^=BVUa3 zDl6kbBeJag)^TtdKpSpEYg@J3>W>zE_U|zTMn$y!S!B zXZ5oi{f;U+j*%qpj)pxt19KsYt@jmqwM1iH6x7ELX)=67H?0=TrNizLKUZT< ztfphr>a$tHkisDD_x_}oGvh#~j%N3N86$@=>6bfh zvjGGvfy6eEr-Z=QC~9GCU2%}<0xKm$Y@ym2(zXqQ?Fy**88tIgW$~570WT19sv%(y z?vsp2l)BIuru!7}Ou`}qnhf@-HIOors9x}7=9WF0JJT}7hvU2D_-0Q5zqat?Q4{FZ z3?|ff-=v^OAE|UE`(>6TCQthB`sWwki^>@nY1Z0&{H$R=Dh<=4i@|vnYZ@=1%DKpyZQ-d1wcEMUbIH5oG5bi%lCJF5Zr;qe717wS<5+ulC*0!zm2b47wIJK z+&bD=v#_wSc+SEAqovDf`aM1*gXN$S5nBFziU>8&1Ba9uA@qj`)e7UiYU5@Kht;#08(kl#f%mCNAUt9AS!#$&J$Xrr_=AM-%4;0|EW+p7Ma@`$ zyKWzY)V>ufA1QIfUN?NH_t!9?v$J!)a%Kde;GissP8mHx;9ON%xjJ8+_Tf&$;Nh5> zms;3uU-{rf>AuI}qr{m$4n!cHqL@!kXV>>mm*i@{dJ5PX+NxY=XEk2_gQ@}ysd1o8^PkJB+6rv8I5ctbPm&+7-#2ndDeNOpwAaDj zX2OprNYsy>4r`b4@#%L13*X?Fr|Ks020^cy#`=DKFO8sah5P2)W7V{j)vlzyhOy`| zPjfv!!}{IxF8l7qczwYttI=?OFE1Z*PvAdR+w7QW{EC8#Tv^{hZ+g<%yG>YE*q|q8 zuFnFzM>9|#|85x;G8<5g01Ac7%F0SL`%h2=!q^vS;`h93xy{D!dCWkpZV8DeXcZ5r z`upn(t`|1z3+@<<8UG;Y;kUF~A1bnt{>`jgqY9`PXoZER=v*=`TcY*Twr2kX7E9bl z?)9(w16vN3oiDSzFf1bLAHRKwyW1MIXGT4(K|8)U)L<22KaU+fxi=2waJij(X~i2Q zV(+gBu)LknvNZg5Eaz?gwY5R<;zXnIs*Akrt9IYK@`xZ5qv4jH;Gs3M@V%sN4|USM zopf)Bhm?Noa>2g6Ksi&SjU?2I2AzZt)xUKW$ZOIjYz3dl1sB}b8yHWEnTR*ez!;qO zz5g*SR}4vpa{J9~Y2>JZZ(7a~rY5Ng8tZOv_N&cx-Az5FV}|3>_&C3?z*W5?9^})6gz9Dyay(tbsev>7?qW8)6)`=fG|I#b}h4{KV0ZCuTJXr90Wh0 z`v7LA&M;+--ywB1U=~(9xKD^t3+RcvGaP#itx}%V>nt7NlUnK^T?<5OK31dk3MbX=xuD#4nTJ|>Q#^rMB*g5g|@nL_%UuNgE-r+Zcwuxs9_LIN{!nwIPZ*( zSnJyJ-aTMKTeTaDm976N?9M%90kVTeZ;5POw%Bpm3~XmVx9M3VW?hhLo?r@bUD%U+ zy+ZDxPg{*<5Qw<}QV3K*GYjNeD&B~wMk`r`+0uIHZRP!dOp4IR48%6FmE@{DvV5{2 z`ln?y!^d4|O}euM-Zp!b)1GHwcSz2|}B3=I3MZD|T#LYJK262UfT!3V8himX5QG`$?-v|1A= zvxU(!60X}=q9t!k=cbnxXtPO~O*i->7`LmcC}~aWtx|%nE$N=m|L7=4W**L< zS}>NSLz=<#5nO8n!rDKgXw+##cZ6jOepRnga5;C4x4Ato`o($YM;Hz+^$W+V$a5u7 zd7DJNEbF{qfVb?N^ea1Uzu^SKlgeMQDV<>TX1yG!xDam39Re#hFjkG0QQs5}e^ z4^`w|yfCt*EbEDsv11_ICn}>{vk&N;lCRqxUfz>DsDWg%tVs)?ZD#czC>Z#d2-q^bIV}W8{0ee5Cg_m6^ zSPpdF-o;fMgG5*Z&JMSB=X!VQvhxm`l!24Z+0ytTM{g-aC! zj%$=%BbXGmxLI{T>?UACp;oT(5i3x6Xq8fMKI4ZWb2~2mQljmECn-U`M0B*UZ_79Z zXx0%-i5bf{Fa~Gf7irSld-bF|C}Y$9wm7>yD=(0}K&fDH{vdnDy4>^BK@BljgskN| zMMMTb8QgCgK&PDUSp-x1eA9g(rWh?6_5+QZzN5`?aN{rp(s1txq`mr&tTbMLRaGFZ zO-M>Uu_aAMTUyeI%YjW)1-#0<$0O9~8Y@*v!v@RUX*04i7&UP_rJ(%HLNO zzL4>>S}n-@TZdFJ4Y@6eyl(6Q{1GVmv3k=ttJDNX!Sx9f%D-)ZZg z&Rj|7kMlOuE%be?+`25N7uL5k5Q$iVaQg;vD?w~eRPVA#aSh4t(^$I=27567P8+aV z4n0y+Nh-@OIBmO4@EiDA(=EiwwsU|eStWZ8G7g;va|pr{fzV#^&FCaR{zy*hg3^x) zeFrAWD8?n!A3Ampx%=QrTm+p*A{xSV5;?&?v9)m#qQZgR`?%sc&wJXSBHF zE+TVThDo3@{j^-ZYoXsrvU#l5WqvR`PuG(0dOK}Nz^M1Z=lGHmg|0)RPqoj|^q4CH zK={dCvuT$N$;SHm`3%UiD6o*YbDdI>&}d)>+{em+X%`poo4eN52V-CcFX>Y}_h!aO zedIg}x%Zj$A4~u*MN%J;=Obj_jOh9wrI{h_sxnhE=~MTD!w|pl4t`%&&Ivx0XyFhL zSR1g};IYrOW2xdxGh-iqUWbZNN z25DemO!silqXCHGS#$sHZ-l`2P`((@n=rGeeUUcIi3&n+CwXJk@+KozN?d}tmiA!L z+P@MDMo1)yT0C0sQAtv$%<+cOodf~qn?dna5zXW1?v}!I!ZT`kg{-zU`Sv*0i4#|0 zNl92<&ld}NF$~s(fb&cfs%y(KGX5=Vb%uhA{w`}paCZknw5VQ++!8ZV2+kSv%am_4 zWe35h1znjFxIPHJb094cr0$59%ODvR$*~E~&lEkRXycJfw0d@+tXZ+LS`@N7BvvoR zB7JpcHrA&kV;YFx^tvbl&nZEQjozY9x3;iQrtQF+ zE^i5$hXiB=Nf~NTp=qbI=Mk+ys}Zf>#kE5EsH4qKtH?h<6)H5Jnf$BYeD{xV^WN6y zUm?(qk9({u9Zj#Gp8X-7lNHTFZJ(FxM}egD&|%02gL;cMDg=F>EghEQ#EgesbmGlw zMt)Sy`OM$0`(pks2XWzbs8n=)%VxTP>4lO0RqT+#$>5Shm@l?aKgB(oyl#*TIS49M zc&Z*!;!5*OUQViXPMSAwMS1z}ZJ%q8!;Slnw-+#dHqSHv@$pbM5SMS`_kY!cQxctX zUG(b*6CA+EBVpuIQM-MGou`k=uU8 zAY_G;4&!~pbnI-VIHuwNbRnp7dP-d~;-gB25=6Kj4qKnSBV?3#+#8cj%ynDAa>YnZ zmZjD%HcQ}(8zazOa7;vvjI*o<-%zXw8w#O=>y+nt3!0AHO82IP7sIFBOgH-EqZ>K} za#k14Uw;r19bi08mF+&3GU`g0Fe%YxdTvB7%U|EL`!Z;j7t>d@&Qbn9Mmo%Y?CV$JCA>yB8u>hrrhT}z8Ju6^}oCqUeC2^cD)FCkSpPLcL zz%2d!jY5DKEF1`&(x|0)*D%ta#h_5}P?(UA zJmuo*2RR;c3ZZTwQjksoj|^1G@S4~hmVN?BV|@){Noc-RRQ%y;*hN2l1jEGvTr*vv zECDOgsI`~jIm0_L8a?Mx)BMi|2ICB9L)yu)>r^F8kvMPK_HeX9`B;`eN=7*lq1L_I zGmG7M<04Py!CaaRD6Bsq9vxuGFXI&nfW?mrd4&*VKhp(5SBD)fK}eYH#NA@Yw!3-z zA+38Uf(Xmrb9%DMjzmQJ;-tA5p3HVBz0?XN6VHXR|qr zv;q`@ww&rEK_rMRtZr(d@juOC9eArXux*;V##UV~oGdP8TUU+ilUj2WHb?j$Zxm%? zq-u0Wv&z-PJ>T*YOB41HJW8F4ksmZh>;HT(h4>9x?{A785H%3wyfKm?ePsVah5gjK zP7wo=S6J=nxgr2d?)^6zOv)@lNOYi zDK!_y-|WOY>Q394HH^K48f=bJThcZ4#m%N)G8V%j|Ia}gi><{rP<|glNoYAQH1wqC z-;*lDNXeptp6aszxrTmDLe=a^Kfd6R)PwZs+0Ipj%3V|=m=Gp%eziO_M(QyBF- zoOcc~cNf~=neHcrSp@Iv3qqx4=BYG8>+(nCa=a|h0tJ|uIfN#Pf zk@9MK@GqoEh57;Mq8_~`;LssT`b3Lrzs+@@ob$8H6`D4_(Fn^}E%Q8KK%4t|!X6-p&p@=k9c+z zC4(kKwm#4#o?(bAQh3zJARP-&f{X{!rQs!90{@I7q@F$#Lt`9Prh_G zsd{5l0^;>|Jt=$|e`|qZ9`pQx$)5=K{EdSH_jw$^U4eVo-cUvjEZGbkBVr#$4@bVB zTsv;7Ipk=W^umzvzItmT8vd(>mf2ubF40LVlIhF4hx-rK(MoK8nPDB}%j5KQ3;ncn zFk)&PkznFGqKSDwIIb{CF)d%XS9UchZoYH*1uR$ne`Su#OxbZi@Zzpo%g^%t8Q0XT2DV*e zqg9xJ6&FdHzG9u5$tenTS59T{-L2qe-LRDEUQui+qi3y?_*r-AjgPUx5LqSv&gpIm z0q8H#9)5EUyG5lWJQN_+8f@YDdTzd87t4Wt4XEwkHo5>?f+z@?1Qicc#*fHtls^CO z$5Z1nAOi1Bpdm>Q&r3$&fH-yVx+RRYhW$oUF5F@=U#ZBB%1)_BH?~`=QGtY_Ek~+9 zmH}DBg3Q=bbEH5|1xen$Sn~zFAA3=PNaZJK(QPADwAgN}BDU^xy2k~DQm&Z!P{Q1$ z<7|xE3r{aXZT7`;6YDdO{Wf$b^wA3{kB&aoD1Q%NT?9cyfW8wissDVNg_R9t=z9J( zN+8ETlLpyN{CA`(e&-F<$md5?V1F(rTw`{3(!E<`WoY|g(78j2YRgD9jq)f-cVK8- zX3O{Eb55^;zA+i=Rjm8Xweg{W)o!wh02OJyu$ajso%s}*Qt z7!}!lVR)1%HJkyZ$XQb{&{){x1k_Q6y0Wsvq#$^BR8U4&>Be(s z6F*HxKRz)S_FC#K5mCO{16ZLM5h0o9&a<-HmK>NY^#|Aj=W}5PSIx*dXtnx2{>}pD zR%54ygdi??0$J4xWHC$ZFZXKDc9;z;dltURlvjvk>vW6Q8~IH4uck}G^T+qst1Byl5N+ti&JNt5fS31cQz|?` z8EQoWSugSy!xxDOy#)2AxS{|c(@vt8JWzFb*tDwbsL2K6VNJCOFf^%~H945}L~PD~QAa1=>3WA*zabe)bNS5p_|+59u#EhWd8hv2eF+PzSBjiR2SBCXui(9hQ*(JV zu7+;H2I6Kx{7MC5Y=Z>3SIpI3eB-EN~Fu~mrgDWMl^XtVmc5(Jv=$1+`8XnLwX$_#!?C*m8e!a zegCpCkcylT+7GH}bgFdLKpuNRbv3olbdhUkl z%MzpEvjZFfenj4tC~U8;KEMOg7ii(|L>~my8CY&+^;?|3yI_w!f!xeh4Xn_PNJ&r{ z;j?0}Q2+5-dyBJD5wEYDEei5!$#;qCq1L#8>Cx$*HkO{k|4jZu70ZQsU zgJJ7+iF^3JLy2wDyLELBmLlBZ*6I$>U(pWhv#7MauvbTfdLRE|w^iuZ z|L9U7C%^caP3fO^Dz8UE{&6qEVcLyLN!IT3*-ieyO*+^c932+jq_I`6ym>Dpj>9>F z+wykZ|9X+*>OX4&(>cf>xc%`agFq4pDFSYS)xav-L4k{!_XIfS*F$j#ZK1S?ja%oU z&dJO6kS`gj`a6gz1$%*+{=Ft6A48xA+k_oRMnKQ#f_CVytO00;oo^0{(nvhFOCb|F z*uX&eAIB1OmjAJZLBIaTa4u{2(|32i9i-l~+s}!DPpz{ac~T#!E94?r`W_X&2ho3x zGY$6hkVh=lb?z>BEm#<{Aa^?aE*zLZq%2LGox7bD;4RE*a!z3E$jEj>>$-EBQ_tZ9?D_@|W&RI7>DL7@p+p{1l{R#w zUNP_#T)yXFe-AcFu>pM%XhVmcKs8f!5G=dHueTR=Y6-01w)X*l&`?5rWS0DNV^B{4 zqngD^9!gZW;f&0{rY_KKE(-r+HSL z^y9S&=b2;M%wsr;!v8d&a8}J@eeRkR{y-ZzBwbAct`Jv0zSn5^OK_(s(2)Wo)dm{h z=4xBU5^vCHmC-!cPA)2&*bY;aM6xIr=Hlc48x=*6snS`jU_=&x9_<~zkhMc$)~lL{ z@0x!GvZh+3nu}ZSgYb1fKF+CT+XQy32_Q%2Z7D+l0|A&3XmWEMh!9H{PV2qbG-$Id zB(jOv2{s*rs}$~C%;mhV5Ds@&(dUHkU}W(wzcWW(1T&vNMn@fsKajU$bvIHa7JLu| z@Gw$-V4^4)?3Z6vS1zdy(UB_>tr#<(fTX%ZIwB?M33A=b=ciivVgovPgR2N;Vt72KstyRl4*-cYa(9oADk3BQ!5M#` zVM#m#P)O7nSBK}jyLujs)Vi>My((y`d$6Vhc)&BL#^`m1ekb|Yh&<4fir7?s1ao4R z1x2EFKT(tp*sleYofq{j?Xh2s+wx$`1JCXNFhzaV<`Q;?7epHOJf_*ELV%{1c0HV@ z@f}igKV8B=@m>0Ha#XuB&~tndT~K?9>7-9!k6Tcr_~;TYc=OMdMsQMOtDO4+km)&aY+4r;MNMunCzMy&m20GYuMQ zD;p7K`ys2z>Q+d#yY?*p@L&v*21^zi93Q8$ApXhmde(6PIhXy?_VD!-0!8v`*K_Wg zY5?b#1yiZ>5JSN$lhW>xT_gnYDQg)G8d}U|zM!4J=p+u&TLo9*Sd${|q=y_C?HIa4 zt84OyDs&WU&RqSogJaH}1NG)Lr$K{<=ehcLm4Of)_^mPqcy;@LgY$YYuQo#D@#K(w z{{1J?H0D1O^g7WFnQ4CPTzo3%@=Khbw+;mx-aa`M5X^tGZTw@(1n^a1i{N&X&KuM$ z6S4*Nc!yt?nz3#R`?iRNea@_WfcA#HQc!0Bfh!ZsvzDfKMigjQTqN-sD~>X(Gu9V` zS=F2=7hz{Ke2hRsPNWwE2yP$~X35=n!wrFUh?gzlY! z3PvM#>0*)R+eC26DebfPxY4jJy;zKH0)03E%`W)wuCb?Q&5+XP?Dk1suBh#9YwsYK zm0l1>104~t`!)xw>cFd|(tjzKL%ljgXM~GAC%uU+ilt&-%iz1CQ>p8WJoPRLFAKYv zak|6M+f4js+hpK~btVw`x6^r|ty8f2qiQ|P4kzoo)|&_!o^d`k9{Rg80;6a5h3&;9 zySSF0t5r!yZR!FCadNx&HbMcS7u;wZv@!p`h!X)5^`BHZu+X6{9%#%05HU8BK_Do! z{oCWu*gN8s+~|pbFu_X}uwhINZ}B5h_*JK7%f90`x)$u*-B${3*fKoB zi~DEV7Hw-^HMYtZL(gvqoYrCd*qZ>&_%pC%L>YO1;{W0_JI5?+%kpA4FE7r#;Ah%P z?{6CW%__Ono69gFAG{0ti&gA3m-K? z$s&w;P-WcM_&`xe22;+bzI>=3w82=2Lx)u7T6MpWNlCOnTgS!t@+H+VUFYJkI)hHxubzDphHU;{9HjJf*F3|tq-Kz9ay<-ex}F2T$ZitmuZ$$dk=rcm z5^jge0orE1xeU4F$?V8nlp4%dPC`Gi*86TZh{3ZdOuruk9au1cafPm0=U5CvGm2Tj z-5v+)+J6;lKohw8;GO&{N?%94187*4i8f(liquDWL=h76%q*v!IiMij3l3jf^PUZ_|1@`n8 zbM*6R=j2PCZ4^?FNpuBv<&AbO$=Gp{x}wllO)W;|N4X9La=6EFbpAK}OedtUpX^LO zto%5AuI1OdOZ2;*_dND*dYE!wo}CyRC)_g$bMR*uHm!BUeZ`jffFG9oVqn533q;t^ zxC9WT1rhf4DI7up6PS+xiksKWrj60U7#_}i*%uuWaAf|4zn%Uk{0XgNk-4nZledug zQ{(iml0wAlykBzGa$Z52!;I6b;mAzTj`0QEECs6mW_W_<1U#pmQr}IomwS^55HX-w zU8TmB3S?_tm``SGj@9E?Ei$2{N^BR(>lyaB&$ zy}HcX_yUM{@u8(^76T~&`QUatNGFKec<+@aCusSrPdB99UGD-+qUu{-&Jy#2-%USA zuM8Q$LX9B85x;TzcV(1TxKEsH~C6T zue_YmjQhR>fT%L9jlWGw1$)%l69b^+T!t0L2WSg@I@#b{U>Ia5_d=lQP7r%9vB>?M z%L97D9?qM^ktv~gRLdNKa33<<@vxJ{DpjTL!>%{ZNKe{W8?>>JZada%h)3)M-0=@bs zLMUp_n+dV|6SNO|Dl0Azqlfy|%gd!#J|B^maAPu?o6#|rC!|UWkxDkW(!*8GHPYGD z|7xiOiP$pGs*8QT{!dw;bRST#55WT$0kADUV*^0F=U_W_*wSduIGb@Lwrodb_ zYgiuC?MZx4KxQoAK%=Q}9d^gpHkPDuY+<@ygu^I3Z{Qz?i;a3>TB>@8$v;)*<|J)qVo&*f$79=>Ps1; zQuRN!Pw)nucukb;m0v;XaesuskPxqi^OkOx8T7T*rVU!(G1!=()yQfLX2m6IEUx9y zWwqlhOtPULNqg(sYdK$M%}+GPWzw+`6wkj@NI&U*afb;$NEK^5eQ|u6_~Xx zXzV)lbNzsP!`b*Dn7-nGwu)PH0G$1q#cT&E;GJ4O4OAbunrYlrpA@2;!AS(ua7_w8 zs?cwGn#@7&ZRAN(L8Ox|XQDA%0)|yU1lskG3z21(Du3hX6Gk0HLKIBt~B^^Bs>;5i}oqlUXO1o%g z{<<^oijpcwqfz%MX|^_`;8P>-aI0Ouicl^7tfWJ}T8{DN-3{_#u)VyxnIpGW$#Ioy zjIPePyMM5{+#|A`XGveYb$IY3K()T$#Ny462Sr0$Q6bsPVIo39d{w@G?WEjep?5nX z_^jp$faZMGb0=W~-P-r&(E(PFSH>UA-imG$*Y=@m0?wWZs^`}WpfP$gH_I#fY(2rS zfOlksKMl;}QZ?Z4LT%)>CZsI&IYpBW)C!uLMQ0G?n*wE(`_3gl7e}bgoMQ*xzg!4p z8Uo||@vOZA?qkryOX(_+T!$urbh`9;#08z9Iv_SeZRNbCxbEYc5o<>_QKR==7(GO+ zdfuKT*>GIH(+}pCP1Kcih#m7#owJi|&X56JI5I(={ZTyy8jYq-iJ=mh@F{nFFJMjL zcOTnC)P)DXMyQkd#q;k;O0X1V2r3|s<<$&S7yChYAqoi_=}+qj)p{)77+a(ChEYk9q!so<8T2<8FmdsN`l0SvT zNO;^DpZ_#u5^#hBdj~NU=yke1n;}G&gp8W?7M0MBs9sSmA9wQW4N=l0dX8d;$OpNG z>oPlNJJqd}H^mFIoj5Z1ocao|zzp(5AV+xR=CVes$=-!7>)w};@onrRar zf8aPI^QtqTtMslHq~v7GMeX|Y_-cjcca8=F>th8;fxgFNjiW$mDDrtmRwQ$p8w%RF zQFF5WnKI%)HtV5+E{#tnSB&BGe&0pf!x{+XWCRnkr1g0|XB|u9AaUQsOCP~Rl;5u^y z^_A+MKU>E3MW;Uut`@w)PnE)VsLS;`2Tbs@y!%Lp?>tBCfbI`q(no1HEj@-*)QkY2 zcaIGP$>|(-3vATNyxV`chu38$uke8l;T9}B^&9k?FrjOVd_k$_8~Bu@_Wq!iWe*Ji zTwF49oi0X{nU0stONyw!6MH3Cj-@EuHz>=b)!pVhG9FL`f`sp%-GW8lyH2lA*lYvqn4SWJ8MJ>+PntP0+`r=< zHQ{*#YV;W`s2oVFTNr^B8Zw>b8T3wUZ^~ag<4JwQJ9H_x63{Wbl+1DyHKAIN@iUIa_*uO8D3|&O?Z&h0AL(QR(Lip&ab2&(_^nrj zr&-Rv;`v$m297>T{9kf6-ECMXL`cR$2jl*Xr`y#^nMG_ef%`$ExCsYaQ$|LT1qrPx z<8>I4>+X`et6vK;h4ZAg-G3w-a0_gxpKY&&Zw%NrQ*_k%KFba`LUURl>Un-G@-YrZXji$Y8?aFs4cB)SZ#Re}E ziVufNx!wCUd1HapX2!QMosP?A zT^cg2E(&ZUt?JJR?l;WcyFupmh=vkKZX%I#+=lw^(#+_!$xKlLmuhjRYPV#9kHgen zqVZOsdtayzZS+Z!w97O5X|afid*&j+EMZVEfc4pyhe95!rY+A@am!P5x|iidb_LO; zT1}KQz_c9P=fu<>C)`x(zjj$Xd-$xe;t?Mw^;VOmiTPD&E`2m550uqx6)oBQ1+y$* zqlTi+g!WK?(ax+(vH!}&W3?jqxy_qe}avWrElnfrYVC-uOJD0>wh;T~9@nxepUgo+BWX3-PXPEnJEH82NS$zlkoqH~a&w)2jMMy73M&;;ob+=uz*u<6zewLN6aVKuV(Y!F59Y9~o|XO1TYJ~MyiGIU{Gyke zA#}4eOmZ)Qs^6xJTI7eKKyt_XXU2o7i{IyI%ve~Q^U@Tb9F54rAAcZTpJ(`_B#|yL zs<{H@JdwZQV6-eM^x9DC)@2O53<}RI4?CALr(b+&Ta80m@|k=_he{Rh1{GFk%0k?M z4Ct}hLrGa;)*THA@AW5N5OPsRus?b9hs{euxUR`Rl<&;4My`_PSpcXSZ$@_lI)qu3 zQsS|(YrZif@15!)Pv5fcoOv_vMvtQzulkg2H0_96@_{{>un!=AOy%qb*QuNeT28K| z8*5Y~krSi6{%(FXWCM0JJClxKTJoS|45LS?3YmBO`8eZ6eaI5&aIqq*O+UBq$Mdo# zI`?&D#32!ThZxF#7u+}00ZKOSKE43n;(=pF&Ucs=0rY(Mc>O83`~NJgjR*5u-l~e? zL&nyZTF!h7d2ypSnPWl3QG9!4Re+5mfOa^M$@+!zdIK{eQ$l%!QDuHLi&yS37~xXP zg8y_g;;QrX<)^^bxcgA&9gMRUe@N-oEy4j76V}rDSenMBB%@d877O=FENNCVI33nc ztLj^RVh?_OOhv4{(#SGq*rd=T6`c1T+BgVJP)|}BSw{yX_mbW6@T}pdF$#ICw1qRW zIqQpi)tygG@)vOohJq-`pxvMp&=yXhtzJZTYC+@8f$owt?1%Q)(9mbGmVbdlMPbXt ztT{N6Ux~FCr|M*l0lI>#21s@4yH~4u3MK`^cl3hM1+WnbmewM{%Jmm9lET*)=(zF= zWN&xpzd>W4w%;!9=8_kf3_qJVJh87aSrSvwrBi0jISH=%??uh@QFw1D26Gp#%S4;H zf{}}5)&r2`1E@#85!9S|-ro*HL95;NpPV?YB)$UJwGwyG69g2kG!yDakMCfBD(-EF z%+Um7LTO9x`pErY572NsQ~(PHM?14pU^wC9vvIF!?ox(6ao^)RSJ;=^4vpfdrenMm z3Dyt#8?VTcCx>UHY*yT3%#|zTqlrqP^&Ch7xwGL~za0%LH|`}g5MUEVL;w8Ht{kFN zH@b7>D;M(*kKLglnyInNGizva;*hcjsQx}MX&^N`JZyWq6w}pSnB>8Id2xK)4=Unc zGST@C8tTgy;dxSG!ODD4P*5&rH!he;+AFJ{wxTYN%8IZGf&{dVwx@xDRC{o8qE|E6 zmX~)onzf%aD^Xa11Vl&CufP?g+cY{^@k@6Ar;9ZFBTlICn*=pm@jiD{_qEVH4Auk( z|6$FOZ=u}lg3SHneeA)xpAYl3=;NT=6h^;$BO!C^TGbX5JVPOGfT0Dp4~@IsH!sGu zPqb?NORd$RKYcCwwV3E-ubagYt_>zIk+KPxF8h>a)e;U?z$Es~8^52w#-ELjLWr!x9^&Th(pk9yy1Im0Bcoc4A zpdtIoTl+5!Q$;FZ=Ci+id5tntl-vCbV7Zgp#oZY^f_QS*kpYdn^VqIsCUDTFeqy7O z=-B)5z7rKtrL_AG(Noo{U)NkK*t;-t&&snD-!pi4BTJ~l(s=*Wx*w#z<_uEr;^LgM zvvT-{+l6YKI|q9UIYe&7gL*kmGanGG6Q8Vpk(7`@T*U>4tIpkS_A7$&k#HG{lXg?Vk=ss z=>*YUWjK~VLe)o3DXZ5kfB## zmg&`^kg3PNf8DjEj&mMzc}X=Eh4s`26m7EFIQGn!9^Ep}3dtSb3%gI5s8AOPsZu{| z50}2UE@uQ5`9I4d`sEKwG+FKnVv01X)7?VnxWwCow;NA#bZJD=XNHunHA%9u(~b9X z2K&6$zoEw{z=fou(EJ4QBXYxhYd3EF2h$6q0a8%Ntegb(GJ)pDp`+_YS+>+Uqtk)~ z0NA9m#cckDM#dy=1AY+Ee|*SwhW?xR|Et?t4*Og0_4-rqWxJ{O{=BL8c57WT*Jd&$ z6Q4cmgcJmT0f0~zka^G}NEpI-Ki6jo%0FsfAjhDv94}s$%e#5+5%*nOOFyFn1HN6{ zkRyl&2WMcW(JHrMW)wcLHGKebcx9 zxABDL8d1=&p=Ebjmp|JIZp@7nd?Izh$yMW2n$fuEkC4ngadd{SAO`TX-<*(G%_am9 zF+Xn$WSD~N!;s~5_?qJxlqk$j*^)8<4BZzl7 z>Vwzeaz7x^$51QvfdJ&0WiimGC_qZ-d2A~3YJF^y9&UxO&z}IM_dXI|1P%Qnroarr z=6tv~Z7QVs9W@UY!YRj%J9=4}nfqwC3Gkf0JJ!@WCB^Z#Y<#I-Qduu8I!2{_gNHSb z4QN3yEKFP^e4B0tTX0t2#p$ZZc7r*#L-XG^*Y0G#N#h;|bk6u0w;iriUA*hr74Qwl z?eqsbx&~o9V zs|4BuQvvQ8?DAiNZ)5G&;qBseD&8A{e!zn!R!wC)tE#A%-#)507HJ!@IMyF@;h2jc zps+gF_3u(7XiX9jDjw5{Y?Smk73qnS{>Qz7Rl@^h>OM-m; zeDlu-1U%}W=mF{vhR55};0#`xKVB#^beVOLvd?MH|8;Tl^YVC-9dDpJmdOYjRbt)) zZ#$)H==_F?WskTykO=Do_2ES=R$Pqj#~zv=7vz#$G~C}rq3?2Ak7@gY5hl+AX6(EW z8gK;|C`efn$&wC0LW6wUf!bY2;Su@IG?zQQpf0}Q1%qqYwze5{8#-Q$$Q9lPGxGh@ z@0V2`s3|7^t)Kpt{W@czb4~1OYU16DiZ}R| zP3st0SX45VQwthz0h5x3b6>r$r=fl#ax#JK z@;`mk|AOheKJUcxh(s|eRK@8>6}`Or$mNE^_;^@d*em--RFMK&RoL3vYK(g z{rw$oQEQXYOlKi@p~({cgBsH7M66I9LZ(KQO^A54O!bKo>r@+?#@I`YGi7^y6EI3Z}e z(qlD0yemGeBm%U^suhN^1lj9T-cHs#6;f;HXXRisr;U;A);P0G$dl+RSQYA*4~?&- zYq*Mw4K--Yip;%h=fbAlV!nLJ)V0sKT)!&V`QfvHf+N>sM(U_vn&7YpL|AEBb3T%C z)0!5E$l6BZ>vy@%l_T){5Wh`a8co!-s}4qJi|F(qmuN}EAC$G%Mei7%h@LxBjjNO^ zeD3kMJo>~Vbhf}Aus9gIzv=&$yD%s7_4?;G&e$XacI;$xVq2)9`Y*|{;NeDIs{{*L zVBypB&!H=gqH;euEe`Zwm;h_NDWe3QM8ZwCjaCot#NMMHX4O$1)SEbcPEX=gt;`eI=5!EavD|#xXQj-xbO$k|PEc010+RDvD zXnVPi6S_fxwL+Mn`60oWKZTNrxX?1~R04k#`iOcbTQCz+p)yfUT&gDBp5rp7fOshv z9dS?(vE57^f0VXptoB!0w!{YkPdU52G>ckR=1b-+gkJ<=Vfxy2Jvp$Z+~_BYK`+0^5 zq)QAD%fZ$b&Ur1D@K zFxK1Lz#L$Ow<}oeGT5o+YitE?omm&&S!_zvVc(G>Pp;i1ueREx&teIfaAR}7s4@%U z7Djr?P{ws>JAQF?B6FH&;o5Q(=yrCD&t~0PaRvfY$?siV`tz-RC3>Cce!}Up>gr~~ zo|1{|`VDZXxGx{B?&9luZ-1qm>k++oxi@NO46I~DJF>H#zkn}_70pkg)g$stO{5T$ z$xyX}b$-zEL@~91YYx>ibU9lqaiZFlTdQ^+28X1ON{U2$LOZ6IIfESTJ|1-JIbVhF zNN*s&^82~RiC3f)WsJit8y%0!++BNQv`_nQNsW!wA}*}J zfB!f>c!6Ms4|2>%l5xzPuGMC<4eA;$TP#3cD3FRK75;493eQU*^}+19k<-dn<zBy$ebO)21 zmY+UC@#2TV=68I65KF9LgB@k+|Joo_{$v~F*3JAa8ljf(7}g810m$_yvGtJmYoX1|4r68vf4r2ofH z5`GiG8a=@1u%2~09*^b#(EO){yVJ$ICTiB|hhM8JkUN(UHBWBaA>9ge<8at6JDy6x z*#@E3L^KCj05zZ`@S9@BS}z}!!5Xa~ss^)1VbsasXoQZ?De8c%{3r>hOffMard1UX zSqE1_NyYFicTubU&P3oW58v8-@ z9s>BWw_p9ePr|ZFYH7Q)lYIvA197Kh>F5#@=k;|Bxvq4K2}UKIjE#EC&pJ(a?!ct? z?)x+abs&CHcu!jTne?+FahOUNT<1fWngBhVuySq#KM*qN&QIfBaxm^Ib^Bvt^RSt7 z|C5PbGRi3(6s}**3`Z|79A%Y#=@|EXzx#|c#EFhwhLI@e&0`HI?`|=&%{rfzruTQC ztCmz(S5Gvn7BK0NNMs)dmz}GSm#wP|cYUMAikdO{P#-iu#L@9YSGH!_Mn)1+K16;jtR0>#W&?xx`zpk*TBIgM#be*s6`UxBz3{-_ zVn`&mi8I~rKB~)%W6X&#SThO~8C{F~KwZv58Z{T0fd5e0cX{H;8~}Yv5b2ISble;K z*&QYIpuJ{EwM0)eMQ9Phrzu;R5INDEa1fSxCX8ef_u7RLv72(Hk1?w=;q42Pi3!rF zf%TBr?y%|U>7yi$llU;it{ltfOqzXN@3rm+dUh;Of6gGbd15Y^Du%F8u!!6K)F-+i zRKBOLFvcutJo!mjn?V@6g+}W4qR-v*+A#@|-rtb$Q3ipQ>LwQ}DLTTNM)!KNYTc`g z)Au9FIEdKT*nggp0L-va=Ttr-tlK117!ks?0gB!_K{|079<{+!8CzesCZiHYD8hty z;g9QzMmPpm4l{V#Ik|x(A5+k8t+xHMOqTuJs9zh28n3eI@Cy!SzWu7k#4PJ54IsfS zxSICXdivOx0GC_c!Sgw>6g^xh`Ct3XL65oahp83|2H#ZQgrML>Qq~8rsZPf%g(2gZ zNi~ktyDUw0Q7pcBRrt2Er1Nu3QLaXnbkdIF@Db8MQ-aIqwb-|Mz|2-;F|XBFEq0(y zVjBWxzd>1XO^wP(fw~C_=1#p}oW{yQU#h^5gwWK{uft1aF30AR3-_j{vwkPDF|k$7 zm>AYN(rlsfqgqkTi7=Yh&`j4k*=SA5dJ;AF9UYKhEu;7(C$PyCs8#E@hz)|i`4T8* zR79<1#+!!&JW1!Y!z|4b!BtUUJUyRzBIg@gr@3EJbsn?s3&=)O!;~yxWJgak{Io>q zyS=rPaXnK*v>fr!+^u!T^{^%BT{{tPXIyz#0VK(Iqer9JDdai8$gK6Kx`XI*OePX< zlQfxs+2Gl=QH=-+{HwUSwY#md!t|tA%l!1uQJVXn*wQaz3BcYMVGXIbW5ZQg%+eM* zz25->*cs#AoB#uVIvzl0@PS|9G)KzMe1gR=rX-45={vA6rd@a+zFq)?eGjrXo6FIc z`jr=##ZMQB*noYx12oy)c(FKv89xmtK|=a`*N}y<*5{CrhsM2t6~pJ+XA@%G#^Sw0 zq)pF5LuIu-L^WysD)ex;?E%-*yrEa!h43RZH%~B3XspsA87z9VfUx450|J-8;QWX) z(z6GU+Ph1ynaWF^jsdOz(TLs{S4z)llKya(0;|IvTDY$4m$cCy--SmL3A^ynkZz^i zcRq{(&=z1egYh`po;c!TRMDc`EpUTJ!3_m|Xl!Ja1T?t9)Nmi`keWIwOM2_Zo_cDa zfa6hmj_e_pj3`T&xu;_u3!AH?eA4OhPCrVg3lsT7yav4&ylBiAU<-UQn&XAp1nEj| zawUyky5^>{fHqjdHruJD!4H8yYw-kiR~XFepHHk8TsF4rLpc?9Q-&Tw9SJS)nQ|X^ zugIrN24f@iw%^FGcS?}Wgvs*R%Jk&ZKsPyYR5NNv$cL#%>&&*)OFtiC!NDVT~}y z9!X;!1T8K_vq>y-!mAFBkk3UcddQ>So%>Gl4gB3e@+uhofF^~o_UlO2{NIr*jrw&Y zYw?S-l!xLbigkse*h6GA`_46a<+FPa#iyFR;Hw7^6F`9RuK%IGX!^879)GbggG6DY z`m5~$`-P(|vF)t@X0hK*Nl(U{U!B!m9jtsZy4N^knc2CQ(6H9+YD{+FoaKZZCh5dw zDkW&eONt%_N)TOOoxLaZ&IiFrc26Q0VaUfJf37*w*oQfGWSD1HKsG8)y#=b8Aox)_ z>Ce!$;=431uHH(pu+xlw^#UY2hSRl5Kk8lilk5&Y-HVnW=gLfXp5u3FSWuW`>bqmJ z9TpReo5~%VQHvMy`zp;0`Eyt9X**9efDVi&4W!p%X@U;+IM9IDvT6Z!YQ679uVWd% z9Yt0E1)oWmJ3uxp-h=0;IHWVC;egC(Jtyn6>K(nEVr!KjA{**Dj<)f#U&HjqY!fHz zoJyaolyw{h(*8B6=t#aKn)GT1TrA$`qO@IS<9{)UNY?>*UjpmF z9kTjr$ye#+mFXYGGAc1==Lx%&e^O z({42zFZW_JyY74E))?emM8^4G2|(`z-1N7qnPwS6uB)~AZ<{3FG7Q09&YKpkn(b|K zI*hY++%!jLS=5UK$8t$y>FY0W9W-UU8|o@=RFxv{#JtC_NBLlTuyopsb0P5`d-8AF za`W#(ec1MPc6Jp@DD~?Ihg4QvtFf~WZCEluy=?r(;GvZjBnG_AH72}Q04(urIGH#A zZ8DkY1Y?4S3ZwIzH4E)k4;J1R)rORqJCJE90_zUrWkwPIL<$0HabR*6xCI(Zu+3pL ziS2f6Gc~sOEg)0ecG&(gm2R~c(^gZW5cj?K?qC* z21`q69B?`8UuV9K)lqHgxN$udD@iWFw?|?0nAKRJ_q|7D{uP4?hzpa&l^qW{T`CCF zi!`*`{E0!;c670nD_!~M;Grwx6F0H7wH=G*Kq25Z-I?=Q^zO>li5Q0u|C{_%nqPfU z<<8d@xjq+kzYnboRv@?sPty{3;VQhtqH_yFOG+4R^0KA;Y@PXfD_r(9lL&=LO;a&wJ(bosS1(!>SQkv!pXV*eO{DFCev0D~jYAtd0h7g33YPfN5`l zh;FG!B5R?vzOt;rry_C5tgkxvP#MU9Glo^6eb5;&bQsK){vx9j_Ni>6Lw$mFszJTe z$PL{H!^5%{(PWLpO~d1CA6wT;!{XP%8S{=CQqo&t&7F%f%^ksOi#Xa(Rp@I{@9@6Z zA6$aaCr+o5>S|$eBk7M=vBa{}2%_YVh|6P(Eul;s1W+~uinI{h;CKr2pdzDN{5RK; zdnf4o1k???y}=(Z>OVR#`D+rVOWTjCy!9hQd&|E3rq;eWrAmhcqsQ7aM`^?WIDf5j|B^~iCyzQ)yaBC(qRGGg^&Er@h=S|CdXSn>pi14JC}e)?=4LStj& z&&9F8B*{fUk+rM!pzIUZv}-PAb$I@peRuc6=v886}P%j4N(CZzec z>+F(bx&IXb8B(w|6zkEin>Q|?*l=pUP^zg#h`I%WE!aDmO6NmkKZ^-H$v)A>%fa9+ zMwe|hIi^SHA=eKAP*R!#;$sy{!Gyihf=1&dz{6Y|)GvQAt2YbbGQO%`n|IkOJU<%G znJTrM`^rnrejOsHd~g8eR`4wlCZZ!T5Zfy4K8k-4E6eTdve5l>-(sOaU9wPDR>Ctzs9gHAoX&B8-G$>Q`0#OToHlDG?>)ys=HSEA=P88a!W`J(>ua+YK~xksseekl&abkpyq^8u56{+{3J z4bL07ZG;Wn=O4+|YrQv}Dtb@X!o1ccR)6-L+PZghd{5NEX=|*ZelaFWBaycdzVjrc{!>2%ZrvhG}KSDx{JwpArM!iw0 zNzCd>8b~j>4^qJ|1}SsH+gzLtrIfzFOu#3t{mDIry{?=HDR2b9)CV{znAXe3Nacol z#9>7=pG^!6=~)j3Z?Ay?>`I!&bp6+AX_M&FnN`9(kIu$<%}u2Opt|i7nuF>7er?tC z-W;uLrSm=<#$r=Oqg!tqV7^it+%>Jky@BrJ2c_?)#*#4Gp=uakA`_. + a. R-31809 is the requirement dictating the need for VNF Healthchecks. + b. The Ansible Healthcheck Playbook description may be found in `The Ansible Standards and Capabilities Section `_. + 2. VNF Heat Templates must be built according the `VNF Modularity Rules `_. + a. The VF_Module to be scaled must be built according the VNF Modularity Rules for Incremental Modules. + 3. Configuration of the VNF must be done via NETCONF, Chef, or Ansible as described in `Configuration Management `_. + + +.. |image0| image:: Scale_Out_Workflow.png + :width: 7in + :height: 9in diff --git a/docs/release-notes.rst b/docs/release-notes.rst new file mode 100644 index 0000000..2c6cfc4 --- /dev/null +++ b/docs/release-notes.rst @@ -0,0 +1,39 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017 AT&T Intellectual Property. All rights reserved. + + +VNF Use Case Release Notes +============================= + +Version: 1.0.0 +-------------- + + +:Release Date: 2018-03-29 + + + +**New Features** + Initial release of VNF Use Cases for Open Network Automation Platform (ONAP) + +**Bug Fixes** + - None + +**Known Issues** + - No known issues + +**Security Issues** + - No known security issues. + +**Upgrade Notes** + - Initial release - none + +**Deprecation Notes** + - Initial release - none + +**Other** + +=========== + +End of Release Notes diff --git a/etc/requirements.txt b/etc/requirements.txt new file mode 100644 index 0000000..8ad711f --- /dev/null +++ b/etc/requirements.txt @@ -0,0 +1,8 @@ +tox +Sphinx==1.3.1 +doc8 +docutils +setuptools +six +sphinxcontrib-httpdomain +sphinx_bootstrap_theme>=0.4.11 diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..b3ee8fc --- /dev/null +++ b/tox.ini @@ -0,0 +1,15 @@ +[tox] +minversion = 1.6 +envlist = docs,docs-linkcheck +skipsdist = true + +[testenv:docs] +deps = -r{toxinidir}/etc/requirements.txt +commands = + sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html + echo "Generated docs available in {toxinidir}/docs/_build/html" +whitelist_externals = echo + +[testenv:docs-linkcheck] +deps = -r{toxinidir}/etc/requirements.txt +commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck -- 2.16.6