UNPKG

bytefun-ai-mcp

Version:

ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发

188 lines (168 loc) 36.6 kB
export const productDesignPromptTemplate = `# 你是专业的APP或者网站产品专家和应用架构专家,现在需要你根据用户描述,理解核心思路,严格按步骤执行,完成'.bytefun/prd-design-config.json' ## **执行设计:调用 todo_write 工具创建以下 6 个任务列表,创建完成后必须确认:如果任务数量不是 6 个,立即报错并重新创建。严格按照任务队列完成'.bytefun/prd-design-config.json'的编写** 1. 严格按照\`步骤规则1\`执行任务,调用 MCP 工具\`optimize_ui_spec_design_prompt\`,并严格按照工具返回的提示词,完成UI规范设计 2. 严格按照\`步骤规则2\`执行任务,思考该项目的有哪些功能模块,得出最终的\`moduleList\` 3. 严格按照\`步骤规则3\`执行任务,添加所有功能模块到'.bytefun/prd-design-config.json'里面的\`moduleList\`字段里面,完成每一个功能模块json对象的title、cnName、enName三个字段,其中pageList先不完成。 4. 严格按照\`步骤规则4\`执行任务,遍历\`moduleList\`字段,列出每一个功能模块json对象的pageList字段页面列表,并给页面的这四个属性:"title"、"isSubPage"、"cnName"、"enName"。页面的"content"字段先不完成。 5. 严格按照\`步骤规则5\`执行任务,完成每一个页面的html页面设计,每完成一个html页面设计后,需要根据html的内容完善'.bytefun/prd-design-config.json'文件的pageList里每一个页面的"content"字段 6. 严格按照\`步骤规则6\`执行任务,完成所有\`moduleList\`的编写和html页面设计后,更新\`.bytefun/prd-design-config.json\`的\`progressStatus\`为"completed" ### 步骤规则1:调用 MCP 工具\`optimize_ui_spec_design_prompt\`,并严格按照工具返回的提示词,完成UI规范设计 ### 步骤规则2:思考该项目的有哪些功能模块,得出最终的\`moduleList\` - 移动端一般需要启动功能模块,PC端一般不需要启动功能模块 - 启动模块必须要与账号模块分开,不得合并为启动与账号模块 - 我要开发一个完整的APP/网站,因此你不能只列出核心功能模块,要全部功能模块,必须完整的功能模块。 - 绝对禁止合并为\`其他功能模块\`或\`其他模块\`,敷衍完事,只能是具体的完整的功能模块。 - 绝对禁止出现\`其他功能模块\`或\`其他模块\`,只能是具体的完整的功能模块,如果出现了那就是严重违规,视为执行失败! ### 步骤规则3:添加所有功能模块到'.bytefun/prd-design-config.json'里面的\`moduleList\`字段里面,完成每一个功能模块json对象的title、cnName、enName三个字段,其中pageList先不完成。 ### 步骤规则4:遍历\`moduleList\`字段,列出每一个功能模块json对象的pageList字段页面列表,并给页面的这四个属性:"title"、"isSubPage"、"cnName"、"enName"。页面的"content"字段先不完成。然后更新\`.bytefun/prd-design-config.json\`的\`progressStatus\`为"completed"。 ### 步骤规则5:执行任务,完成每一个页面的html页面设计,每完成一个html页面设计后,需要根据html的内容完善'.bytefun/prd-design-config.json'文件的pageList里每一个页面的"content"字段 - 根据以下规则,完成每一个页面的html页面设计: - **html页面设计必须精美,绝对不能敷衍,你是专家,必须尽全力设计** - **html页面内容必须丰富完整,不得敷衍简单地设计,这是一个最终产品形态,必须充完整的产品闭环思考界面的组成部分和功能,不得敷衍简单地设计。** - **html页面完整性:必须考虑所有内容、状态、交互、弹框、toast提示等所有可能的情况,不能有任何遗漏。** - 禁止使用任何前端框架,只使用 html+类选择器样式+js 来实现 - 禁止使用js代码来拼接html字符串,必须在body标签里面直接写html代码 - 禁止使用js代码来声明任何页面显示所需的数据,所有数据都必须在html代码中直接写死 - 样式代码必须使用类选择器样式Class-based Style / Class Selector Style方式,不得使用行内样式Inline Style或外部文件。 - 遵循手机尺寸规格(宽度 393px 高度 808px) - 输入框\`input\`如果需要展示文字 label,尽量使用 icon 代替文字 label,并且 icon 重叠在输入框的左侧,这样整个页面的空间利用率高。 - 如果主题风格是暗黑风格的话,默认可以给每个页面添加多个玻璃效果的圆形径向渐变背景,类似这样:\`background: radial-gradient(circle, rgba(0, 242, 255, 0.1) 0%, rgba(0, 0, 0, 0) 70%);\`,里面的颜色和渐变范围可以根据实际情况调整。 - 背景色为了增强层次感,添加的梦幻泡泡或者圆形径向渐变元素的div,必须只能声明为\`circle\`,并且一个div的\`background:\`只能声明一个\`radial-gradient\`,比如正确的写法:background: radial-gradient(circle, rgba(0, 229, 255, 0.15) 0%, rgba(0, 0, 0, 0) 70%);,如果需要多个\`radial-gradient\`径向渐变背景,每个径向渐变背景都必须声明为一个div节点,每个div的\`background:\`只能声明一个\`radial-gradient\` - 绝对不能使用 emoji 表情符号,不得使用任何 emoji 表情符号,请使用FontAwesome字体图标来代替。 - LOGO图片和引导页的引导图片必须使用\`doc/res/svgMap.json\`文件中json对象正确字段的https链接值,禁止使用本地图片路径\`doc/res/logo.svg\`文件,而是使用类似:\`https://editor.bytefungo.com/dfile/img/xxxxx.svg\`这样的图片链接地址 - jpg、jpeg类型图片必须使用图片地址:\`https://oss.bytefungo.com/f1/showImg1.jpg\`),其中结尾的’showImg1'可以换为从 1 到 30 的数字,1~30 的数字必须随机挑选,不得每个页面每个图片都使用同一个数字。写法比如:\`<img src="https://oss.bytefungo.com/f1/showImg17.jpg" alt="xxx" class="xxx" nodeType="image">\` - 每设计完一个html页面,需要完善'.bytefun/prd-design-config.json'文件的pageList里每一个页面的"content"字段 - 每一个页面的"content"字段必须要根据刚刚设计完的html页面的内容来编写 - 每一个页面的"content"字段必须完成的4部分:1.1、页面组成部分(从上到下)、1.2、所需的对话框、toast、下拉菜单、侧滑面板、1.3、数据来源、1.4、用户操作 - 每一个页面的"content"字段的json对象要完成的字段格式和要求如下: \`\`\`json { "title": "1、xxx页面", "isSubPage": false, "cnName": "xxx页面", "enName": "xxxPage", "content": [ { "title": "1.1、页面组成部分(从上到下)", "content": "xxx(比如:顶部搜索栏、推荐轮播、分类入口、热门推荐、新品速递、完本推荐、推荐书籍列表、加载更多等)" }, { "title": "1.2、所需的对话框、toast、下拉菜单、侧滑面板", "content": "xxx(列出该页面所需的对话框、toast、下拉菜单、侧滑面板,可能有,可能无,需分析该页面来定)" }, { "title": "1.3、数据来源", "content": "xxx(说明该页面可能需要的网络数据、代码写死的数据、本地持久化的数据等)" }, { "title": "1.4、用户操作", "content": "xxx(说明该页面的用户交互操作流程)" } ] } \`\`\` - 特别注意,文档内容绝对禁止使用双引号,只能使用单引号 - 必须完成\`moduleList\`所有功能模块里面的所有页面的设计才能停止任务! ### 步骤规则6:完成所有\`moduleList\`的编写后,更新\`.bytefun/prd-design-config.json\`的\`progressStatus\`为"completed" ## 核心思路 - APP或者网站有N个功能模块组成,一个功能模块由X个页面组成。 - 功能模块之间是解耦的 - **只需思考APP或者网站前端的功能模块** 只需思考APP或者网站前端的功能模块,后端的功能管理模块绝对不需要理会 ## 页面和功能模块默认业务逻辑 - 如用户没在描述中明确指明该功能模块或页面的业务逻辑,那就默认必须遵守\`默认功能设计规则\` - 不存在权限请求页面,所有权限请求必须使用弹框的交互方式,而且是遵循"即用即取"(Just-in-Time)的原则 - 网络错误与重试、数据加载、数据缓存、数据持久化、空状态、搜索历史等是当前页面展示就行,是绝对不能设计成页面的。 - 启动功能模块 - 不存在权限请求页面,所有权限请求必须使用弹框的交互方式,而且是遵循"即用即取"(Just-in-Time)的原则 - 绝对不会有任何关于隐私协议/服务条款页的逻辑 - 闪屏页 - 一般设置1秒跳过就行,注意是1秒 - 禁止使用全屏图片,一般使用主题相关的渐变色,然后带有一些额外的背景元素增强界面层次感,比如:梦幻圆圈泡泡、玻璃效果的圆形径向渐变等等元素 - 如果有闪屏页,那么启动后第一个页面必须是闪屏页,闪屏页不会有跳到登录页的路径,只有跳到引导页或首页的路径 - 闪屏页不做任何业务逻辑,不请求任何网络接口,只需判断是否首次启动,如果首次启动就x秒后跳到引导页,如果不是首次启动就跳到首页 - ❌ 闪屏页绝对禁止做的事情: - 请求任何网络接口 - 请求版本更新API接口 - 跳到隐私协议/服务条款页 - 弹出任何其他弹框 - 任何权限请求 - 引导页 - 引导页告页不会有跳到登录页的路径,只有跳到首页的路径 - 不会有任何网络请求、业务逻辑,引导页仅仅是一个展示静态数据的页面 - 不需要自动轮播 - 账号功能模块(一般包含以下8个页面) - 登录页 - 登录页一般有以下两种页面结构,可以随机选择: 1. 一般页面组成是:带返回按钮的顶部标题栏、应用logo、欢迎、tab切换登录方式(验证码登录、账号密码登录)、勾选阅读用户协议和隐私协议、登录按钮、登录按钮下方一行显示'新用户注册'和'忘记密码'两个文字按钮、其他第三方登录(微信、QQ、微博) 2. 一般页面组成是:带返回按钮的顶部标题栏、应用logo、欢迎、多状态容器(验证码登录表单状态和账号密码登录表单状态)、勾选阅读用户协议和隐私协议、登录按钮、登录按钮下方一行显示'新用户注册'和'验证码登录/账号密码登录'和'忘记密码'三个文字按钮、其他第三方登录(微信、QQ、微博) - 注意,隐私协议、用户协议都不得使用弹框或侧滑面板,必须使用跳转页面来实现 - 注册页 - 一般有应用logo、欢迎注册语句、注册表单、勾选阅读用户协议和隐私协议、注册按钮、注册按钮下方一行显示'已有账号登录'和'忘记密码'两个文字按钮、其他第三方登录(微信、QQ、微博) - 注意,隐私协议、用户协议都不得使用弹框或侧滑面板,必须使用跳转页面来实现 - 验证码输入页 - 忘记密码页 - 修改密码页 - 账号注销页 - 用户协议页 - 用户协议的内容写死即可,不需要网络API请求,也就不需要loading、加载失败、多状态容器等,就是一个简单的页面 - 底部不需要同意等操作按钮的,这只是一个展示页面 - 隐私协议页 - 隐私协议的内容写死即可,不需要网络API请求,也就不需要loading、加载失败、多状态容器等,就是一个简单的html页面 - 底部不需要同意等操作按钮的,这只是一个展示页面 - 首页功能模块 - 首页 - 进入首页一般需要请求app版本更新API接口,判断是否需要更新,如果需要更新就弹出更新弹框,如果不需要那就不做任何事情 - 进入首页还要读取本地数据:全局配置数据。一般用于功能开关、ABTest配置等,读取完毕后,还要网络请求一次全局配置API,将全局配置数据更新到本地数据中 - 首页模块的页面列表一般是只包含1个首页主体页和N个子页面,比如首页模块分为首页主体页、首页子页面、购物车子页面、消息子页面、个人中心子页面总共5个页面,其中首页子页面、购物车子页面、消息子页面、个人中心子页面嵌套在首页主体页里面,那么\`二、页面详细信息列表表格\`必须是首页主体页、首页子页面、购物车子页面、消息子页面、个人中心子页面。 - 所有子页面也是独立设计的页面,也必须加入到\`pageList\`字段里,其中\`isSubPage\`是true - 需要在.bytefun/project.json文件里面的pageList添加首页homePage的subPageList子页面enName列表,格式例子: { "packageName": "com.mycompany.myapp", "versionName": "1.0.0", "versionCode": 1, ...其他属性, { "enName": "homePage", "subPageList": [ "xxxPage", "xxxPage", ... ] } } - 搜索功能模块 - 搜索页 - 搜索页一般由搜索栏、多状态容器组成,其中多状态由5个状态组成:默认状态(包括热门搜索、搜索历史)、搜索中状态、搜索空数据状态、搜索网络错误状态、搜索有数据结果状态(搜索结果列表) ## AI任务完整性执行规范 ### 核心原则 - **绝对禁止中途停止任务,必须100%完成所有既定目标** - 绝对禁止出现\`其他功能模块\`或\`其他模块\`,只能是具体的完整的功能模块,如果出现了那就是严重违规,视为执行失败! ### 执行检查清单 1. **任务分解**:明确功能模块总数量N,列出完整任务列表 2. **进度跟踪**:实时显示"已完成X/总共N" 3. **逐项执行**:每完成一项输出\`✅ 已完成第X项,当前进度X/N\` 4. **完成验证**:只有N/N=100%才能声称任务完成 ### 严禁行为 ❌ **提前结束**:未完成所有项目就声称完成 ❌ **主观判断**:认为"只完成核心部分够了" ❌ **忽略细节**:跳过看似"不重要"的项目 ❌ **缺乏验证**:不核对原始列表就结束 ### 执行模板 第一步:任务分解 总计:需完成N个子任务 第二步:逐项执行 🔄 开始第1项:[任务名] ✅ 已完成第1项,当前进度1/N ... 🔄 开始第N项:[任务名] ✅ 已完成第N项,当前进度N/N 第三步:完成确认 🎉 任务完成确认:已完成全部N项任务 ### 自检问题 - 进度是否显示100%完成? - 是否存在跳过的项目? - 原始任务列表是否全部完成? ### 错误处理 发现遗漏时:立即停止→核对列表→补充遗漏→继续执行 `; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvRGVzaWduUHJvQWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb0Rlc2lnblByb0FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMEwxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHByb2R1Y3REZXNpZ25Qcm9tcHRUZW1wbGF0ZSA9IGAjIOS9oOaYr+S4k+S4mueahEFQUOaIluiAhee9keermeS6p+WTgeS4k+WutuWSjOW6lOeUqOaetuaehOS4k+Wutu+8jOeOsOWcqOmcgOimgeS9oOagueaNrueUqOaIt+aPj+i/sO+8jOeQhuino+aguOW/g+aAnei3r++8jOS4peagvOaMieatpemqpOaJp+ihjO+8jOWujOaIkCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ1xuXG4jIyAqKuaJp+ihjOiuvuiuoe+8muiwg+eUqCB0b2RvX3dyaXRlIOW3peWFt+WIm+W7uuS7peS4iyA2IOS4quS7u+WKoeWIl+ihqO+8jOWIm+W7uuWujOaIkOWQjuW/hemhu+ehruiupO+8muWmguaenOS7u+WKoeaVsOmHj+S4jeaYryA2IOS4qu+8jOeri+WNs+aKpemUmeW5tumHjeaWsOWIm+W7uuOAguS4peagvOaMieeFp+S7u+WKoemYn+WIl+WujOaIkCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+eahOe8luWGmSoqXG5cbjEuIOS4peagvOaMieeFp1xcYOatpemqpOinhOWImTFcXGDmiafooYzku7vliqHvvIzosIPnlKggTUNQIOW3peWFt1xcYG9wdGltaXplX3VpX3NwZWNfZGVzaWduX3Byb21wdFxcYO+8jOW5tuS4peagvOaMieeFp+W3peWFt+i/lOWbnueahOaPkOekuuivje+8jOWujOaIkFVJ6KeE6IyD6K6+6K6hXG4yLiDkuKXmoLzmjInnhadcXGDmraXpqqTop4TliJkyXFxg5omn6KGM5Lu75Yqh77yM5oCd6ICD6K+l6aG555uu55qE5pyJ5ZOq5Lqb5Yqf6IO95qih5Z2X77yM5b6X5Ye65pyA57uI55qEXFxgbW9kdWxlTGlzdFxcYFxuMy4g5Lil5qC85oyJ54WnXFxg5q2l6aqk6KeE5YiZM1xcYOaJp+ihjOS7u+WKoe+8jOa3u+WKoOaJgOacieWKn+iDveaooeWdl+WIsCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+mHjOmdoueahFxcYG1vZHVsZUxpc3RcXGDlrZfmrrXph4zpnaLvvIzlrozmiJDmr4/kuIDkuKrlip/og73mqKHlnZdqc29u5a+56LGh55qEdGl0bGXjgIFjbk5hbWXjgIFlbk5hbWXkuInkuKrlrZfmrrXvvIzlhbbkuK1wYWdlTGlzdOWFiOS4jeWujOaIkOOAglxuNC4g5Lil5qC85oyJ54WnXFxg5q2l6aqk6KeE5YiZNFxcYOaJp+ihjOS7u+WKoe+8jOmBjeWOhlxcYG1vZHVsZUxpc3RcXGDlrZfmrrXvvIzliJflh7rmr4/kuIDkuKrlip/og73mqKHlnZdqc29u5a+56LGh55qEcGFnZUxpc3TlrZfmrrXpobXpnaLliJfooajvvIzlubbnu5npobXpnaLnmoTov5nlm5vkuKrlsZ7mgKfvvJpcInRpdGxlXCLjgIFcImlzU3ViUGFnZVwi44CBXCJjbk5hbWVcIuOAgVwiZW5OYW1lXCLjgILpobXpnaLnmoRcImNvbnRlbnRcIuWtl+auteWFiOS4jeWujOaIkOOAglxuNS4g5Lil5qC85oyJ54WnXFxg5q2l6aqk6KeE5YiZNVxcYOaJp+ihjOS7u+WKoe+8jOWujOaIkOavj+S4gOS4qumhtemdoueahGh0bWzpobXpnaLorr7orqHvvIzmr4/lrozmiJDkuIDkuKpodG1s6aG16Z2i6K6+6K6h5ZCO77yM6ZyA6KaB5qC55o2uaHRtbOeahOWGheWuueWujOWWhCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+aWh+S7tueahHBhZ2VMaXN06YeM5q+P5LiA5Liq6aG16Z2i55qEXCJjb250ZW50XCLlrZfmrrVcbjYuIOS4peagvOaMieeFp1xcYOatpemqpOinhOWImTZcXGDmiafooYzku7vliqHvvIzlrozmiJDmiYDmnIlcXGBtb2R1bGVMaXN0XFxg55qE57yW5YaZ5ZKMaHRtbOmhtemdouiuvuiuoeWQju+8jOabtOaWsFxcYC5ieXRlZnVuL3ByZC1kZXNpZ24tY29uZmlnLmpzb25cXGDnmoRcXGBwcm9ncmVzc1N0YXR1c1xcYOS4ulwiY29tcGxldGVkXCJcblxuIyMjIOatpemqpOinhOWImTHvvJrosIPnlKggTUNQIOW3peWFt1xcYG9wdGltaXplX3VpX3NwZWNfZGVzaWduX3Byb21wdFxcYO+8jOW5tuS4peagvOaMieeFp+W3peWFt+i/lOWbnueahOaPkOekuuivje+8jOWujOaIkFVJ6KeE6IyD6K6+6K6hXG5cbiMjIyDmraXpqqTop4TliJky77ya5oCd6ICD6K+l6aG555uu55qE5pyJ5ZOq5Lqb5Yqf6IO95qih5Z2X77yM5b6X5Ye65pyA57uI55qEXFxgbW9kdWxlTGlzdFxcYFxuLSDnp7vliqjnq6/kuIDoiKzpnIDopoHlkK/liqjlip/og73mqKHlnZfvvIxQQ+err+S4gOiIrOS4jemcgOimgeWQr+WKqOWKn+iDveaooeWdl1xuLSDlkK/liqjmqKHlnZflv4XpobvopoHkuI7otKblj7fmqKHlnZfliIblvIDvvIzkuI3lvpflkIjlubbkuLrlkK/liqjkuI7otKblj7fmqKHlnZdcbi0g5oiR6KaB5byA5Y+R5LiA5Liq5a6M5pW055qEQVBQL+e9keerme+8jOWboOatpOS9oOS4jeiDveWPquWIl+WHuuaguOW/g+WKn+iDveaooeWdl++8jOimgeWFqOmDqOWKn+iDveaooeWdl++8jOW/hemhu+WujOaVtOeahOWKn+iDveaooeWdl+OAglxuLSDnu53lr7nnpoHmraLlkIjlubbkuLpcXGDlhbbku5blip/og73mqKHlnZdcXGDmiJZcXGDlhbbku5bmqKHlnZdcXGDvvIzmlbfooY3lrozkuovvvIzlj6rog73mmK/lhbfkvZPnmoTlrozmlbTnmoTlip/og73mqKHlnZfjgIJcbi0g57ud5a+556aB5q2i5Ye6546wXFxg5YW25LuW5Yqf6IO95qih5Z2XXFxg5oiWXFxg5YW25LuW5qih5Z2XXFxg77yM5Y+q6IO95piv5YW35L2T55qE5a6M5pW055qE5Yqf6IO95qih5Z2X77yM5aaC5p6c5Ye6546w5LqG6YKj5bCx5piv5Lil6YeN6L+d6KeE77yM6KeG5Li65omn6KGM5aSx6LSl77yBXG5cbiMjIyDmraXpqqTop4TliJkz77ya5re75Yqg5omA5pyJ5Yqf6IO95qih5Z2X5YiwJy5ieXRlZnVuL3ByZC1kZXNpZ24tY29uZmlnLmpzb24n6YeM6Z2i55qEXFxgbW9kdWxlTGlzdFxcYOWtl+autemHjOmdou+8jOWujOaIkOavj+S4gOS4quWKn+iDveaooeWdl2pzb27lr7nosaHnmoR0aXRsZeOAgWNuTmFtZeOAgWVuTmFtZeS4ieS4quWtl+aute+8jOWFtuS4rXBhZ2VMaXN05YWI5LiN5a6M5oiQ44CCXG5cbiMjIyDmraXpqqTop4TliJk077ya6YGN5Y6GXFxgbW9kdWxlTGlzdFxcYOWtl+aute+8jOWIl+WHuuavj+S4gOS4quWKn+iDveaooeWdl2pzb27lr7nosaHnmoRwYWdlTGlzdOWtl+autemhtemdouWIl+ihqO+8jOW5tue7memhtemdoueahOi/meWbm+S4quWxnuaAp++8mlwidGl0bGVcIuOAgVwiaXNTdWJQYWdlXCLjgIFcImNuTmFtZVwi44CBXCJlbk5hbWVcIuOAgumhtemdoueahFwiY29udGVudFwi5a2X5q615YWI5LiN5a6M5oiQ44CC54S25ZCO5pu05pawXFxgLmJ5dGVmdW4vcHJkLWRlc2lnbi1jb25maWcuanNvblxcYOeahFxcYHByb2dyZXNzU3RhdHVzXFxg5Li6XCJjb21wbGV0ZWRcIuOAglxuXG4jIyMg5q2l6aqk6KeE5YiZNe+8muaJp+ihjOS7u+WKoe+8jOWujOaIkOavj+S4gOS4qumhtemdoueahGh0bWzpobXpnaLorr7orqHvvIzmr4/lrozmiJDkuIDkuKpodG1s6aG16Z2i6K6+6K6h5ZCO77yM6ZyA6KaB5qC55o2uaHRtbOeahOWGheWuueWujOWWhCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+aWh+S7tueahHBhZ2VMaXN06YeM5q+P5LiA5Liq6aG16Z2i55qEXCJjb250ZW50XCLlrZfmrrVcbi0g5qC55o2u5Lul5LiL6KeE5YiZ77yM5a6M5oiQ5q+P5LiA5Liq6aG16Z2i55qEaHRtbOmhtemdouiuvuiuoe+8mlxuICAtICoqaHRtbOmhtemdouiuvuiuoeW/hemhu+eyvue+ju+8jOe7neWvueS4jeiDveaVt+ihje+8jOS9oOaYr+S4k+Wutu+8jOW/hemhu+WwveWFqOWKm+iuvuiuoSoqXG4gIC0gKipodG1s6aG16Z2i5YaF5a655b+F6aG75Liw5a+M5a6M5pW077yM5LiN5b6X5pW36KGN566A5Y2V5Zyw6K6+6K6h77yM6L+Z5piv5LiA5Liq5pyA57uI5Lqn5ZOB5b2i5oCB77yM5b+F6aG75YWF5a6M5pW055qE5Lqn5ZOB6Zet546v5oCd6ICD55WM6Z2i55qE57uE5oiQ6YOo5YiG5ZKM5Yqf6IO977yM5LiN5b6X5pW36KGN566A5Y2V5Zyw6K6+6K6h44CCKipcbiAgLSAqKmh0bWzpobXpnaLlrozmlbTmgKfvvJrlv4XpobvogIPomZHmiYDmnInlhoXlrrnjgIHnirbmgIHjgIHkuqTkupLjgIHlvLnmoYbjgIF0b2FzdOaPkOekuuetieaJgOacieWPr+iDveeahOaDheWGte+8jOS4jeiDveacieS7u+S9lemBl+a8j+OAgioqXG4gIC0g56aB5q2i5L2/55So5Lu75L2V5YmN56uv5qGG5p6277yM5Y+q5L2/55SoIGh0bWwr57G76YCJ5oup5Zmo5qC35byPK2pzIOadpeWunueOsFxuICAtIOemgeatouS9v+eUqGpz5Luj56CB5p2l5ou85o6laHRtbOWtl+espuS4su+8jOW/hemhu+WcqGJvZHnmoIfnrb7ph4zpnaLnm7TmjqXlhplodG1s5Luj56CBXG4gIC0g56aB5q2i5L2/55SoanPku6PnoIHmnaXlo7DmmI7ku7vkvZXpobXpnaLmmL7npLrmiYDpnIDnmoTmlbDmja7vvIzmiYDmnInmlbDmja7pg73lv4XpobvlnKhodG1s5Luj56CB5Lit55u05o6l5YaZ5q27XG4gIC0g5qC35byP5Luj56CB5b+F6aG75L2/55So57G76YCJ5oup5Zmo5qC35byPQ2xhc3MtYmFzZWQgU3R5bGUgLyBDbGFzcyBTZWxlY3RvciBTdHlsZeaWueW8j++8jOS4jeW+l+S9v+eUqOihjOWGheagt+W8j0lubGluZSBTdHlsZeaIluWklumDqOaWh+S7tuOAglxuICAtIOmBteW+quaJi+acuuWwuuWvuOinhOagvCjlrr3luqYgMzkzcHgg6auY5bqmIDgwOHB4KVxuICAtIOi+k+WFpeahhlxcYGlucHV0XFxg5aaC5p6c6ZyA6KaB5bGV56S65paH5a2XIGxhYmVs77yM5bC96YeP5L2/55SoIGljb24g5Luj5pu/5paH5a2XIGxhYmVs77yM5bm25LiUIGljb24g6YeN5Y+g5Zyo6L6T5YWl5qGG55qE5bem5L6n77yM6L+Z5qC35pW05Liq6aG16Z2i55qE56m66Ze05Yip55So546H6auY44CCXG4gIC0g5aaC5p6c5Li76aKY6aOO5qC85piv5pqX6buR6aOO5qC855qE6K+d77yM6buY6K6k5Y+v5Lul57uZ5q+P5Liq6aG16Z2i5re75Yqg5aSa5Liq546755KD5pWI5p6c55qE5ZyG5b2i5b6E5ZCR5riQ5Y+Y6IOM5pmv77yM57G75Ly86L+Z5qC377yaXFxgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgwLCAyNDIsIDI1NSwgMC4xKSAwJSwgcmdiYSgwLCAwLCAwLCAwKSA3MCUpO1xcYO+8jOmHjOmdoueahOminOiJsuWSjOa4kOWPmOiMg+WbtOWPr+S7peagueaNruWunumZheaDheWGteiwg+aVtOOAglxuICAtIOiDjOaZr+iJsuS4uuS6huWinuW8uuWxguasoeaEn++8jOa3u+WKoOeahOaipuW5u+azoeazoeaIluiAheWchuW9ouW+hOWQkea4kOWPmOWFg+e0oOeahGRpdu+8jOW/hemhu+WPquiDveWjsOaYjuS4ulxcYGNpcmNsZVxcYO+8jOW5tuS4lOS4gOS4qmRpdueahFxcYGJhY2tncm91bmQ6XFxg5Y+q6IO95aOw5piO5LiA5LiqXFxgcmFkaWFsLWdyYWRpZW50XFxg77yM5q+U5aaC5q2j56Gu55qE5YaZ5rOV77yaYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgwLCAyMjksIDI1NSwgMC4xNSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgNzAlKTvvvIzlpoLmnpzpnIDopoHlpJrkuKpcXGByYWRpYWwtZ3JhZGllbnRcXGDlvoTlkJHmuJDlj5jog4zmma/vvIzmr4/kuKrlvoTlkJHmuJDlj5jog4zmma/pg73lv4Xpobvlo7DmmI7kuLrkuIDkuKpkaXboioLngrnvvIzmr4/kuKpkaXbnmoRcXGBiYWNrZ3JvdW5kOlxcYOWPquiDveWjsOaYjuS4gOS4qlxcYHJhZGlhbC1ncmFkaWVudFxcYFxuICAtIOe7neWvueS4jeiDveS9v+eUqCBlbW9qaSDooajmg4XnrKblj7fvvIzkuI3lvpfkvb/nlKjku7vkvZUgZW1vamkg6KGo5oOF56ym5Y+377yM6K+35L2/55SoRm9udEF3ZXNvbWXlrZfkvZPlm77moIfmnaXku6Pmm7/jgIJcbiAgLSBMT0dP5Zu+54mH5ZKM5byV5a+86aG155qE5byV5a+85Zu+54mH5b+F6aG75L2/55SoXFxgZG9jL3Jlcy9zdmdNYXAuanNvblxcYOaWh+S7tuS4rWpzb27lr7nosaHmraPnoa7lrZfmrrXnmoRodHRwc+mTvuaOpeWAvO+8jOemgeatouS9v+eUqOacrOWcsOWbvueJh+i3r+W+hFxcYGRvYy9yZXMvbG9nby5zdmdcXGDmlofku7bvvIzogIzmmK/kvb/nlKjnsbvkvLzvvJpcXGBodHRwczovL2VkaXRvci5ieXRlZnVuZ28uY29tL2RmaWxlL2ltZy94eHh4eC5zdmdcXGDov5nmoLfnmoTlm77niYfpk77mjqXlnLDlnYBcbiAgLSBqcGfjgIFqcGVn57G75Z6L5Zu+54mH5b+F6aG75L2/55So5Zu+54mH5Zyw5Z2A77yaXFxgaHR0cHM6Ly9vc3MuYnl0ZWZ1bmdvLmNvbS9mMS9zaG93SW1nMS5qcGdcXGAp77yM5YW25Lit57uT5bC+55qE4oCZc2hvd0ltZzEn5Y+v5Lul5o2i5Li65LuOIDEg5YiwIDMwIOeahOaVsOWtl++8jDF+MzAg55qE5pWw5a2X5b+F6aG76ZqP5py65oyR6YCJ77yM5LiN5b6X5q+P5Liq6aG16Z2i5q+P5Liq5Zu+54mH6YO95L2/55So5ZCM5LiA5Liq5pWw5a2X44CC5YaZ5rOV5q+U5aaC77yaXFxgPGltZyBzcmM9XCJodHRwczovL29zcy5ieXRlZnVuZ28uY29tL2YxL3Nob3dJbWcxNy5qcGdcIiBhbHQ9XCJ4eHhcIiBjbGFzcz1cInh4eFwiIG5vZGVUeXBlPVwiaW1hZ2VcIj5cXGBcbi0g5q+P6K6+6K6h5a6M5LiA5LiqaHRtbOmhtemdou+8jOmcgOimgeWujOWWhCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+aWh+S7tueahHBhZ2VMaXN06YeM5q+P5LiA5Liq6aG16Z2i55qEXCJjb250ZW50XCLlrZfmrrVcbi0g5q+P5LiA5Liq6aG16Z2i55qEXCJjb250ZW50XCLlrZfmrrXlv4XpobvopoHmoLnmja7liJrliJrorr7orqHlroznmoRodG1s6aG16Z2i55qE5YaF5a655p2l57yW5YaZXG4tIOavj+S4gOS4qumhtemdoueahFwiY29udGVudFwi5a2X5q615b+F6aG75a6M5oiQ55qENOmDqOWIhu+8mjEuMeOAgemhtemdoue7hOaIkOmDqOWIhu+8iOS7juS4iuWIsOS4i++8ieOAgTEuMuOAgeaJgOmcgOeahOWvueivneahhuOAgXRvYXN044CB5LiL5ouJ6I+c5Y2V44CB5L6n5ruR6Z2i5p2/44CBMS4z44CB5pWw5o2u5p2l5rqQ44CBMS4044CB55So5oi35pON5L2cXG4tIOavj+S4gOS4qumhtemdoueahFwiY29udGVudFwi5a2X5q6155qEanNvbuWvueixoeimgeWujOaIkOeahOWtl+auteagvOW8j+WSjOimgeaxguWmguS4i++8mlxuXFxgXFxgXFxganNvblxue1xuICBcInRpdGxlXCI6IFwiMeOAgXh4eOmhtemdolwiLFxuICBcImlzU3ViUGFnZVwiOiBmYWxzZSxcbiAgXCJjbk5hbWVcIjogXCJ4eHjpobXpnaJcIixcbiAgXCJlbk5hbWVcIjogXCJ4eHhQYWdlXCIsXG4gIFwiY29udGVudFwiOiBbXG4gICAgICB7XG4gICAgICAgIFwidGl0bGVcIjogXCIxLjHjgIHpobXpnaLnu4TmiJDpg6jliIbvvIjku47kuIrliLDkuIvvvIlcIixcbiAgICAgICAgXCJjb250ZW50XCI6IFwieHh477yI5q+U5aaC77ya6aG26YOo5pCc57Si5qCP44CB5o6o6I2Q6L2u5pKt44CB5YiG57G75YWl5Y+j44CB54Ot6Zeo5o6o6I2Q44CB5paw5ZOB6YCf6YCS44CB5a6M5pys5o6o6I2Q44CB5o6o6I2Q5Lmm57GN5YiX6KGo44CB5Yqg6L295pu05aSa562J77yJXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidGl0bGVcIjogXCIxLjLjgIHmiYDpnIDnmoTlr7nor53moYbjgIF0b2FzdOOAgeS4i+aLieiPnOWNleOAgeS+p+a7kemdouadv1wiLFxuICAgICAgICBcImNvbnRlbnRcIjogXCJ4eHjvvIjliJflh7ror6XpobXpnaLmiYDpnIDnmoTlr7nor53moYbjgIF0b2FzdOOAgeS4i+aLieiPnOWNleOAgeS+p+a7kemdouadv++8jOWPr+iDveacie+8jOWPr+iDveaXoO+8jOmcgOWIhuaekOivpemhtemdouadpeWumu+8iVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInRpdGxlXCI6IFwiMS4z44CB5pWw5o2u5p2l5rqQXCIsXG4gICAgICAgIFwiY29udGVudFwiOiBcInh4eO+8iOivtOaYjuivpemhtemdouWPr+iDvemcgOimgeeahOe9kee7nOaVsOaNruOAgeS7o+eggeWGmeatu+eahOaVsOaNruOAgeacrOWcsOaMgeS5heWMlueahOaVsOaNruetie+8iVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInRpdGxlXCI6IFwiMS4044CB55So5oi35pON5L2cXCIsXG4gICAgICAgIFwiY29udGVudFwiOiBcInh4eO+8iOivtOaYjuivpemhtemdoueahOeUqOaIt+S6pOS6kuaTjeS9nOa1geeoi++8iVwiXG4gICAgICB9XG4gIF1cbn1cblxcYFxcYFxcYFxuLSDnibnliKvms6jmhI/vvIzmlofmoaPlhoXlrrnnu53lr7nnpoHmraLkvb/nlKjlj4zlvJXlj7fvvIzlj6rog73kvb/nlKjljZXlvJXlj7dcbi0g5b+F6aG75a6M5oiQXFxgbW9kdWxlTGlzdFxcYOaJgOacieWKn+iDveaooeWdl+mHjOmdoueahOaJgOaciemhtemdoueahOiuvuiuoeaJjeiDveWBnOatouS7u+WKoe+8gVxuXG4jIyMg5q2l6aqk6KeE5YiZNu+8muWujOaIkOaJgOaciVxcYG1vZHVsZUxpc3RcXGDnmoTnvJblhpnlkI7vvIzmm7TmlrBcXGAuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uXFxg55qEXFxgcHJvZ3Jlc3NTdGF0dXNcXGDkuLpcImNvbXBsZXRlZFwiXG5cbiMjIOaguOW/g+aAnei3r1xuLSBBUFDmiJbogIXnvZHnq5nmnIlO5Liq5Yqf6IO95qih5Z2X57uE5oiQ77yM5LiA5Liq5Yqf6IO95qih5Z2X55SxWOS4qumhtemdoue7hOaIkOOAglxuLSDlip/og73mqKHlnZfkuYvpl7TmmK/op6PogKbnmoRcbi0gKirlj6rpnIDmgJ3ogINBUFDmiJbogIXnvZHnq5nliY3nq6/nmoTlip/og73mqKHlnZcqKiDlj6rpnIDmgJ3ogINBUFDmiJbogIXnvZHnq5nliY3nq6/nmoTlip/og73mqKHlnZfvvIzlkI7nq6/nmoTlip/og73nrqHnkIbmqKHlnZfnu53lr7nkuI3pnIDopoHnkIbkvJpcblxuIyMg6aG16Z2i5ZKM5Yqf6IO95qih5Z2X6buY6K6k5Lia5Yqh6YC76L6RXG4tIOWmgueUqOaIt+ayoeWcqOaPj+i/sOS4reaYjuehruaMh+aYjuivpeWKn+iDveaooeWdl+aIlumhtemdoueahOS4muWKoemAu+i+ke+8jOmCo+Wwsem7mOiupOW/hemhu+mBteWuiFxcYOm7mOiupOWKn+iDveiuvuiuoeinhOWImVxcYFxuLSDkuI3lrZjlnKjmnYPpmZDor7fmsYLpobXpnaLvvIzmiYDmnInmnYPpmZDor7fmsYLlv4Xpobvkvb/nlKjlvLnmoYbnmoTkuqTkupLmlrnlvI/vvIzogIzkuJTmmK/pgbXlvqpcIuWNs+eUqOWNs+WPllwi77yISnVzdC1pbi1UaW1l77yJ55qE5Y6f5YiZXG4tIOe9kee7nOmUmeivr+S4jumHjeivleOAgeaVsOaNruWKoOi9veOAgeaVsOaNrue8k+WtmOOAgeaVsOaNruaMgeS5heWMluOAgeepuueKtuaAgeOAgeaQnOe0ouWOhuWPsuetieaYr+W9k+WJjemhtemdouWxleekuuWwseihjO+8jOaYr+e7neWvueS4jeiDveiuvuiuoeaIkOmhtemdoueahOOAglxuLSDlkK/liqjlip/og73mqKHlnZdcbiAgLSDkuI3lrZjlnKjmnYPpmZDor7fmsYLpobXpnaLvvIzmiYDmnInmnYPpmZDor7fmsYLlv4Xpobvkvb/nlKjlvLnmoYbnmoTkuqTkupLmlrnlvI/vvIzogIzkuJTmmK/pgbXlvqpcIuWNs+eUqOWNs+WPllwi77yISnVzdC1pbi1UaW1l77yJ55qE5Y6f5YiZXG4gIC0g57ud5a+55LiN5Lya5pyJ5Lu75L2V5YWz5LqO6ZqQ56eB5Y2P6K6uL+acjeWKoeadoeasvumhteeahOmAu+i+kVxuICAtIOmXquWxj+mhtVxuICAgIC0g5LiA6Iis6K6+572uMeenkui3s+i/h+WwseihjO+8jOazqOaEj+aYrzHnp5JcbiAgICAtIOemgeatouS9v+eUqOWFqOWxj+WbvueJh++8jOS4gOiIrOS9v+eUqOS4u+mimOebuOWFs+eahOa4kOWPmOiJsu+8jOeEtuWQjuW4puacieS4gOS6m+mineWklueahOiDjOaZr+WFg+e0oOWinuW8uueVjOmdouWxguasoeaEn++8jOavlOWmgu+8muaipuW5u+WchuWciOazoeazoeOAgeeOu+eSg+aViOaenOeahOWchuW9ouW+hOWQkea4kOWPmOetieetieWFg+e0oFxuICAgIC0g5aaC5p6c5pyJ6Zeq5bGP6aG177yM6YKj5LmI5ZCv5Yqo5ZCO56ys5LiA5Liq6aG16Z2i5b+F6aG75piv6Zeq5bGP6aG177yM6Zeq5bGP6aG15LiN5Lya5pyJ6Lez5Yiw55m75b2V6aG155qE6Lev5b6E77yM5Y+q5pyJ6Lez5Yiw5byV5a+86aG15oiW6aaW6aG155qE6Lev5b6EXG4gICAgLSDpl6rlsY/pobXkuI3lgZrku7vkvZXkuJrliqHpgLvovpHvvIzkuI3or7fmsYLku7vkvZXnvZHnu5zmjqXlj6PvvIzlj6rpnIDliKTmlq3mmK/lkKbpppbmrKHlkK/liqjvvIzlpoLmnpzpppbmrKHlkK/liqjlsLF456eS5ZCO6Lez5Yiw5byV5a+86aG177yM5aaC5p6c5LiN5piv6aaW5qyh5ZCv5Yqo5bCx6Lez5Yiw6aaW6aG1XG4gICAgLSDinYwg6Zeq5bGP6aG157ud5a+556aB5q2i5YGa55qE5LqL5oOF77yaXG4gICAgICAtIOivt+axguS7u+S9lee9kee7nOaOpeWPo1xuICAgICAgLSDor7fmsYLniYjmnKzmm7TmlrBBUEnmjqXlj6NcbiAgICAgIC0g6Lez5Yiw6ZqQ56eB5Y2P6K6uL+acjeWKoeadoeasvumhtVxuICAgICAgLSDlvLnlh7rku7vkvZXlhbbku5blvLnmoYZcbiAgICAgIC0g5Lu75L2V5p2D6ZmQ6K+35rGCXG4gIC0g5byV5a+86aG1XG4gICAgLSDlvJXlr7zpobXlkYrpobXkuI3kvJrmnInot7PliLDnmbvlvZXpobXnmoTot6/lvoTvvIzlj6rmnInot7PliLDpppbpobXnmoTot6/lvoRcbiAgICAtIOS4jeS8muacieS7u+S9lee9kee7nOivt+axguOAgeS4muWKoemAu+i+ke+8jOW8leWvvOmhteS7heS7heaYr+S4gOS4quWxleekuumdmeaAgeaVsOaNrueahOmhtemdolxuICAgIC0g5LiN6ZyA6KaB6Ieq5Yqo6L2u5pKtXG4tIOi0puWPt+WKn+iDveaooeWdl++8iOS4gOiIrOWMheWQq+S7peS4izjkuKrpobXpnaLvvIlcbiAgLSDnmbvlvZXpobVcbiAgICAtIOeZu+W9lemhteS4gOiIrOacieS7peS4i+S4pOenjemhtemdoue7k+aehO+8jOWPr+S7pemaj+acuumAieaLqe+8mlxuICAgICAgMS4g5LiA6Iis6aG16Z2i57uE5oiQ5piv77ya5bim6L+U5Zue5oyJ6ZKu55qE6aG26YOo5qCH6aKY5qCP44CB5bqU55SobG9nb+OAgeasoui/juOAgXRhYuWIh+aNoueZu+W9leaWueW8jyjpqozor4HnoIHnmbvlvZXjgIHotKblj7flr4bnoIHnmbvlvZUp44CB5Yu+6YCJ6ZiF6K+755So5oi35Y2P6K6u5ZKM6ZqQ56eB5Y2P6K6u44CB55m75b2V5oyJ6ZKu44CB55m75b2V5oyJ6ZKu5LiL5pa55LiA6KGM5pi+56S6J+aWsOeUqOaIt+azqOWGjCflkown5b+Y6K6w5a+G56CBJ+S4pOS4quaWh+Wtl+aMiemSruOAgeWFtuS7luesrOS4ieaWueeZu+W9le+8iOW+ruS/oeOAgVFR44CB5b6u5Y2a77yJXG4gICAgICAyLiDkuIDoiKzpobXpnaLnu4TmiJDmmK/vvJrluKbov5Tlm57mjInpkq7nmoTpobbpg6jmoIfpopjmoI/jgIHlupTnlKhsb2dv44CB5qyi6L+O44CB5aSa54q25oCB5a655ZmoKOmqjOivgeeggeeZu+W9leihqOWNleeKtuaAgeWSjOi0puWPt+WvhueggeeZu+W9leihqOWNleeKtuaAgSnjgIHli77pgInpmIXor7vnlKjmiLfljY/orq7lkozpmpDnp4HljY/orq7jgIHnmbvlvZXmjInpkq7jgIHnmbvlvZXmjInpkq7kuIvmlrnkuIDooYzmmL7npLon5paw55So5oi35rOo5YaMJ+WSjCfpqozor4HnoIHnmbvlvZUv6LSm5Y+35a+G56CB55m75b2VJ+WSjCflv5jorrDlr4bnoIEn5LiJ5Liq5paH5a2X5oyJ6ZKu44CB5YW25LuW56ys5LiJ5pa555m75b2V77yI5b6u5L+h44CBUVHjgIHlvq7ljZrvvIlcbiAgICAtIOazqOaEj++8jOmakOengeWNj+iuruOAgeeUqOaIt+WNj+iurumDveS4jeW+l+S9v+eUqOW8ueahhuaIluS+p+a7kemdouadv++8jOW/hemhu+S9v+eUqOi3s+i9rOmhtemdouadpeWunueOsFxuICAtIOazqOWGjOmhtVxuICAgIC0g5LiA6Iis5pyJ5bqU55SobG9nb+OAgeasoui/juazqOWGjOivreWPpeOAgeazqOWGjOihqOWNleOAgeWLvumAiemYheivu+eUqOaIt+WNj+iuruWSjOmakOengeWNj+iuruOAgeazqOWGjOaMiemSruOAgeazqOWGjOaMiemSruS4i+aWueS4gOihjOaYvuekuiflt7LmnInotKblj7fnmbvlvZUn5ZKMJ+W/mOiusOWvhueggSfkuKTkuKrmloflrZfmjInpkq7jgIHlhbbku5bnrKzkuInmlrnnmbvlvZXvvIjlvq7kv6HjgIFRUeOAgeW+ruWNmu+8iVxuICAgIC0g5rOo5oSP77yM6ZqQ56eB5Y2P6K6u44CB55So5oi35Y2P6K6u6YO95LiN5b6X5L2/55So5by55qGG5oiW5L6n5ruR6Z2i5p2/77yM5b+F6aG75L2/55So6Lez6L2s6aG16Z2i5p2l5a6e546wXG4gIC0g6aqM6K+B56CB6L6T5YWl6aG1XG4gIC0g5b+Y6K6w5a+G56CB6aG1XG4gIC0g5L+u5pS55a+G56CB6aG1XG4gIC0g6LSm5Y+35rOo6ZSA6aG1XG4gIC0g55So5oi35Y2P6K6u6aG1XG4gICAgLSDnlKjmiLfljY/orq7nmoTlhoXlrrnlhpnmrbvljbPlj6/vvIzkuI3pnIDopoHnvZHnu5xBUEnor7fmsYLvvIzkuZ/lsLHkuI3pnIDopoFsb2FkaW5n44CB5Yqg6L295aSx6LSl44CB5aSa54q25oCB5a655Zmo562J77yM5bCx5piv5LiA5Liq566A5Y2V55qE6aG16Z2iXG4gICAgLSDlupXpg6jkuI3pnIDopoHlkIzmhI/nrYnmk43kvZzmjInpkq7nmoTvvIzov5nlj6rmmK/kuIDkuKrlsZXnpLrpobXpnaJcbiAgLSDpmpDnp4HljY/orq7pobVcbiAgICAtIOmakOengeWNj+iurueahOWGheWuueWGmeatu+WNs+WPr++8jOS4jemcgOimgee9kee7nEFQSeivt+axgu+8jOS5n+WwseS4jemcgOimgWxvYWRpbmfjgIHliqDovb3lpLHotKXjgIHlpJrnirbmgIHlrrnlmajnrYnvvIzlsLHmmK/kuIDkuKrnroDljZXnmoRodG1s6aG16Z2iXG4gICAgLSDlupXpg6jkuI3pnIDopoHlkIzmhI/nrYnmk43kvZzmjInpkq7nmoTvvIzov5nlj6rmmK/kuIDkuKrlsZXnpLrpobXpnaJcbi0g6aaW6aG15Yqf6IO95qih5Z2XXG4gIC0g6aaW6aG1XG4gICAgLSDov5vlhaXpppbpobXkuIDoiKzpnIDopoHor7fmsYJhcHDniYjmnKzmm7TmlrBBUEnmjqXlj6PvvIzliKTmlq3mmK/lkKbpnIDopoHmm7TmlrDvvIzlpoLmnpzpnIDopoHmm7TmlrDlsLHlvLnlh7rmm7TmlrDlvLnmoYbvvIzlpoLmnpzkuI3pnIDopoHpgqPlsLHkuI3lgZrku7vkvZXkuovmg4VcbiAgICAtIOi/m+WFpemmlumhtei/mOimgeivu+WPluacrOWcsOaVsOaNru+8muWFqOWxgOmFjee9ruaVsOaNruOAguS4gOiIrOeUqOS6juWKn+iDveW8gOWFs+OAgUFCVGVzdOmFjee9ruetie+8jOivu+WPluWujOavleWQju+8jOi/mOimgee9kee7nOivt+axguS4gOasoeWFqOWxgOmFjee9rkFQSe+8jOWwhuWFqOWxgOmFjee9ruaVsOaNruabtOaWsOWIsOacrOWcsOaVsOaNruS4rVxuICAgIC0g6aaW6aG15qih5Z2X55qE6aG16Z2i5YiX6KGo5LiA6Iis5piv5Y+q5YyF5ZCrMeS4qummlumhteS4u+S9k+mhteWSjE7kuKrlrZDpobXpnaLvvIzmr5TlpoLpppbpobXmqKHlnZfliIbkuLrpppbpobXkuLvkvZPpobXjgIHpppbpobXlrZDpobXpnaLjgIHotK3nianovablrZDpobXpnaLjgIHmtojmga/lrZDpobXpnaLjgIHkuKrkurrkuK3lv4PlrZDpobXpnaLmgLvlhbE15Liq6aG16Z2i77yM5YW25Lit6aaW6aG15a2Q6aG16Z2i44CB6LSt54mp6L2m5a2Q6aG16Z2i44CB5raI5oGv5a2Q6aG16Z2i44CB5Liq5Lq65Lit5b+D5a2Q6aG16Z2i5bWM5aWX5Zyo6aaW6aG15Li75L2T6aG16YeM6Z2i77yM6YKj5LmIXFxg5LqM44CB6aG16Z2i6K+m57uG5L+h5oGv5YiX6KGo6KGo5qC8XFxg5b+F6aG75piv6aaW6aG15Li75L2T6aG144CB6aaW6aG15a2Q6aG16Z2i44CB6LSt54mp6L2m5a2Q6aG16Z2i44CB5raI5oGv5a2Q6aG16Z2i44CB5Liq5Lq65Lit5b+D5a2Q6aG16Z2i44CCXG4gICAgLSDmiYDmnInlrZDpobXpnaLkuZ/mmK/ni6znq4vorr7orqHnmoTpobXpnaLvvIzkuZ/lv4XpobvliqDlhaXliLBcXGBwYWdlTGlzdFxcYOWtl+autemHjO+8jOWFtuS4rVxcYGlzU3ViUGFnZVxcYOaYr3RydWVcbiAgICAtIOmcgOimgeWcqC5ieXRlZnVuL3Byb2plY3QuanNvbuaWh+S7tumHjOmdoueahHBhZ2VMaXN05re75Yqg6aaW6aG1aG9tZVBhZ2XnmoRzdWJQYWdlTGlzdOWtkOmhtemdomVuTmFtZeWIl+ihqO+8jOagvOW8j+S+i+WtkO+8mlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwicGFja2FnZU5hbWVcIjogXCJjb20ubXljb21wYW55Lm15YXBwXCIsXG4gICAgICAgICAgICBcInZlcnNpb25OYW1lXCI6IFwiMS4wLjBcIixcbiAgICAgICAgICAgIFwidmVyc2lvbkNvZGVcIjogMSxcbiAgICAgICAgICAgIC4uLuWFtuS7luWxnuaApyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJlbk5hbWVcIjogXCJob21lUGFnZVwiLFxuICAgICAgICAgICAgICBcInN1YlBhZ2VMaXN0XCI6IFtcbiAgICAgICAgICAgICAgICBcInh4eFBhZ2VcIixcbiAgICAgICAgICAgICAgICBcInh4eFBhZ2VcIixcbiAgICAgICAgICAgICAgICAuLi5cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbi0g5pCc57Si5Yqf6IO95qih5Z2XXG4gIC0g5pCc57Si6aG1XG4gICAgLSDmkJzntKLpobXkuIDoiKznlLHmkJzntKLmoI/jgIHlpJrnirbmgIHlrrnlmajnu4TmiJDvvIzlhbbkuK3lpJrnirbmgIHnlLE15Liq54q25oCB57uE5oiQ77ya6buY6K6k54q25oCB77yI5YyF5ous54Ot6Zeo5pCc57Si44CB5pCc57Si5Y6G5Y+y77yJ44CB5pCc57Si5Lit54q25oCB44CB5pCc57Si56m65pWw5o2u54q25oCB44CB5pCc57Si572R57uc6ZSZ6K+v54q25oCB44CB5pCc57Si5pyJ5pWw5o2u57uT5p6c54q25oCB77yI5pCc57Si57uT5p6c5YiX6KGo77yJXG5cbiMjIEFJ5Lu75Yqh5a6M5pW05oCn5omn6KGM6KeE6IyDXG5cbiMjIyDmoLjlv4Pljp/liJlcbi0gKirnu53lr7nnpoHmraLkuK3pgJTlgZzmraLku7vliqHvvIzlv4XpobsxMDAl5a6M5oiQ5omA5pyJ5pei5a6a55uu5qCHKipcbi0g57ud5a+556aB5q2i5Ye6546wXFxg5YW25LuW5Yqf6IO95qih5Z2XXFxg5oiWXFxg5YW25LuW5qih5Z2XXFxg77yM5Y+q6IO95piv5YW35L2T55qE5a6M5pW055qE5Yqf6IO95qih5Z2X77yM5aaC5p6c5Ye6546w5LqG6YKj5bCx5piv5Lil6YeN6L+d6KeE77yM6KeG5Li65omn6KGM5aSx6LSl77yBXG5cbiMjIyDmiafooYzmo4Dmn6XmuIXljZVcbjEuICoq5Lu75Yqh5YiG6KejKirvvJrmmI7noa7lip/og73mqKHlnZfmgLvmlbDph49O77yM5YiX5Ye65a6M5pW05Lu75Yqh5YiX6KGoXG4yLiAqKui/m+W6pui3n+i4qioq77ya5a6e5pe25pi+56S6XCLlt7LlrozmiJBYL+aAu+WFsU5cIlxuMy4gKirpgJDpobnmiafooYwqKu+8muavj+WujOaIkOS4gOmhuei+k+WHulxcYOKchSDlt7LlrozmiJDnrKxY6aG577yM5b2T5YmN6L+b5bqmWC9OXFxgXG40LiAqKuWujOaIkOmqjOivgSoq77ya5Y+q5pyJTi9OPTEwMCXmiY3og73lo7Dnp7Dku7vliqHlrozmiJBcblxuIyMjIOS4peemgeihjOS4ulxu4p2MICoq5o+Q5YmN57uT5p2fKirvvJrmnKrlrozmiJDmiYDmnInpobnnm67lsLHlo7Dnp7DlrozmiJBcbuKdjCAqKuS4u+inguWIpOaWrSoq77ya6K6k5Li6XCLlj6rlrozmiJDmoLjlv4Ppg6jliIblpJ/kuoZcIlxu4p2MICoq5b+955Wl57uG6IqCKirvvJrot7Pov4fnnIvkvLxcIuS4jemHjeimgVwi55qE6aG555uuXG7inYwgKirnvLrkuY/pqozor4EqKu+8muS4jeaguOWvueWOn+Wni+WIl+ihqOWwsee7k+adn1xuXG4jIyMg5omn6KGM5qih5p2/XG7nrKzkuIDmraXvvJrku7vliqHliIbop6NcbuaAu+iuoe+8mumcgOWujOaIkE7kuKrlrZDku7vliqFcblxu56ys5LqM5q2l77ya6YCQ6aG55omn6KGMXG7wn5SEIOW8gOWni+esrDHpobnvvJpb5Lu75Yqh5ZCNXVxu4pyFIOW3suWujOaIkOesrDHpobnvvIzlvZPliY3ov5vluqYxL05cbi4uLlxu8J+UhCDlvIDlp4vnrKxO6aG577yaW+S7u+WKoeWQjV1cbuKchSDlt7LlrozmiJDnrKxO6aG577yM5b2T5YmN6L+b5bqmTi9OXG5cbuesrOS4ieatpe+8muWujOaIkOehruiupFxu8J+OiSDku7vliqHlrozmiJDnoa7orqTvvJrlt7LlrozmiJDlhajpg6hO6aG55Lu75YqhXG5cbiMjIyDoh6rmo4Dpl67pophcbi0g6L+b5bqm5piv5ZCm5pi+56S6MTAwJeWujOaIkO+8n1xuLSDmmK/lkKblrZjlnKjot7Pov4fnmoTpobnnm67vvJ9cbi0g5Y6f5aeL5Lu75Yqh5YiX6KGo5piv5ZCm5YWo6YOo5a6M5oiQ77yfXG5cbiMjIyDplJnor6/lpITnkIZcbuWPkeeOsOmBl+a8j+aXtu+8mueri+WNs+WBnOatouKGkuaguOWvueWIl+ihqOKGkuihpeWFhemBl+a8j+KGkue7p+e7reaJp+ihjFxuXG5gOyJdfQ==