getCustinsParamNameList(String dbType) throws RdsException {\n if (CustinsSupport.isMysql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_MYSQL);\n } else if (CustinsSupport.isMssql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_MSSQL);\n } else if (CustinsSupport.isPgsql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_PGSQL);\n } else if (CustinsSupport.isPpassql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_PPASSQL);\n } else if (CustinsSupport.isMongoDB(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_MONGODB);\n } else if (CustinsSupport.isRedis(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_REDIS);\n }\n throw new RdsException(ErrorCode.INVALID_ENGINE);\n}"},["span",{"data-type":"text"},["span",{"data-type":"leaf"}," public static List getCustinsParamNameList(String dbType) throws RdsException {\n if (CustinsSupport.isMysql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_MYSQL);\n } else if (CustinsSupport.isMssql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_MSSQL);\n } else if (CustinsSupport.isPgsql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_PGSQL);\n } else if (CustinsSupport.isPpassql(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_PPASSQL);\n } else if (CustinsSupport.isMongoDB(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_MONGODB);\n } else if (CustinsSupport.isRedis(dbType)) {\n return new ArrayList(CUSTINS_PARAM_NAME_SET_REDIS);\n }\n throw new RdsException(ErrorCode.INVALID_ENGINE);\n}"]]],["p",{"uuid":"lxh9012b5rvpzhpe93","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"这段代码if-else有6中路径,加上最后的Exception,有7段路径,因此圈复杂度为7。"]]],["p",{"uuid":"lxh8sok1itcls75pb5f","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lxh8ngie27ncdt20hb4"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h3",{"uuid":"lxh86dm3u01zejhhh6p","ind":{"left":0},"spacing":{"before":18.666666666666664,"after":8,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":14,"szUnit":"pt","data-type":"leaf"},"领域相关性"]]],["p",{"uuid":"lxh978lw8ogc0wg1gmn","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"领域相关性通常与所需解决问题域的重要程度有关,这部分代码与系统服务用户的目标相关性越近,则领域相关性越高。"]]],["p",{"uuid":"lxh9brs6iv3ncxxi7rj","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"高领域相关性并不一定代表存在较高的复杂度。比如下面的例子,一个用于根据ECS存储类型计算IOPS的函数:"]]],["code",{"syntax":"java","theme":"default","wrap":true,"id":"q38ggw","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lxh9ppdibirx8cfibgv","code":"private int getIOPSBaseOnStorageInfo(Integer dbInstanceStorageInGB, String dataDiskCategory) {\n final int IOPS_BASE = 1800;\n \n final String CLOUD_ESSD_PL0 = \"cloud_essd_pl0\";\n final String CLOUD_ESSD = \"cloud_essd_pl1\";\n final String CLOUD_ESSD_PL2 = \"cloud_essd_pl2\";\n final String CLOUD_ESSD_PL3 = \"cloud_essd_pl3\";\n final String CLOUD_EFFICIENCY = \"cloud_efficiency\";\n \n final int[] CLOUD_ESSD_PL0_CONFIG = {12, 10000};\n final int[] CLOUD_ESSD_CONFIG = {50, 50000};\n final int[] CLOUD_ESSD_PL2_CONFIG = {50, 100000};\n final int[] CLOUD_ESSD_PL3_CONFIG = {50, 1000000};\n final int[] CLOUD_EFFICIENCY_CONFIG = {8, 5000};\n final int[] DEFAULT_IOPS_CONFIG = {30, 25000};\n \n // 创建IOPS配置映射\n Map iopsConfig = new HashMap();\n iopsConfig.put(CLOUD_ESSD_PL0, CLOUD_ESSD_PL0_CONFIG);\n iopsConfig.put(CLOUD_ESSD, CLOUD_ESSD_CONFIG);\n iopsConfig.put(CLOUD_ESSD_PL2, CLOUD_ESSD_PL2_CONFIG);\n iopsConfig.put(CLOUD_ESSD_PL3, CLOUD_ESSD_PL3_CONFIG);\n iopsConfig.put(CLOUD_EFFICIENCY, CLOUD_EFFICIENCY_CONFIG);\n \n // 根据数据盘类别获取配置\n int[] config = iopsConfig.getOrDefault(dataDiskCategory.toLowerCase(), DEFAULT_IOPS_CONFIG);\n int scaleFactor = config[0];\n int maxLimit = config[1];\n\n int calculatedIOPS = Math.min(IOPS_BASE + scaleFactor * dbInstanceStorageInGB, maxLimit);\n\n return calculatedIOPS;\n\n}"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"private int getIOPSBaseOnStorageInfo(Integer dbInstanceStorageInGB, String dataDiskCategory) {\n final int IOPS_BASE = 1800;\n \n final String CLOUD_ESSD_PL0 = \"cloud_essd_pl0\";\n final String CLOUD_ESSD = \"cloud_essd_pl1\";\n final String CLOUD_ESSD_PL2 = \"cloud_essd_pl2\";\n final String CLOUD_ESSD_PL3 = \"cloud_essd_pl3\";\n final String CLOUD_EFFICIENCY = \"cloud_efficiency\";\n \n final int[] CLOUD_ESSD_PL0_CONFIG = {12, 10000};\n final int[] CLOUD_ESSD_CONFIG = {50, 50000};\n final int[] CLOUD_ESSD_PL2_CONFIG = {50, 100000};\n final int[] CLOUD_ESSD_PL3_CONFIG = {50, 1000000};\n final int[] CLOUD_EFFICIENCY_CONFIG = {8, 5000};\n final int[] DEFAULT_IOPS_CONFIG = {30, 25000};\n \n // 创建IOPS配置映射\n Map iopsConfig = new HashMap();\n iopsConfig.put(CLOUD_ESSD_PL0, CLOUD_ESSD_PL0_CONFIG);\n iopsConfig.put(CLOUD_ESSD, CLOUD_ESSD_CONFIG);\n iopsConfig.put(CLOUD_ESSD_PL2, CLOUD_ESSD_PL2_CONFIG);\n iopsConfig.put(CLOUD_ESSD_PL3, CLOUD_ESSD_PL3_CONFIG);\n iopsConfig.put(CLOUD_EFFICIENCY, CLOUD_EFFICIENCY_CONFIG);\n \n // 根据数据盘类别获取配置\n int[] config = iopsConfig.getOrDefault(dataDiskCategory.toLowerCase(), DEFAULT_IOPS_CONFIG);\n int scaleFactor = config[0];\n int maxLimit = config[1];\n\n int calculatedIOPS = Math.min(IOPS_BASE + scaleFactor * dbInstanceStorageInGB, maxLimit);\n\n return calculatedIOPS;\n\n}"]]],["p",{"uuid":"lxh9pllhggyi67nk96q","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"可以看到该函数没有任何代码分支路径,所以圈复杂度为1,但该代码在数据库管控中,会根据用户的存储类型与大小计算IOPS,在控制台或OpenAPI直接呈现给"],["span",{"bold":true,"data-type":"leaf"},"最终用户"],["span",{"data-type":"leaf"},",因此该函数拥有极高的领域相关性,但复杂度仅为1。"]]],["p",{"uuid":"lxh9uwaqye9of3ms4mo"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lxh9vuy58obeby3693","spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"合作方数量维度"]]],["p",{"uuid":"lxh9wfu2u2xyy6az2qp","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"该维度取决于类或方法的中涉及的合作方数量。这些合作方可以是:"]]],["p",{"uuid":"lxha08byv0bokbep3ib","ind":{"left":0},"list":{"listId":"sbocyq2oti","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"其他的类,或外部类库"]]],["p",{"uuid":"lxha0uhc1f6p8q7hglz","ind":{"left":0},"list":{"listId":"sbocyq2oti","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"对于外部API的访问(例如阿里云公开的OpenAPI,其他内部微服务的API等)"]]],["p",{"uuid":"lxha1c8iadpx3g7ubxs","ind":{"left":0},"list":{"listId":"sbocyq2oti","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"对于数据库的访问"]]],["p",{"uuid":"lxha45bh368e2vw44xp","ind":{"left":0},"list":{"listId":"sbocyq2oti","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"文件系统"]]],["p",{"uuid":"lxha47vw4ahfi5wzquj","ind":{"left":0},"list":{"listId":"sbocyq2oti","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"等等..."]]],["p",{"uuid":"lxha4jr1rwmdh0nf4he","ind":{"left":0}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lxha4lppnxvf3a7k38","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"代码中包含大量的合作方通常难以测试,例如下面一个例子:"]]],["code",{"syntax":"java","theme":"default","code":"public void review(String applicationId) {\n // 1. 从外部API获取用户信息\n UserInfo userInfo = externalAPIService.getUserInfo(applicationId);\n\n // 2. 从数据库获取订单信息\n OrderInfo orderInfo = databaseService.getOrderInfo(applicationId);\n\n // 3. 使用规则引擎进行风控审核\n ReviewResult reviewResult = ruleEngineService.review(userInfo, orderInfo);\n\n // 4. 根据审核结果发送通知\n if (reviewResult.isApproved()) {\n notificationService.sendApprovalNotification(applicationId);\n } else {\n notificationService.sendRejectionNotification(applicationId, reviewResult.getRejectionReason());\n }\n}\n","codeFolding":false,"enableMacHeader":false,"fold":false,"font":{"fontFamily":"defaultFont","ligatures":false},"hideHeader":false,"id":"pywgmy","showLineNumber":true,"title":"","uuid":"lxhahaqzahnc6c2h9ln","wrap":true},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"public void review(String applicationId) {\n // 1. 从外部API获取用户信息\n UserInfo userInfo = externalAPIService.getUserInfo(applicationId);\n\n // 2. 从数据库获取订单信息\n OrderInfo orderInfo = databaseService.getOrderInfo(applicationId);\n\n // 3. 使用规则引擎进行风控审核\n ReviewResult reviewResult = ruleEngineService.review(userInfo, orderInfo);\n\n // 4. 根据审核结果发送通知\n if (reviewResult.isApproved()) {\n notificationService.sendApprovalNotification(applicationId);\n } else {\n notificationService.sendRejectionNotification(applicationId, reviewResult.getRejectionReason());\n }\n}\n"]]],["p",{"uuid":"lxhah8htls5dzc3skca","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lxha27tn4cdrsuzqbrc","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"Review函数用于进行风控业务的review,可以看到每个步骤都有外部依赖,分别为:"]]],["p",{"uuid":"lxhaiqn5xvixqpa5jeh","ind":{"left":0},"list":{"listId":"kjj7lmmmuso","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"获取用户信息来自于外部API"]]],["p",{"uuid":"lxhaj4fvkah69lft5op","ind":{"left":0},"list":{"listId":"kjj7lmmmuso","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"获取订单信息依赖内部数据库"]]],["p",{"uuid":"lxhakg9jo267sn2sk9f","ind":{"left":0},"list":{"listId":"kjj7lmmmuso","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"获取风控审核依赖于内部服务"]]],["p",{"uuid":"lxhakru1519h4hcaz4f","ind":{"left":0},"list":{"listId":"kjj7lmmmuso","level":1,"isOrdered":false,"isTaskList":false,"listStyleType":"SCIR_ECIR_SREC","symbolStyle":{},"listStyle":{"format":"bullet","text":"○","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"发送审核结果依赖通知服务"]]],["p",{"uuid":"lz3j02u5m5ftfmgo52"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3j041lwlju0kkq9uj","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"因此对于该函数的测试,需要详细的Mock这四类服务对应函数的行为特征,最简单的行为特征如下:"]]],["code",{"syntax":"c#","theme":"default","code":"\n @Mock\n private ExternalAPIService externalAPIService;\n @Mock\n private DatabaseService databaseService;\n @Mock\n private RuleEngineService ruleEngineService;\n @Mock\n private NotificationService notificationService;\n\n @Test\n void testReview_Approved() {\n // Arrange\n String applicationId = \"APP123\";\n UserInfo userInfo = new UserInfo(\"Yunji\", \"yunji@xxx.com\");\n OrderInfo orderInfo = new OrderInfo(1000.0, \" roduct A\");\n ReviewResult reviewResult = new ReviewResult(true, null);\n\n when(externalAPIService.getUserInfo(applicationId)).thenReturn(userInfo);\n when(databaseService.getOrderInfo(applicationId)).thenReturn(orderInfo);\n when(ruleEngineService.review(userInfo, orderInfo)).thenReturn(reviewResult);\n\n //省略....\n }\n","codeFolding":false,"enableMacHeader":false,"fold":false,"font":{"fontFamily":"defaultFont","ligatures":false},"hideHeader":false,"id":"c2tbtb","showLineNumber":true,"title":"","uuid":"lz3iztpdazrgan4o2e8","wrap":true},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"\n @Mock\n private ExternalAPIService externalAPIService;\n @Mock\n private DatabaseService databaseService;\n @Mock\n private RuleEngineService ruleEngineService;\n @Mock\n private NotificationService notificationService;\n\n @Test\n void testReview_Approved() {\n // Arrange\n String applicationId = \"APP123\";\n UserInfo userInfo = new UserInfo(\"Yunji\", \"yunji@xxx.com\");\n OrderInfo orderInfo = new OrderInfo(1000.0, \" roduct A\");\n ReviewResult reviewResult = new ReviewResult(true, null);\n\n when(externalAPIService.getUserInfo(applicationId)).thenReturn(userInfo);\n when(databaseService.getOrderInfo(applicationId)).thenReturn(orderInfo);\n when(ruleEngineService.review(userInfo, orderInfo)).thenReturn(reviewResult);\n\n //省略....\n }\n"]]],["p",{"uuid":"lxhalsto85uhmyj0zsn","ind":{"left":0}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lxhaluuslylwjdxmfk","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"如果我们想对review进行单元测试,则需要Mock这几方依赖,这意味着即使只是想测试一个简单的用户操作,也需要mock订单相关的依赖,无疑给测试带来很多负担,同时会导致单元测试更加没有意义。"]]],["p",{"uuid":"lxhan1p0f4lyy0rvnvm","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h1",{"uuid":"lxhan2n9dz92vv1kl0b","ind":{},"spacing":{"before":26.666666666666664,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":20,"szUnit":"pt","data-type":"leaf"},"应该对上述哪些代码进行单元测试"]]],["p",{"uuid":"lxhao947athwe31qxo9","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"并不是所有代码都值得平等对待。边缘代码出错可能影响有限,而核心代码出错可能导致故障或资损。只有对最核心的代码进行单元测试,才能事半功倍。"]]],["p",{"uuid":"lxhb7eslap5gsrvoabm","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"通过下图可以看出,按照上述两个维度,可以将代码分为4个象限。"]]],["p",{"uuid":"lxhar7pt5a6uimmrdoh","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]],["img",{"name":"image.png","size":427178,"width":748,"height":521.9220779220778,"uuid":"lxhasju7n42mvoddxso","src":"https://oss-ata.alibaba.com/article/2024/07/3debc521-28a9-4f65-831e-138bd37693da.png","extraData":{"resourceId":"0a9f57c3-fae6-4e20-838a-141422513e2e","metaData":{"size":427178,"originWidth":1694,"originHeight":1182,"format":"png","ratio":1}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lxhar8j2eslbfgu285u","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"域模型、算法"]]],["p",{"uuid":"lxharqg1bl1ghqunbic","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"拥有较高领域相关性和复杂度的代码,却有最小的合作方数量的代码是应用单元测试的最佳代码,由于低合作方数量,编写单元测试对该类代码进行测试通常成本低廉(不需要或只需要较少的Mock),该类代码的正确性又极为重要,因此拥有最佳的"],["span",{"bold":true,"data-type":"leaf"},"单元测试投资回报率"],["span",{"data-type":"leaf"},"。"]]],["p",{"uuid":"lz3j8uweszwk6ruv1d","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"例如上述“领域相关性小结”提到的示例代码。"]]],["p",{"uuid":"lxhb6y335l432a7kmx","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lxhb6yuzasfhrn9m9l8","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"简单代码"]]],["p",{"uuid":"lxhbaq8lcvn4lamotw5","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"这就是所谓的边缘代码,既没有复杂度,又没有领域相关度,同时合作方数量很小,这类代码通常没有单元测试价值。一些例子例如构造函数,做类的初始化赋值,或一些简单的set方法。"]]],["p",{"uuid":"lxhbc68aem4pjuc4uj6","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lxhbc7d7t2yx2komrs","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"Controller(流程控制代码)"]]],["p",{"uuid":"lxhbcasd5wntaey3iql","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"这类代码通常本身不做工作,只是简单的请求转发或协调,没有复杂的业务逻辑,业务逻辑基本上是调用不同组件来处理请求。通常来讲,该类单元测试重点需要测试输入值的有效性和规则,避免进行无效转发。"]]],["p",{"uuid":"lxhbm49bjvt46wx1lej","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lxhbm4gu7f80j1qmlok","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"过度复杂的代码"]]],["p",{"uuid":"lxhbmevt54sso9u6nqu","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"该类代码是真正的问题代码,该类代码有较多的外部依赖,同时又有较高的复杂度与领域相关性,例如“合作方数量维度”中提到的示例代码,该类代码如果不进行单元测试较为危险,无异于裸奔,但对该类代码进行单元测试成本过于高昂,因此写代码时,要"],["span",{"bold":true,"data-type":"leaf"},"极力避免编写该类代码"],["span",{"data-type":"leaf"},"。"]]],["p",{"uuid":"lxhbusarvkke4ueil5o","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lxhbusi3ubtadxknh3d","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"因此,一个总体原则应该是,避免过度复杂的代码,如果看到一个函数和类同时具备高复杂度或领域相关度的,又同时拥有大量合作方,就应该引起警觉,将其拆分为“域模型或算法”+“Controller”,从而更容易实现单元测试。"]]],["p",{"uuid":"lxhbm8eud3r0ty8q3em","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h1",{"uuid":"lxharhcayqjrs5zi4re","ind":{},"spacing":{"before":26.666666666666664,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":20,"szUnit":"pt","data-type":"leaf"},"如何避免过度复杂的代码"]]],["p",{"uuid":"lxhbom2y51lsgc1qb77","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"该问题如果深入探讨,涉及的范围会非常广泛,从SOLID原则到领域抽象、领域驱动设计(DDD)等都可能会涉及。考虑到篇幅限制,本小节仅聚焦于一个核心问题:如何将\"过度复杂的代码\"这一象限中的代码进行拆分,使其更易于测试和维护。我们将通过一个具体的示例来阐述这一过程。"]]],["p",{"uuid":"lz3k38nh0b5lq65529hc","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k1kp30sol830iskkd"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"拆分原则通常如下图所示"]]],["p",{"uuid":"lz3k6uii6tn38rwn5af"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]],["img",{"id":"gbt5dt","name":"image.png","size":966653,"width":748,"height":496.1396396396396,"uuid":"lz3k6utf7e58kfkmwzw","src":"https://oss-ata.alibaba.com/article/2024/07/5507e161-32a6-437c-af2b-16866b30f83f.png","extraData":{"resourceId":"3ca1ea47-afca-4b5f-a052-8da361d9376d","metaData":{"size":966653,"originWidth":1776,"originHeight":1178,"format":"png","ratio":1}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k6utgqeg7ca58d8q"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k6ngiq7cj6k76wlp"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"而具体的拆分原则如下:"]]],["p",{"ind":{"left":0},"list":{"listId":"xqpligg0g5","isOrdered":true,"level":0,"listStyle":{"format":"decimal","text":"%1.","align":"left"}},"uuid":"lz3k1kp43721kusl2ge"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"识别核心业务逻辑:将具有高领域相关性和复杂度的部分提取出来,形成独立的域模型或服务。"]]],["p",{"ind":{"left":0},"list":{"listId":"xqpligg0g5","isOrdered":true,"level":0,"listStyle":{"format":"decimal","text":"%1.","align":"left"},"extraData":{},"isChecked":false,"hideSymbol":false},"uuid":"lz6e2ck9m6co8hc7j4i"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"剥离外部依赖:将外部依赖抽象为接口"]]],["p",{"ind":{"left":0},"list":{"listId":"xqpligg0g5","isOrdered":true,"level":0,"listStyle":{"format":"decimal","text":"%1.","align":"left"}},"uuid":"lz3k1kp56zc7teu576u"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"分离流程控制:将协调各个步骤的逻辑抽取为Controller,负责调用各个服务和处理结果。"]]],["p",{"uuid":"lz3k1kp6q8gdl5pnsy","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k3p1yziuuilbzo4","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"下面,我们将通过一个具体的示例来展示如何应用这些原则,将一个过于复杂的代码重构为更易于测试和维护的结构。这个示例将展示如何将复杂代码进行拆分,核心部分拆分为Controller和域模型,并剥离外部调用,从而更易于测试与维护。"]]],["p",{"uuid":"lz3k1kp7e0bqgnz3gg6"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k2m6cnb7x2vmnzv9","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"###示例代码:订单处理函数###"]]],["code",{"syntax":"java","theme":"default","wrap":true,"id":"ovsnil","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz3l0c9auneio466vso","code":"public class OrderProcessor {\n public void processOrder(String orderId, String customerEmail) {\n // 从数据库获取订单信息\n Object[] orderData = Database.getOrderById(orderId);\n double orderAmount = (double) orderData[0];\n String orderStatus = (String) orderData[1];\n\n // 检查订单状态\n if (!\" ENDING\".equals(orderStatus)) {\n return;\n }\n\n // 获取客户信息\n Object[] customerData = Database.getCustomerByEmail(customerEmail);\n String customerName = (String) customerData[0];\n String customerType = (String) customerData[1];\n\n // 计算折扣\n double discount = 0;\n if (\"VIP\".equals(customerType)) {\n discount = 0.1;\n } else if (\"REGULAR\".equals(customerType)) {\n discount = 0.05;\n }\n\n // 应用折扣\n double finalAmount = orderAmount * (1 - discount);\n\n // 检查库存\n boolean isInStock = InventorySystem.checkStock(orderId);\n if (!isInStock) {\n EmailService.sendOutOfStockNotification(customerEmail);\n return;\n }\n\n // 处理支付\n boolean paymentSuccess = PaymentGateway.processPayment(orderId, finalAmount);\n if (!paymentSuccess) {\n EmailService.sendPaymentFailureNotification(customerEmail);\n return;\n }\n\n // 更新订单状态\n Database.updateOrderStatus(orderId, \" ROCESSED\");\n\n // 发送确认邮件\n String emailContent = \"Dear \" + customerName + \", your order \" + orderId + \" has been processed. Total amount: $\" + finalAmount;\n EmailService.sendEmail(customerEmail, \"Order Processed\", emailContent);\n\n // 更新客户积分\n int points = (int) finalAmount;\n Database.updateCustomerPoints(customerEmail, points);\n\n // 触发配送流程\n ShippingService.initiateShipping(orderId);\n }\n}"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"public class OrderProcessor {\n public void processOrder(String orderId, String customerEmail) {\n // 从数据库获取订单信息\n Object[] orderData = Database.getOrderById(orderId);\n double orderAmount = (double) orderData[0];\n String orderStatus = (String) orderData[1];\n\n // 检查订单状态\n if (!\" ENDING\".equals(orderStatus)) {\n return;\n }\n\n // 获取客户信息\n Object[] customerData = Database.getCustomerByEmail(customerEmail);\n String customerName = (String) customerData[0];\n String customerType = (String) customerData[1];\n\n // 计算折扣\n double discount = 0;\n if (\"VIP\".equals(customerType)) {\n discount = 0.1;\n } else if (\"REGULAR\".equals(customerType)) {\n discount = 0.05;\n }\n\n // 应用折扣\n double finalAmount = orderAmount * (1 - discount);\n\n // 检查库存\n boolean isInStock = InventorySystem.checkStock(orderId);\n if (!isInStock) {\n EmailService.sendOutOfStockNotification(customerEmail);\n return;\n }\n\n // 处理支付\n boolean paymentSuccess = PaymentGateway.processPayment(orderId, finalAmount);\n if (!paymentSuccess) {\n EmailService.sendPaymentFailureNotification(customerEmail);\n return;\n }\n\n // 更新订单状态\n Database.updateOrderStatus(orderId, \" ROCESSED\");\n\n // 发送确认邮件\n String emailContent = \"Dear \" + customerName + \", your order \" + orderId + \" has been processed. Total amount: $\" + finalAmount;\n EmailService.sendEmail(customerEmail, \"Order Processed\", emailContent);\n\n // 更新客户积分\n int points = (int) finalAmount;\n Database.updateCustomerPoints(customerEmail, points);\n\n // 触发配送流程\n ShippingService.initiateShipping(orderId);\n }\n}"]]],["p",{"uuid":"lz3k2mb2yjqj831hxv","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3qxomv3gi4ipgqso2","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"该代码乍一看没有问题,命名规范,分段清晰,但实际违反了SOLID原则的每一条,同时如果希望对该代码进行单元测试则是灾难,例如,我仅仅想测试订单状态是“pending”时不进行处理,就需要mock所有的信息才能让单元测试正常执行,这不仅导致单元测试困难,同时会导致单元测试的“脆弱性”(所谓脆弱性简单解释就是测试容易因为被测试代码的微小改变而失效,例如上述代码中,如果增加一个折扣策略,会导致针对订单状态的测试失败,而折扣策略与订单状态不应该与此相关)。"]]],["code",{"syntax":"c#","theme":"default","wrap":true,"id":"194xhg","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz4y8j797uh0y0t9v9r","code":" @Mock\n private Database database;\n \n @Mock\n private InventorySystem inventorySystem;\n \n @Mock\n private PaymentGateway paymentGateway;\n \n @Mock\n private EmailService emailService;\n \n @Mock\n private ShippingService shippingService;\n\n @InjectMocks\n private OrderProcessor orderProcessor;"},["span",{"data-type":"text"},["span",{"data-type":"leaf"}," @Mock\n private Database database;\n \n @Mock\n private InventorySystem inventorySystem;\n \n @Mock\n private PaymentGateway paymentGateway;\n \n @Mock\n private EmailService emailService;\n \n @Mock\n private ShippingService shippingService;\n\n @InjectMocks\n private OrderProcessor orderProcessor;"]]],["p",{"uuid":"lz4y46pjqhkflsynmb9","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lz5l5i3hd4r944l6pdk","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"拆分步骤1:识别实体类(或领域模型)"]]],["p",{"uuid":"lz5l62xfmjrygduak2j","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"还记得前面提到,哪部分代码具有单元测试的最佳投资回报率吗?领域模型通常是首选目标。。"]]],["p",{"uuid":"lz5m4r5v0yz502mtxn6","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"从processOrder函数的入参与该函数的流程来看,整个过程会涉及到两部分主体,分别为Customer与Order,因此,我们首相提取这两个实体类,如代码所示:"]]],["code",{"syntax":"c#","theme":"default","wrap":true,"id":"dpdele","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz5lngrkhi7ktr5vx0b","code":"class Order {\n private String id;\n private double amount;\n private String status;\n private OrderRepository repository;\n\n // 省略与processOrder 方法无关的内容\n\n public double getAmount(){\n return amount;\n }\n\n public String getId(){\n return id;\n }\n\n public boolean isPending() {\n return \" ENDING\".equals(status);\n }\n\n public void markAsProcessed() {\n this.status = \" ROCESSED\";\n repository.save(this);\n }\n }\n\n class Customer {\n private String email;\n private String name;\n private String type;\n private int points;\n private CustomerRepository repository;\n\n // 省略与processOrder 方法无关的内容\n\n public String getCustomerType(){\n return type;\n }\n\n public void addPoints(int points) {\n this.points += points;\n repository.save(this);\n }\n }\n\n interface OrderRepository {\n void save(Order order);\n }\n\n interface CustomerRepository {\n void save(Customer customer);\n }"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"class Order {\n private String id;\n private double amount;\n private String status;\n private OrderRepository repository;\n\n // 省略与processOrder 方法无关的内容\n\n public double getAmount(){\n return amount;\n }\n\n public String getId(){\n return id;\n }\n\n public boolean isPending() {\n return \" ENDING\".equals(status);\n }\n\n public void markAsProcessed() {\n this.status = \" ROCESSED\";\n repository.save(this);\n }\n }\n\n class Customer {\n private String email;\n private String name;\n private String type;\n private int points;\n private CustomerRepository repository;\n\n // 省略与processOrder 方法无关的内容\n\n public String getCustomerType(){\n return type;\n }\n\n public void addPoints(int points) {\n this.points += points;\n repository.save(this);\n }\n }\n\n interface OrderRepository {\n void save(Order order);\n }\n\n interface CustomerRepository {\n void save(Customer customer);\n }"]]],["p",{"uuid":"lz5lnear91ki9yrf4e","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz5lnxyfo6g4ahmga9","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"我们不仅定义了Order与Customer的属性,同时将与实体对象相关的行为内聚到实例类中,这也是所谓的“充血模型”(Rich Domain Model)。同时,使用数据访问的Repository模式将数据的访问逻辑从业务逻辑中分离出来,从而能够更加容易单元测试。比如Order实体通过对orderRepository的Mock,很容易剥离数据访问逻辑,仅测试业务逻辑,单元测试代码如下:"]]],["code",{"syntax":"c#","theme":"default","wrap":true,"id":"t4ipnw","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz5m3qlmpp5xiv0vwhp","code":"public class OrderTest {\n private OrderRepository orderRepository;\n private Order order;\n\n @BeforeEach\n public void setUp() {\n orderRepository = mock(OrderRepository.class);\n order = new Order(\"123\", 100.0, \"PENDING\", orderRepository);\n }\n\n @Test\n public void testIsPending_shouldReturnTrue_whenOrderStatusIsPending() {\n assertTrue(order.isPending());\n }\n\n @Test\n public void testMarkAsProcessed_shouldUpdateStatusAndSave_whenCalled() {\n order.markAsProcessed();\n assertEquals(\"PROCESSED\", order.getStatus());\n verify(orderRepository, times(1)).save(order);\n }\n}"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"public class OrderTest {\n private OrderRepository orderRepository;\n private Order order;\n\n @BeforeEach\n public void setUp() {\n orderRepository = mock(OrderRepository.class);\n order = new Order(\"123\", 100.0, \"PENDING\", orderRepository);\n }\n\n @Test\n public void testIsPending_shouldReturnTrue_whenOrderStatusIsPending() {\n assertTrue(order.isPending());\n }\n\n @Test\n public void testMarkAsProcessed_shouldUpdateStatusAndSave_whenCalled() {\n order.markAsProcessed();\n assertEquals(\"PROCESSED\", order.getStatus());\n verify(orderRepository, times(1)).save(order);\n }\n}"]]],["p",{"uuid":"lz6bbiev1n43xmixxii"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6bbj5hiqlrr84z6a8"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"Domain Model的类图如下:"]]],["p",{"uuid":"lz5m3o7xypl5ue9h79c","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]],["img",{"id":"mhicra","name":"image.png","size":129131,"width":437,"height":261,"uuid":"lz6b5iq602b3wpcw6qs2","src":"https://oss-ata.alibaba.com/article/2024/07/905a0292-9929-47c6-bc5f-6c85711cbc0c.png","extraData":{"resourceId":"57e48156-ec93-44e9-abc2-033afcd267df","metaData":{"size":129131,"originWidth":874,"originHeight":522,"format":"png","ratio":1}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lz5rmfzdzcpsx82saa","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"拆分步骤2:剥离外部依赖为接口"]]],["p",{"uuid":"lz6afoifyu5b3a9cgm","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"部分调用涉及外部接口,我们可以将其抽象为接口,将外部服务抽象为类的接口可以极大简化单元测试,示例代码中涉及的接口主要有4个"]]],["code",{"syntax":"java","theme":"default","wrap":true,"id":"3xz0xp","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz6axdwnfhn4qs9xo1","code":" public interface PaymentGateway {\n boolean processPayment(String orderId, double amount);\n }\n\n public interface InventorySystem {\n boolean checkStock(String orderId);\n }\n\n public interface ShippingService {\n void initiateShipping(String orderId);\n }\n\n interface NotificationService {\n void sendOutOfStockNotification(Customer customer);\n void sendPaymentFailureNotification(Customer customer);\n void sendOrderConfirmation(Customer customer, Order order, double finalAmount);\n }\n\n class EmailNotificationService implements NotificationService {\n public void sendOutOfStockNotification(Customer customer) {\n // 省略实现细节\n }\n\n public void sendPaymentFailureNotification(Customer customer) {\n // 省略实现细节\n }\n\n public void sendOrderConfirmation(Customer customer, Order order, double finalAmount) {\n // 省略实现细节\n }\n }"},["span",{"data-type":"text"},["span",{"data-type":"leaf"}," public interface PaymentGateway {\n boolean processPayment(String orderId, double amount);\n }\n\n public interface InventorySystem {\n boolean checkStock(String orderId);\n }\n\n public interface ShippingService {\n void initiateShipping(String orderId);\n }\n\n interface NotificationService {\n void sendOutOfStockNotification(Customer customer);\n void sendPaymentFailureNotification(Customer customer);\n void sendOrderConfirmation(Customer customer, Order order, double finalAmount);\n }\n\n class EmailNotificationService implements NotificationService {\n public void sendOutOfStockNotification(Customer customer) {\n // 省略实现细节\n }\n\n public void sendPaymentFailureNotification(Customer customer) {\n // 省略实现细节\n }\n\n public void sendOrderConfirmation(Customer customer, Order order, double finalAmount) {\n // 省略实现细节\n }\n }"]]],["p",{"uuid":"lz6awjet7vhh8pkpn0w","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz5rmqeothlm179dv3","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"这些接口由于实现在其他内部或外部服务,因此当前组件中我们并没有办法对其进行“接口实现类”的单元测试,而只能对其进行“接口使用者”的单元测试,而这部分单元测试不应该在该层实现,而应该在使用者一层进行测试,也就是下一小节提到的服务层。"]]],["p",{"uuid":"lz6bs7zidukjlj1y7uk","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"通过接口可以非常容易在“接口使用者”层面进行Mock。"]]],["p",{"uuid":"lz6bmn06ofdhhpk5abd","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"因此这部分代码可以归结到简单代码部分,无需进行“接口实现类”的单元测试。"]]],["p",{"uuid":"lz6bnj2ql5ox0l1tds","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lz5rmwwcv7o7wtud0s","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"拆分步骤3:实现服务层"]]],["p",{"uuid":"lz6b1v4abz88qtc53oq","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"订单服务需要涉及多个领域对象的协作。包括通知、支付网关、库存等。服务层提供了一个合适的地方来协调这些操作,而不是将这种复杂的逻辑放在订单领域自身中。"]]],["p",{"uuid":"lz6e8l9c49c7sr8fgnj","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"因此将订单服务单独抽离出来,作为服务层。"]]],["h3",{"uuid":"lz6b1vcagw1og403u7","spacing":{"before":18.666666666666664,"after":8,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":14,"szUnit":"pt","data-type":"leaf"},"订单服务层"]]],["code",{"syntax":"java","theme":"default","wrap":true,"id":"lxu3tk","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz6b18soyvaxdmqn9jc","code":"public class OrderService {\n private final InventorySystem inventorySystem;\n private final PaymentGateway paymentGateway;\n private final NotificationService notificationService;\n\n public OrderService(InventorySystem inventorySystem,\n PaymentGateway paymentGateway,\n NotificationService notificationService) {\n this.inventorySystem = inventorySystem;\n this.paymentGateway = paymentGateway;\n this.notificationService = notificationService;\n }\n\n public boolean finishOrder(Order order, Customer customer, double amount) {\n order.markAsProcessed();\n notificationService.sendOrderConfirmation(customer, order, amount);\n }\n\n public boolean checkInventoryAndNotify(Order order, Customer customer) {\n if (!inventorySystem.checkStock(order.getId())) {\n notificationService.sendOutOfStockNotification(customer);\n return false;\n }\n return true;\n }\n\n public boolean processPaymentAndNotify(Order order, Customer customer, double amount) {\n if (!paymentGateway.processPayment(order.getId(), amount)) {\n notificationService.sendPaymentFailureNotification(customer);\n return false;\n }\n return true;\n }\n }"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"public class OrderService {\n private final InventorySystem inventorySystem;\n private final PaymentGateway paymentGateway;\n private final NotificationService notificationService;\n\n public OrderService(InventorySystem inventorySystem,\n PaymentGateway paymentGateway,\n NotificationService notificationService) {\n this.inventorySystem = inventorySystem;\n this.paymentGateway = paymentGateway;\n this.notificationService = notificationService;\n }\n\n public boolean finishOrder(Order order, Customer customer, double amount) {\n order.markAsProcessed();\n notificationService.sendOrderConfirmation(customer, order, amount);\n }\n\n public boolean checkInventoryAndNotify(Order order, Customer customer) {\n if (!inventorySystem.checkStock(order.getId())) {\n notificationService.sendOutOfStockNotification(customer);\n return false;\n }\n return true;\n }\n\n public boolean processPaymentAndNotify(Order order, Customer customer, double amount) {\n if (!paymentGateway.processPayment(order.getId(), amount)) {\n notificationService.sendPaymentFailureNotification(customer);\n return false;\n }\n return true;\n }\n }"]]],["p",{"uuid":"lz6b0tykf347gczyj88"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6dyig82h85xd6tgdc"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"这样我们可以重点测试服务层某个功能,其他无关功能通过Mock接口方式实现"]]],["code",{"syntax":"c#","theme":"default","wrap":true,"id":"1z91qm","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz6dyg1bn0dq5zmjr9","code":"public class OrderServiceTest {\n\n @Mock\n private InventorySystem inventorySystem;\n\n @Mock\n private PaymentGateway paymentGateway;\n\n @Mock\n private NotificationService notificationService;\n\n @Mock\n private Order order;\n\n @Mock\n private Customer customer;\n\n private OrderService orderService;\n\n @BeforeEach\n void setUp() {\n MockitoAnnotations.openMocks(this);\n orderService = new OrderService(inventorySystem, paymentGateway, notificationService);\n }\n\n @Test\n void testFinishOrder_shouldMarkAsProcessedAndSendConfirmation_whenCalled() {\n double amount = 100.0;\n\n orderService.finishOrder(order, customer, amount);\n\n verify(order).markAsProcessed();\n verify(notificationService).sendOrderConfirmation(customer, order, amount);\n }\n\n @Test\n void testCheckInventoryAndNotify_shouldReturnTrue_whenStockAvailable() {\n when(inventorySystem.checkStock(anyString())).thenReturn(true);\n when(order.getId()).thenReturn(\"123\");\n\n boolean result = orderService.checkInventoryAndNotify(order, customer);\n\n assertTrue(result);\n verify(inventorySystem).checkStock(\"123\");\n verify(notificationService, never()).sendOutOfStockNotification(any());\n }\n\n @Test\n void testCheckInventoryAndNotify_shouldReturnFalseAndNotify_whenStockUnavailable() {\n when(inventorySystem.checkStock(anyString())).thenReturn(false);\n when(order.getId()).thenReturn(\"123\");\n\n boolean result = orderService.checkInventoryAndNotify(order, customer);\n\n assertFalse(result);\n verify(inventorySystem).checkStock(\"123\");\n verify(notificationService).sendOutOfStockNotification(customer);\n }\n}"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"public class OrderServiceTest {\n\n @Mock\n private InventorySystem inventorySystem;\n\n @Mock\n private PaymentGateway paymentGateway;\n\n @Mock\n private NotificationService notificationService;\n\n @Mock\n private Order order;\n\n @Mock\n private Customer customer;\n\n private OrderService orderService;\n\n @BeforeEach\n void setUp() {\n MockitoAnnotations.openMocks(this);\n orderService = new OrderService(inventorySystem, paymentGateway, notificationService);\n }\n\n @Test\n void testFinishOrder_shouldMarkAsProcessedAndSendConfirmation_whenCalled() {\n double amount = 100.0;\n\n orderService.finishOrder(order, customer, amount);\n\n verify(order).markAsProcessed();\n verify(notificationService).sendOrderConfirmation(customer, order, amount);\n }\n\n @Test\n void testCheckInventoryAndNotify_shouldReturnTrue_whenStockAvailable() {\n when(inventorySystem.checkStock(anyString())).thenReturn(true);\n when(order.getId()).thenReturn(\"123\");\n\n boolean result = orderService.checkInventoryAndNotify(order, customer);\n\n assertTrue(result);\n verify(inventorySystem).checkStock(\"123\");\n verify(notificationService, never()).sendOutOfStockNotification(any());\n }\n\n @Test\n void testCheckInventoryAndNotify_shouldReturnFalseAndNotify_whenStockUnavailable() {\n when(inventorySystem.checkStock(anyString())).thenReturn(false);\n when(order.getId()).thenReturn(\"123\");\n\n boolean result = orderService.checkInventoryAndNotify(order, customer);\n\n assertFalse(result);\n verify(inventorySystem).checkStock(\"123\");\n verify(notificationService).sendOutOfStockNotification(customer);\n }\n}"]]],["p",{"uuid":"lz6dyd9v2gcfgd41noq"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h3",{"uuid":"lz6b1zlmxg7esuqd7t","spacing":{"before":18.666666666666664,"after":8,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":14,"szUnit":"pt","data-type":"leaf"},"折扣计算服务层"]]],["p",{"uuid":"lz6f8eysdblikedpl5s","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"该层并没有下层依赖,将该类放到服务层的原因是该类可能会被多个Domain对象共享,而折扣是非常核心的业务逻辑,针对该部分逻辑的所有分支进行全面覆盖非常重要。"]]],["code",{"syntax":"java","theme":"default","wrap":true,"id":"7p2itb","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz6b27s3hs3mm38yahj","code":"class DiscountPolicy {\n public double calculateFinalAmount(Order order, Customer customer) {\n return order.getAmount() * (1 - getDiscountRate(customer.getCustomerType()));\n }\n private double getDiscountRate(String customerType) {\n switch (customerType) {\n case \"VIP\":\n return 0.1;\n case \"REGULAR\":\n return 0.05;\n default:\n return 0;\n }\n }\n }"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"class DiscountPolicy {\n public double calculateFinalAmount(Order order, Customer customer) {\n return order.getAmount() * (1 - getDiscountRate(customer.getCustomerType()));\n }\n private double getDiscountRate(String customerType) {\n switch (customerType) {\n case \"VIP\":\n return 0.1;\n case \"REGULAR\":\n return 0.05;\n default:\n return 0;\n }\n }\n }"]]],["p",{"uuid":"lz6dzn7nswq15cgjbya"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"该类对应的单元测试:"]]],["code",{"syntax":"java","theme":"default","wrap":true,"id":"1uuvdg","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz6dzhhh0hhnsevl3cr","code":"class DiscountPolicyTest {\n\n @Mock\n private Order order;\n\n @Mock\n private Customer customer;\n\n private DiscountPolicy discountPolicy;\n\n @BeforeEach\n void setUp() {\n MockitoAnnotations.openMocks(this);\n discountPolicy = new DiscountPolicy();\n }\n\n @Test\n void testCalculateFinalAmount_shouldApplyVipDiscount_whenCustomerIsVip() {\n when(order.getAmount()).thenReturn(100.0);\n when(customer.getCustomerType()).thenReturn(\"VIP\");\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n assertEquals(90.0, finalAmount, 0.001);\n }\n\n @Test\n void testCalculateFinalAmount_shouldApplyRegularDiscount_whenCustomerIsRegular() {\n when(order.getAmount()).thenReturn(100.0);\n when(customer.getCustomerType()).thenReturn(\"REGULAR\");\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n assertEquals(95.0, finalAmount, 0.001);\n }\n\n @Test\n void testCalculateFinalAmount_shouldApplyNoDiscount_whenCustomerTypeIsUnknown() {\n when(order.getAmount()).thenReturn(100.0);\n when(customer.getCustomerType()).thenReturn(\"UNKNOWN\");\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n assertEquals(100.0, finalAmount, 0.001);\n }\n}"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"class DiscountPolicyTest {\n\n @Mock\n private Order order;\n\n @Mock\n private Customer customer;\n\n private DiscountPolicy discountPolicy;\n\n @BeforeEach\n void setUp() {\n MockitoAnnotations.openMocks(this);\n discountPolicy = new DiscountPolicy();\n }\n\n @Test\n void testCalculateFinalAmount_shouldApplyVipDiscount_whenCustomerIsVip() {\n when(order.getAmount()).thenReturn(100.0);\n when(customer.getCustomerType()).thenReturn(\"VIP\");\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n assertEquals(90.0, finalAmount, 0.001);\n }\n\n @Test\n void testCalculateFinalAmount_shouldApplyRegularDiscount_whenCustomerIsRegular() {\n when(order.getAmount()).thenReturn(100.0);\n when(customer.getCustomerType()).thenReturn(\"REGULAR\");\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n assertEquals(95.0, finalAmount, 0.001);\n }\n\n @Test\n void testCalculateFinalAmount_shouldApplyNoDiscount_whenCustomerTypeIsUnknown() {\n when(order.getAmount()).thenReturn(100.0);\n when(customer.getCustomerType()).thenReturn(\"UNKNOWN\");\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n assertEquals(100.0, finalAmount, 0.001);\n }\n}"]]],["p",{"uuid":"lz6b265k77f0f1ix5lm"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6b22v8klzebqvg07k"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6az8n1y9il468lyg","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lz6az8rqtx7y2dzvcy","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"拆分步骤4: 使用拆分后的类重构OrderProcessor"]]],["code",{"syntax":"c#","theme":"default","wrap":true,"id":"7qqabx","title":"","fold":false,"hideHeader":false,"codeFolding":false,"showLineNumber":true,"font":{"fontFamily":"defaultFont","ligatures":false},"enableMacHeader":false,"uuid":"lz6b0gnk205kv3zrdi6","code":"public class OrderProcessor {\n private final ShippingService shippingService;\n private final DiscountPolicy discountPolicy;\n private final OrderService orderService;\n\n public OrderProcessor(OrderService orderService,\n ShippingService shippingService,\n DiscountPolicy discountPolicy) {\n this.orderService = orderService;\n this.shippingService = shippingService;\n this.discountPolicy = discountPolicy;\n }\n\n public void processOrder(Order order, Customer customer) {\n if (!order.isPending()) {\n return;\n }\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n if (!orderService.checkInventoryAndNotify(order, customer)) {\n return;\n }\n\n if (!orderService.processPaymentAndNotify(order, customer, finalAmount)) {\n return;\n }\n\n orderService.finishOrder(order, customer, finalAmount);\n\n customer.addPoints((int) finalAmount);\n shippingService.initiateShipping(order.getId());\n }\n }"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"public class OrderProcessor {\n private final ShippingService shippingService;\n private final DiscountPolicy discountPolicy;\n private final OrderService orderService;\n\n public OrderProcessor(OrderService orderService,\n ShippingService shippingService,\n DiscountPolicy discountPolicy) {\n this.orderService = orderService;\n this.shippingService = shippingService;\n this.discountPolicy = discountPolicy;\n }\n\n public void processOrder(Order order, Customer customer) {\n if (!order.isPending()) {\n return;\n }\n\n double finalAmount = discountPolicy.calculateFinalAmount(order, customer);\n\n if (!orderService.checkInventoryAndNotify(order, customer)) {\n return;\n }\n\n if (!orderService.processPaymentAndNotify(order, customer, finalAmount)) {\n return;\n }\n\n orderService.finishOrder(order, customer, finalAmount);\n\n customer.addPoints((int) finalAmount);\n shippingService.initiateShipping(order.getId());\n }\n }"]]],["p",{"uuid":"lz6azzsila4s6d6bykb","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h2",{"uuid":"lz6f9x6z26egsdjbfa8","ind":{},"spacing":{"before":21.333333333333332,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":16,"szUnit":"pt","data-type":"leaf"},"拆分结果"]]],["p",{"uuid":"lz6faffuesq7ch1j7mn","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"至此,我们就完成了全部的拆分:"]]],["p",{"uuid":"lz6farhe74r10xsswk7","ind":{"left":0},"list":{"listId":"mhioacqactq","level":1,"isOrdered":true,"isTaskList":false,"listStyleType":"DEC_LEN_LROM_P","symbolStyle":{},"listStyle":{"format":"lowerLetter","text":"%2.","align":"left"},"hideSymbol":false}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"Order Customer 充血模型实体类,OrderService DiscountPlicy服务层属于代码复杂度与领域相关度较高,合作方较低的类,"],["span",{"bold":true,"data-type":"leaf"},"拥有最好的单元测试投资回报率"],["span",{"data-type":"leaf"},"。"]]],["p",{"uuid":"lz6fj8s5sx30qbsgdqp","ind":{"left":0},"list":{"listId":"mhioacqactq","level":1,"isOrdered":true,"isTaskList":false,"isChecked":false,"listStyleType":"DEC_LEN_LROM_P","symbolStyle":{},"listStyle":{"format":"lowerLetter","text":"%2.","align":"left"},"hideSymbol":false,"extraData":{}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"OrderProcessor变为流程控代码"]]],["p",{"uuid":"lz6fjv9264tw4imjs7m","ind":{"left":0},"list":{"listId":"mhioacqactq","level":1,"isOrdered":true,"isTaskList":false,"isChecked":false,"listStyleType":"DEC_LEN_LROM_P","symbolStyle":{},"listStyle":{"format":"lowerLetter","text":"%2.","align":"left"},"hideSymbol":false,"extraData":{}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"外部接口类InventorySystem、PaymentGateway等属于简单代码,不对接口实现进行测试,仅对服务层的接口使用进行单元测试。"]]],["p",{"uuid":"lz6fle9hmx0fbjclc1s","ind":{"left":0}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6flfisg6k64mbqx4","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"拆分示意图如下:"]]],["p",{"uuid":"lz6du5g2417ia879pun","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]],["img",{"id":"tezmxx","name":"image.png","size":743424,"width":748,"height":575.9526159921027,"uuid":"lz6du6n5j6r0zwbj2a","src":"https://oss-ata.alibaba.com/article/2024/07/79aa3156-b975-4262-b023-8971efde7f5d.png","extraData":{"resourceId":"71d0d961-3903-4763-9dbc-86654aafc58f","metaData":{"size":743424,"originWidth":2026,"originHeight":1560,"format":"png","ratio":1}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6du6n7ez1mqulqw2a"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6du5l8b6qkz3sdikw","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6du5ppoyax66i5pi","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6bj0iy4420vowx373","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"将类做简单的分层,示意如下:"]]],["p",{"uuid":"lz5r92wj64wh25pefc6","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]],["img",{"id":"ouzqed","name":"image.png","size":614775,"width":748,"height":722.2375296912114,"uuid":"lz6bir5u9lotzrn681c","src":"https://oss-ata.alibaba.com/article/2024/07/80d0f35d-b86d-422c-a56f-915620db61aa.png","extraData":{"resourceId":"e56de5c3-9ea5-429f-96d8-aa57e9f20df2","metaData":{"size":614775,"originWidth":1684,"originHeight":1626,"format":"png","ratio":1}}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz6bir5vmew2t4yspao"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz5r93ka4id8y34opvb","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k1kp8qlhro9a7vuh","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},"通过这个示例,我们可以看到如何将一个复杂的、难以测试的函数转变为一个结构清晰、职责分明、易于测试的代码。这种重构不仅提高了代码的可测试性,还增强了系统的可维护性和可扩展性。"]]],["p",{"uuid":"lz6flrxwmb24fkdmff","ind":{}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["h1",{"uuid":"lz6flsj0c17i7b7z3l","ind":{},"spacing":{"before":26.666666666666664,"after":9,"line":0.8529411764705882}},["span",{"data-type":"text"},["span",{"bold":true,"sz":20,"szUnit":"pt","data-type":"leaf"},"小结"]]],["p",{"uuid":"lz6flvl7hkvkiyob9bk","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"}," 编写易于单元测试的代码需要一定设计,需要从代码的复杂度、领域相关性以及合作方数量等多个维度进行考量。高领域相关性和复杂度的代码具有较高的单元测试投资回报率,而复杂且有大量外部依赖的代码在开发过程中要有意识的避免。"]]],["p",{"uuid":"lz6fp9ozy9s5xaxim6m"},["span",{"data-type":"text"},["span",{"data-type":"leaf"}," "]]],["p",{"uuid":"lz6fp9ozdygiix47xdf"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lz3k1kp9c94mpu8ge7"},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]],["p",{"uuid":"lxhajdicir6vhxsv2dj","ind":{"firstLine":32}},["span",{"data-type":"text"},["span",{"data-type":"leaf"},""]]]]" data-identifier-application__slash__x-cangjie-fragment="JTdCJTIya2xhc3MlMjIlM0ElMjJkb2N1bWVudCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJjb3B5RnJvbSUyMiUzQTE4NDkxNDAzMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTElMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDcxY2VqNWtsanZ0Ymw0NWIlMjIlMkMlMjJzcGFjaW5nJTIyJTNBJTdCJTIyYmVmb3JlJTIyJTNBMjYuNjY2NjY2NjY2NjY2NjY0JTJDJTIyYWZ0ZXIlMjIlM0E5JTJDJTIybGluZSUyMiUzQTAuODUyOTQxMTc2NDcwNTg4MiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNyVBRSU4MCVFNCVCQiU4QiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDcxZHgwYnE1cnV1encxbCUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JTlDJUE4JUU3JUFFJUExJUU2JThFJUE3JUU1JUJDJTgwJUU1JThGJTkxJUU4JUJGJTg3JUU3JUE4JThCJUU0JUI4JUFEJUU1JUJBJTk0JUU3JTk0JUE4JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU0JUJGJTlEJUU4JUFGJTgxJUU4JUI0JUE4JUU5JTg3JThGJUU1JUI3JUIyJUU3JUJCJThGJUU2JTlDJTg5JUU1JTg3JUEwJUU1JUI5JUI0JUU2JTk3JUI2JUU5JTk3JUI0JUVGJUJDJThDJUU2JTlDJTlGJUU5JTk3JUI0JUU0JUJEJTkzJUU0JUJDJTlBJUU1JTg4JUIwJUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU3JTlBJTg0JUU2JTk0JUI2JUU3JTlCJThBJUU4JUJGJTk4JUU2JTk4JUFGJUU1JUJFJTg4JUU2JTg0JTg5JUU2JTgyJUE2JUU3JTlBJTg0JUVGJUJDJThDJUU4JUJGJTkxJUU2JTlDJTlGJUU1JUE0JUE3JUU1JTlCJUEyJUU5JTk4JTlGJUU1JUJDJTgwJUU1JUE3JThCJUU1JUFGJUI5JUU1JThEJTk1JUU2JUI1JThCJUU4JUJGJTlCJUU4JUExJThDJUU1JUJDJUJBJUU4JUExJThDJUU4JUE2JTgxJUU2JUIxJTgyJUVGJUJDJThDJUU1JTgwJTlGJUU2JUFEJUE0JUU2JTlDJUJBJUU0JUJDJTlBJUU0JUI5JTlGJUU2JTgzJUIzJUU1JTg4JTg2JUU0JUJBJUFCJUU0JUI4JTgwJUU0JUJBJTlCJUU2JTg4JTkxJUU1JUFGJUI5JUU1JThEJTk1JUU2JUI1JThCJUU3JTlBJTg0JUU0JUI4JTgwJUU0JUJBJTlCJUU3JUJCJThGJUU5JUFBJThDJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoN2FkdjB5ZnFsbzNlYjdmJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOUMlQUMlRTclQUYlODclRTYlOTYlODclRTclQUIlQTAlRTQlQkQlOUMlRTQlQjglQkElRTUlQkMlODAlRTclQUYlODclRUYlQkMlOEMlRTUlQjklQjYlRTQlQjglOEQlRTglQUUlQjIlRTglQkYlQjAlRTUlOEQlOTUlRTYlQjUlOEIlRTYlOUMlQUMlRTglQkElQUIlRUYlQkMlOEMlRTglODAlOEMlRTYlOTglQUYlRTQlQkIlOEUlRTQlQkIlQTMlRTclQTAlODElRTUlQkMlODAlRTUlOEYlOTElRTclOUElODQlRTglQTclOTIlRTUlQkElQTYlRTklOTglOTAlRTglQkYlQjAlRTQlQkIlODAlRTQlQjklODglRTYlQTAlQjclRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTYlOTglOTMlRTQlQkElOEUlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRUYlQkMlOEMlRTUlQTYlODIlRTQlQkIlOEFBSUdDJUU3JTgxJUFCJUU3JTgzJUFEJUU3JTlBJTg0JUU4JTgzJThDJUU2JTk5JUFGJUU0JUI4JThCJUVGJUJDJThDJUU1JUE2JTgyJUU2JTlFJTlDJUU3JUJDJTk2JUU1JTg2JTk5JUU3JUJCJTkzJUU2JTlFJTg0JUU2JUI4JTg1JUU2JTk5JUIwJUVGJUJDJThDJUU2JUE4JUExJUU1JTlEJTk3JUU1JTg4JTkyJUU1JTg4JTg2JUU1JTkwJTg4JUU3JTkwJTg2JUVGJUJDJThDJUU1JThGJUFGJUU4JUFGJUJCJUU2JTgwJUE3JUU4JTg5JUFGJUU1JUE1JUJEJUU3JTlBJTg0JUU0JUJCJUEzJUU3JUEwJTgxJUVGJUJDJThDJUU0JUI5JTlGJUU4JTgzJUJEJUU0JUJEJUJGJUU1JUJFJTk3JUU4JTg3JUFBJUU1JThBJUE4JUU3JTk0JTlGJUU2JTg4JTkwJUU3JTlBJTg0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU2JThCJUE1JUU2JTlDJTg5JUU4JUJFJTgzJUU5JUFCJTk4JUU3JTlBJTg0JUU4JUI0JUE4JUU5JTg3JThGJUVGJUJDJThDJUU0JUJCJThFJUU4JTgwJThDJUU4JUJFJUJFJUU1JTg4JUIwJUU0JUJEJThFJUU2JThBJTk1JUU1JTg1JUE1JUU5JUFCJTk4JUU2JTk0JUI2JUU3JTlCJThBJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2anN4amE4dHpqanhvamE5OSUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JUJEJTkzJUU3JTg0JUI2JUVGJUJDJThDJUU2JThEJUFFJUU4JUFGJUI0JUU3JTlDJTlGJUU3JTk0JUI3JUU0JUJBJUJBJUU0JUJCJThFJUU2JTlEJUE1JUU0JUI4JThEJUU2JTkwJTlFJUU0JUJCJTgwJUU0JUI5JTg4JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJTg4anVzdCUyMGpva2luZy4uLiVFRiVCQyU4OSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6Nmp0YnIxejZuODM4OW84bGMlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJpbmxpbmUlMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaW1hZ2UlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyaWQlMjIlM0ElMjJweDBwZWclMjIlMkMlMjJuYW1lJTIyJTNBJTIyaW1hZ2UucG5nJTIyJTJDJTIyc2l6ZSUyMiUzQTQxNjg0MiUyQyUyMndpZHRoJTIyJTNBNjgwJTJDJTIyaGVpZ2h0JTIyJTNBNjA5JTJDJTIyc3JjJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZvc3MtYXRhLmFsaWJhYmEuY29tJTJGYXJ0aWNsZSUyRjIwMjQlMkYwNyUyRjNmMzlmYTQ3LTEyMTAtNDNkOS1hZDI2LTJiMzI5ZmRlMzU2Yy5wbmclMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg3Y3QyanBlYnh3NWs1N2lzJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMSUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoN2N4NXNuNmV2aDNvbHl5ciUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0EyNi42NjY2NjY2NjY2NjY2NjQlMkMlMjJhZnRlciUyMiUzQTklMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU0JUJCJTgwJUU0JUI5JTg4JUU2JTk4JUFGJUU3JUFFJUExJUU2JThFJUE3JUU0JUJCJUEzJUU3JUEwJTgxJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0EyMCUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDdkNHRvdXBiczh5cDlqOWUlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU5QyVBQyVFNyVBRiU4NyVFNiU5NiU4NyVFNyVBQiVBMCVFNCVCOCVCQiVFOCVBNiU4MSVFOSU5OCU5MCVFOCVCRiVCMCVFNyVBRSVBMSVFNiU4RSVBNyVFNCVCQiVBMyVFNyVBMCU4MSVFNyU5QSU4NCVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFRiVCQyU4QyVFOSU4MiVBMyVFNCVCOSU4OCVFNSU5QyVBOCVFNSVCQyU4MCVFNSVBNyU4QiVFNCVCOSU4QiVFNSU4OSU4RCVFRiVCQyU4QyVFNSU4RiVBRiVFNCVCQiVBNSVFNSU4NSU4OCVFNyVBRSU4MCVFNSU4RCU5NSVFNSVBRSU5QSVFNCVCOSU4OSVFNCVCQiU4MCVFNCVCOSU4OCVFNiU5OCVBRiVFNCVCQSU5MSVFOCVBRSVBMSVFNyVBRSU5NyVFNCVCOCU4QSVFNCVCOCU4QiVFNiU5NiU4NyVFNCVCOCVBRCVFNyU5QSU4NCVFNyVBRSVBMSVFNiU4RSVBNyVFNCVCQiVBMyVFNyVBMCU4MSUzQSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDdpamhlanZyeXVnZWx1YmUlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDdpa3hlMjFvbXpnNjc2NzVpJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTclQUUlQTElRTYlOEUlQTclRTQlQkIlQTMlRTclQTAlODElRTYlOTglQUYlRTclOTQlQTglRTQlQkElOEUlRTglODclQUElRTUlOEElQTglRTUlOEMlOTYlRTclQUUlQTElRTclOTAlODYlRTUlOTIlOEMlRTYlOEUlQTclRTUlODglQjYlRTQlQkElOTElRTglQUUlQTElRTclQUUlOTclRTclOEUlQUYlRTUlQTIlODMlRTQlQjglQUQlRTclOUElODQlRTUlOTAlODQlRTclQTclOEQlRTglQjUlODQlRTYlQkElOTAlRUYlQkMlODglRTUlQTYlODIlRTglOTklOUElRTYlOEIlOUYlRTYlOUMlQkElRTMlODAlODElRTUlQUQlOTglRTUlODIlQTglRTMlODAlODElRTclQkQlOTElRTclQkIlOUMlRTMlODAlODElRTUlQUUlODklRTUlODUlQTglRTklODUlOEQlRTclQkQlQUUlRTclQUQlODklRUYlQkMlODklRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTMlODAlODIlRTUlQUUlODMlRTklODAlOUElRTglQkYlODclRTQlQjglOEUlRTQlQkElOTElRTglQUUlQTElRTclQUUlOTclRTUlQjklQjMlRTUlOEYlQjAlRTclOUElODRBUEklRTQlQkElQTQlRTQlQkElOTIlRUYlQkMlOEMlRTUlQUUlOUUlRTclOEUlQjAlRTUlQUYlQjklRTQlQkElOTElRTglQjUlODQlRTYlQkElOTAlRTclOUElODQlRTglODclQUElRTUlOEElQTglRTUlOEMlOTYlRTklODMlQTglRTclQkQlQjIlRTMlODAlODElRTklODUlOEQlRTclQkQlQUUlRTMlODAlODElRTclOUIlOTElRTYlOEUlQTclRTUlOTIlOEMlRTclQUUlQTElRTclOTAlODYlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg3aWsyZHhqdmV6bHp0cWclMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDdpd28zYmtmdm11cXgxY2UlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSU4RiVBRiVFNCVCQiVBNSVFNyVBRSU4MCVFNSU4RCU5NSVFNSVBRSU5QSVFNCVCOSU4OSVFNyVBRSVBMSVFNiU4RSVBNyVFNCVCQiVBMyVFNyVBMCU4MSVFNyU5QSU4NCVFNCVCOCU4MCVFNCVCQSU5QiVFOSU4MCU5QSVFNyU5NCVBOCVFNyU4OSVCOSVFNSVCRSU4MSVFRiVCQyU5QSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDdkeDQ2ZnIyd2o4dmZ5YSUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOSVBQiU5OCVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFRiVCQyU5QSVFNyVBRSVBMSVFNiU4RSVBNyVFNCVCQiVBMyVFNyVBMCU4MSVFNyVCMSVCQiVFNCVCQyVCQyVFOCU4MyVCNiVFNiVCMCVCNCVFNCVCQiVBMyVFNyVBMCU4MSVFNyU5QSU4NCVFNyU4OSVCOSVFNiU4MCVBNyVFOSU4MCU5QSVFNSVCOCVCOCVFNSU4NiVCMyVFNSVBRSU5QSVFNCVCQiVBMyVFNyVBMCU4MSVFNCVCQyU5QSVFNSU4NSVCNyVFNiU5QyU4OSVFOCVCRSU4MyVFOSVBQiU5OCVFNyU5QSU4NCVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFRiVCQyU4QyVFNSVBRSU5RSVFNyU4RSVCMCVFNCVCOCU4MCVFNyVCQiU4NCVFNSVBRSU4QyVFNiU5NSVCNCVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCU5QSVFNSVCOCVCOCVFOSU5QyU4MCVFOCVBNiU4MSVFNSVBNCVBNyVFOSU4NyU4RiVFNyU5QSU4NCVFNSU4RiU4MiVFNiU5NSVCMCVFNSU5MiU4QyVFNSU4RiU5OCVFOSU4NyU4RiVFRiVCQyU4QyVFNCVCQiVBNSVFNSU4RiU4QSVFNCVCOCU4QSVFNCVCOCU4QiVFNiVCOCVCOCVFNSVBNCU5QSVFNCVCOCVBQSVFNSVCRSVBRSVFNiU5QyU4RCVFNSU4QSVBMSVFNyU5QSU4NCVFNCVCQSVBNCVFNCVCQSU5MiVFRiVCQyU4QyVFNSU5MCU4QyVFNiU5NyVCNiVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFOCU4NyVBQSVFOCVCQSVBQiVFNCVCOSU5RiVFNSU4NSVCNyVFNiU5QyU4OSVFOCVCRSU4MyVFOSVBQiU5OCVFNyU5QSU4NCVFOSVBMiU4NiVFNSU5RiU5RiVFNCVCOCU5MyVFNCVCOCU5QSVFNSVCQSVBNiVFRiVCQyU4OCVFNCVCRSU4QiVFNSVBNiU4MiVFNSVBRCU5OCVFNSU4MiVBOCVFMyU4MCU4MSVFNiU5NSVCMCVFNiU4RCVBRSVFNSVCQSU5MyVFNyVBRCU4OSVFRiVCQyU4OSVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDdxcTB5ODd6eXBvdDMwZG8lMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQkUlODMlRTklOTUlQkYlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTclOTQlOUYlRTUlOTElQkQlRTUlOTElQTglRTYlOUMlOUYlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRUYlQkMlOUElRTclQUUlQTElRTYlOEUlQTclRTQlQkIlQTMlRTclQTAlODElRTklODAlOUElRTUlQjglQjglRTYlOTglQUZUb0IlRTclOUElODQlRUYlQkMlOENUb0IlRTclOUElODQlRTclODklQjklRTclODIlQjklRTUlOEYlQTAlRTUlOEElQTAlRTklQTIlODYlRTUlOUYlOUYlRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRUYlQkMlOEMlRTklODAlOUElRTUlQjglQjglRTUlQUYlQkMlRTglODclQjQlRTQlQjglODAlRTUlQTUlOTclRTQlQkIlQTMlRTclQTAlODElRTQlQkIlOEUlRTQlQjglOEElRTclQkElQkYlRTUlODglQjAlRTQlQjglOEIlRTclQkElQkYlRTclOUElODQlRTUlOTElQTglRTYlOUMlOUYlRTklODAlOUElRTUlQjglQjglRTYlQTglQUElRTglQjclQTglRTYlOTUlQjAlRTUlQjklQjQlRTclOTQlOUElRTglODclQjMlRTUlOEQlODElRTUlQjklQjQlRTQlQkIlQTUlRTQlQjglOEElRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg3czllOHhmeXQ0NDJrdm1kJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JTk1JUIwJUU2JThEJUFFJUU5JTg3JThGJUU5JTgwJTgyJUU5JTg3JThGJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUVGJUJDJTlBJUU3JUFFJUExJUU2JThFJUE3JUU0JUJCJUEzJUU3JUEwJTgxJUU2JTg5JTgwJUU2JTkzJThEJUU0JUJEJTlDJUU3JTlBJTg0JUU2JTk1JUIwJUU2JThEJUFFJUU5JTg3JThGJUU5JTgwJTlBJUU1JUI4JUI4JUU5JTgwJTgyJUU5JTg3JThGJUVGJUJDJThDJUU0JUI4JThEJUU0JUJDJTlBJUU1JUE0JUFBJUU1JUE0JTlBJUVGJUJDJThDJUU0JUI5JTlGJUU0JUI4JThEJUU0JUJDJTlBJUU1JUE0JUFBJUU1JUIwJTkxJUVGJUJDJThDJUU2JTg5JTgwJUU0JUJCJUE1JUU2JTk1JUIwJUU2JThEJUFFJUU5JTg3JThGJUU1JUI4JUE2JUU2JTlEJUE1JUU3JTlBJTg0JUU2JTgwJUE3JUU4JTgzJUJEJUU5JTk3JUFFJUU5JUEyJTk4JUU5JTgwJTlBJUU1JUI4JUI4JUU1JUI5JUI2JUU0JUI4JThEJUU2JTk4JUFGJUU3JUFDJUFDJUU0JUI4JTgwJUU0JUJDJTk4JUU1JTg1JTg4JUU3JUJBJUE3JUU4JTgwJTgzJUU4JTk5JTkxJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoN3ZmamVrMXB5NHZtYjFmOCUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCRCU4RSVFNiU4OCU5NiVFNCVCOCVBRCVFNyVBRCU4OSVFNyU5QSU4NCVFNiU4MCVBNyVFOCU4MyVCRCVFOCVBNiU4MSVFNiVCMSU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFRiVCQyU5QSVFNyVBRSVBMSVFNiU4RSVBNyVFNCVCQiVBMyVFNyVBMCU4MSVFNyU5QSU4NCVFOCVCMCU4MyVFNyU5NCVBOCVFOSU4NyU4RiVFOSU4MCU5QSVFNSVCOCVCOCVFNCVCOCU4RCVFOSU5QyU4MCVFOCVBNiU4MSVFOCVCRSVCRSVFNSU4OCVCMCVFOSU5QyU4MCVFOCVBNiU4MSVFOCU4MCU4MyVFOCU5OSU5MSVFNiU5RSVCNiVFNiU5RSU4NCVFNCVCOCU4QSVFOCVCMCU4MyVFNiU5NSVCNCVFNyU5QSU4NCVFNyVBOCU4QiVFNSVCQSVBNiVFRiVCQyU4OCVFNCVCRSU4QiVFNSVBNiU4MiVFNSU4OCU4NiVFNSVCQSU5MyVFNSU4OCU4NiVFOCVBMSVBOCVFRiVCQyU4OSVFRiVCQyU4QyVFNyVCQiU5RCVFNSVBNCVBNyVFNSVBNCU5QSVFNiU5NSVCMCVFNyVBRSVBMSVFNiU4RSVBNyVFNiVCNSU4MSVFNyVBOCU4QiVFNSVBRiVCOSVFNiU4MCVBNyVFOCU4MyVCRCVFOCVBNiU4MSVFNiVCMSU4MiVFOCVCRSU4MyVFNCVCRCU4RSVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDd6bWw4ZHZuNXRsNjV0Y2QlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg3em1yYTR4eDU4eGZlbHpwJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTQlQjglOEElRTglQkYlQjAlRTclODklQjklRTclODIlQjklRTUlODYlQjMlRTUlQUUlOUElRTUlQUYlQjklRTclQUUlQTElRTYlOEUlQTclRTQlQkIlQTMlRTclQTAlODElRTclOUElODQlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRUYlQkMlOEMlRTUlQkElOTQlRTglQUYlQTUlRTglQTYlODElRTUlODElOUElRTUlODglQjAlRUYlQkMlOUElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg4MzR5N3U0eWk5dDFwdnElMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJoZzM3YWdva2cybSUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQWZhbHNlJTJDJTIyaXNUYXNrTGlzdCUyMiUzQWZhbHNlJTJDJTIybGlzdFN0eWxlVHlwZSUyMiUzQSUyMlNDSVJfRUNJUl9TUkVDJTIyJTJDJTIyc3ltYm9sU3R5bGUlMjIlM0ElN0IlN0QlMkMlMjJsaXN0U3R5bGUlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJidWxsZXQlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUUyJTk3JThCJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjJsZWZ0JTIyJTdEJTJDJTIyaGlkZVN5bWJvbCUyMiUzQWZhbHNlJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU4JUE2JTg2JUU3JTlCJTk2JUU1JTg1JUIzJUU5JTk0JUFFJUU0JUI4JTlBJUU1JThBJUExJUU5JTgwJUJCJUU4JUJFJTkxJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoODNhdmNxam9uMmJvMDB6JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlMkMlMjJsaXN0JTIyJTNBJTdCJTIybGlzdElkJTIyJTNBJTIyaGczN2Fnb2tnMm0lMjIlMkMlMjJsZXZlbCUyMiUzQTElMkMlMjJpc09yZGVyZWQlMjIlM0FmYWxzZSUyQyUyMmlzVGFza0xpc3QlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJTQ0lSX0VDSVJfU1JFQyUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyYnVsbGV0JTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFMiU5NyU4QiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCUyQyUyMmhpZGVTeW1ib2wlMjIlM0FmYWxzZSU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCRCVCRiVFNyU5NCVBOCVFOSU4MyVBOCVFNSU4OCU4Nm1vY2slRTUlOTIlOENzdHViJUU2JUE4JUExJUU2JThCJTlGJUU1JTg1JUI2JUU0JUJCJTk2JUU0JUJFJTlEJUU4JUI1JTk2JUVGJUJDJThDJUU0JUJCJThFJUU4JTgwJThDJUU2JTk2JUI5JUU0JUJFJUJGJUU1JTlDJUE4JUU5JTlBJTk0JUU3JUE2JUJCJUU3JThFJUFGJUU1JUEyJTgzJUU0JUI4JUFEJUU2JUI1JThCJUU4JUFGJTk1JUU0JUI4JTlBJUU1JThBJUExJUU5JTgwJUJCJUU4JUJFJTkxJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoODY2aHg2cWU2ejIyYncxdiUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMmhnMzdhZ29rZzJtJTIyJTJDJTIybGV2ZWwlMjIlM0ExJTJDJTIyaXNPcmRlcmVkJTIyJTNBZmFsc2UlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJpc0NoZWNrZWQlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJTQ0lSX0VDSVJfU1JFQyUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyYnVsbGV0JTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFMiU5NyU4QiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCUyQyUyMmhpZGVTeW1ib2wlMjIlM0FmYWxzZSUyQyUyMmV4dHJhRGF0YSUyMiUzQSU3QiU3RCU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU4QiVBNSVFNiU5QyU4OSVFOCVCRSU4MyVFNSVBNSVCRCVFNyU5QSU4NCVFNSU4RiVBRiVFOCVBRiVCQiVFNiU4MCVBNyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDg3aDF6Zm1lM3RycDVpaTklMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTElMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDg3aWZjb29qbTJ5ZGx6aGolMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0EyNi42NjY2NjY2NjY2NjY2NjQlMkMlMjJhZnRlciUyMiUzQTklMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU0JUJCJThFJUU2JTk4JTkzJUU0JUJBJThFJUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU4JUE3JTkyJUU1JUJBJUE2JUU1JTg4JTkyJUU1JTg4JTg2JUU0JUJCJUEzJUU3JUEwJTgxJUU3JUIxJUJCJUU1JTlFJThCJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0EyMCUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDhiYXMwejFhOHB3MzlsNWslMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOSU4MCU5QSVFNSVCOCVCOCVFNSU4RiVBRiVFNCVCQiVBNSVFNCVCQiU4RSVFNCVCOCVBNCVFNCVCOCVBQSVFNyVCQiVCNCVFNSVCQSVBNiVFNiU5RCVBNSVFOCVBMSVBMSVFOSU4NyU4RiVFNCVCQiVBMyVFNyVBMCU4MSVFNyU5QSU4NCVFOSU4NyU4RCVFOCVBNiU4MSVFNyVBOCU4QiVFNSVCQSVBNiVFRiVCQyU5QSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDhjem9scTh5NjN6MjViJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlMkMlMjJsaXN0JTIyJTNBJTdCJTIybGlzdElkJTIyJTNBJTIyaHg0ODZwMWg2c2YlMjIlMkMlMjJsZXZlbCUyMiUzQTElMkMlMjJpc09yZGVyZWQlMjIlM0FmYWxzZSUyQyUyMmlzVGFza0xpc3QlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJTQ0lSX0VDSVJfU1JFQyUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyYnVsbGV0JTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFMiU5NyU4QiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCUyQyUyMmhpZGVTeW1ib2wlMjIlM0FmYWxzZSU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCQiVBMyVFNyVBMCU4MSVFNyU5QSU4NCVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFNCVCOCU4RSVFOSVBMiU4NiVFNSU5RiU5RiVFNyU5QiVCOCVFNSU4NSVCMyVFNiU4MCVBNyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDhlajkwNTlkNmNmd2ExdW4lMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJoeDQ4NnAxaDZzZiUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQWZhbHNlJTJDJTIyaXNUYXNrTGlzdCUyMiUzQWZhbHNlJTJDJTIybGlzdFN0eWxlVHlwZSUyMiUzQSUyMlNDSVJfRUNJUl9TUkVDJTIyJTJDJTIyc3ltYm9sU3R5bGUlMjIlM0ElN0IlN0QlMkMlMjJsaXN0U3R5bGUlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJidWxsZXQlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUUyJTk3JThCJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjJsZWZ0JTIyJTdEJTJDJTIyaGlkZVN5bWJvbCUyMiUzQWZhbHNlJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU0JUJCJUEzJUU3JUEwJTgxJUU3JTlBJTg0JUU1JTkwJTg4JUU0JUJEJTlDJUU2JTk2JUI5JUU2JTk1JUIwJUU5JTg3JThGJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoOGVuY2prNTJjaGZoZXhtJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaGVhZGluZy0yJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg5djNqMDdmZHlmYjJhMjF3JTIyJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTIxLjMzMzMzMzMzMzMzMzMzMiUyQyUyMmFmdGVyJTIyJTNBOSUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTQlQkIlQTMlRTclQTAlODElRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTQlQjglOEUlRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclRTclQkIlQjQlRTUlQkElQTYlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJzeiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ2YWx1ZSUyMiUzQTE2JTJDJTIyc3pVbml0JTIyJTNBJTIycHQlMjIlN0QlN0QlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoOXRzNTl6cG9kZHU4M29zbSUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0ExOC42NjY2NjY2NjY2NjY2NjQlMkMlMjJhZnRlciUyMiUzQTglMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU0JUJCJUEzJUU3JUEwJTgxJUU1JUE0JThEJUU2JTlEJTgyJUU1JUJBJUE2JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNCUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDhvNzJwa3E1cGg1dm53N2olMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCQiVBMyVFNyVBMCU4MSVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFOSU4MCU5QSVFNSVCOCVCOCVFNCVCQiVBNSVFNSU5QyU4OCVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFRiVCQyU4OGN5Y2xvbWF0aWMlMjBjb21wbGV4aXR5JUVGJUJDJTg5JUU4JUFFJUExJUU3JUFFJTk3JUVGJUJDJThDJUU2JTg0JThGJUU1JTkxJUIzJUU3JTlEJTgwJUU0JUI4JTgwJUU0JUI4JUFBJUU1JTg3JUJEJUU2JTk1JUIwJUU2JTg4JTk2JUU3JUE4JThCJUU1JUJBJThGJUU0JUI4JUFEJUU1JTk0JUFGJUU0JUI4JTgwJUU4JUI3JUFGJUU1JUJFJTg0JUU3JTlBJTg0JUU2JTk1JUIwJUU5JTg3JThGJUVGJUJDJThDJUU4JUJGJTg3JUU1JUE0JUE3JUU3JTlBJTg0JUU1JTg3JUJEJUU2JTk1JUIwJUU2JTg4JTk2JUU4JUJGJTg3JUU1JUE0JTlBJUU3JTlBJTg0JUU1JTg4JUE0JUU2JTk2JUFEJUU1JTg4JTg2JUU2JTk0JUFGJUU5JTgwJTlBJUU1JUI4JUI4JUU2JTg0JThGJUU1JTkxJUIzJUU3JTlEJTgwJUU0JUJCJUEzJUU3JUEwJTgxJUU2JTlDJTg5JUU4JUJFJTgzJUU5JUFCJTk4JUU3JTlBJTg0JUU1JTlDJTg4JUU1JUE0JThEJUU2JTlEJTgyJUU1JUJBJUE2JUVGJUJDJThDJUU2JUFGJTk0JUU1JUE2JTgyJUU2JTg4JTkxJUU0JUJCJUFDJUU3JTlDJThCJUU0JUI4JTgwJUU2JUFFJUI1JUU0JUI4JThCJUU5JTlEJUEyJUU3JTlBJTg0JUU0JUJFJThCJUU1JUFEJTkwJTNBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyc3ludGF4JTIyJTNBJTIyamF2YSUyMiUyQyUyMnRoZW1lJTIyJTNBJTIyZGVmYXVsdCUyMiUyQyUyMndyYXAlMjIlM0F0cnVlJTJDJTIyaWQlMjIlM0ElMjJxdmRtemclMjIlMkMlMjJ0aXRsZSUyMiUzQSUyMiUyMiUyQyUyMmZvbGQlMjIlM0FmYWxzZSUyQyUyMmhpZGVIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMmNvZGVGb2xkaW5nJTIyJTNBZmFsc2UlMkMlMjJzaG93TGluZU51bWJlciUyMiUzQXRydWUlMkMlMjJmb250JTIyJTNBJTdCJTIyZm9udEZhbWlseSUyMiUzQSUyMmRlZmF1bHRGb250JTIyJTJDJTIybGlnYXR1cmVzJTIyJTNBZmFsc2UlN0QlMkMlMjJlbmFibGVNYWNIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMnV1aWQlMjIlM0ElMjJseGg5MGNwdnFoY2VqN3pqd3AlMjIlMkMlMjJjb2RlJTIyJTNBJTIyJTIwcHVibGljJTIwc3RhdGljJTIwTGlzdCUzQ1N0cmluZyUzRSUyMGdldEN1c3RpbnNQYXJhbU5hbWVMaXN0KFN0cmluZyUyMGRiVHlwZSklMjB0aHJvd3MlMjBSZHNFeGNlcHRpb24lMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoQ3VzdGluc1N1cHBvcnQuaXNNeXNxbChkYlR5cGUpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBuZXclMjBBcnJheUxpc3QlM0MlM0UoQ1VTVElOU19QQVJBTV9OQU1FX1NFVF9NWVNRTCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTIwZWxzZSUyMGlmJTIwKEN1c3RpbnNTdXBwb3J0LmlzTXNzcWwoZGJUeXBlKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwbmV3JTIwQXJyYXlMaXN0JTNDJTNFKENVU1RJTlNfUEFSQU1fTkFNRV9TRVRfTVNTUUwpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyMGVsc2UlMjBpZiUyMChDdXN0aW5zU3VwcG9ydC5pc1Bnc3FsKGRiVHlwZSkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG5ldyUyMEFycmF5TGlzdCUzQyUzRShDVVNUSU5TX1BBUkFNX05BTUVfU0VUX1BHU1FMKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMjBlbHNlJTIwaWYlMjAoQ3VzdGluc1N1cHBvcnQuaXNQcGFzc3FsKGRiVHlwZSkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG5ldyUyMEFycmF5TGlzdCUzQyUzRShDVVNUSU5TX1BBUkFNX05BTUVfU0VUX1BQQVNTUUwpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyMGVsc2UlMjBpZiUyMChDdXN0aW5zU3VwcG9ydC5pc01vbmdvREIoZGJUeXBlKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwbmV3JTIwQXJyYXlMaXN0JTNDJTNFKENVU1RJTlNfUEFSQU1fTkFNRV9TRVRfTU9OR09EQiklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTIwZWxzZSUyMGlmJTIwKEN1c3RpbnNTdXBwb3J0LmlzUmVkaXMoZGJUeXBlKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwbmV3JTIwQXJyYXlMaXN0JTNDJTNFKENVU1RJTlNfUEFSQU1fTkFNRV9TRVRfUkVESVMpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aHJvdyUyMG5ldyUyMFJkc0V4Y2VwdGlvbihFcnJvckNvZGUuSU5WQUxJRF9FTkdJTkUpJTNCJTVDbiU3RCUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMHB1YmxpYyUyMHN0YXRpYyUyMExpc3QlM0NTdHJpbmclM0UlMjBnZXRDdXN0aW5zUGFyYW1OYW1lTGlzdChTdHJpbmclMjBkYlR5cGUpJTIwdGhyb3dzJTIwUmRzRXhjZXB0aW9uJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKEN1c3RpbnNTdXBwb3J0LmlzTXlzcWwoZGJUeXBlKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwbmV3JTIwQXJyYXlMaXN0JTNDJTNFKENVU1RJTlNfUEFSQU1fTkFNRV9TRVRfTVlTUUwpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyMGVsc2UlMjBpZiUyMChDdXN0aW5zU3VwcG9ydC5pc01zc3FsKGRiVHlwZSkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG5ldyUyMEFycmF5TGlzdCUzQyUzRShDVVNUSU5TX1BBUkFNX05BTUVfU0VUX01TU1FMKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMjBlbHNlJTIwaWYlMjAoQ3VzdGluc1N1cHBvcnQuaXNQZ3NxbChkYlR5cGUpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBuZXclMjBBcnJheUxpc3QlM0MlM0UoQ1VTVElOU19QQVJBTV9OQU1FX1NFVF9QR1NRTCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTIwZWxzZSUyMGlmJTIwKEN1c3RpbnNTdXBwb3J0LmlzUHBhc3NxbChkYlR5cGUpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBuZXclMjBBcnJheUxpc3QlM0MlM0UoQ1VTVElOU19QQVJBTV9OQU1FX1NFVF9QUEFTU1FMKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMjBlbHNlJTIwaWYlMjAoQ3VzdGluc1N1cHBvcnQuaXNNb25nb0RCKGRiVHlwZSkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG5ldyUyMEFycmF5TGlzdCUzQyUzRShDVVNUSU5TX1BBUkFNX05BTUVfU0VUX01PTkdPREIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyMGVsc2UlMjBpZiUyMChDdXN0aW5zU3VwcG9ydC5pc1JlZGlzKGRiVHlwZSkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG5ldyUyMEFycmF5TGlzdCUzQyUzRShDVVNUSU5TX1BBUkFNX05BTUVfU0VUX1JFRElTKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhyb3clMjBuZXclMjBSZHNFeGNlcHRpb24oRXJyb3JDb2RlLklOVkFMSURfRU5HSU5FKSUzQiU1Q24lN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg5MDEyYjVydnB6aHBlOTMlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVCRiU5OSVFNiVBRSVCNSVFNCVCQiVBMyVFNyVBMCU4MWlmLWVsc2UlRTYlOUMlODk2JUU0JUI4JUFEJUU4JUI3JUFGJUU1JUJFJTg0JUVGJUJDJThDJUU1JThBJUEwJUU0JUI4JThBJUU2JTlDJTgwJUU1JTkwJThFJUU3JTlBJTg0RXhjZXB0aW9uJUVGJUJDJThDJUU2JTlDJTg5NyVFNiVBRSVCNSVFOCVCNyVBRiVFNSVCRSU4NCVFRiVCQyU4QyVFNSU5QiVBMCVFNiVBRCVBNCVFNSU5QyU4OCVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFNCVCOCVCQTclRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg4c29rMWl0Y2xzNzVwYjVmJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg4bmdpZTI3bmNkdDIwaGI0JTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoODZkbTN1MDF6ZWpoaGg2cCUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTE4LjY2NjY2NjY2NjY2NjY2NCUyQyUyMmFmdGVyJTIyJTNBOCUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJzeiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ2YWx1ZSUyMiUzQTE0JTJDJTIyc3pVbml0JTIyJTNBJTIycHQlMjIlN0QlN0QlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoOTc4bHc4b2djMHdnMWdtbiUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU5JUEyJTg2JUU1JTlGJTlGJUU3JTlCJUI4JUU1JTg1JUIzJUU2JTgwJUE3JUU5JTgwJTlBJUU1JUI4JUI4JUU0JUI4JThFJUU2JTg5JTgwJUU5JTlDJTgwJUU4JUE3JUEzJUU1JTg2JUIzJUU5JTk3JUFFJUU5JUEyJTk4JUU1JTlGJTlGJUU3JTlBJTg0JUU5JTg3JThEJUU4JUE2JTgxJUU3JUE4JThCJUU1JUJBJUE2JUU2JTlDJTg5JUU1JTg1JUIzJUVGJUJDJThDJUU4JUJGJTk5JUU5JTgzJUE4JUU1JTg4JTg2JUU0JUJCJUEzJUU3JUEwJTgxJUU0JUI4JThFJUU3JUIzJUJCJUU3JUJCJTlGJUU2JTlDJThEJUU1JThBJUExJUU3JTk0JUE4JUU2JTg4JUI3JUU3JTlBJTg0JUU3JTlCJUFFJUU2JUEwJTg3JUU3JTlCJUI4JUU1JTg1JUIzJUU2JTgwJUE3JUU4JUI2JThBJUU4JUJGJTkxJUVGJUJDJThDJUU1JTg4JTk5JUU5JUEyJTg2JUU1JTlGJTlGJUU3JTlCJUI4JUU1JTg1JUIzJUU2JTgwJUE3JUU4JUI2JThBJUU5JUFCJTk4JUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoOWJyczZpdjNuY3h4aTdyaiUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU5JUFCJTk4JUU5JUEyJTg2JUU1JTlGJTlGJUU3JTlCJUI4JUU1JTg1JUIzJUU2JTgwJUE3JUU1JUI5JUI2JUU0JUI4JThEJUU0JUI4JTgwJUU1JUFFJTlBJUU0JUJCJUEzJUU4JUExJUE4JUU1JUFEJTk4JUU1JTlDJUE4JUU4JUJFJTgzJUU5JUFCJTk4JUU3JTlBJTg0JUU1JUE0JThEJUU2JTlEJTgyJUU1JUJBJUE2JUUzJTgwJTgyJUU2JUFGJTk0JUU1JUE2JTgyJUU0JUI4JThCJUU5JTlEJUEyJUU3JTlBJTg0JUU0JUJFJThCJUU1JUFEJTkwJUVGJUJDJThDJUU0JUI4JTgwJUU0JUI4JUFBJUU3JTk0JUE4JUU0JUJBJThFJUU2JUEwJUI5JUU2JThEJUFFRUNTJUU1JUFEJTk4JUU1JTgyJUE4JUU3JUIxJUJCJUU1JTlFJThCJUU4JUFFJUExJUU3JUFFJTk3SU9QUyVFNyU5QSU4NCVFNSU4NyVCRCVFNiU5NSVCMCVFRiVCQyU5QSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmphdmElMjIlMkMlMjJ0aGVtZSUyMiUzQSUyMmRlZmF1bHQlMjIlMkMlMjJ3cmFwJTIyJTNBdHJ1ZSUyQyUyMmlkJTIyJTNBJTIycTM4Z2d3JTIyJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJmb2xkJTIyJTNBZmFsc2UlMkMlMjJoaWRlSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJjb2RlRm9sZGluZyUyMiUzQWZhbHNlJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyZW5hYmxlTWFjSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJ1dWlkJTIyJTNBJTIybHhoOXBwZGliaXJ4OGNmaWJndiUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwcml2YXRlJTIwaW50JTIwZ2V0SU9QU0Jhc2VPblN0b3JhZ2VJbmZvKEludGVnZXIlMjBkYkluc3RhbmNlU3RvcmFnZUluR0IlMkMlMjBTdHJpbmclMjBkYXRhRGlza0NhdGVnb3J5KSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCUyMElPUFNfQkFTRSUyMCUzRCUyMDE4MDAlM0IlNUNuJTIwJTIwJTIwJTIwJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwU3RyaW5nJTIwQ0xPVURfRVNTRF9QTDAlMjAlM0QlMjAlNUMlMjJjbG91ZF9lc3NkX3BsMCU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMFN0cmluZyUyMENMT1VEX0VTU0QlMjAlM0QlMjAlNUMlMjJjbG91ZF9lc3NkX3BsMSU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMFN0cmluZyUyMENMT1VEX0VTU0RfUEwyJTIwJTNEJTIwJTVDJTIyY2xvdWRfZXNzZF9wbDIlNUMlMjIlM0IlNUNuJTIwJTIwJTIwJTIwZmluYWwlMjBTdHJpbmclMjBDTE9VRF9FU1NEX1BMMyUyMCUzRCUyMCU1QyUyMmNsb3VkX2Vzc2RfcGwzJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwU3RyaW5nJTIwQ0xPVURfRUZGSUNJRU5DWSUyMCUzRCUyMCU1QyUyMmNsb3VkX2VmZmljaWVuY3klNUMlMjIlM0IlNUNuJTIwJTIwJTIwJTIwJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwaW50JTVCJTVEJTIwQ0xPVURfRVNTRF9QTDBfQ09ORklHJTIwJTNEJTIwJTdCMTIlMkMlMjAxMDAwMCU3RCUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCU1QiU1RCUyMENMT1VEX0VTU0RfQ09ORklHJTIwJTNEJTIwJTdCNTAlMkMlMjA1MDAwMCU3RCUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCU1QiU1RCUyMENMT1VEX0VTU0RfUEwyX0NPTkZJRyUyMCUzRCUyMCU3QjUwJTJDJTIwMTAwMDAwJTdEJTNCJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwaW50JTVCJTVEJTIwQ0xPVURfRVNTRF9QTDNfQ09ORklHJTIwJTNEJTIwJTdCNTAlMkMlMjAxMDAwMDAwJTdEJTNCJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwaW50JTVCJTVEJTIwQ0xPVURfRUZGSUNJRU5DWV9DT05GSUclMjAlM0QlMjAlN0I4JTJDJTIwNTAwMCU3RCUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCU1QiU1RCUyMERFRkFVTFRfSU9QU19DT05GSUclMjAlM0QlMjAlN0IzMCUyQyUyMDI1MDAwJTdEJTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTUlODglOUIlRTUlQkIlQkFJT1BTJUU5JTg1JThEJUU3JUJEJUFFJUU2JTk4JUEwJUU1JUIwJTg0JTVDbiUyMCUyMCUyMCUyME1hcCUzQ1N0cmluZyUyQyUyMGludCU1QiU1RCUzRSUyMGlvcHNDb25maWclMjAlM0QlMjBuZXclMjBIYXNoTWFwJTNDJTNFKCklM0IlNUNuJTIwJTIwJTIwJTIwaW9wc0NvbmZpZy5wdXQoQ0xPVURfRVNTRF9QTDAlMkMlMjBDTE9VRF9FU1NEX1BMMF9DT05GSUcpJTNCJTVDbiUyMCUyMCUyMCUyMGlvcHNDb25maWcucHV0KENMT1VEX0VTU0QlMkMlMjBDTE9VRF9FU1NEX0NPTkZJRyklM0IlNUNuJTIwJTIwJTIwJTIwaW9wc0NvbmZpZy5wdXQoQ0xPVURfRVNTRF9QTDIlMkMlMjBDTE9VRF9FU1NEX1BMMl9DT05GSUcpJTNCJTVDbiUyMCUyMCUyMCUyMGlvcHNDb25maWcucHV0KENMT1VEX0VTU0RfUEwzJTJDJTIwQ0xPVURfRVNTRF9QTDNfQ09ORklHKSUzQiU1Q24lMjAlMjAlMjAlMjBpb3BzQ29uZmlnLnB1dChDTE9VRF9FRkZJQ0lFTkNZJTJDJTIwQ0xPVURfRUZGSUNJRU5DWV9DT05GSUcpJTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTYlQTAlQjklRTYlOEQlQUUlRTYlOTUlQjAlRTYlOEQlQUUlRTclOUIlOTglRTclQjElQkIlRTUlODglQUIlRTglOEUlQjclRTUlOEYlOTYlRTklODUlOEQlRTclQkQlQUUlNUNuJTIwJTIwJTIwJTIwaW50JTVCJTVEJTIwY29uZmlnJTIwJTNEJTIwaW9wc0NvbmZpZy5nZXRPckRlZmF1bHQoZGF0YURpc2tDYXRlZ29yeS50b0xvd2VyQ2FzZSgpJTJDJTIwREVGQVVMVF9JT1BTX0NPTkZJRyklM0IlNUNuJTIwJTIwJTIwJTIwaW50JTIwc2NhbGVGYWN0b3IlMjAlM0QlMjBjb25maWclNUIwJTVEJTNCJTVDbiUyMCUyMCUyMCUyMGludCUyMG1heExpbWl0JTIwJTNEJTIwY29uZmlnJTVCMSU1RCUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwaW50JTIwY2FsY3VsYXRlZElPUFMlMjAlM0QlMjBNYXRoLm1pbihJT1BTX0JBU0UlMjAlMkIlMjBzY2FsZUZhY3RvciUyMColMjBkYkluc3RhbmNlU3RvcmFnZUluR0IlMkMlMjBtYXhMaW1pdCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMHJldHVybiUyMGNhbGN1bGF0ZWRJT1BTJTNCJTVDbiU1Q24lN0QlMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJwcml2YXRlJTIwaW50JTIwZ2V0SU9QU0Jhc2VPblN0b3JhZ2VJbmZvKEludGVnZXIlMjBkYkluc3RhbmNlU3RvcmFnZUluR0IlMkMlMjBTdHJpbmclMjBkYXRhRGlza0NhdGVnb3J5KSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCUyMElPUFNfQkFTRSUyMCUzRCUyMDE4MDAlM0IlNUNuJTIwJTIwJTIwJTIwJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwU3RyaW5nJTIwQ0xPVURfRVNTRF9QTDAlMjAlM0QlMjAlNUMlMjJjbG91ZF9lc3NkX3BsMCU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMFN0cmluZyUyMENMT1VEX0VTU0QlMjAlM0QlMjAlNUMlMjJjbG91ZF9lc3NkX3BsMSU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMFN0cmluZyUyMENMT1VEX0VTU0RfUEwyJTIwJTNEJTIwJTVDJTIyY2xvdWRfZXNzZF9wbDIlNUMlMjIlM0IlNUNuJTIwJTIwJTIwJTIwZmluYWwlMjBTdHJpbmclMjBDTE9VRF9FU1NEX1BMMyUyMCUzRCUyMCU1QyUyMmNsb3VkX2Vzc2RfcGwzJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwU3RyaW5nJTIwQ0xPVURfRUZGSUNJRU5DWSUyMCUzRCUyMCU1QyUyMmNsb3VkX2VmZmljaWVuY3klNUMlMjIlM0IlNUNuJTIwJTIwJTIwJTIwJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwaW50JTVCJTVEJTIwQ0xPVURfRVNTRF9QTDBfQ09ORklHJTIwJTNEJTIwJTdCMTIlMkMlMjAxMDAwMCU3RCUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCU1QiU1RCUyMENMT1VEX0VTU0RfQ09ORklHJTIwJTNEJTIwJTdCNTAlMkMlMjA1MDAwMCU3RCUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCU1QiU1RCUyMENMT1VEX0VTU0RfUEwyX0NPTkZJRyUyMCUzRCUyMCU3QjUwJTJDJTIwMTAwMDAwJTdEJTNCJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwaW50JTVCJTVEJTIwQ0xPVURfRVNTRF9QTDNfQ09ORklHJTIwJTNEJTIwJTdCNTAlMkMlMjAxMDAwMDAwJTdEJTNCJTVDbiUyMCUyMCUyMCUyMGZpbmFsJTIwaW50JTVCJTVEJTIwQ0xPVURfRUZGSUNJRU5DWV9DT05GSUclMjAlM0QlMjAlN0I4JTJDJTIwNTAwMCU3RCUzQiU1Q24lMjAlMjAlMjAlMjBmaW5hbCUyMGludCU1QiU1RCUyMERFRkFVTFRfSU9QU19DT05GSUclMjAlM0QlMjAlN0IzMCUyQyUyMDI1MDAwJTdEJTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTUlODglOUIlRTUlQkIlQkFJT1BTJUU5JTg1JThEJUU3JUJEJUFFJUU2JTk4JUEwJUU1JUIwJTg0JTVDbiUyMCUyMCUyMCUyME1hcCUzQ1N0cmluZyUyQyUyMGludCU1QiU1RCUzRSUyMGlvcHNDb25maWclMjAlM0QlMjBuZXclMjBIYXNoTWFwJTNDJTNFKCklM0IlNUNuJTIwJTIwJTIwJTIwaW9wc0NvbmZpZy5wdXQoQ0xPVURfRVNTRF9QTDAlMkMlMjBDTE9VRF9FU1NEX1BMMF9DT05GSUcpJTNCJTVDbiUyMCUyMCUyMCUyMGlvcHNDb25maWcucHV0KENMT1VEX0VTU0QlMkMlMjBDTE9VRF9FU1NEX0NPTkZJRyklM0IlNUNuJTIwJTIwJTIwJTIwaW9wc0NvbmZpZy5wdXQoQ0xPVURfRVNTRF9QTDIlMkMlMjBDTE9VRF9FU1NEX1BMMl9DT05GSUcpJTNCJTVDbiUyMCUyMCUyMCUyMGlvcHNDb25maWcucHV0KENMT1VEX0VTU0RfUEwzJTJDJTIwQ0xPVURfRVNTRF9QTDNfQ09ORklHKSUzQiU1Q24lMjAlMjAlMjAlMjBpb3BzQ29uZmlnLnB1dChDTE9VRF9FRkZJQ0lFTkNZJTJDJTIwQ0xPVURfRUZGSUNJRU5DWV9DT05GSUcpJTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTYlQTAlQjklRTYlOEQlQUUlRTYlOTUlQjAlRTYlOEQlQUUlRTclOUIlOTglRTclQjElQkIlRTUlODglQUIlRTglOEUlQjclRTUlOEYlOTYlRTklODUlOEQlRTclQkQlQUUlNUNuJTIwJTIwJTIwJTIwaW50JTVCJTVEJTIwY29uZmlnJTIwJTNEJTIwaW9wc0NvbmZpZy5nZXRPckRlZmF1bHQoZGF0YURpc2tDYXRlZ29yeS50b0xvd2VyQ2FzZSgpJTJDJTIwREVGQVVMVF9JT1BTX0NPTkZJRyklM0IlNUNuJTIwJTIwJTIwJTIwaW50JTIwc2NhbGVGYWN0b3IlMjAlM0QlMjBjb25maWclNUIwJTVEJTNCJTVDbiUyMCUyMCUyMCUyMGludCUyMG1heExpbWl0JTIwJTNEJTIwY29uZmlnJTVCMSU1RCUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwaW50JTIwY2FsY3VsYXRlZElPUFMlMjAlM0QlMjBNYXRoLm1pbihJT1BTX0JBU0UlMjAlMkIlMjBzY2FsZUZhY3RvciUyMColMjBkYkluc3RhbmNlU3RvcmFnZUluR0IlMkMlMjBtYXhMaW1pdCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMHJldHVybiUyMGNhbGN1bGF0ZWRJT1BTJTNCJTVDbiU1Q24lN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGg5cGxsaGdneWk2N25rOTZxJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlOEYlQUYlRTQlQkIlQTUlRTclOUMlOEIlRTUlODglQjAlRTglQUYlQTUlRTUlODclQkQlRTYlOTUlQjAlRTYlQjIlQTElRTYlOUMlODklRTQlQkIlQkIlRTQlQkQlOTUlRTQlQkIlQTMlRTclQTAlODElRTUlODglODYlRTYlOTQlQUYlRTglQjclQUYlRTUlQkUlODQlRUYlQkMlOEMlRTYlODklODAlRTQlQkIlQTUlRTUlOUMlODglRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTQlQjglQkExJUVGJUJDJThDJUU0JUJEJTg2JUU4JUFGJUE1JUU0JUJCJUEzJUU3JUEwJTgxJUU1JTlDJUE4JUU2JTk1JUIwJUU2JThEJUFFJUU1JUJBJTkzJUU3JUFFJUExJUU2JThFJUE3JUU0JUI4JUFEJUVGJUJDJThDJUU0JUJDJTlBJUU2JUEwJUI5JUU2JThEJUFFJUU3JTk0JUE4JUU2JTg4JUI3JUU3JTlBJTg0JUU1JUFEJTk4JUU1JTgyJUE4JUU3JUIxJUJCJUU1JTlFJThCJUU0JUI4JThFJUU1JUE0JUE3JUU1JUIwJThGJUU4JUFFJUExJUU3JUFFJTk3SU9QUyVFRiVCQyU4QyVFNSU5QyVBOCVFNiU4RSVBNyVFNSU4OCVCNiVFNSU4RiVCMCVFNiU4OCU5Nk9wZW5BUEklRTclOUIlQjQlRTYlOEUlQTUlRTUlOTElODglRTclOEUlQjAlRTclQkIlOTklMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOUMlODAlRTclQkIlODglRTclOTQlQTglRTYlODglQjclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRUYlQkMlOEMlRTUlOUIlQTAlRTYlQUQlQTQlRTglQUYlQTUlRTUlODclQkQlRTYlOTUlQjAlRTYlOEIlQTUlRTYlOUMlODklRTYlOUUlODElRTklQUIlOTglRTclOUElODQlRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclRUYlQkMlOEMlRTQlQkQlODYlRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTQlQkIlODUlRTQlQjglQkExJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoOXV3YXF5ZTlvZjNtczRtbyUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTIlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDl2dXk1OG9iZWJ5MzY5MyUyMiUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0EyMS4zMzMzMzMzMzMzMzMzMzIlMkMlMjJhZnRlciUyMiUzQTklMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JTkwJTg4JUU0JUJEJTlDJUU2JTk2JUI5JUU2JTk1JUIwJUU5JTg3JThGJUU3JUJCJUI0JUU1JUJBJUE2JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aDl3ZnUydTJ4eXk2YXoycXAlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVBRiVBNSVFNyVCQiVCNCVFNSVCQSVBNiVFNSU4RiU5NiVFNSU4NiVCMyVFNCVCQSU4RSVFNyVCMSVCQiVFNiU4OCU5NiVFNiU5NiVCOSVFNiVCMyU5NSVFNyU5QSU4NCVFNCVCOCVBRCVFNiVCNiU4OSVFNSU4RiU4QSVFNyU5QSU4NCVFNSU5MCU4OCVFNCVCRCU5QyVFNiU5NiVCOSVFNiU5NSVCMCVFOSU4NyU4RiVFMyU4MCU4MiVFOCVCRiU5OSVFNCVCQSU5QiVFNSU5MCU4OCVFNCVCRCU5QyVFNiU5NiVCOSVFNSU4RiVBRiVFNCVCQiVBNSVFNiU5OCVBRiUzQSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGEwOGJ5djBib2tiZXAzaWIlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJzYm9jeXEyb3RpJTIyJTJDJTIybGV2ZWwlMjIlM0ExJTJDJTIyaXNPcmRlcmVkJTIyJTNBZmFsc2UlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJsaXN0U3R5bGVUeXBlJTIyJTNBJTIyU0NJUl9FQ0lSX1NSRUMlMjIlMkMlMjJzeW1ib2xTdHlsZSUyMiUzQSU3QiU3RCUyQyUyMmxpc3RTdHlsZSUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmJ1bGxldCUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTIlOTclOEIlMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlODUlQjYlRTQlQkIlOTYlRTclOUElODQlRTclQjElQkIlRUYlQkMlOEMlRTYlODglOTYlRTUlQTQlOTYlRTklODMlQTglRTclQjElQkIlRTUlQkElOTMlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhhMHVoYzFmNnA4cTdoZ2x6JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlMkMlMjJsaXN0JTIyJTNBJTdCJTIybGlzdElkJTIyJTNBJTIyc2JvY3lxMm90aSUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQWZhbHNlJTJDJTIyaXNUYXNrTGlzdCUyMiUzQWZhbHNlJTJDJTIybGlzdFN0eWxlVHlwZSUyMiUzQSUyMlNDSVJfRUNJUl9TUkVDJTIyJTJDJTIyc3ltYm9sU3R5bGUlMjIlM0ElN0IlN0QlMkMlMjJsaXN0U3R5bGUlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJidWxsZXQlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUUyJTk3JThCJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjJsZWZ0JTIyJTdEJTJDJTIyaGlkZVN5bWJvbCUyMiUzQWZhbHNlJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JUFGJUI5JUU0JUJBJThFJUU1JUE0JTk2JUU5JTgzJUE4QVBJJUU3JTlBJTg0JUU4JUFFJUJGJUU5JTk3JUFFJUVGJUJDJTg4JUU0JUJFJThCJUU1JUE2JTgyJUU5JTk4JUJGJUU5JTg3JThDJUU0JUJBJTkxJUU1JTg1JUFDJUU1JUJDJTgwJUU3JTlBJTg0T3BlbkFQSSVFRiVCQyU4QyVFNSU4NSVCNiVFNCVCQiU5NiVFNSU4NiU4NSVFOSU4MyVBOCVFNSVCRSVBRSVFNiU5QyU4RCVFNSU4QSVBMSVFNyU5QSU4NEFQSSVFNyVBRCU4OSVFRiVCQyU4OSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGExYzhpYWRweDNnN3VieHMlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJzYm9jeXEyb3RpJTIyJTJDJTIybGV2ZWwlMjIlM0ExJTJDJTIyaXNPcmRlcmVkJTIyJTNBZmFsc2UlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJsaXN0U3R5bGVUeXBlJTIyJTNBJTIyU0NJUl9FQ0lSX1NSRUMlMjIlMkMlMjJzeW1ib2xTdHlsZSUyMiUzQSU3QiU3RCUyQyUyMmxpc3RTdHlsZSUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmJ1bGxldCUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTIlOTclOEIlMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlQUYlQjklRTQlQkElOEUlRTYlOTUlQjAlRTYlOEQlQUUlRTUlQkElOTMlRTclOUElODQlRTglQUUlQkYlRTklOTclQUUlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhhNDViaDM2OGUydnc0NHhwJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlMkMlMjJsaXN0JTIyJTNBJTdCJTIybGlzdElkJTIyJTNBJTIyc2JvY3lxMm90aSUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQWZhbHNlJTJDJTIyaXNUYXNrTGlzdCUyMiUzQWZhbHNlJTJDJTIybGlzdFN0eWxlVHlwZSUyMiUzQSUyMlNDSVJfRUNJUl9TUkVDJTIyJTJDJTIyc3ltYm9sU3R5bGUlMjIlM0ElN0IlN0QlMkMlMjJsaXN0U3R5bGUlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJidWxsZXQlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUUyJTk3JThCJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjJsZWZ0JTIyJTdEJTJDJTIyaGlkZVN5bWJvbCUyMiUzQWZhbHNlJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JTk2JTg3JUU0JUJCJUI2JUU3JUIzJUJCJUU3JUJCJTlGJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYTQ3dnc0YWhmaTV3enF1aiUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMnNib2N5cTJvdGklMjIlMkMlMjJsZXZlbCUyMiUzQTElMkMlMjJpc09yZGVyZWQlMjIlM0FmYWxzZSUyQyUyMmlzVGFza0xpc3QlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJTQ0lSX0VDSVJfU1JFQyUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyYnVsbGV0JTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFMiU5NyU4QiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCUyQyUyMmhpZGVTeW1ib2wlMjIlM0FmYWxzZSU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNyVBRCU4OSVFNyVBRCU4OS4uLiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGE0anIxcndtZGgwbmY0aGUlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGE0bHBwbnh2ZjNhN2szOCUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU0JUJCJUEzJUU3JUEwJTgxJUU0JUI4JUFEJUU1JThDJTg1JUU1JTkwJUFCJUU1JUE0JUE3JUU5JTg3JThGJUU3JTlBJTg0JUU1JTkwJTg4JUU0JUJEJTlDJUU2JTk2JUI5JUU5JTgwJTlBJUU1JUI4JUI4JUU5JTlBJUJFJUU0JUJCJUE1JUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJThDJUU0JUJFJThCJUU1JUE2JTgyJUU0JUI4JThCJUU5JTlEJUEyJUU0JUI4JTgwJUU0JUI4JUFBJUU0JUJFJThCJUU1JUFEJTkwJTNBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyc3ludGF4JTIyJTNBJTIyamF2YSUyMiUyQyUyMnRoZW1lJTIyJTNBJTIyZGVmYXVsdCUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwdWJsaWMlMjB2b2lkJTIwcmV2aWV3KFN0cmluZyUyMGFwcGxpY2F0aW9uSWQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDEuJTIwJUU0JUJCJThFJUU1JUE0JTk2JUU5JTgzJUE4QVBJJUU4JThFJUI3JUU1JThGJTk2JUU3JTk0JUE4JUU2JTg4JUI3JUU0JUJGJUExJUU2JTgxJUFGJTVDbiUyMCUyMCUyMCUyMFVzZXJJbmZvJTIwdXNlckluZm8lMjAlM0QlMjBleHRlcm5hbEFQSVNlcnZpY2UuZ2V0VXNlckluZm8oYXBwbGljYXRpb25JZCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDIuJTIwJUU0JUJCJThFJUU2JTk1JUIwJUU2JThEJUFFJUU1JUJBJTkzJUU4JThFJUI3JUU1JThGJTk2JUU4JUFFJUEyJUU1JThEJTk1JUU0JUJGJUExJUU2JTgxJUFGJTVDbiUyMCUyMCUyMCUyME9yZGVySW5mbyUyMG9yZGVySW5mbyUyMCUzRCUyMGRhdGFiYXNlU2VydmljZS5nZXRPcmRlckluZm8oYXBwbGljYXRpb25JZCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDMuJTIwJUU0JUJEJUJGJUU3JTk0JUE4JUU4JUE3JTg0JUU1JTg4JTk5JUU1JUJDJTk1JUU2JTkzJThFJUU4JUJGJTlCJUU4JUExJThDJUU5JUEzJThFJUU2JThFJUE3JUU1JUFFJUExJUU2JUEwJUI4JTVDbiUyMCUyMCUyMCUyMFJldmlld1Jlc3VsdCUyMHJldmlld1Jlc3VsdCUyMCUzRCUyMHJ1bGVFbmdpbmVTZXJ2aWNlLnJldmlldyh1c2VySW5mbyUyQyUyMG9yZGVySW5mbyklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDQuJTIwJUU2JUEwJUI5JUU2JThEJUFFJUU1JUFFJUExJUU2JUEwJUI4JUU3JUJCJTkzJUU2JTlFJTlDJUU1JThGJTkxJUU5JTgwJTgxJUU5JTgwJTlBJUU3JTlGJUE1JTVDbiUyMCUyMCUyMCUyMGlmJTIwKHJldmlld1Jlc3VsdC5pc0FwcHJvdmVkKCkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG5vdGlmaWNhdGlvblNlcnZpY2Uuc2VuZEFwcHJvdmFsTm90aWZpY2F0aW9uKGFwcGxpY2F0aW9uSWQpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCUyMGVsc2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kUmVqZWN0aW9uTm90aWZpY2F0aW9uKGFwcGxpY2F0aW9uSWQlMkMlMjByZXZpZXdSZXN1bHQuZ2V0UmVqZWN0aW9uUmVhc29uKCkpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lN0QlNUNuJTIyJTJDJTIyY29kZUZvbGRpbmclMjIlM0FmYWxzZSUyQyUyMmVuYWJsZU1hY0hlYWRlciUyMiUzQWZhbHNlJTJDJTIyZm9sZCUyMiUzQWZhbHNlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyaGlkZUhlYWRlciUyMiUzQWZhbHNlJTJDJTIyaWQlMjIlM0ElMjJweXdnbXklMjIlMkMlMjJzaG93TGluZU51bWJlciUyMiUzQXRydWUlMkMlMjJ0aXRsZSUyMiUzQSUyMiUyMiUyQyUyMnV1aWQlMjIlM0ElMjJseGhhaGFxemFobmM2YzJoOWxuJTIyJTJDJTIyd3JhcCUyMiUzQXRydWUlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJwdWJsaWMlMjB2b2lkJTIwcmV2aWV3KFN0cmluZyUyMGFwcGxpY2F0aW9uSWQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDEuJTIwJUU0JUJCJThFJUU1JUE0JTk2JUU5JTgzJUE4QVBJJUU4JThFJUI3JUU1JThGJTk2JUU3JTk0JUE4JUU2JTg4JUI3JUU0JUJGJUExJUU2JTgxJUFGJTVDbiUyMCUyMCUyMCUyMFVzZXJJbmZvJTIwdXNlckluZm8lMjAlM0QlMjBleHRlcm5hbEFQSVNlcnZpY2UuZ2V0VXNlckluZm8oYXBwbGljYXRpb25JZCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDIuJTIwJUU0JUJCJThFJUU2JTk1JUIwJUU2JThEJUFFJUU1JUJBJTkzJUU4JThFJUI3JUU1JThGJTk2JUU4JUFFJUEyJUU1JThEJTk1JUU0JUJGJUExJUU2JTgxJUFGJTVDbiUyMCUyMCUyMCUyME9yZGVySW5mbyUyMG9yZGVySW5mbyUyMCUzRCUyMGRhdGFiYXNlU2VydmljZS5nZXRPcmRlckluZm8oYXBwbGljYXRpb25JZCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDMuJTIwJUU0JUJEJUJGJUU3JTk0JUE4JUU4JUE3JTg0JUU1JTg4JTk5JUU1JUJDJTk1JUU2JTkzJThFJUU4JUJGJTlCJUU4JUExJThDJUU5JUEzJThFJUU2JThFJUE3JUU1JUFFJUExJUU2JUEwJUI4JTVDbiUyMCUyMCUyMCUyMFJldmlld1Jlc3VsdCUyMHJldmlld1Jlc3VsdCUyMCUzRCUyMHJ1bGVFbmdpbmVTZXJ2aWNlLnJldmlldyh1c2VySW5mbyUyQyUyMG9yZGVySW5mbyklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyRiUyRiUyMDQuJTIwJUU2JUEwJUI5JUU2JThEJUFFJUU1JUFFJUExJUU2JUEwJUI4JUU3JUJCJTkzJUU2JTlFJTlDJUU1JThGJTkxJUU5JTgwJTgxJUU5JTgwJTlBJUU3JTlGJUE1JTVDbiUyMCUyMCUyMCUyMGlmJTIwKHJldmlld1Jlc3VsdC5pc0FwcHJvdmVkKCkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG5vdGlmaWNhdGlvblNlcnZpY2Uuc2VuZEFwcHJvdmFsTm90aWZpY2F0aW9uKGFwcGxpY2F0aW9uSWQpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCUyMGVsc2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kUmVqZWN0aW9uTm90aWZpY2F0aW9uKGFwcGxpY2F0aW9uSWQlMkMlMjByZXZpZXdSZXN1bHQuZ2V0UmVqZWN0aW9uUmVhc29uKCkpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lN0QlNUNuJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYWg4aHRsczVkemMzc2tjYSUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYTI3dG40Y2Ryc3V6cWJyYyUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyUmV2aWV3JUU1JTg3JUJEJUU2JTk1JUIwJUU3JTk0JUE4JUU0JUJBJThFJUU4JUJGJTlCJUU4JUExJThDJUU5JUEzJThFJUU2JThFJUE3JUU0JUI4JTlBJUU1JThBJUExJUU3JTlBJTg0cmV2aWV3JUVGJUJDJThDJUU1JThGJUFGJUU0JUJCJUE1JUU3JTlDJThCJUU1JTg4JUIwJUU2JUFGJThGJUU0JUI4JUFBJUU2JUFEJUE1JUU5JUFBJUE0JUU5JTgzJUJEJUU2JTlDJTg5JUU1JUE0JTk2JUU5JTgzJUE4JUU0JUJFJTlEJUU4JUI1JTk2JUVGJUJDJThDJUU1JTg4JTg2JUU1JTg4JUFCJUU0JUI4JUJBJUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYWlxbjV4dml4cXBhNWplaCUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMmtqajdsbW1tdXNvJTIyJTJDJTIybGV2ZWwlMjIlM0ExJTJDJTIyaXNPcmRlcmVkJTIyJTNBZmFsc2UlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJsaXN0U3R5bGVUeXBlJTIyJTNBJTIyU0NJUl9FQ0lSX1NSRUMlMjIlMkMlMjJzeW1ib2xTdHlsZSUyMiUzQSU3QiU3RCUyQyUyMmxpc3RTdHlsZSUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmJ1bGxldCUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTIlOTclOEIlMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglOEUlQjclRTUlOEYlOTYlRTclOTQlQTglRTYlODglQjclRTQlQkYlQTElRTYlODElQUYlRTYlOUQlQTUlRTglODclQUElRTQlQkElOEUlRTUlQTQlOTYlRTklODMlQThBUEklMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhhajRmdmthaDY5bGZ0NW9wJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlMkMlMjJsaXN0JTIyJTNBJTdCJTIybGlzdElkJTIyJTNBJTIya2pqN2xtbW11c28lMjIlMkMlMjJsZXZlbCUyMiUzQTElMkMlMjJpc09yZGVyZWQlMjIlM0FmYWxzZSUyQyUyMmlzVGFza0xpc3QlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJTQ0lSX0VDSVJfU1JFQyUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyYnVsbGV0JTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFMiU5NyU4QiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCUyQyUyMmhpZGVTeW1ib2wlMjIlM0FmYWxzZSU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCU4RSVCNyVFNSU4RiU5NiVFOCVBRSVBMiVFNSU4RCU5NSVFNCVCRiVBMSVFNiU4MSVBRiVFNCVCRSU5RCVFOCVCNSU5NiVFNSU4NiU4NSVFOSU4MyVBOCVFNiU5NSVCMCVFNiU4RCVBRSVFNSVCQSU5MyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGFrZzlqbzI2N3NuMnNrOWYlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJramo3bG1tbXVzbyUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQWZhbHNlJTJDJTIyaXNUYXNrTGlzdCUyMiUzQWZhbHNlJTJDJTIybGlzdFN0eWxlVHlwZSUyMiUzQSUyMlNDSVJfRUNJUl9TUkVDJTIyJTJDJTIyc3ltYm9sU3R5bGUlMjIlM0ElN0IlN0QlMkMlMjJsaXN0U3R5bGUlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJidWxsZXQlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUUyJTk3JThCJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjJsZWZ0JTIyJTdEJTJDJTIyaGlkZVN5bWJvbCUyMiUzQWZhbHNlJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU4JThFJUI3JUU1JThGJTk2JUU5JUEzJThFJUU2JThFJUE3JUU1JUFFJUExJUU2JUEwJUI4JUU0JUJFJTlEJUU4JUI1JTk2JUU0JUJBJThFJUU1JTg2JTg1JUU5JTgzJUE4JUU2JTlDJThEJUU1JThBJUExJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYWtydTE1MTloNGhjYXo0ZiUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMmtqajdsbW1tdXNvJTIyJTJDJTIybGV2ZWwlMjIlM0ExJTJDJTIyaXNPcmRlcmVkJTIyJTNBZmFsc2UlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJsaXN0U3R5bGVUeXBlJTIyJTNBJTIyU0NJUl9FQ0lSX1NSRUMlMjIlMkMlMjJzeW1ib2xTdHlsZSUyMiUzQSU3QiU3RCUyQyUyMmxpc3RTdHlsZSUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmJ1bGxldCUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTIlOTclOEIlMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlOEYlOTElRTklODAlODElRTUlQUUlQTElRTYlQTAlQjglRTclQkIlOTMlRTYlOUUlOUMlRTQlQkUlOUQlRTglQjUlOTYlRTklODAlOUElRTclOUYlQTUlRTYlOUMlOEQlRTUlOEElQTElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNqMDJ1NW01ZnRmbWdvNTIlMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNqMDQxbHdsanUwa2txOXVqJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlOUIlQTAlRTYlQUQlQTQlRTUlQUYlQjklRTQlQkElOEUlRTglQUYlQTUlRTUlODclQkQlRTYlOTUlQjAlRTclOUElODQlRTYlQjUlOEIlRTglQUYlOTUlRUYlQkMlOEMlRTklOUMlODAlRTglQTYlODElRTglQUYlQTYlRTclQkIlODYlRTclOUElODRNb2NrJUU4JUJGJTk5JUU1JTlCJTlCJUU3JUIxJUJCJUU2JTlDJThEJUU1JThBJUExJUU1JUFGJUI5JUU1JUJBJTk0JUU1JTg3JUJEJUU2JTk1JUIwJUU3JTlBJTg0JUU4JUExJThDJUU0JUI4JUJBJUU3JTg5JUI5JUU1JUJFJTgxJUVGJUJDJThDJUU2JTlDJTgwJUU3JUFFJTgwJUU1JThEJTk1JUU3JTlBJTg0JUU4JUExJThDJUU0JUI4JUJBJUU3JTg5JUI5JUU1JUJFJTgxJUU1JUE2JTgyJUU0JUI4JThCJUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyc3ludGF4JTIyJTNBJTIyYyUyMyUyMiUyQyUyMnRoZW1lJTIyJTNBJTIyZGVmYXVsdCUyMiUyQyUyMmNvZGUlMjIlM0ElMjIlNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwRXh0ZXJuYWxBUElTZXJ2aWNlJTIwZXh0ZXJuYWxBUElTZXJ2aWNlJTNCJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMERhdGFiYXNlU2VydmljZSUyMGRhdGFiYXNlU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBSdWxlRW5naW5lU2VydmljZSUyMHJ1bGVFbmdpbmVTZXJ2aWNlJTNCJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjBub3RpZmljYXRpb25TZXJ2aWNlJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHZvaWQlMjB0ZXN0UmV2aWV3X0FwcHJvdmVkKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwQXJyYW5nZSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTdHJpbmclMjBhcHBsaWNhdGlvbklkJTIwJTNEJTIwJTVDJTIyQVBQMTIzJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFVzZXJJbmZvJTIwdXNlckluZm8lMjAlM0QlMjBuZXclMjBVc2VySW5mbyglNUMlMjJZdW5qaSU1QyUyMiUyQyUyMCU1QyUyMnl1bmppJTQweHh4LmNvbSU1QyUyMiklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT3JkZXJJbmZvJTIwb3JkZXJJbmZvJTIwJTNEJTIwbmV3JTIwT3JkZXJJbmZvKDEwMDAuMCUyQyUyMCU1QyUyMlByb2R1Y3QlMjBBJTVDJTIyKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBSZXZpZXdSZXN1bHQlMjByZXZpZXdSZXN1bHQlMjAlM0QlMjBuZXclMjBSZXZpZXdSZXN1bHQodHJ1ZSUyQyUyMG51bGwpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKGV4dGVybmFsQVBJU2VydmljZS5nZXRVc2VySW5mbyhhcHBsaWNhdGlvbklkKSkudGhlblJldHVybih1c2VySW5mbyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihkYXRhYmFzZVNlcnZpY2UuZ2V0T3JkZXJJbmZvKGFwcGxpY2F0aW9uSWQpKS50aGVuUmV0dXJuKG9yZGVySW5mbyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihydWxlRW5naW5lU2VydmljZS5yZXZpZXcodXNlckluZm8lMkMlMjBvcmRlckluZm8pKS50aGVuUmV0dXJuKHJldmlld1Jlc3VsdCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiVFNyU5QyU4MSVFNyU5NSVBNS4uLi4lNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiUyMiUyQyUyMmNvZGVGb2xkaW5nJTIyJTNBZmFsc2UlMkMlMjJlbmFibGVNYWNIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMmZvbGQlMjIlM0FmYWxzZSUyQyUyMmZvbnQlMjIlM0ElN0IlMjJmb250RmFtaWx5JTIyJTNBJTIyZGVmYXVsdEZvbnQlMjIlMkMlMjJsaWdhdHVyZXMlMjIlM0FmYWxzZSU3RCUyQyUyMmhpZGVIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMmlkJTIyJTNBJTIyYzJ0YnRiJTIyJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJ1dWlkJTIyJTNBJTIybHozaXp0cGRhenJnYW40bzJlOCUyMiUyQyUyMndyYXAlMjIlM0F0cnVlJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMEV4dGVybmFsQVBJU2VydmljZSUyMGV4dGVybmFsQVBJU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBEYXRhYmFzZVNlcnZpY2UlMjBkYXRhYmFzZVNlcnZpY2UlM0IlNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwUnVsZUVuZ2luZVNlcnZpY2UlMjBydWxlRW5naW5lU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBOb3RpZmljYXRpb25TZXJ2aWNlJTIwbm90aWZpY2F0aW9uU2VydmljZSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwVGVzdCU1Q24lMjAlMjAlMjAlMjB2b2lkJTIwdGVzdFJldmlld19BcHByb3ZlZCgpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMEFycmFuZ2UlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3RyaW5nJTIwYXBwbGljYXRpb25JZCUyMCUzRCUyMCU1QyUyMkFQUDEyMyU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBVc2VySW5mbyUyMHVzZXJJbmZvJTIwJTNEJTIwbmV3JTIwVXNlckluZm8oJTVDJTIyWXVuamklNUMlMjIlMkMlMjAlNUMlMjJ5dW5qaSU0MHh4eC5jb20lNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME9yZGVySW5mbyUyMG9yZGVySW5mbyUyMCUzRCUyMG5ldyUyME9yZGVySW5mbygxMDAwLjAlMkMlMjAlNUMlMjJQcm9kdWN0JTIwQSU1QyUyMiklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmV2aWV3UmVzdWx0JTIwcmV2aWV3UmVzdWx0JTIwJTNEJTIwbmV3JTIwUmV2aWV3UmVzdWx0KHRydWUlMkMlMjBudWxsKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihleHRlcm5hbEFQSVNlcnZpY2UuZ2V0VXNlckluZm8oYXBwbGljYXRpb25JZCkpLnRoZW5SZXR1cm4odXNlckluZm8pJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4oZGF0YWJhc2VTZXJ2aWNlLmdldE9yZGVySW5mbyhhcHBsaWNhdGlvbklkKSkudGhlblJldHVybihvcmRlckluZm8pJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4ocnVsZUVuZ2luZVNlcnZpY2UucmV2aWV3KHVzZXJJbmZvJTJDJTIwb3JkZXJJbmZvKSkudGhlblJldHVybihyZXZpZXdSZXN1bHQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlRTclOUMlODElRTclOTUlQTUuLi4uJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhhbHN0bzg1dWhteWowenNuJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhhbHV1c2x5bHdqZHhtZmslMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSVBNiU4MiVFNiU5RSU5QyVFNiU4OCU5MSVFNCVCQiVBQyVFNiU4MyVCMyVFNSVBRiVCOXJldmlldyVFOCVCRiU5QiVFOCVBMSU4QyVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFRiVCQyU4QyVFNSU4OCU5OSVFOSU5QyU4MCVFOCVBNiU4MU1vY2slRTglQkYlOTklRTUlODclQTAlRTYlOTYlQjklRTQlQkUlOUQlRTglQjUlOTYlRUYlQkMlOEMlRTglQkYlOTklRTYlODQlOEYlRTUlOTElQjMlRTclOUQlODAlRTUlOEQlQjMlRTQlQkQlQkYlRTUlOEYlQUElRTYlOTglQUYlRTYlODMlQjMlRTYlQjUlOEIlRTglQUYlOTUlRTQlQjglODAlRTQlQjglQUElRTclQUUlODAlRTUlOEQlOTUlRTclOUElODQlRTclOTQlQTglRTYlODglQjclRTYlOTMlOEQlRTQlQkQlOUMlRUYlQkMlOEMlRTQlQjklOUYlRTklOUMlODAlRTglQTYlODFtb2NrJUU4JUFFJUEyJUU1JThEJTk1JUU3JTlCJUI4JUU1JTg1JUIzJUU3JTlBJTg0JUU0JUJFJTlEJUU4JUI1JTk2JUVGJUJDJThDJUU2JTk3JUEwJUU3JTk2JTkxJUU3JUJCJTk5JUU2JUI1JThCJUU4JUFGJTk1JUU1JUI4JUE2JUU2JTlEJUE1JUU1JUJFJTg4JUU1JUE0JTlBJUU4JUI0JTlGJUU2JThCJTg1JUVGJUJDJThDJUU1JTkwJThDJUU2JTk3JUI2JUU0JUJDJTlBJUU1JUFGJUJDJUU4JTg3JUI0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU2JTlCJUI0JUU1JThBJUEwJUU2JUIyJUExJUU2JTlDJTg5JUU2JTg0JThGJUU0JUI5JTg5JUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYW4xcDBmNGx5eTBydm52bSUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTElMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGFuMm45ZHo5MnZ2MWtsMGIlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlMkMlMjJzcGFjaW5nJTIyJTNBJTdCJTIyYmVmb3JlJTIyJTNBMjYuNjY2NjY2NjY2NjY2NjY0JTJDJTIyYWZ0ZXIlMjIlM0E5JTJDJTIybGluZSUyMiUzQTAuODUyOTQxMTc2NDcwNTg4MiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSVCQSU5NCVFOCVBRiVBNSVFNSVBRiVCOSVFNCVCOCU4QSVFOCVCRiVCMCVFNSU5MyVBQSVFNCVCQSU5QiVFNCVCQiVBMyVFNyVBMCU4MSVFOCVCRiU5QiVFOCVBMSU4QyVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnN6JTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnZhbHVlJTIyJTNBMjAlMkMlMjJzelVuaXQlMjIlM0ElMjJwdCUyMiU3RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhhbzk0N2F0aHdlMzFxeG85JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlQjklQjYlRTQlQjglOEQlRTYlOTglQUYlRTYlODklODAlRTYlOUMlODklRTQlQkIlQTMlRTclQTAlODElRTklODMlQkQlRTUlODAlQkMlRTUlQkUlOTclRTUlQjklQjMlRTclQUQlODklRTUlQUYlQjklRTUlQkUlODUlRTMlODAlODIlRTglQkUlQjklRTclQkMlOTglRTQlQkIlQTMlRTclQTAlODElRTUlODclQkElRTklOTQlOTklRTUlOEYlQUYlRTglODMlQkQlRTUlQkQlQjElRTUlOTMlOEQlRTYlOUMlODklRTklOTklOTAlRUYlQkMlOEMlRTglODAlOEMlRTYlQTAlQjglRTUlQkYlODMlRTQlQkIlQTMlRTclQTAlODElRTUlODclQkElRTklOTQlOTklRTUlOEYlQUYlRTglODMlQkQlRTUlQUYlQkMlRTglODclQjQlRTYlOTUlODUlRTklOUElOUMlRTYlODglOTYlRTglQjUlODQlRTYlOEQlOUYlRTMlODAlODIlRTUlOEYlQUElRTYlOUMlODklRTUlQUYlQjklRTYlOUMlODAlRTYlQTAlQjglRTUlQkYlODMlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTglQkYlOUIlRTglQTElOEMlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRUYlQkMlOEMlRTYlODklOEQlRTglODMlQkQlRTQlQkElOEIlRTUlOEQlOEElRTUlOEElOUYlRTUlODAlOEQlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhiN2VzbGFwNWdzcnZvYWJtJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTklODAlOUElRTglQkYlODclRTQlQjglOEIlRTUlOUIlQkUlRTUlOEYlQUYlRTQlQkIlQTUlRTclOUMlOEIlRTUlODclQkElRUYlQkMlOEMlRTYlOEMlODklRTclODUlQTclRTQlQjglOEElRTglQkYlQjAlRTQlQjglQTQlRTQlQjglQUElRTclQkIlQjQlRTUlQkElQTYlRUYlQkMlOEMlRTUlOEYlQUYlRTQlQkIlQTUlRTUlQjAlODYlRTQlQkIlQTMlRTclQTAlODElRTUlODglODYlRTQlQjglQkE0JUU0JUI4JUFBJUU4JUIxJUExJUU5JTk5JTkwJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYXI3cHQ1YTZ1aW1tcmRvaCUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJpbmxpbmUlMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaW1hZ2UlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIybmFtZSUyMiUzQSUyMmltYWdlLnBuZyUyMiUyQyUyMnNpemUlMjIlM0E0MjcxNzglMkMlMjJ3aWR0aCUyMiUzQTc0OCUyQyUyMmhlaWdodCUyMiUzQTUyMS45MjIwNzc5MjIwNzc4JTJDJTIydXVpZCUyMiUzQSUyMmx4aGFzanU3bjQybXZvZGR4c28lMjIlMkMlMjJzcmMlMjIlM0ElMjJodHRwcyUzQSUyRiUyRm9zcy1hdGEuYWxpYmFiYS5jb20lMkZhcnRpY2xlJTJGMjAyNCUyRjA3JTJGM2RlYmM1MjEtMjhhOS00ZjY1LTgzMWUtMTM4YmQzNzY5M2RhLnBuZyUyMiUyQyUyMmV4dHJhRGF0YSUyMiUzQSU3QiUyMnJlc291cmNlSWQlMjIlM0ElMjIwYTlmNTdjMy1mYWU2LTRlMjAtODM4YS0xNDE0MjI1MTNlMmUlMjIlMkMlMjJtZXRhRGF0YSUyMiUzQSU3QiUyMnNpemUlMjIlM0E0MjcxNzglMkMlMjJvcmlnaW5XaWR0aCUyMiUzQTE2OTQlMkMlMjJvcmlnaW5IZWlnaHQlMjIlM0ExMTgyJTJDJTIyZm9ybWF0JTIyJTNBJTIycG5nJTIyJTJDJTIycmF0aW8lMjIlM0ExJTdEJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYXI4ajJlc2xiZmd1Mjg1dSUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0EyMS4zMzMzMzMzMzMzMzMzMzIlMkMlMjJhZnRlciUyMiUzQTklMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JTlGJTlGJUU2JUE4JUExJUU1JTlFJThCJUUzJTgwJTgxJUU3JUFFJTk3JUU2JUIzJTk1JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGFycWcxYmwxZ2hxdW5iaWMlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU4QiVBNSVFNiU5QyU4OSVFOCVCRSU4MyVFOSVBQiU5OCVFOSVBMiU4NiVFNSU5RiU5RiVFNyU5QiVCOCVFNSU4NSVCMyVFNiU4MCVBNyVFNSU5MiU4QyVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFNyU5QSU4NCVFNCVCQiVBMyVFNyVBMCU4MSVFRiVCQyU4QyVFNSU4RCVCNCVFNiU5QyU4OSVFNiU5QyU4MCVFNSVCMCU4RiVFNyU5QSU4NCVFNSU5MCU4OCVFNCVCRCU5QyVFNiU5NiVCOSVFNiU5NSVCMCVFOSU4NyU4RiVFNyU5QSU4NCVFNCVCQiVBMyVFNyVBMCU4MSVFNiU5OCVBRiVFNSVCQSU5NCVFNyU5NCVBOCVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFNyU5QSU4NCVFNiU5QyU4MCVFNCVCRCVCMyVFNCVCQiVBMyVFNyVBMCU4MSVFRiVCQyU4QyVFNyU5NCVCMSVFNCVCQSU4RSVFNCVCRCU4RSVFNSU5MCU4OCVFNCVCRCU5QyVFNiU5NiVCOSVFNiU5NSVCMCVFOSU4NyU4RiVFRiVCQyU4QyVFNyVCQyU5NiVFNSU4NiU5OSVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFNSVBRiVCOSVFOCVBRiVBNSVFNyVCMSVCQiVFNCVCQiVBMyVFNyVBMCU4MSVFOCVCRiU5QiVFOCVBMSU4QyVFNiVCNSU4QiVFOCVBRiU5NSVFOSU4MCU5QSVFNSVCOCVCOCVFNiU4OCU5MCVFNiU5QyVBQyVFNCVCRCU4RSVFNSVCQiU4OSVFRiVCQyU4OCVFNCVCOCU4RCVFOSU5QyU4MCVFOCVBNiU4MSVFNiU4OCU5NiVFNSU4RiVBQSVFOSU5QyU4MCVFOCVBNiU4MSVFOCVCRSU4MyVFNSVCMCU5MSVFNyU5QSU4NE1vY2slRUYlQkMlODklRUYlQkMlOEMlRTglQUYlQTUlRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElRTclOUElODQlRTYlQUQlQTMlRTclQTElQUUlRTYlODAlQTclRTUlOEYlODglRTYlOUUlODElRTQlQjglQkElRTklODclOEQlRTglQTYlODElRUYlQkMlOEMlRTUlOUIlQTAlRTYlQUQlQTQlRTYlOEIlQTUlRTYlOUMlODklRTYlOUMlODAlRTQlQkQlQjMlRTclOUElODQlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRTYlOEElOTUlRTglQjUlODQlRTUlOUIlOUUlRTYlOEElQTUlRTclOEUlODclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNqOHV3ZXN6d2s2cnV2MWQlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCRSU4QiVFNSVBNiU4MiVFNCVCOCU4QSVFOCVCRiVCMCVFMiU4MCU5QyVFOSVBMiU4NiVFNSU5RiU5RiVFNyU5QiVCOCVFNSU4NSVCMyVFNiU4MCVBNyVFNSVCMCU4RiVFNyVCQiU5MyVFMiU4MCU5RCVFNiU4RiU5MCVFNSU4OCVCMCVFNyU5QSU4NCVFNyVBNCVCQSVFNCVCRSU4QiVFNCVCQiVBMyVFNyVBMCU4MSVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGI2eTMzNWw0MzJhN2tteCUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTIlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGI2eXV6YXNmaHJuOW05bDglMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlMkMlMjJzcGFjaW5nJTIyJTNBJTdCJTIyYmVmb3JlJTIyJTNBMjEuMzMzMzMzMzMzMzMzMzMyJTJDJTIyYWZ0ZXIlMjIlM0E5JTJDJTIybGluZSUyMiUzQTAuODUyOTQxMTc2NDcwNTg4MiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNyVBRSU4MCVFNSU4RCU5NSVFNCVCQiVBMyVFNyVBMCU4MSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnN6JTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnZhbHVlJTIyJTNBMTYlMkMlMjJzelVuaXQlMjIlM0ElMjJwdCUyMiU3RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhiYXE4bGN2bjRsYW1vdHc1JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQkYlOTklRTUlQjAlQjElRTYlOTglQUYlRTYlODklODAlRTglQjAlOTMlRTclOUElODQlRTglQkUlQjklRTclQkMlOTglRTQlQkIlQTMlRTclQTAlODElRUYlQkMlOEMlRTYlOTclQTIlRTYlQjIlQTElRTYlOUMlODklRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRUYlQkMlOEMlRTUlOEYlODglRTYlQjIlQTElRTYlOUMlODklRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTUlQkElQTYlRUYlQkMlOEMlRTUlOTAlOEMlRTYlOTclQjYlRTUlOTAlODglRTQlQkQlOUMlRTYlOTYlQjklRTYlOTUlQjAlRTklODclOEYlRTUlQkUlODglRTUlQjAlOEYlRUYlQkMlOEMlRTglQkYlOTklRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElRTklODAlOUElRTUlQjglQjglRTYlQjIlQTElRTYlOUMlODklRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRTQlQkIlQjclRTUlODAlQkMlRTMlODAlODIlRTQlQjglODAlRTQlQkElOUIlRTQlQkUlOEIlRTUlQUQlOTAlRTQlQkUlOEIlRTUlQTYlODIlRTYlOUUlODQlRTklODAlQTAlRTUlODclQkQlRTYlOTUlQjAlRUYlQkMlOEMlRTUlODElOUElRTclQjElQkIlRTclOUElODQlRTUlODglOUQlRTUlQTclOEIlRTUlOEMlOTYlRTglQjUlOEIlRTUlODAlQkMlRUYlQkMlOEMlRTYlODglOTYlRTQlQjglODAlRTQlQkElOUIlRTclQUUlODAlRTUlOEQlOTUlRTclOUElODRzZXQlRTYlOTYlQjklRTYlQjMlOTUlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhiYzY4YWVtNHBqdWM0dWo2JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYmM3ZDd0Mnl4MmtvbXJzJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTIxLjMzMzMzMzMzMzMzMzMzMiUyQyUyMmFmdGVyJTIyJTNBOSUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJDb250cm9sbGVyJUVGJUJDJTg4JUU2JUI1JTgxJUU3JUE4JThCJUU2JThFJUE3JUU1JTg4JUI2JUU0JUJCJUEzJUU3JUEwJTgxJUVGJUJDJTg5JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGJjYXNkNXdudGFleTNpcWwlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVCRiU5OSVFNyVCMSVCQiVFNCVCQiVBMyVFNyVBMCU4MSVFOSU4MCU5QSVFNSVCOCVCOCVFNiU5QyVBQyVFOCVCQSVBQiVFNCVCOCU4RCVFNSU4MSU5QSVFNSVCNyVBNSVFNCVCRCU5QyVFRiVCQyU4QyVFNSU4RiVBQSVFNiU5OCVBRiVFNyVBRSU4MCVFNSU4RCU5NSVFNyU5QSU4NCVFOCVBRiVCNyVFNiVCMSU4MiVFOCVCRCVBQyVFNSU4RiU5MSVFNiU4OCU5NiVFNSU4RCU4RiVFOCVCMCU4MyVFRiVCQyU4QyVFNiVCMiVBMSVFNiU5QyU4OSVFNSVBNCU4RCVFNiU5RCU4MiVFNyU5QSU4NCVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFRiVCQyU4QyVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFNSU5RiVCQSVFNiU5QyVBQyVFNCVCOCU4QSVFNiU5OCVBRiVFOCVCMCU4MyVFNyU5NCVBOCVFNCVCOCU4RCVFNSU5MCU4QyVFNyVCQiU4NCVFNCVCQiVCNiVFNiU5RCVBNSVFNSVBNCU4NCVFNyU5MCU4NiVFOCVBRiVCNyVFNiVCMSU4MiVFMyU4MCU4MiVFOSU4MCU5QSVFNSVCOCVCOCVFNiU5RCVBNSVFOCVBRSVCMiVFRiVCQyU4QyVFOCVBRiVBNSVFNyVCMSVCQiVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFOSU4NyU4RCVFNyU4MiVCOSVFOSU5QyU4MCVFOCVBNiU4MSVFNiVCNSU4QiVFOCVBRiU5NSVFOCVCRSU5MyVFNSU4NSVBNSVFNSU4MCVCQyVFNyU5QSU4NCVFNiU5QyU4OSVFNiU5NSU4OCVFNiU4MCVBNyVFNSU5MiU4QyVFOCVBNyU4NCVFNSU4OCU5OSVFRiVCQyU4QyVFOSU4MSVCRiVFNSU4NSU4RCVFOCVCRiU5QiVFOCVBMSU4QyVFNiU5NyVBMCVFNiU5NSU4OCVFOCVCRCVBQyVFNSU4RiU5MSVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGJtNDlianZ0NDZ3eDFsZWolMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTIlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGJtNGd1N2Y4MGoxcW1sb2slMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlMkMlMjJzcGFjaW5nJTIyJTNBJTdCJTIyYmVmb3JlJTIyJTNBMjEuMzMzMzMzMzMzMzMzMzMyJTJDJTIyYWZ0ZXIlMjIlM0E5JTJDJTIybGluZSUyMiUzQTAuODUyOTQxMTc2NDcwNTg4MiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVCRiU4NyVFNSVCQSVBNiVFNSVBNCU4RCVFNiU5RCU4MiVFNyU5QSU4NCVFNCVCQiVBMyVFNyVBMCU4MSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnN6JTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnZhbHVlJTIyJTNBMTYlMkMlMjJzelVuaXQlMjIlM0ElMjJwdCUyMiU3RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhibWV2dDU0c3NvOXU2bnF1JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQUYlQTUlRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElRTYlOTglQUYlRTclOUMlOUYlRTYlQUQlQTMlRTclOUElODQlRTklOTclQUUlRTklQTIlOTglRTQlQkIlQTMlRTclQTAlODElRUYlQkMlOEMlRTglQUYlQTUlRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElRTYlOUMlODklRTglQkUlODMlRTUlQTQlOUElRTclOUElODQlRTUlQTQlOTYlRTklODMlQTglRTQlQkUlOUQlRTglQjUlOTYlRUYlQkMlOEMlRTUlOTAlOEMlRTYlOTclQjYlRTUlOEYlODglRTYlOUMlODklRTglQkUlODMlRTklQUIlOTglRTclOUElODQlRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTQlQjglOEUlRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclRUYlQkMlOEMlRTQlQkUlOEIlRTUlQTYlODIlRTIlODAlOUMlRTUlOTAlODglRTQlQkQlOUMlRTYlOTYlQjklRTYlOTUlQjAlRTklODclOEYlRTclQkIlQjQlRTUlQkElQTYlRTIlODAlOUQlRTQlQjglQUQlRTYlOEYlOTAlRTUlODglQjAlRTclOUElODQlRTclQTQlQkElRTQlQkUlOEIlRTQlQkIlQTMlRTclQTAlODElRUYlQkMlOEMlRTglQUYlQTUlRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElRTUlQTYlODIlRTYlOUUlOUMlRTQlQjglOEQlRTglQkYlOUIlRTglQTElOEMlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRTglQkUlODMlRTQlQjglQkElRTUlOEQlQjElRTklOTklQTklRUYlQkMlOEMlRTYlOTclQTAlRTUlQkMlODIlRTQlQkElOEUlRTglQTMlQjglRTUlQTUlOTQlRUYlQkMlOEMlRTQlQkQlODYlRTUlQUYlQjklRTglQUYlQTUlRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElRTglQkYlOUIlRTglQTElOEMlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRTYlODglOTAlRTYlOUMlQUMlRTglQkYlODclRTQlQkElOEUlRTklQUIlOTglRTYlOTglODIlRUYlQkMlOEMlRTUlOUIlQTAlRTYlQUQlQTQlRTUlODYlOTklRTQlQkIlQTMlRTclQTAlODElRTYlOTclQjYlRUYlQkMlOEMlRTglQTYlODElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOUUlODElRTUlOEElOUIlRTklODElQkYlRTUlODUlOEQlRTclQkMlOTYlRTUlODYlOTklRTglQUYlQTUlRTclQjElQkIlRTQlQkIlQTMlRTclQTAlODElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhidXNhcnZra2U0dWVpbDVvJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJseGhidXNpM3VidGFkeGtuaDNkJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlOUIlQTAlRTYlQUQlQTQlRUYlQkMlOEMlRTQlQjglODAlRTQlQjglQUElRTYlODAlQkIlRTQlQkQlOTMlRTUlOEUlOUYlRTUlODglOTklRTUlQkElOTQlRTglQUYlQTUlRTYlOTglQUYlRUYlQkMlOEMlRTklODElQkYlRTUlODUlOEQlRTglQkYlODclRTUlQkElQTYlRTUlQTQlOEQlRTYlOUQlODIlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRUYlQkMlOEMlRTUlQTYlODIlRTYlOUUlOUMlRTclOUMlOEIlRTUlODglQjAlRTQlQjglODAlRTQlQjglQUElRTUlODclQkQlRTYlOTUlQjAlRTUlOTIlOEMlRTclQjElQkIlRTUlOTAlOEMlRTYlOTclQjYlRTUlODUlQjclRTUlQTQlODclRTklQUIlOTglRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTYlODglOTYlRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTUlQkElQTYlRTclOUElODQlRUYlQkMlOEMlRTUlOEYlODglRTUlOTAlOEMlRTYlOTclQjYlRTYlOEIlQTUlRTYlOUMlODklRTUlQTQlQTclRTklODclOEYlRTUlOTAlODglRTQlQkQlOUMlRTYlOTYlQjklRUYlQkMlOEMlRTUlQjAlQjElRTUlQkElOTQlRTglQUYlQTUlRTUlQkMlOTUlRTglQjUlQjclRTglQUQlQTYlRTglQTclODklRUYlQkMlOEMlRTUlQjAlODYlRTUlODUlQjYlRTYlOEIlODYlRTUlODglODYlRTQlQjglQkElRTIlODAlOUMlRTUlOUYlOUYlRTYlQTglQTElRTUlOUUlOEIlRTYlODglOTYlRTclQUUlOTclRTYlQjMlOTUlRTIlODAlOUQlMkIlRTIlODAlOUNDb250cm9sbGVyJUUyJTgwJTlEJUVGJUJDJThDJUU0JUJCJThFJUU4JTgwJThDJUU2JTlCJUI0JUU1JUFFJUI5JUU2JTk4JTkzJUU1JUFFJTlFJUU3JThFJUIwJUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYm04ZXVkM3IwdHk4cTNlbSUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMSUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHhoYXJoY2F5cWpyczV6aTRyZSUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0EyNi42NjY2NjY2NjY2NjY2NjQlMkMlMjJhZnRlciUyMiUzQTklMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JUE2JTgyJUU0JUJEJTk1JUU5JTgxJUJGJUU1JTg1JThEJUU4JUJGJTg3JUU1JUJBJUE2JUU1JUE0JThEJUU2JTlEJTgyJUU3JTlBJTg0JUU0JUJCJUEzJUU3JUEwJTgxJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0EyMCUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGJvbTJ5NTFsc2djMXFiNzclMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVBRiVBNSVFOSU5NyVBRSVFOSVBMiU5OCVFNSVBNiU4MiVFNiU5RSU5QyVFNiVCNyVCMSVFNSU4NSVBNSVFNiU4RSVBMiVFOCVBRSVBOCVFRiVCQyU4QyVFNiVCNiU4OSVFNSU4RiU4QSVFNyU5QSU4NCVFOCU4QyU4MyVFNSU5QiVCNCVFNCVCQyU5QSVFOSU5RCU5RSVFNSVCOCVCOCVFNSVCOSVCRiVFNiVCMyU5QiVFRiVCQyU4QyVFNCVCQiU4RVNPTElEJUU1JThFJTlGJUU1JTg4JTk5JUU1JTg4JUIwJUU5JUEyJTg2JUU1JTlGJTlGJUU2JThBJUJEJUU4JUIxJUExJUUzJTgwJTgxJUU5JUEyJTg2JUU1JTlGJTlGJUU5JUE5JUIxJUU1JThBJUE4JUU4JUFFJUJFJUU4JUFFJUExJUVGJUJDJTg4REREJUVGJUJDJTg5JUU3JUFEJTg5JUU5JTgzJUJEJUU1JThGJUFGJUU4JTgzJUJEJUU0JUJDJTlBJUU2JUI2JTg5JUU1JThGJThBJUUzJTgwJTgyJUU4JTgwJTgzJUU4JTk5JTkxJUU1JTg4JUIwJUU3JUFGJTg3JUU1JUI5JTg1JUU5JTk5JTkwJUU1JTg4JUI2JUVGJUJDJThDJUU2JTlDJUFDJUU1JUIwJThGJUU4JThBJTgyJUU0JUJCJTg1JUU4JTgxJTlBJUU3JTg0JUE2JUU0JUJBJThFJUU0JUI4JTgwJUU0JUI4JUFBJUU2JUEwJUI4JUU1JUJGJTgzJUU5JTk3JUFFJUU5JUEyJTk4JUVGJUJDJTlBJUU1JUE2JTgyJUU0JUJEJTk1JUU1JUIwJTg2JTVDJTIyJUU4JUJGJTg3JUU1JUJBJUE2JUU1JUE0JThEJUU2JTlEJTgyJUU3JTlBJTg0JUU0JUJCJUEzJUU3JUEwJTgxJTVDJTIyJUU4JUJGJTk5JUU0JUI4JTgwJUU4JUIxJUExJUU5JTk5JTkwJUU0JUI4JUFEJUU3JTlBJTg0JUU0JUJCJUEzJUU3JUEwJTgxJUU4JUJGJTlCJUU4JUExJThDJUU2JThCJTg2JUU1JTg4JTg2JUVGJUJDJThDJUU0JUJEJUJGJUU1JTg1JUI2JUU2JTlCJUI0JUU2JTk4JTkzJUU0JUJBJThFJUU2JUI1JThCJUU4JUFGJTk1JUU1JTkyJThDJUU3JUJCJUI0JUU2JThBJUE0JUUzJTgwJTgyJUU2JTg4JTkxJUU0JUJCJUFDJUU1JUIwJTg2JUU5JTgwJTlBJUU4JUJGJTg3JUU0JUI4JTgwJUU0JUI4JUFBJUU1JTg1JUI3JUU0JUJEJTkzJUU3JTlBJTg0JUU3JUE0JUJBJUU0JUJFJThCJUU2JTlEJUE1JUU5JTk4JTkwJUU4JUJGJUIwJUU4JUJGJTk5JUU0JUI4JTgwJUU4JUJGJTg3JUU3JUE4JThCJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHozazM4bmgwYjVscTY1NTI5aGMlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6M2sxa3AzMHNvbDgzMGlza2tkJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JThCJTg2JUU1JTg4JTg2JUU1JThFJTlGJUU1JTg4JTk5JUU5JTgwJTlBJUU1JUI4JUI4JUU1JUE2JTgyJUU0JUI4JThCJUU1JTlCJUJFJUU2JTg5JTgwJUU3JUE0JUJBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHozazZ1aWk2dG4zOHJ3bjVhZiUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJpbmxpbmUlMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaW1hZ2UlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyaWQlMjIlM0ElMjJnYnQ1ZHQlMjIlMkMlMjJuYW1lJTIyJTNBJTIyaW1hZ2UucG5nJTIyJTJDJTIyc2l6ZSUyMiUzQTk2NjY1MyUyQyUyMndpZHRoJTIyJTNBNzQ4JTJDJTIyaGVpZ2h0JTIyJTNBNDk2LjEzOTYzOTYzOTYzOTYlMkMlMjJ1dWlkJTIyJTNBJTIybHozazZ1dGY3ZTU4a2ZrbXd6dyUyMiUyQyUyMnNyYyUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGb3NzLWF0YS5hbGliYWJhLmNvbSUyRmFydGljbGUlMkYyMDI0JTJGMDclMkY1NTA3ZTE2MS0zMmE2LTQzN2MtYWYyYi0xNjg2NmIzMGY4M2YucG5nJTIyJTJDJTIyZXh0cmFEYXRhJTIyJTNBJTdCJTIycmVzb3VyY2VJZCUyMiUzQSUyMjNjYTFlYTQ3LWFmY2EtNGI1Zi1hMDUyLThkYTM2MWQ5Mzc2ZCUyMiUyQyUyMm1ldGFEYXRhJTIyJTNBJTdCJTIyc2l6ZSUyMiUzQTk2NjY1MyUyQyUyMm9yaWdpbldpZHRoJTIyJTNBMTc3NiUyQyUyMm9yaWdpbkhlaWdodCUyMiUzQTExNzglMkMlMjJmb3JtYXQlMjIlM0ElMjJwbmclMjIlMkMlMjJyYXRpbyUyMiUzQTElN0QlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNrNnV0Z3FlZzdjYTU4ZDhxJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHozazZuZ2lxN2NqNms3NndscCUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCU4MCU4QyVFNSU4NSVCNyVFNCVCRCU5MyVFNyU5QSU4NCVFNiU4QiU4NiVFNSU4OCU4NiVFNSU4RSU5RiVFNSU4OCU5OSVFNSVBNiU4MiVFNCVCOCU4QiVFRiVCQyU5QSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyaW5kJTIyJTNBJTdCJTIybGVmdCUyMiUzQTAlN0QlMkMlMjJsaXN0JTIyJTNBJTdCJTIybGlzdElkJTIyJTNBJTIyeHFwbGlnZzBnNSUyMiUyQyUyMmlzT3JkZXJlZCUyMiUzQXRydWUlMkMlMjJsZXZlbCUyMiUzQTAlMkMlMjJsaXN0U3R5bGUlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJkZWNpbWFsJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyNTEuJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjJsZWZ0JTIyJTdEJTdEJTJDJTIydXVpZCUyMiUzQSUyMmx6M2sxa3A0MzcyMWt1c2wyZ2UlMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQUYlODYlRTUlODglQUIlRTYlQTAlQjglRTUlQkYlODMlRTQlQjglOUElRTUlOEElQTElRTklODAlQkIlRTglQkUlOTElRUYlQkMlOUElRTUlQjAlODYlRTUlODUlQjclRTYlOUMlODklRTklQUIlOTglRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclRTUlOTIlOEMlRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTclOUElODQlRTklODMlQTglRTUlODglODYlRTYlOEYlOTAlRTUlOEYlOTYlRTUlODclQkElRTYlOUQlQTUlRUYlQkMlOEMlRTUlQkQlQTIlRTYlODglOTAlRTclOEIlQUMlRTclQUIlOEIlRTclOUElODQlRTUlOUYlOUYlRTYlQTglQTElRTUlOUUlOEIlRTYlODglOTYlRTYlOUMlOEQlRTUlOEElQTElRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMnhxcGxpZ2cwZzUlMjIlMkMlMjJpc09yZGVyZWQlMjIlM0F0cnVlJTJDJTIybGV2ZWwlMjIlM0EwJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyZGVjaW1hbCUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjUxLiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCUyQyUyMmV4dHJhRGF0YSUyMiUzQSU3QiU3RCUyQyUyMmlzQ2hlY2tlZCUyMiUzQWZhbHNlJTJDJTIyaGlkZVN5bWJvbCUyMiUzQWZhbHNlJTdEJTJDJTIydXVpZCUyMiUzQSUyMmx6NmUyY2s5bTZjbzhoYzdqNGklMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlODklQTUlRTclQTYlQkIlRTUlQTQlOTYlRTklODMlQTglRTQlQkUlOUQlRTglQjUlOTYlRUYlQkMlOUElRTUlQjAlODYlRTUlQTQlOTYlRTklODMlQTglRTQlQkUlOUQlRTglQjUlOTYlRTYlOEElQkQlRTglQjElQTElRTQlQjglQkElRTYlOEUlQTUlRTUlOEYlQTMlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMnhxcGxpZ2cwZzUlMjIlMkMlMjJpc09yZGVyZWQlMjIlM0F0cnVlJTJDJTIybGV2ZWwlMjIlM0EwJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyZGVjaW1hbCUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjUxLiUyMiUyQyUyMmFsaWduJTIyJTNBJTIybGVmdCUyMiU3RCU3RCUyQyUyMnV1aWQlMjIlM0ElMjJsejNrMWtwNTZ6Yzd0ZXU1NzZ1JTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JTg4JTg2JUU3JUE2JUJCJUU2JUI1JTgxJUU3JUE4JThCJUU2JThFJUE3JUU1JTg4JUI2JUVGJUJDJTlBJUU1JUIwJTg2JUU1JThEJThGJUU4JUIwJTgzJUU1JTkwJTg0JUU0JUI4JUFBJUU2JUFEJUE1JUU5JUFBJUE0JUU3JTlBJTg0JUU5JTgwJUJCJUU4JUJFJTkxJUU2JThBJUJEJUU1JThGJTk2JUU0JUI4JUJBQ29udHJvbGxlciVFRiVCQyU4QyVFOCVCNCU5RiVFOCVCNCVBMyVFOCVCMCU4MyVFNyU5NCVBOCVFNSU5MCU4NCVFNCVCOCVBQSVFNiU5QyU4RCVFNSU4QSVBMSVFNSU5MiU4QyVFNSVBNCU4NCVFNyU5MCU4NiVFNyVCQiU5MyVFNiU5RSU5QyVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6M2sxa3A2cThnZGw1cG5zeSUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHozazNwMXl6aXV1aWxiem80JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTQlQjglOEIlRTklOUQlQTIlRUYlQkMlOEMlRTYlODglOTElRTQlQkIlQUMlRTUlQjAlODYlRTklODAlOUElRTglQkYlODclRTQlQjglODAlRTQlQjglQUElRTUlODUlQjclRTQlQkQlOTMlRTclOUElODQlRTclQTQlQkElRTQlQkUlOEIlRTYlOUQlQTUlRTUlQjElOTUlRTclQTQlQkElRTUlQTYlODIlRTQlQkQlOTUlRTUlQkElOTQlRTclOTQlQTglRTglQkYlOTklRTQlQkElOUIlRTUlOEUlOUYlRTUlODglOTklRUYlQkMlOEMlRTUlQjAlODYlRTQlQjglODAlRTQlQjglQUElRTglQkYlODclRTQlQkElOEUlRTUlQTQlOEQlRTYlOUQlODIlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTklODclOEQlRTYlOUUlODQlRTQlQjglQkElRTYlOUIlQjQlRTYlOTglOTMlRTQlQkElOEUlRTYlQjUlOEIlRTglQUYlOTUlRTUlOTIlOEMlRTclQkIlQjQlRTYlOEElQTQlRTclOUElODQlRTclQkIlOTMlRTYlOUUlODQlRTMlODAlODIlRTglQkYlOTklRTQlQjglQUElRTclQTQlQkElRTQlQkUlOEIlRTUlQjAlODYlRTUlQjElOTUlRTclQTQlQkElRTUlQTYlODIlRTQlQkQlOTUlRTUlQjAlODYlRTUlQTQlOEQlRTYlOUQlODIlRTQlQkIlQTMlRTclQTAlODElRTglQkYlOUIlRTglQTElOEMlRTYlOEIlODYlRTUlODglODYlRUYlQkMlOEMlRTYlQTAlQjglRTUlQkYlODMlRTklODMlQTglRTUlODglODYlRTYlOEIlODYlRTUlODglODYlRTQlQjglQkFDb250cm9sbGVyJUU1JTkyJThDJUU1JTlGJTlGJUU2JUE4JUExJUU1JTlFJThCJUVGJUJDJThDJUU1JUI5JUI2JUU1JTg5JUE1JUU3JUE2JUJCJUU1JUE0JTk2JUU5JTgzJUE4JUU4JUIwJTgzJUU3JTk0JUE4JUVGJUJDJThDJUU0JUJCJThFJUU4JTgwJThDJUU2JTlCJUI0JUU2JTk4JTkzJUU0JUJBJThFJUU2JUI1JThCJUU4JUFGJTk1JUU0JUI4JThFJUU3JUJCJUI0JUU2JThBJUE0JUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHozazFrcDdlMGJxZ256M2dnNiUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6M2sybTZjbmI3eDJ2bW56djklMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMyUyMyUyMyVFNyVBNCVCQSVFNCVCRSU4QiVFNCVCQiVBMyVFNyVBMCU4MSVFRiVCQyU5QSVFOCVBRSVBMiVFNSU4RCU5NSVFNSVBNCU4NCVFNyU5MCU4NiVFNSU4NyVCRCVFNiU5NSVCMCUyMyUyMyUyMyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmphdmElMjIlMkMlMjJ0aGVtZSUyMiUzQSUyMmRlZmF1bHQlMjIlMkMlMjJ3cmFwJTIyJTNBdHJ1ZSUyQyUyMmlkJTIyJTNBJTIyb3ZzbmlsJTIyJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJmb2xkJTIyJTNBZmFsc2UlMkMlMjJoaWRlSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJjb2RlRm9sZGluZyUyMiUzQWZhbHNlJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyZW5hYmxlTWFjSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJ1dWlkJTIyJTNBJTIybHozbDBjOWF1bmVpbzQ2NnZzbyUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyUHJvY2Vzc29yJTIwJTdCJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBwcm9jZXNzT3JkZXIoU3RyaW5nJTIwb3JkZXJJZCUyQyUyMFN0cmluZyUyMGN1c3RvbWVyRW1haWwpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFNCVCQiU4RSVFNiU5NSVCMCVFNiU4RCVBRSVFNSVCQSU5MyVFOCU4RSVCNyVFNSU4RiU5NiVFOCVBRSVBMiVFNSU4RCU5NSVFNCVCRiVBMSVFNiU4MSVBRiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBPYmplY3QlNUIlNUQlMjBvcmRlckRhdGElMjAlM0QlMjBEYXRhYmFzZS5nZXRPcmRlckJ5SWQob3JkZXJJZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZG91YmxlJTIwb3JkZXJBbW91bnQlMjAlM0QlMjAoZG91YmxlKSUyMG9yZGVyRGF0YSU1QjAlNUQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3RyaW5nJTIwb3JkZXJTdGF0dXMlMjAlM0QlMjAoU3RyaW5nKSUyMG9yZGVyRGF0YSU1QjElNUQlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFNiVBMyU4MCVFNiU5RiVBNSVFOCVBRSVBMiVFNSU4RCU5NSVFNyU4QSVCNiVFNiU4MCU4MSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghJTVDJTIyUEVORElORyU1QyUyMi5lcXVhbHMob3JkZXJTdGF0dXMpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTglOEUlQjclRTUlOEYlOTYlRTUlQUUlQTIlRTYlODglQjclRTQlQkYlQTElRTYlODElQUYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT2JqZWN0JTVCJTVEJTIwY3VzdG9tZXJEYXRhJTIwJTNEJTIwRGF0YWJhc2UuZ2V0Q3VzdG9tZXJCeUVtYWlsKGN1c3RvbWVyRW1haWwpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFN0cmluZyUyMGN1c3RvbWVyTmFtZSUyMCUzRCUyMChTdHJpbmcpJTIwY3VzdG9tZXJEYXRhJTVCMCU1RCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTdHJpbmclMjBjdXN0b21lclR5cGUlMjAlM0QlMjAoU3RyaW5nKSUyMGN1c3RvbWVyRGF0YSU1QjElNUQlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFOCVBRSVBMSVFNyVBRSU5NyVFNiU4QSU5OCVFNiU4OSVBMyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb3VibGUlMjBkaXNjb3VudCUyMCUzRCUyMDAlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoJTVDJTIyVklQJTVDJTIyLmVxdWFscyhjdXN0b21lclR5cGUpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkaXNjb3VudCUyMCUzRCUyMDAuMSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMjBlbHNlJTIwaWYlMjAoJTVDJTIyUkVHVUxBUiU1QyUyMi5lcXVhbHMoY3VzdG9tZXJUeXBlKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGlzY291bnQlMjAlM0QlMjAwLjA1JTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU1JUJBJTk0JUU3JTk0JUE4JUU2JThBJTk4JUU2JTg5JUEzJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvdWJsZSUyMGZpbmFsQW1vdW50JTIwJTNEJTIwb3JkZXJBbW91bnQlMjAqJTIwKDElMjAtJTIwZGlzY291bnQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTYlQTMlODAlRTYlOUYlQTUlRTUlQkElOTMlRTUlQUQlOTglNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYm9vbGVhbiUyMGlzSW5TdG9jayUyMCUzRCUyMEludmVudG9yeVN5c3RlbS5jaGVja1N0b2NrKG9yZGVySWQpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFpc0luU3RvY2spJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMEVtYWlsU2VydmljZS5zZW5kT3V0T2ZTdG9ja05vdGlmaWNhdGlvbihjdXN0b21lckVtYWlsKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTUlQTQlODQlRTclOTAlODYlRTYlOTQlQUYlRTQlQkIlOTglNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYm9vbGVhbiUyMHBheW1lbnRTdWNjZXNzJTIwJTNEJTIwUGF5bWVudEdhdGV3YXkucHJvY2Vzc1BheW1lbnQob3JkZXJJZCUyQyUyMGZpbmFsQW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghcGF5bWVudFN1Y2Nlc3MpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMEVtYWlsU2VydmljZS5zZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oY3VzdG9tZXJFbWFpbCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU2JTlCJUI0JUU2JTk2JUIwJUU4JUFFJUEyJUU1JThEJTk1JUU3JThBJUI2JUU2JTgwJTgxJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMERhdGFiYXNlLnVwZGF0ZU9yZGVyU3RhdHVzKG9yZGVySWQlMkMlMjAlNUMlMjJQUk9DRVNTRUQlNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTUlOEYlOTElRTklODAlODElRTclQTElQUUlRTglQUUlQTQlRTklODIlQUUlRTQlQkIlQjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3RyaW5nJTIwZW1haWxDb250ZW50JTIwJTNEJTIwJTVDJTIyRGVhciUyMCU1QyUyMiUyMCUyQiUyMGN1c3RvbWVyTmFtZSUyMCUyQiUyMCU1QyUyMiUyQyUyMHlvdXIlMjBvcmRlciUyMCU1QyUyMiUyMCUyQiUyMG9yZGVySWQlMjAlMkIlMjAlNUMlMjIlMjBoYXMlMjBiZWVuJTIwcHJvY2Vzc2VkLiUyMFRvdGFsJTIwYW1vdW50JTNBJTIwJTI0JTVDJTIyJTIwJTJCJTIwZmluYWxBbW91bnQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRW1haWxTZXJ2aWNlLnNlbmRFbWFpbChjdXN0b21lckVtYWlsJTJDJTIwJTVDJTIyT3JkZXIlMjBQcm9jZXNzZWQlNUMlMjIlMkMlMjBlbWFpbENvbnRlbnQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTYlOUIlQjQlRTYlOTYlQjAlRTUlQUUlQTIlRTYlODglQjclRTclQTclQUYlRTUlODglODYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaW50JTIwcG9pbnRzJTIwJTNEJTIwKGludCklMjBmaW5hbEFtb3VudCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBEYXRhYmFzZS51cGRhdGVDdXN0b21lclBvaW50cyhjdXN0b21lckVtYWlsJTJDJTIwcG9pbnRzKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU4JUE3JUE2JUU1JThGJTkxJUU5JTg1JThEJUU5JTgwJTgxJUU2JUI1JTgxJUU3JUE4JThCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFNoaXBwaW5nU2VydmljZS5pbml0aWF0ZVNoaXBwaW5nKG9yZGVySWQpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lN0QlMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyUHJvY2Vzc29yJTIwJTdCJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBwcm9jZXNzT3JkZXIoU3RyaW5nJTIwb3JkZXJJZCUyQyUyMFN0cmluZyUyMGN1c3RvbWVyRW1haWwpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFNCVCQiU4RSVFNiU5NSVCMCVFNiU4RCVBRSVFNSVCQSU5MyVFOCU4RSVCNyVFNSU4RiU5NiVFOCVBRSVBMiVFNSU4RCU5NSVFNCVCRiVBMSVFNiU4MSVBRiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBPYmplY3QlNUIlNUQlMjBvcmRlckRhdGElMjAlM0QlMjBEYXRhYmFzZS5nZXRPcmRlckJ5SWQob3JkZXJJZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZG91YmxlJTIwb3JkZXJBbW91bnQlMjAlM0QlMjAoZG91YmxlKSUyMG9yZGVyRGF0YSU1QjAlNUQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3RyaW5nJTIwb3JkZXJTdGF0dXMlMjAlM0QlMjAoU3RyaW5nKSUyMG9yZGVyRGF0YSU1QjElNUQlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFNiVBMyU4MCVFNiU5RiVBNSVFOCVBRSVBMiVFNSU4RCU5NSVFNyU4QSVCNiVFNiU4MCU4MSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghJTVDJTIyUEVORElORyU1QyUyMi5lcXVhbHMob3JkZXJTdGF0dXMpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTglOEUlQjclRTUlOEYlOTYlRTUlQUUlQTIlRTYlODglQjclRTQlQkYlQTElRTYlODElQUYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT2JqZWN0JTVCJTVEJTIwY3VzdG9tZXJEYXRhJTIwJTNEJTIwRGF0YWJhc2UuZ2V0Q3VzdG9tZXJCeUVtYWlsKGN1c3RvbWVyRW1haWwpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFN0cmluZyUyMGN1c3RvbWVyTmFtZSUyMCUzRCUyMChTdHJpbmcpJTIwY3VzdG9tZXJEYXRhJTVCMCU1RCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTdHJpbmclMjBjdXN0b21lclR5cGUlMjAlM0QlMjAoU3RyaW5nKSUyMGN1c3RvbWVyRGF0YSU1QjElNUQlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFOCVBRSVBMSVFNyVBRSU5NyVFNiU4QSU5OCVFNiU4OSVBMyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb3VibGUlMjBkaXNjb3VudCUyMCUzRCUyMDAlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoJTVDJTIyVklQJTVDJTIyLmVxdWFscyhjdXN0b21lclR5cGUpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkaXNjb3VudCUyMCUzRCUyMDAuMSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMjBlbHNlJTIwaWYlMjAoJTVDJTIyUkVHVUxBUiU1QyUyMi5lcXVhbHMoY3VzdG9tZXJUeXBlKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGlzY291bnQlMjAlM0QlMjAwLjA1JTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU1JUJBJTk0JUU3JTk0JUE4JUU2JThBJTk4JUU2JTg5JUEzJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvdWJsZSUyMGZpbmFsQW1vdW50JTIwJTNEJTIwb3JkZXJBbW91bnQlMjAqJTIwKDElMjAtJTIwZGlzY291bnQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTYlQTMlODAlRTYlOUYlQTUlRTUlQkElOTMlRTUlQUQlOTglNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYm9vbGVhbiUyMGlzSW5TdG9jayUyMCUzRCUyMEludmVudG9yeVN5c3RlbS5jaGVja1N0b2NrKG9yZGVySWQpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFpc0luU3RvY2spJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMEVtYWlsU2VydmljZS5zZW5kT3V0T2ZTdG9ja05vdGlmaWNhdGlvbihjdXN0b21lckVtYWlsKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTUlQTQlODQlRTclOTAlODYlRTYlOTQlQUYlRTQlQkIlOTglNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYm9vbGVhbiUyMHBheW1lbnRTdWNjZXNzJTIwJTNEJTIwUGF5bWVudEdhdGV3YXkucHJvY2Vzc1BheW1lbnQob3JkZXJJZCUyQyUyMGZpbmFsQW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghcGF5bWVudFN1Y2Nlc3MpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMEVtYWlsU2VydmljZS5zZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oY3VzdG9tZXJFbWFpbCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU2JTlCJUI0JUU2JTk2JUIwJUU4JUFFJUEyJUU1JThEJTk1JUU3JThBJUI2JUU2JTgwJTgxJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMERhdGFiYXNlLnVwZGF0ZU9yZGVyU3RhdHVzKG9yZGVySWQlMkMlMjAlNUMlMjJQUk9DRVNTRUQlNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTUlOEYlOTElRTklODAlODElRTclQTElQUUlRTglQUUlQTQlRTklODIlQUUlRTQlQkIlQjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3RyaW5nJTIwZW1haWxDb250ZW50JTIwJTNEJTIwJTVDJTIyRGVhciUyMCU1QyUyMiUyMCUyQiUyMGN1c3RvbWVyTmFtZSUyMCUyQiUyMCU1QyUyMiUyQyUyMHlvdXIlMjBvcmRlciUyMCU1QyUyMiUyMCUyQiUyMG9yZGVySWQlMjAlMkIlMjAlNUMlMjIlMjBoYXMlMjBiZWVuJTIwcHJvY2Vzc2VkLiUyMFRvdGFsJTIwYW1vdW50JTNBJTIwJTI0JTVDJTIyJTIwJTJCJTIwZmluYWxBbW91bnQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRW1haWxTZXJ2aWNlLnNlbmRFbWFpbChjdXN0b21lckVtYWlsJTJDJTIwJTVDJTIyT3JkZXIlMjBQcm9jZXNzZWQlNUMlMjIlMkMlMjBlbWFpbENvbnRlbnQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTYlOUIlQjQlRTYlOTYlQjAlRTUlQUUlQTIlRTYlODglQjclRTclQTclQUYlRTUlODglODYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaW50JTIwcG9pbnRzJTIwJTNEJTIwKGludCklMjBmaW5hbEFtb3VudCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBEYXRhYmFzZS51cGRhdGVDdXN0b21lclBvaW50cyhjdXN0b21lckVtYWlsJTJDJTIwcG9pbnRzKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU4JUE3JUE2JUU1JThGJTkxJUU5JTg1JThEJUU5JTgwJTgxJUU2JUI1JTgxJUU3JUE4JThCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFNoaXBwaW5nU2VydmljZS5pbml0aWF0ZVNoaXBwaW5nKG9yZGVySWQpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNrMm1iMnlqcWo4MzFoeHYlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNxeG9tdjNnaTRpcGdxc28yJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQUYlQTUlRTQlQkIlQTMlRTclQTAlODElRTQlQjklOEQlRTQlQjglODAlRTclOUMlOEIlRTYlQjIlQTElRTYlOUMlODklRTklOTclQUUlRTklQTIlOTglRUYlQkMlOEMlRTUlOTElQkQlRTUlOTAlOEQlRTglQTclODQlRTglOEMlODMlRUYlQkMlOEMlRTUlODglODYlRTYlQUUlQjUlRTYlQjglODUlRTYlOTklQjAlRUYlQkMlOEMlRTQlQkQlODYlRTUlQUUlOUUlRTklOTklODUlRTglQkYlOUQlRTUlOEYlOEQlRTQlQkElODZTT0xJRCVFNSU4RSU5RiVFNSU4OCU5OSVFNyU5QSU4NCVFNiVBRiU4RiVFNCVCOCU4MCVFNiU5RCVBMSVFRiVCQyU4QyVFNSU5MCU4QyVFNiU5NyVCNiVFNSVBNiU4MiVFNiU5RSU5QyVFNSVCOCU4QyVFNiU5QyU5QiVFNSVBRiVCOSVFOCVBRiVBNSVFNCVCQiVBMyVFNyVBMCU4MSVFOCVCRiU5QiVFOCVBMSU4QyVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFNSU4OCU5OSVFNiU5OCVBRiVFNyU4MSVCRSVFOSU5QSVCRSVFRiVCQyU4QyVFNCVCRSU4QiVFNSVBNiU4MiVFRiVCQyU4QyVFNiU4OCU5MSVFNCVCQiU4NSVFNCVCQiU4NSVFNiU4MyVCMyVFNiVCNSU4QiVFOCVBRiU5NSVFOCVBRSVBMiVFNSU4RCU5NSVFNyU4QSVCNiVFNiU4MCU4MSVFNiU5OCVBRiVFMiU4MCU5Q3BlbmRpbmclRTIlODAlOUQlRTYlOTclQjYlRTQlQjglOEQlRTglQkYlOUIlRTglQTElOEMlRTUlQTQlODQlRTclOTAlODYlRUYlQkMlOEMlRTUlQjAlQjElRTklOUMlODAlRTglQTYlODFtb2NrJUU2JTg5JTgwJUU2JTlDJTg5JUU3JTlBJTg0JUU0JUJGJUExJUU2JTgxJUFGJUU2JTg5JThEJUU4JTgzJUJEJUU4JUFFJUE5JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU2JUFEJUEzJUU1JUI4JUI4JUU2JTg5JUE3JUU4JUExJThDJUVGJUJDJThDJUU4JUJGJTk5JUU0JUI4JThEJUU0JUJCJTg1JUU1JUFGJUJDJUU4JTg3JUI0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU1JTlCJUIwJUU5JTlBJUJFJUVGJUJDJThDJUU1JTkwJThDJUU2JTk3JUI2JUU0JUJDJTlBJUU1JUFGJUJDJUU4JTg3JUI0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU3JTlBJTg0JUUyJTgwJTlDJUU4JTg0JTg2JUU1JUJDJUIxJUU2JTgwJUE3JUUyJTgwJTlEJUVGJUJDJTg4JUU2JTg5JTgwJUU4JUIwJTkzJUU4JTg0JTg2JUU1JUJDJUIxJUU2JTgwJUE3JUU3JUFFJTgwJUU1JThEJTk1JUU4JUE3JUEzJUU5JTg3JThBJUU1JUIwJUIxJUU2JTk4JUFGJUU2JUI1JThCJUU4JUFGJTk1JUU1JUFFJUI5JUU2JTk4JTkzJUU1JTlCJUEwJUU0JUI4JUJBJUU4JUEyJUFCJUU2JUI1JThCJUU4JUFGJTk1JUU0JUJCJUEzJUU3JUEwJTgxJUU3JTlBJTg0JUU1JUJFJUFFJUU1JUIwJThGJUU2JTk0JUI5JUU1JThGJTk4JUU4JTgwJThDJUU1JUE0JUIxJUU2JTk1JTg4JUVGJUJDJThDJUU0JUJFJThCJUU1JUE2JTgyJUU0JUI4JThBJUU4JUJGJUIwJUU0JUJCJUEzJUU3JUEwJTgxJUU0JUI4JUFEJUVGJUJDJThDJUU1JUE2JTgyJUU2JTlFJTlDJUU1JUEyJTlFJUU1JThBJUEwJUU0JUI4JTgwJUU0JUI4JUFBJUU2JThBJTk4JUU2JTg5JUEzJUU3JUFEJTk2JUU3JTk1JUE1JUVGJUJDJThDJUU0JUJDJTlBJUU1JUFGJUJDJUU4JTg3JUI0JUU5JTkyJTg4JUU1JUFGJUI5JUU4JUFFJUEyJUU1JThEJTk1JUU3JThBJUI2JUU2JTgwJTgxJUU3JTlBJTg0JUU2JUI1JThCJUU4JUFGJTk1JUU1JUE0JUIxJUU4JUI0JUE1JUVGJUJDJThDJUU4JTgwJThDJUU2JThBJTk4JUU2JTg5JUEzJUU3JUFEJTk2JUU3JTk1JUE1JUU0JUI4JThFJUU4JUFFJUEyJUU1JThEJTk1JUU3JThBJUI2JUU2JTgwJTgxJUU0JUI4JThEJUU1JUJBJTk0JUU4JUFGJUE1JUU0JUI4JThFJUU2JUFEJUE0JUU3JTlCJUI4JUU1JTg1JUIzJUVGJUJDJTg5JUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyc3ludGF4JTIyJTNBJTIyYyUyMyUyMiUyQyUyMnRoZW1lJTIyJTNBJTIyZGVmYXVsdCUyMiUyQyUyMndyYXAlMjIlM0F0cnVlJTJDJTIyaWQlMjIlM0ElMjIxOTR4aGclMjIlMkMlMjJ0aXRsZSUyMiUzQSUyMiUyMiUyQyUyMmZvbGQlMjIlM0FmYWxzZSUyQyUyMmhpZGVIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMmNvZGVGb2xkaW5nJTIyJTNBZmFsc2UlMkMlMjJzaG93TGluZU51bWJlciUyMiUzQXRydWUlMkMlMjJmb250JTIyJTNBJTdCJTIyZm9udEZhbWlseSUyMiUzQSUyMmRlZmF1bHRGb250JTIyJTJDJTIybGlnYXR1cmVzJTIyJTNBZmFsc2UlN0QlMkMlMjJlbmFibGVNYWNIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMnV1aWQlMjIlM0ElMjJsejR5OGo3OTd1aDB5MHQ5djlyJTIyJTJDJTIyY29kZSUyMiUzQSUyMiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMERhdGFiYXNlJTIwZGF0YWJhc2UlM0IlNUNuJTIwJTIwJTIwJTIwJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMEludmVudG9yeVN5c3RlbSUyMGludmVudG9yeVN5c3RlbSUzQiU1Q24lMjAlMjAlMjAlMjAlNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwUGF5bWVudEdhdGV3YXklMjBwYXltZW50R2F0ZXdheSUzQiU1Q24lMjAlMjAlMjAlMjAlNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwRW1haWxTZXJ2aWNlJTIwZW1haWxTZXJ2aWNlJTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBTaGlwcGluZ1NlcnZpY2UlMjBzaGlwcGluZ1NlcnZpY2UlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0MEluamVjdE1vY2tzJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlclByb2Nlc3NvciUyMG9yZGVyUHJvY2Vzc29yJTNCJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwRGF0YWJhc2UlMjBkYXRhYmFzZSUzQiU1Q24lMjAlMjAlMjAlMjAlNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwSW52ZW50b3J5U3lzdGVtJTIwaW52ZW50b3J5U3lzdGVtJTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBQYXltZW50R2F0ZXdheSUyMHBheW1lbnRHYXRld2F5JTNCJTVDbiUyMCUyMCUyMCUyMCU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBFbWFpbFNlcnZpY2UlMjBlbWFpbFNlcnZpY2UlM0IlNUNuJTIwJTIwJTIwJTIwJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMFNoaXBwaW5nU2VydmljZSUyMHNoaXBwaW5nU2VydmljZSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwSW5qZWN0TW9ja3MlNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME9yZGVyUHJvY2Vzc29yJTIwb3JkZXJQcm9jZXNzb3IlM0IlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejR5NDZwanFoa2Zsc3lubWI5JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaGVhZGluZy0yJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejVsNWkzaGQ0cjk0NGw2cGRrJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTIxLjMzMzMzMzMzMzMzMzMzMiUyQyUyMmFmdGVyJTIyJTNBOSUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOEIlODYlRTUlODglODYlRTYlQUQlQTUlRTklQUElQTQxJUVGJUJDJTlBJUU4JUFGJTg2JUU1JTg4JUFCJUU1JUFFJTlFJUU0JUJEJTkzJUU3JUIxJUJCJUVGJUJDJTg4JUU2JTg4JTk2JUU5JUEyJTg2JUU1JTlGJTlGJUU2JUE4JUExJUU1JTlFJThCJUVGJUJDJTg5JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NWw2MnhmbWpyeWdkdWFrMmolMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVCRiU5OCVFOCVBRSVCMCVFNSVCRSU5NyVFNSU4OSU4RCVFOSU5RCVBMiVFNiU4RiU5MCVFNSU4OCVCMCVFRiVCQyU4QyVFNSU5MyVBQSVFOSU4MyVBOCVFNSU4OCU4NiVFNCVCQiVBMyVFNyVBMCU4MSVFNSU4NSVCNyVFNiU5QyU4OSVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFNyU5QSU4NCVFNiU5QyU4MCVFNCVCRCVCMyVFNiU4QSU5NSVFOCVCNSU4NCVFNSU5QiU5RSVFNiU4QSVBNSVFNyU4RSU4NyVFNSU5MCU5NyVFRiVCQyU5RiVFOSVBMiU4NiVFNSU5RiU5RiVFNiVBOCVBMSVFNSU5RSU4QiVFOSU4MCU5QSVFNSVCOCVCOCVFNiU5OCVBRiVFOSVBNiU5NiVFOSU4MCU4OSVFNyU5QiVBRSVFNiVBMCU4NyVFMyU4MCU4MiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NW00cjV2MHl6NTAybXR4bjYlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCQiU4RXByb2Nlc3NPcmRlciVFNSU4NyVCRCVFNiU5NSVCMCVFNyU5QSU4NCVFNSU4NSVBNSVFNSU4RiU4MiVFNCVCOCU4RSVFOCVBRiVBNSVFNSU4NyVCRCVFNiU5NSVCMCVFNyU5QSU4NCVFNiVCNSU4MSVFNyVBOCU4QiVFNiU5RCVBNSVFNyU5QyU4QiVFRiVCQyU4QyVFNiU5NSVCNCVFNCVCOCVBQSVFOCVCRiU4NyVFNyVBOCU4QiVFNCVCQyU5QSVFNiVCNiU4OSVFNSU4RiU4QSVFNSU4OCVCMCVFNCVCOCVBNCVFOSU4MyVBOCVFNSU4OCU4NiVFNCVCOCVCQiVFNCVCRCU5MyVFRiVCQyU4QyVFNSU4OCU4NiVFNSU4OCVBQiVFNCVCOCVCQUN1c3RvbWVyJUU0JUI4JThFT3JkZXIlRUYlQkMlOEMlRTUlOUIlQTAlRTYlQUQlQTQlRUYlQkMlOEMlRTYlODglOTElRTQlQkIlQUMlRTklQTYlOTYlRTclOUIlQjglRTYlOEYlOTAlRTUlOEYlOTYlRTglQkYlOTklRTQlQjglQTQlRTQlQjglQUElRTUlQUUlOUUlRTQlQkQlOTMlRTclQjElQkIlRUYlQkMlOEMlRTUlQTYlODIlRTQlQkIlQTMlRTclQTAlODElRTYlODklODAlRTclQTQlQkElRUYlQkMlOUElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZSUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJzeW50YXglMjIlM0ElMjJjJTIzJTIyJTJDJTIydGhlbWUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyd3JhcCUyMiUzQXRydWUlMkMlMjJpZCUyMiUzQSUyMmRwZGVsZSUyMiUyQyUyMnRpdGxlJTIyJTNBJTIyJTIyJTJDJTIyZm9sZCUyMiUzQWZhbHNlJTJDJTIyaGlkZUhlYWRlciUyMiUzQWZhbHNlJTJDJTIyY29kZUZvbGRpbmclMjIlM0FmYWxzZSUyQyUyMnNob3dMaW5lTnVtYmVyJTIyJTNBdHJ1ZSUyQyUyMmZvbnQlMjIlM0ElN0IlMjJmb250RmFtaWx5JTIyJTNBJTIyZGVmYXVsdEZvbnQlMjIlMkMlMjJsaWdhdHVyZXMlMjIlM0FmYWxzZSU3RCUyQyUyMmVuYWJsZU1hY0hlYWRlciUyMiUzQWZhbHNlJTJDJTIydXVpZCUyMiUzQSUyMmx6NWxuZ3JraGk3a3RyNXZ4MGIlMjIlMkMlMjJjb2RlJTIyJTNBJTIyY2xhc3MlMjBPcmRlciUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwU3RyaW5nJTIwaWQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGRvdWJsZSUyMGFtb3VudCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwU3RyaW5nJTIwc3RhdHVzJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlclJlcG9zaXRvcnklMjByZXBvc2l0b3J5JTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTclOUMlODElRTclOTUlQTUlRTQlQjglOEVwcm9jZXNzT3JkZXIlMjAlRTYlOTYlQjklRTYlQjMlOTUlRTYlOTclQTAlRTUlODUlQjMlRTclOUElODQlRTUlODYlODUlRTUlQUUlQjklNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMGRvdWJsZSUyMGdldEFtb3VudCgpJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGFtb3VudCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMFN0cmluZyUyMGdldElkKCklN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwaWQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBib29sZWFuJTIwaXNQZW5kaW5nKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTVDJTIyUEVORElORyU1QyUyMi5lcXVhbHMoc3RhdHVzKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBtYXJrQXNQcm9jZXNzZWQoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLnN0YXR1cyUyMCUzRCUyMCU1QyUyMlBST0NFU1NFRCU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXBvc2l0b3J5LnNhdmUodGhpcyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwY2xhc3MlMjBDdXN0b21lciUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwU3RyaW5nJTIwZW1haWwlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMFN0cmluZyUyMG5hbWUlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMFN0cmluZyUyMHR5cGUlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGludCUyMHBvaW50cyUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwQ3VzdG9tZXJSZXBvc2l0b3J5JTIwcmVwb3NpdG9yeSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU3JTlDJTgxJUU3JTk1JUE1JUU0JUI4JThFcHJvY2Vzc09yZGVyJTIwJUU2JTk2JUI5JUU2JUIzJTk1JUU2JTk3JUEwJUU1JTg1JUIzJUU3JTlBJTg0JUU1JTg2JTg1JUU1JUFFJUI5JTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBTdHJpbmclMjBnZXRDdXN0b21lclR5cGUoKSU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjB0eXBlJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMGFkZFBvaW50cyhpbnQlMjBwb2ludHMpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRoaXMucG9pbnRzJTIwJTJCJTNEJTIwcG9pbnRzJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlcG9zaXRvcnkuc2F2ZSh0aGlzKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjBpbnRlcmZhY2UlMjBPcmRlclJlcG9zaXRvcnklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNhdmUoT3JkZXIlMjBvcmRlciklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjBpbnRlcmZhY2UlMjBDdXN0b21lclJlcG9zaXRvcnklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNhdmUoQ3VzdG9tZXIlMjBjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyY2xhc3MlMjBPcmRlciUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwU3RyaW5nJTIwaWQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGRvdWJsZSUyMGFtb3VudCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwU3RyaW5nJTIwc3RhdHVzJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlclJlcG9zaXRvcnklMjByZXBvc2l0b3J5JTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTclOUMlODElRTclOTUlQTUlRTQlQjglOEVwcm9jZXNzT3JkZXIlMjAlRTYlOTYlQjklRTYlQjMlOTUlRTYlOTclQTAlRTUlODUlQjMlRTclOUElODQlRTUlODYlODUlRTUlQUUlQjklNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMGRvdWJsZSUyMGdldEFtb3VudCgpJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGFtb3VudCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMFN0cmluZyUyMGdldElkKCklN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwaWQlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBib29sZWFuJTIwaXNQZW5kaW5nKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTVDJTIyUEVORElORyU1QyUyMi5lcXVhbHMoc3RhdHVzKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBtYXJrQXNQcm9jZXNzZWQoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLnN0YXR1cyUyMCUzRCUyMCU1QyUyMlBST0NFU1NFRCU1QyUyMiUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXBvc2l0b3J5LnNhdmUodGhpcyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwY2xhc3MlMjBDdXN0b21lciUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwU3RyaW5nJTIwZW1haWwlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMFN0cmluZyUyMG5hbWUlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMFN0cmluZyUyMHR5cGUlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGludCUyMHBvaW50cyUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwQ3VzdG9tZXJSZXBvc2l0b3J5JTIwcmVwb3NpdG9yeSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU3JTlDJTgxJUU3JTk1JUE1JUU0JUI4JThFcHJvY2Vzc09yZGVyJTIwJUU2JTk2JUI5JUU2JUIzJTk1JUU2JTk3JUEwJUU1JTg1JUIzJUU3JTlBJTg0JUU1JTg2JTg1JUU1JUFFJUI5JTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBTdHJpbmclMjBnZXRDdXN0b21lclR5cGUoKSU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjB0eXBlJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMGFkZFBvaW50cyhpbnQlMjBwb2ludHMpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRoaXMucG9pbnRzJTIwJTJCJTNEJTIwcG9pbnRzJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlcG9zaXRvcnkuc2F2ZSh0aGlzKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjBpbnRlcmZhY2UlMjBPcmRlclJlcG9zaXRvcnklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNhdmUoT3JkZXIlMjBvcmRlciklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjBpbnRlcmZhY2UlMjBDdXN0b21lclJlcG9zaXRvcnklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNhdmUoQ3VzdG9tZXIlMjBjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo1bG5lYXI5MWtpOXlyZjRlJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo1bG54eWZvNmc0YWhtZ2E5JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlODglOTElRTQlQkIlQUMlRTQlQjglOEQlRTQlQkIlODUlRTUlQUUlOUElRTQlQjklODklRTQlQkElODZPcmRlciVFNCVCOCU4RUN1c3RvbWVyJUU3JTlBJTg0JUU1JUIxJTlFJUU2JTgwJUE3JUVGJUJDJThDJUU1JTkwJThDJUU2JTk3JUI2JUU1JUIwJTg2JUU0JUI4JThFJUU1JUFFJTlFJUU0JUJEJTkzJUU1JUFGJUI5JUU4JUIxJUExJUU3JTlCJUI4JUU1JTg1JUIzJUU3JTlBJTg0JUU4JUExJThDJUU0JUI4JUJBJUU1JTg2JTg1JUU4JTgxJTlBJUU1JTg4JUIwJUU1JUFFJTlFJUU0JUJFJThCJUU3JUIxJUJCJUU0JUI4JUFEJUVGJUJDJThDJUU4JUJGJTk5JUU0JUI5JTlGJUU2JTk4JUFGJUU2JTg5JTgwJUU4JUIwJTkzJUU3JTlBJTg0JUUyJTgwJTlDJUU1JTg1JTg1JUU4JUExJTgwJUU2JUE4JUExJUU1JTlFJThCJUUyJTgwJTlEJUVGJUJDJTg4UmljaCUyMERvbWFpbiUyME1vZGVsJUVGJUJDJTg5JUUzJTgwJTgyJUU1JTkwJThDJUU2JTk3JUI2JUVGJUJDJThDJUU0JUJEJUJGJUU3JTk0JUE4JUU2JTk1JUIwJUU2JThEJUFFJUU4JUFFJUJGJUU5JTk3JUFFJUU3JTlBJTg0UmVwb3NpdG9yeSVFNiVBOCVBMSVFNSVCQyU4RiVFNSVCMCU4NiVFNiU5NSVCMCVFNiU4RCVBRSVFNyU5QSU4NCVFOCVBRSVCRiVFOSU5NyVBRSVFOSU4MCVCQiVFOCVCRSU5MSVFNCVCQiU4RSVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFNCVCOCVBRCVFNSU4OCU4NiVFNyVBNiVCQiVFNSU4NyVCQSVFNiU5RCVBNSVFRiVCQyU4QyVFNCVCQiU4RSVFOCU4MCU4QyVFOCU4MyVCRCVFNSVBNCU5RiVFNiU5QiVCNCVFNSU4QSVBMCVFNSVBRSVCOSVFNiU5OCU5MyVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFMyU4MCU4MiVFNiVBRiU5NCVFNSVBNiU4Mk9yZGVyJUU1JUFFJTlFJUU0JUJEJTkzJUU5JTgwJTlBJUU4JUJGJTg3JUU1JUFGJUI5b3JkZXJSZXBvc2l0b3J5JUU3JTlBJTg0TW9jayVFRiVCQyU4QyVFNSVCRSU4OCVFNSVBRSVCOSVFNiU5OCU5MyVFNSU4OSVBNSVFNyVBNiVCQiVFNiU5NSVCMCVFNiU4RCVBRSVFOCVBRSVCRiVFOSU5NyVBRSVFOSU4MCVCQiVFOCVCRSU5MSVFRiVCQyU4QyVFNCVCQiU4NSVFNiVCNSU4QiVFOCVBRiU5NSVFNCVCOCU5QSVFNSU4QSVBMSVFOSU4MCVCQiVFOCVCRSU5MSVFRiVCQyU4QyVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFNCVCQiVBMyVFNyVBMCU4MSVFNSVBNiU4MiVFNCVCOCU4QiVFRiVCQyU5QSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmMlMjMlMjIlMkMlMjJ0aGVtZSUyMiUzQSUyMmRlZmF1bHQlMjIlMkMlMjJ3cmFwJTIyJTNBdHJ1ZSUyQyUyMmlkJTIyJTNBJTIydDRpcG53JTIyJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJmb2xkJTIyJTNBZmFsc2UlMkMlMjJoaWRlSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJjb2RlRm9sZGluZyUyMiUzQWZhbHNlJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyZW5hYmxlTWFjSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJ1dWlkJTIyJTNBJTIybHo1bTNxbG1wcDV4aXYwdndocCUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyVGVzdCUyMCU3QiU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwT3JkZXJSZXBvc2l0b3J5JTIwb3JkZXJSZXBvc2l0b3J5JTNCJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlciUyMG9yZGVyJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBCZWZvcmVFYWNoJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBzZXRVcCgpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9yZGVyUmVwb3NpdG9yeSUyMCUzRCUyMG1vY2soT3JkZXJSZXBvc2l0b3J5LmNsYXNzKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcmRlciUyMCUzRCUyMG5ldyUyME9yZGVyKCU1QyUyMjEyMyU1QyUyMiUyQyUyMDEwMC4wJTJDJTIwJTVDJTIyUEVORElORyU1QyUyMiUyQyUyMG9yZGVyUmVwb3NpdG9yeSklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjB0ZXN0SXNQZW5kaW5nX3Nob3VsZFJldHVyblRydWVfd2hlbk9yZGVyU3RhdHVzSXNQZW5kaW5nKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXNzZXJ0VHJ1ZShvcmRlci5pc1BlbmRpbmcoKSklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjB0ZXN0TWFya0FzUHJvY2Vzc2VkX3Nob3VsZFVwZGF0ZVN0YXR1c0FuZFNhdmVfd2hlbkNhbGxlZCgpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9yZGVyLm1hcmtBc1Byb2Nlc3NlZCgpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydEVxdWFscyglNUMlMjJQUk9DRVNTRUQlNUMlMjIlMkMlMjBvcmRlci5nZXRTdGF0dXMoKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyaWZ5KG9yZGVyUmVwb3NpdG9yeSUyQyUyMHRpbWVzKDEpKS5zYXZlKG9yZGVyKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTdEJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIycHVibGljJTIwY2xhc3MlMjBPcmRlclRlc3QlMjAlN0IlNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME9yZGVyUmVwb3NpdG9yeSUyMG9yZGVyUmVwb3NpdG9yeSUzQiU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwT3JkZXIlMjBvcmRlciUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwQmVmb3JlRWFjaCU1Q24lMjAlMjAlMjAlMjBwdWJsaWMlMjB2b2lkJTIwc2V0VXAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcmRlclJlcG9zaXRvcnklMjAlM0QlMjBtb2NrKE9yZGVyUmVwb3NpdG9yeS5jbGFzcyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JkZXIlMjAlM0QlMjBuZXclMjBPcmRlciglNUMlMjIxMjMlNUMlMjIlMkMlMjAxMDAuMCUyQyUyMCU1QyUyMlBFTkRJTkclNUMlMjIlMkMlMjBvcmRlclJlcG9zaXRvcnkpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwVGVzdCU1Q24lMjAlMjAlMjAlMjBwdWJsaWMlMjB2b2lkJTIwdGVzdElzUGVuZGluZ19zaG91bGRSZXR1cm5UcnVlX3doZW5PcmRlclN0YXR1c0lzUGVuZGluZygpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydFRydWUob3JkZXIuaXNQZW5kaW5nKCkpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwVGVzdCU1Q24lMjAlMjAlMjAlMjBwdWJsaWMlMjB2b2lkJTIwdGVzdE1hcmtBc1Byb2Nlc3NlZF9zaG91bGRVcGRhdGVTdGF0dXNBbmRTYXZlX3doZW5DYWxsZWQoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcmRlci5tYXJrQXNQcm9jZXNzZWQoKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhc3NlcnRFcXVhbHMoJTVDJTIyUFJPQ0VTU0VEJTVDJTIyJTJDJTIwb3JkZXIuZ2V0U3RhdHVzKCkpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcmlmeShvcmRlclJlcG9zaXRvcnklMkMlMjB0aW1lcygxKSkuc2F2ZShvcmRlciklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU3RCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmJiaWV2MW40M3htaXh4aWklMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZiYmo1aGlxbHJyODR6NmE4JTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyRG9tYWluJTIwTW9kZWwlRTclOUElODQlRTclQjElQkIlRTUlOUIlQkUlRTUlQTYlODIlRTQlQjglOEIlRUYlQkMlOUElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejVtM283eHlwbDV1ZTloNzljJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyaW5saW5lJTIyJTJDJTIydHlwZSUyMiUzQSUyMmltYWdlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMmlkJTIyJTNBJTIybWhpY3JhJTIyJTJDJTIybmFtZSUyMiUzQSUyMmltYWdlLnBuZyUyMiUyQyUyMnNpemUlMjIlM0ExMjkxMzElMkMlMjJ3aWR0aCUyMiUzQTQzNyUyQyUyMmhlaWdodCUyMiUzQTI2MSUyQyUyMnV1aWQlMjIlM0ElMjJsejZiNWlxNjAyYjN3cGN3NnFzMiUyMiUyQyUyMnNyYyUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGb3NzLWF0YS5hbGliYWJhLmNvbSUyRmFydGljbGUlMkYyMDI0JTJGMDclMkY5MDVhMDI5Mi05OTI5LTQ3YzYtYmM1Zi02Yzg1NzExY2JjMGMucG5nJTIyJTJDJTIyZXh0cmFEYXRhJTIyJTNBJTdCJTIycmVzb3VyY2VJZCUyMiUzQSUyMjU3ZTQ4MTU2LWVjOTMtNDRlOS1hYmMyLTAzM2FmY2QyNjdkZiUyMiUyQyUyMm1ldGFEYXRhJTIyJTNBJTdCJTIyc2l6ZSUyMiUzQTEyOTEzMSUyQyUyMm9yaWdpbldpZHRoJTIyJTNBODc0JTJDJTIyb3JpZ2luSGVpZ2h0JTIyJTNBNTIyJTJDJTIyZm9ybWF0JTIyJTNBJTIycG5nJTIyJTJDJTIycmF0aW8lMjIlM0ExJTdEJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo1cm1memR6Y3BzeDgyc2FhJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTIxLjMzMzMzMzMzMzMzMzMzMiUyQyUyMmFmdGVyJTIyJTNBOSUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOEIlODYlRTUlODglODYlRTYlQUQlQTUlRTklQUElQTQyJUVGJUJDJTlBJUU1JTg5JUE1JUU3JUE2JUJCJUU1JUE0JTk2JUU5JTgzJUE4JUU0JUJFJTlEJUU4JUI1JTk2JUU0JUI4JUJBJUU2JThFJUE1JUU1JThGJUEzJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmFmb2lmeXU1YjNhOWNnbSUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU5JTgzJUE4JUU1JTg4JTg2JUU4JUIwJTgzJUU3JTk0JUE4JUU2JUI2JTg5JUU1JThGJThBJUU1JUE0JTk2JUU5JTgzJUE4JUU2JThFJUE1JUU1JThGJUEzJUVGJUJDJThDJUU2JTg4JTkxJUU0JUJCJUFDJUU1JThGJUFGJUU0JUJCJUE1JUU1JUIwJTg2JUU1JTg1JUI2JUU2JThBJUJEJUU4JUIxJUExJUU0JUI4JUJBJUU2JThFJUE1JUU1JThGJUEzJUVGJUJDJThDJUU1JUIwJTg2JUU1JUE0JTk2JUU5JTgzJUE4JUU2JTlDJThEJUU1JThBJUExJUU2JThBJUJEJUU4JUIxJUExJUU0JUI4JUJBJUU3JUIxJUJCJUU3JTlBJTg0JUU2JThFJUE1JUU1JThGJUEzJUU1JThGJUFGJUU0JUJCJUE1JUU2JTlFJTgxJUU1JUE0JUE3JUU3JUFFJTgwJUU1JThDJTk2JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJThDJUU3JUE0JUJBJUU0JUJFJThCJUU0JUJCJUEzJUU3JUEwJTgxJUU0JUI4JUFEJUU2JUI2JTg5JUU1JThGJThBJUU3JTlBJTg0JUU2JThFJUE1JUU1JThGJUEzJUU0JUI4JUJCJUU4JUE2JTgxJUU2JTlDJTg5NCVFNCVCOCVBQSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmphdmElMjIlMkMlMjJ0aGVtZSUyMiUzQSUyMmRlZmF1bHQlMjIlMkMlMjJ3cmFwJTIyJTNBdHJ1ZSUyQyUyMmlkJTIyJTNBJTIyM3h6MHhwJTIyJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJmb2xkJTIyJTNBZmFsc2UlMkMlMjJoaWRlSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJjb2RlRm9sZGluZyUyMiUzQWZhbHNlJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyZW5hYmxlTWFjSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJ1dWlkJTIyJTNBJTIybHo2YXhkd25maG40cXM5eG8xJTIyJTJDJTIyY29kZSUyMiUzQSUyMiUyMCUyMCUyMCUyMHB1YmxpYyUyMGludGVyZmFjZSUyMFBheW1lbnRHYXRld2F5JTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJvb2xlYW4lMjBwcm9jZXNzUGF5bWVudChTdHJpbmclMjBvcmRlcklkJTJDJTIwZG91YmxlJTIwYW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMGludGVyZmFjZSUyMEludmVudG9yeVN5c3RlbSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBib29sZWFuJTIwY2hlY2tTdG9jayhTdHJpbmclMjBvcmRlcklkKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMGludGVyZmFjZSUyMFNoaXBwaW5nU2VydmljZSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2b2lkJTIwaW5pdGlhdGVTaGlwcGluZyhTdHJpbmclMjBvcmRlcklkKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGludGVyZmFjZSUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNlbmRPdXRPZlN0b2NrTm90aWZpY2F0aW9uKEN1c3RvbWVyJTIwY3VzdG9tZXIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZvaWQlMjBzZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oQ3VzdG9tZXIlMjBjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNlbmRPcmRlckNvbmZpcm1hdGlvbihDdXN0b21lciUyMGN1c3RvbWVyJTJDJTIwT3JkZXIlMjBvcmRlciUyQyUyMGRvdWJsZSUyMGZpbmFsQW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGNsYXNzJTIwRW1haWxOb3RpZmljYXRpb25TZXJ2aWNlJTIwaW1wbGVtZW50cyUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMHNlbmRPdXRPZlN0b2NrTm90aWZpY2F0aW9uKEN1c3RvbWVyJTIwY3VzdG9tZXIpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFNyU5QyU4MSVFNyU5NSVBNSVFNSVBRSU5RSVFNyU4RSVCMCVFNyVCQiU4NiVFOCU4QSU4MiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBzZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oQ3VzdG9tZXIlMjBjdXN0b21lciklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU3JTlDJTgxJUU3JTk1JUE1JUU1JUFFJTlFJUU3JThFJUIwJUU3JUJCJTg2JUU4JThBJTgyJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMHNlbmRPcmRlckNvbmZpcm1hdGlvbihDdXN0b21lciUyMGN1c3RvbWVyJTJDJTIwT3JkZXIlMjBvcmRlciUyQyUyMGRvdWJsZSUyMGZpbmFsQW1vdW50KSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTclOUMlODElRTclOTUlQTUlRTUlQUUlOUUlRTclOEUlQjAlRTclQkIlODYlRTglOEElODIlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCU3RCUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyMCUyMCUyMHB1YmxpYyUyMGludGVyZmFjZSUyMFBheW1lbnRHYXRld2F5JTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJvb2xlYW4lMjBwcm9jZXNzUGF5bWVudChTdHJpbmclMjBvcmRlcklkJTJDJTIwZG91YmxlJTIwYW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMGludGVyZmFjZSUyMEludmVudG9yeVN5c3RlbSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBib29sZWFuJTIwY2hlY2tTdG9jayhTdHJpbmclMjBvcmRlcklkKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMHB1YmxpYyUyMGludGVyZmFjZSUyMFNoaXBwaW5nU2VydmljZSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2b2lkJTIwaW5pdGlhdGVTaGlwcGluZyhTdHJpbmclMjBvcmRlcklkKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGludGVyZmFjZSUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNlbmRPdXRPZlN0b2NrTm90aWZpY2F0aW9uKEN1c3RvbWVyJTIwY3VzdG9tZXIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZvaWQlMjBzZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oQ3VzdG9tZXIlMjBjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdm9pZCUyMHNlbmRPcmRlckNvbmZpcm1hdGlvbihDdXN0b21lciUyMGN1c3RvbWVyJTJDJTIwT3JkZXIlMjBvcmRlciUyQyUyMGRvdWJsZSUyMGZpbmFsQW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGNsYXNzJTIwRW1haWxOb3RpZmljYXRpb25TZXJ2aWNlJTIwaW1wbGVtZW50cyUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMHNlbmRPdXRPZlN0b2NrTm90aWZpY2F0aW9uKEN1c3RvbWVyJTIwY3VzdG9tZXIpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyRiUyRiUyMCVFNyU5QyU4MSVFNyU5NSVBNSVFNSVBRSU5RSVFNyU4RSVCMCVFNyVCQiU4NiVFOCU4QSU4MiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMHZvaWQlMjBzZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oQ3VzdG9tZXIlMjBjdXN0b21lciklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTJGJTJGJTIwJUU3JTlDJTgxJUU3JTk1JUE1JUU1JUFFJTlFJUU3JThFJUIwJUU3JUJCJTg2JUU4JThBJTgyJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMHNlbmRPcmRlckNvbmZpcm1hdGlvbihDdXN0b21lciUyMGN1c3RvbWVyJTJDJTIwT3JkZXIlMjBvcmRlciUyQyUyMGRvdWJsZSUyMGZpbmFsQW1vdW50KSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjAlRTclOUMlODElRTclOTUlQTUlRTUlQUUlOUUlRTclOEUlQjAlRTclQkIlODYlRTglOEElODIlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCU3RCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmF3amV0N3ZoaDhwa3BuMHclMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NXJtcWVvdGhsbTE3OWR2MyUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU4JUJGJTk5JUU0JUJBJTlCJUU2JThFJUE1JUU1JThGJUEzJUU3JTk0JUIxJUU0JUJBJThFJUU1JUFFJTlFJUU3JThFJUIwJUU1JTlDJUE4JUU1JTg1JUI2JUU0JUJCJTk2JUU1JTg2JTg1JUU5JTgzJUE4JUU2JTg4JTk2JUU1JUE0JTk2JUU5JTgzJUE4JUU2JTlDJThEJUU1JThBJUExJUVGJUJDJThDJUU1JTlCJUEwJUU2JUFEJUE0JUU1JUJEJTkzJUU1JTg5JThEJUU3JUJCJTg0JUU0JUJCJUI2JUU0JUI4JUFEJUU2JTg4JTkxJUU0JUJCJUFDJUU1JUI5JUI2JUU2JUIyJUExJUU2JTlDJTg5JUU1JThBJTlFJUU2JUIzJTk1JUU1JUFGJUI5JUU1JTg1JUI2JUU4JUJGJTlCJUU4JUExJThDJUUyJTgwJTlDJUU2JThFJUE1JUU1JThGJUEzJUU1JUFFJTlFJUU3JThFJUIwJUU3JUIxJUJCJUUyJTgwJTlEJUU3JTlBJTg0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJThDJUU4JTgwJThDJUU1JThGJUFBJUU4JTgzJUJEJUU1JUFGJUI5JUU1JTg1JUI2JUU4JUJGJTlCJUU4JUExJThDJUUyJTgwJTlDJUU2JThFJUE1JUU1JThGJUEzJUU0JUJEJUJGJUU3JTk0JUE4JUU4JTgwJTg1JUUyJTgwJTlEJUU3JTlBJTg0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJThDJUU4JTgwJThDJUU4JUJGJTk5JUU5JTgzJUE4JUU1JTg4JTg2JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU0JUI4JThEJUU1JUJBJTk0JUU4JUFGJUE1JUU1JTlDJUE4JUU4JUFGJUE1JUU1JUIxJTgyJUU1JUFFJTlFJUU3JThFJUIwJUVGJUJDJThDJUU4JTgwJThDJUU1JUJBJTk0JUU4JUFGJUE1JUU1JTlDJUE4JUU0JUJEJUJGJUU3JTk0JUE4JUU4JTgwJTg1JUU0JUI4JTgwJUU1JUIxJTgyJUU4JUJGJTlCJUU4JUExJThDJUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJThDJUU0JUI5JTlGJUU1JUIwJUIxJUU2JTk4JUFGJUU0JUI4JThCJUU0JUI4JTgwJUU1JUIwJThGJUU4JThBJTgyJUU2JThGJTkwJUU1JTg4JUIwJUU3JTlBJTg0JUU2JTlDJThEJUU1JThBJUExJUU1JUIxJTgyJUUzJTgwJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2YnM3emlkdWtqbGoxeTd1ayUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU5JTgwJTlBJUU4JUJGJTg3JUU2JThFJUE1JUU1JThGJUEzJUU1JThGJUFGJUU0JUJCJUE1JUU5JTlEJTlFJUU1JUI4JUI4JUU1JUFFJUI5JUU2JTk4JTkzJUU1JTlDJUE4JUUyJTgwJTlDJUU2JThFJUE1JUU1JThGJUEzJUU0JUJEJUJGJUU3JTk0JUE4JUU4JTgwJTg1JUUyJTgwJTlEJUU1JUIxJTgyJUU5JTlEJUEyJUU4JUJGJTlCJUU4JUExJThDTW9jayVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmJtbjA2b2ZkaGhwazVhYmQlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSU5QiVBMCVFNiVBRCVBNCVFOCVCRiU5OSVFOSU4MyVBOCVFNSU4OCU4NiVFNCVCQiVBMyVFNyVBMCU4MSVFNSU4RiVBRiVFNCVCQiVBNSVFNSVCRCU5MiVFNyVCQiU5MyVFNSU4OCVCMCVFNyVBRSU4MCVFNSU4RCU5NSVFNCVCQiVBMyVFNyVBMCU4MSVFOSU4MyVBOCVFNSU4OCU4NiVFRiVCQyU4QyVFNiU5NyVBMCVFOSU5QyU4MCVFOCVCRiU5QiVFOCVBMSU4QyVFMiU4MCU5QyVFNiU4RSVBNSVFNSU4RiVBMyVFNSVBRSU5RSVFNyU4RSVCMCVFNyVCMSVCQiVFMiU4MCU5RCVFNyU5QSU4NCVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmJuajJxbDVveDBsMXRkcyUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmhlYWRpbmctMiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo1cm13d2N2N283d3R1ZDBzJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTIxLjMzMzMzMzMzMzMzMzMzMiUyQyUyMmFmdGVyJTIyJTNBOSUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOEIlODYlRTUlODglODYlRTYlQUQlQTUlRTklQUElQTQzJUVGJUJDJTlBJUU1JUFFJTlFJUU3JThFJUIwJUU2JTlDJThEJUU1JThBJUExJUU1JUIxJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmIxdjRhYno4OHF0YzUzb3ElMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVBRSVBMiVFNSU4RCU5NSVFNiU5QyU4RCVFNSU4QSVBMSVFOSU5QyU4MCVFOCVBNiU4MSVFNiVCNiU4OSVFNSU4RiU4QSVFNSVBNCU5QSVFNCVCOCVBQSVFOSVBMiU4NiVFNSU5RiU5RiVFNSVBRiVCOSVFOCVCMSVBMSVFNyU5QSU4NCVFNSU4RCU4RiVFNCVCRCU5QyVFMyU4MCU4MiVFNSU4QyU4NSVFNiU4QiVBQyVFOSU4MCU5QSVFNyU5RiVBNSVFMyU4MCU4MSVFNiU5NCVBRiVFNCVCQiU5OCVFNyVCRCU5MSVFNSU4NSVCMyVFMyU4MCU4MSVFNSVCQSU5MyVFNSVBRCU5OCVFNyVBRCU4OSVFMyU4MCU4MiVFNiU5QyU4RCVFNSU4QSVBMSVFNSVCMSU4MiVFNiU4RiU5MCVFNCVCRSU5QiVFNCVCQSU4NiVFNCVCOCU4MCVFNCVCOCVBQSVFNSU5MCU4OCVFOSU4MCU4MiVFNyU5QSU4NCVFNSU5QyVCMCVFNiU5NiVCOSVFNiU5RCVBNSVFNSU4RCU4RiVFOCVCMCU4MyVFOCVCRiU5OSVFNCVCQSU5QiVFNiU5MyU4RCVFNCVCRCU5QyVFRiVCQyU4QyVFOCU4MCU4QyVFNCVCOCU4RCVFNiU5OCVBRiVFNSVCMCU4NiVFOCVCRiU5OSVFNyVBNyU4RCVFNSVBNCU4RCVFNiU5RCU4MiVFNyU5QSU4NCVFOSU4MCVCQiVFOCVCRSU5MSVFNiU5NCVCRSVFNSU5QyVBOCVFOCVBRSVBMiVFNSU4RCU5NSVFOSVBMiU4NiVFNSU5RiU5RiVFOCU4NyVBQSVFOCVCQSVBQiVFNCVCOCVBRCVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmU4bDljNDljN3NyOGZnbmolMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSU5QiVBMCVFNiVBRCVBNCVFNSVCMCU4NiVFOCVBRSVBMiVFNSU4RCU5NSVFNiU5QyU4RCVFNSU4QSVBMSVFNSU4RCU5NSVFNyU4QiVBQyVFNiU4QSVCRCVFNyVBNiVCQiVFNSU4NyVCQSVFNiU5RCVBNSVFRiVCQyU4QyVFNCVCRCU5QyVFNCVCOCVCQSVFNiU5QyU4RCVFNSU4QSVBMSVFNSVCMSU4MiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmIxdmNhZ3cxb2c0MDN1NyUyMiUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0ExOC42NjY2NjY2NjY2NjY2NjQlMkMlMjJhZnRlciUyMiUzQTglMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU4JUFFJUEyJUU1JThEJTk1JUU2JTlDJThEJUU1JThBJUExJUU1JUIxJTgyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNCUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmphdmElMjIlMkMlMjJ0aGVtZSUyMiUzQSUyMmRlZmF1bHQlMjIlMkMlMjJ3cmFwJTIyJTNBdHJ1ZSUyQyUyMmlkJTIyJTNBJTIybHh1M3RrJTIyJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJmb2xkJTIyJTNBZmFsc2UlMkMlMjJoaWRlSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJjb2RlRm9sZGluZyUyMiUzQWZhbHNlJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyZW5hYmxlTWFjSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJ1dWlkJTIyJTNBJTIybHo2YjE4c295dmF4ZG1xbjlqYyUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyU2VydmljZSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBJbnZlbnRvcnlTeXN0ZW0lMjBpbnZlbnRvcnlTeXN0ZW0lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGZpbmFsJTIwUGF5bWVudEdhdGV3YXklMjBwYXltZW50R2F0ZXdheSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBOb3RpZmljYXRpb25TZXJ2aWNlJTIwbm90aWZpY2F0aW9uU2VydmljZSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwT3JkZXJTZXJ2aWNlKEludmVudG9yeVN5c3RlbSUyMGludmVudG9yeVN5c3RlbSUyQyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBQYXltZW50R2F0ZXdheSUyMHBheW1lbnRHYXRld2F5JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjBub3RpZmljYXRpb25TZXJ2aWNlKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLmludmVudG9yeVN5c3RlbSUyMCUzRCUyMGludmVudG9yeVN5c3RlbSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLnBheW1lbnRHYXRld2F5JTIwJTNEJTIwcGF5bWVudEdhdGV3YXklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlJTIwJTNEJTIwbm90aWZpY2F0aW9uU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMGJvb2xlYW4lMjBmaW5pc2hPcmRlcihPcmRlciUyMG9yZGVyJTJDJTIwQ3VzdG9tZXIlMjBjdXN0b21lciUyQyUyMGRvdWJsZSUyMGFtb3VudCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JkZXIubWFya0FzUHJvY2Vzc2VkKCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kT3JkZXJDb25maXJtYXRpb24oY3VzdG9tZXIlMkMlMjBvcmRlciUyQyUyMGFtb3VudCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBib29sZWFuJTIwY2hlY2tJbnZlbnRvcnlBbmROb3RpZnkoT3JkZXIlMjBvcmRlciUyQyUyMEN1c3RvbWVyJTIwY3VzdG9tZXIpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFpbnZlbnRvcnlTeXN0ZW0uY2hlY2tTdG9jayhvcmRlci5nZXRJZCgpKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kT3V0T2ZTdG9ja05vdGlmaWNhdGlvbihjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwZmFsc2UlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHRydWUlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBib29sZWFuJTIwcHJvY2Vzc1BheW1lbnRBbmROb3RpZnkoT3JkZXIlMjBvcmRlciUyQyUyMEN1c3RvbWVyJTIwY3VzdG9tZXIlMkMlMjBkb3VibGUlMjBhbW91bnQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFwYXltZW50R2F0ZXdheS5wcm9jZXNzUGF5bWVudChvcmRlci5nZXRJZCgpJTJDJTIwYW1vdW50KSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oY3VzdG9tZXIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGZhbHNlJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjB0cnVlJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlN0QlMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyU2VydmljZSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBJbnZlbnRvcnlTeXN0ZW0lMjBpbnZlbnRvcnlTeXN0ZW0lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGZpbmFsJTIwUGF5bWVudEdhdGV3YXklMjBwYXltZW50R2F0ZXdheSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBOb3RpZmljYXRpb25TZXJ2aWNlJTIwbm90aWZpY2F0aW9uU2VydmljZSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwT3JkZXJTZXJ2aWNlKEludmVudG9yeVN5c3RlbSUyMGludmVudG9yeVN5c3RlbSUyQyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBQYXltZW50R2F0ZXdheSUyMHBheW1lbnRHYXRld2F5JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjBub3RpZmljYXRpb25TZXJ2aWNlKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLmludmVudG9yeVN5c3RlbSUyMCUzRCUyMGludmVudG9yeVN5c3RlbSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLnBheW1lbnRHYXRld2F5JTIwJTNEJTIwcGF5bWVudEdhdGV3YXklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlJTIwJTNEJTIwbm90aWZpY2F0aW9uU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyMGJvb2xlYW4lMjBmaW5pc2hPcmRlcihPcmRlciUyMG9yZGVyJTJDJTIwQ3VzdG9tZXIlMjBjdXN0b21lciUyQyUyMGRvdWJsZSUyMGFtb3VudCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JkZXIubWFya0FzUHJvY2Vzc2VkKCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kT3JkZXJDb25maXJtYXRpb24oY3VzdG9tZXIlMkMlMjBvcmRlciUyQyUyMGFtb3VudCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBib29sZWFuJTIwY2hlY2tJbnZlbnRvcnlBbmROb3RpZnkoT3JkZXIlMjBvcmRlciUyQyUyMEN1c3RvbWVyJTIwY3VzdG9tZXIpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFpbnZlbnRvcnlTeXN0ZW0uY2hlY2tTdG9jayhvcmRlci5nZXRJZCgpKSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kT3V0T2ZTdG9ja05vdGlmaWNhdGlvbihjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwZmFsc2UlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHRydWUlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBib29sZWFuJTIwcHJvY2Vzc1BheW1lbnRBbmROb3RpZnkoT3JkZXIlMjBvcmRlciUyQyUyMEN1c3RvbWVyJTIwY3VzdG9tZXIlMkMlMjBkb3VibGUlMjBhbW91bnQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFwYXltZW50R2F0ZXdheS5wcm9jZXNzUGF5bWVudChvcmRlci5nZXRJZCgpJTJDJTIwYW1vdW50KSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm90aWZpY2F0aW9uU2VydmljZS5zZW5kUGF5bWVudEZhaWx1cmVOb3RpZmljYXRpb24oY3VzdG9tZXIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGZhbHNlJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjB0cnVlJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZiMHR5a2YzNDdnY3p5ajg4JTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2ZHlpZzgyaDg1eGQ2dGdkYyUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCVCRiU5OSVFNiVBMCVCNyVFNiU4OCU5MSVFNCVCQiVBQyVFNSU4RiVBRiVFNCVCQiVBNSVFOSU4NyU4RCVFNyU4MiVCOSVFNiVCNSU4QiVFOCVBRiU5NSVFNiU5QyU4RCVFNSU4QSVBMSVFNSVCMSU4MiVFNiU5RiU5MCVFNCVCOCVBQSVFNSU4QSU5RiVFOCU4MyVCRCVFRiVCQyU4QyVFNSU4NSVCNiVFNCVCQiU5NiVFNiU5NyVBMCVFNSU4NSVCMyVFNSU4QSU5RiVFOCU4MyVCRCVFOSU4MCU5QSVFOCVCRiU4N01vY2slRTYlOEUlQTUlRTUlOEYlQTMlRTYlOTYlQjklRTUlQkMlOEYlRTUlQUUlOUUlRTclOEUlQjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZSUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJzeW50YXglMjIlM0ElMjJjJTIzJTIyJTJDJTIydGhlbWUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyd3JhcCUyMiUzQXRydWUlMkMlMjJpZCUyMiUzQSUyMjF6OTFxbSUyMiUyQyUyMnRpdGxlJTIyJTNBJTIyJTIyJTJDJTIyZm9sZCUyMiUzQWZhbHNlJTJDJTIyaGlkZUhlYWRlciUyMiUzQWZhbHNlJTJDJTIyY29kZUZvbGRpbmclMjIlM0FmYWxzZSUyQyUyMnNob3dMaW5lTnVtYmVyJTIyJTNBdHJ1ZSUyQyUyMmZvbnQlMjIlM0ElN0IlMjJmb250RmFtaWx5JTIyJTNBJTIyZGVmYXVsdEZvbnQlMjIlMkMlMjJsaWdhdHVyZXMlMjIlM0FmYWxzZSU3RCUyQyUyMmVuYWJsZU1hY0hlYWRlciUyMiUzQWZhbHNlJTJDJTIydXVpZCUyMiUzQSUyMmx6NmR5ZzFibjBkcTV6bWpyOSUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyU2VydmljZVRlc3QlMjAlN0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMEludmVudG9yeVN5c3RlbSUyMGludmVudG9yeVN5c3RlbSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwUGF5bWVudEdhdGV3YXklMjBwYXltZW50R2F0ZXdheSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwTW9jayU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwTm90aWZpY2F0aW9uU2VydmljZSUyMG5vdGlmaWNhdGlvblNlcnZpY2UlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME9yZGVyJTIwb3JkZXIlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMEN1c3RvbWVyJTIwY3VzdG9tZXIlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlclNlcnZpY2UlMjBvcmRlclNlcnZpY2UlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0MEJlZm9yZUVhY2glNUNuJTIwJTIwJTIwJTIwdm9pZCUyMHNldFVwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTW9ja2l0b0Fubm90YXRpb25zLm9wZW5Nb2Nrcyh0aGlzKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcmRlclNlcnZpY2UlMjAlM0QlMjBuZXclMjBPcmRlclNlcnZpY2UoaW52ZW50b3J5U3lzdGVtJTJDJTIwcGF5bWVudEdhdGV3YXklMkMlMjBub3RpZmljYXRpb25TZXJ2aWNlKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCU0MFRlc3QlNUNuJTIwJTIwJTIwJTIwdm9pZCUyMHRlc3RGaW5pc2hPcmRlcl9zaG91bGRNYXJrQXNQcm9jZXNzZWRBbmRTZW5kQ29uZmlybWF0aW9uX3doZW5DYWxsZWQoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb3VibGUlMjBhbW91bnQlMjAlM0QlMjAxMDAuMCUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JkZXJTZXJ2aWNlLmZpbmlzaE9yZGVyKG9yZGVyJTJDJTIwY3VzdG9tZXIlMkMlMjBhbW91bnQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2ZXJpZnkob3JkZXIpLm1hcmtBc1Byb2Nlc3NlZCgpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcmlmeShub3RpZmljYXRpb25TZXJ2aWNlKS5zZW5kT3JkZXJDb25maXJtYXRpb24oY3VzdG9tZXIlMkMlMjBvcmRlciUyQyUyMGFtb3VudCklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHZvaWQlMjB0ZXN0Q2hlY2tJbnZlbnRvcnlBbmROb3RpZnlfc2hvdWxkUmV0dXJuVHJ1ZV93aGVuU3RvY2tBdmFpbGFibGUoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKGludmVudG9yeVN5c3RlbS5jaGVja1N0b2NrKGFueVN0cmluZygpKSkudGhlblJldHVybih0cnVlKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKG9yZGVyLmdldElkKCkpLnRoZW5SZXR1cm4oJTVDJTIyMTIzJTVDJTIyKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYm9vbGVhbiUyMHJlc3VsdCUyMCUzRCUyMG9yZGVyU2VydmljZS5jaGVja0ludmVudG9yeUFuZE5vdGlmeShvcmRlciUyQyUyMGN1c3RvbWVyKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXNzZXJ0VHJ1ZShyZXN1bHQpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcmlmeShpbnZlbnRvcnlTeXN0ZW0pLmNoZWNrU3RvY2soJTVDJTIyMTIzJTVDJTIyKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2ZXJpZnkobm90aWZpY2F0aW9uU2VydmljZSUyQyUyMG5ldmVyKCkpLnNlbmRPdXRPZlN0b2NrTm90aWZpY2F0aW9uKGFueSgpKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCU0MFRlc3QlNUNuJTIwJTIwJTIwJTIwdm9pZCUyMHRlc3RDaGVja0ludmVudG9yeUFuZE5vdGlmeV9zaG91bGRSZXR1cm5GYWxzZUFuZE5vdGlmeV93aGVuU3RvY2tVbmF2YWlsYWJsZSgpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4oaW52ZW50b3J5U3lzdGVtLmNoZWNrU3RvY2soYW55U3RyaW5nKCkpKS50aGVuUmV0dXJuKGZhbHNlKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKG9yZGVyLmdldElkKCkpLnRoZW5SZXR1cm4oJTVDJTIyMTIzJTVDJTIyKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYm9vbGVhbiUyMHJlc3VsdCUyMCUzRCUyMG9yZGVyU2VydmljZS5jaGVja0ludmVudG9yeUFuZE5vdGlmeShvcmRlciUyQyUyMGN1c3RvbWVyKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXNzZXJ0RmFsc2UocmVzdWx0KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2ZXJpZnkoaW52ZW50b3J5U3lzdGVtKS5jaGVja1N0b2NrKCU1QyUyMjEyMyU1QyUyMiklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyaWZ5KG5vdGlmaWNhdGlvblNlcnZpY2UpLnNlbmRPdXRPZlN0b2NrTm90aWZpY2F0aW9uKGN1c3RvbWVyKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTdEJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIycHVibGljJTIwY2xhc3MlMjBPcmRlclNlcnZpY2VUZXN0JTIwJTdCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBJbnZlbnRvcnlTeXN0ZW0lMjBpbnZlbnRvcnlTeXN0ZW0lM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMFBheW1lbnRHYXRld2F5JTIwcGF5bWVudEdhdGV3YXklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME5vdGlmaWNhdGlvblNlcnZpY2UlMjBub3RpZmljYXRpb25TZXJ2aWNlJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlciUyMG9yZGVyJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBDdXN0b21lciUyMGN1c3RvbWVyJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwT3JkZXJTZXJ2aWNlJTIwb3JkZXJTZXJ2aWNlJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBCZWZvcmVFYWNoJTVDbiUyMCUyMCUyMCUyMHZvaWQlMjBzZXRVcCgpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME1vY2tpdG9Bbm5vdGF0aW9ucy5vcGVuTW9ja3ModGhpcyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JkZXJTZXJ2aWNlJTIwJTNEJTIwbmV3JTIwT3JkZXJTZXJ2aWNlKGludmVudG9yeVN5c3RlbSUyQyUyMHBheW1lbnRHYXRld2F5JTJDJTIwbm90aWZpY2F0aW9uU2VydmljZSklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHZvaWQlMjB0ZXN0RmluaXNoT3JkZXJfc2hvdWxkTWFya0FzUHJvY2Vzc2VkQW5kU2VuZENvbmZpcm1hdGlvbl93aGVuQ2FsbGVkKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZG91YmxlJTIwYW1vdW50JTIwJTNEJTIwMTAwLjAlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9yZGVyU2VydmljZS5maW5pc2hPcmRlcihvcmRlciUyQyUyMGN1c3RvbWVyJTJDJTIwYW1vdW50KSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyaWZ5KG9yZGVyKS5tYXJrQXNQcm9jZXNzZWQoKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2ZXJpZnkobm90aWZpY2F0aW9uU2VydmljZSkuc2VuZE9yZGVyQ29uZmlybWF0aW9uKGN1c3RvbWVyJTJDJTIwb3JkZXIlMkMlMjBhbW91bnQpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwVGVzdCU1Q24lMjAlMjAlMjAlMjB2b2lkJTIwdGVzdENoZWNrSW52ZW50b3J5QW5kTm90aWZ5X3Nob3VsZFJldHVyblRydWVfd2hlblN0b2NrQXZhaWxhYmxlKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihpbnZlbnRvcnlTeXN0ZW0uY2hlY2tTdG9jayhhbnlTdHJpbmcoKSkpLnRoZW5SZXR1cm4odHJ1ZSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihvcmRlci5nZXRJZCgpKS50aGVuUmV0dXJuKCU1QyUyMjEyMyU1QyUyMiklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJvb2xlYW4lMjByZXN1bHQlMjAlM0QlMjBvcmRlclNlcnZpY2UuY2hlY2tJbnZlbnRvcnlBbmROb3RpZnkob3JkZXIlMkMlMjBjdXN0b21lciklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydFRydWUocmVzdWx0KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2ZXJpZnkoaW52ZW50b3J5U3lzdGVtKS5jaGVja1N0b2NrKCU1QyUyMjEyMyU1QyUyMiklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyaWZ5KG5vdGlmaWNhdGlvblNlcnZpY2UlMkMlMjBuZXZlcigpKS5zZW5kT3V0T2ZTdG9ja05vdGlmaWNhdGlvbihhbnkoKSklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHZvaWQlMjB0ZXN0Q2hlY2tJbnZlbnRvcnlBbmROb3RpZnlfc2hvdWxkUmV0dXJuRmFsc2VBbmROb3RpZnlfd2hlblN0b2NrVW5hdmFpbGFibGUoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKGludmVudG9yeVN5c3RlbS5jaGVja1N0b2NrKGFueVN0cmluZygpKSkudGhlblJldHVybihmYWxzZSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihvcmRlci5nZXRJZCgpKS50aGVuUmV0dXJuKCU1QyUyMjEyMyU1QyUyMiklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJvb2xlYW4lMjByZXN1bHQlMjAlM0QlMjBvcmRlclNlcnZpY2UuY2hlY2tJbnZlbnRvcnlBbmROb3RpZnkob3JkZXIlMkMlMjBjdXN0b21lciklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydEZhbHNlKHJlc3VsdCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyaWZ5KGludmVudG9yeVN5c3RlbSkuY2hlY2tTdG9jayglNUMlMjIxMjMlNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcmlmeShub3RpZmljYXRpb25TZXJ2aWNlKS5zZW5kT3V0T2ZTdG9ja05vdGlmaWNhdGlvbihjdXN0b21lciklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU3RCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmR5ZDl2MmdjZmdkNDFub3ElMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaGVhZGluZy0zJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZiMXpsbXhnN2VzdXFkN3QlMjIlMkMlMjJzcGFjaW5nJTIyJTNBJTdCJTIyYmVmb3JlJTIyJTNBMTguNjY2NjY2NjY2NjY2NjY0JTJDJTIyYWZ0ZXIlMjIlM0E4JTJDJTIybGluZSUyMiUzQTAuODUyOTQxMTc2NDcwNTg4MiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU4QSU5OCVFNiU4OSVBMyVFOCVBRSVBMSVFNyVBRSU5NyVFNiU5QyU4RCVFNSU4QSVBMSVFNSVCMSU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnN6JTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnZhbHVlJTIyJTNBMTQlMkMlMjJzelVuaXQlMjIlM0ElMjJwdCUyMiU3RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZmOGV5c2RibGlrZWRwbDVzJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQUYlQTUlRTUlQjElODIlRTUlQjklQjYlRTYlQjIlQTElRTYlOUMlODklRTQlQjglOEIlRTUlQjElODIlRTQlQkUlOUQlRTglQjUlOTYlRUYlQkMlOEMlRTUlQjAlODYlRTglQUYlQTUlRTclQjElQkIlRTYlOTQlQkUlRTUlODglQjAlRTYlOUMlOEQlRTUlOEElQTElRTUlQjElODIlRTclOUElODQlRTUlOEUlOUYlRTUlOUIlQTAlRTYlOTglQUYlRTglQUYlQTUlRTclQjElQkIlRTUlOEYlQUYlRTglODMlQkQlRTQlQkMlOUElRTglQTIlQUIlRTUlQTQlOUElRTQlQjglQUFEb21haW4lRTUlQUYlQjklRTglQjElQTElRTUlODUlQjElRTQlQkElQUIlRUYlQkMlOEMlRTglODAlOEMlRTYlOEElOTglRTYlODklQTMlRTYlOTglQUYlRTklOUQlOUUlRTUlQjglQjglRTYlQTAlQjglRTUlQkYlODMlRTclOUElODQlRTQlQjglOUElRTUlOEElQTElRTklODAlQkIlRTglQkUlOTElRUYlQkMlOEMlRTklOTIlODglRTUlQUYlQjklRTglQUYlQTUlRTklODMlQTglRTUlODglODYlRTklODAlQkIlRTglQkUlOTElRTclOUElODQlRTYlODklODAlRTYlOUMlODklRTUlODglODYlRTYlOTQlQUYlRTglQkYlOUIlRTglQTElOEMlRTUlODUlQTglRTklOUQlQTIlRTglQTYlODYlRTclOUIlOTYlRTklOUQlOUUlRTUlQjglQjglRTklODclOEQlRTglQTYlODElRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZSUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJzeW50YXglMjIlM0ElMjJqYXZhJTIyJTJDJTIydGhlbWUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyd3JhcCUyMiUzQXRydWUlMkMlMjJpZCUyMiUzQSUyMjdwMml0YiUyMiUyQyUyMnRpdGxlJTIyJTNBJTIyJTIyJTJDJTIyZm9sZCUyMiUzQWZhbHNlJTJDJTIyaGlkZUhlYWRlciUyMiUzQWZhbHNlJTJDJTIyY29kZUZvbGRpbmclMjIlM0FmYWxzZSUyQyUyMnNob3dMaW5lTnVtYmVyJTIyJTNBdHJ1ZSUyQyUyMmZvbnQlMjIlM0ElN0IlMjJmb250RmFtaWx5JTIyJTNBJTIyZGVmYXVsdEZvbnQlMjIlMkMlMjJsaWdhdHVyZXMlMjIlM0FmYWxzZSU3RCUyQyUyMmVuYWJsZU1hY0hlYWRlciUyMiUzQWZhbHNlJTJDJTIydXVpZCUyMiUzQSUyMmx6NmIyN3MzaHMzbW0zOHlhaGolMjIlMkMlMjJjb2RlJTIyJTNBJTIyY2xhc3MlMjBEaXNjb3VudFBvbGljeSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjBkb3VibGUlMjBjYWxjdWxhdGVGaW5hbEFtb3VudChPcmRlciUyMG9yZGVyJTJDJTIwQ3VzdG9tZXIlMjBjdXN0b21lciklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwb3JkZXIuZ2V0QW1vdW50KCklMjAqJTIwKDElMjAtJTIwZ2V0RGlzY291bnRSYXRlKGN1c3RvbWVyLmdldEN1c3RvbWVyVHlwZSgpKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaXZhdGUlMjBkb3VibGUlMjBnZXREaXNjb3VudFJhdGUoU3RyaW5nJTIwY3VzdG9tZXJUeXBlKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzd2l0Y2glMjAoY3VzdG9tZXJUeXBlKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjYXNlJTIwJTVDJTIyVklQJTVDJTIyJTNBJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMDAuMSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjYXNlJTIwJTVDJTIyUkVHVUxBUiU1QyUyMiUzQSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAwLjA1JTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRlZmF1bHQlM0ElNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwMCUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCU3RCUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMmNsYXNzJTIwRGlzY291bnRQb2xpY3klMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwZG91YmxlJTIwY2FsY3VsYXRlRmluYWxBbW91bnQoT3JkZXIlMjBvcmRlciUyQyUyMEN1c3RvbWVyJTIwY3VzdG9tZXIpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG9yZGVyLmdldEFtb3VudCgpJTIwKiUyMCgxJTIwLSUyMGdldERpc2NvdW50UmF0ZShjdXN0b21lci5nZXRDdXN0b21lclR5cGUoKSkpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZG91YmxlJTIwZ2V0RGlzY291bnRSYXRlKFN0cmluZyUyMGN1c3RvbWVyVHlwZSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3dpdGNoJTIwKGN1c3RvbWVyVHlwZSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2FzZSUyMCU1QyUyMlZJUCU1QyUyMiUzQSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAwLjElM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2FzZSUyMCU1QyUyMlJFR1VMQVIlNUMlMjIlM0ElNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwMC4wNSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkZWZhdWx0JTNBJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMDAlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZkem43bnN3cTE1Y2dqYnlhJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU4JUFGJUE1JUU3JUIxJUJCJUU1JUFGJUI5JUU1JUJBJTk0JUU3JTlBJTg0JUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyc3ludGF4JTIyJTNBJTIyamF2YSUyMiUyQyUyMnRoZW1lJTIyJTNBJTIyZGVmYXVsdCUyMiUyQyUyMndyYXAlMjIlM0F0cnVlJTJDJTIyaWQlMjIlM0ElMjIxdXV2ZGclMjIlMkMlMjJ0aXRsZSUyMiUzQSUyMiUyMiUyQyUyMmZvbGQlMjIlM0FmYWxzZSUyQyUyMmhpZGVIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMmNvZGVGb2xkaW5nJTIyJTNBZmFsc2UlMkMlMjJzaG93TGluZU51bWJlciUyMiUzQXRydWUlMkMlMjJmb250JTIyJTNBJTdCJTIyZm9udEZhbWlseSUyMiUzQSUyMmRlZmF1bHRGb250JTIyJTJDJTIybGlnYXR1cmVzJTIyJTNBZmFsc2UlN0QlMkMlMjJlbmFibGVNYWNIZWFkZXIlMjIlM0FmYWxzZSUyQyUyMnV1aWQlMjIlM0ElMjJsejZkemhoaDBoaG5zZXZsM2NyJTIyJTJDJTIyY29kZSUyMiUzQSUyMmNsYXNzJTIwRGlzY291bnRQb2xpY3lUZXN0JTIwJTdCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBPcmRlciUyMG9yZGVyJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBNb2NrJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBDdXN0b21lciUyMGN1c3RvbWVyJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBwcml2YXRlJTIwRGlzY291bnRQb2xpY3klMjBkaXNjb3VudFBvbGljeSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwQmVmb3JlRWFjaCU1Q24lMjAlMjAlMjAlMjB2b2lkJTIwc2V0VXAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBNb2NraXRvQW5ub3RhdGlvbnMub3Blbk1vY2tzKHRoaXMpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRpc2NvdW50UG9saWN5JTIwJTNEJTIwbmV3JTIwRGlzY291bnRQb2xpY3koKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCU0MFRlc3QlNUNuJTIwJTIwJTIwJTIwdm9pZCUyMHRlc3RDYWxjdWxhdGVGaW5hbEFtb3VudF9zaG91bGRBcHBseVZpcERpc2NvdW50X3doZW5DdXN0b21lcklzVmlwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihvcmRlci5nZXRBbW91bnQoKSkudGhlblJldHVybigxMDAuMCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihjdXN0b21lci5nZXRDdXN0b21lclR5cGUoKSkudGhlblJldHVybiglNUMlMjJWSVAlNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb3VibGUlMjBmaW5hbEFtb3VudCUyMCUzRCUyMGRpc2NvdW50UG9saWN5LmNhbGN1bGF0ZUZpbmFsQW1vdW50KG9yZGVyJTJDJTIwY3VzdG9tZXIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhc3NlcnRFcXVhbHMoOTAuMCUyQyUyMGZpbmFsQW1vdW50JTJDJTIwMC4wMDEpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwVGVzdCU1Q24lMjAlMjAlMjAlMjB2b2lkJTIwdGVzdENhbGN1bGF0ZUZpbmFsQW1vdW50X3Nob3VsZEFwcGx5UmVndWxhckRpc2NvdW50X3doZW5DdXN0b21lcklzUmVndWxhcigpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4ob3JkZXIuZ2V0QW1vdW50KCkpLnRoZW5SZXR1cm4oMTAwLjApJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4oY3VzdG9tZXIuZ2V0Q3VzdG9tZXJUeXBlKCkpLnRoZW5SZXR1cm4oJTVDJTIyUkVHVUxBUiU1QyUyMiklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvdWJsZSUyMGZpbmFsQW1vdW50JTIwJTNEJTIwZGlzY291bnRQb2xpY3kuY2FsY3VsYXRlRmluYWxBbW91bnQob3JkZXIlMkMlMjBjdXN0b21lciklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydEVxdWFscyg5NS4wJTJDJTIwZmluYWxBbW91bnQlMkMlMjAwLjAwMSklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHZvaWQlMjB0ZXN0Q2FsY3VsYXRlRmluYWxBbW91bnRfc2hvdWxkQXBwbHlOb0Rpc2NvdW50X3doZW5DdXN0b21lclR5cGVJc1Vua25vd24oKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKG9yZGVyLmdldEFtb3VudCgpKS50aGVuUmV0dXJuKDEwMC4wKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKGN1c3RvbWVyLmdldEN1c3RvbWVyVHlwZSgpKS50aGVuUmV0dXJuKCU1QyUyMlVOS05PV04lNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb3VibGUlMjBmaW5hbEFtb3VudCUyMCUzRCUyMGRpc2NvdW50UG9saWN5LmNhbGN1bGF0ZUZpbmFsQW1vdW50KG9yZGVyJTJDJTIwY3VzdG9tZXIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhc3NlcnRFcXVhbHMoMTAwLjAlMkMlMjBmaW5hbEFtb3VudCUyQyUyMDAuMDAxKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTdEJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyY2xhc3MlMjBEaXNjb3VudFBvbGljeVRlc3QlMjAlN0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME9yZGVyJTIwb3JkZXIlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCU0ME1vY2slNUNuJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMEN1c3RvbWVyJTIwY3VzdG9tZXIlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMHByaXZhdGUlMjBEaXNjb3VudFBvbGljeSUyMGRpc2NvdW50UG9saWN5JTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBCZWZvcmVFYWNoJTVDbiUyMCUyMCUyMCUyMHZvaWQlMjBzZXRVcCgpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME1vY2tpdG9Bbm5vdGF0aW9ucy5vcGVuTW9ja3ModGhpcyklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGlzY291bnRQb2xpY3klMjAlM0QlMjBuZXclMjBEaXNjb3VudFBvbGljeSgpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTQwVGVzdCU1Q24lMjAlMjAlMjAlMjB2b2lkJTIwdGVzdENhbGN1bGF0ZUZpbmFsQW1vdW50X3Nob3VsZEFwcGx5VmlwRGlzY291bnRfd2hlbkN1c3RvbWVySXNWaXAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKG9yZGVyLmdldEFtb3VudCgpKS50aGVuUmV0dXJuKDEwMC4wKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGVuKGN1c3RvbWVyLmdldEN1c3RvbWVyVHlwZSgpKS50aGVuUmV0dXJuKCU1QyUyMlZJUCU1QyUyMiklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvdWJsZSUyMGZpbmFsQW1vdW50JTIwJTNEJTIwZGlzY291bnRQb2xpY3kuY2FsY3VsYXRlRmluYWxBbW91bnQob3JkZXIlMkMlMjBjdXN0b21lciklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydEVxdWFscyg5MC4wJTJDJTIwZmluYWxBbW91bnQlMkMlMjAwLjAwMSklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlNDBUZXN0JTVDbiUyMCUyMCUyMCUyMHZvaWQlMjB0ZXN0Q2FsY3VsYXRlRmluYWxBbW91bnRfc2hvdWxkQXBwbHlSZWd1bGFyRGlzY291bnRfd2hlbkN1c3RvbWVySXNSZWd1bGFyKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihvcmRlci5nZXRBbW91bnQoKSkudGhlblJldHVybigxMDAuMCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hlbihjdXN0b21lci5nZXRDdXN0b21lclR5cGUoKSkudGhlblJldHVybiglNUMlMjJSRUdVTEFSJTVDJTIyKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZG91YmxlJTIwZmluYWxBbW91bnQlMjAlM0QlMjBkaXNjb3VudFBvbGljeS5jYWxjdWxhdGVGaW5hbEFtb3VudChvcmRlciUyQyUyMGN1c3RvbWVyKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXNzZXJ0RXF1YWxzKDk1LjAlMkMlMjBmaW5hbEFtb3VudCUyQyUyMDAuMDAxKSUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCU0MFRlc3QlNUNuJTIwJTIwJTIwJTIwdm9pZCUyMHRlc3RDYWxjdWxhdGVGaW5hbEFtb3VudF9zaG91bGRBcHBseU5vRGlzY291bnRfd2hlbkN1c3RvbWVyVHlwZUlzVW5rbm93bigpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4ob3JkZXIuZ2V0QW1vdW50KCkpLnRoZW5SZXR1cm4oMTAwLjApJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdoZW4oY3VzdG9tZXIuZ2V0Q3VzdG9tZXJUeXBlKCkpLnRoZW5SZXR1cm4oJTVDJTIyVU5LTk9XTiU1QyUyMiklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvdWJsZSUyMGZpbmFsQW1vdW50JTIwJTNEJTIwZGlzY291bnRQb2xpY3kuY2FsY3VsYXRlRmluYWxBbW91bnQob3JkZXIlMkMlMjBjdXN0b21lciklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFzc2VydEVxdWFscygxMDAuMCUyQyUyMGZpbmFsQW1vdW50JTJDJTIwMC4wMDEpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZiMjY1azc3ZjBmMWl4NWxtJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2YjIydjhrbHplYnF2ZzA3ayUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmF6OG4xeTlpbDQ2OGx5ZyUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTIlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmF6OHJxdHg3eTJkenZjeSUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCUyQyUyMnNwYWNpbmclMjIlM0ElN0IlMjJiZWZvcmUlMjIlM0EyMS4zMzMzMzMzMzMzMzMzMzIlMkMlMjJhZnRlciUyMiUzQTklMkMlMjJsaW5lJTIyJTNBMC44NTI5NDExNzY0NzA1ODgyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JThCJTg2JUU1JTg4JTg2JUU2JUFEJUE1JUU5JUFBJUE0NCUzQSUyMCUyMCUyMCVFNCVCRCVCRiVFNyU5NCVBOCVFNiU4QiU4NiVFNSU4OCU4NiVFNSU5MCU4RSVFNyU5QSU4NCVFNyVCMSVCQiVFOSU4NyU4RCVFNiU5RSU4NE9yZGVyUHJvY2Vzc29yJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyc3olMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydmFsdWUlMjIlM0ExNiUyQyUyMnN6VW5pdCUyMiUzQSUyMnB0JTIyJTdEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmMlMjMlMjIlMkMlMjJ0aGVtZSUyMiUzQSUyMmRlZmF1bHQlMjIlMkMlMjJ3cmFwJTIyJTNBdHJ1ZSUyQyUyMmlkJTIyJTNBJTIyN3FxYWJ4JTIyJTJDJTIydGl0bGUlMjIlM0ElMjIlMjIlMkMlMjJmb2xkJTIyJTNBZmFsc2UlMkMlMjJoaWRlSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJjb2RlRm9sZGluZyUyMiUzQWZhbHNlJTJDJTIyc2hvd0xpbmVOdW1iZXIlMjIlM0F0cnVlJTJDJTIyZm9udCUyMiUzQSU3QiUyMmZvbnRGYW1pbHklMjIlM0ElMjJkZWZhdWx0Rm9udCUyMiUyQyUyMmxpZ2F0dXJlcyUyMiUzQWZhbHNlJTdEJTJDJTIyZW5hYmxlTWFjSGVhZGVyJTIyJTNBZmFsc2UlMkMlMjJ1dWlkJTIyJTNBJTIybHo2YjBnbmsyMDVrdjN6cmRpNiUyMiUyQyUyMmNvZGUlMjIlM0ElMjJwdWJsaWMlMjBjbGFzcyUyME9yZGVyUHJvY2Vzc29yJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaXZhdGUlMjBmaW5hbCUyMFNoaXBwaW5nU2VydmljZSUyMHNoaXBwaW5nU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBEaXNjb3VudFBvbGljeSUyMGRpc2NvdW50UG9saWN5JTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaXZhdGUlMjBmaW5hbCUyME9yZGVyU2VydmljZSUyMG9yZGVyU2VydmljZSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwT3JkZXJQcm9jZXNzb3IoT3JkZXJTZXJ2aWNlJTIwb3JkZXJTZXJ2aWNlJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFNoaXBwaW5nU2VydmljZSUyMHNoaXBwaW5nU2VydmljZSUyQyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBEaXNjb3VudFBvbGljeSUyMGRpc2NvdW50UG9saWN5KSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLm9yZGVyU2VydmljZSUyMCUzRCUyMG9yZGVyU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLnNoaXBwaW5nU2VydmljZSUyMCUzRCUyMHNoaXBwaW5nU2VydmljZSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0aGlzLmRpc2NvdW50UG9saWN5JTIwJTNEJTIwZGlzY291bnRQb2xpY3klM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwdWJsaWMlMjB2b2lkJTIwcHJvY2Vzc09yZGVyKE9yZGVyJTIwb3JkZXIlMkMlMjBDdXN0b21lciUyMGN1c3RvbWVyKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghb3JkZXIuaXNQZW5kaW5nKCkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvdWJsZSUyMGZpbmFsQW1vdW50JTIwJTNEJTIwZGlzY291bnRQb2xpY3kuY2FsY3VsYXRlRmluYWxBbW91bnQob3JkZXIlMkMlMjBjdXN0b21lciklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFvcmRlclNlcnZpY2UuY2hlY2tJbnZlbnRvcnlBbmROb3RpZnkob3JkZXIlMkMlMjBjdXN0b21lcikpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKCFvcmRlclNlcnZpY2UucHJvY2Vzc1BheW1lbnRBbmROb3RpZnkob3JkZXIlMkMlMjBjdXN0b21lciUyQyUyMGZpbmFsQW1vdW50KSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JkZXJTZXJ2aWNlLmZpbmlzaE9yZGVyKG9yZGVyJTJDJTIwY3VzdG9tZXIlMkMlMjBmaW5hbEFtb3VudCklM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGN1c3RvbWVyLmFkZFBvaW50cygoaW50KSUyMGZpbmFsQW1vdW50KSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzaGlwcGluZ1NlcnZpY2UuaW5pdGlhdGVTaGlwcGluZyhvcmRlci5nZXRJZCgpKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIycHVibGljJTIwY2xhc3MlMjBPcmRlclByb2Nlc3NvciUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBTaGlwcGluZ1NlcnZpY2UlMjBzaGlwcGluZ1NlcnZpY2UlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMGZpbmFsJTIwRGlzY291bnRQb2xpY3klMjBkaXNjb3VudFBvbGljeSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcml2YXRlJTIwZmluYWwlMjBPcmRlclNlcnZpY2UlMjBvcmRlclNlcnZpY2UlM0IlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHB1YmxpYyUyME9yZGVyUHJvY2Vzc29yKE9yZGVyU2VydmljZSUyMG9yZGVyU2VydmljZSUyQyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTaGlwcGluZ1NlcnZpY2UlMjBzaGlwcGluZ1NlcnZpY2UlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlzY291bnRQb2xpY3klMjBkaXNjb3VudFBvbGljeSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhpcy5vcmRlclNlcnZpY2UlMjAlM0QlMjBvcmRlclNlcnZpY2UlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhpcy5zaGlwcGluZ1NlcnZpY2UlMjAlM0QlMjBzaGlwcGluZ1NlcnZpY2UlM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhpcy5kaXNjb3VudFBvbGljeSUyMCUzRCUyMGRpc2NvdW50UG9saWN5JTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHVibGljJTIwdm9pZCUyMHByb2Nlc3NPcmRlcihPcmRlciUyMG9yZGVyJTJDJTIwQ3VzdG9tZXIlMjBjdXN0b21lciklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoIW9yZGVyLmlzUGVuZGluZygpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb3VibGUlMjBmaW5hbEFtb3VudCUyMCUzRCUyMGRpc2NvdW50UG9saWN5LmNhbGN1bGF0ZUZpbmFsQW1vdW50KG9yZGVyJTJDJTIwY3VzdG9tZXIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghb3JkZXJTZXJ2aWNlLmNoZWNrSW52ZW50b3J5QW5kTm90aWZ5KG9yZGVyJTJDJTIwY3VzdG9tZXIpKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCghb3JkZXJTZXJ2aWNlLnByb2Nlc3NQYXltZW50QW5kTm90aWZ5KG9yZGVyJTJDJTIwY3VzdG9tZXIlMkMlMjBmaW5hbEFtb3VudCkpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9yZGVyU2VydmljZS5maW5pc2hPcmRlcihvcmRlciUyQyUyMGN1c3RvbWVyJTJDJTIwZmluYWxBbW91bnQpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjdXN0b21lci5hZGRQb2ludHMoKGludCklMjBmaW5hbEFtb3VudCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2hpcHBpbmdTZXJ2aWNlLmluaXRpYXRlU2hpcHBpbmcob3JkZXIuZ2V0SWQoKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMCU3RCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmF6enNpbGE0czZkNmJ5a2IlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaGVhZGluZy0yJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZmOXg2ejI2ZWdzZGpiZmE4JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTJDJTIyc3BhY2luZyUyMiUzQSU3QiUyMmJlZm9yZSUyMiUzQTIxLjMzMzMzMzMzMzMzMzMzMiUyQyUyMmFmdGVyJTIyJTNBOSUyQyUyMmxpbmUlMjIlM0EwLjg1Mjk0MTE3NjQ3MDU4ODIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlOEIlODYlRTUlODglODYlRTclQkIlOTMlRTYlOUUlOUMlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJzeiUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ2YWx1ZSUyMiUzQTE2JTJDJTIyc3pVbml0JTIyJTNBJTIycHQlMjIlN0QlN0QlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2ZmFmZnVlc3E3Y2gxajdtbiUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU4JTg3JUIzJUU2JUFEJUE0JUVGJUJDJThDJUU2JTg4JTkxJUU0JUJCJUFDJUU1JUIwJUIxJUU1JUFFJThDJUU2JTg4JTkwJUU0JUJBJTg2JUU1JTg1JUE4JUU5JTgzJUE4JUU3JTlBJTg0JUU2JThCJTg2JUU1JTg4JTg2JUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2ZmFyaGU3NHIxMHhzc3drNyUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmxlZnQlMjIlM0EwJTdEJTJDJTIybGlzdCUyMiUzQSU3QiUyMmxpc3RJZCUyMiUzQSUyMm1oaW9hY3FhY3RxJTIyJTJDJTIybGV2ZWwlMjIlM0ExJTJDJTIyaXNPcmRlcmVkJTIyJTNBdHJ1ZSUyQyUyMmlzVGFza0xpc3QlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJERUNfTEVOX0xST01fUCUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIybG93ZXJMZXR0ZXIlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTI1Mi4lMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJPcmRlciUyMEN1c3RvbWVyJTIwJUU1JTg1JTg1JUU4JUExJTgwJUU2JUE4JUExJUU1JTlFJThCJUU1JUFFJTlFJUU0JUJEJTkzJUU3JUIxJUJCJUVGJUJDJThDT3JkZXJTZXJ2aWNlJTIwRGlzY291bnRQbGljeSVFNiU5QyU4RCVFNSU4QSVBMSVFNSVCMSU4MiVFNSVCMSU5RSVFNCVCQSU4RSVFNCVCQiVBMyVFNyVBMCU4MSVFNSVBNCU4RCVFNiU5RCU4MiVFNSVCQSVBNiVFNCVCOCU4RSVFOSVBMiU4NiVFNSU5RiU5RiVFNyU5QiVCOCVFNSU4NSVCMyVFNSVCQSVBNiVFOCVCRSU4MyVFOSVBQiU5OCVFRiVCQyU4QyVFNSU5MCU4OCVFNCVCRCU5QyVFNiU5NiVCOSVFOCVCRSU4MyVFNCVCRCU4RSVFNyU5QSU4NCVFNyVCMSVCQiVFRiVCQyU4QyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU4QiVBNSVFNiU5QyU4OSVFNiU5QyU4MCVFNSVBNSVCRCVFNyU5QSU4NCVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFNiU4QSU5NSVFOCVCNSU4NCVFNSU5QiU5RSVFNiU4QSVBNSVFNyU4RSU4NyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmZqOHM1c3gzMHFic2dkcXAlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJtaGlvYWNxYWN0cSUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQXRydWUlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJpc0NoZWNrZWQlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJERUNfTEVOX0xST01fUCUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIybG93ZXJMZXR0ZXIlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTI1Mi4lMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlMkMlMjJleHRyYURhdGElMjIlM0ElN0IlN0QlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJPcmRlclByb2Nlc3NvciVFNSU4RiU5OCVFNCVCOCVCQSVFNiVCNSU4MSVFNyVBOCU4QiVFNiU4RSVBNyVFNCVCQiVBMyVFNyVBMCU4MSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmZqdjkyNjR0dzRpbWpzN20lMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCUyQyUyMmxpc3QlMjIlM0ElN0IlMjJsaXN0SWQlMjIlM0ElMjJtaGlvYWNxYWN0cSUyMiUyQyUyMmxldmVsJTIyJTNBMSUyQyUyMmlzT3JkZXJlZCUyMiUzQXRydWUlMkMlMjJpc1Rhc2tMaXN0JTIyJTNBZmFsc2UlMkMlMjJpc0NoZWNrZWQlMjIlM0FmYWxzZSUyQyUyMmxpc3RTdHlsZVR5cGUlMjIlM0ElMjJERUNfTEVOX0xST01fUCUyMiUyQyUyMnN5bWJvbFN0eWxlJTIyJTNBJTdCJTdEJTJDJTIybGlzdFN0eWxlJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIybG93ZXJMZXR0ZXIlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTI1Mi4lMjIlMkMlMjJhbGlnbiUyMiUzQSUyMmxlZnQlMjIlN0QlMkMlMjJoaWRlU3ltYm9sJTIyJTNBZmFsc2UlMkMlMjJleHRyYURhdGElMjIlM0ElN0IlN0QlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTUlQTQlOTYlRTklODMlQTglRTYlOEUlQTUlRTUlOEYlQTMlRTclQjElQkJJbnZlbnRvcnlTeXN0ZW0lRTMlODAlODFQYXltZW50R2F0ZXdheSVFNyVBRCU4OSVFNSVCMSU5RSVFNCVCQSU4RSVFNyVBRSU4MCVFNSU4RCU5NSVFNCVCQiVBMyVFNyVBMCU4MSVFRiVCQyU4QyVFNCVCOCU4RCVFNSVBRiVCOSVFNiU4RSVBNSVFNSU4RiVBMyVFNSVBRSU5RSVFNyU4RSVCMCVFOCVCRiU5QiVFOCVBMSU4QyVFNiVCNSU4QiVFOCVBRiU5NSVFRiVCQyU4QyVFNCVCQiU4NSVFNSVBRiVCOSVFNiU5QyU4RCVFNSU4QSVBMSVFNSVCMSU4MiVFNyU5QSU4NCVFNiU4RSVBNSVFNSU4RiVBMyVFNCVCRCVCRiVFNyU5NCVBOCVFOCVCRiU5QiVFOCVBMSU4QyVFNSU4RCU5NSVFNSU4NSU4MyVFNiVCNSU4QiVFOCVBRiU5NSVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmZsZTlobXgwZmJqY2xjMXMlMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJsZWZ0JTIyJTNBMCU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmZsZmlzZzZrNjRtYnF4NCUyMiUyQyUyMmluZCUyMiUzQSU3QiUyMmZpcnN0TGluZSUyMiUzQTMyJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JThCJTg2JUU1JTg4JTg2JUU3JUE0JUJBJUU2JTg0JThGJUU1JTlCJUJFJUU1JUE2JTgyJUU0JUI4JThCJUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2ZHU1ZzI0MTdpYTg3OXB1biUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJpbmxpbmUlMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaW1hZ2UlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIyaWQlMjIlM0ElMjJ0ZXpteHglMjIlMkMlMjJuYW1lJTIyJTNBJTIyaW1hZ2UucG5nJTIyJTJDJTIyc2l6ZSUyMiUzQTc0MzQyNCUyQyUyMndpZHRoJTIyJTNBNzQ4JTJDJTIyaGVpZ2h0JTIyJTNBNTc1Ljk1MjYxNTk5MjEwMjclMkMlMjJ1dWlkJTIyJTNBJTIybHo2ZHU2bjVqNnIwendiajJhJTIyJTJDJTIyc3JjJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZvc3MtYXRhLmFsaWJhYmEuY29tJTJGYXJ0aWNsZSUyRjIwMjQlMkYwNyUyRjc5YWEzMTU2LWI5NzUtNDI2Mi1iMDIzLTg5NzFlZmRlN2Y1ZC5wbmclMjIlMkMlMjJleHRyYURhdGElMjIlM0ElN0IlMjJyZXNvdXJjZUlkJTIyJTNBJTIyNzFkMGQ5NjEtMzkwMy00NzYzLTlkYmMtODY2NTRhYWZjNThmJTIyJTJDJTIybWV0YURhdGElMjIlM0ElN0IlMjJzaXplJTIyJTNBNzQzNDI0JTJDJTIyb3JpZ2luV2lkdGglMjIlM0EyMDI2JTJDJTIyb3JpZ2luSGVpZ2h0JTIyJTNBMTU2MCUyQyUyMmZvcm1hdCUyMiUzQSUyMnBuZyUyMiUyQyUyMnJhdGlvJTIyJTNBMSU3RCU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NmR1Nm43ZXoxbXF1bHF3MmElMjIlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZkdTVsOGI2cWt6M3NkaWt3JTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2ZHU1cHBveWF4NjZpNXBpJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2YmowaXk0NDIwdm93eDM3MyUyMiUyQyUyMmluZCUyMiUzQSU3QiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSVCMCU4NiVFNyVCMSVCQiVFNSU4MSU5QSVFNyVBRSU4MCVFNSU4RCU5NSVFNyU5QSU4NCVFNSU4OCU4NiVFNSVCMSU4MiVFRiVCQyU4QyVFNyVBNCVCQSVFNiU4NCU4RiVFNSVBNiU4MiVFNCVCOCU4QiVFRiVCQyU5QSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NXI5MndqNjR3aDI1cGVmYzYlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyaW5saW5lJTIyJTJDJTIydHlwZSUyMiUzQSUyMmltYWdlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMmlkJTIyJTNBJTIyb3V6cWVkJTIyJTJDJTIybmFtZSUyMiUzQSUyMmltYWdlLnBuZyUyMiUyQyUyMnNpemUlMjIlM0E2MTQ3NzUlMkMlMjJ3aWR0aCUyMiUzQTc0OCUyQyUyMmhlaWdodCUyMiUzQTcyMi4yMzc1Mjk2OTEyMTE0JTJDJTIydXVpZCUyMiUzQSUyMmx6NmJpcjV1OWxvdHpybjY4MWMlMjIlMkMlMjJzcmMlMjIlM0ElMjJodHRwcyUzQSUyRiUyRm9zcy1hdGEuYWxpYmFiYS5jb20lMkZhcnRpY2xlJTJGMjAyNCUyRjA3JTJGODBkMGYzNWQtYjg2ZC00MjJjLWE1NmYtOTE1NjIwZGI2MWFhLnBuZyUyMiUyQyUyMmV4dHJhRGF0YSUyMiUzQSU3QiUyMnJlc291cmNlSWQlMjIlM0ElMjJlNTZkZTVjMy05ZWE1LTQyOWYtOTZkOC1hYTU3ZTlmMjBkZjIlMjIlMkMlMjJtZXRhRGF0YSUyMiUzQSU3QiUyMnNpemUlMjIlM0E2MTQ3NzUlMkMlMjJvcmlnaW5XaWR0aCUyMiUzQTE2ODQlMkMlMjJvcmlnaW5IZWlnaHQlMjIlM0ExNjI2JTJDJTIyZm9ybWF0JTIyJTNBJTIycG5nJTIyJTJDJTIycmF0aW8lMjIlM0ExJTdEJTdEJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2YmlyNXZtZXcydDR5c3BhbyUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6NXI5M2thNGlkOHkzNG9wdmIlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejNrMWtwOHFsaHJvOWE3dnVoJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTklODAlOUElRTglQkYlODclRTglQkYlOTklRTQlQjglQUElRTclQTQlQkElRTQlQkUlOEIlRUYlQkMlOEMlRTYlODglOTElRTQlQkIlQUMlRTUlOEYlQUYlRTQlQkIlQTUlRTclOUMlOEIlRTUlODglQjAlRTUlQTYlODIlRTQlQkQlOTUlRTUlQjAlODYlRTQlQjglODAlRTQlQjglQUElRTUlQTQlOEQlRTYlOUQlODIlRTclOUElODQlRTMlODAlODElRTklOUElQkUlRTQlQkIlQTUlRTYlQjUlOEIlRTglQUYlOTUlRTclOUElODQlRTUlODclQkQlRTYlOTUlQjAlRTglQkQlQUMlRTUlOEYlOTglRTQlQjglQkElRTQlQjglODAlRTQlQjglQUElRTclQkIlOTMlRTYlOUUlODQlRTYlQjglODUlRTYlOTklQjAlRTMlODAlODElRTglODElOEMlRTglQjQlQTMlRTUlODglODYlRTYlOTglOEUlRTMlODAlODElRTYlOTglOTMlRTQlQkElOEUlRTYlQjUlOEIlRTglQUYlOTUlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTMlODAlODIlRTglQkYlOTklRTclQTclOEQlRTklODclOEQlRTYlOUUlODQlRTQlQjglOEQlRTQlQkIlODUlRTYlOEYlOTAlRTklQUIlOTglRTQlQkElODYlRTQlQkIlQTMlRTclQTAlODElRTclOUElODQlRTUlOEYlQUYlRTYlQjUlOEIlRTglQUYlOTUlRTYlODAlQTclRUYlQkMlOEMlRTglQkYlOTglRTUlQTIlOUUlRTUlQkMlQkElRTQlQkElODYlRTclQjMlQkIlRTclQkIlOUYlRTclOUElODQlRTUlOEYlQUYlRTclQkIlQjQlRTYlOEElQTQlRTYlODAlQTclRTUlOTIlOEMlRTUlOEYlQUYlRTYlODklQTklRTUlQjElOTUlRTYlODAlQTclRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZmbHJ4d21iMjRma2RtZmYlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaGVhZGluZy0xJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZmbHNqMGMxN2k3Yjd6M2wlMjIlMkMlMjJpbmQlMjIlM0ElN0IlN0QlMkMlMjJzcGFjaW5nJTIyJTNBJTdCJTIyYmVmb3JlJTIyJTNBMjYuNjY2NjY2NjY2NjY2NjY0JTJDJTIyYWZ0ZXIlMjIlM0E5JTJDJTIybGluZSUyMiUzQTAuODUyOTQxMTc2NDcwNTg4MiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNSVCMCU4RiVFNyVCQiU5MyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnN6JTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnZhbHVlJTIyJTNBMjAlMkMlMjJzelVuaXQlMjIlM0ElMjJwdCUyMiU3RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZmbHZsN2hrdmtpeW9iOWJrJTIyJTJDJTIyaW5kJTIyJTNBJTdCJTIyZmlyc3RMaW5lJTIyJTNBMzIlN0QlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMmtsYXNzJTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjAlRTclQkMlOTYlRTUlODYlOTklRTYlOTglOTMlRTQlQkElOEUlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTklOUMlODAlRTglQTYlODElRTQlQjglODAlRTUlQUUlOUElRTglQUUlQkUlRTglQUUlQTElRUYlQkMlOEMlRTklOUMlODAlRTglQTYlODElRTQlQkIlOEUlRTQlQkIlQTMlRTclQTAlODElRTclOUElODQlRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTMlODAlODElRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclRTQlQkIlQTUlRTUlOEYlOEElRTUlOTAlODglRTQlQkQlOUMlRTYlOTYlQjklRTYlOTUlQjAlRTklODclOEYlRTclQUQlODklRTUlQTQlOUElRTQlQjglQUElRTclQkIlQjQlRTUlQkElQTYlRTglQkYlOUIlRTglQTElOEMlRTglODAlODMlRTklODclOEYlRTMlODAlODIlRTklQUIlOTglRTklQTIlODYlRTUlOUYlOUYlRTclOUIlQjglRTUlODUlQjMlRTYlODAlQTclRTUlOTIlOEMlRTUlQTQlOEQlRTYlOUQlODIlRTUlQkElQTYlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTUlODUlQjclRTYlOUMlODklRTglQkUlODMlRTklQUIlOTglRTclOUElODQlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTUlRTYlOEElOTUlRTglQjUlODQlRTUlOUIlOUUlRTYlOEElQTUlRTclOEUlODclRUYlQkMlOEMlRTglODAlOEMlRTUlQTQlOEQlRTYlOUQlODIlRTQlQjglOTQlRTYlOUMlODklRTUlQTQlQTclRTklODclOEYlRTUlQTQlOTYlRTklODMlQTglRTQlQkUlOUQlRTglQjUlOTYlRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTUlOUMlQTglRTUlQkMlODAlRTUlOEYlOTElRTglQkYlODclRTclQTglOEIlRTQlQjglQUQlRTglQTYlODElRTYlOUMlODklRTYlODQlOEYlRTglQUYlODYlRTclOUElODQlRTklODElQkYlRTUlODUlOEQlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmtsYXNzJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiUyMnV1aWQlMjIlM0ElMjJsejZmcDlvenk5czV4YXhpbTZtJTIyJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJrbGFzcyUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJrbGFzcyUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlMjJ1dWlkJTIyJTNBJTIybHo2ZnA5b3pkeWdpaXg0N3hkZiUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx6M2sxa3A5Yzk0bXB1OGdlNyUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIya2xhc3MlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTIydXVpZCUyMiUzQSUyMmx4aGFqZGljaXI2dmh4c3YyZGolMjIlMkMlMjJpbmQlMjIlM0ElN0IlMjJmaXJzdExpbmUlMjIlM0EzMiU3RCU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIya2xhc3MlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTVEJTdE">简介
在开发过程中应用单元测试保证质量已经有几年时间,期间体会到单元测试的收益还是很愉悦的,近期大团队开始对单测进行强行要求,借此机会也想分享一些我对单测的一些经验。
本篇文章作为开篇,并不讲述单测本身,而是从代码开发的角度阐述什么样的代码易于单元测试,如今AIGC火热的背景下,如果编写结构清晰,模块划分合理,可读性良好的代码,也能使得自动生成的单元测试拥有较高的质量,从而达到低投入高收益。
当然,据说真男人从来不搞什么单元测试。
从易于单元测试角度划分代码类型
通常可以从两个维度来衡量代码的重要程度:
代码复杂度与领域相关性维度
代码复杂度
代码复杂度通常以圈复杂度(cyclomatic complexity)计算,意味着一个函数或程序中唯一路径的数量,过大的函数或过多的判断分支通常意味着代码有较高的圈复杂度,比如我们看一段下面的例子:- public static List<String> getServiceChecklistItems(String vehicleType) throws AutoServiceException {
- if (VehicleSupport.isSedan(vehicleType)) {
- return new ArrayList<>(SERVICE_CHECKLIST_SEDAN);
- } else if (VehicleSupport.isSUV(vehicleType)) {
- return new ArrayList<>(SERVICE_CHECKLIST_SUV);
- } else if (VehicleSupport.isTruck(vehicleType)) {
- return new ArrayList<>(SERVICE_CHECKLIST_TRUCK);
- } else if (VehicleSupport.isHybrid(vehicleType)) {
- return new ArrayList<>(SERVICE_CHECKLIST_HYBRID);
- } else if (VehicleSupport.isElectric(vehicleType)) {
- return new ArrayList<>(SERVICE_CHECKLIST_ELECTRIC);
- } else if (VehicleSupport.isSportsCar(vehicleType)) {
- return new ArrayList<>(SERVICE_CHECKLIST_SPORTS);
- }
- throw new AutoServiceException(ErrorCode.UNSUPPORTED_VEHICLE_TYPE);
- }
复制代码 这段代码if-else有6中路径,加上最后的Exception,有7段路径,因此圈复杂度为7。
领域相关性
领域相关性通常与所需解决问题域的重要程度有关,这部分代码与系统服务用户的目标相关性越近,则领域相关性越高。
高领域相关性并不一定代表存在较高的复杂度。比如下面的例子,一个用于根据ECS存储类型计算IOPS的函数:- private int getIOPSBaseOnStorageInfo(Integer dbInstanceStorageInGB, String dataDiskCategory) {
- final int IOPS_BASE = 1800;
-
- final String CLOUD_ESSD_PL0 = "cloud_essd_pl0";
- final String CLOUD_ESSD = "cloud_essd_pl1";
- final String CLOUD_ESSD_PL2 = "cloud_essd_pl2";
- final String CLOUD_ESSD_PL3 = "cloud_essd_pl3";
- final String CLOUD_EFFICIENCY = "cloud_efficiency";
-
- final int[] CLOUD_ESSD_PL0_CONFIG = {12, 10000};
- final int[] CLOUD_ESSD_CONFIG = {50, 50000};
- final int[] CLOUD_ESSD_PL2_CONFIG = {50, 100000};
- final int[] CLOUD_ESSD_PL3_CONFIG = {50, 1000000};
- final int[] CLOUD_EFFICIENCY_CONFIG = {8, 5000};
- final int[] DEFAULT_IOPS_CONFIG = {30, 25000};
-
- // 创建IOPS配置映射
- Map<String, int[]> iopsConfig = new HashMap<>();
- iopsConfig.put(CLOUD_ESSD_PL0, CLOUD_ESSD_PL0_CONFIG);
- iopsConfig.put(CLOUD_ESSD, CLOUD_ESSD_CONFIG);
- iopsConfig.put(CLOUD_ESSD_PL2, CLOUD_ESSD_PL2_CONFIG);
- iopsConfig.put(CLOUD_ESSD_PL3, CLOUD_ESSD_PL3_CONFIG);
- iopsConfig.put(CLOUD_EFFICIENCY, CLOUD_EFFICIENCY_CONFIG);
-
- // 根据数据盘类别获取配置
- int[] config = iopsConfig.getOrDefault(dataDiskCategory.toLowerCase(), DEFAULT_IOPS_CONFIG);
- int scaleFactor = config[0];
- int maxLimit = config[1];
- int calculatedIOPS = Math.min(IOPS_BASE + scaleFactor * dbInstanceStorageInGB, maxLimit);
- return calculatedIOPS;
- }
复制代码 可以看到该函数没有任何代码分支路径,所以圈复杂度为1,但该代码会根据存储类型与大小计算IOPS,直接呈现给最终用户,因此该函数拥有极高的领域相关性,但复杂度仅为1。
合作方数量维度
该维度取决于类或方法的中涉及的合作方数量。这些合作方可以是:
- 其他的类,或外部类库
- 对于外部API的访问(例如阿里云公开的OpenAPI,其他内部微服务的API等)
- 对于数据库的访问
- 文件系统
- 等等...
代码中包含大量的合作方通常难以测试,例如下面一个例子:- public void review(String applicationId) {
- // 1. 从外部API获取用户信息
- UserInfo userInfo = externalAPIService.getUserInfo(applicationId);
- // 2. 从数据库获取订单信息
- OrderInfo orderInfo = databaseService.getOrderInfo(applicationId);
- // 3. 使用规则引擎进行风控审核
- ReviewResult reviewResult = ruleEngineService.review(userInfo, orderInfo);
- // 4. 根据审核结果发送通知
- if (reviewResult.isApproved()) {
- notificationService.sendApprovalNotification(applicationId);
- } else {
- notificationService.sendRejectionNotification(applicationId, reviewResult.getRejectionReason());
- }
- }
复制代码
Review函数用于进行风控业务的review,可以看到每个步骤都有外部依赖,分别为:
- 获取用户信息来自于外部API
- 获取订单信息依赖内部数据库
- 获取风控审核依赖于内部服务
- 发送审核结果依赖通知服务
因此对于该函数的测试,需要详细的Mock这四类服务对应函数的行为特征,最简单的行为特征如下:- @Mock
- private ExternalAPIService externalAPIService;
- @Mock
- private DatabaseService databaseService;
- @Mock
- private RuleEngineService ruleEngineService;
- @Mock
- private NotificationService notificationService;
- @Test
- void testReview_Approved() {
- // Arrange
- String applicationId = "APP123";
- UserInfo userInfo = new UserInfo("Yunji", "yunji@xxx.com");
- OrderInfo orderInfo = new OrderInfo(1000.0, "Product A");
- ReviewResult reviewResult = new ReviewResult(true, null);
- when(externalAPIService.getUserInfo(applicationId)).thenReturn(userInfo);
- when(databaseService.getOrderInfo(applicationId)).thenReturn(orderInfo);
- when(ruleEngineService.review(userInfo, orderInfo)).thenReturn(reviewResult);
- //省略....
- }
复制代码
如果我们想对review进行单元测试,则需要Mock这几方依赖,这意味着即使只是想测试一个简单的用户操作,也需要mock订单相关的依赖,无疑给测试带来很多负担,同时会导致单元测试更加没有意义。
应该对上述哪些代码进行单元测试
并不是所有代码都值得平等对待。边缘代码出错可能影响有限,而核心代码出错可能导致故障或资损。只有对最核心的代码进行单元测试,才能事半功倍。
通过下图可以看出,按照上述两个维度,可以将代码分为4个象限。
域模型、算法
拥有较高领域相关性和复杂度的代码,却有最小的合作方数量的代码是应用单元测试的最佳代码,由于低合作方数量,编写单元测试对该类代码进行测试通常成本低廉(不需要或只需要较少的Mock),该类代码的正确性又极为重要,因此拥有最佳的单元测试投资回报率。
例如上述“领域相关性小结”提到的示例代码。
简单代码
这就是所谓的边缘代码,既没有复杂度,又没有领域相关度,同时合作方数量很小,这类代码通常没有单元测试价值。一些例子例如构造函数,做类的初始化赋值,或一些简单的set方法。
Controller(流程控制代码)
这类代码通常本身不做工作,只是简单的请求转发或协调,没有复杂的业务逻辑,业务逻辑基本上是调用不同组件来处理请求。通常来讲,该类单元测试重点需要测试输入值的有效性和规则,避免进行无效转发。
过度复杂的代码
该类代码是真正的问题代码,该类代码有较多的外部依赖,同时又有较高的复杂度与领域相关性,例如“合作方数量维度”中提到的示例代码,该类代码如果不进行单元测试较为危险,无异于裸奔,但对该类代码进行单元测试成本过于高昂,因此写代码时,要极力避免编写该类代码。
因此,一个总体原则应该是,避免过度复杂的代码,如果看到一个函数和类同时具备高复杂度或领域相关度的,又同时拥有大量合作方,就应该引起警觉,将其拆分为“域模型或算法”+“Controller”,从而更容易实现单元测试。
如何避免过度复杂的代码
该问题如果深入探讨,涉及的范围会非常广泛,从SOLID原则到领域抽象、领域驱动设计(DDD)等都可能会涉及。考虑到篇幅限制,本小节仅聚焦于一个核心问题:如何将"过度复杂的代码"这一象限中的代码进行拆分,使其更易于测试和维护。我们将通过一个具体的示例来阐述这一过程。
拆分原则通常如下图所示
而具体的拆分原则如下:
- 识别核心业务逻辑:将具有高领域相关性和复杂度的部分提取出来,形成独立的域模型或服务。
- 剥离外部依赖:将外部依赖抽象为接口
- 分离流程控制:将协调各个步骤的逻辑抽取为Controller,负责调用各个服务和处理结果。
下面,我们将通过一个具体的示例来展示如何应用这些原则,将一个过于复杂的代码重构为更易于测试和维护的结构。这个示例将展示如何将复杂代码进行拆分,核心部分拆分为Controller和域模型,并剥离外部调用,从而更易于测试与维护。
###示例代码:订单处理函数###- public class OrderProcessor {
- public void processOrder(String orderId, String customerEmail) {
- // 从数据库获取订单信息
- Object[] orderData = Database.getOrderById(orderId);
- double orderAmount = (double) orderData[0];
- String orderStatus = (String) orderData[1];
- // 检查订单状态
- if (!"PENDING".equals(orderStatus)) {
- return;
- }
- // 获取客户信息
- Object[] customerData = Database.getCustomerByEmail(customerEmail);
- String customerName = (String) customerData[0];
- String customerType = (String) customerData[1];
- // 计算折扣
- double discount = 0;
- if ("VIP".equals(customerType)) {
- discount = 0.1;
- } else if ("REGULAR".equals(customerType)) {
- discount = 0.05;
- }
- // 应用折扣
- double finalAmount = orderAmount * (1 - discount);
- // 检查库存
- boolean isInStock = InventorySystem.checkStock(orderId);
- if (!isInStock) {
- EmailService.sendOutOfStockNotification(customerEmail);
- return;
- }
- // 处理支付
- boolean paymentSuccess = PaymentGateway.processPayment(orderId, finalAmount);
- if (!paymentSuccess) {
- EmailService.sendPaymentFailureNotification(customerEmail);
- return;
- }
- // 更新订单状态
- Database.updateOrderStatus(orderId, "PROCESSED");
- // 发送确认邮件
- String emailContent = "Dear " + customerName + ", your order " + orderId + " has been processed. Total amount: $" + finalAmount;
- EmailService.sendEmail(customerEmail, "Order Processed", emailContent);
- // 更新客户积分
- int points = (int) finalAmount;
- Database.updateCustomerPoints(customerEmail, points);
- // 触发配送流程
- ShippingService.initiateShipping(orderId);
- }
- }
复制代码
该代码乍一看没有问题,命名规范,分段清晰,但实际违反了SOLID原则的每一条,同时如果希望对该代码进行单元测试则是灾难,例如,我仅仅想测试订单状态是“pending”时不进行处理,就需要mock所有的信息才能让单元测试正常执行,这不仅导致单元测试困难,同时会导致单元测试的“脆弱性”(所谓脆弱性简单解释就是测试容易因为被测试代码的微小改变而失效,例如上述代码中,如果增加一个折扣策略,会导致针对订单状态的测试失败,而折扣策略与订单状态不应该与此相关)。- @Mock
- private Database database;
-
- @Mock
- private InventorySystem inventorySystem;
-
- @Mock
- private PaymentGateway paymentGateway;
-
- @Mock
- private EmailService emailService;
-
- @Mock
- private ShippingService shippingService;
- @InjectMocks
- private OrderProcessor orderProcessor;
复制代码
拆分步骤1:识别实体类(或领域模型)
还记得前面提到,哪部分代码具有单元测试的最佳投资回报率吗?领域模型通常是首选目标。。
从processOrder函数的入参与该函数的流程来看,整个过程会涉及到两部分主体,分别为Customer与Order,因此,我们首相提取这两个实体类,如代码所示:- class Order {
- private String id;
- private double amount;
- private String status;
- private OrderRepository repository;
- // 省略与processOrder 方法无关的内容
- public double getAmount(){
- return amount;
- }
- public String getId(){
- return id;
- }
- public boolean isPending() {
- return "PENDING".equals(status);
- }
- public void markAsProcessed() {
- this.status = "PROCESSED";
- repository.save(this);
- }
- }
- class Customer {
- private String email;
- private String name;
- private String type;
- private int points;
- private CustomerRepository repository;
- // 省略与processOrder 方法无关的内容
- public String getCustomerType(){
- return type;
- }
- public void addPoints(int points) {
- this.points += points;
- repository.save(this);
- }
- }
- interface OrderRepository {
- void save(Order order);
- }
- interface CustomerRepository {
- void save(Customer customer);
- }
复制代码
我们不仅定义了Order与Customer的属性,同时将与实体对象相关的行为内聚到实例类中,这也是所谓的“充血模型”(Rich Domain Model)。同时,使用数据访问的Repository模式将数据的访问逻辑从业务逻辑中分离出来,从而能够更加容易单元测试。比如Order实体通过对orderRepository的Mock,很容易剥离数据访问逻辑,仅测试业务逻辑,单元测试代码如下:- public class OrderTest {
- private OrderRepository orderRepository;
- private Order order;
- @BeforeEach
- public void setUp() {
- orderRepository = mock(OrderRepository.class);
- order = new Order("123", 100.0, "PENDING", orderRepository);
- }
- @Test
- public void testIsPending_shouldReturnTrue_whenOrderStatusIsPending() {
- assertTrue(order.isPending());
- }
- @Test
- public void testMarkAsProcessed_shouldUpdateStatusAndSave_whenCalled() {
- order.markAsProcessed();
- assertEquals("PROCESSED", order.getStatus());
- verify(orderRepository, times(1)).save(order);
- }
- }
复制代码
Domain Model的类图如下:
拆分步骤2:剥离外部依赖为接口
部分调用涉及外部接口,我们可以将其抽象为接口,将外部服务抽象为类的接口可以极大简化单元测试,示例代码中涉及的接口主要有4个- public interface PaymentGateway {
- boolean processPayment(String orderId, double amount);
- }
- public interface InventorySystem {
- boolean checkStock(String orderId);
- }
- public interface ShippingService {
- void initiateShipping(String orderId);
- }
- interface NotificationService {
- void sendOutOfStockNotification(Customer customer);
- void sendPaymentFailureNotification(Customer customer);
- void sendOrderConfirmation(Customer customer, Order order, double finalAmount);
- }
- class EmailNotificationService implements NotificationService {
- public void sendOutOfStockNotification(Customer customer) {
- // 省略实现细节
- }
- public void sendPaymentFailureNotification(Customer customer) {
- // 省略实现细节
- }
- public void sendOrderConfirmation(Customer customer, Order order, double finalAmount) {
- // 省略实现细节
- }
- }
复制代码
这些接口由于实现在其他内部或外部服务,因此当前组件中我们并没有办法对其进行“接口实现类”的单元测试,而只能对其进行“接口使用者”的单元测试,而这部分单元测试不应该在该层实现,而应该在使用者一层进行测试,也就是下一小节提到的服务层。
通过接口可以非常容易在“接口使用者”层面进行Mock。
因此这部分代码可以归结到简单代码部分,无需进行“接口实现类”的单元测试。
拆分步骤3:实现服务层
订单服务需要涉及多个领域对象的协作。包括通知、支付网关、库存等。服务层提供了一个合适的地方来协调这些操作,而不是将这种复杂的逻辑放在订单领域自身中。
因此将订单服务单独抽离出来,作为服务层。
订单服务层
- public class OrderService {
- private final InventorySystem inventorySystem;
- private final PaymentGateway paymentGateway;
- private final NotificationService notificationService;
- public OrderService(InventorySystem inventorySystem,
- PaymentGateway paymentGateway,
- NotificationService notificationService) {
- this.inventorySystem = inventorySystem;
- this.paymentGateway = paymentGateway;
- this.notificationService = notificationService;
- }
- public boolean finishOrder(Order order, Customer customer, double amount) {
- order.markAsProcessed();
- notificationService.sendOrderConfirmation(customer, order, amount);
- }
- public boolean checkInventoryAndNotify(Order order, Customer customer) {
- if (!inventorySystem.checkStock(order.getId())) {
- notificationService.sendOutOfStockNotification(customer);
- return false;
- }
- return true;
- }
- public boolean processPaymentAndNotify(Order order, Customer customer, double amount) {
- if (!paymentGateway.processPayment(order.getId(), amount)) {
- notificationService.sendPaymentFailureNotification(customer);
- return false;
- }
- return true;
- }
- }
复制代码
这样我们可以重点测试服务层某个功能,其他无关功能通过Mock接口方式实现- public class OrderServiceTest {
- @Mock
- private InventorySystem inventorySystem;
- @Mock
- private PaymentGateway paymentGateway;
- @Mock
- private NotificationService notificationService;
- @Mock
- private Order order;
- @Mock
- private Customer customer;
- private OrderService orderService;
- @BeforeEach
- void setUp() {
- MockitoAnnotations.openMocks(this);
- orderService = new OrderService(inventorySystem, paymentGateway, notificationService);
- }
- @Test
- void testFinishOrder_shouldMarkAsProcessedAndSendConfirmation_whenCalled() {
- double amount = 100.0;
- orderService.finishOrder(order, customer, amount);
- verify(order).markAsProcessed();
- verify(notificationService).sendOrderConfirmation(customer, order, amount);
- }
- @Test
- void testCheckInventoryAndNotify_shouldReturnTrue_whenStockAvailable() {
- when(inventorySystem.checkStock(anyString())).thenReturn(true);
- when(order.getId()).thenReturn("123");
- boolean result = orderService.checkInventoryAndNotify(order, customer);
- assertTrue(result);
- verify(inventorySystem).checkStock("123");
- verify(notificationService, never()).sendOutOfStockNotification(any());
- }
- @Test
- void testCheckInventoryAndNotify_shouldReturnFalseAndNotify_whenStockUnavailable() {
- when(inventorySystem.checkStock(anyString())).thenReturn(false);
- when(order.getId()).thenReturn("123");
- boolean result = orderService.checkInventoryAndNotify(order, customer);
- assertFalse(result);
- verify(inventorySystem).checkStock("123");
- verify(notificationService).sendOutOfStockNotification(customer);
- }
- }
复制代码
折扣计算服务层
该层并没有下层依赖,将该类放到服务层的原因是该类可能会被多个Domain对象共享,而折扣是非常核心的业务逻辑,针对该部分逻辑的所有分支进行全面覆盖非常重要。- class DiscountPolicy {
- public double calculateFinalAmount(Order order, Customer customer) {
- return order.getAmount() * (1 - getDiscountRate(customer.getCustomerType()));
- }
- private double getDiscountRate(String customerType) {
- switch (customerType) {
- case "VIP":
- return 0.1;
- case "REGULAR":
- return 0.05;
- default:
- return 0;
- }
- }
- }
复制代码 该类对应的单元测试:- class DiscountPolicyTest {
- @Mock
- private Order order;
- @Mock
- private Customer customer;
- private DiscountPolicy discountPolicy;
- @BeforeEach
- void setUp() {
- MockitoAnnotations.openMocks(this);
- discountPolicy = new DiscountPolicy();
- }
- @Test
- void testCalculateFinalAmount_shouldApplyVipDiscount_whenCustomerIsVip() {
- when(order.getAmount()).thenReturn(100.0);
- when(customer.getCustomerType()).thenReturn("VIP");
- double finalAmount = discountPolicy.calculateFinalAmount(order, customer);
- assertEquals(90.0, finalAmount, 0.001);
- }
- @Test
- void testCalculateFinalAmount_shouldApplyRegularDiscount_whenCustomerIsRegular() {
- when(order.getAmount()).thenReturn(100.0);
- when(customer.getCustomerType()).thenReturn("REGULAR");
- double finalAmount = discountPolicy.calculateFinalAmount(order, customer);
- assertEquals(95.0, finalAmount, 0.001);
- }
- @Test
- void testCalculateFinalAmount_shouldApplyNoDiscount_whenCustomerTypeIsUnknown() {
- when(order.getAmount()).thenReturn(100.0);
- when(customer.getCustomerType()).thenReturn("UNKNOWN");
- double finalAmount = discountPolicy.calculateFinalAmount(order, customer);
- assertEquals(100.0, finalAmount, 0.001);
- }
- }
复制代码
拆分步骤4: 使用拆分后的类重构OrderProcessor
- public class OrderProcessor {
- private final ShippingService shippingService;
- private final DiscountPolicy discountPolicy;
- private final OrderService orderService;
- public OrderProcessor(OrderService orderService,
- ShippingService shippingService,
- DiscountPolicy discountPolicy) {
- this.orderService = orderService;
- this.shippingService = shippingService;
- this.discountPolicy = discountPolicy;
- }
- public void processOrder(Order order, Customer customer) {
- if (!order.isPending()) {
- return;
- }
- double finalAmount = discountPolicy.calculateFinalAmount(order, customer);
- if (!orderService.checkInventoryAndNotify(order, customer)) {
- return;
- }
- if (!orderService.processPaymentAndNotify(order, customer, finalAmount)) {
- return;
- }
- orderService.finishOrder(order, customer, finalAmount);
- customer.addPoints((int) finalAmount);
- shippingService.initiateShipping(order.getId());
- }
- }
复制代码
拆分结果
至此,我们就完成了全部的拆分:
- Order Customer 充血模型实体类,OrderService DiscountPlicy服务层属于代码复杂度与领域相关度较高,合作方较低的类,拥有最好的单元测试投资回报率。
- OrderProcessor变为流程控代码
- 外部接口类InventorySystem、PaymentGateway等属于简单代码,不对接口实现进行测试,仅对服务层的接口使用进行单元测试。
拆分示意图如下:
将类做简单的分层,示意如下:
通过这个示例,我们可以看到如何将一个复杂的、难以测试的函数转变为一个结构清晰、职责分明、易于测试的代码。这种重构不仅提高了代码的可测试性,还增强了系统的可维护性和可扩展性。
小结
编写易于单元测试的代码需要一定设计,需要从代码的复杂度、领域相关性以及合作方数量等多个维度进行考量。高领域相关性和复杂度的代码具有较高的单元测试投资回报率,而复杂且有大量外部依赖的代码在开发过程中要有意识的避免。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |