object(RuntimeException)#4533 (7) { ["message":protected]=> string(134) "Failed to write cache file "/var/www/html/runtime/Twig/cache/9b/9b69d17486e4ccf89d824f7fdfbde1e9fce993a11d69282d088cdd6caa5d20ac.php"." ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(60) "/var/www/html/vendor/twig/twig/src/Cache/FilesystemCache.php" ["line":protected]=> int(80) ["trace":"Exception":private]=> array(16) { [0]=> array(6) { ["file"]=> string(50) "/var/www/html/vendor/twig/twig/src/Environment.php" ["line"]=> int(487) ["function"]=> string(5) "write" ["class"]=> string(26) "Twig\Cache\FilesystemCache" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> string(104) "/var/www/html/runtime/Twig/cache/9b/9b69d17486e4ccf89d824f7fdfbde1e9fce993a11d69282d088cdd6caa5d20ac.php" [1]=> string(57474) "parent = false; $this->blocks = [ ]; } protected function doDisplay(array $context, array $blocks = []) { // line 1 $context["series_label"] = $this->getAttribute(($context["utils"] ?? null), "seriesLabel", [0 => ($context["series"] ?? null)], "method"); // line 2 echo " "; // line 3 echo twig_escape_filter($this->env, $this->env->getExtension('Lifecycle\components\twig\TwigExtensionsUi')->registerAsset("\\Lifecycle\\assets\\FundInformationAsset", ($context["this"] ?? null)), "html", null, true); echo " "; // line 4 $context["thisYear"] = twig_date_format_filter($this->env, "now", "Y"); // line 5 echo "

"; // line 9 echo $this->getAttribute(($context["fund"] ?? null), ($context["nameFieldName"] ?? null)); echo ($context["formerly"] ?? null); echo "

"; // line 13 if ((true == ($context["fundHasSeriesSelector"] ?? null))) { // line 14 echo "
"; // line 19 echo $this->getAttribute(($context["html"] ?? null), "dropDownList", [0 => "classId", 1 => ($context["classId"] ?? null), 2 => ($context["avb_series"] ?? null), 3 => ["class" => "form-control", "id" => "class_select"]], "method"); echo " env, ($context["type"] ?? null), "html", null, true); echo "\" />
"; } // line 27 echo "
"; // line 53 if (($context["merge"] ?? null)) { // line 54 echo "
"; // line 56 echo twig_escape_filter($this->env, sprintf($this->getAttribute(($context["utils"] ?? null), "translate", [0 => "merges.as.of"], "method"), ($context["mergeDate"] ?? null)), "html", null, true); echo " "; // line 59 $context['_parent'] = $context; $context['_seq'] = twig_ensure_traversable(($context["merge"] ?? null)); foreach ($context['_seq'] as $context["_key"] => $context["m"]) { // line 60 echo " "; echo $this->getAttribute($context["m"], "name", []); echo " "; echo twig_escape_filter($this->env, sprintf($this->getAttribute(($context["utils"] ?? null), "translate", [0 => "merges.merged"], "method"), $this->getAttribute($context["m"], "merge_into", [])), "html", null, true); echo "
"; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['m'], $context['_parent'], $context['loop']); $context = array_intersect_key($context, $_parent) + $_parent; // line 63 echo "
"; } // line 65 echo " "; // line 66 if (($context["is_merged_into"] ?? null)) { // line 67 echo "
As of "; // line 68 echo twig_escape_filter($this->env, ($context["mergedIntoDate"] ?? null), "html", null, true); echo " this class has been merged into other fund(s):
"; // line 69 $context['_parent'] = $context; $context['_seq'] = twig_ensure_traversable(($context["is_merged_into"] ?? null)); foreach ($context['_seq'] as $context["_key"] => $context["m"]) { // line 70 echo " "; echo twig_escape_filter($this->env, $this->getAttribute($context["m"], "merge_code", []), "html", null, true); echo " of this class merged into env, $this->getAttribute($context["m"], "link", []), "html", null, true); echo "\">"; echo $this->getAttribute($context["m"], "merge_name", []); echo "
"; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['m'], $context['_parent'], $context['loop']); $context = array_intersect_key($context, $_parent) + $_parent; // line 72 echo "
"; } // line 74 echo " "; $context["series_top_note"] = $this->getAttribute(($context["utils"] ?? null), "translate_long", [0 => ("classf.ether.note." . $this->getAttribute(($context["series"] ?? null), "id", [])), 1 => false], "method"); // line 75 echo " "; if (($context["series_top_note"] ?? null)) { // line 76 echo "
"; // line 77 echo ($context["series_top_note"] ?? null); echo "
"; } // line 80 echo " "; // line 81 if (( !twig_test_empty(($context["regulatory_disclaimer"] ?? null)) && (($context["regulatory_disclaimer"] ?? null) != 0))) { // line 82 echo "
"; echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => ("regulatory.disclaimer." . ($context["regulatory_disclaimer"] ?? null)), 1 => false], "method"), "html", null, true); echo "
"; } // line 84 echo "
"; // line 92 echo $this->getAttribute(($context["helpers"] ?? null), "getChosenDropdown", [0 => $this->getAttribute(($context["helpers"] ?? null), "createUrl", [0 => "funds/fund_description", 1 => ["alias" => $this->getAttribute( // line 93 ($context["fund"] ?? null), ("page_alias_" . $this->getAttribute(($context["app"] ?? null), "language", []))), "cat" => $this->getAttribute($this->getAttribute($this->getAttribute( // line 94 ($context["fund"] ?? null), "fundCategory", []), "fundType", []), "id", [])]], "method"), 1 => // line 95 ($context["categoryOptions"] ?? null), 2 => "my_selected", 3 => "form-control"], "method"); echo "
env, ($context["positioningPieceVisibilityClass"] ?? null), "html", null, true); echo "\" target=\"_blank\" href=\""; echo twig_escape_filter($this->env, ($context["positioningPieceFileNameStr"] ?? null), "html", null, true); echo "\"> "; // line 106 echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.positioningpiece", 1 => false], "method"); echo " "; // line 109 if ((true == ($context["hasFundProfile"] ?? null))) { // line 110 echo " env, ($context["fundProfile"] ?? null), "html", null, true); echo "\" target=\"_blank\"> "; // line 112 echo twig_escape_filter($this->env, ($context["fundProfileLabelName"] ?? null), "html", null, true); echo " "; // line 118 echo " "; } // line 119 echo " env, ($context["fundFactVisibilityClass"] ?? null), "html", null, true); echo "\" target=\"_blank\" href=\""; echo twig_escape_filter($this->env, ($context["fundFactFileNameStr"] ?? null), "html", null, true); echo "\"> "; // line 122 echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.header", 1 => false], "method"); echo " env, ((((("/" . $this->getAttribute(($context["app"] ?? null), "language", [])) . "/return-pdf.pdf?series_id=") . $this->getAttribute(($context["series"] ?? null), "id", [])) . "&lang=") . $this->getAttribute(($context["app"] ?? null), "language", [])), "html", null, true); echo "\" target=\"_blank\" class=\"btn ci-btn-light-grey ci-btn-small ci-margin-bottom-10\"> "; // line 125 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.page.print", 1 => false], "method"), "html", null, true); echo "
"; // line 141 $this->loadTemplate("_overview_nav.twig", "fund_description.twig", 141)->display(twig_array_merge($context, ["series" => ($context["series"] ?? null)])); // line 142 echo "
"; // line 146 if (($context["hasManagementFee"] ?? null)) { // line 147 echo "

"; // line 148 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.mgmt.fee", 1 => false], "method"), "html", null, true); echo " "; echo (((true == ($context["isAsteriskedFund"] ?? null))) ? ("*") : ("")); echo "

"; // line 151 $context["overwrite_management_fee"] = $this->getAttribute(($context["utils"] ?? null), "translate_long", [0 => ("overwrite_management_fee." . $this->getAttribute(($context["series"] ?? null), "id", [])), 1 => false], "method"); // line 152 echo " "; if (($context["overwrite_management_fee"] ?? null)) { // line 153 echo " "; echo ($context["overwrite_management_fee"] ?? null); echo " "; } else { // line 155 echo " "; // line 156 echo twig_escape_filter($this->env, ($context["managementFee"] ?? null), "html", null, true); echo " "; // line 157 if (($context["hasManagementFeePopup"] ?? null)) { // line 158 echo " "; } // line 160 echo " "; } // line 161 echo "

"; } // line 166 echo "
"; // line 170 if (($context["show_fund_codes"] ?? null)) { // line 171 echo "

"; // line 174 if ((($context["tid"] ?? null) == twig_constant("Lifecycle\\models\\SsFundType::ETFS"))) { // line 175 echo " "; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.tabs.fund.codes"], "method"); echo " "; } else { // line 177 echo " "; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "global.ticker"], "method"); echo " "; } // line 180 echo "

"; // line 184 $context['_parent'] = $context; $context['_seq'] = twig_ensure_traversable(($context["fund_codes"] ?? null)); foreach ($context['_seq'] as $context["k"] => $context["fc"]) { // line 185 echo " "; echo $context["fc"]; echo " "; // line 186 $context["avb"] = $this->getAttribute($this->getAttribute(($context["purchase"] ?? null), $context["k"]), "avb"); // line 187 echo " "; $context["info"] = $this->getAttribute($this->getAttribute(($context["purchase"] ?? null), $context["k"]), "show_info"); // line 188 echo " "; // line 189 if (($context["avb"] ?? null)) { // line 190 echo " "; echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => ("purchase.availability." . ($context["avb"] ?? null)), 1 => false], "method"), "html", null, true); echo " "; // line 191 if (($context["info"] ?? null)) { // line 192 echo " env, $context["k"], "html", null, true); echo "” data-toggle=\"popover\" data-container=\".top-fund-container\" data-placement=\"top\" data-content=\""; // line 195 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => (("purchase.availability." . ($context["avb"] ?? null)) . ".info"), 1 => false], "method"), "html", null, true); echo "\"> env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => (("purchase.availability." . ($context["avb"] ?? null)) . ".info"), 1 => false], "method"), "html", null, true); echo "\"> "; } // line 203 echo " "; } // line 204 echo "
"; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['k'], $context['fc'], $context['_parent'], $context['loop']); $context = array_intersect_key($context, $_parent) + $_parent; // line 206 echo "
"; } // line 209 echo "

"; // line 213 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.mer.percent", 1 => false], "method"), "html", null, true); echo " "; echo (((true == ($context["isAsteriskedFund"] ?? null))) ? ("*") : ("")); echo "

"; // line 215 if ($this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_percent", [], "array", true, true)) { // line 216 echo " "; if ($this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_date", [], "array", true, true)) { // line 217 echo " "; echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "product.summary.as.of.header", 1 => false], "method"), "html", null, true); echo " "; // line 219 (($this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_date", [], "array", true, true)) ? (print (twig_escape_filter($this->env, $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", []), "mer_date", [], "array"), "html", null, true))) : (print (""))); echo " "; } // line 222 echo "

"; // line 223 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "format_decimal", [0 => $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", []), "mer_percent", [], "array"), 1 => 2, 2 => "", 3 => true], "method"), "html", null, true); echo " env, $this->getAttribute(($context["utils"] ?? null), "translate_long", [0 => "fund.mer.disclosure.tooltip", 1 => false], "method"), "html", null, true); echo "\"> env, $this->getAttribute(($context["utils"] ?? null), "translate_long", [0 => "fund.mer.disclosure.tooltip", 1 => false], "method"), "html", null, true); echo "\">

"; } else { // line 232 echo "

"; // line 233 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.mer.not.available", 1 => false], "method"), "html", null, true); echo "

"; } // line 236 echo " "; // line 237 if ((($this->getAttribute(($context["series"] ?? null), "fee", [], "array") && $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", []), "mer_excl_perf_flag", [], "array")) && $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_excl_perf", [], "array", true, true))) { // line 238 echo "

"; // line 239 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.mer.percent", 1 => false], "method"), "html", null, true); echo " "; echo (((true == ($context["isAsteriskedFund"] ?? null))) ? ("*") : ("")); echo "

"; // line 242 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.mer.percent.excl.perf", 1 => false], "method"), "html", null, true); echo "
"; // line 244 if ($this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_excl_perf", [], "array", true, true)) { // line 245 echo " "; if ($this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_date", [], "array", true, true)) { // line 246 echo " "; echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "product.summary.as.of.header", 1 => false], "method"), "html", null, true); echo " "; // line 248 (($this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_date", [], "array", true, true)) ? (print (twig_escape_filter($this->env, $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", []), "mer_date", [], "array"), "html", null, true))) : (print (""))); echo " "; } // line 251 echo "

"; // line 252 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "format_decimal", [0 => $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", []), "mer_excl_perf", [], "array"), 1 => 2, 2 => "", 3 => true], "method"), "html", null, true); echo "

"; } // line 255 echo " "; } // line 256 echo " "; // line 257 if ((true == ($context["hasAUM"] ?? null))) { // line 258 echo "
getAttribute($this->getAttribute(($context["series"] ?? null), "fee", []), "mer_excl_perf_flag", [], "array")) && $this->getAttribute($this->getAttribute(($context["series"] ?? null), "fee", [], "any", false, true), "mer_excl_perf", [], "array", true, true))) ? ("ci-no-padding-top") : ("ci-padding-top-15"))) : ("invisible-element")); echo "\">

"; // line 260 echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.facts.total.assets", 1 => false], "method"); echo "

"; // line 263 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "product.summary.as.of.header", 1 => false], "method"), "html", null, true); echo " "; // line 265 echo twig_escape_filter($this->env, ($context["AUMDate"] ?? null), "html", null, true); echo "

"; // line 269 echo ((((true == ($context["hasAUM"] ?? null)) && $this->getAttribute($this->getAttribute(($context["fund"] ?? null), "recent_tna", [], "any", false, true), "amount", [], "any", true, true))) ? ($this->getAttribute(($context["utils"] ?? null), "thousandsCurrencyFormat", [0 => $this->getAttribute($this->getAttribute(($context["fund"] ?? null), "recent_tna", []), "amount", []), 1 => $this->getAttribute(($context["app"] ?? null), "language", [])], "method")) : ("")); echo "

"; } // line 273 echo "
getAttribute(($context["fund"] ?? null), "volatility", [])) || (false == $this->getAttribute($this->getAttribute(($context["fund"] ?? null), "fundCategory", []), "hasRiskMeter", [], "method")))) ? ("ci-hide") : ("")); echo ((($this->getAttribute(($context["fund"] ?? null), "seg_volatility", []) > 0)) ? ("seg") : ("")); echo "\">

"; // line 279 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "volatility.meter.header", 1 => false], "method"), "html", null, true); echo "

"; // line 280 if (($this->getAttribute(($context["fund"] ?? null), "volatility", []) > 0)) { // line 281 echo "
    getAttribute(($context["fund"] ?? null), "volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.page.low", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.page.low.to.meidum", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.page.meidum", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.page.meidum.to.high", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "fund.page.high", 1 => false], "method"); echo "
"; } else { // line 289 echo " "; if (($this->getAttribute(($context["fund"] ?? null), "seg_volatility", []) > 0)) { // line 290 echo "
    getAttribute(($context["fund"] ?? null), "seg_volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "seg.fund.page.low", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "seg_volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "seg.fund.page.low.to.moderate", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "seg_volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "seg.fund.page.moderate", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "seg_volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "seg.fund.page.moderate.to.high", 1 => false], "method"); echo " getAttribute(($context["fund"] ?? null), "seg_volatility", []))) ? (" id=\"top-risk\" class=\"risk_pointer\"") : ("")); echo ">"; echo $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "seg.fund.page.high", 1 => false], "method"); echo "
"; } // line 298 echo " "; } // line 299 echo "
"; // line 301 if (($this->getAttribute(($context["series"] ?? null), "recent_distribution", [], "any", true, true) && (($this->getAttribute(($context["recentDistribution"] ?? null), "amount", [], "array") + $this->getAttribute(($context["recentDistribution"] ?? null), "from_capital", [], "array")) > 0))) { // line 302 echo "

"; echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => "recent.distributions.header", 1 => false], "method"), "html", null, true); echo "

"; // line 304 echo twig_escape_filter($this->env, sprintf($this->getAttribute(($context["utils"] ?? null), "translate", [0 => "distribution.pdf.new", 1 => false], "method"), $this->getAttribute(($context["utils"] ?? null), "format_decimal", [0 => ($this->getAttribute(($context["recentDistribution"] ?? null), "amount", [], "array") + $this->getAttribute(($context["recentDistribution"] ?? null), "from_capital", [], "array")), 1 => 4], "method")), "html", null, true); echo "

"; } // line 307 echo "
"; // line 310 if ($this->getAttribute(($context["series"] ?? null), "is_rrsp", [])) { // line 311 echo "

"; echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate_long", [0 => "advisor.tools.advisor.investment.accounts.rrsp", 1 => false], "method"), "html", null, true); echo "

"; // line 313 echo twig_escape_filter($this->env, $this->getAttribute(($context["utils"] ?? null), "translate", [0 => ("rrsp.option." . $this->getAttribute(($context["series"] ?? null), "is_rrsp", [])), 1 => false], "method"), "html", null, true); echo "

"; } // line 318 echo "
"; // line 343 echo " "; $context["jsTabItems"] = []; // line 344 echo " "; $context["ajaxScriptPath"] = (("/" . $this->getAttribute(($context["app"] ?? null), "language", [])) . "/ajax/get_fund_chunk.html"); // line 345 echo " "; $context["tabItems"] = [0 => ["type" => 0, "title" => $this->getAttribute( // line 346 ($context["utils"] ?? null), "translate", [0 => "fund.tabs.overview", 1 => false], "method"), "condition" => true, "target" => "overview"], 1 => ["type" => 1, "title" => $this->getAttribute( // line 347 ($context["utils"] ?? null), "translate", [0 => "fund.tabs.performance", 1 => false], "method"), "condition" => true, "target" => "performance"], 2 => ["type" => 2, "title" => $this->getAttribute( // line 348 ($context["utils"] ?? null), "translate", [0 => "fund.tabs.portfolio", 1 => false], "method"), "condition" => (0 == $this->getAttribute($this->getAttribute($this->getAttribute(($context["fund"] ?? null), "fundCategory", []), "fundType", []), "hide_holdings", [])), "target" => "portfolio"], 3 => ["type" => 3, "title" => $this->getAttribute( // line 349 ($context["utils"] ?? null), "translate", [0 => "fund.tabs.docs", 1 => false], "method"), "condition" => true, "target" => "documents"], 4 => ["type" => 4, "title" => $this->getAttribute( // line 350 ($context["utils"] ?? null), "translate", [0 => "fund.tabs.historical", 1 => false], "method"), "condition" => (( !$this->getAttribute(($context["series"] ?? null), "termination_date", [], "array", true, true) && $this->getAttribute(($context["series"] ?? null), "recent_nav", [], "any", true, true)) && !twig_test_empty($this->getAttribute(($context["series"] ?? null), "recent_nav", []))), "target" => "historical"]]; // line 354 echo "
env, twig_jsonencode_filter(($context["jsTabItems"] ?? null)), "html", null, true); echo "\"> "; // line 365 echo ($context["overview"] ?? null); echo " "; // line 367 $context['_parent'] = $context; $context['_seq'] = twig_ensure_traversable(($context["tabItems"] ?? null)); foreach ($context['_seq'] as $context["_key"] => $context["tabItem"]) { // line 368 echo " "; if ((true == $this->getAttribute($context["tabItem"], "condition", []))) { // line 369 echo "
env, $this->getAttribute($context["tabItem"], "target", []), "html", null, true); echo "\" data-show-data=\"\" class=\"ci-tab-pane "; if (($this->getAttribute($context["tabItem"], "type", []) == ($context["type"] ?? null))) { echo " ci-active"; } echo "\"> "; // line 370 if (($this->getAttribute($context["tabItem"], "type", []) == ($context["type"] ?? null))) { echo ($context["loadedFundChunk"] ?? null); } // line 371 echo "
"; } // line 373 echo " "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['tabItem'], $context['_parent'], $context['loop']); $context = array_intersect_key($context, $_parent) + $_parent; // line 374 echo "

