From 84bc67eeb35fa8217e8c9fd1b4c87c43c44c294d Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Mon, 28 Mar 2016 14:39:11 +0100 Subject: [PATCH] Moved nontrivial context handling from parser to NFA construction phase. Parser should simply construct AST; all the complex reasoning about contexts (fixed vs variable) should be delayed until NFA is being constructed. This way AST can be immutable and it's very easy to share parts of AST between different conditions, etc. Removed rule ranks and rank counter: rules are now stored in NFA-local array and addressed by index. --- re2c/Makefile.am | 7 +- re2c/bootstrap/src/parse/lex.cc | 2 +- re2c/bootstrap/src/parse/parser.cc | 318 +- re2c/bootstrap/src/parse/y.tab.h | 2 +- re2c/src/codegen/emit_action.cc | 103 +- re2c/src/codegen/input_api.cc | 15 +- re2c/src/codegen/output.cc | 7 - re2c/src/codegen/output.h | 3 - re2c/src/conf/warn.cc | 26 +- re2c/src/conf/warn.h | 4 +- re2c/src/ir/adfa/action.h | 5 +- re2c/src/ir/adfa/adfa.cc | 4 + re2c/src/ir/adfa/adfa.h | 6 +- re2c/src/ir/adfa/prepare.cc | 30 +- re2c/src/ir/compile.cc | 7 +- re2c/src/ir/ctx.cc | 23 + re2c/src/ir/ctx.h | 66 + re2c/src/ir/dfa/context_deduplication.cc | 18 +- re2c/src/ir/dfa/determinization.cc | 28 +- re2c/src/ir/dfa/dfa.h | 8 +- re2c/src/ir/dfa/fallback.cc | 4 +- re2c/src/ir/dfa/minimization.cc | 6 +- re2c/src/ir/nfa/nfa.cc | 234 +- re2c/src/ir/nfa/nfa.h | 11 +- re2c/src/ir/regexp/make_rule.cc | 217 - re2c/src/ir/regexp/regexp.cc | 1 + re2c/src/ir/regexp/regexp.h | 63 +- re2c/src/ir/regexp/split_charset.cc | 18 +- re2c/src/ir/rule.cc | 10 + re2c/src/ir/rule.h | 81 + re2c/src/ir/rule_rank.cc | 68 - re2c/src/ir/rule_rank.h | 44 - re2c/src/ir/skeleton/control_flow.cc | 3 +- re2c/src/ir/skeleton/generate_code.cc | 11 +- re2c/src/ir/skeleton/generate_data.cc | 11 +- re2c/src/ir/skeleton/path.h | 22 +- re2c/src/ir/skeleton/skeleton.cc | 47 +- re2c/src/ir/skeleton/skeleton.h | 25 +- re2c/src/ir/skeleton/unreachable_nullable.cc | 46 +- re2c/src/parse/parser.h | 7 - re2c/src/parse/parser.ypp | 375 +- re2c/src/parse/rules.h | 127 - re2c/src/parse/spec.h | 62 +- re2c/test/condition_10.cgif--skeleton.c | 26 +- .../contexts/cond_star1.ci--input(custom).c | 6 +- re2c/test/contexts/cond_star1.ci.c | 6 +- re2c/test/contexts/cond_star2.ci.c | 22 +- re2c/test/contexts/fix3.i--contexts.c | 8 +- .../fix3_trail.i--contexts--input(custom).c | 8 +- re2c/test/contexts/fix3_trail.i--contexts.c | 8 +- ...cd--skeleton--flex-syntax--case-inverted.c | 15733 +++++++++- ...cd--skeleton--flex-syntax--case-inverted.c | 23606 ++++++++-------- re2c/test/repeat-01.cgir--skeleton.c | 18 +- re2c/test/repeat-02.cgir--skeleton.c | 18 +- re2c/test/repeat-03.cgir--skeleton.c | 40 +- .../reuse_conds_default_0.cgir--skeleton.c | 40 +- .../reuse_conds_default_1.cgir--skeleton.c | 40 +- 57 files changed, 27812 insertions(+), 13942 deletions(-) create mode 100644 re2c/src/ir/ctx.cc create mode 100644 re2c/src/ir/ctx.h delete mode 100644 re2c/src/ir/regexp/make_rule.cc create mode 100644 re2c/src/ir/rule.cc create mode 100644 re2c/src/ir/rule.h delete mode 100644 re2c/src/ir/rule_rank.cc delete mode 100644 re2c/src/ir/rule_rank.h delete mode 100644 re2c/src/parse/rules.h diff --git a/re2c/Makefile.am b/re2c/Makefile.am index f095f25d..e405a9ff 100644 --- a/re2c/Makefile.am +++ b/re2c/Makefile.am @@ -36,7 +36,8 @@ SRC_HDR = \ src/ir/regexp/empty_class_policy.h \ src/ir/regexp/regexp.h \ src/ir/compile.h \ - src/ir/rule_rank.h \ + src/ir/ctx.h \ + src/ir/rule.h \ src/ir/skeleton/path.h \ src/ir/skeleton/skeleton.h \ src/globals.h \ @@ -96,11 +97,11 @@ SRC = \ src/ir/regexp/encoding/utf16/utf16_regexp.cc \ src/ir/regexp/encoding/utf16/utf16.cc \ src/ir/regexp/encoding/utf16/utf16_range.cc \ - src/ir/regexp/make_rule.cc \ src/ir/regexp/regexp.cc \ src/ir/regexp/split_charset.cc \ src/ir/compile.cc \ - src/ir/rule_rank.cc \ + src/ir/ctx.cc \ + src/ir/rule.cc \ src/ir/skeleton/control_flow.cc \ src/ir/skeleton/generate_code.cc \ src/ir/skeleton/generate_data.cc \ diff --git a/re2c/bootstrap/src/parse/lex.cc b/re2c/bootstrap/src/parse/lex.cc index bedbdddb..24ebab04 100644 --- a/re2c/bootstrap/src/parse/lex.cc +++ b/re2c/bootstrap/src/parse/lex.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 on Wed Mar 23 17:38:25 2016 */ +/* Generated by re2c 0.16 on Sun Mar 27 19:51:34 2016 */ #line 1 "../src/parse/lex.re" #include "src/util/c99_stdint.h" #include diff --git a/re2c/bootstrap/src/parse/parser.cc b/re2c/bootstrap/src/parse/parser.cc index de5f3ebc..80f5828e 100644 --- a/re2c/bootstrap/src/parse/parser.cc +++ b/re2c/bootstrap/src/parse/parser.cc @@ -88,7 +88,6 @@ #include "src/ir/regexp/encoding/enc.h" #include "src/ir/regexp/encoding/range_suffix.h" #include "src/ir/regexp/regexp.h" -#include "src/ir/rule_rank.h" #include "src/ir/skeleton/skeleton.h" #include "src/parse/code.h" #include "src/parse/extop.h" @@ -96,7 +95,6 @@ #include "src/parse/parser.h" #include "src/parse/scanner.h" #include "src/parse/spec.h" -#include "src/util/counter.h" #include "src/util/free_list.h" #include "src/util/range.h" #include "src/util/smart_ptr.h" @@ -112,19 +110,16 @@ int yylex(); void yyerror(const char*); } -static counter_t rank_counter; static std::vector condnames; static re2c::SpecMap specMap; static Spec spec; -static const RegExp *specNone = NULL; -static SpecStar specStar; -static const RegExp *star_default = NULL; +static RegExpRule *specNone = NULL; +static Spec specStar; static Scanner *in = NULL; static Scanner::ParseMode parseMode; static SetupMap ruleSetupMap; static bool foundRules; static symbol_table_t symbol_table; -static zzz_t ctxs; /* Bison version 1.875 emits a definition that is not working * with several g++ version. Hence we disable it here. @@ -149,31 +144,21 @@ void context_none(CondList *clist) in->fatal("no expression specified"); } -void context_rule - ( CondList * clist - , const Loc & loc - , std::pair, std::vector > * expr - , const Code * code - , const std::string * newcond - ) +void context_rule( + CondList *clist, + const Loc &loc, + RegExpRule *rule, + const Code *code, + const std::string *newcond) { context_check(clist); - for(CondList::const_iterator it = clist->begin(); it != clist->end(); ++it) - { - if (specMap.find(*it) == specMap.end()) - { - condnames.push_back (*it); + rule->info = new RuleInfo(loc, code, newcond); + for(CondList::const_iterator i = clist->begin(); i != clist->end(); ++i) { + const std::string &cond = *i; + if (specMap.find(cond) == specMap.end()) { + condnames.push_back(cond); } - - const RegExp *rule = make_rule - ( specMap[*it].contexts - , loc - , expr - , rank_counter.next () - , code - , newcond - ); - specMap[*it].add (rule); + specMap[cond].add(rule); } delete clist; delete newcond; @@ -195,23 +180,14 @@ void setup_rule(CondList *clist, const Code * code) delete clist; } -void default_rule(CondList *clist, const Code * code) +void default_rule(CondList *clist, RegExpRule *rule) { - assert(clist); - assert(code); context_check(clist); - for(CondList::const_iterator it = clist->begin(); it != clist->end(); ++it) - { - const RegExp * def = make_rule_ctxfree - ( code->loc - , in->mkDefault () - , rule_rank_t::def () - , code - , NULL - ); - if (!specMap[*it].add_def (def)) - { - in->fatalf_at(code->loc.line, "code to default rule '%s' is already defined", it->c_str()); + for (CondList::const_iterator i = clist->begin(); i != clist->end(); ++i) { + if (!specMap[*i].add_def(rule)) { + in->fatalf_at(rule->info->loc.line, + "code to default rule '%s' is already defined", + i->c_str()); } } delete clist; @@ -273,7 +249,7 @@ typedef union YYSTYPE re2c::ExtOp extop; std::string * str; re2c::CondList * clist; - re2c::zzz_t *ctxs; + re2c::RegExpRule *rule; @@ -592,12 +568,12 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 191, 191, 193, 197, 201, 209, 217, 221, 225, - 229, 245, 261, 265, 271, 276, 282, 286, 300, 316, - 321, 327, 341, 357, 375, 381, 389, 392, 399, 405, - 415, 418, 425, 427, 435, 440, 453, 456, 463, 467, - 474, 478, 485, 489, 496, 500, 515, 534, 538, 542, - 546, 553, 563, 567 + 0, 167, 167, 169, 173, 177, 185, 193, 197, 201, + 205, 214, 225, 229, 234, 239, 245, 251, 258, 266, + 271, 278, 286, 296, 307, 313, 319, 322, 329, 335, + 345, 348, 355, 359, 367, 371, 384, 387, 394, 398, + 405, 409, 416, 420, 427, 431, 446, 465, 469, 473, + 477, 484, 494, 498 }; #endif @@ -1620,205 +1596,158 @@ yyreduce: case 10: { - if (opts->cFlag) - { - in->fatal("condition or '<*>' required when using -c switch"); - } - const RegExp * rule = make_rule - ( spec.contexts - , (yyvsp[(2) - (2)].code)->loc - , (yyvsp[(1) - (2)].ctxs) - , rank_counter.next () - , (yyvsp[(2) - (2)].code) - , NULL - ); - spec.add (rule); - ;} + if (opts->cFlag) { + in->fatal("condition or '<*>' required when using -c switch"); + } + (yyvsp[(1) - (2)].rule)->info = new RuleInfo((yyvsp[(2) - (2)].code)->loc, (yyvsp[(2) - (2)].code), NULL); + spec.add((yyvsp[(1) - (2)].rule)); + ;} break; case 11: { - if (opts->cFlag) - in->fatal("condition or '<*>' required when using -c switch"); - const RegExp * def = make_rule_ctxfree - ( (yyvsp[(2) - (2)].code)->loc - , in->mkDefault () - , rule_rank_t::def () - , (yyvsp[(2) - (2)].code) - , NULL - ); - if (!spec.add_def (def)) - { - in->fatal("code to default rule is already defined"); - } - ;} + if (opts->cFlag) { + in->fatal("condition or '<*>' required when using -c switch"); + } + RegExpRule *def = new RegExpRule(in->mkDefault()); + def->info = new RuleInfo((yyvsp[(2) - (2)].code)->loc, (yyvsp[(2) - (2)].code), NULL); + if (!spec.add_def(def)) { + in->fatal("code to default rule is already defined"); + } + ;} break; case 12: { - context_rule ((yyvsp[(2) - (6)].clist), (yyvsp[(6) - (6)].code)->loc, (yyvsp[(4) - (6)].ctxs), (yyvsp[(6) - (6)].code), (yyvsp[(5) - (6)].str)); - ;} + context_rule((yyvsp[(2) - (6)].clist), (yyvsp[(6) - (6)].code)->loc, (yyvsp[(4) - (6)].rule), (yyvsp[(6) - (6)].code), (yyvsp[(5) - (6)].str)); + ;} break; case 13: { - assert((yyvsp[(6) - (6)].str)); - Loc loc (in->get_fname (), in->get_cline ()); - context_rule ((yyvsp[(2) - (6)].clist), loc, (yyvsp[(4) - (6)].ctxs), NULL, (yyvsp[(6) - (6)].str)); - ;} + Loc loc(in->get_fname(), in->get_cline()); + context_rule((yyvsp[(2) - (6)].clist), loc, (yyvsp[(4) - (6)].rule), NULL, (yyvsp[(6) - (6)].str)); + ;} break; case 14: { - context_none((yyvsp[(2) - (6)].clist)); - delete (yyvsp[(5) - (6)].str); - ;} + context_none((yyvsp[(2) - (6)].clist)); + delete (yyvsp[(5) - (6)].str); + ;} break; case 15: { - assert((yyvsp[(6) - (6)].str)); - context_none((yyvsp[(2) - (6)].clist)); - delete (yyvsp[(6) - (6)].str); - ;} + context_none((yyvsp[(2) - (6)].clist)); + delete (yyvsp[(6) - (6)].str); + ;} break; case 16: { - default_rule((yyvsp[(2) - (5)].clist), (yyvsp[(5) - (5)].code)); - ;} + RegExpRule *def = new RegExpRule(in->mkDefault()); + def->info = new RuleInfo((yyvsp[(5) - (5)].code)->loc, (yyvsp[(5) - (5)].code), NULL); + default_rule((yyvsp[(2) - (5)].clist), def); + ;} break; case 17: { - context_check(NULL); - const RegExp * rule = make_rule - ( specStar.contexts - , (yyvsp[(6) - (6)].code)->loc - , (yyvsp[(4) - (6)].ctxs) - , rank_counter.next () - , (yyvsp[(6) - (6)].code) - , (yyvsp[(5) - (6)].str) - ); - specStar.rules.push_back (rule); - delete (yyvsp[(5) - (6)].str); - ;} + context_check(NULL); + (yyvsp[(4) - (6)].rule)->info = new RuleInfo((yyvsp[(6) - (6)].code)->loc, (yyvsp[(6) - (6)].code), (yyvsp[(5) - (6)].str)); + specStar.add((yyvsp[(4) - (6)].rule)); + delete (yyvsp[(5) - (6)].str); + ;} break; case 18: { - assert((yyvsp[(6) - (6)].str)); - context_check(NULL); - Loc loc (in->get_fname (), in->get_cline ()); - const RegExp * rule = make_rule - ( specStar.contexts - , loc - , (yyvsp[(4) - (6)].ctxs) - , rank_counter.next () - , NULL - , (yyvsp[(6) - (6)].str) - ); - specStar.rules.push_back (rule); - delete (yyvsp[(6) - (6)].str); - ;} + context_check(NULL); + Loc loc(in->get_fname(), in->get_cline()); + (yyvsp[(4) - (6)].rule)->info = new RuleInfo(loc, NULL, (yyvsp[(6) - (6)].str)); + specStar.add((yyvsp[(4) - (6)].rule)); + delete (yyvsp[(6) - (6)].str); + ;} break; case 19: { - context_none(NULL); - delete (yyvsp[(5) - (6)].str); - ;} + context_none(NULL); + delete (yyvsp[(5) - (6)].str); + ;} break; case 20: { - assert((yyvsp[(6) - (6)].str)); - context_none(NULL); - delete (yyvsp[(6) - (6)].str); - ;} + assert((yyvsp[(6) - (6)].str)); + context_none(NULL); + delete (yyvsp[(6) - (6)].str); + ;} break; case 21: { - if (star_default) - { - in->fatal ("code to default rule '*' is already defined"); - } - star_default = make_rule_ctxfree - ( (yyvsp[(5) - (5)].code)->loc - , in->mkDefault () - , rule_rank_t::def () - , (yyvsp[(5) - (5)].code) - , NULL - ); - ;} + RegExpRule *def = new RegExpRule(in->mkDefault()); + def->info = new RuleInfo((yyvsp[(5) - (5)].code)->loc, (yyvsp[(5) - (5)].code), NULL); + if (!specStar.add_def(def)) { + in->fatal("code to default rule '*' is already defined"); + } + ;} break; case 22: { - context_check(NULL); - if (specNone) - { - in->fatal("code to handle illegal condition already defined"); - } - (yyval.regexp) = specNone = make_rule_ctxfree - ( (yyvsp[(3) - (3)].code)->loc - , RegExp::nil() - , rank_counter.next () - , (yyvsp[(3) - (3)].code) - , (yyvsp[(2) - (3)].str) - ); - delete (yyvsp[(2) - (3)].str); - ;} + context_check(NULL); + if (specNone) { + in->fatal("code to handle illegal condition already defined"); + } + specNone = new RegExpRule(RegExp::nil()); + specNone->info = new RuleInfo((yyvsp[(3) - (3)].code)->loc, (yyvsp[(3) - (3)].code), (yyvsp[(2) - (3)].str)); + delete (yyvsp[(2) - (3)].str); + ;} break; case 23: { - assert((yyvsp[(3) - (3)].str)); - context_check(NULL); - if (specNone) - { - in->fatal("code to handle illegal condition already defined"); - } - Loc loc (in->get_fname (), in->get_cline ()); - (yyval.regexp) = specNone = make_rule_ctxfree - ( loc - , RegExp::nil() - , rank_counter.next () - , NULL - , (yyvsp[(3) - (3)].str) - ); - delete (yyvsp[(3) - (3)].str); - ;} + context_check(NULL); + if (specNone) { + in->fatal("code to handle illegal condition already defined"); + } + Loc loc(in->get_fname(), in->get_cline()); + specNone = new RegExpRule(RegExp::nil()); + specNone->info = new RuleInfo(loc, NULL, (yyvsp[(3) - (3)].str)); + delete (yyvsp[(3) - (3)].str); + ;} break; case 24: { - CondList *clist = new CondList(); - clist->insert("*"); - setup_rule(clist, (yyvsp[(4) - (4)].code)); - ;} + CondList *clist = new CondList; + clist->insert("*"); + setup_rule(clist, (yyvsp[(4) - (4)].code)); + ;} break; case 25: { - setup_rule((yyvsp[(2) - (4)].clist), (yyvsp[(4) - (4)].code)); - ;} + setup_rule((yyvsp[(2) - (4)].clist), (yyvsp[(4) - (4)].code)); + ;} break; case 26: @@ -1870,7 +1799,7 @@ yyreduce: case 32: { - (yyval.ctxs) = (yyvsp[(1) - (1)].ctxs); + (yyval.rule) = (yyvsp[(1) - (1)].rule); ;} break; @@ -1878,19 +1807,16 @@ yyreduce: { // multiple trailing contexts on the same rule are not allowed - (yyval.ctxs) = (yyvsp[(1) - (3)].ctxs); - (yyval.ctxs)->first.push_back((yyvsp[(3) - (3)].regexp)); - (yyval.ctxs)->second.push_back(NULL); + (yyval.rule) = (yyvsp[(1) - (3)].rule); + (yyval.rule)->regexps.push_back((yyvsp[(3) - (3)].regexp)); + (yyval.rule)->ctxnames.push_back(NULL); ;} break; case 34: { - ctxs.first.clear(); - ctxs.second.clear(); - (yyval.ctxs) = &ctxs; - (yyval.ctxs)->first.push_back((yyvsp[(1) - (1)].regexp)); + (yyval.rule) = new RegExpRule((yyvsp[(1) - (1)].regexp)); ;} break; @@ -1902,9 +1828,9 @@ yyreduce: in->fatal("non-trailing contexts are only allowed" " with '-C, --contexts' option"); } - (yyval.ctxs) = (yyvsp[(1) - (3)].ctxs); - (yyval.ctxs)->first.push_back((yyvsp[(3) - (3)].regexp)); - (yyval.ctxs)->second.push_back((yyvsp[(2) - (3)].str)); + (yyval.rule) = (yyvsp[(1) - (3)].rule); + (yyval.rule)->regexps.push_back((yyvsp[(3) - (3)].regexp)); + (yyval.rule)->ctxnames.push_back((yyvsp[(2) - (3)].str)); ;} break; @@ -2335,7 +2261,6 @@ void parse(Scanner& i, Output & o) { dfa_map.clear(); } - rank_counter.reset (); spec.clear (); in->set_in_parse(true); yyparse(); @@ -2351,7 +2276,6 @@ void parse(Scanner& i, Output & o) dfa_map.clear(); parse_cleanup(); spec.clear (); - rank_counter.reset (); in->set_in_parse(true); yyparse(); in->set_in_parse(false); @@ -2377,17 +2301,12 @@ void parse(Scanner& i, Output & o) // merge <*> rules to all conditions with lowest priority for (it = specMap.begin(); it != specMap.end(); ++it) { - const size_t shift = it->second.contexts.size(); - it->second.contexts.insert(it->second.contexts.end(), specStar.contexts.begin(), specStar.contexts.end()); - std::vector::const_iterator - star = specStar.rules.begin(), - star_end = specStar.rules.end(); - for (; star != star_end; ++star) { - it->second.add(make_rule_copy(*star, rank_counter.next(), shift)); + for (size_t j = 0; j < specStar.res.size(); ++j) { + it->second.add(specStar.res[j]); } - if (star_default) - { - it->second.add_def (star_default); + if (specStar.def) { + // ignore possible failure + it->second.add_def(specStar.def); } } @@ -2434,7 +2353,7 @@ void parse(Scanner& i, Output & o) } else { - if (spec.re || !dfa_map.empty()) + if (!spec.res.empty() || spec.def || !dfa_map.empty()) { if (parseMode != Scanner::Reuse) { @@ -2492,7 +2411,6 @@ void parse_cleanup() condnames.clear (); specMap.clear(); specStar.clear(); - star_default = NULL; specNone = NULL; } diff --git a/re2c/bootstrap/src/parse/y.tab.h b/re2c/bootstrap/src/parse/y.tab.h index 16136bdd..fc9758ab 100644 --- a/re2c/bootstrap/src/parse/y.tab.h +++ b/re2c/bootstrap/src/parse/y.tab.h @@ -66,7 +66,7 @@ typedef union YYSTYPE re2c::ExtOp extop; std::string * str; re2c::CondList * clist; - re2c::zzz_t *ctxs; + re2c::RegExpRule *rule; diff --git a/re2c/src/codegen/emit_action.cc b/re2c/src/codegen/emit_action.cc index 5703a4fb..d5abef44 100644 --- a/re2c/src/codegen/emit_action.cc +++ b/re2c/src/codegen/emit_action.cc @@ -27,7 +27,7 @@ static void emit_save (OutputFile & o, uint32_t ind, bool & readCh, con static void emit_accept_binary (OutputFile & o, uint32_t ind, bool & readCh, const State * const s, const accept_t & accept, size_t l, size_t r); static void emit_accept (OutputFile & o, uint32_t ind, bool & readCh, const State * const s, const accept_t & accept); static void emit_rule(OutputFile &o, uint32_t ind, const State *const s, - const RuleInfo *const rule, const std::string &condName, + size_t rule, const std::string &condName, const Skeleton *skeleton, bool base_ctxmarker); static void genYYFill (OutputFile & o, size_t need); static void genSetCondition (OutputFile & o, uint32_t ind, const std::string & newcond); @@ -265,18 +265,19 @@ static void rreplace_substr(std::string &s, } } -static std::string apply_rule_subst(const RuleInfo *rule, const std::vector &contexts) +static void subst_contexts( + std::string &action, + const Rule &rule, + const std::vector &contexts) { - std::string action = rule->code->text; - - for (size_t i = 0; i < rule->ctxvar.size(); ++i) { - const CtxVar &ctx = contexts[rule->ctxvar[i]]; + for (size_t i = 0; i < rule.ctxvar.size(); ++i) { + const CtxVar &ctx = contexts[rule.ctxvar[i]]; rreplace_substr(action, "@" + *ctx.name, opts->input_api.expr_ctx(ctx.fullname)); } - for (size_t i = 0; i < rule->ctxfix.size(); ++i) { - const CtxFix &ctx = rule->ctxfix[i]; + for (size_t i = 0; i < rule.ctxfix.size(); ++i) { + const CtxFix &ctx = rule.ctxfix[i]; const std::string basename = (ctx.base == CtxFix::RIGHTMOST) ? opts->input_api.expr_dist() : contexts[ctx.base].fullname; @@ -285,73 +286,69 @@ static std::string apply_rule_subst(const RuleInfo *rule, const std::vectorinput_api.expr_ctx(offs.str()); rreplace_substr(action, "@" + *ctx.name, ctx_value); } - - return action; } void emit_rule( OutputFile &o, uint32_t ind, const State *const s, - const RuleInfo *const rule, + size_t rule_idx, const std::string &condName, const Skeleton *skeleton, bool base_ctxmarker) { - if (opts->target == opt_t::DOT) - { + const Rule &rule = skeleton->rules[rule_idx]; + const RuleInfo *info = rule.info; + + if (opts->target == opt_t::DOT) { o.wlabel(s->label); - if (rule->code) - { - o.ws(" [label=\"").wstring(rule->code->loc.filename).ws(":").wu32(rule->code->loc.line).ws("\"]"); + const Code *code = info->code; + if (code) { + o.ws(" [label=\"").wstring(code->loc.filename) + .ws(":").wu32(code->loc.line).ws("\"]"); } o.ws("\n"); return; } - if (opts->target != opt_t::DOT) { - switch (rule->trail.type) { - case Trail::NONE: - break; - case Trail::VAR: - if (base_ctxmarker) { - const std::string name = skeleton->contexts[rule->trail.pld.var].fullname; - o.wstring(opts->input_api.stmt_restorectx_var_base(ind, name)); - } else { - o.wstring(opts->input_api.stmt_restorectx_var(ind)); - } - break; - case Trail::FIX: - o.wstring(opts->input_api.stmt_restorectx_fix(ind, rule->trail.pld.fix)); - break; - } + const Trail &trail = rule.trail; + switch (trail.type) { + case Trail::NONE: + break; + case Trail::VAR: + if (base_ctxmarker) { + const std::string name = skeleton->contexts[trail.pld.var].fullname; + o.wstring(opts->input_api.stmt_restorectx_var_base(ind, name)); + } else { + o.wstring(opts->input_api.stmt_restorectx_var(ind)); + } + break; + case Trail::FIX: + o.wstring(opts->input_api.stmt_restorectx_fix(ind, trail.pld.fix)); + break; } - if (opts->target == opt_t::SKELETON) - { - emit_action(*skeleton, o, ind, rule->rank); - } - else - { - if (!rule->newcond.empty () && condName != rule->newcond) - { - genSetCondition(o, ind, rule->newcond); + if (opts->target == opt_t::SKELETON) { + emit_action(*skeleton, o, ind, rule_idx); + } else { + const std::string &newcond = info->newcond; + if (!newcond.empty() && condName != newcond) { + genSetCondition(o, ind, newcond); } - - if (rule->code) - { - if (!yySetupRule.empty ()) - { + const Code *code = info->code; + if (code) { + if (!yySetupRule.empty()) { o.wind(ind).wstring(yySetupRule).ws("\n"); } - const std::string action = apply_rule_subst(rule, skeleton->contexts); - o.wline_info(rule->code->loc.line, rule->code->loc.filename.c_str ()) + std::string action = code->text; + subst_contexts(action, rule, skeleton->contexts); + o.wline_info(code->loc.line, code->loc.filename.c_str()) .wind(ind).wstring(action).ws("\n") - .wdelay_line_info (); - } - else if (!rule->newcond.empty ()) - { - o.wind(ind).wstring(replaceParam(opts->condGoto, opts->condGotoParam, opts->condPrefix + rule->newcond)).ws("\n"); + .wdelay_line_info(); + } else if (!newcond.empty()) { + const std::string action = replaceParam(opts->condGoto, + opts->condGotoParam, opts->condPrefix + newcond); + o.wind(ind).wstring(action).ws("\n"); } } } diff --git a/re2c/src/codegen/input_api.cc b/re2c/src/codegen/input_api.cc index 7780669b..51254dda 100644 --- a/re2c/src/codegen/input_api.cc +++ b/re2c/src/codegen/input_api.cc @@ -98,10 +98,13 @@ std::string InputAPI::expr_dist () const std::string s; switch (type_) { case DEFAULT: - return "(" + opts->yycursor + " - " + opts->yyctxmarker + ")"; + s = "(" + opts->yycursor + " - " + opts->yyctxmarker + ")"; + break; case CUSTOM: - return "YYDIST()"; + s = "YYDIST()"; + break; } + return s; } std::string InputAPI::stmt_dist (uint32_t ind, const std::set &ctxs, @@ -116,12 +119,16 @@ std::string InputAPI::stmt_dist (uint32_t ind, const std::set &ctxs, std::string InputAPI::expr_ctx (const std::string &ctx) const { + std::string s; switch (type_) { case DEFAULT: - return "(" + opts->yyctxmarker + " + " + ctx + ")"; + s = "(" + opts->yyctxmarker + " + " + ctx + ")"; + break; case CUSTOM: - return "YYCTX(" + ctx + ")"; + s = "YYCTX(" + ctx + ")"; + break; } + return s; } std::string InputAPI::stmt_restore (uint32_t ind) const diff --git a/re2c/src/codegen/output.cc b/re2c/src/codegen/output.cc index 0e9537a3..73121106 100644 --- a/re2c/src/codegen/output.cc +++ b/re2c/src/codegen/output.cc @@ -8,7 +8,6 @@ #include "src/conf/opt.h" #include "src/conf/warn.h" #include "src/globals.h" -#include "src/ir/rule_rank.h" namespace re2c { @@ -182,12 +181,6 @@ OutputFile & OutputFile::wlabel (label_t l) return *this; } -OutputFile & OutputFile::wrank (rule_rank_t r) -{ - stream () << r; - return *this; -} - OutputFile & OutputFile::wind (uint32_t ind) { stream () << indent(ind); diff --git a/re2c/src/codegen/output.h b/re2c/src/codegen/output.h index 5f7fd39f..894d896f 100644 --- a/re2c/src/codegen/output.h +++ b/re2c/src/codegen/output.h @@ -17,8 +17,6 @@ namespace re2c { -class rule_rank_t; - struct OutputFragment { enum type_t @@ -85,7 +83,6 @@ public: OutputFile & wstring (const std::string & s); OutputFile & ws (const char * s); OutputFile & wlabel (label_t l); - OutputFile & wrank (rule_rank_t l); OutputFile & wrange (uint32_t u, uint32_t l); OutputFile & wline_info (uint32_t l, const char * fn); OutputFile & wversion_time (); diff --git a/re2c/src/conf/warn.cc b/re2c/src/conf/warn.cc index b53acc7d..a631d308 100644 --- a/re2c/src/conf/warn.cc +++ b/re2c/src/conf/warn.cc @@ -187,29 +187,27 @@ void Warn::undefined_control_flow (const Skeleton &skel, std::vector & p } } -void Warn::unreachable_rule (const std::string & cond, const RuleInfo *rule) +void Warn::unreachable_rule(const std::string &cond, const Rule &rule) { - if (mask[UNREACHABLE_RULES] & WARNING) - { + if (mask[UNREACHABLE_RULES] & WARNING) { const bool e = mask[UNREACHABLE_RULES] & ERROR; error_accuml |= e; - warning_start (rule->loc.line, e); - fprintf (stderr, "unreachable rule %s", incond (cond).c_str ()); - const size_t shadows = rule->shadow.size (); - if (shadows > 0) - { + + warning_start(rule.info->loc.line, e); + fprintf(stderr, "unreachable rule %s", incond(cond).c_str()); + const size_t shadows = rule.shadow.size(); + if (shadows > 0) { const char * pl = shadows > 1 ? "s" : ""; - std::set::const_iterator i = rule->shadow.begin(); + std::set::const_iterator i = rule.shadow.begin(); fprintf (stderr, "(shadowed by rule%s at line%s %u", pl, pl, *i); - for (++i; i != rule->shadow.end(); ++i) - { - fprintf (stderr, ", %u", *i); + for (++i; i != rule.shadow.end(); ++i) { + fprintf(stderr, ", %u", *i); } - fprintf (stderr, ")"); + fprintf(stderr, ")"); } - warning_end (names[UNREACHABLE_RULES], e); + warning_end(names[UNREACHABLE_RULES], e); } } diff --git a/re2c/src/conf/warn.h b/re2c/src/conf/warn.h index d83f7fc1..72089026 100644 --- a/re2c/src/conf/warn.h +++ b/re2c/src/conf/warn.h @@ -5,7 +5,7 @@ #include #include -#include "src/parse/rules.h" +#include "src/ir/rule.h" namespace re2c { @@ -62,7 +62,7 @@ public: void selfoverlapping_contexts(uint32_t line, const std::string &cond, const CtxVar &ctx); void swapped_range (uint32_t line, uint32_t l, uint32_t u); void undefined_control_flow (const Skeleton &skel, std::vector & paths, bool overflow); - void unreachable_rule (const std::string & cond, const RuleInfo *rule); + void unreachable_rule (const std::string & cond, const Rule &rule); void useless_escape (uint32_t line, uint32_t col, char c); }; diff --git a/re2c/src/ir/adfa/action.h b/re2c/src/ir/adfa/action.h index c57d7a6c..d5822d2e 100644 --- a/re2c/src/ir/adfa/action.h +++ b/re2c/src/ir/adfa/action.h @@ -11,7 +11,6 @@ namespace re2c { struct OutputFile; -class RuleInfo; class State; struct Initial @@ -44,7 +43,7 @@ public: Initial * initial; uint32_t save; const accept_t * accepts; - const RuleInfo * rule; + size_t rule; } info; public: @@ -79,7 +78,7 @@ public: type = ACCEPT; info.accepts = accepts; } - void set_rule (const RuleInfo * const rule) + void set_rule (size_t rule) { clear (); type = RULE; diff --git a/re2c/src/ir/adfa/adfa.cc b/re2c/src/ir/adfa/adfa.cc index 31a8b333..16d59a98 100644 --- a/re2c/src/ir/adfa/adfa.cc +++ b/re2c/src/ir/adfa/adfa.cc @@ -36,6 +36,7 @@ DFA::DFA , nStates(0) , head(NULL) , contexts(dfa.contexts) + , rules(dfa.rules) // statistics , max_fill (0) @@ -97,6 +98,9 @@ DFA::~DFA() } delete skeleton; + + delete &contexts; + delete &rules; } /* note [reordering DFA states] diff --git a/re2c/src/ir/adfa/adfa.h b/re2c/src/ir/adfa/adfa.h index 01937336..6e6fe970 100644 --- a/re2c/src/ir/adfa/adfa.h +++ b/re2c/src/ir/adfa/adfa.h @@ -10,6 +10,7 @@ #include "src/codegen/label.h" #include "src/ir/adfa/action.h" #include "src/ir/regexp/regexp.h" +#include "src/ir/rule.h" #include "src/util/forbid_copy.h" namespace re2c @@ -23,11 +24,11 @@ struct dfa_t; struct State { label_t label; - const RuleInfo * rule; State * next; size_t fill; bool fallback; + size_t rule; std::set ctxs; bool isBase; Go go; @@ -35,10 +36,10 @@ struct State State () : label (label_t::first ()) - , rule (NULL) , next (0) , fill (0) , fallback (false) + , rule (Rule::NONE) , ctxs () , isBase (false) , go () @@ -67,6 +68,7 @@ public: uint32_t nStates; State * head; std::vector &contexts; + std::vector &rules; // statistics size_t max_fill; diff --git a/re2c/src/ir/adfa/prepare.cc b/re2c/src/ir/adfa/prepare.cc index 40753aab..596d8138 100644 --- a/re2c/src/ir/adfa/prepare.cc +++ b/re2c/src/ir/adfa/prepare.cc @@ -7,7 +7,6 @@ #include "src/globals.h" #include "src/ir/adfa/action.h" #include "src/ir/adfa/adfa.h" -#include "src/ir/rule_rank.h" #include "src/util/allocate.h" namespace re2c { @@ -20,7 +19,7 @@ void DFA::split(State *s) move->rule = s->rule; move->fill = s->fill; move->go = s->go; - s->rule = NULL; + s->rule = Rule::NONE; s->go.nSpans = 1; s->go.span = allocate (1); s->go.span[0].ub = ubChar; @@ -141,23 +140,18 @@ void DFA::prepare () bUsedYYBitmap = false; // create rule states - std::map rules; - for (State * s = head; s; s = s->next) - { - if (s->rule) - { - if (rules.find (s->rule->rank) == rules.end ()) - { + std::vector rule2state(rules.size()); + for (State *s = head; s; s = s->next) { + if (s->rule != Rule::NONE) { + if (!rule2state[s->rule]) { State *n = new State; - n->action.set_rule (s->rule); - rules[s->rule->rank] = n; + n->action.set_rule(s->rule); + rule2state[s->rule] = n; addState(n, s); } - for (uint32_t i = 0; i < s->go.nSpans; ++i) - { - if (!s->go.span[i].to) - { - s->go.span[i].to = rules[s->rule->rank]; + for (uint32_t i = 0; i < s->go.nSpans; ++i) { + if (!s->go.span[i].to) { + s->go.span[i].to = rule2state[s->rule]; } } } @@ -185,8 +179,8 @@ void DFA::prepare () if (default_state) { for (State *s = head; s; s = s->next) { if (s->fallback) { - const uint32_t accept = static_cast(accepts.find_or_add(rules[s->rule->rank])); - s->action.set_save(accept); + const size_t accept = accepts.find_or_add(rule2state[s->rule]); + s->action.set_save(static_cast(accept)); } } default_state->action.set_accept(&accepts); diff --git a/re2c/src/ir/compile.cc b/re2c/src/ir/compile.cc index da9d90af..5b24892c 100644 --- a/re2c/src/ir/compile.cc +++ b/re2c/src/ir/compile.cc @@ -40,7 +40,7 @@ smart_ptr compile (Spec & spec, Output & output, const std::string & cond, // Don't forget to include zero and upper bound, even if they // do not explicitely apper in ranges. std::set bounds; - split(spec.re, bounds); + split(spec.res, bounds); bounds.insert(0); bounds.insert(cunits); charset_t cs; @@ -55,7 +55,10 @@ smart_ptr compile (Spec & spec, Output & output, const std::string & cond, // skeleton must be constructed after DFA construction // but prior to any other DFA transformations - Skeleton *skeleton = new Skeleton(dfa, cs, spec.rules, name, cond, line); + const size_t defrule = spec.def + ? dfa.rules.size() - 1 + : Rule::NONE; + Skeleton *skeleton = new Skeleton(dfa, cs, defrule, name, cond, line); minimization(dfa); diff --git a/re2c/src/ir/ctx.cc b/re2c/src/ir/ctx.cc new file mode 100644 index 00000000..e57cdd88 --- /dev/null +++ b/re2c/src/ir/ctx.cc @@ -0,0 +1,23 @@ +#include +#include + +#include "src/ir/ctx.h" + +namespace re2c +{ + +CtxVar::CtxVar(const std::string *n, size_t idx) + : name(n) + , fullname() +{ + std::ostringstream s; + s << "yyctx" << idx; + if (name != NULL) { + s << *name; + } + fullname = s.str(); +} + +const size_t CtxFix::RIGHTMOST = std::numeric_limits::max(); + +} // namespace re2c diff --git a/re2c/src/ir/ctx.h b/re2c/src/ir/ctx.h new file mode 100644 index 00000000..74f1a555 --- /dev/null +++ b/re2c/src/ir/ctx.h @@ -0,0 +1,66 @@ +#ifndef _RE2C_IR_CTX_ +#define _RE2C_IR_CTX_ + +#include + +namespace re2c +{ + +struct CtxVar +{ + const std::string *name; + std::string fullname; + + CtxVar(const std::string *n, size_t idx); + CtxVar(const CtxVar &ctx) + : name(ctx.name) + , fullname(ctx.fullname) + {} + CtxVar& operator=(const CtxVar &ctx) + { + name = ctx.name; + fullname = ctx.fullname; + return *this; + } +}; + +struct CtxFix +{ + static const size_t RIGHTMOST; + + const std::string *name; + size_t base; + size_t dist; + + CtxFix(const std::string *n, size_t b, size_t d) + : name(n) + , base(b) + , dist(d) + {} +}; + +struct Trail +{ + enum {NONE, VAR, FIX} type; + union + { + size_t var; + size_t fix; // trailing means rightmost; no need for base + } pld; + + Trail(): type(NONE), pld() {} + void make_var(size_t v) + { + type = VAR; + pld.var = v; + } + void make_fix(size_t f) + { + type = FIX; + pld.fix = f; + } +}; + +} // namespace re2c + +#endif // _RE2C_IR_CTX_ diff --git a/re2c/src/ir/dfa/context_deduplication.cc b/re2c/src/ir/dfa/context_deduplication.cc index 4ff01202..ca118db3 100644 --- a/re2c/src/ir/dfa/context_deduplication.cc +++ b/re2c/src/ir/dfa/context_deduplication.cc @@ -30,11 +30,11 @@ static void calc_live( } } - if (s->rule != NULL) { - live[i].insert(s->rule->ctxvar.begin(), s->rule->ctxvar.end()); - const Trail &ctx = s->rule->trail; - if (ctx.type == Trail::VAR) { - live[i].insert(ctx.pld.var); + if (s->rule != Rule::NONE) { + const Rule &rule = dfa.rules[s->rule]; + live[i].insert(rule.ctxvar.begin(), rule.ctxvar.end()); + if (rule.trail.type == Trail::VAR) { + live[i].insert(rule.trail.pld.var); } } else if (fallthru) { // transition to default state: all fallback rules @@ -55,10 +55,10 @@ bool deduplicate_contexts( std::set fbctxs; for (size_t i = 0; i < fallback.size(); ++i) { - const RuleInfo *rule = dfa.states[fallback[i]]->rule; - fbctxs.insert(rule->ctxvar.begin(), rule->ctxvar.end()); - if (rule->trail.type == Trail::VAR) { - fbctxs.insert(rule->trail.pld.var); + const Rule &rule = dfa.rules[dfa.states[fallback[i]]->rule]; + fbctxs.insert(rule.ctxvar.begin(), rule.ctxvar.end()); + if (rule.trail.type == Trail::VAR) { + fbctxs.insert(rule.trail.pld.var); } } diff --git a/re2c/src/ir/dfa/determinization.cc b/re2c/src/ir/dfa/determinization.cc index a164b627..e0c7dcb0 100644 --- a/re2c/src/ir/dfa/determinization.cc +++ b/re2c/src/ir/dfa/determinization.cc @@ -7,8 +7,6 @@ #include "src/ir/dfa/dfa.h" #include "src/ir/nfa/nfa.h" #include "src/ir/regexp/regexp.h" -#include "src/ir/rule_rank.h" -#include "src/parse/rules.h" #include "src/util/range.h" namespace re2c @@ -97,8 +95,9 @@ dfa_t::dfa_t( : states() , nchars(charset.size() - 1) // (n + 1) bounds for n ranges , contexts(nfa.contexts) + , rules(nfa.rules) { - std::map > s2rules; + std::map > s2rules; ord_hash_set_t kernels; nfa_state_t **const buffer = new nfa_state_t*[nfa.size]; std::vector > arcs(nchars); @@ -160,26 +159,21 @@ dfa_t::dfa_t( delete[] buffer; const size_t count = states.size(); - for (size_t i = 0; i < count; ++i) - { + for (size_t i = 0; i < count; ++i) { dfa_state_t *s = states[i]; - std::set &rs = s2rules[i]; + std::set &rs = s2rules[i]; // for each final state: choose the rule with the smallest rank - for (std::set::const_iterator j = rs.begin(); j != rs.end(); ++j) - { - RuleInfo *rule = *j; - if (!s->rule || rule->rank < s->rule->rank) - { + for (std::set::const_iterator j = rs.begin(); j != rs.end(); ++j) { + const size_t rule = *j; + if (s->rule == Rule::NONE || rule < s->rule) { s->rule = rule; } } // other rules are shadowed by the chosen rule - for (std::set::const_iterator j = rs.begin(); j != rs.end(); ++j) - { - RuleInfo *rule = *j; - if (s->rule != rule) - { - rule->shadow.insert(s->rule->loc.line); + for (std::set::const_iterator j = rs.begin(); j != rs.end(); ++j) { + const size_t rule = *j; + if (s->rule != rule) { + rules[rule].shadow.insert(rules[s->rule].info->loc.line); } } } diff --git a/re2c/src/ir/dfa/dfa.h b/re2c/src/ir/dfa/dfa.h index 47d14b4f..71d99af4 100644 --- a/re2c/src/ir/dfa/dfa.h +++ b/re2c/src/ir/dfa/dfa.h @@ -6,7 +6,7 @@ #include #include "src/ir/regexp/regexp.h" -#include "src/parse/rules.h" +#include "src/ir/rule.h" #include "src/util/forbid_copy.h" #include "src/util/ord_hash_set.h" @@ -14,17 +14,16 @@ namespace re2c { struct nfa_t; -class RuleOp; struct dfa_state_t { size_t *arcs; - RuleInfo *rule; + size_t rule; std::set ctxs; dfa_state_t() : arcs(NULL) - , rule(NULL) + , rule(Rule::NONE) , ctxs() {} ~dfa_state_t() @@ -42,6 +41,7 @@ struct dfa_t std::vector states; const size_t nchars; std::vector &contexts; + std::vector &rules; dfa_t(const nfa_t &nfa, const charset_t &charset, uint32_t line, const std::string &cond); diff --git a/re2c/src/ir/dfa/fallback.cc b/re2c/src/ir/dfa/fallback.cc index 8d3835f0..7a92750e 100644 --- a/re2c/src/ir/dfa/fallback.cc +++ b/re2c/src/ir/dfa/fallback.cc @@ -15,11 +15,11 @@ void fallback_states(const dfa_t &dfa, std::vector &fallback) const size_t count = dfa.states.size(); for (size_t i = 0; i < count; ++i) { dfa_state_t *s = dfa.states[i]; - if (s->rule != NULL) { + if (s->rule != Rule::NONE) { for (size_t c = 0; c < dfa.nchars; ++c) { const size_t j = s->arcs[c]; if (j != dfa_t::NIL - && dfa.states[j]->rule == NULL) { + && dfa.states[j]->rule == Rule::NONE) { fallback.push_back(i); } } diff --git a/re2c/src/ir/dfa/minimization.cc b/re2c/src/ir/dfa/minimization.cc index 39769116..d00e13f5 100644 --- a/re2c/src/ir/dfa/minimization.cc +++ b/re2c/src/ir/dfa/minimization.cc @@ -10,8 +10,6 @@ namespace re2c { -class RuleInfo; - /* * note [DFA minimization: table filling algorithm] * @@ -135,11 +133,11 @@ static void minimization_moore( size_t *next = new size_t[count]; // see note [distinguish states by contexts] - std::map >, size_t> init; + std::map >, size_t> init; for (size_t i = 0; i < count; ++i) { dfa_state_t *s = states[i]; - std::pair > key(s->rule, s->ctxs); + std::pair > key(s->rule, s->ctxs); if (init.insert(std::make_pair(key, i)).second) { part[i] = i; diff --git a/re2c/src/ir/nfa/nfa.cc b/re2c/src/ir/nfa/nfa.cc index 9566fa35..7ad638c4 100644 --- a/re2c/src/ir/nfa/nfa.cc +++ b/re2c/src/ir/nfa/nfa.cc @@ -1,25 +1,11 @@ +#include "src/conf/opt.h" #include "src/ir/nfa/nfa.h" #include "src/ir/regexp/regexp.h" +#include "src/globals.h" namespace re2c { -static uint32_t calc_size(const RegExp *re); -static nfa_state_t *compile(const RegExp *re, nfa_t &nfa, nfa_state_t *n); - -nfa_t::nfa_t(Spec &spec) - : max_size(calc_size(spec.re)) - , size(0) - , states(new nfa_state_t[max_size]) - , contexts(spec.contexts) - , root(compile(spec.re, *this, NULL)) -{} - -nfa_t::~nfa_t() -{ - delete[] states; -} - -uint32_t calc_size(const RegExp *re) +static size_t calc_size(const RegExp *re) { switch (re->tag) { case RegExp::NIL: @@ -36,16 +22,34 @@ uint32_t calc_size(const RegExp *re) case RegExp::ITER: return calc_size(re->pld.iter.re) + 1; - case RegExp::CTX: - return calc_size(re->pld.ctx.re) - + 1; - case RegExp::RULE: - return calc_size(re->pld.rule.re) - + 1; + default: + assert(false); } } -nfa_state_t *compile(const RegExp *re, nfa_t &nfa, nfa_state_t *t) +static size_t calc_size_all( + const std::vector &rules, + const RegExpRule *def) +{ + size_t size = rules.size() - 1 + (def ? 1 : 0); + for (size_t i = 0; i < rules.size(); ++i) { + const std::vector ®exps = rules[i]->regexps; + for (size_t j = 0; j < regexps.size(); ++j) { + size += calc_size(regexps[j]); + } + size += regexps.size(); + } + if (def != NULL) { + const std::vector ®exps = def->regexps; + for (size_t j = 0; j < regexps.size(); ++j) { + size += calc_size(regexps[j]); + } + size += regexps.size(); + } + return size; +} + +static nfa_state_t *compile(const RegExp *re, nfa_t &nfa, nfa_state_t *t) { nfa_state_t *s = NULL; switch (re->tag) { @@ -69,18 +73,180 @@ nfa_state_t *compile(const RegExp *re, nfa_t &nfa, nfa_state_t *t) s = &nfa.states[nfa.size++]; s->alt(t, compile(re->pld.iter.re, nfa, s)); break; - case RegExp::CTX: - s = &nfa.states[nfa.size++]; - s->ctx(compile(re->pld.ctx.re, nfa, t), - re->pld.ctx.info); - break; - case RegExp::RULE: - s = &nfa.states[nfa.size++]; - s->fin(re->pld.rule.info); - s = compile(re->pld.rule.re, nfa, s); - break; } return s; } +static uint32_t fixlen(const RegExp *re) +{ + switch (re->tag) { + case RegExp::NIL: + return 0; + case RegExp::SYM: + return 1; + case RegExp::ALT: { + const uint32_t l1 = fixlen(re->pld.alt.re1); + const uint32_t l2 = fixlen(re->pld.alt.re2); + return l1 == l2 ? l1 : ~0u; + } + case RegExp::CAT: { + const uint32_t l1 = fixlen(re->pld.cat.re1); + if (l1 == ~0u) { + return ~0u; + } + const uint32_t l2 = fixlen(re->pld.cat.re2); + if (l2 == ~0u) { + return ~0u; + } + return l1 + l2; + } + case RegExp::ITER: + return ~0u; + default: + assert(false); + } +} + +static bool nullable(const RegExp *re) +{ + switch (re->tag) { + case RegExp::NIL: + return true; + case RegExp::SYM: + return false; + case RegExp::ALT: + return nullable(re->pld.alt.re1) + || nullable(re->pld.alt.re2); + case RegExp::CAT: + return nullable(re->pld.cat.re1) + && nullable(re->pld.cat.re2); + case RegExp::ITER: + return true; + default: + assert(false); + } +} + +static nfa_state_t *compile_rule( + const RegExpRule *rule, + nfa_t &nfa) +{ + const std::vector &rs = rule->regexps; + const std::vector &ctxnames = rule->ctxnames; + const size_t nctxs = ctxnames.size(); + assert(rs.size() == nctxs + 1); + + std::vector dist(nctxs + 1, 0); + std::vector base(nctxs + 1, nctxs); + // right-fix all contexts + for (size_t i = nctxs; i > 0; --i) { + const size_t fl = fixlen(rs[i]); + + // generic API needs base to restore fixed-length trailing contexts + // and base is only guaranteed when non-trailing contexts are enabled + const bool lack_api = !opts->contexts // => every context is trailing + && opts->input_api.type() == InputAPI::CUSTOM; + + if (fl == ~0u || lack_api) { + base[i - 1] = i - 1; + } else { + base[i - 1] = base[i]; + dist[i - 1] = fl; + if (i < nctxs && ctxnames[i] != NULL) { + dist[i - 1] += dist[i]; + } + } + } + + nfa_state_t *t = &nfa.states[nfa.size++]; + const size_t nrule = nfa.rules.size(); + t->fin(nrule); + Rule r(rule->info); + + std::vector &ctxvar = r.ctxvar; + std::vector &ctxfix = r.ctxfix; + Trail &trail = r.trail; + // base2var is filled in right-to-left, this is crucial + std::vector base2var(nctxs + 1, CtxFix::RIGHTMOST); + for (size_t i = nctxs; i > 0; --i) { + t = compile(rs[i], nfa, t); + const std::string *name = ctxnames[i - 1]; + if (base[i - 1] == i - 1) { + const size_t idx = nfa.contexts.size(); + base2var[i - 1] = idx; + nfa.contexts.push_back(CtxVar(name, nrule)); + if (name != NULL) { + ctxvar.push_back(idx); + } else { + trail.make_var(idx); + } + nfa_state_t *q = &nfa.states[nfa.size++]; + q->ctx(t, idx); + t = q; + } else { + if (name != NULL) { + CtxFix ctx(name, base2var[base[i - 1]], dist[i - 1]); + ctxfix.push_back(ctx); + } else { + trail.make_fix(dist[i - 1]); + } + } + } + t = compile(rs[0], nfa, t); + + bool null = nullable(rs[0]); + for (size_t i = 0; i < nctxs && null && ctxnames[i] != NULL; ++i) { + null = nullable(rs[i + 1]); + } + r.nullable = null; + + nfa.rules.push_back(r); + + return t; +} + +static nfa_state_t *compile_rules( + const std::vector &rules, + const RegExpRule* defrule, + nfa_t &nfa) +{ + nfa_state_t *s = NULL; + + if (!rules.empty()) { + s = compile_rule(rules[0], nfa); + for (size_t i = 1; i < rules.size(); ++i) { + nfa_state_t *q = &nfa.states[nfa.size++]; + q->alt(s, compile_rule(rules[i], nfa)); + s = q; + } + } + // default rule goes last + if (defrule) { + if (s) { + nfa_state_t *q = &nfa.states[nfa.size++]; + q->alt(s, compile_rule(defrule, nfa)); + s = q; + } else { + s = compile_rule(defrule, nfa); + } + } + + return s; +} + +nfa_t::nfa_t(Spec &spec) + : max_size(calc_size_all(spec.res, spec.def)) + , size(0) + , states(new nfa_state_t[max_size]) + , rules(*new std::vector) + , contexts(*new std::vector) + , root(compile_rules(spec.res, spec.def, *this)) +{} + + +nfa_t::~nfa_t() +{ + delete[] states; +} + } // namespace re2c diff --git a/re2c/src/ir/nfa/nfa.h b/re2c/src/ir/nfa/nfa.h index 8045609e..7dc35590 100644 --- a/re2c/src/ir/nfa/nfa.h +++ b/re2c/src/ir/nfa/nfa.h @@ -5,7 +5,7 @@ #include "src/util/c99_stdint.h" #include -#include "src/parse/rules.h" +#include "src/ir/rule.h" #include "src/parse/spec.h" #include "src/util/forbid_copy.h" @@ -44,7 +44,7 @@ struct nfa_state_t } ctx; struct { - RuleInfo *rule; + size_t rule; } fin; } value; bool mark; @@ -70,7 +70,7 @@ struct nfa_state_t value.ctx.info = i; mark = false; } - void fin(RuleInfo *r) + void fin(size_t r) { type = FIN; value.fin.rule = r; @@ -80,9 +80,10 @@ struct nfa_state_t struct nfa_t { - const uint32_t max_size; - uint32_t size; + const size_t max_size; + size_t size; nfa_state_t *states; + std::vector &rules; std::vector &contexts; nfa_state_t *root; diff --git a/re2c/src/ir/regexp/make_rule.cc b/re2c/src/ir/regexp/make_rule.cc deleted file mode 100644 index b4e6a5fc..00000000 --- a/re2c/src/ir/regexp/make_rule.cc +++ /dev/null @@ -1,217 +0,0 @@ -#include -#include - -#include "src/conf/opt.h" -#include "src/globals.h" -#include "src/ir/regexp/regexp.h" - -namespace re2c -{ - -static uint32_t fixlen(const RegExp *re); -static bool nullable(const RegExp *re); -static const RegExp *copy_rebase(const RegExp *re, size_t shift); - -CtxVar::CtxVar(const std::string *n, rule_rank_t rank) - : name(n) - , fullname() -{ - std::ostringstream s; - s << "yyctx" << rank; - if (name != NULL) { - s << *name; - } - fullname = s.str(); -} - -CtxFix::CtxFix(const std::string *n, size_t b, size_t d): - name(n), - base(b), - dist(d) -{} - -const size_t CtxFix::RIGHTMOST = std::numeric_limits::max(); - -const RegExp *make_rule( - std::vector &contexts, - const Loc &loc, - std::pair, std::vector > *ctxs, - rule_rank_t rank, - const Code *code, - const std::string *newcond) -{ - std::vector &rs = ctxs->first; - std::vector &ctxnames = ctxs->second; - const size_t nctxs = ctxnames.size(); - assert(rs.size() == nctxs + 1); - - std::vector dist(nctxs + 1, 0); - std::vector base(nctxs + 1, nctxs); - // right-fix all contexts - for (size_t i = nctxs; i > 0; --i) { - const size_t fl = fixlen(rs[i]); - - // generic API needs base to restore fixed-length trailing contexts - // and base is only guaranteed when non-trailing contexts are enabled - const bool lack_api = !opts->contexts // => every context is trailing - && opts->input_api.type() == InputAPI::CUSTOM; - - if (fl == ~0u || lack_api) { - base[i - 1] = i - 1; - } else { - base[i - 1] = base[i]; - dist[i - 1] = fl; - if (i < nctxs && ctxnames[i] != NULL) { - dist[i - 1] += dist[i]; - } - } - } - - Trail trail; - - std::vector base2var(nctxs + 1, CtxFix::RIGHTMOST); - std::vector ctxvar; - const RegExp *r = rs[0]; - for (size_t i = 0; i < nctxs; ++i) { - const RegExp *s = rs[i + 1]; - if (base[i] == i) { - const std::string *name = ctxnames[i]; - const size_t idx = contexts.size(); - base2var[i] = idx; - contexts.push_back(CtxVar(name, rank)); - if (name != NULL) { - ctxvar.push_back(idx); - } else { - trail.make_var(idx); - } - s = RegExp::ctx(s, idx); - } - r = RegExp::cat(r, s); - } - - std::vector ctxfix; - for (size_t i = 0; i < nctxs; ++i) { - if (base[i] != i) { - const std::string *name = ctxnames[i]; - if (name != NULL) { - CtxFix ctx(name, base2var[base[i]], dist[i]); - ctxfix.push_back(ctx); - } else { - trail.make_fix(dist[i]); - } - } - } - - bool null = nullable(rs[0]); - for (size_t i = 0; i < nctxs && null && ctxnames[i] != NULL; ++i) { - null = nullable(rs[i + 1]); - } - - RuleInfo *info = new RuleInfo(loc, rank, code, newcond, null, ctxvar, ctxfix, trail); - r = RegExp::rule(r, info); - - return r; -} - -const RegExp *make_rule_ctxfree( - const Loc &loc, - const RegExp *re, - rule_rank_t rank, - const Code *code, - const std::string *newcond) -{ - RuleInfo *info = new RuleInfo(loc, rank, code, newcond, nullable(re), - std::vector(), std::vector(), Trail()); - return RegExp::rule(re, info); -} - -// Used to duplicate <*> rules in conditions. -// Duplicates part of regexp containing contexts that must be fixed -// (the rest of regexp is shared: it's immutable anyway). -// Duplicates rule info (rule reachability and shadow set differ for -// different specs, rule rank must be updated). -const RegExp *make_rule_copy(const RegExp *re, rule_rank_t rank, size_t shift) -{ - return RegExp::rule( - copy_rebase(re->pld.rule.re, shift), - RuleInfo::copy_rebase(re->pld.rule.info, rank, shift)); -} - -const RegExp *copy_rebase(const RegExp *re, size_t shift) -{ - const RegExp *r = re; - switch (re->tag) { - case RegExp::CAT: - r = RegExp::cat( - copy_rebase(re->pld.cat.re1, shift), - copy_rebase(re->pld.cat.re2, shift)); - break; - case RegExp::CTX: - r = RegExp::ctx( - copy_rebase(re->pld.ctx.re, shift), - re->pld.ctx.info + shift); - break; - case RegExp::NIL: - case RegExp::SYM: - case RegExp::ALT: - case RegExp::ITER: - case RegExp::RULE: - break; - } - return r; -} - -uint32_t fixlen(const RegExp *re) -{ - switch (re->tag) { - case RegExp::NIL: - return 0; - case RegExp::SYM: - return 1; - case RegExp::ALT: { - const uint32_t l1 = fixlen(re->pld.alt.re1); - const uint32_t l2 = fixlen(re->pld.alt.re2); - return l1 == l2 ? l1 : ~0u; - } - case RegExp::CAT: { - const uint32_t l1 = fixlen(re->pld.cat.re1); - if (l1 == ~0u) { - return ~0u; - } - const uint32_t l2 = fixlen(re->pld.cat.re2); - if (l2 == ~0u) { - return ~0u; - } - return l1 + l2; - } - case RegExp::CTX: - return fixlen(re->pld.ctx.re); - case RegExp::ITER: - case RegExp::RULE: - return ~0u; - } -} - -bool nullable(const RegExp *re) -{ - switch (re->tag) { - case RegExp::NIL: - return true; - case RegExp::SYM: - return false; - case RegExp::ALT: - return nullable(re->pld.alt.re1) - || nullable(re->pld.alt.re2); - case RegExp::CAT: - return nullable(re->pld.cat.re1) - && nullable(re->pld.cat.re2); - case RegExp::ITER: - return true; - case RegExp::CTX: - case RegExp::RULE: - assert(false); - return false; - } -} - -} // namespace re2c diff --git a/re2c/src/ir/regexp/regexp.cc b/re2c/src/ir/regexp/regexp.cc index 1f92895a..1ebb1711 100644 --- a/re2c/src/ir/regexp/regexp.cc +++ b/re2c/src/ir/regexp/regexp.cc @@ -16,6 +16,7 @@ namespace re2c { free_list RegExp::flist; +free_list RegExpRule::flist; const RegExp *doAlt(const RegExp *re1, const RegExp *re2) { diff --git a/re2c/src/ir/regexp/regexp.h b/re2c/src/ir/regexp/regexp.h index f310d2b7..f88e329e 100644 --- a/re2c/src/ir/regexp/regexp.h +++ b/re2c/src/ir/regexp/regexp.h @@ -3,9 +3,10 @@ #include "src/util/c99_stdint.h" #include +#include #include -#include "src/parse/rules.h" +#include "src/ir/rule.h" #include "src/util/free_list.h" #include "src/util/range.h" @@ -25,9 +26,7 @@ struct RegExp SYM, ALT, CAT, - ITER, - CTX, - RULE + ITER }; union payload_t { @@ -49,16 +48,6 @@ struct RegExp { const RegExp *re; } iter; - struct - { - const RegExp *re; - size_t info; - } ctx; - struct - { - const RegExp *re; - RuleInfo *info; - } rule; }; static free_list flist; @@ -96,25 +85,8 @@ struct RegExp re->pld.iter.re = r; return re; } - static const RegExp *ctx(const RegExp *r, size_t i) - { - RegExp *re = new RegExp(CTX); - re->pld.ctx.re = r; - re->pld.ctx.info = i; - return re; - } - static const RegExp *rule(const RegExp *r, RuleInfo *i) - { - RegExp *re = new RegExp(RULE); - re->pld.rule.re = r; - re->pld.rule.info = i; - return re; - } inline ~RegExp() { - if (tag == RULE) { - delete pld.rule.info; - } flist.erase(this); } @@ -125,7 +97,34 @@ private: } }; -void split(const RegExp *re, std::set &cs); +struct RegExpRule +{ + static free_list flist; + + std::vector regexps; + std::vector ctxnames; + RuleInfo *info; + + RegExpRule(const RegExp* r) + : regexps(1, r) + , ctxnames() + , info(NULL) + { + flist.insert(this); + } + ~RegExpRule() + { + for (size_t i = 0; i < ctxnames.size(); ++i) { + delete ctxnames[i]; + } + delete info; + flist.erase(this); + } + + FORBID_COPY(RegExpRule); +}; + +void split(const std::vector &rs, std::set &cs); const RegExp *mkAlt(const RegExp *re1, const RegExp *re2); const RegExp *doAlt(const RegExp *re1, const RegExp *re2); const RegExp *doCat(const RegExp *re1, const RegExp *re2); diff --git a/re2c/src/ir/regexp/split_charset.cc b/re2c/src/ir/regexp/split_charset.cc index b43fd7d9..27619660 100644 --- a/re2c/src/ir/regexp/split_charset.cc +++ b/re2c/src/ir/regexp/split_charset.cc @@ -6,7 +6,7 @@ namespace re2c { -void split(const RegExp* re, std::set &cs) +static void split(const RegExp* re, std::set &cs) { switch (re->tag) { case RegExp::NIL: @@ -28,12 +28,16 @@ void split(const RegExp* re, std::set &cs) case RegExp::ITER: split(re->pld.iter.re, cs); break; - case RegExp::CTX: - split(re->pld.ctx.re, cs); - break; - case RegExp::RULE: - split(re->pld.rule.re, cs); - break; + } +} + +void split(const std::vector &rs, std::set &cs) +{ + for (size_t i = 0; i < rs.size(); ++i) { + const std::vector ®exps = rs[i]->regexps; + for (size_t j = 0; j < regexps.size(); ++j) { + split(regexps[j], cs); + } } } diff --git a/re2c/src/ir/rule.cc b/re2c/src/ir/rule.cc new file mode 100644 index 00000000..6b55421d --- /dev/null +++ b/re2c/src/ir/rule.cc @@ -0,0 +1,10 @@ +#include + +#include "src/ir/rule.h" + +namespace re2c +{ + +const size_t Rule::NONE = std::numeric_limits::max(); + +} // namespace re2c diff --git a/re2c/src/ir/rule.h b/re2c/src/ir/rule.h new file mode 100644 index 00000000..f2cb7907 --- /dev/null +++ b/re2c/src/ir/rule.h @@ -0,0 +1,81 @@ +#ifndef _RE2C_IR_RULE_ +#define _RE2C_IR_RULE_ + +#include +#include +#include + +#include "src/ir/ctx.h" +#include "src/parse/code.h" +#include "src/parse/loc.h" +#include "src/util/forbid_copy.h" + +namespace re2c +{ + +struct RuleInfo +{ + const Loc loc; + const Code *code; + const std::string newcond; + + RuleInfo(const Loc &l, const Code *c, + const std::string *cond) + : loc(l) + , code(c) + , newcond(cond ? *cond : "") + {} + + FORBID_COPY(RuleInfo); +}; + +struct Rule +{ + static const size_t NONE; + + const RuleInfo *info; + + std::vector ctxvar; + std::vector ctxfix; + Trail trail; + bool nullable; + + std::set shadow; + bool reachable; + + explicit Rule(const RuleInfo *i) + : info(i) + , ctxvar() + , ctxfix() + , trail() + , nullable(false) + , shadow() + , reachable(false) + {} + Rule (const Rule &rule) + : info(rule.info) + , ctxvar(rule.ctxvar) + , ctxfix(rule.ctxfix) + , trail(rule.trail) + , nullable(rule.nullable) + , shadow(rule.shadow) + , reachable(rule.reachable) + {} + Rule& operator=(const Rule &rule) + { + info = rule.info; + ctxvar = rule.ctxvar; + ctxfix = rule.ctxfix; + trail = rule.trail; + nullable = rule.nullable; + shadow = rule.shadow; + reachable = rule.reachable; + return *this; + } + +// FORBID_COPY(Rule); +}; + +} // namespace re2c + +#endif // _RE2C_IR_RULE_ diff --git a/re2c/src/ir/rule_rank.cc b/re2c/src/ir/rule_rank.cc deleted file mode 100644 index 12d2de88..00000000 --- a/re2c/src/ir/rule_rank.cc +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include - -#include "src/ir/rule_rank.h" - -namespace re2c -{ - -const uint32_t rule_rank_t::NONE = std::numeric_limits::max(); -const uint32_t rule_rank_t::DEF = rule_rank_t::NONE - 1; - -rule_rank_t::rule_rank_t () - : value (0) -{} - -void rule_rank_t::inc () -{ - assert (value < DEF - 1); - ++value; -} - -rule_rank_t rule_rank_t::none () -{ - rule_rank_t r; - r.value = NONE; - return r; -} - -rule_rank_t rule_rank_t::def () -{ - rule_rank_t r; - r.value = DEF; - return r; -} - -bool rule_rank_t::is_none () const -{ - return value == NONE; -} - -bool rule_rank_t::is_def () const -{ - return value == DEF; -} - -bool rule_rank_t::operator < (const rule_rank_t & r) const -{ - return value < r.value; -} - -bool rule_rank_t::operator == (const rule_rank_t & r) const -{ - return value == r.value; -} - -std::ostream & operator << (std::ostream & o, rule_rank_t r) -{ - o << r.value; - return o; -} - -uint32_t rule_rank_t::uint32 () const -{ - return value; -} - -} // namespace re2c diff --git a/re2c/src/ir/rule_rank.h b/re2c/src/ir/rule_rank.h deleted file mode 100644 index ca19cb94..00000000 --- a/re2c/src/ir/rule_rank.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _RE2C_IR_RULE_RANK_ -#define _RE2C_IR_RULE_RANK_ - -#include "src/util/c99_stdint.h" -#include - -namespace re2c -{ - -template class counter_t; - -// rule rank public API: -// - get rule rank corresponding to nonexistent/default rule -// - check if rank corresponds to nonexistent/default rule -// - compare ranks -// - output rank to std::ostream -// -// rule rank private API (for rule rank counter): -// - get first rank -// - get next rank -class rule_rank_t -{ - static const uint32_t NONE; - static const uint32_t DEF; - uint32_t value; - rule_rank_t (); - void inc (); - -public: - static rule_rank_t none (); - static rule_rank_t def (); - bool is_none () const; - bool is_def () const; - bool operator < (const rule_rank_t & r) const; - bool operator == (const rule_rank_t & r) const; - friend std::ostream & operator << (std::ostream & o, rule_rank_t r); - uint32_t uint32 () const; - - friend class counter_t; -}; - -} // namespace re2c - -#endif // _RE2C_IR_RULE_RANK_ diff --git a/re2c/src/ir/skeleton/control_flow.cc b/re2c/src/ir/skeleton/control_flow.cc index 20e41c9f..36a0956d 100644 --- a/re2c/src/ir/skeleton/control_flow.cc +++ b/re2c/src/ir/skeleton/control_flow.cc @@ -2,7 +2,6 @@ #include "src/conf/warn.h" #include "src/globals.h" -#include "src/ir/rule_rank.h" #include "src/ir/skeleton/path.h" #include "src/ir/skeleton/skeleton.h" #include "src/util/u32lim.h" @@ -41,7 +40,7 @@ static void naked_paths( path_t &prefix = ucf.prefix; ucf_size_t &size = ucf.size; - if (node.rule) { + if (node.rule != Rule::NONE) { return; } else if (node.end()) { ucf.paths.push_back(prefix); diff --git a/re2c/src/ir/skeleton/generate_code.cc b/re2c/src/ir/skeleton/generate_code.cc index 347f411e..04219a36 100644 --- a/re2c/src/ir/skeleton/generate_code.cc +++ b/re2c/src/ir/skeleton/generate_code.cc @@ -9,7 +9,6 @@ #include "src/conf/opt.h" #include "src/globals.h" #include "src/ir/regexp/encoding/enc.h" -#include "src/ir/rule_rank.h" #include "src/ir/skeleton/skeleton.h" namespace re2c @@ -100,7 +99,7 @@ void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill, const size_t sizeof_cunit = opts->encoding.szCodeUnit(), sizeof_key = skel.sizeof_key; - const uint32_t default_rule = skel.rule2key(rule_rank_t::none()); + const size_t norule = skel.rule2key(Rule::NONE); const std::string &name = skel.name; o.ws("\n#define YYCTYPE "); @@ -139,7 +138,7 @@ void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill, o.ws("\n").wind(1).ws("const long len_act = *cursor - token;"); o.ws("\n").wind(1).ws("const long len_exp = (long) keys [3 * i + 1];"); o.ws("\n").wind(1).ws("const YYKEYTYPE rule_exp = keys [3 * i + 2];"); - o.ws("\n").wind(1).ws("if (rule_exp == ").wu32(default_rule).ws(") {"); + o.ws("\n").wind(1).ws("if (rule_exp == ").wu64(norule).ws(") {"); o.ws("\n").wind(2).ws("fprintf"); o.ws("\n").wind(3).ws("( stderr"); o.ws("\n").wind(3).ws(", \"warning: lex_").wstring(name).ws(": control flow is undefined for input\""); @@ -301,9 +300,11 @@ void emit_epilog(OutputFile &o, const std::set &names) o.ws("\n"); } -void emit_action(const Skeleton &skel, OutputFile &o, uint32_t ind, rule_rank_t rank) +void emit_action(const Skeleton &skel, OutputFile &o, uint32_t ind, size_t rule) { - o.wind(ind).ws("status = action_").wstring(skel.name).ws("(i, keys, input, token, &cursor, ").wu32(skel.rule2key(rank)).ws(");\n"); + o.wind(ind).ws("status = action_").wstring(skel.name) + .ws("(i, keys, input, token, &cursor, ") + .wu64(skel.rule2key(rule)).ws(");\n"); o.wind(ind).ws("continue;\n"); } diff --git a/re2c/src/ir/skeleton/generate_data.cc b/re2c/src/ir/skeleton/generate_data.cc index 232a2c6f..84170476 100644 --- a/re2c/src/ir/skeleton/generate_data.cc +++ b/re2c/src/ir/skeleton/generate_data.cc @@ -12,7 +12,6 @@ #include "src/conf/opt.h" #include "src/globals.h" #include "src/ir/regexp/encoding/enc.h" -#include "src/ir/rule_rank.h" #include "src/ir/skeleton/path.h" #include "src/ir/skeleton/skeleton.h" #include "src/util/u32lim.h" @@ -76,16 +75,14 @@ template static uintn_t to_le(uintn_t n) } template static void keygen(FILE *f, size_t count, - size_t len, size_t len_match, rule_rank_t match) + size_t len, size_t len_match, key_t match) { - const key_t m = Skeleton::rule2key(match); - const size_t keys_size = 3 * count; key_t * keys = new key_t[keys_size]; for (uint32_t i = 0; i < keys_size;) { keys[i++] = to_le(static_cast(len)); keys[i++] = to_le(static_cast(len_match)); - keys[i++] = to_le(m); + keys[i++] = to_le(match); } fwrite(keys, sizeof(key_t), keys_size, f); delete[] keys; @@ -121,8 +118,9 @@ template static cover_size_t cover_one( delete[] buffer; // keys + const key_t match = skel.rule2key(path.match(skel)); keygen(cover.keys, count, len, - path.len_matching(skel), path.match(skel)); + path.len_matching(skel), match); } return size; @@ -214,6 +212,7 @@ template static void generate_paths_cunit(const Skeleton &skel, cover_t &cover) { switch (skel.sizeof_key) { + case 8: generate_paths_cunit_key(skel, cover); break; case 4: generate_paths_cunit_key(skel, cover); break; case 2: generate_paths_cunit_key(skel, cover); break; case 1: generate_paths_cunit_key(skel, cover); break; diff --git a/re2c/src/ir/skeleton/path.h b/re2c/src/ir/skeleton/path.h index 8268c9e6..4ff00ce6 100644 --- a/re2c/src/ir/skeleton/path.h +++ b/re2c/src/ir/skeleton/path.h @@ -45,19 +45,19 @@ public: tail = arcs.rbegin(), head = arcs.rend(); for (; tail != head; ++tail) { - RuleInfo *rule = skel.nodes[*tail].rule; - if (rule == NULL) { + const size_t rule_idx = skel.nodes[*tail].rule; + if (rule_idx == Rule::NONE) { continue; } size_t len = static_cast(head - tail) - 1; - - switch (rule->trail.type) { + const Trail &trail = skel.rules[rule_idx].trail; + switch (trail.type) { case Trail::NONE: return len; case Trail::FIX: - return len - rule->trail.pld.fix; + return len - trail.pld.fix; case Trail::VAR: { - const size_t ctx = rule->trail.pld.var; + const size_t ctx = trail.pld.var; for (; tail != head; ++tail) { std::set &ctxs = skel.nodes[*tail].ctxs; if (ctxs.find(ctx) != ctxs.end()) { @@ -71,18 +71,18 @@ public: } return 0; } - rule_rank_t match(const Skeleton &skel) const + size_t match(const Skeleton &skel) const { std::vector::const_reverse_iterator tail = arcs.rbegin(), head = arcs.rend(); for (; tail != head; ++tail) { - RuleInfo *rule = skel.nodes[*tail].rule; - if (rule != NULL) { - return rule->rank; + const size_t rule = skel.nodes[*tail].rule; + if (rule != Rule::NONE) { + return rule; } } - return rule_rank_t::none(); + return Rule::NONE; } const Node::arc_t& arc(const Skeleton &skel, size_t i) const { diff --git a/re2c/src/ir/skeleton/skeleton.cc b/re2c/src/ir/skeleton/skeleton.cc index 8fbd5963..7177c045 100644 --- a/re2c/src/ir/skeleton/skeleton.cc +++ b/re2c/src/ir/skeleton/skeleton.cc @@ -10,13 +10,13 @@ namespace re2c Node::Node() : arcs(), arcsets(), - rule(NULL), + rule(Rule::NONE), ctxs() {} void Node::init( const std::set &cs, - RuleInfo *r, + size_t r, const std::vector > &a) { rule = r; @@ -54,18 +54,19 @@ bool Node::end() const Skeleton::Skeleton( const dfa_t &dfa, const charset_t &cs, - const rules_t &rs, + size_t def, const std::string &dfa_name, const std::string &dfa_cond, - uint32_t dfa_line) : - name(dfa_name), - cond(dfa_cond), - line(dfa_line), - nodes_count(dfa.states.size() + 1), // +1 for default state - nodes(new Node[nodes_count]), - sizeof_key(4), - rules(rs), - contexts(dfa.contexts) + uint32_t dfa_line) + : name(dfa_name) + , cond(dfa_cond) + , line(dfa_line) + , nodes_count(dfa.states.size() + 1) // +1 for default state + , nodes(new Node[nodes_count]) + , sizeof_key(8) + , rules(dfa.rules) + , defrule(def) + , contexts(dfa.contexts) { const size_t nc = cs.size() - 1; @@ -88,25 +89,16 @@ Skeleton::Skeleton( nodes[i].init(s->ctxs, s->rule, arcs); } - const uint32_t maxlen = maxpath(*this); - - // calculate maximal rule rank (disregarding default and none rules) - uint32_t maxrule = 0; - for (uint32_t i = 0; i < nodes_count; ++i) { - const RuleInfo *r = nodes[i].rule; - if (r && !r->rank.is_def()) { - maxrule = std::max(maxrule, r->rank.uint32()); - } - } - // two upper values reserved for default and none rules) - maxrule += 2; - // initialize size of key - const uint32_t max = std::max(maxlen, maxrule); + const size_t maxlen = maxpath(*this); + const size_t maxrule = rules.size() + 1; // +1 for none-rule + const size_t max = std::max(maxlen, maxrule); if (max <= std::numeric_limits::max()) { sizeof_key = 1; } else if (max <= std::numeric_limits::max()) { sizeof_key = 2; + } else if (max <= std::numeric_limits::max()) { + sizeof_key = 4; } } @@ -115,10 +107,11 @@ Skeleton::~Skeleton() delete[] nodes; } -uint32_t Skeleton::rule2key(rule_rank_t r) const +size_t Skeleton::rule2key(size_t r) const { switch (sizeof_key) { default: // shouldn't happen + case 8: return rule2key(r); case 4: return rule2key(r); case 2: return rule2key(r); case 1: return rule2key(r); diff --git a/re2c/src/ir/skeleton/skeleton.h b/re2c/src/ir/skeleton/skeleton.h index 1e007244..4fc444f1 100644 --- a/re2c/src/ir/skeleton/skeleton.h +++ b/re2c/src/ir/skeleton/skeleton.h @@ -11,7 +11,7 @@ #include #include "src/ir/regexp/regexp.h" -#include "src/parse/rules.h" +#include "src/ir/rule.h" #include "src/util/local_increment.h" #include "src/util/forbid_copy.h" @@ -34,11 +34,11 @@ struct Node arcs_t arcs; arcsets_t arcsets; - RuleInfo *rule; + size_t rule; std::set ctxs; Node(); - void init(const std::set &cs, RuleInfo *r, + void init(const std::set &cs, size_t r, const std::vector > &arcs); bool end() const; @@ -55,28 +55,29 @@ struct Skeleton Node *nodes; size_t sizeof_key; - rules_t rules; + std::vector &rules; + const size_t defrule; std::vector &contexts; - Skeleton(const dfa_t &dfa, const charset_t &cs, const rules_t &rs, + Skeleton(const dfa_t &dfa, const charset_t &cs, size_t def, const std::string &dfa_name, const std::string &dfa_cond, uint32_t dfa_line); ~Skeleton (); - uint32_t rule2key(rule_rank_t r) const; - template static key_t rule2key(rule_rank_t r); + size_t rule2key(size_t r) const; + template key_t rule2key(size_t r) const; FORBID_COPY(Skeleton); }; -template key_t Skeleton::rule2key(rule_rank_t r) +template key_t Skeleton::rule2key(size_t r) const { - if (r.is_none()) { + if (r == Rule::NONE) { return std::numeric_limits::max(); - } else if (r.is_def()) { + } else if (r == defrule) { key_t k = std::numeric_limits::max(); return --k; } else { - return static_cast(r.uint32()); + return static_cast(r); } } @@ -92,7 +93,7 @@ void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill, void emit_end(const Skeleton &skel, OutputFile &o, bool backup, bool backupctx); void emit_epilog(OutputFile &o, const std::set &names); void emit_action(const Skeleton &skel, OutputFile &o, uint32_t ind, - rule_rank_t rank); + size_t rule); } // namespace re2c diff --git a/re2c/src/ir/skeleton/unreachable_nullable.cc b/re2c/src/ir/skeleton/unreachable_nullable.cc index 609d4382..6e7bfcec 100644 --- a/re2c/src/ir/skeleton/unreachable_nullable.cc +++ b/re2c/src/ir/skeleton/unreachable_nullable.cc @@ -3,10 +3,8 @@ #include "src/conf/warn.h" #include "src/globals.h" -#include "src/ir/rule_rank.h" #include "src/ir/skeleton/path.h" #include "src/ir/skeleton/skeleton.h" -#include "src/parse/rules.h" namespace re2c { @@ -14,12 +12,12 @@ namespace re2c static void calc_reachable( const Skeleton &skel, std::vector &loops, - std::vector > &reachs, + std::vector > &reachs, size_t i) { const Node &node = skel.nodes[i]; uint8_t &loop = loops[i]; - std::set &reach = reachs[i]; + std::set &reach = reachs[i]; if (!reach.empty()) { return; @@ -41,24 +39,28 @@ static void calc_reachable( void warn_unreachable_nullable_rules(const Skeleton &skel) { // calculate reachable rules - std::vector loops(skel.nodes_count); - std::vector > reachs(skel.nodes_count); + const size_t nnodes = skel.nodes_count; + std::vector loops(nnodes); + std::vector > reachs(nnodes); calc_reachable(skel, loops, reachs, 0); - for (uint32_t i = 0; i < skel.nodes_count; ++i) { - RuleInfo *r1 = skel.nodes[i].rule; - if (!r1) { + std::vector &rules = skel.rules; + const size_t nrules = rules.size(); + + for (size_t i = 0; i < nnodes; ++i) { + const size_t r1 = skel.nodes[i].rule; + if (r1 == Rule::NONE) { continue; } - std::set::const_iterator + std::set::const_iterator rule = reachs[i].begin(), end = reachs[i].end(); for (; rule != end; ++rule) { - RuleInfo* r2 = *rule; - if (!r2 || r1->rank == r2->rank) { - r1->reachable = true; + const size_t r2 = *rule; + if (r2 == Rule::NONE || r1 == r2) { + rules[r1].reachable = true; } else { - r1->shadow.insert(r2->loc.line); + rules[r1].shadow.insert(rules[r2].info->loc.line); } } } @@ -68,10 +70,10 @@ void warn_unreachable_nullable_rules(const Skeleton &skel) // - infinite rules that consume infinitely many characters and fail on YYFILL, e.g. '[^]*' // - rules that contain never-matching link, e.g. '[]' with option '--empty-class match-none' // default rule '*' should not be reported - for (rules_t::const_iterator i = skel.rules.begin(); i != skel.rules.end(); ++i) { - const RuleInfo *r = *i; - if (!r->rank.is_def() && !r->reachable) { - warn.unreachable_rule(skel.cond, r); + for (size_t i = 0; i < nrules; ++i) { + const Rule &rule = rules[i]; + if (i != skel.defrule && !rule.reachable) { + warn.unreachable_rule(skel.cond, rule); } } @@ -80,10 +82,10 @@ void warn_unreachable_nullable_rules(const Skeleton &skel) // - rules that match empty strins with nonempty trailing context // false positives on partially shadowed (yet reachable) rules, e.g.: // [^]? - for (rules_t::const_iterator i = skel.rules.begin(); i != skel.rules.end(); ++i) { - const RuleInfo *r = *i; - if (r->nullable && r->reachable) { - warn.match_empty_string(r->loc.line); + for (size_t i = 0; i < nrules; ++i) { + const Rule &rule = rules[i]; + if (rule.nullable && rule.reachable) { + warn.match_empty_string(rule.info->loc.line); } } } diff --git a/re2c/src/parse/parser.h b/re2c/src/parse/parser.h index dcca1005..77e5cb75 100644 --- a/re2c/src/parse/parser.h +++ b/re2c/src/parse/parser.h @@ -14,19 +14,12 @@ namespace re2c extern void parse(Scanner &, Output &); extern void parse_cleanup(); -const RegExp *make_rule(std::vector &contexts, const Loc &loc, - std::pair, std::vector > *ctxs, - rule_rank_t rank, const Code *code, const std::string *newcond); -const RegExp *make_rule_ctxfree(const Loc &loc, const RegExp *re, - rule_rank_t rank, const Code *code, const std::string *newcond); -const RegExp *make_rule_copy(const RegExp *re, rule_rank_t rank, size_t shift); typedef std::set CondList; typedef std::map SpecMap; typedef std::map > SetupMap; typedef std::map DefaultMap; typedef std::map symbol_table_t; -typedef std::pair, std::vector > zzz_t; } // namespace re2c diff --git a/re2c/src/parse/parser.ypp b/re2c/src/parse/parser.ypp index 6eac3953..cdf3b283 100644 --- a/re2c/src/parse/parser.ypp +++ b/re2c/src/parse/parser.ypp @@ -20,7 +20,6 @@ #include "src/ir/regexp/encoding/enc.h" #include "src/ir/regexp/encoding/range_suffix.h" #include "src/ir/regexp/regexp.h" -#include "src/ir/rule_rank.h" #include "src/ir/skeleton/skeleton.h" #include "src/parse/code.h" #include "src/parse/extop.h" @@ -28,7 +27,6 @@ #include "src/parse/parser.h" #include "src/parse/scanner.h" #include "src/parse/spec.h" -#include "src/util/counter.h" #include "src/util/free_list.h" #include "src/util/range.h" #include "src/util/smart_ptr.h" @@ -44,19 +42,16 @@ int yylex(); void yyerror(const char*); } -static counter_t rank_counter; static std::vector condnames; static re2c::SpecMap specMap; static Spec spec; -static const RegExp *specNone = NULL; -static SpecStar specStar; -static const RegExp *star_default = NULL; +static RegExpRule *specNone = NULL; +static Spec specStar; static Scanner *in = NULL; static Scanner::ParseMode parseMode; static SetupMap ruleSetupMap; static bool foundRules; static symbol_table_t symbol_table; -static zzz_t ctxs; /* Bison version 1.875 emits a definition that is not working * with several g++ version. Hence we disable it here. @@ -81,31 +76,21 @@ void context_none(CondList *clist) in->fatal("no expression specified"); } -void context_rule - ( CondList * clist - , const Loc & loc - , std::pair, std::vector > * expr - , const Code * code - , const std::string * newcond - ) +void context_rule( + CondList *clist, + const Loc &loc, + RegExpRule *rule, + const Code *code, + const std::string *newcond) { context_check(clist); - for(CondList::const_iterator it = clist->begin(); it != clist->end(); ++it) - { - if (specMap.find(*it) == specMap.end()) - { - condnames.push_back (*it); + rule->info = new RuleInfo(loc, code, newcond); + for(CondList::const_iterator i = clist->begin(); i != clist->end(); ++i) { + const std::string &cond = *i; + if (specMap.find(cond) == specMap.end()) { + condnames.push_back(cond); } - - const RegExp *rule = make_rule - ( specMap[*it].contexts - , loc - , expr - , rank_counter.next () - , code - , newcond - ); - specMap[*it].add (rule); + specMap[cond].add(rule); } delete clist; delete newcond; @@ -127,23 +112,14 @@ void setup_rule(CondList *clist, const Code * code) delete clist; } -void default_rule(CondList *clist, const Code * code) +void default_rule(CondList *clist, RegExpRule *rule) { - assert(clist); - assert(code); context_check(clist); - for(CondList::const_iterator it = clist->begin(); it != clist->end(); ++it) - { - const RegExp * def = make_rule_ctxfree - ( code->loc - , in->mkDefault () - , rule_rank_t::def () - , code - , NULL - ); - if (!specMap[*it].add_def (def)) - { - in->fatalf_at(code->loc.line, "code to default rule '%s' is already defined", it->c_str()); + for (CondList::const_iterator i = clist->begin(); i != clist->end(); ++i) { + if (!specMap[*i].add_def(rule)) { + in->fatalf_at(rule->info->loc.line, + "code to default rule '%s' is already defined", + i->c_str()); } } delete clist; @@ -160,7 +136,7 @@ void default_rule(CondList *clist, const Code * code) re2c::ExtOp extop; std::string * str; re2c::CondList * clist; - re2c::zzz_t *ctxs; + re2c::RegExpRule *rule; }; %token TOKEN_CLOSE @@ -182,7 +158,7 @@ void default_rule(CondList *clist, const Code * code) %type TOKEN_REGEXP rule look expr diff term factor primary %type TOKEN_ID TOKEN_FID TOKEN_CTX newcond %type cond clist -%type ctxexpr trailexpr +%type ctxexpr trailexpr %% @@ -225,164 +201,118 @@ decl: | TOKEN_CONF {} ; -rule: - trailexpr TOKEN_CODE - { - if (opts->cFlag) - { - in->fatal("condition or '<*>' required when using -c switch"); - } - const RegExp * rule = make_rule - ( spec.contexts - , $2->loc - , $1 - , rank_counter.next () - , $2 - , NULL - ); - spec.add (rule); - } - | TOKEN_STAR TOKEN_CODE /* default rule */ - { - if (opts->cFlag) - in->fatal("condition or '<*>' required when using -c switch"); - const RegExp * def = make_rule_ctxfree - ( $2->loc - , in->mkDefault () - , rule_rank_t::def () - , $2 - , NULL - ); - if (!spec.add_def (def)) - { - in->fatal("code to default rule is already defined"); - } - } - | '<' cond '>' trailexpr newcond TOKEN_CODE - { - context_rule ($2, $6->loc, $4, $6, $5); - } - | '<' cond '>' trailexpr ':' newcond - { - assert($6); - Loc loc (in->get_fname (), in->get_cline ()); - context_rule ($2, loc, $4, NULL, $6); - } - | '<' cond '>' look newcond TOKEN_CODE - { - context_none($2); - delete $5; +rule + : trailexpr TOKEN_CODE { + if (opts->cFlag) { + in->fatal("condition or '<*>' required when using -c switch"); } - | '<' cond '>' look ':' newcond - { - assert($6); - context_none($2); - delete $6; - } - | '<' cond '>' TOKEN_STAR TOKEN_CODE /* default rule for conditions */ - { - default_rule($2, $5); - } - | '<' TOKEN_STAR '>' trailexpr newcond TOKEN_CODE - { - context_check(NULL); - const RegExp * rule = make_rule - ( specStar.contexts - , $6->loc - , $4 - , rank_counter.next () - , $6 - , $5 - ); - specStar.rules.push_back (rule); - delete $5; - } - | '<' TOKEN_STAR '>' trailexpr ':' newcond - { - assert($6); - context_check(NULL); - Loc loc (in->get_fname (), in->get_cline ()); - const RegExp * rule = make_rule - ( specStar.contexts - , loc - , $4 - , rank_counter.next () - , NULL - , $6 - ); - specStar.rules.push_back (rule); - delete $6; - } - | '<' TOKEN_STAR '>' look newcond TOKEN_CODE - { - context_none(NULL); - delete $5; - } - | '<' TOKEN_STAR '>' look ':' newcond - { - assert($6); - context_none(NULL); - delete $6; + $1->info = new RuleInfo($2->loc, $2, NULL); + spec.add($1); + } + + /* default rule */ + | TOKEN_STAR TOKEN_CODE { + if (opts->cFlag) { + in->fatal("condition or '<*>' required when using -c switch"); } - | '<' TOKEN_STAR '>' TOKEN_STAR TOKEN_CODE /* default rule for all conditions */ - { - if (star_default) - { - in->fatal ("code to default rule '*' is already defined"); - } - star_default = make_rule_ctxfree - ( $5->loc - , in->mkDefault () - , rule_rank_t::def () - , $5 - , NULL - ); - } - | TOKEN_NOCOND newcond TOKEN_CODE - { - context_check(NULL); - if (specNone) - { - in->fatal("code to handle illegal condition already defined"); - } - $$ = specNone = make_rule_ctxfree - ( $3->loc - , RegExp::nil() - , rank_counter.next () - , $3 - , $2 - ); - delete $2; + RegExpRule *def = new RegExpRule(in->mkDefault()); + def->info = new RuleInfo($2->loc, $2, NULL); + if (!spec.add_def(def)) { + in->fatal("code to default rule is already defined"); } - | TOKEN_NOCOND ':' newcond - { - assert($3); - context_check(NULL); - if (specNone) - { - in->fatal("code to handle illegal condition already defined"); - } - Loc loc (in->get_fname (), in->get_cline ()); - $$ = specNone = make_rule_ctxfree - ( loc - , RegExp::nil() - , rank_counter.next () - , NULL - , $3 - ); - delete $3; + } + + | '<' cond '>' trailexpr newcond TOKEN_CODE { + context_rule($2, $6->loc, $4, $6, $5); + } + + | '<' cond '>' trailexpr ':' newcond { + Loc loc(in->get_fname(), in->get_cline()); + context_rule($2, loc, $4, NULL, $6); + } + + | '<' cond '>' look newcond TOKEN_CODE { + context_none($2); + delete $5; + } + + | '<' cond '>' look ':' newcond { + context_none($2); + delete $6; + } + + /* default rule for conditions */ + | '<' cond '>' TOKEN_STAR TOKEN_CODE { + RegExpRule *def = new RegExpRule(in->mkDefault()); + def->info = new RuleInfo($5->loc, $5, NULL); + default_rule($2, def); + } + + | '<' TOKEN_STAR '>' trailexpr newcond TOKEN_CODE { + context_check(NULL); + $4->info = new RuleInfo($6->loc, $6, $5); + specStar.add($4); + delete $5; + } + + | '<' TOKEN_STAR '>' trailexpr ':' newcond { + context_check(NULL); + Loc loc(in->get_fname(), in->get_cline()); + $4->info = new RuleInfo(loc, NULL, $6); + specStar.add($4); + delete $6; + } + + | '<' TOKEN_STAR '>' look newcond TOKEN_CODE { + context_none(NULL); + delete $5; + } + + | '<' TOKEN_STAR '>' look ':' newcond { + assert($6); + context_none(NULL); + delete $6; + } + + /* default rule for all conditions */ + | '<' TOKEN_STAR '>' TOKEN_STAR TOKEN_CODE { + RegExpRule *def = new RegExpRule(in->mkDefault()); + def->info = new RuleInfo($5->loc, $5, NULL); + if (!specStar.add_def(def)) { + in->fatal("code to default rule '*' is already defined"); } - | TOKEN_SETUP TOKEN_STAR '>' TOKEN_CODE - { - CondList *clist = new CondList(); - clist->insert("*"); - setup_rule(clist, $4); + } + + | TOKEN_NOCOND newcond TOKEN_CODE { + context_check(NULL); + if (specNone) { + in->fatal("code to handle illegal condition already defined"); } - | TOKEN_SETUP cond '>' TOKEN_CODE - { - setup_rule($2, $4); + specNone = new RegExpRule(RegExp::nil()); + specNone->info = new RuleInfo($3->loc, $3, $2); + delete $2; + } + + | TOKEN_NOCOND ':' newcond { + context_check(NULL); + if (specNone) { + in->fatal("code to handle illegal condition already defined"); } -; + Loc loc(in->get_fname(), in->get_cline()); + specNone = new RegExpRule(RegExp::nil()); + specNone->info = new RuleInfo(loc, NULL, $3); + delete $3; + } + + | TOKEN_SETUP TOKEN_STAR '>' TOKEN_CODE { + CondList *clist = new CondList; + clist->insert("*"); + setup_rule(clist, $4); + } + + | TOKEN_SETUP cond '>' TOKEN_CODE { + setup_rule($2, $4); + }; cond: /* empty */ @@ -421,31 +351,32 @@ newcond: } ; -trailexpr: - ctxexpr { +trailexpr + : ctxexpr { $$ = $1; - } | ctxexpr '/' expr { + } + + | ctxexpr '/' expr { // multiple trailing contexts on the same rule are not allowed $$ = $1; - $$->first.push_back($3); - $$->second.push_back(NULL); + $$->regexps.push_back($3); + $$->ctxnames.push_back(NULL); }; -ctxexpr: - expr { - ctxs.first.clear(); - ctxs.second.clear(); - $$ = &ctxs; - $$->first.push_back($1); - } | ctxexpr TOKEN_CTX expr { +ctxexpr + : expr { + $$ = new RegExpRule($1); + } + + | ctxexpr TOKEN_CTX expr { if (!opts->contexts) { delete $2; in->fatal("non-trailing contexts are only allowed" " with '-C, --contexts' option"); } $$ = $1; - $$->first.push_back($3); - $$->second.push_back($2); + $$->regexps.push_back($3); + $$->ctxnames.push_back($2); }; look: @@ -630,7 +561,6 @@ void parse(Scanner& i, Output & o) { dfa_map.clear(); } - rank_counter.reset (); spec.clear (); in->set_in_parse(true); yyparse(); @@ -646,7 +576,6 @@ void parse(Scanner& i, Output & o) dfa_map.clear(); parse_cleanup(); spec.clear (); - rank_counter.reset (); in->set_in_parse(true); yyparse(); in->set_in_parse(false); @@ -672,17 +601,12 @@ void parse(Scanner& i, Output & o) // merge <*> rules to all conditions with lowest priority for (it = specMap.begin(); it != specMap.end(); ++it) { - const size_t shift = it->second.contexts.size(); - it->second.contexts.insert(it->second.contexts.end(), specStar.contexts.begin(), specStar.contexts.end()); - std::vector::const_iterator - star = specStar.rules.begin(), - star_end = specStar.rules.end(); - for (; star != star_end; ++star) { - it->second.add(make_rule_copy(*star, rank_counter.next(), shift)); + for (size_t j = 0; j < specStar.res.size(); ++j) { + it->second.add(specStar.res[j]); } - if (star_default) - { - it->second.add_def (star_default); + if (specStar.def) { + // ignore possible failure + it->second.add_def(specStar.def); } } @@ -729,7 +653,7 @@ void parse(Scanner& i, Output & o) } else { - if (spec.re || !dfa_map.empty()) + if (!spec.res.empty() || spec.def || !dfa_map.empty()) { if (parseMode != Scanner::Reuse) { @@ -787,7 +711,6 @@ void parse_cleanup() condnames.clear (); specMap.clear(); specStar.clear(); - star_default = NULL; specNone = NULL; } diff --git a/re2c/src/parse/rules.h b/re2c/src/parse/rules.h deleted file mode 100644 index 414bf8d1..00000000 --- a/re2c/src/parse/rules.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef _RE2C_PARSE_RULES_ -#define _RE2C_PARSE_RULES_ - -#include "src/util/c99_stdint.h" -#include -#include -#include - -#include "src/ir/rule_rank.h" -#include "src/parse/code.h" -#include "src/parse/loc.h" -#include "src/util/forbid_copy.h" - -namespace re2c -{ - -struct CtxVar -{ - const std::string *name; - std::string fullname; - - CtxVar(const std::string *n, rule_rank_t rank); - CtxVar(const CtxVar &ctx): - name(ctx.name), - fullname(ctx.fullname) - {} - CtxVar& operator=(const CtxVar &ctx) - { - name = ctx.name; - fullname = ctx.fullname; - return *this; - } -}; - -struct CtxFix -{ - static const size_t RIGHTMOST; - - const std::string *name; - size_t base; - size_t dist; - - CtxFix(const std::string *n, size_t b, size_t d); -}; - -struct Trail -{ - enum {NONE, VAR, FIX} type; - union - { - size_t var; - size_t fix; // trailing context must be the rightmost; no need for base - } pld; - - Trail(): type(NONE), pld() {} - void make_var(size_t v) - { - type = VAR; - pld.var = v; - } - void make_fix(size_t f) - { - type = FIX; - pld.fix = f; - } -}; - -struct RuleInfo -{ - const Loc loc; - - std::vector ctxvar; - std::vector ctxfix; - Trail trail; - - rule_rank_t rank; - const Code *code; - const std::string newcond; - - std::set shadow; - bool reachable; - bool nullable; - - RuleInfo - ( const Loc & l - , rule_rank_t r - , const Code * c - , const std::string * cond - , bool nl - , const std::vector &ctxv - , const std::vector &ctxf - , const Trail &tr - ) - : loc (l) - , ctxvar (ctxv) - , ctxfix (ctxf) - , trail (tr) - , rank (r) - , code (c) - , newcond (cond ? *cond : "") - , shadow () - , reachable (false) - , nullable (nl) - {} - - static RuleInfo *copy_rebase(const RuleInfo *rule, rule_rank_t rank, size_t shift) - { - RuleInfo *r = new RuleInfo(rule->loc, rank, - rule->code, &rule->newcond, rule->nullable, - rule->ctxvar, rule->ctxfix, rule->trail); - for (size_t i = 0; i < r->ctxvar.size(); ++i) { - r->ctxvar[i] += shift; - } - if (r->trail.type == Trail::VAR) { - r->trail.pld.var += shift; - } - return r; - } - - FORBID_COPY(RuleInfo); -}; - -typedef std::vector rules_t; - -} // namespace re2c - -#endif // _RE2C_PARSE_RULES_ diff --git a/re2c/src/parse/spec.h b/re2c/src/parse/spec.h index 6bdd0fcc..1f2bc6c3 100644 --- a/re2c/src/parse/spec.h +++ b/re2c/src/parse/spec.h @@ -1,77 +1,41 @@ #ifndef _RE2C_PARSE_SPEC_ #define _RE2C_PARSE_SPEC_ -#include - #include "src/ir/regexp/regexp.h" -#include "src/parse/rules.h" namespace re2c { -// for std::find_if -static bool is_def(const RuleInfo *r) -{ - return r->rank.is_def(); -} - struct Spec { - const RegExp * re; - rules_t rules; - std::vector contexts; + const RegExpRule *def; + std::vector res; - Spec () - : re (NULL) - , rules () - , contexts () - {} - Spec (const Spec & spec) - : re (spec.re) - , rules (spec.rules) - , contexts (spec.contexts) - {} - bool add_def (const RegExp * r) + Spec(): def(NULL), res() {} + Spec(const Spec &spec): def(spec.def), res(spec.res) {} + bool add_def(const RegExpRule *r) { - if (std::find_if(rules.begin(), rules.end(), is_def) != rules.end()) - { + if (def) { return false; - } - else - { - add (r); + } else { + def = r; return true; } } - void add (const RegExp * r) + void add(const RegExpRule *r) { - rules.push_back(r->pld.rule.info); - re = mkAlt (re, r); + res.push_back(r); } - void clear () + void clear() { - re = NULL; - rules.clear (); - contexts.clear(); + def = NULL; + res.clear(); } private: Spec& operator=(const Spec&); }; -struct SpecStar -{ - std::vector rules; - std::vector contexts; - - SpecStar(): rules(), contexts() {} - void clear() - { - rules.clear(); - contexts.clear(); - } -}; - } // namespace re2c #endif // _RE2C_PARSE_SPEC_ diff --git a/re2c/test/condition_10.cgif--skeleton.c b/re2c/test/condition_10.cgif--skeleton.c index 408b20ce..529c9be9 100644 --- a/re2c/test/condition_10.cgif--skeleton.c +++ b/re2c/test/condition_10.cgif--skeleton.c @@ -154,14 +154,14 @@ int lex_line126_Comment() if (yych == '*') goto yy5; YYSKIP (); yy4: - status = action_line126_Comment(i, keys, input, token, &cursor, 15); + status = action_line126_Comment(i, keys, input, token, &cursor, 1); continue; yy5: YYSKIP (); yych = YYPEEK (); if (yych != '/') goto yy4; YYSKIP (); - status = action_line126_Comment(i, keys, input, token, &cursor, 14); + status = action_line126_Comment(i, keys, input, token, &cursor, 0); continue; } @@ -622,11 +622,11 @@ int lex_line126_Skiptoeol() yy49: YYSKIP (); yy50: - status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 20); + status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 4); continue; yy51: YYSKIP (); - status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 19); + status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 3); continue; yy53: YYSKIP (); @@ -648,7 +648,7 @@ yy55: goto yy50; yy56: YYSKIP (); - status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 18); + status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 2); continue; yy58: YYSKIP (); @@ -659,7 +659,7 @@ yy59: goto yy50; yy60: YYSKIP (); - status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 17); + status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 1); continue; yy62: YYSKIP (); @@ -674,7 +674,7 @@ yy63: goto yy59; yy64: YYSKIP (); - status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 16); + status = action_line126_Skiptoeol(i, keys, input, token, &cursor, 0); continue; yy66: YYSKIP (); @@ -809,18 +809,18 @@ int lex_line126_String() if (yych == '\\') goto yy74; YYSKIP (); yy71: - status = action_line126_String(i, keys, input, token, &cursor, 23); + status = action_line126_String(i, keys, input, token, &cursor, 2); continue; yy72: YYSKIP (); - status = action_line126_String(i, keys, input, token, &cursor, 22); + status = action_line126_String(i, keys, input, token, &cursor, 1); continue; yy74: YYSKIP (); yych = YYPEEK (); if (yych == '\n') goto yy71; YYSKIP (); - status = action_line126_String(i, keys, input, token, &cursor, 21); + status = action_line126_String(i, keys, input, token, &cursor, 0); continue; } @@ -868,7 +868,7 @@ int main() }   !"#$%&'()+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ*/********** * -* * * ******************* *!*"*#*$*%*&*'*(*)***+*,*-*.*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*{*|*}*~**€**‚*ƒ*„*…*†*‡*ˆ*‰*Š*‹*Œ**Ž***‘*’*“*”*•*–*—*˜*™*š*›*œ**ž*Ÿ* *¡*¢*£*¤*¥*¦*§*¨*©*ª*«*¬*­*®*¯*°*±*²*³*´*µ*¶*·*¸*¹*º*»*¼*½*¾*¿*À*Á*Â*Ã*Ä*Å*Æ*Ç*È*É*Ê*Ë*Ì*Í*Î*Ï*Ð*Ñ*Ò*Ó*Ô*Õ*Ö*×*Ø*Ù*Ú*Û*Ü*Ý*Þ*ß*à*á*â*ã*ä*å*æ*ç*è*é*ê*ë*ì*í*î*ï*ð*ñ*ò*ó*ô*õ*ö*÷*ø*ù*ú*û*ü*ý*þ*ÿ +* * * ******************* *!*"*#*$*%*&*'*(*)***+*,*-*.*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*{*|*}*~**€**‚*ƒ*„*…*†*‡*ˆ*‰*Š*‹*Œ**Ž***‘*’*“*”*•*–*—*˜*™*š*›*œ**ž*Ÿ* *¡*¢*£*¤*¥*¦*§*¨*©*ª*«*¬*­*®*¯*°*±*²*³*´*µ*¶*·*¸*¹*º*»*¼*½*¾*¿*À*Á*Â*Ã*Ä*Å*Æ*Ç*È*É*Ê*Ë*Ì*Í*Î*Ï*Ð*Ñ*Ò*Ó*Ô*Õ*Ö*×*Ø*Ù*Ú*Û*Ü*Ý*Þ*ß*à*á*â*ã*ä*å*æ*ç*è*é*ê*ë*ì*í*î*ï*ð*ñ*ò*ó*ô*õ*ö*÷*ø*ù*ú*û*ü*ý*þ*ÿ  !#$%&()*+,-.0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"'"''"'"'"'"'"'"'"'"'"'" '" '" '" '" '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'" '"!'""'"#'"$'"%'"&'"('")'"*'"+'",'"-'".'"/'"0'"1'"2'"3'"4'"5'"6'"7'"8'"9'":'";'"<'"='">'"?'"@'"A'"B'"C'"D'"E'"F'"G'"H'"I'"J'"K'"L'"M'"N'"O'"P'"Q'"R'"S'"T'"U'"V'"W'"X'"Y'"Z'"['"\'"]'"^'"_'"`'"a'"b'"c'"d'"e'"f'"g'"h'"i'"j'"k'"l'"m'"n'"o'"p'"q'"r'"s'"t'"u'"v'"w'"x'"y'"z'"{'"|'"}'"~'"'"€'"'"‚'"ƒ'"„'"…'"†'"‡'"ˆ'"‰'"Š'"‹'"Œ'"'"Ž'"'"'"‘'"’'"“'"”'"•'"–'"—'"˜'"™'"š'"›'"œ'"'"ž'"Ÿ'" '"¡'"¢'"£'"¤'"¥'"¦'"§'"¨'"©'"ª'"«'"¬'"­'"®'"¯'"°'"±'"²'"³'"´'"µ'"¶'"·'"¸'"¹'"º'"»'"¼'"½'"¾'"¿'"À'"Á'"Â'"Ã'"Ä'"Å'"Æ'"Ç'"È'"É'"Ê'"Ë'"Ì'"Í'"Î'"Ï'"Ð'"Ñ'"Ò'"Ó'"Ô'"Õ'"Ö'"×'"Ø'"Ù'"Ú'"Û'"Ü'"Ý'"Þ'"ß'"à'"á'"â'"ã'"ä'"å'"æ'"ç'"è'"é'"ê'"ë'"ì'"í'"î'"ï'"ð'"ñ'"ò'"ó'"ô'"õ'"ö'"÷'"ø'"ù'"ú'"û'"ü'"ý'"þ'"ÿ'\"''\"'\"'\"'\"'\"'\"'\"'\"'\"'\" '\" '\" '\" '\" '\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\"'\" '\"!'\""'\"#'\"$'\"%'\"&'\"('\")'\"*'\"+'\",'\"-'\".'\"/'\"0'\"1'\"2'\"3'\"4'\"5'\"6'\"7'\"8'\"9'\":'\";'\"<'\"='\">'\"?'\"@'\"A'\"B'\"C'\"D'\"E'\"F'\"G'\"H'\"I'\"J'\"K'\"L'\"M'\"N'\"O'\"P'\"Q'\"R'\"S'\"T'\"U'\"V'\"W'\"X'\"Y'\"Z'\"['\"\'\"]'\"^'\"_'\"`'\"a'\"b'\"c'\"d'\"e'\"f'\"g'\"h'\"i'\"j'\"k'\"l'\"m'\"n'\"o'\"p'\"q'\"r'\"s'\"t'\"u'\"v'\"w'\"x'\"y'\"z'\"{'\"|'\"}'\"~'\"'\"€'\"'\"‚'\"ƒ'\"„'\"…'\"†'\"‡'\"ˆ'\"‰'\"Š'\"‹'\"Œ'\"'\"Ž'\"'\"'\"‘'\"’'\"“'\"”'\"•'\"–'\"—'\"˜'\"™'\"š'\"›'\"œ'\"'\"ž'\"Ÿ'\" '\"¡'\"¢'\"£'\"¤'\"¥'\"¦'\"§'\"¨'\"©'\"ª'\"«'\"¬'\"­'\"®'\"¯'\"°'\"±'\"²'\"³'\"´'\"µ'\"¶'\"·'\"¸'\"¹'\"º'\"»'\"¼'\"½'\"¾'\"¿'\"À'\"Á'\"Â'\"Ã'\"Ä'\"Å'\"Æ'\"Ç'\"È'\"É'\"Ê'\"Ë'\"Ì'\"Í'\"Î'\"Ï'\"Ð'\"Ñ'\"Ò'\"Ó'\"Ô'\"Õ'\"Ö'\"×'\"Ø'\"Ù'\"Ú'\"Û'\"Ü'\"Ý'\"Þ'\"ß'\"à'\"á'\"â'\"ã'\"ä'\"å'\"æ'\"ç'\"è'\"é'\"ê'\"ë'\"ì'\"í'\"î'\"ï'\"ð'\"ñ'\"ò'\"ó'\"ô'\"õ'\"ö'\"÷'\"ø'\"ù'\"ú'\"û'\"ü'\"ý'\"þ'\"ÿ'\'\'\'\'\'\'\'\'\'\ '\ @@ -885,6 +885,6 @@ int main() ?? ?? ?? ?????????????????????????????????????? ??!??"??#??$??%??&??'??(??)??*??+??,??-??.??0??1??2??3??4??5??6??7??8??9??:??;???????@??A??B??C??D??E??F??G??H??I??J??K??L??M??N??O??P??Q??R??S??T??U??V??W??X??Y??Z??[??\??]??^??_??`??a??b??c??d??e??f??g??h??i??j??k??l??m??n??o??p??q??r??s??t??u??v??w??x??y??z??{??|??}??~????€????‚??ƒ??„??…??†??‡??ˆ??‰??Š??‹??Œ????Ž??????‘??’??“??”??•??–??—??˜??™??š??›??œ????ž??Ÿ?? ??¡??¢??£??¤??¥??¦??§??¨??©??ª??«??¬??­??®??¯??°??±??²??³??´??µ??¶??·??¸??¹??º??»??¼??½??¾??¿??À??Á??Â??Ã??Ä??Å??Æ??Ç??È??É??Ê??Ë??Ì??Í??Î??Ï??Ð??Ñ??Ò??Ó??Ô??Õ??Ö??×??Ø??Ù??Ú??Û??Ü??Ý??Þ??ß??à??á??â??ã??ä??å??æ??ç??è??é??ê??ë??ì??í??î??ï??ð??ñ??ò??ó??ô??õ??ö??÷??ø??ù??ú??û??ü??ý??þ??ÿ?????????? ? ? ? ? ??????????????????? ?!?"?#?$?%?&?'?(?)?*?+?,?-?.?/?0?1?2?3?4?5?6?7?8?9?:?;??@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}?~??€??‚?ƒ?„?…?†?‡?ˆ?‰?Š?‹?Œ??Ž???‘?’?“?”?•?–?—?˜?™?š?›?œ??ž?Ÿ? ?¡?¢?£?¤?¥?¦?§?¨?©?ª?«?¬?­?®?¯?°?±?²?³?´?µ?¶?·?¸?¹?º?»?¼?½?¾?¿?À?Á?Â?Ã?Ä?Å?Æ?Ç?È?É?Ê?Ë?Ì?Í?Î?Ï?Ð?Ñ?Ò?Ó?Ô?Õ?Ö?×?Ø?Ù?Ú?Û?Ü?Ý?Þ?ß?à?á?â?ã?ä?å?æ?ç?è?é?ê?ë?ì?í?î?ï?ð?ñ?ò?ó?ô?õ?ö?÷?ø?ù?ú?û?ü?ý?þ?ÿ\ \ -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\ "\ #\ $\ %\ &\ '\ (\ )\ *\ +\ ,\ -\ .\ /\ 0\ 1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ :\ ;\ <\ =\ >\ ?\ @\ A\ B\ C\ D\ E\ F\ G\ H\ I\ J\ K\ L\ M\ N\ O\ P\ Q\ R\ S\ T\ U\ V\ W\ X\ Y\ Z\ [\ \\ ]\ ^\ _\ `\ a\ b\ c\ d\ e\ f\ g\ h\ i\ j\ k\ l\ m\ n\ o\ p\ q\ r\ s\ t\ u\ v\ w\ x\ y\ z\ {\ |\ }\ ~\ \ €\ \ ‚\ ƒ\ „\ …\ †\ ‡\ ˆ\ ‰\ Š\ ‹\ Œ\ \ Ž\ \ \ ‘\ ’\ “\ ”\ •\ –\ —\ ˜\ ™\ š\ ›\ œ\ \ ž\ Ÿ\  \ ¡\ ¢\ £\ ¤\ ¥\ ¦\ §\ ¨\ ©\ ª\ «\ ¬\ ­\ ®\ ¯\ °\ ±\ ²\ ³\ ´\ µ\ ¶\ ·\ ¸\ ¹\ º\ »\ ¼\ ½\ ¾\ ¿\ À\ Á\ Â\ Ã\ Ä\ Å\ Æ\ Ç\ È\ É\ Ê\ Ë\ Ì\ Í\ Î\ Ï\ Ð\ Ñ\ Ò\ Ó\ Ô\ Õ\ Ö\ ×\ Ø\ Ù\ Ú\ Û\ Ü\ Ý\ Þ\ ß\ à\ á\ â\ ã\ ä\ å\ æ\ ç\ è\ é\ ê\ ë\ ì\ í\ î\ ï\ ð\ ñ\ ò\ ó\ ô\ õ\ ö\ ÷\ ø\ ù\ ú\ û\ ü\ ý\ þ\ ÿ\\\\\\\\\\ \ \ \\\\\\\\\\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z\{\|\}\~\\€\\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\\Ž\\\‘\’\“\”\•\–\—\˜\™\š\›\œ\\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\ "\ #\ $\ %\ &\ '\ (\ )\ *\ +\ ,\ -\ .\ /\ 0\ 1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ :\ ;\ <\ =\ >\ ?\ @\ A\ B\ C\ D\ E\ F\ G\ H\ I\ J\ K\ L\ M\ N\ O\ P\ Q\ R\ S\ T\ U\ V\ W\ X\ Y\ Z\ [\ \\ ]\ ^\ _\ `\ a\ b\ c\ d\ e\ f\ g\ h\ i\ j\ k\ l\ m\ n\ o\ p\ q\ r\ s\ t\ u\ v\ w\ x\ y\ z\ {\ |\ }\ ~\ \ €\ \ ‚\ ƒ\ „\ …\ †\ ‡\ ˆ\ ‰\ Š\ ‹\ Œ\ \ Ž\ \ \ ‘\ ’\ “\ ”\ •\ –\ —\ ˜\ ™\ š\ ›\ œ\ \ ž\ Ÿ\  \ ¡\ ¢\ £\ ¤\ ¥\ ¦\ §\ ¨\ ©\ ª\ «\ ¬\ ­\ ®\ ¯\ °\ ±\ ²\ ³\ ´\ µ\ ¶\ ·\ ¸\ ¹\ º\ »\ ¼\ ½\ ¾\ ¿\ À\ Á\ Â\ Ã\ Ä\ Å\ Æ\ Ç\ È\ É\ Ê\ Ë\ Ì\ Í\ Î\ Ï\ Ð\ Ñ\ Ò\ Ó\ Ô\ Õ\ Ö\ ×\ Ø\ Ù\ Ú\ Û\ Ü\ Ý\ Þ\ ß\ à\ á\ â\ ã\ ä\ å\ æ\ ç\ è\ é\ ê\ ë\ ì\ í\ î\ ï\ ð\ ñ\ ò\ ó\ ô\ õ\ ö\ ÷\ ø\ ù\ ú\ û\ ü\ ý\ þ\ ÿ\\\\\\\\\\ \ \ \\\\\\\\\\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z\{\|\}\~\\€\\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\\Ž\\\‘\’\“\”\•\–\—\˜\™\š\›\œ\\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ  !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"\\\\\\\\\\ \ \ \ \\\\\\\\\\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z\{\|\}\~\\€\\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\\Ž\\\‘\’\“\”\•\–\—\˜\™\š\›\œ\\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ\ - \ No newline at end of file + \ No newline at end of file diff --git a/re2c/test/contexts/cond_star1.ci--input(custom).c b/re2c/test/contexts/cond_star1.ci--input(custom).c index b271beaa..ddcfba7f 100644 --- a/re2c/test/contexts/cond_star1.ci--input(custom).c +++ b/re2c/test/contexts/cond_star1.ci--input(custom).c @@ -2,7 +2,7 @@ { YYCTYPE yych; - YYDISTTYPE yyctx0, yyctx2; + YYDISTTYPE yyctx0, yyctx1; YYBACKUPCTX (); switch (YYGETCONDITION()) { case yycc1: goto yyc_c1; @@ -21,13 +21,13 @@ yy3: {} yy5: YYSKIP (); - yyctx2 = YYDIST(); + yyctx1 = YYDIST(); switch ((yych = YYPEEK ())) { case 'b': goto yy7; default: goto yy6; } yy6: - YYRESTORECTX (yyctx2); + YYRESTORECTX (yyctx1); {} yy7: YYSKIP (); diff --git a/re2c/test/contexts/cond_star1.ci.c b/re2c/test/contexts/cond_star1.ci.c index 86316d63..17dc11b5 100644 --- a/re2c/test/contexts/cond_star1.ci.c +++ b/re2c/test/contexts/cond_star1.ci.c @@ -2,7 +2,7 @@ { YYCTYPE yych; - YYDISTTYPE yyctx0, yyctx2; + YYDISTTYPE yyctx0, yyctx1; YYCTXMARKER = YYCURSOR; switch (YYGETCONDITION()) { case yycc1: goto yyc_c1; @@ -21,13 +21,13 @@ yy3: {} yy5: ++YYCURSOR; - yyctx2 = (YYCURSOR - YYCTXMARKER); + yyctx1 = (YYCURSOR - YYCTXMARKER); switch ((yych = *YYCURSOR)) { case 'b': goto yy7; default: goto yy6; } yy6: - YYCURSOR = YYCTXMARKER + yyctx2; + YYCURSOR = YYCTXMARKER + yyctx1; {} yy7: ++YYCURSOR; diff --git a/re2c/test/contexts/cond_star2.ci.c b/re2c/test/contexts/cond_star2.ci.c index e17eb942..ff2ee39f 100644 --- a/re2c/test/contexts/cond_star2.ci.c +++ b/re2c/test/contexts/cond_star2.ci.c @@ -2,7 +2,7 @@ { YYCTYPE yych; - YYDISTTYPE yyctx0, yyctx1, yyctx4, yyctx6; + YYDISTTYPE yyctx0, yyctx1, yyctx3; YYCTXMARKER = YYCURSOR; switch (YYGETCONDITION()) { case yycc1: goto yyc_c1; @@ -21,13 +21,13 @@ yy3: {} yy5: ++YYCURSOR; - yyctx6 = (YYCURSOR - YYCTXMARKER); + yyctx1 = (YYCURSOR - YYCTXMARKER); switch ((yych = *YYCURSOR)) { case 'b': goto yy7; default: goto yy6; } yy6: - YYCURSOR = YYCTXMARKER + yyctx6; + YYCURSOR = YYCTXMARKER + yyctx1; {} yy7: ++YYCURSOR; @@ -66,15 +66,15 @@ yyc_c2: } yy15: ++YYCURSOR; - yyctx1 = (YYCURSOR - YYCTXMARKER); + yyctx0 = (YYCURSOR - YYCTXMARKER); yych = *YYCURSOR; goto yy20; yy16: - YYCURSOR = YYCTXMARKER + yyctx1; + YYCURSOR = YYCTXMARKER + yyctx0; {} yy17: yych = *(YYMARKER = ++YYCURSOR); - yyctx1 = (YYCURSOR - YYCTXMARKER); + yyctx0 = (YYCURSOR - YYCTXMARKER); switch (yych) { case 'a': goto yy21; case 'b': goto yy23; @@ -82,7 +82,7 @@ yy17: default: goto yy18; } yy18: - YYCURSOR = YYCTXMARKER + yyctx1; + YYCURSOR = YYCTXMARKER + yyctx0; {} yy19: ++YYCURSOR; @@ -95,7 +95,7 @@ yy20: } yy21: yych = *++YYCURSOR; - yyctx4 = (YYCURSOR - YYCTXMARKER); + yyctx3 = (YYCURSOR - YYCTXMARKER); switch (yych) { case 'b': goto yy28; case 'c': goto yy31; @@ -113,7 +113,7 @@ yy23: default: goto yy25; } yy25: - YYCURSOR = YYCTXMARKER + yyctx1; + YYCURSOR = YYCTXMARKER + yyctx0; {} yy26: ++YYCURSOR; @@ -132,7 +132,7 @@ yy28: default: goto yy30; } yy30: - YYCURSOR = YYCTXMARKER + yyctx4; + YYCURSOR = YYCTXMARKER + yyctx3; {} yy31: ++YYCURSOR; @@ -143,7 +143,7 @@ yy31: default: goto yy33; } yy33: - YYCURSOR = YYCTXMARKER + yyctx4; + YYCURSOR = YYCTXMARKER + yyctx3; {} } diff --git a/re2c/test/contexts/fix3.i--contexts.c b/re2c/test/contexts/fix3.i--contexts.c index 34cd5b07..c38f8ca0 100644 --- a/re2c/test/contexts/fix3.i--contexts.c +++ b/re2c/test/contexts/fix3.i--contexts.c @@ -13,7 +13,7 @@ static void lex(const char *YYCURSOR) YYDISTTYPE yyctx0p1, yyctx0p2, yyctx0p3, yyctx0p4; YYCTXMARKER = YYCURSOR; yych = *YYCURSOR; - yyctx0p1 = yyctx0p2 = yyctx0p3 = yyctx0p4 = (YYCURSOR - YYCTXMARKER); + yyctx0p4 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '0': goto yy5; case '1': goto yy7; @@ -38,7 +38,7 @@ yy3: yy5: ++YYCURSOR; yych = *YYCURSOR; - yyctx0p1 = yyctx0p2 = yyctx0p3 = yyctx0p4 = (YYCURSOR - YYCTXMARKER); + yyctx0p4 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '0': goto yy5; case '1': goto yy7; @@ -50,7 +50,7 @@ yy5: yy7: ++YYCURSOR; yych = *YYCURSOR; - yyctx0p2 = yyctx0p3 = yyctx0p4 = (YYCURSOR - YYCTXMARKER); + yyctx0p4 = yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '1': goto yy7; case '2': goto yy9; @@ -61,7 +61,7 @@ yy7: yy9: ++YYCURSOR; yych = *YYCURSOR; - yyctx0p3 = yyctx0p4 = (YYCURSOR - YYCTXMARKER); + yyctx0p4 = yyctx0p3 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '2': goto yy9; case '3': goto yy11; diff --git a/re2c/test/contexts/fix3_trail.i--contexts--input(custom).c b/re2c/test/contexts/fix3_trail.i--contexts--input(custom).c index 60824d35..dc2a66bc 100644 --- a/re2c/test/contexts/fix3_trail.i--contexts--input(custom).c +++ b/re2c/test/contexts/fix3_trail.i--contexts--input(custom).c @@ -13,7 +13,7 @@ static void lex(const char *YYCURSOR) YYDISTTYPE yyctx0, yyctx0p1, yyctx0p2, yyctx0p3; YYBACKUPCTX (); yych = YYPEEK (); - yyctx0p1 = yyctx0p2 = yyctx0p3 = yyctx0 = YYDIST(); + yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST(); switch (yych) { case '0': goto yy5; case '1': goto yy7; @@ -39,7 +39,7 @@ yy3: yy5: YYSKIP (); yych = YYPEEK (); - yyctx0p1 = yyctx0p2 = yyctx0p3 = yyctx0 = YYDIST(); + yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST(); switch (yych) { case '0': goto yy5; case '1': goto yy7; @@ -51,7 +51,7 @@ yy5: yy7: YYSKIP (); yych = YYPEEK (); - yyctx0p2 = yyctx0p3 = yyctx0 = YYDIST(); + yyctx0 = yyctx0p3 = yyctx0p2 = YYDIST(); switch (yych) { case '1': goto yy7; case '2': goto yy9; @@ -62,7 +62,7 @@ yy7: yy9: YYSKIP (); yych = YYPEEK (); - yyctx0p3 = yyctx0 = YYDIST(); + yyctx0 = yyctx0p3 = YYDIST(); switch (yych) { case '2': goto yy9; case '3': goto yy11; diff --git a/re2c/test/contexts/fix3_trail.i--contexts.c b/re2c/test/contexts/fix3_trail.i--contexts.c index 38315d07..74988966 100644 --- a/re2c/test/contexts/fix3_trail.i--contexts.c +++ b/re2c/test/contexts/fix3_trail.i--contexts.c @@ -13,7 +13,7 @@ static void lex(const char *YYCURSOR) YYDISTTYPE yyctx0, yyctx0p1, yyctx0p2, yyctx0p3; YYCTXMARKER = YYCURSOR; yych = *YYCURSOR; - yyctx0p1 = yyctx0p2 = yyctx0p3 = yyctx0 = (YYCURSOR - YYCTXMARKER); + yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '0': goto yy5; case '1': goto yy7; @@ -39,7 +39,7 @@ yy3: yy5: ++YYCURSOR; yych = *YYCURSOR; - yyctx0p1 = yyctx0p2 = yyctx0p3 = yyctx0 = (YYCURSOR - YYCTXMARKER); + yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '0': goto yy5; case '1': goto yy7; @@ -51,7 +51,7 @@ yy5: yy7: ++YYCURSOR; yych = *YYCURSOR; - yyctx0p2 = yyctx0p3 = yyctx0 = (YYCURSOR - YYCTXMARKER); + yyctx0 = yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '1': goto yy7; case '2': goto yy9; @@ -62,7 +62,7 @@ yy7: yy9: ++YYCURSOR; yych = *YYCURSOR; - yyctx0p3 = yyctx0 = (YYCURSOR - YYCTXMARKER); + yyctx0 = yyctx0p3 = (YYCURSOR - YYCTXMARKER); switch (yych) { case '2': goto yy9; case '3': goto yy11; diff --git a/re2c/test/php20150211_zend_ini_scanner.igcd--skeleton--flex-syntax--case-inverted.c b/re2c/test/php20150211_zend_ini_scanner.igcd--skeleton--flex-syntax--case-inverted.c index db92f4f0..c4e07257 100644 --- a/re2c/test/php20150211_zend_ini_scanner.igcd--skeleton--flex-syntax--case-inverted.c +++ b/re2c/test/php20150211_zend_ini_scanner.igcd--skeleton--flex-syntax--case-inverted.c @@ -258,7 +258,7 @@ yy4: goto *yytarget[yych]; } yy5: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 20); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 5); continue; yy6: YYSKIP (); @@ -302,12 +302,12 @@ yy6: goto *yytarget[yych]; } yy8: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 46); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 8); continue; yy9: YYSKIP (); yy10: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 48); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 9); continue; yy11: YYSKIP (); @@ -357,13 +357,13 @@ yy12: } yy14: YYSKIP (); - status = action_line652_INITIAL(i, keys, input, token, &cursor, 32); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 7); continue; yy16: YYSKIP (); yych = YYPEEK (); goto yy32; - status = action_line652_INITIAL(i, keys, input, token, &cursor, 55); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 11); continue; yy18: YYSKIP (); @@ -371,7 +371,7 @@ yy18: yych = YYPEEK (); if (yych == '\t') goto yy18; if (yych == ' ') goto yy18; - status = action_line652_INITIAL(i, keys, input, token, &cursor, 21); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 6); continue; yy21: YYSKIP (); @@ -481,7 +481,7 @@ yy28: yych = YYPEEK (); if (yych == '\t') goto yy28; if (yych == ' ') goto yy28; - status = action_line652_INITIAL(i, keys, input, token, &cursor, 6); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 1); continue; yy31: YYSKIP (); @@ -495,7 +495,7 @@ yy32: yy33: YYSKIP (); yy34: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 49); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 10); continue; yy35: YYSKIP (); @@ -548,7 +548,7 @@ yy37: goto *yytarget[(yych = YYPEEK ())]; } yy38: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 16); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 3); continue; yy39: YYSKIP (); @@ -604,7 +604,7 @@ yy41: goto *yytarget[yych]; } yy43: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 14); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 2); continue; yy44: YYSKIP (); @@ -739,7 +739,7 @@ yy56: goto *yytarget[yych]; } yy58: - status = action_line652_INITIAL(i, keys, input, token, &cursor, 18); + status = action_line652_INITIAL(i, keys, input, token, &cursor, 4); continue; yy59: YYSKIP (); @@ -909,7 +909,7 @@ int lex_line652_ST_DOUBLE_QUOTES() if (yych == '$') goto yy69; YYSKIP (); yy65: - status = action_line652_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 42); + status = action_line652_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 2); continue; yy66: YYSKIP (); @@ -918,14 +918,14 @@ yy66: if (yybm[0+yych] & 128) { goto yy66; } - status = action_line652_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 41); + status = action_line652_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 1); continue; yy69: YYSKIP (); yych = YYPEEK (); if (yych != '{') goto yy65; YYSKIP (); - status = action_line652_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 8); + status = action_line652_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 0); continue; } @@ -1140,7 +1140,7 @@ yy76: if (yych <= ';') goto yy77; if (yych <= '\\') goto yy98; yy77: - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 36); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 5); continue; yy78: yyaccept = 0; @@ -1188,11 +1188,11 @@ yy78: yy80: YYSKIP (); yy81: - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 57); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 8); continue; yy82: YYSKIP (); - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 38); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 6); continue; yy84: YYSKIP (); @@ -1266,7 +1266,7 @@ yy87: goto *yytarget[yych]; } yy89: - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 29); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 4); continue; yy90: yyaccept = 3; @@ -1312,7 +1312,7 @@ yy90: goto *yytarget[yych]; } yy92: - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 26); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 3); continue; yy93: YYSKIP (); @@ -1320,7 +1320,7 @@ yy93: goto yy75; yy94: YYSKIP (); - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 7); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 1); continue; yy96: YYSKIP (); @@ -1363,7 +1363,7 @@ yy99: goto yy75; yy101: YYSKIP (); - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 9); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 2); continue; yy103: YYSKIP (); @@ -1418,7 +1418,7 @@ yy105: } yy107: YYSKIP (); - status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 1); + status = action_line652_ST_OFFSET(i, keys, input, token, &cursor, 0); continue; } @@ -1618,12 +1618,12 @@ int lex_line652_ST_RAW() } yy112: YYSKIP (); - status = action_line652_ST_RAW(i, keys, input, token, &cursor, 52); + status = action_line652_ST_RAW(i, keys, input, token, &cursor, 4); continue; yy114: YYSKIP (); yy115: - status = action_line652_ST_RAW(i, keys, input, token, &cursor, 22); + status = action_line652_ST_RAW(i, keys, input, token, &cursor, 0); continue; yy116: YYSKIP (); @@ -1668,7 +1668,7 @@ yy116: yy117: YYSKIP (); yy118: - status = action_line652_ST_RAW(i, keys, input, token, &cursor, 24); + status = action_line652_ST_RAW(i, keys, input, token, &cursor, 1); continue; yy119: YYSKIP (); @@ -1695,7 +1695,7 @@ yy122: if (yych == ';') goto yy124; } yy123: - status = action_line652_ST_RAW(i, keys, input, token, &cursor, 47); + status = action_line652_ST_RAW(i, keys, input, token, &cursor, 2); continue; yy124: YYSKIP (); @@ -1709,7 +1709,7 @@ yy125: yy126: YYSKIP (); yy127: - status = action_line652_ST_RAW(i, keys, input, token, &cursor, 50); + status = action_line652_ST_RAW(i, keys, input, token, &cursor, 3); continue; yy128: YYSKIP (); @@ -1884,11 +1884,11 @@ yy132: if (yybm[0+yych] & 64) { goto yy132; } - status = action_line652_ST_SECTION_RAW(i, keys, input, token, &cursor, 23); + status = action_line652_ST_SECTION_RAW(i, keys, input, token, &cursor, 1); continue; yy135: YYSKIP (); - status = action_line652_ST_SECTION_RAW(i, keys, input, token, &cursor, 59); + status = action_line652_ST_SECTION_RAW(i, keys, input, token, &cursor, 2); continue; yy137: YYSKIP (); @@ -1901,7 +1901,7 @@ yy137: if (yych <= '\n') goto yy140; if (yych == '\r') goto yy141; yy139: - status = action_line652_ST_SECTION_RAW(i, keys, input, token, &cursor, 4); + status = action_line652_ST_SECTION_RAW(i, keys, input, token, &cursor, 0); continue; yy140: YYSKIP (); @@ -2124,7 +2124,7 @@ yy146: if (yych <= ';') goto yy147; if (yych <= '\\') goto yy169; yy147: - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 37); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 5); continue; yy148: yyaccept = 0; @@ -2172,11 +2172,11 @@ yy148: yy150: YYSKIP (); yy151: - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 60); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 8); continue; yy152: YYSKIP (); - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 39); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 6); continue; yy154: YYSKIP (); @@ -2250,7 +2250,7 @@ yy157: goto *yytarget[yych]; } yy159: - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 30); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 4); continue; yy160: yyaccept = 3; @@ -2296,7 +2296,7 @@ yy160: goto *yytarget[yych]; } yy162: - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 27); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 3); continue; yy163: YYSKIP (); @@ -2315,7 +2315,7 @@ yy164: if (yych == ' ') goto yy164; } yy166: - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 5); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 1); continue; yy167: YYSKIP (); @@ -2358,7 +2358,7 @@ yy170: goto yy145; yy172: YYSKIP (); - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 10); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 2); continue; yy174: YYSKIP (); @@ -2422,7 +2422,7 @@ yy179: goto yy166; yy180: YYSKIP (); - status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 2); + status = action_line652_ST_SECTION_VALUE(i, keys, input, token, &cursor, 0); continue; } @@ -2627,7 +2627,7 @@ int lex_line652_ST_VALUE() yy185: YYSKIP (); yy186: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 53); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 14); continue; yy187: yyaccept = 0; @@ -2674,7 +2674,7 @@ yy188: goto *yytarget[yych]; } yy189: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 35); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 10); continue; yy190: yyaccept = 1; @@ -2720,12 +2720,12 @@ yy190: goto *yytarget[yych]; } yy192: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 45); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 12); continue; yy193: YYSKIP (); yy194: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 25); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 5); continue; yy195: YYSKIP (); @@ -2738,11 +2738,11 @@ yy196: yych = YYPEEK (); if (yych == '\t') goto yy196; if (yych == ' ') goto yy196; - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 33); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 8); continue; yy199: YYSKIP (); - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 40); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 11); continue; yy201: YYSKIP (); @@ -2816,7 +2816,7 @@ yy204: goto *yytarget[yych]; } yy206: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 31); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 7); continue; yy207: yyaccept = 2; @@ -2826,7 +2826,7 @@ yy207: goto yy221; yy208: YYSKIP (); - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 34); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 9); continue; yy210: yyaccept = 4; @@ -2872,7 +2872,7 @@ yy210: goto *yytarget[yych]; } yy212: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 28); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 6); continue; yy213: yyaccept = 4; @@ -3146,7 +3146,7 @@ yy222: goto yy187; yy223: YYSKIP (); - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 11); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 1); continue; yy225: YYSKIP (); @@ -3202,7 +3202,7 @@ yy227: yy229: YYSKIP (); yy230: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 51); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 13); continue; yy231: YYSKIP (); @@ -3294,7 +3294,7 @@ yy233: goto *yytarget[yych]; } yy234: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 17); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 3); continue; yy235: yyaccept = 4; @@ -3423,7 +3423,7 @@ yy237: goto *yytarget[yych]; } yy238: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 15); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 2); continue; yy239: yyaccept = 4; @@ -3521,7 +3521,7 @@ yy241: goto yy187; yy243: YYSKIP (); - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 3); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 0); continue; yy245: yyaccept = 4; @@ -3790,7 +3790,7 @@ yy254: goto *yytarget[yych]; } yy255: - status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 19); + status = action_line652_ST_VALUE(i, keys, input, token, &cursor, 4); continue; yy256: YYSKIP (); @@ -4003,15 +4003,15 @@ yy261: goto *yytarget[yych]; } yy263: - status = action_line652_ST_VARNAME(i, keys, input, token, &cursor, 12); + status = action_line652_ST_VARNAME(i, keys, input, token, &cursor, 0); continue; yy264: YYSKIP (); - status = action_line652_ST_VARNAME(i, keys, input, token, &cursor, 62); + status = action_line652_ST_VARNAME(i, keys, input, token, &cursor, 2); continue; yy266: YYSKIP (); - status = action_line652_ST_VARNAME(i, keys, input, token, &cursor, 13); + status = action_line652_ST_VARNAME(i, keys, input, token, &cursor, 1); continue; } @@ -4996,12 +4996,1040 @@ YE [ ye[ YE[ ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[ YE[ ye[ YE[ ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[YE[ye[!YE["ye[#YE[$ye[%YE[&ye['YE[(ye[)YE[*ye[+YE[,ye[-YE[.ye[/YE[0ye[1YE[2ye[3YE[4ye[5YE[6ye[7YE[8ye[9YE[:ye[;YE[ye[?YE[@ye[AYE[Bye[CYE[Dye[EYE[Fye[GYE[Hye[IYE[Jye[KYE[Lye[MYE[Nye[OYE[Pye[QYE[Rye[SYE[Tye[UYE[Vye[WYE[Xye[YYE[Zye[[YE[\ye[]YE[^ye[_YE[`ye[aYE[bye[cYE[dye[eYE[fye[gYE[hye[iYE[jye[kYE[lye[mYE[nye[oYE[pye[qYE[rye[sYE[tye[uYE[vye[wYE[xye[yYE[zye[{YE[|ye[}YE[~ye[YE[€ye[YE[‚ye[ƒYE[„ye[…YE[†ye[‡YE[ˆye[‰YE[Šye[‹YE[Œye[YE[Žye[YE[ye[‘YE[’ye[“YE[”ye[•YE[–ye[—YE[˜ye[™YE[šye[›YE[œye[YE[žye[ŸYE[ ye[¡YE[¢ye[£YE[¤ye[¥YE[¦ye[§YE[¨ye[©YE[ªye[«YE[¬ye[­YE[®ye[¯YE[°ye[±YE[²ye[³YE[´ye[µYE[¶ye[·YE[¸ye[¹YE[ºye[»YE[¼ye[½YE[¾ye[¿YE[Àye[ÁYE[Âye[ÃYE[Äye[ÅYE[Æye[ÇYE[Èye[ÉYE[Êye[ËYE[Ìye[ÍYE[Îye[ÏYE[Ðye[ÑYE[Òye[ÓYE[Ôye[ÕYE[Öye[×YE[Øye[ÙYE[Úye[ÛYE[Üye[ÝYE[Þye[ßYE[àye[áYE[âye[ãYE[äye[åYE[æye[çYE[èye[éYE[êye[ëYE[ìye[íYE[îye[ïYE[ðye[ñYE[òye[óYE[ôye[õYE[öye[÷YE[øye[ùYE[úye[ûYE[üye[ýYE[þye[ÿYES[yes[YES[yes[YES[yes[YES[yes[YES[yes [ YES [ yes[ YES[ yes[YES[yes[YES[yes[YES[yes[YES[yes[YES[yes[YES[yes[YES[yes[YES[yes#[YES%[yes'[!YES*["yes+[#YES,[$yes-[%YES.[&yes/['YES0[(yes1[)YES2[*yes3[+YES4[,yes5[-YES6[.yes7[/YES8[0yes9[1YES:[2yes<[3YES>[4yes?[5YES@[6yesA[7YESB[8yesC[9YESD[:yesE[;YESF[yesI[?YESJ[@yesK[AYESL[ByesM[CYESN[DyesO[EYESP[FyesQ[GYESR[HyesS[IYEST[JyesU[KYESV[LyesW[MYESX[NyesY[OYESZ[Pyes\[QYES][Ryes_[SYES`[Tyesa[UYESb[Vyesc[WYESd[Xyese[YYESf[Zyesg[[YESh[\yesi[]YESj[^yesk[_YESl[`yesm[aYESn[byeso[cYESp[dyesq[eYESr[fyess[gYESt[hyesu[iYESv[jyesw[kYESx[lyesy[mYESz[nyes[oYES€[pyes[qYES‚[ryesƒ[sYES„[tyes…[uYES†[vyes‡[wYESˆ[xyes‰[yYESŠ[zyes‹[{YESŒ[|yes[}YESŽ[~yes[YES[€yes‘[YES’[‚yes“[ƒYES”[„yes•[…YES–[†yes—[‡YES˜[ˆyes™[‰YESš[Šyes›[‹YESœ[Œyes[YESž[ŽyesŸ[YES [yes¡[‘YES¢[’yes£[“YES¤[”yes¥[•YES¦[–yes§[—YES¨[˜yes©[™YESª[šyes«[›YES¬[œyes­[YES®[žyes¯[ŸYES°[ yes±[¡YES²[¢yes³[£YES´[¤yesµ[¥YES¶[¦yes·[§YES¸[¨yes¹[©YESº[ªyes»[«YES¼[¬yes½[­YES¾[®yes¿[¯YESÀ[°yesÁ[±YESÂ[²yesÃ[³YESÄ[´yesÅ[µYESÆ[¶yesÇ[·YESÈ[¸yesÉ[¹YESÊ[ºyesË[»YESÌ[¼yesÍ[½YESÎ[¾yesÏ[¿YESÐ[ÀyesÑ[ÁYESÒ[ÂyesÓ[ÃYESÔ[ÄyesÕ[ÅYESÖ[Æyes×[ÇYESØ[ÈyesÙ[ÉYESÚ[ÊyesÛ[ËYESÜ[ÌyesÝ[ÍYESÞ[Îyesß[ÏYESà[Ðyesá[ÑYESâ[Òyesã[ÓYESä[Ôyeså[ÕYESæ[Öyesç[×YESè[Øyesé[ÙYESê[Úyesë[ÛYESì[Üyesí[ÝYESî[Þyesï[ßYESð[àyesñ[áYESò[âyesó[ãYESô[äyesõ[åYESö[æyes÷[çYESø[èyesù[éYESú[êyesû[ëYESü[ìyesý[íYESþ[îyesÿ[ïYES[ðyes[ñYES[òyes[óYES[ôyes[õYES[öyes[÷YES[øyes [ùYES [úyes[ûYES[üyes[ýYES[þyes[ÿYE ye YE ye!YE"ye$YE&ye(YE)ye;YE=ye^YE{ye|YE}ye~Y y -Y y!Y"y$Y&y(Y)y;Y=y^Y{y|Y}y~[000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111..........................................................................................................................................................................................................................................................000011..........................................................................................................................................................................................................................................................001..........................................................................................................................................................................................................................................................0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001           1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111                                                                                                                                                                                                                                                               +Y y!Y"y$Y&y(Y)y;Y=y^Y{y|Y}y~[                                                                                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +     + +   +                                                                                                                                                                                                                                                                     +    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +                                                                                                                                                                                                                                                                !#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " !" "" #" $" %" &" '" (" )" *" +" ," -" ." /" 0" 1" 2" 3" 4" 5" 6" 7" 8" 9" :" ;" <" =" >" ?" @" A" B" C" D" E" F" G" H" I" J" K" L" M" N" O" P" Q" R" S" T" U" V" W" X" Y" Z" [" \" ]" ^" _" `" a" b" c" d" e" f" g" h" i" j" k" l" m" n" o" p" q" r" s" t" u" v" w" x" y" z" {" |" }" ~" " €" " ‚" ƒ" „" …" †" ‡" ˆ" ‰" Š" ‹" Œ" " Ž" " " ‘" ’" “" ”" •" –" —" ˜" ™" š" ›" œ" " ž" Ÿ"  " ¡" ¢" £" ¤" ¥" ¦" §" ¨" ©" ª" «" ¬" ­" ®" ¯" °" ±" ²" ³" ´" µ" ¶" ·" ¸" ¹" º" »" ¼" ½" ¾" ¿" À" Á" Â" Ã" Ä" Å" Æ" Ç" È" É" Ê" Ë" Ì" Í" Î" Ï" Ð" Ñ" Ò" Ó" Ô" Õ" Ö" ×" Ø" Ù" Ú" Û" Ü" Ý" Þ" ß" à" á" â" ã" ä" å" æ" ç" è" é" ê" ë" ì" í" î" ï" ð" ñ" ò" ó" ô" õ" ö" ÷" ø" ù" ú" û" ü" ý" þ" ÿ" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " !" "" #" $" %" &" '" (" )" *" +" ," -" ." /" 0" 1" 2" 3" 4" 5" 6" 7" 8" 9" :" ;" <" =" >" ?" @" A" B" C" D" E" F" G" H" I" J" K" L" M" N" O" P" Q" R" S" T" U" V" W" X" Y" Z" [" \" ]" ^" _" `" a" b" c" d" e" f" g" h" i" j" k" l" m" n" o" p" q" r" s" t" u" v" w" x" y" z" {" |" }" ~" " €" " ‚" ƒ" „" …" †" ‡" ˆ" ‰" Š" ‹" Œ" " Ž" " " ‘" ’" “" ”" •" –" —" ˜" ™" š" ›" œ" " ž" Ÿ"  " ¡" ¢" £" ¤" ¥" ¦" §" ¨" ©" ª" «" ¬" ­" ®" ¯" °" ±" ²" ³" ´" µ" ¶" ·" ¸" ¹" º" »" ¼" ½" ¾" ¿" À" Á" Â" Ã" Ä" Å" Æ" Ç" È" É" Ê" Ë" Ì" Í" Î" Ï" Ð" Ñ" Ò" Ó" Ô" Õ" Ö" ×" Ø" Ù" Ú" Û" Ü" Ý" Þ" ß" à" á" â" ã" ä" å" æ" ç" è" é" ê" ë" ì" í" î" ï" ð" ñ" ò" ó" ô" õ" ö" ÷" ø" ù" ú" û" ü" ý" þ" ÿ"""""""""" " " " """""""""""""""""""!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~""€""‚"ƒ"„"…"†"‡"ˆ"‰"Š"‹"Œ""Ž"""‘"’"“"”"•"–"—"˜"™"š"›"œ""ž"Ÿ" "¡"¢"£"¤"¥"¦"§"¨"©"ª"«"¬"­"®"¯"°"±"²"³"´"µ"¶"·"¸"¹"º"»"¼"½"¾"¿"À"Á"Â"Ã"Ä"Å"Æ"Ç"È"É"Ê"Ë"Ì"Í"Î"Ï"Ð"Ñ"Ò"Ó"Ô"Õ"Ö"×"Ø"Ù"Ú"Û"Ü"Ý"Þ"ß"à"á"â"ã"ä"å"æ"ç"è"é"ê"ë"ì"í"î"ï"ð"ñ"ò"ó"ô"õ"ö"÷"ø"ù"ú"û"ü"ý"þ"ÿ${$$$$$$$$$$ $ -$ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$|$}$~$$€$$‚$ƒ$„$…$†$‡$ˆ$‰$Š$‹$Œ$$Ž$$$‘$’$“$”$•$–$—$˜$™$š$›$œ$$ž$Ÿ$ $¡$¢$£$¤$¥$¦$§$¨$©$ª$«$¬$­$®$¯$°$±$²$³$´$µ$¶$·$¸$¹$º$»$¼$½$¾$¿$À$Á$Â$Ã$Ä$Å$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï$Ð$Ñ$Ò$Ó$Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$â$ã$ä$å$æ$ç$è$é$ê$ë$ì$í$î$ï$ð$ñ$ò$ó$ô$õ$ö$÷$ø$ù$ú$û$ü$ý$þ$ÿ**************************************************************************************************************************************************************************************************************************************************************))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))***************************************************************************************************************************************************************************************************************************************************************$${$${$${$${$ ${ $ ${$${$${$${$${$${$${$${$${$!${# $%!!${&##$(%%${)&&$*((${+))$,**${/++$:,,${<--$=..${>//$?00${@11$[22${^33$`44${{55$|66${}77$~88${99$€::${<<$‚==${ƒ>>$„??${…@@$†AA${‡BB$ˆCC${‰DD$ŠEE${‹FF$ŒGG${HH$ŽII${JJ$KK${‘LL$’MM${“NN$”OO${•PP$–QQ${—RR$˜SS${™TT$šUU${›VV$œWW${XX$žYY${ŸZZ$ [[${¡^^$¢__${£``$¤aa${¥bb$¦cc${§dd$¨ee${©ff$ªgg${«hh$¬ii${­jj$®kk${¯ll$°mm${±nn$²oo${³pp$´qq${µrr$¶ss${·tt$¸uu${¹vv$ºww${»xx$¼yy${½zz$¾{{${¿||$À}}${Á~~$Â${À€$ā${ł‚$ƃƒ${DŽ„$ȅ…${Ɇ†$ʇ‡${ˈˆ$̉‰${͊Š$΋‹${όŒ$Ѝ${юŽ$ҏ${Ӑ$ԑ‘${Ւ’$֓“${ה”$ؕ•${ٖ–$ڗ—${ۘ˜$ܙ™${ݚš$ޛ›${ߜœ$à${ឞ$⟟${ã  $ä¡¡${墢$棣${礤$襥${馦$ꧧ${먨$ì©©${íªª$î««${שּׁ$ð­­${ñ®®$ò¯¯${ó°°$ô±±${õ²²$ö³³${÷´´$øµµ${ù¶¶$ú··${û¸¸$ü¹¹${ýºº$þ»»${ÿ¼¼$½½${¾¾$¿¿${ÀÀ$ÁÁ${ÂÂ$ÃÃ${ÄÄ$ÅÅ${ ÆÆ$ ÇÇ${ÈÈ$ÉÉ${ÊÊ$ËË${ÌÌ$ÍÍ${ÎÎ$ÏÏ${ÐÐ$ÑÑ${ÒÒ$ÓÓ${ÔÔ$ÕÕ${ÖÖ$××${ØØ$ÙÙ${!ÚÚ$#ÛÛ${%ÜÜ$&ÝÝ${(ÞÞ$)ßß${*àà$+áá${,ââ$/ãã${:ää$<åå${=ææ$>çç${?èè$@éé${[êê$^ëë${`ìì${íí${|îî$}ïï${~ðð$ññ${€òò$óó${‚ôô$ƒõõ${„öö$…÷÷${†øø$‡ùù${ˆúú$‰ûû${Šüü$‹ýý${Œþþ$ÿÿ${\$\${\$\${\$\${\$\${\$ \ ${ \ +$ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$|$}$~$$€$$‚$ƒ$„$…$†$‡$ˆ$‰$Š$‹$Œ$$Ž$$$‘$’$“$”$•$–$—$˜$™$š$›$œ$$ž$Ÿ$ $¡$¢$£$¤$¥$¦$§$¨$©$ª$«$¬$­$®$¯$°$±$²$³$´$µ$¶$·$¸$¹$º$»$¼$½$¾$¿$À$Á$Â$Ã$Ä$Å$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï$Ð$Ñ$Ò$Ó$Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$â$ã$ä$å$æ$ç$è$é$ê$ë$ì$í$î$ï$ð$ñ$ò$ó$ô$õ$ö$÷$ø$ù$ú$û$ü$ý$þ$ÿ$${$${$${$${$ ${ $ ${$${$${$${$${$${$${$${$${$!${# $%!!${&##$(%%${)&&$*((${+))$,**${/++$:,,${<--$=..${>//$?00${@11$[22${^33$`44${{55$|66${}77$~88${99$€::${<<$‚==${ƒ>>$„??${…@@$†AA${‡BB$ˆCC${‰DD$ŠEE${‹FF$ŒGG${HH$ŽII${JJ$KK${‘LL$’MM${“NN$”OO${•PP$–QQ${—RR$˜SS${™TT$šUU${›VV$œWW${XX$žYY${ŸZZ$ [[${¡^^$¢__${£``$¤aa${¥bb$¦cc${§dd$¨ee${©ff$ªgg${«hh$¬ii${­jj$®kk${¯ll$°mm${±nn$²oo${³pp$´qq${µrr$¶ss${·tt$¸uu${¹vv$ºww${»xx$¼yy${½zz$¾{{${¿||$À}}${Á~~$Â${À€$ā${ł‚$ƃƒ${DŽ„$ȅ…${Ɇ†$ʇ‡${ˈˆ$̉‰${͊Š$΋‹${όŒ$Ѝ${юŽ$ҏ${Ӑ$ԑ‘${Ւ’$֓“${ה”$ؕ•${ٖ–$ڗ—${ۘ˜$ܙ™${ݚš$ޛ›${ߜœ$à${ឞ$⟟${ã  $ä¡¡${墢$棣${礤$襥${馦$ꧧ${먨$ì©©${íªª$î««${שּׁ$ð­­${ñ®®$ò¯¯${ó°°$ô±±${õ²²$ö³³${÷´´$øµµ${ù¶¶$ú··${û¸¸$ü¹¹${ýºº$þ»»${ÿ¼¼$½½${¾¾$¿¿${ÀÀ$ÁÁ${ÂÂ$ÃÃ${ÄÄ$ÅÅ${ ÆÆ$ ÇÇ${ÈÈ$ÉÉ${ÊÊ$ËË${ÌÌ$ÍÍ${ÎÎ$ÏÏ${ÐÐ$ÑÑ${ÒÒ$ÓÓ${ÔÔ$ÕÕ${ÖÖ$××${ØØ$ÙÙ${!ÚÚ$#ÛÛ${%ÜÜ$&ÝÝ${(ÞÞ$)ßß${*àà$+áá${,ââ$/ãã${:ää$<åå${=ææ$>çç${?èè$@éé${[êê$^ëë${`ìì${íí${|îî$}ïï${~ðð$ññ${€òò$óó${‚ôô$ƒõõ${„öö$…÷÷${†øø$‡ùù${ˆúú$‰ûû${Šüü$‹ýý${Œþþ$ÿÿ${\$\${\$\${\$\${\$\${\$ \ ${ \ $ \ ${\ $\ ${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$!\${# \$%!!\${&##\ $(%%\!${)&&\"$*((\#${+))\$$,**\%${/++\&$:,,\'${<--\($=..\)${>//\*$?00\+${@11\,$[22\-${^33\.$`44\/${{55\0$|66\1${}77\2$~88\3${99\4$€::\5${<<\6$‚==\7${ƒ>>\8$„??\9${…@@\:$†AA\;${‡BB\<$ˆCC\=${‰DD\>$ŠEE\?${‹FF\@$ŒGG\A${HH\B$ŽII\C${JJ\D$KK\E${‘LL\F$’MM\G${“NN\H$”OO\I${•PP\J$–QQ\K${—RR\L$˜SS\M${™TT\N$šUU\O${›VV\P$œWW\Q${XX\R$žYY\S${ŸZZ\T$ [[\U${¡^^\V$¢__\W${£``\X$¤aa\Y${¥bb\Z$¦cc\[${§dd\\$¨ee\]${©ff\^$ªgg\_${«hh\`$¬ii\a${­jj\b$®kk\c${¯ll\d$°mm\e${±nn\f$²oo\g${³pp\h$´qq\i${µrr\j$¶ss\k${·tt\l$¸uu\m${¹vv\n$ºww\o${»xx\p$¼yy\q${½zz\r$¾{{\s${¿||\t$À}}\u${Á~~\v$Â\w${À€\x$ā\y${ł‚\z$ƃƒ\{${DŽ„\|$ȅ…\}${Ɇ†\~$ʇ‡\${ˈˆ\€$̉‰\${͊Š\‚$΋‹\ƒ${όŒ\„$Ѝ\…${юŽ\†$ҏ\‡${Ӑ\ˆ$ԑ‘\‰${Ւ’\Š$֓“\‹${ה”\Œ$ؕ•\${ٖ–\Ž$ڗ—\${ۘ˜\$ܙ™\‘${ݚš\’$ޛ›\“${ߜœ\”$à\•${ឞ\–$⟟\—${ã  \˜$ä¡¡\™${墢\š$棣\›${礤\œ$襥\${馦\ž$ꧧ\Ÿ${먨\ $ì©©\¡${íªª\¢$î««\£${שּׁ\¤$ð­­\¥${ñ®®\¦$ò¯¯\§${ó°°\¨$ô±±\©${õ²²\ª$ö³³\«${÷´´\¬$øµµ\­${ù¶¶\®$ú··\¯${û¸¸\°$ü¹¹\±${ýºº\²$þ»»\³${ÿ¼¼\´$½½\µ${¾¾\¶$¿¿\·${ÀÀ\¸$ÁÁ\¹${ÂÂ\º$ÃÃ\»${ÄÄ\¼$ÅÅ\½${ ÆÆ\¾$ ÇÇ\¿${ÈÈ\À$ÉÉ\Á${ÊÊ\Â$ËË\Ã${ÌÌ\Ä$ÍÍ\Å${ÎÎ\Æ$ÏÏ\Ç${ÐÐ\È$ÑÑ\É${ÒÒ\Ê$ÓÓ\Ë${ÔÔ\Ì$ÕÕ\Í${ÖÖ\Î$××\Ï${ØØ\Ð$ÙÙ\Ñ${!ÚÚ\Ò$#ÛÛ\Ó${%ÜÜ\Ô$&ÝÝ\Õ${(ÞÞ\Ö$)ßß\×${*àà\Ø$+áá\Ù${,ââ\Ú$/ãã\Û${:ää\Ü$<åå\Ý${=ææ\Þ$>çç\ß${?èè\à$@éé\á${[êê\â$^ëë\ã${`ìì\ä${íí\å${|îî\æ$}ïï\ç${~ðð\è$ññ\é${€òò\ê$óó\ë${‚ôô\ì$ƒõõ\í${„öö\î$…÷÷\ï${†øø\ð$‡ùù\ñ${ˆúú\ò$‰ûû\ó${Šüü\ô$‹ýý\õ${Œþþ\ö$ÿÿ\÷${Ž\ø$\ù${\ú$‘\û${’\ü$“\ý${”\þ$•\ÿ${  "';]  " ' ; ] @@ -5179,7 +6207,7 @@ e f"g'h;i]j k l"m'n;o]p q r"s't;u]v w x"y'z;\$\${\$\${\$\${\$\${\$\ ${\ -$\ ${\ $\ ${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\ $\!${\"$\#${\$$\%${\&$\'${\($\)${\*$\+${\,$\-${\.$\/${\0$\1${\2$\3${\4$\5${\6$\7${\8$\9${\:$\;${\<$\=${\>$\?${\@$\A${\B$\C${\D$\E${\F$\G${\H$\I${\J$\K${\L$\M${\N$\O${\P$\Q${\R$\S${\T$\U${\V$\W${\X$\Y${\Z$\[${\\$\]${\^$\_${\`$\a${\b$\c${\d$\e${\f$\g${\h$\i${\j$\k${\l$\m${\n$\o${\p$\q${\r$\s${\t$\u${\v$\w${\x$\y${\z$\{${\|$\}${\~$\${\€$\${\‚$\ƒ${\„$\…${\†$\‡${\ˆ$\‰${\Š$\‹${\Œ$\${\Ž$\${\$\‘${\’$\“${\”$\•${\–$\—${\˜$\™${\š$\›${\œ$\${\ž$\Ÿ${\ $\¡${\¢$\£${\¤$\¥${\¦$\§${\¨$\©${\ª$\«${\¬$\­${\®$\¯${\°$\±${\²$\³${\´$\µ${\¶$\·${\¸$\¹${\º$\»${\¼$\½${\¾$\¿${\À$\Á${\Â$\Ã${\Ä$\Å${\Æ$\Ç${\È$\É${\Ê$\Ë${\Ì$\Í${\Î$\Ï${\Ð$\Ñ${\Ò$\Ó${\Ô$\Õ${\Ö$\×${\Ø$\Ù${\Ú$\Û${\Ü$\Ý${\Þ$\ß${\à$\á${\â$\ã${\ä$\å${\æ$\ç${\è$\é${\ê$\ë${\ì$\í${\î$\ï${\ð$\ñ${\ò$\ó${\ô$\õ${\ö$\÷${\ø$\ù${\ú$\û${\ü$\ý${\þ$\ÿ${]$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&$$$$999&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 99$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ !"#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +$\ ${\ $\ ${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\ $\!${\"$\#${\$$\%${\&$\'${\($\)${\*$\+${\,$\-${\.$\/${\0$\1${\2$\3${\4$\5${\6$\7${\8$\9${\:$\;${\<$\=${\>$\?${\@$\A${\B$\C${\D$\E${\F$\G${\H$\I${\J$\K${\L$\M${\N$\O${\P$\Q${\R$\S${\T$\U${\V$\W${\X$\Y${\Z$\[${\\$\]${\^$\_${\`$\a${\b$\c${\d$\e${\f$\g${\h$\i${\j$\k${\l$\m${\n$\o${\p$\q${\r$\s${\t$\u${\v$\w${\x$\y${\z$\{${\|$\}${\~$\${\€$\${\‚$\ƒ${\„$\…${\†$\‡${\ˆ$\‰${\Š$\‹${\Œ$\${\Ž$\${\$\‘${\’$\“${\”$\•${\–$\—${\˜$\™${\š$\›${\œ$\${\ž$\Ÿ${\ $\¡${\¢$\£${\¤$\¥${\¦$\§${\¨$\©${\ª$\«${\¬$\­${\®$\¯${\°$\±${\²$\³${\´$\µ${\¶$\·${\¸$\¹${\º$\»${\¼$\½${\¾$\¿${\À$\Á${\Â$\Ã${\Ä$\Å${\Æ$\Ç${\È$\É${\Ê$\Ë${\Ì$\Í${\Î$\Ï${\Ð$\Ñ${\Ò$\Ó${\Ô$\Õ${\Ö$\×${\Ø$\Ù${\Ú$\Û${\Ü$\Ý${\Þ$\ß${\à$\á${\â$\ã${\ä$\å${\æ$\ç${\è$\é${\ê$\ë${\ì$\í${\î$\ï${\ð$\ñ${\ò$\ó${\ô$\õ${\ö$\÷${\ø$\ù${\ú$\û${\ü$\ý${\þ$\ÿ${]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !"#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ @@ -5965,7 +6993,7 @@ $\ ${\ $\ ${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\ ;ÿ ; ; -422222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////22///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 +  ]  ]  ] @@ -6231,7 +7259,7 @@ y z]{ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] !] "] #] $] %] &] '] (] )] *] +] ,] -] .] /] 0] 1] 2] 3] 4] 5] 6] 7] 8] 9] :] ;] <] =] >] ?] @] A] B] C] D] E] F] G] H] I] J] K] L] M] N] O] P] Q] R] S] T] U] V] W] X] Y] Z] [] \] ]] ^] _] `] a] b] c] d] e] f] g] h] i] j] k] l] m] n] o] p] q] r] s] t] u] v] w] x] y] z] {] |] }] ~] ] €] ] ‚] ƒ] „] …] †] ‡] ˆ] ‰] Š] ‹] Œ] ] Ž] ] ] ‘] ’] “] ”] •] –] —] ˜] ™] š] ›] œ] ] ž] Ÿ]  ] ¡] ¢] £] ¤] ¥] ¦] §] ¨] ©] ª] «] ¬] ­] ®] ¯] °] ±] ²] ³] ´] µ] ¶] ·] ¸] ¹] º] »] ¼] ½] ¾] ¿] À] Á] Â] Ã] Ä] Å] Æ] Ç] È] É] Ê] Ë] Ì] Í] Î] Ï] Ð] Ñ] Ò] Ó] Ô] Õ] Ö] ×] Ø] Ù] Ú] Û] Ü] Ý] Þ] ß] à] á] â] ã] ä] å] æ] ç] è] é] ê] ë] ì] í] î] ï] ð] ñ] ò] ó] ô] õ] ö] ÷] ø] ù] ú] û] ü] ý] þ] ÿ] ] -]]]]]]]]]] ] ]]]]]]]]]]]]]]]]]]]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~]]€]]‚]ƒ]„]…]†]‡]ˆ]‰]Š]‹]Œ]]Ž]]]‘]’]“]”]•]–]—]˜]™]š]›]œ]]ž]Ÿ] ]¡]¢]£]¤]¥]¦]§]¨]©]ª]«]¬]­]®]¯]°]±]²]³]´]µ]¶]·]¸]¹]º]»]¼]½]¾]¿]À]Á]Â]Ã]Ä]Å]Æ]Ç]È]É]Ê]Ë]Ì]Í]Î]Ï]Ð]Ñ]Ò]Ó]Ô]Õ]Ö]×]Ø]Ù]Ú]Û]Ü]Ý]Þ]ß]à]á]â]ã]ä]å]æ]ç]è]é]ê]ë]ì]í]î]ï]ð]ñ]ò]ó]ô]õ]ö]÷]ø]ù]ú]û]ü]ý]þ]ÿ;;$${$${$${$${$ ${ $ ${$${$${$${$${$${$${$${$${$!${# $%!!${&##$(%%${)&&$*((${+))$,**${/++$:,,${<--$=..${>//$?00${@11$[22${^33$`44${{55$|66${}77$~88${99$€::${<<$‚==${ƒ>>$„??${…@@$†AA${‡BB$ˆCC${‰DD$ŠEE${‹FF$ŒGG${HH$ŽII${JJ$KK${‘LL$’MM${“NN$”OO${•PP$–QQ${—RR$˜SS${™TT$šUU${›VV$œWW${XX$žYY${ŸZZ$ [[${¡^^$¢__${£``$¤aa${¥bb$¦cc${§dd$¨ee${©ff$ªgg${«hh$¬ii${­jj$®kk${¯ll$°mm${±nn$²oo${³pp$´qq${µrr$¶ss${·tt$¸uu${¹vv$ºww${»xx$¼yy${½zz$¾{{${¿||$À}}${Á~~$Â${À€$ā${ł‚$ƃƒ${DŽ„$ȅ…${Ɇ†$ʇ‡${ˈˆ$̉‰${͊Š$΋‹${όŒ$Ѝ${юŽ$ҏ${Ӑ$ԑ‘${Ւ’$֓“${ה”$ؕ•${ٖ–$ڗ—${ۘ˜$ܙ™${ݚš$ޛ›${ߜœ$à${ឞ$⟟${ã  $ä¡¡${墢$棣${礤$襥${馦$ꧧ${먨$ì©©${íªª$î««${שּׁ$ð­­${ñ®®$ò¯¯${ó°°$ô±±${õ²²$ö³³${÷´´$øµµ${ù¶¶$ú··${û¸¸$ü¹¹${ýºº$þ»»${ÿ¼¼$½½${¾¾$¿¿${ÀÀ$ÁÁ${ÂÂ$ÃÃ${ÄÄ$ÅÅ${ ÆÆ$ ÇÇ${ÈÈ$ÉÉ${ÊÊ$ËË${ÌÌ$ÍÍ${ÎÎ$ÏÏ${ÐÐ$ÑÑ${ÒÒ$ÓÓ${ÔÔ$ÕÕ${ÖÖ$××${ØØ$ÙÙ${!ÚÚ$#ÛÛ${%ÜÜ$&ÝÝ${(ÞÞ$)ßß${*àà$+áá${,ââ$/ãã${:ää$<åå${=ææ$>çç${?èè$@éé${[êê$^ëë${`ìì${íí${|îî$}ïï${~ðð$ññ${€òò$óó${‚ôô$ƒõõ${„öö$…÷÷${†øø$‡ùù${ˆúú$‰ûû${Šüü$‹ýý${Œþþ$ÿÿ${\$\${\$\${\$\${\$\${\$ \ ${ \ +]]]]]]]]]] ] ]]]]]]]]]]]]]]]]]]]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~]]€]]‚]ƒ]„]…]†]‡]ˆ]‰]Š]‹]Œ]]Ž]]]‘]’]“]”]•]–]—]˜]™]š]›]œ]]ž]Ÿ] ]¡]¢]£]¤]¥]¦]§]¨]©]ª]«]¬]­]®]¯]°]±]²]³]´]µ]¶]·]¸]¹]º]»]¼]½]¾]¿]À]Á]Â]Ã]Ä]Å]Æ]Ç]È]É]Ê]Ë]Ì]Í]Î]Ï]Ð]Ñ]Ò]Ó]Ô]Õ]Ö]×]Ø]Ù]Ú]Û]Ü]Ý]Þ]ß]à]á]â]ã]ä]å]æ]ç]è]é]ê]ë]ì]í]î]ï]ð]ñ]ò]ó]ô]õ]ö]÷]ø]ù]ú]û]ü]ý]þ]ÿ$${$${$${$${$ ${ $ ${$${$${$${$${$${$${$${$${$!${# $%!!${&##$(%%${)&&$*((${+))$,**${/++$:,,${<--$=..${>//$?00${@11$[22${^33$`44${{55$|66${}77$~88${99$€::${<<$‚==${ƒ>>$„??${…@@$†AA${‡BB$ˆCC${‰DD$ŠEE${‹FF$ŒGG${HH$ŽII${JJ$KK${‘LL$’MM${“NN$”OO${•PP$–QQ${—RR$˜SS${™TT$šUU${›VV$œWW${XX$žYY${ŸZZ$ [[${¡^^$¢__${£``$¤aa${¥bb$¦cc${§dd$¨ee${©ff$ªgg${«hh$¬ii${­jj$®kk${¯ll$°mm${±nn$²oo${³pp$´qq${µrr$¶ss${·tt$¸uu${¹vv$ºww${»xx$¼yy${½zz$¾{{${¿||$À}}${Á~~$Â${À€$ā${ł‚$ƃƒ${DŽ„$ȅ…${Ɇ†$ʇ‡${ˈˆ$̉‰${͊Š$΋‹${όŒ$Ѝ${юŽ$ҏ${Ӑ$ԑ‘${Ւ’$֓“${ה”$ؕ•${ٖ–$ڗ—${ۘ˜$ܙ™${ݚš$ޛ›${ߜœ$à${ឞ$⟟${ã  $ä¡¡${墢$棣${礤$襥${馦$ꧧ${먨$ì©©${íªª$î««${שּׁ$ð­­${ñ®®$ò¯¯${ó°°$ô±±${õ²²$ö³³${÷´´$øµµ${ù¶¶$ú··${û¸¸$ü¹¹${ýºº$þ»»${ÿ¼¼$½½${¾¾$¿¿${ÀÀ$ÁÁ${ÂÂ$ÃÃ${ÄÄ$ÅÅ${ ÆÆ$ ÇÇ${ÈÈ$ÉÉ${ÊÊ$ËË${ÌÌ$ÍÍ${ÎÎ$ÏÏ${ÐÐ$ÑÑ${ÒÒ$ÓÓ${ÔÔ$ÕÕ${ÖÖ$××${ØØ$ÙÙ${!ÚÚ$#ÛÛ${%ÜÜ$&ÝÝ${(ÞÞ$)ßß${*àà$+áá${,ââ$/ãã${:ää$<åå${=ææ$>çç${?èè$@éé${[êê$^ëë${`ìì${íí${|îî$}ïï${~ðð$ññ${€òò$óó${‚ôô$ƒõõ${„öö$…÷÷${†øø$‡ùù${ˆúú$‰ûû${Šüü$‹ýý${Œþþ$ÿÿ${\$\${\$\${\$\${\$\${\$ \ ${ \ $ \ ${\ $\ ${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$!\${# \$%!!\${&##\ $(%%\!${)&&\"$*((\#${+))\$$,**\%${/++\&$:,,\'${<--\($=..\)${>//\*$?00\+${@11\,$[22\-${^33\.$`44\/${{55\0$|66\1${}77\2$~88\3${99\4$€::\5${<<\6$‚==\7${ƒ>>\8$„??\9${…@@\:$†AA\;${‡BB\<$ˆCC\=${‰DD\>$ŠEE\?${‹FF\@$ŒGG\A${HH\B$ŽII\C${JJ\D$KK\E${‘LL\F$’MM\G${“NN\H$”OO\I${•PP\J$–QQ\K${—RR\L$˜SS\M${™TT\N$šUU\O${›VV\P$œWW\Q${XX\R$žYY\S${ŸZZ\T$ [[\U${¡^^\V$¢__\W${£``\X$¤aa\Y${¥bb\Z$¦cc\[${§dd\\$¨ee\]${©ff\^$ªgg\_${«hh\`$¬ii\a${­jj\b$®kk\c${¯ll\d$°mm\e${±nn\f$²oo\g${³pp\h$´qq\i${µrr\j$¶ss\k${·tt\l$¸uu\m${¹vv\n$ºww\o${»xx\p$¼yy\q${½zz\r$¾{{\s${¿||\t$À}}\u${Á~~\v$Â\w${À€\x$ā\y${ł‚\z$ƃƒ\{${DŽ„\|$ȅ…\}${Ɇ†\~$ʇ‡\${ˈˆ\€$̉‰\${͊Š\‚$΋‹\ƒ${όŒ\„$Ѝ\…${юŽ\†$ҏ\‡${Ӑ\ˆ$ԑ‘\‰${Ւ’\Š$֓“\‹${ה”\Œ$ؕ•\${ٖ–\Ž$ڗ—\${ۘ˜\$ܙ™\‘${ݚš\’$ޛ›\“${ߜœ\”$à\•${ឞ\–$⟟\—${ã  \˜$ä¡¡\™${墢\š$棣\›${礤\œ$襥\${馦\ž$ꧧ\Ÿ${먨\ $ì©©\¡${íªª\¢$î««\£${שּׁ\¤$ð­­\¥${ñ®®\¦$ò¯¯\§${ó°°\¨$ô±±\©${õ²²\ª$ö³³\«${÷´´\¬$øµµ\­${ù¶¶\®$ú··\¯${û¸¸\°$ü¹¹\±${ýºº\²$þ»»\³${ÿ¼¼\´$½½\µ${¾¾\¶$¿¿\·${ÀÀ\¸$ÁÁ\¹${ÂÂ\º$ÃÃ\»${ÄÄ\¼$ÅÅ\½${ ÆÆ\¾$ ÇÇ\¿${ÈÈ\À$ÉÉ\Á${ÊÊ\Â$ËË\Ã${ÌÌ\Ä$ÍÍ\Å${ÎÎ\Æ$ÏÏ\Ç${ÐÐ\È$ÑÑ\É${ÒÒ\Ê$ÓÓ\Ë${ÔÔ\Ì$ÕÕ\Í${ÖÖ\Î$××\Ï${ØØ\Ð$ÙÙ\Ñ${!ÚÚ\Ò$#ÛÛ\Ó${%ÜÜ\Ô$&ÝÝ\Õ${(ÞÞ\Ö$)ßß\×${*àà\Ø$+áá\Ù${,ââ\Ú$/ãã\Û${:ää\Ü$<åå\Ý${=ææ\Þ$>çç\ß${?èè\à$@éé\á${[êê\â$^ëë\ã${`ìì\ä${íí\å${|îî\æ$}ïï\ç${~ðð\è$ññ\é${€òò\ê$óó\ë${‚ôô\ì$ƒõõ\í${„öö\î$…÷÷\ï${†øø\ð$‡ùù\ñ${ˆúú\ò$‰ûû\ó${Šüü\ô$‹ýý\õ${Œþþ\ö$ÿÿ\÷${Ž\ø$\ù${\ú$‘\û${’\ü$“\ý${”\þ$•\ÿ${  "';]  " ' ; ] @@ -6419,8 +7447,7 @@ $\ ${\ $\ ${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\$\${\ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] !] "] #] $] %] &] '] (] )] *] +] ,] -] .] /] 0] 1] 2] 3] 4] 5] 6] 7] 8] 9] :] ;] <] =] >] ?] @] A] B] C] D] E] F] G] H] I] J] K] L] M] N] O] P] Q] R] S] T] U] V] W] X] Y] Z] [] \] ]] ^] _] `] a] b] c] d] e] f] g] h] i] j] k] l] m] n] o] p] q] r] s] t] u] v] w] x] y] z] {] |] }] ~] ] €] ] ‚] ƒ] „] …] †] ‡] ˆ] ‰] Š] ‹] Œ] ] Ž] ] ] ‘] ’] “] ”] •] –] —] ˜] ™] š] ›] œ] ] ž] Ÿ]  ] ¡] ¢] £] ¤] ¥] ¦] §] ¨] ©] ª] «] ¬] ­] ®] ¯] °] ±] ²] ³] ´] µ] ¶] ·] ¸] ¹] º] »] ¼] ½] ¾] ¿] À] Á] Â] Ã] Ä] Å] Æ] Ç] È] É] Ê] Ë] Ì] Í] Î] Ï] Ð] Ñ] Ò] Ó] Ô] Õ] Ö] ×] Ø] Ù] Ú] Û] Ü] Ý] Þ] ß] à] á] â] ã] ä] å] æ] ç] è] é] ê] ë] ì] í] î] ï] ð] ñ] ò] ó] ô] õ] ö] ÷] ø] ù] ú] û] ü] ý] þ] ÿ] ] -]]]]]]]]]] ] ]]]]]]]]]]]]]]]]]]]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~]]€]]‚]ƒ]„]…]†]‡]ˆ]‰]Š]‹]Œ]]Ž]]]‘]’]“]”]•]–]—]˜]™]š]›]œ]]ž]Ÿ] ]¡]¢]£]¤]¥]¦]§]¨]©]ª]«]¬]­]®]¯]°]±]²]³]´]µ]¶]·]¸]¹]º]»]¼]½]¾]¿]À]Á]Â]Ã]Ä]Å]Æ]Ç]È]É]Ê]Ë]Ì]Í]Î]Ï]Ð]Ñ]Ò]Ó]Ô]Õ]Ö]×]Ø]Ù]Ú]Û]Ü]Ý]Þ]ß]à]á]â]ã]ä]å]æ]ç]è]é]ê]ë]ì]í]î]ï]ð]ñ]ò]ó]ô]õ]ö]÷]ø]ù]ú]û]ü]ý]þ]ÿ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%''%%%%%''%%%%%<<<'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -<<%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$ $\$\$ $\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$###$\$\$%%%$\$\$***$\$\$+++$\$\$,,,$\$\$/--$\$\$:..$\$\$00$\$\$?11$\$\$@22$\$\$[33$\$\$\44$\$\$]55$\$\$`66$\$\${77$\$\$}88$\$\$99$\$\$€::$\$\$<<$\$\$‚>>$\$\$ƒ??$\$\$„@@$\$\$…AA$\$\$†BB$\$\$‡CC$\$\$ˆDD$\$\$‰EE$\$\$ŠFF$\$\$‹GG$\$\$ŒHH$\$\$II$\$\$ŽJJ$\$\$KK$\$\$LL$\$\$‘MM$\$\$’NN$\$\$“OO$\$\$”PP$\$\$•QQ$\$\$–RR$\$\$—SS$\$\$˜TT$\$\$™UU$\$\$šVV$\$\$›WW$\$\$œXX$\$\$YY$\$\$žZZ$\$\$Ÿ[[$\$\$ \\$\$\$¡]]$\$\$¢__$\$\$£``$\$\$¤aa$\$\$¥bb$\$\$¦cc$\$\$§dd$\$\$¨ee$\$\$©ff$\$\$ªgg$\$\$«hh$\$\$¬ii$\$\$­jj$\$\$®kk$\$\$¯ll$\$\$°mm$\$\$±nn$\$\$²oo$\$\$³pp$\$\$´qq$\$\$µrr$\$\$¶ss$\$\$·tt$\$\$¸uu$\$\$¹vv$\$\$ºww$\$\$»xx$\$\$¼yy$\$\$½zz$\$\$¾{{$\$\$¿}}$\$\$À$\$\$Á€€$\$\$$\$\$‚$\$\$ăƒ$\$\$ń„$\$\$ƅ…$\$\$dž†$\$\$ȇ‡$\$\$Ɉˆ$\$\$ʉ‰$\$\$ˊŠ$\$\$̋‹$\$\$͌Œ$\$\$΍$\$\$ώŽ$\$\$Џ$\$\$ѐ$\$\$ґ‘$\$\$Ӓ’$\$\$ԓ“$\$\$Ք”$\$\$֕•$\$\$ז–$\$\$ؗ—$\$\$٘˜$\$\$ڙ™$\$\$ۚš$\$\$ܛ›$\$\$ݜœ$\$\$ޝ$\$\$ߞž$\$\$àŸŸ$\$\$á  $\$\$â¡¡$\$\$㢢$\$\$䣣$\$\$夤$\$\$楥$\$\$禦$\$\$觧$\$\$騨$\$\$ê©©$\$\$몪$\$\$ì««$\$\$í¬¬$\$\$î­­$\$\$ï®®$\$\$ð¯¯$\$\$ñ°°$\$\$ò±±$\$\$ó²²$\$\$ô³³$\$\$õ´´$\$\$öµµ$\$\$÷¶¶$\$\$ø··$\$\$ù¸¸$\$\$ú¹¹$\$\$ûºº$\$\$ü»»$\$\$ý¼¼$\$\$þ½½$\$\$ÿ¾¾$\$\$¿¿$\$\$ÀÀ$\$\$ÁÁ$\$\$ÂÂ$\$\$ÃÃ$\$\$ÄÄ$\$\$ÅÅ$\$\$ÆÆ$\$\$ ÇÇ$\$\$ ÈÈ$\$\$ÉÉ$\$\$ÊÊ$\$\$ËË$\$\$ÌÌ$\$\$ÍÍ$\$\$ÎÎ$\$\$ÏÏ$\$\$ÐÐ$\$\$ÑÑ$\$\$ÒÒ$\$\$ÓÓ$\$\$ÔÔ$\$\$ÕÕ$\$\$ÖÖ$\$\$××$\$\$ØØ$\$\$ÙÙ$\$\$ÚÚ$\$\$#ÛÛ$\$\$%ÜÜ$\$\$*ÝÝ$\$\$+ÞÞ$\$\$,ßß$\$\$/àà$\$\$:áá$\$\$<ââ$\$\$>ãã$\$\$?ää$\$\$@åå$\$\$[ææ$\$\$\çç$\$\$]èè$\$\$`éé$\$\${êê$\$\$}ëë$\$\$ìì$\$\$€íí$\$\$îî$\$\$‚ïï$\$\$ƒðð$\$\$„ññ$\$\$…òò$\$\$†óó$\$\$‡ôô$\$\$ˆõõ$\$\$‰öö$\$\$Š÷÷$\$\$‹øø$\$\$Œùù$\$\$úú$\$\$Žûû$\$\$üü$\$\$ýý$\$\$‘þþ$\$\$’ÿÿ$\$\$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$ $\$$ $\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$###$\$$%%%$\$$***$\$$+++$\$$,,,$\$$/--$\$$:..$\$$00$\$$?11$\$$@22$\$$[33$\$$\44$\$$]55$\$$`66$\$${77$\$$}88$\$$99$\$$€::$\$$<<$\$$‚>>$\$$ƒ??$\$$„@@$\$$…AA$\$$†BB$\$$‡CC$\$$ˆDD$\$$‰EE$\$$ŠFF$\$$‹GG$\$$ŒHH$\$$II$\$$ŽJJ$\$$KK$\$$LL$\$$‘MM$\$$’NN$\$$“OO$\$$”PP$\$$•QQ$\$$–RR$\$$—SS$\$$˜TT$\$$™UU$\$$šVV$\$$›WW$\$$œXX$\$$YY$\$$žZZ$\$$Ÿ[[$\$$ \\$\$$¡]]$\$$¢__$\$$£``$\$$¤aa$\$$¥bb$\$$¦cc$\$$§dd$\$$¨ee$\$$©ff$\$$ªgg$\$$«hh$\$$¬ii$\$$­jj$\$$®kk$\$$¯ll$\$$°mm$\$$±nn$\$$²oo$\$$³pp$\$$´qq$\$$µrr$\$$¶ss$\$$·tt$\$$¸uu$\$$¹vv$\$$ºww$\$$»xx$\$$¼yy$\$$½zz$\$$¾{{$\$$¿}}$\$$À$\$$Á€€$\$$$\$$‚$\$$ăƒ$\$$ń„$\$$ƅ…$\$$dž†$\$$ȇ‡$\$$Ɉˆ$\$$ʉ‰$\$$ˊŠ$\$$̋‹$\$$͌Œ$\$$΍$\$$ώŽ$\$$Џ$\$$ѐ$\$$ґ‘$\$$Ӓ’$\$$ԓ“$\$$Ք”$\$$֕•$\$$ז–$\$$ؗ—$\$$٘˜$\$$ڙ™$\$$ۚš$\$$ܛ›$\$$ݜœ$\$$ޝ$\$$ߞž$\$$àŸŸ$\$$á  $\$$â¡¡$\$$㢢$\$$䣣$\$$夤$\$$楥$\$$禦$\$$觧$\$$騨$\$$ê©©$\$$몪$\$$ì««$\$$í¬¬$\$$î­­$\$$ï®®$\$$ð¯¯$\$$ñ°°$\$$ò±±$\$$ó²²$\$$ô³³$\$$õ´´$\$$öµµ$\$$÷¶¶$\$$ø··$\$$ù¸¸$\$$ú¹¹$\$$ûºº$\$$ü»»$\$$ý¼¼$\$$þ½½$\$$ÿ¾¾$\$$¿¿$\$$ÀÀ$\$$ÁÁ$\$$ÂÂ$\$$ÃÃ$\$$ÄÄ$\$$ÅÅ$\$$ÆÆ$\$$ ÇÇ$\$$ ÈÈ$\$$ÉÉ$\$$ÊÊ$\$$ËË$\$$ÌÌ$\$$ÍÍ$\$$ÎÎ$\$$ÏÏ$\$$ÐÐ$\$$ÑÑ$\$$ÒÒ$\$$ÓÓ$\$$ÔÔ$\$$ÕÕ$\$$ÖÖ$\$$××$\$$ØØ$\$$ÙÙ$\$$ÚÚ$\$$#ÛÛ$\$$%ÜÜ$\$$*ÝÝ$\$$+ÞÞ$\$$,ßß$\$$/àà$\$$:áá$\$$<ââ$\$$>ãã$\$$?ää$\$$@åå$\$$[ææ$\$$\çç$\$$]èè$\$$`éé$\$${êê$\$$}ëë$\$$ìì$\$$€íí$\$$îî$\$$‚ïï$\$$ƒðð$\$$„ññ$\$$…òò$\$$†óó$\$$‡ôô$\$$ˆõõ$\$$‰öö$\$$Š÷÷$\$$‹øø$\$$Œùù$\$$úú$\$$Žûû$\$$üü$\$$ýý$\$$‘þþ$\$$’ÿÿ$\$$$\$$\$$\$$\$$\$$\$$\$$\$ $\$ $\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$###$\$%%%$\$***$\$+++$\$,,,$\$/--$\$:..$\$00$\$?11$\$@22$\$[33$\$\44$\$]55$\$`66$\${77$\$}88$\$99$\$€::$\$<<$\$‚>>$\$ƒ??$\$„@@$\$…AA$\$†BB$\$‡CC$\$ˆDD$\$‰EE$\$ŠFF$\$‹GG$\$ŒHH$\$II$\$ŽJJ$\$KK$\$LL$\$‘MM$\$’NN$\$“OO$\$”PP$\$•QQ$\$–RR$\$—SS$\$˜TT$\$™UU$\$šVV$\$›WW$\$œXX$\$YY$\$žZZ$\$Ÿ[[$\$ \\$\$¡]]$\$¢__$\$£``$\$¤aa$\$¥bb$\$¦cc$\$§dd$\$¨ee$\$©ff$\$ªgg$\$«hh$\$¬ii$\$­jj$\$®kk$\$¯ll$\$°mm$\$±nn$\$²oo$\$³pp$\$´qq$\$µrr$\$¶ss$\$·tt$\$¸uu$\$¹vv$\$ºww$\$»xx$\$¼yy$\$½zz$\$¾{{$\$¿}}$\$À$\$Á€€$\$$\$‚$\$ăƒ$\$ń„$\$ƅ…$\$dž†$\$ȇ‡$\$Ɉˆ$\$ʉ‰$\$ˊŠ$\$̋‹$\$͌Œ$\$΍$\$ώŽ$\$Џ$\$ѐ$\$ґ‘$\$Ӓ’$\$ԓ“$\$Ք”$\$֕•$\$ז–$\$ؗ—$\$٘˜$\$ڙ™$\$ۚš$\$ܛ›$\$ݜœ$\$ޝ$\$ߞž$\$àŸŸ$\$á  $\$â¡¡$\$㢢$\$䣣$\$夤$\$楥$\$禦$\$觧$\$騨$\$ê©©$\$몪$\$ì««$\$í¬¬$\$î­­$\$ï®®$\$ð¯¯$\$ñ°°$\$ò±±$\$ó²²$\$ô³³$\$õ´´$\$öµµ$\$÷¶¶$\$ø··$\$ù¸¸$\$ú¹¹$\$ûºº$\$ü»»$\$ý¼¼$\$þ½½$\$ÿ¾¾$\$¿¿$\$ÀÀ$\$ÁÁ$\$ÂÂ$\$ÃÃ$\$ÄÄ$\$ÅÅ$\$ÆÆ$\$ ÇÇ$\$ ÈÈ$\$ÉÉ$\$ÊÊ$\$ËË$\$ÌÌ$\$ÍÍ$\$ÎÎ$\$ÏÏ$\$ÐÐ$\$ÑÑ$\$ÒÒ$\$ÓÓ$\$ÔÔ$\$ÕÕ$\$ÖÖ$\$××$\$ØØ$\$ÙÙ$\$ÚÚ$\$#ÛÛ$\$%ÜÜ$\$*ÝÝ$\$+ÞÞ$\$,ßß$\$/àà$\$:áá$\$<ââ$\$>ãã$\$?ää$\$@åå$\$[ææ$\$\çç$\$]èè$\$`éé$\${êê$\$}ëë$\$ìì$\$€íí$\$îî$\$‚ïï$\$ƒðð$\$„ññ$\$…òò$\$†óó$\$‡ôô$\$ˆõõ$\$‰öö$\$Š÷÷$\$‹øø$\$Œùù$\$úú$\$Žûû$\$üü$\$ýý$\$‘þþ$\$’ÿÿ$\$$${$${$${$${ $ ${$${$${$${$${$${$${$${$${$${###$%%%${***$+++${,,,$/--${:..$00$?11${@22$[33${\44$]55${`66${77${}88$99${€::$<<${‚>>$ƒ??${„@@$…AA${†BB$‡CC${ˆDD$‰EE${ŠFF$‹GG${ŒHH$II${ŽJJ$KK${LL$‘MM${’NN$“OO${”PP$•QQ${–RR$—SS${˜TT$™UU${šVV$›WW${œXX$YY${žZZ$Ÿ[[${ \\$¡]]${¢__$£``${¤aa$¥bb${¦cc$§dd${¨ee$©ff${ªgg$«hh${¬ii$­jj${®kk$¯ll${°mm$±nn${²oo$³pp${´qq$µrr${¶ss$·tt${¸uu$¹vv${ºww$»xx${¼yy$½zz${¾{{$¿}}${À$Á€€${$‚${ăƒ$ń„${ƅ…$dž†${ȇ‡$Ɉˆ${ʉ‰$ˊŠ${̋‹$͌Œ${΍$ώŽ${Џ$ѐ${ґ‘$Ӓ’${ԓ“$Ք”${֕•$ז–${ؗ—$٘˜${ڙ™$ۚš${ܛ›$ݜœ${ޝ$ߞž${àŸŸ$á  ${â¡¡$㢢${䣣$夤${楥$禦${觧$騨${ê©©$몪${ì««$í¬¬${î­­$ï®®${ð¯¯$ñ°°${ò±±$ó²²${ô³³$õ´´${öµµ$÷¶¶${ø··$ù¸¸${ú¹¹$ûºº${ü»»$ý¼¼${þ½½$ÿ¾¾${¿¿$ÀÀ${ÁÁ$ÂÂ${ÃÃ$ÄÄ${ÅÅ$ÆÆ${ ÇÇ$ ÈÈ${ÉÉ$ÊÊ${ËË$ÌÌ${ÍÍ$ÎÎ${ÏÏ$ÐÐ${ÑÑ$ÒÒ${ÓÓ$ÔÔ${ÕÕ$ÖÖ${××$ØØ${ÙÙ$ÚÚ${#ÛÛ$%ÜÜ${*ÝÝ$+ÞÞ${,ßß$/àà${:áá$<ââ${>ãã$?ää${@åå$[ææ${\çç$]èè${`éé${êê${}ëë$ìì${€íí$îî${‚ïï$ƒðð${„ññ$…òò${†óó$‡ôô${ˆõõ$‰öö${Š÷÷$‹øø${Œùù$úú${Žûû$üü${ýý$‘þþ${’ÿÿ$  +]]]]]]]]]] ] ]]]]]]]]]]]]]]]]]]]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~]]€]]‚]ƒ]„]…]†]‡]ˆ]‰]Š]‹]Œ]]Ž]]]‘]’]“]”]•]–]—]˜]™]š]›]œ]]ž]Ÿ] ]¡]¢]£]¤]¥]¦]§]¨]©]ª]«]¬]­]®]¯]°]±]²]³]´]µ]¶]·]¸]¹]º]»]¼]½]¾]¿]À]Á]Â]Ã]Ä]Å]Æ]Ç]È]É]Ê]Ë]Ì]Í]Î]Ï]Ð]Ñ]Ò]Ó]Ô]Õ]Ö]×]Ø]Ù]Ú]Û]Ü]Ý]Þ]ß]à]á]â]ã]ä]å]æ]ç]è]é]ê]ë]ì]í]î]ï]ð]ñ]ò]ó]ô]õ]ö]÷]ø]ù]ú]û]ü]ý]þ]ÿ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            $\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$ $\$\$ $\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$$\$\$###$\$\$%%%$\$\$***$\$\$+++$\$\$,,,$\$\$/--$\$\$:..$\$\$00$\$\$?11$\$\$@22$\$\$[33$\$\$\44$\$\$]55$\$\$`66$\$\${77$\$\$}88$\$\$99$\$\$€::$\$\$<<$\$\$‚>>$\$\$ƒ??$\$\$„@@$\$\$…AA$\$\$†BB$\$\$‡CC$\$\$ˆDD$\$\$‰EE$\$\$ŠFF$\$\$‹GG$\$\$ŒHH$\$\$II$\$\$ŽJJ$\$\$KK$\$\$LL$\$\$‘MM$\$\$’NN$\$\$“OO$\$\$”PP$\$\$•QQ$\$\$–RR$\$\$—SS$\$\$˜TT$\$\$™UU$\$\$šVV$\$\$›WW$\$\$œXX$\$\$YY$\$\$žZZ$\$\$Ÿ[[$\$\$ \\$\$\$¡]]$\$\$¢__$\$\$£``$\$\$¤aa$\$\$¥bb$\$\$¦cc$\$\$§dd$\$\$¨ee$\$\$©ff$\$\$ªgg$\$\$«hh$\$\$¬ii$\$\$­jj$\$\$®kk$\$\$¯ll$\$\$°mm$\$\$±nn$\$\$²oo$\$\$³pp$\$\$´qq$\$\$µrr$\$\$¶ss$\$\$·tt$\$\$¸uu$\$\$¹vv$\$\$ºww$\$\$»xx$\$\$¼yy$\$\$½zz$\$\$¾{{$\$\$¿}}$\$\$À$\$\$Á€€$\$\$$\$\$‚$\$\$ăƒ$\$\$ń„$\$\$ƅ…$\$\$dž†$\$\$ȇ‡$\$\$Ɉˆ$\$\$ʉ‰$\$\$ˊŠ$\$\$̋‹$\$\$͌Œ$\$\$΍$\$\$ώŽ$\$\$Џ$\$\$ѐ$\$\$ґ‘$\$\$Ӓ’$\$\$ԓ“$\$\$Ք”$\$\$֕•$\$\$ז–$\$\$ؗ—$\$\$٘˜$\$\$ڙ™$\$\$ۚš$\$\$ܛ›$\$\$ݜœ$\$\$ޝ$\$\$ߞž$\$\$àŸŸ$\$\$á  $\$\$â¡¡$\$\$㢢$\$\$䣣$\$\$夤$\$\$楥$\$\$禦$\$\$觧$\$\$騨$\$\$ê©©$\$\$몪$\$\$ì««$\$\$í¬¬$\$\$î­­$\$\$ï®®$\$\$ð¯¯$\$\$ñ°°$\$\$ò±±$\$\$ó²²$\$\$ô³³$\$\$õ´´$\$\$öµµ$\$\$÷¶¶$\$\$ø··$\$\$ù¸¸$\$\$ú¹¹$\$\$ûºº$\$\$ü»»$\$\$ý¼¼$\$\$þ½½$\$\$ÿ¾¾$\$\$¿¿$\$\$ÀÀ$\$\$ÁÁ$\$\$ÂÂ$\$\$ÃÃ$\$\$ÄÄ$\$\$ÅÅ$\$\$ÆÆ$\$\$ ÇÇ$\$\$ ÈÈ$\$\$ÉÉ$\$\$ÊÊ$\$\$ËË$\$\$ÌÌ$\$\$ÍÍ$\$\$ÎÎ$\$\$ÏÏ$\$\$ÐÐ$\$\$ÑÑ$\$\$ÒÒ$\$\$ÓÓ$\$\$ÔÔ$\$\$ÕÕ$\$\$ÖÖ$\$\$××$\$\$ØØ$\$\$ÙÙ$\$\$ÚÚ$\$\$#ÛÛ$\$\$%ÜÜ$\$\$*ÝÝ$\$\$+ÞÞ$\$\$,ßß$\$\$/àà$\$\$:áá$\$\$<ââ$\$\$>ãã$\$\$?ää$\$\$@åå$\$\$[ææ$\$\$\çç$\$\$]èè$\$\$`éé$\$\${êê$\$\$}ëë$\$\$ìì$\$\$€íí$\$\$îî$\$\$‚ïï$\$\$ƒðð$\$\$„ññ$\$\$…òò$\$\$†óó$\$\$‡ôô$\$\$ˆõõ$\$\$‰öö$\$\$Š÷÷$\$\$‹øø$\$\$Œùù$\$\$úú$\$\$Žûû$\$\$üü$\$\$ýý$\$\$‘þþ$\$\$’ÿÿ$\$\$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$ $\$$ $\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$$\$$###$\$$%%%$\$$***$\$$+++$\$$,,,$\$$/--$\$$:..$\$$00$\$$?11$\$$@22$\$$[33$\$$\44$\$$]55$\$$`66$\$${77$\$$}88$\$$99$\$$€::$\$$<<$\$$‚>>$\$$ƒ??$\$$„@@$\$$…AA$\$$†BB$\$$‡CC$\$$ˆDD$\$$‰EE$\$$ŠFF$\$$‹GG$\$$ŒHH$\$$II$\$$ŽJJ$\$$KK$\$$LL$\$$‘MM$\$$’NN$\$$“OO$\$$”PP$\$$•QQ$\$$–RR$\$$—SS$\$$˜TT$\$$™UU$\$$šVV$\$$›WW$\$$œXX$\$$YY$\$$žZZ$\$$Ÿ[[$\$$ \\$\$$¡]]$\$$¢__$\$$£``$\$$¤aa$\$$¥bb$\$$¦cc$\$$§dd$\$$¨ee$\$$©ff$\$$ªgg$\$$«hh$\$$¬ii$\$$­jj$\$$®kk$\$$¯ll$\$$°mm$\$$±nn$\$$²oo$\$$³pp$\$$´qq$\$$µrr$\$$¶ss$\$$·tt$\$$¸uu$\$$¹vv$\$$ºww$\$$»xx$\$$¼yy$\$$½zz$\$$¾{{$\$$¿}}$\$$À$\$$Á€€$\$$$\$$‚$\$$ăƒ$\$$ń„$\$$ƅ…$\$$dž†$\$$ȇ‡$\$$Ɉˆ$\$$ʉ‰$\$$ˊŠ$\$$̋‹$\$$͌Œ$\$$΍$\$$ώŽ$\$$Џ$\$$ѐ$\$$ґ‘$\$$Ӓ’$\$$ԓ“$\$$Ք”$\$$֕•$\$$ז–$\$$ؗ—$\$$٘˜$\$$ڙ™$\$$ۚš$\$$ܛ›$\$$ݜœ$\$$ޝ$\$$ߞž$\$$àŸŸ$\$$á  $\$$â¡¡$\$$㢢$\$$䣣$\$$夤$\$$楥$\$$禦$\$$觧$\$$騨$\$$ê©©$\$$몪$\$$ì««$\$$í¬¬$\$$î­­$\$$ï®®$\$$ð¯¯$\$$ñ°°$\$$ò±±$\$$ó²²$\$$ô³³$\$$õ´´$\$$öµµ$\$$÷¶¶$\$$ø··$\$$ù¸¸$\$$ú¹¹$\$$ûºº$\$$ü»»$\$$ý¼¼$\$$þ½½$\$$ÿ¾¾$\$$¿¿$\$$ÀÀ$\$$ÁÁ$\$$ÂÂ$\$$ÃÃ$\$$ÄÄ$\$$ÅÅ$\$$ÆÆ$\$$ ÇÇ$\$$ ÈÈ$\$$ÉÉ$\$$ÊÊ$\$$ËË$\$$ÌÌ$\$$ÍÍ$\$$ÎÎ$\$$ÏÏ$\$$ÐÐ$\$$ÑÑ$\$$ÒÒ$\$$ÓÓ$\$$ÔÔ$\$$ÕÕ$\$$ÖÖ$\$$××$\$$ØØ$\$$ÙÙ$\$$ÚÚ$\$$#ÛÛ$\$$%ÜÜ$\$$*ÝÝ$\$$+ÞÞ$\$$,ßß$\$$/àà$\$$:áá$\$$<ââ$\$$>ãã$\$$?ää$\$$@åå$\$$[ææ$\$$\çç$\$$]èè$\$$`éé$\$${êê$\$$}ëë$\$$ìì$\$$€íí$\$$îî$\$$‚ïï$\$$ƒðð$\$$„ññ$\$$…òò$\$$†óó$\$$‡ôô$\$$ˆõõ$\$$‰öö$\$$Š÷÷$\$$‹øø$\$$Œùù$\$$úú$\$$Žûû$\$$üü$\$$ýý$\$$‘þþ$\$$’ÿÿ$\$$$\$$\$$\$$\$$\$$\$$\$$\$ $\$ $\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$###$\$%%%$\$***$\$+++$\$,,,$\$/--$\$:..$\$00$\$?11$\$@22$\$[33$\$\44$\$]55$\$`66$\${77$\$}88$\$99$\$€::$\$<<$\$‚>>$\$ƒ??$\$„@@$\$…AA$\$†BB$\$‡CC$\$ˆDD$\$‰EE$\$ŠFF$\$‹GG$\$ŒHH$\$II$\$ŽJJ$\$KK$\$LL$\$‘MM$\$’NN$\$“OO$\$”PP$\$•QQ$\$–RR$\$—SS$\$˜TT$\$™UU$\$šVV$\$›WW$\$œXX$\$YY$\$žZZ$\$Ÿ[[$\$ \\$\$¡]]$\$¢__$\$£``$\$¤aa$\$¥bb$\$¦cc$\$§dd$\$¨ee$\$©ff$\$ªgg$\$«hh$\$¬ii$\$­jj$\$®kk$\$¯ll$\$°mm$\$±nn$\$²oo$\$³pp$\$´qq$\$µrr$\$¶ss$\$·tt$\$¸uu$\$¹vv$\$ºww$\$»xx$\$¼yy$\$½zz$\$¾{{$\$¿}}$\$À$\$Á€€$\$$\$‚$\$ăƒ$\$ń„$\$ƅ…$\$dž†$\$ȇ‡$\$Ɉˆ$\$ʉ‰$\$ˊŠ$\$̋‹$\$͌Œ$\$΍$\$ώŽ$\$Џ$\$ѐ$\$ґ‘$\$Ӓ’$\$ԓ“$\$Ք”$\$֕•$\$ז–$\$ؗ—$\$٘˜$\$ڙ™$\$ۚš$\$ܛ›$\$ݜœ$\$ޝ$\$ߞž$\$àŸŸ$\$á  $\$â¡¡$\$㢢$\$䣣$\$夤$\$楥$\$禦$\$觧$\$騨$\$ê©©$\$몪$\$ì««$\$í¬¬$\$î­­$\$ï®®$\$ð¯¯$\$ñ°°$\$ò±±$\$ó²²$\$ô³³$\$õ´´$\$öµµ$\$÷¶¶$\$ø··$\$ù¸¸$\$ú¹¹$\$ûºº$\$ü»»$\$ý¼¼$\$þ½½$\$ÿ¾¾$\$¿¿$\$ÀÀ$\$ÁÁ$\$ÂÂ$\$ÃÃ$\$ÄÄ$\$ÅÅ$\$ÆÆ$\$ ÇÇ$\$ ÈÈ$\$ÉÉ$\$ÊÊ$\$ËË$\$ÌÌ$\$ÍÍ$\$ÎÎ$\$ÏÏ$\$ÐÐ$\$ÑÑ$\$ÒÒ$\$ÓÓ$\$ÔÔ$\$ÕÕ$\$ÖÖ$\$××$\$ØØ$\$ÙÙ$\$ÚÚ$\$#ÛÛ$\$%ÜÜ$\$*ÝÝ$\$+ÞÞ$\$,ßß$\$/àà$\$:áá$\$<ââ$\$>ãã$\$?ää$\$@åå$\$[ææ$\$\çç$\$]èè$\$`éé$\${êê$\$}ëë$\$ìì$\$€íí$\$îî$\$‚ïï$\$ƒðð$\$„ññ$\$…òò$\$†óó$\$‡ôô$\$ˆõõ$\$‰öö$\$Š÷÷$\$‹øø$\$Œùù$\$úú$\$Žûû$\$üü$\$ýý$\$‘þþ$\$’ÿÿ$\$$${$${$${$${ $ ${$${$${$${$${$${$${$${$${$${###$%%%${***$+++${,,,$/--${:..$00$?11${@22$[33${\44$]55${`66${77${}88$99${€::$<<${‚>>$ƒ??${„@@$…AA${†BB$‡CC${ˆDD$‰EE${ŠFF$‹GG${ŒHH$II${ŽJJ$KK${LL$‘MM${’NN$“OO${”PP$•QQ${–RR$—SS${˜TT$™UU${šVV$›WW${œXX$YY${žZZ$Ÿ[[${ \\$¡]]${¢__$£``${¤aa$¥bb${¦cc$§dd${¨ee$©ff${ªgg$«hh${¬ii$­jj${®kk$¯ll${°mm$±nn${²oo$³pp${´qq$µrr${¶ss$·tt${¸uu$¹vv${ºww$»xx${¼yy$½zz${¾{{$¿}}${À$Á€€${$‚${ăƒ$ń„${ƅ…$dž†${ȇ‡$Ɉˆ${ʉ‰$ˊŠ${̋‹$͌Œ${΍$ώŽ${Џ$ѐ${ґ‘$Ӓ’${ԓ“$Ք”${֕•$ז–${ؗ—$٘˜${ڙ™$ۚš${ܛ›$ݜœ${ޝ$ߞž${àŸŸ$á  ${â¡¡$㢢${䣣$夤${楥$禦${觧$騨${ê©©$몪${ì««$í¬¬${î­­$ï®®${ð¯¯$ñ°°${ò±±$ó²²${ô³³$õ´´${öµµ$÷¶¶${ø··$ù¸¸${ú¹¹$ûºº${ü»»$ý¼¼${þ½½$ÿ¾¾${¿¿$ÀÀ${ÁÁ$ÂÂ${ÃÃ$ÄÄ${ÅÅ$ÆÆ${ ÇÇ$ ÈÈ${ÉÉ$ÊÊ${ËË$ÌÌ${ÍÍ$ÎÎ${ÏÏ$ÐÐ${ÑÑ$ÒÒ${ÓÓ$ÔÔ${ÕÕ$ÖÖ${××$ØØ${ÙÙ$ÚÚ${#ÛÛ$%ÜÜ${*ÝÝ$+ÞÞ${,ßß$/àà${:áá$<ââ${>ãã$?ää${@åå$[ææ${\çç$]èè${`éé${êê${}ëë$ìì${€íí$îî${‚ïï$ƒðð${„ññ$…òò${†óó$‡ôô${ˆõõ$‰öö${Š÷÷$‹øø${Œùù$úú${Žûû$üü${ýý$‘þþ${’ÿÿ$    !"& ' ();=^|~    !"&'();###=%%%^***|+++~,,,/-- :.. 00 ?11!@22"[33&\44']55(`66){77;}88=99^€::|<<~‚>>ƒ?? „@@ @@ -7294,711 +8321,13879 @@ tru TRU tru!TRU"tru&TRU'tru(TRU)tru;TRU=tru^TRU|tru~TRtr TR tr TR tr!TR"tr&TR'tr(TR)tr;TR=tr^TR|tr~Tt T t T t!T"t&T't(T)t;T=t^T|t~Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y $\$y $\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y$\$y$\$Y#$\$y%$\$Y*$\$y+$\$Y,$\$y-$\$Y.$\$y/$\$Y:$\$y<$\$Y>$\$y?$\$Y@$\$y[$\$Y\$\$y]$\$Y`$\$y{$\$Y}$\$y$\$Y€$\$y$\$Y‚$\$yƒ$\$Y„$\$y…$\$Y†$\$y‡$\$Yˆ$\$y‰$\$YŠ$\$y‹$\$YŒ$\$y$\$YŽ$\$y$\$Y$\$y‘$\$Y’$\$y“$\$Y”$\$y•$\$Y–$\$y—$\$Y˜$\$y™$\$Yš$\$y›$\$Yœ$\$y$\$Yž$\$yŸ$\$Y $\$y¡$\$Y¢$\$y£$\$Y¤$\$y¥$\$Y¦$\$y§$\$Y¨$\$y©$\$Yª$\$y«$\$Y¬$\$y­$\$Y®$\$y¯$\$Y°$\$y±$\$Y²$\$y³$\$Y´$\$yµ$\$Y¶$\$y·$\$Y¸$\$y¹$\$Yº$\$y»$\$Y¼$\$y½$\$Y¾$\$y¿$\$YÀ$\$yÁ$\$YÂ$\$yÃ$\$YÄ$\$yÅ$\$YÆ$\$yÇ$\$YÈ$\$yÉ$\$YÊ$\$yË$\$YÌ$\$yÍ$\$YÎ$\$yÏ$\$YÐ$\$yÑ$\$YÒ$\$yÓ$\$YÔ$\$yÕ$\$YÖ$\$y×$\$YØ$\$yÙ$\$YÚ$\$yÛ$\$YÜ$\$yÝ$\$YÞ$\$yß$\$Yà$\$yá$\$Yâ$\$yã$\$Yä$\$yå$\$Yæ$\$yç$\$Yè$\$yé$\$Yê$\$yë$\$Yì$\$yí$\$Yî$\$yï$\$Yð$\$yñ$\$Yò$\$yó$\$Yô$\$yõ$\$Yö$\$y÷$\$Yø$\$yù$\$Yú$\$yû$\$Yü$\$yý$\$Yþ$\$yÿ$\$Y$\$y$\$Y0$\$y1$\$Y2$\$y3$\$Y4$\$y5$\$Y6$\$y7$\$Y8 $\$y9 $\$YA$\$yB$\$YC$\$yD$\$YF$\$yG$\$YH$\$yI$\$YJ$\$yK$\$YL$\$yM$\$YN$\$yO$\$YP$\$yQ$\$YR$\$yS$\$YT#$\$yU%$\$YV*$\$yW+$\$YX,$\$yY-$\$YZ.$\$y_/$\$Ya:$\$yb<$\$Yc>$\$yd?$\$Yf@$\$yg[$\$Yh\$\$yi]$\$Yj`$\$yk{$\$Yl}$\$ym$\$Yn€$\$yo$\$Yp‚$\$yqƒ$\$Yr„$\$ys…$\$Yt†$\$yu‡$\$Yvˆ$\$yw‰$\$YxŠ$\$yy‹$\$YzŒ$\$y0$\$Y1Ž$\$y2$\$Y3$\$y4‘$\$Y5’$\$y6“$\$Y7”$\$y8•$\$Y9–$\$yA—$\$YB˜$\$yC™$\$YDš$\$yF›$\$YGœ$\$yH$\$YIž$\$yJŸ$\$YK $\$yL¡$\$YM¢$\$yN£$\$YO¤$\$yP¥$\$YQ¦$\$yR§$\$YS¨$\$yT©$\$YUª$\$yV«$\$YW¬$\$yX­$\$YY®$\$yZ¯$\$Y_°$\$ya±$\$Yb²$\$yc³$\$Yd´$\$yfµ$\$Yg¶$\$yh·$\$Yi¸$\$yj¹$\$Ykº$\$yl»$\$Ym¼$\$yn½$\$Yo¾$\$yp¿$\$YqÀ$\$yrÁ$\$YsÂ$\$ytÃ$\$YuÄ$\$yvÅ$\$YwÆ$\$yxÇ$\$YyÈ$\$yzÉ$\$Y0Ê$\$y1Ë$\$Y2Ì$\$y3Í$\$Y4Î$\$y5Ï$\$Y6Ð$\$y7Ñ$\$Y8Ò$\$y9Ó$\$YAÔ$\$yBÕ$\$YCÖ$\$yD×$\$YFØ$\$yGÙ$\$YHÚ$\$yIÛ$\$YJÜ$\$yKÝ$\$YLÞ$\$yMß$\$YNà$\$yOá$\$YPâ$\$yQã$\$YRä$\$ySå$\$YTæ$\$yUç$\$YVè$\$yWé$\$YXê$\$yYë$\$YZì$\$y_í$\$Yaî$\$ybï$\$Ycð$\$ydñ$\$Yfò$\$ygó$\$Yhô$\$yiõ$\$Yjö$\$yk÷$\$Ylø$\$ymù$\$Ynú$\$yoû$\$Ypü$\$yqý$\$Yrþ$\$ysÿ$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE $\$ye $\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE$\$ye$\$YE#$\$ye%$\$YE*$\$ye+$\$YE,$\$ye-$\$YE.$\$ye/$\$YE:$\$ye<$\$YE>$\$ye?$\$YE@$\$ye[$\$YE\$\$ye]$\$YE`$\$ye{$\$YE}$\$ye$\$YE€$\$ye$\$YE‚$\$yeƒ$\$YE„$\$ye…$\$YE†$\$ye‡$\$YEˆ$\$ye‰$\$YEŠ$\$ye‹$\$YEŒ$\$ye$\$YEŽ$\$ye$\$YE$\$ye‘$\$YE’$\$ye“$\$YE”$\$ye•$\$YE–$\$ye—$\$YE˜$\$ye™$\$YEš$\$ye›$\$YEœ$\$ye$\$YEž$\$yeŸ$\$YE $\$ye¡$\$YE¢$\$ye£$\$YE¤$\$ye¥$\$YE¦$\$ye§$\$YE¨$\$ye©$\$YEª$\$ye«$\$YE¬$\$ye­$\$YE®$\$ye¯$\$YE°$\$ye±$\$YE²$\$ye³$\$YE´$\$yeµ$\$YE¶$\$ye·$\$YE¸$\$ye¹$\$YEº$\$ye»$\$YE¼$\$ye½$\$YE¾$\$ye¿$\$YEÀ$\$yeÁ$\$YEÂ$\$yeÃ$\$YEÄ$\$yeÅ$\$YEÆ$\$yeÇ$\$YEÈ$\$yeÉ$\$YEÊ$\$yeË$\$YEÌ$\$yeÍ$\$YEÎ$\$yeÏ$\$YEÐ$\$yeÑ$\$YEÒ$\$yeÓ$\$YEÔ$\$yeÕ$\$YEÖ$\$ye×$\$YEØ$\$yeÙ$\$YEÚ$\$yeÛ$\$YEÜ$\$yeÝ$\$YEÞ$\$yeß$\$YEà$\$yeá$\$YEâ$\$yeã$\$YEä$\$yeå$\$YEæ$\$yeç$\$YEè$\$yeé$\$YEê$\$yeë$\$YEì$\$yeí$\$YEî$\$yeï$\$YEð$\$yeñ$\$YEò$\$yeó$\$YEô$\$yeõ$\$YEö$\$ye÷$\$YEø$\$yeù$\$YEú$\$yeû$\$YEü$\$yeý$\$YEþ$\$yeÿ$\$YE$\$ye$\$YE0$\$ye1$\$YE2$\$ye3$\$YE4$\$ye5$\$YE6$\$ye7$\$YE8 $\$ye9 $\$YEA$\$yeB$\$YEC$\$yeD$\$YEE$\$yeF$\$YEG$\$yeH$\$YEI$\$yeJ$\$YEK$\$yeL$\$YEM$\$yeN$\$YEO$\$yeP$\$YEQ$\$yeR$\$YET#$\$yeU%$\$YEV*$\$yeW+$\$YEX,$\$yeY-$\$YEZ.$\$ye_/$\$YEa:$\$yeb<$\$YEc>$\$yed?$\$YEe@$\$yef[$\$YEg\$\$yeh]$\$YEi`$\$yej{$\$YEk}$\$yel$\$YEm€$\$yen$\$YEo‚$\$yepƒ$\$YEq„$\$yer…$\$YEt†$\$yeu‡$\$YEvˆ$\$yew‰$\$YExŠ$\$yey‹$\$YEzŒ$\$ye0$\$YE1Ž$\$ye2$\$YE3$\$ye4‘$\$YE5’$\$ye6“$\$YE7”$\$ye8•$\$YE9–$\$yeA—$\$YEB˜$\$yeC™$\$YEDš$\$yeE›$\$YEFœ$\$yeG$\$YEHž$\$yeIŸ$\$YEJ $\$yeK¡$\$YEL¢$\$yeM£$\$YEN¤$\$yeO¥$\$YEP¦$\$yeQ§$\$YER¨$\$yeT©$\$YEUª$\$yeV«$\$YEW¬$\$yeX­$\$YEY®$\$yeZ¯$\$YE_°$\$yea±$\$YEb²$\$yec³$\$YEd´$\$yeeµ$\$YEf¶$\$yeg·$\$YEh¸$\$yei¹$\$YEjº$\$yek»$\$YEl¼$\$yem½$\$YEn¾$\$yeo¿$\$YEpÀ$\$yeqÁ$\$YErÂ$\$yetÃ$\$YEuÄ$\$yevÅ$\$YEwÆ$\$yexÇ$\$YEyÈ$\$yezÉ$\$YE0Ê$\$ye1Ë$\$YE2Ì$\$ye3Í$\$YE4Î$\$ye5Ï$\$YE6Ð$\$ye7Ñ$\$YE8Ò$\$ye9Ó$\$YEAÔ$\$yeBÕ$\$YECÖ$\$yeD×$\$YEEØ$\$yeFÙ$\$YEGÚ$\$yeHÛ$\$YEIÜ$\$yeJÝ$\$YEKÞ$\$yeLß$\$YEMà$\$yeNá$\$YEOâ$\$yePã$\$YEQä$\$yeRå$\$YETæ$\$yeUç$\$YEVè$\$yeWé$\$YEXê$\$yeYë$\$YEZì$\$ye_í$\$YEaî$\$yebï$\$YEcð$\$yedñ$\$YEeò$\$yefó$\$YEgô$\$yehõ$\$YEiö$\$yej÷$\$YEkø$\$yelù$\$YEmú$\$yenû$\$YEoü$\$yepý$\$YEqþ$\$yerÿ$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES $\$yes $\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES$\$yes$\$YES#$\$yes%$\$YES*$\$yes+$\$YES,$\$yes-$\$YES.$\$yes/$\$YES:$\$yes<$\$YES>$\$yes?$\$YES@$\$yes[$\$YES\$\$yes]$\$YES`$\$yes{$\$YES}$\$yes$\$YES€$\$yes$\$YES‚$\$yesƒ$\$YES„$\$yes…$\$YES†$\$yes‡$\$YESˆ$\$yes‰$\$YESŠ$\$yes‹$\$YESŒ$\$yes$\$YESŽ$\$yes$\$YES$\$yes‘$\$YES’$\$yes“$\$YES”$\$yes•$\$YES–$\$yes—$\$YES˜$\$yes™$\$YESš$\$yes›$\$YESœ$\$yes$\$YESž$\$yesŸ$\$YES $\$yes¡$\$YES¢$\$yes£$\$YES¤$\$yes¥$\$YES¦$\$yes§$\$YES¨$\$yes©$\$YESª$\$yes«$\$YES¬$\$yes­$\$YES®$\$yes¯$\$YES°$\$yes±$\$YES²$\$yes³$\$YES´$\$yesµ$\$YES¶$\$yes·$\$YES¸$\$yes¹$\$YESº$\$yes»$\$YES¼$\$yes½$\$YES¾$\$yes¿$\$YESÀ$\$yesÁ$\$YESÂ$\$yesÃ$\$YESÄ$\$yesÅ$\$YESÆ$\$yesÇ$\$YESÈ$\$yesÉ$\$YESÊ$\$yesË$\$YESÌ$\$yesÍ$\$YESÎ$\$yesÏ$\$YESÐ$\$yesÑ$\$YESÒ$\$yesÓ$\$YESÔ$\$yesÕ$\$YESÖ$\$yes×$\$YESØ$\$yesÙ$\$YESÚ$\$yesÛ$\$YESÜ$\$yesÝ$\$YESÞ$\$yesß$\$YESà$\$yesá$\$YESâ$\$yesã$\$YESä$\$yeså$\$YESæ$\$yesç$\$YESè$\$yesé$\$YESê$\$yesë$\$YESì$\$yesí$\$YESî$\$yesï$\$YESð$\$yesñ$\$YESò$\$yesó$\$YESô$\$yesõ$\$YESö$\$yes÷$\$YESø$\$yesù$\$YESú$\$yesû$\$YESü$\$yesý$\$YESþ$\$yesÿ$\$YEye YE ye YE ye!YE"ye&YE'ye(YE)ye;YE=ye^YE|ye~Yy Y -y Y y!Y"y&Y'y(Y)y;Y=y^Y|y~5 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################((33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------((33----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------((33----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(############################################################################################################################################################################################################################################################## 55#############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ### - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # # # -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ##################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ### - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - # - ############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################  +y Y y!Y"y&Y'y(Y)y;Y=y^Y|y~  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +                                                                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   !"$&() ; =[^{|}~   !"$&();=[ ^###{%%%|'''}***~+++ ,,, --- ...!///"000$111&222(333)444;555=666[777^888{999|:::}<<<~>>> ??? @@ -8041,7 +22236,7 @@ u v!w"x$y&z() Î Ï!Ð"Ñ$Ò&Ó(Ô)Õ;Ö=×[Ø^Ù{Ú|Û}Ü~Ý Þ ß à!á"â$ã&ä(å)æ;ç=è[é^ê{ë|ì}í~î ï ð ñ!ò"ó$ô&õ(ö)÷;ø=ù[ú^û{ü|ý}þ~ÿ - !"$&();=[^{|~}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             >>>>>>>>>>>>>>>> re2c: warning: line 384: column 13: escape has no effect: '\.' [-Wuseless-escape] + !"$&();=[^{|~}re2c: warning: line 384: column 13: escape has no effect: '\.' [-Wuseless-escape] re2c: warning: line 384: column 32: escape has no effect: '\.' [-Wuseless-escape] re2c: warning: line 391: column 27: escape has no effect: '\[' [-Wuseless-escape] re2c: warning: line 392: column 11: escape has no effect: '\[' [-Wuseless-escape] diff --git a/re2c/test/php20150211_zend_language_scanner.igcd--skeleton--flex-syntax--case-inverted.c b/re2c/test/php20150211_zend_language_scanner.igcd--skeleton--flex-syntax--case-inverted.c index 68c05217..3874ea82 100644 --- a/re2c/test/php20150211_zend_language_scanner.igcd--skeleton--flex-syntax--case-inverted.c +++ b/re2c/test/php20150211_zend_language_scanner.igcd--skeleton--flex-syntax--case-inverted.c @@ -150,7 +150,7 @@ int lex_line2358_INITIAL() if (yych == '<') goto yy5; YYSKIP (); yy4: - status = action_line2358_INITIAL(i, keys, input, token, &cursor, 135); + status = action_line2358_INITIAL(i, keys, input, token, &cursor, 3); continue; yy5: YYSKIP (); @@ -166,11 +166,11 @@ yy5: if (yych == 'p') goto yy10; } yy7: - status = action_line2358_INITIAL(i, keys, input, token, &cursor, 134); + status = action_line2358_INITIAL(i, keys, input, token, &cursor, 2); continue; yy8: YYSKIP (); - status = action_line2358_INITIAL(i, keys, input, token, &cursor, 132); + status = action_line2358_INITIAL(i, keys, input, token, &cursor, 0); continue; yy10: YYSKIP (); @@ -198,7 +198,7 @@ yy13: yy14: YYSKIP (); yy15: - status = action_line2358_INITIAL(i, keys, input, token, &cursor, 133); + status = action_line2358_INITIAL(i, keys, input, token, &cursor, 1); continue; yy16: YYSKIP (); @@ -374,7 +374,7 @@ int lex_line2358_ST_BACKQUOTE() } YYSKIP (); yy21: - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 166); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 6); continue; yy22: YYSKIP (); @@ -418,7 +418,7 @@ yy22: } yy23: YYSKIP (); - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 164); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 5); continue; yy25: YYSKIP (); @@ -437,15 +437,15 @@ yy26: if (yych <= '@') goto yy28; if (yych <= '[') goto yy35; yy28: - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 142); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 3); continue; yy29: YYSKIP (); - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 112); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 0); continue; yy31: YYSKIP (); - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 160); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 4); continue; yy33: YYSKIP (); @@ -456,7 +456,7 @@ yy34: goto yy28; yy35: YYSKIP (); - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 139); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 2); continue; yy37: YYSKIP (); @@ -472,7 +472,7 @@ yy37: } yy38: YYSKIP (); - status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 136); + status = action_line2358_ST_BACKQUOTE(i, keys, input, token, &cursor, 1); continue; } @@ -644,11 +644,11 @@ int lex_line2358_ST_DOUBLE_QUOTES() } YYSKIP (); yy44: - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 165); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 6); continue; yy45: YYSKIP (); - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 163); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 5); continue; yy47: YYSKIP (); @@ -707,15 +707,15 @@ yy49: if (yych <= '@') goto yy51; if (yych <= '[') goto yy58; yy51: - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 143); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 3); continue; yy52: YYSKIP (); - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 113); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 0); continue; yy54: YYSKIP (); - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 161); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 4); continue; yy56: YYSKIP (); @@ -726,7 +726,7 @@ yy57: goto yy51; yy58: YYSKIP (); - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 140); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 2); continue; yy60: YYSKIP (); @@ -742,7 +742,7 @@ yy60: } yy61: YYSKIP (); - status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 137); + status = action_line2358_ST_DOUBLE_QUOTES(i, keys, input, token, &cursor, 1); continue; } @@ -870,7 +870,7 @@ int lex_line2358_ST_END_HEREDOC() if (YYLESSTHAN (1)) YYFILL(1); yych = YYPEEK (); YYSKIP (); - status = action_line2358_ST_END_HEREDOC(i, keys, input, token, &cursor, 159); + status = action_line2358_ST_END_HEREDOC(i, keys, input, token, &cursor, 0); continue; } @@ -1036,7 +1036,7 @@ int lex_line2358_ST_HEREDOC() if (yych == '{') goto yy74; YYSKIP (); yy72: - status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 167); + status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 5); continue; yy73: YYSKIP (); @@ -1095,15 +1095,15 @@ yy75: if (yych <= '@') goto yy77; if (yych <= '[') goto yy84; yy77: - status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 144); + status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 3); continue; yy78: YYSKIP (); - status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 114); + status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 0); continue; yy80: YYSKIP (); - status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 162); + status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 4); continue; yy82: YYSKIP (); @@ -1114,7 +1114,7 @@ yy83: goto yy77; yy84: YYSKIP (); - status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 141); + status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 2); continue; yy86: YYSKIP (); @@ -1130,7 +1130,7 @@ yy86: } yy87: YYSKIP (); - status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 138); + status = action_line2358_ST_HEREDOC(i, keys, input, token, &cursor, 1); continue; } @@ -1334,7 +1334,7 @@ int lex_line2358_ST_IN_SCRIPTING() } yy92: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 169); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 130); continue; yy94: YYSKIP (); @@ -1349,15 +1349,15 @@ yy97: YYSKIP (); if ((yych = YYPEEK ()) == '=') goto yy158; yy98: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 110); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 106); continue; yy99: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 156); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 127); continue; yy101: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 152); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 123); continue; yy103: YYSKIP (); @@ -1386,7 +1386,7 @@ yy105: goto yy98; yy106: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 155); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 126); continue; yy108: yyaccept = 0; @@ -1524,7 +1524,7 @@ yy115: goto *yytarget[yych]; } yy116: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 119); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 110); continue; yy117: yyaccept = 1; @@ -1617,7 +1617,7 @@ yy124: goto *yytarget[(yych = YYPEEK ())]; } yy125: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 150); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 122); continue; yy126: yyaccept = 2; @@ -2154,7 +2154,7 @@ yy146: goto yy133; yy147: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 46); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 42); continue; yy149: YYSKIP (); @@ -2168,11 +2168,11 @@ yy150: goto yy133; yy151: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 158); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 129); continue; yy153: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 111); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 107); continue; yy155: YYSKIP (); @@ -2182,13 +2182,13 @@ yy155: goto yy98; yy156: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 115); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 108); continue; yy158: YYSKIP (); if ((yych = YYPEEK ()) == '=') goto yy282; yy159: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 87); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 83); continue; yy160: YYSKIP (); @@ -2232,19 +2232,19 @@ yy160: goto *yytarget[yych]; } yy162: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 145); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 121); continue; yy163: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 97); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 93); continue; yy165: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 104); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 100); continue; yy167: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 100); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 96); continue; yy169: YYSKIP (); @@ -2402,27 +2402,27 @@ yy180: yy181: YYSKIP (); if ((yych = YYPEEK ()) == '=') goto yy294; - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 93); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 89); continue; yy183: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 92); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 88); continue; yy185: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 82); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 78); continue; yy187: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 90); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 86); continue; yy189: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 83); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 79); continue; yy191: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 91); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 87); continue; yy193: YYSKIP (); @@ -2447,11 +2447,11 @@ yy196: if (yych == 'e') goto yy206; } yy198: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 123); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 112); continue; yy199: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 96); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 92); continue; yy201: yyaccept = 4; @@ -2460,11 +2460,11 @@ yy201: yych = YYPEEK (); if (yych == '*') goto yy298; yy202: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 153); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 124); continue; yy203: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 95); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 91); continue; yy205: YYSKIP (); @@ -2494,7 +2494,7 @@ yy207: goto yy171; yy208: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 45); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 41); continue; yy210: yyaccept = 5; @@ -2505,11 +2505,11 @@ yy210: if (yych <= '<') goto yy308; if (yych <= '=') goto yy310; yy211: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 108); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 104); continue; yy212: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 88); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 84); continue; yy214: YYSKIP (); @@ -2518,31 +2518,31 @@ yy214: yy215: YYSKIP (); if ((yych = YYPEEK ()) == '=') goto yy312; - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 86); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 82); continue; yy217: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 78); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 74); continue; yy219: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 89); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 85); continue; yy221: YYSKIP (); if ((yych = YYPEEK ()) == '=') goto yy314; - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 109); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 105); continue; yy223: YYSKIP (); if ((yych = YYPEEK ()) == '\n') goto yy316; if (yych == '\r') goto yy317; yy224: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 154); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 125); continue; yy225: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 48); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 44); continue; yy227: YYSKIP (); @@ -2901,7 +2901,7 @@ yy260: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 105); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 101); continue; yy262: YYSKIP (); @@ -3085,7 +3085,7 @@ yy274: goto yy133; yy275: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 102); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 98); continue; yy277: YYSKIP (); @@ -3129,15 +3129,15 @@ yy277: } yy278: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 101); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 97); continue; yy280: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 103); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 99); continue; yy282: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 85); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 81); continue; yy284: YYSKIP (); @@ -3201,11 +3201,11 @@ yy293: goto yy171; yy294: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 94); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 90); continue; yy296: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 47); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 43); continue; yy298: YYSKIP (); @@ -3226,7 +3226,7 @@ yy299: if (yybm[0+yych] & 64) { goto yy299; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 118); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 109); continue; yy302: YYSKIP (); @@ -3247,7 +3247,7 @@ yy305: if (yybm[0+yych] & 128) { goto yy305; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 120); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 111); continue; yy308: YYSKIP (); @@ -3292,15 +3292,15 @@ yy308: } yy310: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 98); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 94); continue; yy312: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 84); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 80); continue; yy314: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 99); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 95); continue; yy316: YYSKIP (); @@ -3322,7 +3322,7 @@ yy319: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 106); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 102); continue; yy321: YYSKIP (); @@ -3592,7 +3592,7 @@ yy354: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 49); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 45); continue; yy356: YYSKIP (); @@ -3700,14 +3700,14 @@ yy368: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 65); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 61); continue; yy370: YYSKIP (); if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 51); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 47); continue; yy372: YYSKIP (); @@ -3720,7 +3720,7 @@ yy373: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 107); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 103); continue; yy375: YYSKIP (); @@ -4101,7 +4101,7 @@ yy423: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 59); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 55); continue; yy425: YYSKIP (); @@ -4216,7 +4216,7 @@ yy439: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 79); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 75); continue; yy441: YYSKIP (); @@ -4399,7 +4399,7 @@ yy470: if (yych != ')') goto yy171; } YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 52); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 48); continue; yy473: YYSKIP (); @@ -4524,7 +4524,7 @@ yy482: yy483: YYSKIP (); yy484: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 157); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 128); continue; yy485: YYSKIP (); @@ -4542,7 +4542,7 @@ yy487: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 80); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 76); continue; yy489: YYSKIP (); @@ -4576,7 +4576,7 @@ yy496: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 50); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 46); continue; yy498: YYSKIP (); @@ -4614,7 +4614,7 @@ yy504: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 69); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 65); continue; yy506: YYSKIP (); @@ -4693,7 +4693,7 @@ yy513: goto *yytarget[(yych = YYPEEK ())]; } yy514: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 73); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 69); continue; yy515: YYSKIP (); @@ -4748,7 +4748,7 @@ yy523: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 68); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 64); continue; yy525: YYSKIP (); @@ -4824,7 +4824,7 @@ yy539: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 77); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 73); continue; yy541: YYSKIP (); @@ -4924,7 +4924,7 @@ yy558: if (yych != ')') goto yy171; } YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 57); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 53); continue; yy561: YYSKIP (); @@ -4952,7 +4952,7 @@ yy564: goto yy171; yy565: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 53); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 49); continue; yy567: YYSKIP (); @@ -5104,7 +5104,7 @@ yy587: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 67); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 63); continue; yy589: YYSKIP (); @@ -5159,7 +5159,7 @@ yy597: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 76); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 72); continue; yy599: YYSKIP (); @@ -5179,7 +5179,7 @@ yy602: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 71); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 67); continue; yy604: YYSKIP (); @@ -5240,7 +5240,7 @@ yy614: goto yy133; yy615: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 55); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 51); continue; yy617: YYSKIP (); @@ -5280,7 +5280,7 @@ yy621: } yy623: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 58); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 54); continue; yy625: YYSKIP (); @@ -5411,7 +5411,7 @@ yy644: goto *yytarget[(yych = YYPEEK ())]; } yy645: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 60); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 56); continue; yy646: YYSKIP (); @@ -5442,7 +5442,7 @@ yy650: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 74); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 70); continue; yy652: YYSKIP (); @@ -5490,7 +5490,7 @@ yy653: goto *yytarget[(yych = YYPEEK ())]; } yy654: - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 62); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 58); continue; yy655: YYSKIP (); @@ -5502,7 +5502,7 @@ yy656: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 130); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 119); continue; yy658: YYSKIP (); @@ -5545,25 +5545,25 @@ yy664: goto yy133; yy665: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 54); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 50); continue; yy667: YYSKIP (); - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 56); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 52); continue; yy669: YYSKIP (); if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 72); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 68); continue; yy671: YYSKIP (); if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 81); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 77); continue; yy673: YYSKIP (); @@ -5662,7 +5662,7 @@ yy691: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 129); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 118); continue; yy693: YYSKIP (); @@ -5681,7 +5681,7 @@ yy695: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 128); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 117); continue; yy697: YYSKIP (); @@ -5741,7 +5741,7 @@ yy707: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 66); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 62); continue; yy709: YYSKIP (); @@ -5755,14 +5755,14 @@ yy711: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 64); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 60); continue; yy713: YYSKIP (); if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 75); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 71); continue; yy715: YYSKIP (); @@ -5775,7 +5775,7 @@ yy716: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 124); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 113); continue; yy718: YYSKIP (); @@ -5805,7 +5805,7 @@ yy722: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 125); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 114); continue; yy724: YYSKIP (); @@ -5863,7 +5863,7 @@ yy736: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 127); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 116); continue; yy738: YYSKIP (); @@ -5904,21 +5904,21 @@ yy744: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 61); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 57); continue; yy746: YYSKIP (); if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 63); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 59); continue; yy748: YYSKIP (); if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 126); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 115); continue; yy750: YYSKIP (); @@ -5942,7 +5942,7 @@ yy753: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 131); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 120); continue; yy755: YYSKIP (); @@ -5954,7 +5954,7 @@ yy756: if (yybm[0+(yych = YYPEEK ())] & 16) { goto yy132; } - status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 70); + status = action_line2358_ST_IN_SCRIPTING(i, keys, input, token, &cursor, 66); continue; } @@ -6155,7 +6155,7 @@ int lex_line2358_ST_LOOKING_FOR_PROPERTY() yy761: YYSKIP (); yy762: - status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 44); + status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 3); continue; yy763: YYSKIP (); @@ -6164,7 +6164,7 @@ yy763: if (yybm[0+yych] & 64) { goto yy763; } - status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 41); + status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 0); continue; yy766: YYSKIP (); @@ -6178,11 +6178,11 @@ yy767: if (yybm[0+yych] & 128) { goto yy767; } - status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 43); + status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 2); continue; yy770: YYSKIP (); - status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 42); + status = action_line2358_ST_LOOKING_FOR_PROPERTY(i, keys, input, token, &cursor, 1); continue; } @@ -6356,7 +6356,7 @@ int lex_line2358_ST_LOOKING_FOR_VARNAME() yy775: YYSKIP (); yy776: - status = action_line2358_ST_LOOKING_FOR_VARNAME(i, keys, input, token, &cursor, 117); + status = action_line2358_ST_LOOKING_FOR_VARNAME(i, keys, input, token, &cursor, 1); continue; yy777: YYSKIP (); @@ -6415,7 +6415,7 @@ yy780: goto yy776; yy781: YYSKIP (); - status = action_line2358_ST_LOOKING_FOR_VARNAME(i, keys, input, token, &cursor, 116); + status = action_line2358_ST_LOOKING_FOR_VARNAME(i, keys, input, token, &cursor, 0); continue; } @@ -6543,7 +6543,7 @@ int lex_line2358_ST_NOWDOC() if (YYLESSTHAN (1)) YYFILL(1); yych = YYPEEK (); YYSKIP (); - status = action_line2358_ST_NOWDOC(i, keys, input, token, &cursor, 168); + status = action_line2358_ST_NOWDOC(i, keys, input, token, &cursor, 0); continue; } @@ -6744,16 +6744,16 @@ int lex_line2358_ST_VAR_OFFSET() } yy791: YYSKIP (); - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 170); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 7); continue; yy793: YYSKIP (); - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 149); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 5); continue; yy795: YYSKIP (); yy796: - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 148); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 4); continue; yy797: YYSKIP (); @@ -6811,7 +6811,7 @@ yy798: goto *yytarget[yych]; } yy799: - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 121); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 0); continue; yy800: YYSKIP (); @@ -6828,11 +6828,11 @@ yy802: if (yybm[0+yych] & 32) { goto yy802; } - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 151); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 6); continue; yy805: YYSKIP (); - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 147); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 3); continue; yy807: YYSKIP (); @@ -6876,7 +6876,7 @@ yy807: goto *yytarget[yych]; } yy809: - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 146); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 2); continue; yy810: YYSKIP (); @@ -6885,7 +6885,7 @@ yy810: if (yych <= '/') goto yy812; if (yych <= '9') goto yy810; yy812: - status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 122); + status = action_line2358_ST_VAR_OFFSET(i, keys, input, token, &cursor, 1); continue; yy813: YYSKIP (); @@ -6991,7 +6991,7 @@ int main() <@<@?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ$A0->A$B1->B$C2->C$D3->D$E4->E$F5->F$G6->G$H7->H$I8->I$J9->J$KA->K$LB->L$MC->M$ND->N$OE->O$PF->P$QG->Q$RH->R$SI->S$TJ->T$UK->U$VL->V$WM->W$XN->X$YO->Y$ZP->Z$_Q->_$aR->a$bS->b$cT->c$dU->d$eV->e$fW->f$gX->g$hY->h$iZ->i$j_->j$ka->k$lb->l$mc->m$nd->n$oe->o$pf->p$qg->q$rh->r$si->s$tj->t$uk->u$vl->v$wm->w$xn->x$yo->y$zp->z$q->$€r->€$s->$‚t->‚$ƒu->ƒ$„v->„$…w->…$†x->†$‡y->‡$ˆz->ˆ$‰->‰$Š€->Š$‹->‹$Œ‚->Œ$ƒ->$Ž„->Ž$…->$†->$‘‡->‘$’ˆ->’$“‰->“$”Š->”$•‹->•$–Œ->–$—->—$˜Ž->˜$™->™$š->š$›‘->›$œ’->œ$“->$ž”->ž$Ÿ•->Ÿ$ –-> $¡—->¡$¢˜->¢$£™->£$¤š->¤$¥›->¥$¦œ->¦$§->§$¨ž->¨$©Ÿ->©$ª ->ª$«¡->«$¬¢->¬$­£->­$®¤->®$¯¥->¯$°¦->°$±§->±$²¨->²$³©->³$´ª->´$µ«->µ$¶¬->¶$·­->·$¸®->¸$¹¯->¹$º°->º$»±->»$¼²->¼$½³->½$¾´->¾$¿µ->¿$À¶->À$Á·->Á$¸->Â$ù->Ã$ĺ->Ä$Å»->Å$Ƽ->Æ$ǽ->Ç$Ⱦ->È$É¿->É$ÊÀ->Ê$ËÁ->Ë$ÌÂ->Ì$ÍÃ->Í$ÎÄ->Î$ÏÅ->Ï$ÐÆ->Ð$ÑÇ->Ñ$ÒÈ->Ò$ÓÉ->Ó$ÔÊ->Ô$ÕË->Õ$ÖÌ->Ö$×Í->×$ØÎ->Ø$ÙÏ->Ù$ÚÐ->Ú$ÛÑ->Û$ÜÒ->Ü$ÝÓ->Ý$ÞÔ->Þ$ßÕ->ß$àÖ->à$á×->á$âØ->â$ãÙ->ã$äÚ->ä$åÛ->å$æÜ->æ$çÝ->ç$èÞ->è$éß->é$êà->ê$ëá->ë$ìâ->ì$íã->í$îä->î$ïå->ï$ðæ->ð$ñç->ñ$òè->ò$óé->ó$ôê->ô$õë->õ$öì->ö$÷í->÷$øî->ø$ùï->ù$úð->ú$ûñ->û$üò->ü$ýó->ý$þô->þ$ÿõ->ÿ$Aö->A$B÷->B$Cø->C$Dù->D$Eú->E$Fû->F$Gü->G$Hý->H$Iþ->I$Jÿ->J$A0->$B1->$C2->$D3->$E4->$F5->$G6->$H7->$I8->$J9-> $KA-> $LB-> $MC-> $ND-> $OE->$PF->$QG->$RH->$SI->$TJ->$UK->$VL->$WM->$XN->$YO->$ZP->$_Q->$aR->$bS->$cT->$dU->$eV->$fW-> $gX->!$hY->"$iZ->#$j_->$$ka->%$lb->&$mc->'$nd->($oe->)$pf->*$qg->+$rh->,$si->-$tj->.$uk->/$vl->0$wm->1$xn->2$yo->3$zp->4$q->5$€r->6$s->7$‚t->8$ƒu->9$„v->:$…w->;$†x-><$‡y->=$ˆz->>$‰->?$Š€->@$‹->[$Œ‚->\$ƒ->]$Ž„->^$…->`$†->{$‘‡->|$’ˆ->}$“‰->~$”Š->$•‹->$–Œ->$—->$˜Ž->$™->$š->$›‘->$œ’->$“-> $ž”-> $Ÿ•-> $ –-> $¡—-> $¢˜->$£™->$¤š->$¥›->$¦œ->$§->$¨ž->$©Ÿ->$ª ->$«¡->$¬¢->$­£->$®¤->$¯¥->$°¦->$±§->$²¨->$³©->$´ª-> $µ«->!$¶¬->"$·­->#$¸®->$$¹¯->%$º°->&$»±->'$¼²->($½³->)$¾´->*$¿µ->+$À¶->,$Á·->-$¸->.$ù->/$ĺ->0$Å»->1$Ƽ->2$ǽ->3$Ⱦ->4$É¿->5$ÊÀ->6$ËÁ->7$ÌÂ->8$ÍÃ->9$ÎÄ->:$ÏÅ->;$ÐÆ-><$ÑÇ->=$ÒÈ->>$ÓÉ->?$ÔÊ->@$ÕË->[$ÖÌ->\$×Í->]$ØÎ->^$ÙÏ->`$ÚÐ->{$ÛÑ->|$ÜÒ->}$ÝÓ->~$ÞÔ->$ßÕ->$àÖ->$á×->$âØ->$ãÙ->$äÚ->$åÛ->$æÜ->$çÝ-> $èÞ-> @@ -7004,7 +7004,7 @@ $L $M $N $O$P$Q$R$S$T$U$V$W$X$Y$Z$_$a$b$c$d$e$f $g!$h"$i#$j$$k $“ $” $• $–$—$˜$™$š$›$œ$$ž$Ÿ$ $¡$¢$£$¤$¥$¦$§$¨ $©!$ª"$«#$¬$$­%$®&$¯'$°($±)$²*$³+$´,$µ.$¶/$·:$¸;$¹<$º=$»>$¼?$½@$¾\$¿]$À^$Á`$Â{$Ã|$Ä}$Å~$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï $Ð $Ñ $Ò $Ó $Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$â$ã$ä$å$æ $ç!$è"$é#$ê$$ë%$ì&$í'$î($ï)$ð*$ñ+$ò,$ó.$ô/$õ:$ö;$÷<$ø=$ù>$ú?$û@$ü\$ý]$þ^$ÿ`${$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$[$\$]$^$`$|$}$~`{${{{{{{{{{{ { -{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{€{{‚{ƒ{„{…{†{‡{ˆ{‰{Š{‹{Œ{{Ž{{{‘{’{“{”{•{–{—{˜{™{š{›{œ{{ž{Ÿ{ {¡{¢{£{¤{¥{¦{§{¨{©{ª{«{¬{­{®{¯{°{±{²{³{´{µ{¶{·{¸{¹{º{»{¼{½{¾{¿{À{Á{Â{Ã{Ä{Å{Æ{Ç{È{É{Ê{Ë{Ì{Í{Î{Ï{Ð{Ñ{Ò{Ó{Ô{Õ{Ö{×{Ø{Ù{Ú{Û{Ü{Ý{Þ{ß{à{á{â{ã{ä{å{æ{ç{è{é{ê{ë{ì{í{î{ï{ð{ñ{ò{ó{ô{õ{ö{÷{ø{ù{ú{û{ü{ý{þ{ÿ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽp¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¤ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ +{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{€{{‚{ƒ{„{…{†{‡{ˆ{‰{Š{‹{Œ{{Ž{{{‘{’{“{”{•{–{—{˜{™{š{›{œ{{ž{Ÿ{ {¡{¢{£{¤{¥{¦{§{¨{©{ª{«{¬{­{®{¯{°{±{²{³{´{µ{¶{·{¸{¹{º{»{¼{½{¾{¿{À{Á{Â{Ã{Ä{Å{Æ{Ç{È{É{Ê{Ë{Ì{Í{Î{Ï{Ð{Ñ{Ò{Ó{Ô{Õ{Ö{×{Ø{Ù{Ú{Û{Ü{Ý{Þ{ß{à{á{â{ã{ä{å{æ{ç{è{é{ê{ë{ì{í{î{ï{ð{ñ{ò{ó{ô{õ{ö{÷{ø{ù{ú{û{ü{ý{þ{ÿ  !#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"$A0->A$B1->B$C2->C$D3->D$E4->E$F5->F$G6->G$H7->H$I8->I$J9->J$KA->K$LB->L$MC->M$ND->N$OE->O$PF->P$QG->Q$RH->R$SI->S$TJ->T$UK->U$VL->V$WM->W$XN->X$YO->Y$ZP->Z$_Q->_$aR->a$bS->b$cT->c$dU->d$eV->e$fW->f$gX->g$hY->h$iZ->i$j_->j$ka->k$lb->l$mc->m$nd->n$oe->o$pf->p$qg->q$rh->r$si->s$tj->t$uk->u$vl->v$wm->w$xn->x$yo->y$zp->z$q->$€r->€$s->$‚t->‚$ƒu->ƒ$„v->„$…w->…$†x->†$‡y->‡$ˆz->ˆ$‰->‰$Š€->Š$‹->‹$Œ‚->Œ$ƒ->$Ž„->Ž$…->$†->$‘‡->‘$’ˆ->’$“‰->“$”Š->”$•‹->•$–Œ->–$—->—$˜Ž->˜$™->™$š->š$›‘->›$œ’->œ$“->$ž”->ž$Ÿ•->Ÿ$ –-> $¡—->¡$¢˜->¢$£™->£$¤š->¤$¥›->¥$¦œ->¦$§->§$¨ž->¨$©Ÿ->©$ª ->ª$«¡->«$¬¢->¬$­£->­$®¤->®$¯¥->¯$°¦->°$±§->±$²¨->²$³©->³$´ª->´$µ«->µ$¶¬->¶$·­->·$¸®->¸$¹¯->¹$º°->º$»±->»$¼²->¼$½³->½$¾´->¾$¿µ->¿$À¶->À$Á·->Á$¸->Â$ù->Ã$ĺ->Ä$Å»->Å$Ƽ->Æ$ǽ->Ç$Ⱦ->È$É¿->É$ÊÀ->Ê$ËÁ->Ë$ÌÂ->Ì$ÍÃ->Í$ÎÄ->Î$ÏÅ->Ï$ÐÆ->Ð$ÑÇ->Ñ$ÒÈ->Ò$ÓÉ->Ó$ÔÊ->Ô$ÕË->Õ$ÖÌ->Ö$×Í->×$ØÎ->Ø$ÙÏ->Ù$ÚÐ->Ú$ÛÑ->Û$ÜÒ->Ü$ÝÓ->Ý$ÞÔ->Þ$ßÕ->ß$àÖ->à$á×->á$âØ->â$ãÙ->ã$äÚ->ä$åÛ->å$æÜ->æ$çÝ->ç$èÞ->è$éß->é$êà->ê$ëá->ë$ìâ->ì$íã->í$îä->î$ïå->ï$ðæ->ð$ñç->ñ$òè->ò$óé->ó$ôê->ô$õë->õ$öì->ö$÷í->÷$øî->ø$ùï->ù$úð->ú$ûñ->û$üò->ü$ýó->ý$þô->þ$ÿõ->ÿ$Aö->A$B÷->B$Cø->C$Dù->D$Eú->E$Fû->F$Gü->G$Hý->H$Iþ->I$Jÿ->J$A0->$B1->$C2->$D3->$E4->$F5->$G6->$H7->$I8->$J9-> $KA-> $LB-> $MC-> $ND-> $OE->$PF->$QG->$RH->$SI->$TJ->$UK->$VL->$WM->$XN->$YO->$ZP->$_Q->$aR->$bS->$cT->$dU->$eV->$fW-> $gX->!$hY->"$iZ->#$j_->$$ka->%$lb->&$mc->'$nd->($oe->)$pf->*$qg->+$rh->,$si->-$tj->.$uk->/$vl->0$wm->1$xn->2$yo->3$zp->4$q->5$€r->6$s->7$‚t->8$ƒu->9$„v->:$…w->;$†x-><$‡y->=$ˆz->>$‰->?$Š€->@$‹->[$Œ‚->\$ƒ->]$Ž„->^$…->`$†->{$‘‡->|$’ˆ->}$“‰->~$”Š->$•‹->$–Œ->$—->$˜Ž->$™->$š->$›‘->$œ’->$“-> $ž”-> $Ÿ•-> $ –-> $¡—-> $¢˜->$£™->$¤š->$¥›->$¦œ->$§->$¨ž->$©Ÿ->$ª ->$«¡->$¬¢->$­£->$®¤->$¯¥->$°¦->$±§->$²¨->$³©->$´ª-> $µ«->!$¶¬->"$·­->#$¸®->$$¹¯->%$º°->&$»±->'$¼²->($½³->)$¾´->*$¿µ->+$À¶->,$Á·->-$¸->.$ù->/$ĺ->0$Å»->1$Ƽ->2$ǽ->3$Ⱦ->4$É¿->5$ÊÀ->6$ËÁ->7$ÌÂ->8$ÍÃ->9$ÎÄ->:$ÏÅ->;$ÐÆ-><$ÑÇ->=$ÒÈ->>$ÓÉ->?$ÔÊ->@$ÕË->[$ÖÌ->\$×Í->]$ØÎ->^$ÙÏ->`$ÚÐ->{$ÛÑ->|$ÜÒ->}$ÝÓ->~$ÞÔ->$ßÕ->$àÖ->$á×->$âØ->$ãÙ->$äÚ->$åÛ->$æÜ->$çÝ-> $èÞ-> @@ -7017,8 +7017,8 @@ $L $M $N $O$P$Q$R$S$T$U$V$W$X$Y$Z$_$a$b$c$d$e$f $g!$h"$i#$j$$k $“ $” $• $–$—$˜$™$š$›$œ$$ž$Ÿ$ $¡$¢$£$¤$¥$¦$§$¨ $©!$ª"$«#$¬$$­%$®&$¯'$°($±)$²*$³+$´,$µ.$¶/$·:$¸;$¹<$º=$»>$¼?$½@$¾\$¿]$À^$Á`$Â{$Ã|$Ä}$Å~$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï $Ð $Ñ $Ò $Ó $Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$â$ã$ä$å$æ $ç!$è"$é#$ê$$ë%$ì&$í'$î($ï)$ð*$ñ+$ò,$ó.$ô/$õ:$ö;$÷<$ø=$ù>$ú?$û@$ü\$ý]$þ^$ÿ`${$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$[$\$]$^$`$|$}$~{${{{{{{{{{{ { -{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{€{{‚{ƒ{„{…{†{‡{ˆ{‰{Š{‹{Œ{{Ž{{{‘{’{“{”{•{–{—{˜{™{š{›{œ{{ž{Ÿ{ {¡{¢{£{¤{¥{¦{§{¨{©{ª{«{¬{­{®{¯{°{±{²{³{´{µ{¶{·{¸{¹{º{»{¼{½{¾{¿{À{Á{Â{Ã{Ä{Å{Æ{Ç{È{É{Ê{Ë{Ì{Í{Î{Ï{Ð{Ñ{Ò{Ó{Ô{Õ{Ö{×{Ø{Ù{Ú{Û{Ü{Ý{Þ{ß{à{á{â{ã{ä{å{æ{ç{è{é{ê{ë{ì{í{î{ï{ð{ñ{ò{ó{ô{õ{ö{÷{ø{ù{ú{û{ü{ý{þ{ÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥£‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒq¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¡¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ -  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ +{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{€{{‚{ƒ{„{…{†{‡{ˆ{‰{Š{‹{Œ{{Ž{{{‘{’{“{”{•{–{—{˜{™{š{›{œ{{ž{Ÿ{ {¡{¢{£{¤{¥{¦{§{¨{©{ª{«{¬{­{®{¯{°{±{²{³{´{µ{¶{·{¸{¹{º{»{¼{½{¾{¿{À{Á{Â{Ã{Ä{Å{Æ{Ç{È{É{Ê{Ë{Ì{Í{Î{Ï{Ð{Ñ{Ò{Ó{Ô{Õ{Ö{×{Ø{Ù{Ú{Û{Ü{Ý{Þ{ß{à{á{â{ã{ä{å{æ{ç{è{é{ê{ë{ì{í{î{ï{ð{ñ{ò{ó{ô{õ{ö{÷{ø{ù{ú{û{ü{ý{þ{ÿ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ$A0->A$B1->B$C2->C$D3->D$E4->E$F5->F$G6->G$H7->H$I8->I$J9->J$KA->K$LB->L$MC->M$ND->N$OE->O$PF->P$QG->Q$RH->R$SI->S$TJ->T$UK->U$VL->V$WM->W$XN->X$YO->Y$ZP->Z$_Q->_$aR->a$bS->b$cT->c$dU->d$eV->e$fW->f$gX->g$hY->h$iZ->i$j_->j$ka->k$lb->l$mc->m$nd->n$oe->o$pf->p$qg->q$rh->r$si->s$tj->t$uk->u$vl->v$wm->w$xn->x$yo->y$zp->z$q->$€r->€$s->$‚t->‚$ƒu->ƒ$„v->„$…w->…$†x->†$‡y->‡$ˆz->ˆ$‰->‰$Š€->Š$‹->‹$Œ‚->Œ$ƒ->$Ž„->Ž$…->$†->$‘‡->‘$’ˆ->’$“‰->“$”Š->”$•‹->•$–Œ->–$—->—$˜Ž->˜$™->™$š->š$›‘->›$œ’->œ$“->$ž”->ž$Ÿ•->Ÿ$ –-> $¡—->¡$¢˜->¢$£™->£$¤š->¤$¥›->¥$¦œ->¦$§->§$¨ž->¨$©Ÿ->©$ª ->ª$«¡->«$¬¢->¬$­£->­$®¤->®$¯¥->¯$°¦->°$±§->±$²¨->²$³©->³$´ª->´$µ«->µ$¶¬->¶$·­->·$¸®->¸$¹¯->¹$º°->º$»±->»$¼²->¼$½³->½$¾´->¾$¿µ->¿$À¶->À$Á·->Á$¸->Â$ù->Ã$ĺ->Ä$Å»->Å$Ƽ->Æ$ǽ->Ç$Ⱦ->È$É¿->É$ÊÀ->Ê$ËÁ->Ë$ÌÂ->Ì$ÍÃ->Í$ÎÄ->Î$ÏÅ->Ï$ÐÆ->Ð$ÑÇ->Ñ$ÒÈ->Ò$ÓÉ->Ó$ÔÊ->Ô$ÕË->Õ$ÖÌ->Ö$×Í->×$ØÎ->Ø$ÙÏ->Ù$ÚÐ->Ú$ÛÑ->Û$ÜÒ->Ü$ÝÓ->Ý$ÞÔ->Þ$ßÕ->ß$àÖ->à$á×->á$âØ->â$ãÙ->ã$äÚ->ä$åÛ->å$æÜ->æ$çÝ->ç$èÞ->è$éß->é$êà->ê$ëá->ë$ìâ->ì$íã->í$îä->î$ïå->ï$ðæ->ð$ñç->ñ$òè->ò$óé->ó$ôê->ô$õë->õ$öì->ö$÷í->÷$øî->ø$ùï->ù$úð->ú$ûñ->û$üò->ü$ýó->ý$þô->þ$ÿõ->ÿ$Aö->A$B÷->B$Cø->C$Dù->D$Eú->E$Fû->F$Gü->G$Hý->H$Iþ->I$Jÿ->J$A0->$B1->$C2->$D3->$E4->$F5->$G6->$H7->$I8->$J9-> $KA-> $LB-> $MC-> $ND-> $OE->$PF->$QG->$RH->$SI->$TJ->$UK->$VL->$WM->$XN->$YO->$ZP->$_Q->$aR->$bS->$cT->$dU->$eV->$fW-> $gX->!$hY->"$iZ->#$j_->$$ka->%$lb->&$mc->'$nd->($oe->)$pf->*$qg->+$rh->,$si->-$tj->.$uk->/$vl->0$wm->1$xn->2$yo->3$zp->4$q->5$€r->6$s->7$‚t->8$ƒu->9$„v->:$…w->;$†x-><$‡y->=$ˆz->>$‰->?$Š€->@$‹->[$Œ‚->\$ƒ->]$Ž„->^$…->`$†->{$‘‡->|$’ˆ->}$“‰->~$”Š->$•‹->$–Œ->$—->$˜Ž->$™->$š->$›‘->$œ’->$“-> $ž”-> $Ÿ•-> $ –-> $¡—-> $¢˜->$£™->$¤š->$¥›->$¦œ->$§->$¨ž->$©Ÿ->$ª ->$«¡->$¬¢->$­£->$®¤->$¯¥->$°¦->$±§->$²¨->$³©->$´ª-> $µ«->!$¶¬->"$·­->#$¸®->$$¹¯->%$º°->&$»±->'$¼²->($½³->)$¾´->*$¿µ->+$À¶->,$Á·->-$¸->.$ù->/$ĺ->0$Å»->1$Ƽ->2$ǽ->3$Ⱦ->4$É¿->5$ÊÀ->6$ËÁ->7$ÌÂ->8$ÍÃ->9$ÎÄ->:$ÏÅ->;$ÐÆ-><$ÑÇ->=$ÒÈ->>$ÓÉ->?$ÔÊ->@$ÕË->[$ÖÌ->\$×Í->]$ØÎ->^$ÙÏ->`$ÚÐ->{$ÛÑ->|$ÜÒ->}$ÝÓ->~$ÞÔ->$ßÕ->$àÖ->$á×->$âØ->$ãÙ->$äÚ->$åÛ->$æÜ->$çÝ-> $èÞ-> @@ -7031,7 +7031,7 @@ $L $M $N $O$P$Q$R$S$T$U$V$W$X$Y$Z$_$a$b$c$d$e$f $g!$h"$i#$j$$k $“ $” $• $–$—$˜$™$š$›$œ$$ž$Ÿ$ $¡$¢$£$¤$¥$¦$§$¨ $©!$ª"$«#$¬$$­%$®&$¯'$°($±)$²*$³+$´,$µ.$¶/$·:$¸;$¹<$º=$»>$¼?$½@$¾\$¿]$À^$Á`$Â{$Ã|$Ä}$Å~$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï $Ð $Ñ $Ò $Ó $Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$â$ã$ä$å$æ $ç!$è"$é#$ê$$ë%$ì&$í'$î($ï)$ð*$ñ+$ò,$ó.$ô/$õ:$ö;$÷<$ø=$ù>$ú?$û@$ü\$ý]$þ^$ÿ`${$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$[$\$]$^$`$|$}$~{${{{{{{{{{{ { -{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{€{{‚{ƒ{„{…{†{‡{ˆ{‰{Š{‹{Œ{{Ž{{{‘{’{“{”{•{–{—{˜{™{š{›{œ{{ž{Ÿ{ {¡{¢{£{¤{¥{¦{§{¨{©{ª{«{¬{­{®{¯{°{±{²{³{´{µ{¶{·{¸{¹{º{»{¼{½{¾{¿{À{Á{Â{Ã{Ä{Å{Æ{Ç{È{É{Ê{Ë{Ì{Í{Î{Ï{Ð{Ñ{Ò{Ó{Ô{Õ{Ö{×{Ø{Ù{Ú{Û{Ü{Ý{Þ{ß{à{á{â{ã{ä{å{æ{ç{è{é{ê{ë{ì{í{î{ï{ð{ñ{ò{ó{ô{õ{ö{÷{ø{ù{ú{û{ü{ý{þ{ÿ§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠr§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§¢§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§  +{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{€{{‚{ƒ{„{…{†{‡{ˆ{‰{Š{‹{Œ{{Ž{{{‘{’{“{”{•{–{—{˜{™{š{›{œ{{ž{Ÿ{ {¡{¢{£{¤{¥{¦{§{¨{©{ª{«{¬{­{®{¯{°{±{²{³{´{µ{¶{·{¸{¹{º{»{¼{½{¾{¿{À{Á{Â{Ã{Ä{Å{Æ{Ç{È{É{Ê{Ë{Ì{Í{Î{Ï{Ð{Ñ{Ò{Ó{Ô{Õ{Ö{×{Ø{Ù{Ú{Û{Ü{Ý{Þ{ß{à{á{â{ã{ä{å{æ{ç{è{é{ê{ë{ì{í{î{ï{ð{ñ{ò{ó{ô{õ{ö{÷{ø{ù{ú{û{ü{ý{þ{ÿ      @@ -11619,3656 +11619,3656 @@ __tr __TR __tr __TR__tr__TR__tr__TR__tr__TR__tr__TR__tr__TR__tr__TR __t __T __t __T__t__T__t__T__t__T__t__T__t__T__t__T__t__T__t__T__t__T __t!__T"__t#__T$__t%__T&__t'__T(__t)__T*__t+__T,__t-__T.__t/__T:__t;__T<__t=__T>__t?__T@__t[__T\__t]__T^__t`__T{__t|__T}__t~____________________ __ __ __ __ ______________________________________ __!__"__#__$__%__&__'__(__)__*__+__,__-__.__/__:__;__<__=__>__?__@__[__\__]__^__`__{__|__}__~__________ _ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_<_=_>_?_@_[_\_]_^_`_{_|_}_~`{|=|||||||||||| | -| | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{|}|~||€||‚|ƒ|„|…|†|‡|ˆ|‰|Š|‹|Œ||Ž|||‘|’|“|”|•|–|—|˜|™|š|›|œ||ž|Ÿ| |¡|¢|£|¤|¥|¦|§|¨|©|ª|«|¬|­|®|¯|°|±|²|³|´|µ|¶|·|¸|¹|º|»|¼|½|¾|¿|À|Á|Â|Ã|Ä|Å|Æ|Ç|È|É|Ê|Ë|Ì|Í|Î|Ï|Ð|Ñ|Ò|Ó|Ô|Õ|Ö|×|Ø|Ù|Ú|Û|Ü|Ý|Þ|ß|à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|ì|í|î|ï|ð|ñ|ò|ó|ô|õ|ö|÷|ø|ù|ú|û|ü|ý|þ|ÿ}©©©©©©©©©©©©©©©©©©©©©©©©©©©©©((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((UWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnœ˜‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnhdnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn› - -7 - -7 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n 7 7 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 6 6 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n - -6 - -6 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn - -9 - -9 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n 9 9 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n99 9 9 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 5 5 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n +| | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{|}|~||€||‚|ƒ|„|…|†|‡|ˆ|‰|Š|‹|Œ||Ž|||‘|’|“|”|•|–|—|˜|™|š|›|œ||ž|Ÿ| |¡|¢|£|¤|¥|¦|§|¨|©|ª|«|¬|­|®|¯|°|±|²|³|´|µ|¶|·|¸|¹|º|»|¼|½|¾|¿|À|Á|Â|Ã|Ä|Å|Æ|Ç|È|É|Ê|Ë|Ì|Í|Î|Ï|Ð|Ñ|Ò|Ó|Ô|Õ|Ö|×|Ø|Ù|Ú|Û|Ü|Ý|Þ|ß|à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|ì|í|î|ï|ð|ñ|ò|ó|ô|õ|ö|÷|ø|ù|ú|û|ü|ý|þ|ÿ}‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((QSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj{yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj]jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjd`jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj~ + +3 + +3 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j 3 3 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 2 2 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j + +2 + +2 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 5 5 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 5 5nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 4 4 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n44nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn44 4 4 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 8 8 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n - -8 - -8 -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn55nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j 5 5 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j55 5 5 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 1 1 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j + +1 + +1 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 1 1jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 0 0 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j00jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj00 0 0 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 4 4 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j + +4 + +4 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj11jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj + +2 + +2 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 6 -6 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn - -: - -: -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n : : n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn77 6 6 5 55544 8 855 6 6::nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn7766555544885566::nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnRZnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnS['nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{`nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™˜_nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww-nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn                                                                                                                                                                                                 +6 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j 6 6 j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj33 2 2 1 11100 4 411 2 266jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj332211110044112266jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjNVjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjOW'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj+jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp\jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||{[jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn)jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - +€ - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll                                                                                                                                                                                                llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllbllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllXWnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnTVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVNnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnYcmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššššš0nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––œœ››––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––2222222222222222222222222222222222222222222222222222222222222222–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - –                                                                –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––                                                                ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––                                                                ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––                                                                ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – +€ + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € + € h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € €hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh^hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhTSjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjPRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRJjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjU_iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D DzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M Mzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz................................................................zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z    @@ -15333,450 +15333,450 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_<    - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z    @@ -15841,452 +15841,452 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_<    - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––                                                                –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z    @@ -16350,391 +16350,391 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_<    -  – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - –                                                                ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - –                                                                ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– +  z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7777777777777777777777777777777777777777777777777777777777777777zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz????????????????????????????????????????????????????????????????zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz    @@ -16798,387 +16798,387 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_<    -–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z & & & @@ -17243,958 +17243,958 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_< & & & - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z8888888888888888888888888888888888888888888888888888888888888888zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z    @@ -18259,898 +18259,898 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_<    - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B - B – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z # # # @@ -19214,4719 +19214,4719 @@ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_:_;_< # # # - # – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ - @ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––1111111111111111111111111111111111111111111111111111111111111111––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K - K – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––                                                                ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––3333333333333333333333333333333333333333333333333333333333333333––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––.fnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - –                                                                –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € €–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– -– - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––žoegnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnns !"#$%&'()*+,./0123456789:;<=>?@[\]^`{|}~ + # z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < + < z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz----------------------------------------------------------------zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeezzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G + G z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                                                                zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz================================================================zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz////////////////////////////////////////////////////////////////zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz*bjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q + q z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v vzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u uzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r + r z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzkacjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjl !"#$%&'()*+,./0123456789:;<=>?@[\]^`{|}~     @@ -24314,7 +24314,7 @@ LB MC ND OEPFQGRHSITJUKVLWMXNYOZP_QaRbScTdUeVfW gX!hY"iZ#j_$ka ÕË ÖÌ ×Í ØÎÙÏÚÐÛÑÜÒÝÓÞÔßÕàÖá×âØãÙäÚåÛæÜçÝèÞéßêà ëá!ìâ"íã#îä$ïå%ðæ&ñç'òè(óé)ôê*õë+öì,÷í-øî.ùï/úð:ûñ;üò<ýó=þô>ÿõ?Aö@B÷[Cø\Dù]Eú^Fû`Gü{Hý|Iþ}Jÿ~ABCDEFGHIJ K L M N OPQRSTUVWXYZ_abcdef g!h"i#j$k%l&m'n(o)p*q+r,s-t.u/v:w;x?€@[‚\ƒ]„^…`†{‡|ˆ}‰~Š‹ŒŽ‘’“ ” • – — ˜™š›œžŸ ¡¢£¤¥¦§¨©ª «!¬"­#®$¯%°&±'²(³)´*µ+¶,·-¸.¹/º:»;¼<½=¾>¿?À@Á[Â\Ã]Ä^Å`Æ{Ç|È}É~ÊËÌÍÎÏÐÑÒÓ Ô -Õ Ö × ØÙÚÛÜÝÞßàáâãäåæçèéê ë!ì"í#î$ï%ð&ñ'ò(ó)ô*õ+ö,÷-ø.ù/ú:û;ü<ý=þ>ÿ?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Õ Ö × ØÙÚÛÜÝÞßàáâãäåæçèéê ë!ì"í#î$ï%ð&ñ'ò(ó)ô*õ+ö,÷-ø.ù/ú:û;ü<ý=þ>ÿ?  !"#$%&'()*+,-./0123456789:;<=>?@[\]^`{|}~A00[B11}C22[D33}E44[F55}G66[H77}I88[J99}KAA[LBB}MCC[NDD}OEE[PFF}QGG[RHH}SII[TJJ}UKK[VLL}WMM[XNN}YOO[ZPP}_QQ[aRR}bSS[cTT}dUU[eVV}fWW[gXX}hYY[iZZ}j__[kaa}lbb[mcc}ndd[oee}pff[qgg}rhh[sii}tjj[ukk}vll[wmm}xnn[yoo}zpp[qq}€rr[ss}‚tt[ƒuu}„vv[…ww}†xx[‡yy}ˆzz[‰}Š€€[‹}Œ‚‚[ƒƒ}Ž„„[……}††[‘‡‡}’ˆˆ[“‰‰}”ŠŠ[•‹‹}–ŒŒ[—}˜ŽŽ[™}š[›‘‘}œ’’[““}ž””[Ÿ••} ––[¡——}¢˜˜[£™™}¤šš[¥››}¦œœ[§}¨žž[©ŸŸ}ª  [«¡¡}¬¢¢[­££}®¤¤[¯¥¥}°¦¦[±§§}²¨¨[³©©}´ªª[µ««}¶¬¬[·­­}¸®®[¹¯¯}º°°[»±±}¼²²[½³³}¾´´[¿µµ}À¶¶[Á··}¸¸[ù¹}ĺº[Å»»}Ƽ¼[ǽ½}Ⱦ¾[É¿¿}ÊÀÀ[ËÁÁ}ÌÂÂ[ÍÃÃ}ÎÄÄ[ÏÅÅ}ÐÆÆ[ÑÇÇ}ÒÈÈ[ÓÉÉ}ÔÊÊ[ÕËË}ÖÌÌ[×ÍÍ}ØÎÎ[ÙÏÏ}ÚÐÐ[ÛÑÑ}ÜÒÒ[ÝÓÓ}ÞÔÔ[ßÕÕ}àÖÖ[á××}âØØ[ãÙÙ}äÚÚ[åÛÛ}æÜÜ[çÝÝ}èÞÞ[éßß}êàà[ëáá}ìââ[íãã}îää[ïåå}ðææ[ñçç}òèè[óéé}ôêê[õëë}öìì[÷íí}øîî[ùïï}úðð[ûññ}üòò[ýóó}þôô[ÿõõ}Aöö[B÷÷}Cøø[Dùù}Eúú[Fûû}Güü[Hýý}Iþþ[Jÿÿ}A00B11C22D33E44F55G66H77I88J99 KAA LBB MCC NDD OEEPFFQGGRHHSIITJJUKKVLLWMMXNNYOOZPP_QQaRRbSScTTdUUeVVfWW gXX!hYY"iZZ#j__$kaa%lbb&mcc'ndd(oee)pff*qgg+rhh,sii-tjj.ukk/vll:wmm;xnnqq?€rr@ss\‚tt]ƒuu^„vv`…ww{†xx|‡yy~ˆzz‰Š€€‹Œ‚‚ƒƒŽ„„……††‘‡‡ ’ˆˆ “‰‰ ”ŠŠ •‹‹ –ŒŒ—˜ŽŽ™š›‘‘œ’’““ž””Ÿ•• ––¡——¢˜˜£™™¤šš¥››¦œœ§¨žž ©ŸŸ!ª  "«¡¡#¬¢¢$­££%®¤¤&¯¥¥'°¦¦(±§§)²¨¨*³©©+´ªª,µ««-¶¬¬.·­­/¸®®:¹¯¯;º°°<»±±=¼²²>½³³?¾´´@¿µµ\À¶¶]Á··^¸¸`ù¹{ĺº|Å»»~Ƽ¼Ç½½Ⱦ¾É¿¿ÊÀÀËÁÁÌÂÂÍÃÃÎÄÄÏÅÅ ÐÆÆ @@ -24324,8 +24324,8 @@ LB MC ND OEPFQGRHSITJUKVLWMXNYOZP_QaRbScTdUeVfW gX!hY"iZ#j_$ka ÑÇ ÒÈ ÓÉ ÔÊÕËÖÌ×ÍØÎÙÏÚÐÛÑÜÒÝÓÞÔßÕàÖá×âØãÙäÚåÛæÜ çÝ!èÞ"éß#êà$ëá%ìâ&íã'îä(ïå)ðæ*ñç+òè,óé-ôê.õë/öì:÷í;øî<ùï=úð>ûñ?üò@ýó\þô]ÿõ^Aö`B÷{Cø|Dù~EúFûGüHýIþJÿA[B}C[D}E[F}G[H}I[J}K[L}M[N}O[P}Q[R}S[T}U[V}W[X}Y[Z}_[a}b[c}d[e}f[g}h[i}j[k}l[m}n[o}p[q}r[s}t[u}v[w}x[y}z[}€[}‚[ƒ}„[…}†[‡}ˆ[‰}Š[‹}Œ[}Ž[}[‘}’[“}”[•}–[—}˜[™}š[›}œ[}ž[Ÿ} [¡}¢[£}¤[¥}¦[§}¨[©}ª[«}¬[­}®[¯}°[±}²[³}´[µ}¶[·}¸[¹}º[»}¼[½}¾[¿}À[Á}Â[Ã}Ä[Å}Æ[Ç}È[É}Ê[Ë}Ì[Í}Î[Ï}Ð[Ñ}Ò[Ó}Ô[Õ}Ö[×}Ø[Ù}Ú[Û}Ü[Ý}Þ[ß}à[á}â[ã}ä[å}æ[ç}è[é}ê[ë}ì[í}î[ï}ð[ñ}ò[ó}ô[õ}ö[÷}ø[ù}ú[û}ü[ý}þ[ÿ}ABCDEFGHIJ K L M N OPQRSTUVWXYZ_abcdef g!h"i#j$k%l&m'n(o)p*q+r,s-t.u/v:w;x?€@\‚]ƒ^„`…{†|‡~ˆ‰Š‹ŒŽ‘ ’ “ ” • –—˜™š›œžŸ ¡¢£¤¥¦§¨ ©!ª"«#¬$­%®&¯'°(±)²*³+´,µ-¶.·/¸:¹;º<»=¼>½?¾@¿\À]Á^Â`Ã{Ä|Å~ÆÇÈÉÊËÌÍÎÏ Ð -Ñ Ò Ó ÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæ ç!è"é#ê$ë%ì&í'î(ï)ð*ñ+ò,ó-ô.õ/ö:÷;ø<ù=ú>û?ü@ý\þ]ÿ^uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu -  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨  +Ñ Ò Ó ÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæ ç!è"é#ê$ë%ì&í'î(ï)ð*ñ+ò,ó-ô.õ/ö:÷;ø<ù=ú>û?ü@ý\þ]ÿ^ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  #'\!"%&()*+,-./:;<=>?@[^`{|}~$A0$B1$C2$D3$E4$F5$G6$H7$I8$J9 $KA $LB $MC $ND $OE$PF$QG$RH$SI$TJ$UK$VL$WM$XN$YO$ZP$_Q$aR$bS$cT$dU$eV$fW $gX!$hY"$iZ#$j_$$ka%$lb&$mc'$nd($oe)$pf*$qg+$rh,$si-$tj.$uk/$vl:$wm;$xn<$yo=$zp>$q?$€r@$s[$‚t\$ƒu]$„v^$…w`$†x{$‡y|$ˆz}$‰~$Š€$‹$Œ‚$ƒ$Ž„$…$†$‘‡$’ˆ$“‰ $”Š $•‹ $–Œ $— $˜Ž$™$š$›‘$œ’$“$ž”$Ÿ•$ –$¡—$¢˜$£™$¤š$¥›$¦œ$§$¨ž$©Ÿ$ª  $«¡!$¬¢"$­£#$®¤$$¯¥%$°¦&$±§'$²¨($³©)$´ª*$µ«+$¶¬,$·­-$¸®.$¹¯/$º°:$»±;$¼²<$½³=$¾´>$¿µ?$À¶@$Á·[$¸\$ù]$ĺ^$Å»`$Ƽ{$ǽ|$Ⱦ}$É¿~$ÊÀ$ËÁ$ÌÂ$ÍÃ$ÎÄ$ÏÅ$ÐÆ$ÑÇ$ÒÈ$ÓÉ $ÔÊ @@ -24354,6 +24354,6 @@ LB MC ND OEPFQGRHSITJUKVLWMXNYOZP_QaRbScTdUeVfW gX!hY"iZ#j_$ka ÕË ÖÌ ×Í ØÎÙÏÚÐÛÑÜÒÝÓÞÔßÕàÖá×âØãÙäÚåÛæÜçÝèÞéßêà ëá!ìâ"íã#îä$ïå%ðæ&ñç'òè(óé)ôê*õë+öì,÷í-øî.ùï/úð:ûñ;üò<ýó=þô>ÿõ?Aö@B÷[Cø\Dù]Eú^Fû`Gü{Hý|Iþ}Jÿ~ABCDEFGHIJ K L M N OPQRSTUVWXYZ_abcdef g!h"i#j$k%l&m'n(o)p*q+r,s-t.u/v:w;x?€@[‚\ƒ]„^…`†{‡|ˆ}‰~Š‹ŒŽ‘’“ ” • – — ˜™š›œžŸ ¡¢£¤¥¦§¨©ª «!¬"­#®$¯%°&±'²(³)´*µ+¶,·-¸.¹/º:»;¼<½=¾>¿?À@Á[Â\Ã]Ä^Å`Æ{Ç|È}É~ÊËÌÍÎÏÐÑÒÓ Ô -Õ Ö × ØÙÚÛÜÝÞßàáâãäåæçèéê ë!ì"í#î$ï%ð&ñ'ò(ó)ô*õ+ö,÷-ø.ù/ú:û;ü<ý=þ>ÿ?]ªªªªªªªªªªªªªªªªªªªªªªªªªªªªª•••••••””””””””””””””””””””””””””’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————“re2c: warning: line 1095: column 12: escape has no effect: '\[' [-Wuseless-escape] +Õ Ö × ØÙÚÛÜÝÞßàáâãäåæçèéê ë!ì"í#î$ï%ð&ñ'ò(ó)ô*õ+ö,÷-ø.ù/ú:û;ü<ý=þ>ÿ?]re2c: warning: line 1095: column 12: escape has no effect: '\[' [-Wuseless-escape] re2c: warning: line 1476: column 19: escape has no effect: '\*' [-Wuseless-escape] re2c: warning: line 1480: column 19: escape has no effect: '\*' [-Wuseless-escape] diff --git a/re2c/test/repeat-01.cgir--skeleton.c b/re2c/test/repeat-01.cgir--skeleton.c index cd905bbc..c447301b 100644 --- a/re2c/test/repeat-01.cgir--skeleton.c +++ b/re2c/test/repeat-01.cgir--skeleton.c @@ -161,19 +161,19 @@ int lex_line13_r1() yy3: yy4: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 5); + status = action_line13_r1(i, keys, input, token, &cursor, 2); continue; yy6: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 6); + status = action_line13_r1(i, keys, input, token, &cursor, 3); continue; yy8: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 2); + status = action_line13_r1(i, keys, input, token, &cursor, 0); continue; yy10: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 3); + status = action_line13_r1(i, keys, input, token, &cursor, 1); continue; } @@ -308,15 +308,15 @@ int lex_line13_r2() yy15: yy16: YYSKIP (); - status = action_line13_r2(i, keys, input, token, &cursor, 7); + status = action_line13_r2(i, keys, input, token, &cursor, 1); continue; yy18: YYSKIP (); - status = action_line13_r2(i, keys, input, token, &cursor, 8); + status = action_line13_r2(i, keys, input, token, &cursor, 2); continue; yy20: YYSKIP (); - status = action_line13_r2(i, keys, input, token, &cursor, 4); + status = action_line13_r2(i, keys, input, token, &cursor, 0); continue; } @@ -357,8 +357,8 @@ int main() return 0; } 12ab -  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`cdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ12b -  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿre2c: warning: line 13: control flow in condition 'r1' is undefined for strings that match '[\x0-\x30\x33-\x60\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] +  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`cdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ12b +  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿre2c: warning: line 13: control flow in condition 'r1' is undefined for strings that match '[\x0-\x30\x33-\x60\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 13: control flow in condition 'r2' is undefined for strings that match '[\x0-\x30\x33-\x61\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 13: control flow in condition 'r1' is undefined for strings that match '[\x0-\x30\x33-\x60\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 13: control flow in condition 'r2' is undefined for strings that match '[\x0-\x30\x33-\x61\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] diff --git a/re2c/test/repeat-02.cgir--skeleton.c b/re2c/test/repeat-02.cgir--skeleton.c index 30a628c4..b63465aa 100644 --- a/re2c/test/repeat-02.cgir--skeleton.c +++ b/re2c/test/repeat-02.cgir--skeleton.c @@ -161,19 +161,19 @@ int lex_line13_r1() yy3: yy4: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 5); + status = action_line13_r1(i, keys, input, token, &cursor, 2); continue; yy6: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 6); + status = action_line13_r1(i, keys, input, token, &cursor, 3); continue; yy8: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 2); + status = action_line13_r1(i, keys, input, token, &cursor, 0); continue; yy10: YYSKIP (); - status = action_line13_r1(i, keys, input, token, &cursor, 3); + status = action_line13_r1(i, keys, input, token, &cursor, 1); continue; } @@ -308,15 +308,15 @@ int lex_line13_r2() yy15: yy16: YYSKIP (); - status = action_line13_r2(i, keys, input, token, &cursor, 7); + status = action_line13_r2(i, keys, input, token, &cursor, 1); continue; yy18: YYSKIP (); - status = action_line13_r2(i, keys, input, token, &cursor, 8); + status = action_line13_r2(i, keys, input, token, &cursor, 2); continue; yy20: YYSKIP (); - status = action_line13_r2(i, keys, input, token, &cursor, 4); + status = action_line13_r2(i, keys, input, token, &cursor, 0); continue; } @@ -357,8 +357,8 @@ int main() return 0; } 12ab -  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`cdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ12b -  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿre2c: warning: line 13: control flow in condition 'r1' is undefined for strings that match '[\x0-\x30\x33-\x60\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] +  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`cdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ12b +  !"#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿre2c: warning: line 13: control flow in condition 'r1' is undefined for strings that match '[\x0-\x30\x33-\x60\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 13: control flow in condition 'r2' is undefined for strings that match '[\x0-\x30\x33-\x61\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 13: control flow in condition 'r1' is undefined for strings that match '[\x0-\x30\x33-\x60\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 13: control flow in condition 'r2' is undefined for strings that match '[\x0-\x30\x33-\x61\x63-\xFF]', use default rule '*' [-Wundefined-control-flow] diff --git a/re2c/test/repeat-03.cgir--skeleton.c b/re2c/test/repeat-03.cgir--skeleton.c index eb5b197b..92d4e58b 100644 --- a/re2c/test/repeat-03.cgir--skeleton.c +++ b/re2c/test/repeat-03.cgir--skeleton.c @@ -189,23 +189,23 @@ int lex_line18_r1() yy3: yy4: YYSKIP (); - status = action_line18_r1(i, keys, input, token, &cursor, 7); + status = action_line18_r1(i, keys, input, token, &cursor, 4); continue; yy6: YYSKIP (); - status = action_line18_r1(i, keys, input, token, &cursor, 5); + status = action_line18_r1(i, keys, input, token, &cursor, 2); continue; yy8: YYSKIP (); - status = action_line18_r1(i, keys, input, token, &cursor, 6); + status = action_line18_r1(i, keys, input, token, &cursor, 3); continue; yy10: YYSKIP (); - status = action_line18_r1(i, keys, input, token, &cursor, 2); + status = action_line18_r1(i, keys, input, token, &cursor, 0); continue; yy12: YYSKIP (); - status = action_line18_r1(i, keys, input, token, &cursor, 3); + status = action_line18_r1(i, keys, input, token, &cursor, 1); continue; } @@ -339,15 +339,15 @@ int lex_line18_r2() } yy18: YYSKIP (); - status = action_line18_r2(i, keys, input, token, &cursor, 9); + status = action_line18_r2(i, keys, input, token, &cursor, 2); continue; yy20: YYSKIP (); - status = action_line18_r2(i, keys, input, token, &cursor, 8); + status = action_line18_r2(i, keys, input, token, &cursor, 1); continue; yy22: YYSKIP (); - status = action_line18_r2(i, keys, input, token, &cursor, 4); + status = action_line18_r2(i, keys, input, token, &cursor, 0); continue; } @@ -512,23 +512,23 @@ int lex_line28_r1() yy3: yy4: YYSKIP (); - status = action_line28_r1(i, keys, input, token, &cursor, 7); + status = action_line28_r1(i, keys, input, token, &cursor, 4); continue; yy6: YYSKIP (); - status = action_line28_r1(i, keys, input, token, &cursor, 5); + status = action_line28_r1(i, keys, input, token, &cursor, 2); continue; yy8: YYSKIP (); - status = action_line28_r1(i, keys, input, token, &cursor, 6); + status = action_line28_r1(i, keys, input, token, &cursor, 3); continue; yy10: YYSKIP (); - status = action_line28_r1(i, keys, input, token, &cursor, 2); + status = action_line28_r1(i, keys, input, token, &cursor, 0); continue; yy12: YYSKIP (); - status = action_line28_r1(i, keys, input, token, &cursor, 3); + status = action_line28_r1(i, keys, input, token, &cursor, 1); continue; } @@ -662,15 +662,15 @@ int lex_line28_r2() } yy18: YYSKIP (); - status = action_line28_r2(i, keys, input, token, &cursor, 9); + status = action_line28_r2(i, keys, input, token, &cursor, 2); continue; yy20: YYSKIP (); - status = action_line28_r2(i, keys, input, token, &cursor, 8); + status = action_line28_r2(i, keys, input, token, &cursor, 1); continue; yy22: YYSKIP (); - status = action_line28_r2(i, keys, input, token, &cursor, 4); + status = action_line28_r2(i, keys, input, token, &cursor, 0); continue; } @@ -717,10 +717,10 @@ int main() return 0; }   !"#$%&'()*+,-./023456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ1abc -ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac -                                                                                                                                                                                                                                                             ÿ  !"#$%&'()*+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ2abc -ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac -                                                                                                                                                                                                                                                             ÿre2c: warning: line 18: control flow in condition 'r1' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] +ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac +ÿ  !"#$%&'()*+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ2abc +ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac +ÿre2c: warning: line 18: control flow in condition 'r1' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 18: control flow in condition 'r2' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 28: control flow in condition 'r1' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 28: control flow in condition 'r2' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] diff --git a/re2c/test/reuse_conds_default_0.cgir--skeleton.c b/re2c/test/reuse_conds_default_0.cgir--skeleton.c index 3eaf0738..37ef51b1 100644 --- a/re2c/test/reuse_conds_default_0.cgir--skeleton.c +++ b/re2c/test/reuse_conds_default_0.cgir--skeleton.c @@ -182,7 +182,7 @@ int lex_line15_r1() } yy3: YYSKIP (); - status = action_line15_r1(i, keys, input, token, &cursor, 7); + status = action_line15_r1(i, keys, input, token, &cursor, 4); continue; yy5: YYSKIP (); @@ -190,19 +190,19 @@ yy5: continue; yy7: YYSKIP (); - status = action_line15_r1(i, keys, input, token, &cursor, 5); + status = action_line15_r1(i, keys, input, token, &cursor, 2); continue; yy9: YYSKIP (); - status = action_line15_r1(i, keys, input, token, &cursor, 6); + status = action_line15_r1(i, keys, input, token, &cursor, 3); continue; yy11: YYSKIP (); - status = action_line15_r1(i, keys, input, token, &cursor, 2); + status = action_line15_r1(i, keys, input, token, &cursor, 0); continue; yy13: YYSKIP (); - status = action_line15_r1(i, keys, input, token, &cursor, 3); + status = action_line15_r1(i, keys, input, token, &cursor, 1); continue; } @@ -336,15 +336,15 @@ int lex_line15_r2() } yy19: YYSKIP (); - status = action_line15_r2(i, keys, input, token, &cursor, 9); + status = action_line15_r2(i, keys, input, token, &cursor, 2); continue; yy21: YYSKIP (); - status = action_line15_r2(i, keys, input, token, &cursor, 8); + status = action_line15_r2(i, keys, input, token, &cursor, 1); continue; yy23: YYSKIP (); - status = action_line15_r2(i, keys, input, token, &cursor, 4); + status = action_line15_r2(i, keys, input, token, &cursor, 0); continue; } @@ -509,23 +509,23 @@ int lex_line20_r1() yy3: yy4: YYSKIP (); - status = action_line20_r1(i, keys, input, token, &cursor, 7); + status = action_line20_r1(i, keys, input, token, &cursor, 4); continue; yy6: YYSKIP (); - status = action_line20_r1(i, keys, input, token, &cursor, 5); + status = action_line20_r1(i, keys, input, token, &cursor, 2); continue; yy8: YYSKIP (); - status = action_line20_r1(i, keys, input, token, &cursor, 6); + status = action_line20_r1(i, keys, input, token, &cursor, 3); continue; yy10: YYSKIP (); - status = action_line20_r1(i, keys, input, token, &cursor, 2); + status = action_line20_r1(i, keys, input, token, &cursor, 0); continue; yy12: YYSKIP (); - status = action_line20_r1(i, keys, input, token, &cursor, 3); + status = action_line20_r1(i, keys, input, token, &cursor, 1); continue; } @@ -657,7 +657,7 @@ int lex_line20_r2() if (yych == 'c') goto yy23; } YYSKIP (); - status = action_line20_r2(i, keys, input, token, &cursor, 9); + status = action_line20_r2(i, keys, input, token, &cursor, 2); continue; yy19: YYSKIP (); @@ -665,11 +665,11 @@ yy19: continue; yy21: YYSKIP (); - status = action_line20_r2(i, keys, input, token, &cursor, 8); + status = action_line20_r2(i, keys, input, token, &cursor, 1); continue; yy23: YYSKIP (); - status = action_line20_r2(i, keys, input, token, &cursor, 4); + status = action_line20_r2(i, keys, input, token, &cursor, 0); continue; } @@ -716,8 +716,8 @@ int main() return 0; }   !"#$%&'()*+,-./023456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ -1abcþ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac -                                                                                                                                                                                                                                                             ÿ  !"#$%&'()*+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ2abc -ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ -ac                                                                                                                                                                                                                                                             þre2c: warning: line 15: control flow in condition 'r2' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] +1abcþ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac +ÿ  !"#$%&'()*+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ2abc +ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +acþre2c: warning: line 15: control flow in condition 'r2' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] re2c: warning: line 20: control flow in condition 'r1' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] diff --git a/re2c/test/reuse_conds_default_1.cgir--skeleton.c b/re2c/test/reuse_conds_default_1.cgir--skeleton.c index 2ad0830f..c01b57cb 100644 --- a/re2c/test/reuse_conds_default_1.cgir--skeleton.c +++ b/re2c/test/reuse_conds_default_1.cgir--skeleton.c @@ -187,7 +187,7 @@ int lex_line22_r1() } yy3: YYSKIP (); - status = action_line22_r1(i, keys, input, token, &cursor, 7); + status = action_line22_r1(i, keys, input, token, &cursor, 4); continue; yy5: YYSKIP (); @@ -195,19 +195,19 @@ yy5: continue; yy7: YYSKIP (); - status = action_line22_r1(i, keys, input, token, &cursor, 5); + status = action_line22_r1(i, keys, input, token, &cursor, 2); continue; yy9: YYSKIP (); - status = action_line22_r1(i, keys, input, token, &cursor, 6); + status = action_line22_r1(i, keys, input, token, &cursor, 3); continue; yy11: YYSKIP (); - status = action_line22_r1(i, keys, input, token, &cursor, 2); + status = action_line22_r1(i, keys, input, token, &cursor, 0); continue; yy13: YYSKIP (); - status = action_line22_r1(i, keys, input, token, &cursor, 3); + status = action_line22_r1(i, keys, input, token, &cursor, 1); continue; } @@ -339,7 +339,7 @@ int lex_line22_r2() if (yych == 'c') goto yy24; } YYSKIP (); - status = action_line22_r2(i, keys, input, token, &cursor, 9); + status = action_line22_r2(i, keys, input, token, &cursor, 2); continue; yy20: YYSKIP (); @@ -347,11 +347,11 @@ yy20: continue; yy22: YYSKIP (); - status = action_line22_r2(i, keys, input, token, &cursor, 8); + status = action_line22_r2(i, keys, input, token, &cursor, 1); continue; yy24: YYSKIP (); - status = action_line22_r2(i, keys, input, token, &cursor, 4); + status = action_line22_r2(i, keys, input, token, &cursor, 0); continue; } @@ -515,7 +515,7 @@ int lex_line32_r1() } yy3: YYSKIP (); - status = action_line32_r1(i, keys, input, token, &cursor, 7); + status = action_line32_r1(i, keys, input, token, &cursor, 4); continue; yy5: YYSKIP (); @@ -523,19 +523,19 @@ yy5: continue; yy7: YYSKIP (); - status = action_line32_r1(i, keys, input, token, &cursor, 5); + status = action_line32_r1(i, keys, input, token, &cursor, 2); continue; yy9: YYSKIP (); - status = action_line32_r1(i, keys, input, token, &cursor, 6); + status = action_line32_r1(i, keys, input, token, &cursor, 3); continue; yy11: YYSKIP (); - status = action_line32_r1(i, keys, input, token, &cursor, 2); + status = action_line32_r1(i, keys, input, token, &cursor, 0); continue; yy13: YYSKIP (); - status = action_line32_r1(i, keys, input, token, &cursor, 3); + status = action_line32_r1(i, keys, input, token, &cursor, 1); continue; } @@ -669,15 +669,15 @@ int lex_line32_r2() } yy19: YYSKIP (); - status = action_line32_r2(i, keys, input, token, &cursor, 9); + status = action_line32_r2(i, keys, input, token, &cursor, 2); continue; yy21: YYSKIP (); - status = action_line32_r2(i, keys, input, token, &cursor, 8); + status = action_line32_r2(i, keys, input, token, &cursor, 1); continue; yy23: YYSKIP (); - status = action_line32_r2(i, keys, input, token, &cursor, 4); + status = action_line32_r2(i, keys, input, token, &cursor, 0); continue; } @@ -724,7 +724,7 @@ int main() return 0; }   !"#$%&'()*+,-./023456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ -1abcþ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ -ac                                                                                                                                                                                                                                                             þ  !"#$%&'()*+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ -2abcþ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac -                                                                                                                                                                                                                                                             ÿre2c: warning: line 32: control flow in condition 'r2' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] +1abcþ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +acþ  !"#$%&'()*+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +2abcþ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿac +ÿre2c: warning: line 32: control flow in condition 'r2' is undefined for strings that match '\xA', use default rule '*' [-Wundefined-control-flow] -- 2.40.0