"; // line 381 $this->loadTemplate("_overview_managers_and_documents.twig", "fund_description.twig", 381)->display(twig_array_merge($context, ["fund" => // line 382 ($context["fund"] ?? null), "series" => // line 383 ($context["series"] ?? null), "caption" => // line 384 ($context["caption"] ?? null), "managers" => // line 385 ($context["managers"] ?? null)])); // line 387 echo " "; // line 388 $this->loadTemplate("_funds_disclaimer.twig", "fund_description.twig", 388)->display(twig_array_merge($context, ["fund" => // line 389 ($context["fund"] ?? null), "series" => // line 390 ($context["series"] ?? null), "AUMDate" => // line 391 ($context["AUMDate"] ?? null)])); // line 393 echo " "; // line 394 if ((true == ($context["hasManagementFeePopup"] ?? null))) { // line 395 echo " "; $this->loadTemplate("management_fee_popup.twig", "fund_description.twig", 395)->display(twig_array_merge($context, ["fund" => // line 396 ($context["fund"] ?? null), "series" => // line 397 ($context["series"] ?? null), "id" => // line 398 ($context["id"] ?? null), "series_tier" => // line 399 ($context["series_tier"] ?? null), "trailer" => // line 400 ($context["trailer"] ?? null), "numManagementFeeDecimals" => // line 401 ($context["numManagementFeeDecimals"] ?? null)])); // line 403 echo " "; // line 412 echo " "; } // line 413 echo "
"; } public function getTemplateName() { return "fund_description.twig"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 963 => 429, 952 => 421, 940 => 419, 932 => 413, 929 => 412, 926 => 403, 924 => 401, 923 => 400, 922 => 399, 921 => 398, 920 => 397, 919 => 396, 917 => 395, 915 => 394, 912 => 393, 910 => 391, 909 => 390, 908 => 389, 907 => 388, 904 => 387, 902 => 385, 901 => 384, 900 => 383, 899 => 382, 898 => 381, 889 => 374, 883 => 373, 879 => 371, 875 => 370, 866 => 369, 863 => 368, 859 => 367, 854 => 365, 850 => 364, 847 => 363, 841 => 362, 814 => 360, 811 => 359, 808 => 358, 804 => 357, 799 => 354, 797 => 350, 796 => 349, 795 => 348, 794 => 347, 793 => 346, 791 => 345, 788 => 344, 785 => 343, 776 => 336, 770 => 333, 753 => 318, 745 => 313, 739 => 311, 737 => 310, 732 => 307, 726 => 304, 720 => 302, 718 => 301, 714 => 299, 711 => 298, 703 => 295, 697 => 294, 691 => 293, 685 => 292, 679 => 291, 676 => 290, 673 => 289, 665 => 286, 659 => 285, 653 => 284, 647 => 283, 641 => 282, 638 => 281, 636 => 280, 632 => 279, 625 => 276, 620 => 273, 613 => 269, 606 => 265, 601 => 263, 595 => 260, 589 => 258, 587 => 257, 584 => 256, 581 => 255, 575 => 252, 572 => 251, 566 => 248, 560 => 246, 557 => 245, 555 => 244, 550 => 242, 542 => 239, 539 => 238, 537 => 237, 534 => 236, 528 => 233, 525 => 232, 518 => 228, 514 => 227, 507 => 223, 504 => 222, 498 => 219, 492 => 217, 489 => 216, 487 => 215, 480 => 213, 474 => 209, 469 => 206, 462 => 204, 459 => 203, 450 => 197, 445 => 195, 438 => 192, 436 => 191, 431 => 190, 429 => 189, 426 => 188, 423 => 187, 421 => 186, 416 => 185, 412 => 184, 406 => 180, 399 => 177, 393 => 175, 391 => 174, 386 => 171, 384 => 170, 378 => 166, 371 => 161, 368 => 160, 364 => 158, 362 => 157, 358 => 156, 355 => 155, 349 => 153, 346 => 152, 344 => 151, 336 => 148, 333 => 147, 331 => 146, 325 => 142, 323 => 141, 304 => 125, 300 => 124, 295 => 122, 288 => 120, 285 => 119, 282 => 118, 276 => 112, 272 => 111, 269 => 110, 267 => 109, 261 => 106, 254 => 104, 242 => 95, 241 => 94, 240 => 93, 239 => 92, 233 => 89, 226 => 84, 220 => 82, 218 => 81, 215 => 80, 209 => 77, 206 => 76, 203 => 75, 200 => 74, 196 => 72, 183 => 70, 179 => 69, 175 => 68, 172 => 67, 170 => 66, 167 => 65, 163 => 63, 151 => 60, 147 => 59, 141 => 56, 137 => 54, 135 => 53, 128 => 48, 119 => 45, 116 => 44, 112 => 42, 110 => 41, 106 => 40, 101 => 37, 98 => 36, 94 => 35, 87 => 31, 81 => 27, 73 => 22, 67 => 19, 62 => 17, 57 => 14, 55 => 13, 47 => 9, 41 => 5, 39 => 4, 35 => 3, 32 => 2, 30 => 1,); } /** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */ public function getSource() { @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', E_USER_DEPRECATED); return $this->getSourceContext()->getCode(); } public function getSourceContext() { return new Source("", "fund_description.twig", "/var/www/html/views/funds/fund_description.twig"); } } " } } [1]=> array(6) { ["file"]=> string(50) "/var/www/html/vendor/twig/twig/src/Environment.php" ["line"]=> int(445) ["function"]=> string(9) "loadClass" ["class"]=> string(16) "Twig\Environment" ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> string(79) "__TwigTemplate_45c80a9051df347863e3a35bbae18b7cb2edffb94086eaa8a044ccb226936b3e" [1]=> string(21) "fund_description.twig" [2]=> NULL } } [2]=> array(6) { ["file"]=> string(50) "/var/www/html/vendor/twig/twig/src/Environment.php" ["line"]=> int(423) ["function"]=> string(12) "loadTemplate" ["class"]=> string(16) "Twig\Environment" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(21) "fund_description.twig" } } [3]=> array(6) { ["file"]=> string(50) "/var/www/html/vendor/twig/twig/src/Environment.php" ["line"]=> int(384) ["function"]=> string(4) "load" ["class"]=> string(16) "Twig\Environment" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(21) "fund_description.twig" } } [4]=> array(6) { ["file"]=> string(55) "/var/www/html/vendor/yiisoft/yii2-twig/ViewRenderer.php" ["line"]=> int(175) ["function"]=> string(6) "render" ["class"]=> string(16) "Twig\Environment" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> string(21) "fund_description.twig" [1]=> array(56) { ["caption"]=> string(17) "Popular documents" ["formerly"]=> string(0) "" ["merge"]=> array(0) { } ["is_merged_into"]=> string(0) "" ["mergeDate"]=> string(17) "December 31, 1969" ["mergedIntoDate"]=> string(17) "December 31, 1969" ["chunk"]=> string(14) "_fund_overview" ["type_chunk"]=> string(8) "overview" ["fund"]=> object(Lifecycle\models\SsFund)#183 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(47) { ["id"]=> int(263) ["fund_category_id"]=> int(31) ["name_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["terminated"]=> int(0) ["name_fr"]=> string(60) "Catégorie de société gestion d'actions canadiennes Select" ["overview_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["overview_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["foreign_objective"]=> NULL ["volatility"]=> int(3) ["suitability_en"]=> string(147) "
  • want a core Canadian equity fund for your portfolio
  • are investing for the medium and/or long term
  • can tolerate medium risk
  • " ["suitability_fr"]=> string(200) "
  • recherchez pour votre portefeuille un fonds composé principalement d'actions canadiennes
  • investissez à moyen terme et(ou) à long terme
  • avez une tolérance au risque moyenne
  • " ["small_cap"]=> NULL ["medium_cap"]=> NULL ["large_cap"]=> NULL ["highlights_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["highlights_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["page_alias_en"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["page_alias_fr"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["short_summary_en"]=> string(0) "" ["short_summary_fr"]=> string(0) "" ["mpower_id"]=> string(4) "2216" ["legal_structure_id"]=> int(1) ["marketing_category_id"]=> int(8) ["marketing_focus_id"]=> int(13) ["mandate_id"]=> int(173) ["accredited_only"]=> int(0) ["rrsp"]=> int(2) ["cfr_fund_code"]=> string(0) "" ["g520_accumulation_from"]=> NULL ["g520_accumulation_to"]=> NULL ["g520_distr_from"]=> NULL ["g520_distr_to"]=> NULL ["g520_issue_date_from"]=> NULL ["g520_issue_date_to"]=> NULL ["g520_guarantee_from"]=> NULL ["g520_guarantee_to"]=> NULL ["g520_target_date"]=> NULL ["cfr_product_id"]=> NULL ["seg_volatility"]=> int(4) ["had_a_null"]=> int(0) ["termination_date"]=> NULL ["prev_name_en"]=> NULL ["prev_name_fr"]=> NULL ["fund_rename_date"]=> NULL ["fund_merged_data_en"]=> NULL ["fund_merged_data_fr"]=> NULL ["cinchy_code"]=> string(4) "2216" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(47) { ["id"]=> int(263) ["fund_category_id"]=> int(31) ["name_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["terminated"]=> int(0) ["name_fr"]=> string(60) "Catégorie de société gestion d'actions canadiennes Select" ["overview_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["overview_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["foreign_objective"]=> NULL ["volatility"]=> int(3) ["suitability_en"]=> string(147) "
  • want a core Canadian equity fund for your portfolio
  • are investing for the medium and/or long term
  • can tolerate medium risk
  • " ["suitability_fr"]=> string(200) "
  • recherchez pour votre portefeuille un fonds composé principalement d'actions canadiennes
  • investissez à moyen terme et(ou) à long terme
  • avez une tolérance au risque moyenne
  • " ["small_cap"]=> NULL ["medium_cap"]=> NULL ["large_cap"]=> NULL ["highlights_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["highlights_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["page_alias_en"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["page_alias_fr"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["short_summary_en"]=> string(0) "" ["short_summary_fr"]=> string(0) "" ["mpower_id"]=> string(4) "2216" ["legal_structure_id"]=> int(1) ["marketing_category_id"]=> int(8) ["marketing_focus_id"]=> int(13) ["mandate_id"]=> int(173) ["accredited_only"]=> int(0) ["rrsp"]=> int(2) ["cfr_fund_code"]=> string(0) "" ["g520_accumulation_from"]=> NULL ["g520_accumulation_to"]=> NULL ["g520_distr_from"]=> NULL ["g520_distr_to"]=> NULL ["g520_issue_date_from"]=> NULL ["g520_issue_date_to"]=> NULL ["g520_guarantee_from"]=> NULL ["g520_guarantee_to"]=> NULL ["g520_target_date"]=> NULL ["cfr_product_id"]=> NULL ["seg_volatility"]=> int(4) ["had_a_null"]=> int(0) ["termination_date"]=> NULL ["prev_name_en"]=> NULL ["prev_name_fr"]=> NULL ["fund_rename_date"]=> NULL ["fund_merged_data_en"]=> NULL ["fund_merged_data_fr"]=> NULL ["cinchy_code"]=> string(4) "2216" } ["_related":"yii\db\BaseActiveRecord":private]=> array(3) { ["fundCategory"]=> object(Lifecycle\models\SsFundCategory)#233 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(31) ["name_en"]=> string(15) "Canadian Equity" ["name_fr"]=> string(19) "Actions canadiennes" ["list_position"]=> int(110) ["fund_type_id"]=> int(6) ["is_hidden"]=> string(2) "NO" ["marketing_asset_id"]=> int(4) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(31) ["name_en"]=> string(15) "Canadian Equity" ["name_fr"]=> string(19) "Actions canadiennes" ["list_position"]=> int(110) ["fund_type_id"]=> int(6) ["is_hidden"]=> string(2) "NO" ["marketing_asset_id"]=> int(4) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["fundType"]=> object(Lifecycle\models\SsFundType)#243 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(17) { ["id"]=> int(6) ["name_en"]=> string(17) "Managed Solutions" ["name_fr"]=> string(18) "Solutions gérées" ["pro_modx_parent_fr"]=> int(1) ["pro_modx_parent_en"]=> int(1) ["modx_parent_fr"]=> int(1) ["modx_parent_en"]=> int(1) ["res_en"]=> int(1) ["res_fr"]=> int(1) ["pro_res_en"]=> int(1) ["pro_res_fr"]=> int(1) ["mobile_en"]=> NULL ["mobile_fr"]=> NULL ["hide_holdings"]=> int(0) ["hide_funds"]=> int(0) ["position"]=> int(2) ["bulk_prefix"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(17) { ["id"]=> int(6) ["name_en"]=> string(17) "Managed Solutions" ["name_fr"]=> string(18) "Solutions gérées" ["pro_modx_parent_fr"]=> int(1) ["pro_modx_parent_en"]=> int(1) ["modx_parent_fr"]=> int(1) ["modx_parent_en"]=> int(1) ["res_en"]=> int(1) ["res_fr"]=> int(1) ["pro_res_en"]=> int(1) ["pro_res_fr"]=> int(1) ["mobile_en"]=> NULL ["mobile_fr"]=> NULL ["hide_holdings"]=> int(0) ["hide_funds"]=> int(0) ["position"]=> int(2) ["bulk_prefix"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["fund_type_id"]=> array(1) { ["fundType"]=> string(8) "fundType" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["managers"]=> array(2) { [0]=> object(Lifecycle\models\SsMandateToManager)#337 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9370) ["staff_id"]=> int(101) ["mandate_id"]=> int(173) ["rank"]=> int(1) ["tenure"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9370) ["staff_id"]=> int(101) ["mandate_id"]=> int(173) ["rank"]=> int(1) ["tenure"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff"]=> object(Lifecycle\models\SsStaff)#354 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(101) ["staff_title_id"]=> int(344) ["name"]=> string(10) "Alfred Lam" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(718) "Alfred Lam, CFA, Senior Vice-President and Chief Investment Officer, leads the CI Multi-Asset Management team. Mr. Lam has over 18 years of experience specializing in portfolio design, asset allocation, manager and fund selection, and risk management. While at CI, Mr. Lam has brought unique ideas and processes to the management of the team’s multi-asset strategies, including a mean-reversion currency management strategy, the concept of investing in concentrated and benchmark-agnostic portfolios, and a new approach to risk management. In addition to the CFA designation, Mr. Lam holds an MBA from the York University Schulich School of Business, and is a member of the CFA Institute and the Toronto CFA Society." ["summary_fr"]=> string(870) "Alfred Lam, CFA, vice-président principal et directeur des placements, dirige l’équipe de Gestion d’actifs multiples CI. M. Lam possède plus de 18 ans d’expérience dans la construction de portefeuilles, la répartition de l’actif, la sélection des gestionnaires et des fonds et la gestion du risque. Il a contribué à l’élaboration et à la gestion des solutions de placement CI, grâce à l’apport d’idées uniques et d’approches rigoureuses, comme la stratégie de gestion des positions de change axée sur la tendance à revenir à la moyenne, l’investissement dans des portefeuilles non indiciels et concentrés et une approche novatrice de gestion des risques. En plus de la désignation CFA, il est titulaire d’un MBA de la Schulich School of Business de l’Université York et est membre du CFA Institute et du Toronto CFA Society." ["list_position"]=> int(1) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(10) "Alfred_Lam" ["picture_id"]=> string(71) "/webb/shared_assets/images/managerphotos/Alfred_Lam_1554909120_main.jpg" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(3) "CFA" ["after_name_fr"]=> string(3) "CFA" ["ci_start_year"]=> int(2001) ["industry_start_year"]=> int(2001) ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(101) ["staff_title_id"]=> int(344) ["name"]=> string(10) "Alfred Lam" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(718) "Alfred Lam, CFA, Senior Vice-President and Chief Investment Officer, leads the CI Multi-Asset Management team. Mr. Lam has over 18 years of experience specializing in portfolio design, asset allocation, manager and fund selection, and risk management. While at CI, Mr. Lam has brought unique ideas and processes to the management of the team’s multi-asset strategies, including a mean-reversion currency management strategy, the concept of investing in concentrated and benchmark-agnostic portfolios, and a new approach to risk management. In addition to the CFA designation, Mr. Lam holds an MBA from the York University Schulich School of Business, and is a member of the CFA Institute and the Toronto CFA Society." ["summary_fr"]=> string(870) "Alfred Lam, CFA, vice-président principal et directeur des placements, dirige l’équipe de Gestion d’actifs multiples CI. M. Lam possède plus de 18 ans d’expérience dans la construction de portefeuilles, la répartition de l’actif, la sélection des gestionnaires et des fonds et la gestion du risque. Il a contribué à l’élaboration et à la gestion des solutions de placement CI, grâce à l’apport d’idées uniques et d’approches rigoureuses, comme la stratégie de gestion des positions de change axée sur la tendance à revenir à la moyenne, l’investissement dans des portefeuilles non indiciels et concentrés et une approche novatrice de gestion des risques. En plus de la désignation CFA, il est titulaire d’un MBA de la Schulich School of Business de l’Université York et est membre du CFA Institute et du Toronto CFA Society." ["list_position"]=> int(1) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(10) "Alfred_Lam" ["picture_id"]=> string(21) "Alfred_Lam_1554909120" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(3) "CFA" ["after_name_fr"]=> string(3) "CFA" ["ci_start_year"]=> int(2001) ["industry_start_year"]=> int(2001) ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["company"]=> object(Lifecycle\models\SsPortfolioManager)#484 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["portfolio_manager_id"]=> array(1) { ["company"]=> string(7) "company" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff_id"]=> array(1) { ["staff"]=> string(5) "staff" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } [1]=> object(Lifecycle\models\SsMandateToManager)#353 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9371) ["staff_id"]=> int(280) ["mandate_id"]=> int(173) ["rank"]=> int(2) ["tenure"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9371) ["staff_id"]=> int(280) ["mandate_id"]=> int(173) ["rank"]=> int(2) ["tenure"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff"]=> object(Lifecycle\models\SsStaff)#382 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(280) ["staff_title_id"]=> int(349) ["name"]=> string(18) "Marchello Holditch" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(825) "Marchello Holditch, CFA, CAIA, Vice-President and Portfolio Manager, oversees CI's multi-manager, multi-asset investment programs. He is responsible for managing CI’s institutional and private client multi-asset portfolios and is a member of the CI Multi-Asset Investment Committee. Previously, Mr. Holditch led CI’s portfolio manager research and oversight function, where he was responsible for evaluating the investment managers of all CI funds. Prior to joining CI, Mr. Holditch worked at a major global consulting firm, where he assisted a wide variety of institutional clients with risk budgeting and asset liability modelling, as well as investment manager research and selection. He holds an Honours Bachelor of Mathematics degree in actuarial science from the University of Waterloo and is a CFA charterholder." ["summary_fr"]=> string(0) "" ["list_position"]=> int(2) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(18) "Marchello_Holditch" ["picture_id"]=> string(79) "/webb/shared_assets/images/managerphotos/Marchello_Holditch_1554909137_main.jpg" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(9) "CFA, CAIA" ["after_name_fr"]=> string(0) "" ["ci_start_year"]=> NULL ["industry_start_year"]=> NULL ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(280) ["staff_title_id"]=> int(349) ["name"]=> string(18) "Marchello Holditch" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(825) "Marchello Holditch, CFA, CAIA, Vice-President and Portfolio Manager, oversees CI's multi-manager, multi-asset investment programs. He is responsible for managing CI’s institutional and private client multi-asset portfolios and is a member of the CI Multi-Asset Investment Committee. Previously, Mr. Holditch led CI’s portfolio manager research and oversight function, where he was responsible for evaluating the investment managers of all CI funds. Prior to joining CI, Mr. Holditch worked at a major global consulting firm, where he assisted a wide variety of institutional clients with risk budgeting and asset liability modelling, as well as investment manager research and selection. He holds an Honours Bachelor of Mathematics degree in actuarial science from the University of Waterloo and is a CFA charterholder." ["summary_fr"]=> string(0) "" ["list_position"]=> int(2) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(18) "Marchello_Holditch" ["picture_id"]=> string(29) "Marchello_Holditch_1554909137" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(9) "CFA, CAIA" ["after_name_fr"]=> string(0) "" ["ci_start_year"]=> NULL ["industry_start_year"]=> NULL ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["company"]=> object(Lifecycle\models\SsPortfolioManager)#525 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["portfolio_manager_id"]=> array(1) { ["company"]=> string(7) "company" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff_id"]=> array(1) { ["staff"]=> string(5) "staff" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["recent_tna"]=> object(Lifecycle\models\SsTna)#439 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(6) { ["fund_id"]=> int(263) ["record_date"]=> string(10) "2021-04-30" ["amount"]=> string(11) "146190152.0" ["holdings_number"]=> int(0) ["equity_amount"]=> string(0) "" ["bond_amount"]=> string(0) "" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(6) { ["fund_id"]=> int(263) ["record_date"]=> string(10) "2021-04-30" ["amount"]=> string(11) "146190152.0" ["holdings_number"]=> int(0) ["equity_amount"]=> string(0) "" ["bond_amount"]=> string(0) "" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(3) { ["fund_category_id"]=> array(1) { ["fundCategory"]=> string(12) "fundCategory" } ["mandate_id"]=> array(1) { ["managers"]=> string(8) "managers" } ["id"]=> array(1) { ["recent_tna"]=> string(10) "recent_tna" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["type"]=> int(0) ["series"]=> object(Lifecycle\models\SsSeries)#310 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(45) { ["id"]=> int(2634) ["mpower_id"]=> string(6) "15101T" ["fund_id"]=> int(263) ["currency_id"]=> int(1) ["sentry_series"]=> string(2) "EF" ["security_type_id"]=> NULL ["statestreet_fund_code"]=> string(0) "" ["statestreet_series_id"]=> string(0) "" ["period_cron"]=> string(0) "" ["recon_inception_date"]=> string(10) "2014-12-05" ["inception_date"]=> string(10) "2014-11-27" ["conversion_date"]=> NULL ["termination_date"]=> NULL ["maturity_date"]=> NULL ["income_dist_freq"]=> string(1) "5" ["income_dist"]=> int(1) ["min_investment"]=> string(6) "100000" ["sub_investment"]=> string(4) "5000" ["is_rrsp"]=> string(1) "2" ["yield"]=> NULL ["yield_updated_on"]=> NULL ["average_return"]=> NULL ["average_return_percent"]=> NULL ["redemption_period"]=> NULL ["min_invest_term"]=> NULL ["investment_type"]=> string(1) "6" ["archived"]=> int(0) ["morningstar_key"]=> string(10) "F00000YV04" ["class_id"]=> int(295) ["fund_data_key"]=> string(5) "58616" ["purchase_avb"]=> int(3) ["had_a_null"]=> NULL ["cfr_id"]=> int(0) ["program"]=> string(4) "None" ["website_disclosure"]=> int(1) ["is_disclosure_required"]=> int(0) ["is_merged"]=> string(2) "NO" ["has_merges"]=> string(2) "NO" ["merge_parent_id"]=> NULL ["merge_date"]=> NULL ["last_merge_date"]=> NULL ["cinchy_code"]=> string(5) "15101" ["reg_disclosure"]=> NULL ["cinchy_status"]=> int(1) ["private_series_pos"]=> string(2) "NO" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(45) { ["id"]=> int(2634) ["mpower_id"]=> string(6) "15101T" ["fund_id"]=> int(263) ["currency_id"]=> int(1) ["sentry_series"]=> string(2) "EF" ["security_type_id"]=> NULL ["statestreet_fund_code"]=> string(0) "" ["statestreet_series_id"]=> string(0) "" ["period_cron"]=> string(0) "" ["recon_inception_date"]=> string(10) "2014-12-05" ["inception_date"]=> string(10) "2014-11-27" ["conversion_date"]=> NULL ["termination_date"]=> NULL ["maturity_date"]=> NULL ["income_dist_freq"]=> string(1) "5" ["income_dist"]=> int(1) ["min_investment"]=> string(6) "100000" ["sub_investment"]=> string(4) "5000" ["is_rrsp"]=> string(1) "2" ["yield"]=> NULL ["yield_updated_on"]=> NULL ["average_return"]=> NULL ["average_return_percent"]=> NULL ["redemption_period"]=> NULL ["min_invest_term"]=> NULL ["investment_type"]=> string(1) "6" ["archived"]=> int(0) ["morningstar_key"]=> string(10) "F00000YV04" ["class_id"]=> int(295) ["fund_data_key"]=> string(5) "58616" ["purchase_avb"]=> int(3) ["had_a_null"]=> NULL ["cfr_id"]=> int(0) ["program"]=> string(4) "None" ["website_disclosure"]=> int(1) ["is_disclosure_required"]=> int(0) ["is_merged"]=> string(2) "NO" ["has_merges"]=> string(2) "NO" ["merge_parent_id"]=> NULL ["merge_date"]=> NULL ["last_merge_date"]=> NULL ["cinchy_code"]=> string(5) "15101" ["reg_disclosure"]=> NULL ["cinchy_status"]=> int(1) ["private_series_pos"]=> string(2) "NO" } ["_related":"yii\db\BaseActiveRecord":private]=> array(6) { ["classob"]=> object(Lifecycle\models\SsClass)#316 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(295) ["name_en"]=> string(2) "EF" ["name_fr"]=> string(2) "EF" ["parent_id"]=> NULL ["cfr_id"]=> int(7) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(295) ["name_en"]=> string(2) "EF" ["name_fr"]=> string(2) "EF" ["parent_id"]=> NULL ["cfr_id"]=> int(7) } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["fund_codes"]=> array(1) { [0]=> object(Lifecycle\models\SsFundCode)#315 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(12) { ["series_id"]=> int(2634) ["load_structure_id"]=> int(4) ["fund_code"]=> string(5) "15101" ["internal_code"]=> string(5) "15101" ["year"]=> NULL ["id"]=> int(6515) ["old_fund_code"]=> NULL ["purchase_avb"]=> int(2) ["max_trailing_fee"]=> string(6) "0.0000" ["extra_class_id_for_segs"]=> NULL ["merge_parent_id"]=> NULL ["cinchy_code"]=> string(5) "15101" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(12) { ["series_id"]=> int(2634) ["load_structure_id"]=> int(4) ["fund_code"]=> string(5) "15101" ["internal_code"]=> string(5) "15101" ["year"]=> NULL ["id"]=> int(6515) ["old_fund_code"]=> NULL ["purchase_avb"]=> int(2) ["max_trailing_fee"]=> string(6) "0.0000" ["extra_class_id_for_segs"]=> NULL ["merge_parent_id"]=> NULL ["cinchy_code"]=> string(5) "15101" } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["load_structure"]=> object(Lifecycle\models\SsLoadStructure)#341 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(4) ["name_en"]=> string(2) "NL" ["name_fr"]=> string(2) "SF" ["description_en"]=> string(7) "No load" ["description_fr"]=> string(10) "Sans frais" ["hide"]=> int(0) ["position"]=> int(4) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(4) ["name_en"]=> string(2) "NL" ["name_fr"]=> string(2) "SF" ["description_en"]=> string(7) "No load" ["description_fr"]=> string(10) "Sans frais" ["hide"]=> int(0) ["position"]=> int(4) } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["fund"]=> object(Lifecycle\models\SsFund)#402 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(47) { ["id"]=> int(263) ["fund_category_id"]=> int(31) ["name_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["terminated"]=> int(0) ["name_fr"]=> string(60) "Catégorie de société gestion d'actions canadiennes Select" ["overview_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["overview_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["foreign_objective"]=> NULL ["volatility"]=> int(3) ["suitability_en"]=> string(147) "
  • want a core Canadian equity fund for your portfolio
  • are investing for the medium and/or long term
  • can tolerate medium risk
  • " ["suitability_fr"]=> string(200) "
  • recherchez pour votre portefeuille un fonds composé principalement d'actions canadiennes
  • investissez à moyen terme et(ou) à long terme
  • avez une tolérance au risque moyenne
  • " ["small_cap"]=> NULL ["medium_cap"]=> NULL ["large_cap"]=> NULL ["highlights_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["highlights_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["page_alias_en"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["page_alias_fr"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["short_summary_en"]=> string(0) "" ["short_summary_fr"]=> string(0) "" ["mpower_id"]=> string(4) "2216" ["legal_structure_id"]=> int(1) ["marketing_category_id"]=> int(8) ["marketing_focus_id"]=> int(13) ["mandate_id"]=> int(173) ["accredited_only"]=> int(0) ["rrsp"]=> int(2) ["cfr_fund_code"]=> string(0) "" ["g520_accumulation_from"]=> NULL ["g520_accumulation_to"]=> NULL ["g520_distr_from"]=> NULL ["g520_distr_to"]=> NULL ["g520_issue_date_from"]=> NULL ["g520_issue_date_to"]=> NULL ["g520_guarantee_from"]=> NULL ["g520_guarantee_to"]=> NULL ["g520_target_date"]=> NULL ["cfr_product_id"]=> NULL ["seg_volatility"]=> int(4) ["had_a_null"]=> int(0) ["termination_date"]=> NULL ["prev_name_en"]=> NULL ["prev_name_fr"]=> NULL ["fund_rename_date"]=> NULL ["fund_merged_data_en"]=> NULL ["fund_merged_data_fr"]=> NULL ["cinchy_code"]=> string(4) "2216" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(47) { ["id"]=> int(263) ["fund_category_id"]=> int(31) ["name_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["terminated"]=> int(0) ["name_fr"]=> string(60) "Catégorie de société gestion d'actions canadiennes Select" ["overview_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["overview_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["foreign_objective"]=> NULL ["volatility"]=> int(3) ["suitability_en"]=> string(147) "
  • want a core Canadian equity fund for your portfolio
  • are investing for the medium and/or long term
  • can tolerate medium risk
  • " ["suitability_fr"]=> string(200) "
  • recherchez pour votre portefeuille un fonds composé principalement d'actions canadiennes
  • investissez à moyen terme et(ou) à long terme
  • avez une tolérance au risque moyenne
  • " ["small_cap"]=> NULL ["medium_cap"]=> NULL ["large_cap"]=> NULL ["highlights_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["highlights_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["page_alias_en"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["page_alias_fr"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["short_summary_en"]=> string(0) "" ["short_summary_fr"]=> string(0) "" ["mpower_id"]=> string(4) "2216" ["legal_structure_id"]=> int(1) ["marketing_category_id"]=> int(8) ["marketing_focus_id"]=> int(13) ["mandate_id"]=> int(173) ["accredited_only"]=> int(0) ["rrsp"]=> int(2) ["cfr_fund_code"]=> string(0) "" ["g520_accumulation_from"]=> NULL ["g520_accumulation_to"]=> NULL ["g520_distr_from"]=> NULL ["g520_distr_to"]=> NULL ["g520_issue_date_from"]=> NULL ["g520_issue_date_to"]=> NULL ["g520_guarantee_from"]=> NULL ["g520_guarantee_to"]=> NULL ["g520_target_date"]=> NULL ["cfr_product_id"]=> NULL ["seg_volatility"]=> int(4) ["had_a_null"]=> int(0) ["termination_date"]=> NULL ["prev_name_en"]=> NULL ["prev_name_fr"]=> NULL ["fund_rename_date"]=> NULL ["fund_merged_data_en"]=> NULL ["fund_merged_data_fr"]=> NULL ["cinchy_code"]=> string(4) "2216" } ["_related":"yii\db\BaseActiveRecord":private]=> array(2) { ["mandate"]=> object(Lifecycle\models\SsMandate)#393 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(6) { ["id"]=> int(173) ["name_en"]=> string(30) "Select Canadian Equity Managed" ["name_fr"]=> string(36) "gestion d'actions canadiennes Select" ["product_id"]=> int(12) ["cincy_code"]=> string(4) "2216" ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(6) { ["id"]=> int(173) ["name_en"]=> string(30) "Select Canadian Equity Managed" ["name_fr"]=> string(36) "gestion d'actions canadiennes Select" ["product_id"]=> int(12) ["cincy_code"]=> string(4) "2216" ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["fundCategory"]=> object(Lifecycle\models\SsFundCategory)#397 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(31) ["name_en"]=> string(15) "Canadian Equity" ["name_fr"]=> string(19) "Actions canadiennes" ["list_position"]=> int(110) ["fund_type_id"]=> int(6) ["is_hidden"]=> string(2) "NO" ["marketing_asset_id"]=> int(4) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(31) ["name_en"]=> string(15) "Canadian Equity" ["name_fr"]=> string(19) "Actions canadiennes" ["list_position"]=> int(110) ["fund_type_id"]=> int(6) ["is_hidden"]=> string(2) "NO" ["marketing_asset_id"]=> int(4) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["fundType"]=> object(Lifecycle\models\SsFundType)#398 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(17) { ["id"]=> int(6) ["name_en"]=> string(17) "Managed Solutions" ["name_fr"]=> string(18) "Solutions gérées" ["pro_modx_parent_fr"]=> int(1) ["pro_modx_parent_en"]=> int(1) ["modx_parent_fr"]=> int(1) ["modx_parent_en"]=> int(1) ["res_en"]=> int(1) ["res_fr"]=> int(1) ["pro_res_en"]=> int(1) ["pro_res_fr"]=> int(1) ["mobile_en"]=> NULL ["mobile_fr"]=> NULL ["hide_holdings"]=> int(0) ["hide_funds"]=> int(0) ["position"]=> int(2) ["bulk_prefix"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(17) { ["id"]=> int(6) ["name_en"]=> string(17) "Managed Solutions" ["name_fr"]=> string(18) "Solutions gérées" ["pro_modx_parent_fr"]=> int(1) ["pro_modx_parent_en"]=> int(1) ["modx_parent_fr"]=> int(1) ["modx_parent_en"]=> int(1) ["res_en"]=> int(1) ["res_fr"]=> int(1) ["pro_res_en"]=> int(1) ["pro_res_fr"]=> int(1) ["mobile_en"]=> NULL ["mobile_fr"]=> NULL ["hide_holdings"]=> int(0) ["hide_funds"]=> int(0) ["position"]=> int(2) ["bulk_prefix"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["fund_type_id"]=> array(1) { ["fundType"]=> string(8) "fundType" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(2) { ["mandate_id"]=> array(1) { ["mandate"]=> string(7) "mandate" } ["fund_category_id"]=> array(1) { ["fundCategory"]=> string(12) "fundCategory" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["fee"]=> object(Lifecycle\models\SsFees)#417 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(20) { ["series_id"]=> int(2634) ["mgmt_fee"]=> string(5) "0.950" ["fee_waiver"]=> NULL ["mer_percent"]=> string(4) "1.22" ["ter_percent"]=> string(4) "0.12" ["fund_expense"]=> string(4) "0.00" ["trail_init"]=> NULL ["trail_dsc_first"]=> NULL ["trail_dsc_after"]=> NULL ["trail_ll_first"]=> NULL ["trail_ll_after"]=> NULL ["sales_init_min"]=> NULL ["sales_init_max"]=> NULL ["trail_ll2_first"]=> NULL ["trail_ll2_after"]=> NULL ["mer_date"]=> string(10) "2020-09-30" ["mer_excl_perf"]=> string(4) "0.00" ["mer_excl_perf_flag"]=> int(0) ["cinchy_tier_code"]=> string(5) "15101" ["admin_percent"]=> string(4) "0.00" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(20) { ["series_id"]=> int(2634) ["mgmt_fee"]=> string(5) "0.950" ["fee_waiver"]=> NULL ["mer_percent"]=> string(4) "1.22" ["ter_percent"]=> string(4) "0.12" ["fund_expense"]=> string(4) "0.00" ["trail_init"]=> NULL ["trail_dsc_first"]=> NULL ["trail_dsc_after"]=> NULL ["trail_ll_first"]=> NULL ["trail_ll_after"]=> NULL ["sales_init_min"]=> NULL ["sales_init_max"]=> NULL ["trail_ll2_first"]=> NULL ["trail_ll2_after"]=> NULL ["mer_date"]=> string(10) "2020-09-30" ["mer_excl_perf"]=> string(4) "0.00" ["mer_excl_perf_flag"]=> int(0) ["cinchy_tier_code"]=> string(5) "15101" ["admin_percent"]=> string(4) "0.00" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["mgm_fees"]=> array(0) { } ["recent_distribution"]=> object(Lifecycle\models\SsMostRecentDistribution)#526 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(3420) ["series_id"]=> int(2634) ["payable_date"]=> string(10) "2021-03-26" ["record_date"]=> string(10) "2021-03-25" ["amount"]=> string(10) "0.14335100" ["from_capital"]=> string(10) "0.00000000" ["created_on"]=> string(19) "2021-03-27 00:00:00" ["drip"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(3420) ["series_id"]=> int(2634) ["payable_date"]=> string(10) "2021-03-26" ["record_date"]=> string(10) "2021-03-25" ["amount"]=> string(10) "0.14335100" ["from_capital"]=> string(10) "0.00000000" ["created_on"]=> string(19) "2021-03-27 00:00:00" ["drip"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(2) { ["id"]=> array(4) { ["fund_codes"]=> string(10) "fund_codes" ["fee"]=> string(3) "fee" ["mgm_fees"]=> string(8) "mgm_fees" ["recent_distribution"]=> string(19) "recent_distribution" } ["fund_id"]=> array(1) { ["fund"]=> string(4) "fund" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["fund_codes"]=> array(1) { [6515]=> string(5) "15101" } ["purchase"]=> array(1) { [6515]=> array(2) { ["avb"]=> int(2) ["show_info"]=> int(1) } } ["show_fund_codes"]=> bool(true) ["show_series_disclaimer"]=> int(0) ["regulatory_disclaimer"]=> int(0) ["selectedDate"]=> string(0) "" ["id"]=> string(20) "management-fee-popup" ["nameFieldName"]=> string(7) "name_en" ["defaultCurrencyId"]=> int(1) ["classId"]=> int(295) ["avb_series"]=> array(11) { [289]=> string(1) "A" [292]=> string(1) "E" [295]=> string(2) "EF" [298]=> string(1) "F" [301]=> string(1) "I" [302]=> string(1) "O" [305]=> string(1) "P" [352]=> string(1) "V" [328]=> string(1) "W" [326]=> string(1) "Y" [327]=> string(1) "Z" } ["fundHasSeriesSelector"]=> bool(true) ["currencies"]=> array(1) { [0]=> object(Lifecycle\models\SsCurrency)#461 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(1) ["name_en"]=> string(3) "CAD" ["name_fr"]=> string(3) "$CA" ["short_code"]=> string(3) "CAD" ["ex_rate"]=> float(0) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(1) ["name_en"]=> string(3) "CAD" ["name_fr"]=> string(3) "$CA" ["short_code"]=> string(3) "CAD" ["ex_rate"]=> float(0) } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["riskMeterVisibilityClass"]=> string(0) "" ["fundFactVisibilityClass"]=> string(0) "" ["hasManagementFee"]=> bool(true) ["isAsteriskedFund"]=> bool(false) ["hasManagementFeePopup"]=> bool(false) ["series_tier"]=> array(0) { } ["managementFee"]=> string(4) "0.95" ["hasAUM"]=> bool(true) ["AUMDate"]=> string(10) "2021-04-30" ["active"]=> array(11) { [0]=> string(9) "ci-active" [1]=> int(1) [2]=> int(2) [3]=> int(3) [4]=> int(4) [5]=> int(5) [6]=> int(6) [7]=> int(7) [8]=> int(8) [9]=> int(9) [10]=> int(10) } ["numManagementFeeDecimals"]=> int(3) ["extra_parameters"]=> string(39) "&classId=295&currencySelector=1" ["fundFactFileNameStr"]=> string(134) "https://ci.com/en/documents/static/Fund_Facts_/Managed_Solutions/2753/SelectCanadianEquityManagedCorporateClass_Fund_Fact_Document.pdf" ["positioningPieceFileNameStr"]=> string(0) "" ["positioningPieceVisibilityClass"]=> string(7) "ci-hide" ["staticDocumentsPath"]=> string(35) "https://ci.com/en/documents/static/" ["popular_docs"]=> array(3) { [0]=> array(6) { ["repo_count"]=> string(4) "9396" ["size"]=> string(5) "3.04M" ["file_name"]=> string(34) "1569028624/3079-05d447ab1b84e2.pdf" ["name"]=> string(23) "Annual Information Form" ["cat_name"]=> string(26) "Legal/Regulatory Documents" ["doc_id"]=> string(4) "3079" } [1]=> array(6) { ["repo_count"]=> string(4) "7486" ["size"]=> string(4) "186K" ["file_name"]=> string(38) "1592650813/42179-05ee9101fda00c_en.pdf" ["name"]=> string(54) "Independent Review Committee Report to Securityholders" ["cat_name"]=> string(26) "Legal/Regulatory Documents" ["doc_id"]=> string(5) "42179" } [2]=> array(6) { ["repo_count"]=> string(4) "6659" ["size"]=> string(4) "186K" ["file_name"]=> string(38) "1615980851/16451-05f80b49029705_en.pdf" ["name"]=> string(54) "Independent Review Committee Report to Securityholders" ["cat_name"]=> string(26) "Legal/Regulatory Documents" ["doc_id"]=> string(5) "16451" } } ["categories"]=> array(0) { } ["trailer"]=> int(0) ["fundProfile"]=> string(133) "https://ci.com/en/documents/static/Fund_Profiles/Managed_Solutions/5211/SelectCanadianEquityManagedCorporateClass_Monthly_profile.pdf" ["fundProfileLabelName"]=> string(15) "Monthly Profile" ["hasFundProfile"]=> bool(true) ["isUserLoggedIn"]=> bool(false) ["toolsLinks"]=> array(0) { } ["adjustedMER"]=> string(0) "" ["terminated"]=> bool(false) ["categoryOptions"]=> array(6) { ["Money Market"]=> array(1) { ["https://ci.com/en/funds/managed-solutions/SelectStagingFund.html"]=> string(19) "Select Staging Fund" } ["U.S. Equity"]=> array(2) { ["https://ci.com/en/funds/managed-solutions/SelectU.S.EquityManagedCorporateClass.html"]=> string(42) "Select U.S. Equity Managed Corporate Class" ["https://ci.com/en/funds/managed-solutions/SelectU.S.EquityManagedFund.html"]=> string(31) "Select U.S. Equity Managed Fund" } ["International Equity"]=> array(2) { ["https://ci.com/en/funds/managed-solutions/SelectInternationalEquityManagedCorporateClass.html"]=> string(51) "Select International Equity Managed Corporate Class" ["https://ci.com/en/funds/managed-solutions/SelectInternationalEquityManagedFund.html"]=> string(40) "Select International Equity Managed Fund" } ["Canadian Equity"]=> array(2) { ["https://ci.com/en/funds/managed-solutions/SelectCanadianEquityManagedCorporateClass.html"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["https://ci.com/en/funds/managed-solutions/SelectCanadianEquityManagedFund.html"]=> string(35) "Select Canadian Equity Managed Fund" } ["Asset Allocation"]=> array(35) { ["https://ci.com/en/funds/managed-solutions/CIG5|202038Q3Fund.html"]=> string(21) "CI G5|20 2038 Q3 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|202038Q4Fund.html"]=> string(21) "CI G5|20 2038 Q4 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|202039Q2Fund.html"]=> string(21) "CI G5|20 2039 Q2 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|202039Q3Fund.html"]=> string(21) "CI G5|20 2039 Q3 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|202040Q1Fund.html"]=> string(21) "CI G5|20 2040 Q1 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|202040Q4Fund.html"]=> string(21) "CI G5|20 2040 Q4 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|20i2035Q1Fund.html"]=> string(22) "CI G5|20i 2035 Q1 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|20i2035Q2Fund.html"]=> string(22) "CI G5|20i 2035 Q2 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|20i2036Q1Fund.html"]=> string(22) "CI G5|20i 2036 Q1 Fund" ["https://ci.com/en/funds/managed-solutions/CIG5|20i2036Q2Fund.html"]=> string(22) "CI G5|20i 2036 Q2 Fund" ["https://ci.com/en/funds/managed-solutions/CI-Mosaic-Balanced-ETF-Portfolio-.html"]=> string(32) "CI Mosaic Balanced ETF Portfolio" ["https://ci.com/en/funds/managed-solutions/CI-Mosaic-Balanced-Growth-ETF-Portfolio-.html"]=> string(39) "CI Mosaic Balanced Growth ETF Portfolio" ["https://ci.com/en/funds/managed-solutions/CI-Mosaic-Balanced-Income-ETF-Portfolio-.html"]=> string(39) "CI Mosaic Balanced Income ETF Portfolio" ["https://ci.com/en/funds/managed-solutions/CI-Mosaic-Growth-ETF-Portfolio-.html"]=> string(30) "CI Mosaic Growth ETF Portfolio" ["https://ci.com/en/funds/managed-solutions/CI-Mosaic-Income-ETF-Portfolio-.html"]=> string(30) "CI Mosaic Income ETF Portfolio" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesBalancedFund.html"]=> string(30) "Portfolio Series Balanced Fund" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesBalancedGrowthFund.html"]=> string(37) "Portfolio Series Balanced Growth Fund" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesConservativeBalancedFund.html"]=> string(43) "Portfolio Series Conservative Balanced Fund" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesConservativeFund.html"]=> string(34) "Portfolio Series Conservative Fund" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesGrowthFund.html"]=> string(28) "Portfolio Series Growth Fund" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesIncomeFund.html"]=> string(28) "Portfolio Series Income Fund" ["https://ci.com/en/funds/managed-solutions/PortfolioSeriesMaximumGrowthFund.html"]=> string(36) "Portfolio Series Maximum Growth Fund" ["https://ci.com/en/funds/managed-solutions/Select100eManagedPortfolioCorporateClass.html"]=> string(45) "Select 100e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select20i80eManagedPortfolioCorporateClass.html"]=> string(47) "Select 20i80e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select30i70eManagedPortfolioCorporateClass.html"]=> string(47) "Select 30i70e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select40i60eManagedPortfolioCorporateClass.html"]=> string(47) "Select 40i60e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select50i50eManagedPortfolioCorporateClass.html"]=> string(47) "Select 50i50e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select60i40eManagedPortfolioCorporateClass.html"]=> string(47) "Select 60i40e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select70i30eManagedPortfolioCorporateClass.html"]=> string(47) "Select 70i30e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/Select80i20eManagedPortfolioCorporateClass.html"]=> string(47) "Select 80i20e Managed Portfolio Corporate Class" ["https://ci.com/en/funds/managed-solutions/SentryBalancedIncomePortfolio.html"]=> string(32) "Sentry Balanced Income Portfolio" ["https://ci.com/en/funds/managed-solutions/SentryConservativeIncomePortfolio.html"]=> string(36) "Sentry Conservative Income Portfolio" ["https://ci.com/en/funds/managed-solutions/SentryDefensiveIncomePortfolio.html"]=> string(33) "Sentry Defensive Income Portfolio" ["https://ci.com/en/funds/managed-solutions/SentryGrowthandIncomePortfolio.html"]=> string(34) "Sentry Growth and Income Portfolio" ["https://ci.com/en/funds/managed-solutions/SentryGrowthPortfolio.html"]=> string(23) "Sentry Growth Portfolio" } ["Diversified Income"]=> array(1) { ["https://ci.com/en/funds/managed-solutions/SelectIncomeManagedCorporateClass.html"]=> string(37) "Select Income Managed Corporate Class" } } ["loadedFundChunk"]=> string(0) "" ["managers"]=> array(1) { ["CI_Multi_Asset_Management_logo_en.png"]=> array(2) { [0]=> object(Lifecycle\models\SsMandateToManager)#337 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9370) ["staff_id"]=> int(101) ["mandate_id"]=> int(173) ["rank"]=> int(1) ["tenure"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9370) ["staff_id"]=> int(101) ["mandate_id"]=> int(173) ["rank"]=> int(1) ["tenure"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff"]=> object(Lifecycle\models\SsStaff)#354 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(101) ["staff_title_id"]=> int(344) ["name"]=> string(10) "Alfred Lam" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(718) "Alfred Lam, CFA, Senior Vice-President and Chief Investment Officer, leads the CI Multi-Asset Management team. Mr. Lam has over 18 years of experience specializing in portfolio design, asset allocation, manager and fund selection, and risk management. While at CI, Mr. Lam has brought unique ideas and processes to the management of the team’s multi-asset strategies, including a mean-reversion currency management strategy, the concept of investing in concentrated and benchmark-agnostic portfolios, and a new approach to risk management. In addition to the CFA designation, Mr. Lam holds an MBA from the York University Schulich School of Business, and is a member of the CFA Institute and the Toronto CFA Society." ["summary_fr"]=> string(870) "Alfred Lam, CFA, vice-président principal et directeur des placements, dirige l’équipe de Gestion d’actifs multiples CI. M. Lam possède plus de 18 ans d’expérience dans la construction de portefeuilles, la répartition de l’actif, la sélection des gestionnaires et des fonds et la gestion du risque. Il a contribué à l’élaboration et à la gestion des solutions de placement CI, grâce à l’apport d’idées uniques et d’approches rigoureuses, comme la stratégie de gestion des positions de change axée sur la tendance à revenir à la moyenne, l’investissement dans des portefeuilles non indiciels et concentrés et une approche novatrice de gestion des risques. En plus de la désignation CFA, il est titulaire d’un MBA de la Schulich School of Business de l’Université York et est membre du CFA Institute et du Toronto CFA Society." ["list_position"]=> int(1) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(10) "Alfred_Lam" ["picture_id"]=> string(71) "/webb/shared_assets/images/managerphotos/Alfred_Lam_1554909120_main.jpg" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(3) "CFA" ["after_name_fr"]=> string(3) "CFA" ["ci_start_year"]=> int(2001) ["industry_start_year"]=> int(2001) ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(101) ["staff_title_id"]=> int(344) ["name"]=> string(10) "Alfred Lam" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(718) "Alfred Lam, CFA, Senior Vice-President and Chief Investment Officer, leads the CI Multi-Asset Management team. Mr. Lam has over 18 years of experience specializing in portfolio design, asset allocation, manager and fund selection, and risk management. While at CI, Mr. Lam has brought unique ideas and processes to the management of the team’s multi-asset strategies, including a mean-reversion currency management strategy, the concept of investing in concentrated and benchmark-agnostic portfolios, and a new approach to risk management. In addition to the CFA designation, Mr. Lam holds an MBA from the York University Schulich School of Business, and is a member of the CFA Institute and the Toronto CFA Society." ["summary_fr"]=> string(870) "Alfred Lam, CFA, vice-président principal et directeur des placements, dirige l’équipe de Gestion d’actifs multiples CI. M. Lam possède plus de 18 ans d’expérience dans la construction de portefeuilles, la répartition de l’actif, la sélection des gestionnaires et des fonds et la gestion du risque. Il a contribué à l’élaboration et à la gestion des solutions de placement CI, grâce à l’apport d’idées uniques et d’approches rigoureuses, comme la stratégie de gestion des positions de change axée sur la tendance à revenir à la moyenne, l’investissement dans des portefeuilles non indiciels et concentrés et une approche novatrice de gestion des risques. En plus de la désignation CFA, il est titulaire d’un MBA de la Schulich School of Business de l’Université York et est membre du CFA Institute et du Toronto CFA Society." ["list_position"]=> int(1) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(10) "Alfred_Lam" ["picture_id"]=> string(21) "Alfred_Lam_1554909120" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(3) "CFA" ["after_name_fr"]=> string(3) "CFA" ["ci_start_year"]=> int(2001) ["industry_start_year"]=> int(2001) ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["company"]=> object(Lifecycle\models\SsPortfolioManager)#484 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["portfolio_manager_id"]=> array(1) { ["company"]=> string(7) "company" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff_id"]=> array(1) { ["staff"]=> string(5) "staff" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } [1]=> object(Lifecycle\models\SsMandateToManager)#353 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9371) ["staff_id"]=> int(280) ["mandate_id"]=> int(173) ["rank"]=> int(2) ["tenure"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9371) ["staff_id"]=> int(280) ["mandate_id"]=> int(173) ["rank"]=> int(2) ["tenure"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff"]=> object(Lifecycle\models\SsStaff)#382 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(280) ["staff_title_id"]=> int(349) ["name"]=> string(18) "Marchello Holditch" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(825) "Marchello Holditch, CFA, CAIA, Vice-President and Portfolio Manager, oversees CI's multi-manager, multi-asset investment programs. He is responsible for managing CI’s institutional and private client multi-asset portfolios and is a member of the CI Multi-Asset Investment Committee. Previously, Mr. Holditch led CI’s portfolio manager research and oversight function, where he was responsible for evaluating the investment managers of all CI funds. Prior to joining CI, Mr. Holditch worked at a major global consulting firm, where he assisted a wide variety of institutional clients with risk budgeting and asset liability modelling, as well as investment manager research and selection. He holds an Honours Bachelor of Mathematics degree in actuarial science from the University of Waterloo and is a CFA charterholder." ["summary_fr"]=> string(0) "" ["list_position"]=> int(2) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(18) "Marchello_Holditch" ["picture_id"]=> string(79) "/webb/shared_assets/images/managerphotos/Marchello_Holditch_1554909137_main.jpg" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(9) "CFA, CAIA" ["after_name_fr"]=> string(0) "" ["ci_start_year"]=> NULL ["industry_start_year"]=> NULL ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(280) ["staff_title_id"]=> int(349) ["name"]=> string(18) "Marchello Holditch" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(825) "Marchello Holditch, CFA, CAIA, Vice-President and Portfolio Manager, oversees CI's multi-manager, multi-asset investment programs. He is responsible for managing CI’s institutional and private client multi-asset portfolios and is a member of the CI Multi-Asset Investment Committee. Previously, Mr. Holditch led CI’s portfolio manager research and oversight function, where he was responsible for evaluating the investment managers of all CI funds. Prior to joining CI, Mr. Holditch worked at a major global consulting firm, where he assisted a wide variety of institutional clients with risk budgeting and asset liability modelling, as well as investment manager research and selection. He holds an Honours Bachelor of Mathematics degree in actuarial science from the University of Waterloo and is a CFA charterholder." ["summary_fr"]=> string(0) "" ["list_position"]=> int(2) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(18) "Marchello_Holditch" ["picture_id"]=> string(29) "Marchello_Holditch_1554909137" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(9) "CFA, CAIA" ["after_name_fr"]=> string(0) "" ["ci_start_year"]=> NULL ["industry_start_year"]=> NULL ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["company"]=> object(Lifecycle\models\SsPortfolioManager)#525 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["portfolio_manager_id"]=> array(1) { ["company"]=> string(7) "company" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff_id"]=> array(1) { ["staff"]=> string(5) "staff" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } } ["recentDistribution"]=> object(Lifecycle\models\SsMostRecentDistribution)#526 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(3420) ["series_id"]=> int(2634) ["payable_date"]=> string(10) "2021-03-26" ["record_date"]=> string(10) "2021-03-25" ["amount"]=> string(10) "0.14335100" ["from_capital"]=> string(10) "0.00000000" ["created_on"]=> string(19) "2021-03-27 00:00:00" ["drip"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(3420) ["series_id"]=> int(2634) ["payable_date"]=> string(10) "2021-03-26" ["record_date"]=> string(10) "2021-03-25" ["amount"]=> string(10) "0.14335100" ["from_capital"]=> string(10) "0.00000000" ["created_on"]=> string(19) "2021-03-27 00:00:00" ["drip"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["overview"]=> string(0) "" ["disclaimer"]=> NULL } } } [5]=> array(6) { ["file"]=> string(47) "/var/www/html/vendor/yiisoft/yii2/base/View.php" ["line"]=> int(255) ["function"]=> string(6) "render" ["class"]=> string(21) "yii\twig\ViewRenderer" ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> object(yii\web\View)#124 (21) { ["assetBundles"]=> array(0) { } ["title"]=> NULL ["metaTags"]=> array(0) { } ["linkTags"]=> array(0) { } ["css"]=> array(0) { } ["cssFiles"]=> array(0) { } ["js"]=> array(2) { [1]=> array(1) { ["newrelic-head"]=> string(0) "" } [3]=> array(1) { ["newrelic-end"]=> string(0) "" } } ["jsFiles"]=> array(0) { } ["_assetManager":"yii\web\View":private]=> NULL ["context"]=> object(Lifecycle\controllers\FundsController)#173 (42) { ["layout"]=> string(11) "default.php" ["cache_time"]=> int(86400) ["cache_params":"Lifecycle\controllers\FundsController":private]=> array(6) { [0]=> string(5) "alias" [1]=> string(3) "cat" [2]=> string(16) "currencySelector" [3]=> string(8) "seriesId" [4]=> string(7) "classId" [5]=> string(13) "redirect_type" } ["view_vars"]=> NULL ["userData"]=> NULL ["route"]=> object(Lifecycle\models\SsPages)#126 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(42) { ["id"]=> int(27) ["alias_fr"]=> string(20) "managed-solutions-fr" ["alias_en"]=> string(17) "managed-solutions" ["title_fr"]=> string(17) "Managed solutions" ["title_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["controller"]=> string(5) "funds" ["action"]=> string(16) "fund_description" ["params"]=> string(10) "fund_cat_6" ["context"]=> int(0) ["type"]=> int(1) ["parent_id"]=> int(27) ["meta_description_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["meta_description_fr"]=> string(0) "" ["meta_keywords_en"]=> string(122) "Select Canadian Equity Managed Corporate Class, Managed Solutions, Canadian Equity,15101, Alfred Lam, Marchello Holditch, " ["meta_keywords_fr"]=> string(0) "" ["position"]=> int(-1) ["published"]=> int(1) ["request_id"]=> NULL ["search_index"]=> string(3) "YES" ["alias_advisor"]=> string(1) "1" ["updated_on"]=> int(0) ["title_advisor"]=> NULL ["meta_canonical_en"]=> string(121) "https://ci.com/en/funds/managed-solutions/SelectCanadianEquityManagedCorporateClass.html?seriesId=2634¤cySelector=1" ["meta_canonical_fr"]=> NULL ["twitter_card"]=> NULL ["twitter_site"]=> NULL ["twitter_title"]=> NULL ["twitter_desc"]=> NULL ["twitter_img"]=> NULL ["og_title"]=> NULL ["og_desc"]=> NULL ["og_img"]=> NULL ["twitter_card_fr"]=> NULL ["twitter_site_fr"]=> NULL ["twitter_title_fr"]=> NULL ["twitter_desc_fr"]=> NULL ["twitter_img_fr"]=> NULL ["og_title_fr"]=> NULL ["og_desc_fr"]=> NULL ["og_img_fr"]=> NULL ["og_site"]=> NULL ["og_site_fr"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(42) { ["id"]=> int(27) ["alias_fr"]=> string(20) "managed-solutions-fr" ["alias_en"]=> string(17) "managed-solutions" ["title_fr"]=> string(17) "Managed solutions" ["title_en"]=> string(17) "Managed solutions" ["controller"]=> string(7) "summary" ["action"]=> string(5) "daily" ["params"]=> string(10) "fund_cat_6" ["context"]=> int(0) ["type"]=> int(1) ["parent_id"]=> int(20) ["meta_description_en"]=> string(0) "" ["meta_description_fr"]=> string(0) "" ["meta_keywords_en"]=> string(0) "" ["meta_keywords_fr"]=> string(0) "" ["position"]=> int(-1) ["published"]=> int(1) ["request_id"]=> NULL ["search_index"]=> string(3) "YES" ["alias_advisor"]=> string(1) "1" ["updated_on"]=> int(0) ["title_advisor"]=> NULL ["meta_canonical_en"]=> NULL ["meta_canonical_fr"]=> NULL ["twitter_card"]=> NULL ["twitter_site"]=> NULL ["twitter_title"]=> NULL ["twitter_desc"]=> NULL ["twitter_img"]=> NULL ["og_title"]=> NULL ["og_desc"]=> NULL ["og_img"]=> NULL ["twitter_card_fr"]=> NULL ["twitter_site_fr"]=> NULL ["twitter_title_fr"]=> NULL ["twitter_desc_fr"]=> NULL ["twitter_img_fr"]=> NULL ["og_title_fr"]=> NULL ["og_desc_fr"]=> NULL ["og_img_fr"]=> NULL ["og_site"]=> NULL ["og_site_fr"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["alias_en"]=> string(17) "managed-solutions" ["alias_fr"]=> string(20) "managed-solutions-fr" ["cat"]=> int(6) ["mobile_device"]=> bool(false) ["serviceMenu"]=> NULL ["queryParams"]=> string(0) "" ["numUnreadMessages"]=> int(0) ["get"]=> array(0) { } ["isInternalUser"]=> bool(false) ["pageTitle"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["breadcrumbs"]=> NULL ["viewPath"]=> NULL ["showBreadcrumbs"]=> bool(false) ["meta_description"]=> string(0) "" ["meta_keywords"]=> string(0) "" ["current_fund"]=> object(Lifecycle\models\SsFund)#183 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(47) { ["id"]=> int(263) ["fund_category_id"]=> int(31) ["name_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["terminated"]=> int(0) ["name_fr"]=> string(60) "Catégorie de société gestion d'actions canadiennes Select" ["overview_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["overview_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["foreign_objective"]=> NULL ["volatility"]=> int(3) ["suitability_en"]=> string(147) "
  • want a core Canadian equity fund for your portfolio
  • are investing for the medium and/or long term
  • can tolerate medium risk
  • " ["suitability_fr"]=> string(200) "
  • recherchez pour votre portefeuille un fonds composé principalement d'actions canadiennes
  • investissez à moyen terme et(ou) à long terme
  • avez une tolérance au risque moyenne
  • " ["small_cap"]=> NULL ["medium_cap"]=> NULL ["large_cap"]=> NULL ["highlights_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["highlights_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["page_alias_en"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["page_alias_fr"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["short_summary_en"]=> string(0) "" ["short_summary_fr"]=> string(0) "" ["mpower_id"]=> string(4) "2216" ["legal_structure_id"]=> int(1) ["marketing_category_id"]=> int(8) ["marketing_focus_id"]=> int(13) ["mandate_id"]=> int(173) ["accredited_only"]=> int(0) ["rrsp"]=> int(2) ["cfr_fund_code"]=> string(0) "" ["g520_accumulation_from"]=> NULL ["g520_accumulation_to"]=> NULL ["g520_distr_from"]=> NULL ["g520_distr_to"]=> NULL ["g520_issue_date_from"]=> NULL ["g520_issue_date_to"]=> NULL ["g520_guarantee_from"]=> NULL ["g520_guarantee_to"]=> NULL ["g520_target_date"]=> NULL ["cfr_product_id"]=> NULL ["seg_volatility"]=> int(4) ["had_a_null"]=> int(0) ["termination_date"]=> NULL ["prev_name_en"]=> NULL ["prev_name_fr"]=> NULL ["fund_rename_date"]=> NULL ["fund_merged_data_en"]=> NULL ["fund_merged_data_fr"]=> NULL ["cinchy_code"]=> string(4) "2216" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(47) { ["id"]=> int(263) ["fund_category_id"]=> int(31) ["name_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["terminated"]=> int(0) ["name_fr"]=> string(60) "Catégorie de société gestion d'actions canadiennes Select" ["overview_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["overview_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["foreign_objective"]=> NULL ["volatility"]=> int(3) ["suitability_en"]=> string(147) "
  • want a core Canadian equity fund for your portfolio
  • are investing for the medium and/or long term
  • can tolerate medium risk
  • " ["suitability_fr"]=> string(200) "
  • recherchez pour votre portefeuille un fonds composé principalement d'actions canadiennes
  • investissez à moyen terme et(ou) à long terme
  • avez une tolérance au risque moyenne
  • " ["small_cap"]=> NULL ["medium_cap"]=> NULL ["large_cap"]=> NULL ["highlights_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["highlights_fr"]=> string(268) "Ce fonds investit principalement dans des titres de participation et des titres de participation connexes principalement de sociétés canadiennes. Il est prévu que les placements dans des titres étrangers ne dépasseront pas, en général, 10 % des actifs du fonds." ["page_alias_en"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["page_alias_fr"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["short_summary_en"]=> string(0) "" ["short_summary_fr"]=> string(0) "" ["mpower_id"]=> string(4) "2216" ["legal_structure_id"]=> int(1) ["marketing_category_id"]=> int(8) ["marketing_focus_id"]=> int(13) ["mandate_id"]=> int(173) ["accredited_only"]=> int(0) ["rrsp"]=> int(2) ["cfr_fund_code"]=> string(0) "" ["g520_accumulation_from"]=> NULL ["g520_accumulation_to"]=> NULL ["g520_distr_from"]=> NULL ["g520_distr_to"]=> NULL ["g520_issue_date_from"]=> NULL ["g520_issue_date_to"]=> NULL ["g520_guarantee_from"]=> NULL ["g520_guarantee_to"]=> NULL ["g520_target_date"]=> NULL ["cfr_product_id"]=> NULL ["seg_volatility"]=> int(4) ["had_a_null"]=> int(0) ["termination_date"]=> NULL ["prev_name_en"]=> NULL ["prev_name_fr"]=> NULL ["fund_rename_date"]=> NULL ["fund_merged_data_en"]=> NULL ["fund_merged_data_fr"]=> NULL ["cinchy_code"]=> string(4) "2216" } ["_related":"yii\db\BaseActiveRecord":private]=> array(3) { ["fundCategory"]=> object(Lifecycle\models\SsFundCategory)#233 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(31) ["name_en"]=> string(15) "Canadian Equity" ["name_fr"]=> string(19) "Actions canadiennes" ["list_position"]=> int(110) ["fund_type_id"]=> int(6) ["is_hidden"]=> string(2) "NO" ["marketing_asset_id"]=> int(4) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(7) { ["id"]=> int(31) ["name_en"]=> string(15) "Canadian Equity" ["name_fr"]=> string(19) "Actions canadiennes" ["list_position"]=> int(110) ["fund_type_id"]=> int(6) ["is_hidden"]=> string(2) "NO" ["marketing_asset_id"]=> int(4) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["fundType"]=> object(Lifecycle\models\SsFundType)#243 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(17) { ["id"]=> int(6) ["name_en"]=> string(17) "Managed Solutions" ["name_fr"]=> string(18) "Solutions gérées" ["pro_modx_parent_fr"]=> int(1) ["pro_modx_parent_en"]=> int(1) ["modx_parent_fr"]=> int(1) ["modx_parent_en"]=> int(1) ["res_en"]=> int(1) ["res_fr"]=> int(1) ["pro_res_en"]=> int(1) ["pro_res_fr"]=> int(1) ["mobile_en"]=> NULL ["mobile_fr"]=> NULL ["hide_holdings"]=> int(0) ["hide_funds"]=> int(0) ["position"]=> int(2) ["bulk_prefix"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(17) { ["id"]=> int(6) ["name_en"]=> string(17) "Managed Solutions" ["name_fr"]=> string(18) "Solutions gérées" ["pro_modx_parent_fr"]=> int(1) ["pro_modx_parent_en"]=> int(1) ["modx_parent_fr"]=> int(1) ["modx_parent_en"]=> int(1) ["res_en"]=> int(1) ["res_fr"]=> int(1) ["pro_res_en"]=> int(1) ["pro_res_fr"]=> int(1) ["mobile_en"]=> NULL ["mobile_fr"]=> NULL ["hide_holdings"]=> int(0) ["hide_funds"]=> int(0) ["position"]=> int(2) ["bulk_prefix"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["fund_type_id"]=> array(1) { ["fundType"]=> string(8) "fundType" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["managers"]=> array(2) { [0]=> object(Lifecycle\models\SsMandateToManager)#337 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9370) ["staff_id"]=> int(101) ["mandate_id"]=> int(173) ["rank"]=> int(1) ["tenure"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9370) ["staff_id"]=> int(101) ["mandate_id"]=> int(173) ["rank"]=> int(1) ["tenure"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff"]=> object(Lifecycle\models\SsStaff)#354 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(101) ["staff_title_id"]=> int(344) ["name"]=> string(10) "Alfred Lam" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(718) "Alfred Lam, CFA, Senior Vice-President and Chief Investment Officer, leads the CI Multi-Asset Management team. Mr. Lam has over 18 years of experience specializing in portfolio design, asset allocation, manager and fund selection, and risk management. While at CI, Mr. Lam has brought unique ideas and processes to the management of the team’s multi-asset strategies, including a mean-reversion currency management strategy, the concept of investing in concentrated and benchmark-agnostic portfolios, and a new approach to risk management. In addition to the CFA designation, Mr. Lam holds an MBA from the York University Schulich School of Business, and is a member of the CFA Institute and the Toronto CFA Society." ["summary_fr"]=> string(870) "Alfred Lam, CFA, vice-président principal et directeur des placements, dirige l’équipe de Gestion d’actifs multiples CI. M. Lam possède plus de 18 ans d’expérience dans la construction de portefeuilles, la répartition de l’actif, la sélection des gestionnaires et des fonds et la gestion du risque. Il a contribué à l’élaboration et à la gestion des solutions de placement CI, grâce à l’apport d’idées uniques et d’approches rigoureuses, comme la stratégie de gestion des positions de change axée sur la tendance à revenir à la moyenne, l’investissement dans des portefeuilles non indiciels et concentrés et une approche novatrice de gestion des risques. En plus de la désignation CFA, il est titulaire d’un MBA de la Schulich School of Business de l’Université York et est membre du CFA Institute et du Toronto CFA Society." ["list_position"]=> int(1) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(10) "Alfred_Lam" ["picture_id"]=> string(71) "/webb/shared_assets/images/managerphotos/Alfred_Lam_1554909120_main.jpg" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(3) "CFA" ["after_name_fr"]=> string(3) "CFA" ["ci_start_year"]=> int(2001) ["industry_start_year"]=> int(2001) ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(101) ["staff_title_id"]=> int(344) ["name"]=> string(10) "Alfred Lam" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(718) "Alfred Lam, CFA, Senior Vice-President and Chief Investment Officer, leads the CI Multi-Asset Management team. Mr. Lam has over 18 years of experience specializing in portfolio design, asset allocation, manager and fund selection, and risk management. While at CI, Mr. Lam has brought unique ideas and processes to the management of the team’s multi-asset strategies, including a mean-reversion currency management strategy, the concept of investing in concentrated and benchmark-agnostic portfolios, and a new approach to risk management. In addition to the CFA designation, Mr. Lam holds an MBA from the York University Schulich School of Business, and is a member of the CFA Institute and the Toronto CFA Society." ["summary_fr"]=> string(870) "Alfred Lam, CFA, vice-président principal et directeur des placements, dirige l’équipe de Gestion d’actifs multiples CI. M. Lam possède plus de 18 ans d’expérience dans la construction de portefeuilles, la répartition de l’actif, la sélection des gestionnaires et des fonds et la gestion du risque. Il a contribué à l’élaboration et à la gestion des solutions de placement CI, grâce à l’apport d’idées uniques et d’approches rigoureuses, comme la stratégie de gestion des positions de change axée sur la tendance à revenir à la moyenne, l’investissement dans des portefeuilles non indiciels et concentrés et une approche novatrice de gestion des risques. En plus de la désignation CFA, il est titulaire d’un MBA de la Schulich School of Business de l’Université York et est membre du CFA Institute et du Toronto CFA Society." ["list_position"]=> int(1) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(10) "Alfred_Lam" ["picture_id"]=> string(21) "Alfred_Lam_1554909120" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(3) "CFA" ["after_name_fr"]=> string(3) "CFA" ["ci_start_year"]=> int(2001) ["industry_start_year"]=> int(2001) ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["company"]=> object(Lifecycle\models\SsPortfolioManager)#484 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["portfolio_manager_id"]=> array(1) { ["company"]=> string(7) "company" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff_id"]=> array(1) { ["staff"]=> string(5) "staff" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } [1]=> object(Lifecycle\models\SsMandateToManager)#353 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9371) ["staff_id"]=> int(280) ["mandate_id"]=> int(173) ["rank"]=> int(2) ["tenure"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(5) { ["id"]=> int(9371) ["staff_id"]=> int(280) ["mandate_id"]=> int(173) ["rank"]=> int(2) ["tenure"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff"]=> object(Lifecycle\models\SsStaff)#382 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(280) ["staff_title_id"]=> int(349) ["name"]=> string(18) "Marchello Holditch" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(825) "Marchello Holditch, CFA, CAIA, Vice-President and Portfolio Manager, oversees CI's multi-manager, multi-asset investment programs. He is responsible for managing CI’s institutional and private client multi-asset portfolios and is a member of the CI Multi-Asset Investment Committee. Previously, Mr. Holditch led CI’s portfolio manager research and oversight function, where he was responsible for evaluating the investment managers of all CI funds. Prior to joining CI, Mr. Holditch worked at a major global consulting firm, where he assisted a wide variety of institutional clients with risk budgeting and asset liability modelling, as well as investment manager research and selection. He holds an Honours Bachelor of Mathematics degree in actuarial science from the University of Waterloo and is a CFA charterholder." ["summary_fr"]=> string(0) "" ["list_position"]=> int(2) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(18) "Marchello_Holditch" ["picture_id"]=> string(79) "/webb/shared_assets/images/managerphotos/Marchello_Holditch_1554909137_main.jpg" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(9) "CFA, CAIA" ["after_name_fr"]=> string(0) "" ["ci_start_year"]=> NULL ["industry_start_year"]=> NULL ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(26) { ["id"]=> int(280) ["staff_title_id"]=> int(349) ["name"]=> string(18) "Marchello Holditch" ["email"]=> string(0) "" ["bio_en"]=> string(0) "" ["bio_fr"]=> string(0) "" ["bio_pdf_en"]=> NULL ["bio_pdf_fr"]=> NULL ["summary_en"]=> string(825) "Marchello Holditch, CFA, CAIA, Vice-President and Portfolio Manager, oversees CI's multi-manager, multi-asset investment programs. He is responsible for managing CI’s institutional and private client multi-asset portfolios and is a member of the CI Multi-Asset Investment Committee. Previously, Mr. Holditch led CI’s portfolio manager research and oversight function, where he was responsible for evaluating the investment managers of all CI funds. Prior to joining CI, Mr. Holditch worked at a major global consulting firm, where he assisted a wide variety of institutional clients with risk budgeting and asset liability modelling, as well as investment manager research and selection. He holds an Honours Bachelor of Mathematics degree in actuarial science from the University of Waterloo and is a CFA charterholder." ["summary_fr"]=> string(0) "" ["list_position"]=> int(2) ["parent_id"]=> NULL ["region_id"]=> int(0) ["alias"]=> string(18) "Marchello_Holditch" ["picture_id"]=> string(29) "Marchello_Holditch_1554909137" ["bio_pdf_en_id"]=> NULL ["bio_pdf_fr_id"]=> NULL ["before_name_en"]=> string(0) "" ["before_name_fr"]=> string(0) "" ["after_name_en"]=> string(9) "CFA, CAIA" ["after_name_fr"]=> string(0) "" ["ci_start_year"]=> NULL ["industry_start_year"]=> NULL ["portfolio_manager_id"]=> int(4) ["visible"]=> int(1) ["cinchy_status"]=> int(1) } ["_related":"yii\db\BaseActiveRecord":private]=> array(1) { ["company"]=> object(Lifecycle\models\SsPortfolioManager)#525 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(38) { ["id"]=> int(4) ["name_en"]=> string(25) "CI Multi-Asset Management" ["name_fr"]=> string(29) "Gestion d'actifs multiples CI" ["hide"]=> int(0) ["description_en"]=> string(386) "Cl Multi-Asset Management, led by portfolio manager Alfred Lam, oversees Cl's managed solutions. The team’s philosophy is centred on delivering predictable outcomes for investors by utilizing a full set of asset classes while adding value and managing risk through multiple factors. CI Multi Asset Management is a division of CI Investments Inc, a subsidiary of CI Financial Corp." ["description_fr"]=> string(581) "Gestion d’actifs multiples CI, une société dirigée par le gestionnaire de portefeuille Alfred Lam, surveille les solutions gérées de CI. La philosophie de l’équipe se concentre sur la production de résultats prévisibles pour les investisseurs en investissant dans toutes les catégories d’actif, tout en ajoutant de la valeur et en assurant la gestion du risque au moyen de divers facteurs. Gestion d’actifs multiples CI est une division de CI Investments Inc., une filiale de CI Financial Corp." ["logo_fr"]=> string(37) "CI_Multi_Asset_Management_logo_fr.png" ["logo_en"]=> string(37) "CI_Multi_Asset_Management_logo_en.png" ["list_position"]=> int(5) ["quote_en"]=> string(366) "We view active management as a process that strives to identify and manage all the variables that can influence an investor’s total return, with the goal of obtaining the best long-term results. Active management is not simply about stock selection. There is also opportunity to generate incremental excess returns from active asset allocation and risk management." ["quote_fr"]=> string(452) "Nous considérons la gestion active comme un processus visant à identifier et gérer toutes les variables pouvant influer sur le rendement total d’un investisseur, dans le but d’obtenir les meilleurs résultats à long terme. La gestion active va bien au-delà de la sélection des titres. Il y a aussi des possibilités de générer davantage de rendements excédentaires grâce à une répartition active de l’actif et la gestion des risques. " ["quote_author"]=> int(101) ["description_our_funds_en"]=> string(849) "

    CI Multi-Asset Management oversees these managed solutions from CI Investments:

    Portfolio Series is a family of seven strategic multi-asset-class portfolio funds that fit a wide range of distinct investor profiles, from income to maximum growth.

    Portfolio Select Series provides a choice of nine multi-manager, multi-asset-class portfolios built through strategic asset allocation, along with unprecedented flexibility to customize the chosen portfolio.

    CI Mosaic ETF Portfolios provide access to a diverse selection of exchange-traded funds through five active multi-asset-class portfolios that fit a range of investor profiles.

    " ["description_our_funds_fr"]=> string(1222) "

    Gestion d’actifs multiples CI supervise les solutions gérées suivantes de Placements CI :

    Série Portefeuilles est une famille de sept portefeuilles stratégiques regroupant plusieurs catégories d’actif, lesquels conviennent à différents profils d’investisseurs, allant des portefeuilles de revenu aux portefeuilles à croissance maximale.

    Série Portefeuilles Sélect offre une sélection de neuf portefeuilles gérés activement et investissant dans diverses catégories d’actif, le tout à l’intérieur de quatre mandats privés de placement personnalisables. Série Portefeuilles Sélect fait appel à la plateforme Catégorie de société CI pour conférer au portefeuille une efficacité fiscale accrue.

    Portefeuilles FNB Mosaïque CI offrent un accès à une sélection variée de fonds négociés en bourse par l’intermédiaire de cinq portefeuilles actifs comportant plusieurs catégories d’actif qui conviennent à différents profils d’investisseurs.

    " ["description_our_team_en"]=> string(0) "" ["description_our_team_fr"]=> string(0) "" ["our_team_motto_en"]=> string(0) "" ["our_team_motto_fr"]=> string(0) "" ["description_our_philosophy_right_en"]=> string(800) "

    Power of Partnerships

    Total Return Approach

    " ["description_our_philosophy_left_en"]=> string(976) "

    Outcome Oriented

    Multi-Asset Focus

    " ["description_our_philosophy_left_fr"]=> string(1528) "

    Orientée vers les résultats

    Accent sur les actifs multiples

    " ["description_our_philosophy_right_fr"]=> string(1150) "

    Le pouvoir des partenariats

    Approche axée sur le rendement global

    " ["blog_link_en"]=> string(0) "" ["blog_link_fr"]=> string(0) "" ["podcast_link_en"]=> string(0) "" ["podcast_link_fr"]=> string(0) "" ["videos_link_en"]=> string(0) "" ["videos_link_fr"]=> string(0) "" ["light_color"]=> string(7) "#fa9300" ["dark_color"]=> string(7) "#002856" ["intro_en"]=> string(402) "

    CI Multi Asset Management is responsible for the construction and management of CI Investments' managed solutions programs. Based in Toronto, the team oversees approximately $42 billion of assets* invested in customized managed portfolio solutions for individuals, families and businesses. The team is led by portfolio manager Alfred Lam.

    *As at December 31, 2019

    " ["intro_fr"]=> string(503) "

    Gestion d’actifs multiples CI est responsable de la construction et de la gestion des solutions gérées offertes par Placements CI. Basée à Toronto, l’équipe supervise environ 42 milliards de dollars d’actifs* qui sont investis dans des solutions de portefeuille gérées, adaptées aux objectifs de placement des particuliers, des ménages et des entreprises. L’équipe est dirigée par le gestionnaire de portefeuille Alfred Lam.

    *Au 31 décembre 2019

    " ["banner_top_en"]=> string(45) "1553099189CI_Multi_Asset_Management_bg_en.jpg" ["banner_top_fr"]=> NULL ["cinchy_status"]=> int(1) ["home_page_logo_en"]=> NULL ["front_page_logo_en"]=> string(43) "fplogo_PM-logo-Multi-Asset-bw_fplogo_en.png" ["front_page_logo_fr"]=> string(59) "1591667729CI_Multi_Asset_Management_home_page_fplogo_fr.png" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["portfolio_manager_id"]=> array(1) { ["company"]=> string(7) "company" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(1) { ["staff_id"]=> array(1) { ["staff"]=> string(5) "staff" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["recent_tna"]=> object(Lifecycle\models\SsTna)#439 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(6) { ["fund_id"]=> int(263) ["record_date"]=> string(10) "2021-04-30" ["amount"]=> string(11) "146190152.0" ["holdings_number"]=> int(0) ["equity_amount"]=> string(0) "" ["bond_amount"]=> string(0) "" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(6) { ["fund_id"]=> int(263) ["record_date"]=> string(10) "2021-04-30" ["amount"]=> string(11) "146190152.0" ["holdings_number"]=> int(0) ["equity_amount"]=> string(0) "" ["bond_amount"]=> string(0) "" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(3) { ["fund_category_id"]=> array(1) { ["fundCategory"]=> string(12) "fundCategory" } ["mandate_id"]=> array(1) { ["managers"]=> string(8) "managers" } ["id"]=> array(1) { ["recent_tna"]=> string(10) "recent_tna" } } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["alias"]=> string(54) "Catégoriedesociétégestiond'actionscanadiennesSelect" ["restricted_account"]=> bool(false) ["endParam"]=> string(0) "" ["shopping_cart"]=> NULL ["shopping_cart_items_count"]=> int(0) ["showLoginMessage"]=> bool(false) ["menus"]=> NULL ["enableCsrfValidation"]=> bool(true) ["actionParams"]=> array(3) { ["alias"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["type"]=> int(0) ["classId"]=> int(0) } ["id"]=> string(5) "funds" ["module"]=> object(yii\web\Application)#5 (33) { ["defaultRoute"]=> string(4) "site" ["catchAll"]=> NULL ["controller"]=> *RECURSION* ["_homeUrl":"yii\web\Application":private]=> NULL ["controllerNamespace"]=> string(21) "Lifecycle\controllers" ["name"]=> string(14) "My Application" ["charset"]=> string(5) "UTF-8" ["language"]=> string(2) "en" ["sourceLanguage"]=> string(5) "en-US" ["layout"]=> string(4) "main" ["requestedRoute"]=> string(22) "funds/fund_description" ["requestedAction"]=> object(yii\base\InlineAction)#178 (6) { ["actionMethod"]=> string(22) "actionFund_description" ["id"]=> string(16) "fund_description" ["controller"]=> *RECURSION* ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> NULL } ["requestedParams"]=> array(3) { ["alias"]=> string(41) "SelectCanadianEquityManagedCorporateClass" ["type"]=> int(0) ["classId"]=> int(0) } ["extensions"]=> array(34) { ["linslin/yii2-curl"]=> array(3) { ["name"]=> string(17) "linslin/yii2-curl" ["version"]=> string(7) "1.5.0.0" ["alias"]=> array(1) { ["@linslin/yii2/curl"]=> string(38) "/var/www/html/vendor/linslin/yii2-curl" } } ["nex/yii2-chosen"]=> array(3) { ["name"]=> string(15) "nex/yii2-chosen" ["version"]=> string(7) "1.0.0.0" ["alias"]=> array(1) { ["@nex/chosen"]=> string(36) "/var/www/html/vendor/nex/yii2-chosen" } } ["kartik-v/yii2-krajee-base"]=> array(3) { ["name"]=> string(25) "kartik-v/yii2-krajee-base" ["version"]=> string(7) "2.0.6.0" ["alias"]=> array(1) { ["@kartik/base"]=> string(50) "/var/www/html/vendor/kartik-v/yii2-krajee-base/src" } } ["kartik-v/yii2-widget-typeahead"]=> array(3) { ["name"]=> string(30) "kartik-v/yii2-widget-typeahead" ["version"]=> string(7) "1.0.4.0" ["alias"]=> array(1) { ["@kartik/typeahead"]=> string(55) "/var/www/html/vendor/kartik-v/yii2-widget-typeahead/src" } } ["yiisoft/yii2-bootstrap"]=> array(3) { ["name"]=> string(22) "yiisoft/yii2-bootstrap" ["version"]=> string(8) "2.0.10.0" ["alias"]=> array(1) { ["@yii/bootstrap"]=> string(47) "/var/www/html/vendor/yiisoft/yii2-bootstrap/src" } } ["kartik-v/yii2-widget-touchspin"]=> array(3) { ["name"]=> string(30) "kartik-v/yii2-widget-touchspin" ["version"]=> string(7) "1.2.3.0" ["alias"]=> array(1) { ["@kartik/touchspin"]=> string(55) "/var/www/html/vendor/kartik-v/yii2-widget-touchspin/src" } } ["kartik-v/yii2-widget-timepicker"]=> array(3) { ["name"]=> string(31) "kartik-v/yii2-widget-timepicker" ["version"]=> string(7) "1.0.4.0" ["alias"]=> array(1) { ["@kartik/time"]=> string(56) "/var/www/html/vendor/kartik-v/yii2-widget-timepicker/src" } } ["kartik-v/yii2-widget-switchinput"]=> array(3) { ["name"]=> string(32) "kartik-v/yii2-widget-switchinput" ["version"]=> string(7) "1.3.1.0" ["alias"]=> array(1) { ["@kartik/switchinput"]=> string(53) "/var/www/html/vendor/kartik-v/yii2-widget-switchinput" } } ["kartik-v/yii2-widget-spinner"]=> array(3) { ["name"]=> string(28) "kartik-v/yii2-widget-spinner" ["version"]=> string(7) "1.0.1.0" ["alias"]=> array(1) { ["@kartik/spinner"]=> string(53) "/var/www/html/vendor/kartik-v/yii2-widget-spinner/src" } } ["kartik-v/yii2-widget-sidenav"]=> array(3) { ["name"]=> string(28) "kartik-v/yii2-widget-sidenav" ["version"]=> string(7) "1.0.1.0" ["alias"]=> array(1) { ["@kartik/sidenav"]=> string(49) "/var/www/html/vendor/kartik-v/yii2-widget-sidenav" } } ["kartik-v/yii2-widget-select2"]=> array(3) { ["name"]=> string(28) "kartik-v/yii2-widget-select2" ["version"]=> string(7) "2.2.0.0" ["alias"]=> array(1) { ["@kartik/select2"]=> string(53) "/var/www/html/vendor/kartik-v/yii2-widget-select2/src" } } ["kartik-v/yii2-widget-rating"]=> array(3) { ["name"]=> string(27) "kartik-v/yii2-widget-rating" ["version"]=> string(7) "1.0.4.0" ["alias"]=> array(1) { ["@kartik/rating"]=> string(52) "/var/www/html/vendor/kartik-v/yii2-widget-rating/src" } } ["kartik-v/yii2-widget-rangeinput"]=> array(3) { ["name"]=> string(31) "kartik-v/yii2-widget-rangeinput" ["version"]=> string(7) "1.0.2.0" ["alias"]=> array(1) { ["@kartik/range"]=> string(56) "/var/www/html/vendor/kartik-v/yii2-widget-rangeinput/src" } } ["kartik-v/yii2-widget-growl"]=> array(3) { ["name"]=> string(26) "kartik-v/yii2-widget-growl" ["version"]=> string(7) "1.1.1.0" ["alias"]=> array(1) { ["@kartik/growl"]=> string(47) "/var/www/html/vendor/kartik-v/yii2-widget-growl" } } ["kartik-v/yii2-widget-fileinput"]=> array(3) { ["name"]=> string(30) "kartik-v/yii2-widget-fileinput" ["version"]=> string(7) "1.1.0.0" ["alias"]=> array(1) { ["@kartik/file"]=> string(55) "/var/www/html/vendor/kartik-v/yii2-widget-fileinput/src" } } ["kartik-v/yii2-widget-depdrop"]=> array(3) { ["name"]=> string(28) "kartik-v/yii2-widget-depdrop" ["version"]=> string(7) "1.0.6.0" ["alias"]=> array(1) { ["@kartik/depdrop"]=> string(53) "/var/www/html/vendor/kartik-v/yii2-widget-depdrop/src" } } ["kartik-v/yii2-widget-datetimepicker"]=> array(3) { ["name"]=> string(35) "kartik-v/yii2-widget-datetimepicker" ["version"]=> string(7) "1.4.9.0" ["alias"]=> array(1) { ["@kartik/datetime"]=> string(60) "/var/www/html/vendor/kartik-v/yii2-widget-datetimepicker/src" } } ["kartik-v/yii2-widget-datepicker"]=> array(3) { ["name"]=> string(31) "kartik-v/yii2-widget-datepicker" ["version"]=> string(7) "1.4.7.0" ["alias"]=> array(1) { ["@kartik/date"]=> string(56) "/var/www/html/vendor/kartik-v/yii2-widget-datepicker/src" } } ["kartik-v/yii2-widget-colorinput"]=> array(3) { ["name"]=> string(31) "kartik-v/yii2-widget-colorinput" ["version"]=> string(7) "1.0.6.0" ["alias"]=> array(1) { ["@kartik/color"]=> string(56) "/var/www/html/vendor/kartik-v/yii2-widget-colorinput/src" } } ["kartik-v/yii2-widget-alert"]=> array(3) { ["name"]=> string(26) "kartik-v/yii2-widget-alert" ["version"]=> string(7) "1.1.1.0" ["alias"]=> array(1) { ["@kartik/alert"]=> string(47) "/var/www/html/vendor/kartik-v/yii2-widget-alert" } } ["kartik-v/yii2-widget-affix"]=> array(3) { ["name"]=> string(26) "kartik-v/yii2-widget-affix" ["version"]=> string(7) "1.0.0.0" ["alias"]=> array(1) { ["@kartik/affix"]=> string(47) "/var/www/html/vendor/kartik-v/yii2-widget-affix" } } ["kartik-v/yii2-widget-activeform"]=> array(3) { ["name"]=> string(31) "kartik-v/yii2-widget-activeform" ["version"]=> string(7) "1.5.8.0" ["alias"]=> array(1) { ["@kartik/form"]=> string(56) "/var/www/html/vendor/kartik-v/yii2-widget-activeform/src" } } ["kartik-v/yii2-widgets"]=> array(3) { ["name"]=> string(21) "kartik-v/yii2-widgets" ["version"]=> string(11) "9999999-dev" ["alias"]=> array(1) { ["@kartik/widgets"]=> string(46) "/var/www/html/vendor/kartik-v/yii2-widgets/src" } } ["mg-code/yii2-assets"]=> array(3) { ["name"]=> string(19) "mg-code/yii2-assets" ["version"]=> string(7) "1.2.0.0" ["alias"]=> array(1) { ["@mgcode/assets"]=> string(40) "/var/www/html/vendor/mg-code/yii2-assets" } } ["mg-code/yii2-helpers"]=> array(3) { ["name"]=> string(20) "mg-code/yii2-helpers" ["version"]=> string(7) "1.0.3.0" ["alias"]=> array(1) { ["@mgcode/helpers"]=> string(41) "/var/www/html/vendor/mg-code/yii2-helpers" } } ["mg-code/yii2-session-timeout-warning"]=> array(3) { ["name"]=> string(36) "mg-code/yii2-session-timeout-warning" ["version"]=> string(11) "9999999-dev" ["alias"]=> array(1) { ["@mgcode/sessionWarning"]=> string(57) "/var/www/html/vendor/mg-code/yii2-session-timeout-warning" } } ["himiklab/yii2-search-component-v2"]=> array(3) { ["name"]=> string(33) "himiklab/yii2-search-component-v2" ["version"]=> string(7) "2.0.7.0" ["alias"]=> array(1) { ["@himiklab/yii2/search"]=> string(58) "/var/www/html/vendor/himiklab/yii2-search-component-v2/src" } } ["yiisoft/yii2-swiftmailer"]=> array(3) { ["name"]=> string(24) "yiisoft/yii2-swiftmailer" ["version"]=> string(7) "2.0.7.0" ["alias"]=> array(1) { ["@yii/swiftmailer"]=> string(45) "/var/www/html/vendor/yiisoft/yii2-swiftmailer" } } ["yii2tech/ar-softdelete"]=> array(3) { ["name"]=> string(22) "yii2tech/ar-softdelete" ["version"]=> string(7) "1.0.4.0" ["alias"]=> array(1) { ["@yii2tech/ar/softdelete"]=> string(47) "/var/www/html/vendor/yii2tech/ar-softdelete/src" } } ["yiisoft/yii2-twig"]=> array(3) { ["name"]=> string(17) "yiisoft/yii2-twig" ["version"]=> string(7) "2.1.1.0" ["alias"]=> array(1) { ["@yii/twig"]=> string(38) "/var/www/html/vendor/yiisoft/yii2-twig" } } ["bazilio/yii2-newrelic"]=> array(3) { ["name"]=> string(21) "bazilio/yii2-newrelic" ["version"]=> string(7) "0.0.7.0" ["alias"]=> array(1) { ["@bazilio/yii/newrelic"]=> string(42) "/var/www/html/vendor/bazilio/yii2-newrelic" } } ["yiisoft/yii2-jui"]=> array(3) { ["name"]=> string(16) "yiisoft/yii2-jui" ["version"]=> string(7) "2.0.7.0" ["alias"]=> array(1) { ["@yii/jui"]=> string(37) "/var/www/html/vendor/yiisoft/yii2-jui" } } ["kartik-v/yii2-mpdf"]=> array(3) { ["name"]=> string(18) "kartik-v/yii2-mpdf" ["version"]=> string(7) "1.0.1.0" ["alias"]=> array(1) { ["@kartik/mpdf"]=> string(39) "/var/www/html/vendor/kartik-v/yii2-mpdf" } } ["yiisoft/yii2-debug"]=> array(3) { ["name"]=> string(18) "yiisoft/yii2-debug" ["version"]=> string(8) "2.1.17.0" ["alias"]=> array(1) { ["@yii/debug"]=> string(43) "/var/www/html/vendor/yiisoft/yii2-debug/src" } } } ["bootstrap"]=> array(2) { [0]=> string(3) "log" [1]=> string(8) "newrelic" } ["state"]=> int(3) ["loadedModules"]=> array(1) { ["yii\web\Application"]=> *RECURSION* } ["_runtimePath":"yii\base\Application":private]=> string(21) "/var/www/html/runtime" ["_vendorPath":"yii\base\Application":private]=> string(20) "/var/www/html/vendor" ["params"]=> array(96) { ["translatedLanguages"]=> array(2) { ["fr"]=> string(6) "French" ["en"]=> string(7) "English" } ["route"]=> object(Lifecycle\models\SsPages)#126 (10) { ["_attributes":"yii\db\BaseActiveRecord":private]=> array(42) { ["id"]=> int(27) ["alias_fr"]=> string(20) "managed-solutions-fr" ["alias_en"]=> string(17) "managed-solutions" ["title_fr"]=> string(17) "Managed solutions" ["title_en"]=> string(46) "Select Canadian Equity Managed Corporate Class" ["controller"]=> string(5) "funds" ["action"]=> string(16) "fund_description" ["params"]=> string(10) "fund_cat_6" ["context"]=> int(0) ["type"]=> int(1) ["parent_id"]=> int(27) ["meta_description_en"]=> string(207) "This fund invests primarily in equity and equity-related securities of primarily Canadian companies. It is expected that investments in foreign securities will generally be less than 10% of the funds assets." ["meta_description_fr"]=> string(0) "" ["meta_keywords_en"]=> string(122) "Select Canadian Equity Managed Corporate Class, Managed Solutions, Canadian Equity,15101, Alfred Lam, Marchello Holditch, " ["meta_keywords_fr"]=> string(0) "" ["position"]=> int(-1) ["published"]=> int(1) ["request_id"]=> NULL ["search_index"]=> string(3) "YES" ["alias_advisor"]=> string(1) "1" ["updated_on"]=> int(0) ["title_advisor"]=> NULL ["meta_canonical_en"]=> string(121) "https://ci.com/en/funds/managed-solutions/SelectCanadianEquityManagedCorporateClass.html?seriesId=2634¤cySelector=1" ["meta_canonical_fr"]=> NULL ["twitter_card"]=> NULL ["twitter_site"]=> NULL ["twitter_title"]=> NULL ["twitter_desc"]=> NULL ["twitter_img"]=> NULL ["og_title"]=> NULL ["og_desc"]=> NULL ["og_img"]=> NULL ["twitter_card_fr"]=> NULL ["twitter_site_fr"]=> NULL ["twitter_title_fr"]=> NULL ["twitter_desc_fr"]=> NULL ["twitter_img_fr"]=> NULL ["og_title_fr"]=> NULL ["og_desc_fr"]=> NULL ["og_img_fr"]=> NULL ["og_site"]=> NULL ["og_site_fr"]=> NULL } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(42) { ["id"]=> int(27) ["alias_fr"]=> string(20) "managed-solutions-fr" ["alias_en"]=> string(17) "managed-solutions" ["title_fr"]=> string(17) "Managed solutions" ["title_en"]=> string(17) "Managed solutions" ["controller"]=> string(7) "summary" ["action"]=> string(5) "daily" ["params"]=> string(10) "fund_cat_6" ["context"]=> int(0) ["type"]=> int(1) ["parent_id"]=> int(20) ["meta_description_en"]=> string(0) "" ["meta_description_fr"]=> string(0) "" ["meta_keywords_en"]=> string(0) "" ["meta_keywords_fr"]=> string(0) "" ["position"]=> int(-1) ["published"]=> int(1) ["request_id"]=> NULL ["search_index"]=> string(3) "YES" ["alias_advisor"]=> string(1) "1" ["updated_on"]=> int(0) ["title_advisor"]=> NULL ["meta_canonical_en"]=> NULL ["meta_canonical_fr"]=> NULL ["twitter_card"]=> NULL ["twitter_site"]=> NULL ["twitter_title"]=> NULL ["twitter_desc"]=> NULL ["twitter_img"]=> NULL ["og_title"]=> NULL ["og_desc"]=> NULL ["og_img"]=> NULL ["twitter_card_fr"]=> NULL ["twitter_site_fr"]=> NULL ["twitter_title_fr"]=> NULL ["twitter_desc_fr"]=> NULL ["twitter_img_fr"]=> NULL ["og_title_fr"]=> NULL ["og_desc_fr"]=> NULL ["og_img_fr"]=> NULL ["og_site"]=> NULL ["og_site_fr"]=> NULL } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } } ["brand"]=> string(0) "" ["filterFundCategory"]=> int(0) ["ci_site_url"]=> string(15) "https://ci.com/" ["defaultLanguage"]=> string(2) "en" ["context"]=> string(6) "public" ["context_int"]=> int(0) ["javaApi"]=> string(14) "localhost:8080" ["enableAdvisorAppDashboard"]=> bool(false) ["zendLucenePath"]=> string(59) "/var/www/html/webb/shared_assets/lucene_index/indexed_files" ["zendLucenePathTmp"]=> string(31) "/tmp/lucene_index/indexed_files" ["testMode"]=> bool(false) ["pdf_dir"]=> string(25) "/var/www/html/runtime/pdf" ["test_pdf_dir"]=> string(31) "/var/www/html/runtime/tests/pdf" ["pdf_version"]=> int(1) ["pdf_filename_max_length"]=> int(255) ["result_validation_window"]=> string(2) "60" ["debug"]=> bool(false) ["sentry_api"]=> string(17) "http://localhost/" ["auth"]=> array(2) { ["user"]=> string(6) "sentry" ["pass"]=> string(11) "k2digital12" } ["max_bookmarks"]=> int(200) ["adminEmail"]=> string(19) "ebusiness@sentry.ca" ["email_registration_flag_receiver"]=> string(14) "info@sentry.ca" ["email.institutional"]=> string(26) "sentryinvest2016@gmail.com" ["email.contact_us"]=> string(26) "sentryinvest2016@gmail.com" ["email.site_feedback"]=> string(20) "CISiteSupport@ci.com" ["email.request_material"]=> string(26) "sentryinvest2016@gmail.com" ["email.client_view_req"]=> string(26) "sentryinvest2016@gmail.com" ["email.spam"]=> string(19) "ebusiness@sentry.ca" ["email.contact"]=> string(15) "sfrancis@ci.com" ["CASLSubscriptionEndpoint"]=> string(22) "https://casl/api/index" ["cacheTime"]=> string(6) "100000" ["domain"]=> string(15) "https://ci.com/" ["indexingDomain"]=> string(46) "https://web.production.ci-web.ci-internal.com/" ["local"]=> string(15) "https://ci.com/" ["pro_site"]=> string(15) "https://ci.com/" ["public_site"]=> string(15) "https://ci.com/" ["open_site"]=> string(15) "https://ci.com/" ["clientCookie"]=> string(6) "client" ["advisor_images_uri"]=> string(16) "/images/advisors" ["sentryBasePath"]=> string(24) "/var/www/html/config/../" ["advisor_images_path"]=> string(58) "/var/www/html/config/../webb/shared_assets/images/advisors" ["quoteMedia_api_token_url"]=> string(51) "https://app.quotemedia.com/auth/v0/enterprise/token" ["quoteMedia_api_history_url"]=> string(46) "http://app.quotemedia.com/data/getHistory.json" ["quoteMedia_api_webmaster_id"]=> string(6) "103160" ["quoteMedia_api_webservice_pwd"]=> string(13) "Financial2018" ["manager_photos_uri"]=> string(41) "/webb/shared_assets/images/managerphotos/" ["articles_photos_uri"]=> string(39) "/webb/shared_assets/files/pdf/articles/" ["blogs_pdfs_uri"]=> string(36) "/webb/shared_assets/files/pdf/blogs/" ["images_photos_path"]=> string(50) "/var/www/html/config/../webb/shared_assets/images/" ["images_uri"]=> string(27) "/webb/shared_assets/images/" ["webb_path"]=> string(29) "/var/www/html/config/../webb/" ["articles_photos_path"]=> string(62) "/var/www/html/config/../webb/shared_assets/files/pdf/articles/" ["manager_photos_path"]=> string(63) "/var/www/html/config/../webb/shared_assets/images/managerphotos" ["manager_bio_path"]=> string(53) "/var/www/html/config/../webb/files/pdf/Managers-bios/" ["manager_pages_uri"]=> string(16) "/images/PmPages/" ["documents_path"]=> string(53) "/var/www/html/config/../webb/shared_assets/documents/" ["documents_uri"]=> string(30) "/webb/shared_assets/documents/" ["zip_folder"]=> string(30) "/webb/shared_assets/files/zips" ["search_folder"]=> string(27) "/webb/shared_assets/search/" ["content_assets"]=> string(26) "/webb/shared_assets/files/" ["banners_uri"]=> string(30) "/shared_assets/images/banners/" ["banners_path"]=> string(58) "/var/www/html/config/../webb/shared_assets/images/banners/" ["shared_assets_uri"]=> string(42) "/var/www/html/config/../webb/shared_assets" ["fund_facts_list_file"]=> string(79) "/var/www/html/config/../webb/shared_assets/files/fund_codes_with_fund_fact.json" ["all_fund_facts_list_file"]=> string(83) "/var/www/html/config/../webb/shared_assets/files/all_fund_codes_with_fund_fact.json" ["default_banner_image"]=> string(18) "default_banner.jpg" ["mobile_default_banner_image"]=> string(25) "mobile_default_banner.jpg" ["event_banners_uri"]=> string(15) "/images/events/" ["event_banners_path"]=> string(57) "/var/www/html/config/../webb/shared_assets/images/events/" ["default_event_image"]=> string(17) "default_event.png" ["mobile_default_event_image"]=> string(24) "mobile_default_event.png" ["events_pdf_path"]=> string(37) "/webb/shared_assets/files/pdf/events/" ["gitHash"]=> string(0) "" ["statement_download_user"]=> string(16) "annualStatements" ["alexaInfo"]=> array(7) { ["y_key"]=> string(16) "018836a573de78dc" ["alexaVerifyID"]=> string(27) "RX1g8qca260vZvJdi9YColpPBB4" ["msvalidate.01"]=> string(32) "8E369332EE5A0F1FBE3BA6CB6D36F3C7" ["geo.region"]=> string(5) "CA-ON" ["geo.placename"]=> string(7) "Toronto" ["geo.position"]=> string(20) "43.648294;-79.380081" ["ICBM"]=> string(21) "43.648294, -79.380081" } ["order_form"]=> array(2) { ["url"]=> string(33) "https://aol.ci.com/cissapi/aolws/" ["order"]=> string(10) "placeOrder" } ["salesforce"]=> array(6) { ["password"]=> string(8) "changeme" ["leadRecordType"]=> string(3) "Web" ["userName"]=> string(19) "sfconsent@sentry.ca" ["security-token"]=> string(8) "changeme" ["wsd-file-path"]=> string(53) "/var/www/html/config/../components/salesforce/toolkit" ["location"]=> string(65) "https://login.salesforce.com/services/Soap/c/40.0/0DF44000000PDeY" } ["tableau"]=> array(1) { ["url"]=> string(180) "https://tableau.uat.aws.ciglobe.net/t/CRDM1/views/Dummy_AdvisorPortal_V0_4Inprogress/AdvisorSummaryDashboard_Revised?:embed=y&:display_count=n&:origin=viz_share_link&:showVizHome=n" } ["global_chart_colors"]=> array(12) { [0]=> string(7) "#5d8211" [1]=> string(7) "#976d0a" [2]=> string(7) "#666e8c" [3]=> string(7) "#21252b" [4]=> string(7) "#6a3460" [5]=> string(7) "#63666a" [6]=> string(7) "#bbc2c5" [7]=> string(7) "#ecf0f1" [8]=> string(7) "#4a690e" [9]=> string(7) "#7d5a09" [10]=> string(7) "#914683" [11]=> string(7) "#f4f6f6" } ["authTimeoutWarning"]=> int(900) ["aolTimeoutRoute"]=> string(13) "login/timeout" ["secret_key"]=> string(16) "G}]pkErp)4P};Y8n" ["advisorHub"]=> array(3) { ["url"]=> string(38) "https://cinchytst.dev.aws.ciglobe.net/" ["registration_portal"]=> string(73) "Cinchy/BasicAuthAPI/Advisor%20Integration/Advisor%20Portal%20Registration" ["auth"]=> string(32) "QWR2aXNvclBvcnRhbDpjaW5jaHkxMg==" } ["advisor_hub_api"]=> array(36) { ["request_url"]=> string(35) "https://cinchy.prod.aws.ciglobe.net" ["get-bearer-token"]=> string(33) "/cinchysso/identity/connect/token" ["token_client_id"]=> string(19) "advisor-portal-prod" ["token_client_secret"]=> string(36) "E2B28390-E0D2-4AF8-8955-01D2A0E465DF" ["token_username"]=> string(13) "AdvisorPortal" ["token_password"]=> string(8) "cinchy12" ["token_grant_type"]=> string(8) "password" ["token_scope"]=> string(6) "js_api" ["get-user-info"]=> string(37) "/Cinchy/API/Advisors/AP%20Get%20Users" ["create-user-info"]=> string(39) "/Cinchy/API/Advisors/AP%20Insert%20User" ["update-user-info"]=> string(39) "/Cinchy/API/Advisors/AP%20Update%20User" ["get-associate-group"]=> string(44) "/Cinchy/API/Advisors/Get%20Associate%20Group" ["check-dealer-rep-code"]=> string(54) "/Cinchy/API/Advisors/AP%20Check%20Dealer%20Rep%20Codes" ["get-advisor-info"]=> string(53) "/Cinchy/API/Advisors/AP%20Get%20Advisor%20Information" ["create-advisor-info"]=> string(56) "/Cinchy/API/Advisors/AP%20Insert%20Advisor%20Information" ["update-advisor-info"]=> string(56) "/Cinchy/API/Advisors/AP%20Update%20Advisor%20Information" ["get-advisor-rep-codes"]=> string(53) "/Cinchy/API/Advisors/AP%20Get%20Advisor%20Rep%20Codes" ["create-advisor-rep-code"]=> string(55) "/Cinchy/API/Advisors/AP%20Insert%20Advisor%20Rep%20Code" ["delete-advisor-rep-code"]=> string(55) "/Cinchy/API/Advisors/AP%20Delete%20Advisor%20Rep%20Code" ["get-assistant-rep-codes"]=> string(55) "/Cinchy/API/Advisors/AP%20Get%20Assistant%20Rep%20Codes" ["create-assistant-rep-code"]=> string(57) "/Cinchy/API/Advisors/AP%20Insert%20Assistant%20Rep%20Code" ["update-assistant-rep-code"]=> string(57) "/Cinchy/API/Advisors/AP%20Update%20Assistant%20Rep%20Code" ["delete-assistant-rep-code"]=> string(57) "/Cinchy/API/Advisors/AP%20Delete%20Assistant%20Rep%20Code" ["get-memberships"]=> string(43) "/Cinchy/API/Advisors/AP%20Get%20Memberships" ["create-membership"]=> string(45) "/Cinchy/API/Advisors/AP%20Insert%20Membership" ["delete-membership"]=> string(45) "/Cinchy/API/Advisors/AP%20Delete%20Membership" ["get-advisor-memberships"]=> string(53) "/Cinchy/API/Advisors/AP%20Get%20Advisor%20Memberships" ["create-advisor-membership"]=> string(55) "/Cinchy/API/Advisors/AP%20Insert%20Advisor%20Membership" ["delete-advisor-membership"]=> string(55) "/Cinchy/API/Advisors/AP%20Delete%20Advisor%20Membership" ["get-preferences"]=> string(43) "/Cinchy/API/Advisors/AP%20Get%20Preferences" ["create-preference"]=> string(45) "/Cinchy/API/Advisors/AP%20Insert%20Preference" ["delete-preference"]=> string(45) "/Cinchy/API/Advisors/AP%20Delete%20Preference" ["get-advisor-preferences"]=> string(53) "/Cinchy/API/Advisors/AP%20Get%20Advisor%20Preferences" ["create-advisor-preference"]=> string(55) "/Cinchy/API/Advisors/AP%20Insert%20Advisor%20Preference" ["delete-advisor-preference"]=> string(55) "/Cinchy/API/Advisors/AP%20Delete%20Advisor%20Preference" ["get-sales-team"]=> string(44) "/Cinchy/API/Advisors/AP%20Get%20Sales%20Team" } ["okta_arc_api"]=> array(5) { ["request_url"]=> string(20) "https://login.ci.com" ["client_id"]=> string(20) "0oaucid6dPCLmQZS84x6" ["client_secret"]=> string(40) "IiH7tAO9kvsD45hfktBhDYeooWN5U39XdoACsUYh" ["api_key"]=> string(42) "00MyQuFL6z3CYUmfnsdsOTrc1tkhKSAf4N2SLaJiBP" ["state"]=> string(7) "rwerwer" } ["okta_hub_api"]=> array(4) { ["request_url"]=> string(20) "https://login.ci.com" ["api_key"]=> string(42) "00aYsu5dG0q0AtjB2Y3MJ0XqU7wAcj0RP85_LKMfXD" ["api_users"]=> string(13) "/api/v1/users" ["api_groups"]=> string(14) "/api/v1/groups" } ["swesmc"]=> array(2) { ["auth"]=> string(41) "https://ci.com/swesmc/ilustrator/auth.jsp" ["tool"]=> string(42) "https://ci.com/swesmc/ilustrator/index.jsp" } ["swesmc2"]=> array(2) { ["auth"]=> string(42) "https://ci.com/swesmc2/ilustrator/auth.jsp" ["tool"]=> string(43) "https://ci.com/swesmc2/ilustrator/index.jsp" } ["elite"]=> array(2) { ["auth"]=> string(49) "https://ci.com/sunwiseeliteplus/gmwblife/auth.jsp" ["tool"]=> string(50) "https://ci.com/sunwiseeliteplus/gmwblife/index.jsp" } ["prince_auth"]=> string(38) "Basic Y2lfY29tX3ByaW5jZTpUZXN0VGdzamZn" ["assante_api"]=> array(2) { ["request_url"]=> string(46) "https://production.assante-web.ci-internal.com" ["funds-with-fund-fact"]=> string(34) "/en/ajax/funds-with-fund-fact.html" } ["ci_api"]=> array(2) { ["request_url"]=> string(14) "https://ci.com" ["funds-with-fund-fact"]=> string(51) "/shared_assets/files/fund_codes_with_fund_fact.json" } ["blog_subscribe"]=> array(2) { ["request_url"]=> string(97) "https://cifinancial.us18.list-manage.com/subscribe/post?u=072a4f2ec11588a4e43ec9bb6&id=b4ced2dd2d" ["hidden_name"]=> string(38) "b_072a4f2ec11588a4e43ec9bb6_b4ced2dd2d" } ["querystring"]=> string(32) "seriesId=2634¤cySelector=1" } ["id"]=> string(5) "basic" ["module"]=> NULL ["controllerMap"]=> array(0) { } ["_basePath":"yii\base\Module":private]=> string(13) "/var/www/html" ["_viewPath":"yii\base\Module":private]=> string(19) "/var/www/html/views" ["_layoutPath":"yii\base\Module":private]=> NULL ["_modules":"yii\base\Module":private]=> array(0) { } ["_version":"yii\base\Module":private]=> NULL ["_components":"yii\di\ServiceLocator":private]=> array(13) { ["errorHandler"]=> object(yii\web\ErrorHandler)#8 (19) { ["maxSourceLines"]=> int(19) ["maxTraceSourceLines"]=> int(13) ["errorAction"]=> string(10) "home/error" ["errorView"]=> string(33) "@yii/views/errorHandler/error.php" ["exceptionView"]=> string(37) "@yii/views/errorHandler/exception.php" ["callStackItemView"]=> string(41) "@yii/views/errorHandler/callStackItem.php" ["previousExceptionView"]=> string(45) "@yii/views/errorHandler/previousException.php" ["displayVars"]=> array(5) { [0]=> string(4) "_GET" [1]=> string(5) "_POST" [2]=> string(6) "_FILES" [3]=> string(7) "_COOKIE" [4]=> string(8) "_SESSION" } ["traceLine"]=> string(6) "{html}" ["discardExistingOutput"]=> bool(true) ["memoryReserveSize"]=> int(262144) ["exception"]=> NULL ["silentExitOnException"]=> bool(false) ["_memoryReserve":"yii\base\ErrorHandler":private]=> string(262144) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ["_hhvmException":"yii\base\ErrorHandler":private]=> NULL ["_registered":"yii\base\ErrorHandler":private]=> bool(true) ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> NULL } ["request"]=> object(yii\web\Request)#10 (35) { ["enableCsrfValidation"]=> bool(true) ["csrfParam"]=> string(14) "YII_CSRF_TOKEN" ["csrfCookie"]=> array(1) { ["httpOnly"]=> bool(true) } ["enableCsrfCookie"]=> bool(true) ["enableCookieValidation"]=> bool(true) ["cookieValidationKey"]=> string(8) "changeme" ["methodParam"]=> string(7) "_method" ["parsers"]=> array(0) { } ["trustedHosts"]=> array(0) { } ["secureHeaders"]=> array(6) { [0]=> string(15) "X-Forwarded-For" [1]=> string(16) "X-Forwarded-Host" [2]=> string(17) "X-Forwarded-Proto" [3]=> string(15) "Front-End-Https" [4]=> string(13) "X-Rewrite-Url" [5]=> string(15) "X-Original-Host" } ["ipHeaders"]=> array(1) { [0]=> string(15) "X-Forwarded-For" } ["secureProtocolHeaders"]=> array(2) { ["X-Forwarded-Proto"]=> array(1) { [0]=> string(5) "https" } ["Front-End-Https"]=> array(1) { [0]=> string(2) "on" } } ["_cookies":"yii\web\Request":private]=> object(yii\web\CookieCollection)#174 (2) { ["readOnly"]=> bool(true) ["_cookies":"yii\web\CookieCollection":private]=> array(0) { } } ["_headers":"yii\web\Request":private]=> object(yii\web\HeaderCollection)#100 (1) { ["_headers":"yii\web\HeaderCollection":private]=> array(15) { ["x-forwarded-port"]=> array(1) { [0]=> string(3) "443" } ["host"]=> array(1) { [0]=> string(37) "web.production.ci-web.ci-internal.com" } ["x-amzn-trace-id"]=> array(1) { [0]=> string(40) "Root=1-60a487d5-72ad2bda571082d9334ccd9a" } ["accept-encoding"]=> array(1) { [0]=> string(4) "gzip" } ["cf-ipcountry"]=> array(1) { [0]=> string(2) "US" } ["cf-ray"]=> array(1) { [0]=> string(20) "651a489799a15e9c-IAD" } ["cf-visitor"]=> array(1) { [0]=> string(18) "{"scheme":"https"}" } ["user-agent"]=> array(1) { [0]=> string(40) "CCBot/2.0 (https://commoncrawl.org/faq/)" } ["accept"]=> array(1) { [0]=> string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" } ["accept-language"]=> array(1) { [0]=> string(14) "en-US,en;q=0.5" } ["if-modified-since"]=> array(1) { [0]=> string(29) "Wed, 25 Nov 2020 14:27:43 GMT" } ["cf-connecting-ip"]=> array(1) { [0]=> string(12) "3.236.231.61" } ["cdn-loop"]=> array(1) { [0]=> string(10) "cloudflare" } ["cf-request-id"]=> array(1) { [0]=> string(32) "0a244bb2bb00005e9c76a76000000001" } ["x-forwarded-server"]=> array(1) { [0]=> string(10) "www.ci.com" } } } ["_rawBody":"yii\web\Request":private]=> NULL ["_bodyParams":"yii\web\Request":private]=> NULL ["_queryParams":"yii\web\Request":private]=> NULL ["_hostInfo":"yii\web\Request":private]=> NULL ["_hostName":"yii\web\Request":private]=> NULL ["_baseUrl":"yii\web\Request":private]=> string(0) "" ["_scriptUrl":"yii\web\Request":private]=> string(10) "/index.php" ["_scriptFile":"yii\web\Request":private]=> NULL ["_pathInfo":"yii\web\Request":private]=> string(73) "en/funds/managed-solutions/SelectCanadianEquityManagedCorporateClass.html" ["_url":"yii\web\Request":private]=> string(107) "/en/funds/managed-solutions/SelectCanadianEquityManagedCorporateClass.html?seriesId=2634¤cySelector=1" ["_port":"yii\web\Request":private]=> NULL ["_securePort":"yii\web\Request":private]=> NULL ["_contentTypes":"yii\web\Request":private]=> NULL ["_languages":"yii\web\Request":private]=> NULL ["_csrfToken":"yii\web\Request":private]=> NULL ["_secureForwardedHeaderParts":"yii\web\Request":private]=> NULL ["_isConsoleRequest":"yii\base\Request":private]=> NULL ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> NULL ["_scriptFile":"yii\base\Request":private]=> NULL } ["log"]=> object(yii\log\Dispatcher)#12 (5) { ["targets"]=> array(1) { ["app"]=> object(Lifecycle\components\log\JsonFileTarget)#17 (20) { ["logFile"]=> string(34) "/var/www/html/runtime/logs/app.log" ["enableRotation"]=> bool(true) ["maxFileSize"]=> int(10240) ["maxLogFiles"]=> int(5) ["fileMode"]=> NULL ["dirMode"]=> int(509) ["rotateByCopy"]=> bool(true) ["categories"]=> array(0) { } ["except"]=> array(0) { } ["logVars"]=> array(6) { [0]=> string(4) "_GET" [1]=> string(5) "_POST" [2]=> string(6) "_FILES" [3]=> string(7) "_COOKIE" [4]=> string(8) "_SESSION" [5]=> string(7) "_SERVER" } ["maskVars"]=> array(3) { [0]=> string(26) "_SERVER.HTTP_AUTHORIZATION" [1]=> string(21) "_SERVER.PHP_AUTH_USER" [2]=> string(19) "_SERVER.PHP_AUTH_PW" } ["prefix"]=> NULL ["exportInterval"]=> int(1000) ["messages"]=> array(0) { } ["microtime"]=> bool(false) ["_levels":"yii\log\Target":private]=> int(3) ["_enabled":"yii\log\Target":private]=> bool(true) ["_events":"yii\base\Component":private]=> array(0) { } ["_eventWildcards":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> NULL } } ["_logger":"yii\log\Dispatcher":private]=> object(yii\log\Logger)#14 (8) { ["messages"]=> array(639) { [0]=> array(6) { [0]=> string(94) "Opening DB connection: mysql:host=production.db.web.ci-internal.com;dbname=ci_web;charset=utf8" [1]=> int(4) [2]=> string(23) "yii\db\Connection::open" [3]=> float(1621395414.0176) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1719552) } [1]=> array(6) { [0]=> string(94) "Opening DB connection: mysql:host=production.db.web.ci-internal.com;dbname=ci_web;charset=utf8" [1]=> int(80) [2]=> string(23) "yii\db\Connection::open" [3]=> float(1621395414.0176) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1722560) } [2]=> array(6) { [0]=> string(94) "Opening DB connection: mysql:host=production.db.web.ci-internal.com;dbname=ci_web;charset=utf8" [1]=> int(96) [2]=> string(23) "yii\db\Connection::open" [3]=> float(1621395414.0579) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1769152) } [3]=> array(6) { [0]=> string(297) "SELECT `ss_pages`.* FROM `ss_pages` LEFT JOIN `ss_pages` `parent` ON `ss_pages`.`parent_id` = `parent`.`id` WHERE ((`ss_pages`.`alias_en`='SelectCanadianEquityManagedCorporateClass') AND (`parent`.`alias_en`='managed-solutions')) AND (`ss_pages`.`published`=1) AND (`parent`.`published`=1) LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0589) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1788816) } [4]=> array(6) { [0]=> string(297) "SELECT `ss_pages`.* FROM `ss_pages` LEFT JOIN `ss_pages` `parent` ON `ss_pages`.`parent_id` = `parent`.`id` WHERE ((`ss_pages`.`alias_en`='SelectCanadianEquityManagedCorporateClass') AND (`parent`.`alias_en`='managed-solutions')) AND (`ss_pages`.`published`=1) AND (`parent`.`published`=1) LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0591) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1792464) } [5]=> array(6) { [0]=> string(297) "SELECT `ss_pages`.* FROM `ss_pages` LEFT JOIN `ss_pages` `parent` ON `ss_pages`.`parent_id` = `parent`.`id` WHERE ((`ss_pages`.`alias_en`='SelectCanadianEquityManagedCorporateClass') AND (`parent`.`alias_en`='managed-solutions')) AND (`ss_pages`.`published`=1) AND (`parent`.`published`=1) LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.062) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1798624) } [6]=> array(6) { [0]=> string(63) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_pages'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0621) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1805952) } [7]=> array(6) { [0]=> string(63) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_pages'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0622) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1808936) } [8]=> array(6) { [0]=> string(63) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_pages'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0633) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1812136) } [9]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/48/48eb92e4d3b2c66fd265c0835bf31f10.bin': file_put_contents(/var/www/html/runtime/cache/48/48eb92e4d3b2c66fd265c0835bf31f10.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.0639) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(121) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1819024) } [10]=> array(6) { [0]=> string(100) "Opening DB connection: mysql:host=production.db.web.ci-internal.com;dbname=ci_web_audit;charset=utf8" [1]=> int(4) [2]=> string(23) "yii\db\Connection::open" [3]=> float(1621395414.0641) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(126) ["function"]=> string(11) "queryScalar" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } } [5]=> int(1810800) } [11]=> array(6) { [0]=> string(100) "Opening DB connection: mysql:host=production.db.web.ci-internal.com;dbname=ci_web_audit;charset=utf8" [1]=> int(80) [2]=> string(23) "yii\db\Connection::open" [3]=> float(1621395414.0641) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(126) ["function"]=> string(11) "queryScalar" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } } [5]=> int(1811928) } [12]=> array(6) { [0]=> string(100) "Opening DB connection: mysql:host=production.db.web.ci-internal.com;dbname=ci_web_audit;charset=utf8" [1]=> int(96) [2]=> string(23) "yii\db\Connection::open" [3]=> float(1621395414.0674) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(126) ["function"]=> string(11) "queryScalar" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } } [5]=> int(1857024) } [13]=> array(6) { [0]=> string(108) "select id from ss_pages where alias_en='SelectCanadianEquityManagedCorporateClass' and published = 1 limit 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0675) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(126) ["function"]=> string(11) "queryScalar" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } } [5]=> int(1852784) } [14]=> array(6) { [0]=> string(108) "select id from ss_pages where alias_en='SelectCanadianEquityManagedCorporateClass' and published = 1 limit 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0675) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(126) ["function"]=> string(11) "queryScalar" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } } [5]=> int(1854368) } [15]=> array(6) { [0]=> string(108) "select id from ss_pages where alias_en='SelectCanadianEquityManagedCorporateClass' and published = 1 limit 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0685) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(126) ["function"]=> string(11) "queryScalar" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } } [5]=> int(1855688) } [16]=> array(6) { [0]=> string(91) "SELECT * FROM `ss_pages` WHERE (`alias_en`='managed-solutions') AND (`published`=1) LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0687) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(148) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1867040) } [17]=> array(6) { [0]=> string(91) "SELECT * FROM `ss_pages` WHERE (`alias_en`='managed-solutions') AND (`published`=1) LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0689) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(148) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1871440) } [18]=> array(6) { [0]=> string(91) "SELECT * FROM `ss_pages` WHERE (`alias_en`='managed-solutions') AND (`published`=1) LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0724) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(148) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1880720) } [19]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/35/3569a4287012411c00a3584e63212f19.bin': file_put_contents(/var/www/html/runtime/cache/35/3569a4287012411c00a3584e63212f19.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.0727) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(148) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1889800) } [20]=> array(6) { [0]=> string(33) "SHOW FULL COLUMNS FROM `ss_pages`" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0729) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(148) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1887168) } [21]=> array(6) { [0]=> string(772) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_pages' AND `kcu`.`TABLE_NAME` = 'ss_pages'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0739) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(36) "/var/www/html/components/Routing.php" ["line"]=> int(148) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(1983856) } [22]=> array(6) { [0]=> string(381) "SELECT max(`update_on`) as update_on FROM `cache_table` where `name` like "%ss_fees%" or `name` like "%ss_fund%" or `name` like "%ss_series%" or `name` like "%ss_navs%" or `name` like "%ss_growth%" or `name` like "%ss_menus%" or `name` like "%ss_pages%" or `name` like "%ss_staff%" or `name` like "%ss_repo_doc%" or `name` like "%ss_portfolio_manager%" or `name` like "%ss_labels%"" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0837) [4]=> array(2) { [0]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(242) ["function"]=> string(11) "queryColumn" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2140736) } [23]=> array(6) { [0]=> string(381) "SELECT max(`update_on`) as update_on FROM `cache_table` where `name` like "%ss_fees%" or `name` like "%ss_fund%" or `name` like "%ss_series%" or `name` like "%ss_navs%" or `name` like "%ss_growth%" or `name` like "%ss_menus%" or `name` like "%ss_pages%" or `name` like "%ss_staff%" or `name` like "%ss_repo_doc%" or `name` like "%ss_portfolio_manager%" or `name` like "%ss_labels%"" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0837) [4]=> array(2) { [0]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(242) ["function"]=> string(11) "queryColumn" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2143208) } [24]=> array(6) { [0]=> string(381) "SELECT max(`update_on`) as update_on FROM `cache_table` where `name` like "%ss_fees%" or `name` like "%ss_fund%" or `name` like "%ss_series%" or `name` like "%ss_navs%" or `name` like "%ss_growth%" or `name` like "%ss_menus%" or `name` like "%ss_pages%" or `name` like "%ss_staff%" or `name` like "%ss_repo_doc%" or `name` like "%ss_portfolio_manager%" or `name` like "%ss_labels%"" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0848) [4]=> array(2) { [0]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(242) ["function"]=> string(11) "queryColumn" ["class"]=> string(14) "yii\db\Command" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2145200) } [25]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='1b2b588dd075f4a230af408b0e148f44' LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0853) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2170368) } [26]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='1b2b588dd075f4a230af408b0e148f44' LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0855) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2174736) } [27]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='1b2b588dd075f4a230af408b0e148f44' LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0867) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2178176) } [28]=> array(6) { [0]=> string(67) "SELECT `update_on` FROM `cache_table` where `name` = 'cache_chunks'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0867) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2185880) } [29]=> array(6) { [0]=> string(67) "SELECT `update_on` FROM `cache_table` where `name` = 'cache_chunks'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0868) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2189240) } [30]=> array(6) { [0]=> string(67) "SELECT `update_on` FROM `cache_table` where `name` = 'cache_chunks'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0878) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2192400) } [31]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/91/91822fd4a35f4682825df56b42b8ac72.bin': file_put_contents(/var/www/html/runtime/cache/91/91822fd4a35f4682825df56b42b8ac72.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.0882) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(257) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2196920) } [32]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='d3551c9189bc71fee84e906556654a7b' LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0884) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(258) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2192168) } [33]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='d3551c9189bc71fee84e906556654a7b' LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0886) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(258) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2197816) } [34]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='d3551c9189bc71fee84e906556654a7b' LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0897) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(258) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2201256) } [35]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/65/65a851f8e01e08d9bbd1fd65da07b729.bin': file_put_contents(/var/www/html/runtime/cache/65/65a851f8e01e08d9bbd1fd65da07b729.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.09) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(258) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2210712) } [36]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='8a12442cc2c8c99eaf9e61c1c501ca19' LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0902) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(259) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2205992) } [37]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='8a12442cc2c8c99eaf9e61c1c501ca19' LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0904) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(259) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2210360) } [38]=> array(6) { [0]=> string(90) "SELECT * FROM `cache_chunks` WHERE `short_name`='8a12442cc2c8c99eaf9e61c1c501ca19' LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0915) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(259) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2213800) } [39]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/e4/e4733ce299f90e408a96cd9adf8723ab.bin': file_put_contents(/var/www/html/runtime/cache/e4/e4733ce299f90e408a96cd9adf8723ab.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.0919) [4]=> array(6) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(34) "/var/www/html/components/Utils.php" ["line"]=> int(259) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [5]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(68) ["function"]=> string(14) "get_html_cache" ["class"]=> string(26) "Lifecycle\components\Utils" ["type"]=> string(2) "::" } } [5]=> int(2223288) } [40]=> array(6) { [0]=> string(97) "SELECT * FROM `ss_fund` WHERE `page_alias_en`='SelectCanadianEquityManagedCorporateClass' LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0922) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2237464) } [41]=> array(6) { [0]=> string(97) "SELECT * FROM `ss_fund` WHERE `page_alias_en`='SelectCanadianEquityManagedCorporateClass' LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0924) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2241456) } [42]=> array(6) { [0]=> string(97) "SELECT * FROM `ss_fund` WHERE `page_alias_en`='SelectCanadianEquityManagedCorporateClass' LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.094) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2252824) } [43]=> array(6) { [0]=> string(62) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0941) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2260152) } [44]=> array(6) { [0]=> string(62) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0941) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2263136) } [45]=> array(6) { [0]=> string(62) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0951) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2266336) } [46]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/3a/3ace633bf35f6c915e6344a2ac8efdb0.bin': file_put_contents(/var/www/html/runtime/cache/3a/3ace633bf35f6c915e6344a2ac8efdb0.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.0955) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2270496) } [47]=> array(6) { [0]=> string(32) "SHOW FULL COLUMNS FROM `ss_fund`" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0955) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2266600) } [48]=> array(6) { [0]=> string(32) "SHOW FULL COLUMNS FROM `ss_fund`" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0957) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2270480) } [49]=> array(6) { [0]=> string(32) "SHOW FULL COLUMNS FROM `ss_fund`" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0987) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2322392) } [50]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/0d/0d672ad3b80f2702d47c1d3e68400a0d.bin': file_put_contents(/var/www/html/runtime/cache/0d/0d672ad3b80f2702d47c1d3e68400a0d.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.099) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2339288) } [51]=> array(6) { [0]=> string(770) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund' AND `kcu`.`TABLE_NAME` = 'ss_fund'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0996) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2303720) } [52]=> array(6) { [0]=> string(770) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund' AND `kcu`.`TABLE_NAME` = 'ss_fund'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.0998) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2309096) } [53]=> array(6) { [0]=> string(770) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund' AND `kcu`.`TABLE_NAME` = 'ss_fund'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1011) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2316056) } [54]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/59/590378515dd2d54aeb32242176b8ab78.bin': file_put_contents(/var/www/html/runtime/cache/59/590378515dd2d54aeb32242176b8ab78.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1015) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(84) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2324792) } [55]=> array(6) { [0]=> string(46) "SELECT * FROM `ss_fund_category` WHERE `id`=31" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1021) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2332600) } [56]=> array(6) { [0]=> string(46) "SELECT * FROM `ss_fund_category` WHERE `id`=31" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1023) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2336568) } [57]=> array(6) { [0]=> string(46) "SELECT * FROM `ss_fund_category` WHERE `id`=31" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1034) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2340368) } [58]=> array(6) { [0]=> string(71) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund_category'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1034) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2347728) } [59]=> array(6) { [0]=> string(71) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund_category'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1035) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2350712) } [60]=> array(6) { [0]=> string(71) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund_category'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1045) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2353912) } [61]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/10/1099bc677df6c5b2a3ce37cac0fd3fa6.bin': file_put_contents(/var/www/html/runtime/cache/10/1099bc677df6c5b2a3ce37cac0fd3fa6.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1048) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2358072) } [62]=> array(6) { [0]=> string(41) "SHOW FULL COLUMNS FROM `ss_fund_category`" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1049) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2355600) } [63]=> array(6) { [0]=> string(41) "SHOW FULL COLUMNS FROM `ss_fund_category`" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.105) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2359504) } [64]=> array(6) { [0]=> string(41) "SHOW FULL COLUMNS FROM `ss_fund_category`" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1071) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2370048) } [65]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/e7/e70315354896a9c1f92698f020ae8050.bin': file_put_contents(/var/www/html/runtime/cache/e7/e70315354896a9c1f92698f020ae8050.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1074) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2384384) } [66]=> array(6) { [0]=> string(788) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund_category' AND `kcu`.`TABLE_NAME` = 'ss_fund_category'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1076) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2379368) } [67]=> array(6) { [0]=> string(788) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund_category' AND `kcu`.`TABLE_NAME` = 'ss_fund_category'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1077) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2384744) } [68]=> array(6) { [0]=> string(788) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund_category' AND `kcu`.`TABLE_NAME` = 'ss_fund_category'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.109) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2390040) } [69]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/7b/7b37a964ef729d2924fe0de2989523b4.bin': file_put_contents(/var/www/html/runtime/cache/7b/7b37a964ef729d2924fe0de2989523b4.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1093) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2398744) } [70]=> array(6) { [0]=> string(41) "SELECT * FROM `ss_fund_type` WHERE `id`=6" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1097) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2405664) } [71]=> array(6) { [0]=> string(41) "SELECT * FROM `ss_fund_type` WHERE `id`=6" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1098) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2409624) } [72]=> array(6) { [0]=> string(41) "SELECT * FROM `ss_fund_type` WHERE `id`=6" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1109) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2415416) } [73]=> array(6) { [0]=> string(67) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund_type'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.111) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2422744) } [74]=> array(6) { [0]=> string(67) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund_type'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.111) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2425728) } [75]=> array(6) { [0]=> string(67) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_fund_type'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.112) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2428928) } [76]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/32/320975b3a5490fcac7851edf5c4b4159.bin': file_put_contents(/var/www/html/runtime/cache/32/320975b3a5490fcac7851edf5c4b4159.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1124) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2433120) } [77]=> array(6) { [0]=> string(37) "SHOW FULL COLUMNS FROM `ss_fund_type`" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1125) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2430200) } [78]=> array(6) { [0]=> string(37) "SHOW FULL COLUMNS FROM `ss_fund_type`" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1126) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2434080) } [79]=> array(6) { [0]=> string(37) "SHOW FULL COLUMNS FROM `ss_fund_type`" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1142) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2455152) } [80]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/36/36a517b6576bf73d31447189da988126.bin': file_put_contents(/var/www/html/runtime/cache/36/36a517b6576bf73d31447189da988126.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1146) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2467984) } [81]=> array(6) { [0]=> string(780) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund_type' AND `kcu`.`TABLE_NAME` = 'ss_fund_type'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1149) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2453056) } [82]=> array(6) { [0]=> string(780) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund_type' AND `kcu`.`TABLE_NAME` = 'ss_fund_type'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1151) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2458432) } [83]=> array(6) { [0]=> string(780) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_fund_type' AND `kcu`.`TABLE_NAME` = 'ss_fund_type'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1163) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2462320) } [84]=> array(6) { [0]=> string(234) "Unable to write cache file '/var/www/html/runtime/cache/b6/b6c2432a6875a5fc99c18aba97c55290.bin': file_put_contents(/var/www/html/runtime/cache/b6/b6c2432a6875a5fc99c18aba97c55290.bin): failed to open stream: No such file or directory" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1166) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(115) ["function"]=> string(5) "__get" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "->" } } [5]=> int(2471056) } [85]=> array(6) { [0]=> string(34) "SHOW FULL COLUMNS FROM `ss_series`" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1172) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2471208) } [86]=> array(6) { [0]=> string(34) "SHOW FULL COLUMNS FROM `ss_series`" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1172) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2472576) } [87]=> array(6) { [0]=> string(34) "SHOW FULL COLUMNS FROM `ss_series`" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.119) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2521224) } [88]=> array(6) { [0]=> string(774) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_series' AND `kcu`.`TABLE_NAME` = 'ss_series'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1196) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2502088) } [89]=> array(6) { [0]=> string(774) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_series' AND `kcu`.`TABLE_NAME` = 'ss_series'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1196) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2504952) } [90]=> array(6) { [0]=> string(774) "SELECT `kcu`.`CONSTRAINT_NAME` AS `constraint_name`, `kcu`.`COLUMN_NAME` AS `column_name`, `kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`, `kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name` FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc` JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON ( `kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR (`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL) ) AND `kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND `kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME` WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database() AND `rc`.`TABLE_NAME` = 'ss_series' AND `kcu`.`TABLE_NAME` = 'ss_series'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1208) [4]=> array(1) { [0]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2509256) } [91]=> array(6) { [0]=> string(43) "SELECT * FROM `ss_series` WHERE `id`='2634'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1213) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2515304) } [92]=> array(6) { [0]=> string(43) "SELECT * FROM `ss_series` WHERE `id`='2634'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1214) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2519264) } [93]=> array(6) { [0]=> string(43) "SELECT * FROM `ss_series` WHERE `id`='2634'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1226) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2528928) } [94]=> array(6) { [0]=> string(64) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_series'" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1227) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2536256) } [95]=> array(6) { [0]=> string(64) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_series'" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1228) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2539240) } [96]=> array(6) { [0]=> string(64) "SELECT `update_on` FROM `cache_table` where `name` = 'ss_series'" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1238) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2542440) } [97]=> array(6) { [0]=> string(232) "Unable to write cache file '/var/www/html/runtime/cache/ba/baf43077954591081e054cbb7d6dbd36.bin': file_put_contents(/var/www/html/runtime/cache/ba/baf43077954591081e054cbb7d6dbd36.bin): failed to open stream: No space left on device" [1]=> int(2) [2]=> string(31) "yii\caching\FileCache::setValue" [3]=> float(1621395414.1241) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(195) ["function"]=> string(7) "findOne" ["class"]=> string(23) "yii\db\BaseActiveRecord" ["type"]=> string(2) "::" } } [5]=> int(2546600) } [98]=> array(6) { [0]=> string(242) "SELECT `ss_series`.* FROM `ss_series` LEFT JOIN `ss_class` `classob` ON `ss_series`.`class_id` = `classob`.`id` WHERE ((`fund_id`=263) AND (`classob`.`id`=295) AND (`currency_id`=1) AND (`archived`=0)) AND (ss_series.cinchy_status=1 ) LIMIT 1" [1]=> int(4) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1296) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(204) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2560056) } [99]=> array(6) { [0]=> string(242) "SELECT `ss_series`.* FROM `ss_series` LEFT JOIN `ss_class` `classob` ON `ss_series`.`class_id` = `classob`.`id` WHERE ((`fund_id`=263) AND (`classob`.`id`=295) AND (`currency_id`=1) AND (`archived`=0)) AND (ss_series.cinchy_status=1 ) LIMIT 1" [1]=> int(80) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1298) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(184) ["function"]=> string(5) "cache" ["class"]=> string(17) "yii\db\Connection" ["type"]=> string(2) "->" } [3]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(50) ["function"]=> string(3) "run" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } [4]=> array(5) { ["file"]=> string(45) "/var/www/html/controllers/FundsController.php" ["line"]=> int(204) ["function"]=> string(3) "one" ["class"]=> string(36) "Lifecycle\models\CachableActiveQuery" ["type"]=> string(2) "->" } } [5]=> int(2563672) } [100]=> array(6) { [0]=> string(242) "SELECT `ss_series`.* FROM `ss_series` LEFT JOIN `ss_class` `classob` ON `ss_series`.`class_id` = `classob`.`id` WHERE ((`fund_id`=263) AND (`classob`.`id`=295) AND (`currency_id`=1) AND (`archived`=0)) AND (ss_series.cinchy_status=1 ) LIMIT 1" [1]=> int(96) [2]=> string(21) "yii\db\Command::query" [3]=> float(1621395414.1312) [4]=> array(5) { [0]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(167) ["function"]=> string(3) "one" ["class"]=> string(18) "yii\db\ActiveQuery" ["type"]=> string(2) "->" } [1]=> array(5) { ["file"]=> string(44) "/var/www/html/models/CachableActiveQuery.php" ["line"]=> int(181) ["function"]=> string(26) "Lifecycle\models\{closure}" ["class"]=>