Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wIu0e-008ddR-0I for pgsql-hackers@arkaria.postgresql.org; Fri, 01 May 2026 19:58:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wIu0c-00CN3t-0x for pgsql-hackers@arkaria.postgresql.org; Fri, 01 May 2026 19:58:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wIrPQ-00BkPt-0P for pgsql-hackers@lists.postgresql.org; Fri, 01 May 2026 17:12:13 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wIrOX-00000003j2H-3Pb7 for pgsql-hackers@postgresql.org; Fri, 01 May 2026 17:12:11 +0000 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2b2589c26e3so18446635ad.1 for ; Fri, 01 May 2026 10:11:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777655477; cv=none; d=google.com; s=arc-20240605; b=FHix8xs9CfndDtLtIw9I/DNJe3VU0Vemq0deF871PIjwA8+pstSQ8eJTSZ1pmv0ZlR hD9wvzl+S9yGA+9cUClaui4/hh97yGSNfThqHqTn6rqrReTcHHbYe/MEBFICIn/BQ2gp 3pvAe74wiQxcBUvaOLkfBpb9e/FTfStggdnJBSKJ/j5kftXgxrOQwN0lktF8aM9j7wed UxZZr/kaeHjT03bx8ZI4+AhpVy0wX910Xg0MgKLByTrvFnr7yq3y3YK8DW4Lp0JMx2Qg Gd+/4K4tTtJ0FkteaPy/9tcK8xs/DCDErKJ0YvA1zTxUusN6Jppmkn8XyKd3gmmx3utD oyWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=XJ8xo7GiB9UQB0/ZPWEBMtjdGzZSHbmXcir1lu31pCM=; fh=i+oKfUJm682MmjFACvx1uUBXEre6YWPouChCLUbJpjA=; b=f8gDAjavN7meqDUjQsOGizXTm6lySqLne1qWwUoGaha5gdGLvp7Qv8yrh5amnLkziz vZz/LH9NFjDipVRW1pdWQDtLtha8IDD/O+a2uKtKzrrPZq2qeFX0bMcpZsAZCsXpNxBW npMwwzdFP4JoJleSbq1L53qGQTUwbQturTxm1jOgaeRu6jk2LWP0V1HoS/tdLeumqbvw tusR6X4UQW1iTgElrXrem4YZmReyp00MFmjwUchrKT3pBkh9TG+ZGQT31rjul4J06Xkr VfiMR0upfj98kq+1Km39foLL2Jmq5mC1ujA1rSmcyw3rY8/0ih21W3lNLiWJClen2TJO jMEw==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777655476; x=1778260276; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XJ8xo7GiB9UQB0/ZPWEBMtjdGzZSHbmXcir1lu31pCM=; b=Y0AS9i7EgrtKtEGPFxDZTvZd1HBwtIKQuhOgc48yWqYzOlLRgHW1AYy7br0nkFql6T ZHkEgC0HuaK1p3yekdR64Sq1qpdz5vyRYwNPaCdgNd9gdb6Kon0zhh4hGnAZ2h/gm2DK wBwPsfHGKLxVRSuJBJ+Pg87BsxZHwDMQWYzC1l9fdA6u7BEpPcb+uQ/rC8IE0e9MIZ0m 56v87Kg4cLMjX76C4n/FHZNPggUxiw1QPh9Ga8F/kWWJFHdtJpg6QTiLfUSwWLDxVdZk 5JAA5T5flyelXwYGd4Rrg9MPzs+dpxZRAw32dpgE6E9nz8WxuLp2VET8bJeYVDKJXVva K8QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777655477; x=1778260277; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XJ8xo7GiB9UQB0/ZPWEBMtjdGzZSHbmXcir1lu31pCM=; b=nCtSn5rt7mSix9fWQInDmFIEyZBGXvUMH9dl72Ny8RW3VEs3OhY4OfSCf/9hnzEkxB EBL4s0LL7iedPIN8VsZ4dDLWD99cF7fOWRqKxWgdpn7BYL4BgEcicQkTx5F2q8gmJCKY TDiNE3G43FxHjdYnySs8pp36Y04cBdJ1mdHar/7RlzBCa2ckAH9S+OBXOXs20gWJIDQ/ cLHipUX6lFMtqvwdVAICpd/YwvRAyxNOXx5BgVDM1QgzvWu2pa+yJW0JclI6MhzvoS9N x+ay9oJRffSIdEes5HYhZ2K2nXS8HJQmnzY+HmFLAed0Azac8Q6v7MfXDadRfUcQfEj3 PPqw== X-Forwarded-Encrypted: i=1; AFNElJ8s3ST751M0o22bXSeSRv4yqLgDb/wKoAPWxNkUWAfAJbM7eiMs+dAQx9Y/+ZG8vN0CCqnjlDzIz6nDKmJZ@postgresql.org X-Gm-Message-State: AOJu0Yxal4goJQWvwnuvU2PQ5MTtqX0UtEmUtZgbRbqFzFh1eLzQ1GyU l8GqZv54FALk2z8aRfbWXto0JLHoGVxC7NR5i17z1dSukf2v74u7228GwShqXOx69tI+A0gif9r Sz6+fDhd6NmmosrK8wnuW2nuy3WbcN6g= X-Gm-Gg: AeBDietfNIOYOxr0Z5ev3njmKSFcTcSU+3kNi0qaCWkNtljX40vfGYXCa/Q/Isn5FSG Ua8MGYyLxy+LWXP34oW6WjG3FQKKpBlJAzhuS4siKeLW5AcrpRYtRkfuGH3FVw9B6xadv/K5gtC ZbMk8NMAJXyptnC0kAoREFVoSq6JqrMfikg5g8pG7Qbmis7RHs9hVghqIVnSXQFq85D+L8ioASU NWFc4gTfVrEnydy7gyHSHkyESra/o7EDIaNb534/yUzSLnUGxjlHRI/wsVXSHuadIuYl6D1FAxs GQXIi47CANlPMPuIm+9rclTK/lOJOztTMetmjgNzbnJdPkjaFlk= X-Received: by 2002:a17:903:2286:b0:2b7:9ed0:4f92 with SMTP id d9443c01a7336-2b9f26187b9mr857535ad.32.1777655476338; Fri, 01 May 2026 10:11:16 -0700 (PDT) MIME-Version: 1.0 References: <20260427.135243.1750053587183825244.ishii@postgresql.org> <20260427.174220.1939160662649810289.ishii@postgresql.org> In-Reply-To: <20260427.174220.1939160662649810289.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Sat, 2 May 2026 02:11:00 +0900 X-Gm-Features: AVHnY4JxvkbEz3xH1kBzhHo4tvDcgCzrE-U1gWyOagJebylA0afEqhqPmbZtpEI Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, li.evan.chao@gmail.com, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="0000000000003376fb0650c4ab8e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003376fb0650c4ab8e Content-Type: multipart/alternative; boundary="0000000000003376fa0650c4ab8c" --0000000000003376fa0650c4ab8c Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, Attached are 40 incremental patches on top of v46, with all review-driven follow-ups folded in. The 0001-0031 portion is unchanged from the previous send (filenames preserved). The new patches 0032-0040 are the delta + follow-up patches we agreed to deliver on top of 0031, plus two cosmetic patches that surfaced during the sweep. As you suggested, I have not refreshed 0001-0031; the new work is layered on top so that the existing review state on those patches stays valid. Numbering and subjects of 0001-0031 are unchanged. The new patches are: - 0032 Fix A1 frame optimization bypass test in rpr_integration Per your A1 review. Switches the baseline to row_number() with an explicit ROWS frame so that the bypass guard is actually exercised. Block comment reworded in A2/A3 style. - 0033 Fix imperative voice in check_rpr_nav_expr header comment Per your typo note: "Checks for" -> "Check for". - 0034 Fix passive voice in RPR error messages Per your style note. Sweep of RPR-touched code paths (parse_rpr.c, parse_func.c, windowfuncs.c) for the "is not permitted when ... is used" / "can only be used in" patterns, rewritten to "cannot use ... with" / "cannot use ... outside". - 0035 Use Max()/Min() macros for RPR extremum accumulation Per your Max() macro suggestion. Sweep of all hand-rolled "if (x > y) y = x;" sites in createplan.c, nodeWindowAgg.c, and execRPR.c. No double-evaluation hazards on the call sites. - 0036 Reword RPR navigation function synopses Per your sgml note. "Returns the column value at the row" -> "Returns value evaluated at the row" (the first argument can be an arbitrary expression). - 0037 Replace non-ASCII characters in RPR code and tests Per your non-ASCII note. Sweep of RPR-touched files; mostly comments and rpr*.out. - 0038 Move RPR design notes from execRPR.c to README.rpr Per the README.rpr split we discussed. Extracts the design block at the head of execRPR.c into src/backend/executor/README.rpr (plain text, matching the executor/README convention). No code changes. - 0039 Apply pgindent canonicalization to RPR comment blocks Cosmetic. pgindent sweep across RPR-touched files; labeled blocks wrapped in /*---------- ... *---------- to preserve hanging indents. No code changes. - 0040 Reword RPR navigation function descriptions in pg_proc.dat Cosmetic. Aligns the eight RPR navigation descr fields with the surrounding "fetch the ... row value" pattern used by lag / lead / first_value / last_value / nth_value. On the items deferred to post-v47: - DEFINE volatile prohibition: prepared as a self-contained follow-up so it can be reviewed independently of v47. - 0009 nfaVisitedElems representation: per your decision, kept as-is. Three points behind that: (1) Size concern. visited is 1 bit per element, a flat NFA element is 16 bytes -- a fixed 128:1 ratio (~0.78%). The bitmap is dwarfed by the NFA it tracks (worst case ~4 KiB next to ~512 KiB), so it is not a memory hot spot. (2) Bitmapset misfit. Its invariants ("no trailing zero word", "empty set = NULL") map the per-advance reset onto pfree + palloc-on-next-add, which defeats the in-place / fixed-capacity reuse pattern this code relies on. (3) Future variant. A high-water mark approach (track the min/max touched word index, memset only that span on reset) preserves the in-place pattern and shrinks reset cost from O(numElements/64) to O(span_words). Held as a future optimization candidate. - 0007 / B7 (Recursive CTE XXX): tracked as a discussion item awaiting community input on the standard interpretation. Regards, Henson --0000000000003376fa0650c4ab8c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,


Attached are 40 incremental patches = on top of v46, with all
review-driven follow-ups folded in.=C2=A0 The 00= 01-0031 portion is
unchanged from the previous send (filenames preserved= ).=C2=A0 The new
patches 0032-0040 are the delta + follow-up patches we = agreed to
deliver on top of 0031, plus two cosmetic patches that surface= d
during the sweep.

As you suggested, I have not refreshed 0001-0= 031; the new work
is layered on top so that the existing review state on= those
patches stays valid.

Numbering and subjects of 0001-0031 a= re unchanged.=C2=A0 The new
patches are:


=C2=A0 - 0032 Fix A1= frame optimization bypass test in
=C2=A0 =C2=A0 rpr_integration

= =C2=A0 =C2=A0 Per your A1 review.=C2=A0 Switches the baseline to row_number= ()
=C2=A0 =C2=A0 with an explicit ROWS frame so that the bypass guard is=
=C2=A0 =C2=A0 actually exercised.=C2=A0 Block comment reworded in A2/A3= style.


=C2=A0 - 0033 Fix imperative voice in check_rpr_nav_expr= header
=C2=A0 =C2=A0 comment

=C2=A0 =C2=A0 Per your typo note: &= quot;Checks for" -> "Check for".


=C2=A0 - 0034= Fix passive voice in RPR error messages

=C2=A0 =C2=A0 Per your styl= e note.=C2=A0 Sweep of RPR-touched code paths
=C2=A0 =C2=A0 (parse_rpr.c= , parse_func.c, windowfuncs.c) for the
=C2=A0 =C2=A0 "is not permit= ted when ... is used" / "can only be used in"
=C2=A0 =C2= =A0 patterns, rewritten to "cannot use ... with" /
=C2=A0 =C2= =A0 "cannot use ... outside".


=C2=A0 - 0035 Use Max()/= Min() macros for RPR extremum accumulation

=C2=A0 =C2=A0 Per your Ma= x() macro suggestion.=C2=A0 Sweep of all hand-rolled
=C2=A0 =C2=A0 "= ;if (x > y) y =3D x;" sites in createplan.c, nodeWindowAgg.c,
= =C2=A0 =C2=A0 and execRPR.c.=C2=A0 No double-evaluation hazards on the call=
=C2=A0 =C2=A0 sites.


=C2=A0 - 0036 Reword RPR navigation fun= ction synopses

=C2=A0 =C2=A0 Per your sgml note. =C2=A0"Returns= the column value at the row"
=C2=A0 =C2=A0 -> "Returns val= ue evaluated at the row" (the first argument
=C2=A0 =C2=A0 can be a= n arbitrary expression).


=C2=A0 - 0037 Replace non-ASCII charact= ers in RPR code and tests

=C2=A0 =C2=A0 Per your non-ASCII note.=C2= =A0 Sweep of RPR-touched files;
=C2=A0 =C2=A0 mostly comments and rpr*.o= ut.


=C2=A0 - 0038 Move RPR design notes from execRPR.c to README= .rpr

=C2=A0 =C2=A0 Per the README.rpr split we discussed.=C2=A0 Extr= acts the
=C2=A0 =C2=A0 design block at the head of execRPR.c into
=C2= =A0 =C2=A0 src/backend/executor/README.rpr (plain text, matching the
=C2= =A0 =C2=A0 executor/README convention).=C2=A0 No code changes.


= =C2=A0 - 0039 Apply pgindent canonicalization to RPR comment blocks

= =C2=A0 =C2=A0 Cosmetic. =C2=A0pgindent sweep across RPR-touched files; labe= led
=C2=A0 =C2=A0 blocks wrapped in /*---------- ... *---------- to pres= erve
=C2=A0 =C2=A0 hanging indents.=C2=A0 No code changes.


= =C2=A0 - 0040 Reword RPR navigation function descriptions in
=C2=A0 =C2= =A0 pg_proc.dat

=C2=A0 =C2=A0 Cosmetic.=C2=A0 Aligns the eight RPR n= avigation descr fields
=C2=A0 =C2=A0 with the surrounding "fetch th= e ... row value" pattern used
=C2=A0 =C2=A0 by lag / lead / first_v= alue / last_value / nth_value.


On the items deferred to post-v47= :


=C2=A0 - DEFINE volatile prohibition: prepared as a self-conta= ined
=C2=A0 =C2=A0 follow-up so it can be reviewed independently of v47.=

=C2=A0 - 0009 nfaVisitedElems representation: per your decision,=C2=A0 =C2=A0 kept as-is.=C2=A0 Three points behind that:

=C2=A0 = =C2=A0 =C2=A0 (1) Size concern. =C2=A0visited is 1 bit per element, a flat<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NFA element is 16 bytes -- a fixed 12= 8:1 ratio
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (~0.78%).=C2=A0 The bitmap = is dwarfed by the NFA it
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 tracks (wors= t case ~4 KiB next to ~512 KiB), so it
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 is not a memory hot spot.

=C2=A0 =C2=A0 =C2=A0 (2) Bitmapset mis= fit.=C2=A0 Its invariants ("no trailing zero
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 word", "empty set =3D NULL") map the per-advan= ce reset
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 onto pfree + palloc-on-next-= add, which defeats the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 in-place / fix= ed-capacity reuse pattern this code
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 r= elies on.

=C2=A0 =C2=A0 =C2=A0 (3) Future variant.=C2=A0 A high-wate= r mark approach (track
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 the min/max to= uched word index, memset only that
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sp= an on reset) preserves the in-place pattern and
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 shrinks reset cost from O(numElements/64) to
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 O(span_words).=C2=A0 Held as a future optimization
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 candidate.

=C2=A0 - 0007 / B7 (Re= cursive CTE XXX): tracked as a discussion item
=C2=A0 =C2=A0 awaiting co= mmunity input on the standard interpretation.


Regards,
Henson=
--0000000000003376fa0650c4ab8c-- --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0001-Remove-unused-regex-include.txt" Content-Disposition: attachment; filename="nocfbot-0001-Remove-unused-regex-include.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon620xp0 RnJvbSBmNzlkNDM1OGJjMDAzM2JjNGZlOGI0ZjhjOWUzMjkwNGQzZGY2YTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDI0IE1hciAyMDI2IDE5OjA0OjE5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAwMS80MF0g UmVtb3ZlIHVudXNlZCByZWdleC9yZWdleC5oIGluY2x1ZGUgZnJvbQogbm9kZVdpbmRvd0FnZy5j CgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDEgLQogMSBmaWxl IGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMK aW5kZXggNGY4ODJiODc3YjEuLjE4NWQ3YTBkNWFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jCkBAIC01MCw3ICs1MCw2IEBACiAjaW5jbHVkZSAib3B0aW1pemVyL3Jwci5oIgog I2luY2x1ZGUgInBhcnNlci9wYXJzZV9hZ2cuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29l cmNlLmgiCi0jaW5jbHVkZSAicmVnZXgvcmVnZXguaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCi0t IAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0002-CHECK_FOR_INTERRUPTS-nfa_add_state_unique.txt" Content-Disposition: attachment; filename="nocfbot-0002-CHECK_FOR_INTERRUPTS-nfa_add_state_unique.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon622sq1 RnJvbSAzMWUwN2RjYmQ1MzkxYjdmZjllZjgyOTNmY2IwOTBjZjhmODQ1YzcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjI1OjQwICswOTAwClN1YmplY3Q6IFtQQVRDSCAwMi80MF0g QWRkIENIRUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gbmZhX2FkZF9zdGF0ZV91bmlxdWUoKQogZm9y IHN0YXRlIGV4cGxvc2lvbiBwYXR0ZXJucwoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1JQUi5jCmluZGV4IGJhYjUyNTdmNjhmLi5jZjU0ZTBjNzZjMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSUFIuYwpAQCAtMTc2Myw2ICsxNzYzLDggQEAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQUk5GQVN0YXRlICoKIAkv KiBDaGVjayBmb3IgZHVwbGljYXRlIGFuZCBmaW5kIHRhaWwgKi8KIAlmb3IgKHMgPSBjdHgtPnN0 YXRlczsgcyAhPSBOVUxMOyBzID0gcy0+bmV4dCkKIAl7CisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRT KCk7CisKIAkJaWYgKG5mYV9zdGF0ZXNfZXF1YWwod2luc3RhdGUsIHMsIHN0YXRlKSkKIAkJewog CQkJLyoKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0003-CHECK_FOR_INTERRUPTS-nfa_try_absorb_context.txt" Content-Disposition: attachment; filename="nocfbot-0003-CHECK_FOR_INTERRUPTS-nfa_try_absorb_context.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon624jc2 RnJvbSAwZjE1ZmRhYmMwMWZjMTUwM2YyYTEzMjUzZGY2NTg0NGVjZTRjODZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDExOjAzOjM5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAwMy80MF0g QWRkIENIRUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gbmZhX3RyeV9hYnNvcmJfY29udGV4dCgpCiBs b29wCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyB8IDIgKysKIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggY2Y1NGUw Yzc2YzMuLjU4ZjlkYTBiODE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0yMDg0LDYgKzIw ODQsOCBAQCBuZmFfdHJ5X2Fic29yYl9jb250ZXh0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4KQogCiAJZm9yIChvbGRlciA9IGN0eC0+cHJldjsgb2xkZXIgIT0g TlVMTDsgb2xkZXIgPSBvbGRlci0+cHJldikKIAl7CisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7 CisKIAkJLyoKIAkJICogQnkgaW52YXJpYW50OiBjdHgtPnByZXYgY2hhaW4gaXMgaW4gY3JlYXRp b24gb3JkZXIgKG9sZGVzdCBmaXJzdCksCiAJCSAqIGFuZCBlYWNoIHJvdyBjcmVhdGVzIGF0IG1v c3Qgb25lIGNvbnRleHQuIFNvIGFsbCBjb250ZXh0cyBpbiB0aGlzCi0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0004-Fix-defineClause-TargetEntry-copy.txt" Content-Disposition: attachment; filename="nocfbot-0004-Fix-defineClause-TargetEntry-copy.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon626ne3 RnJvbSA2NjAxZGRhM2QyOTdlZTg5MjhiYmUxYzAzNTEwMmQ2ODNjNzgyNTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjIwOjA1ICswOTAwClN1YmplY3Q6IFtQQVRDSCAwNC80MF0g Rml4IGluLXBsYWNlIG1vZGlmaWNhdGlvbiBvZiBkZWZpbmVDbGF1c2UgVGFyZ2V0RW50cnkKIGlu IHNldHJlZnMuYwoKLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgfCA0 ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggNjljZDE4NjFlOWIuLjgxM2EzMjZi ZDc4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysr IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yNjMzLDcgKzI2MzMs NyBAQCBzZXRfdXBwZXJfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwg aW50IHJ0b2Zmc2V0KQogCQkJCQkgICBOVU1fRVhFQ19RVUFMKHBsYW4pKTsKIAogCS8qCi0JICog TW9kaWZpZXMgYW4gZXhwcmVzc2lvbiB0cmVlIGluIGVhY2ggREVGSU5FIGNsYXVzZSBzbyB0aGF0 IGFsbCBWYXIKKwkgKiBSZXBsYWNlIGFuIGV4cHJlc3Npb24gdHJlZSBpbiBlYWNoIERFRklORSBj bGF1c2Ugc28gdGhhdCBhbGwgVmFyCiAJICogbm9kZXMncyB2YXJubyByZWZlcnMgdG8gT1VURVJf VkFSLgogCSAqLwogCWlmIChJc0EocGxhbiwgV2luZG93QWdnKSkKQEAgLTI2NDYsNiArMjY0Niw3 IEBAIHNldF91cHBlcl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBp bnQgcnRvZmZzZXQpCiAJCQl7CiAJCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAq KSBsZmlyc3QobCk7CiAKKwkJCQl0bGUgPSBmbGF0Q29weVRhcmdldEVudHJ5KHRsZSk7CiAJCQkJ dGxlLT5leHByID0gKEV4cHIgKikKIAkJCQkJZml4X3VwcGVyX2V4cHIocm9vdCwKIAkJCQkJCQkJ ICAgKE5vZGUgKikgdGxlLT5leHByLApAQCAtMjY1NCw2ICsyNjU1LDcgQEAgc2V0X3VwcGVyX3Jl ZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAkJ CQkJCQkJICAgcnRvZmZzZXQsCiAJCQkJCQkJCSAgIE5STV9FUVVBTCwKIAkJCQkJCQkJICAgTlVN X0VYRUNfUVVBTChwbGFuKSk7CisJCQkJbGZpcnN0KGwpID0gdGxlOwogCQkJfQogCQl9CiAJfQot LSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0005-Fix-mark-handling-last_value-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0005-Fix-mark-handling-last_value-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon628fl4 RnJvbSAzMWU3ZGFjYjhiMGZhNmVhZDYzZmY5MmMxOWFhNWRmYjBjZGU3NmExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjM3OjUwICswOTAwClN1YmplY3Q6IFtQQVRDSCAwNS80MF0g Rml4IG1hcmsgaGFuZGxpbmcgZm9yIGxhc3RfdmFsdWUoKSB1bmRlciBSUFIKCkVuYWJsZSBtYXJr IGFkdmFuY2VtZW50IGluIHdpbmRvd19sYXN0X3ZhbHVlKCkgZm9yCmJldHRlciB0dXBsZXN0b3Jl IG1lbW9yeSB1c2FnZSBpbiBub24tUlBSIGNhc2VzLCB3aGlsZQphZGRpbmcgYSBndWFyZCBpbiBX aW5HZXRGdW5jQXJnSW5GcmFtZSB0byBzdXBwcmVzcyBpdApmb3IgUlBSIFNFRUtfVEFJTCB0byBw cmV2ZW50IHBvc2l0aW9uIGludmFsaWRhdGlvbgpmcm9tIHJlZHVjZWQgZnJhbWUgc2hpZnRzLgot LS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDEwICsrKysrKysrKysK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jICB8ICAyICstCiAyIGZpbGVzIGNo YW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlV2luZG93QWdnLmMKaW5kZXggMTg1ZDdhMGQ1YWUuLmFlZDdjYmVmOTlhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC00OTMyLDcgKzQ5MzIsMTcgQEAgV2luR2V0U2xv dEluRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJaWYg KGlzb3V0KQogCQkqaXNvdXQgPSBmYWxzZTsKIAlpZiAoc2V0X21hcmspCisJeworCQkvKgorCQkg KiBJZiBSUFIgaXMgZW5hYmxlZCBhbmQgc2VlayB0eXBlIGlzIFdJTkRPV19TRUVLX1RBSUwsIHdl IHNldCB0aGUKKwkJICogbWFyayBwb3NpdGlvbiB1bmNvbmRpdGlvbmFsbHkgdG8gZnJhbWVoZWFk cG9zLiBJbiB0aGlzIGNhc2UgdGhlCisJCSAqIGZyYW1lIGFsd2F5cyBzdGFydHMgYXQgQ1VSUkVO VF9ST1cgYW5kIG5ldmVyIGdvZXMgYmFjaywgdGh1cworCQkgKiBzZXR0aW5nIHRoZSBtYXJrIGF0 IHRoZSBwb3NpdGlvbiBpcyBzYWZlLgorCQkgKi8KKwkJaWYgKHdpbnN0YXRlLT5ycFBhdHRlcm4g IT0gTlVMTCAmJiBzZWVrdHlwZSA9PSBXSU5ET1dfU0VFS19UQUlMKQorCQkJbWFya19wb3MgPSB3 aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zOwogCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBtYXJr X3Bvcyk7CisJfQogCXJldHVybiAwOwogCiBvdXRfb2ZfZnJhbWU6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93 aW5kb3dmdW5jcy5jCmluZGV4IGVmYjYwYzk5MDUyLi43NGVmMTA5ZjcyZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3dpbmRvd2Z1bmNzLmMKQEAgLTY4Miw3ICs2ODIsNyBAQCB3aW5kb3dfbGFzdF92YWx1 ZShQR19GVU5DVElPTl9BUkdTKQogCiAJV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVu dCh3aW5vYmosIHRydWUsIGZjaW5mbyk7CiAJcmVzdWx0ID0gV2luR2V0RnVuY0FyZ0luRnJhbWUo d2lub2JqLCAwLAotCQkJCQkJCQkgIDAsIFdJTkRPV19TRUVLX1RBSUwsIGZhbHNlLAorCQkJCQkJ CQkgIDAsIFdJTkRPV19TRUVLX1RBSUwsIHRydWUsCiAJCQkJCQkJCSAgJmlzbnVsbCwgTlVMTCk7 CiAJaWYgKGlzbnVsbCkKIAkJUEdfUkVUVVJOX05VTEwoKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0 LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0006-Fix-DEFINE-expression-handling-RPR-window-planning.txt" Content-Disposition: attachment; filename="nocfbot-0006-Fix-DEFINE-expression-handling-RPR-window-planning.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62asp5 RnJvbSBiMGYwMTg0ZWYwODJkYmQwYTQ3NDRkMDhmNmIwYjdkNTM2NmMyNzMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTE6NTU6MDIgKzA5MDAKU3ViamVjdDogW1BBVENIIDA2LzQwXSBG aXggREVGSU5FIGV4cHJlc3Npb24gaGFuZGxpbmcgaW4gUlBSIHdpbmRvdyBwbGFubmluZwoKdHJh bnNmb3JtRGVmaW5lQ2xhdXNlKCkgYWRkZWQgZnVsbCBERUZJTkUgZXhwcmVzc2lvbnMgaW5jbHVk aW5nClJQUk5hdkV4cHIgKFBSRVYvTkVYVCkgbm9kZXMgdG8gdGhlIHF1ZXJ5IHRhcmdldGxpc3Qu ICBUaGVzZQpwcm9wYWdhdGVkIHRvIHVwcGVyIFdpbmRvd0FnZyBub2RlcyB0aGF0IGxhY2sgUlBS IG5hdmlnYXRpb24gc3RhdGUsCmNhdXNpbmcgYSBTSUdTRUdWIHdoZW4gUlBSIGFuZCBub24tUlBS IHdpbmRvd3MgY29leGlzdCBpbiB0aGUgc2FtZQpxdWVyeS4KCkFkZCBvbmx5IHRoZSBWYXIgbm9k ZXMgcmVmZXJlbmNlZCBieSBERUZJTkUgZXhwcmVzc2lvbnMgdG8gdGhlCnRhcmdldGxpc3QsIGFu ZCBwcm90ZWN0IHRob3NlIFZhcnMgZnJvbSByZW1vdmFsIGJ5CnJlbW92ZV91bnVzZWRfc3VicXVl cnlfb3V0cHV0cygpIHNvIHRoZXkgcmVtYWluIGF2YWlsYWJsZSBpbiB0aGUKdHVwbGVzdG9yZSBz bG90IGZvciBwYXR0ZXJuIG1hdGNoaW5nIGV2YWx1YXRpb24uCgpNb3ZlIHRoZSBzdWJxdWVyeSB3 cmFwcGluZyB0ZXN0cyBmcm9tIHJwci5zcWwgdG8gcnByX2ludGVncmF0aW9uLnNxbC4KLS0tCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jIHwgIDY4ICsrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgIHwgMTA2ICsrKysrKysr KysrKysrLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCA0 OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9h bGxwYXRocy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCBm NDJhMmJhZTE0YS4uNDcwMDI5ZTQyZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wYXRoL2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0 aHMuYwpAQCAtNDc1MCw2ICs0NzUwLDc0IEBAIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0 cyhRdWVyeSAqc3VicXVlcnksIFJlbE9wdEluZm8gKnJlbCwKIAkJaWYgKGNvbnRhaW5fdm9sYXRp bGVfZnVuY3Rpb25zKHRleHByKSkKIAkJCWNvbnRpbnVlOwogCisJCS8qCisJCSAqIElmIGFueSBS UFIgKFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uKSB3aW5kb3cgY2xhdXNlIHJlZmVyZW5jZXMgdGhp cworCQkgKiBjb2x1bW4gaW4gaXRzIERFRklORSBjbGF1c2UsIGRvbid0IHJlbW92ZSBpdC4gIFRo ZSBERUZJTkUKKwkJICogZXhwcmVzc2lvbiBuZWVkcyB0aGVzZSBjb2x1bW5zIGluIHRoZSB0dXBs ZXN0b3JlIHNsb3QgZm9yIHBhdHRlcm4KKwkJICogbWF0Y2hpbmcgZXZhbHVhdGlvbiwgZXZlbiBp ZiB0aGUgb3V0ZXIgcXVlcnkgZG9lc24ndCByZWZlcmVuY2UKKwkJICogdGhlbS4KKwkJICovCisJ CWlmIChJc0EodGV4cHIsIFZhcikpCisJCXsKKwkJCVZhcgkJICAgKnZhciA9IChWYXIgKikgdGV4 cHI7CisJCQlMaXN0Q2VsbCAgICp3bGM7CisJCQlib29sCQluZWVkZWRfYnlfZGVmaW5lID0gZmFs c2U7CisKKwkJCWZvcmVhY2god2xjLCBzdWJxdWVyeS0+d2luZG93Q2xhdXNlKQorCQkJeworCQkJ CVdpbmRvd0NsYXVzZSAqd2MgPSBsZmlyc3Rfbm9kZShXaW5kb3dDbGF1c2UsIHdsYyk7CisKKwkJ CQlpZiAod2MtPmRlZmluZUNsYXVzZSAhPSBOSUwpCisJCQkJeworCQkJCQlMaXN0CSAgICp2YXJz ID0gcHVsbF92YXJfY2xhdXNlKChOb2RlICopIHdjLT5kZWZpbmVDbGF1c2UsIDApOworCQkJCQlM aXN0Q2VsbCAgICp2bGM7CisKKwkJCQkJZm9yZWFjaCh2bGMsIHZhcnMpCisJCQkJCXsKKwkJCQkJ CVZhcgkJICAgKmR2YXIgPSAoVmFyICopIGxmaXJzdCh2bGMpOworCisJCQkJCQlpZiAoZHZhci0+ dmFyYXR0bm8gPT0gdmFyLT52YXJhdHRubykKKwkJCQkJCXsKKwkJCQkJCQluZWVkZWRfYnlfZGVm aW5lID0gdHJ1ZTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQlsaXN0X2Zy ZWUodmFycyk7CisJCQkJCWlmIChuZWVkZWRfYnlfZGVmaW5lKQorCQkJCQkJYnJlYWs7CisJCQkJ fQorCQkJfQorCQkJaWYgKG5lZWRlZF9ieV9kZWZpbmUpCisJCQkJY29udGludWU7CisJCX0KKwor CQkvKgorCQkgKiBJZiBpdCdzIGEgd2luZG93IGZ1bmN0aW9uIHJlZmVyZW5jaW5nIGEgd2luZG93 IGNsYXVzZSB3aXRoIFJQUiwKKwkJICogZG9uJ3QgcmVtb3ZlIGl0LiAgRXZlbiB3aGVuIHRoZSB3 aW5kb3cgZnVuY3Rpb24gcmVzdWx0IGlzIHVudXNlZCBieQorCQkgKiB0aGUgb3V0ZXIgcXVlcnks IHRoZSBSUFIgcGF0dGVybiBtYXRjaGluZyAoZnJhbWUgcmVkdWN0aW9uIHZpYQorCQkgKiBERUZJ TkUvUEFUVEVSTikgbXVzdCBzdGlsbCBleGVjdXRlLiAgUmVwbGFjaW5nIHRoaXMgd2l0aCBOVUxM IHdvdWxkCisJCSAqIGxlYXZlIG5vIGFjdGl2ZSB3aW5kb3cgZnVuY3Rpb25zIGZvciB0aGUgV2lu ZG93Q2xhdXNlLCBjYXVzaW5nIHRoZQorCQkgKiBwbGFubmVyIHRvIG9taXQgdGhlIFdpbmRvd0Fn ZyBub2RlIGVudGlyZWx5LgorCQkgKi8KKwkJaWYgKElzQSh0ZXhwciwgV2luZG93RnVuYykpCisJ CXsKKwkJCVdpbmRvd0Z1bmMgKndmdW5jID0gKFdpbmRvd0Z1bmMgKikgdGV4cHI7CisJCQlMaXN0 Q2VsbCAgICp3bGM7CisKKwkJCWZvcmVhY2god2xjLCBzdWJxdWVyeS0+d2luZG93Q2xhdXNlKQor CQkJeworCQkJCVdpbmRvd0NsYXVzZSAqd2MgPSBsZmlyc3Rfbm9kZShXaW5kb3dDbGF1c2UsIHds Yyk7CisKKwkJCQlpZiAod2MtPndpbnJlZiA9PSB3ZnVuYy0+d2lucmVmICYmCisJCQkJCXdjLT5k ZWZpbmVDbGF1c2UgIT0gTklMKQorCQkJCXsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJ aWYgKHdsYyAhPSBOVUxMKQorCQkJCWNvbnRpbnVlOworCQl9CisKIAkJLyoKIAkJICogT0ssIHdl IGRvbid0IG5lZWQgaXQuICBSZXBsYWNlIHRoZSBleHByZXNzaW9uIHdpdGggYSBOVUxMIGNvbnN0 YW50LgogCQkgKiBQcmVzZXJ2ZSB0aGUgZXhwb3NlZCB0eXBlIG9mIHRoZSBleHByZXNzaW9uLCBp biBjYXNlIHNvbWV0aGluZwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IDU1MjgzYWI0YmJlLi5k YjEzMDljYTMxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtMjgsNiArMjgsNyBAQAogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIK ICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NsYXVz ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCkBAIC0zMTAsOSArMzExLDcg QEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNl ICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAJcmVzdGFyZ2V0cyA9IE5JTDsKIAlmb3JlYWNoKGxj LCB3aW5kZWYtPnJwQ29tbW9uU3ludGF4LT5ycERlZnMpCiAJewotCQlUYXJnZXRFbnRyeSAqdGUs Ci0JCQkJICAgKnRlRGVmaW5lOwotCQlpbnQJCQlkZWZpbmVFeHByTG9jYXRpb247CisJCVRhcmdl dEVudHJ5ICp0ZURlZmluZTsKIAogCQlyZXN0YXJnZXQgPSAoUmVzVGFyZ2V0ICopIGxmaXJzdChs Yyk7CiAJCW5hbWUgPSByZXN0YXJnZXQtPm5hbWU7CkBAIC0zMzUsNTcgKzMzNCw2OCBAQCB0cmFu c2Zvcm1EZWZpbmVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dDbGF1c2UgKndjLCBX aW5kb3dEZWYgKndpbmRlZiwKIAkJcmVzdGFyZ2V0cyA9IGxhcHBlbmQocmVzdGFyZ2V0cywgcmVz dGFyZ2V0KTsKIAogCQkvKgotCQkgKiBUcmFuc2Zvcm0gdGhlIERFRklORSBleHByZXNzaW9uIChy ZXN0YXJnZXQtPnZhbCkgYW5kIGFkZCBpdCB0byB0aGUKLQkJICogdGFyZ2V0bGlzdCBhcyBhIFRh cmdldEVudHJ5IGlmIG5vdCBhbHJlYWR5IHByZXNlbnQsIHNvIHRoZSBwbGFubmVyCi0JCSAqIGNh biBwcm9wYWdhdGUgdGhlIHJlZmVyZW5jZWQgY29sdW1ucyB0byB0aGUgb3V0ZXIgcGxhbidzCi0J CSAqIHRhcmdldGxpc3QuCisJCSAqIFRyYW5zZm9ybSB0aGUgREVGSU5FIGV4cHJlc3Npb24uICBX ZSBtdXN0IE5PVCBhZGQgdGhlIHdob2xlCisJCSAqIGV4cHJlc3Npb24gdG8gdGhlIHF1ZXJ5IHRh cmdldGxpc3QsIGJlY2F1c2UgaXQgbWF5IGNvbnRhaW4KKwkJICogUlBSTmF2RXhwciBub2RlcyAo UFJFVi9ORVhUKSB0aGF0IGNhbiBvbmx5IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlCisJCSAqIG93 bmluZyBXaW5kb3dBZ2cuCiAJCSAqCi0JCSAqIE5vdGU6IGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5 OSB0cmFuc2Zvcm1zIGFuZCBjbG9iYmVycwotCQkgKiByZXN0YXJnZXQtPnZhbC4KKwkJICogSW5z dGVhZCwgd2UgdHJhbnNmb3JtIHRoZSBleHByZXNzaW9uIGRpcmVjdGx5IGFuZCBvbmx5IGVuc3Vy ZSB0aGF0CisJCSAqIHRoZSBpbmRpdmlkdWFsIFZhciBub2RlcyBpdCByZWZlcmVuY2VzIGFyZSBw cmVzZW50IGluIHRoZQorCQkgKiB0YXJnZXRsaXN0LCBzbyB0aGUgcGxhbm5lciBjYW4gcHJvcGFn YXRlIHRoZSByZWZlcmVuY2VkIGNvbHVtbnMuCiAJCSAqLworCQl7CisJCQlOb2RlCSAgICpleHBy OworCQkJTGlzdAkgICAqdmFyczsKKwkJCUxpc3RDZWxsICAgKmxjMjsKIAotCQkvKgotCQkgKiBT YXZlIHRoZSBvcmlnaW5hbCBleHByZXNzaW9uIGxvY2F0aW9uIGJlZm9yZSB0cmFuc2Zvcm1hdGlv bi4KLQkJICogZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5IG1heSByZXR1cm4gYW4gZXhpc3Rpbmcg VGFyZ2V0RW50cnkgd2hvc2UKLQkJICogbG9jYXRpb24gcG9pbnRzIHRvIHdoZXJlIGl0IHdhcyBv cmlnaW5hbGx5IGNyZWF0ZWQgKGUuZy4sIE9SREVSCi0JCSAqIEJZKSwgbm90IHRoZSBERUZJTkUg Y2xhdXNlLiBXZSBuZWVkIHRvIHByZXNlcnZlIHRoZSBERUZJTkUgbG9jYXRpb24KLQkJICogZm9y IGFjY3VyYXRlIGVycm9yIHJlcG9ydGluZy4KLQkJICovCi0JCWRlZmluZUV4cHJMb2NhdGlvbiA9 IGV4cHJMb2NhdGlvbihyZXN0YXJnZXQtPnZhbCk7CisJCQlleHByID0gdHJhbnNmb3JtRXhwcihw c3RhdGUsIHJlc3RhcmdldC0+dmFsLAorCQkJCQkJCQkgRVhQUl9LSU5EX1JQUl9ERUZJTkUpOwor CisJCQkvKgorCQkJICogUHVsbCBvdXQgVmFyIG5vZGVzIGZyb20gdGhlIHRyYW5zZm9ybWVkIGV4 cHJlc3Npb24gYW5kIGVuc3VyZQorCQkJICogZWFjaCBvbmUgaXMgcHJlc2VudCBpbiB0aGUgdGFy Z2V0bGlzdC4gIFRoaXMgaXMgbmVlZGVkIHNvIHRoZQorCQkJICogcGxhbm5lciBwcm9wYWdhdGVz IHRoZSByZWZlcmVuY2VkIGNvbHVtbnMgdGhyb3VnaCB0aGUgcGxhbgorCQkJICogdHJlZSwgbWFr aW5nIHRoZW0gYXZhaWxhYmxlIHRvIHRoZSBXaW5kb3dBZ2cncyBERUZJTkUKKwkJCSAqIGV2YWx1 YXRpb24uCisJCQkgKi8KKwkJCXZhcnMgPSBwdWxsX3Zhcl9jbGF1c2UoZXhwciwgMCk7CisJCQlm b3JlYWNoKGxjMiwgdmFycykKKwkJCXsKKwkJCQlWYXIJCSAgICp2YXIgPSAoVmFyICopIGxmaXJz dChsYzIpOworCQkJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJCQkJTGlzdENlbGwgICAqdGw7CiAK LQkJdGUgPSBmaW5kVGFyZ2V0bGlzdEVudHJ5U1FMOTkocHN0YXRlLCByZXN0YXJnZXQtPnZhbCwK LQkJCQkJCQkJCSAgdGFyZ2V0bGlzdCwgRVhQUl9LSU5EX1JQUl9ERUZJTkUpOworCQkJCWZvcmVh Y2godGwsICp0YXJnZXRsaXN0KQorCQkJCXsKKwkJCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJn ZXRFbnRyeSAqKSBsZmlyc3QodGwpOwogCi0JCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0KLQkJICog Q29weSB0aGUgVGFyZ2V0RW50cnkgZm9yIGRlZmluZUNsYXVzZSBhbmQgYWx3YXlzIHNldCB0aGUg cGF0dGVybgotCQkgKiB2YXJpYWJsZSBuYW1lLiBXZSB1c2UgY29weU9iamVjdCBzbyB0aGUgb3Jp Z2luYWwgdGFyZ2V0bGlzdCBlbnRyeQotCQkgKiBpcyBub3QgbW9kaWZpZWQuCi0JCSAqCi0JCSAq IE5vdGU6IFdlIG11c3QgYWx3YXlzIHNldCByZXNuYW1lIHRvIHRoZSBwYXR0ZXJuIHZhcmlhYmxl IG5hbWUuCi0JCSAqIGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OSBjcmVhdGVzIG5ldyBURXMgd2l0 aCByZXNuYW1lID0gTlVMTAotCQkgKiAocmVzanVuayBlbnRyaWVzKSwgYnV0IHJldHVybnMgZXhp c3RpbmcgVEVzIHVuY2hhbmdlZCB3aGVuIHRoZQotCQkgKiBleHByZXNzaW9uIGFscmVhZHkgZXhp c3RzIGluIHRhcmdldGxpc3QuCi0JCSAqCi0JCSAqIEV4YW1wbGU6ICJTRUxFQ1QgaWQsIGZsYWcs IC4uLiBXSU5ET1cgdyBBUyAoLi4uIERFRklORSBUIEFTIGZsYWcpIgotCQkgKgotCQkgKiAxLiBT RUxFQ1QgbGlzdCBwcm9jZXNzaW5nIGNyZWF0ZXM6IFRFe3Jlc25hbWU9ImZsYWciLCBleHByPWZs YWd9Ci0JCSAqIDIuIERFRklORSBUIEFTIGZsYWc6IGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OSBm aW5kcyBleGlzdGluZyBURQotCQkgKiAzLiB0ZS0+cmVzbmFtZSBpcyAiZmxhZyIgKGZyb20gU0VM RUNUKSwgbm90IE5VTEwKLQkJICogNC4gV2l0aG91dCB1bmNvbmRpdGlvbmFsbHkgc2V0dGluZyBy ZXNuYW1lLCB0ZURlZmluZS0+cmVzbmFtZQotCQkgKiAgICB3b3VsZCByZW1haW4gImZsYWciIGlu c3RlYWQgb2YgcGF0dGVybiB2YXJpYWJsZSBuYW1lICJUIgotCQkgKiA1LiBidWlsZFJQUlBhdHRl cm4gYnVpbGRzIGRlZmluZVZhcmlhYmxlTGlzdCBmcm9tIHJlc25hbWUsIHNvCi0JCSAqICAgIGl0 IHdvdWxkIGNvbnRhaW4gWyJmbGFnIl0gaW5zdGVhZCBvZiBbIlQiXQotCQkgKiA2LiBQYXR0ZXJu IHZhcmlhYmxlICJUIiBub3QgZm91bmQgLT4gQXNzZXJ0IGZhaWx1cmUgY3Jhc2gKLQkJICovCi0J CXRlRGVmaW5lID0gY29weU9iamVjdCh0ZSk7Ci0JCXRlRGVmaW5lLT5yZXNuYW1lID0gcHN0cmR1 cChuYW1lKTsKKwkJCQkJaWYgKElzQSh0bGUtPmV4cHIsIFZhcikgJiYKKwkJCQkJCSgoVmFyICop IHRsZS0+ZXhwciktPnZhcm5vID09IHZhci0+dmFybm8gJiYKKwkJCQkJCSgoVmFyICopIHRsZS0+ ZXhwciktPnZhcmF0dG5vID09IHZhci0+dmFyYXR0bm8pCisJCQkJCXsKKwkJCQkJCWZvdW5kID0g dHJ1ZTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJCWlmICghZm91bmQpCisJCQkJ eworCQkJCQlUYXJnZXRFbnRyeSAqbmV3dGxlOwogCi0JCS8qCi0JCSAqIFVwZGF0ZSB0aGUgZXhw cmVzc2lvbiBsb2NhdGlvbiB0byBwb2ludCB0byB0aGUgREVGSU5FIGNsYXVzZS4gVGhpcwotCQkg KiBlbnN1cmVzIGVycm9yIG1lc3NhZ2VzIHJlZmVyZW5jZSB0aGUgY29ycmVjdCBzb3VyY2UgbG9j YXRpb24uCi0JCSAqLwotCQlpZiAoZGVmaW5lRXhwckxvY2F0aW9uID49IDAgJiYgSXNBKHRlRGVm aW5lLT5leHByLCBWYXIpKQotCQkJKChWYXIgKikgdGVEZWZpbmUtPmV4cHIpLT5sb2NhdGlvbiA9 IGRlZmluZUV4cHJMb2NhdGlvbjsKKwkJCQkJbmV3dGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHBy ICopIGNvcHlPYmplY3QodmFyKSwKKwkJCQkJCQkJCQkJIGxpc3RfbGVuZ3RoKCp0YXJnZXRsaXN0 KSArIDEsCisJCQkJCQkJCQkJCSBOVUxMLAorCQkJCQkJCQkJCQkgdHJ1ZSk7CisJCQkJCSp0YXJn ZXRsaXN0ID0gbGFwcGVuZCgqdGFyZ2V0bGlzdCwgbmV3dGxlKTsKKwkJCQl9CisJCQl9CisJCQls aXN0X2ZyZWUodmFycyk7CisKKwkJCS8qIEJ1aWxkIHRoZSBkZWZpbmVDbGF1c2UgZW50cnkgZGly ZWN0bHkgZnJvbSB0aGUgdHJhbnNmb3JtZWQgZXhwciAqLworCQkJdGVEZWZpbmUgPSBtYWtlVGFy Z2V0RW50cnkoKEV4cHIgKikgZXhwciwKKwkJCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGRlZmluZUNs YXVzZSkgKyAxLAorCQkJCQkJCQkJICAgcHN0cmR1cChuYW1lKSwKKwkJCQkJCQkJCSAgIHRydWUp OworCQl9CiAKIAkJLyogYnVpbGQgdHJhbnNmb3JtZWQgREVGSU5FIGNsYXVzZSAobGlzdCBvZiBU YXJnZXRFbnRyeSkgKi8KIAkJZGVmaW5lQ2xhdXNlID0gbGFwcGVuZChkZWZpbmVDbGF1c2UsIHRl RGVmaW5lKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0007-Add-RPR-planner-integration-tests.txt" Content-Disposition: attachment; filename="nocfbot-0007-Add-RPR-planner-integration-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62cw26 RnJvbSBlZTRlZWU5MzVhYmNjNWQwZTA4OWIxOWU4OGE4MWU4ZWNhYzUyNjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTQ6MDk6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIIDA3LzQwXSBB ZGQgUlBSIHBsYW5uZXIgaW50ZWdyYXRpb24gdGVzdHMKCkFkZCBycHJfaW50ZWdyYXRpb24uc3Fs IGNvdmVyaW5nIHBsYW5uZXIgb3B0aW1pemF0aW9uIGludGVyYWN0aW9ucwp3aXRoIFJQUiB3aW5k b3dzOiBmcmFtZSBvcHRpbWl6YXRpb24sIHJ1biBjb25kaXRpb24gcHVzaGRvd24sIHdpbmRvdwpk ZWR1cGxpY2F0aW9uLCB1bnVzZWQgd2luZG93IHJlbW92YWwsIGludmVyc2UgdHJhbnNpdGlvbiwg Y29zdAplc3RpbWF0aW9uLCBzdWJxdWVyeSBmbGF0dGVuaW5nLCBERUZJTkUgZXhwcmVzc2lvbiBw cm9wYWdhdGlvbiwgYW5kCkxJTUlULiAgQWxzbyBjb3ZlcnMgaW50ZWdyYXRpb24gc2NlbmFyaW9z IHdpdGggcGFydGl0aW9uZWQgdGFibGVzLApMQVRFUkFMLCByZWN1cnNpdmUgQ1RFcywgaW5jcmVt ZW50YWwgc29ydCwgdm9sYXRpbGUgZnVuY3Rpb25zLCBhbmQKY29ycmVsYXRlZCBzdWJxdWVyaWVz LgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCB8IDE0 NDkgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg ICAgICAgICAgICB8ICAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlv bi5zcWwgICAgICB8ICA5MzQgKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjM4NCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMGVlNjEyYjc0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKQEAgLTAsMCArMSwxNDQ5IEBACist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIFJQUiBJbnRlZ3JhdGlvbiBUZXN0cworLS0gUGxhbm5lciBvcHRpbWl6YXRpb24g aW50ZXJhY3Rpb24gdGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t CistLSBWZXJpZmllcyB0aGF0IGVhY2ggcGxhbm5lciBvcHRpbWl6YXRpb24gY29ycmVjdGx5IGhh bmRsZXMgUlBSIHdpbmRvd3MuCistLSBFdmVuIGlmIGluZGl2aWR1YWwgb3B0aW1pemF0aW9ucyBh cmUgdGVzdGVkIGVsc2V3aGVyZSwgdGhpcyBmaWxlCistLSBwcm92aWRlcyBhIHNpbmdsZSBjaGVj a3BvaW50IGZvciBhbGwgcGxhbm5lci9SUFIgaW50ZXJhY3Rpb25zLgorLS0KKy0tIEEuIFBsYW5u ZXIgT3B0aW1pemF0aW9uIFByb3RlY3Rpb24gVGVzdHMKKy0tICAgIEExLiBGcmFtZSBvcHRpbWl6 YXRpb24gYnlwYXNzCistLSAgICBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBhc3MKKy0t ICAgIEEzLiBXaW5kb3cgZGVkdXAgcHJldmVudGlvbiAoUlBSIHZzIG5vbi1SUFIpCistLSAgICBB NC4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKHNhbWUgUEFUVEVSTiwgZGlmZmVyZW50IERFRklO RSkKKy0tICAgIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgorLS0gICAgQTYu IEludmVyc2UgdHJhbnNpdGlvbiBieXBhc3MKKy0tICAgIEE3LiBDb3N0IGVzdGltYXRpb24gUlBS IGF3YXJlbmVzcworLS0gICAgQTguIFN1YnF1ZXJ5IGZsYXR0ZW5pbmcgcHJldmVudGlvbgorLS0g ICAgQTkuIERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gICAgQTEwLiBSUFIg KyBMSU1JVAorLS0KKy0tIEIuIEludGVncmF0aW9uIFNjZW5hcmlvIFRlc3RzCistLSAgICBCMS4g UlBSICsgQ1RFCistLSAgICBCMi4gUlBSICsgSk9JTgorLS0gICAgQjMuIFJQUiArIFNldCBvcGVy YXRpb25zCistLSAgICBCNC4gUlBSICsgUHJlcGFyZWQgc3RhdGVtZW50cworLS0gICAgQjUuIFJQ UiArIFBhcnRpdGlvbmVkIHRhYmxlCistLSAgICBCNi4gUlBSICsgTEFURVJBTAorLS0gICAgQjcu IFJQUiArIFJlY3Vyc2l2ZSBDVEUKKy0tICAgIEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0Cist LSAgICBCOS4gUlBSICsgVm9sYXRpbGUgZnVuY3Rpb24gaW4gREVGSU5FCistLSAgICBCMTAuIFJQ UiArIENvcnJlbGF0ZWQgc3VicXVlcnkKKy0tCitDUkVBVEUgVEFCTEUgcnByX2ludGVnIChpZCBJ TlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2ludGVnIFZBTFVFUworICAgICgxLCAxMCks ICgyLCAyMCksICgzLCAxNSksICg0LCAyNSksICg1LCA1KSwKKyAgICAoNiwgMzApLCAoNywgMzUp LCAoOCwgMjApLCAoOSwgNDApLCAoMTAsIDQ1KTsKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTEuIEZyYW1lIG9wdGlt aXphdGlvbiBieXBhc3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gb3B0aW1pemVfd2luZG93X2NsYXVzZXMoKSBtdXN0 IG5vdCBhcHBseSBmcmFtZSBvcHRpbWl6YXRpb24gdG8gUlBSIHdpbmRvd3MuCistLSBOb24tUlBS IGNhc2U6IGZyYW1lIGNhbiBiZSBvcHRpbWl6ZWQgKFJBTkdFIC0+IFJPV1MgY29udmVyc2lvbiwg ZXRjLikuCistLSBSUFIgY2FzZTogZnJhbWUgbXVzdCBzdGF5IGFzIHNwZWNpZmllZCAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORAorLS0gVU5CT1VOREVEIEZPTExPV0lORykuCistLSBOb24t UlBSIHdpbmRvdyB3aXRoIGRlZmF1bHQgZnJhbWUgLT4gZnJhbWUgb3B0aW1pemF0aW9uIGFwcGxp ZWQKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJf aW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCk7CisgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQpCisgICAtPiAgU29ydAorICAgICAg ICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNSBy b3dzKQorCistLSBSUFIgd2luZG93IC0+IGZyYW1lIG9wdGltaXphdGlvbiBtdXN0IE5PVCBjaGFu Z2UgdGhlIGZyYW1lCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 IEZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46IGEgYisKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gQTIuIFJ1biBjb25kaXRpb24gcHVzaGRvd24gYnlwYXNzCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlm eSB0aGF0IGZpbmRfd2luZG93X3J1bl9jb25kaXRpb25zKCkgZG9lcyBub3QgcHVzaCBhIG1vbm90 b25pYworLS0gZmlsdGVyIGRvd24gYXMgYSBSdW4gQ29uZGl0aW9uIG9uIFJQUiB3aW5kb3dzLiAg UlBSIG1hdGNoIGNvdW50cyBhcmUKKy0tIGRldGVybWluZWQgYnkgcGF0dGVybiBtYXRjaGluZyBy YXRoZXIgdGhhbiBieSBhIG1vbm90b25pYworLS0gYWNjdW11bGF0aW9uIG92ZXIgdGhlIGZyYW1l LCBzbyBhIGZpbHRlciBzdWNoIGFzICJjbnQgPiAwIiBjYW5ub3QgYmUKKy0tIHVzZWQgdG8gc3Rv cCBldmFsdWF0aW5nIHRoZSB3aW5kb3cgZnVuY3Rpb24gZWFybHkuCistLSBOb24tUlBSIGJhc2Vs aW5lOiB0aGUgZmlsdGVyIGlzIGV4cGVjdGVkIHRvIGFwcGVhciBhcyBhIFJ1biBDb25kaXRpb24u CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQo KikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKKykgdCBXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U3VicXVlcnkgU2NhbiBvbiB0CisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBSdW4gQ29uZGl0aW9uOiAoY291bnQoKikgT1ZF UiB3ID4gMCkKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogcnBy X2ludGVnLmlkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNyBy b3dzKQorCistLSBSUFIgY2FzZTogdGhlIGZpbHRlciBtdXN0IGFwcGVhciBhcyBhIEZpbHRlciBh Ym92ZSB0aGUgV2luZG93QWdnLAorLS0gbm90IGFzIGEgUnVuIENvbmRpdGlvbi4KK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcg QVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQK KyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVl cnkgU2NhbiBvbiB0CisgICBGaWx0ZXI6ICh0LmNudCA+IDApCisgICAtPiAgV2luZG93QWdnCisg ICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiBh IGIrCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRl Zy5pZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDggcm93cykK KworLS0gVmVyaWZ5IHRoYXQgdGhlIFJQUiBxdWVyeSBzdGlsbCByZXR1cm5zIGV2ZXJ5IHJvdyB3 aG9zZSBtYXRjaCBjb3VudCBpcworLS0gZ3JlYXRlciB0aGFuIHplcm8sIGNvbmZpcm1pbmcgdGhl IGZpbHRlciBpcyBldmFsdWF0ZWQgYWJvdmUgdGhlCistLSBXaW5kb3dBZ2cgcmF0aGVyIHRoYW4g Y3V0dGluZyBvZmYgcGF0dGVybiBtYXRjaGluZyBwcmVtYXR1cmVseS4KK1NFTEVDVCAqIEZST00g KAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBy cHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4g KEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBj bnQgPiAwCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0K KyAgMSB8ICAxMCB8ICAgMgorICAzIHwgIDE1IHwgICAyCisgIDUgfCAgIDUgfCAgIDMKKyAgOCB8 ICAyMCB8ICAgMworKDQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMy4gV2luZG93IGRlZHVwIHByZXZl bnRpb24gKFJQUiB2cyBub24tUlBSKQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBQb3N0Z3JlU1FM IGRvZXMgbm90IG1lcmdlIGFuIFJQUiB3aW5kb3cgd2l0aCBhIG5vbi1SUFIKKy0tIHdpbmRvdyBl dmVuIHdoZW4gYm90aCBzaGFyZSB0aGUgc2FtZSBPUkRFUiBCWSBhbmQgZnJhbWUKKy0tIHNwZWNp ZmljYXRpb24uICBSUFIgcGF0dGVybiBtYXRjaGluZyBwcm9kdWNlcyByZXN1bHRzIHRoYXQgYXJl CistLSBzZW1hbnRpY2FsbHkgZGlmZmVyZW50IGZyb20gYSBwbGFpbiBmcmFtZS1iYXNlZCBhZ2dy ZWdhdGUsIHNvIHRoZQorLS0gdHdvIHdpbmRvd3MgbXVzdCByZW1haW4gYXMgc2VwYXJhdGUgV2lu ZG93QWdnIG5vZGVzLiAgSW5saW5lIHdpbmRvdworLS0gc3BlY3MgYXJlIHVzZWQgdGhyb3VnaG91 dCB0aGlzIHNlY3Rpb24gYmVjYXVzZSBvbmx5IGlubGluZSB3aW5kb3dzCistLSBhcmUgc3ViamVj dCB0byB0aGUgZGVkdXAgcGF0aDsgZGlzdGluY3QgbmFtZWQgd2luZG93cyBhcmUgYWx3YXlzCist LSBrZXB0IHNlcGFyYXRlIHJlZ2FyZGxlc3Mgb2YgZXF1aXZhbGVuY2UuCistLSBOb24tUlBSIGJh c2VsaW5lOiB0d28gaW5saW5lIHdpbmRvd3Mgd2l0aCBpZGVudGljYWwgc3BlYyBhcmUKKy0tIGRl ZHVwZWQgYnkgdGhlIHBsYW5uZXIgaW50byBhIHNpbmdsZSBXaW5kb3dBZ2cgbm9kZSwgY29uZmly bWluZworLS0gdGhhdCB0aGUgZGVkdXAgcGF0aCBpcyBhY3RpdmUgZm9yIG5vbi1SUFIgd2luZG93 cy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgKE9SREVS IEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVSIChPUkRFUiBCWSBpZAorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFTIHRv dGFsCitGUk9NIHJwcl9pbnRlZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgLT4g IFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9pbnRlZworKDUgcm93cykKKworLS0gQW4gaW5saW5lIFJQUiB3aW5kb3cgYW5kIGFuIGlubGlu ZSBub24tUlBSIHdpbmRvdyBzaGFyZSB0aGUgc2FtZQorLS0gT1JERVIgQlkgYW5kIGZyYW1lIGJ1 dCBtdXN0IHJlbWFpbiBhcyBkaXN0aW5jdCBXaW5kb3dBZ2cgbm9kZXMuCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAg UEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBy cHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMgbm9ybWFsX2NudAor RlJPTSBycHJfaW50ZWc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdzIgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdzEgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAg IFBhdHRlcm46IGEgYisKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtl eTogaWQKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg4IHJvd3Mp CisKKy0tIFZlcmlmeSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gaW5kZXBlbmRlbnQgY291 bnRzIHBlciByb3csCistLSBjb25maXJtaW5nIHRoZXkgd2VyZSBub3QgbWVyZ2VkIGludG8gYSBz aW5nbGUgV2luZG93QWdnLgorU0VMRUNUCisgICAgaWQsIHZhbCwKKyAgICBjb3VudCgqKSBPVkVS IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwpKSBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVS IEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWcKK09SREVSIEJZIGlkOworIGlk IHwgdmFsIHwgcnByX2NudCB8IG5vcm1hbF9jbnQgCistLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyAgMSB8ICAxMCB8ICAgICAgIDIgfCAgICAgICAgIDEwCisgIDIgfCAgMjAgfCAg ICAgICAwIHwgICAgICAgICAgOQorICAzIHwgIDE1IHwgICAgICAgMiB8ICAgICAgICAgIDgKKyAg NCB8ICAyNSB8ICAgICAgIDAgfCAgICAgICAgICA3CisgIDUgfCAgIDUgfCAgICAgICAzIHwgICAg ICAgICAgNgorICA2IHwgIDMwIHwgICAgICAgMCB8ICAgICAgICAgIDUKKyAgNyB8ICAzNSB8ICAg ICAgIDAgfCAgICAgICAgICA0CisgIDggfCAgMjAgfCAgICAgICAzIHwgICAgICAgICAgMworICA5 IHwgIDQwIHwgICAgICAgMCB8ICAgICAgICAgIDIKKyAxMCB8ICA0NSB8ICAgICAgIDAgfCAgICAg ICAgICAxCisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBNC4gV2luZG93IGRlZHVwIHByZXZlbnRp b24gKHNhbWUgUEFUVEVSTiwgZGlmZmVyZW50IERFRklORSkKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRo YXQgaW5saW5lLXdpbmRvdyBkZWR1cCBkb2VzIG5vdCBtZXJnZSB0d28gUlBSIHdpbmRvd3MKKy0t IHRoYXQgc2hhcmUgdGhlIHNhbWUgUEFUVEVSTiBzdHJ1Y3R1cmUgYnV0IGhhdmUgZGlmZmVyZW50 IERFRklORQorLS0gY29uZGl0aW9ucy4gIEV2ZW4gdGhvdWdoIHRoZSBPUkRFUiBCWSwgZnJhbWUs IGFuZCBQQVRURVJOIGNvaW5jaWRlLAorLS0gdGhlIGRpZmZlcmluZyBERUZJTkUgZXhwcmVzc2lv bnMgY2xhc3NpZnkgcm93cyBkaWZmZXJlbnRseSBhbmQKKy0tIG11c3QgdGhlcmVmb3JlIHlpZWxk IHR3byBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9kZXMuICBJbmxpbmUgc3BlY3MKKy0tIGFyZSB1c2Vk IGhlcmUgYmVjYXVzZSBkZWR1cCBvbmx5IGFwcGxpZXMgdG8gaW5saW5lIHdpbmRvd3MuCistLSBC YXNlbGluZTogdHdvIGlubGluZSBSUFIgd2luZG93cyB0aGF0IGFyZSBzdHJ1Y3R1cmFsbHkgaWRl bnRpY2FsCistLSAoc2FtZSBPUkRFUiBCWSwgZnJhbWUsIFBBVFRFUk4sIGFuZCBERUZJTkUpIGFy ZSBkZWR1cGVkIGJ5IHRoZQorLS0gcGFyc2VyIGludG8gYSBzaW5nbGUgV2luZG93QWdnIG5vZGUs IGNvbmZpcm1pbmcgdGhhdCBwYXJzZXItbGV2ZWwKKy0tIGRlZHVwIGlzIGFjdGl2ZSBmb3IgUlBS IHdpbmRvd3Mgd2hvc2UgREVGSU5FIG1hdGNoZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBC KykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBjbnQsCisgICAgc3Vt KHZhbCkgIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAg ICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpIEFTIHRvdGFsCitGUk9NIHJwcl9pbnRlZzsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZworICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiKworICAgLT4gIFNv cnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9p bnRlZworKDYgcm93cykKKworLS0gVHdvIGlubGluZSBSUFIgd2luZG93cyB3aXRoIHRoZSBzYW1l IFBBVFRFUk4gYnV0IG9wcG9zaXRlIERFRklORQorLS0gY29uZGl0aW9ucyBtdXN0IHJlbWFpbiBh cyBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9kZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QK KyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykK KyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBjbnRfdXAsCisgICAgY291 bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg IERFRklORSBCIEFTIHZhbCA8IFBSRVYodmFsKSkgQVMgY250X2Rvd24KK0ZST00gcnByX2ludGVn OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBh IGIrCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcxIEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAg ICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29y dCBLZXk6IGlkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoOSBy b3dzKQorCistLSBWZXJpZnkgdGhhdCB0aGUgdHdvIHdpbmRvd3MgcmV0dXJuIGRpZmZlcmVudCBj b3VudHMgcGVyIHJvdywKKy0tIGNvbmZpcm1pbmcgdGhlIERFRklORSBjb25kaXRpb25zIHdlcmUg bm90IGNvbGxhcHNlZCBieSBkZWR1cC4KK1NFTEVDVAorICAgIGlkLCB2YWwsCisgICAgY291bnQo KikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkgQVMgY250X3VwLAorICAgIGNvdW50KCopIE9WRVIg KE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBB UyB2YWwgPCBQUkVWKHZhbCkpIEFTIGNudF9kb3duCitGUk9NIHJwcl9pbnRlZworT1JERVIgQlkg aWQ7CisgaWQgfCB2YWwgfCBjbnRfdXAgfCBjbnRfZG93biAKKy0tLS0rLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAyIHwgICAgICAgIDAKKyAgMiB8ICAyMCB8ICAg ICAgMCB8ICAgICAgICAyCisgIDMgfCAgMTUgfCAgICAgIDIgfCAgICAgICAgMAorICA0IHwgIDI1 IHwgICAgICAwIHwgICAgICAgIDIKKyAgNSB8ICAgNSB8ICAgICAgMyB8ICAgICAgICAwCisgIDYg fCAgMzAgfCAgICAgIDAgfCAgICAgICAgMAorICA3IHwgIDM1IHwgICAgICAwIHwgICAgICAgIDIK KyAgOCB8ICAyMCB8ICAgICAgMyB8ICAgICAgICAwCisgIDkgfCAgNDAgfCAgICAgIDAgfCAgICAg ICAgMAorIDEwIHwgIDQ1IHwgICAgICAwIHwgICAgICAgIDAKKygxMCByb3dzKQorCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgorLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJp ZnkgdGhhdCByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMoKSBkb2VzIG5vdCBkcm9wIGFu IFJQUgorLS0gd2luZG93IGZ1bmN0aW9uIGV2ZW4gd2hlbiB0aGUgb3V0ZXIgcXVlcnkgZG9lcyBu b3QgcmVmZXJlbmNlIGl0cworLS0gcmVzdWx0LiAgVGhlIFJQUiBXaW5kb3dBZ2cgbm9kZSBpcyBy ZXNwb25zaWJsZSBmb3IgcGVyZm9ybWluZyBwYXR0ZXJuCistLSBtYXRjaGluZywgc28gcmVtb3Zp bmcgdGhlIHdpbmRvdyBmdW5jdGlvbiB3b3VsZCBzaWxlbnRseSBza2lwIHRoZQorLS0gcGF0dGVy biBtYXRjaCBldmVuIHRob3VnaCB0aGUgc3Vycm91bmRpbmcgcXVlcnkgc3RpbGwgZGVwZW5kcyBv bgorLS0gUlBSIHNlbWFudGljcy4KKy0tIFRoZSBvdXRlciBxdWVyeSBpZ25vcmVzIHRoZSBwZXIt cm93IHdpbmRvdyByZXN1bHQsIHlldCBwYXR0ZXJuCistLSBtYXRjaGluZyBtdXN0IHN0aWxsIGV4 ZWN1dGUuICBUaGUgcGxhbiBtdXN0IHN0aWxsIGNvbnRhaW4gYQorLS0gV2luZG93QWdnIG5vZGUg YmVsb3cgdGhlIG91dGVyIEFnZ3JlZ2F0ZTsgaWYgdGhlIHdpbmRvdyB3ZXJlCistLSByZW1vdmVk LCBvbmx5IEFnZ3JlZ2F0ZSArIFNlcSBTY2FuIHdvdWxkIGFwcGVhci4KK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 IEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSsp CisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdDsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBXaW5kb3dBZ2cKKyAg ICAgICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSsiCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX2ludGVnCisoNSByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAg U0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgK KyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZh bCkpCispIHQ7CisgY291bnQgCistLS0tLS0tCisgICAgMTAKKygxIHJvdykKKworLS0gVGhlIERF RklORSBleHByZXNzaW9uIHJlZmVyZW5jZXMgUFJFVih2YWwpLCBzbyB0aGUgd2luZG93IG11c3Qg YmUKKy0tIHByZXNlcnZlZCBldmVuIGlmIHRoZSBvdXRlciBxdWVyeSBvbmx5IGFnZ3JlZ2F0ZXMg b3ZlciB0aGUgY291bnQuCistLSBUaGUgcGxhbiBtdXN0IHN0aWxsIGNvbnRhaW4gYSBXaW5kb3dB Z2cgd2l0aCB0aGUgUEFUVEVSTi9ERUZJTkUKKy0tIGludGFjdC4KK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcgQVMgYyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBB VFRFUk4gKEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgV2lu ZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGErIgorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDUgcm93cykKKworU0VMRUNUIGNvdW50KCopLCBz dW0oYykgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2lu dGVnCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERF RklORSBBIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdDsKKyBjb3VudCB8IHN1bSAKKy0tLS0tLS0r LS0tLS0KKyAgICAxMCB8ICAgNgorKDEgcm93KQorCistLSBUaGUgREVGSU5FIGV4cHJlc3Npb24g Y29udGFpbnMgbm8gbmF2aWdhdGlvbiwgYnV0IHRoZSBSUFIgd2luZG93CistLSBtdXN0IHN0aWxs IGJlIHByZXNlcnZlZCBiZWNhdXNlIHRoZSBtYXRjaCBzdHJ1Y3R1cmUgaXRzZWxmIGFmZmVjdHMK Ky0tIHRoZSBjb3VudC4gIFRoZSBwbGFuIG11c3QgcmV0YWluIHRoZSBXaW5kb3dBZ2cuCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxF Q1QgY291bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAo CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgVFJVRSkKKykgdDsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBX aW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSsiCisgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNSByb3dzKQorCitTRUxFQ1QgY291bnQoKiks IHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJf aW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAg REVGSU5FIEEgQVMgVFJVRSkKKykgdDsKKyBjb3VudCB8IHN1bSAKKy0tLS0tLS0rLS0tLS0KKyAg ICAxMCB8ICAxMAorKDEgcm93KQorCistLSBYWFg6ICJ2YWwiIGlzIG5vbi1yZXNqdW5rIGluIHRo ZSBzdWJxdWVyeSBvdXRwdXQgYW5kIGlzIG5vdAorLS0gcmVmZXJlbmNlZCBieSB0aGUgb3V0ZXIg cXVlcnkuICBXaXRob3V0IGEgZ3VhcmQsCistLSByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1 dHMoKSB3b3VsZCByZXBsYWNlIGl0IHdpdGggTlVMTCBpbgorLS0gdGhlIHN1YnF1ZXJ5IG91dHB1 dCwgYW5kIHRoYXQgcmVwbGFjZW1lbnQgcHJvcGFnYXRlcyB0byB0aGUKKy0tIHNjYW4ncyB0YXJn ZXRsaXN0IC0tIERFRklORSB3b3VsZCB0aGVuIGV2YWx1YXRlIHdpdGggTlVMTAorLS0gaW5wdXRz LiAgVGhlIHRhcmdldGxpc3QgaGFzIG5vIHdheSB0byBkaXN0aW5ndWlzaCAiZXhwb3NlZCB0bwor LS0gdGhlIG91dGVyIHF1ZXJ5IiBmcm9tICJyZWZlcmVuY2VkIG9ubHkgYnkgREVGSU5FIiwgc28g dGhlCistLSBvcHRpbWl6YXRpb24gY2Fubm90IGJlIGFwcGxpZWQgc2VsZWN0aXZlbHkuICBUaGUg Y29sdW1uIGd1YXJkCistLSBpbiBhbGxwYXRocy5jIGJsb2NrcyB0aGlzIHJlcGxhY2VtZW50IGZv ciBhbnkgY29sdW1uIHJlZmVyZW5jZWQKKy0tIGJ5IGFuIFJQUiBERUZJTkUgY2xhdXNlLCBrZWVw aW5nIHRoZSBXaW5kb3dBZ2cgd2l0aCBERUZJTkUKKy0tIGFjdGl2ZSBpbiB0aGUgcGxhbi4KK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgdmFs LCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+ IFBSRVYodmFsKSkKKykgdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAg LT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcu aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg ICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNv cnQgS2V5OiBycHJfaW50ZWcuaWQKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf aW50ZWcKKyg3IHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgdmFs LCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+ IFBSRVYodmFsKSkKKykgdDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEE2LiBJbnZlcnNlIHRyYW5zaXRpb24gYnlwYXNzCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlm eSB0aGF0IFJQUiB3aW5kb3dzIGRvIG5vdCB1c2UgdGhlIG1vdmluZyBhZ2dyZWdhdGUgKGludmVy c2UKKy0tIHRyYW5zaXRpb24pIG9wdGltaXphdGlvbi4gIE1vdmluZyBhZ2dyZWdhdGVzIG1haW50 YWluIHN0YXRlIGJ5CistLSBhZGRpbmcgYXJyaXZpbmcgcm93cyBhbmQgc3VidHJhY3RpbmcgbGVh dmluZyByb3dzLCBidXQgYW4gUlBSCistLSByZWR1Y2VkIGZyYW1lIGlzIG5vdCBhIHNsaWRpbmcg d2luZG93OyB0aGUgc2V0IG9mIHJvd3MgaW5jbHVkZWQgaW4KKy0tIHRoZSBmcmFtZSBpcyBkZXRl cm1pbmVkIGJ5IHBhdHRlcm4gbWF0Y2hpbmcgYW5kIGNhbm5vdCBiZSBkZXJpdmVkCistLSBpbmNy ZW1lbnRhbGx5IGZyb20gdGhlIHByZXZpb3VzIGZyYW1lLgorLS0gc3VtKCkgd291bGQgbm9ybWFs bHkgYmUgZWxpZ2libGUgZm9yIHRoZSBtb3ZpbmcgYWdncmVnYXRlCistLSBvcHRpbWl6YXRpb247 IHVuZGVyIFJQUiBpdCBtdXN0IGJlIGNvbXB1dGVkIGZyb20gc2NyYXRjaCBvdmVyIGVhY2gKKy0t IHJlZHVjZWQgZnJhbWUsIGFuZCB0aGUgcmV0dXJuZWQgdmFsdWVzIG11c3QgbWF0Y2ggdGhlIHBh dHRlcm4uCistLSBOb3RlOiBpbnZlcnNlLXRyYW5zaXRpb24gc2VsZWN0aW9uIGlzIG5vdCBleHBv c2VkIGluIHRoZSBwbGFuLCBzbworLS0gdGhlcmUgaXMgbm8gZGlyZWN0IEVYUExBSU4gYXNzZXJ0 aW9uIGZvciBpdC4gIFRoZSBzdHJ1Y3R1cmFsCistLSBndWFyYW50ZWUgaXMgdGhhdCBSUFIgdXNl cyBpdHMgb3duIG5hdmlnYXRpb24gbWFyaywgZGlzdGluY3QgZnJvbQorLS0gdGhlIG1vdmluZy1h Z2dyZWdhdGUgbWFyaywgc28gdGhlIGludmVyc2UtdHJhbnNpdGlvbiBwYXRoIGlzCistLSBuZXZl ciByZWFjaGVkIG9uIHRoZSBSUFIgc2lkZS4gIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0CistLSBz ZXBhcmF0aW9uIGluZGlyZWN0bHk6IGlmIGludmVyc2UgdHJhbnNpdGlvbiBsZWFrZWQgaW50byB0 aGUgUlBSCistLSBwYXRoLCBzdGF0ZSB3b3VsZCBtaXggYWNyb3NzIG1hdGNoIGJvdW5kYXJpZXMg YW5kIHBhdHRlcm5fc3VtCistLSB3b3VsZCBkaXZlcmdlIGZyb20gdGhlIGV4cGVjdGVkIG91dHB1 dCwgZmFpbGluZyB0aGUgcmVncmVzc2lvbi4KK1NFTEVDVCBpZCwgdmFsLAorICAgIHN1bSh2YWwp IE9WRVIgdyBBUyBwYXR0ZXJuX3N1bQorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwp KQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBwYXR0ZXJuX3N1bSAKKy0tLS0rLS0tLS0rLS0t LS0tLS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAgICAgMzAKKyAgMiB8ICAyMCB8ICAgICAgICAg ICAgCisgIDMgfCAgMTUgfCAgICAgICAgICA0MAorICA0IHwgIDI1IHwgICAgICAgICAgICAKKyAg NSB8ICAgNSB8ICAgICAgICAgIDcwCisgIDYgfCAgMzAgfCAgICAgICAgICAgIAorICA3IHwgIDM1 IHwgICAgICAgICAgICAKKyAgOCB8ICAyMCB8ICAgICAgICAgMTA1CisgIDkgfCAgNDAgfCAgICAg ICAgICAgIAorIDEwIHwgIDQ1IHwgICAgICAgICAgICAKKygxMCByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEE3LiBDb3N0IGVzdGltYXRpb24gUlBSIGF3YXJlbmVzcworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBjb3N0X3dpbmRv d2FnZygpIG11c3QgYWNjb3VudCBmb3IgREVGSU5FIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBjb3N0 LgorLS0gVmVyaWZ5IFJQUiBXaW5kb3dBZ2cgY29zdCA+IG5vbi1SUFIgV2luZG93QWdnIGNvc3Qu CitDUkVBVEUgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19jb3N0KHF1ZXJ5IHRleHQpIFJFVFVSTlMg bnVtZXJpYyBBUyAkJAorREVDTEFSRQorICAgIHBsYW4ganNvbjsKKyAgICBjb3N0IG51bWVyaWM7 CitCRUdJTgorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEZPUk1BVCBKU09OKSAnIHx8IHF1ZXJ5IElO VE8gcGxhbjsKKyAgICBjb3N0IDo9IChwbGFuLT4wLT4nUGxhbictPj4nVG90YWwgQ29zdCcpOjpu dW1lcmljOworICAgIFJFVFVSTiBjb3N0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NF TEVDVCBnZXRfd2luZG93YWdnX2Nvc3QoCisgICAgJ1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJP TSBycHJfaW50ZWcKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgICAgICAgUEFU VEVSTiAoQSBCKyBDKykgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpLCBDIEFTIHZhbCA8IFBS RVYodmFsKSknKQorICAgID4KKyAgICBnZXRfd2luZG93YWdnX2Nvc3QoCisgICAgJ1NFTEVDVCBj b3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyknKQor ICAgIEFTIHJwcl9jb3N0X2lzX2hpZ2hlcjsKKyBycHJfY29zdF9pc19oaWdoZXIgCistLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBnZXRfd2luZG93YWdn X2Nvc3QodGV4dCk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIEE4LiBTdWJxdWVyeSBmbGF0dGVuaW5nIHByZXZlbnRp b24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYSBzdWJxdWVyeSBjb250YWluaW5nIGFuIFJQUiB3 aW5kb3cgaXMgbm90IGZsYXR0ZW5lZAorLS0gaW50byB0aGUgb3V0ZXIgcXVlcnkuICBpc19zaW1w bGVfc3VicXVlcnkoKSBhbHJlYWR5IGJsb2NrcyBwdWxsdXAKKy0tIGZvciBzdWJxdWVyaWVzIHdp dGggd2luZG93IGZ1bmN0aW9ucyBpbiBnZW5lcmFsOyB0aGlzIHRlc3QgY29uZmlybXMKKy0tIHRo ZSBydWxlIGNvbnRpbnVlcyB0byBhcHBseSB0byBSUFIgd2luZG93cywgc28gRVhQTEFJTiBtdXN0 IHN0aWxsCistLSBzaG93IGEgU3VicXVlcnkgU2NhbiBhYm92ZSB0aGUgUlBSIFdpbmRvd0FnZy4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgc3ViCitXSEVSRSBjbnQgPiAwOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBzdWIKKyAgIEZpbHRlcjogKHN1Yi5jbnQg PiAwKQorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBy cHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAg ICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfaW50ZWcKKyg4IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTkuIERFRklORSBleHByZXNz aW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBERUZJTkUgZXhwcmVz c2lvbnMgYXJlIG5vdCBwcm9wYWdhdGVkIGludG8gdGhlCistLSB0YXJnZXRsaXN0IG9mIGFueSB1 cHBlciBXaW5kb3dBZ2cgbm9kZS4gIE9ubHkgdGhlIGNvbHVtbiByZWZlcmVuY2VzCistLSBjb25z dW1lZCBieSBERUZJTkUgc2hvdWxkIGJlIHBhc3NlZCB1cDsgdGhlIGZ1bGwgREVGSU5FIGV4cHJl c3Npb24KKy0tIGlzIG1lYW5pbmdmdWwgb25seSBpbnNpZGUgdGhlIFJQUiBXaW5kb3dBZ2cgdGhh dCBvd25zIGl0LgorLS0gRVhQTEFJTiBWRVJCT1NFIGlzIHRoZXJlZm9yZSBleHBlY3RlZCB0byBz aG93IGEgY2xlYW4gdGFyZ2V0bGlzdCBvbgorLS0gdGhlIG91dGVyIFdpbmRvd0FnZywgd2l0aCBu byBERUZJTkUtZGVyaXZlZCBleHByZXNzaW9uIGxlYWtpbmcgaW4uCistLSBOb3RlOiBjb2x1bW5z IHJlZmVyZW5jZWQgYnkgREVGSU5FIChlLmcuLCAidmFsIikgbWF5IGFwcGVhciBhcworLS0gcmVz anVuayBlbnRyaWVzIGluIHVwcGVyIFdpbmRvd0FnZyB0YXJnZXRsaXN0cyAtLSB0aGF0IGlzIGEK Ky0tIGhhcm1sZXNzIGJ5cHJvZHVjdCBvZiB0aGUgY29sdW1uIGd1YXJkJ3MgYnJvYWQgc2NvcGUg YW5kIGRvZXMgbm90CistLSBhZmZlY3QgY2xpZW50IG91dHB1dC4gIFRoZSBjbGFpbSBoZXJlIGlz IGxpbWl0ZWQgdG8gdGhlIGZ1bGwKKy0tIERFRklORSBib29sZWFuIGV4cHJlc3Npb24uCitFWFBM QUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIHdfcnBy IEFTIHJwcl9jbnQsCisgICAgY291bnQoKikgT1ZFUiB3X25vcm1hbCBBUyBub3JtYWxfY250CitG Uk9NIHJwcl9pbnRlZworV0lORE9XCisgICAgd19ycHIgQVMgKE9SREVSIEJZIGlkCisgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpLAor ICAgIHdfbm9ybWFsIEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBXaW5kb3dBZ2cKKyAgIE91dHB1dDogKGNvdW50KCopIE9WRVIgd19ycHIpLCBjb3Vu dCgqKSBPVkVSIHdfbm9ybWFsLCBpZCwgdmFsCisgICBXaW5kb3c6IHdfbm9ybWFsIEFTIChPUkRF UiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgT3V0cHV0OiBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHdfcnByCisgICAgICAgICBXaW5kb3c6IHdfcnByIEFTIChPUkRFUiBCWSBy cHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAg ICAgICAgIE91dHB1dDogaWQsIHZhbAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRl Zy5pZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5ycHJfaW50ZWcKKyAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogaWQsIHZhbAorKDEyIHJvd3MpCisKKy0tIEV4ZWN1 dGluZyB0aGUgc2FtZSBxdWVyeSBzaG93cyB0aGUgY2xpZW50IHJlc3VsdCBpcyBsaW1pdGVkIHRv CistLSB0aGUgdHdvIHByb2plY3RlZCBjb2x1bW5zOyAiaWQiIGFuZCAidmFsIiB0aGF0IGFwcGVh cmVkIGluIHRoZQorLS0gdXBwZXIgV2luZG93QWdnIE91dHB1dCBsaW5lIGFyZSByZXNqdW5rLW9u bHkgYW5kIGRvIG5vdCByZWFjaAorLS0gdGhlIGNsaWVudC4KK1NFTEVDVAorICAgIGNvdW50KCop IE9WRVIgd19ycHIgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIHdfbm9ybWFsIEFTIG5v cm1hbF9jbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3JwciBBUyAoT1JERVIgQlkg aWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBS RVYodmFsKSksCisgICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKK09SREVSIEJZIHJwcl9j bnQgREVTQywgbm9ybWFsX2NudCBERVNDOworIHJwcl9jbnQgfCBub3JtYWxfY250IAorLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorICAgICAgIDMgfCAgICAgICAgICA2CisgICAgICAgMyB8ICAgICAg ICAgIDMKKyAgICAgICAyIHwgICAgICAgICAxMAorICAgICAgIDIgfCAgICAgICAgICA4CisgICAg ICAgMCB8ICAgICAgICAgIDkKKyAgICAgICAwIHwgICAgICAgICAgNworICAgICAgIDAgfCAgICAg ICAgICA1CisgICAgICAgMCB8ICAgICAgICAgIDQKKyAgICAgICAwIHwgICAgICAgICAgMgorICAg ICAgIDAgfCAgICAgICAgICAxCisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMTAuIFJQUiArIExJ TUlUCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIExJTUlUIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIFJQUiBwYXR0ZXJu IG1hdGNoaW5nLiAgVGhlIExpbWl0CistLSBub2RlIG11c3Qgc2l0IGFib3ZlIHRoZSBXaW5kb3dB Z2cgc28gdGhhdCBwYXR0ZXJuIG1hdGNoaW5nIHJ1bnMKKy0tIG9uIHRoZSBmdWxsIHBhcnRpdGlv biBmaXJzdDsgdGhlIHJlc3VsdCBpcyB0aGVuIGEgcHJlZml4IG9mIHRoZQorLS0gdW4tTElNSVRl ZCBvdXRwdXQuICBQdXNoaW5nIExpbWl0IGJlbG93IHRoZSBXaW5kb3dBZ2cgd291bGQKKy0tIHRy dW5jYXRlIGlucHV0IGJlZm9yZSBtYXRjaGluZyBhbmQgc2lsZW50bHkgZHJvcCB2YWxpZCBtYXRj aGVzLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJTUlUIDU7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgTGltaXQKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAg IFNvcnQgS2V5OiBpZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwor KDcgcm93cykKKworLS0gUmVmZXJlbmNlOiB1bi1MSU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNo IHRoZSBMSU1JVCA1IHJlc3VsdCBpcworLS0gY29tcGFyZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQor T1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAg MTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAg IDAKKyAgNSB8ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAg OCB8ICAyMCB8ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dz KQorCistLSBMSU1JVCA1IGNhc2U7IHRoZSBmaXJzdCBmaXZlIHJvd3MgbXVzdCBtYXRjaCB0aGUg cmVmZXJlbmNlIGFib3ZlLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJTUlUIDU7CisgaWQgfCB2YWwg fCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAg MAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworKDUg cm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBCMS4gUlBSICsgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0 IGFuIFJQUiB3aW5kb3cgZW1iZWRkZWQgaW5zaWRlIGEgQ1RFIGJlaGF2ZXMgdGhlIHNhbWUgYXMK Ky0tIGEgZGlyZWN0IFJQUiBxdWVyeToKKy0tICAgKDEpIEEgc2luZ2xlLXJlZmVyZW5jZSBDVEUg aXMgaW5saW5lZCBieSB0aGUgcGxhbm5lciBhbmQgeWllbGRzCistLSAgICAgICBwZXItcm93IHJl c3VsdHMgaWRlbnRpY2FsIHRvIHRoZSBkaXJlY3QgUlBSIHF1ZXJ5LgorLS0gICAoMikgQSBtdWx0 aS1yZWZlcmVuY2UgQ1RFIGlzIG1hdGVyaWFsaXplZCAoQ1RFIFNjYW4gYXBwZWFycyBpbgorLS0g ICAgICAgdGhlIHBsYW4pIHNvIHBhdHRlcm4gbWF0Y2hpbmcgcnVucyBvbmNlLCBhbmQgZXZlcnkg cmVmZXJlbmNlCistLSAgICAgICBvYnNlcnZlcyB0aGUgc2FtZSBtYXRjaCByZXN1bHRzLgorLS0g QmFzZWxpbmU6IGRpcmVjdCBSUFIgcHJvZHVjZXMgdGhlIHBlci1yb3cgcmVmZXJlbmNlIG91dHB1 dC4KK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9pbnRl ZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0t LS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAg MTUgfCAgIDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAg IDAKKyAgNyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAx MCB8ICA0NSB8ICAgMAorKDEwIHJvd3MpCisKKy0tIFNpbmdsZS1yZWZlcmVuY2UgQ1RFOiBwbGFu IGhhcyBubyAiQ1RFIHJwcl9yZXN1bHQiIHNjb3BlLCBzaG93aW5nCistLSB0aGUgQ1RFIHdhcyBp bmxpbmVkIGludG8gdGhlIHN1cnJvdW5kaW5nIHF1ZXJ5LgorRVhQTEFJTiAoQ09TVFMgT0ZGKQor V0lUSCBycHJfcmVzdWx0IEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVW KHZhbCkpCispCitTRUxFQ1QgaWQsIHZhbCwgY250IEZST00gcnByX3Jlc3VsdCBPUkRFUiBCWSBp ZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJf aW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSBiKworICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBycHJf aW50ZWcuaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisK Ky0tIFJlc3VsdCBtdXN0IG1hdGNoIHRoZSBiYXNlbGluZSByb3ctZm9yLXJvdy4KK1dJVEggcnBy X3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK KyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQor KQorU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHJwcl9yZXN1bHQgT1JERVIgQlkgaWQ7CisgaWQg fCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAy MCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAg MworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5 IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCistLSBNdWx0aS1yZWZl cmVuY2UgQ1RFIChzZWxmLWpvaW4pOiBwbGFuIGhhcyBhICJDVEUgcnByX3Jlc3VsdCIgc2NvcGUK Ky0tIGFuZCBDVEUgU2NhbiBub2RlcyBvbiBib3RoIHNpZGVzLCBzaG93aW5nIHRoZSBDVEUgd2Fz IG1hdGVyaWFsaXplZAorLS0gYW5kIHBhdHRlcm4gbWF0Y2hpbmcgcmFuIG9ubHkgb25jZS4KK0VY UExBSU4gKENPU1RTIE9GRikKK1dJVEggcnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVG SU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKQorU0VMRUNUIHIxLmlkLCByMS5jbnQKK0ZST00g cnByX3Jlc3VsdCByMQorSk9JTiBycHJfcmVzdWx0IHIyIE9OIHIxLmlkID0gcjIuaWQgQU5EIHIx LmNudCA9IHIyLmNudAorV0hFUkUgcjEuY250ID4gMAorT1JERVIgQlkgcjEuaWQ7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgTWVyZ2UgSm9pbgorICAgTWVyZ2UgQ29uZDogKChyMi5pZCA9 IHIxLmlkKSBBTkQgKHIyLmNudCA9IHIxLmNudCkpCisgICBDVEUgcnByX3Jlc3VsdAorICAgICAt PiAgV2luZG93QWdnCisgICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVn LmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg ICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAg ICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfaW50ZWcKKyAgIC0+ICBJbmNyZW1lbnRhbCBTb3J0CisgICAgICAgICBTb3J0IEtl eTogcjIuaWQsIHIyLmNudAorICAgICAgICAgUHJlc29ydGVkIEtleTogcjIuaWQKKyAgICAgICAg IC0+ICBDVEUgU2NhbiBvbiBycHJfcmVzdWx0IHIyCisgICAtPiAgU29ydAorICAgICAgICAgU29y dCBLZXk6IHIxLmlkLCByMS5jbnQKKyAgICAgICAgIC0+ICBDVEUgU2NhbiBvbiBycHJfcmVzdWx0 IHIxCisgICAgICAgICAgICAgICBGaWx0ZXI6IChjbnQgPiAwKQorKDE3IHJvd3MpCisKKy0tIFJl c3VsdDogYm90aCByZWZlcmVuY2VzIHNlZSB0aGUgc2FtZSBtYXRjaCBjb3VudHMsIHNvIHRoZSBz ZWxmLWpvaW4KKy0tIHByZXNlcnZlcyBhbGwgbWF0Y2hlZCByb3dzIGZyb20gdGhlIGJhc2VsaW5l LgorV0lUSCBycHJfcmVzdWx0IEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQ UkVWKHZhbCkpCispCitTRUxFQ1QgcjEuaWQsIHIxLmNudAorRlJPTSBycHJfcmVzdWx0IHIxCitK T0lOIHJwcl9yZXN1bHQgcjIgT04gcjEuaWQgPSByMi5pZCBBTkQgcjEuY250ID0gcjIuY250CitX SEVSRSByMS5jbnQgPiAwCitPUkRFUiBCWSByMS5pZDsKKyBpZCB8IGNudCAKKy0tLS0rLS0tLS0K KyAgMSB8ICAgMgorICAzIHwgICAyCisgIDUgfCAgIDMKKyAgOCB8ICAgMworKDQgcm93cykKKwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBCMi4gUlBSICsgSk9JTgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIg c3VicXVlcnkgY2FuIGJlIGpvaW5lZCB3aXRoIGFub3RoZXIgcmVsYXRpb24uCistLSBUd28gYXNw ZWN0cyBhcmUgY2hlY2tlZCBhZ2FpbnN0IGEgbm9uLVJQUiBiYXNlbGluZToKKy0tICAgKDEpIEZs YXR0ZW5pbmc6IGEgbm9uLVJQUiBzdWJxdWVyeSBpcyBwdWxsZWQgdXAgYnkgdGhlIHBsYW5uZXIK Ky0tICAgICAgIChubyBTdWJxdWVyeSBTY2FuIGluIHRoZSBwbGFuKTsgYW4gUlBSIHN1YnF1ZXJ5 IGlzIGtlcHQKKy0tICAgICAgIHVuLWZsYXR0ZW5lZCAoU3VicXVlcnkgU2NhbiBhYm92ZSBXaW5k b3dBZ2cpLgorLS0gICAoMikgSm9pbiBjb3JyZWN0bmVzczogdGhlIGpvaW4gYWxpZ25zIGVhY2gg UlBSIG1hdGNoIHJvdyB3aXRoCistLSAgICAgICB0aGUgZGltZW5zaW9uLXRhYmxlIHJvdyBvbiB0 aGUgc2FtZSBrZXkuCitDUkVBVEUgVEFCTEUgcnByX2ludGVnMiAoaWQgSU5ULCBsYWJlbCBURVhU KTsKK0lOU0VSVCBJTlRPIHJwcl9pbnRlZzIgVkFMVUVTCisgICAgKDEsICdhJyksICgyLCAnYicp LCAoMywgJ2MnKSwgKDQsICdkJyksICg1LCAnZScpLAorICAgICg2LCAnZicpLCAoNywgJ2cnKSwg KDgsICdoJyksICg5LCAnaScpLCAoMTAsICdqJyk7CistLSBCYXNlbGluZTogYSBub24tUlBSIHN1 YnF1ZXJ5IGlzIGZsYXR0ZW5lZCBieSB0aGUgcGxhbm5lci4gIE5vCistLSBTdWJxdWVyeSBTY2Fu IG5vZGUgYXBwZWFyczsgdGhlIGlubmVyIFNFTEVDVCBpcyBtZXJnZWQgaW50byB0aGUKKy0tIG91 dGVyIGpvaW4uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci52YWwsIGoubGFi ZWwKK0ZST00gKFNFTEVDVCBpZCwgdmFsIEZST00gcnByX2ludGVnKSByCitKT0lOIHJwcl9pbnRl ZzIgaiBPTiByLmlkID0gai5pZAorT1JERVIgQlkgci5pZDsKKyAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIE1lcmdlIEpvaW4KKyAgIE1lcmdlIENvbmQ6IChqLmlkID0gcnByX2ludGVnLmlkKQorICAg LT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBqLmlkCisgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX2ludGVnMiBqCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRl Zy5pZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDggcm93cykKKworLS0g UlBSIHN1YnF1ZXJ5IEpPSU46IHRoZSBTdWJxdWVyeSBTY2FuIGlzIHByZXNlcnZlZCBhYm92ZSB0 aGUKKy0tIFdpbmRvd0FnZywgY29uZmlybWluZyB0aGUgUlBSIHN1YnF1ZXJ5IGlzIG5vdCBmbGF0 dGVuZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwK K0ZST00gKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00g cnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJO IChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4g cnByX2ludGVnMiBqIE9OIHIuaWQgPSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIu aWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBNZXJnZSBKb2luCisgICBN ZXJnZSBDb25kOiAoci5pZCA9IGouaWQpCisgICAtPiAgU3VicXVlcnkgU2NhbiBvbiByCisgICAg ICAgICBGaWx0ZXI6IChyLmNudCA+IDApCisgICAgICAgICAtPiAgV2luZG93QWdnCisgICAgICAg ICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAgICAgICBQYXR0 ZXJuOiBhIGIrCisgICAgICAgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgICAgICAg U29ydCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9pbnRlZworICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBqLmlkCisgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnMiBqCisoMTMgcm93cykKKworLS0gUmVzdWx0 OiBtYXRjaGVkIFJQUiByb3dzIGFsaWduIHdpdGggZGltZW5zaW9uIHJvd3Mgb24gaWQsIHNob3dp bmcKKy0tIHRoZSBqb2luIGNvcnJlY3RseSBwYWlycyBwZXItcm93IG1hdGNoIGNvdW50cyB3aXRo IHRoZWlyIGxhYmVscy4KK1NFTEVDVCByLmlkLCByLmNudCwgai5sYWJlbAorRlJPTSAoCisgICAg U0VMRUNUIGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAg ICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAg ICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgcgorSk9JTiBycHJfaW50ZWcyIGog T04gci5pZCA9IGouaWQKK1dIRVJFIHIuY250ID4gMAorT1JERVIgQlkgci5pZDsKKyBpZCB8IGNu dCB8IGxhYmVsIAorLS0tLSstLS0tLSstLS0tLS0tCisgIDEgfCAgIDIgfCBhCisgIDMgfCAgIDIg fCBjCisgIDUgfCAgIDMgfCBlCisgIDggfCAgIDMgfCBoCisoNCByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEIzLiBSUFIgKyBTZXQgb3BlcmF0aW9ucworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcmVz dWx0cyBjb21iaW5lIGNvcnJlY3RseSB3aXRoIG5vbi1SUFIgcmVzdWx0cworLS0gdW5kZXIgYSBV TklPTiBBTEwuICBUaGUgcGxhbiBtdXN0IHNob3cgYW4gQXBwZW5kIG5vZGUgd2l0aCB0d28KKy0t IGluZGVwZW5kZW50IGNoaWxkIHBsYW5zOiB0aGUgUlBSIGJyYW5jaCB3aXRoIFBhdHRlcm4vREVG SU5FIGFjdGl2ZSwKKy0tIGFuZCB0aGUgbm9uLVJQUiBicmFuY2ggd2l0aCBhIHBsYWluIFdpbmRv d0FnZy4gIEVhY2ggY2hpbGQgc2NhbnMKKy0tIHRoZSBiYXNlIHJlbGF0aW9uIG9uIGl0cyBvd24g YW5kIGNvbnRyaWJ1dGVzIGl0cyByb3dzIHRvIHRoZQorLS0gdW5pb25lZCBvdXRwdXQuCistLSBQ bGFuOiBBcHBlbmQgd2l0aCB0d28gaW5kZXBlbmRlbnQgY2hpbGRyZW4uICBUaGUgUlBSIGJyYW5j aCBoYXMgYQorLS0gV2luZG93QWdnIGNhcnJ5aW5nIFBhdHRlcm4vTmF2IE1hcmsgTG9va2JhY2s7 IHRoZSBub24tUlBSIGJyYW5jaAorLS0gaGFzIGEgcGxhaW4gV2luZG93QWdnIHdpdGggbm8gcGF0 dGVybiBtZXRhZGF0YS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBpZCwgY250LCAncnBy JyBBUyBzb3VyY2UgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkK KykgdCBXSEVSRSBjbnQgPiAwCitVTklPTiBBTEwKK1NFTEVDVCBpZCwgY291bnQoKikgT1ZFUiAo T1JERVIgQlkgaWQpIEFTIGNudCwgJ25vcm1hbCcgQVMgc291cmNlCitGUk9NIHJwcl9pbnRlZwor T1JERVIgQlkgc291cmNlLCBpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNvcnQKKyAgIFNvcnQgS2V5OiAoJ3Jwcic6OnRleHQpLCB0LmlkCisgICAt PiAgQXBwZW5kCisgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiB0CisgICAgICAgICAgICAg ICBGaWx0ZXI6ICh0LmNudCA+IDApCisgICAgICAgICAgICAgICAtPiAgV2luZG93QWdnCisgICAg ICAgICAgICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAg ICAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworICAgICAgICAg LT4gIFdpbmRvd0FnZworICAgICAgICAgICAgICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgcnBy X2ludGVnXzEuaWQpCisgICAgICAgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgICAg ICAgU29ydCBLZXk6IHJwcl9pbnRlZ18xLmlkCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX2ludGVnIHJwcl9pbnRlZ18xCisoMTYgcm93cykKKworLS0gUmVzdWx0OiBy b3dzIGZyb20gYm90aCBicmFuY2hlcyBhcmUgcHJlc2VudCBpbiB0aGUgdW5pb25lZCBvdXRwdXQu CistLSBUaGUgUlBSIGJyYW5jaCBlbWl0cyBvbmx5IG1hdGNoZWQgcm93cyAoY250ID4gMCksIHdo aWxlIHRoZQorLS0gbm9uLVJQUiBicmFuY2ggZW1pdHMgYWxsIHJvd3Mgd2l0aCBpdHMgb3duIGNv dW50IHZhbHVlcy4KK1NFTEVDVCBpZCwgY250LCAncnByJyBBUyBzb3VyY2UgRlJPTSAoCisgICAg U0VMRUNUIGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAg ICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAg ICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwCitVTklP TiBBTEwKK1NFTEVDVCBpZCwgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQpIEFTIGNudCwgJ25v cm1hbCcgQVMgc291cmNlCitGUk9NIHJwcl9pbnRlZworT1JERVIgQlkgc291cmNlLCBpZDsKKyBp ZCB8IGNudCB8IHNvdXJjZSAKKy0tLS0rLS0tLS0rLS0tLS0tLS0KKyAgMSB8ICAgMSB8IG5vcm1h bAorICAyIHwgICAyIHwgbm9ybWFsCisgIDMgfCAgIDMgfCBub3JtYWwKKyAgNCB8ICAgNCB8IG5v cm1hbAorICA1IHwgICA1IHwgbm9ybWFsCisgIDYgfCAgIDYgfCBub3JtYWwKKyAgNyB8ICAgNyB8 IG5vcm1hbAorICA4IHwgICA4IHwgbm9ybWFsCisgIDkgfCAgIDkgfCBub3JtYWwKKyAxMCB8ICAx MCB8IG5vcm1hbAorICAxIHwgICAyIHwgcnByCisgIDMgfCAgIDIgfCBycHIKKyAgNSB8ICAgMyB8 IHJwcgorICA4IHwgICAzIHwgcnByCisoMTQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNC4gUlBSICsg UHJlcGFyZWQgc3RhdGVtZW50cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcXVlcmllcyBz dXJ2aXZlIHRoZSBwcmVwYXJlZC1zdGF0ZW1lbnQgcGF0aCBieQorLS0gZXhlcmNpc2luZyBib3Ro IHBsYW5jYWNoZSBtb2RlcyB3aXRoIGEgcGFyYW1ldGVyIHRoYXQgZmVlZHMgaW50bworLS0gUlBS J3MgbmF2aWdhdGlvbiBvZmZzZXQgKFBSRVYodmFsLCAkMSkpLiAgVGhlIHBhcmFtZXRlciBzdXJm YWNlcworLS0gdGhlIFJQUi1zcGVjaWZpYyBwbGFuY2FjaGUgZGlmZmVyZW5jZToKKy0tICAgLSBj dXN0b20gcGxhbjogIk5hdiBNYXJrIExvb2tiYWNrIiBpcyByZXNvbHZlZCB0byB0aGUgbGl0ZXJh bAorLS0gICAgIHBhcmFtZXRlciB2YWx1ZSBhdCBwbGFuIHRpbWUgKGUuZy4sICJOYXYgTWFyayBM b29rYmFjazogMSIpLgorLS0gICAtIGdlbmVyaWMgcGxhbjogIk5hdiBNYXJrIExvb2tiYWNrIiBp cyBkZWZlcnJlZCB0byBleGVjdXRpb24gYW5kCistLSAgICAgYXBwZWFycyBhcyAiTmF2IE1hcmsg TG9va2JhY2s6IHJ1bnRpbWUiIGluIHRoZSBwbGFuLgorLS0gVGhlIHJlc3VsdCBtdXN0IGJlIGlk ZW50aWNhbCB1bmRlciBib3RoIG1vZGVzLgorLS0gUmVnaXN0ZXIgdGhlIHByZXBhcmVkIHN0YXRl bWVudDsgREVGSU5FIHVzZXMgUFJFVih2YWwsICQxKSBzbyB0aGUKKy0tIHBhcmFtZXRlciByZWFj aGVzIFJQUidzIG5hdmlnYXRpb24gbWFjaGluZXJ5LgorUFJFUEFSRSBycHJfcHJldihpbnQpIEFT CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcK K1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwsICQxKSkKK09SREVSIEJZIGlkOworRVJST1I6ICBmdW5jdGlvbiBw cmV2KGludGVnZXIsIGludGVnZXIpIGRvZXMgbm90IGV4aXN0CitMSU5FIDc6ICAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCwgJDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorREVUQUlMOiAgTm8gZnVuY3Rpb24gb2YgdGhhdCBuYW1lIGFjY2VwdHMgdGhlIGdpdmVuIG51 bWJlciBvZiBhcmd1bWVudHMuCistLSBDdXN0b20gcGxhbjogTmF2IE1hcmsgTG9va2JhY2sgcmVz b2x2ZWQgdG8gdGhlIGxpdGVyYWwgMS4KK1NFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9jdXN0 b21fcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKK0VSUk9S OiAgcHJlcGFyZWQgc3RhdGVtZW50ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKK0VYRUNVVEUg cnByX3ByZXYoMSk7CitFUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3ByZXYiIGRvZXMg bm90IGV4aXN0CistLSBHZW5lcmljIHBsYW46IE5hdiBNYXJrIExvb2tiYWNrIGRlZmVycmVkIHRv IGV4ZWN1dGlvbiwgc2hvd24gYXMKKy0tICJydW50aW1lIiBpbiB0aGUgcGxhbi4gIFJlc3VsdCBt dXN0IG1hdGNoIHRoZSBjdXN0b20tcGxhbiByZXN1bHQKKy0tIGV4YWN0bHkuCitTRVQgcGxhbl9j YWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVD VVRFIHJwcl9wcmV2KDEpOworRVJST1I6ICBwcmVwYXJlZCBzdGF0ZW1lbnQgInJwcl9wcmV2IiBk b2VzIG5vdCBleGlzdAorRVhFQ1VURSBycHJfcHJldigxKTsKK0VSUk9SOiAgcHJlcGFyZWQgc3Rh dGVtZW50ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsK K0RFQUxMT0NBVEUgcnByX3ByZXY7CitFUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3By ZXYiIGRvZXMgbm90IGV4aXN0CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEI1LiBSUFIgKyBQYXJ0aXRpb25lZCB0YWJs ZQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3Jy ZWN0bHkgd2hlbiB0aGUgc291cmNlCistLSByZWxhdGlvbiBpcyBwYXJ0aXRpb25lZC4gIFRoZSBw bGFubmVyIG11c3QgZ2F0aGVyIHJvd3MgZnJvbSBldmVyeQorLS0gcGFydGl0aW9uIGludG8gYSBz aW5nbGUgb3JkZXJlZCBzdHJlYW0gYmVmb3JlIFJQUiBjYW4gc2VlIHRoZW0sCistLSBiZWNhdXNl IHBhdHRlcm4gbWF0Y2hpbmcgaXMgc2VxdWVudGlhbCBhY3Jvc3MgdGhlIGVudGlyZQorLS0gcGFy dGl0aW9uLWJ5IGdyb3VwIGFuZCBjYW5ub3QgYmUgcGVyZm9ybWVkIGluZGVwZW5kZW50bHkgb24g ZWFjaAorLS0gdGFibGUgcGFydGl0aW9uLgorQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0IChpZCBJTlQs IHZhbCBJTlQpIFBBUlRJVElPTiBCWSBSQU5HRSAoaWQpOworQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0 XzEgUEFSVElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDYpOworQ1JF QVRFIFRBQkxFIHJwcl9wYXJ0XzIgUEFSVElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJP TSAoNikgVE8gKDExKTsKK0lOU0VSVCBJTlRPIHJwcl9wYXJ0IFNFTEVDVCBpZCwgdmFsIEZST00g cnByX2ludGVnOworLS0gUGxhbjogcGFydGl0aW9uIHNjYW5zIGFyZSBjb21iaW5lZCB3aXRoIEFw cGVuZCAob3IgTWVyZ2UgQXBwZW5kKSwKKy0tIHNvcnRlZCBpbnRvIGEgc2luZ2xlIG9yZGVyZWQg c3RyZWFtLCBhbmQgZmVkIGludG8gb25lIFdpbmRvd0FnZworLS0gdGhhdCBwZXJmb3JtcyBSUFIg cGF0dGVybiBtYXRjaGluZyBhY3Jvc3MgdGhlIGNvbWJpbmVkIHN0cmVhbS4KK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJw cl9wYXJ0CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfcGFydC5pZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIrCisg ICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IHJwcl9wYXJ0LmlkCisgICAgICAgICAtPiAg QXBwZW5kCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BhcnRfMQorICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wYXJ0XzIKKyg4IHJvd3MpCisKKy0tIEJhc2Vs aW5lOiB0aGUgc2FtZSBxdWVyeSBhZ2FpbnN0IHRoZSBub24tcGFydGl0aW9uZWQgcnByX2ludGVn CistLSBwcm9kdWNlcyB0aGUgcGVyLXJvdyByZWZlcmVuY2Ugb3V0cHV0LgorU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQor ICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwg IDI1IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwg ICAwCisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCiso MTAgcm93cykKKworLS0gUmVzdWx0IGFnYWluc3QgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIG11c3Qg bWF0Y2ggdGhlIGJhc2VsaW5lCistLSByb3ctZm9yLXJvdy4KK1NFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9wYXJ0CitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09S REVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEw IHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAw CisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAwCisgIDgg fCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAgcm93cykK KworRFJPUCBUQUJMRSBycHJfcGFydDsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjYuIFJQUiArIExBVEVSQUwKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gUlBSIGluc2lkZSBhIExBVEVSQUwgc3VicXVlcnkuICBRdWFsaWZpZWQgY29sdW1u IHJlZmVyZW5jZXMgZnJvbQorLS0gdGhlIG91dGVyIHF1ZXJ5IGFyZSBub3QgeWV0IHN1cHBvcnRl ZCBpbiBERUZJTkUsIHNvIHRoaXMgdGVzdHMKKy0tIHRoZSBiYXNpYyBjYXNlIHdoZXJlIExBVEVS QUwgcHJvdmlkZXMgdGhlIGNvcnJlbGF0aW9uIGZpbHRlcgorLS0gKFdIRVJFIGlkIDw9IG8uaWQp IGFuZCBERUZJTkUgdXNlcyBvbmx5IGxvY2FsIGNvbHVtbnMuICBUaGUgcGxhbgorLS0gbXVzdCBz aG93IGEgTmVzdGVkIExvb3AgZHJpdmluZyB0aGUgb3V0ZXIgcmVsYXRpb24gaW50byB0aGUgaW5u ZXIKKy0tIHN1YnF1ZXJ5IHNjYW4sIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgcmUtZXhlY3V0ZWQg Zm9yIGVhY2ggb3V0ZXIKKy0tIHJvdyBhbmQgdGhlIGNvcnJlbGF0aW9uIHN1cmZhY2luZyBhcyBh IHNjYW4tbGV2ZWwgRmlsdGVyIG9uCistLSAiaWQgPD0gby5pZCIuCistLSBQbGFuOiBOZXN0ZWQg TG9vcCB3aXRoIHRoZSBSUFIgV2luZG93QWdnIGluIHRoZSBpbm5lciBsZWcsIGRyaXZlbgorLS0g YnkgdGhlIGZpbHRlcmVkIG91dGVyIHJvd3MgKG8uaWQgSU4gKDUsIDEwKSkuCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1Qgby5pZCBBUyBvdXRlcl9pZCwgci5pZCwgci5jbnQKK0ZST00gcnBy X2ludGVnIG8sCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdIRVJFIGlkIDw9IG8uaWQKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgcgorV0hFUkUgci5jbnQgPiAwIEFORCBvLmlkIElO ICg1LCAxMCkKK09SREVSIEJZIG8uaWQsIHIuaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBTb3J0IEtleTogby5pZCwgci5pZAorICAg LT4gIE5lc3RlZCBMb29wCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIG8KKyAg ICAgICAgICAgICAgIEZpbHRlcjogKGlkID0gQU5ZICgnezUsMTB9Jzo6aW50ZWdlcltdKSkKKyAg ICAgICAgIC0+ICBTdWJxdWVyeSBTY2FuIG9uIHIKKyAgICAgICAgICAgICAgIEZpbHRlcjogKHIu Y250ID4gMCkKKyAgICAgICAgICAgICAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgICAgICAgICAg ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgICAgICAgICAgICAgIFBh dHRlcm46IGEgYisKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6IChpZCA8PSBvLmlkKQorKDE0IHJvd3MpCisKKy0tIFJlc3VsdDog Zm9yIGVhY2ggb2YgdGhlIHR3byBvdXRlciBpZHMgKDUgYW5kIDEwKSwgdGhlIExBVEVSQUwKKy0t IHN1YnF1ZXJ5IHByb2R1Y2VzIFJQUiBtYXRjaCBjb3VudHMgb3ZlciB0aGUgcmVzdHJpY3RlZCBp bnB1dC4KK1NFTEVDVCBvLmlkIEFTIG91dGVyX2lkLCByLmlkLCByLmNudAorRlJPTSBycHJfaW50 ZWcgbywKK0xBVEVSQUwgKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAor ICAgIEZST00gcnByX2ludGVnCisgICAgV0hFUkUgaWQgPD0gby5pZAorICAgIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwpKQorKSByCitXSEVSRSByLmNudCA+IDAgQU5EIG8uaWQgSU4gKDUs IDEwKQorT1JERVIgQlkgby5pZCwgci5pZDsKKyBvdXRlcl9pZCB8IGlkIHwgY250IAorLS0tLS0t LS0tLSstLS0tKy0tLS0tCisgICAgICAgIDUgfCAgMSB8ICAgMgorICAgICAgICA1IHwgIDMgfCAg IDIKKyAgICAgICAxMCB8ICAxIHwgICAyCisgICAgICAgMTAgfCAgMyB8ICAgMgorICAgICAgIDEw IHwgIDUgfCAgIDMKKyAgICAgICAxMCB8ICA4IHwgICAzCisoNiByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEI3LiBSUFIgKyBSZWN1cnNpdmUgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3 aW5kb3cgY2FuIGFwcGVhciBpbnNpZGUgdGhlIG5vbi1yZWN1cnNpdmUKKy0tIChiYXNlKSBsZWcg b2YgYSByZWN1cnNpdmUgQ1RFLiAgVGhlIHBsYW4gbXVzdCBzaG93IHRoZSBSUFIKKy0tIFdpbmRv d0FnZyBzaXR0aW5nIHVuZGVyIHRoZSBSZWN1cnNpdmUgVW5pb24gYXMgdGhlIGJhc2UtbGVnCist LSBjaGlsZCwgd2l0aCB0aGUgV29ya1RhYmxlIFNjYW4gZmVlZGluZyB0aGUgcmVjdXJzaXZlIGxl ZyBhYm92ZQorLS0gaXQuICBUaGlzIGNvbmZpcm1zIHRoYXQgUlBSIG91dHB1dCBjYW4gc2VlZCBh IHJlY3Vyc2l2ZSBDVEUKKy0tICh3aW5kb3cgZnVuY3Rpb25zIGNhbm5vdCBhcHBlYXIgaW4gdGhl IHJlY3Vyc2l2ZSBsZWcgaXRzZWxmLCBhCistLSBQb3N0Z3JlU1FMIHJlc3RyaWN0aW9uLCBzbyB0 aGlzIGlzIHRoZSBuYXR1cmFsIHBsYWNlIHRvIGV4ZXJjaXNlCistLSAiUlBSIHVuZGVyIFJlY3Vy c2l2ZSBVbmlvbiIpLgorLS0KKy0tIFhYWDogV2hldGhlciB0aGlzIGNhc2UgZmFsbHMgdW5kZXIg dGhlIElTTy9JRUMgOTA3NS0yIDQuMTguNSAvCistLSA2LjE3LjUgcHJvaGliaXRpb24gaXMgbm90 IHNvbWV0aGluZyBJIGNhbiBqdWRnZS4gIElmIHRoaXMgY2FzZQorLS0gaXMgbm90IHByb2hpYml0 ZWQsIHRoZSBvcGVuIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYSBxdWVyeSB0aGF0CistLSBkb2VzIHRy aWdnZXIgdGhlIHByb2hpYml0aW9uIGNhbiBiZSBjb25zdHJ1Y3RlZCBhdCBhbGwuCistLSBXaGV0 aGVyIHRvIHByb2hpYml0IHRoaXMgY2FzZSBpcyBsZWZ0IHRvIHRoZSBjb21tdW5pdHkuCistLSBQ bGFuOiBSZWN1cnNpdmUgVW5pb24gd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBvbiB0aGUgYmFzZSBs ZWcgYW5kCistLSB0aGUgV29ya1RhYmxlIFNjYW4gb24gdGhlIHJlY3Vyc2l2ZSBsZWcuCitFWFBM QUlOIChDT1NUUyBPRkYpCitXSVRIIFJFQ1VSU0lWRSBzZXEgQVMgKAorICAgIFNFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICBVTklPTiBBTEwKKyAgICBTRUxFQ1QgaWQg KyAxMDAsIHZhbCwgY250IEZST00gc2VxIFdIRVJFIGlkIDwgMworKQorU0VMRUNUIGlkLCB2YWws IGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTb3J0CisgICBTb3J0IEtleTogc2VxLmlkCisgICBDVEUgc2VxCisgICAgIC0+ ICBSZWN1cnNpdmUgVW5pb24KKyAgICAgICAgICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICAg ICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAgICAgICAgIFBhdHRl cm46IGEgYisKKyAgICAgICAgICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgICAgICAg ICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX2ludGVnCisgICAgICAgICAgIC0+ICBXb3JrVGFibGUgU2NhbiBvbiBzZXEg c2VxXzEKKyAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPCAzKQorICAgLT4gIENURSBTY2Fu IG9uIHNlcQorKDEzIHJvd3MpCisKKy0tIFJlc3VsdDogdGhlIGJhc2UgbGVnIGNvbnRyaWJ1dGVz IHRoZSBSUFIgbWF0Y2ggY291bnRzOyB0aGUKKy0tIHJlY3Vyc2l2ZSBsZWcgcHJvcGFnYXRlcyB0 aG9zZSBjb3VudHMgd2l0aCBzaGlmdGVkIGlkcy4KK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAoCisg ICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9p bnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBC KykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorICAgIFVOSU9OIEFMTAor ICAgIFNFTEVDVCBpZCArIDEwMCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCispCitT RUxFQ1QgaWQsIHZhbCwgY250IEZST00gc2VxIE9SREVSIEJZIGlkOworIGlkICB8IHZhbCB8IGNu dCAKKy0tLS0tKy0tLS0tKy0tLS0tCisgICAxIHwgIDEwIHwgICAyCisgICAyIHwgIDIwIHwgICAw CisgICAzIHwgIDE1IHwgICAyCisgICA0IHwgIDI1IHwgICAwCisgICA1IHwgICA1IHwgICAzCisg ICA2IHwgIDMwIHwgICAwCisgICA3IHwgIDM1IHwgICAwCisgICA4IHwgIDIwIHwgICAzCisgICA5 IHwgIDQwIHwgICAwCisgIDEwIHwgIDQ1IHwgICAwCisgMTAxIHwgIDEwIHwgICAyCisgMTAyIHwg IDIwIHwgICAwCisoMTIgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCOC4gUlBSICsgSW5jcmVtZW50YWwg c29ydAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBj b3JyZWN0bHkgd2hlbiB0aGUgaW5wdXQKKy0tIHRvIFdpbmRvd0FnZyBhcnJpdmVzIHZpYSBhbiBp bmNyZW1lbnRhbCBzb3J0LiAgVGhlIGluZGV4IG9uIChpZCkKKy0tIHByb3ZpZGVzIHByZXNvcnRl ZCBpbnB1dCBmb3IgdGhlIGZpcnN0IE9SREVSIEJZIGtleSwgc28KKy0tICJPUkRFUiBCWSBpZCwg dmFsIiBsZXRzIHRoZSBwbGFubmVyIHVzZSBJbmNyZW1lbnRhbCBTb3J0IHRvIG9yZGVyCistLSBv bmx5IG9uIHRoZSBzZWNvbmQga2V5LiAgVGhlIHBsYW4gbXVzdCBzaG93IEluY3JlbWVudGFsIFNv cnQKKy0tIGJlbG93IHRoZSBSUFIgV2luZG93QWdnLCBhbmQgUlBSIG11c3QgcHJvZHVjZSB0aGUg c2FtZSBwZXItcm93CistLSBtYXRjaCBjb3VudHMgYXMgaXQgd291bGQgd2l0aCBhIHBsYWluIFNv cnQuCitDUkVBVEUgSU5ERVggcnByX2ludGVnX2lkX2lkeCBPTiBycHJfaW50ZWcgKGlkKTsKK1NF VCBlbmFibGVfc2Vxc2NhbiA9IG9mZjsKKy0tIFBsYW46IFJQUiBXaW5kb3dBZ2cgYWJvdmUgYW4g SW5jcmVtZW50YWwgU29ydCBhYm92ZSBhbiBJbmRleCBTY2FuLgorLS0gVGhlIEluY3JlbWVudGFs IFNvcnQgZGVjbGFyZXMgIlByZXNvcnRlZCBLZXk6IGlkIiBhbmQgc29ydHMgb25seQorLS0gb24g dmFsIHdpdGhpbiBlYWNoIGlkIGdyb3VwLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlk LCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQsIHZhbAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk LCB2YWwgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogYSBiKworICAgLT4gIEluY3JlbWVudGFsIFNvcnQKKyAgICAgICAgIFNvcnQg S2V5OiBpZCwgdmFsCisgICAgICAgICBQcmVzb3J0ZWQgS2V5OiBpZAorICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgcnByX2ludGVnX2lkX2lkeCBvbiBycHJfaW50ZWcKKyg3IHJvd3MpCisK Ky0tIFJlc3VsdDogUlBSIG92ZXIgdGhlIGluY3JlbWVudGFsbHkgc29ydGVkIHN0cmVhbSBwcm9k dWNlcyBtYXRjaAorLS0gY291bnRzIHBlciByb3cuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCwg dmFsCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitP UkRFUiBCWSBpZCwgdmFsOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1 IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAw CisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAg cm93cykKKworUkVTRVQgZW5hYmxlX3NlcXNjYW47CitEUk9QIElOREVYIHJwcl9pbnRlZ19pZF9p ZHg7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJTkUKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gUmVjb3JkcyB0aGUgY3VycmVudCBiZWhhdmlvdXI6IERFRklORSB0b2RheSBhY2Nl cHRzIHZvbGF0aWxlCistLSBmdW5jdGlvbnMgc3VjaCBhcyByYW5kb20oKSBhbmQgdGhlIHF1ZXJ5 IHJ1bnMgdG8gY29tcGxldGlvbi4KKy0tIFRvIGtlZXAgdGhlIGV4cGVjdGVkIG91dHB1dCBkZXRl cm1pbmlzdGljIHRoZSBwcmVkaWNhdGUgdXNlcworLS0gInJhbmRvbSgpID49IDAuMCIsIHdoaWNo IGlzIHN0cnVjdHVyYWxseSBlcXVpdmFsZW50IHRvIFRSVUUgYW5kCistLSB0aGVyZWZvcmUgZG9l cyBub3QgcGVydHVyYiB0aGUgbWF0Y2ggcmVzdWx0LiAgVGhlIGludGVyZXN0aW5nCistLSBwcm9w ZXJ0eSBpcyB0aGF0IHZvbGF0aWxlIGludm9jYXRpb24gZG9lcyBub3QgY3Jhc2ggb3Igc2hvcnQt CistLSBjaXJjdWl0IHBhdHRlcm4gbWF0Y2hpbmcuCistLQorLS0gWFhYOiB2b2xhdGlsZSBmdW5j dGlvbnMgaW4gREVGSU5FIGFyZSBzbGF0ZWQgdG8gYmUgcmVqZWN0ZWQgYXQKKy0tIHBhcnNlIHRp bWUuICBVbmRlciBSUFIncyBORkEgZW5naW5lIHRoZSBzYW1lIHJvdydzIERFRklORQorLS0gcHJl ZGljYXRlIG1heSBiZSBldmFsdWF0ZWQgbXVsdGlwbGUgdGltZXMgKGJhY2t0cmFja2luZywKKy0t IFBSRVYvTkVYVCBuYXZpZ2F0aW9uKSwgc28gYSB0cnVseSB2b2xhdGlsZSByZXN1bHQgd291bGQg bWFrZQorLS0gcGF0dGVybiBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFdoZW4gdGhlIHBy b2hpYml0aW9uIGxhbmRzLAorLS0gdGhpcyB0ZXN0IG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhbiBl cnJvci1jYXNlIHRlc3QgdGhhdCBleHBlY3RzCistLSByYW5kb20oKSBpbiBERUZJTkUgdG8gYmUg cmVqZWN0ZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBy cHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpIEFORCByYW5kb20oKSA+PSAwLjApCitPUkRFUiBC WSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAg MgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAgNCB8ICAyNSB8ICAgMAorICA1 IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8ICAzNSB8ICAgMAorICA4IHwgIDIw IHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8ICAgMAorKDEwIHJvd3MpCisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gQjEwLiBSUFIgKyBDb3JyZWxhdGVkIHN1YnF1ZXJ5IGluIFdIRVJFCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3aW5kb3cgcGxhY2VkIGluc2lkZSBhIGNvcnJlbGF0ZWQg c2NhbGFyCistLSBzdWJxdWVyeSBpcyBleGVjdXRlZCBvbmNlIHBlciBvdXRlciByb3cuICBERUZJ TkUgc3RpbGwgcmVmZXJlbmNlcworLS0gb25seSBsb2NhbCBjb2x1bW5zIChxdWFsaWZpZWQgcmVm cyBmcm9tIHRoZSBvdXRlciBxdWVyeSBhcmUgbm90CistLSBzdXBwb3J0ZWQgaW4gREVGSU5FKTsg dGhlIGNvcnJlbGF0aW9uIGxpdmVzIGluIHRoZSBzdWJxdWVyeSdzCistLSBXSEVSRSBjbGF1c2Ug YXMgImkuaWQgPD0gby5pZCIuICBUaGUgcGxhbiBtdXN0IHNob3cgYSBTdWJQbGFuCistLSBhdHRh Y2hlZCB0byB0aGUgb3V0ZXIgc2Nhbiwgd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBkcml2ZW4gYnkg YQorLS0gcGVyLXJvdyBzY2FuIGZpbHRlciBjYXJyeWluZyB0aGUgY29ycmVsYXRpb24gcHJlZGlj YXRlLgorLS0gUGxhbjogU3ViUGxhbiBhdHRhY2hlZCB0byB0aGUgb3V0ZXIgU2VxIFNjYW47IHRo ZSBpbm5lciBzY2FuCistLSBjYXJyaWVzICJGaWx0ZXI6IChpZCA8PSBvLmlkKSIsIGNvbmZpcm1p bmcgdGhlIGNvcnJlbGF0aW9uIGlzCistLSBldmFsdWF0ZWQgcGVyIG91dGVyIHJvdy4KK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBvLmlkLCBvLnZhbCwKKyAgICAoU0VMRUNUIGNvdW50KCop IE9WRVIgdworICAgICBGUk9NIHJwcl9pbnRlZyBpCisgICAgIFdIRVJFIGkuaWQgPD0gby5pZAor ICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgUEFUVEVSTiAoQSBCKykK KyAgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICAgT1JERVIgQlkgaWQK KyAgICAgTElNSVQgMSkgQVMgZmlyc3RfY250CitGUk9NIHJwcl9pbnRlZyBvCitPUkRFUiBCWSBv LmlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBL ZXk6IG8uaWQKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcgbworICAgICAgICAgU3ViUGxh biBleHByXzEKKyAgICAgICAgICAgLT4gIExpbWl0CisgICAgICAgICAgICAgICAgIC0+ICBXaW5k b3dBZ2cKKyAgICAgICAgICAgICAgICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpLmlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAg ICAgICAgICAgICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgICAgICAgICAgICAgICAt PiAgU29ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogaS5pZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIGkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPD0gby5pZCkKKygx MiByb3dzKQorCistLSBSZXN1bHQ6IGVhY2ggb3V0ZXIgcm93IHJlY2VpdmVzIHRoZSBmaXJzdF9j bnQgZnJvbSBpdHMgb3duCistLSBjb3JyZWxhdGVkIFJQUiBzdWJxdWVyeS4KK1NFTEVDVCBvLmlk LCBvLnZhbCwKKyAgICAoU0VMRUNUIGNvdW50KCopIE9WRVIgdworICAgICBGUk9NIHJwcl9pbnRl ZyBpCisgICAgIFdIRVJFIGkuaWQgPD0gby5pZAorICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQKKyAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgIERFRklORSBCIEFTIHZhbCA+ IFBSRVYodmFsKSkKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgTElNSVQgMSkgQVMgZmlyc3RfY250 CitGUk9NIHJwcl9pbnRlZyBvCitPUkRFUiBCWSBvLmlkOworIGlkIHwgdmFsIHwgZmlyc3RfY250 IAorLS0tLSstLS0tLSstLS0tLS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAgICAwCisgIDIgfCAg MjAgfCAgICAgICAgIDIKKyAgMyB8ICAxNSB8ICAgICAgICAgMgorICA0IHwgIDI1IHwgICAgICAg ICAyCisgIDUgfCAgIDUgfCAgICAgICAgIDIKKyAgNiB8ICAzMCB8ICAgICAgICAgMgorICA3IHwg IDM1IHwgICAgICAgICAyCisgIDggfCAgMjAgfCAgICAgICAgIDIKKyAgOSB8ICA0MCB8ICAgICAg ICAgMgorIDEwIHwgIDQ1IHwgICAgICAgICAyCisoMTAgcm93cykKKworLS0gQ2xlYW51cAorRFJP UCBUQUJMRSBycHJfaW50ZWc7CitEUk9QIFRBQkxFIHJwcl9pbnRlZzI7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQppbmRleCA2YTJkMTlkNDQxMC4uZGJmYTNlOGYyY2MgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTA3LDcgKzEwNyw3IEBAIHRlc3Q6IHNlbGVjdF92aWV3 cyBwb3J0YWxzX3AyIGZvcmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBndWMgYml0bWFwb3Bz IGNvbWJvCiAjIC0tLS0tLS0tLS0KICMgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gdGVzdHMKICMg LS0tLS0tLS0tLQotdGVzdDogcnByIHJwcl9iYXNlIHJwcl9leHBsYWluIHJwcl9uZmEKK3Rlc3Q6 IHJwciBycHJfYmFzZSBycHJfZXhwbGFpbiBycHJfbmZhIHJwcl9pbnRlZ3JhdGlvbgogCiAjIC0t LS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cyAoSlNPTiByZWxhdGVk KQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdkNzBmNWU0Yjk4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbApAQCAtMCwwICsxLDkzNCBA QAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBSUFIgSW50ZWdyYXRpb24gVGVzdHMKKy0tIFBsYW5uZXIgb3B0aW1pemF0 aW9uIGludGVyYWN0aW9uIHRlc3RzIGZvciBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbgorLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLQorLS0gVmVyaWZpZXMgdGhhdCBlYWNoIHBsYW5uZXIgb3B0aW1pemF0aW9uIGNvcnJlY3Rs eSBoYW5kbGVzIFJQUiB3aW5kb3dzLgorLS0gRXZlbiBpZiBpbmRpdmlkdWFsIG9wdGltaXphdGlv bnMgYXJlIHRlc3RlZCBlbHNld2hlcmUsIHRoaXMgZmlsZQorLS0gcHJvdmlkZXMgYSBzaW5nbGUg Y2hlY2twb2ludCBmb3IgYWxsIHBsYW5uZXIvUlBSIGludGVyYWN0aW9ucy4KKy0tCistLSBBLiBQ bGFubmVyIE9wdGltaXphdGlvbiBQcm90ZWN0aW9uIFRlc3RzCistLSAgICBBMS4gRnJhbWUgb3B0 aW1pemF0aW9uIGJ5cGFzcworLS0gICAgQTIuIFJ1biBjb25kaXRpb24gcHVzaGRvd24gYnlwYXNz CistLSAgICBBMy4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKFJQUiB2cyBub24tUlBSKQorLS0g ICAgQTQuIFdpbmRvdyBkZWR1cCBwcmV2ZW50aW9uIChzYW1lIFBBVFRFUk4sIGRpZmZlcmVudCBE RUZJTkUpCistLSAgICBBNS4gVW51c2VkIHdpbmRvdyByZW1vdmFsIHByZXZlbnRpb24KKy0tICAg IEE2LiBJbnZlcnNlIHRyYW5zaXRpb24gYnlwYXNzCistLSAgICBBNy4gQ29zdCBlc3RpbWF0aW9u IFJQUiBhd2FyZW5lc3MKKy0tICAgIEE4LiBTdWJxdWVyeSBmbGF0dGVuaW5nIHByZXZlbnRpb24K Ky0tICAgIEE5LiBERUZJTkUgZXhwcmVzc2lvbiBub24tcHJvcGFnYXRpb24KKy0tICAgIEExMC4g UlBSICsgTElNSVQKKy0tCistLSBCLiBJbnRlZ3JhdGlvbiBTY2VuYXJpbyBUZXN0cworLS0gICAg QjEuIFJQUiArIENURQorLS0gICAgQjIuIFJQUiArIEpPSU4KKy0tICAgIEIzLiBSUFIgKyBTZXQg b3BlcmF0aW9ucworLS0gICAgQjQuIFJQUiArIFByZXBhcmVkIHN0YXRlbWVudHMKKy0tICAgIEI1 LiBSUFIgKyBQYXJ0aXRpb25lZCB0YWJsZQorLS0gICAgQjYuIFJQUiArIExBVEVSQUwKKy0tICAg IEI3LiBSUFIgKyBSZWN1cnNpdmUgQ1RFCistLSAgICBCOC4gUlBSICsgSW5jcmVtZW50YWwgc29y dAorLS0gICAgQjkuIFJQUiArIFZvbGF0aWxlIGZ1bmN0aW9uIGluIERFRklORQorLS0gICAgQjEw LiBSUFIgKyBDb3JyZWxhdGVkIHN1YnF1ZXJ5CistLQorCitDUkVBVEUgVEFCTEUgcnByX2ludGVn IChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2ludGVnIFZBTFVFUworICAgICgx LCAxMCksICgyLCAyMCksICgzLCAxNSksICg0LCAyNSksICg1LCA1KSwKKyAgICAoNiwgMzApLCAo NywgMzUpLCAoOCwgMjApLCAoOSwgNDApLCAoMTAsIDQ1KTsKKworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMS4gRnJh bWUgb3B0aW1pemF0aW9uIGJ5cGFzcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBvcHRpbWl6ZV93aW5kb3dfY2xhdXNl cygpIG11c3Qgbm90IGFwcGx5IGZyYW1lIG9wdGltaXphdGlvbiB0byBSUFIgd2luZG93cy4KKy0t IE5vbi1SUFIgY2FzZTogZnJhbWUgY2FuIGJlIG9wdGltaXplZCAoUkFOR0UgLT4gUk9XUyBjb252 ZXJzaW9uLCBldGMuKS4KKy0tIFJQUiBjYXNlOiBmcmFtZSBtdXN0IHN0YXkgYXMgc3BlY2lmaWVk IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5ECistLSBVTkJPVU5ERUQgRk9MTE9XSU5HKS4K KworLS0gTm9uLVJQUiB3aW5kb3cgd2l0aCBkZWZhdWx0IGZyYW1lIC0+IGZyYW1lIG9wdGltaXph dGlvbiBhcHBsaWVkCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 IEZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQpOworCistLSBSUFIgd2lu ZG93IC0+IGZyYW1lIG9wdGltaXphdGlvbiBtdXN0IE5PVCBjaGFuZ2UgdGhlIGZyYW1lCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCitX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTIuIFJ1biBjb25kaXRpb24gcHVzaGRv d24gYnlwYXNzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGZpbmRfd2luZG93X3J1bl9jb25kaXRp b25zKCkgZG9lcyBub3QgcHVzaCBhIG1vbm90b25pYworLS0gZmlsdGVyIGRvd24gYXMgYSBSdW4g Q29uZGl0aW9uIG9uIFJQUiB3aW5kb3dzLiAgUlBSIG1hdGNoIGNvdW50cyBhcmUKKy0tIGRldGVy bWluZWQgYnkgcGF0dGVybiBtYXRjaGluZyByYXRoZXIgdGhhbiBieSBhIG1vbm90b25pYworLS0g YWNjdW11bGF0aW9uIG92ZXIgdGhlIGZyYW1lLCBzbyBhIGZpbHRlciBzdWNoIGFzICJjbnQgPiAw IiBjYW5ub3QgYmUKKy0tIHVzZWQgdG8gc3RvcCBldmFsdWF0aW5nIHRoZSB3aW5kb3cgZnVuY3Rp b24gZWFybHkuCisKKy0tIE5vbi1SUFIgYmFzZWxpbmU6IHRoZSBmaWx0ZXIgaXMgZXhwZWN0ZWQg dG8gYXBwZWFyIGFzIGEgUnVuIENvbmRpdGlvbi4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBy cHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorKSB0IFdIRVJFIGNudCA+ IDA7CisKKy0tIFJQUiBjYXNlOiB0aGUgZmlsdGVyIG11c3QgYXBwZWFyIGFzIGEgRmlsdGVyIGFi b3ZlIHRoZSBXaW5kb3dBZ2csCistLSBub3QgYXMgYSBSdW4gQ29uZGl0aW9uLgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKQorKSB0IFdIRVJFIGNudCA+IDA7CisKKy0tIFZlcmlmeSB0aGF0IHRoZSBSUFIgcXVlcnkg c3RpbGwgcmV0dXJucyBldmVyeSByb3cgd2hvc2UgbWF0Y2ggY291bnQgaXMKKy0tIGdyZWF0ZXIg dGhhbiB6ZXJvLCBjb25maXJtaW5nIHRoZSBmaWx0ZXIgaXMgZXZhbHVhdGVkIGFib3ZlIHRoZQor LS0gV2luZG93QWdnIHJhdGhlciB0aGFuIGN1dHRpbmcgb2ZmIHBhdHRlcm4gbWF0Y2hpbmcgcHJl bWF0dXJlbHkuCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwg PiBQUkVWKHZhbCkpCispIHQgV0hFUkUgY250ID4gMAorT1JERVIgQlkgaWQ7CisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gQTMuIFdpbmRvdyBkZWR1cCBwcmV2ZW50aW9uIChSUFIgdnMgbm9uLVJQUikKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gVmVyaWZ5IHRoYXQgUG9zdGdyZVNRTCBkb2VzIG5vdCBtZXJnZSBhbiBSUFIgd2luZG93IHdp dGggYSBub24tUlBSCistLSB3aW5kb3cgZXZlbiB3aGVuIGJvdGggc2hhcmUgdGhlIHNhbWUgT1JE RVIgQlkgYW5kIGZyYW1lCistLSBzcGVjaWZpY2F0aW9uLiAgUlBSIHBhdHRlcm4gbWF0Y2hpbmcg cHJvZHVjZXMgcmVzdWx0cyB0aGF0IGFyZQorLS0gc2VtYW50aWNhbGx5IGRpZmZlcmVudCBmcm9t IGEgcGxhaW4gZnJhbWUtYmFzZWQgYWdncmVnYXRlLCBzbyB0aGUKKy0tIHR3byB3aW5kb3dzIG11 c3QgcmVtYWluIGFzIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4gIElubGluZSB3aW5kb3cKKy0t IHNwZWNzIGFyZSB1c2VkIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIGJlY2F1c2Ugb25seSBpbmxp bmUgd2luZG93cworLS0gYXJlIHN1YmplY3QgdG8gdGhlIGRlZHVwIHBhdGg7IGRpc3RpbmN0IG5h bWVkIHdpbmRvd3MgYXJlIGFsd2F5cworLS0ga2VwdCBzZXBhcmF0ZSByZWdhcmRsZXNzIG9mIGVx dWl2YWxlbmNlLgorCistLSBOb24tUlBSIGJhc2VsaW5lOiB0d28gaW5saW5lIHdpbmRvd3Mgd2l0 aCBpZGVudGljYWwgc3BlYyBhcmUKKy0tIGRlZHVwZWQgYnkgdGhlIHBsYW5uZXIgaW50byBhIHNp bmdsZSBXaW5kb3dBZ2cgbm9kZSwgY29uZmlybWluZworLS0gdGhhdCB0aGUgZGVkdXAgcGF0aCBp cyBhY3RpdmUgZm9yIG5vbi1SUFIgd2luZG93cy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMgY250LAorICAgIHN1bSh2YWwp ICBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFTIHRvdGFsCitGUk9NIHJwcl9pbnRlZzsKKworLS0gQW4g aW5saW5lIFJQUiB3aW5kb3cgYW5kIGFuIGlubGluZSBub24tUlBSIHdpbmRvdyBzaGFyZSB0aGUg c2FtZQorLS0gT1JERVIgQlkgYW5kIGZyYW1lIGJ1dCBtdXN0IHJlbWFpbiBhcyBkaXN0aW5jdCBX aW5kb3dBZ2cgbm9kZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgq KSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVG SU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIg KE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWc7CisKKy0tIFZlcmlm eSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gaW5kZXBlbmRlbnQgY291bnRzIHBlciByb3cs CistLSBjb25maXJtaW5nIHRoZXkgd2VyZSBub3QgbWVyZ2VkIGludG8gYSBzaW5nbGUgV2luZG93 QWdnLgorU0VMRUNUCisgICAgaWQsIHZhbCwKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBp ZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJF Vih2YWwpKSBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMg bm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWcKK09SREVSIEJZIGlkOworCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE0 LiBXaW5kb3cgZGVkdXAgcHJldmVudGlvbiAoc2FtZSBQQVRURVJOLCBkaWZmZXJlbnQgREVGSU5F KQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBpbmxpbmUtd2luZG93IGRlZHVwIGRvZXMgbm90IG1l cmdlIHR3byBSUFIgd2luZG93cworLS0gdGhhdCBzaGFyZSB0aGUgc2FtZSBQQVRURVJOIHN0cnVj dHVyZSBidXQgaGF2ZSBkaWZmZXJlbnQgREVGSU5FCistLSBjb25kaXRpb25zLiAgRXZlbiB0aG91 Z2ggdGhlIE9SREVSIEJZLCBmcmFtZSwgYW5kIFBBVFRFUk4gY29pbmNpZGUsCistLSB0aGUgZGlm ZmVyaW5nIERFRklORSBleHByZXNzaW9ucyBjbGFzc2lmeSByb3dzIGRpZmZlcmVudGx5IGFuZAor LS0gbXVzdCB0aGVyZWZvcmUgeWllbGQgdHdvIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4gIElu bGluZSBzcGVjcworLS0gYXJlIHVzZWQgaGVyZSBiZWNhdXNlIGRlZHVwIG9ubHkgYXBwbGllcyB0 byBpbmxpbmUgd2luZG93cy4KKworLS0gQmFzZWxpbmU6IHR3byBpbmxpbmUgUlBSIHdpbmRvd3Mg dGhhdCBhcmUgc3RydWN0dXJhbGx5IGlkZW50aWNhbAorLS0gKHNhbWUgT1JERVIgQlksIGZyYW1l LCBQQVRURVJOLCBhbmQgREVGSU5FKSBhcmUgZGVkdXBlZCBieSB0aGUKKy0tIHBhcnNlciBpbnRv IGEgc2luZ2xlIFdpbmRvd0FnZyBub2RlLCBjb25maXJtaW5nIHRoYXQgcGFyc2VyLWxldmVsCist LSBkZWR1cCBpcyBhY3RpdmUgZm9yIFJQUiB3aW5kb3dzIHdob3NlIERFRklORSBtYXRjaGVzLgor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkg aWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBS RVYodmFsKSkgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVSIChPUkRFUiBCWSBpZAorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBB UyB0b3RhbAorRlJPTSBycHJfaW50ZWc7CisKKy0tIFR3byBpbmxpbmUgUlBSIHdpbmRvd3Mgd2l0 aCB0aGUgc2FtZSBQQVRURVJOIGJ1dCBvcHBvc2l0ZSBERUZJTkUKKy0tIGNvbmRpdGlvbnMgbXVz dCByZW1haW4gYXMgc2VwYXJhdGUgV2luZG93QWdnIG5vZGVzLgorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRF Uk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkgQVMgY250X3Vw LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIr KQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPCBQUkVWKHZhbCkpIEFTIGNudF9kb3duCitGUk9N IHJwcl9pbnRlZzsKKworLS0gVmVyaWZ5IHRoYXQgdGhlIHR3byB3aW5kb3dzIHJldHVybiBkaWZm ZXJlbnQgY291bnRzIHBlciByb3csCistLSBjb25maXJtaW5nIHRoZSBERUZJTkUgY29uZGl0aW9u cyB3ZXJlIG5vdCBjb2xsYXBzZWQgYnkgZGVkdXAuCitTRUxFQ1QKKyAgICBpZCwgdmFsLAorICAg IGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAg ICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpIEFTIGNudF91cCwKKyAgICBjb3VudCgq KSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVG SU5FIEIgQVMgdmFsIDwgUFJFVih2YWwpKSBBUyBjbnRfZG93bgorRlJPTSBycHJfaW50ZWcKK09S REVSIEJZIGlkOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVu dGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1 dHMoKSBkb2VzIG5vdCBkcm9wIGFuIFJQUgorLS0gd2luZG93IGZ1bmN0aW9uIGV2ZW4gd2hlbiB0 aGUgb3V0ZXIgcXVlcnkgZG9lcyBub3QgcmVmZXJlbmNlIGl0cworLS0gcmVzdWx0LiAgVGhlIFJQ UiBXaW5kb3dBZ2cgbm9kZSBpcyByZXNwb25zaWJsZSBmb3IgcGVyZm9ybWluZyBwYXR0ZXJuCist LSBtYXRjaGluZywgc28gcmVtb3ZpbmcgdGhlIHdpbmRvdyBmdW5jdGlvbiB3b3VsZCBzaWxlbnRs eSBza2lwIHRoZQorLS0gcGF0dGVybiBtYXRjaCBldmVuIHRob3VnaCB0aGUgc3Vycm91bmRpbmcg cXVlcnkgc3RpbGwgZGVwZW5kcyBvbgorLS0gUlBSIHNlbWFudGljcy4KKworLS0gVGhlIG91dGVy IHF1ZXJ5IGlnbm9yZXMgdGhlIHBlci1yb3cgd2luZG93IHJlc3VsdCwgeWV0IHBhdHRlcm4KKy0t IG1hdGNoaW5nIG11c3Qgc3RpbGwgZXhlY3V0ZS4gIFRoZSBwbGFuIG11c3Qgc3RpbGwgY29udGFp biBhCistLSBXaW5kb3dBZ2cgbm9kZSBiZWxvdyB0aGUgb3V0ZXIgQWdncmVnYXRlOyBpZiB0aGUg d2luZG93IHdlcmUKKy0tIHJlbW92ZWQsIG9ubHkgQWdncmVnYXRlICsgU2VxIFNjYW4gd291bGQg YXBwZWFyLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gKAorICAg IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAo CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2 YWwpKQorKSB0OworCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRF Uk4gKEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisKKy0t IFRoZSBERUZJTkUgZXhwcmVzc2lvbiByZWZlcmVuY2VzIFBSRVYodmFsKSwgc28gdGhlIHdpbmRv dyBtdXN0IGJlCistLSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgb3V0ZXIgcXVlcnkgb25seSBhZ2dy ZWdhdGVzIG92ZXIgdGhlIGNvdW50LgorLS0gVGhlIHBsYW4gbXVzdCBzdGlsbCBjb250YWluIGEg V2luZG93QWdnIHdpdGggdGhlIFBBVFRFUk4vREVGSU5FCistLSBpbnRhY3QuCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQor KSB0OworCitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQo KikgT1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0 OworCistLSBUaGUgREVGSU5FIGV4cHJlc3Npb24gY29udGFpbnMgbm8gbmF2aWdhdGlvbiwgYnV0 IHRoZSBSUFIgd2luZG93CistLSBtdXN0IHN0aWxsIGJlIHByZXNlcnZlZCBiZWNhdXNlIHRoZSBt YXRjaCBzdHJ1Y3R1cmUgaXRzZWxmIGFmZmVjdHMKKy0tIHRoZSBjb3VudC4gIFRoZSBwbGFuIG11 c3QgcmV0YWluIHRoZSBXaW5kb3dBZ2cuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291 bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEFTIGMgRlJP TSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAg ICAgICAgREVGSU5FIEEgQVMgVFJVRSkKKykgdDsKKworU0VMRUNUIGNvdW50KCopLCBzdW0oYykg RlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBB IEFTIFRSVUUpCispIHQ7CisKKy0tIFhYWDogInZhbCIgaXMgbm9uLXJlc2p1bmsgaW4gdGhlIHN1 YnF1ZXJ5IG91dHB1dCBhbmQgaXMgbm90CistLSByZWZlcmVuY2VkIGJ5IHRoZSBvdXRlciBxdWVy eS4gIFdpdGhvdXQgYSBndWFyZCwKKy0tIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cygp IHdvdWxkIHJlcGxhY2UgaXQgd2l0aCBOVUxMIGluCistLSB0aGUgc3VicXVlcnkgb3V0cHV0LCBh bmQgdGhhdCByZXBsYWNlbWVudCBwcm9wYWdhdGVzIHRvIHRoZQorLS0gc2NhbidzIHRhcmdldGxp c3QgLS0gREVGSU5FIHdvdWxkIHRoZW4gZXZhbHVhdGUgd2l0aCBOVUxMCistLSBpbnB1dHMuICBU aGUgdGFyZ2V0bGlzdCBoYXMgbm8gd2F5IHRvIGRpc3Rpbmd1aXNoICJleHBvc2VkIHRvCistLSB0 aGUgb3V0ZXIgcXVlcnkiIGZyb20gInJlZmVyZW5jZWQgb25seSBieSBERUZJTkUiLCBzbyB0aGUK Ky0tIG9wdGltaXphdGlvbiBjYW5ub3QgYmUgYXBwbGllZCBzZWxlY3RpdmVseS4gIFRoZSBjb2x1 bW4gZ3VhcmQKKy0tIGluIGFsbHBhdGhzLmMgYmxvY2tzIHRoaXMgcmVwbGFjZW1lbnQgZm9yIGFu eSBjb2x1bW4gcmVmZXJlbmNlZAorLS0gYnkgYW4gUlBSIERFRklORSBjbGF1c2UsIGtlZXBpbmcg dGhlIFdpbmRvd0FnZyB3aXRoIERFRklORQorLS0gYWN0aXZlIGluIHRoZSBwbGFuLgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCB2YWwsIGNv dW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJF Vih2YWwpKQorKSB0OworCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNUIHZhbCwg Y291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQ UkVWKHZhbCkpCispIHQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTYuIEludmVyc2UgdHJhbnNpdGlvbiBieXBh c3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgUlBSIHdpbmRvd3MgZG8gbm90IHVzZSB0aGUgbW92 aW5nIGFnZ3JlZ2F0ZSAoaW52ZXJzZQorLS0gdHJhbnNpdGlvbikgb3B0aW1pemF0aW9uLiAgTW92 aW5nIGFnZ3JlZ2F0ZXMgbWFpbnRhaW4gc3RhdGUgYnkKKy0tIGFkZGluZyBhcnJpdmluZyByb3dz IGFuZCBzdWJ0cmFjdGluZyBsZWF2aW5nIHJvd3MsIGJ1dCBhbiBSUFIKKy0tIHJlZHVjZWQgZnJh bWUgaXMgbm90IGEgc2xpZGluZyB3aW5kb3c7IHRoZSBzZXQgb2Ygcm93cyBpbmNsdWRlZCBpbgor LS0gdGhlIGZyYW1lIGlzIGRldGVybWluZWQgYnkgcGF0dGVybiBtYXRjaGluZyBhbmQgY2Fubm90 IGJlIGRlcml2ZWQKKy0tIGluY3JlbWVudGFsbHkgZnJvbSB0aGUgcHJldmlvdXMgZnJhbWUuCisK Ky0tIHN1bSgpIHdvdWxkIG5vcm1hbGx5IGJlIGVsaWdpYmxlIGZvciB0aGUgbW92aW5nIGFnZ3Jl Z2F0ZQorLS0gb3B0aW1pemF0aW9uOyB1bmRlciBSUFIgaXQgbXVzdCBiZSBjb21wdXRlZCBmcm9t IHNjcmF0Y2ggb3ZlciBlYWNoCistLSByZWR1Y2VkIGZyYW1lLCBhbmQgdGhlIHJldHVybmVkIHZh bHVlcyBtdXN0IG1hdGNoIHRoZSBwYXR0ZXJuLgorLS0gTm90ZTogaW52ZXJzZS10cmFuc2l0aW9u IHNlbGVjdGlvbiBpcyBub3QgZXhwb3NlZCBpbiB0aGUgcGxhbiwgc28KKy0tIHRoZXJlIGlzIG5v IGRpcmVjdCBFWFBMQUlOIGFzc2VydGlvbiBmb3IgaXQuICBUaGUgc3RydWN0dXJhbAorLS0gZ3Vh cmFudGVlIGlzIHRoYXQgUlBSIHVzZXMgaXRzIG93biBuYXZpZ2F0aW9uIG1hcmssIGRpc3RpbmN0 IGZyb20KKy0tIHRoZSBtb3ZpbmctYWdncmVnYXRlIG1hcmssIHNvIHRoZSBpbnZlcnNlLXRyYW5z aXRpb24gcGF0aCBpcworLS0gbmV2ZXIgcmVhY2hlZCBvbiB0aGUgUlBSIHNpZGUuICBUaGlzIHRl c3QgdmVyaWZpZXMgdGhhdAorLS0gc2VwYXJhdGlvbiBpbmRpcmVjdGx5OiBpZiBpbnZlcnNlIHRy YW5zaXRpb24gbGVha2VkIGludG8gdGhlIFJQUgorLS0gcGF0aCwgc3RhdGUgd291bGQgbWl4IGFj cm9zcyBtYXRjaCBib3VuZGFyaWVzIGFuZCBwYXR0ZXJuX3N1bQorLS0gd291bGQgZGl2ZXJnZSBm cm9tIHRoZSBleHBlY3RlZCBvdXRwdXQsIGZhaWxpbmcgdGhlIHJlZ3Jlc3Npb24uCitTRUxFQ1Qg aWQsIHZhbCwKKyAgICBzdW0odmFsKSBPVkVSIHcgQVMgcGF0dGVybl9zdW0KK0ZST00gcnByX2lu dGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkOworCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE3LiBD b3N0IGVzdGltYXRpb24gUlBSIGF3YXJlbmVzcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBjb3N0X3dpbmRvd2FnZygp IG11c3QgYWNjb3VudCBmb3IgREVGSU5FIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBjb3N0LgorLS0g VmVyaWZ5IFJQUiBXaW5kb3dBZ2cgY29zdCA+IG5vbi1SUFIgV2luZG93QWdnIGNvc3QuCisKK0NS RUFURSBGVU5DVElPTiBnZXRfd2luZG93YWdnX2Nvc3QocXVlcnkgdGV4dCkgUkVUVVJOUyBudW1l cmljIEFTICQkCitERUNMQVJFCisgICAgcGxhbiBqc29uOworICAgIGNvc3QgbnVtZXJpYzsKK0JF R0lOCisgICAgRVhFQ1VURSAnRVhQTEFJTiAoRk9STUFUIEpTT04pICcgfHwgcXVlcnkgSU5UTyBw bGFuOworICAgIGNvc3QgOj0gKHBsYW4tPjAtPidQbGFuJy0+PidUb3RhbCBDb3N0Jyk6Om51bWVy aWM7CisgICAgUkVUVVJOIGNvc3Q7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxF Q1QgZ2V0X3dpbmRvd2FnZ19jb3N0KAorICAgICdTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00g cnByX2ludGVnCisgICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgICAgIFBBVFRF Uk4gKEEgQisgQyspIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSwgQyBBUyB2YWwgPCBQUkVW KHZhbCkpJykKKyAgICA+CisgICAgZ2V0X3dpbmRvd2FnZ19jb3N0KAorICAgICdTRUxFQ1QgY291 bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCisgICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpJykKKyAg ICBBUyBycHJfY29zdF9pc19oaWdoZXI7CisKK0RST1AgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19j b3N0KHRleHQpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIEE4LiBTdWJxdWVyeSBmbGF0dGVuaW5nIHByZXZlbnRp b24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYSBzdWJxdWVyeSBjb250YWluaW5nIGFuIFJQUiB3 aW5kb3cgaXMgbm90IGZsYXR0ZW5lZAorLS0gaW50byB0aGUgb3V0ZXIgcXVlcnkuICBpc19zaW1w bGVfc3VicXVlcnkoKSBhbHJlYWR5IGJsb2NrcyBwdWxsdXAKKy0tIGZvciBzdWJxdWVyaWVzIHdp dGggd2luZG93IGZ1bmN0aW9ucyBpbiBnZW5lcmFsOyB0aGlzIHRlc3QgY29uZmlybXMKKy0tIHRo ZSBydWxlIGNvbnRpbnVlcyB0byBhcHBseSB0byBSUFIgd2luZG93cywgc28gRVhQTEFJTiBtdXN0 IHN0aWxsCistLSBzaG93IGEgU3VicXVlcnkgU2NhbiBhYm92ZSB0aGUgUlBSIFdpbmRvd0FnZy4K KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVG SU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSBzdWIKK1dIRVJFIGNudCA+IDA7CisKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gQTkuIERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBW ZXJpZnkgdGhhdCBERUZJTkUgZXhwcmVzc2lvbnMgYXJlIG5vdCBwcm9wYWdhdGVkIGludG8gdGhl CistLSB0YXJnZXRsaXN0IG9mIGFueSB1cHBlciBXaW5kb3dBZ2cgbm9kZS4gIE9ubHkgdGhlIGNv bHVtbiByZWZlcmVuY2VzCistLSBjb25zdW1lZCBieSBERUZJTkUgc2hvdWxkIGJlIHBhc3NlZCB1 cDsgdGhlIGZ1bGwgREVGSU5FIGV4cHJlc3Npb24KKy0tIGlzIG1lYW5pbmdmdWwgb25seSBpbnNp ZGUgdGhlIFJQUiBXaW5kb3dBZ2cgdGhhdCBvd25zIGl0LgorLS0gRVhQTEFJTiBWRVJCT1NFIGlz IHRoZXJlZm9yZSBleHBlY3RlZCB0byBzaG93IGEgY2xlYW4gdGFyZ2V0bGlzdCBvbgorLS0gdGhl IG91dGVyIFdpbmRvd0FnZywgd2l0aCBubyBERUZJTkUtZGVyaXZlZCBleHByZXNzaW9uIGxlYWtp bmcgaW4uCistLSBOb3RlOiBjb2x1bW5zIHJlZmVyZW5jZWQgYnkgREVGSU5FIChlLmcuLCAidmFs IikgbWF5IGFwcGVhciBhcworLS0gcmVzanVuayBlbnRyaWVzIGluIHVwcGVyIFdpbmRvd0FnZyB0 YXJnZXRsaXN0cyAtLSB0aGF0IGlzIGEKKy0tIGhhcm1sZXNzIGJ5cHJvZHVjdCBvZiB0aGUgY29s dW1uIGd1YXJkJ3MgYnJvYWQgc2NvcGUgYW5kIGRvZXMgbm90CistLSBhZmZlY3QgY2xpZW50IG91 dHB1dC4gIFRoZSBjbGFpbSBoZXJlIGlzIGxpbWl0ZWQgdG8gdGhlIGZ1bGwKKy0tIERFRklORSBi b29sZWFuIGV4cHJlc3Npb24uCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVD VAorICAgIGNvdW50KCopIE9WRVIgd19ycHIgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVS IHdfbm9ybWFsIEFTIG5vcm1hbF9jbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3Jw ciBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSksCisgICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyk7 CisKKy0tIEV4ZWN1dGluZyB0aGUgc2FtZSBxdWVyeSBzaG93cyB0aGUgY2xpZW50IHJlc3VsdCBp cyBsaW1pdGVkIHRvCistLSB0aGUgdHdvIHByb2plY3RlZCBjb2x1bW5zOyAiaWQiIGFuZCAidmFs IiB0aGF0IGFwcGVhcmVkIGluIHRoZQorLS0gdXBwZXIgV2luZG93QWdnIE91dHB1dCBsaW5lIGFy ZSByZXNqdW5rLW9ubHkgYW5kIGRvIG5vdCByZWFjaAorLS0gdGhlIGNsaWVudC4KK1NFTEVDVAor ICAgIGNvdW50KCopIE9WRVIgd19ycHIgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIHdf bm9ybWFsIEFTIG5vcm1hbF9jbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3JwciBB UyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBC IEFTIHZhbCA+IFBSRVYodmFsKSksCisgICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKK09S REVSIEJZIHJwcl9jbnQgREVTQywgbm9ybWFsX2NudCBERVNDOworCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEExMC4g UlBSICsgTElNSVQKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gTElNSVQgbXVzdCBub3QgaW50ZXJmZXJlIHdpdGggUlBS IHBhdHRlcm4gbWF0Y2hpbmcuICBUaGUgTGltaXQKKy0tIG5vZGUgbXVzdCBzaXQgYWJvdmUgdGhl IFdpbmRvd0FnZyBzbyB0aGF0IHBhdHRlcm4gbWF0Y2hpbmcgcnVucworLS0gb24gdGhlIGZ1bGwg cGFydGl0aW9uIGZpcnN0OyB0aGUgcmVzdWx0IGlzIHRoZW4gYSBwcmVmaXggb2YgdGhlCistLSB1 bi1MSU1JVGVkIG91dHB1dC4gIFB1c2hpbmcgTGltaXQgYmVsb3cgdGhlIFdpbmRvd0FnZyB3b3Vs ZAorLS0gdHJ1bmNhdGUgaW5wdXQgYmVmb3JlIG1hdGNoaW5nIGFuZCBzaWxlbnRseSBkcm9wIHZh bGlkIG1hdGNoZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorTElN SVQgNTsKKworLS0gUmVmZXJlbmNlOiB1bi1MSU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNoIHRo ZSBMSU1JVCA1IHJlc3VsdCBpcworLS0gY29tcGFyZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JE RVIgQlkgaWQ7CisKKy0tIExJTUlUIDUgY2FzZTsgdGhlIGZpcnN0IGZpdmUgcm93cyBtdXN0IG1h dGNoIHRoZSByZWZlcmVuY2UgYWJvdmUuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorTElNSVQgNTsKKwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBCMS4gUlBSICsgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3 aW5kb3cgZW1iZWRkZWQgaW5zaWRlIGEgQ1RFIGJlaGF2ZXMgdGhlIHNhbWUgYXMKKy0tIGEgZGly ZWN0IFJQUiBxdWVyeToKKy0tICAgKDEpIEEgc2luZ2xlLXJlZmVyZW5jZSBDVEUgaXMgaW5saW5l ZCBieSB0aGUgcGxhbm5lciBhbmQgeWllbGRzCistLSAgICAgICBwZXItcm93IHJlc3VsdHMgaWRl bnRpY2FsIHRvIHRoZSBkaXJlY3QgUlBSIHF1ZXJ5LgorLS0gICAoMikgQSBtdWx0aS1yZWZlcmVu Y2UgQ1RFIGlzIG1hdGVyaWFsaXplZCAoQ1RFIFNjYW4gYXBwZWFycyBpbgorLS0gICAgICAgdGhl IHBsYW4pIHNvIHBhdHRlcm4gbWF0Y2hpbmcgcnVucyBvbmNlLCBhbmQgZXZlcnkgcmVmZXJlbmNl CistLSAgICAgICBvYnNlcnZlcyB0aGUgc2FtZSBtYXRjaCByZXN1bHRzLgorCistLSBCYXNlbGlu ZTogZGlyZWN0IFJQUiBwcm9kdWNlcyB0aGUgcGVyLXJvdyByZWZlcmVuY2Ugb3V0cHV0LgorU0VM RUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZh bCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkOworCistLSBTaW5nbGUtcmVmZXJlbmNlIENURTog cGxhbiBoYXMgbm8gIkNURSBycHJfcmVzdWx0IiBzY29wZSwgc2hvd2luZworLS0gdGhlIENURSB3 YXMgaW5saW5lZCBpbnRvIHRoZSBzdXJyb3VuZGluZyBxdWVyeS4KK0VYUExBSU4gKENPU1RTIE9G RikKK1dJVEggcnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4g UFJFVih2YWwpKQorKQorU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHJwcl9yZXN1bHQgT1JERVIg QlkgaWQ7CisKKy0tIFJlc3VsdCBtdXN0IG1hdGNoIHRoZSBiYXNlbGluZSByb3ctZm9yLXJvdy4K K1dJVEggcnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJF Vih2YWwpKQorKQorU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHJwcl9yZXN1bHQgT1JERVIgQlkg aWQ7CisKKy0tIE11bHRpLXJlZmVyZW5jZSBDVEUgKHNlbGYtam9pbik6IHBsYW4gaGFzIGEgIkNU RSBycHJfcmVzdWx0IiBzY29wZQorLS0gYW5kIENURSBTY2FuIG5vZGVzIG9uIGJvdGggc2lkZXMs IHNob3dpbmcgdGhlIENURSB3YXMgbWF0ZXJpYWxpemVkCistLSBhbmQgcGF0dGVybiBtYXRjaGlu ZyByYW4gb25seSBvbmNlLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBycHJfcmVzdWx0IEFT ICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00g cnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJO IChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispCitTRUxFQ1Qg cjEuaWQsIHIxLmNudAorRlJPTSBycHJfcmVzdWx0IHIxCitKT0lOIHJwcl9yZXN1bHQgcjIgT04g cjEuaWQgPSByMi5pZCBBTkQgcjEuY250ID0gcjIuY250CitXSEVSRSByMS5jbnQgPiAwCitPUkRF UiBCWSByMS5pZDsKKworLS0gUmVzdWx0OiBib3RoIHJlZmVyZW5jZXMgc2VlIHRoZSBzYW1lIG1h dGNoIGNvdW50cywgc28gdGhlIHNlbGYtam9pbgorLS0gcHJlc2VydmVzIGFsbCBtYXRjaGVkIHJv d3MgZnJvbSB0aGUgYmFzZWxpbmUuCitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg IERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykKK1NFTEVDVCByMS5pZCwgcjEuY250CitG Uk9NIHJwcl9yZXN1bHQgcjEKK0pPSU4gcnByX3Jlc3VsdCByMiBPTiByMS5pZCA9IHIyLmlkIEFO RCByMS5jbnQgPSByMi5jbnQKK1dIRVJFIHIxLmNudCA+IDAKK09SREVSIEJZIHIxLmlkOworCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEIyLiBSUFIgKyBKT0lOCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiBz dWJxdWVyeSBjYW4gYmUgam9pbmVkIHdpdGggYW5vdGhlciByZWxhdGlvbi4KKy0tIFR3byBhc3Bl Y3RzIGFyZSBjaGVja2VkIGFnYWluc3QgYSBub24tUlBSIGJhc2VsaW5lOgorLS0gICAoMSkgRmxh dHRlbmluZzogYSBub24tUlBSIHN1YnF1ZXJ5IGlzIHB1bGxlZCB1cCBieSB0aGUgcGxhbm5lcgor LS0gICAgICAgKG5vIFN1YnF1ZXJ5IFNjYW4gaW4gdGhlIHBsYW4pOyBhbiBSUFIgc3VicXVlcnkg aXMga2VwdAorLS0gICAgICAgdW4tZmxhdHRlbmVkIChTdWJxdWVyeSBTY2FuIGFib3ZlIFdpbmRv d0FnZykuCistLSAgICgyKSBKb2luIGNvcnJlY3RuZXNzOiB0aGUgam9pbiBhbGlnbnMgZWFjaCBS UFIgbWF0Y2ggcm93IHdpdGgKKy0tICAgICAgIHRoZSBkaW1lbnNpb24tdGFibGUgcm93IG9uIHRo ZSBzYW1lIGtleS4KKworQ1JFQVRFIFRBQkxFIHJwcl9pbnRlZzIgKGlkIElOVCwgbGFiZWwgVEVY VCk7CitJTlNFUlQgSU5UTyBycHJfaW50ZWcyIFZBTFVFUworICAgICgxLCAnYScpLCAoMiwgJ2In KSwgKDMsICdjJyksICg0LCAnZCcpLCAoNSwgJ2UnKSwKKyAgICAoNiwgJ2YnKSwgKDcsICdnJyks ICg4LCAnaCcpLCAoOSwgJ2knKSwgKDEwLCAnaicpOworCistLSBCYXNlbGluZTogYSBub24tUlBS IHN1YnF1ZXJ5IGlzIGZsYXR0ZW5lZCBieSB0aGUgcGxhbm5lci4gIE5vCistLSBTdWJxdWVyeSBT Y2FuIG5vZGUgYXBwZWFyczsgdGhlIGlubmVyIFNFTEVDVCBpcyBtZXJnZWQgaW50byB0aGUKKy0t IG91dGVyIGpvaW4uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci52YWwsIGou bGFiZWwKK0ZST00gKFNFTEVDVCBpZCwgdmFsIEZST00gcnByX2ludGVnKSByCitKT0lOIHJwcl9p bnRlZzIgaiBPTiByLmlkID0gai5pZAorT1JERVIgQlkgci5pZDsKKworLS0gUlBSIHN1YnF1ZXJ5 IEpPSU46IHRoZSBTdWJxdWVyeSBTY2FuIGlzIHByZXNlcnZlZCBhYm92ZSB0aGUKKy0tIFdpbmRv d0FnZywgY29uZmlybWluZyB0aGUgUlBSIHN1YnF1ZXJ5IGlzIG5vdCBmbGF0dGVuZWQuCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwKK0ZST00gKAorICAg IFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisg ICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAg ICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4gcnByX2ludGVnMiBq IE9OIHIuaWQgPSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIuaWQ7CisKKy0tIFJl c3VsdDogbWF0Y2hlZCBSUFIgcm93cyBhbGlnbiB3aXRoIGRpbWVuc2lvbiByb3dzIG9uIGlkLCBz aG93aW5nCistLSB0aGUgam9pbiBjb3JyZWN0bHkgcGFpcnMgcGVyLXJvdyBtYXRjaCBjb3VudHMg d2l0aCB0aGVpciBsYWJlbHMuCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwKK0ZST00gKAor ICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVn CisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQor ICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4gcnByX2ludGVn MiBqIE9OIHIuaWQgPSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIuaWQ7CisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gQjMuIFJQUiArIFNldCBvcGVyYXRpb25zCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0 IFJQUiByZXN1bHRzIGNvbWJpbmUgY29ycmVjdGx5IHdpdGggbm9uLVJQUiByZXN1bHRzCistLSB1 bmRlciBhIFVOSU9OIEFMTC4gIFRoZSBwbGFuIG11c3Qgc2hvdyBhbiBBcHBlbmQgbm9kZSB3aXRo IHR3bworLS0gaW5kZXBlbmRlbnQgY2hpbGQgcGxhbnM6IHRoZSBSUFIgYnJhbmNoIHdpdGggUGF0 dGVybi9ERUZJTkUgYWN0aXZlLAorLS0gYW5kIHRoZSBub24tUlBSIGJyYW5jaCB3aXRoIGEgcGxh aW4gV2luZG93QWdnLiAgRWFjaCBjaGlsZCBzY2FucworLS0gdGhlIGJhc2UgcmVsYXRpb24gb24g aXRzIG93biBhbmQgY29udHJpYnV0ZXMgaXRzIHJvd3MgdG8gdGhlCistLSB1bmlvbmVkIG91dHB1 dC4KKworLS0gUGxhbjogQXBwZW5kIHdpdGggdHdvIGluZGVwZW5kZW50IGNoaWxkcmVuLiAgVGhl IFJQUiBicmFuY2ggaGFzIGEKKy0tIFdpbmRvd0FnZyBjYXJyeWluZyBQYXR0ZXJuL05hdiBNYXJr IExvb2tiYWNrOyB0aGUgbm9uLVJQUiBicmFuY2gKKy0tIGhhcyBhIHBsYWluIFdpbmRvd0FnZyB3 aXRoIG5vIHBhdHRlcm4gbWV0YWRhdGEuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgaWQs IGNudCwgJ3JwcicgQVMgc291cmNlIEZST00gKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQ UkVWKHZhbCkpCispIHQgV0hFUkUgY250ID4gMAorVU5JT04gQUxMCitTRUxFQ1QgaWQsIGNvdW50 KCopIE9WRVIgKE9SREVSIEJZIGlkKSBBUyBjbnQsICdub3JtYWwnIEFTIHNvdXJjZQorRlJPTSBy cHJfaW50ZWcKK09SREVSIEJZIHNvdXJjZSwgaWQ7CisKKy0tIFJlc3VsdDogcm93cyBmcm9tIGJv dGggYnJhbmNoZXMgYXJlIHByZXNlbnQgaW4gdGhlIHVuaW9uZWQgb3V0cHV0LgorLS0gVGhlIFJQ UiBicmFuY2ggZW1pdHMgb25seSBtYXRjaGVkIHJvd3MgKGNudCA+IDApLCB3aGlsZSB0aGUKKy0t IG5vbi1SUFIgYnJhbmNoIGVtaXRzIGFsbCByb3dzIHdpdGggaXRzIG93biBjb3VudCB2YWx1ZXMu CitTRUxFQ1QgaWQsIGNudCwgJ3JwcicgQVMgc291cmNlIEZST00gKAorICAgIFNFTEVDVCBpZCwg Y291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQgV0hFUkUgY250ID4gMAorVU5JT04gQUxMCitTRUxF Q1QgaWQsIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkKSBBUyBjbnQsICdub3JtYWwnIEFTIHNv dXJjZQorRlJPTSBycHJfaW50ZWcKK09SREVSIEJZIHNvdXJjZSwgaWQ7CisKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g QjQuIFJQUiArIFByZXBhcmVkIHN0YXRlbWVudHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgUlBS IHF1ZXJpZXMgc3Vydml2ZSB0aGUgcHJlcGFyZWQtc3RhdGVtZW50IHBhdGggYnkKKy0tIGV4ZXJj aXNpbmcgYm90aCBwbGFuY2FjaGUgbW9kZXMgd2l0aCBhIHBhcmFtZXRlciB0aGF0IGZlZWRzIGlu dG8KKy0tIFJQUidzIG5hdmlnYXRpb24gb2Zmc2V0IChQUkVWKHZhbCwgJDEpKS4gIFRoZSBwYXJh bWV0ZXIgc3VyZmFjZXMKKy0tIHRoZSBSUFItc3BlY2lmaWMgcGxhbmNhY2hlIGRpZmZlcmVuY2U6 CistLSAgIC0gY3VzdG9tIHBsYW46ICJOYXYgTWFyayBMb29rYmFjayIgaXMgcmVzb2x2ZWQgdG8g dGhlIGxpdGVyYWwKKy0tICAgICBwYXJhbWV0ZXIgdmFsdWUgYXQgcGxhbiB0aW1lIChlLmcuLCAi TmF2IE1hcmsgTG9va2JhY2s6IDEiKS4KKy0tICAgLSBnZW5lcmljIHBsYW46ICJOYXYgTWFyayBM b29rYmFjayIgaXMgZGVmZXJyZWQgdG8gZXhlY3V0aW9uIGFuZAorLS0gICAgIGFwcGVhcnMgYXMg Ik5hdiBNYXJrIExvb2tiYWNrOiBydW50aW1lIiBpbiB0aGUgcGxhbi4KKy0tIFRoZSByZXN1bHQg bXVzdCBiZSBpZGVudGljYWwgdW5kZXIgYm90aCBtb2Rlcy4KKworLS0gUmVnaXN0ZXIgdGhlIHBy ZXBhcmVkIHN0YXRlbWVudDsgREVGSU5FIHVzZXMgUFJFVih2YWwsICQxKSBzbyB0aGUKKy0tIHBh cmFtZXRlciByZWFjaGVzIFJQUidzIG5hdmlnYXRpb24gbWFjaGluZXJ5LgorUFJFUEFSRSBycHJf cHJldihpbnQpIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJP TSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwsICQxKSkKK09SREVSIEJZIGlkOworCistLSBD dXN0b20gcGxhbjogTmF2IE1hcmsgTG9va2JhY2sgcmVzb2x2ZWQgdG8gdGhlIGxpdGVyYWwgMS4K K1NFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9jdXN0b21fcGxhbjsKK0VYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKK0VYRUNVVEUgcnByX3ByZXYoMSk7CisKKy0tIEdl bmVyaWMgcGxhbjogTmF2IE1hcmsgTG9va2JhY2sgZGVmZXJyZWQgdG8gZXhlY3V0aW9uLCBzaG93 biBhcworLS0gInJ1bnRpbWUiIGluIHRoZSBwbGFuLiAgUmVzdWx0IG11c3QgbWF0Y2ggdGhlIGN1 c3RvbS1wbGFuIHJlc3VsdAorLS0gZXhhY3RseS4KK1NFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3Jj ZV9nZW5lcmljX3BsYW47CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7 CitFWEVDVVRFIHJwcl9wcmV2KDEpOworCitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9D QVRFIHJwcl9wcmV2OworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEI1LiBSUFIgKyBQYXJ0aXRpb25lZCB0YWJsZQor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3JyZWN0 bHkgd2hlbiB0aGUgc291cmNlCistLSByZWxhdGlvbiBpcyBwYXJ0aXRpb25lZC4gIFRoZSBwbGFu bmVyIG11c3QgZ2F0aGVyIHJvd3MgZnJvbSBldmVyeQorLS0gcGFydGl0aW9uIGludG8gYSBzaW5n bGUgb3JkZXJlZCBzdHJlYW0gYmVmb3JlIFJQUiBjYW4gc2VlIHRoZW0sCistLSBiZWNhdXNlIHBh dHRlcm4gbWF0Y2hpbmcgaXMgc2VxdWVudGlhbCBhY3Jvc3MgdGhlIGVudGlyZQorLS0gcGFydGl0 aW9uLWJ5IGdyb3VwIGFuZCBjYW5ub3QgYmUgcGVyZm9ybWVkIGluZGVwZW5kZW50bHkgb24gZWFj aAorLS0gdGFibGUgcGFydGl0aW9uLgorCitDUkVBVEUgVEFCTEUgcnByX3BhcnQgKGlkIElOVCwg dmFsIElOVCkgUEFSVElUSU9OIEJZIFJBTkdFIChpZCk7CitDUkVBVEUgVEFCTEUgcnByX3BhcnRf MSBQQVJUSVRJT04gT0YgcnByX3BhcnQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoNik7CitDUkVB VEUgVEFCTEUgcnByX3BhcnRfMiBQQVJUSVRJT04gT0YgcnByX3BhcnQgRk9SIFZBTFVFUyBGUk9N ICg2KSBUTyAoMTEpOworSU5TRVJUIElOVE8gcnByX3BhcnQgU0VMRUNUIGlkLCB2YWwgRlJPTSBy cHJfaW50ZWc7CisKKy0tIFBsYW46IHBhcnRpdGlvbiBzY2FucyBhcmUgY29tYmluZWQgd2l0aCBB cHBlbmQgKG9yIE1lcmdlIEFwcGVuZCksCistLSBzb3J0ZWQgaW50byBhIHNpbmdsZSBvcmRlcmVk IHN0cmVhbSwgYW5kIGZlZCBpbnRvIG9uZSBXaW5kb3dBZ2cKKy0tIHRoYXQgcGVyZm9ybXMgUlBS IHBhdHRlcm4gbWF0Y2hpbmcgYWNyb3NzIHRoZSBjb21iaW5lZCBzdHJlYW0uCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBy cHJfcGFydAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBE RUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKworLS0gQmFzZWxpbmU6 IHRoZSBzYW1lIHF1ZXJ5IGFnYWluc3QgdGhlIG5vbi1wYXJ0aXRpb25lZCBycHJfaW50ZWcKKy0t IHByb2R1Y2VzIHRoZSBwZXItcm93IHJlZmVyZW5jZSBvdXRwdXQuCitTRUxFQ1QgaWQsIHZhbCwg Y291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwp KQorT1JERVIgQlkgaWQ7CisKKy0tIFJlc3VsdCBhZ2FpbnN0IHRoZSBwYXJ0aXRpb25lZCB0YWJs ZSBtdXN0IG1hdGNoIHRoZSBiYXNlbGluZQorLS0gcm93LWZvci1yb3cuCitTRUxFQ1QgaWQsIHZh bCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGFydAorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZh bCkpCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfcGFydDsKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBC Ni4gUlBSICsgTEFURVJBTAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgaW5zaWRlIGEgTEFURVJBTCBzdWJxdWVy eS4gIFF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlcyBmcm9tCistLSB0aGUgb3V0ZXIgcXVlcnkg YXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGluIERFRklORSwgc28gdGhpcyB0ZXN0cworLS0gdGhlIGJh c2ljIGNhc2Ugd2hlcmUgTEFURVJBTCBwcm92aWRlcyB0aGUgY29ycmVsYXRpb24gZmlsdGVyCist LSAoV0hFUkUgaWQgPD0gby5pZCkgYW5kIERFRklORSB1c2VzIG9ubHkgbG9jYWwgY29sdW1ucy4g IFRoZSBwbGFuCistLSBtdXN0IHNob3cgYSBOZXN0ZWQgTG9vcCBkcml2aW5nIHRoZSBvdXRlciBy ZWxhdGlvbiBpbnRvIHRoZSBpbm5lcgorLS0gc3VicXVlcnkgc2Nhbiwgd2l0aCB0aGUgUlBSIFdp bmRvd0FnZyByZS1leGVjdXRlZCBmb3IgZWFjaCBvdXRlcgorLS0gcm93IGFuZCB0aGUgY29ycmVs YXRpb24gc3VyZmFjaW5nIGFzIGEgc2Nhbi1sZXZlbCBGaWx0ZXIgb24KKy0tICJpZCA8PSBvLmlk Ii4KKworLS0gUGxhbjogTmVzdGVkIExvb3Agd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBpbiB0aGUg aW5uZXIgbGVnLCBkcml2ZW4KKy0tIGJ5IHRoZSBmaWx0ZXJlZCBvdXRlciByb3dzIChvLmlkIElO ICg1LCAxMCkpLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIG8uaWQgQVMgb3V0ZXJfaWQs IHIuaWQsIHIuY250CitGUk9NIHJwcl9pbnRlZyBvLAorTEFURVJBTCAoCisgICAgU0VMRUNUIGlk LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSEVSRSBp ZCA8PSBvLmlkCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJO IChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK1dIRVJF IHIuY250ID4gMCBBTkQgby5pZCBJTiAoNSwgMTApCitPUkRFUiBCWSBvLmlkLCByLmlkOworCist LSBSZXN1bHQ6IGZvciBlYWNoIG9mIHRoZSB0d28gb3V0ZXIgaWRzICg1IGFuZCAxMCksIHRoZSBM QVRFUkFMCistLSBzdWJxdWVyeSBwcm9kdWNlcyBSUFIgbWF0Y2ggY291bnRzIG92ZXIgdGhlIHJl c3RyaWN0ZWQgaW5wdXQuCitTRUxFQ1Qgby5pZCBBUyBvdXRlcl9pZCwgci5pZCwgci5jbnQKK0ZS T00gcnByX2ludGVnIG8sCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdIRVJFIGlkIDw9IG8uaWQKKyAgICBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg IERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgcgorV0hFUkUgci5jbnQgPiAwIEFORCBv LmlkIElOICg1LCAxMCkKK09SREVSIEJZIG8uaWQsIHIuaWQ7CisKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjcuIFJQ UiArIFJlY3Vyc2l2ZSBDVEUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYW4gUlBSIHdpbmRvdyBj YW4gYXBwZWFyIGluc2lkZSB0aGUgbm9uLXJlY3Vyc2l2ZQorLS0gKGJhc2UpIGxlZyBvZiBhIHJl Y3Vyc2l2ZSBDVEUuICBUaGUgcGxhbiBtdXN0IHNob3cgdGhlIFJQUgorLS0gV2luZG93QWdnIHNp dHRpbmcgdW5kZXIgdGhlIFJlY3Vyc2l2ZSBVbmlvbiBhcyB0aGUgYmFzZS1sZWcKKy0tIGNoaWxk LCB3aXRoIHRoZSBXb3JrVGFibGUgU2NhbiBmZWVkaW5nIHRoZSByZWN1cnNpdmUgbGVnIGFib3Zl CistLSBpdC4gIFRoaXMgY29uZmlybXMgdGhhdCBSUFIgb3V0cHV0IGNhbiBzZWVkIGEgcmVjdXJz aXZlIENURQorLS0gKHdpbmRvdyBmdW5jdGlvbnMgY2Fubm90IGFwcGVhciBpbiB0aGUgcmVjdXJz aXZlIGxlZyBpdHNlbGYsIGEKKy0tIFBvc3RncmVTUUwgcmVzdHJpY3Rpb24sIHNvIHRoaXMgaXMg dGhlIG5hdHVyYWwgcGxhY2UgdG8gZXhlcmNpc2UKKy0tICJSUFIgdW5kZXIgUmVjdXJzaXZlIFVu aW9uIikuCistLQorLS0gWFhYOiBXaGV0aGVyIHRoaXMgY2FzZSBmYWxscyB1bmRlciB0aGUgSVNP L0lFQyA5MDc1LTIgNC4xOC41IC8KKy0tIDYuMTcuNSBwcm9oaWJpdGlvbiBpcyBub3Qgc29tZXRo aW5nIEkgY2FuIGp1ZGdlLiAgSWYgdGhpcyBjYXNlCistLSBpcyBub3QgcHJvaGliaXRlZCwgdGhl IG9wZW4gcXVlc3Rpb24gaXMgd2hldGhlciBhIHF1ZXJ5IHRoYXQKKy0tIGRvZXMgdHJpZ2dlciB0 aGUgcHJvaGliaXRpb24gY2FuIGJlIGNvbnN0cnVjdGVkIGF0IGFsbC4KKy0tIFdoZXRoZXIgdG8g cHJvaGliaXQgdGhpcyBjYXNlIGlzIGxlZnQgdG8gdGhlIGNvbW11bml0eS4KKworLS0gUGxhbjog UmVjdXJzaXZlIFVuaW9uIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgb24gdGhlIGJhc2UgbGVnIGFu ZAorLS0gdGhlIFdvcmtUYWJsZSBTY2FuIG9uIHRoZSByZWN1cnNpdmUgbGVnLgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorV0lUSCBSRUNVUlNJVkUgc2VxIEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwg Y291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCkpCisgICAgVU5JT04gQUxMCisgICAgU0VMRUNUIGlkICsgMTAw LCB2YWwsIGNudCBGUk9NIHNlcSBXSEVSRSBpZCA8IDMKKykKK1NFTEVDVCBpZCwgdmFsLCBjbnQg RlJPTSBzZXEgT1JERVIgQlkgaWQ7CisKKy0tIFJlc3VsdDogdGhlIGJhc2UgbGVnIGNvbnRyaWJ1 dGVzIHRoZSBSUFIgbWF0Y2ggY291bnRzOyB0aGUKKy0tIHJlY3Vyc2l2ZSBsZWcgcHJvcGFnYXRl cyB0aG9zZSBjb3VudHMgd2l0aCBzaGlmdGVkIGlkcy4KK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAo CisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJw cl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAo QSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorICAgIFVOSU9OIEFM TAorICAgIFNFTEVDVCBpZCArIDEwMCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCisp CitTRUxFQ1QgaWQsIHZhbCwgY250IEZST00gc2VxIE9SREVSIEJZIGlkOworCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IFJQUiBw YXR0ZXJuIG1hdGNoaW5nIHdvcmtzIGNvcnJlY3RseSB3aGVuIHRoZSBpbnB1dAorLS0gdG8gV2lu ZG93QWdnIGFycml2ZXMgdmlhIGFuIGluY3JlbWVudGFsIHNvcnQuICBUaGUgaW5kZXggb24gKGlk KQorLS0gcHJvdmlkZXMgcHJlc29ydGVkIGlucHV0IGZvciB0aGUgZmlyc3QgT1JERVIgQlkga2V5 LCBzbworLS0gIk9SREVSIEJZIGlkLCB2YWwiIGxldHMgdGhlIHBsYW5uZXIgdXNlIEluY3JlbWVu dGFsIFNvcnQgdG8gb3JkZXIKKy0tIG9ubHkgb24gdGhlIHNlY29uZCBrZXkuICBUaGUgcGxhbiBt dXN0IHNob3cgSW5jcmVtZW50YWwgU29ydAorLS0gYmVsb3cgdGhlIFJQUiBXaW5kb3dBZ2csIGFu ZCBSUFIgbXVzdCBwcm9kdWNlIHRoZSBzYW1lIHBlci1yb3cKKy0tIG1hdGNoIGNvdW50cyBhcyBp dCB3b3VsZCB3aXRoIGEgcGxhaW4gU29ydC4KKworQ1JFQVRFIElOREVYIHJwcl9pbnRlZ19pZF9p ZHggT04gcnByX2ludGVnIChpZCk7CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBvZmY7CisKKy0tIFBs YW46IFJQUiBXaW5kb3dBZ2cgYWJvdmUgYW4gSW5jcmVtZW50YWwgU29ydCBhYm92ZSBhbiBJbmRl eCBTY2FuLgorLS0gVGhlIEluY3JlbWVudGFsIFNvcnQgZGVjbGFyZXMgIlByZXNvcnRlZCBLZXk6 IGlkIiBhbmQgc29ydHMgb25seQorLS0gb24gdmFsIHdpdGhpbiBlYWNoIGlkIGdyb3VwLgorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQsIHZhbAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKTsKKworLS0gUmVzdWx0OiBS UFIgb3ZlciB0aGUgaW5jcmVtZW50YWxseSBzb3J0ZWQgc3RyZWFtIHByb2R1Y2VzIG1hdGNoCist LSBjb3VudHMgcGVyIHJvdy4KK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkLCB2YWwKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkLCB2 YWw7CisKK1JFU0VUIGVuYWJsZV9zZXFzY2FuOworRFJPUCBJTkRFWCBycHJfaW50ZWdfaWRfaWR4 OworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJTkUKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gUmVjb3JkcyB0aGUgY3VycmVudCBiZWhhdmlvdXI6IERFRklORSB0b2RheSBhY2Nl cHRzIHZvbGF0aWxlCistLSBmdW5jdGlvbnMgc3VjaCBhcyByYW5kb20oKSBhbmQgdGhlIHF1ZXJ5 IHJ1bnMgdG8gY29tcGxldGlvbi4KKy0tIFRvIGtlZXAgdGhlIGV4cGVjdGVkIG91dHB1dCBkZXRl cm1pbmlzdGljIHRoZSBwcmVkaWNhdGUgdXNlcworLS0gInJhbmRvbSgpID49IDAuMCIsIHdoaWNo IGlzIHN0cnVjdHVyYWxseSBlcXVpdmFsZW50IHRvIFRSVUUgYW5kCistLSB0aGVyZWZvcmUgZG9l cyBub3QgcGVydHVyYiB0aGUgbWF0Y2ggcmVzdWx0LiAgVGhlIGludGVyZXN0aW5nCistLSBwcm9w ZXJ0eSBpcyB0aGF0IHZvbGF0aWxlIGludm9jYXRpb24gZG9lcyBub3QgY3Jhc2ggb3Igc2hvcnQt CistLSBjaXJjdWl0IHBhdHRlcm4gbWF0Y2hpbmcuCistLQorLS0gWFhYOiB2b2xhdGlsZSBmdW5j dGlvbnMgaW4gREVGSU5FIGFyZSBzbGF0ZWQgdG8gYmUgcmVqZWN0ZWQgYXQKKy0tIHBhcnNlIHRp bWUuICBVbmRlciBSUFIncyBORkEgZW5naW5lIHRoZSBzYW1lIHJvdydzIERFRklORQorLS0gcHJl ZGljYXRlIG1heSBiZSBldmFsdWF0ZWQgbXVsdGlwbGUgdGltZXMgKGJhY2t0cmFja2luZywKKy0t IFBSRVYvTkVYVCBuYXZpZ2F0aW9uKSwgc28gYSB0cnVseSB2b2xhdGlsZSByZXN1bHQgd291bGQg bWFrZQorLS0gcGF0dGVybiBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFdoZW4gdGhlIHBy b2hpYml0aW9uIGxhbmRzLAorLS0gdGhpcyB0ZXN0IG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhbiBl cnJvci1jYXNlIHRlc3QgdGhhdCBleHBlY3RzCistLSByYW5kb20oKSBpbiBERUZJTkUgdG8gYmUg cmVqZWN0ZWQuCisKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9N IHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkgQU5EIHJhbmRvbSgpID49IDAuMCkKK09SREVS IEJZIGlkOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIEIxMC4gUlBSICsgQ29ycmVsYXRlZCBzdWJxdWVyeSBpbiBX SEVSRQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIgd2luZG93IHBsYWNlZCBpbnNpZGUg YSBjb3JyZWxhdGVkIHNjYWxhcgorLS0gc3VicXVlcnkgaXMgZXhlY3V0ZWQgb25jZSBwZXIgb3V0 ZXIgcm93LiAgREVGSU5FIHN0aWxsIHJlZmVyZW5jZXMKKy0tIG9ubHkgbG9jYWwgY29sdW1ucyAo cXVhbGlmaWVkIHJlZnMgZnJvbSB0aGUgb3V0ZXIgcXVlcnkgYXJlIG5vdAorLS0gc3VwcG9ydGVk IGluIERFRklORSk7IHRoZSBjb3JyZWxhdGlvbiBsaXZlcyBpbiB0aGUgc3VicXVlcnkncworLS0g V0hFUkUgY2xhdXNlIGFzICJpLmlkIDw9IG8uaWQiLiAgVGhlIHBsYW4gbXVzdCBzaG93IGEgU3Vi UGxhbgorLS0gYXR0YWNoZWQgdG8gdGhlIG91dGVyIHNjYW4sIHdpdGggdGhlIFJQUiBXaW5kb3dB Z2cgZHJpdmVuIGJ5IGEKKy0tIHBlci1yb3cgc2NhbiBmaWx0ZXIgY2FycnlpbmcgdGhlIGNvcnJl bGF0aW9uIHByZWRpY2F0ZS4KKworLS0gUGxhbjogU3ViUGxhbiBhdHRhY2hlZCB0byB0aGUgb3V0 ZXIgU2VxIFNjYW47IHRoZSBpbm5lciBzY2FuCistLSBjYXJyaWVzICJGaWx0ZXI6IChpZCA8PSBv LmlkKSIsIGNvbmZpcm1pbmcgdGhlIGNvcnJlbGF0aW9uIGlzCistLSBldmFsdWF0ZWQgcGVyIG91 dGVyIHJvdy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBvLmlkLCBvLnZhbCwKKyAgICAo U0VMRUNUIGNvdW50KCopIE9WRVIgdworICAgICBGUk9NIHJwcl9pbnRlZyBpCisgICAgIFdIRVJF IGkuaWQgPD0gby5pZAorICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAg UEFUVEVSTiAoQSBCKykKKyAgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAg ICAgT1JERVIgQlkgaWQKKyAgICAgTElNSVQgMSkgQVMgZmlyc3RfY250CitGUk9NIHJwcl9pbnRl ZyBvCitPUkRFUiBCWSBvLmlkOworCistLSBSZXN1bHQ6IGVhY2ggb3V0ZXIgcm93IHJlY2VpdmVz IHRoZSBmaXJzdF9jbnQgZnJvbSBpdHMgb3duCistLSBjb3JyZWxhdGVkIFJQUiBzdWJxdWVyeS4K K1NFTEVDVCBvLmlkLCBvLnZhbCwKKyAgICAoU0VMRUNUIGNvdW50KCopIE9WRVIgdworICAgICBG Uk9NIHJwcl9pbnRlZyBpCisgICAgIFdIRVJFIGkuaWQgPD0gby5pZAorICAgICBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQKKyAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgTElNSVQgMSkg QVMgZmlyc3RfY250CitGUk9NIHJwcl9pbnRlZyBvCitPUkRFUiBCWSBvLmlkOworCistLSBDbGVh bnVwCitEUk9QIFRBQkxFIHJwcl9pbnRlZzsKK0RST1AgVEFCTEUgcnByX2ludGVnMjsKLS0gCjIu NTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0008-Replace-reduced-frame-map-with-single-match-result.txt" Content-Disposition: attachment; filename="nocfbot-0008-Replace-reduced-frame-map-with-single-match-result.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62f1i7 RnJvbSBjYTE3MTA4NGI3YzUyZTI3YTFmMGJiMmExN2E4NzQ3ZjM3NWU2YTJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTQ6MDk6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIIDA4LzQwXSBS ZXBsYWNlIHJlZHVjZWQgZnJhbWUgbWFwIHdpdGggc2luZ2xlIG1hdGNoIHJlc3VsdAoKVGhlIHJl ZHVjZWQgZnJhbWUgbWFwIHdhcyBhIHBlci1yb3cgYnl0ZSBhcnJheSB0cmFja2luZyBtYXRjaCBz dGF0dXMuClNpbmNlIHJvd3MgYXJlIHByb2Nlc3NlZCBzZXF1ZW50aWFsbHkgYW5kIG9ubHkgb25l IG1hdGNoIGlzIGFjdGl2ZQphdCBhIHRpbWUsIHJlcGxhY2UgaXQgd2l0aCBmb3VyIHNjYWxhciBm aWVsZHM6IHZhbGlkLCBtYXRjaGVkLApzdGFydCwgYW5kIGxlbmd0aC4KCkFsc28gZGlzdGluZ3Vp c2ggZW1wdHkgbWF0Y2hlcyAoRklOIHJlYWNoZWQgd2l0aCB6ZXJvIHJvd3MgY29uc3VtZWQpCmZy b20gdW5tYXRjaGVkIHJvd3MgdmlhIFJGX0VNUFRZX01BVENILCBjb3VudGVkIGFzIG1hdGNoZWQg aW4gTkZBCnN0YXRpc3RpY3MuCgpXaWRlbiByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSgpIHJldHVy biB0eXBlIGZyb20gaW50IHRvIGludDY0LApzaW5jZSBpdCByZXR1cm5zIHJwcl9tYXRjaF9sZW5n dGggd2hpY2ggaXMgaW50NjQuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAg ICAgICAgICAgfCAgNTYgKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMgICAgICB8IDIzMyArKysrKysrKystLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCAgICAgICAgICAgICB8ICAyMSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfZXhwbGFpbi5vdXQgfCAgIDggKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlv bnMoKyksIDE4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggNThmOWRh MGI4MTQuLjdkMGY4ZmQ0MDFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC01NDksNyArNTQ5 LDcgQEAKICAqCiAgKiAgICgxKSBGaW5kIG9yIGNyZWF0ZSBhIGNvbnRleHQgZm9yIHRoZSB0YXJn ZXQgcm93CiAgKiAgICgyKSBFbnRlciB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcAotICogICAoMykg QWZ0ZXIgdGhlIGxvb3AgZW5kcywgcmVjb3JkIHRoZSByZXN1bHQgaW4gcmVkdWNlZF9mcmFtZV9t YXAKKyAqICAgKDMpIEFmdGVyIHRoZSBsb29wIGVuZHMsIHJlY29yZCB0aGUgbWF0Y2ggcmVzdWx0 CiAgKgogICogUHNldWRvY29kZSBvZiB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcDoKICAqCkBAIC05 MjMsMTggKzkyMywxOSBAQAogICogQ2hhcHRlciBYICBNYXRjaCBSZXN1bHQgUHJvY2Vzc2luZwog ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogICoKLSAqIFgtMS4gUmVkdWNlZCBGcmFtZSBNYXAKKyAq IFgtMS4gTWF0Y2ggUmVzdWx0CiAgKgotICogUlBSIG1hdGNoIHJlc3VsdHMgYXJlIHJlY29yZGVk IGluIGEgYnl0ZSBhcnJheSBjYWxsZWQgcmVkdWNlZF9mcmFtZV9tYXAuCi0gKiBPbmUgYnl0ZSBp cyBhbGxvY2F0ZWQgcGVyIHJvdywgYW5kIHRoZSB2YWx1ZSBpcyBvbmUgb2YgdGhlIGZvbGxvd2lu ZzoKKyAqIFJQUiB0cmFja3MgdGhlIGN1cnJlbnQgbWF0Y2ggcmVzdWx0IGFzIGEgc2luZ2xlIGVu dHJ5IGluIFdpbmRvd0FnZ1N0YXRlCisgKiB3aXRoIGZvdXIgZmllbGRzOiBycHJfbWF0Y2hfdmFs aWQsIHJwcl9tYXRjaF9tYXRjaGVkLCBycHJfbWF0Y2hfc3RhcnQsCisgKiBhbmQgcnByX21hdGNo X2xlbmd0aC4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIHRydWUsIHRoZSBlbnRyeSBkZXNjcmli ZXMKKyAqIHRoZSBtYXRjaCByZXN1bHQgZm9yIHRoZSBwb3NpdGlvbiBhdCBycHJfbWF0Y2hfc3Rh cnQ6IHJwcl9tYXRjaF9tYXRjaGVkCisgKiBpbmRpY2F0ZXMgc3VjY2VzcyBvciBmYWlsdXJlLCBh bmQgcnByX21hdGNoX2xlbmd0aCBnaXZlcyB0aGUgbnVtYmVyIG9mCisgKiByb3dzIGNvbnN1bWVk LiAgQSBtYXRjaCB3aXRoIHJwcl9tYXRjaF9sZW5ndGggMCByZXByZXNlbnRzIGFuIGVtcHR5IG1h dGNoCisgKiAocGF0dGVybiBtYXRjaGVkIGJ1dCBjb25zdW1lZCBubyByb3dzKS4gIFdoZW4gcnBy X21hdGNoX3ZhbGlkIGlzIGZhbHNlLAorICogdGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBldmFs dWF0ZWQgeWV0IChSRl9OT1RfREVURVJNSU5FRCkuCiAgKgotICogICBSRl9OT1RfREVURVJNSU5F RCAoMCkgIE5vdCB5ZXQgcHJvY2Vzc2VkCi0gKiAgIFJGX0ZSQU1FX0hFQUQgICAgICgxKSAgU3Rh cnQgcm93IG9mIHRoZSBtYXRjaAotICogICBSRl9TS0lQUEVEICAgICAgICAoMikgIEludGVyaW9y IHJvdyBvZiB0aGUgbWF0Y2ggKHNraXBwZWQgaW4gZnJhbWUpCi0gKiAgIFJGX1VOTUFUQ0hFRCAg ICAgICgzKSAgTWF0Y2ggZmFpbHVyZQotICoKLSAqIFRoZSB3aW5kb3cgZnVuY3Rpb24gcmVmZXJl bmNlcyB0aGlzIG1hcCB0byBkZXRlcm1pbmUgZnJhbWUgaW5jbHVzaW9uIGZvcgotICogZWFjaCBy b3cuCisgKiBBIHJvdydzIHN0YXR1cyBhZ2FpbnN0IHRoZSBjdXJyZW50IG1hdGNoIHJlc3VsdCBj YW4gYmUgb2J0YWluZWQgYnkKKyAqIGNhbGxpbmcgZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKCku CiAgKgogICogWC0yLiBBRlRFUiBNQVRDSCBTS0lQCiAgKgpAQCAtMTAyOCw4ICsxMDI5LDcgQEAK ICAqICAgICBQaGFzZSAzIChBZHZhbmNlKTogc2tpcHBlZCAobm8gc3RhdGVzKQogICoKICAqICAg QzAuc3RhdGVzIGlzIGVtcHR5LCBzbyB0aGUgbG9vcCB0ZXJtaW5hdGVzLgotICogICBtYXRjaEVu ZFJvdyA8IG1hdGNoU3RhcnRSb3cgLT4gUkZfVU5NQVRDSEVELgotICogICByZWdpc3Rlcl9yZWR1 Y2VkX2ZyYW1lX21hcCgwLCBSRl9VTk1BVENIRUQpLgorICogICBtYXRjaEVuZFJvdyA8IG1hdGNo U3RhcnRSb3cgLT4gdW5tYXRjaGVkLgogICoKICAqIC0tLSBSb3cgMSAocHJpY2U9MTEwKSAtLS0K ICAqCkBAIC0xMTEzLDkgKzExMTMsNyBAQAogICoKICAqICAgQzEuc3RhdGVzIGlzIGVtcHR5IGFu ZCBtYXRjaEVuZFJvdz0zID49IG1hdGNoU3RhcnRSb3c9MSAtPiBtYXRjaCBzdWNjZWVkcy4KICAq Ci0gKiAgIHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKDEsIFJGX0ZSQU1FX0hFQUQpCi0gKiAg IHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKDIsIFJGX1NLSVBQRUQpCi0gKiAgIHJlZ2lzdGVy X3JlZHVjZWRfZnJhbWVfbWFwKDMsIFJGX1NLSVBQRUQpCisgKiAgIHJwcl9tYXRjaF9zdGFydCA9 IDEsIHJwcl9tYXRjaF9sZW5ndGggPSAzCiAgKgogICogLS0tIFJvdyA0IChwcmljZT0xMzApIC0t LQogICoKQEAgLTExMjgsMTUgKzExMjYsMTUgQEAKICAqICAgICBCOiAxMzAgPCBQUkVWKDExNSkg LT4gZmFsc2UKICAqCiAgKiAgIC4uLiBObyBzdWJzZXF1ZW50IHJvd3MsIHNvIEV4ZWNSUFJGaW5h bGl6ZUFsbENvbnRleHRzKCkgaXMgY2FsbGVkLgotICogICBNYXRjaCBpbmNvbXBsZXRlIC0+IFJG X1VOTUFUQ0hFRC4KKyAqICAgTWF0Y2ggaW5jb21wbGV0ZSAtPiB1bm1hdGNoZWQuCiAgKgogICog WEktNS4gRmluYWwgUmVzdWx0CiAgKgotICogICBSb3cgMDogUkZfVU5NQVRDSEVEICAtPiBmcmFt ZSA9IHRoZSByb3cgaXRzZWxmCi0gKiAgIFJvdyAxOiBSRl9GUkFNRV9IRUFEIC0+IGZyYW1lID0g cm93cyAxIHRocm91Z2ggMwotICogICBSb3cgMjogUkZfU0tJUFBFRCAgICAtPiBpbnNpZGUgcm93 IDEncyBtYXRjaAotICogICBSb3cgMzogUkZfU0tJUFBFRCAgICAtPiBpbnNpZGUgcm93IDEncyBt YXRjaAotICogICBSb3cgNDogUkZfVU5NQVRDSEVEICAtPiBmcmFtZSA9IHRoZSByb3cgaXRzZWxm CisgKiAgIFJvdyAwOiB1bm1hdGNoZWQgICAgIC0+IGZyYW1lID0gdGhlIHJvdyBpdHNlbGYKKyAq ICAgUm93IDE6IG1hdGNoIGhlYWQgICAgLT4gZnJhbWUgPSByb3dzIDEgdGhyb3VnaCAzCisgKiAg IFJvdyAyOiBpbnNpZGUgbWF0Y2ggIC0+IHNraXBwZWQKKyAqICAgUm93IDM6IGluc2lkZSBtYXRj aCAgLT4gc2tpcHBlZAorICogICBSb3cgNDogdW5tYXRjaGVkICAgICAtPiBmcmFtZSA9IHRoZSBy b3cgaXRzZWxmCiAgKgogICogQ2hhcHRlciBYSUkgIFN1bW1hcnkgb2YgS2V5IERlc2lnbiBEZWNp c2lvbnMKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE1NzksMTIgKzE1NzcsMTQgQEAgc3Rh dGljIHZvaWQgbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250 ZXh0ICpjdHgsCiAgKgogICogLSBFbXB0eSBtYXRjaCBoYW5kbGluZzogVGhlIGluaXRpYWwgYWR2 YW5jZSB1c2VzIGN1cnJlbnRQb3MgPQogICogICBzdGFydFBvcyAtIDEgKGJlZm9yZSBhbnkgcm93 IGlzIGNvbnN1bWVkKS4gSWYgRklOIGlzIHJlYWNoZWQgdmlhCi0gKiAgIGVwc2lsb24gdHJhbnNp dGlvbnMgYWxvbmUsIG1hdGNoRW5kUm93ID0gc3RhcnRQb3MgLSAxIDwgbWF0Y2hTdGFydFJvdywK LSAqICAgcmVzdWx0aW5nIGluIFVOTUFUQ0hFRC4gRm9yIHJlbHVjdGFudCBtaW49MCBwYXR0ZXJu cyAoQSo/LCBBPz8pLAotICogICB0aGUgc2tpcCBwYXRoIHJlYWNoZXMgRklOIGZpcnN0IGFuZCBl YXJseSB0ZXJtaW5hdGlvbiBwcnVuZXMgZW50ZXIKLSAqICAgcGF0aHMsIHlpZWxkaW5nIGFuIGlt bWVkaWF0ZSBlbXB0eSAodW5tYXRjaGVkKSByZXN1bHQuIEZvcgotICogICBncmVlZHkgcGF0dGVy bnMgKEEqKSwgdGhlIGVudGVyIHBhdGggYWRkcyBWQVIgc3RhdGVzIGZpcnN0LCB0aGVuCi0gKiAg IHRoZSBza2lwIEZJTiBpcyByZWNvcmRlZCBidXQgVkFSIHN0YXRlcyBzdXJ2aXZlIGZvciBsYXRl ciBtYXRjaGluZy4KKyAqICAgZXBzaWxvbiB0cmFuc2l0aW9ucyBhbG9uZSwgbWF0Y2hFbmRSb3cg PSBzdGFydFBvcyAtIDEgPCBtYXRjaFN0YXJ0Um93LgorICogICBJZiBtYXRjaGVkU3RhdGUgaXMg c2V0IChGSU4gd2FzIHJlYWNoZWQpLCB0aGlzIGlzIGFuIGVtcHR5IG1hdGNoCisgKiAgIChSRl9F TVBUWV9NQVRDSCk7IG90aGVyd2lzZSBpdCBpcyB1bm1hdGNoZWQgKFJGX1VOTUFUQ0hFRCkuCisg KiAgIEZvciByZWx1Y3RhbnQgbWluPTAgcGF0dGVybnMgKEEqPywgQT8/KSwgdGhlIHNraXAgcGF0 aCByZWFjaGVzCisgKiAgIEZJTiBmaXJzdCBhbmQgZWFybHkgdGVybWluYXRpb24gcHJ1bmVzIGVu dGVyIHBhdGhzLCB5aWVsZGluZyBhbgorICogICBpbW1lZGlhdGUgZW1wdHkgbWF0Y2ggcmVzdWx0 LiBGb3IgZ3JlZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRlcgorICogICBwYXRoIGFkZHMgVkFS IHN0YXRlcyBmaXJzdCwgdGhlbiB0aGUgc2tpcCBGSU4gaXMgcmVjb3JkZWQgYnV0IFZBUgorICog ICBzdGF0ZXMgc3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCiAgKgogICogQ29udGV4dCBBYnNv cnB0aW9uIFJ1bnRpbWU6CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCBhZWQ3Y2JlZjk5YS4uZGNhMmRlNTcwZTggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTI0NywxMyArMjQ3LDEwIEBAIHN0 YXRpYyB2b2lkIGF0dG5vX21hcChOb2RlICpub2RlKTsKIHN0YXRpYyBib29sIGF0dG5vX21hcF93 YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKIHN0YXRpYyBib29sIHJwcl9pc19k ZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7Ci1zdGF0aWMgaW50CXJvd19pc19pbl9y ZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CitzdGF0aWMgaW50 NjQgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9z KTsKIAotc3RhdGljIHZvaWQgY3JlYXRlX3JlZHVjZWRfZnJhbWVfbWFwKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSk7Ci1zdGF0aWMgdm9pZCBjbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUpOwotc3RhdGljIGludAlnZXRfcmVkdWNlZF9mcmFtZV9tYXAoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MpOwotc3RhdGljIHZvaWQgcmVnaXN0ZXJf cmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MsCi0J CQkJCQkJCQkgICBpbnQgdmFsKTsKK3N0YXRpYyB2b2lkIGNsZWFyX3JlZHVjZWRfZnJhbWUoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKK3N0YXRpYyBpbnQJZ2V0X3JlZHVjZWRfZnJhbWVfc3Rh dHVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKIHN0YXRpYyB2b2lkIHVw ZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CiAKIHN0 YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKE5vZGUgKm5vZGUsIGJvb2wgaXNfcHJldik7 CkBAIC0xMDM1LDEzICsxMDMyLDcgQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSkKIAkgKi8KIAlmb3IgKDs7KQogCXsKLQkJaW50CQkJcmV0OwotCi0jaWZk ZWYgUlBSX0RFQlVHCi0JCXByaW50ZigiPT09PT0gbG9vcCBpbiBmcmFtZSBzdGFydHM6IGFnZ3Jl Z2F0ZWR1cHRvOiAiIElOVDY0X0ZPUk1BVCAiIGFnZ3JlZ2F0ZWRiYXNlOiAiIElOVDY0X0ZPUk1B VCAiXG4iLAotCQkJICAgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvLAotCQkJICAgd2luc3RhdGUt PmFnZ3JlZ2F0ZWRiYXNlKTsKLSNlbmRpZgorCQlpbnQ2NAkJcmV0OwogCiAJCS8qIEZldGNoIG5l eHQgcm93IGlmIHdlIGRpZG4ndCBhbHJlYWR5ICovCiAJCWlmIChUdXBJc051bGwoYWdnX3Jvd19z bG90KSkKQEAgLTEwNjUsMjcgKzEwNTYsMTggQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAogCQlpZiAocnByX2lzX2RlZmluZWQod2luc3RhdGUpKQog CQl7Ci0jaWZkZWYgUlBSX0RFQlVHCi0JCQlwcmludGYoInJlZHVjZWRfZnJhbWVfbWFwOiAlZCBh Z2dyZWdhdGVkdXB0bzogIiBJTlQ2NF9GT1JNQVQgIiBhZ2dyZWdhdGVkYmFzZTogIiBJTlQ2NF9G T1JNQVQgIlxuIiwKLQkJCQkgICBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsCi0JCQkJ CQkJCQkJIHdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0byksCi0JCQkJICAgd2luc3RhdGUtPmFnZ3Jl Z2F0ZWR1cHRvLAotCQkJCSAgIHdpbnN0YXRlLT5hZ2dyZWdhdGVkYmFzZSk7Ci0jZW5kaWYKLQog CQkJLyoKLQkJCSAqIElmIHRoZSByb3cgc3RhdHVzIGF0IGN1cnJlbnRwb3MgaXMgYWxyZWFkeSBk ZWNpZGVkIGFuZCBjdXJyZW50Ci0JCQkgKiByb3cgc3RhdHVzIGlzIG5vdCBkZWNpZGVkIHlldCwg aXQgbWVhbnMgd2UgcGFzc2VkIHRoZSBsYXN0Ci0JCQkgKiByZWR1Y2VkIGZyYW1lLiBUaW1lIHRv IGJyZWFrIHRoZSBsb29wLgorCQkJICogSWYgY3VycmVudHBvcyBpcyBhbHJlYWR5IGRlY2lkZWQg YnV0IGFnZ3JlZ2F0ZWR1cHRvIGlzIG5vdCB5ZXQKKwkJCSAqIGRldGVybWluZWQsIHdlJ3ZlIHBh c3NlZCB0aGUgbGFzdCByZWR1Y2VkIGZyYW1lLgogCQkJICovCi0JCQlpZiAoZ2V0X3JlZHVjZWRf ZnJhbWVfbWFwKHdpbnN0YXRlLCB3aW5zdGF0ZS0+Y3VycmVudHBvcykKKwkJCWlmIChnZXRfcmVk dWNlZF9mcmFtZV9zdGF0dXMod2luc3RhdGUsIHdpbnN0YXRlLT5jdXJyZW50cG9zKQogCQkJCSE9 IFJGX05PVF9ERVRFUk1JTkVEICYmCi0JCQkJZ2V0X3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRl LCB3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8pCisJCQkJZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVz KHdpbnN0YXRlLCB3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8pCiAJCQkJPT0gUkZfTk9UX0RFVEVS TUlORUQpCiAJCQkJYnJlYWs7CiAKIAkJCS8qCi0JCQkgKiBPdGhlcndpc2Ugd2UgbmVlZCB0byBj YWxjdWxhdGUgdGhlIHJlZHVjZWQgZnJhbWUuCisJCQkgKiBDYWxjdWxhdGUgdGhlIHJlZHVjZWQg ZnJhbWUgZm9yIGFnZ3JlZ2F0ZWR1cHRvLgogCQkJICovCiAJCQlyZXQgPSByb3dfaXNfaW5fcmVk dWNlZF9mcmFtZSh3aW5zdGF0ZS0+YWdnX3dpbm9iaiwKIAkJCQkJCQkJCQkgIHdpbnN0YXRlLT5h Z2dyZWdhdGVkdXB0byk7CkBAIC0xMDkzLDE3ICsxMDc1LDEzIEBAIGV2YWxfd2luZG93YWdncmVn YXRlcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJCQkJYnJlYWs7CiAKIAkJCS8qCi0JCQkg KiBDaGVjayBpZiBjdXJyZW50IHJvdyBuZWVkcyB0byBiZSBza2lwcGVkIGR1ZSB0byBubyBtYXRj aC4KKwkJCSAqIENoZWNrIGlmIGN1cnJlbnQgcm93IGlzIGluc2lkZSBhIG1hdGNoIGJ1dCBub3Qg dGhlIGhlYWQKKwkJCSAqIChza2lwcGVkKSwgYW5kIGl0J3MgdGhlIGJhc2Ugcm93IGZvciBhZ2dy ZWdhdGlvbi4KIAkJCSAqLwotCQkJaWYgKGdldF9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwK LQkJCQkJCQkJCSAgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKSA9PSBSRl9TS0lQUEVEICYmCisJ CQlpZiAoZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0YXRlLAorCQkJCQkJCQkJCSB3aW5z dGF0ZS0+YWdncmVnYXRlZHVwdG8pID09IFJGX1NLSVBQRUQgJiYKIAkJCQl3aW5zdGF0ZS0+YWdn cmVnYXRlZHVwdG8gPT0gd2luc3RhdGUtPmFnZ3JlZ2F0ZWRiYXNlKQotCQkJewotI2lmZGVmIFJQ Ul9ERUJVRwotCQkJCXByaW50Zigic2tpcCBjdXJyZW50IHJvdyBmb3IgYWdncmVnYXRpb25cbiIp OwotI2VuZGlmCiAJCQkJYnJlYWs7Ci0JCQl9CiAJCX0KIAogCQkvKiBTZXQgdHVwbGUgY29udGV4 dCBmb3IgZXZhbHVhdGlvbiBvZiBhZ2dyZWdhdGUgYXJndW1lbnRzICovCkBAIC0xMzU4LDcgKzEz MzYsOCBAQCBiZWdpbl9wYXJ0aXRpb24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCXdpbnN0 YXRlLT5mcmFtZWhlYWRfdmFsaWQgPSBmYWxzZTsKIAl3aW5zdGF0ZS0+ZnJhbWV0YWlsX3ZhbGlk ID0gZmFsc2U7CiAJd2luc3RhdGUtPmdyb3VwdGFpbF92YWxpZCA9IGZhbHNlOwotCWNyZWF0ZV9y ZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSk7CisJaWYgKHJwcl9pc19kZWZpbmVkKHdpbnN0YXRl KSkKKwkJY2xlYXJfcmVkdWNlZF9mcmFtZSh3aW5zdGF0ZSk7CiAJd2luc3RhdGUtPnNwb29sZWRf cm93cyA9IDA7CiAJd2luc3RhdGUtPmN1cnJlbnRwb3MgPSAwOwogCXdpbnN0YXRlLT5mcmFtZWhl YWRwb3MgPSAwOwpAQCAtMTU4MSw5ICsxNTYwLDggQEAgcmVsZWFzZV9wYXJ0aXRpb24oV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlKQogCXdpbnN0YXRlLT5wYXJ0aXRpb25fc3Bvb2xlZCA9IGZhbHNl OwogCXdpbnN0YXRlLT5uZXh0X3BhcnRpdGlvbiA9IHRydWU7CiAKLQkvKiBSZXNldCBSUFIgcmVk dWNlZCBmcmFtZSBtYXAgKi8KLQl3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAgPSBOVUxMOwot CXdpbnN0YXRlLT5hbGxvY19zeiA9IDA7CisJLyogUmVzZXQgUlBSIG1hdGNoIHJlc3VsdHMgKi8K KwljbGVhcl9yZWR1Y2VkX2ZyYW1lKHdpbnN0YXRlKTsKIAogCS8qIFJlc2V0IE5GQSBzdGF0ZSBm b3IgbmV3IHBhcnRpdGlvbiAqLwogCXdpbnN0YXRlLT5uZmFDb250ZXh0ID0gTlVMTDsKQEAgLTIz NjYsMTEgKzIzNDQsNiBAQCBFeGVjV2luZG93QWdnKFBsYW5TdGF0ZSAqcHN0YXRlKQogCiAJQ0hF Q0tfRk9SX0lOVEVSUlVQVFMoKTsKIAotI2lmZGVmIFJQUl9ERUJVRwotCXByaW50ZigiRXhlY1dp bmRvd0FnZyBjYWxsZWQuIHBvczogIiBJTlQ2NF9GT1JNQVQgIlxuIiwKLQkJICAgd2luc3RhdGUt PmN1cnJlbnRwb3MpOwotI2VuZGlmCi0KIAlpZiAod2luc3RhdGUtPnN0YXR1cyA9PSBXSU5ET1dB R0dfRE9ORSkKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTI0ODAsMTQgKzI0NTMsMTMgQEAgRXhlY1dp bmRvd0FnZyhQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJaWYgKHdpbnN0YXRlLT5zdGF0dXMgPT0gV0lO RE9XQUdHX1JVTikKIAkJewogCQkJLyoKLQkJCSAqIElmIFJQUiBpcyBkZWZpbmVkIGFuZCBza2lw IG1vZGUgaXMgbmV4dCByb3csIHdlIG5lZWQgdG8gY2xlYXIKLQkJCSAqIGV4aXN0aW5nIHJlZHVj ZWQgZnJhbWUgaW5mbyBzbyB0aGF0IHdlIG5ld2x5IGNhbGN1bGF0ZSB0aGUgaW5mbwotCQkJICog c3RhcnRpbmcgZnJvbSBjdXJyZW50IHJvdy4KKwkJCSAqIElmIFJQUiBpcyBkZWZpbmVkIGFuZCBz a2lwIG1vZGUgaXMgbmV4dCByb3csIGNsZWFyIHRoZSBjdXJyZW50CisJCQkgKiBtYXRjaCBzbyB0 aGUgbmV4dCByb3cgdHJpZ2dlcnMgcmUtZXZhbHVhdGlvbi4KIAkJCSAqLwogCQkJaWYgKHJwcl9p c19kZWZpbmVkKHdpbnN0YXRlKSkKIAkJCXsKIAkJCQlpZiAod2luc3RhdGUtPnJwU2tpcFRvID09 IFNUX05FWFRfUk9XKQotCQkJCQljbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSk7CisJ CQkJCWNsZWFyX3JlZHVjZWRfZnJhbWUod2luc3RhdGUpOwogCQkJfQogCiAJCQkvKgpAQCAtMjk4 Niw5ICsyOTU4LDYgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdnICpub2RlLCBFU3RhdGUg KmVzdGF0ZSwgaW50IGVmbGFncykKIAkJCW5hbWUgPSB0ZS0+cmVzbmFtZTsKIAkJCWV4cHIgPSB0 ZS0+ZXhwcjsKIAotI2lmZGVmIFJQUl9ERUJVRwotCQkJcHJpbnRmKCJkZWZpbmVWYXJpYWJsZSBu YW1lOiAlc1xuIiwgbmFtZSk7Ci0jZW5kaWYKIAkJCXdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxp c3QgPQogCQkJCWxhcHBlbmQod2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCwKIAkJCQkJCW1h a2VTdHJpbmcocHN0cmR1cChuYW1lKSkpOwpAQCAtMzY2OCw3ICszNjM3LDcgQEAgaWdub3JlbnVs bHNfZ2V0ZnVuY2FyZ2luZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCWlu dAkJCW5vdG51bGxfb2Zmc2V0OwogCWludAkJCW5vdG51bGxfcmVscG9zOwogCWludAkJCWZvcndh cmQ7Ci0JaW50CQkJbnVtX3JlZHVjZWRfZnJhbWU7CisJaW50NjQJCW51bV9yZWR1Y2VkX2ZyYW1l OwogCiAJQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CiAJd2luc3RhdGUgPSB3 aW5vYmotPndpbnN0YXRlOwpAQCAtMzk2OCwxNCArMzkzNywxMiBAQCBycHJfaXNfZGVmaW5lZChX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAgKiBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKICAqIC0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLXN0YXRpYyBpbnQKK3N0YXRpYyBpbnQ2NAog cm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQog ewogCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CiAJaW50CQkJ c3RhdGU7Ci0JaW50CQkJcnRuOwotCWludDY0CQlpOwotCWludAkJCW51bV9yZWR1Y2VkX3Jvd3M7 CisJaW50NjQJCXJ0bjsKIAogCWlmICghcnByX2lzX2RlZmluZWQod2luc3RhdGUpKQogCXsKQEAg LTM5ODQsMTQgKzM5NTEsMTAgQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0 IHdpbm9iaiwgaW50NjQgcG9zKQogCQkgKiB3aW5kb3cgZnJhbWUuCiAJCSAqLwogCQlydG4gPSAw OwotI2lmZGVmIFJQUl9ERUJVRwotCQlwcmludGYoInJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lIHJl dHVybnMgJWQ6IHBvczogIiBJTlQ2NF9GT1JNQVQgIlxuIiwKLQkJCSAgIHJ0biwgcG9zKTsKLSNl bmRpZgogCQlyZXR1cm4gcnRuOwogCX0KIAotCXN0YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfbWFw KHdpbnN0YXRlLCBwb3MpOworCXN0YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0 YXRlLCBwb3MpOwogCiAJaWYgKHN0YXRlID09IFJGX05PVF9ERVRFUk1JTkVEKQogCXsKQEAgLTM5 OTksMTYgKzM5NjIsMTIgQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdp bm9iaiwgaW50NjQgcG9zKQogCQl1cGRhdGVfcmVkdWNlZF9mcmFtZSh3aW5vYmosIHBvcyk7CiAJ fQogCi0Jc3RhdGUgPSBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHBvcyk7CisJc3Rh dGUgPSBnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMod2luc3RhdGUsIHBvcyk7CiAKIAlzd2l0Y2gg KHN0YXRlKQogCXsKIAkJY2FzZSBSRl9GUkFNRV9IRUFEOgotCQkJbnVtX3JlZHVjZWRfcm93cyA9 IDE7Ci0JCQlmb3IgKGkgPSBwb3MgKyAxOwotCQkJCSBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2lu c3RhdGUsIGkpID09IFJGX1NLSVBQRUQ7IGkrKykKLQkJCQludW1fcmVkdWNlZF9yb3dzKys7Ci0J CQlydG4gPSBudW1fcmVkdWNlZF9yb3dzOworCQkJcnRuID0gd2luc3RhdGUtPnJwcl9tYXRjaF9s ZW5ndGg7CiAJCQlicmVhazsKIAogCQljYXNlIFJGX1NLSVBQRUQ6CkBAIC00MDE2LDYgKzM5NzUs NyBAQCByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBw b3MpCiAJCQlicmVhazsKIAogCQljYXNlIFJGX1VOTUFUQ0hFRDoKKwkJY2FzZSBSRl9FTVBUWV9N QVRDSDoKIAkJCXJ0biA9IC0xOwogCQkJYnJlYWs7CiAKQEAgLTQwMjUsOTEgKzM5ODUsNTYgQEAg cm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQog CQkJYnJlYWs7CiAJfQogCi0jaWZkZWYgUlBSX0RFQlVHCi0JcHJpbnRmKCJyb3dfaXNfaW5fcmVk dWNlZF9mcmFtZSByZXR1cm5zICVkOiBwb3M6ICIgSU5UNjRfRk9STUFUICJcbiIsCi0JCSAgIHJ0 biwgcG9zKTsKLSNlbmRpZgogCXJldHVybiBydG47CiB9CiAKLSNkZWZpbmUgUkVEVUNFRF9GUkFN RV9NQVBfSU5JVF9TSVpFCTEwMjRMCi0KIC8qCi0gKiBjcmVhdGVfcmVkdWNlZF9mcmFtZV9tYXAK LSAqIENyZWF0ZSByZWR1Y2VkIGZyYW1lIG1hcAorICogY2xlYXJfcmVkdWNlZF9mcmFtZQorICog Q2xlYXIgcmVkdWNlZCBmcmFtZSBzdGF0dXMKICAqLwogc3RhdGljIHZvaWQKLWNyZWF0ZV9yZWR1 Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCitjbGVhcl9yZWR1Y2VkX2Zy YW1lKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIHsKLQl3aW5zdGF0ZS0+cmVkdWNlZF9mcmFt ZV9tYXAgPQotCQlNZW1vcnlDb250ZXh0QWxsb2Mod2luc3RhdGUtPnBhcnRjb250ZXh0LAotCQkJ CQkJICAgUkVEVUNFRF9GUkFNRV9NQVBfSU5JVF9TSVpFKTsKLQl3aW5zdGF0ZS0+YWxsb2Nfc3og PSBSRURVQ0VEX0ZSQU1FX01BUF9JTklUX1NJWkU7Ci0JY2xlYXJfcmVkdWNlZF9mcmFtZV9tYXAo d2luc3RhdGUpOworCXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSBmYWxzZTsKKwl3aW5zdGF0 ZS0+cnByX21hdGNoX21hdGNoZWQgPSBmYWxzZTsKKwl3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0 ID0gLTE7CisJd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSAwOwogfQogCiAvKgotICogY2xl YXJfcmVkdWNlZF9mcmFtZV9tYXAKLSAqIENsZWFyIHJlZHVjZWQgZnJhbWUgbWFwCi0gKi8KLXN0 YXRpYyB2b2lkCi1jbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUpCi17Ci0JQXNzZXJ0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCAhPSBOVUxMKTsKLQlN ZW1TZXQod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwLCBSRl9OT1RfREVURVJNSU5FRCwKLQkJ ICAgd2luc3RhdGUtPmFsbG9jX3N6KTsKLX0KLQotLyoKLSAqIGdldF9yZWR1Y2VkX2ZyYW1lX21h cAotICogR2V0IHJlZHVjZWQgZnJhbWUgbWFwIHNwZWNpZmllZCBieSBwb3MKKyAqIGdldF9yZWR1 Y2VkX2ZyYW1lX3N0YXR1cworICoJCUxvb2sgdXAgYSBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBjdXJy ZW50IG1hdGNoLgorICoKKyAqIFJldHVybnMgb25lIG9mIHRoZSBSRl8qIGNvbnN0YW50czoKKyAq ICAgUkZfTk9UX0RFVEVSTUlORUQgIHBvcyBoYXMgbm90IGJlZW4gcHJvY2Vzc2VkIHlldAorICog ICBSRl9GUkFNRV9IRUFEICAgICAgcG9zIGlzIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBtYXRj aAorICogICBSRl9TS0lQUEVEICAgICAgICAgcG9zIGlzIGluc2lkZSB0aGUgY3VycmVudCBtYXRj aCBidXQgbm90IHRoZSBzdGFydAorICogICBSRl9VTk1BVENIRUQgICAgICAgcG9zIGlzIHByb2Nl c3NlZCBidXQgbm90IHBhcnQgb2YgYW55IG1hdGNoCiAgKi8KIHN0YXRpYyBpbnQKLWdldF9yZWR1 Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykKK2dldF9y ZWR1Y2VkX2ZyYW1lX3N0YXR1cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykK IHsKLQlBc3NlcnQod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwICE9IE5VTEwpOwotCUFzc2Vy dChwb3MgPj0gMCk7CisJaW50NjQJCXN0YXJ0ID0gd2luc3RhdGUtPnJwcl9tYXRjaF9zdGFydDsK KwlpbnQ2NAkJbGVuZ3RoID0gd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGg7CiAKLQkvKgotCSAq IElmIHBvcyBpcyBub3QgaW4gdGhlIHJlZHVjZWQgZnJhbWUgbWFwLCBpdCBtZWFucyB0aGF0IGFu eSBpbmZvCi0JICogcmVnYXJkaW5nIHRoZSBwb3MgaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0 LiBTbyB3ZSByZXR1cm4KLQkgKiBSRl9OT1RfREVURVJNSU5FRC4KLQkgKi8KLQlpZiAocG9zID49 IHdpbnN0YXRlLT5hbGxvY19zeikKKwlpZiAoIXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQpCiAJ CXJldHVybiBSRl9OT1RfREVURVJNSU5FRDsKIAotCXJldHVybiB3aW5zdGF0ZS0+cmVkdWNlZF9m cmFtZV9tYXBbcG9zXTsKLX0KKwkvKiBFbXB0eSBtYXRjaDogY292ZXJzIG9ubHkgdGhlIHN0YXJ0 IHBvc2l0aW9uICovCisJaWYgKHBvcyA9PSBzdGFydCAmJiB3aW5zdGF0ZS0+cnByX21hdGNoX21h dGNoZWQgJiYgbGVuZ3RoID09IDApCisJCXJldHVybiBSRl9FTVBUWV9NQVRDSDsKIAotLyoKLSAq IHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwCi0gKiBBZGQvcmVwbGFjZSByZWR1Y2VkIGZyYW1l IG1hcCBtZW1iZXIgYXQgcG9zLgotICogSWYgdGhlcmUncyBubyBlbm91Z2ggc3BhY2UsIGV4cGFu ZCB0aGUgbWFwLgotICovCi1zdGF0aWMgdm9pZAotcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MsIGludCB2YWwpCi17Ci0JaW50NjQJ CXJlYWxsb2Nfc3o7Ci0KLQlBc3NlcnQod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwICE9IE5V TEwpOwotCi0JaWYgKHBvcyA8IDApCi0JCWVsb2coRVJST1IsICJ3cm9uZyBwb3M6ICIgSU5UNjRf Rk9STUFULCBwb3MpOwotCi0Jd2hpbGUgKHBvcyA+IHdpbnN0YXRlLT5hbGxvY19zeiAtIDEpCi0J ewotCQlyZWFsbG9jX3N6ID0gd2luc3RhdGUtPmFsbG9jX3N6ICogMjsKLQotCQl3aW5zdGF0ZS0+ cmVkdWNlZF9mcmFtZV9tYXAgPQotCQkJcmVwYWxsb2Mod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVf bWFwLCByZWFsbG9jX3N6KTsKKwkvKiBPdXRzaWRlIHRoZSByZXN1bHQgcmFuZ2UgKi8KKwlpZiAo cG9zIDwgc3RhcnQgfHwgcG9zID49IHN0YXJ0ICsgbGVuZ3RoKQorCQlyZXR1cm4gUkZfTk9UX0RF VEVSTUlORUQ7CiAKLQkJTWVtU2V0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCArIHdpbnN0 YXRlLT5hbGxvY19zeiwKLQkJCSAgIFJGX05PVF9ERVRFUk1JTkVELCByZWFsbG9jX3N6IC0gd2lu c3RhdGUtPmFsbG9jX3N6KTsKKwlpZiAoIXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCkKKwkJ cmV0dXJuIFJGX1VOTUFUQ0hFRDsKIAotCQl3aW5zdGF0ZS0+YWxsb2Nfc3ogPSByZWFsbG9jX3N6 OwotCX0KKwlpZiAocG9zID09IHN0YXJ0KQorCQlyZXR1cm4gUkZfRlJBTUVfSEVBRDsKIAotCXdp bnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcFtwb3NdID0gdmFsOworCXJldHVybiBSRl9TS0lQUEVE OwogfQogCiAvKgpAQCAtNDE1Niw3ICs0MDgxLDExIEBAIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdp bmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcykKIAlpZiAod2luc3RhdGUtPm5mYUNvbnRleHQg IT0gTlVMTCAmJgogCQlwb3MgPCB3aW5zdGF0ZS0+bmZhQ29udGV4dC0+bWF0Y2hTdGFydFJvdykK IAl7Ci0JCXJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlLCBwb3MsIFJGX1VOTUFU Q0hFRCk7CisJCS8qIGFscmVhZHkgcHJvY2Vzc2VkLCB1bm1hdGNoZWQgKi8KKwkJd2luc3RhdGUt PnJwcl9tYXRjaF92YWxpZCA9IHRydWU7CisJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCA9 IGZhbHNlOworCQl3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0ID0gcG9zOworCQl3aW5zdGF0ZS0+ cnByX21hdGNoX2xlbmd0aCA9IDE7CiAJCXJldHVybjsKIAl9CiAKQEAgLTQxNzMsNyArNDEwMiwx MSBAQCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3Mp CiAJCSAqLwogCQlpZiAocG9zIDw9IHdpbnN0YXRlLT5uZmFMYXN0UHJvY2Vzc2VkUm93KQogCQl7 Ci0JCQlyZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgcG9zLCBSRl9VTk1BVENI RUQpOworCQkJLyogYWxyZWFkeSBwcm9jZXNzZWQsIHVubWF0Y2hlZCAqLworCQkJd2luc3RhdGUt PnJwcl9tYXRjaF92YWxpZCA9IHRydWU7CisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQg PSBmYWxzZTsKKwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfc3RhcnQgPSBwb3M7CisJCQl3aW5zdGF0 ZS0+cnByX21hdGNoX2xlbmd0aCA9IDE7CiAJCQlyZXR1cm47CiAJCX0KIAkJLyogTm90IHlldCBw cm9jZXNzZWQgLSBjcmVhdGUgbmV3IGNvbnRleHQgYW5kIHN0YXJ0IGZyZXNoICovCkBAIC00MjQ1 LDI2ICs0MTc4LDM4IEBAIHJlZ2lzdGVyX3Jlc3VsdDoKIAlBc3NlcnQocG9zID09IHRhcmdldEN0 eC0+bWF0Y2hTdGFydFJvdyk7CiAKIAkvKgotCSAqIFJlZ2lzdGVyIHJlZHVjZWQgZnJhbWUgbWFw IGJhc2VkIG9uIG1hdGNoIHJlc3VsdC4KKwkgKiBSZWNvcmQgbWF0Y2ggcmVzdWx0LgogCSAqLwor CXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSB0cnVlOworCXdpbnN0YXRlLT5ycHJfbWF0Y2hf c3RhcnQgPSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3c7CisKIAlpZiAodGFyZ2V0Q3R4LT5tYXRj aEVuZFJvdyA8IHRhcmdldEN0eC0+bWF0Y2hTdGFydFJvdykKIAl7CiAJCW1hdGNoTGVuID0gdGFy Z2V0Q3R4LT5sYXN0UHJvY2Vzc2VkUm93IC0gdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0Um93ICsgMTsK IAotCQlyZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgdGFyZ2V0Q3R4LT5tYXRj aFN0YXJ0Um93LCBSRl9VTk1BVENIRUQpOwotCQlFeGVjUlBSUmVjb3JkQ29udGV4dEZhaWx1cmUo d2luc3RhdGUsIG1hdGNoTGVuKTsKKwkJaWYgKHRhcmdldEN0eC0+bWF0Y2hlZFN0YXRlICE9IE5V TEwpCisJCXsKKwkJCS8qIEVtcHR5IG1hdGNoOiBGSU4gcmVhY2hlZCBidXQgMCByb3dzIGNvbnN1 bWVkICovCisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQgPSB0cnVlOworCQkJd2luc3Rh dGUtPnJwcl9tYXRjaF9sZW5ndGggPSAwOworCQkJRXhlY1JQUlJlY29yZENvbnRleHRTdWNjZXNz KHdpbnN0YXRlLCAwKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIE5vIG1hdGNoICovCisJCQl3 aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQgPSBmYWxzZTsKKwkJCXdpbnN0YXRlLT5ycHJfbWF0 Y2hfbGVuZ3RoID0gMTsKKwkJCUV4ZWNSUFJSZWNvcmRDb250ZXh0RmFpbHVyZSh3aW5zdGF0ZSwg bWF0Y2hMZW4pOworCQl9CiAJCUV4ZWNSUFJGcmVlQ29udGV4dCh3aW5zdGF0ZSwgdGFyZ2V0Q3R4 KTsKIAkJcmV0dXJuOwogCX0KIAotCS8qIE1hdGNoIHN1Y2NlZWRlZCAtIHJlZ2lzdGVyIGZyYW1l IG1hcCBhbmQgcmVjb3JkIHN0YXRpc3RpY3MgKi8KKwkvKiBNYXRjaCBzdWNjZWVkZWQgKi8KIAlt YXRjaExlbiA9IHRhcmdldEN0eC0+bWF0Y2hFbmRSb3cgLSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRS b3cgKyAxOwogCi0JcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHRhcmdldEN0 eC0+bWF0Y2hTdGFydFJvdywgUkZfRlJBTUVfSEVBRCk7Ci0JZm9yIChpbnQ2NCBpID0gdGFyZ2V0 Q3R4LT5tYXRjaFN0YXJ0Um93ICsgMTsgaSA8PSB0YXJnZXRDdHgtPm1hdGNoRW5kUm93OyBpKysp Ci0JewotCQlyZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgaSwgUkZfU0tJUFBF RCk7Ci0JfQorCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCA9IHRydWU7CisJd2luc3RhdGUt PnJwcl9tYXRjaF9sZW5ndGggPSBtYXRjaExlbjsKIAlFeGVjUlBSUmVjb3JkQ29udGV4dFN1Y2Nl c3Mod2luc3RhdGUsIG1hdGNoTGVuKTsKIAogCS8qIFJlbW92ZSB0aGUgbWF0Y2hlZCBjb250ZXh0 ICovCkBAIC00NzQ3LDcgKzQ2OTIsNyBAQCBXaW5HZXRTbG90SW5GcmFtZShXaW5kb3dPYmplY3Qg d2lub2JqLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7 CiAJaW50NjQJCWFic19wb3M7CiAJaW50NjQJCW1hcmtfcG9zOwotCWludAkJCW51bV9yZWR1Y2Vk X2ZyYW1lOworCWludDY0CQludW1fcmVkdWNlZF9mcmFtZTsKIAogCUFzc2VydChXaW5kb3dPYmpl Y3RJc1ZhbGlkKHdpbm9iaikpOwogCXdpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv ZXhlY25vZGVzLmgKaW5kZXggMzMwMjhjM2YxMGIuLmM2NzJkMjlmMzViIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaApAQCAtMjQ5OSwxMCArMjQ5OSwxMiBAQCB0eXBlZGVmIGVudW0gV2luZG93QWdnU3Rh dHVzCiAJCQkJCQkJCQkgKiB0dXBsZXMgZHVyaW5nIHNwb29sICovCiB9IFdpbmRvd0FnZ1N0YXR1 czsKIAotI2RlZmluZQlSRl9OT1RfREVURVJNSU5FRAkwCi0jZGVmaW5lCVJGX0ZSQU1FX0hFQUQJ CTEKLSNkZWZpbmUJUkZfU0tJUFBFRAkJCTIKLSNkZWZpbmUJUkZfVU5NQVRDSEVECQkzCisvKiBS UFIgcmVkdWNlZCBmcmFtZSBzdGF0ZXMgcmV0dXJuZWQgYnkgZ2V0X3JlZHVjZWRfZnJhbWVfc3Rh dHVzKCkgKi8KKyNkZWZpbmUJUkZfTk9UX0RFVEVSTUlORUQJMAkvKiBub3QgeWV0IHByb2Nlc3Nl ZCAqLworI2RlZmluZQlSRl9GUkFNRV9IRUFECQkxCS8qIHN0YXJ0IHJvdyBvZiBhIG1hdGNoICov CisjZGVmaW5lCVJGX1NLSVBQRUQJCQkyCS8qIGludGVyaW9yIHJvdyBvZiBhIG1hdGNoICovCisj ZGVmaW5lCVJGX1VOTUFUQ0hFRAkJMwkvKiBubyBtYXRjaCBhdCB0aGlzIHJvdyAqLworI2RlZmlu ZQlSRl9FTVBUWV9NQVRDSAkJNAkvKiBlbXB0eSBtYXRjaCAoMCByb3dzKTsgdHJlYXRlZCBhcyB1 bm1hdGNoZWQgKi8KIAogLyoKICAqIFJQUk5GQVN0YXRlIC0gc2luZ2xlIE5GQSBzdGF0ZSBmb3Ig cGF0dGVybiBtYXRjaGluZwpAQCAtMjY5NCwxMiArMjY5NiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBX aW5kb3dBZ2dTdGF0ZQogCVR1cGxlVGFibGVTbG90ICpuZXh0X3Nsb3Q7CS8qIE5FWFQgcm93IG5h dmlnYXRpb24gb3BlcmF0b3IgKi8KIAlUdXBsZVRhYmxlU2xvdCAqbnVsbF9zbG90OwkvKiBhbGwg TlVMTCBzbG90ICovCiAKLQkvKgotCSAqIEVhY2ggYnl0ZSBjb3JyZXNwb25kcyB0byBhIHJvdyBw b3NpdGlvbmVkIGF0IGFic29sdXRlIGl0cyBwb3MgaW4KLQkgKiBwYXJ0aXRpb24uICBTZWUgYWJv dmUgZGVmaW5pdGlvbiBmb3IgUkZfKi4gVXNlZCBmb3IgUlBSLgotCSAqLwotCWNoYXIJICAgKnJl ZHVjZWRfZnJhbWVfbWFwOwotCWludDY0CQlhbGxvY19zejsJCS8qIHNpemUgb2YgdGhlIG1hcCAq LworCS8qIFJQUiBjdXJyZW50IG1hdGNoIHJlc3VsdCAqLworCWJvb2wJCXJwcl9tYXRjaF92YWxp ZDsJLyogdHJ1ZSBpZiBhIG1hdGNoIHJlc3VsdCBpcyBzZXQgKi8KKwlib29sCQlycHJfbWF0Y2hf bWF0Y2hlZDsJLyogdHJ1ZSBpZiB0aGUgcmVzdWx0IHdhcyBhIG1hdGNoICovCisJaW50NjQJCXJw cl9tYXRjaF9zdGFydDsJLyogc3RhcnQgcG9zaXRpb24gb2YgdGhlIG1hdGNoIHJlc3VsdCAqLwor CWludDY0CQlycHJfbWF0Y2hfbGVuZ3RoOwkvKiBudW1iZXIgb2Ygcm93cyBtYXRjaGVkICgwID0g ZW1wdHkpICovCiB9IFdpbmRvd0FnZ1N0YXRlOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IGJkMzQ1OTA2MTMzLi43 OWNiYzI0NjAzOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhw bGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQK QEAgLTMzNDgsOCArMzM0OCw4IEBAIFdJTkRPVyB3IEFTICgKICAgIFBhdHRlcm46ICgoYScgYicp KyIgYykqCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiA5IHBlYWssIDE3OCB0b3RhbCwgMCBtZXJnZWQKLSAgIE5GQSBDb250ZXh0czogNCBw ZWFrLCA2MSB0b3RhbCwgMjIgcHJ1bmVkCi0gICBORkE6IDEgbWF0Y2hlZCAobGVuIDU3LzU3LzU3 LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjAg cHJ1bmVkCisgICBORkE6IDMgbWF0Y2hlZCAobGVuIDAvNTcvMTkuMCksIDAgbWlzbWF0Y2hlZAog ICAgTkZBOiAwIGFic29yYmVkLCAzNyBza2lwcGVkIChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0x KQogKDkgcm93cykKQEAgLTMzODUsOCArMzM4NSw4IEBAIFdJTkRPVyB3IEFTICgKICAgIFBhdHRl cm46IChhIChiIGMpKykqCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiA3IHBlYWssIDE2MCB0b3RhbCwgMCBtZXJnZWQKLSAgIE5GQSBDb250 ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjIgcHJ1bmVkCi0gICBORkE6IDEgbWF0Y2hlZCAobGVu IDU3LzU3LzU3LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA2MSB0 b3RhbCwgMjAgcHJ1bmVkCisgICBORkE6IDMgbWF0Y2hlZCAobGVuIDAvNTcvMTkuMCksIDAgbWlz bWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzNyBza2lwcGVkIChsZW4gMS8zLzIuMCkKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4w MCBsb29wcz0xKQogKDkgcm93cykKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0009-Add-fixed-length-group-absorption-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0009-Add-fixed-length-group-absorption-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62grf8 RnJvbSA1ZDliZTc0MmM2MjY2ZDhmYmZmODg3YTA1NzdjMzc3NDNkNDI5NjkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMjE6NDc6MDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDA5LzQwXSBB ZGQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb24gZm9yIFJQUgoKRXh0ZW5kIGNvbnRleHQg YWJzb3JwdGlvbiB0byB1bmJvdW5kZWQgZ3JvdXBzIHdpdGggZml4ZWQtbGVuZ3RoCmNoaWxkcmVu IChtaW4gPT0gbWF4LCByZWN1cnNpdmVseSkuICBQYXR0ZXJucyBsaWtlIChBIEJ7Mn0pKyBvcgoo KEEgKEIgQyl7Mn0pezJ9KSsgYXJlIG5vdyBhYnNvcmJhYmxlLCBlcXVpdmFsZW50IHRvIHVucm9s bGluZyB0bwp7MSwxfSBWQVJzIGF0IGNvbXBpbGUgdGltZSB3aXRob3V0IGFjdHVhbGx5IHVucm9s bGluZy4KCmlzRml4ZWRMZW5ndGhDaGlsZHJlbigpIHJlY3Vyc2l2ZWx5IHZlcmlmaWVzIG1pbiA9 PSBtYXggZm9yIGFsbApjaGlsZHJlbiBpbmNsdWRpbmcgbmVzdGVkIHN1Ymdyb3VwcywgZXh0ZW5k aW5nIHRoZSBleGlzdGluZyBDYXNlIDIKaW4gaXNVbmJvdW5kZWRTdGFydCgpLgoKQWJzb3JwdGlv biBjb21wYXJpc29uIGluIG5mYV9zdGF0ZXNfY292ZXJlZCByZXF1aXJlcyBzdGF0ZXMgdG8gYmUg YXQKYW4gQUJTT1JCQUJMRSBqdWRnbWVudCBwb2ludCwgd2hlcmUgY291bnQtZG9taW5hbmNlIGlz IGd1YXJhbnRlZWQuClRoZSBpbmxpbmUgYWR2YW5jZSBpbiBuZmFfbWF0Y2ggaXMgZ2VuZXJhbGl6 ZWQgdG8gYWR2YW5jZSBib3VuZGVkClZBUnMgd2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbiB0 aHJvdWdoIEVORCBjaGFpbnMgdG8gcmVhY2ggdGhlCmp1ZGdtZW50IHBvaW50LgoKRml4IGlzQWJz b3JiYWJsZSBwcm9wYWdhdGlvbiBpbiBuZmFfYWR2YW5jZV92YXIgYW5kIG5mYV9hZHZhbmNlX2Vu ZApleGl0IHBhdGhzLCB3aGVyZSByZXVzaW5nIGEgc3RhdGUgb2JqZWN0IHNraXBwZWQgcmVjb21w dXRhdGlvbi4KCk1hcmsgVkFSIGVsZW1lbnRzIGluIHRoZSBERlMgdmlzaXRlZCBiaXRtYXAgYXQg bmZhX2FkZF9zdGF0ZV91bmlxdWUKaW5zdGVhZCBvZiBhdCBuZmFfYWR2YW5jZV9zdGF0ZSBlbnRy eSwgc28gdGhhdCBsb29wLWJhY2sgdGhyb3VnaCBBTFQKdG8gdGhlIHNhbWUgVkFSIGlzIG5vdCBp bmNvcnJlY3RseSBibG9ja2VkIGJ5IGN5Y2xlIGRldGVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUlBSLmMgICAgICAgICAgICB8IDExMCArKysrKystLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcnByLmMgICAgICAgICAgfCAxMzYgKysrKysrKy0tCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8ICA4MyArKysrKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0IHwgMjA2ICsrKysrKysrKysrKystCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0ICAgICB8IDMyMSArKysrKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICAgICB8ICAz NiArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAgIHwgMTE0ICsr KysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgICAgICB8IDE2OCAr KysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAxMTExIGluc2VydGlvbnMoKyksIDYzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCA3ZDBmOGZkNDAxYy4uYWVjMTA1N2Ux YjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTE3NjAsNiArMTc2MCwxMCBAQCBuZmFfYWRk X3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0 eCwgUlBSTkZBU3RhdGUgKgogCVJQUk5GQVN0YXRlICpzOwogCVJQUk5GQVN0YXRlICp0YWlsID0g TlVMTDsKIAorCS8qIE1hcmsgVkFSIGluIHZpc2l0ZWQgYmVmb3JlIGR1cGxpY2F0ZSBjaGVjayB0 byBwcmV2ZW50IERGUyBsb29wcyAqLworCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXNbV09SRE5V TShzdGF0ZS0+ZWxlbUlkeCldIHw9CisJCSgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0oc3RhdGUt PmVsZW1JZHgpKTsKKwogCS8qIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAqLwog CWZvciAocyA9IGN0eC0+c3RhdGVzOyBzICE9IE5VTEw7IHMgPSBzLT5uZXh0KQogCXsKQEAgLTIw MzMsNiArMjAzNywxNCBAQCBuZmFfc3RhdGVzX2NvdmVyZWQoUlBSUGF0dGVybiAqcGF0dGVybiwg UlBSTkZBQ29udGV4dCAqb2xkZXIsIFJQUk5GQUNvbnRleHQgKm5ldwogCQllbGVtID0gJnBhdHRl cm4tPmVsZW1lbnRzW25ld2VyU3RhdGUtPmVsZW1JZHhdOwogCQlkZXB0aCA9IGVsZW0tPmRlcHRo OwogCisJCS8qCisJCSAqIE9ubHkgY29tcGFyZSBhdCBhYnNvcnB0aW9uIGp1ZGdtZW50IHBvaW50 cyAoUlBSX0VMRU1fQUJTT1JCQUJMRSkuCisJCSAqIEp1ZGdtZW50IHBvaW50cyBhcmUgd2hlcmUg Y291bnQtZG9taW5hbmNlIGd1YXJhbnRlZXMgdGhlIG5ld2VyCisJCSAqIGNvbnRleHQncyBmdXR1 cmUgbWF0Y2hlcyBhcmUgYSBzdWJzZXQgb2YgdGhlIG9sZGVyJ3MuCisJCSAqLworCQlpZiAoIVJQ UkVsZW1Jc0Fic29yYmFibGUoZWxlbSkpCisJCQlyZXR1cm4gZmFsc2U7CisKIAkJZm9yIChvbGRl clN0YXRlID0gb2xkZXItPnN0YXRlczsgb2xkZXJTdGF0ZSAhPSBOVUxMOyBvbGRlclN0YXRlID0g b2xkZXJTdGF0ZS0+bmV4dCkKIAkJewogCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKQEAgLTIx NzUsOSArMjE4NywxMCBAQCBuZmFfZXZhbF92YXJfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKICAqICAgLSBub3QgbWF0Y2hlZDogcmVtb3Zl IHN0YXRlIChleGl0IGFsdGVybmF0aXZlcyBhbHJlYWR5IGV4aXN0IGZyb20KICAqICAgICBwcmV2 aW91cyBhZHZhbmNlIHdoZW4gY291bnQgPj0gbWluIHdhcyBzYXRpc2ZpZWQpCiAgKgotICogRm9y IHNpbXBsZSBWQVJzIChtaW49bWF4PTEpIGZvbGxvd2VkIGJ5IEVORDoKLSAqICAgLSBBZHZhbmNl IHRvIEVORCBhbmQgdXBkYXRlIGdyb3VwIGNvdW50IGJlZm9yZSBhYnNvcmIgcGhhc2UKLSAqICAg LSBUaGlzIGVuc3VyZXMgYWJzb3JwdGlvbiBjYW4gY29tcGFyZSBzdGF0ZXMgYnkgZ3JvdXAgY29t cGxldGlvbgorICogRm9yIFZBUnMgdGhhdCByZWFjaGVkIG1heCBjb3VudCBmb2xsb3dlZCBieSBF TkQ6CisgKiAgIC0gQWR2YW5jZSB0aHJvdWdoIEVORCBjaGFpbiB0byByZWFjaCBhYnNvcnB0aW9u IGp1ZGdtZW50IHBvaW50CisgKiAgIC0gT25seSBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+ PSBtYXgsIG1heCAhPSBJTkYpIGFyZSBoYW5kbGVkCisgKiAgIC0gQ2hhaW5zIHRocm91Z2ggRU5E IGVsZW1lbnRzIHdoaWxlIGNvdW50ID49IG1heCAobXVzdC1leGl0IHBhdGgpCiAgKgogICogTm9u LVZBUiBlbGVtZW50cyAoQUxULCBFTkQsIEZJTikgYXJlIGtlcHQgYXMtaXMgZm9yIGFkdmFuY2Ug cGhhc2UuCiAgKi8KQEAgLTIxOTEsOSArMjIwNCw5IEBAIG5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKIAlSUFJO RkFTdGF0ZSAqbmV4dFN0YXRlOwogCiAJLyoKLQkgKiBFdmFsdWF0ZSBWQVIgZWxlbWVudHMgYWdh aW5zdCBjdXJyZW50IHJvdy4gRm9yIHNpbXBsZSBWQVJzIHdpdGggRU5ECi0JICogbmV4dCwgYWR2 YW5jZSB0byBFTkQgYW5kIHVwZGF0ZSBncm91cCBjb3VudCBpbmxpbmUgc28gYWJzb3JiIHBoYXNl IGNhbgotCSAqIGNvbXBhcmUgc3RhdGVzIHByb3Blcmx5LgorCSAqIEV2YWx1YXRlIFZBUiBlbGVt ZW50cyBhZ2FpbnN0IGN1cnJlbnQgcm93LiBGb3IgVkFScyB0aGF0IHJlYWNoIG1heAorCSAqIGNv dW50IHdpdGggRU5EIG5leHQsIGFkdmFuY2UgdGhyb3VnaCBFTkQgY2hhaW4gaW5saW5lIHNvIGFi c29yYiBwaGFzZQorCSAqIGNhbiBjb21wYXJlIHN0YXRlcyBhdCBqdWRnbWVudCBwb2ludHMuCiAJ ICovCiAJZm9yIChzdGF0ZSA9IGN0eC0+c3RhdGVzOyBzdGF0ZSAhPSBOVUxMOyBzdGF0ZSA9IG5l eHRTdGF0ZSkKIAl7CkBAIC0yMjIzLDM0ICsyMjM2LDYxIEBAIG5mYV9tYXRjaChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKIAkJ CQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9IGNvdW50OwogCiAJCQkJLyoKLQkJCQkgKiBGb3Igc2lt cGxlIFZBUiAobWluPW1heD0xKSB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRvIEVORAotCQkJCSAq IGFuZCB1cGRhdGUgZ3JvdXAgY291bnQgaW5saW5lLiBUaGlzIGtlZXBzIHN0YXRlIGluIHBsYWNl LAotCQkJCSAqIHByZXNlcnZpbmcgbGV4aWNhbCBvcmRlci4KKwkJCQkgKiBGb3IgVkFSIGF0IG1h eCBjb3VudCB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRocm91Z2ggRU5ECisJCQkJICogY2hhaW4g dG8gcmVhY2ggdGhlIGFic29ycHRpb24ganVkZ21lbnQgcG9pbnQuIE9ubHkKKwkJCQkgKiBkZXRl cm1pbmlzdGljIGV4aXRzIChjb3VudCA+PSBtYXgsIG1heCBmaW5pdGUpIGFyZSBoYW5kbGVkOwor CQkJCSAqIHVuYm91bmRlZCBWQVJzIHN0YXkgZm9yIGFkdmFuY2UgcGhhc2UuCiAJCQkJICovCi0J CQkJaWYgKGVsZW0tPm1pbiA9PSAxICYmIGVsZW0tPm1heCA9PSAxICYmCisJCQkJaWYgKFJQUkVs ZW1Jc0Fic29yYmFibGVCcmFuY2goZWxlbSkgJiYKKwkJCQkJIVJQUkVsZW1Jc0Fic29yYmFibGUo ZWxlbSkgJiYKKwkJCQkJY291bnQgPj0gZWxlbS0+bWF4ICYmCiAJCQkJCVJQUkVsZW1Jc0VuZCgm ZWxlbWVudHNbZWxlbS0+bmV4dF0pKQogCQkJCXsKIAkJCQkJUlBSUGF0dGVybkVsZW1lbnQgKmVu ZEVsZW0gPSAmZWxlbWVudHNbZWxlbS0+bmV4dF07CiAJCQkJCWludAkJCWVuZERlcHRoID0gZW5k RWxlbS0+ZGVwdGg7CiAJCQkJCWludDMyCQllbmRDb3VudCA9IHN0YXRlLT5jb3VudHNbZW5kRGVw dGhdOwogCi0JCQkJCUFzc2VydChjb3VudCA9PSAxKTsKLQotCQkJCQkvKiBJbmNyZW1lbnQgZ3Jv dXAgY291bnQgd2l0aCBvdmVyZmxvdyBwcm90ZWN0aW9uICovCisJCQkJCS8qIEluY3JlbWVudCBn cm91cCBjb3VudCAqLwogCQkJCQlpZiAoZW5kQ291bnQgPCBSUFJfQ09VTlRfTUFYKQogCQkJCQkJ ZW5kQ291bnQrKzsKLQotCQkJCQkvKgotCQkJCQkgKiBFTkQncyBtYXggY2FuIG5ldmVyIGJlIGV4 Y2VlZGVkIGhlcmUgYmVjYXVzZQotCQkJCQkgKiBuZmFfYWR2YW5jZV9lbmQgb25seSBsb29wcyB3 aGVuIGNvdW50IDwgbWF4LCBzbwotCQkJCQkgKiBlbmRDb3VudCBlbnRlcmluZyBpbmxpbmUgYWR2 YW5jZSBpcyBhdCBtb3N0IG1heC0xLCBhbmQKLQkJCQkJICogaW5jcmVtZW50aW5nIHlpZWxkcyBh dCBtb3N0IG1heC4KLQkJCQkJICovCiAJCQkJCUFzc2VydChlbmRFbGVtLT5tYXggPT0gUlBSX1FV QU5USVRZX0lORiB8fAogCQkJCQkJICAgZW5kQ291bnQgPD0gZW5kRWxlbS0+bWF4KTsKIAogCQkJ CQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCQkJCXN0YXRlLT5jb3VudHNbZW5kRGVw dGhdID0gZW5kQ291bnQ7CisKKwkJCQkJLyoKKwkJCQkJICogQ2hhaW4gdGhyb3VnaCBFTkQgZWxl bWVudHMgd2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbgorCQkJCQkgKiAoQUJTT1JCQUJMRV9C UkFOQ0gpIHVudGlsIHJlYWNoaW5nIHRoZSBqdWRnbWVudCBwb2ludAorCQkJCQkgKiAoQUJTT1JC QUJMRSkuICBDb250aW51ZSBvbmx5IG9uIG11c3QtZXhpdCBwYXRoIChjb3VudAorCQkJCQkgKiA+ PSBtYXgpIHdpdGggRU5EIG5leHQuCisJCQkJCSAqLworCQkJCQl3aGlsZSAoUlBSRWxlbUlzQWJz b3JiYWJsZUJyYW5jaChlbmRFbGVtKSAmJgorCQkJCQkJICAgIVJQUkVsZW1Jc0Fic29yYmFibGUo ZW5kRWxlbSkgJiYKKwkJCQkJCSAgIGVuZENvdW50ID49IGVuZEVsZW0tPm1heCAmJgorCQkJCQkJ ICAgUlBSRWxlbUlzRW5kKCZlbGVtZW50c1tlbmRFbGVtLT5uZXh0XSkpCisJCQkJCXsKKwkJCQkJ CVJQUlBhdHRlcm5FbGVtZW50ICpvdXRlckVuZCA9ICZlbGVtZW50c1tlbmRFbGVtLT5uZXh0XTsK KwkJCQkJCWludAkJCW91dGVyRGVwdGggPSBvdXRlckVuZC0+ZGVwdGg7CisJCQkJCQlpbnQzMgkJ b3V0ZXJDb3VudCA9IHN0YXRlLT5jb3VudHNbb3V0ZXJEZXB0aF07CisKKwkJCQkJCS8qIFJlc2V0 IGV4aXRlZCBncm91cCdzIGNvdW50ICovCisJCQkJCQlzdGF0ZS0+Y291bnRzW2VuZERlcHRoXSA9 IDA7CisKKwkJCQkJCS8qIEluY3JlbWVudCBvdXRlciBncm91cCBjb3VudCAqLworCQkJCQkJaWYg KG91dGVyQ291bnQgPCBSUFJfQ09VTlRfTUFYKQorCQkJCQkJCW91dGVyQ291bnQrKzsKKwkJCQkJ CUFzc2VydChvdXRlckVuZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJCQkgICBv dXRlckNvdW50IDw9IG91dGVyRW5kLT5tYXgpOworCisJCQkJCQlzdGF0ZS0+ZWxlbUlkeCA9IGVu ZEVsZW0tPm5leHQ7CisJCQkJCQlzdGF0ZS0+Y291bnRzW291dGVyRGVwdGhdID0gb3V0ZXJDb3Vu dDsKKworCQkJCQkJLyogQWR2YW5jZSB0byBuZXh0IEVORCBpbiBjaGFpbiAqLworCQkJCQkJZW5k RWxlbSA9IG91dGVyRW5kOworCQkJCQkJZW5kRGVwdGggPSBvdXRlckRlcHRoOworCQkJCQkJZW5k Q291bnQgPSBvdXRlckNvdW50OworCQkJCQl9CiAJCQkJfQogCQkJCS8qIGVsc2U6IHN0YXkgYXQg VkFSIGZvciBhZHZhbmNlIHBoYXNlICovCiAJCQl9CkBAIC0yNDY4LDYgKzI1MDgsMTAgQEAgbmZh X2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4 LAogCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCW5leHRFbGVtID0gJmVsZW1lbnRz W3N0YXRlLT5lbGVtSWR4XTsKIAorCQkvKiBVcGRhdGUgaXNBYnNvcmJhYmxlIGZvciB0YXJnZXQg ZWxlbWVudCAobW9ub3RvbmljKSAqLworCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlz QWJzb3JiYWJsZSAmJgorCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7CisK IAkJLyogRU5ELT5FTkQ6IGluY3JlbWVudCBvdXRlciBFTkQncyBjb3VudCAqLwogCQlpZiAoUlBS RWxlbUlzRW5kKG5leHRFbGVtKSAmJiBzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBS UFJfQ09VTlRfTUFYKQogCQkJc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CkBAIC0y NjIxLDYgKzI2NjUsMTMgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0Owog CQkJbmV4dEVsZW0gPSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCQkvKgorCQkJICog VXBkYXRlIGlzQWJzb3JiYWJsZSBmb3IgdGFyZ2V0IGVsZW1lbnQgKG1vbm90b25pYzogQU5ECisJ CQkgKiBwcmVzZXJ2ZXMgZmFsc2UpCisJCQkgKi8KKwkJCXN0YXRlLT5pc0Fic29yYmFibGUgPSBz dGF0ZS0+aXNBYnNvcmJhYmxlICYmCisJCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0 RWxlbSk7CisKIAkJCS8qCiAJCQkgKiBXaGVuIGV4aXRpbmcgZGlyZWN0bHkgdG8gYW4gb3V0ZXIg RU5ELCBpbmNyZW1lbnQgaXRzIGl0ZXJhdGlvbgogCQkJICogY291bnQuICBTaW1wbGUgVkFScyAo bWluPW1heD0xKSBoYW5kbGUgdGhpcyB2aWEgaW5saW5lIGFkdmFuY2UKQEAgLTI2NTAsNiArMjcw MSwxMyBAQCBuZmFfYWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgsCiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKIAkJbmV4dEVsZW0g PSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCS8qCisJCSAqIFVwZGF0ZSBpc0Fic29y YmFibGUgZm9yIHRhcmdldCBlbGVtZW50IChtb25vdG9uaWM6IEFORCBwcmVzZXJ2ZXMKKwkJICog ZmFsc2UpCisJCSAqLworCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlzQWJzb3JiYWJs ZSAmJgorCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7CisKIAkJLyogU2Vl IGNvbW1lbnQgYWJvdmU6IGluY3JlbWVudCBvdXRlciBFTkQgY291bnQgZm9yIHF1YW50aWZpZWQg VkFScyAqLwogCQlpZiAoUlBSRWxlbUlzRW5kKG5leHRFbGVtKSkKIAkJewpAQCAtMjY4NiwxMSAr Mjc0NCwxOSBAQCBuZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQUNvbnRleHQgKmN0eCwKIAkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKIAkJ cmV0dXJuOwogCX0KLQl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUtPmVs ZW1JZHgpXSB8PQotCQkoKGJpdG1hcHdvcmQpIDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4KSk7 CiAKIAllbGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAorCS8qCisJ ICogTWFyayBlcHNpbG9uIGVsZW1lbnRzIChFTkQsIEFMVCwgQkVHSU4sIEZJTikgaW4gdmlzaXRl ZCB0byBwcmV2ZW50CisJICogaW5maW5pdGUgZXBzaWxvbiBjeWNsZXMuICBWQVIgZWxlbWVudHMg YXJlIG1hcmtlZCBsYXRlciB3aGVuIGFkZGVkIHRvCisJICogdGhlIHN0YXRlIGxpc3QgKG5mYV9h ZGRfc3RhdGVfdW5pcXVlKSwgYWxsb3dpbmcgbGVnaXRpbWF0ZSBsb29wLWJhY2sgdG8KKwkgKiB0 aGUgc2FtZSBWQVIgaW4gYSBuZXcgaXRlcmF0aW9uLgorCSAqLworCWlmICghUlBSRWxlbUlzVmFy KGVsZW0pKQorCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUtPmVsZW1J ZHgpXSB8PQorCQkJKChiaXRtYXB3b3JkKSAxIDw8IEJJVE5VTShzdGF0ZS0+ZWxlbUlkeCkpOwor CiAJc3dpdGNoIChlbGVtLT52YXJJZCkKIAl7CiAJCWNhc2UgUlBSX1ZBUklEX0ZJTjoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcnByLmMKaW5kZXggMjcyOGEwYjlmY2EuLmMwZTlkMTM0YWE5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtOTIsNiArOTIsOCBAQCBzdGF0aWMgYm9vbCBmaWxsUlBS UGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LAogc3RhdGljIHZv aWQgZmluYWxpemVSUFJQYXR0ZXJuKFJQUlBhdHRlcm4gKnJlc3VsdCk7CiAKIC8qIEZvcndhcmQg ZGVjbGFyYXRpb25zIC0gY29udGV4dCBhYnNvcnB0aW9uICovCitzdGF0aWMgYm9vbCBpc0ZpeGVk TGVuZ3RoQ2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgsCisJCQkJ CQkJCSAgUlBSRGVwdGggc2NvcGVEZXB0aCk7CiBzdGF0aWMgYm9vbCBpc1VuYm91bmRlZFN0YXJ0 KFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUkVsZW1JZHggaWR4KTsKIHN0YXRpYyB2b2lkIGNvbXB1 dGVBYnNvcmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRlcm4sCiAJCQkJCQkJCQkJ ICBSUFJFbGVtSWR4IHN0YXJ0SWR4LApAQCAtMTUyNCw2ICsxNTI2LDcwIEBAIGZpbmFsaXplUlBS UGF0dGVybihSUFJQYXR0ZXJuICpyZXN1bHQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCisv KgorICogaXNGaXhlZExlbmd0aENoaWxkcmVuCisgKgkJQ2hlY2sgaWYgYWxsIGNoaWxkcmVuIGF0 IHNjb3BlRGVwdGggaGF2ZSBmaXhlZC1sZW5ndGggcXVhbnRpZmllcnMKKyAqCQkobWluID09IG1h eCksIHJlY3Vyc2l2ZWx5IGZvciBuZXN0ZWQgc3ViZ3JvdXBzLgorICoKKyAqIEEgZml4ZWQtbGVu Z3RoIGdyb3VwIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRvIHVucm9sbGluZyBlYWNoIGNo aWxkCisgKiB0byB7MSwxfSBjb3BpZXMsIHdoaWNoIGlzIHRoZSBleGlzdGluZyBDYXNlIDIgYWxy ZWFkeSBwcm92ZW4gY29ycmVjdAorICogZm9yIGFic29ycHRpb24uICBUaGlzIGNoZWNrIHJlY29n bml6ZXMgZml4ZWQtbGVuZ3RoIGdyb3VwcyBhdCBjb21waWxlCisgKiB0aW1lIHdpdGhvdXQgYWN0 dWFsbHkgdW5yb2xsaW5nIHRoZW0uCisgKgorICogVHJhdmVyc2VzIHRoZSBmbGF0IGVsZW1lbnQg YXJyYXkgc3RhcnRpbmcgYXQgaWR4LiAgRm9yIFZBUiBlbGVtZW50cywKKyAqIGNoZWNrcyBtaW4g PT0gbWF4LiAgRm9yIEJFR0lOIGVsZW1lbnRzIChuZXN0ZWQgc3ViZ3JvdXBzKSwgcmVjdXJzZXMK KyAqIGludG8gdGhlIHN1Ymdyb3VwIGFuZCBhbHNvIGNoZWNrcyB0aGUgc3ViZ3JvdXAncyBFTkQg cXVhbnRpZmllci4KKyAqIEFMVCBlbGVtZW50cyBhcmUgcmVqZWN0ZWQgKGFsdGVybmF0aW9uIGlu c2lkZSBhYnNvcmJhYmxlIGdyb3VwIGlzCisgKiBub3Qgc3VwcG9ydGVkKS4KKyAqCisgKiBSZXR1 cm5zIHRydWUgaWYgYWxsIGNoaWxkcmVuIGFyZSBmaXhlZC1sZW5ndGgsIHN0b3BwaW5nIGF0IHRo ZSBFTkQKKyAqIGVsZW1lbnQgYXQgc2NvcGVEZXB0aCAtIDEuCisgKi8KK3N0YXRpYyBib29sCitp c0ZpeGVkTGVuZ3RoQ2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgs IFJQUkRlcHRoIHNjb3BlRGVwdGgpCit7CisJUlBSUGF0dGVybkVsZW1lbnQgKmUgPSAmcGF0dGVy bi0+ZWxlbWVudHNbaWR4XTsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKKwl3aGlsZSAoZS0+ ZGVwdGggPT0gc2NvcGVEZXB0aCkKKwl7CisJCWlmIChSUFJFbGVtSXNWYXIoZSkpCisJCXsKKwkJ CWlmIChlLT5taW4gIT0gZS0+bWF4KQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCQllbHNlIGlm IChSUFJFbGVtSXNCZWdpbihlKSkKKwkJeworCQkJUlBSRWxlbUlkeAljaGlsZElkeCA9IGUtPm5l eHQ7CisKKwkJCS8qIFJlY3Vyc2UgaW50byBzdWJncm91cCBjaGlsZHJlbiBhdCBzY29wZURlcHRo ICsgMSAqLworCQkJaWYgKCFpc0ZpeGVkTGVuZ3RoQ2hpbGRyZW4ocGF0dGVybiwgY2hpbGRJZHgs IHNjb3BlRGVwdGggKyAxKSkKKwkJCQlyZXR1cm4gZmFsc2U7CisKKwkJCS8qIEFkdmFuY2UgcGFz dCB0aGUgc3ViZ3JvdXAgdG8gaXRzIEVORCBlbGVtZW50ICovCisJCQllID0gJnBhdHRlcm4tPmVs ZW1lbnRzW2UtPm5leHRdOworCQkJd2hpbGUgKGUtPmRlcHRoID4gc2NvcGVEZXB0aCkKKwkJCQll ID0gJnBhdHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdOworCisJCQkvKiBlIGlzIG5vdyB0aGUgRU5E IGF0IHNjb3BlRGVwdGg7IGNoZWNrIGl0cyBxdWFudGlmaWVyICovCisJCQlBc3NlcnQoUlBSRWxl bUlzRW5kKGUpICYmIGUtPmRlcHRoID09IHNjb3BlRGVwdGgpOworCQkJaWYgKGUtPm1pbiAhPSBl LT5tYXgpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogQUxUIGlu c2lkZSBncm91cDogbm90IHN1cHBvcnRlZCBmb3IgYWJzb3JwdGlvbiAqLworCQkJcmV0dXJuIGZh bHNlOworCQl9CisKKwkJQXNzZXJ0KGUtPm5leHQgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCk7CisJ CWUgPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF07CisJfQorCisJcmV0dXJuIHRydWU7Cit9 CisKIC8qCiAgKiBpc1VuYm91bmRlZFN0YXJ0CiAgKgkJQ2hlY2sgaWYgdGhlIGVsZW1lbnQgYXQg aWR4IHN0YXJ0cyBhbiB1bmJvdW5kZWQgZ3JlZWR5IHNlcXVlbmNlLgpAQCAtMTUzMywyOSArMTU5 OSwzMSBAQCBmaW5hbGl6ZVJQUlBhdHRlcm4oUlBSUGF0dGVybiAqcmVzdWx0KQogICogICAtIEdy ZWVkeSAobm90IHJlbHVjdGFudCkKICAqICAgLSBBdCB0aGUgc3RhcnQgb2YgY3VycmVudCBzY29w ZQogICoKLSAqIEFsZ29yaXRobToKLSAqICAgLSBUcmF2ZXJzZSBlbGVtZW50cyB3aXRoaW4gY3Vy cmVudCBzY29wZSAocGFyZW50RGVwdGggdG8gc3RhcnREZXB0aCkKLSAqICAgLSBGb3IgR1JPVVA6 IG11c3QgYmUgdW5ib3VuZGVkIGdyZWVkeSBBTkQgY29udGFpbiBvbmx5IHNpbXBsZSB7MSwxfSBW QVJzCi0gKiAgIC0gU2V0cyBBQlNPUkJBQkxFIGFuZCBBQlNPUkJBQkxFX0JSQU5DSCBmbGFncyBv biBtYXRjaGluZyBlbGVtZW50cwotICoKICAqIFR3byBjYXNlcyBhcmUgaGFuZGxlZDoKICAqICAg MS4gU2ltcGxlIFZBUjogQSsgQiBDIC0gQSBoYXMgbWF4PUlORiwgZ2V0cyBib3RoIGZsYWdzCi0g KiAgIDIuIEdyb3VwOiAoQSBCKSsgQyAtIEVORCBoYXMgbWF4PUlORiwgYWxsIGNoaWxkcmVuIGFy ZSB7MSwxfSBWQVJzCi0gKiAgICAgIEEsQixFTkQgZ2V0IEFCU09SQkFCTEVfQlJBTkNILCBvbmx5 IEVORCBnZXRzIEFCU09SQkFCTEUKKyAqICAgMi4gVW5ib3VuZGVkIEdST1VQIHdpdGggZml4ZWQt bGVuZ3RoIGNoaWxkcmVuOiAoQSBCezJ9KSsgQworICogICAgICBBbGwgY2hpbGRyZW4gbXVzdCBo YXZlIG1pbiA9PSBtYXggKHJlY3Vyc2l2ZWx5IGZvciBuZXN0ZWQgc3ViZ3JvdXBzKS4KKyAqICAg ICAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfSBWQVJzLCBlLmcuLCAo QSBCIEIpKyBDLgorICogICAgICBBbGwgZWxlbWVudHMgd2l0aGluIHRoZSBncm91cCBnZXQgQUJT T1JCQUJMRV9CUkFOQ0guCisgKiAgICAgIE9ubHkgdGhlIHVuYm91bmRlZCBFTkQgZ2V0cyBBQlNP UkJBQkxFIChqdWRnbWVudCBwb2ludCkuCisgKiAgICAgIEV4YW1wbGVzOgorICogICAgICAgIChB IEJ7Mn0pKyBDICAgICAgICAgIC0gQnsyfSBoYXMgbWluPT1tYXgsIHN0ZXA9MworICogICAgICAg IChBIChCIEMpezJ9IEQpKyBFICAgIC0gbmVzdGVkIHsyfSBzdWJncm91cCwgc3RlcD02CisgKiAg ICAgICAgKChBIChCIEMpezJ9KXsyfSkrICAgLSBkb3VibHkgbmVzdGVkIHsyfSwgc3RlcD0xMAor ICogICAgICAgIChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRiAgLSBkZWVwIG5lc3RpbmcsIHN0 ZXA9MjAKICAqCiAgKiBSZXR1cm5zIGZhbHNlIGZvciBwYXR0ZXJucyB3aGVyZSBhYnNvcnB0aW9u IGNhbm5vdCB3b3JrOgogICogICAtIEEgQisgKHVuYm91bmRlZCBub3QgYXQgc3RhcnQpCiAgKiAg IC0gQSs/IEIgKHJlbHVjdGFudCBxdWFudGlmaWVyKQogICogICAtIChBIHwgQikrIChBTFQgaW5z aWRlIGdyb3VwKQotICogICAtIChBIEIrKSsgKHVuYm91bmRlZCBlbGVtZW50IGluc2lkZSBncm91 cCkKLSAqICAgLSAoKEEgQikrIEMpKyAobmVzdGVkIHVuYm91bmRlZCBncm91cHMpCisgKiAgIC0g KEEgQispKyAodmFyaWFibGUtbGVuZ3RoIGVsZW1lbnQgaW5zaWRlIGdyb3VwKQorICogICAtIChB IEJ7Miw1fSkrIChtaW4gIT0gbWF4IGluc2lkZSBncm91cCkKICAqLwogc3RhdGljIGJvb2wKIGlz VW5ib3VuZGVkU3RhcnQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgpCiB7CiAJ UlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbaWR4XTsKIAlSUFJE ZXB0aAlzdGFydERlcHRoID0gZWxlbS0+ZGVwdGg7Ci0JUlBSUGF0dGVybkVsZW1lbnQgKm5leHRF bGVtOwogCVJQUlBhdHRlcm5FbGVtZW50ICplOwogCiAJLyogQ2FzZSAxOiBTaW1wbGUgdW5ib3Vu ZGVkIFZBUiBhdCBzdGFydCAoZ3JlZWR5IG9ubHkpICovCkBAIC0xNTY4LDIxICsxNjM2LDE5IEBA IGlzVW5ib3VuZGVkU3RhcnQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgpCiAJ fQogCiAJLyoKLQkgKiBDYXNlIDI6IFVuYm91bmRlZCBHUk9VUCAtIHRyYXZlcnNlIHNpYmxpbmdz IGF0IHN0YXJ0RGVwdGggYW5kIGNoZWNrIGlmCi0JICogdGhleSdyZSBhbGwgc2ltcGxlIHsxLDF9 IFZBUnMsIHRoZW4gY2hlY2sgaWYgRU5EIGF0IHN0YXJ0RGVwdGggLSAxIGlzCi0JICogdW5ib3Vu ZGVkIGdyZWVkeS4KKwkgKiBDYXNlIDI6IFVuYm91bmRlZCBHUk9VUCB3aXRoIGZpeGVkLWxlbmd0 aCBjaGlsZHJlbi4gIEVhY2ggY2hpbGQgbXVzdAorCSAqIGhhdmUgbWluID09IG1heCAocmVjdXJz aXZlbHkgZm9yIG5lc3RlZCBzdWJncm91cHMpLCBlbnN1cmluZyBhIGZpeGVkCisJICogc3RlcCBz aXplIHBlciBpdGVyYXRpb24gc28gdGhhdCBjb3VudC1kb21pbmFuY2UgaG9sZHMuCiAJICovCi0J Zm9yIChlID0gZWxlbTsgZS0+ZGVwdGggPT0gc3RhcnREZXB0aDsgZSA9IG5leHRFbGVtKQotCXsK LQkJLyogTXVzdCBiZSBzaW1wbGUgezEsMX0gVkFSICovCi0JCWlmICghUlBSRWxlbUlzVmFyKGUp IHx8IGUtPm1pbiAhPSAxIHx8IGUtPm1heCAhPSAxKQotCQkJcmV0dXJuIGZhbHNlOworCWlmICgh aXNGaXhlZExlbmd0aENoaWxkcmVuKHBhdHRlcm4sIGlkeCwgc3RhcnREZXB0aCkpCisJCXJldHVy biBmYWxzZTsKIAotCQlBc3NlcnQoZS0+bmV4dCAhPSBSUFJfRUxFTUlEWF9JTlZBTElEKTsKLQkJ bmV4dEVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF07Ci0JfQorCS8qIEZpbmQgdGhl IEVORCBlbGVtZW50IGF0IHN0YXJ0RGVwdGggLSAxICovCisJZSA9ICZwYXR0ZXJuLT5lbGVtZW50 c1tpZHhdOworCXdoaWxlIChlLT5kZXB0aCA+PSBzdGFydERlcHRoKQorCQllID0gJnBhdHRlcm4t PmVsZW1lbnRzW2UtPm5leHRdOwogCi0JLyogTm93IGUgc2hvdWxkIGJlIEVORCBhdCBzdGFydERl cHRoIC0gMSAqLworCS8qIEVORCBtdXN0IGJlIHVuYm91bmRlZCBncmVlZHkgKi8KIAlpZiAoZS0+ ZGVwdGggPT0gc3RhcnREZXB0aCAtIDEgJiYKIAkJUlBSRWxlbUlzRW5kKGUpICYmIGUtPm1heCA9 PSBSUFJfUVVBTlRJVFlfSU5GICYmCiAJCSFSUFJFbGVtSXNSZWx1Y3RhbnQoZSkpCkBAIC0xNTkw LDcgKzE2NTYsOCBAQCBpc1VuYm91bmRlZFN0YXJ0KFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUkVs ZW1JZHggaWR4KQogCQlBc3NlcnQoZS0+anVtcCA9PSBpZHgpOyAvKiBFTkQgcG9pbnRzIGJhY2sg dG8gZmlyc3QgY2hpbGQgKi8KIAogCQkvKiBTZXQgQUJTT1JCQUJMRV9CUkFOQ0ggb24gYWxsIGNo aWxkcmVuLCBBQlNPUkJBQkxFIG9uIEVORCBvbmx5ICovCi0JCWZvciAoZSA9IGVsZW07ICFSUFJF bGVtSXNFbmQoZSk7IGUgPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF0pCisJCWZvciAoZSA9 IGVsZW07ICFSUFJFbGVtSXNFbmQoZSkgfHwgZS0+ZGVwdGggPj0gc3RhcnREZXB0aDsKKwkJCSBl ID0gJnBhdHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdKQogCQkJZS0+ZmxhZ3MgfD0gUlBSX0VMRU1f QUJTT1JCQUJMRV9CUkFOQ0g7CiAJCWUtPmZsYWdzIHw9IFJQUl9FTEVNX0FCU09SQkFCTEVfQlJB TkNIIHwgUlBSX0VMRU1fQUJTT1JCQUJMRTsKIAkJcmV0dXJuIHRydWU7CkBAIC0xNjU0LDEyICsx NzIxLDI1IEBAIGNvbXB1dGVBYnNvcmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRl cm4sIFJQUkVsZW1JZHggc3RhcnRJZHgsCiAJfQogCWVsc2UgaWYgKFJQUkVsZW1Jc0JlZ2luKGVs ZW0pKQogCXsKLQkJLyogQkVHSU46IHNraXAgdG8gZmlyc3QgY2hpbGQgYW5kIGNoZWNrIHRoYXQg Ki8KLQkJY29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUocGF0dGVybiwgZWxlbS0+bmV4dCwg aGFzQWJzb3JiYWJsZSk7Ci0KLQkJLyogTWFyayBCRUdJTiBlbGVtZW50IGlmIGNvbnRlbnRzIGFy ZSBhYnNvcmJhYmxlICovCi0JCWlmICgqaGFzQWJzb3JiYWJsZSkKKwkJLyoKKwkJICogQkVHSU46 IGZpcnN0IHRyeSB0byB0cmVhdCB0aGlzIEJFR0lOJ3MgY2hpbGRyZW4gYXMgYW4gdW5ib3VuZGVk CisJCSAqIGdyb3VwIGRpcmVjdGx5IChoYW5kbGVzIG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXBz IGxpa2UgKChBezJ9CisJCSAqIEJ7M30pezJ9KSspLiAgSWYgdGhhdCBmYWlscywgc2tpcCB0byBm aXJzdCBjaGlsZCBhbmQgcmVjdXJzZSBhcworCQkgKiBiZWZvcmUuCisJCSAqLworCQlpZiAoaXNV bmJvdW5kZWRTdGFydChwYXR0ZXJuLCBlbGVtLT5uZXh0KSkKKwkJeworCQkJKmhhc0Fic29yYmFi bGUgPSB0cnVlOwogCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7 CisJCX0KKwkJZWxzZQorCQl7CisJCQljb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZShwYXR0 ZXJuLCBlbGVtLT5uZXh0LCBoYXNBYnNvcmJhYmxlKTsKKworCQkJLyogTWFyayBCRUdJTiBlbGVt ZW50IGlmIGNvbnRlbnRzIGFyZSBhYnNvcmJhYmxlICovCisJCQlpZiAoKmhhc0Fic29yYmFibGUp CisJCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCX0KIAl9 CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jh c2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMzE2 ODQ2OGQwYWUuLjc0NTJjZjFiM2FiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNl Lm91dApAQCAtMzMxMiw3ICszMzEyLDcgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICBQYXR0ZXJu OiAoYXsyfSl7Mix9CisgICBQYXR0ZXJuOiAoYXsyfScpezIsfSIKICAgIC0+ICBTb3J0CiAgICAg ICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgpAQCAt NDA5NSw2ICs0MDk1LDg3IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfcGxhbgogKDYgcm93cykKIAorLS0gRml4ZWQtbGVuZ3RoIGdyb3VwIGFic29yYmFi bGU6IChBezJ9IEJ7M30pKyAtPiAoYXsyfScgYnszfScpezIsfSIKKy0tIEFsbCBjaGlsZHJlbiBo YXZlIG1pbiA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5nIHRvIHsxLDF9CitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cg UEFUVEVSTiAoKEF7Mn0gQnszfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1 MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IChhezJ9JyBiezN9JykrIgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBOZXN0ZWQgZml4 ZWQtbGVuZ3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBB VFRFUk4gKChBIChCIEMpezJ9IEQpKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0g MjAsIEIgQVMgdmFsIDw9IDQwLCBDIEFTIHZhbCA8PSA2MCwgRCBBUyB2YWwgPiA2MCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIgor ICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIHdpdGggaW5u ZXIgcXVhbnRpZmllcjogKChBezJ9IEJ7M30pezJ9KSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBB VFRFUk4gKCgoQXsyfSBCezN9KXsyfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8 PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46ICgoYXsyfScgYnszfScpezJ9JykrIgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5 OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBO b24tYWJzb3JiYWJsZSBmaXhlZC1sZW5ndGg6IChBIEJ7Miw1fSkrIC0+IG5vIG1hcmtlcnMgKG1p biAhPSBtYXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZS T00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQnsyLDV9KSspCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogKGEgYnsyLDV9KSsKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0 IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKwor LS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCPykrIC0+IG5vIG1hcmtlcnMgKG1p biAhPSBtYXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZS T00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQj8pKykKKyAgICAgICAgICAgICBERUZJTkUg QSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiAoYSBiPykrCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlk CisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg2IHJvd3MpCisKIC0tIE5vbi1h YnNvcmJhYmxlICh1bmJvdW5kZWQgbm90IGF0IHN0YXJ0KTogQSBCKyAtPiBhIGIrIChubyBtYXJr ZXJzKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJw cl9wbGFuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWlu Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDc5 Y2JjMjQ2MDM5Li41NjBmMjFmNDRjMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf ZXhwbGFpbi5vdXQKQEAgLTQ2MiwxMCArNDYyLDEwIEBAIFdJTkRPVyB3IEFTICgKICAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgUGF0dGVybjogKGEnIGInKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCi0gICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAotICAg TkZBIENvbnRleHRzOiAyIHBlYWssIDYxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBIFN0YXRlczog NCBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0 b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlz bWF0Y2hlZAotICAgTkZBOiAyOSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAzMCBza2lwcGVkIChs ZW4gMS8xLzEuMCkKKyAgIE5GQTogMjkgYWJzb3JiZWQgKGxlbiAyLzIvMi4wKSwgMzAgc2tpcHBl ZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKQEAgLTkwNCw2ICs5MDQs MTg4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKKy0tIEZpeGVk LWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSBCIEIpKyBDCistLSBCIEIgbWVyZ2VkIHRvIEJ7 Mn07IGFic29yYmFibGUgd2l0aCBmaXhlZC1sZW5ndGggY2hlY2sKKy0tIHN0ZXBfc2l6ZT0zIChB ICsgQiArIEIpOyB2ICUgNyBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMgcGVyIG1hdGNoCitDUkVB VEUgVklFVyBycHJfZXYyMGIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDcwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQiBCKSsgQykKKyAgICBERUZJTkUgQSBB UyB2ICUgNyBJTiAoMSwgNCksIEIgQVMgdiAlIDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3 ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2MjBiJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgUEFUVEVSTiAoKGEgYiBiKSsgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA3MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIgQikrIEMpCisgICAgREVGSU5FIEEg QVMgdiAlIDcgSU4gKDEsIDQpLCBCIEFTIHYgJSA3IElOICgyLCAzLCA1LCA2KSwgQyBBUyB2ICUg NyA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChh Y3R1YWwgcm93cz03MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYnsy fScpKyIgYworICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZB IFN0YXRlczogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNCBw ZWFrLCA3MSB0b3RhbCwgNDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA3LzcvNy4w KSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDEwIGFic29yYmVkIChsZW4gMy8zLzMuMCksIDEwIHNr aXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTcwLjAwIGxvb3BzPTEpCisoOSByb3dzKQorCistLSBOZXN0ZWQg Zml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCistLSBzdGVw X3NpemUgPSAxICsgKDErMSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRp b25zICsgRQorQ1JFQVRFIFZJRVcgcnByX2V2MjBjIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQp KyBFKQorICAgIERFRklORSBBIEFTIHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgy LCA0LCA4LCAxMCksCisgICAgICAgICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQg QVMgdiAlIDEzIElOICg2LCAxMiksCisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MjBjJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAg ICAgICAgICBsaW5lICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICBQQVRURVJOICgoYSAoYiBjKXsyfSBkKSsgZSkgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBF KQorICAgIERFRklORSBBIEFTIHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0 LCA4LCAxMCksCisgICAgICAgICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMg diAlIDEzIElOICg2LCAxMiksCisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTY1LjAw IGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIiBl CisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVz OiAzIHBlYWssIDc2IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDY2 IHRvdGFsLCA1MCBwcnVuZWQKKyAgIE5GQTogNSBtYXRjaGVkIChsZW4gMTMvMTMvMTMuMCksIDAg bWlzbWF0Y2hlZAorICAgTkZBOiA1IGFic29yYmVkIChsZW4gNi82LzYuMCksIDUgc2tpcHBlZCAo bGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKKyg5IHJvd3MpCisKKy0tIERvdWJseSBuZXN0ZWQg Zml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsg RgorLS0gc3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNs ZSBnaXZlcyAyIGl0ZXJhdGlvbnMgKyBGCitDUkVBVEUgVklFVyBycHJfZXYyMGQgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoKEEgKChCIEMgQyBDKXsyfSBEKXsyfSBFKSsgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNDEg SU4gKDEsIDIxKSwKKyAgICAgICAgICAgQiBBUyB2ICUgNDEgSU4gKDIsIDYsIDExLCAxNSwgMjIs IDI2LCAzMSwgMzUpLAorICAgICAgICAgICBDIEFTIHYgJSA0MSBJTiAoMyw0LDUsIDcsOCw5LCAx MiwxMywxNCwgMTYsMTcsMTgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAyMywyNCwyNSwg MjcsMjgsMjksIDMyLDMzLDM0LCAzNiwzNywzOCksCisgICAgICAgICAgIEQgQVMgdiAlIDQxIElO ICgxMCwgMTksIDMwLCAzOSksCisgICAgICAgICAgIEUgQVMgdiAlIDQxIElOICgyMCwgNDApLAor ICAgICAgICAgICBGIEFTIHYgJSA0MSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIwZCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICAgICBsaW5lICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgIFBBVFRFUk4gKChhICgoYiBjIGMgYyl7Mn0gZCl7Mn0gZSkrIGYpIAorKDEgcm93KQor CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIg QyBDIEMpezJ9IEQpezJ9IEUpKyBGKQorICAgIERFRklORSBBIEFTIHYgJSA0MSBJTiAoMSwgMjEp LAorICAgICAgICAgICBCIEFTIHYgJSA0MSBJTiAoMiwgNiwgMTEsIDE1LCAyMiwgMjYsIDMxLCAz NSksCisgICAgICAgICAgIEMgQVMgdiAlIDQxIElOICgzLDQsNSwgNyw4LDksIDEyLDEzLDE0LCAx NiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwg MzIsMzMsMzQsIDM2LDM3LDM4KSwKKyAgICAgICAgICAgRCBBUyB2ICUgNDEgSU4gKDEwLCAxOSwg MzAsIDM5KSwKKyAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIwLCA0MCksCisgICAgICAgICAg IEYgQVMgdiAlIDQxID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4 cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBX aW5kb3dBZ2cgKGFjdHVhbCByb3dzPTgyLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IChhJyAoKGInIGN7M30nKXsyfScgZCcpezJ9JyBlJykrIiBmCisgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDg3IHRvdGFs LCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDgzIHRvdGFsLCA3NiBwcnVuZWQK KyAgIE5GQTogMiBtYXRjaGVkIChsZW4gNDEvNDEvNDEuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZB OiAyIGFic29yYmVkIChsZW4gMjAvMjAvMjAuMCksIDIgc2tpcHBlZCAobGVuIDEvMS8xLjApCisg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9ODIu MDAgbG9vcHM9MSkKKyg5IHJvd3MpCisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29ycHRpb246 ICgoQSAoQiBDKXsyfSl7Mn0pKworLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAqIDIgPSAx MDsgdiAlIDIxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucworLS0gRU5EIGNoYWluOiBFTkQoQkN7 Mn0pIC0+IEVORChBLi57Mn0pIC0+IEVORCgrLCBBQlNPUkJBQkxFKQorQ1JFQVRFIFZJRVcgcnBy X2V2MjBlIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA0MikgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKCgoQSAoQiBDKXsyfSl7Mn0pKykKKyAgICBERUZJTkUgQSBBUyB2 ICUgMjEgSU4gKDEsIDYsIDExLCAxNiksCisgICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0 LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCisgICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1 LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKChhIChi IGMpezJ9KXsyfSkrKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDQyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORSBBIEFTIHYg JSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAgQiBBUyB2ICUgMjEgSU4gKDIsIDQs IDcsIDksIDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAgQyBBUyB2ICUgMjEgSU4gKDMsIDUs IDgsIDEwLCAxMywgMTUsIDE4LCAyMCkKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQorICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiAoKGEnIChiJyBjJyl7Mn0nKXsyfScpKyIKKyAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNDcgdG90YWwsIDAg bWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDUgcGVhaywgNDMgdG90YWwsIDMwIHBydW5lZAorICAg TkZBOiAyIG1hdGNoZWQgKGxlbiAyMC8yMC8yMC4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDIg YWJzb3JiZWQgKGxlbiAxMC8xMC8xMC4wKSwgOCBza2lwcGVkIChsZW4gMS81LzMuMCkKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00Mi4wMCBs b29wcz0xKQorKDkgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBNYXRjaCBMZW5ndGggU3RhdGlzdGljcyBU ZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CkBAIC0xODk0LDEwICsyMDc2LDEwIEBAIFdJTkRPVyB3IEFTICgKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKGEnIGInIGMnKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCi0gICBORkEgU3RhdGVzOiAzIHBlYWssIDgxIHRvdGFsLCAwIG1lcmdl ZAotICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAyMCBwcnVuZWQKKyAgIE5GQSBT dGF0ZXM6IDQgcGVhaywgODEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVh aywgNjEgdG90YWwsIDIwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA2MC82MC82MC4w KSwgMCBtaXNtYXRjaGVkCi0gICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDIwIHNr aXBwZWQgKGxlbiAxLzEvMS4wKQorICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDMvMy8zLjApLCAy MCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogKDkgcm93cykKIApAQCAtMjQ2 MSw3ICsyNjQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgTkZBIFN0YXRlczogNCBwZWFrLCAxMDIg dG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDEwIHBy dW5lZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAotICAg TkZBOiAyMCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKKyAgIE5GQTogMTAgYWJz b3JiZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9 MSkKICg5IHJvd3MpCiAKQEAgLTMxNTgsMTAgKzMzNDAsMTAgQEAgV0lORE9XIHcgQVMgKAogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpKyIKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKLSAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNjEgdG90YWwsIDAgbWVyZ2Vk Ci0gICBORkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDAgcHJ1bmVkCisgICBORkEgU3Rh dGVzOiA0IHBlYWssIDYxIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWss IDQxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA0MC80MC80MC4wKSwg MCBtaXNtYXRjaGVkCi0gICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDIwIHNraXBw ZWQgKGxlbiAxLzEvMS4wKQorICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDIvMi8yLjApLCAyMCBz a2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogKDkgcm93cykKIApAQCAtMzIzNCwx MiArMzQxNiwxMiBAQCBXSU5ET1cgdyBBUyAoCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgV2luZG93QWdnIChh Y3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICBQYXR0ZXJuOiAoKGEgYil7 Mn0pKworICAgUGF0dGVybjogKChhJyBiJyl7Mn0nKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA1IHBlYWssIDc2IHRvdGFsLCAwIG1l cmdlZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDYxIHRvdGFsLCAxNSBwcnVuZWQKICAgIE5G QTogMSBtYXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hlZAotICAgTkZBOiAwIGFi c29yYmVkLCA0NCBza2lwcGVkIChsZW4gMS80LzIuMykKKyAgIE5GQTogMTQgYWJzb3JiZWQgKGxl biA0LzQvNC4wKSwgMzAgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IDdiNWExN2ZiNjcx Li4yNTBmN2YxMzFiMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf bmZhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CkBAIC00 NDcsNiArNDQ3LDMyNyBAQCBXSU5ET1cgdyBBUyAoCiAgIDcgfCB7WH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCiAoNyByb3dzKQogCistLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlv bjogKEEgQnsyfSkrIEMKKy0tIEJ7Mn0gaGFzIG1pbiA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5y b2xsaW5nIHRvIChBIEIgQikrIEMKK1dJVEggdGVzdF9hYnNvcmJfZml4ZWRsZW4gQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydCJ10pLAorICAgICAgICAo NCwgIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNiwg IEFSUkFZWydCJ10pLAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFS UkFZWydCJ10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZ WydDJ10pLAorICAgICAgICAoMTEsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykK KykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3Rh cnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJf Zml4ZWRsZW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEJ7Mn0pKyBDKQorICAgIERFRklORQor ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBt YXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDEwCisgIDIgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDcgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDgg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMTAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg MTEgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMTEgcm93cykKKworLS0gQ29u c2VjdXRpdmUgdmFycyBtZXJnZWQgdG8gZml4ZWQtbGVuZ3RoOiAoQSBCIEIpKyAtPiAoQSBCezJ9 KSsKKy0tIG1lcmdlQ29uc2VjdXRpdmVWYXJzIHByb2R1Y2VzIEJ7Mn07IG5vdyBhYnNvcmJhYmxl IHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCitXSVRIIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlIEFT ICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsICBBUlJBWVsnQSddKSwK KyAgICAgICAgKDIsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsICBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDQsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsICBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDYsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsICBBUlJBWVsnQSddKSwKKyAgICAgICAg KDgsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDksICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEw LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdz LCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSBCIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFn cyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDkKKyAgMiB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg NSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgOCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOSB8IHtCfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAxMCB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKygxMCByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246 IChBIChCIEMpezJ9IEQpKyBFCistLSBJbm5lciBncm91cCB7Mn0gaGFzIG1pbiA9PSBtYXg7IGFi c29yYmFibGUgdmlhIHJlY3Vyc2l2ZSBjaGVjaworLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIg KyAxID0gNgorV0lUSCB0ZXN0X2Fic29yYl9uZXN0ZWRfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwg IEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgIEFS UkFZWydCJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgIEFSUkFZ WydEJ10pLAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydC J10pLAorICAgICAgICAoOSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydCJ10p LAorICAgICAgICAoMTEsIEFSUkFZWydDJ10pLAorICAgICAgICAoMTIsIEFSUkFZWydEJ10pLAor ICAgICAgICAoMTMsIEFSUkFZWydFJ10pLAorICAgICAgICAoMTQsIEFSUkFZWydYJ10pCisgICAg KSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQK K0ZST00gdGVzdF9hYnNvcmJfbmVzdGVkX2ZpeGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgo QSAoQiBDKXsyfSBEKSsgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFT ICdFJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgMTMKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgNiB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNyB8 IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgOSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAx MCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMSB8IHtDfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAxMiB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAxMyB8IHtFfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNCB8IHtYfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKygxNCByb3dzKQorCistLSBEb3VibHkgbmVzdGVkIGZpeGVk LWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0gRSkrIEYKKy0t IHN0ZXBfc2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyAyIGl0ZXJhdGlvbnMgKyBG ID0gNDEgcm93cworV0lUSCB0ZXN0X2Fic29yYl9kb3VibHlfbmVzdGVkIEFTICgKKyAgICBTRUxF Q1QgdiBBUyBpZCwgQVJSQVlbCisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4gdiAlIDQx IElOICgxLCAyMSkgIFRIRU4gJ0EnCisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAoMiwgNiwg MTEsIDE1LCAyMiwgMjYsIDMxLCAzNSkgVEhFTiAnQicKKyAgICAgICAgICAgIFdIRU4gdiAlIDQx IElOICgzLDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAyMywyNCwyNSwgMjcsMjgsMjksIDMyLDMzLDM0LCAzNiwzNywzOCkgVEhFTiAn QycKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgxMCwgMTksIDMwLCAzOSkgVEhFTiAnRCcK KyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgyMCwgNDApIFRIRU4gJ0UnCisgICAgICAgICAg ICBXSEVOIHYgJSA0MSA9IDAgVEhFTiAnRicKKyAgICAgICAgICAgIEVMU0UgJ1gnCisgICAgICAg IEVORAorICAgIF0gQVMgZmxhZ3MKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMg cyh2KQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fi c29yYl9kb3VibHlfbmVzdGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9 IEQpezJ9IEUpKyBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlko ZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0Un ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDQxCisg IDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Qn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMTEgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTIgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTMgfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMTQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTUgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTYgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgMTcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTgg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTkgfCB7RH0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMjAgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg MjEgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjIgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgMjMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMjQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjUgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMjYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMjcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjggfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMzAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzEgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzIgfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMzMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzQgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzUgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgMzYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzcg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzggfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMzkgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NDAgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDEgfCB7Rn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgNDIgfCB7QX0gICB8ICAgICAgICAgIDQyIHwgICAgICAgIDgy CisgNDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDQgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgNDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgNDYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDcgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgNDkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTAgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTEgfCB7RH0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgNTIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTMgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTQgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgNTUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTYg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTcgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgNTggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NTkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjAgfCB7RH0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgNjEgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgNjIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjMgfCB7Qn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgNjQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgNjUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjYgfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjcgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgNjggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjkgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzAgfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgNzEgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzIgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzMgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgNzQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzUg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzYgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgNzcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NzggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzkgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgODAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgODEgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgODIgfCB7Rn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisoODIgcm93cykKKworLS0gMy1sZXZlbCBFTkQgY2hhaW46 ICgoQSAoQiBDKXsyfSl7Mn0pKworLS0gVGVzdHMgRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAt PiBFTkQoKykgY2hhaW5pbmcKKy0tIDIgaXRlcmF0aW9ucyBvZiArLCBlYWNoIDEwIHJvd3M6IChB IEIgQyBCIEMpKEEgQiBDIEIgQykKK1dJVEggdGVzdF9hYnNvcmJfM2xldmVsX2VuZCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksICAtLSAx c3QgKyBpdGVyLCAxc3QgezJ9LCBBCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAg ICgzLCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1 LCAgQVJSQVlbJ0MnXSksICAtLSAxc3QgKEJDKXsyfSBkb25lCisgICAgICAgICg2LCAgQVJSQVlb J0EnXSksICAtLSAxc3QgKyBpdGVyLCAybmQgezJ9LCBBCisgICAgICAgICg3LCAgQVJSQVlbJ0In XSksCisgICAgICAgICg4LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSks CisgICAgICAgICgxMCwgQVJSQVlbJ0MnXSksICAtLSAybmQgKEJDKXsyfSBkb25lLCAxc3QgezJ9 IGRvbmUsIDFzdCArIGl0ZXIgZG9uZQorICAgICAgICAoMTEsIEFSUkFZWydBJ10pLCAgLS0gMm5k ICsgaXRlciwgMXN0IHsyfSwgQQorICAgICAgICAoMTIsIEFSUkFZWydCJ10pLAorICAgICAgICAo MTMsIEFSUkFZWydDJ10pLAorICAgICAgICAoMTQsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTUs IEFSUkFZWydDJ10pLAorICAgICAgICAoMTYsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRlciwg Mm5kIHsyfSwgQQorICAgICAgICAoMTcsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTgsIEFSUkFZ WydDJ10pLAorICAgICAgICAoMTksIEFSUkFZWydCJ10pLAorICAgICAgICAoMjAsIEFSUkFZWydD J10pLCAgLS0gMm5kICsgaXRlciBkb25lCisgICAgICAgICgyMSwgQVJSQVlbJ1gnXSkgICAtLSBu byBtYXRjaCwgKyBlbmRzCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfM2xldmVsX2VuZAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORQorICAgICAgICBB IEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAg ICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFy dCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg IDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDIwCisgIDIgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDcgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDggfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMTAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTEgfCB7QX0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMTMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTQgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTUgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgMTYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTcg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTggfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMTkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg MjAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjEgfCB7WH0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisoMjEgcm93cykKKwogLS0gTXVsdGlwbGUgdW5ib3VuZGVkOiBB KyBCKyAoZmlyc3QgZWxlbWVudCB1bmJvdW5kZWQgZW5hYmxlcyBhYnNvcnB0aW9uKQogV0lUSCB0 ZXN0X211bHRpX3VuYm91bmRlZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggY2Y2YzA2MmFlODUuLjhjMjNjNzU5OGEzIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0yNjAwLDYgKzI2MDAsNDIgQEAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRU RVJOICgoQSsgQiB8IEEgQikqKQogICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwg QiBBUyB2YWwgPiA1MCk7CiAKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcmJhYmxlOiAoQXsy fSBCezN9KSsgLT4gKGF7Mn0nIGJ7M30nKXsyLH0iCistLSBBbGwgY2hpbGRyZW4gaGF2ZSBtaW4g PT0gbWF4LCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KChBezJ9IEJ7M30pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMg dmFsID4gNTApOworCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBE KSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9W RVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKykKKyAgICAg ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjAsIEIgQVMgdmFsIDw9IDQwLCBDIEFTIHZhbCA8 PSA2MCwgRCBBUyB2YWwgPiA2MCk7CisKKy0tIE5lc3RlZCBmaXhlZC1sZW5ndGggd2l0aCBpbm5l ciBxdWFudGlmaWVyOiAoKEF7Mn0gQnszfSl7Mn0pKyAtPiBhYnNvcmJhYmxlCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFU VEVSTiAoKChBezJ9IEJ7M30pezJ9KSspCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9 IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAo QSBCezIsNX0pKyAtPiBubyBtYXJrZXJzIChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChB IEJ7Miw1fSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwg PiA1MCk7CisKKy0tIE5vbi1hYnNvcmJhYmxlIGZpeGVkLWxlbmd0aDogKEEgQj8pKyAtPiBubyBt YXJrZXJzIChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIEI/KSspCisgICAgICAgICAg ICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKwogLS0gTm9uLWFic29y YmFibGUgKHVuYm91bmRlZCBub3QgYXQgc3RhcnQpOiBBIEIrIC0+IGEgYisgKG5vIG1hcmtlcnMp CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3Bs YW4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCA5M2UwNmIwY2JkZi4uMjM3 ZjAzNjY2MzEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTU3OCw2ICs1 NzgsMTIwIEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMg diAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsnKTsKIAorLS0gRml4ZWQtbGVuZ3RoIGdyb3Vw IGFic29ycHRpb246IChBIEIgQikrIEMKKy0tIEIgQiBtZXJnZWQgdG8gQnsyfTsgYWJzb3JiYWJs ZSB3aXRoIGZpeGVkLWxlbmd0aCBjaGVjaworLS0gc3RlcF9zaXplPTMgKEEgKyBCICsgQik7IHYg JSA3IGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucyBwZXIgbWF0Y2gKK0NSRUFURSBWSUVXIHJwcl9l djIwYiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAgIERFRklORSBBIEFTIHYgJSA3IElOICgx LCA0KSwgQiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiksIEMgQVMgdiAlIDcgPSAwCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYyMGInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAg IERFRklORSBBIEFTIHYgJSA3IElOICgxLCA0KSwgQiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiks IEMgQVMgdiAlIDcgPSAwCispOycpOworCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFi c29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCistLSBzdGVwX3NpemUgPSAxICsgKDErMSkqMiAr IDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRQorQ1JFQVRFIFZJRVcg cnByX2V2MjBjIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQorICAgIERFRklORSBBIEFT IHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4LCAxMCksCisgICAgICAg ICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAlIDEzIElOICg2LCAxMiks CisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBjJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDY1KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoKEEgKEIgQyl7Mn0gRCkrIEUpCisgICAgREVGSU5FIEEgQVMg diAlIDEzIElOICgxLCA3KSwgQiBBUyB2ICUgMTMgSU4gKDIsIDQsIDgsIDEwKSwKKyAgICAgICAg ICAgQyBBUyB2ICUgMTMgSU4gKDMsIDUsIDksIDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwK KyAgICAgICAgICAgRSBBUyB2ICUgMTMgPSAwCispOycpOworCistLSBEb3VibHkgbmVzdGVkIGZp eGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0gRSkrIEYK Ky0tIHN0ZXBfc2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyB2ICUgNDEgY3ljbGUg Z2l2ZXMgMiBpdGVyYXRpb25zICsgRgorQ1JFQVRFIFZJRVcgcnByX2V2MjBkIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBICgoQiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FIEEgQVMgdiAlIDQxIElO ICgxLCAyMSksCisgICAgICAgICAgIEIgQVMgdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAy NiwgMzEsIDM1KSwKKyAgICAgICAgICAgQyBBUyB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIs MTMsMTQsIDE2LDE3LDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsMjQsMjUsIDI3 LDI4LDI5LCAzMiwzMywzNCwgMzYsMzcsMzgpLAorICAgICAgICAgICBEIEFTIHYgJSA0MSBJTiAo MTAsIDE5LCAzMCwgMzkpLAorICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAoMjAsIDQwKSwKKyAg ICAgICAgICAgRiBBUyB2ICUgNDEgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg ODIpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9IEUpKyBGKQorICAgIERFRklO RSBBIEFTIHYgJSA0MSBJTiAoMSwgMjEpLAorICAgICAgICAgICBCIEFTIHYgJSA0MSBJTiAoMiwg NiwgMTEsIDE1LCAyMiwgMjYsIDMxLCAzNSksCisgICAgICAgICAgIEMgQVMgdiAlIDQxIElOICgz LDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMsMzQsIDM2LDM3LDM4KSwKKyAgICAgICAgICAg RCBBUyB2ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5KSwKKyAgICAgICAgICAgRSBBUyB2ICUgNDEg SU4gKDIwLCA0MCksCisgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAorKTsnKTsKKworLS0gMy1s ZXZlbCBFTkQgY2hhaW4gYWJzb3JwdGlvbjogKChBIChCIEMpezJ9KXsyfSkrCistLSBzdGVwX3Np emUgPSAoMSArICgxKzEpKjIpICogMiA9IDEwOyB2ICUgMjEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRp b25zCistLSBFTkQgY2hhaW46IEVORChCQ3syfSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCssIEFC U09SQkFCTEUpCitDUkVBVEUgVklFVyBycHJfZXYyMGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9 KXsyfSkrKQorICAgIERFRklORSBBIEFTIHYgJSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwKKyAgICAg ICAgICAgQiBBUyB2ICUgMjEgSU4gKDIsIDQsIDcsIDksIDEyLCAxNCwgMTcsIDE5KSwKKyAgICAg ICAgICAgQyBBUyB2ICUgMjEgSU4gKDMsIDUsIDgsIDEwLCAxMywgMTUsIDE4LCAyMCkKKyk7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjIwZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MikgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSAoQiBDKXsyfSl7 Mn0pKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMjEgSU4gKDEsIDYsIDExLCAxNiksCisgICAgICAg ICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCisgICAgICAg ICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCispOycpOwor CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX25mYS5zcWwKaW5kZXggNWVkY2IzMzU3ZTYuLmFhYTdiNDRmNzg5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfbmZhLnNxbApAQCAtMzQ2LDYgKzM0NiwxNzQgQEAgV0lORE9XIHcgQVMgKAog ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKICk7CiAKKy0tIEZpeGVkLWxlbmd0aCBncm91 cCBhYnNvcnB0aW9uOiAoQSBCezJ9KSsgQworLS0gQnsyfSBoYXMgbWluID09IG1heCwgZXF1aXZh bGVudCB0byB1bnJvbGxpbmcgdG8gKEEgQiBCKSsgQworV0lUSCB0ZXN0X2Fic29yYl9maXhlZGxl biBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0En XSksCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSks CisgICAgICAgICg0LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg2LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAg ICAgICg4LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICgxMCwgQVJSQVlbJ0MnXSksCisgICAgICAgICgxMSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0 ZXN0X2Fic29yYl9maXhlZGxlbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQnsyfSkrIEMpCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAn QicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0t IENvbnNlY3V0aXZlIHZhcnMgbWVyZ2VkIHRvIGZpeGVkLWxlbmd0aDogKEEgQiBCKSsgLT4gKEEg QnsyfSkrCistLSBtZXJnZUNvbnNlY3V0aXZlVmFycyBwcm9kdWNlcyBCezJ9OyBub3cgYWJzb3Ji YWJsZSB3aXRoIGZpeGVkLWxlbmd0aCBjaGVjaworV0lUSCB0ZXN0X2Fic29yYl9jb25zZWN1dGl2 ZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0En XSksCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSks CisgICAgICAgICg0LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg2LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAg ICAgICg4LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICgxMCwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBm bGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9jb25zZWN1dGl2ZQorV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKEEgQiBCKSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBO ZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCist LSBJbm5lciBncm91cCB7Mn0gaGFzIG1pbiA9PSBtYXg7IGFic29yYmFibGUgdmlhIHJlY3Vyc2l2 ZSBjaGVjaworLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNgorV0lUSCB0ZXN0X2Fi c29yYl9uZXN0ZWRfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAg ICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAg ICAoMywgIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAgICAo NSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgIEFSUkFZWydEJ10pLAorICAgICAgICAoNywg IEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoOSwgIEFS UkFZWydDJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTEsIEFSUkFZ WydDJ10pLAorICAgICAgICAoMTIsIEFSUkFZWydEJ10pLAorICAgICAgICAoMTMsIEFSUkFZWydF J10pLAorICAgICAgICAoMTQsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykK K1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQs IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfbmVz dGVkX2ZpeGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoQiBDKXsyfSBEKSsgRSkKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg RCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKKyk7 CisKKy0tIERvdWJseSBuZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgo QiBDezN9KXsyfSBEKXsyfSBFKSsgRgorLS0gc3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIg KyAxID0gMjA7IDIgaXRlcmF0aW9ucyArIEYgPSA0MSByb3dzCitXSVRIIHRlc3RfYWJzb3JiX2Rv dWJseV9uZXN0ZWQgQVMgKAorICAgIFNFTEVDVCB2IEFTIGlkLCBBUlJBWVsKKyAgICAgICAgQ0FT RQorICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDEsIDIxKSAgVEhFTiAnQScKKyAgICAgICAg ICAgIFdIRU4gdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAyNiwgMzEsIDM1KSBUSEVOICdC JworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIsMTMsMTQsIDE2 LDE3LDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwg MzIsMzMsMzQsIDM2LDM3LDM4KSBUSEVOICdDJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4g KDEwLCAxOSwgMzAsIDM5KSBUSEVOICdEJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDIw LCA0MCkgVEhFTiAnRScKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxID0gMCBUSEVOICdGJworICAg ICAgICAgICAgRUxTRSAnWCcKKyAgICAgICAgRU5ECisgICAgXSBBUyBmbGFncworICAgIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2RvdWJseV9uZXN0ZWQKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBICgoQiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBGIEFTICdG JyA9IEFOWShmbGFncykKKyk7CisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluOiAoKEEgKEIgQyl7Mn0p ezJ9KSsKKy0tIFRlc3RzIEVORChCQ3syfSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCspIGNoYWlu aW5nCistLSAyIGl0ZXJhdGlvbnMgb2YgKywgZWFjaCAxMCByb3dzOiAoQSBCIEMgQiBDKShBIEIg QyBCIEMpCitXSVRIIHRlc3RfYWJzb3JiXzNsZXZlbF9lbmQgQVMgKAorICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLCAgLS0gMXN0ICsgaXRlciwgMXN0 IHsyfSwgQQorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydD J10pLAorICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydDJ10p LCAgLS0gMXN0IChCQyl7Mn0gZG9uZQorICAgICAgICAoNiwgIEFSUkFZWydBJ10pLCAgLS0gMXN0 ICsgaXRlciwgMm5kIHsyfSwgQQorICAgICAgICAoNywgIEFSUkFZWydCJ10pLAorICAgICAgICAo OCwgIEFSUkFZWydDJ10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAs IEFSUkFZWydDJ10pLCAgLS0gMm5kIChCQyl7Mn0gZG9uZSwgMXN0IHsyfSBkb25lLCAxc3QgKyBp dGVyIGRvbmUKKyAgICAgICAgKDExLCBBUlJBWVsnQSddKSwgIC0tIDJuZCArIGl0ZXIsIDFzdCB7 Mn0sIEEKKyAgICAgICAgKDEyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEzLCBBUlJBWVsnQydd KSwKKyAgICAgICAgKDE0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDE1LCBBUlJBWVsnQyddKSwK KyAgICAgICAgKDE2LCBBUlJBWVsnQSddKSwgIC0tIDJuZCArIGl0ZXIsIDJuZCB7Mn0sIEEKKyAg ICAgICAgKDE3LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDE4LCBBUlJBWVsnQyddKSwKKyAgICAg ICAgKDE5LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIwLCBBUlJBWVsnQyddKSwgIC0tIDJuZCAr IGl0ZXIgZG9uZQorICAgICAgICAoMjEsIEFSUkFZWydYJ10pICAgLS0gbm8gbWF0Y2gsICsgZW5k cworICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiXzNsZXZlbF9lbmQKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KCgoQSAoQiBDKXsyfSl7Mn0pKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlko ZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0Mn ID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gTXVsdGlwbGUgdW5ib3VuZGVkOiBBKyBCKyAoZmlyc3Qg ZWxlbWVudCB1bmJvdW5kZWQgZW5hYmxlcyBhYnNvcnB0aW9uKQogV0lUSCB0ZXN0X211bHRpX3Vu Ym91bmRlZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0010-Rename-rpr_explain-test-views-to-descriptive-names.txt" Content-Disposition: attachment; filename="nocfbot-0010-Rename-rpr_explain-test-views-to-descriptive-names.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62j6b9 RnJvbSA3ODUxZDg1ZWY3NDUwYzIwYjU1MDM1NTQ3ZWNhZjhjOTc3YzY4MjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMjI6MDA6NTAgKzA5MDAKU3ViamVjdDogW1BBVENIIDEwLzQwXSBS ZW5hbWUgcnByX2V4cGxhaW4gdGVzdCB2aWV3cyBmcm9tIHNlcXVlbnRpYWwgbnVtYmVycwogdG8g ZGVzY3JpcHRpdmUgbmFtZXMKClJlcGxhY2UgcnByX2V2MDEuLnJwcl9ldjg5IHdpdGggc2VjdGlv bi1iYXNlZCBuYW1lcyBsaWtlCnJwcl9ldl9jdHhfYWJzb3JiX2dyb3VwLCBycHJfZXZfYWx0X25l c3RlZF9zdGFydCwgZXRjLgpUaGlzIGF2b2lkcyBudW1iZXJpbmcgY29uZmxpY3RzIHdoZW4gaW5z ZXJ0aW5nIG5ldyB0ZXN0cy4KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dCB8IDM3OCArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfZXhwbGFpbi5zcWwgICAgICB8IDM3MiArKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmls ZXMgY2hhbmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDM3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDU2MGYyMWY0NGMyLi5mNjZj YWY4OTA4ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFp bi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAg LTExMSw3ICsxMTEsNyBAQCBWQUxVRVMKIC0tIEJhc2ljIE5GQSBTdGF0aXN0aWNzIFRlc3RzCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIFNpbXBsZSBwYXR0ZXJuIC0gc2hvdWxkIHNob3cgYmFzaWMgc3RhdGlzdGljcwot Q1JFQVRFIFZJRVcgcnByX2V2MDEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9iYXNpY19zaW1wbGUg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBB UyAoCkBAIC0xMjAsNyArMTIwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikK ICAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX3Np bXBsZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBs aW5lICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIpIApAQCAtMTUw LDcgKzE1MCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFBhdHRlcm4gd2l0aCBu byBtYXRjaGVzIC0gMCBtYXRjaGVkCi1DUkVBVEUgVklFVyBycHJfZXYwMiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X2Jhc2ljX25vbWF0Y2ggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g cnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNTksNyArMTU5LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKFggWSBaKQogICAgIERFRklORSBYIEFTIGNhdCA9ICdYJywgWSBB UyBjYXQgPSAnWScsIFogQVMgY2F0ID0gJ1onCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX25vbWF0Y2gnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHggeSB6KSAKQEAgLTE4OCw3ICsxODgs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBQYXR0ZXJuIG1hdGNoaW5nIGV2ZXJ5 IHJvdyAtIGhpZ2ggbWF0Y2ggY291bnQKLUNSRUFURSBWSUVXIHJwcl9ldjAzIEFTCitDUkVBVEUg VklFVyBycHJfZXZfYmFzaWNfYWxscm93cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTE5Nyw3ICsxOTcsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoUikKICAgICBERUZJTkUgUiBBUyBUUlVFCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYw MycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2lj X2FsbHJvd3MnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAg ICBsaW5lICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChyKSAKQEAgLTIyNyw3 ICsyMjcsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFJlZ3Jlc3Npb24gdGVzdDogU3BhY2UgYmVm b3JlIHBhcmVudGhlc2lzIGluIHBhdHRlcm4gZGVwYXJzZQogLS0gVmVyaWZpZXMgdGhhdCAiQSAo QiB8IEMpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiYSAoYiB8IGMpIiB3aXRoIHNwYWNlCi1DUkVB VEUgVklFVyBycHJfZXYwNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc3Bh Y2UgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIw KSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzUsNyArMjM1LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIg QVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDQnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNlX3NwYWNlJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEgKGIgfCBj KSkgCkBAIC0yNjYsNyArMjY2LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gUmVncmVzc2lvbiB0ZXN0 OiBTZXF1ZW50aWFsIGFsdGVybmF0aW9ucyBhdCBzYW1lIGRlcHRoCiAtLSBWZXJpZmllcyB0aGF0 ICIoKEIgfCBDKSAoRCB8IEUpKSIgY29ycmVjdGx5IG91dHB1dHMgYXMgIihiIHwgYykgKGQgfCBl KSIKIC0tIFByZXZpb3VzbHkgZmFpbGVkIGR1ZSB0byBtaXNzaW5nIHBhcmVudGhlc2VzIG9uIEFM VCBkZXB0aCBkZWNyZWFzZQotQ1JFQVRFIFZJRVcgcnByX2V2MDUgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9iYXNpY19kZXBhcnNlX3NlcWFsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI3NCw3 ICsyNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSAoRCB8IEUp KSopCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPSAxLCBCIEFTIHYgJSA1ID0gMiwgQyBBUyB2ICUg NSA9IDMsIEQgQVMgdiAlIDUgPSA0LCBFIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDUnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNl X3NlcWFsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSAoKGIgfCBjKSAoZCB8IGUpKSopIApAQCAtMzA1LDcg KzMwNSw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIFN0YXRlIFN0YXRpc3RpY3MgVGVzdHMgKHBlYWss IHRvdGFsLCBtZXJnZWQpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFNpbXBsZSBxdWFudGlmaWVyIHBhdHRlcm4gLSBB KyB3aXRoIHNob3J0IG1hdGNoZXMgKG5vIG1lcmdpbmcpCi1DUkVBVEUgVklFVyBycHJfZXYwNiBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX3NpbXBsZV9xdWFudCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3 IEFTICgKQEAgLTMxNCw3ICszMTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsp CiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX3NpbXBsZV9xdWFudCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgIGxpbmUgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApAQCAtMzQzLDcgKzM0Myw3IEBA IFdJTkRPVyB3IEFTICgKICg4IHJvd3MpCiAKIC0tIEFsdGVybmF0aW9uIHBhdHRlcm4gLSBtdWx0 aXBsZSBzdGF0ZSBicmFuY2hlcwotQ1JFQVRFIFZJRVcgcnByX2V2MDcgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9zdGF0ZV9hbHQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25m YV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0zNTQsNyArMzU0LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAog ICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA3JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAg bGluZSAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgUEFUVEVSTiAoKGEgfCBiIHwgYykgKGQgfCBlKSkgCkBAIC0zODYsNyArMzg2LDcgQEAgV0lO RE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0 ZSBjb3VudAotQ1JFQVRFIFZJRVcgcnByX2V2MDggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0 ZV9jb21wbGV4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM5OCw3ICszOTgsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0g MAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9zdGF0ZV9jb21wbGV4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOIChhKyBiKiBjKykgCkBAIC00MzEsNyArNDMxLDcgQEAgV0lORE9XIHcgQVMg KAogKDkgcm93cykKIAogLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRl IGNvdW50IHdpdGggZ3JvdXBpbmcKLUNSRUFURSBWSUVXIHJwcl9ldjA5IEFTCitDUkVBVEUgVklF VyBycHJfZXZfc3RhdGVfZ3JvdXBfcXVhbnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00NDAs NyArNDQwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIEIpKykKICAgICBERUZJ TkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwOScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2dyb3VwX3F1YW50 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5l ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIpKykgCkBA IC00NzEsNyArNDcxLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBTdGF0ZSBleHBsb3Npb24gcGF0 dGVybiAtIG1hbnkgYWx0ZXJuYXRpb25zCiAtLSBQYXR0ZXJuIChBfEIpKEF8QikoQXxCKShBfEIp IGNhbiBjcmVhdGUgbWFueSBwYXJhbGxlbCBzdGF0ZXMKLUNSRUFURSBWSUVXIHJwcl9ldjEwIEFT CitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfZXhwbG9zaW9uIEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTQ4MCw3ICs0ODAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBC KSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIp KQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEw JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVf ZXhwbG9zaW9uJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChh IHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEg fCBiKSkgCkBAIC01MTEsNyArNTExLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBDb25zZWN1dGl2 ZSBBTFQgbWVyZ2UgZm9sbG93ZWQgYnkgZGlmZmVyZW50IEFMVAogLS0gVGVzdHMgbWVyZ2VDb25z ZWN1dGl2ZUFsdHMgZmx1c2ggb24gQUxUIGNoYW5nZTogKEF8Qil7Mn0gKEN8RCkKLUNSRUFURSBW SUVXIHJwcl9ldjExIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX2FsdCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTUyMCw3ICs1MjAsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwgRCkpCiAgICAgREVGSU5FIEEgQVMgdiAl IDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYxMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3N0YXRlX2FsdF9tZXJnZV9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikgKGEg fCBiKSAoYyB8IGQpKSAKQEAgLTU1MSw3ICs1NTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIENv bnNlY3V0aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBub24tQUxUIGVsZW1lbnQKIC0tIFRlc3Rz IG1lcmdlQ29uc2VjdXRpdmVBbHRzIGZsdXNoIG9uIG5vbi1BTFQ6IChBfEIpezJ9IGMKLUNSRUFU RSBWSUVXIHJwcl9ldjEyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX25v bmFsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU2MCw3ICs1NjAsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIEMpCiAgICAgREVGSU5FIEEgQVMgdiAl IDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEyJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X21l cmdlX25vbmFsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBiKSAoYSB8IGIpIGMpIApAQCAtNTkwLDcgKzU5MCw3 IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEFMVCBwcmVmaXgvc3VmZml4IGFic29y YmVkIGludG8gR1JPVVA6IChBfEIpIChBfEIpKyAoQXxCKSAtPiAoQXxCKXszLH0KLUNSRUFURSBW SUVXIHJwcl9ldjEzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91 cCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU5OSw3ICs1OTksNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAoQSB8IEIpKQogICAgIERFRklORSBBIEFT IHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEzJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAg ICAgbGluZSAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikrIChhIHwgYikpIApAQCAtNjI5 LDcgKzYyOSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgY291 bnQgLSBhbHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2 MTQgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC02MzgsNyArNjM4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChB IHwgQiB8IEMpKyBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIs IEMgQVMgdiAlIDQgPSAzLCBEIEFTIHYgJSA0ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcGx1cycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgIGxpbmUg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAo KGEgfCBiIHwgYykrIGQpIApAQCAtNjY5LDcgKzY2OSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0g RWFybHkgdGVybWluYXRpb246IGZpcnN0IEFMVCBicmFuY2ggKEEpIHJlYWNoZXMgRklOIGltbWVk aWF0ZWx5LAogLS0gcHJ1bmluZyBzZWNvbmQgYnJhbmNoIChBIEIrKSBiZWZvcmUgaXQgY2FuIGFj Y3VtdWxhdGUgQiByZXBldGl0aW9ucy4KLUNSRUFURSBWSUVXIHJwcl9ldjE1IEFTCitDUkVBVEUg VklFVyBycHJfZXZfc3RhdGVfYWx0X3BydW5lIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTY3 OCw3ICs2NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykKICAg ICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTUnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcHJ1bmUnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGEg YikrKSAKQEAgLTcwNyw3ICs3MDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBO ZXN0ZWQgcXVhbnRpZmllcnMgY2F1c2luZyBzdGF0ZSBncm93dGgKLUNSRUFURSBWSUVXIHJwcl9l djE2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50IEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC03MTYsNyArNzE2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKCgoQSB8IEIpKykrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9 IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjE2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoKGEgfCBiKSspKykgCkBAIC03NDksNyArNzQ5LDcg QEAgV0lORE9XIHcgQVMgKAogLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3Rh bCwgcHJ1bmVkICsgYWJzb3JiZWQvc2tpcHBlZCkKIC0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29udGV4dCBhYnNvcnB0 aW9uIHdpdGggdW5ib3VuZGVkIHF1YW50aWZpZXIgYXQgc3RhcnQKLUNSRUFURSBWSUVXIHJwcl9l djE3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl91bmJvdW5kZWQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC03NTgsNyArNzU4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7 Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjE3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfY3R4X2Fic29yYl91bmJvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKSAKQEAgLTc4OCw3ICs3ODgsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dz KQogCiAtLSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlmaWVyCi1DUkVBVEUgVklFVyBy cHJfZXYxOCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmIgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC03OTcsNyArNzk3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYxOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2N0eF9ub19hYnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGF7Miw0fSBiKSAKQEAgLTgyNyw3ICs4MjcsNyBAQCBXSU5ET1cgdyBBUyAoCiAo OSByb3dzKQogCiAtLSBDb250ZXh0cyBza2lwcGVkIGJ5IFNLSVAgUEFTVCBMQVNUIFJPVwotQ1JF QVRFIFZJRVcgcnByX2V2MTkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfc2tpcCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC04MzYsNyArODM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEEgQiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA9IDEsIEIgQVMgdiAlIDEwID0g MiwgQyBBUyB2ICUgMTAgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9za2lwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOIChhIGIgYykgCkBAIC04NjYsNyArODY2LDcgQEAgV0lORE9XIHcg QVMgKAogKDkgcm93cykKIAogLS0gSGlnaCBjb250ZXh0IGFic29ycHRpb24gLSB1bmJvdW5kZWQg Z3JvdXAKLUNSRUFURSBWSUVXIHJwcl9ldjIwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fi c29yYl9ncm91cCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC04NzUsNyArODc1LDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAz ID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfZ3Jv dXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBs aW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIp KyBjKSAKQEAgLTkwNyw3ICs5MDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBGaXhlZC1sZW5ndGgg Z3JvdXAgYWJzb3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9OyBhYnNv cmJhYmxlIHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCiAtLSBzdGVwX3NpemU9MyAoQSArIEIgKyBC KTsgdiAlIDcgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zIHBlciBtYXRjaAotQ1JFQVRFIFZJRVcg cnByX2V2MjBiIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZhciBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTkxNiw3ICs5MTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoKEEgQiBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNyBJTiAoMSwgNCksIEIg QVMgdiAlIDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBiJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29y Yl9maXhlZHZhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBB VFRFUk4gKChhIGIgYikrIGMpIApAQCAtOTQ3LDcgKzk0Nyw3IEBAIFdJTkRPVyB3IEFTICgKIAog LS0gTmVzdGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoQiBDKXsyfSBEKSsg RQogLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNjsgdiAlIDEzIGN5Y2xlIGdpdmVz IDIgaXRlcmF0aW9ucyArIEUKLUNSRUFURSBWSUVXIHJwcl9ldjIwYyBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2N0eF9hYnNvcmJfbmVzdGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtOTU4LDcg Kzk1OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgICAgQyBBUyB2ICUgMTMgSU4gKDMsIDUs IDksIDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKICAgICAgICAgICAgRSBBUyB2ICUgMTMg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYyMGMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX25lc3RlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgKGIgYyl7Mn0gZCkrIGUp IApAQCAtOTkxLDcgKzk5MSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gRG91Ymx5IG5lc3RlZCBm aXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKChCIEN7M30pezJ9IEQpezJ9IEUpKyBG CiAtLSBzdGVwX3NpemUgPSAxICsgKCgxKzMpKjIrMSkqMiArIDEgPSAyMDsgdiAlIDQxIGN5Y2xl IGdpdmVzIDIgaXRlcmF0aW9ucyArIEYKLUNSRUFURSBWSUVXIHJwcl9ldjIwZCBBUworQ1JFQVRF IFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfZGVlcCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEw MDYsNyArMTAwNiw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4g KDIwLCA0MCksCiAgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBkJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9k ZWVwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAg ICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgKChiIGMgYyBjKXsyfSBkKXsy fSBlKSsgZikgCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSAzLWxldmVs IEVORCBjaGFpbiBhYnNvcnB0aW9uOiAoKEEgKEIgQyl7Mn0pezJ9KSsKIC0tIHN0ZXBfc2l6ZSA9 ICgxICsgKDErMSkqMikgKiAyID0gMTA7IHYgJSAyMSBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMK IC0tIEVORCBjaGFpbjogRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAtPiBFTkQoKywgQUJTT1JC QUJMRSkKLUNSRUFURSBWSUVXIHJwcl9ldjIwZSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9h YnNvcmJfZW5kY2hhaW4gQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDQyKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDU1LDcgKzEwNTUsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAx MiwgMTQsIDE3LCAxOSksCiAgICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwg MTMsIDE1LCAxOCwgMjApCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2VuZGNoYWluJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICBsaW5lICAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKCgo YSAoYiBjKXsyfSl7Mn0pKykgCkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAt LSBNYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBGaXhlZCBsZW5ndGgg bWF0Y2hlcyAtIGFsbCBzYW1lIGxlbmd0aAotQ1JFQVRFIFZJRVcgcnByX2V2MjEgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9tbGVuX2ZpeGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKApAQCAtMTEwMSw3ICsxMTAxLDcgQEAgV0lORE9X IHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0 ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djIxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxl bl9maXhlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhIGIgYyBkIGUpIApAQCAtMTEzMyw3ICsxMTMzLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93 cykKIAogLS0gVmFyaWFibGUgbGVuZ3RoIG1hdGNoZXMgLSBtaW4vbWF4L2F2ZyBkaWZmZXIKLUNS RUFURSBWSUVXIHJwcl9ldjIyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl92YXJpYWJsZSBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2 ICUgMTAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X21sZW5fdmFyaWFibGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTExNzIsNyArMTE3Miw3IEBAIFdJTkRPVyB3IEFTICgK ICg5IHJvd3MpCiAKIC0tIFZlcnkgbG9uZyBtYXRjaGVzCi1DUkVBVEUgVklFVyBycHJfZXYyMyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC0xMTgxLDcgKzExODEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAg ICBERUZJTkUgQSBBUyB2IDw9IDE5NSwgQiBBUyB2ID4gMTk1CiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMycpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fbG9uZycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAg ICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTIxMSw3ICsx MjExLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVW5pZm9ybSBtYXRjaCBsZW5n dGggd2l0aCBtaXNtYXRjaGVzIGZyb20gZ2FwIHJvd3MgKHYlMjAgPSAxMS4uMTUpCi1DUkVBVEUg VklFVyBycHJfZXYyNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMjIyLDcgKzEyMjIsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgICAgIEEgQVMgKHYgJSAyMCA8PiAwKSBBTkQgKHYgJSAyMCA8PSAxMCBPUiB2ICUgMjAg PiAxNSksCiAgICAgICAgIEIgQVMgdiAlIDIwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2gn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTEyNTgs NyArMTI1OCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUGF0dGVybiB3aXRoIGNvbXBs ZXRlIG1hdGNoIGV2ZXJ5IGN5Y2xlOiAwIG1pc21hdGNoZWQKIC0tIEEoMSwyLDMpIEIoNCw1KSBD KDYpIHJlcGVhdHMgcGVyZmVjdGx5OyBYIHJvd3MgYXJlIHBydW5lZCwgbm90IG1pc21hdGNoZWQK LUNSRUFURSBWSUVXIHJwcl9ldjI1IEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9ub19taXNt YXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIHYsCkBA IC0xMjc0LDcgKzEyNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykK ICAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdD JwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2MjUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9tbGVuX25vX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgUEFUVEVSTiAoYSsgYisgYykgCkBAIC0xMzExLDcgKzEzMTEsNyBAQCBXSU5ET1cgdyBB UyAoCiAoOSByb3dzKQogCiAtLSBMb25nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0IGZhaWwKLUNSRUFU RSBWSUVXIHJwcl9ldjI2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAogICAgIFNFTEVDVCBpIEFTIHYsCkBA IC0xMzMyLDcgKzEzMzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykK ICAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdD JwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2MjYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9tbGVuX2xvbmdfcGFydGlhbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgIFBBVFRFUk4gKGErIGIrIGMpIApAQCAtMTM3Nyw3ICsxMzc3LDcgQEAgV0lORE9XIHcg QVMgKAogLS0gSlNPTiBGb3JtYXQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSlNPTiBmb3JtYXQgb3V0cHV0 IHdpdGggYWxsIHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjI3IEFTCitDUkVBVEUgVklF VyBycHJfZXZfanNvbl9iYXNpYyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzODYsNyArMTM4 Niw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBB UyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fYmFzaWMnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIrKSAKQEAgLTE0NTQsNyArMTQ1NCw3 IEBAIFdJTkRPVyB3IEFTICgKICgxIHJvdykKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBtYXRjaCBs ZW5ndGggc3RhdGlzdGljcwotQ1JFQVRFIFZJRVcgcnByX2V2MjggQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9qc29uX21hdGNobGVuIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE0NjMsNyArMTQ2 Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFT IHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI4JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfanNvbl9tYXRjaGxlbicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTUzNSw3ICsxNTM1 LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNoIHN0YXRp c3RpY3MKIC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIsNCB0d2lj ZSBjYXVzaW5nIG1pc21hdGNoZXMKLUNSRUFURSBWSUVXIHJwcl9ldjI5IEFTCitDUkVBVEUgVklF VyBycHJfZXZfanNvbl9taXNtYXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAo VkFMVUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKIFdJ TkRPVyB3IEFTICgKQEAgLTE1NDQsNyArMTU0NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBIEIgQykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0g MwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2MjknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9qc29uX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhIGIgYykgCkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0t IEpTT04gZm9ybWF0IHdpdGggc2tpcHBlZCBjb250ZXh0IHN0YXRpc3RpY3MKIC0tIEFsdGVybmF0 aW9uIHBhdHRlcm4gd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cgY2F1c2VzIG1hbnkgY29udGV4dHMg dG8gYmUgc2tpcHBlZAotQ1JFQVRFIFZJRVcgcnByX2V2MzAgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl9qc29uX3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTYyNCw3ICsxNjI0LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwg QikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUg MiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIp IChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikpIApAQCAtMTY5OCw3ICsxNjk4LDcgQEAg V0lORE9XIHcgQVMgKAogLS0gWE1MIEZvcm1hdCBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBYTUwgZm9ybWF0 IG91dHB1dAotQ1JFQVRFIFZJRVcgcnByX2V2MzEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl94bWxf YmFzaWMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzA3LDcgKzE3MDcsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBB UyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjMxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfeG1sX2Jhc2ljJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGEgYikgCkBAIC0xNzc4LDcgKzE3NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBN dWx0aXBsZSBQYXJ0aXRpb25zIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFN0YXRpc3RpY3MgYWNyb3NzIG11 bHRpcGxlIHBhcnRpdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjMyIEFTCitDUkVBVEUgVklFVyBy cHJfZXZfcGFydF9tdWx0aSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAg U0VMRUNUIHAsIHYKQEAgLTE3OTIsNyArMTc5Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYzMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3BhcnRfbXVsdGknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChh KyBiKSAKQEAgLTE4MzIsNyArMTgzMiw3IEBAIFdJTkRPVyB3IEFTICgKICgxNCByb3dzKQogCiAt LSBEaWZmZXJlbnQgcGF0dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCi1DUkVBVEUgVklFVyBy cHJfZXYzMyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2YWwgPCA1LCBC IEFTIHZhbCA+PSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTg4OSw3ICsxODg5LDcgQEAgV0lORE9XIHcgQVMgKAog LS0gRWRnZSBDYXNlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBFbXB0eSByZXN1bHQgc2V0Ci1DUkVBVEUgVklFVyBy cHJfZXYzNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHkgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDApIEFTIHModikKIFdJTkRPVyB3 IEFTICgKQEAgLTE4OTgsNyArMTg5OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIpCiAgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM0JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9lbXB0eScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIpIApAQCAtMTkyMyw3ICsx OTIzLDcgQEAgV0lORE9XIHcgQVMgKAogKDQgcm93cykKIAogLS0gU2luZ2xlIHJvdwotQ1JFQVRF IFZJRVcgcnByX2V2MzUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTE5MzIsNyArMTkzMiw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM1JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9zaW5nbGVfcm93 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgbGluZSAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSkgCkBAIC0xOTYxLDcgKzE5NjEs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBQYXR0ZXJuIGxvbmdlciB0aGFuIGRh dGEKLUNSRUFURSBWSUVXIHJwcl9ldjM2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9wYXR0 ZXJuX2xvbmdlciBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNSkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTk3Miw3ICsxOTcyLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgICAgICBBIEFTIHYgPSAxLCBCIEFTIHYgPSAyLCBDIEFTIHYgPSAzLCBE IEFTIHYgPSA0LCBFIEFTIHYgPSA1LAogICAgICAgICBGIEFTIHYgPSA2LCBHIEFTIHYgPSA3LCBI IEFTIHYgPSA4LCBJIEFTIHYgPSA5LCBKIEFTIHYgPSAxMAogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzYnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX3BhdHRlcm5fbG9u Z2VyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAg ICAgICAgbGluZSAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgUEFUVEVSTiAoYSBiIGMgZCBlIGYgZyBoIGkgaikgCkBAIC0yMDAzLDcgKzIwMDMs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBBbGwgcm93cyBtYXRjaCBhcyBzaW5n bGUgbWF0Y2gKLUNSRUFURSBWSUVXIHJwcl9ldjM3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfZWRn ZV9zaW5nbGVfbWF0Y2ggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDEyLDcgKzIwMTIsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgVFJVRQog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MzcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9lZGdlX3NpbmdsZV9tYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSspIApAQCAtMjA0NSw3ICsyMDQ1LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gQ29tcGxleCBQ YXR0ZXJuIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9l djM4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3B4X25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTIwNTQsNyArMjA1NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEg QikgQykrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMg diAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYzOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2NweF9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOICgoKGEgYikgYykrKSAKQEAgLTIwODQsNyArMjA4NCw3IEBA IFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE11bHRpcGxlIGFsdGVybmF0aW9ucwotQ1JF QVRFIFZJRVcgcnByX2V2MzkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9jcHhfbXVsdGlfYWx0IEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMg KApAQCAtMjA5NSw3ICsyMDk1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9 ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9 ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X211bHRpX2FsdCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChh IHwgYikgKGMgfCBkIHwgZSkpIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgV0lORE9XIHcgQVMgKAog KDkgcm93cykKIAogLS0gT3B0aW9uYWwgZWxlbWVudHMKLUNSRUFURSBWSUVXIHJwcl9ldjQwIEFT CitDUkVBVEUgVklFVyBycHJfZXZfY3B4X29wdGlvbmFsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMjEzNiw3ICsyMTM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQj8gQykK ICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYgJSA0ID0g MwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2NDAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9jcHhfb3B0aW9uYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYSBiPyBjKSAKQEAgLTIxNjYsNyArMjE2Niw3IEBAIFdJTkRPVyB3IEFTICgKICg5 IHJvd3MpCiAKIC0tIEJvdW5kZWQgcXVhbnRpZmllcnMKLUNSRUFURSBWSUVXIHJwcl9ldjQxIEFT CitDUkVBVEUgVklFVyBycHJfZXZfY3B4X2JvdW5kZWQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMjE3NSw3ICsyMTc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw1fSBC KQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djQxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4 X2JvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAg ICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KGF7Miw1fSBiKSAKQEAgLTIyMDUsNyArMjIwNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3Mp CiAKIC0tIFN0YXIgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2NDIgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9jcHhfc3RhciBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIyMTQsNyArMjIx NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIqIEMpCiAgICAgREVGSU5FIEEg QVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAgSU4gKDIsMyw0LDUsNiw3LDgpLCBDIEFTIHYgJSAx MCA9IDkKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjQyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfY3B4X3N0YXInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYSBiKiBjKSAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0t IFJlYWwtd29ybGQgUGF0dGVybiBFeGFtcGxlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdG9jayBwcmljZSBwYXR0 ZXJuIC0gVi1zaGFwZSAoZG93biB0aGVuIHVwKQotQ1JFQVRFIFZJRVcgcnByX2V2NDMgQVMKK0NS RUFURSBWSUVXIHJwcl9ldl9yZWFsX3ZzaGFwZSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBycHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKQEAgLTIyNTYsNyArMjI1Niw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChEKyBVKykKICAgICBERUZJTkUgRCBBUyB0cmVu ZCA9ICdEJywgVSBBUyB0cmVuZCA9ICdVJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3ZzaGFwZScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoZCsgdSspIApAQCAtMjI4Niw3ICsyMjg2LDcg QEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBl YWsgKHVwLCBzdGFibGUsIGRvd24pCi1DUkVBVEUgVklFVyBycHJfZXY0NCBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X3JlYWxfcGVhayBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJf bmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKQEAgLTIyOTUsNyArMjI5NSw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChVKyBTKiBEKykKICAgICBERUZJTkUgVSBBUyB0cmVuZCA9ICdV JywgUyBBUyB0cmVuZCA9ICdTJywgRCBBUyB0cmVuZCA9ICdEJwogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDQnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3BlYWsnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5lICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHUrIHMqIGQrKSAK QEAgLTIzMjUsNyArMjMyNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIENvbnNl Y3V0aXZlIGluY3JlYXNpbmcgdmFsdWVzICh1c2luZyBQUkVWKQotQ1JFQVRFIFZJRVcgcnByX2V2 NDUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9yZWFsX2luY3JlYXNpbmcgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0yMzM0LDcgKzIzMzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QXszLH0pCiAgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodikgT1IgUFJFVih2KSBJUyBOVUxMCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY0NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3JlYWxfaW5jcmVhc2luZycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFU VEVSTiAoYXszLH0pIApAQCAtMjM2Nyw3ICsyMzY3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gUGVy Zm9ybWFuY2Utb3JpZW50ZWQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTGFyZ2UgZGF0YXNldCB3aXRoIHNp bXBsZSBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY0NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X3BlcmZfbGFyZ2Vfc2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzc2LDcgKzIz NzYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFT IHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ2JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9zaW1wbGUnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiKSAKQEAgLTI0MDYsNyArMjQwNiw3 IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIExhcmdlIGRhdGFzZXQgd2l0aCBhYnNv cnB0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY0NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZf bGFyZ2VfYWJzb3JiIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNDE1LDcgKzI0MTUsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUg MTAwIDw+IDAsIEIgQVMgdiAlIDEwMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ3JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9hYnNvcmInKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTI0NDUsNyArMjQ0 NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0 aW8KLUNSRUFURSBWSUVXIHJwcl9ldjQ4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9oaWdo X21lcmdlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI0NTQsNyArMjQ1NCw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAz ID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJn ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBs aW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChh IHwgYikrIGMpIApAQCAtMjQ4Nyw3ICsyNDg3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gSU5JVElB TCB2cyBubyBJTklUSUFMIGNvbXBhcmlzb24KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gV2l0aCBJTklUSUFMIGtleXdv cmQKLUNSRUFURSBWSUVXIHJwcl9ldjQ5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93 aXRoIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQ5Nyw3ICsyNDk3LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBB UyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgUEFUVEVSTiAoYSsgYikgCkBAIC0yNTI4LDcgKzI1MjgsNyBAQCBXSU5ET1cgdyBBUyAo CiAoOSByb3dzKQogCiAtLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBj dXJyZW50bHkpCi1DUkVBVEUgVklFVyBycHJfZXY1MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2lu aXRpYWxfd2l0aG91dCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI1MzcsNyArMjUzNyw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1 IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2luaXRpYWxfd2l0aG91dCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMjU3MCw3ICsyNTcwLDcgQEAg V0lORE9XIHcgQVMgKAogLS0gUXVhbnRpZmllciBWYXJpYXRpb25zCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFBsdXMg cXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2NTEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9x dWFudF9wbHVzIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjU3OSw3ICsyNTc5LDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHYgJSA0IDw+IDAK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjUxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfcXVhbnRfcGx1cycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsp IApAQCAtMjYwOSw3ICsyNjA5LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gU3Rh ciBxdWFudGlmaWVyICh6ZXJvIG9yIG1vcmUpCi1DUkVBVEUgVklFVyBycHJfZXY1MiBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3F1YW50X3N0YXIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNjE4 LDcgKzI2MTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSogQikKICAgICBERUZJ TkUgQSBBUyB2ICUgNCBJTiAoMSwgMiksIEIgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXIn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKiBiKSAKQEAgLTI2NDgs NyArMjY0OCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFF1ZXN0aW9uIG1hcmsg KHplcm8gb3Igb25lKQotQ1JFQVRFIFZJRVcgcnByX2V2NTMgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl9xdWFudF9xdWVzdGlvbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI2NTcsNyArMjY1Nyw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBPyBCIEMpCiAgICAgREVGSU5FIEEgQVMg diAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUzJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfcXVl c3Rpb24nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAg IGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYT8gYiBj KSAKQEAgLTI2ODcsNyArMjY4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEV4 YWN0IGNvdW50IHtufQotQ1JFQVRFIFZJRVcgcnByX2V2NTQgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl9xdWFudF9leGFjdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI2OTYsNyArMjY5Niw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezN9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjU0JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfZXhhY3QnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYXszfSBiKSAKQEAgLTI3MjYsNyArMjcyNiw3 IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFJhbmdlIHtuLG19Ci1DUkVBVEUgVklF VyBycHJfZXY1NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3JhbmdlIEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMjczNSw3ICsyNzM1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAw CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXY1NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X3F1YW50X3JhbmdlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg ICBQQVRURVJOIChhezIsNH0gYikgCkBAIC0yNzY1LDcgKzI3NjUsNyBAQCBXSU5ET1cgdyBBUyAo CiAoOSByb3dzKQogCiAtLSBBdCBsZWFzdCB7bix9Ci1DUkVBVEUgVklFVyBycHJfZXY1NiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X2F0bGVhc3QgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC0yNzc0LDcgKzI3NzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszLH0gQikK ICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1 NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50 X2F0bGVhc3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAg ICAgICBsaW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChh ezMsfSBiKSAKQEAgLTI4MDgsNyArMjgwOCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0g VmVyaWZ5IHN0YXRlIGNvdW50IGFjY3VyYWN5CiAtLSBQYXR0ZXJuIEErIEIgd2l0aCAyMCByb3dz IHNob3VsZCBzaG93IHByZWRpY3RhYmxlIHN0YXRlIGJlaGF2aW9yCi1DUkVBVEUgVklFVyBycHJf ZXY1NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19zdGF0ZV9jb3VudCBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTI4MTcsNyArMjgxNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO IChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY1NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3JlZ19zdGF0ZV9jb3VudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KGErIGIpIApAQCAtMjg0Nyw3ICsyODQ3LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAog LS0gVmVyaWZ5IGNvbnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9uCi1DUkVBVEUgVklF VyBycHJfZXY1OCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQog V0lORE9XIHcgQVMgKApAQCAtMjg1Niw3ICsyODU2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcp LCBCIEFTIHYgJSAxMCA9IDgsIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTgnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fic29yYicp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiIGMpIApAQCAt Mjg4Niw3ICsyODg2LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVmVyaWZ5IG1h dGNoIGxlbmd0aCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY1 OSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19tYXRjaGxlbiBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTI4OTUsNyArMjg5NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIg QykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAz ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2NTknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9yZWdfbWF0Y2hsZW4nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGEgYiBjKSAKQEAgLTI5MjgsNyArMjkyOCw3IEBAIFdJTkRPVyB3IEFTICgKIC0t IEFsdGVybmF0aW9uIFBhdHRlcm4gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2ltcGxlIGFsdGVybmF0aW9u Ci1DUkVBVEUgVklFVyBycHJfZXY2MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9zaW1wbGUg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBB UyAoCkBAIC0yOTM3LDcgKzI5MzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEg fCBCKSBDKQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMg Y2F0ID0gJ0MnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXY2MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2FsdF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBiKSBjKSAKQEAgLTI5NjcsNyArMjk2Nyw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE11bHRpcGxlIGl0ZW1zIGluIGFsdGVybmF0aW9u Ci1DUkVBVEUgVklFVyBycHJfZXY2MSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9tdWx0aV9p dGVtIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9X IHcgQVMgKApAQCAtMjk3OCw3ICsyOTc4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFT IGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFT IGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYxJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X211bHRpX2l0ZW0nKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgICAgIGxpbmUgICAg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KChhIHwgYiB8IGMgfCBkKSBlKSAKQEAgLTMwMTAsNyArMzAxMCw3IEBAIFdJTkRPVyB3IEFTICgK ICg5IHJvd3MpCiAKIC0tIEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmllcnMKLUNSRUFURSBWSUVX IHJwcl9ldjYyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3dpdGhfcXVhbnQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0zMDE5LDcgKzMwMTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgfCBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMg PSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfd2l0aF9xdWFudCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikrIGMpIApAQCAtMzA0 OSw3ICszMDQ5LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUgYWx0 ZXJuYXRpdmVzICg0KykKLUNSRUFURSBWSUVXIHJwcl9ldjYzIEFTCitDUkVBVEUgVklFVyBycHJf ZXZfYWx0X2ZvdXJfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMDU3LDcgKzMwNTcs NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAg REVGSU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQg QVMgdiAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjMnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91cl9wbHVzJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICBsaW5lICAg ICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhIHwgYiB8IGMgfCBkIHwgZSkgCkBAIC0zMDg1LDcgKzMwODUsNyBAQCBXSU5ET1cgdyBBUyAo CiAoOCByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBzdGFydAotQ1JFQVRFIFZJRVcgcnByX2V2 NjQgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfc3RhcnQgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC0zMDkzLDcgKzMwOTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEg fCBCKSBDIEQpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBB UyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2NCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9hdF9zdGFydCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBiKSBjIGQp IApAQCAtMzEyMiw3ICszMTIyLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVs dGlwbGUgc2VxdWVudGlhbCBhbHRlcm5hdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjY1IEFTCitD UkVBVEUgVklFVyBycHJfZXZfYWx0X3NlcXVlbnRpYWwgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMzEzMCw3ICszMTMwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikg QyAoRCB8IEUpIEYpCiAgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwg QyBBUyB2ICUgNiA9IDIsIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUg NiA9IDUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjY1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfYWx0X3NlcXVlbnRpYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIGMgKGQgfCBl KSBmKSAKQEAgLTMxNTgsNyArMzE1OCw3IEBAIFdJTkRPVyB3IEFTICgKICg4IHJvd3MpCiAKIC0t IFF1YW50aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVklFVyBycHJfZXY2NiBBUworQ1JFQVRF IFZJRVcgcnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzE2 Niw3ICszMTY2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBDKQog ICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAy CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXY2NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X2FsdF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoYSsgfCBiKykgYykgCkBAIC0zMTk1LDcgKzMxOTUsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBlbmQKLUNSRUFURSBW SUVXIHJwcl9ldjY3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2F0X2VuZCBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTMyMDMsNyArMzIwMyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBIEIgKEMgfCBEKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQg PSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY3JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0X2VuZCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiIChj IHwgZCkpIApAQCAtMzIzMyw3ICszMjMzLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQg QUxUIGF0IHN0YXJ0IG9mIGJyYW5jaCBpbnNpZGUgb3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQSAo KEIgfCBDKSBEIHwgRSkpIC0gcHJlY2VkaW5nIFZBUiArIGlubmVyIEFMVCBhcyBmaXJzdCBicmFu Y2ggZWxlbWVudAotQ1JFQVRFIFZJRVcgcnByX2V2NjggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9h bHRfbmVzdGVkX3N0YXJ0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAyMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzI0MSw3ICszMjQxLDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKChCIHwgQykgRCB8IEUpKQogICAgIERF RklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFT IHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY4JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9zdGFydCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSAoKGIgfCBjKSBkIHwgZSkpIApAQCAtMzI3MCw3ICszMjcwLDcgQEAgV0lORE9XIHcgQVMg KAogCiAtLSBOZXN0ZWQgQUxUIGF0IGVuZCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0g UGF0dGVybjogKEMgKEEgfCBCKSB8IEQpIC0gaW5uZXIgQUxUIGlzIGxhc3QgZWxlbWVudCBpbiBv dXRlciBicmFuY2gKLUNSRUFURSBWSUVXIHJwcl9ldjY5IEFTCitDUkVBVEUgVklFVyBycHJfZXZf YWx0X25lc3RlZF9lbmQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMjc4LDcgKzMyNzgsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKICAgICBERUZJTkUg QSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUg NCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjY5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9lbmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChjIChhIHwgYikgfCBkKSAKQEAgLTMzMDksNyAr MzMwOSw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIEdyb3VwIFBhdHRlcm4gVGVzdHMKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gU2ltcGxlIGdyb3VwCi1DUkVBVEUgVklFVyBycHJfZXY3MCBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2dycF9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzE4LDcgKzMzMTgsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYg JSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjcwJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSBiKSspIApAQCAtMzM0OCw3ICszMzQ4LDcg QEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50 aWZpZXIKLUNSRUFURSBWSUVXIHJwcl9ldjcxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2Jv dW5kZWQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzU3LDcgKzMzNTcsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQil7Miw0fSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9 IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgYil7Miw0fSkgCkBAIC0zMzg3LDcg KzMzODcsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBOZXN0ZWQgZ3JvdXBzCi1D UkVBVEUgVklFVyBycHJfZXY3MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9uZXN0ZWQgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzk2LDcgKzMzOTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFT IHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NzInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfbmVzdGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoKGEgYil7Mn0pKykgCkBAIC0zNDI2LDcgKzM0MjYs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBEZWVwIG5lc3RpbmcgKDMrIGxldmVs cykKLUNSRUFURSBWSUVXIHJwcl9ldjczIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2RlZXAg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNDM0LDcgKzM0MzQsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoKCgoQSB8IEIpKykrKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAw LCBCIEFTIHYgJSAyID0gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfZGVlcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKCgoYSB8IGIpKykrKSspIApAQCAt MzQ2Myw3ICszNDYzLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gQm91bmRlZCBx dWFudGlmaWVyIG9uIGFsdGVybmF0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY3NCBBUworQ1JFQVRF IFZJRVcgcnByX2V2X2dycF9ib3VuZGVkX2FsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM0 NzEsNyArMzQ3MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpezIsM30g QykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAz ID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2NzQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9ncnBfYm91bmRlZF9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYil7MiwzfSBjKSAKQEAgLTM1MDAs NyArMzUwMCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE5lc3RlZCBncm91cHMg d2l0aCBxdWFudGlmaWVycwotQ1JFQVRFIFZJRVcgcnByX2V2NzUgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9ncnBfbmVzdGVkX3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzUwOCw3ICsz NTA4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQogICAgIERF RklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY3NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2dycF9uZXN0ZWRfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgIFBBVFRFUk4gKCgoYSBiKSsgYykqKSAKQEAgLTM1MzcsNyArMzUzNyw3IEBAIFdJTkRP VyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFBhcnRpYWwgbmVzdGVkIHF1YW50aWZpY2F0aW9uCi1D UkVBVEUgVklFVyBycHJfZXY3NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9wYXJ0aWFsX3F1 YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzU0NSw3ICszNTQ1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQogICAgIERFRklORSBBIEFTIHYgJSAzID0g MCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3NicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9wYXJ0aWFsX3F1YW50 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICBs aW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgo YSAoYiBjKSspKikgCkBAIC0zNTc3LDcgKzM1NzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBXaW5k b3cgRnVuY3Rpb24gQ29tYmluYXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIGNvdW50KCopIHdpdGggcGF0dGVy bgotQ1JFQVRFIFZJRVcgcnByX2V2NzcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fY291bnQg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNTg2LDcgKzM1ODYsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2NzcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl93Zm5fY291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKSAKQEAgLTM2MTYsNyArMzYxNiw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJv d3MpCiAKIC0tIGZpcnN0X3ZhbHVlIHdpdGggcGF0dGVybgotQ1JFQVRFIFZJRVcgcnByX2V2Nzgg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fZmlyc3RfdmFsdWUgQVMKIFNFTEVDVCBmaXJzdF92 YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC0zNjI1LDcgKzM2MjUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2NzgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl93Zm5fZmlyc3RfdmFsdWUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM2NTUsNyArMzY1NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAK IC0tIGxhc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3OSBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3dmbl9sYXN0X3ZhbHVlIEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0zNjY0LDcgKzM2NjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikK ICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2Nzkn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFz dF92YWx1ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApA QCAtMzY5NCw3ICszNjk0LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlw bGUgd2luZG93IGZ1bmN0aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2ODAgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl93Zm5fbXVsdGkgQVMKIFNFTEVDVAogICAgIGNvdW50KCopIE9WRVIgdywKICAgICBm aXJzdF92YWx1ZSh2KSBPVkVSIHcsCkBAIC0zNzA2LDcgKzM3MDYsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2ODAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl93Zm5fbXVsdGknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKSAKQEAgLTM3NDIsNyArMzc0Miw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIERF RklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29tcGxleCBib29sZWFuIGV4 cHJlc3Npb25zCi1DUkVBVEUgVklFVyBycHJfZXY4MSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Rl Zl9jb21wbGV4X2Jvb2wgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNzUzLDcgKzM3NTMsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgKHYgJSA1IDw+IDApIEFORCAodiAlIDMgPD4g MCksCiAgICAgICAgIEIgQVMgKHYgJSA1ID0gMCkgT1IgKHYgJSAzID0gMCkKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjgx JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZGVmX2Nv bXBsZXhfYm9vbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIp IApAQCAtMzc4NSw3ICszNzg1LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVXNp bmcgUFJFViBmdW5jdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9kZWZfcHJldiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM3OTcsNyArMzc5Nyw3IEBA IFdJTkRPVyB3IEFTICgKICAgICAgICAgVSBBUyB2ID4gUFJFVih2KSwKICAgICAgICAgRCBBUyB2 IDwgUFJFVih2KQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2ODInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9kZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgIFBBVFRFUk4gKHMgdSsgZCspIApAQCAtMzgyOSw3ICszODI5LDcgQEAgV0lORE9XIHcg QVMgKAogKDggcm93cykKIAogLS0gVXNpbmcgTlVMTCBjb21wYXJpc29ucwotQ1JFQVRFIFZJRVcg cnByX2V2ODMgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfbnVsbCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIENBU0UgV0hFTiB2ICUgNSA9IDAgVEhFTiBO VUxMIEVMU0UgdiBFTkQgQVMgdgpAQCAtMzg0MSw3ICszODQxLDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiBJUyBOT1QgTlVMTCwgQiBBUyB2 IElTIE5VTEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjgzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfZGVmX251bGwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKSAKQEAgLTM4NzcsNyArMzg3Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIExh cmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIDUwMCByb3dzIC0g dmVyaWZ5IHN0YXRpc3RpY3Mgc2NhbGUgY29ycmVjdGx5Ci1DUkVBVEUgVklFVyBycHJfZXY4NCBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlXzUwMHJvd3MgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMzg4Niw3ICszODg2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIg QykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAl IDEwID0gOAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2ODQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9zY2FsZV81MDByb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgIFBBVFRFUk4gKGErIGIgYykgCkBAIC0zOTE2LDcgKzM5MTYsNyBAQCBXSU5ET1cgdyBB UyAoCiAoOSByb3dzKQogCiAtLSBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCi1DUkVBVEUgVklF VyBycHJfZXY4NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2ggQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMzkyNSw3ICszOTI1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAw CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXY4NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFU VEVSTiAoYSBiKSAKQEAgLTM5NTUsNyArMzk1NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3Mp CiAKIC0tIEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODYgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMzk2OSw3ICszOTY5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTIHYgJSAx MDAgPSA0LAogICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfc2tpcCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5l ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIgYyBk IGUpIApAQCAtNDAxMywxNyArNDAxMywxNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBUZXN0IHdpdGgg cm93X251bWJlcigpIGFzIHJlcHJlc2VudGF0aXZlIGNhc2UuCiAtLQogLS0gV2l0aG91dCBSUFI6 IHJvd19udW1iZXIoKSBmcmFtZSBpcyBvcHRpbWl6ZWQgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VE SU5HCi1DUkVBVEUgVklFVyBycHJfZXY4NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X29wdF9ub19y cHIgQVMKIFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIHYKICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICk7Ci1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODc7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gcnByX2V2X29wdF9ub19ycHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBT Y2FuIG9uIHJwcl9ldjg3CisgU3VicXVlcnkgU2NhbiBvbiBycHJfZXZfb3B0X25vX3JwcgogICAg LT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBV TkJPVU5ERUQgUFJFQ0VESU5HKQogICAgICAgICAgLT4gIFNvcnQKQEAgLTQwMzIsNyArNDAzMiw3 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsKICg2IHJvd3Mp CiAKIC0tIFdpdGggUlBSOiBmcmFtZSBtdXN0IHJlbWFpbiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLUNSRUFURSBWSUVXIHJwcl9ldjg4IEFTCitDUkVB VEUgVklFVyBycHJfZXZfb3B0X3dpdGhfcnByIEFTCiBTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTQwNDMsMTAgKzQwNDMsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORQogICAgICAgICBC IEFTIHYgPiBQUkVWKHYpCiApOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldjg4OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfd2l0 aF9ycHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldjg4CisgU3VicXVlcnkgU2NhbiBv biBycHJfZXZfb3B0X3dpdGhfcnByCiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6 IHcgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCkBAIC00MDU5LDcgKzQwNTksNyBA QCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODg7CiAtLSBQbGFubmVy IG9wdGltaXphdGlvbjogbm9uLVJQUiBhbmQgUlBSIHdpbmRvd3MgdGhhdCBzaGFyZSB0aGUgc2Ft ZSBiYXNlIGZyYW1lCiAtLSBhZnRlciBmcmFtZSBvcHRpbWl6YXRpb24gYXJlIGtlcHQgYXMgc2Vw YXJhdGUgV2luZG93QWdnIG5vZGVzLgogLS0KLUNSRUFURSBWSUVXIHJwcl9ldjg5IEFTCitDUkVB VEUgVklFVyBycHJfZXZfb3B0X21peGVkIEFTCiBTRUxFQ1QKICAgICByb3dfbnVtYmVyKCkgT1ZF UiB3X25vcm1hbCBBUyBybl9ub3JtYWwsCiAgICAgcm93X251bWJlcigpIE9WRVIgd19ycHIgQVMg cm5fcnByCkBAIC00MDcyLDEwICs0MDcyLDEwIEBAIFdJTkRPVwogICAgICAgICBQQVRURVJOIChB KykKICAgICAgICAgREVGSU5FIEEgQVMgdiA+IDEKICAgICApOwotRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHJwcl9ldjg5OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHJwcl9ldl9vcHRfbWl4ZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gcnBy X2V2ODkKKyBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldl9vcHRfbWl4ZWQKICAgIC0+ICBXaW5kb3dB Z2cKICAgICAgICAgIFdpbmRvdzogd19ycHIgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBh KyIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCAyMzdmMDM2NjYzMS4uNjVh Nzc1ZmRhZDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTExOCw3ICsx MTgsNyBAQCBWQUxVRVMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBTaW1wbGUgcGF0dGVybiAtIHNob3VsZCBzaG93 IGJhc2ljIHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjAxIEFTCitDUkVBVEUgVklFVyBy cHJfZXZfYmFzaWNfc2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9u ZmFfdGVzdAogV0lORE9XIHcgQVMgKApAQCAtMTI3LDcgKzEyNyw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9 ICdCJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2MDEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9iYXNpY19zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtMTQwLDcgKzE0MCw3IEBAIFdJTkRPVyB3IEFTICgKICknKTsK IAogLS0gUGF0dGVybiB3aXRoIG5vIG1hdGNoZXMgLSAwIG1hdGNoZWQKLUNSRUFURSBWSUVXIHJw cl9ldjAyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfbm9tYXRjaCBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTE0OSw3 ICsxNDksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoWCBZIFopCiAgICAgREVGSU5F IFggQVMgY2F0ID0gJ1gnLCBZIEFTIGNhdCA9ICdZJywgWiBBUyBjYXQgPSAnWicKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djAyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYmFz aWNfbm9tYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC0xNjIsNyArMTYyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gUGF0dGVy biBtYXRjaGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50Ci1DUkVBVEUgVklFVyBycHJf ZXYwMyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2FsbHJvd3MgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNzEsNyAr MTcxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKFIpCiAgICAgREVGSU5FIFIgQVMg VFJVRQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2MDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9iYXNpY19hbGxyb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTE4NSw3ICsxODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0t IFJlZ3Jlc3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBhcmVudGhlc2lzIGluIHBhdHRlcm4gZGVw YXJzZQogLS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAi YSAoYiB8IGMpIiB3aXRoIHNwYWNlCi1DUkVBVEUgVklFVyBycHJfZXYwNCBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc3BhY2UgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0x OTMsNyArMTkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKICAg ICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MDQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9iYXNpY19kZXBhcnNlX3NwYWNlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTIwNyw3ICsyMDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBS ZWdyZXNzaW9uIHRlc3Q6IFNlcXVlbnRpYWwgYWx0ZXJuYXRpb25zIGF0IHNhbWUgZGVwdGgKIC0t IFZlcmlmaWVzIHRoYXQgIigoQiB8IEMpIChEIHwgRSkpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAi KGIgfCBjKSAoZCB8IGUpIgogLS0gUHJldmlvdXNseSBmYWlsZWQgZHVlIHRvIG1pc3NpbmcgcGFy ZW50aGVzZXMgb24gQUxUIGRlcHRoIGRlY3JlYXNlCi1DUkVBVEUgVklFVyBycHJfZXYwNSBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc2VxYWx0IEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtMjE1LDcgKzIxNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgo QiB8IEMpIChEIHwgRSkpKikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDEsIEIgQVMgdiAlIDUg PSAyLCBDIEFTIHYgJSA1ID0gMywgRCBBUyB2ICUgNSA9IDQsIEUgQVMgdiAlIDUgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYwNScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2Jhc2ljX2RlcGFyc2Vfc2VxYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTIzMSw3ICsyMzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IAogLS0gU2ltcGxlIHF1YW50aWZpZXIgcGF0dGVybiAtIEErIHdpdGggc2hvcnQgbWF0Y2hlcyAo bm8gbWVyZ2luZykKLUNSRUFURSBWSUVXIHJwcl9ldjA2IEFTCitDUkVBVEUgVklFVyBycHJfZXZf c3RhdGVfc2ltcGxlX3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQwLDcgKzI0MCw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2ICUg MiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjA2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfc3RhdGVfc2ltcGxlX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTI1Myw3ICsyNTMsNyBAQCBXSU5ET1cgdyBBUyAo CiApOycpOwogCiAtLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNo ZXMKLUNSRUFURSBWSUVXIHJwcl9ldjA3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0 IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcg QVMgKApAQCAtMjY0LDcgKzI2NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQg PSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQg PSAnRCcsIEUgQVMgY2F0ID0gJ0UnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yNzksNyArMjc5LDcgQEAgV0lORE9X IHcgQVMgKAogKTsnKTsKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3Vu dAotQ1JFQVRFIFZJRVcgcnByX2V2MDggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21w bGV4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI5MSw3ICsyOTEsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0gMAogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9zdGF0ZV9jb21wbGV4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTMwNyw3ICszMDcsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBH cm91cGVkIHBhdHRlcm4gd2l0aCBxdWFudGlmaWVyIC0gc3RhdGUgY291bnQgd2l0aCBncm91cGlu ZwotQ1JFQVRFIFZJRVcgcnByX2V2MDkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9ncm91 cF9xdWFudCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTMxNiw3ICszMTYsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwg QiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfZ3JvdXBfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzMwLDcgKzMzMCw3IEBAIFdJTkRP VyB3IEFTICgKIAogLS0gU3RhdGUgZXhwbG9zaW9uIHBhdHRlcm4gLSBtYW55IGFsdGVybmF0aW9u cwogLS0gUGF0dGVybiAoQXxCKShBfEIpKEF8QikoQXxCKSBjYW4gY3JlYXRlIG1hbnkgcGFyYWxs ZWwgc3RhdGVzCi1DUkVBVEUgVklFVyBycHJfZXYxMCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3N0 YXRlX2V4cGxvc2lvbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzksNyArMzM5LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwg QikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUg MiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2V4cGxvc2lvbicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0zNTMsNyArMzUzLDcgQEAg V0lORE9XIHcgQVMgKAogCiAtLSBDb25zZWN1dGl2ZSBBTFQgbWVyZ2UgZm9sbG93ZWQgYnkgZGlm ZmVyZW50IEFMVAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gQUxUIGNo YW5nZTogKEF8Qil7Mn0gKEN8RCkKLUNSRUFURSBWSUVXIHJwcl9ldjExIEFTCitDUkVBVEUgVklF VyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX2FsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM2 Miw3ICszNjIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIp IChDIHwgRCkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBB UyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9tZXJnZV9hbHQnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzc2LDcg KzM3Niw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxv d2VkIGJ5IG5vbi1BTFQgZWxlbWVudAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1 c2ggb24gbm9uLUFMVDogKEF8Qil7Mn0gYwotQ1JFQVRFIFZJRVcgcnByX2V2MTIgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0IEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMzg1LDcgKzM4NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIp IChBIHwgQikgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBD IEFTIHYgJSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2MTInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTM5OCw3ICszOTgsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBBTFQgcHJlZml4L3N1ZmZpeCBhYnNvcmJlZCBpbnRv IEdST1VQOiAoQXxCKSAoQXxCKSsgKEF8QikgLT4gKEF8Qil7Myx9Ci1DUkVBVEUgVklFVyBycHJf ZXYxMyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC00MDcsNyArNDA3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKChBIHwgQikgKEEgfCBCKSsgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9 IDAsIEIgQVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNDIwLDcgKzQyMCw3 IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggc3RhdGUgY291bnQgLSBhbHRlcm5h dGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2MTQgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00 MjksNyArNDI5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKyBE KQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQg PSAzLCBEIEFTIHYgJSA0ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcGx1cycpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC00NDMsNyArNDQzLDcgQEAgV0lO RE9XIHcgQVMgKAogCiAtLSBFYXJseSB0ZXJtaW5hdGlvbjogZmlyc3QgQUxUIGJyYW5jaCAoQSkg cmVhY2hlcyBGSU4gaW1tZWRpYXRlbHksCiAtLSBwcnVuaW5nIHNlY29uZCBicmFuY2ggKEEgQisp IGJlZm9yZSBpdCBjYW4gYWNjdW11bGF0ZSBCIHJlcGV0aXRpb25zLgotQ1JFQVRFIFZJRVcgcnBy X2V2MTUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcHJ1bmUgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtNDUyLDcgKzQ1Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO ICgoQSB8IEEgQikrKQogICAgIERFRklORSBBIEFTIHYgPSAxLCBCIEFTIHYgPiAxCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYxNScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0 YXRlX2FsdF9wcnVuZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC00NjUsNyArNDY1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTmVz dGVkIHF1YW50aWZpZXJzIGNhdXNpbmcgc3RhdGUgZ3Jvd3RoCi1DUkVBVEUgVklFVyBycHJfZXYx NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX25lc3RlZF9xdWFudCBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtNDc0LDcgKzQ3NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO ICgoKEEgfCBCKSspKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAy CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXYxNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X3N0YXRlX25lc3RlZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CkBAIC00OTEsNyArNDkxLDcgQEAgV0lORE9XIHcgQVMgKAogLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAKIC0tIENvbnRleHQgYWJzb3JwdGlvbiB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVyIGF0 IHN0YXJ0Ci1DUkVBVEUgVklFVyBycHJfZXYxNyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9h YnNvcmJfdW5ib3VuZGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNTAwLDcgKzUwMCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1 IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVkJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTUxMyw3ICs1MTMs NyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBx dWFudGlmaWVyCi1DUkVBVEUgVklFVyBycHJfZXYxOCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0 eF9ub19hYnNvcmIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC01MjIsNyArNTIyLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1 IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9ub19hYnNvcmInKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTM1LDcgKzUzNSw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIENvbnRleHRzIHNraXBwZWQgYnkgU0tJUCBQQVNUIExB U1QgUk9XCi1DUkVBVEUgVklFVyBycHJfZXYxOSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9z a2lwIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU0NCw3ICs1NDQsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBB UyB2ICUgMTAgPSAyLCBDIEFTIHYgJSAxMCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjE5JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X3NraXAnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTU3LDcgKzU1Nyw3IEBA IFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggY29udGV4dCBhYnNvcnB0aW9uIC0gdW5i b3VuZGVkIGdyb3VwCi1DUkVBVEUgVklFVyBycHJfZXYyMCBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X2N0eF9hYnNvcmJfZ3JvdXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNTY2LDcgKzU2Niw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSBCKSsgQykKICAgICBERUZJTkUgQSBB UyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjAn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJz b3JiX2dyb3VwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTU4MSw3ICs1ODEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBGaXhlZC1sZW5ndGggZ3Jv dXAgYWJzb3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9OyBhYnNvcmJh YmxlIHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCiAtLSBzdGVwX3NpemU9MyAoQSArIEIgKyBCKTsg diAlIDcgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zIHBlciBtYXRjaAotQ1JFQVRFIFZJRVcgcnBy X2V2MjBiIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZhciBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTU5MCw3ICs1OTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgQiBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNyBJTiAoMSwgNCksIEIgQVMg diAlIDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBiJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9m aXhlZHZhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC02MDQsNyArNjA0LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgZml4ZWQtbGVu Z3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCiAtLSBzdGVwX3NpemUgPSAx ICsgKDErMSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRQot Q1JFQVRFIFZJRVcgcnByX2V2MjBjIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9u ZXN0ZWQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDY1KSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC02MTUsNyArNjE1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICAgICBDIEFTIHYgJSAxMyBJTiAoMywgNSwgOSwgMTEpLCBEIEFTIHYgJSAx MyBJTiAoNiwgMTIpLAogICAgICAgICAgICBFIEFTIHYgJSAxMyA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIwYycp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNv cmJfbmVzdGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTYzMSw3ICs2MzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIERvdWJseSBuZXN0ZWQg Zml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsg RgogLS0gc3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNs ZSBnaXZlcyAyIGl0ZXJhdGlvbnMgKyBGCi1DUkVBVEUgVklFVyBycHJfZXYyMGQgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9jdHhfYWJzb3JiX2RlZXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC02 NDYsNyArNjQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAo MjAsIDQwKSwKICAgICAgICAgICAgRiBBUyB2ICUgNDEgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGQnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2Rl ZXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAt NjY3LDcgKzY2Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29y cHRpb246ICgoQSAoQiBDKXsyfSl7Mn0pKwogLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAq IDIgPSAxMDsgdiAlIDIxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucwogLS0gRU5EIGNoYWluOiBF TkQoQkN7Mn0pIC0+IEVORChBLi57Mn0pIC0+IEVORCgrLCBBQlNPUkJBQkxFKQotQ1JFQVRFIFZJ RVcgcnByX2V2MjBlIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9lbmRjaGFpbiBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDIpIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTY3OCw3ICs2NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCiAg ICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9jdHhfYWJzb3JiX2VuZGNoYWluJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTY5Nyw3ICs2OTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIAogLS0gRml4ZWQgbGVuZ3RoIG1hdGNoZXMgLSBhbGwgc2FtZSBsZW5ndGgKLUNSRUFURSBW SUVXIHJwcl9ldjIxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9maXhlZCBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTcw OCw3ICs3MDgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFT IGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFT IGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2MjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX2ZpeGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTcyMyw3ICs3MjMsNyBAQCBXSU5ET1cgdyBBUyAoCiAp OycpOwogCiAtLSBWYXJpYWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRpZmZlcgot Q1JFQVRFIFZJRVcgcnByX2V2MjIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3ZhcmlhYmxl IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTczMiw3ICs3MzIsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2 ICUgMTAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X21sZW5fdmFyaWFibGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzQ1LDcgKzc0NSw3IEBAIFdJTkRPVyB3IEFTICgK ICk7Jyk7CiAKIC0tIFZlcnkgbG9uZyBtYXRjaGVzCi1DUkVBVEUgVklFVyBycHJfZXYyMyBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC03 NTQsNyArNzU0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVG SU5FIEEgQVMgdiA8PSAxOTUsIEIgQVMgdiA+IDE5NQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjMnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX2xvbmcnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzY3LDcgKzc2Nyw3 IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGgg bWlzbWF0Y2hlcyBmcm9tIGdhcCByb3dzICh2JTIwID0gMTEuLjE1KQotQ1JFQVRFIFZJRVcgcnBy X2V2MjQgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2ggQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQog V0lORE9XIHcgQVMgKApAQCAtNzc4LDcgKzc3OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAg QSBBUyAodiAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYgJSAyMCA+IDE1KSwKICAg ICAgICAgQiBBUyB2ICUgMjAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC03OTgsNyArNzk4LDcg QEAgV0lORE9XIHcgQVMgKAogCiAtLSBQYXR0ZXJuIHdpdGggY29tcGxldGUgbWF0Y2ggZXZlcnkg Y3ljbGU6IDAgbWlzbWF0Y2hlZAogLS0gQSgxLDIsMykgQig0LDUpIEMoNikgcmVwZWF0cyBwZXJm ZWN0bHk7IFggcm93cyBhcmUgcHJ1bmVkLCBub3QgbWlzbWF0Y2hlZAotQ1JFQVRFIFZJRVcgcnBy X2V2MjUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX25vX21pc21hdGNoIEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1QgdiwKQEAgLTgxNCw3ICs4MTQsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBERUZJTkUgQSBBUyBj YXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjUnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX25vX21p c21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK QEAgLTgzNCw3ICs4MzQsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBMb25nIHBhcnRp YWwgbWF0Y2hlcyB0aGF0IGZhaWwKLUNSRUFURSBWSUVXIHJwcl9ldjI2IEFTCitDUkVBVEUgVklF VyBycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gKAogICAgIFNFTEVDVCBpIEFTIHYsCkBAIC04NTUsNyArODU1LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEErIEIrIEMpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFT IGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI2JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODg0LDcgKzg4 NCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBKU09OIGZvcm1hdCBvdXRwdXQgd2l0 aCBhbGwgc3RhdGlzdGljcwotQ1JFQVRFIFZJRVcgcnByX2V2MjcgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9qc29uX2Jhc2ljIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtODkzLDcgKzg5Myw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGLCBGT1JNQVQgSlNPTikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTkwNiw3ICs5 MDYsNyBAQCBXSU5ET1cgdyBBUyAoCiApJyk7CiAKIC0tIEpTT04gZm9ybWF0IHdpdGggbWF0Y2gg bGVuZ3RoIHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjI4IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfanNvbl9tYXRjaGxlbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05MTUsNyArOTE1 LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMg diAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjgnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9qc29uX21hdGNobGVuJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFUIEpTT04pCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC05MjksNyArOTI5LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1p c21hdGNoIHN0YXRpc3RpY3MKIC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0 cyAxLDIsNCB0d2ljZSBjYXVzaW5nIG1pc21hdGNoZXMKLUNSRUFURSBWSUVXIHJwcl9ldjI5IEFT CitDUkVBVEUgVklFVyBycHJfZXZfanNvbl9taXNtYXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSAoVkFMVUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykp IEFTIHQodikKIFdJTkRPVyB3IEFTICgKQEAgLTkzOCw3ICs5MzgsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIs IEMgQVMgdiA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfanNvbl9taXNtYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYs IEZPUk1BVCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTUyLDcgKzk1Miw3IEBA IFdJTkRPVyB3IEFTICgKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRleHQgc3Rh dGlzdGljcwogLS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyBj YXVzZXMgbWFueSBjb250ZXh0cyB0byBiZSBza2lwcGVkCi1DUkVBVEUgVklFVyBycHJfZXYzMCBB UworQ1JFQVRFIFZJRVcgcnByX2V2X2pzb25fc2tpcCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC05NjEsNyArOTYxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAg ICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtOTc4LDcgKzk3OCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBYTUwg Zm9ybWF0IG91dHB1dAotQ1JFQVRFIFZJRVcgcnByX2V2MzEgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl94bWxfYmFzaWMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05ODcsNyArOTg3LDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3htbF9iYXNpYycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYs IEZPUk1BVCBYTUwpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMDA0LDcgKzEwMDQsNyBA QCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gU3RhdGlzdGljcyBhY3Jvc3MgbXVsdGlwbGUg cGFydGl0aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2MzIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9w YXJ0X211bHRpIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1Qg cCwgdgpAQCAtMTAxOCw3ICsxMDE4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djMyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGFy dF9tdWx0aScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBEaWZmZXJl bnQgcGF0dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCi1DUkVBVEUgVklFVyBycHJfZXYzMyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSAoCiAgICAgU0VMRUNUCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2YWwgPCA1LCBCIEFTIHZhbCA+ PSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYzMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IAogLS0gRW1wdHkgcmVzdWx0IHNldAotQ1JFQVRFIFZJRVcgcnByX2V2MzQgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9lZGdlX2VtcHR5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDgzLDcgKzEw ODMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFT IHYgPSAxLCBCIEFTIHYgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2VkZ2VfZW1wdHknKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgV0lORE9X IHcgQVMgKAogKTsnKTsKIAogLS0gU2luZ2xlIHJvdwotQ1JFQVRFIFZJRVcgcnByX2V2MzUgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTExMDUsNyArMTEwNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAg IERFRklORSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9zaW5nbGVfcm93JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTExMTgsNyArMTExOCw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQotQ1JFQVRF IFZJRVcgcnByX2V2MzYgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3BhdHRlcm5fbG9uZ2Vy IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMTI5LDcgKzExMjksNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgICAgIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMgdiA9IDMsIEQgQVMgdiA9IDQs IEUgQVMgdiA9IDUsCiAgICAgICAgIEYgQVMgdiA9IDYsIEcgQVMgdiA9IDcsIEggQVMgdiA9IDgs IEkgQVMgdiA9IDksIEogQVMgdiA9IDEwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2VkZ2VfcGF0dGVybl9sb25nZXInKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTE0NCw3ICsx MTQ0LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gQWxsIHJvd3MgbWF0Y2ggYXMgc2lu Z2xlIG1hdGNoCi1DUkVBVEUgVklFVyBycHJfZXYzNyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Vk Z2Vfc2luZ2xlX21hdGNoIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTE1Myw3ICsxMTUzLDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIFRSVUUK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjM3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfZWRnZV9zaW5nbGVfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtMTE3MCw3ICsxMTcwLDcgQEAgV0lORE9XIHcgQVMgKAogLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAKIC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjM4IEFTCitDUkVBVEUg VklFVyBycHJfZXZfY3B4X25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTExNzksNyAr MTE3OSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikgQykrKQogICAgIERF RklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYzOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2NweF9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtMTE5Miw3ICsxMTkyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVs dGlwbGUgYWx0ZXJuYXRpb25zCi1DUkVBVEUgVklFVyBycHJfZXYzOSBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2NweF9tdWx0aV9hbHQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnBy X25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjAzLDcgKzEyMDMsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAn QycsCiAgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2Mzkn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfbXVs dGlfYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK QEAgLTEyMTgsNyArMTIxOCw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE9wdGlvbmFs IGVsZW1lbnRzCi1DUkVBVEUgVklFVyBycHJfZXY0MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Nw eF9vcHRpb25hbCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEyMjcsNyArMTIyNyw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEI/IEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQg PSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQwJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X29wdGlvbmFsJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEyNDAs NyArMTI0MCw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEJvdW5kZWQgcXVhbnRpZmll cnMKLUNSRUFURSBWSUVXIHJwcl9ldjQxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3B4X2JvdW5k ZWQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7Miw1fSBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAw LCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X2JvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTI2Miw3ICsxMjYyLDcgQEAgV0lORE9X IHcgQVMgKAogKTsnKTsKIAogLS0gU3RhciBxdWFudGlmaWVyCi1DUkVBVEUgVklFVyBycHJfZXY0 MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9zdGFyIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMTI3MSw3ICsxMjcxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiogQykK ICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCBJTiAoMiwzLDQsNSw2LDcs OCksIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfc3RhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMjg4LDcgKzEyODgsNyBAQCBXSU5ET1cg dyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIFYtc2hhcGUgKGRvd24g dGhlbiB1cCkKLUNSRUFURSBWSUVXIHJwcl9ldjQzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfcmVh bF92c2hhcGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV9jb21wbGV4 CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoRCsgVSspCiAgICAgREVGSU5FIEQgQVMgdHJlbmQgPSAnRCcsIFUgQVMgdHJlbmQg PSAnVScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjQzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfcmVhbF92c2hhcGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgV0lORE9XIHcgQVMgKAogKTsn KTsKIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUsIGRvd24pCi1D UkVBVEUgVklFVyBycHJfZXY0NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfcGVhayBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFT ICgKQEAgLTEzMTksNyArMTMxOSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChVKyBT KiBEKykKICAgICBERUZJTkUgVSBBUyB0cmVuZCA9ICdVJywgUyBBUyB0cmVuZCA9ICdTJywgRCBB UyB0cmVuZCA9ICdEJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NDQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3BlYWsnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTMzMiw3ICsxMzMyLDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gQ29uc2VjdXRpdmUgaW5jcmVhc2luZyB2YWx1ZXMgKHVzaW5nIFBSRVYp Ci1DUkVBVEUgVklFVyBycHJfZXY0NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfaW5jcmVh c2luZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzNDEsNyArMTM0MSw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBezMsfSkKICAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KSBP UiBQUkVWKHYpIElTIE5VTEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcmVhbF9pbmNyZWFzaW5nJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEzNTgsNyArMTM1OCw3IEBAIFdJ TkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogCiAtLSBMYXJnZSBkYXRhc2V0IHdpdGggc2ltcGxlIHBhdHRl cm4KLUNSRUFURSBWSUVXIHJwcl9ldjQ2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9sYXJn ZV9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAx LCBCIEFTIHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9wZXJmX2xhcmdlX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMzgwLDcgKzEzODAsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBMYXJnZSBkYXRhc2V0IHdpdGggYWJzb3JwdGlvbgot Q1JFQVRFIFZJRVcgcnByX2V2NDcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2xhcmdlX2Fi c29yYiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTM4OSw3ICsxMzg5LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwMCA8PiAw LCBCIEFTIHYgJSAxMDAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfbGFyZ2VfYWJzb3JiJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0MDIsNyArMTQwMiw3IEBA IFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0aW8KLUNSRUFU RSBWSUVXIHJwcl9ldjQ4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9oaWdoX21lcmdlIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE0MTEsNyArMTQxMSw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBB UyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJnZScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNDI4LDcgKzE0 MjgsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gV2l0aCBJTklUSUFMIGtleXdvcmQK LUNSRUFURSBWSUVXIHJwcl9ldjQ5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRo IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTQzOCw3ICsxNDM4LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2 ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0NTIsNyArMTQ1Miw3IEBAIFdJTkRPVyB3IEFTICgK ICk7Jyk7CiAKIC0tIFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChzYW1lIGJlaGF2aW9yIGN1cnJl bnRseSkKLUNSRUFURSBWSUVXIHJwcl9ldjUwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlh bF93aXRob3V0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRob3V0JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0NzgsNyArMTQ3OCw3IEBAIFdJ TkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogCiAtLSBQbHVzIHF1YW50aWZpZXIKLUNSRUFURSBWSUVXIHJw cl9ldjUxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfcGx1cyBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3 IEFTICgKQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA8PiAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3BsdXMnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUwMCw3ICsxNTAw LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gU3RhciBxdWFudGlmaWVyICh6ZXJvIG9y IG1vcmUpCi1DUkVBVEUgVklFVyBycHJfZXY1MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50 X3N0YXIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNTA5LDcgKzE1MDksNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQSogQikKICAgICBERUZJTkUgQSBBUyB2ICUgNCBJTiAoMSwg MiksIEIgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXInKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUyMiw3ICsxNTIyLDcgQEAgV0lORE9X IHcgQVMgKAogKTsnKTsKIAogLS0gUXVlc3Rpb24gbWFyayAoemVybyBvciBvbmUpCi1DUkVBVEUg VklFVyBycHJfZXY1MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3F1ZXN0aW9uIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMTUzMSw3ICsxNTMxLDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEE/IEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQg PSAyLCBDIEFTIHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9xdWFudF9xdWVzdGlvbicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNTQ0LDcgKzE1NDQsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBFeGFjdCBjb3VudCB7bn0KLUNSRUFURSBWSUVXIHJw cl9ldjU0IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfZXhhY3QgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QXszfSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY1NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3F1YW50X2V4YWN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKQEAgLTE1NjYsNyArMTU2Niw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFJh bmdlIHtuLG19Ci1DUkVBVEUgVklFVyBycHJfZXY1NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1 YW50X3JhbmdlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTU3NSw3ICsxNTc1LDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1 IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3JhbmdlJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE1ODgsNyArMTU4OCw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEF0IGxlYXN0IHtuLH0KLUNSRUFURSBWSUVXIHJwcl9l djU2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfYXRsZWFzdCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3 IEFTICgKQEAgLTE1OTcsNyArMTU5Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB ezMsfSBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7 Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjU2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfcXVhbnRfYXRsZWFzdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFZlcmlm eSBzdGF0ZSBjb3VudCBhY2N1cmFjeQogLS0gUGF0dGVybiBBKyBCIHdpdGggMjAgcm93cyBzaG91 bGQgc2hvdyBwcmVkaWN0YWJsZSBzdGF0ZSBiZWhhdmlvcgotQ1JFQVRFIFZJRVcgcnByX2V2NTcg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9yZWdfc3RhdGVfY291bnQgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC0xNjI0LDcgKzE2MjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 NTcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdf c3RhdGVfY291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gVmVy aWZ5IGNvbnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9uCi1DUkVBVEUgVklFVyBycHJf ZXY1OCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMTY0Niw3ICsxNjQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEErIEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFT IHYgJSAxMCA9IDgsIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTgnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fic29yYicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNjU5LDcgKzE2 NTksNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBWZXJpZnkgbWF0Y2ggbGVuZ3RoIHdp dGggZml4ZWQtbGVuZ3RoIHBhdHRlcm4KLUNSRUFURSBWSUVXIHJwcl9ldjU5IEFTCitDUkVBVEUg VklFVyBycHJfZXZfcmVnX21hdGNobGVuIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTY2OCw3 ICsxNjY4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiBDKQogICAgIERFRklO RSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXY1OScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3Jl Z19tYXRjaGxlbicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC0xNjg1LDcgKzE2ODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gU2lt cGxlIGFsdGVybmF0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY2MCBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2FsdF9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90 ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoKEEgfCBCKSBDKQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBj YXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2MCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9zaW1wbGUnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTcwNyw3ICsxNzA3LDcgQEAg V0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUgaXRlbXMgaW4gYWx0ZXJuYXRpb24K LUNSRUFURSBWSUVXIHJwcl9ldjYxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X211bHRpX2l0 ZW0gQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cg dyBBUyAoCkBAIC0xNzE4LDcgKzE3MTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMg Y2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMg Y2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjEnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfbXVsdGlfaXRlbScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNzMzLDcgKzE3MzMs NyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBBbHRlcm5hdGlvbiB3aXRoIHF1YW50aWZp ZXJzCi1DUkVBVEUgVklFVyBycHJfZXY2MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF93aXRo X3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTc0Miw3ICsxNzQyLDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMg PSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYyJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3dpdGhfcXVhbnQn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTc1 NSw3ICsxNzU1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUgYWx0ZXJu YXRpdmVzICg0KykKLUNSRUFURSBWSUVXIHJwcl9ldjYzIEFTCitDUkVBVEUgVklFVyBycHJfZXZf YWx0X2ZvdXJfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzYzLDcgKzE3NjMsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVG SU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMg diAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91cl9wbHVzJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3NzUsNyArMTc3NSw3 IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEFsdGVybmF0aW9uIGF0IHN0YXJ0Ci1DUkVB VEUgVklFVyBycHJfZXY2NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9hdF9zdGFydCBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTE3ODMsNyArMTc4Myw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOICgoQSB8IEIpIEMgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMg diAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY0Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0X3N0 YXJ0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTE3OTUsNyArMTc5NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE11bHRpcGxlIHNl cXVlbnRpYWwgYWx0ZXJuYXRpb25zCi1DUkVBVEUgVklFVyBycHJfZXY2NSBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X2FsdF9zZXF1ZW50aWFsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4MDMs NyArMTgwMyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQgfCBF KSBGKQogICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAl IDYgPSAyLCBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1CiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY2NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2FsdF9zZXF1ZW50aWFsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTE4MTUsNyArMTgxNSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAK IC0tIFF1YW50aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVklFVyBycHJfZXY2NiBBUworQ1JF QVRFIFZJRVcgcnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt MTgyMyw3ICsxODIzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBD KQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMg PSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY2NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2FsdF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTE4MzUsNyArMTgzNSw3IEBAIFdJTkRPVyB3IEFTICgKICk7 Jyk7CiAKIC0tIEFsdGVybmF0aW9uIGF0IGVuZAotQ1JFQVRFIFZJRVcgcnByX2V2NjcgQVMKK0NS RUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfZW5kIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTg0 Myw3ICsxODQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiAoQyB8IEQpKQog ICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAy LCBEIEFTIHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfYXRfZW5kJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE4NTYsNyArMTg1Niw3IEBAIFdJTkRPVyB3 IEFTICgKIAogLS0gTmVzdGVkIEFMVCBhdCBzdGFydCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFM VAogLS0gUGF0dGVybjogKEEgKChCIHwgQykgRCB8IEUpKSAtIHByZWNlZGluZyBWQVIgKyBpbm5l ciBBTFQgYXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQKLUNSRUFURSBWSUVXIHJwcl9ldjY4IEFTCitD UkVBVEUgVklFVyBycHJfZXZfYWx0X25lc3RlZF9zdGFydCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE4NjQsNyArMTg2NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgoQiB8 IEMpIEQgfCBFKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAlIDUgPSAxLCBD IEFTIHYgJSA1ID0gMiwgRCBBUyB2ICUgNSA9IDMsIEUgQVMgdiAlIDUgPSA0CiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2 OCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9u ZXN0ZWRfc3RhcnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtMTg3Nyw3ICsxODc3LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgQUxU IGF0IGVuZCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0gUGF0dGVybjogKEMgKEEgfCBC KSB8IEQpIC0gaW5uZXIgQUxUIGlzIGxhc3QgZWxlbWVudCBpbiBvdXRlciBicmFuY2gKLUNSRUFU RSBWSUVXIHJwcl9ldjY5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X25lc3RlZF9lbmQgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xODg1LDcgKzE4ODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIg QVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY5 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X25l c3RlZF9lbmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIg dwpAQCAtMTkwMSw3ICsxOTAxLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIFNpbXBs ZSBncm91cAotQ1JFQVRFIFZJRVcgcnByX2V2NzAgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBf c2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTkxMCw3ICsxOTEwLDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKChBIEIpKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2dycF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTkyMyw3ICsxOTIzLDcgQEAgV0lORE9XIHcg QVMgKAogKTsnKTsKIAogLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50aWZpZXIKLUNSRUFURSBW SUVXIHJwcl9ldjcxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0xOTMyLDcgKzE5MzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgQil7Miw0fSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTE5NDUsNyArMTk0NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjcyIEFTCitDUkVBVEUgVklF VyBycHJfZXZfZ3JwX25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE5NTQsNyArMTk1 NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQil7Mn0pKykKICAgICBERUZJ TkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9uZXN0ZWQnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk2Nyw3ICsx OTY3LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gRGVlcCBuZXN0aW5nICgzKyBsZXZl bHMpCi1DUkVBVEUgVklFVyBycHJfZXY3MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9kZWVw IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTk3NSw3ICsxOTc1LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKCgoKEEgfCBCKSspKykrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0g MCwgQiBBUyB2ICUgMiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjczJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX2RlZXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgV0lORE9XIHcg QVMgKAogKTsnKTsKIAogLS0gQm91bmRlZCBxdWFudGlmaWVyIG9uIGFsdGVybmF0aW9uCi1DUkVB VEUgVklFVyBycHJfZXY3NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3VuZGVkX2FsdCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE5OTUsNyArMTk5NSw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAs IEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfYm91bmRlZF9hbHQnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjAwNyw3 ICsyMDA3LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTmVzdGVkIGdyb3VwcyB3aXRo IHF1YW50aWZpZXJzCi1DUkVBVEUgVklFVyBycHJfZXY3NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X2dycF9uZXN0ZWRfcXVhbnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDE1LDcgKzIwMTUs NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpKyBDKSopCiAgICAgREVGSU5F IEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djc1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3Jw X25lc3RlZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC0yMDI3LDcgKzIwMjcsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBQ YXJ0aWFsIG5lc3RlZCBxdWFudGlmaWNhdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2NzYgQVMKK0NS RUFURSBWSUVXIHJwcl9ldl9ncnBfcGFydGlhbF9xdWFudCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTIwMzUsNyArMjAzNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSAoQiBD KSspKikKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYg JSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2NzYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9ncnBfcGFydGlhbF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMDUxLDcgKzIwNTEsNyBAQCBXSU5ET1cgdyBB UyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIAogLS0gY291bnQoKikgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJf ZXY3NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3dmbl9jb3VudCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTIwNjAsNyArMjA2MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3 NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3dmbl9j b3VudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0yMDczLDcgKzIwNzMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBmaXJzdF92YWx1 ZSB3aXRoIHBhdHRlcm4KLUNSRUFURSBWSUVXIHJwcl9ldjc4IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfd2ZuX2ZpcnN0X3ZhbHVlIEFTCiBTRUxFQ1QgZmlyc3RfdmFsdWUodikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjA4Miw3 ICsyMDgyLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5F IEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc4JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfd2ZuX2ZpcnN0X3ZhbHVlJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBmaXJzdF92YWx1ZSh2KSBPVkVSIHcKQEAg LTIwOTUsNyArMjA5NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIGxhc3RfdmFsdWUg d2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3OSBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X3dmbl9sYXN0X3ZhbHVlIEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMTA0LDcgKzIx MDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBB UyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzknKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFzdF92YWx1ZScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKQEAgLTIxMTcs NyArMjExNyw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE11bHRpcGxlIHdpbmRvdyBm dW5jdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjgwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfd2Zu X211bHRpIEFTCiBTRUxFQ1QKICAgICBjb3VudCgqKSBPVkVSIHcsCiAgICAgZmlyc3RfdmFsdWUo dikgT1ZFUiB3LApAQCAtMjEyOSw3ICsyMTI5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7 Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjgwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfd2ZuX211bHRpJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVApAQCAtMjE0OSw3 ICsyMTQ5LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIENvbXBsZXggYm9vbGVhbiBl eHByZXNzaW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2ODEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9k ZWZfY29tcGxleF9ib29sIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE2MCw3ICsyMTYwLDcg QEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBBTkQgKHYgJSAzIDw+ IDApLAogICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDApCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4 MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2RlZl9j b21wbGV4X2Jvb2wnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtMjE3NSw3ICsyMTc1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gVXNp bmcgUFJFViBmdW5jdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9kZWZfcHJldiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIxODcsNyArMjE4Nyw3IEBA IFdJTkRPVyB3IEFTICgKICAgICAgICAgVSBBUyB2ID4gUFJFVih2KSwKICAgICAgICAgRCBBUyB2 IDwgUFJFVih2KQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2ODInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9kZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMjAzLDcgKzIyMDMsNyBAQCBXSU5ET1cgdyBBUyAoCiAp OycpOwogCiAtLSBVc2luZyBOVUxMIGNvbXBhcmlzb25zCi1DUkVBVEUgVklFVyBycHJfZXY4MyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X2RlZl9udWxsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CiBGUk9NICgKICAgICBTRUxFQ1QgQ0FTRSBXSEVOIHYgJSA1ID0gMCBUSEVOIE5VTEwgRUxTRSB2 IEVORCBBUyB2CkBAIC0yMjE1LDcgKzIyMTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVMTAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2ODMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9kZWZfbnVsbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC0yMjM1LDcgKzIyMzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0g NTAwIHJvd3MgLSB2ZXJpZnkgc3RhdGlzdGljcyBzY2FsZSBjb3JyZWN0bHkKLUNSRUFURSBWSUVX IHJwcl9ldjg0IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc2NhbGVfNTAwcm93cyBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0yMjQ0LDcgKzIyNDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSsgQiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8IDcsIEIgQVMgdiAlIDEwID0g NywgQyBBUyB2ICUgMTAgPSA4CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlXzUwMHJvd3MnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjI1Nyw3ICsyMjU3LDcgQEAgV0lO RE9XIHcgQVMgKAogKTsnKTsKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwotQ1JFQVRF IFZJRVcgcnByX2V2ODUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX21hdGNoIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIyNjYsNyArMjI2Niw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9zY2FsZV9oaWdoX21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTIyNzksNyArMjI3OSw3IEBAIFdJTkRPVyB3IEFTICgK ICk7Jyk7CiAKIC0tIEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2 ODYgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMjI5Myw3ICsyMjkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFT IHYgJSAxMDAgPSA0LAogICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hf c2tpcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0yMzIxLDcgKzIzMjEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLQogCiAtLSBXaXRob3V0IFJQUjog cm93X251bWJlcigpIGZyYW1lIGlzIG9wdGltaXplZCB0byBST1dTIFVOQk9VTkRFRCBQUkVDRURJ TkcKLUNSRUFURSBWSUVXIHJwcl9ldjg3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X25vX3Jw ciBBUwogU0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzI5LDEwICsyMzI5LDEwIEBAIFdJTkRP VyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICk7CiAKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X25vX3JwcjsKIAog LS0gV2l0aCBSUFI6IGZyYW1lIG11c3QgcmVtYWluIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwotQ1JFQVRFIFZJRVcgcnByX2V2ODggQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9vcHRfd2l0aF9ycHIgQVMKIFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjM0 NCwxMyArMjM0NCwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdiA+IFBSRVYodikK ICk7CiAKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4ODsKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X3dpdGhfcnByOwogCiAtLQog LS0gUGxhbm5lciBvcHRpbWl6YXRpb246IG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dzIHRoYXQgc2hh cmUgdGhlIHNhbWUgYmFzZSBmcmFtZQogLS0gYWZ0ZXIgZnJhbWUgb3B0aW1pemF0aW9uIGFyZSBr ZXB0IGFzIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4KIC0tCi1DUkVBVEUgVklFVyBycHJfZXY4 OSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X29wdF9taXhlZCBBUwogU0VMRUNUCiAgICAgcm93X251 bWJlcigpIE9WRVIgd19ub3JtYWwgQVMgcm5fbm9ybWFsLAogICAgIHJvd19udW1iZXIoKSBPVkVS IHdfcnByIEFTIHJuX3JwcgpAQCAtMjM2NCw3ICsyMzY0LDcgQEAgV0lORE9XCiAgICAgICAgIERF RklORSBBIEFTIHYgPiAxCiAgICAgKTsKIAotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHJwcl9ldjg5OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9v cHRfbWl4ZWQ7CiAKIC0tCiAtLSBQbGFubmVyIG9wdGltaXphdGlvbjogZmluZF93aW5kb3dfcnVu X2NvbmRpdGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUp Cgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0011-Fix-quote_identifier-deparse.txt" Content-Disposition: attachment; filename="nocfbot-0011-Fix-quote_identifier-deparse.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62lam10 RnJvbSA1YTVlMDRlYjNiZWNmYzVjZDE4NWI2NzI0M2ZlMTVlZmY1ZWY2ZjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDg6NTM6NDYgKzA5MDAKU3ViamVjdDogW1BBVENIIDExLzQwXSBG aXggcXVvdGVfaWRlbnRpZmllcigpIGZvciBSUFIgcGF0dGVybiB2YXJpYWJsZSBuYW1lCiBkZXBh cnNlCgpBZGQgcXVvdGVfaWRlbnRpZmllcigpIHRvIFBBVFRFUk4gYW5kIERFRklORSB2YXJpYWJs ZSBuYW1lIG91dHB1dAppbiBydWxldXRpbHMuYyBhbmQgZXhwbGFpbi5jLiAgV2l0aG91dCBxdW90 aW5nLCBtaXhlZC1jYXNlIG9yCnJlc2VydmVkLXdvcmQgdmFyaWFibGUgbmFtZXMgKGUuZy4sICJT dGFydCIsICJVcCIpIGxvc2UgdGhlaXIKY2FzZSBvciBjb25mbGljdCB3aXRoIGtleXdvcmRzIGlu IHBnX2dldF92aWV3ZGVmKCkgb3V0cHV0LApicmVha2luZyBwZ19kdW1wL3BnX3Jlc3RvcmUgcm91 bmQtdHJpcHMuCgpBZGQgcmVncmVzc2lvbiB0ZXN0IHdpdGggcXVvdGVkIGlkZW50aWZpZXJzICgi U3RhcnQiLCAiVXAiKSB0bwp2ZXJpZnkgY29ycmVjdCBkZXBhcnNlIGluIGJvdGggcGdfZ2V0X3Zp ZXdkZWYgYW5kIEVYUExBSU4gb3V0cHV0LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxh aW4uYyAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YyAgICAgICAgIHwgIDQgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQgICAgfCAyNCArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfZXhwbGFpbi5vdXQgfCAxOSArKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgICAgIHwgMTAgKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAgfCAxMiArKysrKysrKysrKysKIDYgZmls ZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9l eHBsYWluLmMKaW5kZXggN2YwMzY3Y2U1NDYuLjkzM2VhZGFiNzFlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jCkBAIC0zMTc2LDcgKzMxNzYsNyBAQCBkZXBhcnNlX3Jwcl92YXIoUlBSUGF0dGVybiAq cGF0dGVybiwgaW50ICppZHgsIFN0cmluZ0luZm9EYXRhICpidWYsCiAJCWFwcGVuZFN0cmluZ0lu Zm9DaGFyKGJ1ZiwgJyAnKTsKIAogCUFzc2VydChlbGVtLT52YXJJZCA8IHBhdHRlcm4tPm51bVZh cnMpOwotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBwYXR0ZXJuLT52YXJOYW1lc1tlbGVt LT52YXJJZF0pOworCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBxdW90ZV9pZGVudGlmaWVy KHBhdHRlcm4tPnZhck5hbWVzW2VsZW0tPnZhcklkXSkpOwogCWFwcGVuZF9ycHJfcXVhbnRpZmll cihidWYsIGVsZW0pOwogCSpuZWVkU3BhY2UgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKaW5kZXggY2ZlMjRkZTQzY2YuLmM3NTVhNDJlZmQ2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCkBAIC03MTYwLDcgKzcxNjAsNyBAQCBnZXRfcnVsZV9wYXR0ZXJuX25vZGUoUlBS UGF0dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAlzd2l0Y2ggKG5v ZGUtPm5vZGVUeXBlKQogCXsKIAkJY2FzZSBSUFJfUEFUVEVSTl9WQVI6Ci0JCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKGJ1Ziwgbm9kZS0+dmFyTmFtZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihub2RlLT52YXJOYW1lKSk7CiAJCQlhcHBlbmRfcGF0 dGVybl9xdWFudGlmaWVyKGJ1Ziwgbm9kZSk7CiAJCQlicmVhazsKIApAQCAtNzIyOSw3ICs3MjI5 LDcgQEAgZ2V0X3J1bGVfZGVmaW5lKExpc3QgKmRlZmluZUNsYXVzZSwgYm9vbCBmb3JjZV9jb2xu bywgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCXsKIAkJVGFyZ2V0RW50cnkgKnRlID0gKFRh cmdldEVudHJ5ICopIGxmaXJzdChsY19kZWYpOwogCi0JCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAi JXMlcyBBUyAiLCBzZXAsIHRlLT5yZXNuYW1lKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIl cyVzIEFTICIsIHNlcCwgcXVvdGVfaWRlbnRpZmllcih0ZS0+cmVzbmFtZSkpOwogCQlnZXRfcnVs ZV9leHByKChOb2RlICopIHRlLT5leHByLCBjb250ZXh0LCBmYWxzZSk7CiAJCXNlcCA9ICIsXG4g ICI7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCA3NDUyY2Yx YjNhYi4uNjUyNjM2NWRkNmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0 CkBAIC0yMjUyLDYgKzIyNTIsMzAgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfcXVhbnRf cmVsdWN0YW50X3YnOjpyZWdjbGFzcyk7CiAgICBiIEFTICh2YWwgPiAwKSApOwogKDEgcm93KQog CistLSBRdW90ZWQgaWRlbnRpZmllciByb3VuZC10cmlwOiBtaXhlZCBjYXNlIGFuZCByZXNlcnZl ZCB3b3JkcyBuZWVkIHF1b3RpbmcKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfcXVvdGVkIEFTCitT RUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCJTdGFydCIgIlVw IispCisgICAgICAgICAgICAgREVGSU5FICJTdGFydCIgQVMgVFJVRSwgIlVwIiBBUyB2YWwgPiBQ UkVWKHZhbCkpOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3F1b3RlZCc6OnJl Z2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg IFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgq KSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwor ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4g KCJTdGFydCIgIlVwIispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAiU3RhcnQiIEFTIHRydWUsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICJVcCIgQVMgKHZhbCA+IHByZXYodmFsKSkgKTsKKygxIHJvdykKKwogLS0gTWF0ZXJpYWxp emVkIHZpZXcgKGlmIHN1cHBvcnRlZCkKIENSRUFURSBUQUJMRSBycHJfbXZpZXcgKGlkIElOVCwg dmFsIElOVCk7CiBJTlNFUlQgSU5UTyBycHJfbXZpZXcgVkFMVUVTICgxLCAxMCksICgyLCAyMCks ICgzLCAzMCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4 IGY2NmNhZjg5MDhlLi5hNjhlYzYxZTEwZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQKQEAgLTMwMSw2ICszMDEsMjUgQEAgV0lORE9XIHcgQVMgKAogICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxv b3BzPTEpCiAoOCByb3dzKQogCistLSBSZWdyZXNzaW9uIHRlc3Q6IFF1b3RlZCBpZGVudGlmaWVy cyBpbiBFWFBMQUlOIHBhdHRlcm4gZGVwYXJzZQorLS0gTWl4ZWQgY2FzZSBuYW1lcyBtdXN0IGJl IHF1b3RlZCB0byBwcmVzZXJ2ZSByb3VuZC10cmlwIHNhZmV0eQorU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKCJTdGFydCIgIlVwIispCisgICAgREVGSU5FICJTdGFydCIgQVMgVFJVRSwgIlVwIiBBUyB2 ID4gUFJFVih2KQorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQorICAgUGF0dGVybjogIlN0YXJ0IiAiVXAiKworICAgLT4gIEZ1bmN0aW9uIFNjYW4g b24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg0IHJvd3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU3RhdGUgU3RhdGlz dGljcyBUZXN0cyAocGVhaywgdG90YWwsIG1lcmdlZCkKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsCmluZGV4IDhjMjNjNzU5OGEzLi4zYWNjZWNiNzNiYSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9iYXNlLnNxbApAQCAtMTU1OSw2ICsxNTU5LDE2IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAogICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMCk7CiBT RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9yZWx1Y3RhbnRfdic6OnJlZ2NsYXNzKTsK IAorLS0gUXVvdGVkIGlkZW50aWZpZXIgcm91bmQtdHJpcDogbWl4ZWQgY2FzZSBhbmQgcmVzZXJ2 ZWQgd29yZHMgbmVlZCBxdW90aW5nCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX3F1b3RlZCBBUwor U0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFsCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgiU3RhcnQiICJV cCIrKQorICAgICAgICAgICAgIERFRklORSAiU3RhcnQiIEFTIFRSVUUsICJVcCIgQVMgdmFsID4g UFJFVih2YWwpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9xdW90ZWQnOjpy ZWdjbGFzcyk7CisKIC0tIE1hdGVyaWFsaXplZCB2aWV3IChpZiBzdXBwb3J0ZWQpCiAKIENSRUFU RSBUQUJMRSBycHJfbXZpZXcgKGlkIElOVCwgdmFsIElOVCk7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf ZXhwbGFpbi5zcWwKaW5kZXggNjVhNzc1ZmRhZDkuLjcwM2VjZDNiMjNiIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2V4cGxhaW4uc3FsCkBAIC0yMjYsNiArMjI2LDE4IEBAIFdJTkRPVyB3IEFTICgK ICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDEsIEIgQVMgdiAlIDUgPSAyLCBDIEFTIHYgJSA1ID0g MywgRCBBUyB2ICUgNSA9IDQsIEUgQVMgdiAlIDUgPSAwCiApOycpOwogCistLSBSZWdyZXNzaW9u IHRlc3Q6IFF1b3RlZCBpZGVudGlmaWVycyBpbiBFWFBMQUlOIHBhdHRlcm4gZGVwYXJzZQorLS0g TWl4ZWQgY2FzZSBuYW1lcyBtdXN0IGJlIHF1b3RlZCB0byBwcmVzZXJ2ZSByb3VuZC10cmlwIHNh ZmV0eQorU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCJTdGFydCIgIlVwIispCisgICAgREVGSU5FICJT dGFydCIgQVMgVFJVRSwgIlVwIiBBUyB2ID4gUFJFVih2KQorKTsnKTsKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBT dGF0ZSBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgbWVyZ2VkKQogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tIAoy LjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0012-Fix-execRPR-Makefile-ordering.txt" Content-Disposition: attachment; filename="nocfbot-0012-Fix-execRPR-Makefile-ordering.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62o2u11 RnJvbSBiNDllNjRhZGRlOTkxZDIzNzk5ZmRmZDMwOWU2ZDk5NmM4ZDJlNWM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6MTQ6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDEyLzQwXSBG aXggZXhlY1JQUi5vIG9yZGVyaW5nIGluIGV4ZWN1dG9yIE1ha2VmaWxlIHRvIG1hdGNoCiBtZXNv bi5idWlsZAoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZp bGUKaW5kZXggZWVlZDlhOTA0ZTUuLjJiMjU3NDI3Nzk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpA QCAtMjUsOCArMjUsOCBAQCBPQkpTID0gXAogCWV4ZWNQYXJhbGxlbC5vIFwKIAlleGVjUGFydGl0 aW9uLm8gXAogCWV4ZWNQcm9jbm9kZS5vIFwKLQlleGVjUmVwbGljYXRpb24ubyBcCiAJZXhlY1JQ Ui5vIFwKKwlleGVjUmVwbGljYXRpb24ubyBcCiAJZXhlY1NSRi5vIFwKIAlleGVjU2Nhbi5vIFwK IAlleGVjVHVwbGVzLm8gXAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0013-Remove-unused-force_colno.txt" Content-Disposition: attachment; filename="nocfbot-0013-Remove-unused-force_colno.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62pz112 RnJvbSA4MDcyNmQ2MTUxYWEwMGFlNmVkZjczZmM0OTQ5OGFhYzc1ZjlmYjI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDA6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIIDEzLzQwXSBS ZW1vdmUgdW51c2VkIGZvcmNlX2NvbG5vIHBhcmFtZXRlciBmcm9tIFJQUiBkZXBhcnNlCiBmdW5j dGlvbnMKCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIHwgMTUgKysrKysr LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBjNzU1YTQyZWZkNi4uZTkzYzAzYTM1 MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTQ0OSwxMCArNDQ5LDggQEAgc3Rh dGljIHZvaWQgZ2V0X3J1bGVfb3JkZXJieShMaXN0ICpvcmRlckxpc3QsIExpc3QgKnRhcmdldExp c3QsCiAJCQkJCQkJIGJvb2wgZm9yY2VfY29sbm8sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7 CiBzdGF0aWMgdm9pZCBhcHBlbmRfcGF0dGVybl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBS UFJQYXR0ZXJuTm9kZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBnZXRfcnVsZV9wYXR0ZXJuX25vZGUo UlBSUGF0dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Ci1zdGF0aWMg dm9pZCBnZXRfcnVsZV9wYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGJvb2wgZm9y Y2VfY29sbm8sCi0JCQkJCQkJIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Ci1zdGF0aWMgdm9p ZCBnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLAot CQkJCQkJCWRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7CitzdGF0aWMgdm9pZCBnZXRfcnVsZV9w YXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4 dCk7CitzdGF0aWMgdm9pZCBnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBkZXBh cnNlX2NvbnRleHQgKmNvbnRleHQpOwogc3RhdGljIHZvaWQgZ2V0X3J1bGVfd2luZG93Y2xhdXNl KFF1ZXJ5ICpxdWVyeSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKIHN0YXRpYyB2b2lkIGdl dF9ydWxlX3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFyZ2V0TGlzdCwKIAkJ CQkJCQkJZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTcyMDMsOCArNzIwMSw3IEBAIGdl dF9ydWxlX3BhdHRlcm5fbm9kZShSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0 ICpjb250ZXh0KQogICogRGlzcGxheSBhIFBBVFRFUk4gY2xhdXNlLgogICovCiBzdGF0aWMgdm9p ZAotZ2V0X3J1bGVfcGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuLCBib29sIGZvcmNl X2NvbG5vLAotCQkJCSBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCitnZXRfcnVsZV9wYXR0ZXJu KFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIHsK IAlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKIApAQCAtNzIxNyw3ICs3MjE0LDcgQEAg Z2V0X3J1bGVfcGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuLCBib29sIGZvcmNlX2Nv bG5vLAogICogRGlzcGxheSBhIERFRklORSBjbGF1c2UuCiAgKi8KIHN0YXRpYyB2b2lkCi1nZXRf cnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLCBkZXBhcnNl X2NvbnRleHQgKmNvbnRleHQpCitnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBk ZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiB7CiAJU3RyaW5nSW5mbwlidWYgPSBjb250ZXh0LT5i dWY7CiAJY29uc3QgY2hhciAqc2VwOwpAQCAtNzM1Niw3ICs3MzUzLDcgQEAgZ2V0X3J1bGVfd2lu ZG93c3BlYyhXaW5kb3dDbGF1c2UgKndjLCBMaXN0ICp0YXJnZXRMaXN0LAogCQlpZiAobmVlZHNw YWNlKQogCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOwogCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIlxuICBQQVRURVJOICIpOwotCQlnZXRfcnVsZV9wYXR0ZXJuKHdjLT5y cFBhdHRlcm4sIGZhbHNlLCBjb250ZXh0KTsKKwkJZ2V0X3J1bGVfcGF0dGVybih3Yy0+cnBQYXR0 ZXJuLCBjb250ZXh0KTsKIAkJbmVlZHNwYWNlID0gdHJ1ZTsKIAl9CiAKQEAgLTczNjUsNyArNzM2 Miw3IEBAIGdldF9ydWxlX3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFyZ2V0 TGlzdCwKIAkJaWYgKG5lZWRzcGFjZSkKIAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAn KTsKIAkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJcbiAgREVGSU5FXG4iKTsKLQkJZ2V0 X3J1bGVfZGVmaW5lKHdjLT5kZWZpbmVDbGF1c2UsIGZhbHNlLCBjb250ZXh0KTsKKwkJZ2V0X3J1 bGVfZGVmaW5lKHdjLT5kZWZpbmVDbGF1c2UsIGNvbnRleHQpOwogCQlhcHBlbmRTdHJpbmdJbmZv Q2hhcihidWYsICcgJyk7CiAJfQogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0014-CHECK_FOR_INTERRUPTS-cleanup-finalize.txt" Content-Disposition: attachment; filename="nocfbot-0014-CHECK_FOR_INTERRUPTS-cleanup-finalize.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62row13 RnJvbSA1ZTRhMWQwMzk1MDhjNzg3MmFkYzI1MDY3MDZhNzQ4MWIzZDM3NTViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDM6MDcgKzA5MDAKU3ViamVjdDogW1BBVENIIDE0LzQwXSBB ZGQgQ0hFQ0tfRk9SX0lOVEVSUlVQVFMgdG8gUlBSIGNvbnRleHQgY2xlYW51cCBhbmQKIGZpbmFs aXplIGxvb3BzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyB8IDQgKysrKwog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRl eCBhZWMxMDU3ZTFiMi4uNGM0Mjk1MjhiMDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTMw NjgsNiArMzA2OCw4IEBAIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCkKIAogCWZvciAoY3R4ID0gd2lu c3RhdGUtPm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBuZXh0KQogCXsKKwkJQ0hFQ0tf Rk9SX0lOVEVSUlVQVFMoKTsKKwogCQluZXh0ID0gY3R4LT5uZXh0OwogCiAJCS8qIFNraXAgdGhl IHRhcmdldCBjb250ZXh0IGFuZCBjb250ZXh0cyBzdGlsbCBwcm9jZXNzaW5nICovCkBAIC0zMTA4 LDYgKzMxMTAsOCBAQCBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIGludDY0IGxhc3RQb3MpCiAKIAlmb3IgKGN0eCA9IHdpbnN0YXRlLT5uZmFDb250 ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gY3R4LT5uZXh0KQogCXsKKwkJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKKwogCQlpZiAoY3R4LT5zdGF0ZXMgIT0gTlVMTCkKIAkJewogCQkJbmZhX21hdGNo KHdpbnN0YXRlLCBjdHgsIE5VTEwpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt" Content-Disposition: attachment; filename="nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62u6x14 RnJvbSBlNTRkZDM0MWFlZjIxOGJlM2RjY2UwODhlZTQ2YzRkMzVmMjRkNDgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDg6NTUgKzA5MDAKU3ViamVjdDogW1BBVENIIDE1LzQwXSBO YXJyb3cgdmFyaWFibGUgc2NvcGUgaW4gRXhlY0luaXRXaW5kb3dBZ2cgREVGSU5FCiBjbGF1c2Ug bG9vcAoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgfCAxMSArKyst LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggZGNhMmRlNTcwZTguLjAyMDJj NTA4MzIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0yNjI4LDkgKzI2 MjgsNiBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRl LCBpbnQgZWZsYWdzKQogCVR1cGxlRGVzYwlzY2FuRGVzYzsKIAlMaXN0Q2VsbCAgICpsOwogCi0J VGFyZ2V0RW50cnkgKnRlOwotCUV4cHIJICAgKmV4cHI7Ci0KIAkvKiBjaGVjayBmb3IgdW5zdXBw b3J0ZWQgZmxhZ3MgKi8KIAlBc3NlcnQoIShlZmxhZ3MgJiAoRVhFQ19GTEFHX0JBQ0tXQVJEIHwg RVhFQ19GTEFHX01BUkspKSk7CiAKQEAgLTI5NTEsMTMgKzI5NDgsMTEgQEAgRXhlY0luaXRXaW5k b3dBZ2coV2luZG93QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJICov CiAJCWZvcmVhY2gobCwgbm9kZS0+ZGVmaW5lQ2xhdXNlKQogCQl7Ci0JCQljaGFyCSAgICpuYW1l OworCQkJVGFyZ2V0RW50cnkgKnRlID0gbGZpcnN0KGwpOworCQkJY2hhcgkgICAqbmFtZSA9IHRl LT5yZXNuYW1lOworCQkJRXhwcgkgICAqZXhwciA9IHRlLT5leHByOwogCQkJRXhwclN0YXRlICAq ZXhwczsKIAotCQkJdGUgPSBsZmlyc3QobCk7Ci0JCQluYW1lID0gdGUtPnJlc25hbWU7Ci0JCQll eHByID0gdGUtPmV4cHI7Ci0KIAkJCXdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3QgPQogCQkJ CWxhcHBlbmQod2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCwKIAkJCQkJCW1ha2VTdHJpbmco cHN0cmR1cChuYW1lKSkpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0016-Normalize-flag-macros-to-bool.txt" Content-Disposition: attachment; filename="nocfbot-0016-Normalize-flag-macros-to-bool.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62xcn15 RnJvbSA3NDdiODU1YjBiYjU4NmUwZDBiNjE2NDA2NTM3NjA3OWRjNTQ3M2M1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTE6MzI6NTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDE2LzQwXSBO b3JtYWxpemUgUlBSIGVsZW1lbnQgZmxhZyBtYWNyb3MgdG8gcmV0dXJuIGJvb2wKCi0tLQogc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9v cHRpbWl6ZXIvcnByLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKaW5kZXggZTc4MDky Njc4YmIuLjM2MGUxYmI3NzdmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnBy LmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCkBAIC00NCwxMCArNDQsMTAgQEAK ICNkZWZpbmUgUlBSX0VMRU1fQUJTT1JCQUJMRQkJCTB4MDgJLyogYWJzb3JwdGlvbiBqdWRnbWVu dCBwb2ludCAqLwogCiAvKiBBY2Nlc3NvciBtYWNyb3MgZm9yIFJQUlBhdHRlcm5FbGVtZW50ICov Ci0jZGVmaW5lIFJQUkVsZW1Jc1JlbHVjdGFudChlKQkJCSgoZSktPmZsYWdzICYgUlBSX0VMRU1f UkVMVUNUQU5UKQotI2RlZmluZSBSUFJFbGVtQ2FuRW1wdHlMb29wKGUpCQkJKChlKS0+ZmxhZ3Mg JiBSUFJfRUxFTV9FTVBUWV9MT09QKQotI2RlZmluZSBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNo KGUpCSgoZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gpCi0jZGVmaW5lIFJQ UkVsZW1Jc0Fic29yYmFibGUoZSkJCQkoKGUpLT5mbGFncyAmIFJQUl9FTEVNX0FCU09SQkFCTEUp CisjZGVmaW5lIFJQUkVsZW1Jc1JlbHVjdGFudChlKQkJCSgoKGUpLT5mbGFncyAmIFJQUl9FTEVN X1JFTFVDVEFOVCkgIT0gMCkKKyNkZWZpbmUgUlBSRWxlbUNhbkVtcHR5TG9vcChlKQkJCSgoKGUp LT5mbGFncyAmIFJQUl9FTEVNX0VNUFRZX0xPT1ApICE9IDApCisjZGVmaW5lIFJQUkVsZW1Jc0Fi c29yYmFibGVCcmFuY2goZSkJKCgoZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFO Q0gpICE9IDApCisjZGVmaW5lIFJQUkVsZW1Jc0Fic29yYmFibGUoZSkJCQkoKChlKS0+ZmxhZ3Mg JiBSUFJfRUxFTV9BQlNPUkJBQkxFKSAhPSAwKQogI2RlZmluZSBSUFJFbGVtSXNWYXIoZSkJCQko KGUpLT52YXJJZCA8PSBSUFJfVkFSSURfTUFYKQogI2RlZmluZSBSUFJFbGVtSXNCZWdpbihlKQkJ KChlKS0+dmFySWQgPT0gUlBSX1ZBUklEX0JFR0lOKQogI2RlZmluZSBSUFJFbGVtSXNFbmQoZSkJ CQkoKGUpLT52YXJJZCA9PSBSUFJfVkFSSURfRU5EKQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1 KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0017-Implement-1-slot-PREV-NEXT-navigation-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0017-Implement-1-slot-PREV-NEXT-navigation-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon62z2d16 RnJvbSA3OTg1NWMxZWRjZjdjNDExYzYzZGRlYWIwOWFjMjM4ZjJiN2Q5OTg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIzOjUyOjQyICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNy80MF0g SW1wbGVtZW50IDEtc2xvdCBQUkVWL05FWFQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQgUFJFVih2 YWx1ZSBbLCBvZmZzZXRdKSBhbmQgTkVYVCh2YWx1ZSBbLCBvZmZzZXRdKSBuYXZpZ2F0aW9uCmZ1 bmN0aW9ucyBmb3IgdXNlIGluIHRoZSBERUZJTkUgY2xhdXNlIG9mIHJvdyBwYXR0ZXJuIHJlY29n bml0aW9uLgoKVGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgY29sdW1uIHZhbHVlIGF0IGEgcm93 IG9mZnNldCByb3dzCmJlZm9yZS9hZnRlciB0aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSBwYXJ0 aXRpb24sIHJldHVybmluZyBOVUxMCmlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBh cnRpdGlvbi4gVGhlIG9mZnNldCBkZWZhdWx0cwp0byAxIGlmIG9taXR0ZWQ7IG9mZnNldD0wIHJl ZmVycyB0byB0aGUgY3VycmVudCByb3cgaXRzZWxmOwpOVUxMIG9yIG5lZ2F0aXZlIG9mZnNldCBy YWlzZXMgYW4gZXJyb3IuCgpLZXkgZGVzaWduOiBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cyAzLXNs b3QgbW9kZWwgKG91dGVyL3NjYW4vaW5uZXIpLAphIHNpbmdsZS1zbG90IHN3YXAgbW9kZWwgaXMg dXNlZC4gRUVPUF9SUFJfTkFWX1NFVCB0ZW1wb3JhcmlseQpyZXBsYWNlcyBlY3h0X291dGVydHVw bGUgd2l0aCB0aGUgdGFyZ2V0IHJvdywgdGhlIGFyZ3VtZW50CmV4cHJlc3Npb24gZXZhbHVhdGVz IGFnYWluc3QgaXQsIGFuZCBFRU9QX1JQUl9OQVZfUkVTVE9SRSByZXN0b3Jlcwp0aGUgb3JpZ2lu YWwgc2xvdC4gVGhpcyBlbGltaW5hdGVzIHZhcm5vIHJld3JpdGluZyBhbmQgbmF0dXJhbGx5CnN1 cHBvcnRzIGFyYml0cmFyeSBvZmZzZXRzLgoKQSBkZWRpY2F0ZWQgbmF2X3dpbm9iaiB3aXRoIGl0 cyBvd24gdHVwbGVzdG9yZSByZWFkIHBvaW50ZXIgYXZvaWRzCmludGVyZmVyZW5jZSB3aXRoIGFn Z3JlZ2F0ZSBwcm9jZXNzaW5nLiBBIG1hcmsgcG9pbnRlciBwaW5uZWQgYXQKcG9zaXRpb24gMCBw cmV2ZW50cyB0dXBsZXN0b3JlIHRydW5jYXRpb24gc28gdGhhdCBQUkVWKGV4cHIsIE4pCmNhbiBy ZWFjaCBhbnkgcHJpb3Igcm93LgoKUlBSTmF2RXhwciBpcyBhIG5ldyBleHByZXNzaW9uIG5vZGUg dGhhdCByZXBsYWNlcyB0aGUgcHJldmlvdXMKYXBwcm9hY2ggb2YgaWRlbnRpZnlpbmcgUFJFVi9O RVhUIGJ5IGZ1bmNpZC4gVGhlIHBhcnNlciB0cmFuc2Zvcm1zClBSRVYvTkVYVCBmdW5jdGlvbiBj YWxscyBpbnRvIFJQUk5hdkV4cHIgbm9kZXMgaW4gUGFyc2VGdW5jT3JDb2x1bW4oKS4KVmFsaWRh dGlvbiBpbiBwYXJzZV9ycHIuYyByZWplY3RzIG5lc3RlZCBQUkVWL05FWFQsIHJlcXVpcmVzIGF0 CmxlYXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlIGluIHRoZSBmaXJzdCBhcmd1bWVudCwgYW5kIGVu c3VyZXMKdGhlIG9mZnNldCBpcyBhIHJ1bi10aW1lIGNvbnN0YW50LgoKUlBSTmF2S2luZCB1c2Vz IHBsYWluIGVudW0gdmFsdWVzIChub3QgLTEvKzEpIHNvIHRoYXQgRklSU1QvTEFTVApjYW4gYmUg YWRkZWQgbGF0ZXIgd2l0aG91dCBhcml0aG1ldGljIHRyaWNrcy4KCkxMVk0gSklUIGZhbGxzIGJh Y2sgdG8gdGhlIGludGVycHJldGVyIGZvciBleHByZXNzaW9ucyBjb250YWluaW5nClJQUiBuYXZp Z2F0aW9uIG9wY29kZXMsIGJlY2F1c2UgSklUIGNvZGUgY2FjaGVzIHRoZSBvdXRlcnR1cGxlJ3MK dHRzX3ZhbHVlcy90dHNfaXNudWxsIHBvaW50ZXJzIGluIHRoZSBlbnRyeSBibG9jayBhbmQgdGhl Cm1pZC1leHByZXNzaW9uIHNsb3Qgc3dhcCBsZWF2ZXMgdGhlbSBzdGFsZS4gT25seSBERUZJTkUg Y2xhdXNlCmV4cHJlc3Npb25zIHdpdGggUFJFVi9ORVhUIGFyZSBhZmZlY3RlZDsgb3RoZXIgZXhw cmVzc2lvbnMgaW4KdGhlIHNhbWUgcXVlcnkgYXJlIHN0aWxsIEpJVC1jb21waWxlZCBub3JtYWxs eS4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sICAgICAgICAgICAgfCAg MjIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA1 NiArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgMTEw ICsrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICAgICAgICB8IDI0 MyArKysrLS0tLQogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAg IHwgIDQwICsrCiBzcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgICAgICAgICAg fCAgIDIgKwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwg IDMzICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAg MzAgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgICAgICAgICB8ICA4 NiArKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAx NiArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyAgICAgICAgICAgfCAgNTIg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgMTggKwog c3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5oICAgICAgICAgIHwgICAzICsKIHNy Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDMxICsKIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAgICAgICAgICB8IDU1MSArKysrKysrKysr KysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0ICAgICAgICB8 ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQgICAgIHwg IDgwICsrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IHwg IDU3ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICAgICAgICAgICAgfCAz MjIgKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAg ICAgIHwgIDU2ICsrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAg ICAgfCAgIDMgKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDE2NTUgaW5zZXJ0aW9ucygrKSwgMTc0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNn bWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCmluZGV4IGFlMzZlMGYzMTM1 Li4xYjliOTkzYTgxNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCkBAIC0zMDQsMTIg KzMwNCwxNyBAQAogICAgICAgICA8aW5kZXh0ZXJtPgogICAgICAgICAgPHByaW1hcnk+cHJldjwv cHJpbWFyeT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5wcmV2PC9m dW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8 L3R5cGU+ICkKKyAgICAgICAgPGZ1bmN0aW9uPnByZXY8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+ dmFsdWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5v ZmZzZXQ8L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKICAgICAgICAgPHJldHVy bnZhbHVlPmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8 cGFyYT4KLSAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSBwcmV2aW91cyBy b3c7Ci0gICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBwcmV2aW91cyByb3cgaW4g dGhlIHdpbmRvdyBmcmFtZS4KKyAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRo ZSByb3cgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBiZWZvcmUg dGhlIGN1cnJlbnQgcm93IHdpdGhpbiB0aGUgd2luZG93IGZyYW1lOworICAgICAgICByZXR1cm5z IE5VTEwgaWYgdGhlIHRhcmdldCByb3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1lLgorICAg ICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAxIGlmIG9taXR0 ZWQuCisgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3QgYmUgYSBub24t bmVnYXRpdmUgaW50ZWdlcjsKKyAgICAgICAgYW4gb2Zmc2V0IG9mIDAgcmVmZXJzIHRvIHRoZSBj dXJyZW50IHJvdyBpdHNlbGYuCisgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+ IG11c3Qgbm90IGJlIE5VTEwuCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4K IApAQCAtMzE4LDEyICszMjMsMTcgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxw cmltYXJ5Pm5leHQ8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8ZnVu Y3Rpb24+bmV4dDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlw ZT5hbnllbGVtZW50PC90eXBlPiApCisgICAgICAgIDxmdW5jdGlvbj5uZXh0PC9mdW5jdGlvbj4g KCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+IFss IDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IDx0eXBlPmJpZ2ludDwvdHlwZT4gXSApCiAg ICAgICAgIDxyZXR1cm52YWx1ZT5hbnllbGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3Bh cmE+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1ZSBhdCB0 aGUgbmV4dCByb3c7Ci0gICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBuZXh0IHJv dyBpbiB0aGUgd2luZG93IGZyYW1lLgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUg YXQgdGhlIHJvdyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICByb3dzIGFm dGVyIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHdpbmRvdyBmcmFtZTsKKyAgICAgICAgcmV0 dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHdpbmRvdyBmcmFtZS4K KyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBpZiBv bWl0dGVkLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEg bm9uLW5lZ2F0aXZlIGludGVnZXI7CisgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVycyB0byB0 aGUgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1l dGVyPiBtdXN0IG5vdCBiZSBOVUxMLgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9y b3c+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDc3MjI5MTQxYjM4Li5kYmVkNGY0OGEw ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMjIyLDYgKzEyMjIsNjIgQEAgRXhlY0lu aXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9 CiAKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBSUFIgbmF2aWdh dGlvbiBmdW5jdGlvbnMgKFBSRVYvTkVYVCkgYXJlIGNvbXBpbGVkIGludG8KKwkJCQkgKiBFRU9Q X1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBpbnN0ZWFkIG9mCisJ CQkJICogYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlIHN3YXBzCisJCQkJ ICogZWN4dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQgZXhwcmVz c2lvbgorCQkJCSAqIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBzd2FwcGVk IHNsb3QpLCBhbmQgdGhlCisJCQkJICogUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhlIG9yaWdp bmFsIHNsb3QuCisJCQkJICovCisJCQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikg bm9kZTsKKwkJCQlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisKKwkJCQlBc3NlcnQoc3RhdGUt PnBhcmVudCAmJiBJc0Eoc3RhdGUtPnBhcmVudCwgV2luZG93QWdnU3RhdGUpKTsKKwkJCQl3aW5z dGF0ZSA9IChXaW5kb3dBZ2dTdGF0ZSAqKSBzdGF0ZS0+cGFyZW50OworCisJCQkJLyogRW1pdCBT RVQgb3Bjb2RlOiBzd2FwIHNsb3QgdG8gdGFyZ2V0IHJvdyAqLworCQkJCXNjcmF0Y2gub3Bjb2Rl ID0gRUVPUF9SUFJfTkFWX1NFVDsKKwkJCQlzY3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdp bnN0YXRlOworCQkJCXNjcmF0Y2guZC5ycHJfbmF2LmtpbmQgPSBuYXYtPmtpbmQ7CisKKwkJCQlp ZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBBbGxv Y2F0ZSBzdG9yYWdlIGZvciB0aGUgcnVudGltZSBvZmZzZXQgdmFsdWUuICBUaGUKKwkJCQkJICog b2Zmc2V0IGV4cHJlc3Npb24gaXMgY29tcGlsZWQgYmVsb3cgc28gaXQgcnVucyBiZWZvcmUKKwkJ CQkJICogRUVPUF9SUFJfTkFWX1NFVC4KKwkJCQkJICovCisJCQkJCURhdHVtCSAgICpvZmZzZXRf dmFsdWUgPSBwYWxsb2Nfb2JqZWN0KERhdHVtKTsKKwkJCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVs bCA9IHBhbGxvY19vYmplY3QoYm9vbCk7CisKKwkJCQkJLyogQ29tcGlsZSB0aGUgb2Zmc2V0IGV4 cHJlc3Npb24gaW50byB0aGUgdGVtcCBzdG9yYWdlICovCisJCQkJCUV4ZWNJbml0RXhwclJlYyhu YXYtPm9mZnNldF9hcmcsIHN0YXRlLAorCQkJCQkJCQkJb2Zmc2V0X3ZhbHVlLCBvZmZzZXRfaXNu dWxsKTsKKworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFs dWU7CisJCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldF9pc251bGwgPSBvZmZzZXRfaXNudWxs OworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRf dmFsdWUgPSBOVUxMOworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gTlVM TDsKKwkJCQl9CisKKwkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwkJ CQkvKiBDb21waWxlIHRoZSBhcmd1bWVudCBleHByZXNzaW9uIG5vcm1hbGx5ICovCisJCQkJRXhl Y0luaXRFeHByUmVjKG5hdi0+YXJnLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJCQkvKiBF bWl0IFJFU1RPUkUgb3Bjb2RlOiByZXN0b3JlIG9yaWdpbmFsIHNsb3QgKi8KKwkJCQlzY3JhdGNo Lm9wY29kZSA9IEVFT1BfUlBSX05BVl9SRVNUT1JFOworCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lndp bnN0YXRlID0gd2luc3RhdGU7CisJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gp OworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVF9GdW5jRXhwcjoKIAkJCXsKIAkJCQlGdW5j RXhwciAgICpmdW5jID0gKEZ1bmNFeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYwppbmRleCAzYzQ4NDNjZGU4Ni4uZTQxZmFhOTViZTMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTYsMTIgKzU2LDE0IEBACiAgKi8KICNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vz cy9oZWFwdG9hc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHVwY29udmVydC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxh bi5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaCIKICNpbmNsdWRlICJmdW5j YXBpLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVz LmgiCkBAIC01NzgsNiArNTgwLDggQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwg RXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1dJTkRP V19GVU5DLAogCQkmJkNBU0VfRUVPUF9NRVJHRV9TVVBQT1JUX0ZVTkMsCiAJCSYmQ0FTRV9FRU9Q X1NVQlBMQU4sCisJCSYmQ0FTRV9FRU9QX1JQUl9OQVZfU0VULAorCQkmJkNBU0VfRUVPUF9SUFJf TkFWX1JFU1RPUkUsCiAJCSYmQ0FTRV9FRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJCSYm Q0FTRV9FRU9QX0FHR19ERVNFUklBTElaRSwKIAkJJiZDQVNFX0VFT1BfQUdHX1NUUklDVF9JTlBV VF9DSEVDS19BUkdTLApAQCAtMjAwNSw2ICsyMDA5LDI0IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJT dGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVP X05FWFQoKTsKIAkJfQogCisJCS8qIFJQUiBuYXZpZ2F0aW9uOiBzd2FwIHNsb3QgdG8gdGFyZ2V0 IHJvdyAqLworCQlFRU9fQ0FTRShFRU9QX1JQUl9OQVZfU0VUKQorCQl7CisJCQlFeGVjRXZhbFJQ Uk5hdlNldChzdGF0ZSwgb3AsIGVjb250ZXh0KTsKKwkJCW91dGVyc2xvdCA9IGVjb250ZXh0LT5l Y3h0X291dGVydHVwbGU7CisKKwkJCUVFT19ORVhUKCk7CisJCX0KKworCQkvKiBSUFIgbmF2aWdh dGlvbjogcmVzdG9yZSBzbG90IHRvIG9yaWdpbmFsIHJvdyAqLworCQlFRU9fQ0FTRShFRU9QX1JQ Ul9OQVZfUkVTVE9SRSkKKwkJeworCQkJRXhlY0V2YWxSUFJOYXZSZXN0b3JlKHN0YXRlLCBvcCwg ZWNvbnRleHQpOworCQkJb3V0ZXJzbG90ID0gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZTsKKwor CQkJRUVPX05FWFQoKTsKKwkJfQorCiAJCS8qIGV2YWx1YXRlIGEgc3RyaWN0IGFnZ3JlZ2F0ZSBk ZXNlcmlhbGl6YXRpb24gZnVuY3Rpb24gKi8KIAkJRUVPX0NBU0UoRUVPUF9BR0dfU1RSSUNUX0RF U0VSSUFMSVpFKQogCQl7CkBAIC01OTE4LDMgKzU5NDAsOTEgQEAgRXhlY0FnZ1BsYWluVHJhbnNC eVJlZihBZ2dTdGF0ZSAqYWdnc3RhdGUsIEFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCiAKIAlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkQ29udGV4dCk7CiB9CisKKy8qCisgKiBFdmFsdWF0ZSBS UFIgUFJFVi9ORVhUIG5hdmlnYXRpb246IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93LgorICoKKyAq IFNhdmVzIHRoZSBjdXJyZW50IG91dGVydHVwbGUgaW50byB3aW5zdGF0ZSBmb3IgbGF0ZXIgcmVz dG9yZSwgY29tcHV0ZXMKKyAqIHRoZSB0YXJnZXQgcm93IHBvc2l0aW9uLCBmZXRjaGVzIHRoZSBj b3JyZXNwb25kaW5nIHNsb3QgZnJvbSB0aGUKKyAqIHR1cGxlc3RvcmUsIGFuZCByZXBsYWNlcyBl Y29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIHdpdGggaXQuCisgKgorICogVGhpcyBpcyBjYWxsZWQg Ym90aCBmcm9tIHRoZSBpbnRlcnByZXRlciBpbmxpbmUgaGFuZGxlciBhbmQgZnJvbQorICogSklU LWNvbXBpbGVkIGV4cHJlc3Npb25zIHZpYSBidWlsZF9FdmFsWEZ1bmMuCisgKi8KK3ZvaWQKK0V4 ZWNFdmFsUlBSTmF2U2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJD b250ZXh0ICplY29udGV4dCkKK3sKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSBvcC0+ZC5y cHJfbmF2LndpbnN0YXRlOworCWludDY0CQlvZmZzZXQ7CisJaW50NjQJCXRhcmdldF9wb3M7CisJ VHVwbGVUYWJsZVNsb3QgKnRhcmdldF9zbG90OworCisJLyogU2F2ZSBjdXJyZW50IHNsb3QgZm9y IGxhdGVyIHJlc3RvcmUgKi8KKwl3aW5zdGF0ZS0+bmF2X3NhdmVkX291dGVydHVwbGUgPSBlY29u dGV4dC0+ZWN4dF9vdXRlcnR1cGxlOworCisJLyoKKwkgKiBEZXRlcm1pbmUgdGhlIHVuc2lnbmVk IG9mZnNldC4gIEZvciAyLWFyZyBQUkVWL05FWFQgdGhlIG9mZnNldAorCSAqIGV4cHJlc3Npb24g aGFzIGFscmVhZHkgYmVlbiBldmFsdWF0ZWQgaW50byBvZmZzZXRfdmFsdWUuICBOVUxMIG9yCisJ ICogbmVnYXRpdmUgb2Zmc2V0cyBhcmUgZXJyb3JzIHBlciB0aGUgU1FMIHN0YW5kYXJkIChJU08v SUVDIDkwNzUtMiwKKwkgKiBTdWJjbGF1c2UgNS42LjIpLgorCSAqLworCWlmIChvcC0+ZC5ycHJf bmF2Lm9mZnNldF92YWx1ZSAhPSBOVUxMKQorCXsKKwkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNl dF9pc251bGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExf VkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qg bm90IGJlIG51bGwiKSkpOworCisJCW9mZnNldCA9IERhdHVtR2V0SW50NjQoKm9wLT5kLnJwcl9u YXYub2Zmc2V0X3ZhbHVlKTsKKworCQlpZiAob2Zmc2V0IDwgMCkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkg ZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsKKwl9CisJ ZWxzZQorCQlvZmZzZXQgPSAxOworCisJLyoKKwkgKiBDYWxjdWxhdGUgdGFyZ2V0IHBvc2l0aW9u IGJhc2VkIG9uIG5hdmlnYXRpb24gZGlyZWN0aW9uLiAgT24gb3ZlcmZsb3csCisJICogdXNlIC0x IHNvIHRoYXQgRXhlY1JQUk5hdkdldFNsb3QgdHJlYXRzIGl0IGFzIG91dCBvZiByYW5nZS4KKwkg Ki8KKwlzd2l0Y2ggKG9wLT5kLnJwcl9uYXYua2luZCkKKwl7CisJCWNhc2UgUlBSX05BVl9QUkVW OgorCQkJaWYgKHBnX3N1Yl9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRwb3MsIG9mZnNl dCwgJnRhcmdldF9wb3MpKQorCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCWJyZWFrOworCQljYXNl IFJQUl9OQVZfTkVYVDoKKwkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJy ZW50cG9zLCBvZmZzZXQsICZ0YXJnZXRfcG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQli cmVhazsKKwl9CisKKwkvKiBGZXRjaCB0YXJnZXQgcm93IHNsb3QgKHJldHVybnMgbmF2X251bGxf c2xvdCBpZiBvdXQgb2YgcmFuZ2UpICovCisJdGFyZ2V0X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xv dCh3aW5zdGF0ZSwgdGFyZ2V0X3Bvcyk7CisKKwkvKgorCSAqIFVwZGF0ZSBlY29udGV4dCB0byBw b2ludCB0byB0aGUgdGFyZ2V0IHNsb3QuICBBbHNvIGRlY29tcHJlc3MgdGhlIG5ldworCSAqIHNs b3QncyBhdHRyaWJ1dGVzIHNpbmNlIEZFVENIU09NRSBhbHJlYWR5IHJhbiBmb3IgdGhlIG9yaWdp bmFsIHNsb3QuCisJICogVGhlIGNhbGxlciAoaW50ZXJwcmV0ZXIgb3IgSklUKSBpcyByZXNwb25z aWJsZSBmb3IgdXBkYXRpbmcgYW55IGxvY2FsCisJICogc2xvdCBjYWNoZSAoZS5nLiBvdXRlcnNs b3QpIGZyb20gZWNvbnRleHQgYWZ0ZXIgd2UgcmV0dXJuLgorCSAqLworCXNsb3RfZ2V0YWxsYXR0 cnModGFyZ2V0X3Nsb3QpOworCWVjb250ZXh0LT5lY3h0X291dGVydHVwbGUgPSB0YXJnZXRfc2xv dDsKK30KKworLyoKKyAqIEV2YWx1YXRlIFJQUiBQUkVWL05FWFQgbmF2aWdhdGlvbjogcmVzdG9y ZSBzbG90IHRvIG9yaWdpbmFsIHJvdy4KKyAqCisgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9v dXRlcnR1cGxlIGZyb20gdGhlIHNhdmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBUaGUgY2FsbGVy IGlzIHJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyBhbnkgbG9jYWwgc2xvdCBjYWNoZS4KKyAqLwor dm9pZAorRXhlY0V2YWxSUFJOYXZSZXN0b3JlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3Rl cCAqb3AsCisJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0KQoreworCVdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSA9IG9wLT5kLnJwcl9uYXYud2luc3RhdGU7CisKKwllY29udGV4dC0+ZWN4dF9v dXRlcnR1cGxlID0gd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDAyMDJjNTA4MzIzLi40ZTY0M2RmOTRjZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1 ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAi dXRpbHMvZGF0dW0uaCIKLSNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0 aWxzL2V4cGFuZGVkZGF0dW0uaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9tZW11dGlscy5oIgpAQCAtMTc3LDE0ICsxNzYsNiBAQCB0eXBlZGVmIHN0cnVj dCBXaW5kb3dTdGF0ZVBlckFnZ0RhdGEKIAlib29sCQlyZXN0YXJ0OwkJLyogbmVlZCB0byByZXN0 YXJ0IHRoaXMgYWdnIGluIHRoaXMgY3ljbGU/ICovCiB9IFdpbmRvd1N0YXRlUGVyQWdnRGF0YTsK IAotLyoKLSAqIFN0cnVjdHVyZSB1c2VkIGJ5IGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKCkgYW5kIHJw cl9uYXZpZ2F0aW9uX3dhbGtlcigpLgotICovCi10eXBlZGVmIHN0cnVjdCBOYXZpZ2F0aW9uSW5m bwotewotCWJvb2wJCWlzX3ByZXY7CQkvKiB0cnVlIGlmIFBSRVYgKi8KLQlpbnQJCQludW1fdmFy czsJCS8qIG51bWJlciBvZiB2YXIgbm9kZXMgKi8KLX0gTmF2aWdhdGlvbkluZm87CiAKIHN0YXRp YyB2b2lkIGluaXRpYWxpemVfd2luZG93YWdncmVnYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwKIAkJCQkJCQkJCSAgIFdpbmRvd1N0YXRlUGVyRnVuYyBwZXJmdW5jc3RhdGUsCkBAIC0yNDMs OSArMjM0LDYgQEAgc3RhdGljIHVpbnQ4IGdldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdp bm9iaiwKIAkJCQkJCQkgIGludDY0IHBvcywgaW50IGFyZ25vKTsKIHN0YXRpYyB2b2lkIHB1dF9u b3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwKIAkJCQkJCQkgaW50NjQgcG9zLCBpbnQg YXJnbm8sIGJvb2wgaXNudWxsKTsKLXN0YXRpYyB2b2lkIGF0dG5vX21hcChOb2RlICpub2RlKTsK LXN0YXRpYyBib29sIGF0dG5vX21hcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7 Ci0KIHN0YXRpYyBib29sIHJwcl9pc19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7 CiBzdGF0aWMgaW50NjQgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9i aiwgaW50NjQgcG9zKTsKIApAQCAtMjUzLDkgKzI0MSw2IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3Jl ZHVjZWRfZnJhbWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyBpbnQJZ2V0X3Jl ZHVjZWRfZnJhbWVfc3RhdHVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsK IHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGlu dDY0IHBvcyk7CiAKLXN0YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKE5vZGUgKm5vZGUs IGJvb2wgaXNfcHJldik7Ci1zdGF0aWMgYm9vbCBycHJfbmF2aWdhdGlvbl93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCk7Ci0KIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHJv dyBldmFsdWF0aW9uICovCiBzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVj dCB3aW5vYmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CiAKQEAgLTEyODAsNiArMTI2 NSwyNSBAQCBwcmVwYXJlX3R1cGxlc3RvcmUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQl9 CiAJfQogCisJLyogQ3JlYXRlIHJlYWQvbWFyayBwb2ludGVycyBmb3IgUlBSIG5hdmlnYXRpb24g aWYgbmVlZGVkICovCisJaWYgKHdpbnN0YXRlLT5uYXZfd2lub2JqKQorCXsKKwkJLyoKKwkJICog QWxsb2NhdGUgYSBtYXJrIHBvaW50ZXIgcGlubmVkIGF0IHBvc2l0aW9uIDAgc28gdGhhdCB0aGUg dHVwbGVzdG9yZQorCQkgKiBuZXZlciB0cnVuY2F0ZXMgcm93cyB0aGF0IGEgUFJFVihleHByLCBO KSBtaWdodCBuZWVkLgorCQkgKgorCQkgKiBYWFggVGhpcyByZXRhaW5zIHRoZSBlbnRpcmUgcGFy dGl0aW9uIGluIHRoZSB0dXBsZXN0b3JlLiAgSWYgdGhlCisJCSAqIERFRklORSBjbGF1c2Ugb25s eSB1c2VzIFBSRVYvTkVYVCB3aXRoIHNtYWxsIGNvbnN0YW50IG9mZnNldHMsIHdlCisJCSAqIGNv dWxkIGFkdmFuY2UgdGhlIG1hcmsgdG8gKGN1cnJlbnRwb3MgLSBtYXhfb2Zmc2V0KSBpbnN0ZWFk LgorCQkgKi8KKwkJd2luc3RhdGUtPm5hdl93aW5vYmotPm1hcmtwdHIgPQorCQkJdHVwbGVzdG9y ZV9hbGxvY19yZWFkX3BvaW50ZXIod2luc3RhdGUtPmJ1ZmZlciwgMCk7CisJCXdpbnN0YXRlLT5u YXZfd2lub2JqLT5yZWFkcHRyID0KKwkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdp bnN0YXRlLT5idWZmZXIsCisJCQkJCQkJCQkJICBFWEVDX0ZMQUdfQkFDS1dBUkQpOworCQl3aW5z dGF0ZS0+bmF2X3dpbm9iai0+bWFya3BvcyA9IDA7CisJfQorCiAJLyoKIAkgKiBJZiB3ZSBhcmUg aW4gUkFOR0Ugb3IgR1JPVVBTIG1vZGUsIHRoZW4gZGV0ZXJtaW5pbmcgZnJhbWUgYm91bmRhcmll cwogCSAqIHJlcXVpcmVzIHBoeXNpY2FsIGFjY2VzcyB0byB0aGUgZnJhbWUgZW5kcG9pbnQgcm93 cywgZXhjZXB0IGluIGNlcnRhaW4KQEAgLTEzOTEsNiArMTM5NSwxMyBAQCBiZWdpbl9wYXJ0aXRp b24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQl3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8g PSAwOwogCX0KIAorCS8qIHJlc2V0IG1hcmsgYW5kIHNlZWsgcG9zaXRpb25zIGZvciBSUFIgbmF2 aWdhdGlvbiAqLworCWlmICh3aW5zdGF0ZS0+bmF2X3dpbm9iaikKKwl7CisJCXdpbnN0YXRlLT5u YXZfd2lub2JqLT5tYXJrcG9zID0gLTE7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5zZWVrcG9z ID0gLTE7CisJfQorCiAJLyogcmVzZXQgbWFyayBhbmQgc2VlayBwb3NpdGlvbnMgZm9yIGVhY2gg cmVhbCB3aW5kb3cgZnVuY3Rpb24gKi8KIAlmb3IgKGludCBpID0gMDsgaSA8IG51bWZ1bmNzOyBp KyspCiAJewpAQCAtMjcyNiwxNSArMjczNywxOCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dB Z2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT50ZW1wX3Ns b3RfMiA9IEV4ZWNJbml0RXh0cmFUdXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKIAkJCQkJCQkJ CQkJCSAgICZUVFNPcHNNaW5pbWFsVHVwbGUpOwogCi0Jd2luc3RhdGUtPnByZXZfc2xvdCA9IEV4 ZWNJbml0RXh0cmFUdXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKLQkJCQkJCQkJCQkJCSAmVFRT T3BzTWluaW1hbFR1cGxlKTsKKwlpZiAobm9kZS0+cnBQYXR0ZXJuICE9IE5VTEwpCisJeworCQl3 aW5zdGF0ZS0+bmF2X3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRl c2MsCisJCQkJCQkJCQkJCQkJJlRUU09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0YXRlLT5uYXZf c2xvdF9wb3MgPSAtMTsKIAotCXdpbnN0YXRlLT5uZXh0X3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVw bGVTbG90KGVzdGF0ZSwgc2NhbkRlc2MsCi0JCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBs ZSk7CisJCXdpbnN0YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY0luaXRFeHRyYVR1cGxlU2xvdChl c3RhdGUsIHNjYW5EZXNjLAorCQkJCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7CisJ CXdpbnN0YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY1N0b3JlQWxsTnVsbFR1cGxlKHdpbnN0YXRl LT5uYXZfbnVsbF9zbG90KTsKIAotCXdpbnN0YXRlLT5udWxsX3Nsb3QgPSBFeGVjSW5pdEV4dHJh VHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRlc2MsCi0JCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxU dXBsZSk7Ci0Jd2luc3RhdGUtPm51bGxfc2xvdCA9IEV4ZWNTdG9yZUFsbE51bGxUdXBsZSh3aW5z dGF0ZS0+bnVsbF9zbG90KTsKKwkJd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlID0gTlVM TDsKKwl9CiAKIAkvKgogCSAqIGNyZWF0ZSBmcmFtZSBoZWFkIGFuZCB0YWlsIHNsb3RzIG9ubHkg aWYgbmVlZGVkIChtdXN0IGNyZWF0ZSBzbG90cyBpbgpAQCAtMjkwNCw2ICsyOTE4LDIzIEBAIEV4 ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxh Z3MpCiAJCXdpbnN0YXRlLT5hZ2dfd2lub2JqID0gYWdnX3dpbm9iajsKIAl9CiAKKwkvKgorCSAq IFNldCB1cCBXaW5kb3dPYmplY3QgZm9yIFJQUiBuYXZpZ2F0aW9uIG9wY29kZXMuICBUaGlzIGlz IHNlcGFyYXRlIGZyb20KKwkgKiBhZ2dfd2lub2JqIGJlY2F1c2UgaXQgbmVlZHMgaXRzIG93biBy ZWFkIHBvaW50ZXIgdG8gYXZvaWQgaW50ZXJmZXJpbmcKKwkgKiB3aXRoIGFnZ3JlZ2F0ZSBwcm9j ZXNzaW5nLgorCSAqLworCWlmIChub2RlLT5ycFBhdHRlcm4gIT0gTlVMTCkKKwl7CisJCVdpbmRv d09iamVjdCBuYXZfd2lub2JqID0gbWFrZU5vZGUoV2luZG93T2JqZWN0RGF0YSk7CisKKwkJbmF2 X3dpbm9iai0+d2luc3RhdGUgPSB3aW5zdGF0ZTsKKwkJbmF2X3dpbm9iai0+YXJnc3RhdGVzID0g TklMOworCQluYXZfd2lub2JqLT5sb2NhbG1lbSA9IE5VTEw7CisJCW5hdl93aW5vYmotPm1hcmtw dHIgPSAtMTsKKwkJbmF2X3dpbm9iai0+cmVhZHB0ciA9IC0xOworCQl3aW5zdGF0ZS0+bmF2X3dp bm9iaiA9IG5hdl93aW5vYmo7CisJfQorCiAJLyogU2V0IHRoZSBzdGF0dXMgdG8gcnVubmluZyAq LwogCXdpbnN0YXRlLT5zdGF0dXMgPSBXSU5ET1dBR0dfUlVOOwogCkBAIC0yOTQ0LDcgKzI5NzUs OSBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBp bnQgZWZsYWdzKQogCWlmIChub2RlLT5kZWZpbmVDbGF1c2UgIT0gTklMKQogCXsKIAkJLyoKLQkJ ICogVHdlYWsgYXJnIHZhciBvZiBQUkVWL05FWFQgc28gdGhhdCBpdCByZWZlcnMgdG8gc2Nhbi9p bm5lciBzbG90LgorCQkgKiBDb21waWxlIERFRklORSBjbGF1c2UgZXhwcmVzc2lvbnMuICBQUkVW L05FWFQgbmF2aWdhdGlvbiBpcyBoYW5kbGVkCisJCSAqIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVT VE9SRSBvcGNvZGVzIGVtaXR0ZWQgZHVyaW5nIEV4ZWNJbml0RXhwciwgc28KKwkJICogbm8gdmFy bm8gcmV3cml0aW5nIGlzIG5lZWRlZCBoZXJlLgogCQkgKi8KIAkJZm9yZWFjaChsLCBub2RlLT5k ZWZpbmVDbGF1c2UpCiAJCXsKQEAgLTI5NTYsNyArMjk4OSw2IEBAIEV4ZWNJbml0V2luZG93QWdn KFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCQl3aW5zdGF0 ZS0+ZGVmaW5lVmFyaWFibGVMaXN0ID0KIAkJCQlsYXBwZW5kKHdpbnN0YXRlLT5kZWZpbmVWYXJp YWJsZUxpc3QsCiAJCQkJCQltYWtlU3RyaW5nKHBzdHJkdXAobmFtZSkpKTsKLQkJCWF0dG5vX21h cCgoTm9kZSAqKSBleHByKTsKIAkJCWV4cHMgPSBFeGVjSW5pdEV4cHIoZXhwciwgKFBsYW5TdGF0 ZSAqKSB3aW5zdGF0ZSk7CiAJCQl3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCA9CiAJCQkJbGFw cGVuZCh3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCwgZXhwcyk7CkBAIC0yOTkxLDEwNyArMzAy MywzOCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRl LCBpbnQgZWZsYWdzKQogfQogCiAvKgotICogUmV3cml0ZSB2YXJubyBvZiBWYXIgbm9kZXMgdGhh dCBhcmUgdGhlIGFyZ3VtZW50IG9mIFBSRVYvTkVUIHNvIHRoYXQgdGhleQotICogc2VlIHNjYW4g dHVwbGUgKFBSRVYpIG9yIGlubmVyIHR1cGxlIChORVhUKS4gIEFsc28gd2UgY2hlY2sgdGhlIGFy Z3VtZW50cwotICogb2YgUFJFVi9ORVhUIGluY2x1ZGUgYXQgbGVhc3QgMSBjb2x1bW4gcmVmZXJl bmNlLiBUaGlzIGlzIHJlcXVpcmVkIGJ5IHRoZQotICogU1FMIHN0YW5kYXJkLgorICogRXhlY1JQ Uk5hdkdldFNsb3QKKyAqCisgKiBGZXRjaCB0dXBsZSBhdCBnaXZlbiBwb3NpdGlvbiBmb3IgUlBS IG5hdmlnYXRpb24gb3Bjb2Rlcy4KKyAqIFJldHVybnMgbmF2X3Nsb3Qgd2l0aCB0aGUgdHVwbGUg bG9hZGVkLCBvciBuYXZfbnVsbF9zbG90IGlmIG91dCBvZiByYW5nZS4KICAqLwotc3RhdGljIHZv aWQKLWF0dG5vX21hcChOb2RlICpub2RlKQorVHVwbGVUYWJsZVNsb3QgKgorRXhlY1JQUk5hdkdl dFNsb3QoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MpCiB7Ci0JKHZvaWQpIGV4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgYXR0bm9fbWFwX3dhbGtlciwgTlVMTCk7Ci19CisJ V2luZG93T2JqZWN0IHdpbm9iaiA9IHdpbnN0YXRlLT5uYXZfd2lub2JqOworCVR1cGxlVGFibGVT bG90ICpzbG90ID0gd2luc3RhdGUtPm5hdl9zbG90OwogCi1zdGF0aWMgYm9vbAotYXR0bm9fbWFw X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQotewotCUZ1bmNFeHByICAgKmZ1bmM7 Ci0JaW50CQkJbmFyZ3M7Ci0JYm9vbAkJaXNfcHJldjsKKwlpZiAocG9zIDwgMCkKKwkJcmV0dXJu IHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90OwogCi0JaWYgKG5vZGUgPT0gTlVMTCkKLQkJcmV0dXJu IGZhbHNlOworCS8qCisJICogSWYgbmF2X3Nsb3QgYWxyZWFkeSBob2xkcyB0aGlzIHBvc2l0aW9u LCByZXR1cm4gaXQgd2l0aG91dCByZS1mZXRjaGluZy4KKwkgKiBUaGlzIGlzIGNyaXRpY2FsIHdo ZW4gbXVsdGlwbGUgUFJFVi9ORVhUIGNhbGxzIGluIHRoZSBzYW1lIGV4cHJlc3Npb24KKwkgKiBu YXZpZ2F0ZSB0byB0aGUgc2FtZSByb3csIGJlY2F1c2UgcmUtZmV0Y2hpbmcgd291bGQgZnJlZSB0 aGUgc2xvdCdzCisJICogdHVwbGUgbWVtb3J5IGFuZCBpbnZhbGlkYXRlIGFueSBwYXNzLWJ5LXJl ZiBEYXR1bSBwb2ludGVycyBmcm9tIGVhcmxpZXIKKwkgKiBuYXZpZ2F0aW9uIHJlc3VsdHMuCisJ ICovCisJaWYgKHdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPT0gcG9zKQorCQlyZXR1cm4gc2xvdDsK IAotCWlmIChJc0Eobm9kZSwgRnVuY0V4cHIpKQorCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3 aW5vYmosIHBvcywgc2xvdCkpCiAJewotCQlmdW5jID0gKEZ1bmNFeHByICopIG5vZGU7Ci0KLQkJ aWYgKGZ1bmMtPmZ1bmNpZCA9PSBGX1BSRVYgfHwgZnVuYy0+ZnVuY2lkID09IEZfTkVYVCkKLQkJ ewotCQkJLyoKLQkJCSAqIFRoZSBTUUwgc3RhbmRhcmQgYWxsb3dzIHRvIGhhdmUgdHdvIG1vcmUg YXJndW1lbnRzIGZvcm0gb2YKLQkJCSAqIFBSRVYvTkVYVC4gIEJ1dCBjdXJyZW50bHkgd2UgYWxs b3cgb25seSAxIGFyZ3VtZW50IGZvcm0uCi0JCQkgKi8KLQkJCW5hcmdzID0gbGlzdF9sZW5ndGgo ZnVuYy0+YXJncyk7Ci0JCQlpZiAobGlzdF9sZW5ndGgoZnVuYy0+YXJncykgIT0gMSkKLQkJCQll bG9nKEVSUk9SLCAiUFJFVi9ORVhUIG11c3QgaGF2ZSAxIGFyZ3VtZW50IGJ1dCBmdW5jdGlvbiAl ZCBoYXMgJWQgYXJncyIsCi0JCQkJCSBmdW5jLT5mdW5jaWQsIG5hcmdzKTsKLQotCQkJLyoKLQkJ CSAqIENoZWNrIGV4cHIgb2YgUFJFVi9ORVhUIGFydWd1bWVudHMgYW5kIHJlcGxhY2UgdmFybm8u Ci0JCQkgKi8KLQkJCWlzX3ByZXYgPSAoZnVuYy0+ZnVuY2lkID09IEZfUFJFVikgPyB0cnVlIDog ZmFsc2U7Ci0JCQljaGVja19ycHJfbmF2aWdhdGlvbihub2RlLCBpc19wcmV2KTsKLQkJfQorCQl3 aW5zdGF0ZS0+bmF2X3Nsb3RfcG9zID0gLTE7CisJCXJldHVybiB3aW5zdGF0ZS0+bmF2X251bGxf c2xvdDsKIAl9Ci0JcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgYXR0bm9fbWFw X3dhbGtlciwgTlVMTCk7Ci19CiAKLS8qCi0gKiBSZXdyaXRlIHZhcm5vIG9mIFZhciBvZiBSUFIg bmF2aWdhdGlvbiBvcGVyYXRpb25zIChQUkVWL05FWFQpLgotICogSWYgaXNfcHJldiBpcyB0cnVl LCB3ZSB0YWtlIGNhcmUgUFJFViwgb3RoZXJ3aXNlIE5FWFQuCi0gKi8KLXN0YXRpYyB2b2lkCi1j aGVja19ycHJfbmF2aWdhdGlvbihOb2RlICpub2RlLCBib29sIGlzX3ByZXYpCi17Ci0JTmF2aWdh dGlvbkluZm8gY29udGV4dDsKLQotCWNvbnRleHQuaXNfcHJldiA9IGlzX3ByZXY7Ci0JY29udGV4 dC5udW1fdmFycyA9IDA7Ci0JKHZvaWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcnBy X25hdmlnYXRpb25fd2Fsa2VyLCAmY29udGV4dCk7Ci0JaWYgKGNvbnRleHQubnVtX3ZhcnMgPCAx KQotCQllcmVwb3J0KEVSUk9SLAotCQkJCWVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBv cGVyYXRpb24ncyBhcmd1bWVudCBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZl cmVuY2UiKSk7Ci19Ci0KLXN0YXRpYyBib29sCi1ycHJfbmF2aWdhdGlvbl93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCkKLXsKLQlOYXZpZ2F0aW9uSW5mbyAqbmF2ID0gKE5hdmlnYXRp b25JbmZvICopIGNvbnRleHQ7Ci0KLQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7 Ci0KLQlzd2l0Y2ggKG5vZGVUYWcobm9kZSkpCi0JewotCQljYXNlIFRfVmFyOgotCQkJewotCQkJ CVZhcgkJICAgKnZhciA9IChWYXIgKikgbm9kZTsKLQotCQkJCW5hdi0+bnVtX3ZhcnMrKzsKLQot CQkJCWlmIChuYXYtPmlzX3ByZXYpCi0JCQkJewotCQkJCQkvKgotCQkJCQkgKiBSZXdyaXRlIHZh cm5vIGZyb20gT1VURVJfVkFSIHRvIHJlZ3VsYXIgdmFyIG5vIHNvIHRoYXQKLQkJCQkJICogdGhl IHZhciByZWZlcmVuY2VzIHNjYW4gdHVwbGUuCi0JCQkJCSAqLwotCQkJCQl2YXItPnZhcm5vID0g dmFyLT52YXJub3N5bjsKLQkJCQl9Ci0JCQkJZWxzZQotCQkJCQl2YXItPnZhcm5vID0gSU5ORVJf VkFSOwotCQkJfQotCQkJYnJlYWs7Ci0JCWNhc2UgVF9Db25zdDoKLQkJY2FzZSBUX0Z1bmNFeHBy OgotCQljYXNlIFRfT3BFeHByOgotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCWVyZXBvcnQo RVJST1IsCi0JCQkJCWVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24ncyBh cmd1bWVudCBpbmNsdWRlcyB1bnN1cHBvcnRlZCBleHByZXNzaW9uIikpOwotCX0KLQlyZXR1cm4g ZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBycHJfbmF2aWdhdGlvbl93YWxrZXIsIGNvbnRl eHQpOworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSBwb3M7CisJcmV0dXJuIHNsb3Q7CiB9CiAK IApAQCAtMzE1Miw4ICszMTE1LDggQEAgRXhlY1JlU2NhbldpbmRvd0FnZyhXaW5kb3dBZ2dTdGF0 ZSAqbm9kZSkKIAlFeGVjQ2xlYXJUdXBsZShub2RlLT5hZ2dfcm93X3Nsb3QpOwogCUV4ZWNDbGVh clR1cGxlKG5vZGUtPnRlbXBfc2xvdF8xKTsKIAlFeGVjQ2xlYXJUdXBsZShub2RlLT50ZW1wX3Ns b3RfMik7Ci0JRXhlY0NsZWFyVHVwbGUobm9kZS0+cHJldl9zbG90KTsKLQlFeGVjQ2xlYXJUdXBs ZShub2RlLT5uZXh0X3Nsb3QpOworCWlmIChub2RlLT5uYXZfc2xvdCkKKwkJRXhlY0NsZWFyVHVw bGUobm9kZS0+bmF2X3Nsb3QpOwogCWlmIChub2RlLT5mcmFtZWhlYWRfc2xvdCkKIAkJRXhlY0Ns ZWFyVHVwbGUobm9kZS0+ZnJhbWVoZWFkX3Nsb3QpOwogCWlmIChub2RlLT5mcmFtZXRhaWxfc2xv dCkKQEAgLTQyMTgsNiArNDE4MSwxMCBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAgKiBSZXR1cm5zIHRy dWUgaWYgdGhlIHJvdyBleGlzdHMsIGZhbHNlIGlmIG91dCBvZiBwYXJ0aXRpb24uCiAgKiBJZiBy b3cgZXhpc3RzLCBmaWxscyB2YXJNYXRjaGVkIGFycmF5LgogICogdmFyTWF0Y2hlZFtpXSA9IHRy dWUgaWYgdmFyaWFibGUgaSBtYXRjaGVkIGF0IGN1cnJlbnQgcm93LgorICoKKyAqIFVzZXMgMS1z bG90IG1vZGVsOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgcm93 LgorICogUFJFVi9ORVhUIG5hdmlnYXRpb24gaXMgaGFuZGxlZCBieSBFRU9QX1JQUl9OQVZfU0VU L1JFU1RPUkUgb3Bjb2RlcworICogZHVyaW5nIGV4cHJlc3Npb24gZXZhbHVhdGlvbiwgd2hpY2gg dGVtcG9yYXJpbHkgc3dhcCB0aGUgc2xvdC4KICAqLwogc3RhdGljIGJvb2wKIG5mYV9ldmFsdWF0 ZV9yb3coV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBib29sICp2YXJNYXRjaGVkKQpA QCAtNDIyOCwzNyArNDE5NSwyNSBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5v YmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKIAlMaXN0Q2VsbCAgICpsYzsKIAlpbnQJ CQl2YXJJZHggPSAwOwogCVR1cGxlVGFibGVTbG90ICpzbG90OworCWludDY0CQlzYXZlZF9wb3M7 CiAKLQkvKgotCSAqIFNldCB1cCBzbG90cyBmb3IgY3VycmVudCwgcHJldmlvdXMsIGFuZCBuZXh0 IHJvd3MuIFdlIGRvbid0IGNhbGwKLQkgKiBnZXRfc2xvdHMoKSBoZXJlIHRvIGF2b2lkIHJlY3Vy c2lvbiB0aHJvdWdoIHJvd19pc19pbl9mcmFtZSAtPgotCSAqIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1l IC0+IEV4ZWNSUFJQcm9jZXNzUm93LgotCSAqLwotCi0JLyogQ3VycmVudCByb3cgLT4gZWN4dF9v dXRlcnR1cGxlICovCisJLyogRmV0Y2ggY3VycmVudCByb3cgaW50byB0ZW1wX3Nsb3RfMSAqLwog CXNsb3QgPSB3aW5zdGF0ZS0+dGVtcF9zbG90XzE7CiAJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90 KHdpbm9iaiwgcG9zLCBzbG90KSkKIAkJcmV0dXJuIGZhbHNlOwkJCS8qIE5vIHJvdyBleGlzdHMg Ki8KKworCS8qIFNldCB1cCAxLXNsb3QgY29udGV4dDogb25seSBlY3h0X291dGVydHVwbGUgKi8K IAllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsKIAotCS8qIFByZXZpb3VzIHJvdyAt PiBlY3h0X3NjYW50dXBsZSAoZm9yIFBSRVYpICovCi0JaWYgKHBvcyA+IDApCi0JewotCQlzbG90 ID0gd2luc3RhdGUtPnByZXZfc2xvdDsKLQkJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9i aiwgcG9zIC0gMSwgc2xvdCkpCi0JCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSB3aW5zdGF0 ZS0+bnVsbF9zbG90OwotCQllbHNlCi0JCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSBzbG90 OwotCX0KLQllbHNlCi0JCWVjb250ZXh0LT5lY3h0X3NjYW50dXBsZSA9IHdpbnN0YXRlLT5udWxs X3Nsb3Q7CisJLyoKKwkgKiBTYXZlIGFuZCBzZXQgY3VycmVudHBvcyBzbyB0aGF0IEVFT1BfUlBS X05BVl9TRVQgb3Bjb2RlcyBjYW4gY2FsY3VsYXRlCisJICogdGFyZ2V0IHBvc2l0aW9ucyAoY3Vy cmVudHBvcyArLy0gb2Zmc2V0KS4KKwkgKi8KKwlzYXZlZF9wb3MgPSB3aW5zdGF0ZS0+Y3VycmVu dHBvczsKKwl3aW5zdGF0ZS0+Y3VycmVudHBvcyA9IHBvczsKIAotCS8qIE5leHQgcm93IC0+IGVj eHRfaW5uZXJ0dXBsZSAoZm9yIE5FWFQpICovCi0Jc2xvdCA9IHdpbnN0YXRlLT5uZXh0X3Nsb3Q7 Ci0JaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgcG9zICsgMSwgc2xvdCkpCi0JCWVj b250ZXh0LT5lY3h0X2lubmVydHVwbGUgPSB3aW5zdGF0ZS0+bnVsbF9zbG90OwotCWVsc2UKLQkJ ZWNvbnRleHQtPmVjeHRfaW5uZXJ0dXBsZSA9IHNsb3Q7CisJLyogSW52YWxpZGF0ZSBuYXZfc2xv dCBjYWNoZSBzbyBQUkVWL05FWFQgcmUtZmV0Y2ggZm9yIG5ldyByb3cgKi8KKwl3aW5zdGF0ZS0+ bmF2X3Nsb3RfcG9zID0gLTE7CiAKIAlmb3JlYWNoKGxjLCB3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNl TGlzdCkKIAl7CkBAIC00Mjc2LDYgKzQyMzEsOCBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09i amVjdCB3aW5vYmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKIAkJCWJyZWFrOwogCX0K IAorCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gc2F2ZWRfcG9zOworCiAJcmV0dXJuIHRydWU7CQkJ CS8qIFJvdyBleGlzdHMgKi8KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0v bGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwppbmRl eCA2NTBmMWQ0MmE5My4uZDE1OGUzN2U3YjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9s bHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhw ci5jCkBAIC0yOTYsNiArMjk2LDQwIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3Rh dGUpCiAJCQkJCQkJCSAgIEZJRUxETk9fRVhQUkNPTlRFWFRfQUdHTlVMTFMsCiAJCQkJCQkJCSAg ICJ2LmVjb250ZXh0LmFnZ251bGxzIik7CiAKKwkvKgorCSAqIFJQUiBuYXZpZ2F0aW9uIG9wY29k ZXMgKFBSRVYvTkVYVCkgc3dhcCBlY3h0X291dGVydHVwbGUgdG8gYSBkaWZmZXJlbnQKKwkgKiBy b3cgbWlkLWV4cHJlc3Npb24uICBUaGUgSklUIGNvZGUgbG9hZHMgdl9vdXRlcnZhbHVlcyBhbmQg dl9vdXRlcm51bGxzCisJICogb25jZSBpbiB0aGUgZW50cnkgYmxvY2sgYW5kIHJldXNlcyB0aGVt IGZvciBhbGwgRUVPUF9PVVRFUl9WQVIgc3RlcHMuCisJICogQWZ0ZXIgYSBzbG90IHN3YXAsIHRo ZXNlIHBvaW50ZXJzIGJlY29tZSBzdGFsZSBiZWNhdXNlIHRoZSBuZXcgc2xvdCBoYXMKKwkgKiBp dHMgb3duIHR0c192YWx1ZXMvdHRzX2lzbnVsbCBhcnJheXMuICBGYWxsIGJhY2sgdG8gdGhlIGlu dGVycHJldGVyIGZvcgorCSAqIHRoZXNlIGV4cHJlc3Npb25zLgorCSAqCisJICogWFhYIFRvIEpJ VC1jb21waWxlIHRoZXNlIGV4cHJlc3Npb25zIHByb3Blcmx5LCB0aGUgTkFWX1NFVCBhbmQKKwkg KiBOQVZfUkVTVE9SRSBoYW5kbGVycyB3b3VsZCBuZWVkIHRvIHJlbG9hZCB0aGUgdHRzX3ZhbHVl cyBhbmQgdHRzX2lzbnVsbAorCSAqIHBvaW50ZXJzIGZyb20gdGhlIG5ldyBzbG90LiAgSG93ZXZl ciwgTExWTSB1c2VzIFNTQSAoU3RhdGljIFNpbmdsZQorCSAqIEFzc2lnbm1lbnQpIGZvcm0gd2hl cmUgZWFjaCB2YWx1ZSBpcyBkZWZpbmVkIGV4YWN0bHkgb25jZS4gIFdoZW4KKwkgKiBkaWZmZXJl bnQgYmFzaWMgYmxvY2tzIHByb2R1Y2UgZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIHNhbWUgcG9p bnRlciwKKwkgKiBMTFZNIHJlcXVpcmVzIFBISSBub2RlcyBhdCB0aGUgbWVyZ2UgcG9pbnQgdG8g c2VsZWN0IHRoZSBjb3JyZWN0IG9uZS4KKwkgKiBXaXRob3V0IHRoYXQgcGx1bWJpbmcsIE9VVEVS X1ZBUiBzdGVwcyBhZnRlciBhIHNsb3Qgc3dhcCB3b3VsZCByZWFkCisJICogZnJvbSB0aGUgd3Jv bmcgcG9pbnRlci4KKwkgKi8KKwlpZiAocGFyZW50ICYmIElzQShwYXJlbnQsIFdpbmRvd0FnZ1N0 YXRlKSAmJgorCQkoKFdpbmRvd0FnZyAqKSBwYXJlbnQtPnBsYW4pLT5ycFBhdHRlcm4gIT0gTlVM TCkKKwl7CisJCWZvciAoaW50IG9wbm8gPSAwOyBvcG5vIDwgc3RhdGUtPnN0ZXBzX2xlbjsgb3Bu bysrKQorCQl7CisJCQlFeHByRXZhbE9wCW9wY29kZSA9IEV4ZWNFdmFsU3RlcE9wKHN0YXRlLCAm c3RhdGUtPnN0ZXBzW29wbm9dKTsKKworCQkJaWYgKG9wY29kZSA9PSBFRU9QX1JQUl9OQVZfU0VU IHx8CisJCQkJb3Bjb2RlID09IEVFT1BfUlBSX05BVl9SRVNUT1JFKQorCQkJeworCQkJCUxMVk1E ZWxldGVGdW5jdGlvbihldmFsX2ZuKTsKKwkJCQlMTFZNRGlzcG9zZUJ1aWxkZXIoYik7CisJCQkJ cmV0dXJuIGZhbHNlOworCQkJfQorCQl9CisJfQorCiAJLyogYWxsb2NhdGUgYmxvY2tzIGZvciBl YWNoIG9wIHVwZnJvbnQsIHNvIHdlIGNhbiBkbyBqdW1wcyBlYXNpbHkgKi8KIAlvcGJsb2NrcyA9 IHBhbGxvY19hcnJheShMTFZNQmFzaWNCbG9ja1JlZiwgc3RhdGUtPnN0ZXBzX2xlbik7CiAJZm9y IChpbnQgb3BubyA9IDA7IG9wbm8gPCBzdGF0ZS0+c3RlcHNfbGVuOyBvcG5vKyspCkBAIC0yNDMy LDYgKzI0NjYsMTIgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNl IEVFT1BfUlBSX05BVl9TRVQ6CisJCQljYXNlIEVFT1BfUlBSX05BVl9SRVNUT1JFOgorCQkJCS8q IHVucmVhY2hhYmxlOiBmaWx0ZXJlZCBvdXQgYnkgdGhlIHByZS1zY2FuIGFib3ZlICovCisJCQkJ QXNzZXJ0KGZhbHNlKTsKKwkJCQlyZXR1cm4gZmFsc2U7CisKIAkJCWNhc2UgRUVPUF9BR0dfU1RS SUNUX0RFU0VSSUFMSVpFOgogCQkJY2FzZSBFRU9QX0FHR19ERVNFUklBTElaRToKIAkJCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgYi9zcmMvYmFj a2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMKaW5kZXggYzhhMWY4NDEyOTMuLmU3OGIzMWQ3 NzVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMKKysr IGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBlcy5jCkBAIC0xNjgsNiArMTY4LDgg QEAgdm9pZAkgICAqcmVmZXJlbmNlZF9mdW5jdGlvbnNbXSA9CiAJRXhlY0V2YWxTY2FsYXJBcnJh eU9wLAogCUV4ZWNFdmFsSGFzaGVkU2NhbGFyQXJyYXlPcCwKIAlFeGVjRXZhbFN1YlBsYW4sCisJ RXhlY0V2YWxSUFJOYXZTZXQsCisJRXhlY0V2YWxSUFJOYXZSZXN0b3JlLAogCUV4ZWNFdmFsU3lz VmFyLAogCUV4ZWNFdmFsV2hvbGVSb3dWYXIsCiAJRXhlY0V2YWxYbWxFeHByLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwppbmRleCAxYWRkYTdjNWQ4NC4uZDJmMTk1ODQwNzAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCkBAIC02OSw2ICs2OSw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2Ug VF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJdHlwZSA9ICgoY29uc3QgTWVyZ2VTdXBwb3J0RnVuYyAq KSBleHByKS0+bXNmdHlwZTsKIAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXR5 cGUgPSAoKGNvbnN0IFJQUk5hdkV4cHIgKikgZXhwciktPnJlc3VsdHR5cGU7CisJCQlicmVhazsK IAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCXR5cGUgPSAoKGNvbnN0IFN1YnNjcmlwdGlu Z1JlZiAqKSBleHByKS0+cmVmcmVzdHlwZTsKIAkJCWJyZWFrOwpAQCAtODUzLDYgKzg1Niw5IEBA IGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1 bmM6CiAJCQljb2xsID0gKChjb25zdCBNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5tc2Zjb2xs aWQ7CiAJCQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQljb2xsID0gKChjb25zdCBS UFJOYXZFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQ7CisJCQlicmVhazsKIAkJY2FzZSBUX1N1 YnNjcmlwdGluZ1JlZjoKIAkJCWNvbGwgPSAoKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqKSBleHBy KS0+cmVmY29sbGlkOwogCQkJYnJlYWs7CkBAIC0xMTU0LDYgKzExNjAsOSBAQCBleHByU2V0Q29s bGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRG dW5jOgogCQkJKChNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5tc2Zjb2xsaWQgPSBjb2xsYXRp b247CiAJCQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQkoKFJQUk5hdkV4cHIgKikg ZXhwciktPnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vi c2NyaXB0aW5nUmVmOgogCQkJKChTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9 IGNvbGxhdGlvbjsKIAkJCWJyZWFrOwpAQCAtMTQyNiw2ICsxNDM1LDkgQEAgZXhwckxvY2F0aW9u KGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJbG9jID0g KChjb25zdCBNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOwor CQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCWxvYyA9ICgoY29uc3QgUlBSTmF2RXhwciAqKSBleHBy KS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCS8q IGp1c3QgdXNlIGNvbnRhaW5lciBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHBy TG9jYXRpb24oKE5vZGUgKikgKChjb25zdCBTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmV4 cHIpOwpAQCAtMjE4Nyw2ICsyMTk5LDE2IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf UlBSTmF2RXhwcjoKKwkJCXsKKwkJCQlSUFJOYXZFeHByICpleHByID0gKFJQUk5hdkV4cHIgKikg bm9kZTsKKworCQkJCWlmIChXQUxLKGV4cHItPmFyZykpCisJCQkJCXJldHVybiB0cnVlOworCQkJ CWlmIChleHByLT5vZmZzZXRfYXJnICYmIFdBTEsoZXhwci0+b2Zmc2V0X2FyZykpCisJCQkJCXJl dHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJ CQl7CiAJCQkJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5nUmVmICopIG5v ZGU7CkBAIC0zMTE2LDYgKzMxMzgsMTcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChO b2RlICpub2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7 CisJCWNhc2UgVF9SUFJOYXZFeHByOgorCQkJeworCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJO YXZFeHByICopIG5vZGU7CisJCQkJUlBSTmF2RXhwciAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZ KG5ld25vZGUsIG5hdiwgUlBSTmF2RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmFyZywgbmF2 LT5hcmcsIEV4cHIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPm9mZnNldF9hcmcsIG5hdi0+b2Zm c2V0X2FyZywgRXhwciAqKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJ CWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJewogCQkJCVN1YnNjcmlwdGlu Z1JlZiAqc2JzcmVmID0gKFN1YnNjcmlwdGluZ1JlZiAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKaW5kZXggMjNiMDJmYjNiYzAuLmUxNGZmNGRjNDk0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKQEAgLTc2MCw3ICs3NjAsOCBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkvKiBuZXh0KCkgYW5kIHByZXYo KSBhcmUgb25seSBhbGxvd2VkIGluIGEgV0lORE9XIERFRklORSBjbGF1c2UgKi8KIAlpZiAoZmRy ZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JNQUwgJiYKIAkJcHN0YXRlLT5wX2V4cHJfa2luZCAhPSBF WFBSX0tJTkRfUlBSX0RFRklORSAmJgotCQkoZnVuY2lkID09IEZfUFJFViB8fCBmdW5jaWQgPT0g Rl9ORVhUKSkKKwkJKGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9O RVhUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVF9JTlQ4IHx8 IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxFTUVOVF9JTlQ4KSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJIGVycm1zZygiJXMgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiLApAQCAtNzY4LDcgKzc2OSwzMiBAQCBQYXJz ZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpm YXJncywKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAKIAkv KiBidWlsZCB0aGUgYXBwcm9wcmlhdGUgb3V0cHV0IHN0cnVjdHVyZSAqLwotCWlmIChmZHJlc3Vs dCA9PSBGVU5DREVUQUlMX05PUk1BTCB8fCBmZHJlc3VsdCA9PSBGVU5DREVUQUlMX1BST0NFRFVS RSkKKwlpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JNQUwgJiYKKwkJKGZ1bmNpZCA9PSBG X1BSRVZfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1 bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVF9JTlQ4IHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxF TUVOVF9JTlQ4KSkKKwl7CisJCS8qCisJCSAqIFBSRVYoKSBhbmQgTkVYVCgpIGFyZSBjb21waWxl ZCBpbnRvIEVFT1BfUlBSX05BVl9TRVQgLworCQkgKiBFRU9QX1JQUl9OQVZfUkVTVE9SRSBvcGNv ZGVzIGluc3RlYWQgb2YgYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4KKwkJICogUmVwcmVzZW50IHRo ZW0gYXMgUlBSTmF2RXhwciBub2RlcyBzbyB0aGF0IGxhdGVyIHN0YWdlcyBjYW4KKwkJICogaWRl bnRpZnkgdGhlbSB3aXRob3V0IHJlbHlpbmcgb24gZnVuY2lkIGNvbXBhcmlzb25zLgorCQkgKi8K KwkJYm9vbAkJaXNfbmV4dCA9IChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJCQkJ CQkgICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7CisJCWJvb2wJCWhhc19vZmZz ZXQgPSAoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKKwkJCQkJCQkJICBmdW5j aWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7CisJCVJQUk5hdkV4cHIgKm5hdmV4cHIgPSBt YWtlTm9kZShSUFJOYXZFeHByKTsKKworCQluYXZleHByLT5raW5kID0gaXNfbmV4dCA/IFJQUl9O QVZfTkVYVCA6IFJQUl9OQVZfUFJFVjsKKwkJbmF2ZXhwci0+YXJnID0gKEV4cHIgKikgbGluaXRp YWwoZmFyZ3MpOworCQluYXZleHByLT5vZmZzZXRfYXJnID0gaGFzX29mZnNldCA/IChFeHByICop IGxzZWNvbmQoZmFyZ3MpIDogTlVMTDsKKwkJbmF2ZXhwci0+cmVzdWx0dHlwZSA9IHJldHR5cGU7 CisJCS8qIHJlc3VsdGNvbGxpZCB3aWxsIGJlIHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJ bmF2ZXhwci0+bG9jYXRpb24gPSBsb2NhdGlvbjsKKworCQlyZXR2YWwgPSAoTm9kZSAqKSBuYXZl eHByOworCX0KKwllbHNlIGlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCB8fCBmZHJl c3VsdCA9PSBGVU5DREVUQUlMX1BST0NFRFVSRSkKIAl7CiAJCUZ1bmNFeHByICAgKmZ1bmNleHBy ID0gbWFrZU5vZGUoRnVuY0V4cHIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfcnByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggZGIxMzA5 Y2EzMTEuLjNmYjVkOTRhYmU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf cnByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC00Miw2ICs0Miw4 IEBAIHN0YXRpYyB2b2lkIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBz dGF0ZSwgUlBSUGF0dGVybk5vZGUgKm5vZGUsCiAJCQkJCQkJCQkgICBMaXN0ICpycERlZnMsIExp c3QgKip2YXJOYW1lcyk7CiBzdGF0aWMgTGlzdCAqdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywKIAkJCQkJCQkJICAgV2luZG93RGVmICp3 aW5kZWYsIExpc3QgKip0YXJnZXRsaXN0KTsKK3N0YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZfZXhw cihSUFJOYXZFeHByICpuYXYsIFBhcnNlU3RhdGUgKnBzdGF0ZSk7CitzdGF0aWMgYm9vbCBjaGVj a19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiAv KgogICogdHJhbnNmb3JtUlBSCkBAIC00MTAsNiArNDEyLDEwIEBAIHRyYW5zZm9ybURlZmluZUNs YXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2lu ZGVmLAogCWZvcmVhY2hfcHRyKFRhcmdldEVudHJ5LCB0ZSwgZGVmaW5lQ2xhdXNlKQogCQl0ZS0+ ZXhwciA9IChFeHByICopIGNvZXJjZV90b19ib29sZWFuKHBzdGF0ZSwgKE5vZGUgKikgdGUtPmV4 cHIsICJERUZJTkUiKTsKIAorCS8qIGNoZWNrIGZvciBuZXN0ZWQgUFJFVi9ORVhUIGFuZCBtaXNz aW5nIGNvbHVtbiByZWZlcmVuY2VzICovCisJZm9yZWFjaF9wdHIoVGFyZ2V0RW50cnksIHRlLCBk ZWZpbmVDbGF1c2UpCisJCSh2b2lkKSBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKChOb2Rl ICopIHRlLT5leHByLCBwc3RhdGUpOworCiAJLyogbWFyayBjb2x1bW4gb3JpZ2lucyAqLwogCW1h cmtUYXJnZXRMaXN0T3JpZ2lucyhwc3RhdGUsIGRlZmluZUNsYXVzZSk7CiAKQEAgLTQxOCwzICs0 MjQsODMgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAKIAlyZXR1cm4gZGVmaW5lQ2xhdXNlOwog fQorCisvKgorICogY2hlY2tfcnByX25hdl9leHByCisgKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBS TmF2RXhwciBub2RlIGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZworICoJCXN1YnRy ZWVzIGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgbmVzdGVkIFBSRVYvTkVYVCwg bWlzc2luZworICoJCWNvbHVtbiByZWZlcmVuY2VzLCBhbmQgbm9uLWNvbnN0YW50IG9mZnNldCBl eHByZXNzaW9ucy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlib29sCQloYXNfbmF2OwkJLyog UlBSTmF2RXhwciBmb3VuZCAobmVzdGluZykgKi8KKwlib29sCQloYXNfY29sdW1uX3JlZjsgLyog VmFyIGZvdW5kICovCit9CQkJTmF2Q2hlY2tSZXN1bHQ7CisKK3N0YXRpYyBib29sCituYXZfY2hl Y2tfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJTmF2Q2hlY2tSZXN1bHQg KnJlc3VsdCA9IChOYXZDaGVja1Jlc3VsdCAqKSBjb250ZXh0OworCisJaWYgKG5vZGUgPT0gTlVM TCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgUlBSTmF2RXhwcikpCisJCXJlc3Vs dC0+aGFzX25hdiA9IHRydWU7CisJaWYgKElzQShub2RlLCBWYXIpKQorCQlyZXN1bHQtPmhhc19j b2x1bW5fcmVmID0gdHJ1ZTsKKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUs IG5hdl9jaGVja193YWxrZXIsIGNvbnRleHQpOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfcnBy X25hdl9leHByKFJQUk5hdkV4cHIgKm5hdiwgUGFyc2VTdGF0ZSAqcHN0YXRlKQoreworCU5hdkNo ZWNrUmVzdWx0IHJlc3VsdDsKKworCS8qIENoZWNrIGFyZyBzdWJ0cmVlOiBuZXN0aW5nICsgY29s dW1uIHJlZmVyZW5jZSBpbiBvbmUgd2FsayAqLworCW1lbXNldCgmcmVzdWx0LCAwLCBzaXplb2Yo cmVzdWx0KSk7CisJKHZvaWQpIG5hdl9jaGVja193YWxrZXIoKE5vZGUgKikgbmF2LT5hcmcsICZy ZXN1bHQpOworCisJaWYgKHJlc3VsdC5oYXNfbmF2KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJQUkVW IGFuZCBORVhUIGNhbm5vdCBiZSBuZXN0ZWQiKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKKwlpZiAoIXJlc3VsdC5oYXNfY29sdW1uX3JlZikKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJ IGVycm1zZygiYXJndW1lbnQgb2Ygcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVz dCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlIiksCisJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisKKwkvKiBDaGVjayBvZmZzZXRf YXJnOiBjb2x1bW4gcmVmICsgdm9sYXRpbGUgaW4gb25lIHdhbGsgKi8KKwlpZiAobmF2LT5vZmZz ZXRfYXJnICE9IE5VTEwpCisJeworCQltZW1zZXQoJnJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkp OworCQkodm9pZCkgbmF2X2NoZWNrX3dhbGtlcigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcsICZy ZXN1bHQpOworCisJCWlmIChyZXN1bHQuaGFzX2NvbHVtbl9yZWYgfHwKKwkJCWNvbnRhaW5fdm9s YXRpbGVfZnVuY3Rpb25zKChOb2RlICopIG5hdi0+b2Zmc2V0X2FyZykpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ CSBlcnJtc2coIlBSRVYvTkVYVCBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50Iiks CisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCX0K K30KKworLyoKKyAqIGNoZWNrX3Jwcl9uYXZfbmVzdGluZ193YWxrZXIKKyAqCQlXYWxrIHRoZSBE RUZJTkUgY2xhdXNlIGV4cHJlc3Npb24gdHJlZSBhbmQgdmFsaWRhdGUgZWFjaCBSUFJOYXZFeHBy LgorICovCitzdGF0aWMgYm9vbAorY2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlcihOb2RlICpu b2RlLCB2b2lkICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxz ZTsKKwlpZiAoSXNBKG5vZGUsIFJQUk5hdkV4cHIpKQorCXsKKwkJY2hlY2tfcnByX25hdl9leHBy KChSUFJOYXZFeHByICopIG5vZGUsIChQYXJzZVN0YXRlICopIGNvbnRleHQpOworCQkvKiBkb24n dCByZWN1cnNlIGludG8gYXJnOyBuZXN0aW5nIGFscmVhZHkgY2hlY2tlZCBhYm92ZSAqLworCQly ZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGNo ZWNrX3Jwcl9uYXZfbmVzdGluZ193YWxrZXIsIGNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCmluZGV4IGU5M2MwM2EzNTFjLi5hNGZlNzI1NjQ2YyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYwpAQCAtMTAxMDMsNiArMTAxMDMsMjIgQEAgZ2V0X3J1bGVfZXhwcihOb2Rl ICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQlnZXRfZnVuY19leHByKChGdW5j RXhwciAqKSBub2RlLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwogCQkJYnJlYWs7CiAKKwkJY2Fz ZSBUX1JQUk5hdkV4cHI6CisJCQl7CisJCQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIg Kikgbm9kZTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLAorCQkJCQkJCQkJICAg bmF2LT5raW5kID09IFJQUl9OQVZfUFJFViA/ICJQUkVWKCIgOiAiTkVYVCgiKTsKKwkJCQlnZXRf cnVsZV9leHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJ CWlmIChuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBuYXYtPm9m ZnNldF9hcmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJfQorCQkJCWFwcGVuZFN0cmlu Z0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJCX0KKwkJCWJyZWFrOworCiAJCWNhc2UgVF9OYW1lZEFy Z0V4cHI6CiAJCQl7CiAJCQkJTmFtZWRBcmdFeHByICpuYSA9IChOYW1lZEFyZ0V4cHIgKikgbm9k ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKaW5kZXggNzRlZjEwOWY3MmUuLjA5MTI2 MGQyY2NlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNzI2LDIyICs3MjYs NjIgQEAgd2luZG93X250aF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogCiAvKgogICogcHJldgot ICogRHVtbXkgZnVuY3Rpb24gdG8gaW52b2tlIFJQUidzIG5hdmlnYXRpb24gb3BlcmF0b3IgIlBS RVYiLgotICogVGhpcyBpcyAqbm90KiBhIHdpbmRvdyBmdW5jdGlvbi4KKyAqIENhdGFsb2cgcGxh Y2Vob2xkZXIgZm9yIFJQUidzIFBSRVYgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAqCisgKiBUaGUg cGFyc2VyIHRyYW5zZm9ybXMgcHJldigpIGNhbGxzIGluc2lkZSBERUZJTkUgaW50byBSUFJOYXZF eHByIG5vZGVzLAorICogc28gdGhpcyBmdW5jdGlvbiBpcyBuZXZlciByZWFjaGVkIGR1cmluZyBu b3JtYWwgUlBSIGV4ZWN1dGlvbi4gIEl0IGV4aXN0cworICogb25seSBzbyB0aGF0IHRoZSBwYXJz ZXIgY2FuIHJlc29sdmUgdGhlIGZ1bmN0aW9uIG5hbWUgZnJvbSBwZ19wcm9jLgorICogQ2FsbHMg b3V0c2lkZSBERUZJTkUgYXJlIHJlamVjdGVkIGJ5IHBhcnNlX2Z1bmMuYyAoRVhQUl9LSU5EX1JQ Ul9ERUZJTkUKKyAqIGNoZWNrKS4gIFRoZSBlcnJvciBiZWxvdyBpcyBhIGRlZmVuc2l2ZSBtZWFz dXJlIGluIGNhc2UgdGhhdCBjaGVjayBpcworICogYnlwYXNzZWQgKGUuZy4sIGRpcmVjdCBDLWxl dmVsIGZ1bmN0aW9uIGludm9jYXRpb24pLgogICovCiBEYXR1bQogd2luZG93X3ByZXYoUEdfRlVO Q1RJT05fQVJHUykKIHsKLQlQR19SRVRVUk5fREFUVU0oUEdfR0VUQVJHX0RBVFVNKDApKTsKKwll cmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJIGVycm1zZygicHJldigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNl IikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9CiAKIC8qCiAg KiBuZXh0Ci0gKiBEdW1teSBmdW5jdGlvbiB0byBpbnZva2UgUlBSJ3MgbmF2aWdhdGlvbiBvcGVy YXRpb24gIk5FWFQiLgotICogVGhpcyBpcyAqbm90KiBhIHdpbmRvdyBmdW5jdGlvbi4KKyAqIENh dGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIE5FWFQgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAq IFNlZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgogICovCiBEYXR1bQogd2luZG93X25leHQo UEdfRlVOQ1RJT05fQVJHUykKIHsKLQlQR19SRVRVUk5fREFUVU0oUEdfR0VUQVJHX0RBVFVNKDAp KTsKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJIGVycm1zZygibmV4dCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUg Y2xhdXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9CisK Ky8qCisgKiBwcmV2KHZhbHVlLCBvZmZzZXQpCisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBS UFIncyBQUkVWIG5hdmlnYXRpb24gb3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93 X3ByZXYoKSBmb3IgZGV0YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19wcmV2X29mZnNldChQR19G VU5DVElPTl9BUkdTKQoreworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkgYmUgdXNl ZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJl YWNoZWQgKi8KK30KKworLyoKKyAqIG5leHQodmFsdWUsIG9mZnNldCkKKyAqIENhdGFsb2cgcGxh Y2Vob2xkZXIgZm9yIFJQUidzIE5FWFQgbmF2aWdhdGlvbiBvcGVyYXRvciB3aXRoIG9mZnNldC4K KyAqIFNlZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgorICovCitEYXR1bQord2luZG93X25l eHRfb2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coIm5leHQoKSBj YW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJOX05VTEwo KTsJCQkvKiBub3QgcmVhY2hlZCAqLwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZGRm OTIyZDE2ZDcuLjhlOTUxNjliN2IwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEwOTc1 LDkgKzEwOTc1LDE1IEBACiB7IG9pZCA9PiAnODEyNicsIGRlc2NyID0+ICdwcmV2aW91cyB2YWx1 ZScsCiAgIHByb25hbWUgPT4gJ3ByZXYnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUg PT4gJ2FueWVsZW1lbnQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCcsIHByb3NyYyA9 PiAnd2luZG93X3ByZXYnIH0sCit7IG9pZCA9PiAnODEyOCcsIGRlc2NyID0+ICdwcmV2aW91cyB2 YWx1ZSBhdCBvZmZzZXQnLAorICBwcm9uYW1lID0+ICdwcmV2JywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9h cmd0eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfcHJldl9vZmZz ZXQnIH0sCiB7IG9pZCA9PiAnODEyNycsIGRlc2NyID0+ICduZXh0IHZhbHVlJywKICAgcHJvbmFt ZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVu dCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfbmV4 dCcgfSwKK3sgb2lkID0+ICc4MTI5JywgZGVzY3IgPT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywK KyAgcHJvbmFtZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4g J2YnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVs ZW1lbnQgaW50OCcsIHByb3NyYyA9PiAnd2luZG93X25leHRfb2Zmc2V0JyB9LAogCiAjIGZ1bmN0 aW9ucyBmb3IgcmFuZ2UgdHlwZXMKIHsgb2lkID0+ICczODMyJywgZGVzY3IgPT4gJ0kvTycsCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCBhYTliMzYxZmEzMS4uZmFjMzdjOTY4OTYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMjc0LDYgKzI3NCwxMCBAQCB0eXBlZGVmIGVudW0gRXhw ckV2YWxPcAogCUVFT1BfTUVSR0VfU1VQUE9SVF9GVU5DLAogCUVFT1BfU1VCUExBTiwKIAorCS8q IHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gKFJQUiBQUkVWL05FWFQpICovCisJRUVPUF9SUFJfTkFW X1NFVCwKKwlFRU9QX1JQUl9OQVZfUkVTVE9SRSwKKwogCS8qIGFnZ3JlZ2F0aW9uIHJlbGF0ZWQg bm9kZXMgKi8KIAlFRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJRUVPUF9BR0dfREVTRVJJ QUxJWkUsCkBAIC02OTEsNiArNjk1LDE2IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAog CQkJU3ViUGxhblN0YXRlICpzc3RhdGU7CiAJCX0JCQlzdWJwbGFuOwogCisJCS8qIGZvciBFRU9Q X1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgKi8KKwkJc3RydWN0CisJCXsKKwkJ CVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwkJCVJQUk5hdktpbmQJa2luZDsJLyogUFJFViBv ciBORVhUICovCisJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlOwkvKiAyLWFyZzogcnVudGltZSBv ZmZzZXQgdmFsdWUsIG9yCisJCQkJCQkJCQkJICogTlVMTCAqLworCQkJYm9vbAkgICAqb2Zmc2V0 X2lzbnVsbDsJLyogMi1hcmc6IHJ1bnRpbWUgb2Zmc2V0IG51bGwgZmxhZyAqLworCQl9CQkJcnBy X25hdjsKKwogCQkvKiBmb3IgRUVPUF9BR0dfKkRFU0VSSUFMSVpFICovCiAJCXN0cnVjdAogCQl7 CkBAIC04OTgsNiArOTEyLDEwIEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFsTWVyZ2VTdXBwb3J0RnVu YyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQkJIEV4cHJDb250 ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbFN1YlBsYW4oRXhwclN0YXRlICpz dGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQlFeHByQ29udGV4dCAqZWNvbnRleHQpOwor ZXh0ZXJuIHZvaWQgRXhlY0V2YWxSUFJOYXZTZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxT dGVwICpvcCwKKwkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBF eGVjRXZhbFJQUk5hdlJlc3RvcmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwK KwkJCQkJCQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxX aG9sZVJvd1ZhcihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQlF eHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxTeXNWYXIoRXhwclN0 YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dB Z2cuaAppbmRleCBhZGE0YTFjNDU4Yy4uZjZmNjY0NTEzMWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9u b2RlV2luZG93QWdnLmgKQEAgLTIwLDQgKzIwLDcgQEAgZXh0ZXJuIFdpbmRvd0FnZ1N0YXRlICpF eGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWYK IGV4dGVybiB2b2lkIEV4ZWNFbmRXaW5kb3dBZ2coV2luZG93QWdnU3RhdGUgKm5vZGUpOwogZXh0 ZXJuIHZvaWQgRXhlY1JlU2NhbldpbmRvd0FnZyhXaW5kb3dBZ2dTdGF0ZSAqbm9kZSk7CiAKKy8q IFJQUiBuYXZpZ2F0aW9uIHN1cHBvcnQgZm9yIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBvcGNvZGVz ICovCitleHRlcm4gVHVwbGVUYWJsZVNsb3QgKkV4ZWNSUFJOYXZHZXRTbG90KFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKKwogI2VuZGlmCQkJCQkJCS8qIE5PREVXSU5ET1dB R0dfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBjNjcyZDI5ZjM1Yi4uNzRhNmI2ODIxMzIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0yNjkxLDEwICsyNjkxLDEyIEBAIHR5cGVkZWYgc3Ry dWN0IFdpbmRvd0FnZ1N0YXRlCiAJVHVwbGVUYWJsZVNsb3QgKnRlbXBfc2xvdF8xOwogCVR1cGxl VGFibGVTbG90ICp0ZW1wX3Nsb3RfMjsKIAotCS8qIHRlbXBvcmFyeSBzbG90cyBmb3IgUlBSICov Ci0JVHVwbGVUYWJsZVNsb3QgKnByZXZfc2xvdDsJLyogUFJFViByb3cgbmF2aWdhdGlvbiBvcGVy YXRvciAqLwotCVR1cGxlVGFibGVTbG90ICpuZXh0X3Nsb3Q7CS8qIE5FWFQgcm93IG5hdmlnYXRp b24gb3BlcmF0b3IgKi8KLQlUdXBsZVRhYmxlU2xvdCAqbnVsbF9zbG90OwkvKiBhbGwgTlVMTCBz bG90ICovCisJLyogUlBSIG5hdmlnYXRpb24gKi8KKwlzdHJ1Y3QgV2luZG93T2JqZWN0RGF0YSAq bmF2X3dpbm9iajsJLyogd2lub2JqIGZvciBSUFIgbmF2IGZldGNoICovCisJaW50NjQJCW5hdl9z bG90X3BvczsJLyogcG9zaXRpb24gY2FjaGVkIGluIG5hdl9zbG90LCBvciAtMSAqLworCVR1cGxl VGFibGVTbG90ICpuYXZfc2xvdDsJLyogc2xvdCBmb3IgUFJFVi9ORVhUIHRhcmdldCByb3cgKi8K KwlUdXBsZVRhYmxlU2xvdCAqbmF2X3NhdmVkX291dGVydHVwbGU7CS8qIHNhdmVkIHNsb3QgZHVy aW5nIG5hdiBzd2FwICovCisJVHVwbGVUYWJsZVNsb3QgKm5hdl9udWxsX3Nsb3Q7CS8qIGFsbCBO VUxMIHNsb3QgKi8KIAogCS8qIFJQUiBjdXJyZW50IG1hdGNoIHJlc3VsdCAqLwogCWJvb2wJCXJw cl9tYXRjaF92YWxpZDsJLyogdHJ1ZSBpZiBhIG1hdGNoIHJlc3VsdCBpcyBzZXQgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKaW5kZXggZjViNmI0NTY2NGEuLjk0NzIzYTNiOTA5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaApAQCAtNjQ4LDYgKzY0OCwzNyBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dGdW5jUnVu Q29uZGl0aW9uCiAJRXhwcgkgICAqYXJnOwogfSBXaW5kb3dGdW5jUnVuQ29uZGl0aW9uOwogCisv KgorICogUlBSTmF2RXhwcgorICoKKyAqIFJlcHJlc2VudHMgYSBQUkVWKCkgb3IgTkVYVCgpIG5h dmlnYXRpb24gY2FsbCBpbiBhbiBSUFIgREVGSU5FIGNsYXVzZS4KKyAqIEF0IGV4cHJlc3Npb24g Y29tcGlsZSB0aW1lIHRoaXMgaXMgdHJhbnNsYXRlZCBpbnRvIEVFT1BfUlBSX05BVl9TRVQgLwor ICogRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyByYXRoZXIgdGhhbiBhIG5vcm1hbCBmdW5j dGlvbiBjYWxsLgorICoKKyAqIGtpbmQ6ICAgICAgIFJQUl9OQVZfUFJFViBvciBSUFJfTkFWX05F WFQKKyAqIGFyZzogICAgICAgIHRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGFnYWluc3QgdGhl IHRhcmdldCByb3cKKyAqIG9mZnNldF9hcmc6IG9wdGlvbmFsIGV4cGxpY2l0IG9mZnNldCBleHBy ZXNzaW9uICgyLWFyZyBmb3JtKTsgTlVMTCBmb3IKKyAqICAgICAgICAgICAgIHRoZSAxLWFyZyBm b3JtIHdoaWNoIHVzZXMgYW4gaW1wbGljaXQgb2Zmc2V0IG9mIDEKKyAqLwordHlwZWRlZiBlbnVt IFJQUk5hdktpbmQKK3sKKwlSUFJfTkFWX1BSRVYsCisJUlBSX05BVl9ORVhULAorfSBSUFJOYXZL aW5kOworCit0eXBlZGVmIHN0cnVjdCBSUFJOYXZFeHByCit7CisJRXhwcgkJeHByOworCVJQUk5h dktpbmQJa2luZDsJCQkvKiBQUkVWIG9yIE5FWFQgKi8KKwlFeHByCSAgICphcmc7CQkJLyogYXJn dW1lbnQgZXhwcmVzc2lvbiAqLworCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhw cmVzc2lvbiwgb3IgTlVMTCBmb3IgMS1hcmcgZm9ybSAqLworCU9pZAkJCXJlc3VsdHR5cGU7CQkv KiByZXN1bHQgdHlwZSAoc2FtZSBhcyBhcmcncyB0eXBlKSAqLworCS8qIE9JRCBvZiBjb2xsYXRp b24gb2YgcmVzdWx0ICovCisJT2lkCQkJcmVzdWx0Y29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKKwkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwor CVBhcnNlTG9jCWxvY2F0aW9uOworfSBSUFJOYXZFeHByOworCiAvKgogICogTWVyZ2VTdXBwb3J0 RnVuYwogICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAppbmRleCBlNzIxNzEwNTBjNy4uZDU4 NmUxN2UwYTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKQEAgLTEwMTgsNiArMTAxOCw1 NTUgQEAgV0lORE9XIHcgQVMgKAogICA1IHwgICAgIDAuMSB8ICAgICAwCiAoNSByb3dzKQogCist LQorLS0gRXJyb3IgY2FzZXM6IFBSRVYvTkVYVCB1c2FnZSByZXN0cmljdGlvbnMKKy0tCistLSBQ UkVWIG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7 CitFUlJPUjogIHByZXYgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUg MTogU0VMRUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCistLSBO RVhUIG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7 CitFUlJPUjogIG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUg MTogU0VMRUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCistLSBO ZXN0ZWQgUFJFVgorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQ QVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklO RSBBIEFTIHByaWNlID4gUFJFVihQUkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5F WFQgY2Fubm90IGJlIG5lc3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVW KFBSRVYocHJpY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBOZXN0 ZWQgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJU SVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBB IEFTIHByaWNlID4gTkVYVChORVhUKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQg Y2Fubm90IGJlIG5lc3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKE5F WFQocHJpY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBQUkVWIG5l c3RlZCBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgK KyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAg IERFRklORSBBIEFTIHByaWNlID4gTkVYVChQUkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYg YW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2Ug PiBORVhUKFBSRVYocHJpY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCist LSBQUkVWIG5lc3RlZCBpbnNpZGUgZXhwcmVzc2lvbiBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNl IEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElO SVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmlj ZSAqIFBSRVYocHJpY2UpKQorKTsKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVz dGVkCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UgKiBQUkVWKHBy aWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gVHJpcGxlIG5lc3Rp bmc6IGVycm9yIHJlcG9ydGVkIGF0IG91dGVybW9zdCBQUkVWCitTRUxFQ1QgcHJpY2UgRlJPTSBz dG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAor ICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYoUFJFVihw cmljZSkpKQorKTsKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitMSU5F IDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihQUkVWKHByaWNlKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIE5vIGNvbHVtbiByZWZlcmVuY2UgaW4g UFJFVi9ORVhUIGFyZ3VtZW50CistLSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1bW4g cmVmZXJlbmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBB UlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5F IEEgQVMgUFJFVigxKSA+IDAKKyk7CitFUlJPUjogIGFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJuIG5h dmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVy ZW5jZQorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVigxKSA+IDAKKyAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIE5FWFQoMSArIDIpOiBjb25zdGFudCBleHByZXNzaW9uLCBubyBjb2x1 bW4gcmVmZXJlbmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAg IFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVG SU5FIEEgQVMgTkVYVCgxICsgMikgPiAwCispOworRVJST1I6ICBhcmd1bWVudCBvZiByb3cgcGF0 dGVybiBuYXZpZ2F0aW9uIG9wZXJhdGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVt biByZWZlcmVuY2UKK0xJTkUgNzogICAgIERFRklORSBBIEFTIE5FWFQoMSArIDIpID4gMAorICAg ICAgICAgICAgICAgICAgICAgICAgXgorLS0gMi1hcmcgZm9ybTogUFJFVigxLCAxKTogY29uc3Rh bnQgZXhwcmVzc2lvbiBhcyBmaXJzdCBhcmcKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKDEsIDEpID4gMAorKTsKK0VSUk9SOiAgYXJndW1l bnQgb2Ygcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxl YXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKDEs IDEpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gTm9uLWNvbnN0YW50IG9mZnNl dDogY29sdW1uIHJlZmVyZW5jZSBhcyBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitX SU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFU VEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCBwcmljZSkgPiAwCispOworRVJS T1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudAorTElORSA3 OiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcHJpY2UpID4gMAorICAgICAgICAgICAgICAg ICAgICAgICAgXgorLS0gTm9uLWNvbnN0YW50IG9mZnNldDogdm9sYXRpbGUgZnVuY3Rpb24gYXMg b2Zmc2V0CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEg QVMgUFJFVihwcmljZSwgcmFuZG9tKCk6OmludCkgPiAwCispOworRVJST1I6ICBQUkVWL05FWFQg b2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudAorTElORSA3OiAgICAgREVGSU5FIEEg QVMgUFJFVihwcmljZSwgcmFuZG9tKCk6OmludCkgPiAwCisgICAgICAgICAgICAgICAgICAgICAg ICBeCistLSBOb24tY29uc3RhbnQgb2Zmc2V0OiBzdWJxdWVyeSBhcyBvZmZzZXQKK1NFTEVDVCBw cmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAo U0VMRUNUIDEpKSA+IDAKKyk7CitFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGSU5F IGV4cHJlc3Npb24KK0xJTkUgNzogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIChTRUxFQ1Qg MSkpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRmlyc3Qg YXJnOiBzdWJxdWVyeSAoY2F1Z2h0IGJ5IERFRklORS1sZXZlbCBzdWJxdWVyeSByZXN0cmljdGlv bikKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQ UkVWKHByaWNlICsgKFNFTEVDVCAxKSkgPiAwCispOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1 ZXJ5IGluIERFRklORSBleHByZXNzaW9uCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKHBy aWNlICsgKFNFTEVDVCAxKSkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorLS0gRmlyc3QgYXJnOiB2b2xhdGlsZSBmdW5jdGlvbiBpcyBhbGxvd2VkIChldmFsdWF0 ZWQgb24gdGFyZ2V0IHJvdykKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBS RVYocHJpY2UgKyByYW5kb20oKSAqIDApID49IDAKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAg IHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQor IGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwg ICAgICAgIDEzMCB8ICAgICA5CisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAg MTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1 LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8 ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDEzMDAgfCAg ICAgOQorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAy MyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0KKy0tIDItYXJnIFBS RVYvTkVYVDogZnVuY3Rpb25hbCB0ZXN0cworLS0KKy0tIFBSRVYocHJpY2UsIDIpOiBtYXRjaCBy b3dzIHdoZXJlIGN1cnJlbnQgcHJpY2UgPiBwcmljZSAyIHJvd3MgYmFjaworLS0gc3RvY2s6IDEw MCwgOTAsIDgwLCA5NSwgMTEwCistLSBQYXR0ZXJuIChBIEIrKTogQT1hbnksIEIgd2hlcmUgcHJp Y2UgPiBQUkVWKHByaWNlLCAyKQorLS0gQXQgcG9zIDIgKDgwKTogQSBtYXRjaGVzLiBwb3MgMyAo OTUpOiA5NSA+IFBSRVYoOTUsMik9OTAgVFJVRS4KKy0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwb3MgNCAoMTEwKTogMTEwID4gUFJFVigxMTAsMik9ODAgVFJVRS4gTWF0Y2ghCitTRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVS IHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2Nr CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAg IEIgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAyKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAg fCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisg Y29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAyMDAgfCAg ICAgICAgMTUwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAx NDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUt MjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAx MjAgfCAgICAgMworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwg ICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgICAgMTUwMCB8ICAg ICAyCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIz IHwgICAgNjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgIDExMDAgfCAgICAgICAxMjAwIHwgICAgIDMKKyBj b21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSBORVhUKHByaWNlLCAy KTogbWF0Y2ggcm93cyB3aGVyZSBjdXJyZW50IHByaWNlID4gcHJpY2UgMiByb3dzIGFoZWFkCist LSBwb3MgMCAoMTAwKTogTkVYVCgxMDAsMik9ODAsIDEwMD44MCBUUlVFLiBwb3MgMSAoOTApOiBO RVhUKDkwLDIpPTk1LCA5MD45NSBGQUxTRS4gTWF0Y2ggZW5kcy4KK1NFTEVDVCBjb21wYW55LCB0 ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1 ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmljZSwgMikKKyk7CisgY29tcGFueSAg fCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAK Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAg ICAgICAgMjAwIHwgICAgICAgIDIwMCB8ICAgICAxCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwg ICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDct MDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAxNDAgfCAgICAgICAgMTUwIHwgICAgIDIKKyBjb21w YW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIz IHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwg MDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgMjAwMCB8ICAg ICAgIDIwMDAgfCAgICAgMQorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQw MCB8ICAgICAgICAxNDAwIHwgICAgICAgMTUwMCB8ICAgICAyCisgY29tcGFueTIgfCAwNy0wNS0y MDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0g RXhwcmVzc2lvbnMgaW5zaWRlIFBSRVYvTkVYVCBhcmc6IGV4cHIgaXMgZXZhbHVhdGVkIG9uIHRh cmdldCByb3cKKy0tIFBSRVYocHJpY2UgLSA1MCwgMSk6IGZldGNoZXMgKHByaWNlIC0gNTApIGZy b20gMSByb3cgYmFjaworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCop IE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21w YW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2Ug PiBQUkVWKHByaWNlIC0gNTAsIDEpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNl IHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55 MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgIDIwMCB8ICAgICAgICAy MDAgfCAgICAgMQorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAg ICAgICAgMTQwIHwgICAgICAgIDE1MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwg ICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDct MDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDEzMCB8ICAg ICA0CisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIz IHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAyMDAwIHwgICAgIDEKKyBj b21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAg IDE1MDAgfCAgICAgICAxNTAwIHwgICAgIDEKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0y MDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAgfCAgICAgMgorIGNvbXBhbnky IHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgMTMwMCB8 ICAgICAgIDEzMDAgfCAgICAgMQorKDIwIHJvd3MpCisKKy0tIE5FWFQocHJpY2UgKiAyLCAxKTog ZmV0Y2hlcyAocHJpY2UgKiAyKSBmcm9tIDEgcm93IGFoZWFkCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBwcmljZSA8IE5FWFQocHJpY2UgKiAyLCAxKQorKTsKKyBjb21wYW55 ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50 IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEw MCB8ICAgICAgICAxMjAgfCAgICAgOQorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMg fCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIw MjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAw IHwgICAgIDQKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAx NDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1 LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICA2MCB8ICAgICAgIDEyMDAgfCAgICAg NAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8 ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCist LSBMYXJnZSBvZmZzZXQ6IFBSRVYodmFsLCA5OTkpIG9uIDEwMDAtcm93IHNlcmllcyBtYXRjaGVz IG9ubHkgbGFzdCByb3cKKy0tIE5FWFQodmFsLCA5OTkpIG1hdGNoZXMgb25seSBmaXJzdCByb3cK K1NFTEVDVCB2YWwsIGZpcnN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZF UiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQo dmFsKQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYo dmFsLCA5OTkpID0gMQorKQorT1JERVIgQlkgdmFsIERFU0MgTElNSVQgMzsKKyB2YWwgIHwgZmly c3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLQorIDEwMDAgfCAgICAgICAgMTAwMCB8ICAgICAgIDEwMDAgfCAgICAg MQorICA5OTkgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorICA5OTggfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDMgcm93cykKKworU0VMRUNUIHZhbCwgZmly c3RfdmFsdWUodmFsKSBPVkVSIHcsIGxhc3RfdmFsdWUodmFsKSBPVkVSIHcsIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgdCh2YWwpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVCh2YWwsIDk5OSkgPSAxMDAw CispCitMSU1JVCAzOworIHZhbCB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAor LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgMSB8ICAgICAgICAg ICAxIHwgICAgICAgICAgMSB8ICAgICAxCisgICAyIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyAgIDMgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDMgcm93 cykKKworLS0gUFJFVihwcmljZSwgMCk6IG9mZnNldCAwIG1lYW5zIGN1cnJlbnQgcm93LCBhbHdh eXMgZXF1YWwgdG8gcHJpY2UKKy0tIEErIG1hdGNoZXMgZW50aXJlIHBhcnRpdGlvbiBhcyBvbmUg Z3JvdXA7IGNvdW50ID0gcGFydGl0aW9uIHNpemUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJp Y2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkg T1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQ QVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIFBSRVYocHJpY2UsIDApID0gcHJpY2UKKyk7CisgY29tcGFueSAgfCAgIHRkYXRl ICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAgICAgICAg MTMwIHwgICAgMTAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8 ICAgMTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAy MyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUwIHwgICAgICAgMTMwMCB8ICAgIDEwCisg Y29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1 MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYt MjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gMi1hcmcgUFJF Vi9ORVhUIG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00g c3RvY2s7CitFUlJPUjogIHByZXYgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UK K0xJTkUgMTogU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CisgICAgICAgICAgICAg ICBeCitTRUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBzdG9jazsKK0VSUk9SOiAgbmV4dCBjYW4g b25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgbmV4dChwcmlj ZSwgMikgRlJPTSBzdG9jazsKKyAgICAgICAgICAgICAgIF4KKy0tIDItYXJnIFBSRVYvTkVYVDog bmVnYXRpdmUgb2Zmc2V0CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1 ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyBQUkVWKHByaWNlLCAtMSkgSVMgTk9UIE5VTEwKKyk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZz ZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKKy0tIDItYXJnIFBSRVYvTkVYVDogTlVMTCBvZmZzZXQg KHR5cGVkKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2Up IE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21w YW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihw cmljZSwgTlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKKyk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZz ZXQgbXVzdCBub3QgYmUgbnVsbAorLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9mZnNldCAodW50 eXBlZCkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBP VkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFu eSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJp Y2UsIE5VTEwpIElTIE5PVCBOVUxMCispOworRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3Qg bm90IGJlIG51bGwKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSBuZWdhdGl2ZSBh bmQgTlVMTAorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitX SU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsK K0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQg bXVzdCBub3QgYmUgbmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0VS Uk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3Rf cHJldl9vZmZzZXQ7CistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBleHBy ZXNzaW9uICgwICsgJDEpCitQUkVQQVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0 ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwg MCArICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFUlJPUjogIFBSRVYv TkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNl dChOVUxMKTsKK0VSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFM TE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CistLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJl bnQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90 aCAxLWJhY2sgYW5kIDItYmFjayB2YWx1ZXMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us CisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZF UiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJU SVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJV RSwKKyAgICAgICAgQiBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYo cHJpY2UsIDIpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFs dWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIw MjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAg IDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3 LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDEzMCB8ICAgICAyCisgY29tcGFu eTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8 ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAg fCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDctMDgtMjAy MyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorKDIwIHJvd3MpCisKKy0tIDItYXJnOiBQUkVWIGFuZCBORVhUIHdpdGggZXhwbGlj aXQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0tIEE6IHByaWNlIGV4Y2VlZHMgMS1i YWNrIGFuZCBpcyBiZWxvdyAxLWFoZWFkIChhc2NlbmRpbmcgaW50ZXJpb3IgcG9pbnQpCitTRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVS IHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2Nr CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA8IE5FWFQocHJpY2Us IDEpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBs YXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAg IDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w Mi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMg fCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDExMCB8ICAgICAxCisgY29tcGFueTEgfCAw Ny0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIw MjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAg ICAgMTEwMCB8ICAgICAgIDExMDAgfCAgICAgMQorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAx MzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5 LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorKDIwIHJvd3MpCisKIC0tCiAtLSBTS0lQIFRPIC8gQmFja3RyYWNraW5nIC8gRnJhbWUgYm91 bmRhcnkKIC0tCkBAIC0xNDc5LDcgKzIwMjgsNyBAQCBjb3VudCgqKSBPVkVSIHcKICgxNCByb3dz KQogCiAtLSBSZVNjYW4gdGVzdDogTEFURVJBTCBqb2luIGZvcmNlcyBXaW5kb3dBZ2cgcmVzY2Fu IHdpdGggUlBSCi0tLSBUZXN0cyBFeGVjUmVTY2FuV2luZG93QWdnIGNsZWFyaW5nIHByZXZfc2xv dC9uZXh0X3Nsb3QKKy0tIFRlc3RzIEV4ZWNSZVNjYW5XaW5kb3dBZ2cgY2xlYXJpbmcgbmF2X3Ns b3QKIFNFTEVDVCBnLngsIHN1Yi4qCiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnKHgpLAog TEFURVJBTCAoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNl Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDY1MjYz NjVkZDZhLi4zN2FhODFlYmRlYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfYmFzZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQKQEAgLTIyNzMsNyArMjI3Myw3IEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3Nlcmlh bF9xdW90ZWQnOjpyZWdjbGFzcyk7CiAgICBQQVRURVJOICgiU3RhcnQiICJVcCIrKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgIERFRklORSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwogICAgIlN0YXJ0IiBBUyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAiVXAiIEFTICh2YWwgPiBwcmV2 KHZhbCkpICk7CisgICAiVXAiIEFTICh2YWwgPiBQUkVWKHZhbCkpICk7CiAoMSByb3cpCiAKIC0t IE1hdGVyaWFsaXplZCB2aWV3IChpZiBzdXBwb3J0ZWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IGE2OGVjNjFlMTBmLi5kYzMwNzVlNmJkMyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM4NDcsNiArMzg0Nyw4 NiBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKKy0tIFVzaW5nIDEt YXJnIFBSRVYgKGltcGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2 MSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAg ICAgIEIgQVMgdiA+IFBSRVYodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfcHJldjEnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKyAgICAgICAgICBs aW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEg YispIAorICAgREVGSU5FCisgICBiIEFTICh2ID4gUFJFVih2KSkgKTsKKygzIHJvd3MpCisKKy0t IFVzaW5nIDEtYXJnIE5FWFQgKGltcGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2 X25hdl9uZXh0MSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRS VUUsCisgICAgICAgIEIgQVMgdiA8IE5FWFQodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfbmV4dDEnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKyAg ICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBB VFRFUk4gKGEgYispIAorICAgREVGSU5FCisgICBiIEFTICh2IDwgTkVYVCh2KSkgKTsKKygzIHJv d3MpCisKKy0tIFVzaW5nIDItYXJnIFBSRVYgKGV4cGxpY2l0IG9mZnNldCkKK0NSRUFURSBWSUVX IHJwcl9ldl9uYXZfcHJldjIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyBUUlVFLAorICAgICAgICBCIEFTIHYgPiBQUkVWKHYsIDIpCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X3By ZXYyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8 TkVYVCc7CisgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAorICAgREVG SU5FCisgICBiIEFTICh2ID4gUFJFVih2LCAoMik6OmJpZ2ludCkpICk7CisoMyByb3dzKQorCist LSBVc2luZyAyLWFyZyBORVhUIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZf bmF2X25leHQyIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJV RSwKKyAgICAgICAgQiBBUyB2IDwgTkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOwor ICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIrKSAKKyAgIERFRklORQorICAg YiBBUyAodiA8IE5FWFQodiwgKDIpOjpiaWdpbnQpKSApOworKDMgcm93cykKKwogLS0gVXNpbmcg TlVMTCBjb21wYXJpc29ucwogQ1JFQVRFIFZJRVcgcnByX2V2X2RlZl9udWxsIEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9pbnRlZ3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3Jh dGlvbi5vdXQKaW5kZXggMGVlNjEyYjc0ZmIuLmY5ZjcwYTgxNGNhIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC0xMDI2LDI3ICsxMDI2LDY2 IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAogICAgIFBBVFRFUk4gKEEgQispCiAgICAgREVG SU5FIEIgQVMgdmFsID4gUFJFVih2YWwsICQxKSkKIE9SREVSIEJZIGlkOwotRVJST1I6ICBmdW5j dGlvbiBwcmV2KGludGVnZXIsIGludGVnZXIpIGRvZXMgbm90IGV4aXN0Ci1MSU5FIDc6ICAgICBE RUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCwgJDEpKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgotREVUQUlMOiAgTm8gZnVuY3Rpb24gb2YgdGhhdCBuYW1lIGFjY2VwdHMgdGhlIGdp dmVuIG51bWJlciBvZiBhcmd1bWVudHMuCiAtLSBDdXN0b20gcGxhbjogTmF2IE1hcmsgTG9va2Jh Y2sgcmVzb2x2ZWQgdG8gdGhlIGxpdGVyYWwgMS4KIFNFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3Jj ZV9jdXN0b21fcGxhbjsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsK LUVSUk9SOiAgcHJlcGFyZWQgc3RhdGVtZW50ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiKworICAgLT4gIFNvcnQKKyAg ICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwor KDYgcm93cykKKwogRVhFQ1VURSBycHJfcHJldigxKTsKLUVSUk9SOiAgcHJlcGFyZWQgc3RhdGVt ZW50ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0t LS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAg IDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAg NyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0 NSB8ICAgMAorKDEwIHJvd3MpCisKIC0tIEdlbmVyaWMgcGxhbjogTmF2IE1hcmsgTG9va2JhY2sg ZGVmZXJyZWQgdG8gZXhlY3V0aW9uLCBzaG93biBhcwogLS0gInJ1bnRpbWUiIGluIHRoZSBwbGFu LiAgUmVzdWx0IG11c3QgbWF0Y2ggdGhlIGN1c3RvbS1wbGFuIHJlc3VsdAogLS0gZXhhY3RseS4K IFNFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9nZW5lcmljX3BsYW47CiBFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7Ci1FUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAi cnByX3ByZXYiIGRvZXMgbm90IGV4aXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBh dHRlcm46IGEgYisKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKIEVYRUNVVEUgcnByX3ByZXYo MSk7Ci1FUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3ByZXYiIGRvZXMgbm90IGV4aXN0 CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAg MiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAg NSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAg MworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCiBSRVNFVCBw bGFuX2NhY2hlX21vZGU7CiBERUFMTE9DQVRFIHJwcl9wcmV2OwotRVJST1I6ICBwcmVwYXJlZCBz dGF0ZW1lbnQgInJwcl9wcmV2IiBkb2VzIG5vdCBleGlzdAogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBCNS4gUlBSICsg UGFydGl0aW9uZWQgdGFibGUKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKaW5kZXggOTU3OTRkNDA5 ZTEuLjUwNDQ3NmEyYjAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKQEAgLTQ0MCw2ICs0NDAsMzI2IEBA IFdJTkRPVyB3IEFTICgKICAgQiBBUyB2YWwgPiBQUkVWKHZhbCkgKiAwLjk5CiApOwogCistLQor LS0gRXJyb3IgY2FzZXM6IFBSRVYvTkVYVCB1c2FnZSByZXN0cmljdGlvbnMKKy0tCisKKy0tIFBS RVYgb3V0c2lkZSBERUZJTkUgY2xhdXNlCitTRUxFQ1QgcHJldihwcmljZSkgRlJPTSBzdG9jazsK KworLS0gTkVYVCBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBuZXh0KHByaWNlKSBGUk9N IHN0b2NrOworCistLSBOZXN0ZWQgUFJFVgorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRP VyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJO IChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihQUkVWKHByaWNlKSkKKyk7CisKKy0t IE5lc3RlZCBORVhUCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAg IFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVG SU5FIEEgQVMgcHJpY2UgPiBORVhUKE5FWFQocHJpY2UpKQorKTsKKworLS0gUFJFViBuZXN0ZWQg aW5zaWRlIE5FWFQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJ TkUgQSBBUyBwcmljZSA+IE5FWFQoUFJFVihwcmljZSkpCispOworCistLSBQUkVWIG5lc3RlZCBp bnNpZGUgZXhwcmVzc2lvbiBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJ TkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRU RVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmljZSAqIFBSRVYocHJpY2Up KQorKTsKKworLS0gVHJpcGxlIG5lc3Rpbmc6IGVycm9yIHJlcG9ydGVkIGF0IG91dGVybW9zdCBQ UkVWCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElP TiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMg cHJpY2UgPiBQUkVWKFBSRVYoUFJFVihwcmljZSkpKQorKTsKKworLS0gTm8gY29sdW1uIHJlZmVy ZW5jZSBpbiBQUkVWL05FWFQgYXJndW1lbnQKKy0tIFBSRVYoMSk6IGNvbnN0YW50IG9ubHksIG5v IGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAg ICBERUZJTkUgQSBBUyBQUkVWKDEpID4gMAorKTsKKworLS0gTkVYVCgxICsgMik6IGNvbnN0YW50 IGV4cHJlc3Npb24sIG5vIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2Nr CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAg UEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBORVhUKDEgKyAyKSA+IDAKKyk7CisKKy0tIDIt YXJnIGZvcm06IFBSRVYoMSwgMSk6IGNvbnN0YW50IGV4cHJlc3Npb24gYXMgZmlyc3QgYXJnCitT RUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBj b21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVigx LCAxKSA+IDAKKyk7CisKKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IGNvbHVtbiByZWZlcmVuY2Ug YXMgb2Zmc2V0CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBB UlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5F IEEgQVMgUFJFVihwcmljZSwgcHJpY2UpID4gMAorKTsKKworLS0gTm9uLWNvbnN0YW50IG9mZnNl dDogdm9sYXRpbGUgZnVuY3Rpb24gYXMgb2Zmc2V0CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBB VFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcmFuZG9tKCk6OmludCkgPiAw CispOworCistLSBOb24tY29uc3RhbnQgb2Zmc2V0OiBzdWJxdWVyeSBhcyBvZmZzZXQKK1NFTEVD VCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBh bnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNl LCAoU0VMRUNUIDEpKSA+IDAKKyk7CisKKy0tIEZpcnN0IGFyZzogc3VicXVlcnkgKGNhdWdodCBi eSBERUZJTkUtbGV2ZWwgc3VicXVlcnkgcmVzdHJpY3Rpb24pCitTRUxFQ1QgcHJpY2UgRlJPTSBz dG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAor ICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSArIChTRUxFQ1QgMSkp ID4gMAorKTsKKworLS0gRmlyc3QgYXJnOiB2b2xhdGlsZSBmdW5jdGlvbiBpcyBhbGxvd2VkIChl dmFsdWF0ZWQgb24gdGFyZ2V0IHJvdykKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisg ICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UgKyByYW5kb20oKSAqIDApID49IDAKKyk7CisKKy0tCistLSAyLWFyZyBQ UkVWL05FWFQ6IGZ1bmN0aW9uYWwgdGVzdHMKKy0tCisKKy0tIFBSRVYocHJpY2UsIDIpOiBtYXRj aCByb3dzIHdoZXJlIGN1cnJlbnQgcHJpY2UgPiBwcmljZSAyIHJvd3MgYmFjaworLS0gc3RvY2s6 IDEwMCwgOTAsIDgwLCA5NSwgMTEwCistLSBQYXR0ZXJuIChBIEIrKTogQT1hbnksIEIgd2hlcmUg cHJpY2UgPiBQUkVWKHByaWNlLCAyKQorLS0gQXQgcG9zIDIgKDgwKTogQSBtYXRjaGVzLiBwb3Mg MyAoOTUpOiA5NSA+IFBSRVYoOTUsMik9OTAgVFJVRS4KKy0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwb3MgNCAoMTEwKTogMTEwID4gUFJFVigxMTAsMik9ODAgVFJVRS4gTWF0Y2ghCitT RUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBP VkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0 b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRh dGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAg ICAgIEIgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAyKQorKTsKKworLS0gTkVYVChwcmljZSwgMik6 IG1hdGNoIHJvd3Mgd2hlcmUgY3VycmVudCBwcmljZSA+IHByaWNlIDIgcm93cyBhaGVhZAorLS0g cG9zIDAgKDEwMCk6IE5FWFQoMTAwLDIpPTgwLCAxMDA+ODAgVFJVRS4gcG9zIDEgKDkwKTogTkVY VCg5MCwyKT05NSwgOTA+OTUgRkFMU0UuIE1hdGNoIGVuZHMuCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UsIDIpCispOworCistLSBFeHByZXNz aW9ucyBpbnNpZGUgUFJFVi9ORVhUIGFyZzogZXhwciBpcyBldmFsdWF0ZWQgb24gdGFyZ2V0IHJv dworLS0gUFJFVihwcmljZSAtIDUwLCAxKTogZmV0Y2hlcyAocHJpY2UgLSA1MCkgZnJvbSAxIHJv dyBiYWNrCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3 CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JE RVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYo cHJpY2UgLSA1MCwgMSkKKyk7CisKKy0tIE5FWFQocHJpY2UgKiAyLCAxKTogZmV0Y2hlcyAocHJp Y2UgKiAyKSBmcm9tIDEgcm93IGFoZWFkCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAor ICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyBwcmljZSA8IE5FWFQocHJpY2UgKiAyLCAxKQorKTsKKworLS0gTGFyZ2Ugb2Zmc2V0OiBQ UkVWKHZhbCwgOTk5KSBvbiAxMDAwLXJvdyBzZXJpZXMgbWF0Y2hlcyBvbmx5IGxhc3Qgcm93Cist LSBORVhUKHZhbCwgOTk5KSBtYXRjaGVzIG9ubHkgZmlyc3Qgcm93CitTRUxFQ1QgdmFsLCBmaXJz dF92YWx1ZSh2YWwpIE9WRVIgdywgbGFzdF92YWx1ZSh2YWwpIE9WRVIgdywgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyB0KHZhbCkKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHZhbCwgOTk5KSA9IDEKKykK K09SREVSIEJZIHZhbCBERVNDIExJTUlUIDM7CisKK1NFTEVDVCB2YWwsIGZpcnN0X3ZhbHVlKHZh bCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQodmFsLCA5OTkpID0gMTAwMAorKQorTElNSVQg MzsKKworLS0gUFJFVihwcmljZSwgMCk6IG9mZnNldCAwIG1lYW5zIGN1cnJlbnQgcm93LCBhbHdh eXMgZXF1YWwgdG8gcHJpY2UKKy0tIEErIG1hdGNoZXMgZW50aXJlIHBhcnRpdGlvbiBhcyBvbmUg Z3JvdXA7IGNvdW50ID0gcGFydGl0aW9uIHNpemUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJp Y2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkg T1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQ QVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIFBSRVYocHJpY2UsIDApID0gcHJpY2UKKyk7CisKKy0tIDItYXJnIFBSRVYvTkVY VCBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBwcmV2KHByaWNlLCAyKSBGUk9NIHN0b2Nr OworU0VMRUNUIG5leHQocHJpY2UsIDIpIEZST00gc3RvY2s7CisKKy0tIDItYXJnIFBSRVYvTkVY VDogbmVnYXRpdmUgb2Zmc2V0CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyBQUkVWKHByaWNlLCAtMSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIDItYXJnIFBSRVYvTkVY VDogTlVMTCBvZmZzZXQgKHR5cGVkKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmly c3RfdmFsdWUocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBB UlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgUFJFVihwcmljZSwgTlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIDIt YXJnIFBSRVYvTkVYVDogTlVMTCBvZmZzZXQgKHVudHlwZWQpCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCBOVUxMKSBJUyBOT1QgTlVMTAorKTsK KworLS0gMi1hcmcgUFJFVi9ORVhUOiBob3N0IHZhcmlhYmxlIG5lZ2F0aXZlIGFuZCBOVUxMCitQ UkVQQVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwg cHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgJDEpCispOworRVhFQ1VURSB0 ZXN0X3ByZXZfb2Zmc2V0KC0xKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0RF QUxMT0NBVEUgdGVzdF9wcmV2X29mZnNldDsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBob3N0IHZh cmlhYmxlIHdpdGggZXhwcmVzc2lvbiAoMCArICQxKQorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0 KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmlj ZSA+IFBSRVYocHJpY2UsIDAgKyAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoLTEp OworRVhFQ1VURSB0ZXN0X3ByZXZfb2Zmc2V0KE5VTEwpOworREVBTExPQ0FURSB0ZXN0X3ByZXZf b2Zmc2V0OworCistLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBz YW1lIERFRklORSBjbGF1c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDIt YmFjayB2YWx1ZXMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3Rf dmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBP VkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFu eSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBB UyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2UsIDIpCispOwor CistLSAyLWFyZzogUFJFViBhbmQgTkVYVCB3aXRoIGV4cGxpY2l0IG9mZnNldHMgaW4gc2FtZSBE RUZJTkUgY2xhdXNlCistLSBBOiBwcmljZSBleGNlZWRzIDEtYmFjayBhbmQgaXMgYmVsb3cgMS1h aGVhZCAoYXNjZW5kaW5nIGludGVyaW9yIHBvaW50KQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAg IFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQ UkVWKHByaWNlLCAxKSBBTkQgcHJpY2UgPCBORVhUKHByaWNlLCAxKQorKTsKKwogLS0KIC0tIFNL SVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBGcmFtZSBib3VuZGFyeQogLS0KQEAgLTY3MSw3ICs5OTEs NyBAQCBjb3VudCgqKSBPVkVSIHcKICk7CiAKIC0tIFJlU2NhbiB0ZXN0OiBMQVRFUkFMIGpvaW4g Zm9yY2VzIFdpbmRvd0FnZyByZXNjYW4gd2l0aCBSUFIKLS0tIFRlc3RzIEV4ZWNSZVNjYW5XaW5k b3dBZ2cgY2xlYXJpbmcgcHJldl9zbG90L25leHRfc2xvdAorLS0gVGVzdHMgRXhlY1JlU2Nhbldp bmRvd0FnZyBjbGVhcmluZyBuYXZfc2xvdAogU0VMRUNUIGcueCwgc3ViLioKIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDIpIGcoeCksCiBMQVRFUkFMICgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBs YWluLnNxbAppbmRleCA3MDNlY2QzYjIzYi4uZTMzOWVkZDdlOTEgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfZXhwbGFpbi5zcWwKQEAgLTIyMTQsNiArMjIxNCw2MiBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEQgQVMgdiA8IFBSRVYodikKICk7Jyk7CiAKKy0tIFVzaW5nIDEtYXJnIFBSRVYgKGlt cGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2MSBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgdiA+ IFBSRVYodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfcHJldjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKworLS0gVXNpbmcgMS1hcmcgTkVYVCAo aW1wbGljaXQgb2Zmc2V0IDEpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25leHQxIEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2 IDwgTkVYVCh2KQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2luZyAyLWFyZyBQUkVW IChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X3ByZXYyIEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2 ID4gUFJFVih2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9wcmV2MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2luZyAyLWFyZyBO RVhUIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25leHQyIEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBB UyB2IDwgTkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCiAtLSBVc2luZyBOVUxM IGNvbXBhcmlzb25zCiBDUkVBVEUgVklFVyBycHJfZXZfZGVmX251bGwgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNjA5MGMyZDg5NTAuLjE2 ZGUxNDIxMzAyIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTgwMSw3ICsxODAxLDYg QEAgTmFtZWRMV0xvY2tUcmFuY2hlUmVxdWVzdAogTmFtZWRUdXBsZXN0b3JlU2NhbgogTmFtZWRU dXBsZXN0b3JlU2NhblN0YXRlCiBOYW1lc3BhY2VJbmZvCi1OYXZpZ2F0aW9uSW5mbwogTmVzdExv b3AKIE5lc3RMb29wUGFyYW0KIE5lc3RMb29wU3RhdGUKQEAgLTI0NzgsNiArMjQ3Nyw4IEBAIFF1 ZXJ5U291cmNlCiBRdWV1ZUJhY2tlbmRTdGF0dXMKIFF1ZXVlUG9zaXRpb24KIFF1aXRTaWduYWxS ZWFzb24KK1JQUk5hdkV4cHIKK1JQUk5hdktpbmQKIFJCVE5vZGUKIFJCVE9yZGVyQ29udHJvbAog UkJUcmVlCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0018-JIT-support-for-PREV-NEXT.txt" Content-Disposition: attachment; filename="nocfbot-0018-JIT-support-for-PREV-NEXT.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon639ed17 RnJvbSBlZmI5OTQyOGNmZGI0MTM2M2Q0OWQ0YjdjYTE5OWY5MjEyYmE1YTZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTA6NTQ6MzAgKzA5MDAKU3ViamVjdDogW1BBVENIIDE4LzQwXSBB ZGQgSklUIGNvbXBpbGF0aW9uIHN1cHBvcnQgZm9yIFJQUiBQUkVWL05FWFQKIG5hdmlnYXRpb24K Ci0tLQogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgfCA3MiArKysrKysrKysr KysrKysrKysrKystLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0ICAg fCAzMSArKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICB8 IDI3ICsrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAxOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4 cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCmluZGV4IGQxNThlMzdl N2I1Li40OTAxYjJhN2ZmNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKQEAgLTEy Nyw2ICsxMjcsOSBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCUxMVk1W YWx1ZVJlZiB2X2FnZ3ZhbHVlczsKIAlMTFZNVmFsdWVSZWYgdl9hZ2dudWxsczsKIAorCS8qIFJQ UiBuYXZpZ2F0aW9uOiB3aGVuIHRydWUsIEVFT1BfT1VURVJfVkFSIHJlbG9hZHMgZnJvbSBlY29u dGV4dCAqLworCWJvb2wJCWhhc19ycHJfbmF2OworCiAJaW5zdHJfdGltZQlzdGFydHRpbWU7CiAJ aW5zdHJfdGltZQlkZWZvcm1fc3RhcnR0aW1lOwogCWluc3RyX3RpbWUJZW5kdGltZTsKQEAgLTMw MCwxOSArMzAzLDE2IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJICog UlBSIG5hdmlnYXRpb24gb3Bjb2RlcyAoUFJFVi9ORVhUKSBzd2FwIGVjeHRfb3V0ZXJ0dXBsZSB0 byBhIGRpZmZlcmVudAogCSAqIHJvdyBtaWQtZXhwcmVzc2lvbi4gIFRoZSBKSVQgY29kZSBsb2Fk cyB2X291dGVydmFsdWVzIGFuZCB2X291dGVybnVsbHMKIAkgKiBvbmNlIGluIHRoZSBlbnRyeSBi bG9jayBhbmQgcmV1c2VzIHRoZW0gZm9yIGFsbCBFRU9QX09VVEVSX1ZBUiBzdGVwcy4KLQkgKiBB ZnRlciBhIHNsb3Qgc3dhcCwgdGhlc2UgcG9pbnRlcnMgYmVjb21lIHN0YWxlIGJlY2F1c2UgdGhl IG5ldyBzbG90IGhhcwotCSAqIGl0cyBvd24gdHRzX3ZhbHVlcy90dHNfaXNudWxsIGFycmF5cy4g IEZhbGwgYmFjayB0byB0aGUgaW50ZXJwcmV0ZXIgZm9yCi0JICogdGhlc2UgZXhwcmVzc2lvbnMu CisJICogQWZ0ZXIgYSBzbG90IHN3YXAsIHRoZXNlIGNhY2hlZCBwb2ludGVycyBiZWNvbWUgc3Rh bGUgYmVjYXVzZSB0aGUgbmV3CisJICogc2xvdCBoYXMgaXRzIG93biB0dHNfdmFsdWVzL3R0c19p c251bGwgYXJyYXlzLgogCSAqCi0JICogWFhYIFRvIEpJVC1jb21waWxlIHRoZXNlIGV4cHJlc3Np b25zIHByb3Blcmx5LCB0aGUgTkFWX1NFVCBhbmQKLQkgKiBOQVZfUkVTVE9SRSBoYW5kbGVycyB3 b3VsZCBuZWVkIHRvIHJlbG9hZCB0aGUgdHRzX3ZhbHVlcyBhbmQgdHRzX2lzbnVsbAotCSAqIHBv aW50ZXJzIGZyb20gdGhlIG5ldyBzbG90LiAgSG93ZXZlciwgTExWTSB1c2VzIFNTQSAoU3RhdGlj IFNpbmdsZQotCSAqIEFzc2lnbm1lbnQpIGZvcm0gd2hlcmUgZWFjaCB2YWx1ZSBpcyBkZWZpbmVk IGV4YWN0bHkgb25jZS4gIFdoZW4KLQkgKiBkaWZmZXJlbnQgYmFzaWMgYmxvY2tzIHByb2R1Y2Ug ZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIHNhbWUgcG9pbnRlciwKLQkgKiBMTFZNIHJlcXVpcmVz IFBISSBub2RlcyBhdCB0aGUgbWVyZ2UgcG9pbnQgdG8gc2VsZWN0IHRoZSBjb3JyZWN0IG9uZS4K LQkgKiBXaXRob3V0IHRoYXQgcGx1bWJpbmcsIE9VVEVSX1ZBUiBzdGVwcyBhZnRlciBhIHNsb3Qg c3dhcCB3b3VsZCByZWFkCi0JICogZnJvbSB0aGUgd3JvbmcgcG9pbnRlci4KKwkgKiBXaGVuIFJQ UiBuYXZpZ2F0aW9uIG9wY29kZXMgYXJlIHByZXNlbnQsIEVFT1BfT1VURVJfVkFSIHJlbG9hZHMg dGhlCisJICogc2xvdCBwb2ludGVyIGZyb20gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZSBvbiBl dmVyeSBhY2Nlc3MgaW5zdGVhZCBvZgorCSAqIHVzaW5nIHRoZSBjYWNoZWQgZW50cnktYmxvY2sg dmFsdWVzLiAgVGhpcyBhdm9pZHMgdGhlIFNTQS9QSEkKKwkgKiBjb21wbGV4aXR5IHdoaWxlIGtl ZXBpbmcgdGhlIHJlc3Qgb2YgdGhlIGV4cHJlc3Npb24gSklULWNvbXBpbGVkLgorCSAqIEV4cHJl c3Npb25zIHdpdGhvdXQgUlBSIG5hdmlnYXRpb24gdXNlIHRoZSBjYWNoZWQgdmFsdWVzIGFzIGJl Zm9yZS4KIAkgKi8KKwloYXNfcnByX25hdiA9IGZhbHNlOwogCWlmIChwYXJlbnQgJiYgSXNBKHBh cmVudCwgV2luZG93QWdnU3RhdGUpICYmCiAJCSgoV2luZG93QWdnICopIHBhcmVudC0+cGxhbikt PnJwUGF0dGVybiAhPSBOVUxMKQogCXsKQEAgLTMyMyw5ICszMjMsOCBAQCBsbHZtX2NvbXBpbGVf ZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCQkJaWYgKG9wY29kZSA9PSBFRU9QX1JQUl9OQVZfU0VU IHx8CiAJCQkJb3Bjb2RlID09IEVFT1BfUlBSX05BVl9SRVNUT1JFKQogCQkJewotCQkJCUxMVk1E ZWxldGVGdW5jdGlvbihldmFsX2ZuKTsKLQkJCQlMTFZNRGlzcG9zZUJ1aWxkZXIoYik7Ci0JCQkJ cmV0dXJuIGZhbHNlOworCQkJCWhhc19ycHJfbmF2ID0gdHJ1ZTsKKwkJCQlicmVhazsKIAkJCX0K IAkJfQogCX0KQEAgLTQ5Miw4ICs0OTEsMzcgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRl ICpzdGF0ZSkKIAkJCQkJfQogCQkJCQllbHNlIGlmIChvcGNvZGUgPT0gRUVPUF9PVVRFUl9WQVIp CiAJCQkJCXsKLQkJCQkJCXZfdmFsdWVzID0gdl9vdXRlcnZhbHVlczsKLQkJCQkJCXZfbnVsbHMg PSB2X291dGVybnVsbHM7CisJCQkJCQlpZiAoaGFzX3Jwcl9uYXYpCisJCQkJCQl7CisJCQkJCQkJ LyoKKwkJCQkJCQkgKiBSUFIgbmF2aWdhdGlvbiBzd2FwcyBlY3h0X291dGVydHVwbGUKKwkJCQkJ CQkgKiBtaWQtZXhwcmVzc2lvbi4gIFJlbG9hZCBzbG90IHBvaW50ZXIgZnJvbQorCQkJCQkJCSAq IGVjb250ZXh0IG9uIGV2ZXJ5IGFjY2VzcyBzbyB3ZSByZWFkIGZyb20gdGhlCisJCQkJCQkJICog Y3VycmVudCAocG9zc2libHkgc3dhcHBlZCkgc2xvdC4KKwkJCQkJCQkgKi8KKwkJCQkJCQlMTFZN VmFsdWVSZWYgdl90bXBzbG90OworCisJCQkJCQkJdl90bXBzbG90ID0gbF9sb2FkX3N0cnVjdF9n ZXAoYiwKKwkJCQkJCQkJCQkJCQkJICBTdHJ1Y3RFeHByQ29udGV4dCwKKwkJCQkJCQkJCQkJCQkJ ICB2X2Vjb250ZXh0LAorCQkJCQkJCQkJCQkJCQkgIEZJRUxETk9fRVhQUkNPTlRFWFRfT1VURVJU VVBMRSwKKwkJCQkJCQkJCQkJCQkJICAidl9vdXRlcnNsb3RfcmVsb2FkIik7CisJCQkJCQkJdl92 YWx1ZXMgPSBsX2xvYWRfc3RydWN0X2dlcChiLAorCQkJCQkJCQkJCQkJCQkgU3RydWN0VHVwbGVU YWJsZVNsb3QsCisJCQkJCQkJCQkJCQkJCSB2X3RtcHNsb3QsCisJCQkJCQkJCQkJCQkJCSBGSUVM RE5PX1RVUExFVEFCTEVTTE9UX1ZBTFVFUywKKwkJCQkJCQkJCQkJCQkJICJ2X291dGVydmFsdWVz X3JlbG9hZCIpOworCQkJCQkJCXZfbnVsbHMgPSBsX2xvYWRfc3RydWN0X2dlcChiLAorCQkJCQkJ CQkJCQkJCQlTdHJ1Y3RUdXBsZVRhYmxlU2xvdCwKKwkJCQkJCQkJCQkJCQkJdl90bXBzbG90LAor CQkJCQkJCQkJCQkJCQlGSUVMRE5PX1RVUExFVEFCTEVTTE9UX0lTTlVMTCwKKwkJCQkJCQkJCQkJ CQkJInZfb3V0ZXJudWxsc19yZWxvYWQiKTsKKwkJCQkJCX0KKwkJCQkJCWVsc2UKKwkJCQkJCXsK KwkJCQkJCQl2X3ZhbHVlcyA9IHZfb3V0ZXJ2YWx1ZXM7CisJCQkJCQkJdl9udWxscyA9IHZfb3V0 ZXJudWxsczsKKwkJCQkJCX0KIAkJCQkJfQogCQkJCQllbHNlIGlmIChvcGNvZGUgPT0gRUVPUF9T Q0FOX1ZBUikKIAkJCQkJewpAQCAtMjQ2NywxMCArMjQ5NSwxNiBAQCBsbHZtX2NvbXBpbGVfZXhw cihFeHByU3RhdGUgKnN0YXRlKQogCQkJCWJyZWFrOwogCiAJCQljYXNlIEVFT1BfUlBSX05BVl9T RVQ6CisJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsUlBSTmF2U2V0IiwKKwkJ CQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxv Y2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgRUVPUF9SUFJfTkFWX1JFU1RP UkU6Ci0JCQkJLyogdW5yZWFjaGFibGU6IGZpbHRlcmVkIG91dCBieSB0aGUgcHJlLXNjYW4gYWJv dmUgKi8KLQkJCQlBc3NlcnQoZmFsc2UpOwotCQkJCXJldHVybiBmYWxzZTsKKwkJCQlidWlsZF9F dmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxSUFJOYXZSZXN0b3JlIiwKKwkJCQkJCQkJdl9zdGF0 ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAx XSk7CisJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRUVPUF9BR0dfU1RSSUNUX0RFU0VSSUFMSVpFOgog CQkJY2FzZSBFRU9QX0FHR19ERVNFUklBTElaRToKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApp bmRleCBkNTg2ZTE3ZTBhMS4uZGU2Y2U0ZmJhOGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5v dXQKQEAgLTIxNTMsNiArMjE1MywzNyBAQCBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xhc3Qs IG1hdGNoX2xlbiBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogICAgICAgICAgICAw IHwgICAgICA5OTk5OCB8ICAgICA5OTk5OQogKDEgcm93KQogCistLSBKSVQgUFJFVi9ORVhUIG5h dmlnYXRpb24gdGVzdDogMTAwSyByb3dzIHdpdGggUFJFViBpbiBERUZJTkUuCistLSBFeGVyY2lz ZXMgRUVPUF9SUFJfTkFWX1NFVC9SRVNUT1JFIEpJVCBjb2RlIHBhdGhzIChoYXNfcnByX25hdiBy ZWxvYWQpCistLSBhdCBzY2FsZS4gVi1zaGFwZTogcHJpY2UgcmlzZXMgdGhlbiBmYWxscywgcmVw ZWF0ZWQgYWNyb3NzIHBhcnRpdGlvbi4KK1NFVCBqaXRfYWJvdmVfY29zdCA9IDA7CitXSVRIIGRh dGEgQVMgKAorIFNFTEVDVCBpLCBhYnMoNTAwMDAgLSBpKSBBUyBwcmljZQorIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMDAwMCkgaQorKSwKK3Jlc3VsdCBBUyAoCisgU0VMRUNUIGksIHByaWNl LAorICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuLAorICAgICAgICBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3IEFTIG1hdGNoX2ZpcnN0CisgRlJPTSBkYXRhCisgV0lORE9XIHcg QVMgKAorICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgIElOSVRJQUwKKyAgUEFUVEVSTiAo RE9XTisgVVArKQorICBERUZJTkUKKyAgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKSwKKyAg IFVQIEFTIHByaWNlID4gUFJFVihwcmljZSkKKyApCispCitTRUxFQ1QgY291bnQoKikgQVMgbWF0 Y2hlZF9yb3dzLCBtYXgobWF0Y2hfbGVuKSBBUyBsb25nZXN0X21hdGNoCitGUk9NIHJlc3VsdCBX SEVSRSBtYXRjaF9sZW4gPiAwOworIG1hdGNoZWRfcm93cyB8IGxvbmdlc3RfbWF0Y2ggCistLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIDEgfCAgICAgICAgIDk5OTk5 CisoMSByb3cpCisKK1JFU0VUIGppdF9hYm92ZV9jb3N0OwogLS0KIC0tIElHTk9SRSBOVUxMUwog LS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IDUwNDQ3NmEyYjAyLi5iM2JiYzgyNTRjNCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHIuc3FsCkBAIC0xMDg0LDYgKzEwODQsMzMgQEAgcmVzdWx0IEFTICgKIC0tIFNob3Vs ZCBtYXRjaDogQSAoMzMzMzMgcm93cykgKyBCICgzMzMzMyByb3dzKSArIEMgKDMzMzMzIHJvd3Mp ID0gOTk5OTkgcm93cwogU0VMRUNUIG1hdGNoX2ZpcnN0LCBtYXRjaF9sYXN0LCBtYXRjaF9sZW4g RlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKIAorLS0gSklUIFBSRVYvTkVYVCBuYXZp Z2F0aW9uIHRlc3Q6IDEwMEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgorLS0gRXhlcmNpc2Vz IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFzX3Jwcl9uYXYgcmVs b2FkKQorLS0gYXQgc2NhbGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4gZmFsbHMsIHJlcGVh dGVkIGFjcm9zcyBwYXJ0aXRpb24uCitTRVQgaml0X2Fib3ZlX2Nvc3QgPSAwOworV0lUSCBkYXRh IEFTICgKKyBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0gaSkgQVMgcHJpY2UKKyBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDAwMDApIGkKKyksCityZXN1bHQgQVMgKAorIFNFTEVDVCBpLCBwcmljZSwK KyAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbiwKKyAgICAgICAgZmlyc3RfdmFs dWUocHJpY2UpIE9WRVIgdyBBUyBtYXRjaF9maXJzdAorIEZST00gZGF0YQorIFdJTkRPVyB3IEFT ICgKKyAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICBJTklUSUFMCisgIFBBVFRFUk4gKERP V04rIFVQKykKKyAgREVGSU5FCisgICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSksCisgICBV UCBBUyBwcmljZSA+IFBSRVYocHJpY2UpCisgKQorKQorU0VMRUNUIGNvdW50KCopIEFTIG1hdGNo ZWRfcm93cywgbWF4KG1hdGNoX2xlbikgQVMgbG9uZ2VzdF9tYXRjaAorRlJPTSByZXN1bHQgV0hF UkUgbWF0Y2hfbGVuID4gMDsKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworCiAtLQogLS0gSUdOT1JF IE5VTExTCiAtLQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0019-Add-tuplestore-trim-optimization-for-RPR-PREV.txt" Content-Disposition: attachment; filename="nocfbot-0019-Add-tuplestore-trim-optimization-for-RPR-PREV.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63bdl18 RnJvbSA3ZDlmMWYwOTRkYmQ2ODVhMDNkOTgyZjlkNjJhODZmYjM5MmM4NzdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMTE6NDk6MzIgKzA5MDAKU3ViamVjdDogW1BBVENIIDE5LzQwXSBB ZGQgdHVwbGVzdG9yZSB0cmltIG9wdGltaXphdGlvbiBmb3IgUlBSIFBSRVYKIG5hdmlnYXRpb24K CkFkdmFuY2UgdGhlIHR1cGxlc3RvcmUgbWFyayBwb2ludGVyIGJhc2VkIG9uIHRoZSBtYXhpbXVt IFBSRVYgb2Zmc2V0CmZvdW5kIGluIERFRklORSBjbGF1c2UgZXhwcmVzc2lvbnMsIGFsbG93aW5n IHR1cGxlc3RvcmVfdHJpbSgpIHRvCmZyZWUgcm93cyB0aGF0IFBSRVYgY2FuIG5vIGxvbmdlciBy ZWFjaC4KClRoZSBwbGFubmVyIHdhbGtzIERFRklORSBleHByZXNzaW9ucyB0byBmaW5kIHRoZSBt YXhpbXVtIFBSRVYgb2Zmc2V0LgpJZiBhbGwgb2Zmc2V0cyBhcmUgY29uc3RhbnRzLCBuYXZNYXhP ZmZzZXQgaXMgc2V0IGRpcmVjdGx5LiBJZiBhbnkKb2Zmc2V0IGlzIG5vbi1jb25zdGFudCAocGFy YW1ldGVyIG9yIGV4cHJlc3Npb24pLCB0aGUgcGxhbm5lciBzZXRzClJQUl9OQVZfT0ZGU0VUX05F RURTX0VWQUwgYW5kIHRoZSBleGVjdXRvciBldmFsdWF0ZXMgYWxsIFBSRVYgb2Zmc2V0cwphdCBp bml0IHRpbWUuIFRoZSBleGVjdXRvciB0aGVuIGFkdmFuY2VzIHRoZSBtYXJrIHRvCihjdXJyZW50 cG9zIC0gbmF2TWF4T2Zmc2V0KSBlYWNoIHJvdy4KCk5FWFQgb2Zmc2V0cyBhcmUgaWdub3JlZCBz aW5jZSB0aGV5IGxvb2sgZm9yd2FyZCBhbmQgZG8gbm90IGFmZmVjdAp0cmltLiBSUFJfTkFWX09G RlNFVF9SRVRBSU5fQUxMIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgbmF2aWdhdGlvbgpmdW5jdGlv bnMgKEZJUlNUL0xBU1QpIHRoYXQgcmVxdWlyZSB0aGUgZW50aXJlIHBhcnRpdGlvbi4KLS0tCiBz cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAgfCAxMzYgKysrKysrKysrKysr KysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgfCAx MDEgKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgIHwg ICA5ICsrCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmggICAgICAgICAgICAgfCAgIDkgKysK IDUgZmlsZXMgY2hhbmdlZCwgMjQ2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA0ZTY0M2RmOTRjZi4uOTc4N2VmNzc1 NmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTI0NCw2ICsyNDQsMTAg QEAgc3RhdGljIHZvaWQgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwg aW50NjQgcG9zKTsKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHJvdyBldmFsdWF0aW9u ICovCiBzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGlu dDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CiAKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0g bmF2aWdhdGlvbiBvZmZzZXQgZXZhbHVhdGlvbiAqLworc3RhdGljIGJvb2wgY29sbGVjdF9wcmV2 X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgTGlzdCAqKm9mZnNldHMpOworc3RhdGljIHZvaWQg ZXZhbF9uYXZfbWF4X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRlZmlu ZUNsYXVzZSk7CisKIC8qCiAgKiBOb3QgbnVsbCBpbmZvIGJpdCBhcnJheSBjb25zaXN0cyBvZiAy LWJpdCBpdGVtcwogICovCkBAIC05MzQsMTIgKzkzOCwxOCBAQCBldmFsX3dpbmRvd2FnZ3JlZ2F0 ZXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQlpZiAocnByX2lzX2RlZmluZWQod2luc3Rh dGUpKQogCQl7CiAJCQkvKgotCQkJICogSWYgUlBSIGlzIHVzZWQsIGl0IGlzIHBvc3NpYmxlIFBS RVYgd2FudHMgdG8gbG9vayBhdCB0aGUKLQkJCSAqIHByZXZpb3VzIHJvdy4gIFNvIHRoZSBtYXJr IHBvcyBzaG91bGQgYmUgZnJhbWVoZWFkcG9zIC0gMQotCQkJICogdW5sZXNzIGl0IGlzIGJlbG93 IDAuCisJCQkgKiBJZiBSUFIgaXMgdXNlZCwgUFJFViBtYXkgbmVlZCB0byBsb29rIGF0IHJvd3Mg YmVmb3JlIHRoZSBmcmFtZQorCQkJICogaGVhZC4gIEFkanVzdCBtYXJrIGJ5IG5hdk1heE9mZnNl dCBpZiBrbm93biwgb3RoZXJ3aXNlIHJldGFpbgorCQkJICogZnJvbSBwb3NpdGlvbiAwLgogCQkJ ICovCi0JCQltYXJrcG9zIC09IDE7Ci0JCQlpZiAobWFya3BvcyA8IDApCisJCQlpZiAod2luc3Rh dGUtPm5hdk1heE9mZnNldCA+PSAwKQorCQkJeworCQkJCWlmIChtYXJrcG9zID4gd2luc3RhdGUt Pm5hdk1heE9mZnNldCkKKwkJCQkJbWFya3BvcyAtPSB3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0Owor CQkJCWVsc2UKKwkJCQkJbWFya3BvcyA9IDA7CisJCQl9CisJCQllbHNlCiAJCQkJbWFya3BvcyA9 IDA7CiAJCX0KIAkJV2luU2V0TWFya1Bvc2l0aW9uKGFnZ193aW5vYmosIG1hcmtwb3MpOwpAQCAt MTI2OSwxMiArMTI3OSwxNSBAQCBwcmVwYXJlX3R1cGxlc3RvcmUoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlKQogCWlmICh3aW5zdGF0ZS0+bmF2X3dpbm9iaikKIAl7CiAJCS8qCi0JCSAqIEFsbG9j YXRlIGEgbWFyayBwb2ludGVyIHBpbm5lZCBhdCBwb3NpdGlvbiAwIHNvIHRoYXQgdGhlIHR1cGxl c3RvcmUKLQkJICogbmV2ZXIgdHJ1bmNhdGVzIHJvd3MgdGhhdCBhIFBSRVYoZXhwciwgTikgbWln aHQgbmVlZC4KKwkJICogQWxsb2NhdGUgbWFyayBhbmQgcmVhZCBwb2ludGVycyBmb3IgUFJFVi9O RVhUIG5hdmlnYXRpb24uCisJCSAqCisJCSAqIElmIG5hdk1heE9mZnNldCA+PSAwLCB3ZSBhZHZh bmNlIHRoZSBtYXJrIHRvIChjdXJyZW50cG9zIC0KKwkJICogbmF2TWF4T2Zmc2V0KSBhcyByb3dz IGFyZSBwcm9jZXNzZWQsIGFsbG93aW5nIHR1cGxlc3RvcmVfdHJpbSgpIHRvCisJCSAqIGZyZWUg cm93cyB0aGF0IGFyZSBubyBsb25nZXIgcmVhY2hhYmxlLgogCQkgKgotCQkgKiBYWFggVGhpcyBy ZXRhaW5zIHRoZSBlbnRpcmUgcGFydGl0aW9uIGluIHRoZSB0dXBsZXN0b3JlLiAgSWYgdGhlCi0J CSAqIERFRklORSBjbGF1c2Ugb25seSB1c2VzIFBSRVYvTkVYVCB3aXRoIHNtYWxsIGNvbnN0YW50 IG9mZnNldHMsIHdlCi0JCSAqIGNvdWxkIGFkdmFuY2UgdGhlIG1hcmsgdG8gKGN1cnJlbnRwb3Mg LSBtYXhfb2Zmc2V0KSBpbnN0ZWFkLgorCQkgKiBJZiBuYXZNYXhPZmZzZXQgPCAwIChSUFJfTkFW X09GRlNFVF9ORUVEU19FVkFMIG9yCisJCSAqIFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwpLCB0 aGUgbWFyayBzdGF5cyBhdCAwLCByZXRhaW5pbmcgdGhlCisJCSAqIGVudGlyZSBwYXJ0aXRpb24g aW4gdGhlIHR1cGxlc3RvcmUuCiAJCSAqLwogCQl3aW5zdGF0ZS0+bmF2X3dpbm9iai0+bWFya3B0 ciA9CiAJCQl0dXBsZXN0b3JlX2FsbG9jX3JlYWRfcG9pbnRlcih3aW5zdGF0ZS0+YnVmZmVyLCAw KTsKQEAgLTI1MTIsNiArMjUyNSwyNCBAQCBFeGVjV2luZG93QWdnKFBsYW5TdGF0ZSAqcHN0YXRl KQogCQlpZiAod2luc3RhdGUtPmdyb3VwdGFpbF9wdHIgPj0gMCkKIAkJCXVwZGF0ZV9ncm91cHRh aWxwb3Mod2luc3RhdGUpOwogCisJCS8qCisJCSAqIEFkdmFuY2UgUlBSIG5hdmlnYXRpb24gbWFy ayBwb2ludGVyIGlmIHBvc3NpYmxlLCBzbyB0aGF0CisJCSAqIHR1cGxlc3RvcmVfdHJpbSgpIGNh biBmcmVlIHJvd3Mgbm8gbG9uZ2VyIHJlYWNoYWJsZSBieSBQUkVWLgorCQkgKi8KKwkJaWYgKHdp bnN0YXRlLT5uYXZfd2lub2JqICYmCisJCQl3aW5zdGF0ZS0+cnBQYXR0ZXJuICE9IE5VTEwgJiYK KwkJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPj0gMCkKKwkJeworCQkJaW50NjQJCW5hdm1hcmtw b3M7CisKKwkJCWlmICh3aW5zdGF0ZS0+Y3VycmVudHBvcyA+IHdpbnN0YXRlLT5uYXZNYXhPZmZz ZXQpCisJCQkJbmF2bWFya3BvcyA9IHdpbnN0YXRlLT5jdXJyZW50cG9zIC0gd2luc3RhdGUtPm5h dk1heE9mZnNldDsKKwkJCWVsc2UKKwkJCQluYXZtYXJrcG9zID0gMDsKKwkJCWlmIChuYXZtYXJr cG9zID4gd2luc3RhdGUtPm5hdl93aW5vYmotPm1hcmtwb3MpCisJCQkJV2luU2V0TWFya1Bvc2l0 aW9uKHdpbnN0YXRlLT5uYXZfd2lub2JqLCBuYXZtYXJrcG9zKTsKKwkJfQorCiAJCS8qCiAJCSAq IFRydW5jYXRlIGFueSBuby1sb25nZXItbmVlZGVkIHJvd3MgZnJvbSB0aGUgdHVwbGVzdG9yZS4K IAkJICovCkBAIC0yOTU3LDYgKzI5ODgsMTAgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdn ICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAl3aW5zdGF0ZS0+cnBTa2lwVG8g PSBub2RlLT5ycFNraXBUbzsKIAkvKiBTZXQgdXAgcm93IHBhdHRlcm4gcmVjb2duaXRpb24gUEFU VEVSTiBjbGF1c2UgKGNvbXBpbGVkIE5GQSkgKi8KIAl3aW5zdGF0ZS0+cnBQYXR0ZXJuID0gbm9k ZS0+cnBQYXR0ZXJuOworCS8qIFNldCB1cCBtYXggUFJFViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUg dHJpbSAqLworCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBub2RlLT5uYXZNYXhPZmZzZXQ7CisJ aWYgKHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPT0gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCkK KwkJZXZhbF9uYXZfbWF4X29mZnNldCh3aW5zdGF0ZSwgbm9kZS0+ZGVmaW5lQ2xhdXNlKTsKIAog CS8qIENhbGN1bGF0ZSBORkEgc3RhdGUgc2l6ZSBhbmQgYWxsb2NhdGUgY3ljbGUgZGV0ZWN0aW9u IGJpdG1hcCAqLwogCWlmIChub2RlLT5ycFBhdHRlcm4gIT0gTlVMTCkKQEAgLTM4NjcsNiArMzkw Miw4NyBAQCBwdXRfbm90bnVsbF9pbmZvKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywg aW50IGFyZ25vLCBib29sIGlzbnVsbCkKIAltYnBbYnBvc10gPSBtYjsKIH0KIAorLyoKKyAqIGNv bGxlY3RfcHJldl9vZmZzZXRfd2Fsa2VyCisgKgkJV2FsayBleHByZXNzaW9uIHRyZWUgdG8gY29s bGVjdCBQUkVWIG9mZnNldF9hcmcgZXhwcmVzc2lvbnMuCisgKi8KK3N0YXRpYyBib29sCitjb2xs ZWN0X3ByZXZfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCBMaXN0ICoqb2Zmc2V0cykKK3sKKwlp ZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoSXNBKG5vZGUsIFJQUk5h dkV4cHIpKQorCXsKKwkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKwor CQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBuYXYtPm9mZnNldF9hcmcgIT0gTlVM TCkKKwkJCSpvZmZzZXRzID0gbGFwcGVuZCgqb2Zmc2V0cywgbmF2LT5vZmZzZXRfYXJnKTsKKwor CQkvKiBEb24ndCB3YWxrIGludG8gUlBSTmF2RXhwciBjaGlsZHJlbiAqLworCQlyZXR1cm4gZmFs c2U7CisJfQorCisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgY29sbGVjdF9w cmV2X29mZnNldF93YWxrZXIsIG9mZnNldHMpOworfQorCisvKgorICogZXZhbF9uYXZfbWF4X29m ZnNldAorICoJCUV2YWx1YXRlIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldHMgYXQgZXhlY3V0b3Ig aW5pdCB0aW1lLgorICoKKyAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZz ZXQgdG8gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTAorICogYmVjYXVzZSBzb21lIFBSRVYgb2Zm c2V0IGNvbnRhaW5zIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgorICog V2Fsa3MgdGhlIG9yaWdpbmFsIGRlZmluZUNsYXVzZSBleHByZXNzaW9uIHRyZWVzLCBjb21waWxl cyBhbmQgZXZhbHVhdGVzCisgKiBlYWNoIFBSRVYgb2Zmc2V0X2FyZywgYW5kIHN0b3JlcyB0aGUg bWF4aW11bSBpbiB3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0LgorICovCitzdGF0aWMgdm9pZAorZXZh bF9uYXZfbWF4X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRlZmluZUNs YXVzZSkKK3sKKwlFeHByQ29udGV4dCAqZWNvbnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNfRXhw ckNvbnRleHQ7CisJTGlzdAkgICAqb2Zmc2V0cyA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlp bnQ2NAkJbWF4T2Zmc2V0ID0gMDsKKworCS8qIENvbGxlY3QgYWxsIFBSRVYgb2Zmc2V0IGV4cHJl c3Npb25zIGZyb20gREVGSU5FIGNsYXVzZSAqLworCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkK Kwl7CisJCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJ CWNvbGxlY3RfcHJldl9vZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmb2Zmc2V0cyk7 CisJfQorCisJLyogRXZhbHVhdGUgZWFjaCBvZmZzZXQgYW5kIGZpbmQgbWF4aW11bSAqLworCWZv cmVhY2gobGMsIG9mZnNldHMpCisJeworCQlFeHByCSAgICpvZmZzZXRfZXhwciA9IChFeHByICop IGxmaXJzdChsYyk7CisJCUV4cHJTdGF0ZSAgKmVzdGF0ZTsKKwkJRGF0dW0JCXZhbDsKKwkJYm9v bAkJaXNudWxsOworCQlpbnQ2NAkJb2Zmc2V0OworCisJCWVzdGF0ZSA9IEV4ZWNJbml0RXhwcihv ZmZzZXRfZXhwciwgKFBsYW5TdGF0ZSAqKSB3aW5zdGF0ZSk7CisJCXZhbCA9IEV4ZWNFdmFsRXhw clN3aXRjaENvbnRleHQoZXN0YXRlLCBlY29udGV4dCwgJmlzbnVsbCk7CisKKwkJLyoKKwkJICog TlVMTCBvciBuZWdhdGl2ZSBvZmZzZXRzIHdpbGwgY2F1c2UgYSBydW50aW1lIGVycm9yIHdoZW4g UFJFViBpcworCQkgKiBhY3R1YWxseSBldmFsdWF0ZWQuICBGb3IgdHJpbSBwdXJwb3NlcywgdHJl YXQgdGhlbSBhcyAwLgorCQkgKi8KKwkJaWYgKGlzbnVsbCkKKwkJCWNvbnRpbnVlOworCisJCW9m ZnNldCA9IERhdHVtR2V0SW50NjQodmFsKTsKKwkJaWYgKG9mZnNldCA8IDApCisJCQljb250aW51 ZTsKKworCQlpZiAob2Zmc2V0ID4gbWF4T2Zmc2V0KQorCQkJbWF4T2Zmc2V0ID0gb2Zmc2V0Owor CX0KKworCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBtYXhPZmZzZXQ7CisKKwlsaXN0X2ZyZWUo b2Zmc2V0cyk7Cit9CisKIC8qCiAgKiBycHJfaXNfZGVmaW5lZAogICogcmV0dXJuIHRydWUgaWYg Um93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgZGVmaW5lZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL2NyZWF0ZXBsYW4uYwppbmRleCA5YWMyNGNjMjIyZC4uZWUyZDUzYjU5MjQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI0NjEsNiArMjQ2MSwxMDQgQEAg Y3JlYXRlX21pbm1heGFnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBNaW5NYXhBZ2dQYXRoICpi ZXN0X3BhdGgpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBuYXZfbWF4X29mZnNldF93YWxr ZXIKKyAqCQlXYWxrIGV4cHJlc3Npb24gdHJlZSB0byBmaW5kIHRoZSBtYXhpbXVtIFBSRVYgb2Zm c2V0LgorICoKKyAqIE9ubHkgUFJFViBpcyByZWxldmFudCBmb3IgdHVwbGVzdG9yZSB0cmltIHNp bmNlIGl0IGxvb2tzIGJhY2t3YXJkOworICogTkVYVCBsb29rcyBmb3J3YXJkIGFuZCBuZXZlciBy ZWZlcmVuY2VzIGFscmVhZHktdHJpbW1lZCByb3dzLgorICoKKyAqIFJldHVybnMgdHJ1ZSAodG8g c3RvcCB3YWxraW5nKSBpZiBhIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldCBpcyBmb3VuZCwKKyAq IGluIHdoaWNoIGNhc2UgKm1heE9mZnNldCBpcyBzZXQgdG8gLTEuICBPdGhlcndpc2UgYWNjdW11 bGF0ZXMgdGhlCisgKiBtYXhpbXVtIGNvbnN0YW50IG9mZnNldCB2YWx1ZS4KKyAqLworc3RhdGlj IGJvb2wKK25hdl9tYXhfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCBpbnQ2NCAqbWF4T2Zmc2V0 KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChJc0Eobm9k ZSwgUlBSTmF2RXhwcikpCisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBu b2RlOworCisJCS8qIE9ubHkgUFJFViBsb29rcyBiYWNrd2FyZDsgTkVYVCBpcyBpcnJlbGV2YW50 IGZvciB0cmltICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWKQorCQl7CisJCQlp bnQ2NAkJb2Zmc2V0OworCisJCQlpZiAobmF2LT5vZmZzZXRfYXJnID09IE5VTEwpCisJCQl7CisJ CQkJLyogMS1hcmcgZm9ybTogaW1wbGljaXQgb2Zmc2V0IG9mIDEgKi8KKwkJCQlvZmZzZXQgPSAx OworCQkJfQorCQkJZWxzZSBpZiAoSXNBKG5hdi0+b2Zmc2V0X2FyZywgQ29uc3QpKQorCQkJewor CQkJCUNvbnN0CSAgICpjID0gKENvbnN0ICopIG5hdi0+b2Zmc2V0X2FyZzsKKworCQkJCWlmIChj LT5jb25zdGlzbnVsbCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIE5VTEwgb2Zmc2V0IGNhdXNl cyBhIHJ1bnRpbWUgZXJyb3IsIHNvIHRoaXMgcGF0aCBpcworCQkJCQkgKiBuZXZlciBhY3R1YWxs eSByZWFjaGVkIGR1cmluZyBleGVjdXRpb24uICBVc2UgMCBhcyBhCisJCQkJCSAqIHNhZmUgcGxh Y2Vob2xkZXIgZm9yIHBsYW5uaW5nIHB1cnBvc2VzLgorCQkJCQkgKi8KKwkJCQkJb2Zmc2V0ID0g MDsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NChj LT5jb25zdHZhbHVlKTsKKwkJCQkJaWYgKG9mZnNldCA8IDApCisJCQkJCQlvZmZzZXQgPSAwOyAv KiBuZWdhdGl2ZSBvZmZzZXQgY2F1c2VzIHJ1bnRpbWUgZXJyb3IgKi8KKwkJCQl9CisJCQl9CisJ CQllbHNlCisJCQl7CisJCQkJLyoKKwkJCQkgKiBOb24tY29uc3RhbnQgb2Zmc2V0IChQYXJhbSwg c3RhYmxlIGZ1bmN0aW9uLCBldGMuKS4gVGhlCisJCQkJICogcGFyc2VyIGd1YXJhbnRlZXMgb2Zm c2V0IGlzIGEgcnVudGltZSBjb25zdGFudCwgc28gaXQgY2FuCisJCQkJICogYmUgZXZhbHVhdGVk IGF0IGV4ZWN1dG9yIGluaXQgdGltZS4KKwkJCQkgKi8KKwkJCQkqbWF4T2Zmc2V0ID0gUlBSX05B Vl9PRkZTRVRfTkVFRFNfRVZBTDsKKwkJCQlyZXR1cm4gdHJ1ZTsJLyogc3RvcCB3YWxraW5nICov CisJCQl9CisKKwkJCWlmIChvZmZzZXQgPiAqbWF4T2Zmc2V0KQorCQkJCSptYXhPZmZzZXQgPSBv ZmZzZXQ7CisJCX0KKworCQkvKiBEb24ndCB3YWxrIGludG8gUlBSTmF2RXhwciBjaGlsZHJlbiAt IG9mZnNldF9hcmcgYWxyZWFkeSBoYW5kbGVkICovCisJCXJldHVybiBmYWxzZTsKKwl9CisKKwly ZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBuYXZfbWF4X29mZnNldF93YWxrZXIs IG1heE9mZnNldCk7Cit9CisKKy8qCisgKiBjb21wdXRlX25hdl9tYXhfb2Zmc2V0CisgKgkJQ29t cHV0ZSB0aGUgbWF4aW11bSBQUkVWIG9mZnNldCBmcm9tIERFRklORSBjbGF1c2UgZXhwcmVzc2lv bnMuCisgKgorICogUmV0dXJucyB0aGUgbWF4aW11bSBjb25zdGFudCBvZmZzZXQgZm91bmQsIG9y IC0xIGlmIGFueSBQUkVWIG9mZnNldAorICogY2Fubm90IGJlIGRldGVybWluZWQgc3RhdGljYWxs eS4gIE5FWFQgb2Zmc2V0cyBhcmUgaWdub3JlZCBzaW5jZSB0aGV5CisgKiBsb29rIGZvcndhcmQg YW5kIGRvbid0IGFmZmVjdCB0dXBsZXN0b3JlIHRyaW0uCisgKi8KK3N0YXRpYyBpbnQ2NAorY29t cHV0ZV9uYXZfbWF4X29mZnNldChMaXN0ICpkZWZpbmVDbGF1c2UpCit7CisJaW50NjQJCW1heE9m ZnNldCA9IDA7CisJTGlzdENlbGwgICAqbGM7CisKKwlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2Up CisJeworCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKKwor CQlpZiAobmF2X21heF9vZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmbWF4T2Zmc2V0 KSkKKwkJCXJldHVybiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOworCX0KKworCXJldHVybiBt YXhPZmZzZXQ7Cit9CisKIC8qCiAgKiBjcmVhdGVfd2luZG93YWdnX3BsYW4KICAqCkBAIC02Njc4 LDYgKzY3NzYsOSBAQCBtYWtlX3dpbmRvd2FnZyhMaXN0ICp0bGlzdCwgV2luZG93Q2xhdXNlICp3 YywKIAogCW5vZGUtPmRlZmluZUNsYXVzZSA9IGRlZmluZUNsYXVzZTsKIAorCS8qIENvbXB1dGUg bWF4IFBSRVYgb2Zmc2V0IGZvciB0dXBsZXN0b3JlIHRyaW0gb3B0aW1pemF0aW9uICovCisJbm9k ZS0+bmF2TWF4T2Zmc2V0ID0gY29tcHV0ZV9uYXZfbWF4X29mZnNldChkZWZpbmVDbGF1c2UpOwor CiAJcGxhbi0+dGFyZ2V0bGlzdCA9IHRsaXN0OwogCXBsYW4tPmxlZnR0cmVlID0gbGVmdHRyZWU7 CiAJcGxhbi0+cmlnaHR0cmVlID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNzRhNmI2 ODIxMzIuLmZmNmQ3ZDcwYTYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMjY5Miw2ICsyNjky LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAlUdXBsZVRhYmxlU2xvdCAqdGVt cF9zbG90XzI7CiAKIAkvKiBSUFIgbmF2aWdhdGlvbiAqLworCWludDY0CQluYXZNYXhPZmZzZXQ7 CS8qIG1heCBQUkVWIG9mZnNldDsgc2VlIFJQUl9OQVZfT0ZGU0VUXyogKi8KIAlzdHJ1Y3QgV2lu ZG93T2JqZWN0RGF0YSAqbmF2X3dpbm9iajsJLyogd2lub2JqIGZvciBSUFIgbmF2IGZldGNoICov CiAJaW50NjQJCW5hdl9zbG90X3BvczsJLyogcG9zaXRpb24gY2FjaGVkIGluIG5hdl9zbG90LCBv ciAtMSAqLwogCVR1cGxlVGFibGVTbG90ICpuYXZfc2xvdDsJLyogc2xvdCBmb3IgUFJFVi9ORVhU IHRhcmdldCByb3cgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggY2VhYWI0ZDk3YjAuLjI3YTJl N2I0OGM3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTM4Niw2ICsxMzg2LDE1IEBAIHR5cGVk ZWYgc3RydWN0IFdpbmRvd0FnZwogCS8qIFJvdyBQYXR0ZXJuIERFRklORSBjbGF1c2UgKGxpc3Qg b2YgVGFyZ2V0RW50cnkpICovCiAJTGlzdAkgICAqZGVmaW5lQ2xhdXNlOwogCisJLyoKKwkgKiBN YXhpbXVtIFBSRVYgb2Zmc2V0IGZvciB0dXBsZXN0b3JlIG1hcmsgb3B0aW1pemF0aW9uLiA+PSAw OiBzdGF0aWNhbGx5CisJICogZGV0ZXJtaW5lZCBtYXggb2Zmc2V0IChtYXJrID0gY3VycmVudHBv cyAtIG9mZnNldCkuCisJICogUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTDogaGFzIG5vbi1jb25z dGFudCBvZmZzZXQ7IGV2YWx1YXRlIGF0CisJICogZXhlY3V0b3IgaW5pdC4gIFJQUl9OQVZfT0ZG U0VUX1JFVEFJTl9BTEw6IG11c3QgcmV0YWluIGVudGlyZSBwYXJ0aXRpb24KKwkgKiAobm8gdHJp bSBwb3NzaWJsZSkuCisJICovCisJaW50NjQJCW5hdk1heE9mZnNldDsKKwogCS8qCiAJICogZmFs c2UgZm9yIGFsbCBhcGFydCBmcm9tIHRoZSBXaW5kb3dBZ2cgdGhhdCdzIGNsb3Nlc3QgdG8gdGhl IHJvb3Qgb2YKIAkgKiB0aGUgcGxhbgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVy L3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCmluZGV4IDM2MGUxYmI3NzdmLi4w MGEyOGFiZTJiNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCisrKyBi L3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApAQCAtNTUsNiArNTUsMTUgQEAKICNkZWZpbmUg UlBSRWxlbUlzRmluKGUpCQkJKChlKS0+dmFySWQgPT0gUlBSX1ZBUklEX0ZJTikKICNkZWZpbmUg UlBSRWxlbUNhblNraXAoZSkJCSgoZSktPm1pbiA9PSAwKQogCisvKgorICogbmF2TWF4T2Zmc2V0 IHNlbnRpbmVsIHZhbHVlcy4KKyAqIE5vbi1uZWdhdGl2ZSB2YWx1ZXMgcmVwcmVzZW50IGEgc3Rh dGljYWxseSBkZXRlcm1pbmVkIG1heGltdW0gUFJFViBvZmZzZXQuCisgKi8KKyNkZWZpbmUgUlBS X05BVl9PRkZTRVRfTkVFRFNfRVZBTAkoLTEpCS8qIGhhcyBub24tY29uc3RhbnQgUFJFViBvZmZz ZXQ7CisJCQkJCQkJCQkJCSAqIGV2YWx1YXRlIGF0IGV4ZWN1dG9yIGluaXQgKi8KKyNkZWZpbmUg UlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTAkoLTIpCS8qIG11c3QgcmV0YWluIGVudGlyZSBwYXJ0 aXRpb24KKwkJCQkJCQkJCQkJICogKGUuZy4sIGZ1dHVyZSBGSVJTVC9MQVNUKSAqLworCiBleHRl cm4gTGlzdCAqY29sbGVjdFBhdHRlcm5WYXJpYWJsZXMoUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4p OwogZXh0ZXJuIHZvaWQgYnVpbGREZWZpbmVWYXJpYWJsZUxpc3QoTGlzdCAqZGVmaW5lQ2xhdXNl LAogCQkJCQkJCQkJTGlzdCAqKmRlZmluZVZhcmlhYmxlTGlzdCk7Ci0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0020-Update-RPR-code-comments-for-1-slot-navigation.txt" Content-Disposition: attachment; filename="nocfbot-0020-Update-RPR-code-comments-for-1-slot-navigation.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63e1y19 RnJvbSBmZWE0NTYxODAxMTFiZmRiMTBkNGRjNTgwZmM0MDYyZmUwYWU2YjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTY6MDY6MDYgKzA5MDAKU3ViamVjdDogW1BBVENIIDIwLzQwXSBV cGRhdGUgUlBSIGNvZGUgY29tbWVudHMgdG8gcmVmbGVjdCAxLXNsb3QgbmF2aWdhdGlvbgogbW9k ZWwKCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgNDUgKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIHwg IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCA0YzQyOTUyOGIwNC4uNTQyOGQwZThmYzQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTE5MSwxMCArMTkxLDE1IEBACiAgKiB0cmFuc2Zvcm1E ZWZpbmVDbGF1c2UoKSBwcm9jZXNzZXMgZWFjaCBERUZJTkUgdmFyaWFibGUgYXMgZm9sbG93czoK ICAqCiAgKiAgICgxKSBDaGVja3MgZm9yIGR1cGxpY2F0ZSB2YXJpYWJsZSBuYW1lcwotICogICAo MikgVHJhbnNmb3JtcyB0aGUgZXhwcmVzc2lvbiBpbnRvIGEgc3RhbmRhcmQgU1FMIGV4cHJlc3Np b24KLSAqICAgKDMpIENvZXJjZXMgdG8gQm9vbGVhbiB0eXBlIChjb2VyY2VfdG9fYm9vbGVhbikK KyAqICAgKDIpIFRyYW5zZm9ybXMgdGhlIGV4cHJlc3Npb24gdmlhIHRyYW5zZm9ybUV4cHIoKQor ICogICAoMykgRXh0cmFjdHMgVmFyIG5vZGVzIHZpYSBwdWxsX3Zhcl9jbGF1c2UoKSBhbmQgZW5z dXJlcyBlYWNoIGlzCisgKiAgICAgICBwcmVzZW50IGluIHRoZSBxdWVyeSB0YXJnZXRsaXN0LCBz byB0aGUgcGxhbm5lciBwcm9wYWdhdGVzIHRoZQorICogICAgICAgcmVmZXJlbmNlZCBjb2x1bW5z IHRocm91Z2ggdGhlIHBsYW4gdHJlZQogICogICAoNCkgV3JhcHMgaW4gYSBUYXJnZXRFbnRyeSB3 aXRoIHRoZSB2YXJpYWJsZSBuYW1lIHNldCBpbiByZXNuYW1lCiAgKgorICogQWZ0ZXIgYWxsIHZh cmlhYmxlcyBhcmUgcHJvY2Vzc2VkOgorICogICAoNSkgQ29lcmNlcyBlYWNoIGV4cHJlc3Npb24g dG8gQm9vbGVhbiB0eXBlIChjb2VyY2VfdG9fYm9vbGVhbikKKyAqCiAgKiBWYXJpYWJsZXMgdGhh dCBhcmUgdXNlZCBpbiBQQVRURVJOIGJ1dCBub3QgZGVmaW5lZCBpbiBERUZJTkUgYXJlIGltcGxp Y2l0bHkKICAqIGV2YWx1YXRlZCBhcyBUUlVFIChtYXRjaGluZyBhbGwgcm93cykuCiAgKgpAQCAt NDMxLDggKzQzNiw5IEBACiAgKgogICogICBDYXNlIDE6IFNpbXBsZSBWQVIrIChlLmcuLCBBKykK ICAqICAgICAgICAgICAtPiBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0ggc2V0IG9uIHRo ZSBWQVIKLSAqICAgQ2FzZSAyOiBHUk9VUCsgd2hvc2UgYm9keSBjb25zaXN0cyBvbmx5IG9mIHsx LDF9IFZBUnMgKGUuZy4sIChBIEIpKykKLSAqICAgICAgICAgICAtPiBBQlNPUkJBQkxFX0JSQU5D SCBvbiBjaGlsZHJlbiwKKyAqICAgQ2FzZSAyOiBHUk9VUCsgd2l0aCBmaXhlZC1sZW5ndGggY2hp bGRyZW4gKG1pbiA9PSBtYXgsIHJlY3Vyc2l2ZWx5KQorICogICAgICAgICAgIGUuZy4sIChBIEIp KywgKEEgQnsyfSkrLCAoKEEgKEIgQyl7Mn0pezJ9KSsKKyAqICAgICAgICAgICAtPiBBQlNPUkJB QkxFX0JSQU5DSCBvbiBhbGwgZWxlbWVudHMgd2l0aGluIHRoZSBncm91cCwKICAqICAgICAgICAg ICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBvbiBFTkQKICAqICAgQ2FzZSAzOiBH Uk9VUCsgd2hvc2UgYm9keSBzdGFydHMgd2l0aCBWQVIrIChlLmcuLCAoQSsgQikrKQogICogICAg ICAgICAgIC0+IFJlY3Vyc2VzIGZyb20gQkVHSU4gaW50byB0aGUgYm9keSwgYXBwbHlpbmcgQ2Fz ZSAxLgpAQCAtNjA0LDExICs2MTAsMTcgQEAKICAqICAgICAgIHZhck1hdGNoZWRbaV0gPSAobm90 IG51bGwgYW5kIHRydWUpCiAgKgogICogVG8gc3VwcG9ydCByb3cgbmF2aWdhdGlvbiBvcGVyYXRv cnMgc3VjaCBhcyBQUkVWKCkgYW5kIE5FWFQoKSwKLSAqIHRoZSBwcmV2aW91cyByb3csIGN1cnJl bnQgcm93LCBhbmQgbmV4dCByb3cgYXJlIHNldCBpbiBzZXBhcmF0ZSBzbG90czoKKyAqIGEgMS1z bG90IG1vZGVsIGlzIHVzZWQ6IG9ubHkgZWN4dF9vdXRlcnR1cGxlIGlzIHNldCB0byB0aGUgY3Vy cmVudAorICogcm93LiAgUFJFVi9ORVhUIG5hdmlnYXRpb24gaXMgaGFuZGxlZCBieSBFRU9QX1JQ Ul9OQVZfU0VUL1JFU1RPUkUKKyAqIG9wY29kZXMgZW1pdHRlZCBkdXJpbmcgREVGSU5FIGV4cHJl c3Npb24gY29tcGlsYXRpb246CisgKgorICogICBOQVZfU0VUOiAgICAgc2F2ZSBlY3h0X291dGVy dHVwbGUsIHN3YXAgaW4gdGFyZ2V0IHJvdyB2aWEgbmF2X3Nsb3QKKyAqICAgKGV2YWx1YXRlKTog IGFyZ3VtZW50IGV4cHJlc3Npb24gcmVhZHMgZnJvbSBzd2FwcGVkIHNsb3QKKyAqICAgTkFWX1JF U1RPUkU6IHJlc3RvcmUgb3JpZ2luYWwgZWN4dF9vdXRlcnR1cGxlCiAgKgotICogICBlY3h0X3Nj YW50dXBsZSAgPSBwcmV2aW91cyByb3cgKGZvciBQUkVWIHJlZmVyZW5jZSkKLSAqICAgZWN4dF9v dXRlcnR1cGxlID0gY3VycmVudCByb3cgIChkZWZhdWx0IHJlZmVyZW5jZSkKLSAqICAgZWN4dF9p bm5lcnR1cGxlID0gbmV4dCByb3cgICAgIChmb3IgTkVYVCByZWZlcmVuY2UpCisgKiBuYXZfc2xv dCBjYWNoZXMgdGhlIGxhc3QgZmV0Y2hlZCBwb3NpdGlvbiAobmF2X3Nsb3RfcG9zKSB0byBhdm9p ZAorICogcmVkdW5kYW50IHR1cGxlc3RvcmUgbG9va3VwcyB3aGVuIG11bHRpcGxlIFBSRVYvTkVY VCBjYWxscyB0YXJnZXQKKyAqIHRoZSBzYW1lIHJvdy4KICAqCiAgKiBUaGUgdmFyTWF0Y2hlZCBh cnJheSBpcyByZWZlcmVuY2VkIGxhdGVyIGluIFBoYXNlIDEgKE1hdGNoKS4KICAqCkBAIC05MDgs OCArOTIwLDExIEBACiAgKgogICogICAoMikgQXQgcnVudGltZTogaW5pdGlhbGl6ZSB0aGUgbmZh VmlzaXRlZEVsZW1zIGJpdG1hcCBpbW1lZGlhdGVseSBiZWZvcmUKICAqICAgICAgIERGUyBleHBh bnNpb24gb2YgZWFjaCBzdGF0ZSB3aXRoaW4gYWR2YW5jZSAob25jZSBwZXIgc3RhdGUpLgotICog ICAgICAgRHVyaW5nIERGUywgc2V0IHRoZSBjb3JyZXNwb25kaW5nIGVsZW1JZHggYml0IHdoZW4g dmlzaXRpbmcgZWFjaAotICogICAgICAgZWxlbWVudC4KKyAqICAgICAgIER1cmluZyBERlMsIGVw c2lsb24gZWxlbWVudHMgKEVORCwgQUxULCBCRUdJTikgYXJlIG1hcmtlZCBpbiB0aGUKKyAqICAg ICAgIGJpdG1hcCBhdCBuZmFfYWR2YW5jZV9zdGF0ZSBlbnRyeS4gIFZBUiBlbGVtZW50cyBhcmUg bWFya2VkIGxhdGVyCisgKiAgICAgICB3aGVuIGFkZGVkIHRvIHRoZSBzdGF0ZSBsaXN0IChuZmFf YWRkX3N0YXRlX3VuaXF1ZSksIHNvIHRoYXQKKyAqICAgICAgIGxlZ2l0aW1hdGUgbG9vcC1iYWNr IHRvIHRoZSBzYW1lIFZBUiBpbiBhIG5ldyBncm91cCBpdGVyYXRpb24KKyAqICAgICAgIChlLmcu LCBFTkQgLT4gQUxUIC0+IHNhbWUgVkFSKSBpcyBub3QgYmxvY2tlZC4KICAqICAgICAgIElmIGEg cHJldmlvdXNseSB2aXNpdGVkIGVsZW1JZHggaXMgcmV2aXNpdGVkLCB0aGF0IHBhdGggaXMgdGVy bWluYXRlZC4KICAqCiAgKiAgIE5vdGU6IHRoZSBiaXRtYXAgdHJhY2tzIG9ubHkgZWxlbUlkeCBh bmQgZG9lcyBub3QgY29uc2lkZXIgY291bnRzLgpAQCAtMTIxNiwxMSArMTIzMSwxMSBAQAogICog ICAoMykgU3RhdGUgRGVkdXBsaWNhdGlvbiAoSVgtNSkKICAqCiAgKiAgICAgRHVyaW5nIGFkdmFu Y2UsIERGUyBtYXkgZ2VuZXJhdGUgc3RhdGVzIHdpdGggdGhlIHNhbWUgKGVsZW1JZHgsCi0gKiAg ICAgY291bnRzKSBjb21iaW5hdGlvbiB0aHJvdWdoIG11bHRpcGxlIHBhdGhzLiBBZGRpdGlvbmFs bHksIHVubGlrZQotICogICAgIFZBUiByZXBldGl0aW9uLCBncm91cCByZXBldGl0aW9uIGNhbm5v dCBwZXJmb3JtIGFic29ycHRpb24KLSAqICAgICBjb21wYXJpc29uIHVzaW5nIFZBUiBzdGF0ZXMs IHNvIGlubGluZSBhZHZhbmNlIGlzIHBlcmZvcm1lZCBmcm9tCi0gKiAgICAgYWZ0ZXIgUGhhc2Ug MSBtYXRjaCB0aHJvdWdoIHRvIEVORDsgdGhpcyBwcm9jZXNzIGNhbiBhbHNvIHByb2R1Y2UKLSAq ICAgICBkdXBsaWNhdGUgc3RhdGVzIHJlYWNoaW5nIHRoZSBzYW1lIEVORC4KKyAqICAgICBjb3Vu dHMpIGNvbWJpbmF0aW9uIHRocm91Z2ggbXVsdGlwbGUgcGF0aHMuIEFkZGl0aW9uYWxseSwgZm9y CisgKiAgICAgZ3JvdXAgYWJzb3JwdGlvbiwgbmZhX21hdGNoIHBlcmZvcm1zIGlubGluZSBhZHZh bmNlIGZyb20gYm91bmRlZAorICogICAgIFZBUnMgKGNvdW50ID49IG1heCkgd2l0aGluIHRoZSBh YnNvcmJhYmxlIHJlZ2lvbiAoQUJTT1JCQUJMRV9CUkFOQ0gpCisgKiAgICAgdGhyb3VnaCBFTkQg Y2hhaW5zIHRvIHJlYWNoIHRoZSBqdWRnbWVudCBwb2ludCAoQUJTT1JCQUJMRSBFTkQpLgorICog ICAgIFRoaXMgcHJvY2VzcyBjYW4gYWxzbyBwcm9kdWNlIGR1cGxpY2F0ZSBzdGF0ZXMgcmVhY2hp bmcgdGhlIHNhbWUgRU5ELgogICogICAgIG5mYV9hZGRfc3RhdGVfdW5pcXVlKCkgYmxvY2tzIGR1 cGxpY2F0ZSBhZGRpdGlvbiBvZiBpZGVudGljYWwgc3RhdGVzCiAgKiAgICAgaW4gYm90aCBjYXNl cy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggM2ZiNWQ5NGFiZTkuLmQxZTAyZTUyZTUz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC0yNjUsNyArMjY1LDggQEAgdmFsaWRhdGVSUFJQ YXR0ZXJuVmFyQ291bnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSwK ICAqCiAgKiBUaGVuIGZvciBlYWNoIERFRklORSB2YXJpYWJsZToKICAqICAgMi4gQ2hlY2tzIGZv ciBkdXBsaWNhdGUgdmFyaWFibGUgbmFtZXMgaW4gREVGSU5FIGNsYXVzZQotICogICAzLiBUcmFu c2Zvcm1zIGV4cHJlc3Npb25zIGFuZCBhZGRzIHRvIHRhcmdldGxpc3QgdmlhIGZpbmRUYXJnZXRs aXN0RW50cnlTUUw5OQorICogICAzLiBUcmFuc2Zvcm1zIGV4cHJlc3Npb24gdmlhIHRyYW5zZm9y bUV4cHIoKSBhbmQgZW5zdXJlcyByZWZlcmVuY2VkCisgKiAgICAgIFZhciBub2RlcyBhcmUgcHJl c2VudCBpbiB0aGUgcXVlcnkgdGFyZ2V0bGlzdCAodmlhIHB1bGxfdmFyX2NsYXVzZSkKICAqICAg NC4gQ3JlYXRlcyBkZWZpbmVDbGF1c2UgZW50cnkgd2l0aCBwcm9wZXIgcmVzbmFtZSAocGF0dGVy biB2YXJpYWJsZSBuYW1lKQogICogICA1LiBDb2VyY2VzIGV4cHJlc3Npb25zIHRvIGJvb2xlYW4g dHlwZQogICogICA2LiBNYXJrcyBjb2x1bW4gb3JpZ2lucyBhbmQgYXNzaWducyBjb2xsYXRpb24g aW5mb3JtYXRpb24KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0021-Enable-JIT-PREV-NEXT-tests.txt" Content-Disposition: attachment; filename="nocfbot-0021-Enable-JIT-PREV-NEXT-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63gbt20 RnJvbSA3OWYzMmVlNjk5MWUzY2JmNWJlYTBlNTEwOTllOTYxM2MxM2Y1ZWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMDk6NDg6NTQgKzA5MDAKU3ViamVjdDogW1BBVENIIDIxLzQwXSBF bmFibGUgSklUIGNvbXBpbGF0aW9uIGZvciBQUkVWL05FWFQgbmF2aWdhdGlvbiB0ZXN0cwogaW4g UlBSCgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCB8IDIgKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgICAgICB8IDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IGRlNmNlNGZiYThh Li41YTQ2MGU5YmQ1MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMjE1Niw2ICsy MTU2LDcgQEAgU0VMRUNUIG1hdGNoX2ZpcnN0LCBtYXRjaF9sYXN0LCBtYXRjaF9sZW4gRlJPTSBy ZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKIC0tIEpJVCBQUkVWL05FWFQgbmF2aWdhdGlvbiB0 ZXN0OiAxMDBLIHJvd3Mgd2l0aCBQUkVWIGluIERFRklORS4KIC0tIEV4ZXJjaXNlcyBFRU9QX1JQ Ul9OQVZfU0VUL1JFU1RPUkUgSklUIGNvZGUgcGF0aHMgKGhhc19ycHJfbmF2IHJlbG9hZCkKIC0t IGF0IHNjYWxlLiBWLXNoYXBlOiBwcmljZSByaXNlcyB0aGVuIGZhbGxzLCByZXBlYXRlZCBhY3Jv c3MgcGFydGl0aW9uLgorU0VUIGppdCA9IG9uOwogU0VUIGppdF9hYm92ZV9jb3N0ID0gMDsKIFdJ VEggZGF0YSBBUyAoCiAgU0VMRUNUIGksIGFicyg1MDAwMCAtIGkpIEFTIHByaWNlCkBAIC0yMTg0 LDYgKzIxODUsNyBAQCBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogKDEgcm93KQog CiBSRVNFVCBqaXRfYWJvdmVfY29zdDsKK1JFU0VUIGppdDsKIC0tCiAtLSBJR05PUkUgTlVMTFMK IC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByLnNxbAppbmRleCBiM2JiYzgyNTRjNC4uZTQxNzc4OWViMmIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByLnNxbApAQCAtMTA4Nyw2ICsxMDg3LDcgQEAgU0VMRUNUIG1hdGNoX2ZpcnN0LCBt YXRjaF9sYXN0LCBtYXRjaF9sZW4gRlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKIC0t IEpJVCBQUkVWL05FWFQgbmF2aWdhdGlvbiB0ZXN0OiAxMDBLIHJvd3Mgd2l0aCBQUkVWIGluIERF RklORS4KIC0tIEV4ZXJjaXNlcyBFRU9QX1JQUl9OQVZfU0VUL1JFU1RPUkUgSklUIGNvZGUgcGF0 aHMgKGhhc19ycHJfbmF2IHJlbG9hZCkKIC0tIGF0IHNjYWxlLiBWLXNoYXBlOiBwcmljZSByaXNl cyB0aGVuIGZhbGxzLCByZXBlYXRlZCBhY3Jvc3MgcGFydGl0aW9uLgorU0VUIGppdCA9IG9uOwog U0VUIGppdF9hYm92ZV9jb3N0ID0gMDsKIFdJVEggZGF0YSBBUyAoCiAgU0VMRUNUIGksIGFicyg1 MDAwMCAtIGkpIEFTIHByaWNlCkBAIC0xMTEwLDYgKzExMTEsNyBAQCByZXN1bHQgQVMgKAogU0VM RUNUIGNvdW50KCopIEFTIG1hdGNoZWRfcm93cywgbWF4KG1hdGNoX2xlbikgQVMgbG9uZ2VzdF9t YXRjaAogRlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKIFJFU0VUIGppdF9hYm92ZV9j b3N0OworUkVTRVQgaml0OwogCiAtLQogLS0gSUdOT1JFIE5VTExTCi0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0022-Add-2-arg-PREV-NEXT-host-variable-test.txt" Content-Disposition: attachment; filename="nocfbot-0022-Add-2-arg-PREV-NEXT-host-variable-test.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63j3521 RnJvbSAwODFmNzA4NDc3NjZiMmFhMzEyYjY2N2U1YjdjOGUyYTQxMDg4Mzc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMDk6NTM6MTQgKzA5MDAKU3ViamVjdDogW1BBVENIIDIyLzQwXSBB ZGQgMi1hcmcgUFJFVi9ORVhUIHRlc3QgZm9yIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24KIHdpdGgg aG9zdCB2YXJpYWJsZQoKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgfCA2 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHIuc3FsICAgICAgfCAxNiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDVhNDYwZTliZDUyLi5jMDJkYmQ0 YzA4ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTQ5Miw2ICsxNDkyLDY5IEBA IEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CiBFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQg bXVzdCBub3QgYmUgbmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKIEVS Uk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3Rf cHJldl9vZmZzZXQ7CistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBwb3Np dGl2ZSB2YWx1ZQorLS0gRXhlcmNpc2VzIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgLT4gZXZh bF9uYXZfbWF4X29mZnNldCgpIHBhdGgKK1BSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBB UworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgcHJp Y2UgPiBQUkVWKHByaWNlLCAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMSk7Cisg Y29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21w YW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgIDIKKyBjb21wYW55 MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTA1 LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIw MjMgfCAgICA5MCB8ICAgICAgICAgIDkwIHwgICAgIDMKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMg fCAgIDExMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAg IDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEy MCB8ICAgICAgICAgMTIwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAg ICAgICAgIDUwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAxNDAw IHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgIDYwIHwgICAg IDMKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAxMjAwIHwgICAgIDIKKyBjb21w YW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dz KQorCitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMik7CisgY29tcGFueSAgfCAgIHRkYXRlICAg IHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAg IDEwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIw MCB8ICAgICAgICAgMjAwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEw IHwgICAgIDMKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgIDIKKyBjb21w YW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3 LTIwMjMgfCAgMTEwMCB8ICAgICAgICAxMTAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIw MjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMg fCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCiBERUFMTE9DQVRFIHRlc3Rf cHJldl9vZmZzZXQ7CiAtLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBp biBzYW1lIERFRklORSBjbGF1c2UKIC0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5k IDItYmFjayB2YWx1ZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IGU0MTc3ODllYjJiLi40N2YzMzkw NDY5MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC03MzIsNiArNzMyLDIyIEBAIEVYRUNVVEUgdGVz dF9wcmV2X29mZnNldCgtMSk7CiBFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoTlVMTCk7CiBERUFM TE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CiAKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJp YWJsZSB3aXRoIHBvc2l0aXZlIHZhbHVlCistLSBFeGVyY2lzZXMgUlBSX05BVl9PRkZTRVRfTkVF RFNfRVZBTCAtPiBldmFsX25hdl9tYXhfb2Zmc2V0KCkgcGF0aAorUFJFUEFSRSB0ZXN0X3ByZXZf b2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1 ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMg VFJVRSwgQiBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2 X29mZnNldCgxKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgyKTsKK0RFQUxMT0NBVEUgdGVz dF9wcmV2X29mZnNldDsKKwogLS0gMi1hcmc6IHR3byBQUkVWIHdpdGggZGlmZmVyZW50IG9mZnNl dHMgaW4gc2FtZSBERUZJTkUgY2xhdXNlCiAtLSBCOiBwcmljZSBleGNlZWRzIGJvdGggMS1iYWNr IGFuZCAyLWJhY2sgdmFsdWVzCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAotLSAKMi41 MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0023-Nav-Mark-Lookback-EXPLAIN.txt" Content-Disposition: attachment; filename="nocfbot-0023-Nav-Mark-Lookback-EXPLAIN.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63lc422 RnJvbSBhNGYyNjA2NTE0MjJlN2JjMzY0Nzg5ZDQ5Mzc4NGQ1ZTdmOWU3YzUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMTA6NDY6MzggKzA5MDAKU3ViamVjdDogW1BBVENIIDIzLzQwXSBB ZGQgTmF2IE1hcmsgTG9va2JhY2sgdG8gRVhQTEFJTiBhbmQgZml4CiBjb21wdXRlX25hdl9tYXhf b2Zmc2V0KCkKClNob3cgdGhlIHBsYW5uZXItY29tcHV0ZWQgbmF2TWF4T2Zmc2V0IGluIEVYUExB SU4gb3V0cHV0IGFzCiJOYXYgTWFyayBMb29rYmFjayIgZm9yIFJQUiB3aW5kb3dzLCBzbyB0aGF0 IHR1cGxlc3RvcmUgdHJpbQpiZWhhdmlvciBpcyB2aXNpYmxlIGluIHF1ZXJ5IHBsYW5zLiAgRGlz cGxheWVkIGFzIGFuIGludGVnZXIgZm9yCmNvbnN0YW50IG9mZnNldHMsICJydW50aW1lIiBmb3Ig bm9uLWNvbnN0YW50IChQYXJhbSkgb2Zmc2V0cywgYW5kCiJyZXRhaW4gYWxsIiB3aGVuIHRoZSBl bnRpcmUgcGFydGl0aW9uIG11c3QgYmUgcHJlc2VydmVkLgoKRml4IGNvbXB1dGVfbmF2X21heF9v ZmZzZXQoKSB0byByZXR1cm4gdGhlIHdhbGtlci1zZXQgdmFsdWUgaW5zdGVhZApvZiB1bmNvbmRp dGlvbmFsbHkgcmV0dXJuaW5nIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgd2hlbiB0aGUKd2Fs a2VyIHN0b3BzIGVhcmx5LgoKQWRkIHJlZ3Jlc3Npb24gdGVzdHMgY292ZXJpbmcgY29uc3RhbnQg b2Zmc2V0cywgTkVYVC1vbmx5LCBtdWx0aXBsZQpQUkVWIG9mZnNldHMsIGFuZCBob3N0IHZhcmlh YmxlIG9mZnNldHMgdW5kZXIgYm90aCBjdXN0b20gYW5kIGdlbmVyaWMKcGxhbnMuCi0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgICAgICB8ICAgMiArLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgICAgICAgIHwgMjMxICsrKysrKy0tLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0ICAgICB8IDM5NyArKysr KysrKysrKysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9u Lm91dCB8ICA3MCArKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAg ICAgICB8ICA3MSArKysrCiA2IGZpbGVzIGNoYW5nZWQsIDU5MCBpbnNlcnRpb25zKCspLCAxOTAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDkzM2VhZGFiNzFlLi4xODQ4 ZGU5ZGU3YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMzI1NCw2ICszMjU0LDE1IEBAIHNo b3dfd2luZG93X2RlZihXaW5kb3dBZ2dTdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMs IEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJQYXR0ZXJuIiwgcGF0 dGVyblN0ciwgZXMpOwogCQkJcGZyZWUocGF0dGVyblN0cik7CiAJCX0KKworCQkvKiBTaG93IG5h dmlnYXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltICovCisJCWlmICh3YWdnLT5uYXZN YXhPZmZzZXQgPT0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCkKKwkJCUV4cGxhaW5Qcm9wZXJ0 eVRleHQoIk5hdiBNYXJrIExvb2tiYWNrIiwgInJldGFpbiBhbGwiLCBlcyk7CisJCWVsc2UgaWYg KHdhZ2ctPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCQkJRXhw bGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2JhY2siLCAicnVudGltZSIsIGVzKTsKKwkJ ZWxzZQorCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTmF2IE1hcmsgTG9va2JhY2siLCBOVUxM LAorCQkJCQkJCQkgICB3YWdnLT5uYXZNYXhPZmZzZXQsIGVzKTsKIAl9CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwppbmRleCBlZTJkNTNiNTkyNC4uOGVlM2NjZjZk MGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI1NTMsNyAr MjU1Myw3IEBAIGNvbXB1dGVfbmF2X21heF9vZmZzZXQoTGlzdCAqZGVmaW5lQ2xhdXNlKQogCQlU YXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAogCQlpZiAobmF2 X21heF9vZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmbWF4T2Zmc2V0KSkKLQkJCXJl dHVybiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOworCQkJcmV0dXJuIG1heE9mZnNldDsJLyog TkVFRFNfRVZBTCBvciBSRVRBSU5fQUxMICovCiAJfQogCiAJcmV0dXJuIG1heE9mZnNldDsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMzdhYTgxZWJkZWEuLjFlNDUw YTA3Y2VkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAtMzA2NSwx MCArMzA2NSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IGF7M30KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAt PiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2U6 IEF7Mn0gQXszfSAtPiBhezV9CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMDgwLDEwICszMDgx LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgUGF0dGVybjogYXs1fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0 CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSsgQSog LT4gYSsKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTMwOTUsMTAgKzMwOTcsMTEgQEAgV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29y dCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCiso NyByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2U6IEEgQSsgLT4gYXsyLH0KIC0tIFRl c3RzIGxpbmUgMjUxOiBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgYnJhbmNoIGluIG1l cmdlQ29uc2VjdXRpdmVWYXJzCkBAIC0zMTEyLDEwICszMTE1LDExIEBAIFdJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXsyLH0i CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5 OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93 cykKIAogLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2l0aCBmaW5pdGUgcXVhbnRpZmllcnM6 ICgoQSBCKXs1fSkgKChBIEIpezEwfSkgLT4gbWVyZ2VkCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBA IC0zMTI3LDEwICszMTMxLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYil7MTV9CisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRp dmUgR1JPVVAgbWVyZ2Ugd2l0aCB1bmJvdW5kZWQ6IChBIEIpKyAoQSBCKSsgLT4gKGEgYil7Mix9 CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMTQyLDEwICszMTQ3LDExIEBAIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEn IGInKXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAg IFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dz KQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2U6IChBIEIpezJ9IChBIEIp KyAtPiAoYSBiKXszLH0KIC0tIFRlc3RzIGxpbmUgMzI1OiBjaGlsZC0+bWF4ID09IFJQUl9RVUFO VElUWV9JTkYgYnJhbmNoIGluIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMKQEAgLTMxNTksMTAgKzMx NjUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiAoYScgYicpezMsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBQUkVGSVggbWVyZ2U6IEEgQiAo QSBCKSsgLT4gKGEgYil7Mix9CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMTc0LDEwICszMTgx LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgUGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg LT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUFJFRklYIGFuZCBTVUZGSVggbWVy Z2U6IEEgQiAoQSBCKSsgQSBCIC0+IChhIGIpezMsfQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAt MzE4OSwxMCArMzE5NywxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhJyBiJyl7Myx9IgorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEZsYXR0ZW4g bmVzdGVkOiBBICgoQikgKEMpKSAtPiBhIGIgYwogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzIw NCwxMCArMzIxMywxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6 IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gRGF0YSBleGVjdXRpb246IFNF USBmbGF0dGVuIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0cwogU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdyBBUyBjbnQKQEAgLTMyMzksMTAgKzMyNDksMTEgQEAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIg fCBjKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29y dCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCiso NyByb3dzKQogCiAtLSBBTFQgZGVkdXBsaWNhdGU6IChBIHwgQiB8IEEpIC0+IChhIHwgYikKIEVY UExBSU4gKENPU1RTIE9GRikKQEAgLTMyNTQsMTAgKzMyNjUsMTEgQEAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIp KworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtl eTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJv d3MpCiAKIC0tIERhdGEgZXhlY3V0aW9uOiBBTFQgZGVkdXAgcHJvZHVjZXMgY29ycmVjdCByZXN1 bHRzCiBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudApAQCAtMzI4OSwxMCAr MzMwMSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGF7Nn0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIG11bHRpcGx5IHdpdGgg Y2hpbGQgcmFuZ2U6IChBezIsM30pezN9IC0+IGF7Niw5fQogLS0gb3V0ZXIgZXhhY3QsIGNoaWxk IHJhbmdlIC0gb3B0aW1pemF0aW9uIGFwcGxpZXMKQEAgLTMzMDUsMTAgKzMzMTgsMTEgQEAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiBhezYsOX0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAg ICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJv d3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7MiwzfSBz dGF5cyBhcyAoYXsyfSl7MiwzfQogLS0gb3V0ZXIgcmFuZ2UgLSBnYXBzIHdvdWxkIG9jY3VyICg0 LDYgbm90IDQsNSw2KSwgbm8gb3B0aW1pemF0aW9uCkBAIC0zMzIxLDEwICszMzM1LDExIEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogKGF7Mn0pezIsM30KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7 Mix9IHN0YXlzIGFzIChhezJ9KXsyLH0KIC0tIG91dGVyIHVuYm91bmRlZCAtIGdhcHMgd291bGQg b2NjdXIgKDQsNiw4LC4uLiBub3QgNCw1LDYsLi4uKSwgbm8gb3B0aW1pemF0aW9uCkBAIC0zMzM3 LDEwICszMzUyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogKGF7Mn0nKXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUXVhbnRpZmllciBt dWx0aXBseTogKEEpezIsfSAtPiBhezIsfQogLS0gY2hpbGQgZXhhY3QgMSAtIG5vIGdhcHMsIG9w dGltaXphdGlvbiBhcHBsaWVzCkBAIC0zMzUzLDEwICszMzY5LDExIEBAIFdJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXsyLH0i CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5 OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93 cykKIAogLS0gUXVhbnRpZmllciBtdWx0aXBseTogKEEpKyAtPiBhKwogLS0gY2hpbGQgZXhhY3Qg MSAtIG5vIGdhcHMsIG9wdGltaXphdGlvbiBhcHBsaWVzCkBAIC0zMzY5LDEwICszMzg2LDExIEBA IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAg ICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiBy b3dzKQorKDcgcm93cykKIAogLS0gUXVhbnRpZmllciBOTyBtdWx0aXBseTogKEF7Mn0pezMsNX0g c3RheXMgYXMgKGF7Mn0pezMsNX0KIC0tIG91dGVyIHJhbmdlLCBjaGlsZCBleGFjdCA+IDEgLSBn YXBzIHdvdWxkIG9jY3VyICg2LDgsMTAgbm90IDYsNyw4LDksMTApCkBAIC0zMzg1LDEwICszNDAz LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgUGF0dGVybjogKGF7Mn0pezMsNX0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAt PiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5 OiAoQXsyLDN9KXsyLDN9IHN0YXlzIGFzIChhezIsM30pezIsM30KIC0tIG91dGVyIHJhbmdlLCBj aGlsZCByYW5nZSAtIGdhcHMgcG9zc2libGUgKGUuZy4sIChBezQsNX0pezIsM30gbWlzc2VzIDEx KQpAQCAtMzQwMSwxMCArMzQyMCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhezIsM30pezIsM30KKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBO ZXN0ZWQgdW5ib3VuZGVkOiAoQSopKiAtPiBhKgogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzQx NiwxMCArMzQzNiwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6 IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGEqIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5lc3RlZCB1bmJvdW5kZWQ6IChB KykqIC0+IGEqCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zNDMxLDEwICszNDUyLDExIEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogYSoiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAg IFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dz KQorKDcgcm93cykKIAogLS0gTmVzdGVkIHVuYm91bmRlZDogKEErKSsgLT4gYSsKIEVYUExBSU4g KENPU1RTIE9GRikKQEAgLTM0NDYsMTAgKzM0NjgsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBV bndyYXAgR1JPVVB7MSwxfTogKEEpIC0+IGEKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM0NjEs MTAgKzM0ODQsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4g IFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gVW53cmFwIEdST1VQezEsMX06IChBIEIp IC0+IGEgYgogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzQ3NiwxMCArMzUwMCwxMSBAQCBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IGEgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBT b3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykK Kyg3IHJvd3MpCiAKIC0tIENvbWJpbmVkIG9wdGltaXphdGlvbjogQSBBIChCIEIpKyBCIEIgQyBD IEMgLT4gYXsyfSAoYnsyfSl7Mix9IGN7M30KIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM0OTIs MTAgKzM1MTcsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezJ9IChiezJ9KXsyLH0gY3szfQorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNl Y3V0aXZlIEdST1VQIG1lcmdlIHdpdGggdW5ib3VuZGVkOiAoQSspIChBKykgLT4gYXsyLH0KIC0t IFRlc3RzIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMgd2l0aCBjaGlsZC0+bWF4ID09IElORgpAQCAt MzUwOCwxMCArMzUzNCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Mix9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIEdS T1VQIG1lcmdlIGZpbml0ZTogKEF7MTB9KXsyMH0gLT4gYXsyMDB9CiAtLSBUZXN0cyBtZXJnZUNv bnNlY3V0aXZlR3JvdXBzIHdpdGggYm90aCBmaW5pdGUKQEAgLTM1MjQsMTAgKzM1NTEsMTEgQEAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiBhezIwMH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAg ICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2 IHJvd3MpCisoNyByb3dzKQogCiAtLSBEaWZmZXJlbnQgR1JPVVAgcHJldmVudHMgbWVyZ2U6IChB IEIpezJ9IChDIEQpezN9CiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzIGZsdXNoIHBy ZXZpb3VzCkBAIC0zNTQyLDEwICszNTcwLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dB Z2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYil7Mn0gKGMgZCl7M30K KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6 IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dz KQogCiAtLSBEaWZmZXJlbnQgY2hpbGRyZW4gY291bnQgcHJldmVudHMgbWVyZ2U6IChBIEIpKyAo QSBCIEMpKwogLS0gVGVzdHMgcnByUGF0dGVybkNoaWxkcmVuRXF1YWwgbGVuZ3RoIGNoZWNrCkBA IC0zNTU5LDEwICszNTg4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiIChhIGIgYykrCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0g UFJFRklYIG9ubHkgbWVyZ2U6IEEgQiAoQSBCKSsgLT4gKGEgYil7Mix9CiAtLSBUZXN0cyBtZXJn ZUdyb3VwUHJlZml4U3VmZml4OiBhYnNvcmIgcHJlY2VkaW5nIGVsZW1lbnRzIGludG8gR1JPVVAg bWluCkBAIC0zNTc1LDEwICszNjA1LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cK ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0g U1VGRklYIG9ubHkgbWVyZ2U6IChBIEIpKyBBIEIgLT4gKGEgYil7Mix9CiAtLSBUZXN0cyBtZXJn ZUdyb3VwUHJlZml4U3VmZml4OiBhYnNvcmIgZm9sbG93aW5nIGVsZW1lbnRzIGludG8gR1JPVVAg bWluCkBAIC0zNTkxLDEwICszNjIyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cK ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0g TXVsdGlwbGUgU1VGRklYIGFic29ycHRpb24gd2l0aCBza2lwVW50aWw6IChBIEIpKyBBIEIgQSBC IEMKIC0tIFRlc3RzIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXg6IHNraXAgYWJzb3JiZWQgc3VmZml4 IGVsZW1lbnRzCkBAIC0zNjA4LDEwICszNjQwLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5k b3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXszLH0iIGMK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6 IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dz KQogCiAtLSBQUkVGSVggbWVyZ2Ugd2l0aCByZW1haW5pbmcgcHJlZml4OiBBIEIgQyBEIChDIEQp KwogLS0gVGVzdHMgbWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogdHJpbW1lZCBsaXN0IHJlY29uc3Ry dWN0aW9uCkBAIC0zNjI2LDEwICszNjU5LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dB Z2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiIChjIGQpezIsfQorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQK ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAK IC0tIFBSRUZJWCBtZXJnZSB3aXRoIHF1YW50aWZpZXJzOiBBIEIqIChBIEIqKSsgLT4gKGEgYiop ezIsfQogLS0gVGVzdHMgbWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogcXVhbnRpZmllciBjb21wYXJp c29uIGluIHJwclBhdHRlcm5FcXVhbApAQCAtMzY0MywxMCArMzY3NywxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChh IGIqKXsyLH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAg U29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3Mp CisoNyByb3dzKQogCiAtLSBQUkVGSVggbWVyZ2Ugd2l0aCBtdWx0aXBsZSBxdWFudGlmaWVyczog QSsgQiogQz8gKEErIEIqIEM/KSsgLT4gKGErIGIqIGM/KXsyLH0KIC0tIFRlc3RzIG1lcmdlR3Jv dXBQcmVmaXhTdWZmaXg6IGNvbXBsZXggcXVhbnRpZmllciBwYXR0ZXJucwpAQCAtMzY2MCwxMCAr MzY5NSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IChhKyIgYiogYz8pezIsfQorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFNVRkZJWCBtZXJnZSB3 aXRoIHF1YW50aWZpZXJzOiAoQSBCKikrIEEgQiogLT4gKGEgYiopezIsfQogLS0gVGVzdHMgbWVy Z2VHcm91cFByZWZpeFN1ZmZpeDogc3VmZml4IHdpdGggcXVhbnRpZmllcnMKQEAgLTM2NzcsMTAg KzM3MTMsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYSBiKil7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gVW53cmFwIEdST1VQezEsMX06 ICgoQSB8IEIgfCBDKSkgLT4gKGEgfCBiIHwgYykKIC0tIFRlc3RzIHRyeVVud3JhcEdyb3VwIHJl bW92aW5nIHJlZHVuZGFudCBvdXRlciBHUk9VUApAQCAtMzY5MywxMCArMzczMCwxMSBAQCBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IChhIHwgYiB8IGMpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAg ICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0o NiByb3dzKQorKDcgcm93cykKIAogLS0gRGF0YSBleGVjdXRpb246IEdST1VQIHVud3JhcCBwcm9k dWNlcyBjb3JyZWN0IHJlc3VsdHMKIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CkBAIC0zNzI5LDEwICszNzY3LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cK ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSs/IGEKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3Rh bnQgb3B0aW1pemF0aW9uIGJ5cGFzczogR1JPVVAgbWVyZ2UKIC0tIChBIEIpKz8gKEEgQikgc3Rh eXMgc2VwYXJhdGUgKGdyZWVkeSBtZXJnZXMgdG8gKGEgYil7Mix9KQpAQCAtMzc0NSwxMCArMzc4 NCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IChhIGIpKz8gYSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg LT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUmVsdWN0YW50IG9wdGltaXphdGlv biBieXBhc3M6IHF1YW50aWZpZXIgbXVsdGlwbHkgKG91dGVyIHJlbHVjdGFudCkKIC0tIChBezJ9 KXszfT8gc3RheXMgYXMgKGF7Mn0pezN9PyAoZ3JlZWR5IG1lcmdlcyB0byBhezZ9KQpAQCAtMzc2 MSwxMCArMzgwMSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6 IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IChhezJ9KXszfT8KKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgb3B0 aW1pemF0aW9uIGJ5cGFzczogcXVhbnRpZmllciBtdWx0aXBseSAoaW5uZXIgcmVsdWN0YW50KQog LS0gKEF7Mn0/KXszfSBzdGF5cyBhcyAoYXsyfT8pezN9IChncmVlZHkgbWVyZ2VzIHRvIGF7Nn0p CkBAIC0zNzc3LDEwICszODE4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAg IFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGF7Mn0/KXszfQorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVj dGFudCBvcHRpbWl6YXRpb24gYnlwYXNzOiBQUkVGSVggbWVyZ2UKIC0tIEEgQiAoQSBCKSs/IHN0 YXlzIHNlcGFyYXRlIChncmVlZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkKQEAgLTM3OTMsMTAgKzM4 MzUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiBhIGIgKGEgYikrPworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBvcHRpbWl6YXRp b24gYnlwYXNzOiBTVUZGSVggbWVyZ2UKIC0tIChBIEIpKz8gQSBCIHN0YXlzIHNlcGFyYXRlIChn cmVlZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkKQEAgLTM4MDksMTAgKzM4NTIsMTEgQEAgV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiAoYSBiKSs/IGEgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAg ICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYg cm93cykKKyg3IHJvd3MpCiAKIC0tIEdST1VQIHVud3JhcCB3aXRoIHF1YW50aWZpZXIgcHJvcGFn YXRpb246IChBKT8/IEIgLT4gYT8/IGIKIC0tIFNpbmdsZSBWQVIgY2hpbGQgezEsMX0gcmVjZWl2 ZXMgR1JPVVAncyBxdWFudGlmaWVyIGFuZCByZWx1Y3RhbnQKQEAgLTM4MjUsMTAgKzM4NjksMTEg QEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiBhPz8gYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAg ICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgot KDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBwcmVzZXJ2ZWQgdGhyb3VnaCBBTFQg ZmxhdHRlbgogLS0gKEEgfCAoQiB8IEMpKSs/IGZsYXR0ZW5zIHRvIChhIHwgYiB8IGMpKz8gLSBp bm5lciBBTFQgZmxhdHRlbmVkLCByZWx1Y3RhbnQga2VwdApAQCAtMzg0MSwxMCArMzg4NiwxMSBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IChhIHwgYiB8IGMpKz8KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5 cGFzczogYWJzb3JwdGlvbiBmbGFncwogLS0gQSs/IHdpdGggU0tJUCBQQVNUIExBU1QgUk9XIC0g bm8gYWJzb3JwdGlvbiBtYXJrZXJzIChncmVlZHkgQSsgZ2V0cyBhKyIpCkBAIC0zODU3LDEwICsz OTAzLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSs/CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNv cnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gRHVwbGljYXRlIEdST1VQIHJlbW92YWw6ICgo QSB8IEIpKyB8IChBIHwgQikrKSAtPiAoYSB8IGIpKwogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAt Mzg3MiwxMCArMzkxOSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikrCisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUg VkFSIG1lcmdlIHdpdGggemVyby1taW46IEEqIEErIC0+IGErCiBFWFBMQUlOIChDT1NUUyBPRkYp CkBAIC0zODg3LDEwICszOTM1LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAg IFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUg VkFSIG1lcmdlICg0LWVsZW1lbnQpOiBBIEF7Mn0gQSsgQXszfSAtPiBhezcsfQogRVhQTEFJTiAo Q09TVFMgT0ZGKQpAQCAtMzkwMiwxMCArMzk1MSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2lu ZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Nyx9IgorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0t IFBSRUZJWCtTVUZGSVggbWVyZ2UgKDUtd2F5KTogQSBCIEEgQiAoQSBCKSsgQSBCIEEgQiAtPiAo YSBiKXs1LH0KIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM5MTgsMTAgKzM5NjgsMTEgQEAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiAoYScgYicpezUsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBVbndyYXAgc2luZ2xlLWl0ZW0gQUxUIGFmdGVyIGRl ZHVwOiAoQSB8IEEpKyAtPiBhKwogLS0gQUxUIGRlZHVwIHJlZHVjZXMgdG8gc2luZ2xlLWl0ZW0s IHRoZW4gR1JPVVAgdW53cmFwCkBAIC0zOTM0LDEwICszOTg1LDExIEBAIFdJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBp ZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykK IAogLS0gR1JPVVB7MSwxfSB0byBTRVEgd2l0aCBmbGF0dGVuOiAoKEEgQikoQyBEKSkgLT4gYSBi IGMgZAogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzk1MSwxMCArNDAwMywxMSBAQCBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGEgYiBjIGQKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAg U29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3Mp CisoNyByb3dzKQogCiAtLSBOZXN0ZWQgQUxUIHBhdHRlcm46ICgoQSBCKSB8IEMpIEQgfCBBIEIg QwogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzk2OCwxMCArNDAyMSwxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICgo YSBiIHwgYykgZCB8IGEgYiBjKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0 CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5lc3RlZCBBTFQgd2l0aCB1bmJvdW5kZWQ6ICgo QSsgQikgfCBDKSBEIHwgQSBCIEMKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM5ODUsMTAgKzQw MzksMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiAoKGErIiBiIHwgYykgZCB8IGEgYiBjKQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0g QWJzb3JwdGlvbiBGbGFnIERpc3BsYXkgVGVzdHMKQEAgLTQwMDYsMTAgKzQwNjEsMTEgQEAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAg U29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3Mp CisoNyByb3dzKQogCiAtLSBHUk9VUCB1bmJvdW5kZWQ6IChBIEIpKyAtPiAoYScgYicpKyIgKGJy YW5jaCArIGp1ZGdtZW50KQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDAyMSwxMCArNDA3Nywx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhJyBiJykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBT b3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEFMVCBib3RoIGFic29yYmFibGU6IEErIHwg QisgLT4gKGErIiB8IGIrIikKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTQwMzYsMTAgKzQwOTMs MTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYSsiIHwgYisiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEFMVCBvbmUgYWJzb3JiYWJsZTogQSsg fCBCIC0+IChhKyIgfCBiKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA1MSwxMCArNDEwOSwx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhKyIgfCBiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBT b3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFNlcXVlbmNlIHdpdGggYWJzb3JiYWJsZSBz dGFydDogQSsgQiAtPiBhKyIgYgogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA2NiwxMCArNDEy NSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNv cnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29tcGxleCBuZXN0ZWQ6ICgoQSsgQikgfCBD KSBEIHwgQSBCIEMgLSBkZWVwbHkgbmVzdGVkIEFMVAogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAt NDA4MiwxMCArNDE0MiwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICgoYSsiIGIgfCBjKSBkIHwgYSBiIGMpCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAog LS0gTmVzdGVkIHVuYm91bmRlZDogKEErIHwgQikrIC0+IChhKyIgfCBiKSsgKGZpcnN0IGl0ZXJh dGlvbiBhYnNvcmJhYmxlKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA5OCwxMCArNDE1OSwx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhKyIgfCBiKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBBTFQgaW5zaWRlIHVuYm91bmRlZCBHUk9V UDogKEErIEIgfCBBIEIpKiAtPiAoYSsiIGIgfCBhIGIpKiAoZmlyc3QgaXRlcmF0aW9uIGFic29y YmFibGUpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MTE0LDEwICs0MTc2LDExIEBAIFdJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogKGErIiBiIHwgYSBiKSoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JiYWJsZTog KEF7Mn0gQnszfSkrIC0+IChhezJ9JyBiezN9Jyl7Mix9IgogLS0gQWxsIGNoaWxkcmVuIGhhdmUg bWluID09IG1heCwgZXF1aXZhbGVudCB0byB1bnJvbGxpbmcgdG8gezEsMX0KQEAgLTQxMzEsMTAg KzQxOTQsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYXsyfScgYnszfScpKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBOZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4gYWJzb3JiYWJsZQogRVhQTEFJTiAoQ09T VFMgT0ZGKQpAQCAtNDE0NywxMCArNDIxMSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93 QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBk JykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0 IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3 IHJvd3MpCiAKIC0tIE5lc3RlZCBmaXhlZC1sZW5ndGggd2l0aCBpbm5lciBxdWFudGlmaWVyOiAo KEF7Mn0gQnszfSl7Mn0pKyAtPiBhYnNvcmJhYmxlCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00 MTYzLDEwICs0MjI4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRv dzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKChhezJ9JyBiezN9Jyl7Mn0nKSsiCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0g Tm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCezIsNX0pKyAtPiBubyBtYXJrZXJzICht aW4gIT0gbWF4KQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDE3OSwxMCArNDI0NSwxMSBAQCBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IChhIGJ7Miw1fSkrCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQK ICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFu Ci0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAo QSBCPykrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBtYXgpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBA IC00MTk1LDEwICs0MjYyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYj8pKworICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5vbi1hYnNvcmJh YmxlICh1bmJvdW5kZWQgbm90IGF0IHN0YXJ0KTogQSBCKyAtPiBhIGIrIChubyBtYXJrZXJzKQog RVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDIxMCwxMCArNDI3OCwxMSBAQCBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6 IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dz KQogCiAtLSBOb24tYWJzb3JiYWJsZSAobm8gdW5ib3VuZGVkIGJyYW5jaCk6IChBIHwgQil7Mix9 IC0+IChhIHwgYil7Mix9IChubyBtYXJrZXJzKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDIy NSwxMCArNDI5NCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6 IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYil7Mix9CisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFic29yYmFi bGUgKFNLSVAgVE8gTkVYVCBST1cpOiBBKyAtPiBhKyAobm8gbWFya2VycykKIEVYUExBSU4gKENP U1RTIE9GRikKQEAgLTQyNDAsMTAgKzQzMTAsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRv d0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5vbi1h YnNvcmJhYmxlIChsaW1pdGVkIGZyYW1lKTogQSsgLT4gYSsgKG5vIG1hcmtlcnMpCiBFWFBMQUlO IChDT1NUUyBPRkYpCkBAIC00MjU1LDEwICs0MzI2LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORwogIFdpbmRvd0Fn ZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EICcxMCc6OmJpZ2ludCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVj dGFudCB7MX0/IHF1YW50aWZpZXIgZGVwYXJzZQogLS0gQXsxfT8gaXMgYSByZWx1Y3RhbnQgezEs MX0gcXVhbnRpZmllci4gIFRoZSBkZXBhcnNlIGNvZGUgbXVzdApAQCAtNDI3NywxMCArNDM0OSwx MSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IHZhbCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiBhezF9PyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQK ICAgICAgICAgIFNvcnQgS2V5OiB2YWwKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQWJzb3JwdGlvbiBBbmFseXNpcyBU ZXN0cwpAQCAtNDc3NSwxMCArNDg0OCwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhezIwMDAwMDAwMDB9KXsyfQorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQK ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKLSg2IHJvd3MpCisoNyByb3dz KQogCiAtLSBFeHBlY3RlZDogRmFsbGJhY2sgLSBwYXR0ZXJuIG5vdCBtZXJnZWQgZHVlIHRvIG1p biBvdmVyZmxvdyAoNDAwMDAwMDAwMCA+IElOVDMyX01BWCkKIC0tIFRlc3Q6IG1heC1vbmx5IHF1 YW50aWZpZXIgb3ZlcmZsb3cgY2F1c2VzIG9wdGltaXphdGlvbiBmYWxsYmFjawpAQCAtNDc5NSwx MCArNDg2OSwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IChhezEsMjAwMDAwMDAwMH0pezJ9CisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9mYWxsYmFjawotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEV4cGVj dGVkOiBGYWxsYmFjayAtIG1pbiBPSyAoMioxPTIpLCBidXQgbWF4IG92ZXJmbG93ICgyKjIwMDAw MDAwMDAgPiBJTlQzMl9NQVgpCiAtLSBUZXN0OiBtYXggcXVhbnRpZmllciBleGNlZWRzIHZhbGlk IHJhbmdlICgyMTQ3NDgzNjQ3ID0gSU5UX01BWCwgbGltaXQgaXMgMjE0NzQ4MzY0NikKQEAgLTQ4 MjgsMTAgKzQ5MDMsMTEgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYXsyMDAwMDAwMDAwLH0iKXsyMDAwMDAwMDAwLH0KKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlk CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ZhbGxiYWNrCi0oNiByb3dzKQorKDcgcm93 cykKIAogLS0gRXhwZWN0ZWQ6IEZhbGxiYWNrIC0gbWluIG92ZXJmbG93ICgyMDAwMDAwMDAwICog MjAwMDAwMDAwMCA+IElOVDMyX01BWCkKIC0tIFRlc3Q6IHByZWZpeCBtaXNtYXRjaCBjYXVzZXMg b3B0aW1pemF0aW9uIGZhbGxiYWNrCkBAIC00ODQ4LDEwICs0OTI0LDExIEBAIFdJTkRPVyB3IEFT ICgKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiIChj IGQpKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0 IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKLSg2IHJvd3Mp CisoNyByb3dzKQogCiAtLSBFeHBlY3RlZDogRmFsbGJhY2sgLSBwcmVmaXggZWxlbWVudHMgZG9u J3QgbWF0Y2ggR1JPVVAgY29udGVudAogRFJPUCBUQUJMRSBycHJfZmFsbGJhY2s7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IGRjMzA3NWU2YmQzLi43N2Fi MjVhMjI4OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFp bi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAg LTM2LDYgKzM2LDcgQEAKIC0tICAgV2luZG93IEZ1bmN0aW9uIENvbWJpbmF0aW9ucwogLS0gICBE RUZJTkUgRXhwcmVzc2lvbiBWYXJpYXRpb25zCiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3Mg VmVyaWZpY2F0aW9uCistLSAgIE5hdiBNYXJrIExvb2tiYWNrICh0dXBsZXN0b3JlIHRyaW0pCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIEZpbHRlciBmdW5jdGlvbiB0byBub3JtYWxpemUgcGxhdGZvcm0tZGVwZW5kZW50 IG1lbW9yeSB2YWx1ZXMgKG5vdCBORkEgc3RhdGlzdGljcykuCiAtLSBORkEgc3RhdGlzdGljcyBz aG91bGQgbm90IGNoYW5nZSBiZXR3ZWVuIHBsYXRmb3JtczsgaWYgdGhleSBkbywgaXQgY291bGQK QEAgLTE0MSwxMyArMTQyLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMiBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChs ZW4gMi8yLzIuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBQYXR0ZXJuIHdp dGggbm8gbWF0Y2hlcyAtIDAgbWF0Y2hlZAogQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX25vbWF0 Y2ggQVMKQEAgLTE4MCwxMiArMTgyLDEzIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFj dHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiB4IHkgegor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDEgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiAyIHBlYWssIDEwMSB0b3RhbCwgMTAwIHBydW5lZAogICAgTkZBOiAwIG1h dGNoZWQsIDAgbWlzbWF0Y2hlZAogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0 dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gUGF0dGVy biBtYXRjaGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50CiBDUkVBVEUgVklFVyBycHJf ZXZfYmFzaWNfYWxscm93cyBBUwpAQCAtMjE4LDEyICsyMjEsMTMgQEAgV0lORE9XIHcgQVMgKAog IFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMg KFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IHIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBt ZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAxMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBO RkE6IDEwMCBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAogICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dz KQorKDkgcm93cykKIAogLS0gUmVncmVzc2lvbiB0ZXN0OiBTcGFjZSBiZWZvcmUgcGFyZW50aGVz aXMgaW4gcGF0dGVybiBkZXBhcnNlCiAtLSBWZXJpZmllcyB0aGF0ICJBIChCIHwgQykiIGNvcnJl Y3RseSBvdXRwdXRzIGFzICJhIChiIHwgYykiIHdpdGggc3BhY2UKQEAgLTI1NSwxMyArMjU5LDE0 IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEp CiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgKGIgfCBjKQorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0 ZXM6IDMgcGVhaywgMzUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywg MjEgdG90YWwsIDYgcHJ1bmVkCiAgICBORkE6IDcgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAwIG1p c21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgNyBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4w MCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBSZWdyZXNzaW9uIHRlc3Q6IFNl cXVlbnRpYWwgYWx0ZXJuYXRpb25zIGF0IHNhbWUgZGVwdGgKIC0tIFZlcmlmaWVzIHRoYXQgIigo QiB8IEMpIChEIHwgRSkpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiKGIgfCBjKSAoZCB8IGUpIgpA QCAtMjk0LDEyICsyOTksMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MzAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSAoKGIgfCBjKSAoZCB8 IGUpKSoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDYxIHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDMxIHRvdGFsLCAyNCBwcnVuZWQKICAgIE5GQTog NiBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOCBy b3dzKQorKDkgcm93cykKIAogLS0gUmVncmVzc2lvbiB0ZXN0OiBRdW90ZWQgaWRlbnRpZmllcnMg aW4gRVhQTEFJTiBwYXR0ZXJuIGRlcGFyc2UKIC0tIE1peGVkIGNhc2UgbmFtZXMgbXVzdCBiZSBx dW90ZWQgdG8gcHJlc2VydmUgcm91bmQtdHJpcCBzYWZldHkKQEAgLTMxNyw4ICszMjMsOSBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICJTdGFydCIg IlVwIisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcwotKDQgcm93cykKKyg1IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU3RhdGUg U3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90YWwsIG1lcmdlZCkKQEAgLTM1NCwxMiArMzYxLDEz IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEp CiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMg cGVhaywgNzYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTEgdG90 YWwsIDI1IHBydW5lZAogICAgTkZBOiAyNSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0 Y2hlZAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTUwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gQWx0ZXJuYXRpb24g cGF0dGVybiAtIG11bHRpcGxlIHN0YXRlIGJyYW5jaGVzCiBDUkVBVEUgVklFVyBycHJfZXZfc3Rh dGVfYWx0IEFTCkBAIC0zOTYsMTMgKzQwNCwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdn IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEg fCBiIHwgYykgKGQgfCBlKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgNTI0IHRv dGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgMjAgcHJ1 bmVkCiAgICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgNDAgbWlzbWF0Y2hlZCAobGVu IDIvMi8yLjApCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQog ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIENvbXBsZXggcGF0dGVybiB3aXRoIGhpZ2gg c3RhdGUgY291bnQKIENSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21wbGV4IEFTCkBAIC00NDEs MTMgKzQ1MCwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIqIGMrCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogNSBwZWFrLCAyMzUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4 dHM6IDMgcGVhaywgMTAxIHRvdGFsLCAzNCBwcnVuZWQKICAgIE5GQTogMzMgbWF0Y2hlZCAobGVu IDMvMy8zLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzMgc2tpcHBlZCAo bGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEdy b3VwZWQgcGF0dGVybiB3aXRoIHF1YW50aWZpZXIgLSBzdGF0ZSBjb3VudCB3aXRoIGdyb3VwaW5n CiBDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfZ3JvdXBfcXVhbnQgQVMKQEAgLTQ4MCwxMyArNDkw LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3Bz PTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhJyBiJykrIgorICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBT dGF0ZXM6IDQgcGVhaywgOTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVh aywgNjEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDYwLzYwLzYwLjAp LCAwIG1pc21hdGNoZWQKICAgIE5GQTogMjkgYWJzb3JiZWQgKGxlbiAyLzIvMi4wKSwgMzAgc2tp cHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAog LS0gU3RhdGUgZXhwbG9zaW9uIHBhdHRlcm4gLSBtYW55IGFsdGVybmF0aW9ucwogLS0gUGF0dGVy biAoQXxCKShBfEIpKEF8QikoQXxCKSBjYW4gY3JlYXRlIG1hbnkgcGFyYWxsZWwgc3RhdGVzCkBA IC01MjAsMTMgKzUzMSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93 cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKXs4fQorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdl OiBOa0IKICAgIE5GQSBTdGF0ZXM6IDE3IHBlYWssIDk5NSB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogOCBwZWFrLCAxMDEgdG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDEyIG1hdGNo ZWQgKGxlbiA4LzgvOC4wKSwgMyBtaXNtYXRjaGVkIChsZW4gMi80LzMuMCkKICAgIE5GQTogMCBh YnNvcmJlZCwgODQgc2tpcHBlZCAobGVuIDEvNy80LjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSByb3dz KQorKDEwIHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBkaWZm ZXJlbnQgQUxUCiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlQWx0cyBmbHVzaCBvbiBBTFQgY2hh bmdlOiAoQXxCKXsyfSAoQ3xEKQpAQCAtNTYwLDEzICs1NzIsMTQgQEAgV0lORE9XIHcgQVMgKAog IFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAo Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogKGEgfCBiKXsyfSAoYyB8IGQpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFr LCAxODEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWws IDEyIHBydW5lZAogICAgTkZBOiA5IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMSBtaXNtYXRjaGVk IChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMTggc2tpcHBlZCAobGVuIDEvMi8x LjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJv d3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQ29uc2VjdXRpdmUg QUxUIG1lcmdlIGZvbGxvd2VkIGJ5IG5vbi1BTFQgZWxlbWVudAogLS0gVGVzdHMgbWVyZ2VDb25z ZWN1dGl2ZUFsdHMgZmx1c2ggb24gbm9uLUFMVDogKEF8Qil7Mn0gYwpAQCAtNjAwLDEzICs2MTMs MTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKXsyfSBjCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogNiBwZWFrLCAxNzcgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMg cGVhaywgNDEgdG90YWwsIDIgcHJ1bmVkCiAgICBORkE6IDEyIG1hdGNoZWQgKGxlbiAzLzMvMy4w KSwgMiBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMjQgc2tp cHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAog LS0gQUxUIHByZWZpeC9zdWZmaXggYWJzb3JiZWQgaW50byBHUk9VUDogKEF8QikgKEF8QikrIChB fEIpIC0+IChBfEIpezMsfQogQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3Jv dXAgQVMKQEAgLTYzOSwxMyArNjUzLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFj dHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYil7 Myx9CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVt IFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAyNDMgdG90YWwsIDAgbWVyZ2Vk CiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEg bWF0Y2hlZCAobGVuIDQwLzQwLzQwLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJl ZCwgMzkgc2tpcHBlZCAobGVuIDEvMi8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAg cm93cykKIAogLS0gSGlnaCBzdGF0ZSBjb3VudCAtIGFsdGVybmF0aW9uIHdpdGggcGx1cyBxdWFu dGlmaWVyCiBDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X3BsdXMgQVMKQEAgLTY3OCwxMyAr NjkzLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBs b29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIgfCBjKSsgZAorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDE2IHBlYWssIDEwMDQgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDQgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAyNSBtYXRjaGVkIChs ZW4gNC80LzQuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA3NSBza2lwcGVk IChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0g RWFybHkgdGVybWluYXRpb246IGZpcnN0IEFMVCBicmFuY2ggKEEpIHJlYWNoZXMgRklOIGltbWVk aWF0ZWx5LAogLS0gcHJ1bmluZyBzZWNvbmQgYnJhbmNoIChBIEIrKSBiZWZvcmUgaXQgY2FuIGFj Y3VtdWxhdGUgQiByZXBldGl0aW9ucy4KQEAgLTcxOCwxMiArNzM0LDEzIEBAIFdJTkRPVyB3IEFT ICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiAoYSB8IGEgYikrCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNiBwZWFrLCAz MDYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA5 OSBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEw MC4wMCBsb29wcz0xKQotKDggcm93cykKKyg5IHJvd3MpCiAKIC0tIE5lc3RlZCBxdWFudGlmaWVy cyBjYXVzaW5nIHN0YXRlIGdyb3d0aAogQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX25lc3RlZF9x dWFudCBBUwpAQCAtNzU2LDEzICs3NzMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAo YWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8 IGIpKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgNTAwNCB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDAxIHRvdGFsLCAzMzMgcHJ1bmVkCiAgICBO RkE6IDMzNCBtYXRjaGVkIChsZW4gMS8yLzIuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFi c29yYmVkLCAzMzMgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQotKDkgcm93 cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIENvbnRleHQgU3RhdGlzdGljcyBUZXN0cyAocGVh aywgdG90YWwsIHBydW5lZCArIGFic29yYmVkL3NraXBwZWQpCkBAIC03OTgsMTMgKzgxNiwxNCBA QCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQog ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMg cGVhaywgOTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90 YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRj aGVkCiAgICBORkE6IDMwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAx LzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE5vIGFic29y cHRpb24gLSBib3VuZGVkIHF1YW50aWZpZXIKIENSRUFURSBWSUVXIHJwcl9ldl9jdHhfbm9fYWJz b3JiIEFTCkBAIC04MzcsMTMgKzg1NiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChh Y3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezIsNH0g YgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBT dG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAog ICAgTkZBIENvbnRleHRzOiA1IHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBt YXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA0 MCBza2lwcGVkIChsZW4gMS80LzIuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dz KQogCiAtLSBDb250ZXh0cyBza2lwcGVkIGJ5IFNLSVAgUEFTVCBMQVNUIFJPVwogQ1JFQVRFIFZJ RVcgcnByX2V2X2N0eF9za2lwIEFTCkBAIC04NzYsMTMgKzg5NiwxNCBAQCBXSU5ET1cgdyBBUyAo CiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogYSBiIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3Rh bCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDgwIHBydW5l ZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZB OiAwIGFic29yYmVkLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gSGlnaCBjb250ZXh0IGFic29ycHRpb24gLSB1bmJvdW5k ZWQgZ3JvdXAKIENSRUFURSBWSUVXIHJwcl9ldl9jdHhfYWJzb3JiX2dyb3VwIEFTCkBAIC05MTUs MTMgKzkzNiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiIGMKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDEzNCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDM0IHBydW5lZAogICAgTkZBOiAzMyBtYXRjaGVkIChs ZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzMyBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0g Rml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIEIgQikrIEMKIC0tIEIgQiBtZXJnZWQg dG8gQnsyfTsgYWJzb3JiYWJsZSB3aXRoIGZpeGVkLWxlbmd0aCBjaGVjawpAQCAtOTU2LDEzICs5 NzgsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NzAuMDAgbG9v cHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGJ7Mn0nKSsiIGMKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAg ICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRz OiA0IHBlYWssIDcxIHRvdGFsLCA0MCBwcnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDcv Ny83LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTAgYWJzb3JiZWQgKGxlbiAzLzMvMy4wKSwg MTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gTmVzdGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoQiBDKXsy fSBEKSsgRQogLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNjsgdiAlIDEzIGN5Y2xl IGdpdmVzIDIgaXRlcmF0aW9ucyArIEUKQEAgLTEwMDAsMTMgKzEwMjMsMTQgQEAgV0lORE9XIHcg QVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogKGEnIChiJyBjJyl7Mn0nIGQnKSsiIGUKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3Rh dGVzOiAzIHBlYWssIDc2IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWss IDY2IHRvdGFsLCA1MCBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChsZW4gMTMvMTMvMTMuMCks IDAgbWlzbWF0Y2hlZAogICAgTkZBOiA1IGFic29yYmVkIChsZW4gNi82LzYuMCksIDUgc2tpcHBl ZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cyAoYWN0dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0g RG91Ymx5IG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKChCIEN7M30p ezJ9IEQpezJ9IEUpKyBGCiAtLSBzdGVwX3NpemUgPSAxICsgKCgxKzMpKjIrMSkqMiArIDEgPSAy MDsgdiAlIDQxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucyArIEYKQEAgLTEwNTIsMTMgKzEwNzYs MTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9ODIuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnICgoYicgY3szfScpezJ9JyBkJyl7Mn0nIGUn KSsiIGYKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDg3IHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDgzIHRvdGFsLCA3NiBwcnVuZWQKICAgIE5GQTog MiBtYXRjaGVkIChsZW4gNDEvNDEvNDEuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAyIGFic29y YmVkIChsZW4gMjAvMjAvMjAuMCksIDIgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9ODIuMDAgbG9vcHM9 MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gMy1sZXZlbCBFTkQgY2hhaW4gYWJzb3JwdGlv bjogKChBIChCIEMpezJ9KXsyfSkrCiAtLSBzdGVwX3NpemUgPSAoMSArICgxKzEpKjIpICogMiA9 IDEwOyB2ICUgMjEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zCkBAIC0xMDk3LDEzICsxMTIyLDE0 IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTQyLjAwIGxvb3BzPTEp CiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46ICgoYScgKGInIGMnKXsyfScpezJ9JykrIgorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBO a0IKICAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNDcgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDUgcGVhaywgNDMgdG90YWwsIDMwIHBydW5lZAogICAgTkZBOiAyIG1hdGNoZWQgKGxl biAyMC8yMC8yMC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDIgYWJzb3JiZWQgKGxlbiAxMC8x MC8xMC4wKSwgOCBza2lwcGVkIChsZW4gMS81LzMuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQotKDkgcm93cykK KygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCkBA IC0xMTQzLDEzICsxMTY5LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgYyBkIGUKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAogICAgTkZBOiAyMCBtYXRj aGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAyMCBz a2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFj dHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBWYXJp YWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRpZmZlcgogQ1JFQVRFIFZJRVcgcnBy X2V2X21sZW5fdmFyaWFibGUgQVMKQEAgLTExODIsMTMgKzEyMDksMTQgQEAgV0lORE9XIHcgQVMg KAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxOTEgdG90 YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5l ZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMTAvMTAvMTAuMCksIDAgbWlzbWF0Y2hlZAogICAg TkZBOiA4MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0x MDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gVmVyeSBsb25nIG1hdGNo ZXMKIENSRUFURSBWSUVXIHJwcl9ldl9tbGVuX2xvbmcgQVMKQEAgLTEyMjEsMTMgKzEyNDksMTQg QEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MjAwLjAwIGxvb3BzPTEp CiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczog MyBwZWFrLCAzOTYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMjAx IHRvdGFsLCA0IHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiAxOTYvMTk2LzE5Ni4wKSwg MCBtaXNtYXRjaGVkCiAgICBORkE6IDE5NCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxIHNraXBw ZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTIwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAt LSBVbmlmb3JtIG1hdGNoIGxlbmd0aCB3aXRoIG1pc21hdGNoZXMgZnJvbSBnYXAgcm93cyAodiUy MCA9IDExLi4xNSkKIENSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2ggQVMKQEAg LTEyNjQsMTMgKzEyOTMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxNzEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCAyNSBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChs ZW4gNS81LzUuMCksIDUgbWlzbWF0Y2hlZCAobGVuIDExLzExLzExLjApCiAgICBORkE6IDYwIGFi c29yYmVkIChsZW4gMS8xLzEuMCksIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTWlzbWF0Y2ggTGVuZ3RoIFN0 YXRpc3RpY3MgVGVzdHMKQEAgLTEzMjEsMTMgKzEzNTEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IGErIiBiKyBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5 ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxNTEgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA2MCBwcnVuZWQK ICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDYvNi82LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTog MjAgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAw IGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIExvbmcgcGFydGlhbCBtYXRjaGVz IHRoYXQgZmFpbAogQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZ19wYXJ0aWFsIEFTCkBAIC0x Mzg0LDEzICsxNDE1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dz PTYwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiKyBjCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxMTUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDMgcGVhaywgNjEgdG90YWwsIDE1IHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxl biAzMC8zMC8zMC4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMjYvMjYvMjYuMCkKICAgIE5GQTogNDIg YWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMSBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBpIChhY3R1YWwgcm93cz02MC4wMCBsb29w cz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEpTT04gRm9ybWF0IFRlc3Rz CkBAIC0xNDM0LDYgKzE0NjYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIkRpc2FibGVkIjog ZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CiAgICAgICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpIiwrCiAgICAgICAgIlBhdHRlcm4iOiAiYStcIiBiKyIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5hdiBN YXJrIExvb2tiYWNrIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCiAgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5IiwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk1heGltdW0gU3RvcmFnZSI6IDAs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAg Ik5GQSBTdGF0ZXMgUGVhayI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCkBAIC0xNTExLDYgKzE1NDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg IkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCiAgICAgICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIiwrCiAgICAgICAgIlBhdHRlcm4iOiAiYStc IiBiIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgIk5hdiBNYXJrIExvb2tiYWNrIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCiAgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5IiwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk1heGltdW0g U3RvcmFnZSI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCiAgICAgICAgIk5GQSBTdGF0ZXMgUGVhayI6IDMsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCkBAIC0xNTkyLDYgKzE2MjYsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIiwrCiAgICAgICAgIlBh dHRlcm4iOiAiYSBiIGMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgIk5hdiBNYXJrIExvb2tiYWNrIjogMCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5 IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAg ICAgIk1heGltdW0gU3RvcmFnZSI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCiAgICAgICAgIk5GQSBTdGF0ZXMgUGVhayI6IDIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCkBAIC0xNjcyLDYgKzE3MDcsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIldpbmRvdyI6ICJ3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIiwr CiAgICAgICAgIlBhdHRlcm4iOiAiKGEgfCBiKXs4fSIsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5hdiBNYXJrIExvb2tiYWNrIjogMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIlN0b3Jh Z2UiOiAiTWVtb3J5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCiAgICAgICAgIk1heGltdW0gU3RvcmFnZSI6IDAsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk5GQSBTdGF0ZXMgUGVhayI6IDE3 LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCkBAIC0xNzU1 LDYgKzE3OTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgPERpc2FibGVkPmZhbHNlPC9EaXNh YmxlZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAg ICAgIDxXaW5kb3c+dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKTwvV2luZG93PisKICAgICAgICA8UGF0dGVybj5hIGI8L1BhdHRlcm4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPE5h di1NYXJrLUxvb2tiYWNrPjA8L05hdi1NYXJrLUxvb2tiYWNrPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwogICAgICAgIDxTdG9yYWdlPk1lbW9yeTwvU3RvcmFnZT4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICA8TWF4aW11bS1T dG9yYWdlPjA8L01heGltdW0tU3RvcmFnZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCiAgICAgICAgPE5GQS1TdGF0ZXMtUGVhaz4yPC9ORkEtU3RhdGVzLVBlYWs+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwpAQCAtMTgzNyw2ICsxODc0LDcgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9OTAuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHAucCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5G QSBTdGF0ZXM6IDMgcGVhaywgMTY1IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAy IHBlYWssIDkzIHRvdGFsLCAwIHBydW5lZApAQCAtMTg0OCw3ICsxODg2LDcgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICAgLT4gIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz05MC4wMCBsb29wcz0x KQogICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHAg KGFjdHVhbCByb3dzPTMuMDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyB2IChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0zKQotKDE0 IHJvd3MpCisoMTUgcm93cykKIAogLS0gRGlmZmVyZW50IHBhdHRlcm4gYmVoYXZpb3IgcGVyIHBh cnRpdGlvbgogQ1JFQVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwpAQCAtMTg5Myw2ICsxOTMx LDcgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIChDQVNFIFdIRU4gKHYudiA8PSAyNSkg VEhFTiAxIEVMU0UgMiBFTkQpIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczog MyBwZWFrLCA3NyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MiB0 b3RhbCwgMjEgcHJ1bmVkCkBAIC0xOTAyLDcgKzE5NDEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg ICAgICBTb3J0IEtleTogKENBU0UgV0hFTiAodi52IDw9IDI1KSBUSEVOIDEgRUxTRSAyIEVORCkK ICAgICAgICAgIFNvcnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogTmtCCiAgICAgICAgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgdiAoYWN0dWFsIHJvd3M9NTAuMDAg bG9vcHM9MSkKLSgxMiByb3dzKQorKDEzIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gRWRnZSBDYXNlcwpA QCAtMTkzOCw4ICsxOTc3LDkgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MC4wMCBsb29wcz0xKQotKDQgcm93cykKKyg1IHJvd3MpCiAKIC0tIFNpbmds ZSByb3cKIENSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKQEAgLTE5NzIsMTIg KzIwMTIsMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MS4wMCBs b29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogMiBwZWFrLCAyIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDIg dG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDEvMS8xLjApLCAwIG1pc21h dGNoZWQKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0xLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gUGF0dGVybiBsb25n ZXIgdGhhbiBkYXRhCiBDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9wYXR0ZXJuX2xvbmdlciBBUwpA QCAtMjAxNCwxMiArMjA1NSwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz01LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiBjIGQgZSBmIGcg aCBpIGoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDYgdG90YWwsIDAgbWVyZ2Vk CiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNiB0b3RhbCwgNCBwcnVuZWQKICAgIE5GQTogMCBt YXRjaGVkLCAxIG1pc21hdGNoZWQgKGxlbiA1LzUvNS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4g b24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUuMDAgbG9vcHM9MSkKLSg4IHJvd3Mp CisoOSByb3dzKQogCiAtLSBBbGwgcm93cyBtYXRjaCBhcyBzaW5nbGUgbWF0Y2gKIENSRUFURSBW SUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9tYXRjaCBBUwpAQCAtMjA1MiwxMyArMjA5NCwxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9y YWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWss IDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwg MCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNTAvNTAvNTAuMCksIDAgbWlzbWF0Y2hl ZAogICAgTkZBOiA0OSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29w cz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIENvbXBsZXggUGF0dGVybiBU ZXN0cwpAQCAtMjA5NCwxMyArMjEzNywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChh Y3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicg YycpKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDgxIHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDYxIHRvdGFsLCAyMCBwcnVuZWQKICAgIE5GQTog MSBtYXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOSBhYnNv cmJlZCAobGVuIDMvMy8zLjApLCAyMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0x KQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBNdWx0aXBsZSBhbHRlcm5hdGlvbnMKIENSRUFU RSBWSUVXIHJwcl9ldl9jcHhfbXVsdGlfYWx0IEFTCkBAIC0yMTM3LDEzICsyMTgxLDE0IEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIpIChjIHwgZCB8IGUpCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogNiBwZWFrLCA0MjMgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMg cGVhaywgMTAxIHRvdGFsLCA0MCBwcnVuZWQKICAgIE5GQTogMjAgbWF0Y2hlZCAobGVuIDIvMi8y LjApLCAyMCBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMjAg c2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChh Y3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gT3B0 aW9uYWwgZWxlbWVudHMKIENSRUFURSBWSUVXIHJwcl9ldl9jcHhfb3B0aW9uYWwgQVMKQEAgLTIx NzYsMTMgKzIyMjEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9 NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiPyBjCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogMyBwZWFrLCA2NCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0 czogMyBwZWFrLCA1MSB0b3RhbCwgMjUgcHJ1bmVkCiAgICBORkE6IDEyIG1hdGNoZWQgKGxlbiAz LzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwg MTIgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gQm91bmRlZCBxdWFudGlmaWVycwogQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9ib3Vu ZGVkIEFTCkBAIC0yMjE1LDEzICsyMjYxLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezIs NX0gYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDkgcGVhaywgMzExIHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiA3IHBlYWssIDEwMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTog MTAgbWF0Y2hlZCAobGVuIDYvNi82LjApLCA0MCBtaXNtYXRjaGVkIChsZW4gNi82LzYuMCkKICAg IE5GQTogMCBhYnNvcmJlZCwgNTAgc2tpcHBlZCAobGVuIDEvNS8zLjApCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEp Ci0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFN0YXIgcXVhbnRpZmllcgogQ1JFQVRFIFZJRVcg cnByX2V2X2NweF9zdGFyIEFTCkBAIC0yMjU0LDEzICsyMzAxLDE0IEBAIFdJTkRPVyB3IEFTICgK ICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMg KFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IGEgYiogYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTEgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTEgdG90YWwsIDQwIHBydW5lZAog ICAgTkZBOiA1IG1hdGNoZWQgKGxlbiA5LzkvOS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAg YWJzb3JiZWQsIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3Mp CisoMTAgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBSZWFsLXdvcmxkIFBhdHRlcm4gRXhhbXBsZXMKQEAg LTIyOTYsMTMgKzIzNDQsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MzAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogZCsiIHUrCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgogICAgTkZBIFN0YXRlczogNCBwZWFrLCA1OCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMyBwZWFrLCAzMSB0b3RhbCwgMyBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4g My8xNC84LjApLCAxIG1pc21hdGNoZWQgKGxlbiAzLzMvMy4wKQogICAgTkZBOiA5IGFic29yYmVk IChsZW4gMS8xLzEuMCksIDE0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9uZmFfY29tcGxleCAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3Mp CisoMTAgcm93cykKIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUs IGRvd24pCiBDUkVBVEUgVklFVyBycHJfZXZfcmVhbF9wZWFrIEFTCkBAIC0yMzM1LDEzICsyMzg0 LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3Bz PTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IHUrIiBzKiBkKworICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBT dGF0ZXM6IDUgcGVhaywgNzYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVh aywgMzEgdG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDQgbWF0Y2hlZCAobGVuIDMvMTEvNy4yKSwg MCBtaXNtYXRjaGVkCiAgICBORkE6IDEyIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEzIHNraXBw ZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfY29tcGxleCAoYWN0 dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQ29uc2Vj dXRpdmUgaW5jcmVhc2luZyB2YWx1ZXMgKHVzaW5nIFBSRVYpCiBDUkVBVEUgVklFVyBycHJfZXZf cmVhbF9pbmNyZWFzaW5nIEFTCkBAIC0yMzc0LDEzICsyNDI0LDE0IEBAIFdJTkRPVyB3IEFTICgK ICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMg KFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IGF7Myx9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTkgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAg ICBORkE6IDEgbWF0Y2hlZCAobGVuIDUwLzUwLzUwLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTog NDkgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMCBza2lwcGVkCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJv d3MpCisoMTAgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBQZXJmb3JtYW5jZS1vcmllbnRlZCBUZXN0cwpA QCAtMjQxNiwxMyArMjQ2NywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz0xMDAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYgorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBO a0IKICAgIE5GQSBTdGF0ZXM6IDIgcGVhaywgMTAwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBD b250ZXh0czogMiBwZWFrLCAxMDAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiA1MDAgbWF0Y2hl ZCAobGVuIDIvMi8yLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgNTAwIHNr aXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTEwMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykK IAogLS0gTGFyZ2UgZGF0YXNldCB3aXRoIGFic29ycHRpb24KIENSRUFURSBWSUVXIHJwcl9ldl9w ZXJmX2xhcmdlX2Fic29yYiBBUwpAQCAtMjQ1NSwxMyArMjUwNywxNCBAQCBXSU5ET1cgdyBBUyAo CiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxOTkxIHRv dGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEwMDEgdG90YWwsIDAgcHJ1 bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAxMDAvMTAwLzEwMC4wKSwgMCBtaXNtYXRjaGVk CiAgICBORkE6IDk4MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8x LzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0xMDAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEhpZ2ggc3Rh dGUgbWVyZ2UgcmF0aW8KIENSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2hpZ2hfbWVyZ2UgQVMKQEAg LTI0OTQsMTMgKzI1NDcsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9NTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikrIGMKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiA5IHBlYWssIDMwMDYgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgNTAxIHRvdGFsLCAxIHBydW5lZAogICAgTkZBOiAxNjYgbWF0 Y2hlZCAobGVuIDMvMy8zLjApLCAxIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAw IGFic29yYmVkLCAzMzIgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCi0oOSBy b3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSU5JVElBTCB2cyBubyBJTklUSUFMIGNvbXBh cmlzb24KQEAgLTI1MzgsMTMgKzI1OTIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAo YWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBtYXRj aGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAzMCBhYnNvcmJlZCAobGVu IDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93 cykKKygxMCByb3dzKQogCiAtLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlv ciBjdXJyZW50bHkpCiBDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRob3V0IEFTCkBAIC0y NTc3LDEzICsyNjMyLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dz PTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0 czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDUv NS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMzAgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwg MTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLSBRdWFudGlmaWVyIFZhcmlhdGlvbnMKQEAgLTI2MTksMTMgKzI2NzUs MTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczog MyBwZWFrLCA3MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA0MSB0 b3RhbCwgMTAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNt YXRjaGVkCiAgICBORkE6IDIwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDAgc2tpcHBlZAogICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAw IGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFN0YXIgcXVhbnRpZmllciAoemVy byBvciBtb3JlKQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3N0YXIgQVMKQEAgLTI2NTgsMTMg KzI3MTUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAg bG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSoiIGIKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiA0IHBlYWssIDEwMiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBw ZWFrLCA0MSB0b3RhbCwgMTAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4w KSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDEwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNr aXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAK IC0tIFF1ZXN0aW9uIG1hcmsgKHplcm8gb3Igb25lKQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50 X3F1ZXN0aW9uIEFTCkBAIC0yNjk3LDEzICsyNzU1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGE/IGIgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgODIgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDEwIHBydW5lZAogICAgTkZB OiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29y YmVkLCAyMCBza2lwcGVkIChsZW4gMS8yLzEuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygx MCByb3dzKQogCiAtLSBFeGFjdCBjb3VudCB7bn0KIENSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9l eGFjdCBBUwpAQCAtMjczNiwxMyArMjc5NSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdn IChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezN9 IGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDUxIHRvdGFsLCAwIG1lcmdlZAog ICAgTkZBIENvbnRleHRzOiA1IHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBt YXRjaGVkIChsZW4gNC80LzQuMCksIDEwIG1pc21hdGNoZWQgKGxlbiA0LzQvNC4wKQogICAgTkZB OiAwIGFic29yYmVkLCAzMCBza2lwcGVkIChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkg cm93cykKKygxMCByb3dzKQogCiAtLSBSYW5nZSB7bixtfQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1 YW50X3JhbmdlIEFTCkBAIC0yNzc1LDEzICsyODM1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGF7Miw0fSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBN YXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAxMDEgdG90YWwsIDAg bWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAgICBO RkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJz b3JiZWQsIDQwIHNraXBwZWQgKGxlbiAxLzQvMi41KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQor KDEwIHJvd3MpCiAKIC0tIEF0IGxlYXN0IHtuLH0KIENSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9h dGxlYXN0IEFTCkBAIC0yODE0LDEzICsyODc1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dB Z2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7 Myx9IiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA4NiB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTog NSBtYXRjaGVkIChsZW4gMTAvMTAvMTAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiA0MCBhYnNv cmJlZCAobGVuIDEvMS8xLjApLCA1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEp Ci0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUmVncmVzc2lvbiBUZXN0cyBmb3Ig U3RhdGlzdGljcyBBY2N1cmFjeQpAQCAtMjg1NywxMyArMjkxOSwxNCBAQCBXSU5ET1cgdyBBUyAo CiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgMzcgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMjEgdG90YWwsIDAgcHJ1bmVkCiAg ICBORkE6IDQgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTIg YWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgNCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29w cz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBWZXJpZnkgY29udGV4dCBjb3VudCB3aXRo IGtub3duIGFic29ycHRpb24KIENSRUFURSBWSUVXIHJwcl9ldl9yZWdfY3R4X2Fic29yYiBBUwpA QCAtMjg5NiwxMyArMjk1OSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz0zMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYiBjCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA1MiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBD b250ZXh0czogMyBwZWFrLCAzMSB0b3RhbCwgNiBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChs ZW4gOS85LzkuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8x LjApLCAzIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEw IHJvd3MpCiAKIC0tIFZlcmlmeSBtYXRjaCBsZW5ndGggd2l0aCBmaXhlZC1sZW5ndGggcGF0dGVy bgogQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19tYXRjaGxlbiBBUwpAQCAtMjkzNSwxMyArMjk5OSwx NCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0x KQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDIgcGVhaywgMzEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMzEg dG90YWwsIDEwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlz bWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zMC4w MCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEFsdGVybmF0aW9u IFBhdHRlcm4gVGVzdHMKQEAgLTI5NzcsMTMgKzMwNDIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IChhIHwgYikgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgMzAzIHRvdGFs LCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgNDAgcHJ1bmVk CiAgICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMjAgbWlzbWF0Y2hlZCAobGVuIDIv Mi8yLjApCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEp Ci0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIGl0ZW1zIGluIGFsdGVybmF0aW9u CiBDUkVBVEUgVklFVyBycHJfZXZfYWx0X211bHRpX2l0ZW0gQVMKQEAgLTMwMjAsMTMgKzMwODYs MTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYiB8IGMgfCBkKSBlCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogNiBwZWFrLCA1MDUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4 dHM6IDMgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4g Mi8yLzIuMCksIDYwIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVk LCAyMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rl c3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAt LSBBbHRlcm5hdGlvbiB3aXRoIHF1YW50aWZpZXJzCiBDUkVBVEUgVklFVyBycHJfZXZfYWx0X3dp dGhfcXVhbnQgQVMKQEAgLTMwNTksMTMgKzMxMjYsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRv d0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog KGEgfCBiKSsgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDkgcGVhaywgMzA2IHRvdGFsLCAw IG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDUxIHRvdGFsLCAxIHBydW5lZAogICAg TkZBOiAxNiBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDEgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjAp CiAgICBORkE6IDAgYWJzb3JiZWQsIDMyIHNraXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIGFsdGVybmF0aXZlcyAoNCsp CiBDUkVBVEUgVklFVyBycHJfZXZfYWx0X2ZvdXJfcGx1cyBBUwpAQCAtMzA5NiwxMiArMzE2NCwx MyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiIHwgYyB8IGQgfCBlKQorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgNjA2IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRl eHRzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAwIG1hdGNoZWQgKGxl biAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93 cykKIAogLS0gQWx0ZXJuYXRpb24gYXQgc3RhcnQKIENSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRf c3RhcnQgQVMKQEAgLTMxMzIsMTMgKzMyMDEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEg fCBiKSBjIGQKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDE4MyB0b3RhbCwgMCBt ZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwgMTYgcHJ1bmVkCiAgICBO RkE6IDE1IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMTQgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjAp CiAgICBORkE6IDAgYWJzb3JiZWQsIDE1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIHNlcXVlbnRpYWwgYWx0ZXJu YXRpb25zCiBDUkVBVEUgVklFVyBycHJfZXZfYWx0X3NlcXVlbnRpYWwgQVMKQEAgLTMxNjksMTIg KzMyMzksMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAw IGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikgYyAoZCB8IGUpIGYKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiA1IHBlYWssIDMzNyB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDY3IHBydW5lZAogICAgTkZBOiAwIG1hdGNo ZWQsIDMzIG1pc21hdGNoZWQgKGxlbiAyLzQvMy4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDggcm93cykK Kyg5IHJvd3MpCiAKIC0tIFF1YW50aWZpZWQgYWx0ZXJuYXRpdmVzCiBDUkVBVEUgVklFVyBycHJf ZXZfYWx0X3F1YW50aWZpZWQgQVMKQEAgLTMyMDUsMTMgKzMyNzYsMTQgQEAgV0lORE9XIHcgQVMg KAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGErIiB8IGIrIikgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDUgcGVhaywg MjIzIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAx IHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4gMi8yLzIuMCksIDE5IG1pc21hdGNoZWQg KGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVkIChsZW4gMS8xLzEu MCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz02MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBh dCBlbmQKIENSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfZW5kIEFTCkBAIC0zMjQyLDEzICszMzE0 LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3Bz PTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiAoYyB8IGQpCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogMyBwZWFrLCA4OSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBw ZWFrLCA2MSB0b3RhbCwgMzIgcHJ1bmVkCiAgICBORkE6IDE0IG1hdGNoZWQgKGxlbiAzLzMvMy4w KSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDE0IHNraXBwZWQgKGxlbiAxLzEv MS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTYwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE5lc3RlZCBBTFQg YXQgc3RhcnQgb2YgYnJhbmNoIGluc2lkZSBvdXRlciBBTFQKIC0tIFBhdHRlcm46IChBICgoQiB8 IEMpIEQgfCBFKSkgLSBwcmVjZWRpbmcgVkFSICsgaW5uZXIgQUxUIGFzIGZpcnN0IGJyYW5jaCBl bGVtZW50CkBAIC0zMjgwLDEyICszMzUzLDEzIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgKChi IHwgYykgZCB8IGUpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5 ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNCBwZWFrLCAzNyB0b3RhbCwg MCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAyMSB0b3RhbCwgMTcgcHJ1bmVkCiAg ICBORkE6IDAgbWF0Y2hlZCwgMyBtaXNtYXRjaGVkIChsZW4gMy8zLzMuMCkKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0x KQotKDggcm93cykKKyg5IHJvd3MpCiAKIC0tIE5lc3RlZCBBTFQgYXQgZW5kIG9mIGJyYW5jaCBp bnNpZGUgb3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQyAoQSB8IEIpIHwgRCkgLSBpbm5lciBBTFQg aXMgbGFzdCBlbGVtZW50IGluIG91dGVyIGJyYW5jaApAQCAtMzMxNywxMiArMzM5MSwxMyBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYyAoYSB8IGIpIHwgZCkKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3Rh dGVzOiA1IHBlYWssIDczIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWss IDIxIHRvdGFsLCAxMCBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDUg bWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSByb3dz KQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIEdyb3VwIFBhdHRlcm4gVGVzdHMKQEAgLTMzNTgsMTMgKzM0MzMsMTQg QEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkK ICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogNCBwZWFrLCA2MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA0 MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNDAvNDAvNDAuMCksIDAg bWlzbWF0Y2hlZAogICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDIvMi8yLjApLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBH cm91cCB3aXRoIGJvdW5kZWQgcXVhbnRpZmllcgogQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3Vu ZGVkIEFTCkBAIC0zMzk3LDEzICszNDczLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIGIp ezIsNH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDUxIHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFsLCA1IHBydW5lZAogICAgTkZBOiA1 IG1hdGNoZWQgKGxlbiA4LzgvOC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQs IDMwIHNraXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJv d3MpCiAKIC0tIE5lc3RlZCBncm91cHMKIENSRUFURSBWSUVXIHJwcl9ldl9ncnBfbmVzdGVkIEFT CkBAIC0zNDM2LDEzICszNTEzLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTYwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICgoYScgYicpezJ9 JykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNzYgdG90YWwsIDAgbWVyZ2Vk CiAgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDE1IHBydW5lZAogICAgTkZBOiAx IG1hdGNoZWQgKGxlbiA2MC82MC82MC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE0IGFic29y YmVkIChsZW4gNC80LzQuMCksIDMwIHNraXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEp Ci0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIERlZXAgbmVzdGluZyAoMysgbGV2ZWxzKQogQ1JF QVRFIFZJRVcgcnByX2V2X2dycF9kZWVwIEFTCkBAIC0zNDczLDEzICszNTUxLDE0IEBAIFdJTkRP VyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5k b3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IChhIHwgYikrCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNiBwZWFr LCAyNDMgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWws IDAgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDQwLzQwLzQwLjApLCAwIG1pc21hdGNo ZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzkgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9v cHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQm91bmRlZCBxdWFudGlmaWVyIG9uIGFs dGVybmF0aW9uCiBDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWRfYWx0IEFTCkBAIC0zNTEw LDEzICszNTg5LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYw LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYil7MiwzfSBjCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgogICAgTkZBIFN0YXRlczogOCBwZWFrLCAzMjAgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEg Q29udGV4dHM6IDMgcGVhaywgNjEgdG90YWwsIDIgcHJ1bmVkCiAgICBORkE6IDE5IG1hdGNoZWQg KGxlbiAzLzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNv cmJlZCwgMzggc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCiso MTAgcm93cykKIAogLS0gTmVzdGVkIGdyb3VwcyB3aXRoIHF1YW50aWZpZXJzCiBDUkVBVEUgVklF VyBycHJfZXZfZ3JwX25lc3RlZF9xdWFudCBBUwpAQCAtMzU0NywxMyArMzYyNywxNCBAQCBXSU5E T1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogICAgV2lu ZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiAoKGEnIGInKSsiIGMpKgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDkgcGVhaywgMTc4IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDYx IHRvdGFsLCAyMCBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4gMC81Ny8xOS4wKSwgMCBt aXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDM3IHNraXBwZWQgKGxlbiAxLzMvMi4wKQog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYw LjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFBhcnRpYWwgbmVzdGVkIHF1 YW50aWZpY2F0aW9uCiBDUkVBVEUgVklFVyBycHJfZXZfZ3JwX3BhcnRpYWxfcXVhbnQgQVMKQEAg LTM1ODQsMTMgKzM2NjUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9NjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgKGIgYykrKSoKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiA3IHBlYWssIDE2MCB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjAgcHJ1bmVkCiAgICBORkE6IDMgbWF0Y2hl ZCAobGVuIDAvNTcvMTkuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzNyBz a2lwcGVkIChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQog CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIFdpbmRvdyBGdW5jdGlvbiBDb21iaW5hdGlvbnMKQEAgLTM2MjYsMTMgKzM3 MDgsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9v cHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3Rh dGVzOiAzIHBlYWssIDU1IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWss IDMxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiA2IG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBt aXNtYXRjaGVkCiAgICBORkE6IDE4IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDYgc2tpcHBlZCAo bGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gZmly c3RfdmFsdWUgd2l0aCBwYXR0ZXJuCiBDUkVBVEUgVklFVyBycHJfZXZfd2ZuX2ZpcnN0X3ZhbHVl IEFTCkBAIC0zNjY1LDEzICszNzQ4LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFj dHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA1NSB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogMiBwZWFrLCAzMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogNiBtYXRjaGVk IChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEv MS8xLjApLCA2IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQor KDEwIHJvd3MpCiAKIC0tIGxhc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCiBDUkVBVEUgVklFVyBycHJf ZXZfd2ZuX2xhc3RfdmFsdWUgQVMKQEAgLTM3MDQsMTMgKzM3ODgsMTQgQEAgV0lORE9XIHcgQVMg KAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDU1IHRvdGFs LCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDMxIHRvdGFsLCAwIHBydW5lZAog ICAgTkZBOiA2IG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE4 IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDYgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9v cHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gTXVsdGlwbGUgd2luZG93IGZ1bmN0aW9u cwogQ1JFQVRFIFZJRVcgcnByX2V2X3dmbl9tdWx0aSBBUwpAQCAtMzc0OSwxMyArMzgzNCwxNCBA QCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQog ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMg cGVhaywgNTUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMzEgdG90 YWwsIDAgcHJ1bmVkCiAgICBORkE6IDYgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNo ZWQKICAgIE5GQTogMTggYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgNiBza2lwcGVkIChsZW4gMS8x LzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0zMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIERF RklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKQEAgLTM3OTUsMTMgKzM4ODEsMTQgQEAgV0lORE9X IHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdl OiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDc4 IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCA2IHBy dW5lZAogICAgTkZBOiAxNyBtYXRjaGVkIChsZW4gMi8zLzIuNiksIDAgbWlzbWF0Y2hlZAogICAg TkZBOiAxMCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxNyBza2lwcGVkIChsZW4gMS8xLzEuMCkK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01 MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBVc2luZyBQUkVWIGZ1bmN0 aW9uCiBDUkVBVEUgVklFVyBycHJfZXZfZGVmX3ByZXYgQVMKQEAgLTM4NDAsMTIgKzM5MjcsMTMg QEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkK ICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogcyB1KyBkKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDEK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDYwIHBlYWssIDQ2NiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMzEgcGVhaywg MzEgdG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDAgbWF0Y2hlZCwgMjkgbWlzbWF0Y2hlZCAobGVu IDIvMzAvMTYuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChh Y3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQotKDggcm93cykKKyg5IHJvd3MpCiAKIC0tIFVzaW5n IDEtYXJnIFBSRVYgKGltcGxpY2l0IG9mZnNldCAxKQogQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9w cmV2MSBBUwpAQCAtMzk2NCwxMyArNDA1MiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdn IChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIg YgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBT dG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNTUgdG90YWwsIDAgbWVyZ2VkCiAg ICBORkEgQ29udGV4dHM6IDIgcGVhaywgMzEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDYgbWF0 Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTggYWJzb3JiZWQgKGxl biAxLzEvMS4wKSwgNiBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyB2IChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQotKDkgcm93 cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZp Y2F0aW9uCkBAIC00MDA2LDEzICs0MDk1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIg YiBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVt IFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA4NTEgdG90YWwsIDAgbWVyZ2Vk CiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTAxIHRvdGFsLCAxMDEgcHJ1bmVkCiAgICBORkE6 IDUwIG1hdGNoZWQgKGxlbiA4LzkvOS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDI5OSBhYnNv cmJlZCAobGVuIDEvMS8xLjApLCA1MCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MDAuMDAgbG9vcHM9 MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwog Q1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2ggQVMKQEAgLTQwNDUsMTMgKzQxMzUs MTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3Bz PTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDIgcGVhaywgNTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUw MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMjUwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMCBt aXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDI1MCBza2lwcGVkIChsZW4gMS8xLzEuMCkK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01 MDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gSGlnaCBza2lwIGNvdW50 IHNjZW5hcmlvCiBDUkVBVEUgVklFVyBycHJfZXZfc2NhbGVfaGlnaF9za2lwIEFTCkBAIC00MDk0 LDEzICs0MTg1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUw MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgYyBkIGUKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDUwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMyBwZWFrLCA1MDEgdG90YWwsIDQ5MCBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChs ZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA1IHNraXBwZWQg KGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLQog LS0gUGxhbm5lciBvcHRpbWl6YXRpb246IG9wdGltaXplX3dpbmRvd19jbGF1c2VzIG11c3Qgbm90 IGFsdGVyIFJQUiBmcmFtZQpAQCAtNDE0OSwxMCArNDI0MSwxMSBAQCBFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gcnByX2V2X29wdF93aXRoX3JwcjsKICAgIC0+ICBXaW5kb3dBZ2cK ICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcy52IFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAg ICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAtPiAgU29ydAogICAgICAgICAg ICAgICAgU29ydCBLZXk6IHMudgogICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMKLSg3IHJvd3MpCisoOCByb3dzKQogCiAtLQogLS0gUGxhbm5lciBv cHRpbWl6YXRpb246IG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dzIHRoYXQgc2hhcmUgdGhlIHNhbWUg YmFzZSBmcmFtZQpAQCAtNDE3OCwxMiArNDI3MSwxMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gcnByX2V2X29wdF9taXhlZDsKICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAg IFdpbmRvdzogd19ycHIgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKKyAgICAgICAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAgICAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICAg ICAgICBXaW5kb3c6IHdfbm9ybWFsIEFTIChPUkRFUiBCWSBzLnYgUk9XUyBVTkJPVU5ERUQgUFJF Q0VESU5HKQogICAgICAgICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgICAgICAgIFNv cnQgS2V5OiBzLnYKICAgICAgICAgICAgICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tCiAtLSBQbGFubmVyIG9w dGltaXphdGlvbjogZmluZF93aW5kb3dfcnVuX2NvbmRpdGlvbnMgbXVzdCBub3QgcHVzaCBkb3du CkBAIC00MjQyLDggKzQzMzYsMTMzIEBAIFNFTEVDVCAqIEZST00gKAogICAgLT4gIFdpbmRvd0Fn ZwogICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKwor ICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAg ICAgICAgICBTb3J0IEtleTogcy52CiAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcwotKDggcm93cykKKyg5IHJvd3MpCisKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTmF2 IE1hcmsgTG9va2JhY2sgVGVzdHMKKy0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQgbmF2aWdh dGlvbiBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KKy0tIExvb2tiYWNrOiBob3cgZmFyIGJh Y2sgZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQcmVwYXJlIHN0YXRl bWVudCBmb3IgaG9zdCB2YXJpYWJsZSBvZmZzZXQgdGVzdCBiZWxvdworUFJFUEFSRSBycHJfbmF2 X29mZnNldF9wcmVwKGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgdiA+IFBSRVYodiwgJDEpCispOworLS0gTm8gbmF2aWdhdGlvbiBmdW5jdGlv bjogb2Zmc2V0IDAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEErKQorICAgIERFRklORSBBIEFTIHYgPiAwCispOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93 cykKKworLS0gTkVYVCBvbmx5OiBubyBiYWNrd2FyZCBuYXZpZ2F0aW9uLCBvZmZzZXQgMAorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgdiA8IE5FWFQodikKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdn CisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBQ UkVWKHYpOiBpbXBsaWNpdCBvZmZzZXQgMQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodikKKyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEr IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBQUkVWKHYsIDMpOiBleHBsaWNpdCBjb25zdGFu dCBvZmZzZXQgMworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSspCisgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodiwgMykKKyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1h cmsgTG9va2JhY2s6IDMKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz CisoNSByb3dzKQorCistLSBUd28gUFJFViB3aXRoIGRpZmZlcmVudCBvZmZzZXRzOiBtYXgoMSwg NSkgPSA1CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBQUkVWKHYsIDEpIDwgdiBBTkQgUFJFVih2LCA1KSA8IHYKKyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDUKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBIb3N0IHZhcmlhYmxlIG9mZnNldDogY3Vz dG9tIHBsYW4gcmVzb2x2ZXMgJDE9MiB0byBjb25zdGFudCAyCitFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcnByX25hdl9vZmZzZXRfcHJlcCgyKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29r YmFjazogMgorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJv d3MpCisKKy0tIEZvcmNlIGdlbmVyaWMgcGxhbjogb2Zmc2V0IGJlY29tZXMgInJ1bnRpbWUiIChQ YXJhbSBub2RlKQorU0VUIHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0VY UExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfbmF2X29mZnNldF9wcmVwKDIpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiBydW50aW1lCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKIAorUkVTRVQgcGxhbl9jYWNoZV9tb2RlOworREVB TExPQ0FURSBycHJfbmF2X29mZnNldF9wcmVwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfaW50ZWdyYXRpb24ub3V0CmluZGV4IGY5ZjcwYTgxNGNhLi45ZGJmMGY0M2M4ZiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dApAQCAtNjcs MTAgKzY3LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAogIFdpbmRvd0FnZwogICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIrCisgICBOYXYgTWFyayBMb29rYmFjazog MQogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9pbnRlZwotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQTIuIFJ1 biBjb25kaXRpb24gcHVzaGRvd24gYnlwYXNzCkBAIC0xMTcsMTAgKzExOCwxMSBAQCBTRUxFQ1Qg KiBGUk9NICgKICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2ti YWNrOiAxCiAgICAgICAgICAtPiAgU29ydAogICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9p bnRlZy5pZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDggcm93 cykKKyg5IHJvd3MpCiAKIC0tIFZlcmlmeSB0aGF0IHRoZSBSUFIgcXVlcnkgc3RpbGwgcmV0dXJu cyBldmVyeSByb3cgd2hvc2UgbWF0Y2ggY291bnQgaXMKIC0tIGdyZWF0ZXIgdGhhbiB6ZXJvLCBj b25maXJtaW5nIHRoZSBmaWx0ZXIgaXMgZXZhbHVhdGVkIGFib3ZlIHRoZQpAQCAtMTkwLDEwICsx OTIsMTEgQEAgRlJPTSBycHJfaW50ZWc7CiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5k b3c6IHcxIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICBOYXYgTWFy ayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgIFNvcnQgS2V5 OiBpZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDggcm93cykK Kyg5IHJvd3MpCiAKIC0tIFZlcmlmeSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gaW5kZXBl bmRlbnQgY291bnRzIHBlciByb3csCiAtLSBjb25maXJtaW5nIHRoZXkgd2VyZSBub3QgbWVyZ2Vk IGludG8gYSBzaW5nbGUgV2luZG93QWdnLgpAQCAtMjUwLDEwICsyNTMsMTEgQEAgRlJPTSBycHJf aW50ZWc7CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcxIEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBh IGIrCisgICBOYXYgTWFyayBMb29rYmFjazogMQogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQg S2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDYgcm93cykKKyg3 IHJvd3MpCiAKIC0tIFR3byBpbmxpbmUgUlBSIHdpbmRvd3Mgd2l0aCB0aGUgc2FtZSBQQVRURVJO IGJ1dCBvcHBvc2l0ZSBERUZJTkUKIC0tIGNvbmRpdGlvbnMgbXVzdCByZW1haW4gYXMgc2VwYXJh dGUgV2luZG93QWdnIG5vZGVzLgpAQCAtMjczLDEzICsyNzcsMTUgQEAgRlJPTSBycHJfaW50ZWc7 CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIrCisg ICBOYXYgTWFyayBMb29rYmFjazogMQogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93 OiB3MSBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgTmF2IE1hcmsg TG9va2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBTb3J0IEtleTog aWQKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKLSg5IHJvd3MpCiso MTEgcm93cykKIAogLS0gVmVyaWZ5IHRoYXQgdGhlIHR3byB3aW5kb3dzIHJldHVybiBkaWZmZXJl bnQgY291bnRzIHBlciByb3csCiAtLSBjb25maXJtaW5nIHRoZSBERUZJTkUgY29uZGl0aW9ucyB3 ZXJlIG5vdCBjb2xsYXBzZWQgYnkgZGVkdXAuCkBAIC0zMzYsOCArMzQyLDkgQEAgU0VMRUNUIGNv dW50KCopIEZST00gKAogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAg ICBQYXR0ZXJuOiBhKyIKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0oNSByb3dzKQorKDYgcm93cykKIAogU0VMRUNUIGNv dW50KCopIEZST00gKAogICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcK QEAgLTM2OSw4ICszNzYsOSBAQCBTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKICAgIC0+ ICBXaW5kb3dBZ2cKICAgICAgICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSsiCisgICAg ICAgICBOYXYgTWFyayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9p bnRlZwotKDUgcm93cykKKyg2IHJvd3MpCiAKIFNFTEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00g KAogICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBGUk9NIHJwcl9pbnRlZwpAQCAtNDAx LDggKzQwOSw5IEBAIFNFTEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00gKAogICAgLT4gIFdpbmRv d0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKKyAgICAgICAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0o NSByb3dzKQorKDYgcm93cykKIAogU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCiAgICAg U0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCkBAIC00NDEsMTAgKzQ1 MCwxMSBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSAoCiAgICAtPiAgV2luZG93QWdnCiAgICAgICAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisg ICAgICAgICBOYXYgTWFyayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAg ICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfaW50ZWcKLSg3IHJvd3MpCisoOCByb3dzKQogCiBTRUxFQ1QgY291bnQoKikgRlJP TSAoCiAgICAgU0VMRUNUIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCkBAIC01 NTUsMTAgKzU2NSwxMSBAQCBXSEVSRSBjbnQgPiAwOwogICAgLT4gIFdpbmRvd0FnZwogICAgICAg ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKwor ICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAg ICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX2ludGVnCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBOS4gREVG SU5FIGV4cHJlc3Npb24gbm9uLXByb3BhZ2F0aW9uCkBAIC01OTUsMTIgKzYwNiwxMyBAQCBXSU5E T1cKICAgICAgICAgIE91dHB1dDogaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3X3JwcgogICAgICAg ICAgV2luZG93OiB3X3JwciBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgIFBhdHRlcm46IGEg YisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAtPiAgU29ydAogICAg ICAgICAgICAgICAgT3V0cHV0OiBpZCwgdmFsCiAgICAgICAgICAgICAgICBTb3J0IEtleTogcnBy X2ludGVnLmlkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnJwcl9pbnRl ZwogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBpZCwgdmFsCi0oMTIgcm93cykKKygxMyBy b3dzKQogCiAtLSBFeGVjdXRpbmcgdGhlIHNhbWUgcXVlcnkgc2hvd3MgdGhlIGNsaWVudCByZXN1 bHQgaXMgbGltaXRlZCB0bwogLS0gdGhlIHR3byBwcm9qZWN0ZWQgY29sdW1uczsgImlkIiBhbmQg InZhbCIgdGhhdCBhcHBlYXJlZCBpbiB0aGUKQEAgLTY1NCwxMCArNjY2LDExIEBAIExJTUlUIDU7 CiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAg IFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAt PiAgU29ydAogICAgICAgICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcnByX2ludGVnCi0oNyByb3dzKQorKDggcm93cykKIAogLS0gUmVmZXJlbmNl OiB1bi1MSU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNoIHRoZSBMSU1JVCA1IHJlc3VsdCBpcwog LS0gY29tcGFyZWQuCkBAIC03NDgsMTAgKzc2MSwxMSBAQCBTRUxFQ1QgaWQsIHZhbCwgY250IEZS T00gcnByX3Jlc3VsdCBPUkRFUiBCWSBpZDsKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAx CiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlc3Vs dCBtdXN0IG1hdGNoIHRoZSBiYXNlbGluZSByb3ctZm9yLXJvdy4KIFdJVEggcnByX3Jlc3VsdCBB UyAoCkBAIC04MDIsNiArODE2LDcgQEAgT1JERVIgQlkgcjEuaWQ7CiAgICAgIC0+ICBXaW5kb3dB Z2cKICAgICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgICBQ YXR0ZXJuOiBhIGIrCisgICAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAg IC0+ICBTb3J0CiAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKICAgICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwpAQCAtODEzLDcgKzgyOCw3IEBA IE9SREVSIEJZIHIxLmlkOwogICAgICAgICAgU29ydCBLZXk6IHIxLmlkLCByMS5jbnQKICAgICAg ICAgIC0+ICBDVEUgU2NhbiBvbiBycHJfcmVzdWx0IHIxCiAgICAgICAgICAgICAgICBGaWx0ZXI6 IChjbnQgPiAwKQotKDE3IHJvd3MpCisoMTggcm93cykKIAogLS0gUmVzdWx0OiBib3RoIHJlZmVy ZW5jZXMgc2VlIHRoZSBzYW1lIG1hdGNoIGNvdW50cywgc28gdGhlIHNlbGYtam9pbgogLS0gcHJl c2VydmVzIGFsbCBtYXRjaGVkIHJvd3MgZnJvbSB0aGUgYmFzZWxpbmUuCkBAIC04OTYsMTMgKzkx MSwxNCBAQCBPUkRFUiBCWSByLmlkOwogICAgICAgICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAg ICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgICAgICAgUGF0dGVy bjogYSBiKworICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgICAg ICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlk CiAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGouaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfaW50ZWcyIGoKLSgxMyByb3dzKQorKDE0IHJvd3MpCiAKIC0tIFJlc3VsdDogbWF0Y2hlZCBS UFIgcm93cyBhbGlnbiB3aXRoIGRpbWVuc2lvbiByb3dzIG9uIGlkLCBzaG93aW5nCiAtLSB0aGUg am9pbiBjb3JyZWN0bHkgcGFpcnMgcGVyLXJvdyBtYXRjaCBjb3VudHMgd2l0aCB0aGVpciBsYWJl bHMuCkBAIC05NjEsNiArOTc3LDcgQEAgT1JERVIgQlkgc291cmNlLCBpZDsKICAgICAgICAgICAg ICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgICAgICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAg ICAgICAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAgICAgICAgICAgICAt PiAgU29ydAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5p ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwpA QCAtOTY5LDcgKzk4Niw3IEBAIE9SREVSIEJZIHNvdXJjZSwgaWQ7CiAgICAgICAgICAgICAgICAt PiAgU29ydAogICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZ18xLmlkCiAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIHJwcl9pbnRlZ18x Ci0oMTYgcm93cykKKygxNyByb3dzKQogCiAtLSBSZXN1bHQ6IHJvd3MgZnJvbSBib3RoIGJyYW5j aGVzIGFyZSBwcmVzZW50IGluIHRoZSB1bmlvbmVkIG91dHB1dC4KIC0tIFRoZSBSUFIgYnJhbmNo IGVtaXRzIG9ubHkgbWF0Y2hlZCByb3dzIChjbnQgPiAwKSwgd2hpbGUgdGhlCkBAIC0xMDM0LDEw ICsxMDUxLDExIEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKICBX aW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiKworICAgTmF2 IE1hcmsgTG9va2JhY2s6IDEKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKLSg2IHJvd3MpCisoNyByb3dzKQogCiBF WEVDVVRFIHJwcl9wcmV2KDEpOwogIGlkIHwgdmFsIHwgY250IApAQCAtMTA2NCwxMCArMTA4Miwx MSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7CiAgV2luZG93QWdn CiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiBydW50aW1lCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0oNiByb3dzKQorKDcgcm93cykKIAogRVhF Q1VURSBycHJfcHJldigxKTsKICBpZCB8IHZhbCB8IGNudCAKQEAgLTExMTUsMTIgKzExMzQsMTMg QEAgT1JERVIgQlkgaWQ7CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJw cl9wYXJ0LmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAtPiAgU29y dAogICAgICAgICAgU29ydCBLZXk6IHJwcl9wYXJ0LmlkCiAgICAgICAgICAtPiAgQXBwZW5kCiAg ICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BhcnRfMQogICAgICAgICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wYXJ0XzIKLSg4IHJvd3MpCisoOSByb3dzKQogCiAtLSBCYXNl bGluZTogdGhlIHNhbWUgcXVlcnkgYWdhaW5zdCB0aGUgbm9uLXBhcnRpdGlvbmVkIHJwcl9pbnRl ZwogLS0gcHJvZHVjZXMgdGhlIHBlci1yb3cgcmVmZXJlbmNlIG91dHB1dC4KQEAgLTEyMDgsMTEg KzEyMjgsMTIgQEAgT1JERVIgQlkgby5pZCwgci5pZDsKICAgICAgICAgICAgICAgIC0+ICBXaW5k b3dBZ2cKICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2lu dGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgICAgICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgICAgICAgICAg IE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPD0gby5pZCkKLSgxNCByb3dzKQorKDE1 IHJvd3MpCiAKIC0tIFJlc3VsdDogZm9yIGVhY2ggb2YgdGhlIHR3byBvdXRlciBpZHMgKDUgYW5k IDEwKSwgdGhlIExBVEVSQUwKIC0tIHN1YnF1ZXJ5IHByb2R1Y2VzIFJQUiBtYXRjaCBjb3VudHMg b3ZlciB0aGUgcmVzdHJpY3RlZCBpbnB1dC4KQEAgLTEyNzksMTMgKzEzMDAsMTQgQEAgU0VMRUNU IGlkLCB2YWwsIGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKICAgICAgICAgICAgLT4gIFdpbmRv d0FnZwogICAgICAgICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5p ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAg ICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9v a2JhY2s6IDEKICAgICAgICAgICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgICAgICAg ICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAogICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX2ludGVnCiAgICAgICAgICAgIC0+ICBXb3JrVGFibGUgU2NhbiBvbiBzZXEg c2VxXzEKICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPCAzKQogICAgLT4gIENURSBTY2Fu IG9uIHNlcQotKDEzIHJvd3MpCisoMTQgcm93cykKIAogLS0gUmVzdWx0OiB0aGUgYmFzZSBsZWcg Y29udHJpYnV0ZXMgdGhlIFJQUiBtYXRjaCBjb3VudHM7IHRoZQogLS0gcmVjdXJzaXZlIGxlZyBw cm9wYWdhdGVzIHRob3NlIGNvdW50cyB3aXRoIHNoaWZ0ZWQgaWRzLgpAQCAtMTM0MywxMSArMTM2 NSwxMiBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQsIHZhbAogIFdpbmRvd0FnZwogICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCwgdmFsIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAxCiAgICAtPiAgSW5jcmVtZW50YWwgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkLCB2 YWwKICAgICAgICAgIFByZXNvcnRlZCBLZXk6IGlkCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyBycHJfaW50ZWdfaWRfaWR4IG9uIHJwcl9pbnRlZwotKDcgcm93cykKKyg4IHJvd3MpCiAK IC0tIFJlc3VsdDogUlBSIG92ZXIgdGhlIGluY3JlbWVudGFsbHkgc29ydGVkIHN0cmVhbSBwcm9k dWNlcyBtYXRjaAogLS0gY291bnRzIHBlciByb3cuCkBAIC0xNDQ5LDExICsxNDcyLDEyIEBAIE9S REVSIEJZIG8uaWQ7CiAgICAgICAgICAgICAgICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgICAg ICAgICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpLmlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgICAgICAgICAgICAgICAg UGF0dGVybjogYSBiKworICAgICAgICAgICAgICAgICAgICAgICBOYXYgTWFyayBMb29rYmFjazog MQogICAgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb3J0IEtleTogaS5pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcnByX2ludGVnIGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmlsdGVyOiAoaWQgPD0gby5pZCkKLSgxMiByb3dzKQorKDEzIHJvd3MpCiAKIC0tIFJlc3Vs dDogZWFjaCBvdXRlciByb3cgcmVjZWl2ZXMgdGhlIGZpcnN0X2NudCBmcm9tIGl0cyBvd24KIC0t IGNvcnJlbGF0ZWQgUlBSIHN1YnF1ZXJ5LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3Fs CmluZGV4IGUzMzllZGQ3ZTkxLi41MDgyY2MyYjVkZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9l eHBsYWluLnNxbApAQCAtMzYsNiArMzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rpb24gQ29tYmlu YXRpb25zCiAtLSAgIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAgTGFyZ2UgU2Nh bGUgU3RhdGlzdGljcyBWZXJpZmljYXRpb24KKy0tICAgTmF2IE1hcmsgTG9va2JhY2sgKHR1cGxl c3RvcmUgdHJpbSkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogCiAtLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIHBs YXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3QgTkZBIHN0YXRpc3RpY3MpLgpAQCAt MjQ3NiwzICsyNDc3LDczIEBAIFNFTEVDVCAqIEZST00gKAogICAgICkKICkgdCBXSEVSRSBjbnQg PiAwOwogCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIE5hdiBNYXJrIExvb2tiYWNrIFRlc3RzCistLSBWZXJpZmllcyBw bGFubmVyLWNvbXB1dGVkIG5hdmlnYXRpb24gb2Zmc2V0IGZvciB0dXBsZXN0b3JlIHRyaW0uCist LSBMb29rYmFjazogaG93IGZhciBiYWNrIGZyb20gY3VycmVudHBvcyAoUFJFVi9MQVNUKS4KKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorCistLSBQcmVwYXJlIHN0YXRlbWVudCBmb3IgaG9zdCB2YXJpYWJsZSBvZmZzZXQgdGVz dCBiZWxvdworUFJFUEFSRSBycHJfbmF2X29mZnNldF9wcmVwKGludDgpIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodiwgJDEpCispOwor CistLSBObyBuYXZpZ2F0aW9uIGZ1bmN0aW9uOiBvZmZzZXQgMAorRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IDAKKyk7 CisKKy0tIE5FWFQgb25seTogbm8gYmFja3dhcmQgbmF2aWdhdGlvbiwgb2Zmc2V0IDAKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIHYgPCBORVhUKHYpCispOworCistLSBQUkVWKHYpOiBpbXBsaWNpdCBvZmZzZXQgMQorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgdiA+IFBSRVYodikKKyk7CisKKy0tIFBSRVYodiwgMyk6IGV4cGxpY2l0IGNvbnN0YW50 IG9mZnNldCAzCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAzKQorKTsKKworLS0gVHdvIFBSRVYgd2l0 aCBkaWZmZXJlbnQgb2Zmc2V0czogbWF4KDEsIDUpID0gNQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2LCAxKSA8 IHYgQU5EIFBSRVYodiwgNSkgPCB2CispOworCistLSBIb3N0IHZhcmlhYmxlIG9mZnNldDogY3Vz dG9tIHBsYW4gcmVzb2x2ZXMgJDE9MiB0byBjb25zdGFudCAyCitFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcnByX25hdl9vZmZzZXRfcHJlcCgyKTsKKworLS0gRm9yY2UgZ2VuZXJpYyBwbGFu OiBvZmZzZXQgYmVjb21lcyAicnVudGltZSIgKFBhcmFtIG5vZGUpCitTRVQgcGxhbl9jYWNoZV9t b2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJw cl9uYXZfb2Zmc2V0X3ByZXAoMik7CitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9DQVRF IHJwcl9uYXZfb2Zmc2V0X3ByZXA7CisKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0024-Implement-FIRST-LAST-navigation-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0024-Implement-FIRST-LAST-navigation-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63o6q23 RnJvbSA2MTU3MWU3NDViNzZjODY0MTU4YzdjNTc0MTM2ZTEzYzE5MTNjNTE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDUgQXByIDIwMjYgMDA6NTY6MjAgKzA5MDAKU3ViamVjdDogW1BBVENIIDI0LzQwXSBJ bXBsZW1lbnQgRklSU1QvTEFTVCBhbmQgY29tcG91bmQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQg RklSU1QoZXhwciBbLCBvZmZzZXRdKSBhbmQgTEFTVChleHByIFssIG9mZnNldF0pIG5hdmlnYXRp b24KZnVuY3Rpb25zIGZvciBERUZJTkUgY2xhdXNlcy4gIEZJUlNUIHJlZmVyZW5jZXMgdGhlIG1h dGNoIHN0YXJ0IHJvdywKTEFTVCByZWZlcmVuY2VzIHRoZSBjdXJyZW50IHJvdy4gIEluY2x1ZGVz IHNsb3Qgc3dhcCBlbGlzaW9uLApwZXItY29udGV4dCBERUZJTkUgcmUtZXZhbHVhdGlvbiBmb3Ig bWF0Y2hfc3RhcnQtZGVwZW5kZW50IHZhcmlhYmxlcywKYW5kIHBsYW5uZXItbGV2ZWwgYWJzb3Jw dGlvbiBkaXNhYmxpbmcgd2hlbiBGSVJTVCBvciBMQVNULXdpdGgtb2Zmc2V0CmlzIHByZXNlbnQu CgpBZGQgY29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCgpKSwgTkVYVChGSVJTVCgpKSwK UFJFVihMQVNUKCkpLCBORVhUKExBU1QoKSkgcGVyIFNRTCBzdGFuZGFyZCA1LjYuNC4gIFRoZSBw YXJzZXIKZmxhdHRlbnMgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZSBjb21wb3VuZCBu b2RlIHdpdGggdHdvCm9mZnNldHMuICBUaGUgZXhlY3V0b3IgY29tcHV0ZXMgdGhlIHRhcmdldCBw b3NpdGlvbiBpbiB0d28gc3RlcHMKd2l0aCByYW5nZSB2YWxpZGF0aW9uIGF0IGVhY2ggc3RlcC4g IHJ1bGV1dGlscyByZXN0b3JlcyB0aGUgbmVzdGVkCnN5bnRheCBmb3IgZGVwYXJzaW5nLgoKRXh0 ZW5kIHR1cGxlc3RvcmUgdHJpbSB0byBoYW5kbGUgRklSU1QgbmF2aWdhdGlvbiB2aWEKaGFzRmly c3ROYXYvbmF2Rmlyc3RPZmZzZXQsIGFsbG93aW5nIG1hcmsgYWR2YW5jZSBiYXNlZCBvbgpvbGRl c3QgYWN0aXZlIGNvbnRleHQncyBtYXRjaFN0YXJ0Um93LiAgQ29tcG91bmQgb2Zmc2V0cyBhcmUK Y29tcHV0ZWQgYnkgdGhlIHVuaWZpZWQgbmF2X29mZnNldF93YWxrZXIgaW4gYSBzaW5nbGUgZXhw cmVzc2lvbgp0cmVlIHdhbGsuICBBZGQgIk5hdiBNYXJrIExvb2thaGVhZCIgdG8gRVhQTEFJTiBm b3IgRklSU1QtYmFzZWQKbmF2aWdhdGlvbi4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdp bmRvdy5zZ21sICAgICAgICB8ICA1MyArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j ICAgICAgICAgICAgfCAgNjggKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAg ICAgICAgICB8ICA1NSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAg ICAgfCAxNTUgKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICAgICAg IHwgMTUyICsrKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAgICB8 IDM0MyArKysrKysrKystLS0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAg ICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgIHwg Mzg3ICsrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAg ICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICB8 ICA3MCArKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgICAgIHwgMTEy ICsrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgIHwgIDgxICsr LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMgICAgICAgfCAgNTYgKysKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNs dWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgIHwgICA4ICstCiBzcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgfCAgMTcgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oICAgICAgICAgICAgIHwgIDMwICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aCAgICAgICAgICAgICB8ICAzNyArLQogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oICAgICAg ICAgICAgICAgfCAgMTIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAg ICAgIHwgNjUyICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByX2Jhc2Uub3V0ICAgIHwgMjU3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfZXhwbGFpbi5vdXQgfCA0MjUgKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwci5zcWwgICAgICAgICAgICAgIHwgMzc0ICsrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgICAgIHwgMTM2ICsrKystCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8IDI0MiArKysrKysrLQogc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgIDUgKwogMjcgZmlsZXMgY2hhbmdl ZCwgMzUwOSBpbnNlcnRpb25zKCspLCAyNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMt d2luZG93LnNnbWwKaW5kZXggMWI5Yjk5M2E4MTcuLmFiODA2OTBmN2JlIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5j L2Z1bmMtd2luZG93LnNnbWwKQEAgLTMzNywxMCArMzM3LDYzIEBACiAgICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0i ZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8 aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+Zmlyc3Q8L3ByaW1hcnk+CisgICAgICAgIDwv aW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+Zmlyc3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0 ZXI+dmFsdWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRl cj5vZmZzZXQ8L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKKyAgICAgICAgPHJl dHVybnZhbHVlPmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cgPHBh cmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBhZnRlciB0aGUgbWF0Y2gg c3RhcnQgcm93OworICAgICAgICByZXR1cm5zIE5VTEwgaWYgdGhlIHRhcmdldCByb3cgaXMgYmV5 b25kIHRoZSBjdXJyZW50IHJvdy4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRl cj4gZGVmYXVsdHMgdG8gMCBpZiBvbWl0dGVkLCByZWZlcnJpbmcgdG8gdGhlCisgICAgICAgIG1h dGNoIHN0YXJ0IHJvdyBpdHNlbGYuCisgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0 ZXI+IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci4KKyAgICAgICAgPHBhcmFtZXRlcj5v ZmZzZXQ8L3BhcmFtZXRlcj4gbXVzdCBub3QgYmUgTlVMTC4KKyAgICAgICAgQ2FuIG9ubHkgYmUg dXNlZCBpbiBhIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLgorICAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJv bGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAg ICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmxhc3Q8L3ByaW1hcnk+CisgICAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+bGFzdDwvZnVuY3Rpb24+ICggPHBhcmFt ZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiBbLCA8cGFyYW1l dGVyPm9mZnNldDwvcGFyYW1ldGVyPiA8dHlwZT5iaWdpbnQ8L3R5cGU+IF0gKQorICAgICAgICA8 cmV0dXJudmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAg ICAgIDxwYXJhPgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhlIHJvdyA8 cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICByb3dzIGJlZm9yZSB0aGUgY3Vy cmVudCByb3cgd2l0aGluIHRoZSBtYXRjaDsKKyAgICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0 YXJnZXQgcm93IGlzIGJlZm9yZSB0aGUgbWF0Y2ggc3RhcnQgcm93LgorICAgICAgICA8cGFyYW1l dGVyPm9mZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAwIGlmIG9taXR0ZWQsIHJlZmVycmlu ZyB0byB0aGUKKyAgICAgICAgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1ldGVy Pm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuCisgICAg ICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3Qgbm90IGJlIE5VTEwuCisgICAg ICAgIENhbiBvbmx5IGJlIHVzZWQgaW4gYSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVz ZS4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgIDwvdGJvZHk+ CiAgICAgPC90Z3JvdXA+CiAgICA8L3RhYmxlPgogCisgICA8cGFyYT4KKyAgICA8ZnVuY3Rpb24+ UFJFVjwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+TkVYVDwvZnVuY3Rpb24+IG1heSB3cmFwCisg ICAgPGZ1bmN0aW9uPkZJUlNUPC9mdW5jdGlvbj4gb3IgPGZ1bmN0aW9uPkxBU1Q8L2Z1bmN0aW9u PiBmb3IgY29tcG91bmQKKyAgICBuYXZpZ2F0aW9uLiBGb3IgZXhhbXBsZSwKKyAgICA8bGl0ZXJh bD5QUkVWKEZJUlNUKHZhbCwgMiksIDMpPC9saXRlcmFsPiBmZXRjaGVzIHRoZSB2YWx1ZSBhdAor ICAgIDMgcm93cyBiZWZvcmUgdGhlIHJvdyB0aGF0IGlzIDIgcm93cyBhZnRlciB0aGUgbWF0Y2gg c3RhcnQuCisgICAgVGhlIHJldmVyc2UgbmVzdGluZyAoPGZ1bmN0aW9uPkZJUlNUPC9mdW5jdGlv bj4vPGZ1bmN0aW9uPkxBU1Q8L2Z1bmN0aW9uPgorICAgIHdyYXBwaW5nIDxmdW5jdGlvbj5QUkVW PC9mdW5jdGlvbj4vPGZ1bmN0aW9uPk5FWFQ8L2Z1bmN0aW9uPikgaXMgbm90CisgICAgcGVybWl0 dGVkLiBTYW1lLWNhdGVnb3J5IG5lc3RpbmcgKGUuZy4sCisgICAgPGZ1bmN0aW9uPlBSRVY8L2Z1 bmN0aW9uPiBpbnNpZGUgPGZ1bmN0aW9uPlBSRVY8L2Z1bmN0aW9uPikgaXMgYWxzbworICAgIHBy b2hpYml0ZWQuCisgICA8L3BhcmE+CisKICAgPG5vdGU+CiAgICA8cGFyYT4KICAgICBUaGUgU1FM IHN0YW5kYXJkIGRlZmluZXMgYSA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9saXRlcmFsPiBvciA8bGl0 ZXJhbD5GUk9NIExBU1Q8L2xpdGVyYWw+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggMTg0OGRl OWRlN2EuLjIyMWQ5YTQ5ZTBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBs YWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjU1LDE0ICsz MjU1LDY2IEBAIHNob3dfd2luZG93X2RlZihXaW5kb3dBZ2dTdGF0ZSAqcGxhbnN0YXRlLCBMaXN0 ICphbmNlc3RvcnMsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlwZnJlZShwYXR0ZXJuU3RyKTsKIAkJ fQogCi0JCS8qIFNob3cgbmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gKi8K LQkJaWYgKHdhZ2ctPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMKQot CQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2JhY2siLCAicmV0YWluIGFsbCIs IGVzKTsKLQkJZWxzZSBpZiAod2FnZy0+bmF2TWF4T2Zmc2V0ID09IFJQUl9OQVZfT0ZGU0VUX05F RURTX0VWQUwpCi0JCQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFyayBMb29rYmFjayIsICJy dW50aW1lIiwgZXMpOwotCQllbHNlCi0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFy ayBMb29rYmFjayIsIE5VTEwsCi0JCQkJCQkJCSAgIHdhZ2ctPm5hdk1heE9mZnNldCwgZXMpOwor CQkvKgorCQkgKiBTaG93IG5hdmlnYXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLiAg Rm9yIEVYUExBSU4gQU5BTFlaRSwKKwkJICogdXNlIHRoZSBleGVjdXRvci1yZXNvbHZlZCB2YWx1 ZXMgKHdoaWNoIG1heSBkaWZmZXIgZnJvbSB0aGUgcGxhbgorCQkgKiB3aGVuIE5FRURTX0VWQUwg d2FzIHJlc29sdmVkIHRvIEZJWEVEIG9yIFJFVEFJTl9BTEwgYXQgaW5pdCkuCisJCSAqLworCQl7 CisJCQlSUFJOYXZPZmZzZXRLaW5kIG1heEtpbmQgPSB3YWdnLT5uYXZNYXhPZmZzZXRLaW5kOwor CQkJaW50NjQJCW1heE9mZnNldCA9IHdhZ2ctPm5hdk1heE9mZnNldDsKKwkJCVJQUk5hdk9mZnNl dEtpbmQgZmlyc3RLaW5kID0gd2FnZy0+bmF2Rmlyc3RPZmZzZXRLaW5kOworCQkJaW50NjQJCWZp cnN0T2Zmc2V0ID0gd2FnZy0+bmF2Rmlyc3RPZmZzZXQ7CisKKwkJCWlmIChlcy0+YW5hbHl6ZSkK KwkJCXsKKwkJCQltYXhLaW5kID0gcGxhbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5kOworCQkJCW1h eE9mZnNldCA9IHBsYW5zdGF0ZS0+bmF2TWF4T2Zmc2V0OworCQkJCWZpcnN0S2luZCA9IHBsYW5z dGF0ZS0+bmF2Rmlyc3RPZmZzZXRLaW5kOworCQkJCWZpcnN0T2Zmc2V0ID0gcGxhbnN0YXRlLT5u YXZGaXJzdE9mZnNldDsKKwkJCX0KKworCQkJc3dpdGNoIChtYXhLaW5kKQorCQkJeworCQkJCWNh c2UgUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTDoKKwkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgi TmF2IE1hcmsgTG9va2JhY2siLCAicnVudGltZSIsIGVzKTsKKwkJCQkJYnJlYWs7CisJCQkJY2Fz ZSBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMOgorCQkJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJO YXYgTWFyayBMb29rYmFjayIsICJyZXRhaW4gYWxsIiwgZXMpOworCQkJCQlicmVhazsKKwkJCQlj YXNlIFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOgorCQkJCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJO YXYgTWFyayBMb29rYmFjayIsIE5VTEwsCisJCQkJCQkJCQkJICAgbWF4T2Zmc2V0LCBlcyk7CisJ CQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg UlBSIG5hdiBvZmZzZXQga2luZDogJWQiLAorCQkJCQkJIG1heEtpbmQpOworCQkJCQlicmVhazsK KwkJCX0KKworCQkJaWYgKHdhZ2ctPmhhc0ZpcnN0TmF2KQorCQkJeworCQkJCXN3aXRjaCAoZmly c3RLaW5kKQorCQkJCXsKKwkJCQkJY2FzZSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOgorCQkJ CQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2FoZWFkIiwgInJ1bnRpbWUiLAor CQkJCQkJCQkJCQllcyk7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX09GRlNFVF9S RVRBSU5fQUxMOgorCQkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2FoZWFk IiwgInJldGFpbiBhbGwiLAorCQkJCQkJCQkJCQllcyk7CisJCQkJCQlicmVhazsKKwkJCQkJY2Fz ZSBSUFJfTkFWX09GRlNFVF9GSVhFRDoKKwkJCQkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5h diBNYXJrIExvb2thaGVhZCIsIE5VTEwsCisJCQkJCQkJCQkJCSAgIGZpcnN0T2Zmc2V0LCBlcyk7 CisJCQkJCQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29n bml6ZWQgUlBSIG5hdiBvZmZzZXQga2luZDogJWQiLAorCQkJCQkJCSBmaXJzdEtpbmQpOworCQkJ CQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQl9CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YwppbmRleCBkYmVkNGY0OGEwZi4uNjM0OWE1NjRhOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YwpAQCAtMTIyNSwxMiArMTIyNSwxNiBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhw clN0YXRlICpzdGF0ZSwKIAkJY2FzZSBUX1JQUk5hdkV4cHI6CiAJCQl7CiAJCQkJLyoKLQkJCQkg KiBSUFIgbmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBSRVYvTkVYVCkgYXJlIGNvbXBpbGVkIGludG8K LQkJCQkgKiBFRU9QX1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBp bnN0ZWFkIG9mCi0JCQkJICogYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2Rl IHN3YXBzCi0JCQkJICogZWN4dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJn dW1lbnQgZXhwcmVzc2lvbgotCQkJCSAqIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9t IHRoZSBzd2FwcGVkIHNsb3QpLCBhbmQgdGhlCi0JCQkJICogUkVTVE9SRSBvcGNvZGUgcmVzdG9y ZXMgdGhlIG9yaWdpbmFsIHNsb3QuCisJCQkJICogUlBSIG5hdmlnYXRpb24gZnVuY3Rpb25zIChQ UkVWL05FWFQvRklSU1QvTEFTVCkgYXJlCisJCQkJICogY29tcGlsZWQgaW50byBFRU9QX1JQUl9O QVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUKKwkJCQkgKiBvcGNvZGVzIGluc3RlYWQgb2Yg YSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlCisJCQkJICogc3dhcHMgZWN4 dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQKKwkJCQkgKiBleHBy ZXNzaW9uIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBzd2FwcGVkCisJCQkJ ICogc2xvdCksIGFuZCB0aGUgUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHNs b3QuCisJCQkJICoKKwkJCQkgKiBEZWZhdWx0IG9mZnNldCB3aGVuIG9mZnNldF9hcmcgaXMgTlVM TDogUFJFVi9ORVhUOiAxCisJCQkJICogKHBoeXNpY2FsIG9mZnNldCBmcm9tIGN1cnJlbnRwb3Mp IEZJUlNUL0xBU1Q6IDAgKGxvZ2ljYWwKKwkJCQkgKiBvZmZzZXQgZnJvbSBtYXRjaCBib3VuZGFy eSkKIAkJCQkgKi8KIAkJCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwog CQkJCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKQEAgLTEyNDMsMjUgKzEyNDcsNTIgQEAgRXhl Y0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJc2NyYXRjaC5k LnJwcl9uYXYud2luc3RhdGUgPSB3aW5zdGF0ZTsKIAkJCQlzY3JhdGNoLmQucnByX25hdi5raW5k ID0gbmF2LT5raW5kOwogCi0JCQkJaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCWlm IChuYXYtPmtpbmQgPj0gUlBSX05BVl9QUkVWX0ZJUlNUKQogCQkJCXsKIAkJCQkJLyoKLQkJCQkJ ICogQWxsb2NhdGUgc3RvcmFnZSBmb3IgdGhlIHJ1bnRpbWUgb2Zmc2V0IHZhbHVlLiAgVGhlCi0J CQkJCSAqIG9mZnNldCBleHByZXNzaW9uIGlzIGNvbXBpbGVkIGJlbG93IHNvIGl0IHJ1bnMgYmVm b3JlCi0JCQkJCSAqIEVFT1BfUlBSX05BVl9TRVQuCisJCQkJCSAqIENvbXBvdW5kIG5hdmlnYXRp b246IGFsbG9jYXRlIGFycmF5IG9mIDIgZm9yIGlubmVyIFswXQorCQkJCQkgKiBhbmQgb3V0ZXIg WzFdIG9mZnNldHMuCiAJCQkJCSAqLworCQkJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlcyA9IHBh bGxvY19hcnJheShEYXR1bSwgMik7CisJCQkJCWJvb2wJICAgKm9mZnNldF9pc251bGxzID0gcGFs bG9jX2FycmF5KGJvb2wsIDIpOworCisJCQkJCS8qIElubmVyIG9mZnNldCAoZGVmYXVsdCAwIGZv ciBGSVJTVC9MQVNUKSAqLworCQkJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJ CQlFeGVjSW5pdEV4cHJSZWMobmF2LT5vZmZzZXRfYXJnLCBzdGF0ZSwKKwkJCQkJCQkJCQkmb2Zm c2V0X3ZhbHVlc1swXSwgJm9mZnNldF9pc251bGxzWzBdKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJ CQkJCQlvZmZzZXRfdmFsdWVzWzBdID0gSW50NjRHZXREYXR1bSgwKTsKKwkJCQkJCW9mZnNldF9p c251bGxzWzBdID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQkvKiBPdXRlciBvZmZzZXQgKGRlZmF1 bHQgMSBmb3IgUFJFVi9ORVhUKSAqLworCQkJCQlpZiAobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn ICE9IE5VTEwpCisJCQkJCQlFeGVjSW5pdEV4cHJSZWMobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn LCBzdGF0ZSwKKwkJCQkJCQkJCQkmb2Zmc2V0X3ZhbHVlc1sxXSwgJm9mZnNldF9pc251bGxzWzFd KTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlvZmZzZXRfdmFsdWVzWzFdID0gSW50NjRHZXRE YXR1bSgxKTsKKwkJCQkJCW9mZnNldF9pc251bGxzWzFdID0gZmFsc2U7CisJCQkJCX0KKworCQkJ CQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFsdWVzOworCQkJCQlz Y3JhdGNoLmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gb2Zmc2V0X2lzbnVsbHM7CisJCQkJfQor CQkJCWVsc2UgaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCXsKKwkJCQkJLyogU2lt cGxlIG5hdmlnYXRpb24gd2l0aCBleHBsaWNpdCBvZmZzZXQgKi8KIAkJCQkJRGF0dW0JICAgKm9m ZnNldF92YWx1ZSA9IHBhbGxvY19vYmplY3QoRGF0dW0pOwogCQkJCQlib29sCSAgICpvZmZzZXRf aXNudWxsID0gcGFsbG9jX29iamVjdChib29sKTsKIAotCQkJCQkvKiBDb21waWxlIHRoZSBvZmZz ZXQgZXhwcmVzc2lvbiBpbnRvIHRoZSB0ZW1wIHN0b3JhZ2UgKi8KIAkJCQkJRXhlY0luaXRFeHBy UmVjKG5hdi0+b2Zmc2V0X2FyZywgc3RhdGUsCiAJCQkJCQkJCQlvZmZzZXRfdmFsdWUsIG9mZnNl dF9pc251bGwpOwotCiAJCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSA9IG9mZnNl dF92YWx1ZTsKIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IG9mZnNldF9p c251bGw7CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CisJCQkJCS8qIFNpbXBsZSBuYXZpZ2F0aW9u IHdpdGggZGVmYXVsdCBvZmZzZXQgKi8KIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X3Zh bHVlID0gTlVMTDsKIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IE5VTEw7 CiAJCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggZTQxZmFhOTVi ZTMuLjJlYzU3OTczMmNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAg LTU5NDIsNyArNTk0MiwzNSBAQCBFeGVjQWdnUGxhaW5UcmFuc0J5UmVmKEFnZ1N0YXRlICphZ2dz dGF0ZSwgQWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKIH0KIAogLyoKLSAqIEV2YWx1YXRlIFJQ UiBQUkVWL05FWFQgbmF2aWdhdGlvbjogc3dhcCBzbG90IHRvIHRhcmdldCByb3cuCisgKiBFeHRy YWN0IGNvbXBvdW5kIChvdXRlcikgb2Zmc2V0IGZyb20gc3RlcCBkYXRhLgorICogRm9yIGNvbXBv dW5kIG5hdiwgb2Zmc2V0X3ZhbHVlIGlzIGFuIGFycmF5OiBbMF09aW5uZXIsIFsxXT1vdXRlci4K KyAqIFJldHVybnMgdGhlIG91dGVyIG9mZnNldDsgZXJyb3JzIG9uIE5VTEwgb3IgbmVnYXRpdmUu CisgKiBEZWZhdWx0IGlzIDEgKGxpa2UgUFJFVi9ORVhUIGltcGxpY2l0IG9mZnNldCkuCisgKi8K K3N0YXRpYyBpbnQ2NAorcnByX25hdl9nZXRfY29tcG91bmRfb2Zmc2V0KEV4cHJFdmFsU3RlcCAq b3ApCit7CisJaW50NjQJCXZhbDsKKworCUFzc2VydChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1 ZSAhPSBOVUxMKTsKKworCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGxbMV0pCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VE KSwKKwkJCQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBi ZSBudWxsIikpKTsKKworCXZhbCA9IERhdHVtR2V0SW50NjQob3AtPmQucnByX25hdi5vZmZzZXRf dmFsdWVbMV0pOworCisJaWYgKHZhbCA8IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygicm93IHBh dHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSkpOworCisJcmV0 dXJuIHZhbDsKK30KKworLyoKKyAqIEV2YWx1YXRlIFJQUiBuYXZpZ2F0aW9uIChQUkVWL05FWFQv RklSU1QvTEFTVCk6IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93LgogICoKICAqIFNhdmVzIHRoZSBj dXJyZW50IG91dGVydHVwbGUgaW50byB3aW5zdGF0ZSBmb3IgbGF0ZXIgcmVzdG9yZSwgY29tcHV0 ZXMKICAqIHRoZSB0YXJnZXQgcm93IHBvc2l0aW9uLCBmZXRjaGVzIHRoZSBjb3JyZXNwb25kaW5n IHNsb3QgZnJvbSB0aGUKQEAgLTU5NjMsMjcgKzU5OTEsMzUgQEAgRXhlY0V2YWxSUFJOYXZTZXQo RXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250ZXh0 KQogCXdpbnN0YXRlLT5uYXZfc2F2ZWRfb3V0ZXJ0dXBsZSA9IGVjb250ZXh0LT5lY3h0X291dGVy dHVwbGU7CiAKIAkvKgotCSAqIERldGVybWluZSB0aGUgdW5zaWduZWQgb2Zmc2V0LiAgRm9yIDIt YXJnIFBSRVYvTkVYVCB0aGUgb2Zmc2V0Ci0JICogZXhwcmVzc2lvbiBoYXMgYWxyZWFkeSBiZWVu IGV2YWx1YXRlZCBpbnRvIG9mZnNldF92YWx1ZS4gIE5VTEwgb3IKLQkgKiBuZWdhdGl2ZSBvZmZz ZXRzIGFyZSBlcnJvcnMgcGVyIHRoZSBTUUwgc3RhbmRhcmQgKElTTy9JRUMgOTA3NS0yLAotCSAq IFN1YmNsYXVzZSA1LjYuMikuCisJICogRGV0ZXJtaW5lIHRoZSBpbm5lciBvZmZzZXQuICBOVUxM IG9yIG5lZ2F0aXZlIG9mZnNldHMgYXJlIGVycm9ycyBwZXIKKwkgKiB0aGUgU1FMIHN0YW5kYXJk LgorCSAqCisJICogRGVmYXVsdCBvZmZzZXQgd2hlbiBvZmZzZXRfYXJnIGlzIE5VTEw6IFBSRVYv TkVYVDogMSAoc3RhbmRhcmQgNS42LjIpCisJICogRklSU1QvTEFTVCBhbmQgY29tcG91bmQ6IDAg Zm9yIGlubmVyLCAxIGZvciBvdXRlcgogCSAqLwogCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92 YWx1ZSAhPSBOVUxMKQogCXsKIAkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGwpCiAJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FM TE9XRUQpLAotCQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwi KSkpOworCQkJCQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5v dCBiZSBudWxsIikpKTsKIAogCQlvZmZzZXQgPSBEYXR1bUdldEludDY0KCpvcC0+ZC5ycHJfbmF2 Lm9mZnNldF92YWx1ZSk7CiAKIAkJaWYgKG9mZnNldCA8IDApCiAJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJIGVy cm1zZygiUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZSIpKSk7CisJCQkJCSBl cnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZl IikpKTsKIAl9CiAJZWxzZQotCQlvZmZzZXQgPSAxOworCXsKKwkJLyogRGVmYXVsdCBvZmZzZXQ6 IDEgZm9yIHNpbXBsZSBQUkVWL05FWFQsIDAgb3RoZXJ3aXNlICovCisJCWlmIChvcC0+ZC5ycHJf bmF2LmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQlvcC0+ZC5ycHJfbmF2LmtpbmQgPT0gUlBS X05BVl9ORVhUKQorCQkJb2Zmc2V0ID0gMTsKKwkJZWxzZQorCQkJb2Zmc2V0ID0gMDsKKwl9CiAK IAkvKgogCSAqIENhbGN1bGF0ZSB0YXJnZXQgcG9zaXRpb24gYmFzZWQgb24gbmF2aWdhdGlvbiBk aXJlY3Rpb24uICBPbiBvdmVyZmxvdywKQEAgLTU5OTksOCArNjAzNSwxMDcgQEAgRXhlY0V2YWxS UFJOYXZTZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQg KmVjb250ZXh0KQogCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRw b3MsIG9mZnNldCwgJnRhcmdldF9wb3MpKQogCQkJCXRhcmdldF9wb3MgPSAtMTsKIAkJCWJyZWFr OworCQljYXNlIFJQUl9OQVZfRklSU1Q6CisJCQkvKiBGSVJTVDogb2Zmc2V0IGZyb20gbWF0Y2hf c3RhcnQsIGNsYW1wZWQgdG8gY3VycmVudHBvcyAqLworCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZs b3cod2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydCwgb2Zmc2V0LCAmdGFyZ2V0X3BvcykpCisJCQkJ dGFyZ2V0X3BvcyA9IC0xOworCQkJZWxzZSBpZiAodGFyZ2V0X3BvcyA+IHdpbnN0YXRlLT5jdXJy ZW50cG9zKQorCQkJCXRhcmdldF9wb3MgPSAtMTsJLyogYmV5b25kIGN1cnJlbnQgbWF0Y2ggcmFu Z2UgKi8KKwkJCWJyZWFrOworCQljYXNlIFJQUl9OQVZfTEFTVDoKKwkJCS8qIExBU1Q6IG9mZnNl dCBiYWNrd2FyZCBmcm9tIGN1cnJlbnRwb3MsIGNsYW1wZWQgdG8gbWF0Y2hfc3RhcnQgKi8KKwkJ CWlmIChwZ19zdWJfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9zLCBvZmZzZXQsICZ0 YXJnZXRfcG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQllbHNlIGlmICh0YXJnZXRfcG9z IDwgd2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydCkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CS8qIGJl Zm9yZSBtYXRjaF9zdGFydCAqLworCQkJYnJlYWs7CisKKwkJY2FzZSBSUFJfTkFWX1BSRVZfRklS U1Q6CisJCWNhc2UgUlBSX05BVl9ORVhUX0ZJUlNUOgorCQkJeworCQkJCWludDY0CQljb21wb3Vu ZF9vZmZzZXQ7CisJCQkJaW50NjQJCWlubmVyX3BvczsKKworCQkJCS8qIElubmVyOiBtYXRjaF9z dGFydCArIG9mZnNldCAqLworCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5u YXZfbWF0Y2hfc3RhcnQsIG9mZnNldCwgJmlubmVyX3BvcykpCisJCQkJeworCQkJCQl0YXJnZXRf cG9zID0gLTE7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlpZiAoaW5uZXJfcG9zID4gd2luc3Rh dGUtPmN1cnJlbnRwb3MgfHwgaW5uZXJfcG9zIDwgMCkKKwkJCQl7CisJCQkJCXRhcmdldF9wb3Mg PSAtMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJLyogT3V0ZXIgb2Zmc2V0ICovCisJCQkJ Y29tcG91bmRfb2Zmc2V0ID0gcnByX25hdl9nZXRfY29tcG91bmRfb2Zmc2V0KG9wKTsKKworCQkJ CS8qIEFwcGx5IG91dGVyOiBQUkVWIHN1YnRyYWN0cywgTkVYVCBhZGRzICovCisJCQkJaWYgKG9w LT5kLnJwcl9uYXYua2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QpCisJCQkJeworCQkJCQlpZiAo cGdfc3ViX3M2NF9vdmVyZmxvdyhpbm5lcl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9w b3MpKQorCQkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJ CQlpZiAocGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5lcl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRh cmdldF9wb3MpKQorCQkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCX0KKwkJCX0KKwkJCWJyZWFr OworCisJCWNhc2UgUlBSX05BVl9QUkVWX0xBU1Q6CisJCWNhc2UgUlBSX05BVl9ORVhUX0xBU1Q6 CisJCQl7CisJCQkJaW50NjQJCWNvbXBvdW5kX29mZnNldDsKKwkJCQlpbnQ2NAkJaW5uZXJfcG9z OworCisJCQkJLyogSW5uZXI6IGN1cnJlbnRwb3MgLSBvZmZzZXQgKi8KKwkJCQlpZiAocGdfc3Vi X3M2NF9vdmVyZmxvdyh3aW5zdGF0ZS0+Y3VycmVudHBvcywgb2Zmc2V0LCAmaW5uZXJfcG9zKSkK KwkJCQl7CisJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWlm IChpbm5lcl9wb3MgPCB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0KQorCQkJCXsKKwkJCQkJdGFy Z2V0X3BvcyA9IC0xOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQkvKiBPdXRlciBvZmZzZXQg Ki8KKwkJCQljb21wb3VuZF9vZmZzZXQgPSBycHJfbmF2X2dldF9jb21wb3VuZF9vZmZzZXQob3Ap OworCisJCQkJLyogQXBwbHkgb3V0ZXI6IFBSRVYgc3VidHJhY3RzLCBORVhUIGFkZHMgKi8KKwkJ CQlpZiAob3AtPmQucnByX25hdi5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUKQorCQkJCXsKKwkJ CQkJaWYgKHBnX3N1Yl9zNjRfb3ZlcmZsb3coaW5uZXJfcG9zLCBjb21wb3VuZF9vZmZzZXQsICZ0 YXJnZXRfcG9zKSkKKwkJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQl9CisJCQkJZWxzZQorCQkJ CXsKKwkJCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXJfcG9zLCBjb21wb3VuZF9vZmZz ZXQsICZ0YXJnZXRfcG9zKSkKKwkJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQl9CisJCQl9CisJ CQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5h dmlnYXRpb24ga2luZDogJWQiLAorCQkJCSBvcC0+ZC5ycHJfbmF2LmtpbmQpOworCQkJYnJlYWs7 CiAJfQogCisJLyoKKwkgKiBTbG90IHN3YXAgZWxpc2lvbjogaWYgdGFyZ2V0X3BvcyBpcyB0aGUg Y3VycmVudCByb3csIHNraXAgdGhlCisJICogdHVwbGVzdG9yZSBmZXRjaCBhbmQgc2xvdCBzd2Fw IGVudGlyZWx5LiAgVGhpcyBiZW5lZml0cyBMQVNUKGV4cHIpLAorCSAqIFBSRVYoZXhwciwgMCks IE5FWFQoZXhwciwgMCksIGFuZCBzaW1pbGFyIGNhc2VzLgorCSAqCisJICogV2UgbXVzdCBzdGls bCBzZXQgbmF2X3NhdmVkX291dGVydHVwbGUgKGRvbmUgYWJvdmUpIHNvIHRoYXQKKwkgKiBFRU9Q X1JQUl9OQVZfUkVTVE9SRSBpcyBhIGhhcm1sZXNzIG5vLW9wLgorCSAqLworCWlmICh0YXJnZXRf cG9zID09IHdpbnN0YXRlLT5jdXJyZW50cG9zKQorCQlyZXR1cm47CisKIAkvKiBGZXRjaCB0YXJn ZXQgcm93IHNsb3QgKHJldHVybnMgbmF2X251bGxfc2xvdCBpZiBvdXQgb2YgcmFuZ2UpICovCiAJ dGFyZ2V0X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xvdCh3aW5zdGF0ZSwgdGFyZ2V0X3Bvcyk7CiAK QEAgLTYwMTUsOSArNjE1MCwxMSBAQCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUgKnN0YXRl LCBFeHByRXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiB9CiAKIC8qCi0gKiBF dmFsdWF0ZSBSUFIgUFJFVi9ORVhUIG5hdmlnYXRpb246IHJlc3RvcmUgc2xvdCB0byBvcmlnaW5h bCByb3cuCisgKiBFdmFsdWF0ZSBSUFIgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90IHRvIG9yaWdp bmFsIHJvdy4KICAqCiAgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIGZyb20g dGhlIHNhdmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBXaGVuIHNsb3Qgc3dhcCB3YXMgZWxpZGVk ICh0YXJnZXQgPT0gY3VycmVudHBvcyksIHRoaXMgaXMgYSBoYXJtbGVzcworICogbm8tb3Agc2lu Y2Ugc2F2ZWQgYW5kIGN1cnJlbnQgc2xvdHMgYXJlIGlkZW50aWNhbC4KICAqIFRoZSBjYWxsZXIg aXMgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIGFueSBsb2NhbCBzbG90IGNhY2hlLgogICovCiB2 b2lkCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggNTQyOGQwZThmYzQuLjAxZGYyYTExZTBhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC00OCw2ICs0OCw3IEBACiAgKiAgICAgLSBzcmMvaW5j bHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgKHBsYW4gbm9kZSBkZWZpbml0aW9ucykK ICAqICAgICAtIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAoZXhlY3V0 aW9uIHN0YXRlIGRlZmluaXRpb25zKQogICogICAgIC0gc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jw ci5oICAgICAgICAgICAgICh0eXBlcyBhbmQgY29uc3RhbnRzKQorICogICAgIC0gc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIChuYXYgb2Zmc2V0IGNvbXB1dGF0aW9uKQog ICoKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC02MDksMjIgKzYxMCw2OSBAQAogICog ICAgICAgcmVzdWx0ID0gRXhlY0V2YWxFeHByKGRlZmluZUNsYXVzZVtpXSkKICAqICAgICAgIHZh ck1hdGNoZWRbaV0gPSAobm90IG51bGwgYW5kIHRydWUpCiAgKgotICogVG8gc3VwcG9ydCByb3cg bmF2aWdhdGlvbiBvcGVyYXRvcnMgc3VjaCBhcyBQUkVWKCkgYW5kIE5FWFQoKSwKKyAqIFRvIHN1 cHBvcnQgcm93IG5hdmlnYXRpb24gb3BlcmF0b3JzIChQUkVWLCBORVhULCBGSVJTVCwgTEFTVCks CiAgKiBhIDEtc2xvdCBtb2RlbCBpcyB1c2VkOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQg dG8gdGhlIGN1cnJlbnQKLSAqIHJvdy4gIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQg YnkgRUVPUF9SUFJfTkFWX1NFVC9SRVNUT1JFCi0gKiBvcGNvZGVzIGVtaXR0ZWQgZHVyaW5nIERF RklORSBleHByZXNzaW9uIGNvbXBpbGF0aW9uOgorICogcm93LiAgTmF2aWdhdGlvbiBpcyBoYW5k bGVkIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCisgKiBlbWl0dGVkIGR1cmlu ZyBERUZJTkUgZXhwcmVzc2lvbiBjb21waWxhdGlvbjoKICAqCiAgKiAgIE5BVl9TRVQ6ICAgICBz YXZlIGVjeHRfb3V0ZXJ0dXBsZSwgc3dhcCBpbiB0YXJnZXQgcm93IHZpYSBuYXZfc2xvdAogICog ICAoZXZhbHVhdGUpOiAgYXJndW1lbnQgZXhwcmVzc2lvbiByZWFkcyBmcm9tIHN3YXBwZWQgc2xv dAogICogICBOQVZfUkVTVE9SRTogcmVzdG9yZSBvcmlnaW5hbCBlY3h0X291dGVydHVwbGUKICAq CisgKiBDb21wb3VuZCBuYXZpZ2F0aW9uIChQUkVWKEZJUlNUKCkpLCBORVhUKEZJUlNUKCkpLCBQ UkVWKExBU1QoKSksCisgKiBORVhUKExBU1QoKSkpIGlzIGZsYXR0ZW5lZCBieSB0aGUgcGFyc2Vy IGludG8gYSBzaW5nbGUgUlBSTmF2RXhwcgorICogd2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9O QVZfUFJFVl9GSVJTVCwgZXRjLikuICBUaGUgZXhlY3V0b3IKKyAqIGNvbXB1dGVzIHRoZSB0YXJn ZXQgcG9zaXRpb24gaW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCisgKiBw b2ludCAobWF0Y2hfc3RhcnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdl IHZhbGlkYXRpb24sCisgKiB0aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICjCsSBNKSB3aXRoIHBh cnRpdGlvbi1yYW5nZSB2YWxpZGF0aW9uLgorICogSWYgZWl0aGVyIHN0ZXAgaXMgb3V0IG9mIHJh bmdlLCB0aGUgcmVzdWx0IGlzIE5VTEwuCisgKgogICogbmF2X3Nsb3QgY2FjaGVzIHRoZSBsYXN0 IGZldGNoZWQgcG9zaXRpb24gKG5hdl9zbG90X3BvcykgdG8gYXZvaWQKLSAqIHJlZHVuZGFudCB0 dXBsZXN0b3JlIGxvb2t1cHMgd2hlbiBtdWx0aXBsZSBQUkVWL05FWFQgY2FsbHMgdGFyZ2V0Cisg KiByZWR1bmRhbnQgdHVwbGVzdG9yZSBsb29rdXBzIHdoZW4gbXVsdGlwbGUgbmF2aWdhdGlvbiBj YWxscyB0YXJnZXQKICAqIHRoZSBzYW1lIHJvdy4KICAqCiAgKiBUaGUgdmFyTWF0Y2hlZCBhcnJh eSBpcyByZWZlcmVuY2VkIGxhdGVyIGluIFBoYXNlIDEgKE1hdGNoKS4KICAqCi0gKiBWSS00LiBF eGVjUlBSUHJvY2Vzc1JvdygpOiAzLVBoYXNlIFByb2Nlc3NpbmcKKyAqIFZJLTQuIFBlci1Db250 ZXh0IFJlLWV2YWx1YXRpb24gKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCB2YXJpYWJsZXMpCisgKgor ICogREVGSU5FIHZhcmlhYmxlcyB0aGF0IGRlcGVuZCBvbiBtYXRjaF9zdGFydCAodGhvc2UgY29u dGFpbmluZyBGSVJTVCwKKyAqIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklS U1QvTkVYVF9GSVJTVC9QUkVWX0xBU1QvTkVYVF9MQVNUKQorICogYXJlIGlkZW50aWZpZWQgYXQg cGxhbiB0aW1lIHZpYSBkZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50LiAgVGhlIHNoYXJlZAorICog ZXZhbHVhdGlvbiBpbiBuZmFfZXZhbHVhdGVfcm93KCkgdXNlcyB0aGUgaGVhZCBjb250ZXh0J3Mg bWF0Y2hTdGFydFJvdworICogZm9yIEZJUlNUL0xBU1QgYmFzZSBwb3NpdGlvbi4KKyAqCisgKiBX aGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9t IHRoZSBzaGFyZWQKKyAqIHZhbHVlLCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRl bXBvcmFyaWx5IHNldHMgbmF2X21hdGNoX3N0YXJ0CisgKiB0byB0aGF0IGNvbnRleHQncyBtYXRj aFN0YXJ0Um93IGFuZCByZS1ldmFsdWF0ZXMgb25seSB0aGUgZGVwZW5kZW50CisgKiB2YXJpYWJs ZXMuICBObyByZXN0b3JlIGlzIG5lZWRlZCBiZWNhdXNlIGNvbnRleHRzIGFyZSBvcmRlcmVkIGJ5 CisgKiBtYXRjaFN0YXJ0Um93IChhc2NlbmRpbmcpLCBzbyBubyBsYXRlciBjb250ZXh0IHNoYXJl cyB0aGUgaGVhZCdzIHZhbHVlLgorICoKKyAqIFZJLTUuIFR1cGxlc3RvcmUgTWFyayBhbmQgVHJp bSAobm9kZVdpbmRvd0FnZy5jKQorICoKKyAqIE5hdmlnYXRpb24gZnVuY3Rpb25zIHJlcXVpcmUg YWNjZXNzIHRvIHBhc3Qgcm93cyB2aWEgdGhlIHR1cGxlc3RvcmUuCisgKiBUbyBhbGxvdyB0dXBs ZXN0b3JlX3RyaW0oKSB0byBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJsZSwK KyAqIHRoZSBwbGFubmVyIGNvbXB1dGVzIHR3byBvZmZzZXRzIChzZWUgY29tcHV0ZV9uYXZfb2Zm c2V0cyk6CisgKgorICogICBuYXZNYXhPZmZzZXQgKE5hdiBNYXJrIExvb2tiYWNrKToKKyAqICAg ICBNYXhpbXVtIGJhY2t3YXJkIHJlYWNoIGZyb20gY3VycmVudHBvcy4gIENvbnRyaWJ1dGVkIGJ5 IFBSRVYsCisgKiAgICAgTEFTVC13aXRoLW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9O RVhUX0xBU1QuCisgKiAgICAgTWFyayBwb3NpdGlvbjogY3VycmVudHBvcyAtIG5hdk1heE9mZnNl dC4KKyAqCisgKiAgIG5hdkZpcnN0T2Zmc2V0IChOYXYgTWFyayBMb29rYWhlYWQpOgorICogICAg IE1pbmltdW0gZm9yd2FyZCBvZmZzZXQgZnJvbSBtYXRjaF9zdGFydC4gIENvbnRyaWJ1dGVkIGJ5 IEZJUlNUCisgKiAgICAgYW5kIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4gIENhbiBi ZSBuZWdhdGl2ZSB3aGVuCisgKiAgICAgY29tcG91bmQgUFJFVl9GSVJTVCBsb29rcyBiZWZvcmUg bWF0Y2hfc3RhcnQuCisgKiAgICAgTWFyayBwb3NpdGlvbjogb2xkZXN0X2NvbnRleHQtPm1hdGNo U3RhcnRSb3cgKyBuYXZGaXJzdE9mZnNldC4KKyAqCisgKiBUaGUgYWN0dWFsIG1hcmsgaXMgc2V0 IHRvOiBtaW4obG9va2JhY2tfbWFyaywgbG9va2FoZWFkX21hcmspLgorICogVGhpcyBlbnN1cmVz IGFsbCByb3dzIHJlYWNoYWJsZSBieSBhbnkgbmF2aWdhdGlvbiBmdW5jdGlvbiBhcmUgcmV0YWlu ZWQuCisgKgorICogV2hlbiBvZmZzZXRzIGNvbnRhaW4gbm9uLWNvbnN0YW50IGV4cHJlc3Npb25z IChQYXJhbSksIHRoZSBwbGFubmVyIHNldHMKKyAqIG5hdk1heE9mZnNldEtpbmQvbmF2Rmlyc3RP ZmZzZXRLaW5kIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgYW5kIHRoZQorICogZXhlY3V0 b3IgZXZhbHVhdGVzIHRoZW0gYXQgaW5pdCB0aW1lLiAgT24gb3ZlcmZsb3csIHRoZSBraW5kIGlz IHNldCB0bworICogUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCwgZGlzYWJsaW5nIHRyaW0gZm9y IHRoYXQgZGltZW5zaW9uLgorICoKKyAqIFZJLTYuIEV4ZWNSUFJQcm9jZXNzUm93KCk6IDMtUGhh c2UgUHJvY2Vzc2luZwogICoKICAqIE5GQSBwcm9jZXNzaW5nIGZvciBhIHNpbmdsZSByb3cgaXMg ZGl2aWRlZCBpbnRvIHRocmVlIHBoYXNlczoKICAqCkBAIC03MDcsNiArNzU1LDIxIEBACiAgKgog ICogVklJSS0zLiBBYnNvcnB0aW9uIENvbmRpdGlvbnMKICAqCisgKiBQbGFubmVyLXRpbWUgcHJl cmVxdWlzaXRlcyAoYWxsIG11c3QgaG9sZCBmb3IgYWJzb3JwdGlvbiB0byBiZSBlbmFibGVkKToK KyAqCisgKiAgIChhKSBTS0lQIFBBU1QgTEFTVCBST1cuICBTS0lQIFRPIE5FWFQgUk9XIGNyZWF0 ZXMgb3ZlcmxhcHBpbmcKKyAqICAgICAgIGNvbnRleHRzIHRoYXQgY2Fubm90IGJlIHNhZmVseSBh YnNvcmJlZC4KKyAqICAgKGIpIFVuYm91bmRlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQKKyAqICAgICAgIEZPTExPV0lORykuICBMaW1pdGVkIGZyYW1lcyBh cHBseSBkaWZmZXJlbnRseSB0byBlYWNoIGNvbnRleHQsCisgKiAgICAgICBicmVha2luZyB0aGUg bW9ub3RvbmljaXR5IHByaW5jaXBsZS4KKyAqICAgKGMpIE5vIG1hdGNoX3N0YXJ0LWRlcGVuZGVu dCBuYXZpZ2F0aW9uIGluIERFRklORS4gIEZJUlNULAorICogICAgICAgTEFTVC13aXRoLW9mZnNl dCwgYW5kIGNvbXBvdW5kIG5hdmlnYXRpb24gcmVmZXJlbmNpbmcgbWF0Y2hfc3RhcnQKKyAqICAg ICAgIChQUkVWX0ZJUlNULCBORVhUX0ZJUlNULCBQUkVWX0xBU1QvTkVYVF9MQVNUIHdpdGggb2Zm c2V0KQorICogICAgICAgY2F1c2UgZGlmZmVyZW50IGNvbnRleHRzIHRvIGV2YWx1YXRlIHRvIGRp ZmZlcmVudCB2YWx1ZXMgZm9yIHRoZQorICogICAgICAgc2FtZSByb3csIGJyZWFraW5nIG1vbm90 b25pY2l0eS4KKyAqCisgKiBSdW50aW1lIGNvbmRpdGlvbnMgKGV2YWx1YXRlZCBwZXIgY29udGV4 dCBwYWlyKToKKyAqCiAgKiAgICgxKSBUaGUgcGF0dGVybiBpcyBtYXJrZWQgYXMgaXNBYnNvcmJh YmxlIChzZWUgSVYtNSkKICAqICAgKDIpIGFsbFN0YXRlc0Fic29yYmFibGUgb2YgdGhlIHRhcmdl dCBjb250ZXh0IGlzIHRydWUKICAqICAgKDMpIEFuIGVhcmxpZXIgY29udGV4dCAiY292ZXJzIiBh bGwgc3RhdGVzIG9mIHRoZSB0YXJnZXQKQEAgLTk3OSw2ICsxMDQyLDE5IEBACiAgKiAgIE9ubHkg SU5JVElBTCBpcyBzdXBwb3J0ZWQsIHNlYXJjaGluZyBvbmx5IGZvciBtYXRjaGVzIHN0YXJ0aW5n IGF0IGVhY2gKICAqICAgcm93IHBvc2l0aW9uIHBvcy4KICAqCisgKiBYLTQuIEJvdW5kZWQgRnJh bWUgSGFuZGxpbmcKKyAqCisgKiAgIFdoZW4gdGhlIGZyYW1lIGlzIGJvdW5kZWQgKGUuZy4sIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgNQorICogICBGT0xMT1dJTkcpLCBFeGVjUlBSUHJv Y2Vzc1JvdyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9dHJ1ZSBhbmQKKyAqICAgZnJhbWVPZmZz ZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBBZnRlciB0aGUgYWR2YW5jZSBwaGFzZSwK KyAqICAgYW55IGNvbnRleHQgd2hvc2UgbWF0Y2ggaGFzIGV4Y2VlZGVkIHRoZSBmcmFtZSBib3Vu ZGFyeQorICogICAoY3VycmVudFBvcyAtIG1hdGNoU3RhcnRSb3cgPj0gZnJhbWVPZmZzZXQgKyAx KSBpcyBmaW5hbGl6ZWQgZWFybHkuCisgKiAgIFRoaXMgcHJldmVudHMgbWF0Y2hlcyBmcm9tIGV4 dGVuZGluZyBiZXlvbmQgdGhlIHdpbmRvdyBmcmFtZS4KKyAqCisgKiAgIE5vdGUgdGhhdCBib3Vu ZGVkIGZyYW1lcyBhbHNvIGRpc2FibGUgY29udGV4dCBhYnNvcnB0aW9uIGF0IHRoZQorICogICBw bGFubmVyIGxldmVsIChzZWUgVklJSS0zKGIpKSwgc2luY2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJy ZWFrcyB0aGUKKyAqICAgbW9ub3RvbmljaXR5IGFzc3VtcHRpb24gcmVxdWlyZWQgZm9yIGNvcnJl Y3QgYWJzb3JwdGlvbi4KKyAqCiAgKiBDaGFwdGVyIFhJICBXb3JrZWQgRXhhbXBsZTogRnVsbCBF eGVjdXRpb24gVHJhY2UKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC0xMzMwLDYgKzE0 MDYsMTQgQEAKICAqICAgbmZhX2FkdmFuY2VfdmFyICAgICAgICAgICAgICAgZXhlY1JQUi5jICAg ICAgICAgICAgIFZBUiBoYW5kbGluZwogICogICBuZmFfYWRkX3N0YXRlX3VuaXF1ZSAgICAgICAg ICBleGVjUlBSLmMgICAgICAgICAgICAgRGVkdXBsaWNhdGlvbgogICogICBuZmFfc3RhdGVzX2Nv dmVyZWQgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgQWJzb3JwdGlvbiBjaGVjawor ICogICBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycyBleGVjUlBSLmMgICAgICAgICAgICAg UGVyLWNvbnRleHQgcmUtZXZhbAorICogICBFeGVjUlBSR2V0SGVhZENvbnRleHQgICAgICAgICBl eGVjUlBSLmMgICAgICAgICAgICAgQ29udGV4dCBsb29rdXAKKyAqICAgRXhlY1JQUkZyZWVDb250 ZXh0ICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIENvbnRleHQgZGVhbGxvY2F0aW9u CisgKiAgIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzICAgIGV4ZWNSUFIuYyAgICAgICAgICAg ICBEZWFkIGNvbnRleHQgY2xlYW51cAorICogICBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyAg ICBleGVjUlBSLmMgICAgICAgICAgICAgUGFydGl0aW9uLWVuZCBmaW5hbGl6ZQorICogICBFeGVj UlBSUmVjb3JkQ29udGV4dFN1Y2Nlc3MgICBleGVjUlBSLmMgICAgICAgICAgICAgU3RhdHM6IG1h dGNoIHN1Y2Nlc3MKKyAqICAgRXhlY1JQUlJlY29yZENvbnRleHRGYWlsdXJlICAgZXhlY1JQUi5j ICAgICAgICAgICAgIFN0YXRzOiBtYXRjaCBmYWlsdXJlCisgKiAgIGNvbXB1dGVfbmF2X29mZnNl dHMgICAgICAgICAgIGNyZWF0ZXBsYW4uYyAgICAgICAgICBUcmltIG9mZnNldCBjb21wdXRhdGlv bgogICoKICAqIEFwcGVuZGl4IEIuIERhdGEgU3RydWN0dXJlIFJlbGF0aW9uc2hpcCBEaWFncmFt CiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yOTg5LDYgKzMwNzMsNTYgQEAgRXhlY1JQUlJl Y29yZENvbnRleHRGYWlsdXJlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgZmFpbGVk TGVuKQogCX0KIH0KIAorLyoKKyAqIG5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzCisgKgkJ UmUtZXZhbHVhdGUgbWF0Y2hfc3RhcnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgZm9yIGEg c3BlY2lmaWMKKyAqCQljb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRo ZSBzaGFyZWQgZXZhbHVhdGlvbidzCisgKgkJbmF2X21hdGNoX3N0YXJ0LgorICoKKyAqIE9ubHkg dmFyaWFibGVzIGluIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQgYXJlIHJlLWV2YWx1YXRlZC4g IFRoZQorICogY3VycmVudCByb3cncyBzbG90IChlY3h0X291dGVydHVwbGUpIG11c3QgYWxyZWFk eSBiZSBzZXQgdXAgYnkKKyAqIG5mYV9ldmFsdWF0ZV9yb3coKS4KKyAqLworc3RhdGljIHZvaWQK K25mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCQkJCSAgaW50NjQgY3VycmVudFBvcykKK3sKKwlFeHBy Q29udGV4dCAqZWNvbnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CisJaW50 NjQJCXNhdmVkX21hdGNoX3N0YXJ0ID0gd2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydDsKKwlpbnQ2 NAkJc2F2ZWRfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJaW50CQkJdmFySWR4ID0gMDsK KwlMaXN0Q2VsbCAgICpsYzsKKworCS8qIFRlbXBvcmFyaWx5IHNldCBuYXZfbWF0Y2hfc3RhcnQg YW5kIGN1cnJlbnRwb3MgZm9yIEZJUlNUL0xBU1QgKi8KKwl3aW5zdGF0ZS0+bmF2X21hdGNoX3N0 YXJ0ID0gY3R4LT5tYXRjaFN0YXJ0Um93OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gY3VycmVu dFBvczsKKworCS8qIEludmFsaWRhdGUgbmF2X3Nsb3QgY2FjaGUgc2luY2UgbWF0Y2hfc3RhcnQg Y2hhbmdlZCAqLworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKKworCWZvcmVhY2gobGMs IHdpbnN0YXRlLT5kZWZpbmVDbGF1c2VMaXN0KQorCXsKKwkJaWYgKGJtc19pc19tZW1iZXIodmFy SWR4LCB3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCkpCisJCXsKKwkJCUV4cHJT dGF0ZSAgKmV4cHJTdGF0ZSA9IChFeHByU3RhdGUgKikgbGZpcnN0KGxjKTsKKwkJCURhdHVtCQly ZXN1bHQ7CisJCQlib29sCQlpc251bGw7CisKKwkJCXJlc3VsdCA9IEV4ZWNFdmFsRXhwcihleHBy U3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKwkJCXdpbnN0YXRlLT5uZmFWYXJNYXRjaGVkW3Zh cklkeF0gPSAoIWlzbnVsbCAmJiBEYXR1bUdldEJvb2wocmVzdWx0KSk7CisJCX0KKworCQl2YXJJ ZHgrKzsKKwkJaWYgKHZhcklkeCA+PSBsaXN0X2xlbmd0aCh3aW5zdGF0ZS0+ZGVmaW5lVmFyaWFi bGVMaXN0KSkKKwkJCWJyZWFrOworCX0KKworCS8qIFJlc3RvcmUgb3JpZ2luYWwgbWF0Y2hfc3Rh cnQsIGN1cnJlbnRwb3MsIGFuZCBpbnZhbGlkYXRlIGNhY2hlICovCisJd2luc3RhdGUtPm5hdl9t YXRjaF9zdGFydCA9IHNhdmVkX21hdGNoX3N0YXJ0OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0g c2F2ZWRfcG9zOworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKK30KKwogLyoKICAqIEV4 ZWNSUFJQcm9jZXNzUm93CiAgKgpAQCAtMzAwMyw2ICszMTM3LDcgQEAgRXhlY1JQUlByb2Nlc3NS b3coV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zLAogewogCVJQUk5G QUNvbnRleHQgKmN0eDsKIAlib29sCSAgICp2YXJNYXRjaGVkID0gd2luc3RhdGUtPm5mYVZhck1h dGNoZWQ7CisJYm9vbAkJaGFzRGVwZW5kZW50ID0gIWJtc19pc19lbXB0eSh3aW5zdGF0ZS0+ZGVm aW5lTWF0Y2hTdGFydERlcGVuZGVudCk7CiAKIAkvKiBBbGxvdyBxdWVyeSBjYW5jZWxsYXRpb24g b25jZSBwZXIgcm93IGZvciBzaW1wbGUvbG93LXN0YXRlIHBhdHRlcm5zICovCiAJQ0hFQ0tfRk9S X0lOVEVSUlVQVFMoKTsKQEAgLTMwMjksNiArMzE2NCwxMyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQb3MsCiAJCQl9CiAJCX0KIAor CQkvKgorCQkgKiBJZiB0aGlzIGNvbnRleHQgaGFzIGEgZGlmZmVyZW50IG1hdGNoU3RhcnRSb3cg dGhhbiB0aGUgb25lIHVzZWQgaW4KKwkJICogdGhlIHNoYXJlZCBldmFsdWF0aW9uLCByZS1ldmFs dWF0ZSBtYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzCisJCSAqIHdpdGggdGhpcyBjb250 ZXh0J3MgbWF0Y2hTdGFydFJvdy4KKwkJICovCisJCWlmIChoYXNEZXBlbmRlbnQgJiYgY3R4LT5t YXRjaFN0YXJ0Um93ICE9IHdpbnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQpCisJCQluZmFfcmVldmFs dWF0ZV9kZXBlbmRlbnRfdmFycyh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9zKTsKIAkJbmZhX21h dGNoKHdpbnN0YXRlLCBjdHgsIHZhck1hdGNoZWQpOwogCQljdHgtPmxhc3RQcm9jZXNzZWRSb3cg PSBjdXJyZW50UG9zOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA5 Nzg3ZWY3NzU2Zi4uY2RiZTM1NmFiZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAi YWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgpAQCAtMjQ1LDggKzI0Niw4 IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmos IGludDY0IHBvcyk7CiBzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3 aW5vYmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CiAKIC8qIEZvcndhcmQgZGVjbGFy YXRpb25zIC0gbmF2aWdhdGlvbiBvZmZzZXQgZXZhbHVhdGlvbiAqLwotc3RhdGljIGJvb2wgY29s bGVjdF9wcmV2X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgTGlzdCAqKm9mZnNldHMpOwogc3Rh dGljIHZvaWQgZXZhbF9uYXZfbWF4X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExp c3QgKmRlZmluZUNsYXVzZSk7CitzdGF0aWMgdm9pZCBldmFsX25hdl9maXJzdF9vZmZzZXQoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZpbmVDbGF1c2UpOwogCiAvKgogICogTm90 IG51bGwgaW5mbyBiaXQgYXJyYXkgY29uc2lzdHMgb2YgMi1iaXQgaXRlbXMKQEAgLTkzMiwyOCAr OTMzLDcgQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkK IAkgKiBoZWFkLCBzbyB0aGF0IHR1cGxlc3RvcmUgY2FuIGRpc2NhcmQgdW5uZWNlc3Nhcnkgcm93 cy4KIAkgKi8KIAlpZiAoYWdnX3dpbm9iai0+bWFya3B0ciA+PSAwKQotCXsKLQkJaW50NjQJCW1h cmtwb3MgPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zOwotCi0JCWlmIChycHJfaXNfZGVmaW5lZCh3 aW5zdGF0ZSkpCi0JCXsKLQkJCS8qCi0JCQkgKiBJZiBSUFIgaXMgdXNlZCwgUFJFViBtYXkgbmVl ZCB0byBsb29rIGF0IHJvd3MgYmVmb3JlIHRoZSBmcmFtZQotCQkJICogaGVhZC4gIEFkanVzdCBt YXJrIGJ5IG5hdk1heE9mZnNldCBpZiBrbm93biwgb3RoZXJ3aXNlIHJldGFpbgotCQkJICogZnJv bSBwb3NpdGlvbiAwLgotCQkJICovCi0JCQlpZiAod2luc3RhdGUtPm5hdk1heE9mZnNldCA+PSAw KQotCQkJewotCQkJCWlmIChtYXJrcG9zID4gd2luc3RhdGUtPm5hdk1heE9mZnNldCkKLQkJCQkJ bWFya3BvcyAtPSB3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0OwotCQkJCWVsc2UKLQkJCQkJbWFya3Bv cyA9IDA7Ci0JCQl9Ci0JCQllbHNlCi0JCQkJbWFya3BvcyA9IDA7Ci0JCX0KLQkJV2luU2V0TWFy a1Bvc2l0aW9uKGFnZ193aW5vYmosIG1hcmtwb3MpOwotCX0KKwkJV2luU2V0TWFya1Bvc2l0aW9u KGFnZ193aW5vYmosIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwogCiAJLyoKIAkgKiBOb3cgcmVz dGFydCB0aGUgYWdncmVnYXRlcyB0aGF0IHJlcXVpcmUgaXQuCkBAIC0xMjc5LDE1ICsxMjU5LDE1 IEBAIHByZXBhcmVfdHVwbGVzdG9yZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJaWYgKHdp bnN0YXRlLT5uYXZfd2lub2JqKQogCXsKIAkJLyoKLQkJICogQWxsb2NhdGUgbWFyayBhbmQgcmVh ZCBwb2ludGVycyBmb3IgUFJFVi9ORVhUIG5hdmlnYXRpb24uCisJCSAqIEFsbG9jYXRlIG1hcmsg YW5kIHJlYWQgcG9pbnRlcnMgZm9yIFJQUiBuYXZpZ2F0aW9uLgogCQkgKgotCQkgKiBJZiBuYXZN YXhPZmZzZXQgPj0gMCwgd2UgYWR2YW5jZSB0aGUgbWFyayB0byAoY3VycmVudHBvcyAtCi0JCSAq IG5hdk1heE9mZnNldCkgYXMgcm93cyBhcmUgcHJvY2Vzc2VkLCBhbGxvd2luZyB0dXBsZXN0b3Jl X3RyaW0oKSB0bwotCQkgKiBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJsZS4K KwkJICogSWYgbmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRCwgd2UgYWR2 YW5jZSB0aGUgbWFyaworCQkgKiBiYXNlZCBvbiAoY3VycmVudHBvcyAtIG5hdk1heE9mZnNldCkg YW5kIG9wdGlvbmFsbHkKKwkJICogKG5mYUNvbnRleHQtPm1hdGNoU3RhcnRSb3cgKyBuYXZGaXJz dE9mZnNldCksIGFsbG93aW5nCisJCSAqIHR1cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0 aGF0IGFyZSBubyBsb25nZXIgcmVhY2hhYmxlLgogCQkgKgotCQkgKiBJZiBuYXZNYXhPZmZzZXQg PCAwIChSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMIG9yCi0JCSAqIFJQUl9OQVZfT0ZGU0VUX1JF VEFJTl9BTEwpLCB0aGUgbWFyayBzdGF5cyBhdCAwLCByZXRhaW5pbmcgdGhlCi0JCSAqIGVudGly ZSBwYXJ0aXRpb24gaW4gdGhlIHR1cGxlc3RvcmUuCisJCSAqIFJQUl9OQVZfT0ZGU0VUX05FRURT X0VWQUwgaXMgcmVzb2x2ZWQgYXQgZXhlY3V0b3IgaW5pdDsgYnkgdGhpcworCQkgKiBwb2ludCBp dCBpcyBlaXRoZXIgRklYRUQgb3IgUkVUQUlOX0FMTC4KIAkJICovCiAJCXdpbnN0YXRlLT5uYXZf d2lub2JqLT5tYXJrcHRyID0KIAkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0 YXRlLT5idWZmZXIsIDApOwpAQCAtMjUyNywxOCArMjUwNyw0MCBAQCBFeGVjV2luZG93QWdnKFBs YW5TdGF0ZSAqcHN0YXRlKQogCiAJCS8qCiAJCSAqIEFkdmFuY2UgUlBSIG5hdmlnYXRpb24gbWFy ayBwb2ludGVyIGlmIHBvc3NpYmxlLCBzbyB0aGF0Ci0JCSAqIHR1cGxlc3RvcmVfdHJpbSgpIGNh biBmcmVlIHJvd3Mgbm8gbG9uZ2VyIHJlYWNoYWJsZSBieSBQUkVWLgorCQkgKiB0dXBsZXN0b3Jl X3RyaW0oKSBjYW4gZnJlZSByb3dzIG5vIGxvbmdlciByZWFjaGFibGUgYnkgbmF2aWdhdGlvbi4K IAkJICovCiAJCWlmICh3aW5zdGF0ZS0+bmF2X3dpbm9iaiAmJgogCQkJd2luc3RhdGUtPnJwUGF0 dGVybiAhPSBOVUxMICYmCi0JCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0ID49IDApCisJCQl3aW5z dGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRCkKIAkJewogCQkJ aW50NjQJCW5hdm1hcmtwb3M7CiAKKwkJCS8qIEJhY2t3YXJkIHJlYWNoIGZyb20gUFJFVi9MQVNU L2NvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QgKi8KIAkJCWlmICh3aW5zdGF0ZS0+Y3VycmVu dHBvcyA+IHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQpCiAJCQkJbmF2bWFya3BvcyA9IHdpbnN0YXRl LT5jdXJyZW50cG9zIC0gd2luc3RhdGUtPm5hdk1heE9mZnNldDsKIAkJCWVsc2UKIAkJCQluYXZt YXJrcG9zID0gMDsKKworCQkJLyoKKwkJCSAqIElmIEZJUlNUIGlzIHVzZWQsIGFsc28gY29uc2lk ZXIgbWF0Y2hfc3RhcnQgKyBuYXZGaXJzdE9mZnNldC4KKwkJCSAqIFRoZSBvbGRlc3QgYWN0aXZl IGNvbnRleHQgKG5mYUNvbnRleHQpIGhhcyB0aGUgc21hbGxlc3QKKwkJCSAqIG1hdGNoU3RhcnRS b3cuCisJCQkgKi8KKwkJCWlmICh3aW5zdGF0ZS0+aGFzRmlyc3ROYXYgJiYKKwkJCQl3aW5zdGF0 ZS0+bmF2Rmlyc3RPZmZzZXRLaW5kID09IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEICYmCisJCQkJd2lu c3RhdGUtPm5mYUNvbnRleHQgIT0gTlVMTCkKKwkJCXsKKwkJCQlpbnQ2NAkJZmlyc3RyZWFjaDsK KworCQkJCWlmICh3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPiAtd2luc3RhdGUtPm5mYUNvbnRl eHQtPm1hdGNoU3RhcnRSb3cpCisJCQkJCWZpcnN0cmVhY2ggPSB3aW5zdGF0ZS0+bmZhQ29udGV4 dC0+bWF0Y2hTdGFydFJvdworCQkJCQkJKyB3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQ7CisJCQkJ ZWxzZQorCQkJCQlmaXJzdHJlYWNoID0gMDsKKwkJCQlpZiAoZmlyc3RyZWFjaCA8IG5hdm1hcmtw b3MpCisJCQkJCW5hdm1hcmtwb3MgPSBmaXJzdHJlYWNoOworCQkJfQorCiAJCQlpZiAobmF2bWFy a3BvcyA+IHdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcG9zKQogCQkJCVdpblNldE1hcmtQb3Np dGlvbih3aW5zdGF0ZS0+bmF2X3dpbm9iaiwgbmF2bWFya3Bvcyk7CiAJCX0KQEAgLTI3NzksNiAr Mjc4MSw3IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3Rh dGUsIGludCBlZmxhZ3MpCiAJCXdpbnN0YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY1N0b3JlQWxs TnVsbFR1cGxlKHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90KTsKIAogCQl3aW5zdGF0ZS0+bmF2X3Nh dmVkX291dGVydHVwbGUgPSBOVUxMOworCQl3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0ID0gMDsK IAl9CiAKIAkvKgpAQCAtMjk4OCwxMCArMjk5MSwyMCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5k b3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT5ycFNr aXBUbyA9IG5vZGUtPnJwU2tpcFRvOwogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlv biBQQVRURVJOIGNsYXVzZSAoY29tcGlsZWQgTkZBKSAqLwogCXdpbnN0YXRlLT5ycFBhdHRlcm4g PSBub2RlLT5ycFBhdHRlcm47Ci0JLyogU2V0IHVwIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVz dG9yZSB0cmltICovCisJLyogU2V0IHVwIG5hdiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0g Ki8KKwl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9IG5vZGUtPm5hdk1heE9mZnNldEtpbmQ7 CiAJd2luc3RhdGUtPm5hdk1heE9mZnNldCA9IG5vZGUtPm5hdk1heE9mZnNldDsKLQlpZiAod2lu c3RhdGUtPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCWlmICh3 aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQog CQlldmFsX25hdl9tYXhfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOworCXdp bnN0YXRlLT5oYXNGaXJzdE5hdiA9IG5vZGUtPmhhc0ZpcnN0TmF2OworCXdpbnN0YXRlLT5uYXZG aXJzdE9mZnNldEtpbmQgPSBub2RlLT5uYXZGaXJzdE9mZnNldEtpbmQ7CisJd2luc3RhdGUtPm5h dkZpcnN0T2Zmc2V0ID0gbm9kZS0+bmF2Rmlyc3RPZmZzZXQ7CisJaWYgKHdpbnN0YXRlLT5oYXNG aXJzdE5hdiAmJgorCQl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXRLaW5kID09IFJQUl9OQVZfT0ZG U0VUX05FRURTX0VWQUwpCisJCWV2YWxfbmF2X2ZpcnN0X29mZnNldCh3aW5zdGF0ZSwgbm9kZS0+ ZGVmaW5lQ2xhdXNlKTsKKworCS8qIENvcHkgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBiaXRtYXBz ZXQgZm9yIHBlci1jb250ZXh0IGV2YWx1YXRpb24gKi8KKwl3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hT dGFydERlcGVuZGVudCA9IGJtc19jb3B5KG5vZGUtPmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQp OwogCiAJLyogQ2FsY3VsYXRlIE5GQSBzdGF0ZSBzaXplIGFuZCBhbGxvY2F0ZSBjeWNsZSBkZXRl Y3Rpb24gYml0bWFwICovCiAJaWYgKG5vZGUtPnJwUGF0dGVybiAhPSBOVUxMKQpAQCAtMzkwMyw4 NCArMzkxNiwyNTQgQEAgcHV0X25vdG51bGxfaW5mbyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2 NCBwb3MsIGludCBhcmdubywgYm9vbCBpc251bGwpCiB9CiAKIC8qCi0gKiBjb2xsZWN0X3ByZXZf b2Zmc2V0X3dhbGtlcgotICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIHRvIGNvbGxlY3QgUFJFViBv ZmZzZXRfYXJnIGV4cHJlc3Npb25zLgorICogZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcgorICoJCUV2 YWx1YXRlIGFuIG9mZnNldCBleHByZXNzaW9uIGF0IGV4ZWN1dG9yIGluaXQgdGltZSBmb3IgdHJp bQorICoJCW9wdGltaXphdGlvbi4gIFJldHVybnMgdGhlIG9mZnNldCB2YWx1ZSwgb3IgMCBmb3Ig TlVMTC9uZWdhdGl2ZQorICoJCSh0aGVzZSB3aWxsIGNhdXNlIGEgcnVudGltZSBlcnJvciBkdXJp bmcgYWN0dWFsIG5hdmlnYXRpb24sIHNvIHRoZQorICoJCXRyaW0gdmFsdWUgaXMgaXJyZWxldmFu dCkuCisgKi8KK3N0YXRpYyBpbnQ2NAorZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIEV4cHIgKm9mZnNldF9leHByLAorCQkJCQkgICBpbnQ2NCBkZWZhdWx0 T2Zmc2V0KQoreworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19F eHByQ29udGV4dDsKKwlFeHByU3RhdGUgICplc3RhdGU7CisJRGF0dW0JCXZhbDsKKwlib29sCQlp c251bGw7CisJaW50NjQJCW9mZnNldDsKKworCWlmIChvZmZzZXRfZXhwciA9PSBOVUxMKQorCQly ZXR1cm4gZGVmYXVsdE9mZnNldDsKKworCWVzdGF0ZSA9IEV4ZWNJbml0RXhwcihvZmZzZXRfZXhw ciwgKFBsYW5TdGF0ZSAqKSB3aW5zdGF0ZSk7CisJdmFsID0gRXhlY0V2YWxFeHByU3dpdGNoQ29u dGV4dChlc3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKworCWlmIChpc251bGwpCisJCXJldHVy biAwOworCisJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NCh2YWwpOworCWlmIChvZmZzZXQgPCAwKQor CQlyZXR1cm4gMDsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKK3R5cGVkZWYgc3RydWN0Cit7CisJ V2luZG93QWdnU3RhdGUgKndpbnN0YXRlOworCWludDY0CQltYXhPZmZzZXQ7CisJYm9vbAkJb3Zl cmZsb3c7CQkvKiB0cnVlIGlmIG92ZXJmbG93IGRldGVjdGVkICovCit9IEV2YWxOYXZNYXhDb250 ZXh0OworCisvKgorICogZXZhbF9uYXZfbWF4X29mZnNldF93YWxrZXIKKyAqCQlXYWxrIGV4cHJl c3Npb24gdHJlZSBldmFsdWF0aW5nIGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgcnVudGltZS4K KyAqCisgKiBIYW5kbGVzIHNpbXBsZSBQUkVWLCBMQVNULXdpdGgtb2Zmc2V0LCBhbmQgY29tcG91 bmQgUFJFVl9MQVNUL05FWFRfTEFTVC4KICAqLwogc3RhdGljIGJvb2wKLWNvbGxlY3RfcHJldl9v ZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIExpc3QgKipvZmZzZXRzKQorZXZhbF9uYXZfbWF4X29m ZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQogeworCUV2YWxOYXZNYXhDb250ZXh0 ICpjb250ZXh0ID0gKEV2YWxOYXZNYXhDb250ZXh0ICopIGN0eDsKKwogCWlmIChub2RlID09IE5V TEwpCiAJCXJldHVybiBmYWxzZTsKIAorCS8qIFNob3J0LWNpcmN1aXQgaWYgb3ZlcmZsb3cgYWxy ZWFkeSBkZXRlY3RlZCAqLworCWlmIChjb250ZXh0LT5vdmVyZmxvdykKKwkJcmV0dXJuIGZhbHNl OworCiAJaWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKIAl7CiAJCVJQUk5hdkV4cHIgKm5hdiA9 IChSUFJOYXZFeHByICopIG5vZGU7CisJCWludDY0CQlyZWFjaCA9IDA7CisKKwkJaWYgKG5hdi0+ a2luZCA9PSBSUFJfTkFWX1BSRVYpCisJCXsKKwkJCXJlYWNoID0gZXZhbF9uYXZfb2Zmc2V0X2hl bHBlcihjb250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDEp OworCQl9CisJCWVsc2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZz ZXRfYXJnICE9IE5VTEwpCisJCXsKKwkJCXJlYWNoID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihj b250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDApOworCQl9 CisJCWVsc2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCB8fAorCQkJCSBuYXYt PmtpbmQgPT0gUlBSX05BVl9ORVhUX0xBU1QpCisJCXsKKwkJCWludDY0CQlpbm5lciA9IGV2YWxf bmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2 LT5vZmZzZXRfYXJnLCAwKTsKKwkJCWludDY0CQlvdXRlciA9IGV2YWxfbmF2X29mZnNldF9oZWxw ZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5jb21wb3VuZF9vZmZz ZXRfYXJnLCAxKTsKIAotCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBuYXYtPm9m ZnNldF9hcmcgIT0gTlVMTCkKLQkJCSpvZmZzZXRzID0gbGFwcGVuZCgqb2Zmc2V0cywgbmF2LT5v ZmZzZXRfYXJnKTsKKwkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QpCisJCQl7 CisJCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXIsIG91dGVyLCAmcmVhY2gpKQorCQkJ CXsKKwkJCQkJY29udGV4dC0+b3ZlcmZsb3cgPSB0cnVlOworCQkJCQlyZXR1cm4gZmFsc2U7CisJ CQkJfQorCQkJfQorCQkJZWxzZQorCQkJCXJlYWNoID0gKGlubmVyID4gb3V0ZXIpID8gaW5uZXIg LSBvdXRlciA6IDA7CisJCX0KIAotCQkvKiBEb24ndCB3YWxrIGludG8gUlBSTmF2RXhwciBjaGls ZHJlbiAqLwotCQlyZXR1cm4gZmFsc2U7CisJCWlmIChyZWFjaCA+IGNvbnRleHQtPm1heE9mZnNl dCkKKwkJCWNvbnRleHQtPm1heE9mZnNldCA9IHJlYWNoOworCisJCXJldHVybiBmYWxzZTsJCQkv KiBkb24ndCB3YWxrIGludG8gY2hpbGRyZW4gKi8KIAl9CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLCBjb2xsZWN0X3ByZXZfb2Zmc2V0X3dhbGtlciwgb2Zmc2V0cyk7CisJ cmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZXZhbF9uYXZfbWF4X29mZnNldF93 YWxrZXIsIGN0eCk7CiB9CiAKIC8qCiAgKiBldmFsX25hdl9tYXhfb2Zmc2V0Ci0gKgkJRXZhbHVh dGUgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0cyBhdCBleGVjdXRvciBpbml0IHRpbWUuCisgKgkJ RXZhbHVhdGUgbm9uLWNvbnN0YW50IGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgZXhlY3V0b3Ig aW5pdCB0aW1lLgorICoKKyAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZz ZXRLaW5kIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwKKyAqIGJlY2F1c2Ugc29tZSBvZmZz ZXQgaW4gUFJFViwgTEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9MQVNULworICog TkVYVF9MQVNUIGNvbnRhaW5zIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9u LgogICoKLSAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXQgdG8gUlBS X05BVl9PRkZTRVRfTkVFRFNfRVZBTAotICogYmVjYXVzZSBzb21lIFBSRVYgb2Zmc2V0IGNvbnRh aW5zIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgotICogV2Fsa3MgdGhl IG9yaWdpbmFsIGRlZmluZUNsYXVzZSBleHByZXNzaW9uIHRyZWVzLCBjb21waWxlcyBhbmQgZXZh bHVhdGVzCi0gKiBlYWNoIFBSRVYgb2Zmc2V0X2FyZywgYW5kIHN0b3JlcyB0aGUgbWF4aW11bSBp biB3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0LgorICogT24gb3ZlcmZsb3csIHNldHMgbmF2TWF4T2Zm c2V0S2luZCB0byBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMIHNvIHRoYXQKKyAqIHR1cGxlc3Rv cmUgdHJpbSBpcyBkaXNhYmxlZCBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbi4KICAqLwogc3RhdGlj IHZvaWQKIGV2YWxfbmF2X21heF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0 ICpkZWZpbmVDbGF1c2UpCiB7Ci0JRXhwckNvbnRleHQgKmVjb250ZXh0ID0gd2luc3RhdGUtPnNz LnBzLnBzX0V4cHJDb250ZXh0OwotCUxpc3QJICAgKm9mZnNldHMgPSBOSUw7CisJRXZhbE5hdk1h eENvbnRleHQgY3R4OwogCUxpc3RDZWxsICAgKmxjOwotCWludDY0CQltYXhPZmZzZXQgPSAwOwog Ci0JLyogQ29sbGVjdCBhbGwgUFJFViBvZmZzZXQgZXhwcmVzc2lvbnMgZnJvbSBERUZJTkUgY2xh dXNlICovCisJY3R4LndpbnN0YXRlID0gd2luc3RhdGU7CisJY3R4Lm1heE9mZnNldCA9IDA7CisJ Y3R4Lm92ZXJmbG93ID0gZmFsc2U7CisKIAlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2UpCiAJewog CQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAotCQljb2xs ZWN0X3ByZXZfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJm9mZnNldHMpOworCQll dmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJmN0eCk7CiAJfQog Ci0JLyogRXZhbHVhdGUgZWFjaCBvZmZzZXQgYW5kIGZpbmQgbWF4aW11bSAqLwotCWZvcmVhY2go bGMsIG9mZnNldHMpCisJaWYgKGN0eC5vdmVyZmxvdykKIAl7Ci0JCUV4cHIJICAgKm9mZnNldF9l eHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKLQkJRXhwclN0YXRlICAqZXN0YXRlOwotCQlEYXR1 bQkJdmFsOwotCQlib29sCQlpc251bGw7Ci0JCWludDY0CQlvZmZzZXQ7CisJCXdpbnN0YXRlLT5u YXZNYXhPZmZzZXRLaW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJd2luc3RhdGUt Pm5hdk1heE9mZnNldCA9IDA7CisJfQorCWVsc2UKKwl7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZz ZXRLaW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQg PSBjdHgubWF4T2Zmc2V0OworCX0KK30KIAotCQllc3RhdGUgPSBFeGVjSW5pdEV4cHIob2Zmc2V0 X2V4cHIsIChQbGFuU3RhdGUgKikgd2luc3RhdGUpOwotCQl2YWwgPSBFeGVjRXZhbEV4cHJTd2l0 Y2hDb250ZXh0KGVzdGF0ZSwgZWNvbnRleHQsICZpc251bGwpOwordHlwZWRlZiBzdHJ1Y3QKK3sK KwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisJaW50NjQJCW1pbk9mZnNldDsKKwlib29sCQlm b3VuZDsKK30gRXZhbE5hdkZpcnN0Q29udGV4dDsKIAotCQkvKgotCQkgKiBOVUxMIG9yIG5lZ2F0 aXZlIG9mZnNldHMgd2lsbCBjYXVzZSBhIHJ1bnRpbWUgZXJyb3Igd2hlbiBQUkVWIGlzCi0JCSAq IGFjdHVhbGx5IGV2YWx1YXRlZC4gIEZvciB0cmltIHB1cnBvc2VzLCB0cmVhdCB0aGVtIGFzIDAu Ci0JCSAqLwotCQlpZiAoaXNudWxsKQotCQkJY29udGludWU7CisvKgorICogZXZhbF9uYXZfZmly c3Rfb2Zmc2V0X3dhbGtlcgorICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIGV2YWx1YXRpbmcgZm9y d2FyZC1mcm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMuCisgKgorICogSGFuZGxlcyBzaW1wbGUgRklS U1QgYW5kIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4KKyAqLworc3RhdGljIGJvb2wK K2V2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQorewor CUV2YWxOYXZGaXJzdENvbnRleHQgKmNvbnRleHQgPSAoRXZhbE5hdkZpcnN0Q29udGV4dCAqKSBj dHg7CiAKLQkJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NCh2YWwpOwotCQlpZiAob2Zmc2V0IDwgMCkK LQkJCWNvbnRpbnVlOworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlm IChJc0Eobm9kZSwgUlBSTmF2RXhwcikpCisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2 RXhwciAqKSBub2RlOworCQlpbnQ2NAkJY29tYmluZWQgPSBJTlQ2NF9NQVg7CiAKLQkJaWYgKG9m ZnNldCA+IG1heE9mZnNldCkKLQkJCW1heE9mZnNldCA9IG9mZnNldDsKKwkJaWYgKG5hdi0+a2lu ZCA9PSBSUFJfTkFWX0ZJUlNUKQorCQl7CisJCQljb250ZXh0LT5mb3VuZCA9IHRydWU7CisJCQlj b21iaW5lZCA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJ CQkJCQkJCSAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJfQorCQllbHNlIGlmIChuYXYtPmtpbmQg PT0gUlBSX05BVl9QUkVWX0ZJUlNUIHx8CisJCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRf RklSU1QpCisJCXsKKwkJCWludDY0CQlpbm5lciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29u dGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJ CWludDY0CQlvdXRlciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUs CisJCQkJCQkJCQkJCQkJICAgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxKTsKKworCQkJY29u dGV4dC0+Zm91bmQgPSB0cnVlOworCQkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklS U1QpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBjb21iaW5lZCA9IGlubmVyIC0gb3V0ZXIuICBCb3Ro IGFyZSBub24tbmVnYXRpdmUsIHNvIHRoZQorCQkJCSAqIHJlc3VsdCA+PSAtSU5UNjRfTUFYLCB3 aGljaCBjYW5ub3QgdW5kZXJmbG93IGludDY0LgorCQkJCSAqLworCQkJCWNvbWJpbmVkID0gaW5u ZXIgLSBvdXRlcjsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKgorCQkJCSAqIE5FWFRfRklS U1Q6IGNvbWJpbmVkID0gaW5uZXIgKyBvdXRlci4gIFRoaXMgY2FuIG92ZXJmbG93LAorCQkJCSAq IGJ1dCB0aGUgcmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdCBuZXZlciB1cGRhdGVzCisJCQkJ ICogbWluT2Zmc2V0ICh3aGljaCB0cmFja3MgdGhlIG1pbmltdW0pLiAgQ2xhbXAgdG8gSU5UNjRf TUFYCisJCQkJICogb24gb3ZlcmZsb3cuCisJCQkJICovCisJCQkJaWYgKHBnX2FkZF9zNjRfb3Zl cmZsb3coaW5uZXIsIG91dGVyLCAmY29tYmluZWQpKQorCQkJCQljb21iaW5lZCA9IElOVDY0X01B WDsKKwkJCX0KKwkJfQorCisJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPm1pbk9mZnNldCkKKwkJ CWNvbnRleHQtPm1pbk9mZnNldCA9IGNvbWJpbmVkOworCisJCXJldHVybiBmYWxzZTsKIAl9CiAK LQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0ID0gbWF4T2Zmc2V0OworCXJldHVybiBleHByZXNzaW9u X3RyZWVfd2Fsa2VyKG5vZGUsIGV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIsIGN0eCk7Cit9 CisKKy8qCisgKiBldmFsX25hdl9maXJzdF9vZmZzZXQKKyAqCQlFdmFsdWF0ZSBub24tY29uc3Rh bnQgZm9yd2FyZC1mcm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMgYXQgZXhlY3V0b3IKKyAqCQlpbml0 IHRpbWUuCisgKgorICogQ2FsbGVkIHdoZW4gdGhlIHBsYW5uZXIgc2V0IG5hdkZpcnN0T2Zmc2V0 S2luZCB0byBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMCisgKiBiZWNhdXNlIHNvbWUgb2Zmc2V0 IGluIEZJUlNUIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCBjb250YWlucworICog YSBwYXJhbWV0ZXIgb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Npb24uCisgKi8KK3N0YXRpYyB2b2lk CitldmFsX25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0ICpk ZWZpbmVDbGF1c2UpCit7CisJRXZhbE5hdkZpcnN0Q29udGV4dCBjdHg7CisJTGlzdENlbGwgICAq bGM7CisKKwljdHgud2luc3RhdGUgPSB3aW5zdGF0ZTsKKwljdHgubWluT2Zmc2V0ID0gSU5UNjRf TUFYOworCWN0eC5mb3VuZCA9IGZhbHNlOworCisJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQor CXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQls aXN0X2ZyZWUob2Zmc2V0cyk7CisJCWV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIoKE5vZGUg KikgdGUtPmV4cHIsICZjdHgpOworCX0KKworCWlmIChjdHguZm91bmQgJiYgY3R4Lm1pbk9mZnNl dCA8IElOVDY0X01BWCkKKwl7CisJCXdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQgPSBSUFJf TkFWX09GRlNFVF9GSVhFRDsKKwkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0ID0gY3R4Lm1pbk9m ZnNldDsKKwl9CisJZWxzZQorCXsKKwkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0S2luZCA9IFJQ Ul9OQVZfT0ZGU0VUX0ZJWEVEOworCQl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPSAwOworCX0K IH0KIAogLyoKQEAgLTQyMTAsOCArNDM5MywxNCBAQCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5k b3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiAKIAkJLyoKIAkJICogRXZhbHVhdGUgdmFyaWFi bGVzIGZvciB0aGlzIHJvdyAtIGRvbmUgb25seSBvbmNlLCBzaGFyZWQgYnkgYWxsCi0JCSAqIGNv bnRleHRzCisJCSAqIGNvbnRleHRzLgorCQkgKgorCQkgKiBTZXQgbmF2X21hdGNoX3N0YXJ0IHRv IHRoZSBoZWFkIGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGZvcgorCQkgKiBGSVJTVC9MQVNUIG5h dmlnYXRpb24uICBNYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzIChGSVJTVCwKKwkJICog TEFTVC13aXRoLW9mZnNldCkgYXJlIHJlLWV2YWx1YXRlZCBwZXItY29udGV4dCBpbiBFeGVjUlBS UHJvY2Vzc1JvdworCQkgKiB3aGVuIG1hdGNoU3RhcnRSb3cgZGlmZmVycy4KIAkJICovCisJCXdp bnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQgPSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3c7CiAJCXJv d0V4aXN0cyA9IG5mYV9ldmFsdWF0ZV9yb3cod2lub2JqLCBjdXJyZW50UG9zLCB3aW5zdGF0ZS0+ bmZhVmFyTWF0Y2hlZCk7CiAKIAkJLyogTm8gbW9yZSByb3dzIGluIHBhcnRpdGlvbj8gRmluYWxp emUgYWxsIGNvbnRleHRzICovCkBAIC00Mjk5LDggKzQ0ODgsOCBAQCByZWdpc3Rlcl9yZXN1bHQ6 CiAgKiB2YXJNYXRjaGVkW2ldID0gdHJ1ZSBpZiB2YXJpYWJsZSBpIG1hdGNoZWQgYXQgY3VycmVu dCByb3cuCiAgKgogICogVXNlcyAxLXNsb3QgbW9kZWw6IG9ubHkgZWN4dF9vdXRlcnR1cGxlIGlz IHNldCB0byB0aGUgY3VycmVudCByb3cuCi0gKiBQUkVWL05FWFQgbmF2aWdhdGlvbiBpcyBoYW5k bGVkIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCi0gKiBkdXJpbmcgZXhwcmVz c2lvbiBldmFsdWF0aW9uLCB3aGljaCB0ZW1wb3JhcmlseSBzd2FwIHRoZSBzbG90LgorICogUFJF Vi9ORVhUL0ZJUlNUL0xBU1QgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5IEVFT1BfUlBSX05BVl9T RVQvUkVTVE9SRQorICogb3Bjb2RlcyBkdXJpbmcgZXhwcmVzc2lvbiBldmFsdWF0aW9uLCB3aGlj aCB0ZW1wb3JhcmlseSBzd2FwIHRoZSBzbG90LgogICovCiBzdGF0aWMgYm9vbAogbmZhX2V2YWx1 YXRlX3JvdyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZhck1hdGNoZWQp CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGQyZjE5NTg0MDcwLi42NmQzN2I3ODg5OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKQEAgLTIyMDcsNiArMjIwNyw4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxr ZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoZXhwci0+b2Zm c2V0X2FyZyAmJiBXQUxLKGV4cHItPm9mZnNldF9hcmcpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CQlpZiAoZXhwci0+Y29tcG91bmRfb2Zmc2V0X2FyZyAmJiBXQUxLKGV4cHItPmNvbXBvdW5kX29m ZnNldF9hcmcpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFRf U3Vic2NyaXB0aW5nUmVmOgpAQCAtMzE0Niw2ICszMTQ4LDcgQEAgZXhwcmVzc2lvbl90cmVlX211 dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQkJCUZMQVRDT1BZKG5ld25vZGUsIG5hdiwgUlBSTmF2 RXhwcik7CiAJCQkJTVVUQVRFKG5ld25vZGUtPmFyZywgbmF2LT5hcmcsIEV4cHIgKik7CiAJCQkJ TVVUQVRFKG5ld25vZGUtPm9mZnNldF9hcmcsIG5hdi0+b2Zmc2V0X2FyZywgRXhwciAqKTsKKwkJ CQlNVVRBVEUobmV3bm9kZS0+Y29tcG91bmRfb2Zmc2V0X2FyZywgbmF2LT5jb21wb3VuZF9vZmZz ZXRfYXJnLCBFeHByICopOwogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJ YnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFu LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggOGVlM2Nj ZjZkMGQuLjAyZDUxMTI2OWFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxh bi5jCkBAIC0xNiw2ICsxNiw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5j bHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCiAjaW5jbHVk ZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCkBAIC0y OTIsNiArMjkzLDcgQEAgc3RhdGljIFdpbmRvd0FnZyAqbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxp c3QsIFdpbmRvd0NsYXVzZSAqd2MsCiAJCQkJCQkJCSBMaXN0ICpydW5Db25kaXRpb24sIFJQU2tp cFRvIHJwU2tpcFRvLAogCQkJCQkJCQkgUlBSUGF0dGVybiAqY29tcGlsZWRQYXR0ZXJuLAogCQkJ CQkJCQkgTGlzdCAqZGVmaW5lQ2xhdXNlLAorCQkJCQkJCQkgQml0bWFwc2V0ICpkZWZpbmVNYXRj aFN0YXJ0RGVwZW5kZW50LAogCQkJCQkJCQkgTGlzdCAqcXVhbCwgYm9vbCB0b3BXaW5kb3csCiAJ CQkJCQkJCSBQbGFuICpsZWZ0dHJlZSk7CiBzdGF0aWMgR3JvdXAgKm1ha2VfZ3JvdXAoTGlzdCAq dGxpc3QsIExpc3QgKnF1YWwsIGludCBudW1Hcm91cENvbHMsCkBAIC0yNDYyLDE5ICsyNDY0LDcy IEBAIGNyZWF0ZV9taW5tYXhhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTWluTWF4QWdnUGF0 aCAqYmVzdF9wYXRoKQogfQogCiAvKgotICogbmF2X21heF9vZmZzZXRfd2Fsa2VyCi0gKgkJV2Fs ayBleHByZXNzaW9uIHRyZWUgdG8gZmluZCB0aGUgbWF4aW11bSBQUkVWIG9mZnNldC4KKyAqIE5h dk9mZnNldENvbnRleHQgLSBjb250ZXh0IGZvciBjb21wdXRlX25hdl9vZmZzZXRzIHdhbGtlci4K ICAqCi0gKiBPbmx5IFBSRVYgaXMgcmVsZXZhbnQgZm9yIHR1cGxlc3RvcmUgdHJpbSBzaW5jZSBp dCBsb29rcyBiYWNrd2FyZDsKLSAqIE5FWFQgbG9va3MgZm9yd2FyZCBhbmQgbmV2ZXIgcmVmZXJl bmNlcyBhbHJlYWR5LXRyaW1tZWQgcm93cy4KKyAqIENvbGxlY3RzIGJvdGggYmFja3dhcmQgcmVh Y2ggKFBSRVYsIExBU1Qtd2l0aC1vZmZzZXQsIGNvbXBvdW5kCisgKiBQUkVWX0xBU1QvTkVYVF9M QVNUKSBhbmQgZm9yd2FyZC1mcm9tLW1hdGNoLXN0YXJ0IHJlYWNoIChGSVJTVCwKKyAqIGNvbXBv dW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkgaW4gYSBzaW5nbGUgdHJlZSB3YWxrLgorICovCit0 eXBlZGVmIHN0cnVjdCBOYXZPZmZzZXRDb250ZXh0Cit7CisJaW50NjQJCW1heE9mZnNldDsJCS8q IG1heCBQUkVWL0xBU1QgYmFja3dhcmQgb2Zmc2V0ICg+PSAwKSAqLworCWJvb2wJCW1heE5lZWRz RXZhbDsJLyogbm9uLWNvbnN0YW50IFBSRVYvTEFTVCBvZmZzZXQgZm91bmQgKi8KKwlib29sCQlt YXhPdmVyZmxvdzsJLyogY29uc3RhbnQgb2Zmc2V0IG92ZXJmbG93IGRldGVjdGVkICovCisJaW50 NjQJCWZpcnN0T2Zmc2V0OwkvKiBtaW4gRklSU1Qgb2Zmc2V0ICg+PSAwKSwgb3IgLTEgaWYgbm9u ZSAqLworCWJvb2wJCWhhc0ZpcnN0OwkJLyogYW55IEZJUlNUIG5vZGUgZm91bmQgKi8KKwlib29s CQlmaXJzdE5lZWRzRXZhbDsgLyogbm9uLWNvbnN0YW50IEZJUlNUIG9mZnNldCBmb3VuZCAqLwor fSBOYXZPZmZzZXRDb250ZXh0OworCisvKgorICogSGVscGVyOiBleHRyYWN0IGNvbnN0YW50IG9m ZnNldCBmcm9tIGFuIGV4cHJlc3Npb24sIGhhbmRsaW5nIE5VTEwvbmVnYXRpdmUuCisgKiBJZiBl eHByIGlzIE5VTEwsIHJldHVybnMgZGVmYXVsdE9mZnNldC4KKyAqIFJldHVybnMgdHJ1ZSBpZiBj b25zdGFudCwgZmFsc2UgaWYgbm9uLWNvbnN0YW50IChQYXJhbSwgY2FzdCwgZXRjLikuCisgKi8K K3N0YXRpYyBib29sCitleHRyYWN0X2NvbnN0X29mZnNldChFeHByICpleHByLCBpbnQ2NCBkZWZh dWx0T2Zmc2V0LCBpbnQ2NCAqcmVzdWx0KQoreworCWlmIChleHByID09IE5VTEwpCisJeworCQkq cmVzdWx0ID0gZGVmYXVsdE9mZnNldDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYgKElzQShl eHByLCBDb25zdCkpCisJeworCQlDb25zdAkgICAqYyA9IChDb25zdCAqKSBleHByOworCisJCWlm IChjLT5jb25zdGlzbnVsbCkKKwkJCSpyZXN1bHQgPSAwOwkJLyogcnVudGltZSBlcnJvcjsgc2Fm ZSBwbGFjZWhvbGRlciAqLworCQllbHNlCisJCXsKKwkJCSpyZXN1bHQgPSBEYXR1bUdldEludDY0 KGMtPmNvbnN0dmFsdWUpOworCQkJaWYgKCpyZXN1bHQgPCAwKQorCQkJCSpyZXN1bHQgPSAwOwkv KiBydW50aW1lIGVycm9yOyBzYWZlIHBsYWNlaG9sZGVyICovCisJCX0KKwkJcmV0dXJuIHRydWU7 CisJfQorCisJcmV0dXJuIGZhbHNlOwkJCQkvKiBub24tY29uc3RhbnQgKi8KK30KKworLyoKKyAq IG5hdl9vZmZzZXRfd2Fsa2VyCisgKgkJRXhwcmVzc2lvbiB0cmVlIHdhbGtlciBmb3IgY29tcHV0 ZV9uYXZfb2Zmc2V0cy4KKyAqCisgKiBGb3IgZWFjaCBSUFJOYXZFeHByIGZvdW5kLCBleHRyYWN0 IGl0cyBjb25zdGFudCBvZmZzZXQocykgYW5kIHVwZGF0ZSB0aGUKKyAqIE5hdk9mZnNldENvbnRl eHQgd2l0aCB0aGUgbWF4aW11bSBiYWNrd2FyZCByZWFjaCAobWF4T2Zmc2V0KSBhbmQgbWluaW11 bQorICogZm9yd2FyZCByZWFjaCAoZmlyc3RPZmZzZXQpLiAgSGFuZGxlcyBzaW1wbGUgbmF2aWdh dGlvbiAoUFJFViwgTkVYVCwKKyAqIEZJUlNULCBMQVNUKSBhbmQgY29tcG91bmQgZm9ybXMgKFBS RVZfRklSU1QsIE5FWFRfRklSU1QsIFBSRVZfTEFTVCwKKyAqIE5FWFRfTEFTVCkgYnkgY29tYmlu aW5nIGlubmVyIGFuZCBvdXRlciBvZmZzZXRzLgogICoKLSAqIFJldHVybnMgdHJ1ZSAodG8gc3Rv cCB3YWxraW5nKSBpZiBhIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldCBpcyBmb3VuZCwKLSAqIGlu IHdoaWNoIGNhc2UgKm1heE9mZnNldCBpcyBzZXQgdG8gLTEuICBPdGhlcndpc2UgYWNjdW11bGF0 ZXMgdGhlCi0gKiBtYXhpbXVtIGNvbnN0YW50IG9mZnNldCB2YWx1ZS4KKyAqIE5vbi1jb25zdGFu dCBvZmZzZXRzIHNldCBtYXhOZWVkc0V2YWwgb3IgZmlyc3ROZWVkc0V2YWwuICBPdmVyZmxvdyBz ZXRzCisgKiBtYXhPdmVyZmxvdyBvciBmaXJzdE92ZXJmbG93IGZvciBSRVRBSU5fQUxMIGZhbGxi YWNrLgogICovCiBzdGF0aWMgYm9vbAotbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUs IGludDY0ICptYXhPZmZzZXQpCituYXZfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpj dHgpCiB7CisJTmF2T2Zmc2V0Q29udGV4dCAqY29udGV4dCA9IChOYXZPZmZzZXRDb250ZXh0ICop IGN0eDsKKwogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtMjQ4Miw4 MSArMjUzNywyOTQgQEAgbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0ICpt YXhPZmZzZXQpCiAJewogCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwog Ci0JCS8qIE9ubHkgUFJFViBsb29rcyBiYWNrd2FyZDsgTkVYVCBpcyBpcnJlbGV2YW50IGZvciB0 cmltICovCi0JCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWKQorCQkvKgorCQkgKiBTaW1w bGUgUFJFVih2LCBOKSBhbmQgTEFTVCh2LCBOKTogYmFja3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50 cG9zLgorCQkgKiBMQVNUIHdpdGhvdXQgb2Zmc2V0ID0gY3VycmVudHBvcywgbm8gYmFja3dhcmQg cmVhY2guIE5FWFQ6IGZvcndhcmQKKwkJICogb25seSwgaXJyZWxldmFudCBmb3IgdHJpbS4KKwkJ ICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkobmF2LT5raW5kID09 IFJQUl9OQVZfTEFTVCAmJiBuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkpCiAJCXsKLQkJCWludDY0 CQlvZmZzZXQ7Ci0KLQkJCWlmIChuYXYtPm9mZnNldF9hcmcgPT0gTlVMTCkKKwkJCWlmICghY29u dGV4dC0+bWF4TmVlZHNFdmFsKQogCQkJewotCQkJCS8qIDEtYXJnIGZvcm06IGltcGxpY2l0IG9m ZnNldCBvZiAxICovCi0JCQkJb2Zmc2V0ID0gMTsKKwkJCQlpbnQ2NAkJb2Zmc2V0OworCisJCQkJ aWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMSwgJm9mZnNldCkpCisJ CQkJeworCQkJCQlpZiAob2Zmc2V0ID4gY29udGV4dC0+bWF4T2Zmc2V0KQorCQkJCQkJY29udGV4 dC0+bWF4T2Zmc2V0ID0gb2Zmc2V0OworCQkJCX0KKwkJCQllbHNlCisJCQkJCWNvbnRleHQtPm1h eE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9Ci0JCQllbHNlIGlmIChJc0EobmF2LT5vZmZzZXRfYXJn LCBDb25zdCkpCisJCX0KKworCQkvKgorCQkgKiBTaW1wbGUgRklSU1QodiwgTik6IGZvcndhcmQg cmVhY2ggZnJvbSBtYXRjaF9zdGFydC4gU21hbGxlciBOIG1lYW5zCisJCSAqIG9sZGVyIHJvd3Mg bmVlZGVkLgorCQkgKi8KKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0ZJUlNUKQorCQl7CisJ CQljb250ZXh0LT5oYXNGaXJzdCA9IHRydWU7CisKKwkJCWlmICghY29udGV4dC0+Zmlyc3ROZWVk c0V2YWwpCiAJCQl7Ci0JCQkJQ29uc3QJICAgKmMgPSAoQ29uc3QgKikgbmF2LT5vZmZzZXRfYXJn OworCQkJCWludDY0CQlvZmZzZXQ7CiAKLQkJCQlpZiAoYy0+Y29uc3Rpc251bGwpCisJCQkJaWYg KGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJm9mZnNldCkpCiAJCQkJ ewotCQkJCQkvKgotCQkJCQkgKiBOVUxMIG9mZnNldCBjYXVzZXMgYSBydW50aW1lIGVycm9yLCBz byB0aGlzIHBhdGggaXMKLQkJCQkJICogbmV2ZXIgYWN0dWFsbHkgcmVhY2hlZCBkdXJpbmcgZXhl Y3V0aW9uLiAgVXNlIDAgYXMgYQotCQkJCQkgKiBzYWZlIHBsYWNlaG9sZGVyIGZvciBwbGFubmlu ZyBwdXJwb3Nlcy4KLQkJCQkJICovCi0JCQkJCW9mZnNldCA9IDA7CisJCQkJCWlmIChvZmZzZXQg PCBjb250ZXh0LT5maXJzdE9mZnNldCkKKwkJCQkJCWNvbnRleHQtPmZpcnN0T2Zmc2V0ID0gb2Zm c2V0OwogCQkJCX0KIAkJCQllbHNlCisJCQkJCWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsID0gdHJ1 ZTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIENvbXBvdW5kIFBSRVZfTEFTVCAvIE5FWFRfTEFT VDogYmFzZSA9IGN1cnJlbnRwb3MuIFBSRVZfTEFTVCh2LCBOLAorCQkgKiBNKTogdGFyZ2V0ID0g Y3VycmVudHBvcyAtIE4gLSBNIOKGkiBsb29rYmFjayA9IE4gKyBNIE5FWFRfTEFTVCh2LAorCQkg KiBOLCBNKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gKyBNIOKGkiBsb29rYmFjayA9IG1heChO IC0gTSwgMCkKKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QgfHwK KwkJCW5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkKKwkJeworCQkJaWYgKCFjb250ZXh0 LT5tYXhOZWVkc0V2YWwpCisJCQl7CisJCQkJaW50NjQJCWlubmVyLAorCQkJCQkJCW91dGVyLAor CQkJCQkJCWNvbWJpbmVkOworCisJCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zm c2V0X2FyZywgMCwgJmlubmVyKSAmJgorCQkJCQlleHRyYWN0X2NvbnN0X29mZnNldChuYXYtPmNv bXBvdW5kX29mZnNldF9hcmcsIDEsICZvdXRlcikpCiAJCQkJewotCQkJCQlvZmZzZXQgPSBEYXR1 bUdldEludDY0KGMtPmNvbnN0dmFsdWUpOwotCQkJCQlpZiAob2Zmc2V0IDwgMCkKLQkJCQkJCW9m ZnNldCA9IDA7IC8qIG5lZ2F0aXZlIG9mZnNldCBjYXVzZXMgcnVudGltZSBlcnJvciAqLworCQkJ CQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUKQorCQkJCQl7CisJCQkJCQlpZiAo cGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIsICZjb21iaW5lZCkpCisJCQkJCQl7CisJ CQkJCQkJY29udGV4dC0+bWF4T3ZlcmZsb3cgPSB0cnVlOworCQkJCQkJCXJldHVybiBmYWxzZTsK KwkJCQkJCX0KKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQljb21iaW5lZCA9IChpbm5lciA+IG91 dGVyKSA/IGlubmVyIC0gb3V0ZXIgOiAwOworCisJCQkJCWlmIChjb21iaW5lZCA+IGNvbnRleHQt Pm1heE9mZnNldCkKKwkJCQkJCWNvbnRleHQtPm1heE9mZnNldCA9IGNvbWJpbmVkOwogCQkJCX0K KwkJCQllbHNlCisJCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9Ci0JCQll bHNlCisJCX0KKworCQkvKgorCQkgKiBDb21wb3VuZCBQUkVWX0ZJUlNUIC8gTkVYVF9GSVJTVDog YmFzZSA9IG1hdGNoX3N0YXJ0LiBQUkVWX0ZJUlNUKHYsCisJCSAqIE4sIE0pOiB0YXJnZXQgPSBt YXRjaF9zdGFydCArIE4gLSBNIE5FWFRfRklSU1QodiwgTiwgTSk6IHRhcmdldCA9CisJCSAqIG1h dGNoX3N0YXJ0ICsgTiArIE0gVGhlIGNvbWJpbmVkIG9mZnNldCAoTsKxTSkgZnJvbSBtYXRjaF9z dGFydCBjYW4KKwkJICogYmUgbmVnYXRpdmUsIG1lYW5pbmcgcm93cyBiZWZvcmUgbWF0Y2hfc3Rh cnQgYXJlIG5lZWRlZC4KKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0ZJ UlNUIHx8CisJCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0ZJUlNUKQorCQl7CisJCQljb250 ZXh0LT5oYXNGaXJzdCA9IHRydWU7CisKKwkJCWlmICghY29udGV4dC0+Zmlyc3ROZWVkc0V2YWwp CiAJCQl7Ci0JCQkJLyoKLQkJCQkgKiBOb24tY29uc3RhbnQgb2Zmc2V0IChQYXJhbSwgc3RhYmxl IGZ1bmN0aW9uLCBldGMuKS4gVGhlCi0JCQkJICogcGFyc2VyIGd1YXJhbnRlZXMgb2Zmc2V0IGlz IGEgcnVudGltZSBjb25zdGFudCwgc28gaXQgY2FuCi0JCQkJICogYmUgZXZhbHVhdGVkIGF0IGV4 ZWN1dG9yIGluaXQgdGltZS4KLQkJCQkgKi8KLQkJCQkqbWF4T2Zmc2V0ID0gUlBSX05BVl9PRkZT RVRfTkVFRFNfRVZBTDsKLQkJCQlyZXR1cm4gdHJ1ZTsJLyogc3RvcCB3YWxraW5nICovCisJCQkJ aW50NjQJCWlubmVyLAorCQkJCQkJCW91dGVyLAorCQkJCQkJCWNvbWJpbmVkOworCisJCQkJaWYg KGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJmlubmVyKSAmJgorCQkJ CQlleHRyYWN0X2NvbnN0X29mZnNldChuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIDEsICZvdXRl cikpCisJCQkJeworCQkJCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCkKKwkJ CQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIGNvbWJpbmVkID0gaW5uZXIgLSBvdXRlci4gIEJvdGgg YXJlIG5vbi1uZWdhdGl2ZSwKKwkJCQkJCSAqIHNvIHRoZSByZXN1bHQgPj0gLUlOVDY0X01BWCwg d2hpY2ggY2Fubm90IHVuZGVyZmxvdworCQkJCQkJICogaW50NjQuICBObyBvdmVyZmxvdyBjaGVj ayBuZWVkZWQuCisJCQkJCQkgKi8KKwkJCQkJCWNvbWJpbmVkID0gaW5uZXIgLSBvdXRlcjsKKwkJ CQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBORVhUX0ZJUlNUOiBj b21iaW5lZCA9IGlubmVyICsgb3V0ZXIuICBUaGlzIGNhbgorCQkJCQkJICogb3ZlcmZsb3csIGJ1 dCB0aGUgcmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdAorCQkJCQkJICogbmV2ZXIgdXBkYXRl cyBmaXJzdE9mZnNldCAod2hpY2ggdHJhY2tzIHRoZQorCQkJCQkJICogbWluaW11bSkuICBDbGFt cCB0byBJTlQ2NF9NQVggb24gb3ZlcmZsb3cuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChwZ19hZGRf czY0X292ZXJmbG93KGlubmVyLCBvdXRlciwgJmNvbWJpbmVkKSkKKwkJCQkJCQljb21iaW5lZCA9 IElOVDY0X01BWDsKKwkJCQkJfQorCisJCQkJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPmZpcnN0 T2Zmc2V0KQorCQkJCQkJY29udGV4dC0+Zmlyc3RPZmZzZXQgPSBjb21iaW5lZDsKKwkJCQl9CisJ CQkJZWxzZQorCQkJCQljb250ZXh0LT5maXJzdE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9CisJCX0K IAotCQkJaWYgKG9mZnNldCA+ICptYXhPZmZzZXQpCi0JCQkJKm1heE9mZnNldCA9IG9mZnNldDsK KwkJLyogRG9uJ3Qgd2FsayBpbnRvIFJQUk5hdkV4cHIgY2hpbGRyZW4gKi8KKwkJcmV0dXJuIGZh bHNlOworCX0KKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9vZmZz ZXRfd2Fsa2VyLCBjdHgpOworfQorCisvKgorICogY29tcHV0ZV9uYXZfb2Zmc2V0cworICoJCUNv bXB1dGUgbmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gaW4gYSBzaW5nbGUg cGFzcy4KKyAqCisgKiBXYWxrcyBhbGwgREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucyBvbmNlLCBj b21wdXRpbmc6CisgKiAgIC0gbWF4T2Zmc2V0OiBtYXggYmFja3dhcmQgcmVhY2ggZnJvbSBQUkVW LCBMQVNULXdpdGgtb2Zmc2V0LAorICogICAgIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QK KyAqICAgLSBoYXNGaXJzdC9maXJzdE9mZnNldDogbWluIGZvcndhcmQtZnJvbS1tYXRjaC1zdGFy dCByZWFjaCBmcm9tCisgKiAgICAgRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJT VAorICovCitzdGF0aWMgdm9pZAorY29tcHV0ZV9uYXZfb2Zmc2V0cyhMaXN0ICpkZWZpbmVDbGF1 c2UsCisJCQkJCVJQUk5hdk9mZnNldEtpbmQgKm1heEtpbmQsIGludDY0ICptYXhSZXN1bHQsCisJ CQkJCWJvb2wgKmhhc0ZpcnN0LAorCQkJCQlSUFJOYXZPZmZzZXRLaW5kICpmaXJzdEtpbmQsIGlu dDY0ICpmaXJzdFJlc3VsdCkKK3sKKwlOYXZPZmZzZXRDb250ZXh0IGN0eDsKKwlMaXN0Q2VsbCAg ICpsYzsKKworCWN0eC5tYXhPZmZzZXQgPSAwOworCWN0eC5tYXhOZWVkc0V2YWwgPSBmYWxzZTsK KwljdHgubWF4T3ZlcmZsb3cgPSBmYWxzZTsKKwljdHguZmlyc3RPZmZzZXQgPSBJTlQ2NF9NQVg7 CS8qIHNlbnRpbmVsOiBubyBGSVJTVCBmb3VuZCB5ZXQgKi8KKwljdHguaGFzRmlyc3QgPSBmYWxz ZTsKKwljdHguZmlyc3ROZWVkc0V2YWwgPSBmYWxzZTsKKworCWZvcmVhY2gobGMsIGRlZmluZUNs YXVzZSkKKwl7CisJCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMp OworCisJCW5hdl9vZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmY3R4KTsKKwl9CisK KwkvKiBNYXggYmFja3dhcmQgb2Zmc2V0ICovCisJaWYgKGN0eC5tYXhPdmVyZmxvdykKKwl7CisJ CSptYXhLaW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJKm1heFJlc3VsdCA9IDA7 CisJfQorCWVsc2UgaWYgKGN0eC5tYXhOZWVkc0V2YWwpCisJeworCQkqbWF4S2luZCA9IFJQUl9O QVZfT0ZGU0VUX05FRURTX0VWQUw7CisJCSptYXhSZXN1bHQgPSAwOworCX0KKwllbHNlCisJewor CQkqbWF4S2luZCA9IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOworCQkqbWF4UmVzdWx0ID0gY3R4Lm1h eE9mZnNldDsKKwl9CisKKwkvKiBGaXJzdCBvZmZzZXQgKGNhbiBiZSBuZWdhdGl2ZSBmb3IgY29t cG91bmQgUFJFVl9GSVJTVCkgKi8KKwkqaGFzRmlyc3QgPSBjdHguaGFzRmlyc3Q7CisJaWYgKGN0 eC5oYXNGaXJzdCkKKwl7CisJCWlmIChjdHguZmlyc3ROZWVkc0V2YWwpCisJCXsKKwkJCSpmaXJz dEtpbmQgPSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOworCQkJKmZpcnN0UmVzdWx0ID0gMDsK KwkJfQorCQllbHNlIGlmIChjdHguZmlyc3RPZmZzZXQgPT0gSU5UNjRfTUFYKQorCQl7CisJCQkq Zmlyc3RLaW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCQkqZmlyc3RSZXN1bHQgPSAwOwkv KiBvbmx5IGltcGxpY2l0IEZJUlNUKHYpICovCisJCX0KKwkJZWxzZQorCQl7CisJCQkqZmlyc3RL aW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCQkqZmlyc3RSZXN1bHQgPSBjdHguZmlyc3RP ZmZzZXQ7IC8qIG1heSBiZSBuZWdhdGl2ZSAqLwogCQl9CisJfQorCWVsc2UKKwl7CisJCSpmaXJz dEtpbmQgPSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKKwkJKmZpcnN0UmVzdWx0ID0gMDsKKwl9Cit9 CiAKLQkJLyogRG9uJ3Qgd2FsayBpbnRvIFJQUk5hdkV4cHIgY2hpbGRyZW4gLSBvZmZzZXRfYXJn IGFscmVhZHkgaGFuZGxlZCAqLworLyoKKyAqIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5Cisg KgkJQ2hlY2sgaWYgYW4gZXhwcmVzc2lvbiB0cmVlIGNvbnRhaW5zIG5hdmlnYXRpb24gdGhhdCBk ZXBlbmRzIG9uCisgKgkJbWF0Y2hfc3RhcnQ6IEZJUlNULCBMQVNULXdpdGgtb2Zmc2V0LCBvciBj b21wb3VuZCBQUkVWX0ZJUlNULworICoJCU5FWFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3 aXRoIG9mZnNldC4gIFN1Y2ggZXhwcmVzc2lvbnMKKyAqCQlyZXF1aXJlIHBlci1jb250ZXh0IHJl LWV2YWx1YXRpb24gZHVyaW5nIE5GQSBwcm9jZXNzaW5nLgorICoKKyAqIExBU1Qgd2l0aG91dCBv ZmZzZXQgYWx3YXlzIHJlc29sdmVzIHRvIGN1cnJlbnRwb3MgYW5kIGlzCisgKiBtYXRjaF9zdGFy dC1pbmRlcGVuZGVudC4KKyAqLworc3RhdGljIGJvb2wKK2hhc19tYXRjaF9zdGFydF9kZXBlbmRl bmN5KE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKIAkJ cmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKKwl7CisJCVJQUk5h dkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisKKwkJaWYgKG5hdi0+a2luZCA9PSBS UFJfTkFWX0ZJUlNUKQorCQkJcmV0dXJuIHRydWU7CisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05B Vl9MQVNUICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJcmV0dXJuIHRydWU7CisKKwkJ LyogQ29tcG91bmQga2luZHMgd2l0aCBGSVJTVCBiYXNlIGRlcGVuZCBvbiBtYXRjaF9zdGFydCAq LworCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCB8fAorCQkJbmF2LT5raW5k ID09IFJQUl9OQVZfTkVYVF9GSVJTVCkKKwkJCXJldHVybiB0cnVlOworCisJCS8qCisJCSAqIFBS RVZfTEFTVC9ORVhUX0xBU1Q6IGlubmVyIGlzIExBU1QsIHdoaWNoIHVzZXMgY3VycmVudHBvcy4K KwkJICogbWF0Y2hfc3RhcnQtZGVwZW5kZW50IG9ubHkgaWYgaW5uZXIgaGFzIG9mZnNldCAoY2xh bXBlZCB0bworCQkgKiBtYXRjaF9zdGFydCkuCisJCSAqLworCQlpZiAoKG5hdi0+a2luZCA9PSBS UFJfTkFWX1BSRVZfTEFTVCB8fAorCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkg JiYKKwkJCW5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJcmV0dXJuIHRydWU7CisKKwkJLyog Q2hlY2sgY2hpbGRyZW4gKGFyZyBtYXkgY29udGFpbiBmdXJ0aGVyIG5hdiBleHByZXNzaW9ucykg Ki8KKwkJcmV0dXJuIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5KChOb2RlICopIG5hdi0+YXJn LCBjb250ZXh0KTsKIAl9CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBu YXZfbWF4X29mZnNldF93YWxrZXIsIG1heE9mZnNldCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJl ZV93YWxrZXIobm9kZSwgaGFzX21hdGNoX3N0YXJ0X2RlcGVuZGVuY3ksIE5VTEwpOwogfQogCiAv KgotICogY29tcHV0ZV9uYXZfbWF4X29mZnNldAotICoJCUNvbXB1dGUgdGhlIG1heGltdW0gUFJF ViBvZmZzZXQgZnJvbSBERUZJTkUgY2xhdXNlIGV4cHJlc3Npb25zLgorICogY29tcHV0ZV9tYXRj aF9zdGFydF9kZXBlbmRlbnQKKyAqCQlCdWlsZCBhIEJpdG1hcHNldCBvZiBERUZJTkUgdmFyaWFi bGUgaW5kaWNlcyB3aG9zZSBleHByZXNzaW9ucworICoJCWRlcGVuZCBvbiBtYXRjaF9zdGFydCAo Y29udGFpbiBGSVJTVCwgTEFTVC13aXRoLW9mZnNldCwgb3IKKyAqCQljb21wb3VuZCBQUkVWX0ZJ UlNUL05FWFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9mZnNldCkuCiAgKgotICog UmV0dXJucyB0aGUgbWF4aW11bSBjb25zdGFudCBvZmZzZXQgZm91bmQsIG9yIC0xIGlmIGFueSBQ UkVWIG9mZnNldAotICogY2Fubm90IGJlIGRldGVybWluZWQgc3RhdGljYWxseS4gIE5FWFQgb2Zm c2V0cyBhcmUgaWdub3JlZCBzaW5jZSB0aGV5Ci0gKiBsb29rIGZvcndhcmQgYW5kIGRvbid0IGFm ZmVjdCB0dXBsZXN0b3JlIHRyaW0uCisgKiBWYXJpYWJsZXMgaW4gdGhpcyBzZXQgcmVxdWlyZSBw ZXItY29udGV4dCByZS1ldmFsdWF0aW9uIGR1cmluZyBORkEKKyAqIHByb2Nlc3NpbmcsIGJlY2F1 c2UgZGlmZmVyZW50IGNvbnRleHRzIG1heSBoYXZlIGRpZmZlcmVudCBtYXRjaF9zdGFydAorICog dmFsdWVzLgogICovCi1zdGF0aWMgaW50NjQKLWNvbXB1dGVfbmF2X21heF9vZmZzZXQoTGlzdCAq ZGVmaW5lQ2xhdXNlKQorc3RhdGljIEJpdG1hcHNldCAqCitjb21wdXRlX21hdGNoX3N0YXJ0X2Rl cGVuZGVudChMaXN0ICpkZWZpbmVDbGF1c2UpCiB7Ci0JaW50NjQJCW1heE9mZnNldCA9IDA7CisJ Qml0bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlMaXN0Q2VsbCAgICpsYzsKKwlpbnQJCQl2YXJJ ZHggPSAwOwogCiAJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQogCXsKIAkJVGFyZ2V0RW50cnkg KnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQkJaWYgKG5hdl9tYXhfb2Zmc2V0 X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJm1heE9mZnNldCkpCi0JCQlyZXR1cm4gbWF4T2Zm c2V0OwkvKiBORUVEU19FVkFMIG9yIFJFVEFJTl9BTEwgKi8KKwkJaWYgKGhhc19tYXRjaF9zdGFy dF9kZXBlbmRlbmN5KChOb2RlICopIHRlLT5leHByLCBOVUxMKSkKKwkJCXJlc3VsdCA9IGJtc19h ZGRfbWVtYmVyKHJlc3VsdCwgdmFySWR4KTsKKworCQl2YXJJZHgrKzsKIAl9CiAKLQlyZXR1cm4g bWF4T2Zmc2V0OworCXJldHVybiByZXN1bHQ7CiB9CiAKIC8qCkBAIC0yNTg2LDYgKzI4NTQsNyBA QCBjcmVhdGVfd2luZG93YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIFdpbmRvd0FnZ1BhdGgg KmJlc3RfcGF0aCkKIAlMaXN0CSAgICpkZWZpbmVWYXJpYWJsZUxpc3QgPSBOSUw7CiAJTGlzdAkg ICAqZmlsdGVyZWREZWZpbmVDbGF1c2UgPSBOSUw7CiAJUlBSUGF0dGVybiAqY29tcGlsZWRQYXR0 ZXJuID0gTlVMTDsKKwlCaXRtYXBzZXQgICptYXRjaFN0YXJ0RGVwZW5kZW50ID0gTlVMTDsKIAog CiAJLyoKQEAgLTI2NDgsMTEgKzI5MTcsMTUgQEAgY3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5u ZXJJbmZvICpyb290LCBXaW5kb3dBZ2dQYXRoICpiZXN0X3BhdGgpCiAJCWJ1aWxkRGVmaW5lVmFy aWFibGVMaXN0KHdjLT5kZWZpbmVDbGF1c2UsICZkZWZpbmVWYXJpYWJsZUxpc3QpOwogCQlmaWx0 ZXJlZERlZmluZUNsYXVzZSA9IHdjLT5kZWZpbmVDbGF1c2U7CiAKKwkJLyogSWRlbnRpZnkgbWF0 Y2hfc3RhcnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgKi8KKwkJbWF0Y2hTdGFydERlcGVu ZGVudCA9IGNvbXB1dGVfbWF0Y2hfc3RhcnRfZGVwZW5kZW50KHdjLT5kZWZpbmVDbGF1c2UpOwor CiAJCS8qIENvbXBpbGUgYW5kIG9wdGltaXplIFJQUiBwYXR0ZXJucyAqLwogCQljb21waWxlZFBh dHRlcm4gPSBidWlsZFJQUlBhdHRlcm4od2MtPnJwUGF0dGVybiwKIAkJCQkJCQkJCQkgIGRlZmlu ZVZhcmlhYmxlTGlzdCwKIAkJCQkJCQkJCQkgIHdjLT5ycFNraXBUbywKLQkJCQkJCQkJCQkgIHdj LT5mcmFtZU9wdGlvbnMpOworCQkJCQkJCQkJCSAgd2MtPmZyYW1lT3B0aW9ucywKKwkJCQkJCQkJ CQkgICFibXNfaXNfZW1wdHkobWF0Y2hTdGFydERlcGVuZGVudCkpOwogCX0KIAogCS8qIEFuZCBm aW5hbGx5IHdlIGNhbiBtYWtlIHRoZSBXaW5kb3dBZ2cgbm9kZSAqLwpAQCAtMjY3MCw2ICsyOTQz LDcgQEAgY3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBXaW5kb3dBZ2dQ YXRoICpiZXN0X3BhdGgpCiAJCQkJCQkgIHdjLT5ycFNraXBUbywKIAkJCQkJCSAgY29tcGlsZWRQ YXR0ZXJuLAogCQkJCQkJICBmaWx0ZXJlZERlZmluZUNsYXVzZSwKKwkJCQkJCSAgbWF0Y2hTdGFy dERlcGVuZGVudCwKIAkJCQkJCSAgYmVzdF9wYXRoLT5xdWFsLAogCQkJCQkJICBiZXN0X3BhdGgt PnRvcHdpbmRvdywKIAkJCQkJCSAgc3VicGxhbik7CkBAIC02NzQyLDYgKzcwMTYsNyBAQCBtYWtl X3dpbmRvd2FnZyhMaXN0ICp0bGlzdCwgV2luZG93Q2xhdXNlICp3YywKIAkJCSAgIExpc3QgKnJ1 bkNvbmRpdGlvbiwgUlBTa2lwVG8gcnBTa2lwVG8sCiAJCQkgICBSUFJQYXR0ZXJuICpjb21waWxl ZFBhdHRlcm4sCiAJCQkgICBMaXN0ICpkZWZpbmVDbGF1c2UsCisJCQkgICBCaXRtYXBzZXQgKmRl ZmluZU1hdGNoU3RhcnREZXBlbmRlbnQsCiAJCQkgICBMaXN0ICpxdWFsLCBib29sIHRvcFdpbmRv dywgUGxhbiAqbGVmdHRyZWUpCiB7CiAJV2luZG93QWdnICAqbm9kZSA9IG1ha2VOb2RlKFdpbmRv d0FnZyk7CkBAIC02Nzc2LDggKzcwNTEsMTQgQEAgbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3Qs IFdpbmRvd0NsYXVzZSAqd2MsCiAKIAlub2RlLT5kZWZpbmVDbGF1c2UgPSBkZWZpbmVDbGF1c2U7 CiAKLQkvKiBDb21wdXRlIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltIG9wdGlt aXphdGlvbiAqLwotCW5vZGUtPm5hdk1heE9mZnNldCA9IGNvbXB1dGVfbmF2X21heF9vZmZzZXQo ZGVmaW5lQ2xhdXNlKTsKKwkvKiBTdG9yZSBwcmUtY29tcHV0ZWQgbWF0Y2hfc3RhcnQgZGVwZW5k ZW5jeSBiaXRtYXBzZXQgKi8KKwlub2RlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50ID0gZGVm aW5lTWF0Y2hTdGFydERlcGVuZGVudDsKKworCS8qIENvbXB1dGUgbmF2IG9mZnNldHMgZm9yIHR1 cGxlc3RvcmUgdHJpbSBvcHRpbWl6YXRpb24gKi8KKwljb21wdXRlX25hdl9vZmZzZXRzKGRlZmlu ZUNsYXVzZSwKKwkJCQkJCSZub2RlLT5uYXZNYXhPZmZzZXRLaW5kLCAmbm9kZS0+bmF2TWF4T2Zm c2V0LAorCQkJCQkJJm5vZGUtPmhhc0ZpcnN0TmF2LAorCQkJCQkJJm5vZGUtPm5hdkZpcnN0T2Zm c2V0S2luZCwgJm5vZGUtPm5hdkZpcnN0T2Zmc2V0KTsKIAogCXBsYW4tPnRhcmdldGxpc3QgPSB0 bGlzdDsKIAlwbGFuLT5sZWZ0dHJlZSA9IGxlZnR0cmVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIu YwppbmRleCBjMGU5ZDEzNGFhOS4uNzY3YTIxNDAxNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jw ci5jCkBAIC0xODkzLDcgKzE4OTMsOCBAQCBidWlsZERlZmluZVZhcmlhYmxlTGlzdChMaXN0ICpk ZWZpbmVDbGF1c2UsIExpc3QgKipkZWZpbmVWYXJpYWJsZUxpc3QpCiAgKi8KIFJQUlBhdHRlcm4g KgogYnVpbGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVW YXJpYWJsZUxpc3QsCi0JCQkJUlBTa2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMpCisJ CQkJUlBTa2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMsCisJCQkJYm9vbCBoYXNNYXRj aFN0YXJ0RGVwZW5kZW50KQogewogCVJQUlBhdHRlcm4gKnJlc3VsdDsKIAlSUFJQYXR0ZXJuTm9k ZSAqb3B0aW1pemVkOwpAQCAtMTk0Nyw3ICsxOTQ4LDggQEAgYnVpbGRSUFJQYXR0ZXJuKFJQUlBh dHRlcm5Ob2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJsZUxpc3QsCiAJaGFzTGltaXRl ZEZyYW1lID0gKGZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1JPV1MpICYmCiAJCSEoZnJhbWVP cHRpb25zICYgRlJBTUVPUFRJT05fRU5EX1VOQk9VTkRFRF9GT0xMT1dJTkcpOwogCi0JaWYgKHJw U2tpcFRvID09IFNUX1BBU1RfTEFTVF9ST1cgJiYgIWhhc0xpbWl0ZWRGcmFtZSkKKwlpZiAocnBT a2lwVG8gPT0gU1RfUEFTVF9MQVNUX1JPVyAmJiAhaGFzTGltaXRlZEZyYW1lICYmCisJCSFoYXNN YXRjaFN0YXJ0RGVwZW5kZW50KQogCXsKIAkJLyogUnVudGltZSBjb25kaXRpb25zIG1ldCAtIGNo ZWNrIHN0cnVjdHVyYWwgYWJzb3JiYWJpbGl0eSAqLwogCQljb21wdXRlQWJzb3JiYWJpbGl0eShy ZXN1bHQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggZTE0ZmY0ZGM0OTQuLmFhNDVhOTg3 MTNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTc1NywzNSArNzU3LDc5IEBAIFBhcnNl RnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZh cmdzLAogCWlmIChyZXRzZXQpCiAJCWNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChwc3RhdGUsIGxh c3Rfc3JmLCBsb2NhdGlvbik7CiAKLQkvKiBuZXh0KCkgYW5kIHByZXYoKSBhcmUgb25seSBhbGxv d2VkIGluIGEgV0lORE9XIERFRklORSBjbGF1c2UgKi8KKwkvKgorCSAqIFJQUiBuYXZpZ2F0aW9u IGZ1bmN0aW9ucyAoUFJFVi9ORVhUL0ZJUlNUL0xBU1QpIGFyZSBvbmx5IG1lYW5pbmdmdWwKKwkg KiBpbnNpZGUgYSBXSU5ET1cgREVGSU5FIGNsYXVzZS4KKwkgKgorCSAqIE91dHNpZGUgREVGSU5F LCB0aGVzZSBwb2x5bW9ycGhpYyBwbGFjZWhvbGRlcnMgY2FuIHNoYWRvdyBjb2x1bW4gYWNjZXNz CisJICogdmlhIGZ1bmN0aW9uYWwgbm90YXRpb24gKGUuZy4sIGxhc3QoZikgbWVhbmluZyBmLmxh c3QpLiBGb3IgdGhlIDEtYXJnCisJICogZm9ybSwgdHJ5IGNvbHVtbiBwcm9qZWN0aW9uIGZpcnN0 OyBpZiB0aGF0IHN1Y2NlZWRzLCB1c2UgaXQgaW5zdGVhZC4KKwkgKiBPdGhlcndpc2UsIHJlcG9y dCBhIGNsZWFyIHBhcnNlciBlcnJvci4KKwkgKi8KIAlpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJ TF9OT1JNQUwgJiYKIAkJcHN0YXRlLT5wX2V4cHJfa2luZCAhPSBFWFBSX0tJTkRfUlBSX0RFRklO RSAmJgogCQkoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UIHx8IGZ1bmNpZCA9PSBGX05FWFRf QU5ZRUxFTUVOVCB8fAotCQkgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwgZnVu Y2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpKQorCQkgZnVuY2lkID09IEZfUFJFVl9BTllF TEVNRU5UX0lOVDggfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDggfHwKKwkJIGZ1 bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTEFTVF9BTllFTEVNRU5U IHx8CisJCSBmdW5jaWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UX0lOVDggfHwgZnVuY2lkID09IEZf TEFTVF9BTllFTEVNRU5UX0lOVDgpKQorCXsKKwkJLyogMS1hcmcgZm9ybTogdHJ5IGNvbHVtbiBw cm9qZWN0aW9uIGJlZm9yZSBlcnJvcmluZyBvdXQgKi8KKwkJaWYgKG5hcmdzID09IDEgJiYgIWFn Z19zdGFyICYmICFhZ2dfZGlzdGluY3QgJiYgb3ZlciA9PSBOVUxMICYmCisJCQlsaXN0X2xlbmd0 aChmdW5jbmFtZSkgPT0gMSkKKwkJeworCQkJTm9kZQkgICAqcHJvamVjdGlvbjsKKworCQkJcHJv amVjdGlvbiA9IFBhcnNlQ29tcGxleFByb2plY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkJc3Ry VmFsKGxpbml0aWFsKGZ1bmNuYW1lKSksCisJCQkJCQkJCQkJCQlsaW5pdGlhbChmYXJncyksCisJ CQkJCQkJCQkJCQlsb2NhdGlvbik7CisJCQlpZiAocHJvamVjdGlvbikKKwkJCQlyZXR1cm4gcHJv amVjdGlvbjsKKwkJfQorCisJCS8qIE5vdCBhIGNvbHVtbiBwcm9qZWN0aW9uIOKAlCByZXBvcnQg ZXJyb3IgKi8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCiAJCQkJIGVycm1zZygiJXMgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1 c2UiLAogCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhmdW5jbmFtZSkpLAogCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CiAKIAkvKiBidWlsZCB0aGUgYXBwcm9w cmlhdGUgb3V0cHV0IHN0cnVjdHVyZSAqLwogCWlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05P Uk1BTCAmJgorCQlwc3RhdGUtPnBfZXhwcl9raW5kID09IEVYUFJfS0lORF9SUFJfREVGSU5FICYm CiAJCShmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTkVYVF9BTllF TEVNRU5UIHx8Ci0JCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQg PT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCkpCisJCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1F TlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCB8fAorCQkgZnVuY2lk ID09IEZfRklSU1RfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVMRU1FTlQgfHwK KwkJIGZ1bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9MQVNU X0FOWUVMRU1FTlRfSU5UOCkpCiAJewogCQkvKgotCQkgKiBQUkVWKCkgYW5kIE5FWFQoKSBhcmUg Y29tcGlsZWQgaW50byBFRU9QX1JQUl9OQVZfU0VUIC8KLQkJICogRUVPUF9SUFJfTkFWX1JFU1RP UkUgb3Bjb2RlcyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGZ1bmN0aW9uIGNhbGwuCi0JCSAqIFJlcHJl c2VudCB0aGVtIGFzIFJQUk5hdkV4cHIgbm9kZXMgc28gdGhhdCBsYXRlciBzdGFnZXMgY2FuCi0J CSAqIGlkZW50aWZ5IHRoZW0gd2l0aG91dCByZWx5aW5nIG9uIGZ1bmNpZCBjb21wYXJpc29ucy4K KwkJICogUlBSIG5hdmlnYXRpb24gZnVuY3Rpb25zIChQUkVWL05FWFQvRklSU1QvTEFTVCkgYXJl IGNvbXBpbGVkIGludG8KKwkJICogRUVPUF9SUFJfTkFWX1NFVCAvIEVFT1BfUlBSX05BVl9SRVNU T1JFIG9wY29kZXMgaW5zdGVhZCBvZiBhIG5vcm1hbAorCQkgKiBmdW5jdGlvbiBjYWxsLiAgUmVw cmVzZW50IHRoZW0gYXMgUlBSTmF2RXhwciBub2RlcyBzbyB0aGF0IGxhdGVyCisJCSAqIHN0YWdl cyBjYW4gaWRlbnRpZnkgdGhlbSB3aXRob3V0IHJlbHlpbmcgb24gZnVuY2lkIGNvbXBhcmlzb25z LgogCQkgKi8KLQkJYm9vbAkJaXNfbmV4dCA9IChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQg fHwKLQkJCQkJCQkgICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7Ci0JCWJvb2wJ CWhhc19vZmZzZXQgPSAoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKLQkJCQkJ CQkJICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7Ci0JCVJQUk5hdkV4cHIgKm5h dmV4cHIgPSBtYWtlTm9kZShSUFJOYXZFeHByKTsKKwkJUlBSTmF2S2luZAlraW5kOworCQlib29s CQloYXNfb2Zmc2V0OworCQlSUFJOYXZFeHByICpuYXZleHByOworCisJCWlmIChmdW5jaWQgPT0g Rl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDgpCisJ CQlraW5kID0gUlBSX05BVl9QUkVWOworCQllbHNlIGlmIChmdW5jaWQgPT0gRl9ORVhUX0FOWUVM RU1FTlQgfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpCisJCQlraW5kID0gUlBS X05BVl9ORVhUOworCQllbHNlIGlmIChmdW5jaWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UIHx8IGZ1 bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCkKKwkJCWtpbmQgPSBSUFJfTkFWX0ZJUlNU OworCQllbHNlCisJCQlraW5kID0gUlBSX05BVl9MQVNUOworCisJCWhhc19vZmZzZXQgPSAoZnVu Y2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKKwkJCQkJICBmdW5jaWQgPT0gRl9ORVhU X0FOWUVMRU1FTlRfSU5UOCB8fAorCQkJCQkgIGZ1bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRf SU5UOCB8fAorCQkJCQkgIGZ1bmNpZCA9PSBGX0xBU1RfQU5ZRUxFTUVOVF9JTlQ4KTsKKworCQlu YXZleHByID0gbWFrZU5vZGUoUlBSTmF2RXhwcik7CiAKLQkJbmF2ZXhwci0+a2luZCA9IGlzX25l eHQgPyBSUFJfTkFWX05FWFQgOiBSUFJfTkFWX1BSRVY7CisJCW5hdmV4cHItPmtpbmQgPSBraW5k OwogCQluYXZleHByLT5hcmcgPSAoRXhwciAqKSBsaW5pdGlhbChmYXJncyk7CiAJCW5hdmV4cHIt Pm9mZnNldF9hcmcgPSBoYXNfb2Zmc2V0ID8gKEV4cHIgKikgbHNlY29uZChmYXJncykgOiBOVUxM OwogCQluYXZleHByLT5yZXN1bHR0eXBlID0gcmV0dHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpp bmRleCBkMWUwMmU1MmU1My4uMDUwNzBjYjA0YmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAg LTMzOSw4ICszMzksOCBAQCB0cmFuc2Zvcm1EZWZpbmVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBXaW5kb3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAkJLyoKIAkJICogVHJhbnNm b3JtIHRoZSBERUZJTkUgZXhwcmVzc2lvbi4gIFdlIG11c3QgTk9UIGFkZCB0aGUgd2hvbGUKIAkJ ICogZXhwcmVzc2lvbiB0byB0aGUgcXVlcnkgdGFyZ2V0bGlzdCwgYmVjYXVzZSBpdCBtYXkgY29u dGFpbgotCQkgKiBSUFJOYXZFeHByIG5vZGVzIChQUkVWL05FWFQpIHRoYXQgY2FuIG9ubHkgYmUg ZXZhbHVhdGVkIGluc2lkZSB0aGUKLQkJICogb3duaW5nIFdpbmRvd0FnZy4KKwkJICogUlBSTmF2 RXhwciBub2RlcyAoUFJFVi9ORVhUL0ZJUlNUL0xBU1QpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVh dGVkCisJCSAqIGluc2lkZSB0aGUgb3duaW5nIFdpbmRvd0FnZy4KIAkJICoKIAkJICogSW5zdGVh ZCwgd2UgdHJhbnNmb3JtIHRoZSBleHByZXNzaW9uIGRpcmVjdGx5IGFuZCBvbmx5IGVuc3VyZSB0 aGF0CiAJCSAqIHRoZSBpbmRpdmlkdWFsIFZhciBub2RlcyBpdCByZWZlcmVuY2VzIGFyZSBwcmVz ZW50IGluIHRoZQpAQCAtNDI5LDE0ICs0MjksMjEgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAv KgogICogY2hlY2tfcnByX25hdl9leHByCiAgKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2RXhw ciBub2RlIGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZwotICoJCXN1YnRyZWVzIGlu IGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgbmVzdGVkIFBSRVYvTkVYVCwgbWlzc2lu ZworICoJCXN1YnRyZWVzIGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgaWxsZWdh bCBuZXN0aW5nLCBtaXNzaW5nCiAgKgkJY29sdW1uIHJlZmVyZW5jZXMsIGFuZCBub24tY29uc3Rh bnQgb2Zmc2V0IGV4cHJlc3Npb25zLgorICoKKyAqIE5lc3RpbmcgcnVsZXMgKFNRTCBzdGFuZGFy ZCA1LjYuNCk6CisgKiAgIC0gUFJFVi9ORVhUIHdyYXBwaW5nIEZJUlNUL0xBU1Q6IGFsbG93ZWQg KGNvbXBvdW5kIG5hdmlnYXRpb24pCisgKiAgIC0gRklSU1QvTEFTVCB3cmFwcGluZyBQUkVWL05F WFQ6IHByb2hpYml0ZWQKKyAqICAgLSBTYW1lLWNhdGVnb3J5IG5lc3RpbmcgKFBSRVYgaW5zaWRl IFBSRVYsIEZJUlNUIGluc2lkZSBGSVJTVCwgZXRjLik6CisgKiAgICAgcHJvaGliaXRlZAogICov CiB0eXBlZGVmIHN0cnVjdAogewotCWJvb2wJCWhhc19uYXY7CQkvKiBSUFJOYXZFeHByIGZvdW5k IChuZXN0aW5nKSAqLworCWludAkJCW5hdl9jb3VudDsJCS8qIG51bWJlciBvZiBSUFJOYXZFeHBy IG5vZGVzIGZvdW5kICovCiAJYm9vbAkJaGFzX2NvbHVtbl9yZWY7IC8qIFZhciBmb3VuZCAqLwot fQkJCU5hdkNoZWNrUmVzdWx0OworCVJQUk5hdktpbmQJaW5uZXJfa2luZDsJCS8qIGtpbmQgb2Yg Zmlyc3QgKG91dGVybW9zdCkgbmVzdGVkIFJQUk5hdkV4cHIgKi8KK30gTmF2Q2hlY2tSZXN1bHQ7 CiAKIHN0YXRpYyBib29sCiBuYXZfY2hlY2tfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRl eHQpCkBAIC00NDYsNyArNDUzLDExIEBAIG5hdl9jaGVja193YWxrZXIoTm9kZSAqbm9kZSwgdm9p ZCAqY29udGV4dCkKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKElz QShub2RlLCBSUFJOYXZFeHByKSkKLQkJcmVzdWx0LT5oYXNfbmF2ID0gdHJ1ZTsKKwl7CisJCWlm IChyZXN1bHQtPm5hdl9jb3VudCA9PSAwKQorCQkJcmVzdWx0LT5pbm5lcl9raW5kID0gKChSUFJO YXZFeHByICopIG5vZGUpLT5raW5kOworCQlyZXN1bHQtPm5hdl9jb3VudCsrOworCX0KIAlpZiAo SXNBKG5vZGUsIFZhcikpCiAJCXJlc3VsdC0+aGFzX2NvbHVtbl9yZWYgPSB0cnVlOwogCkBAIC00 NTcsMTYgKzQ2OCw5MyBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcnByX25hdl9leHByKFJQUk5hdkV4 cHIgKm5hdiwgUGFyc2VTdGF0ZSAqcHN0YXRlKQogewogCU5hdkNoZWNrUmVzdWx0IHJlc3VsdDsK Kwlib29sCQlvdXRlcl9pc19waHlzaWNhbCA9IChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8 CisJCQkJCQkJCQkgbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCk7CiAKIAkvKiBDaGVjayBhcmcg c3VidHJlZTogbmVzdGluZyArIGNvbHVtbiByZWZlcmVuY2UgaW4gb25lIHdhbGsgKi8KIAltZW1z ZXQoJnJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOwogCSh2b2lkKSBuYXZfY2hlY2tfd2Fsa2Vy KChOb2RlICopIG5hdi0+YXJnLCAmcmVzdWx0KTsKIAotCWlmIChyZXN1bHQuaGFzX25hdikKLQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCi0JCQkJIGVycm1zZygiUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkIiksCi0JCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJaWYgKHJlc3Vs dC5uYXZfY291bnQgPiAwKQorCXsKKwkJYm9vbAkJaW5uZXJfaXNfcGh5c2ljYWwgPSAocmVzdWx0 LmlubmVyX2tpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkJCQkJCQkJIHJlc3VsdC5pbm5lcl9r aW5kID09IFJQUl9OQVZfTkVYVCk7CisKKwkJaWYgKG91dGVyX2lzX3BoeXNpY2FsICYmICFpbm5l cl9pc19waHlzaWNhbCkKKwkJeworCQkJLyoKKwkJCSAqIFBSRVYvTkVYVCB3cmFwcGluZyBGSVJT VC9MQVNUOiBjb21wb3VuZCBuYXZpZ2F0aW9uIHBlciBTUUwKKwkJCSAqIHN0YW5kYXJkIDUuNi40 LiAgRmxhdHRlbiB0aGUgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZQorCQkJICogY29t cG91bmQgbm9kZS4gIFRoZSBpbm5lciBSUFJOYXZFeHByIG11c3QgYmUgdGhlIGRpcmVjdCBhcmcg b2YKKwkJCSAqIHRoZSBvdXRlcjsgZXhwcmVzc2lvbnMgbGlrZSBQUkVWKHZhbCArIEZJUlNUKHYp KSBhcmUgbm90IHZhbGlkCisJCQkgKiBjb21wb3VuZCBuYXZpZ2F0aW9uLgorCQkJICovCisJCQlS UFJOYXZFeHByICppbm5lcjsKKworCQkJLyogUmVqZWN0IHRyaXBsZS1vci1kZWVwZXIgbmVzdGlu ZyAoZS5nLiBQUkVWKEZJUlNUKFBSRVYoeCkpKSkgKi8KKwkJCWlmIChyZXN1bHQubmF2X2NvdW50 ID4gMSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBjYW5ub3QgYmUg bmVzdGVkIG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAiKSwKKwkJCQkJCSBlcnJoaW50KCJPbmx5 IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFT VCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCisJCQlpZiAoIUlzQShuYXYtPmFyZywg UlBSTmF2RXhwcikpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3Bl cmF0aW9uIG11c3QgYmUgYSBkaXJlY3QgYXJndW1lbnQgb2YgdGhlIG91dGVyIG5hdmlnYXRpb24i KSwKKwkJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVY VChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4i KSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOwor CQkJaW5uZXIgPSAoUlBSTmF2RXhwciAqKSBuYXYtPmFyZzsKKworCQkJLyogRGV0ZXJtaW5lIGNv bXBvdW5kIGtpbmQgKi8KKwkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWICYmIGlubmVy LT5raW5kID09IFJQUl9OQVZfRklSU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9QUkVWX0ZJ UlNUOworCQkJZWxzZSBpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBpbm5lci0+a2lu ZCA9PSBSUFJfTkFWX0xBU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9QUkVWX0xBU1Q7CisJ CQllbHNlIGlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUICYmIGlubmVyLT5raW5kID09IFJQ Ul9OQVZfRklSU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0ZJUlNUOworCQkJZWxz ZSBpZiAobmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCAmJiBpbm5lci0+a2luZCA9PSBSUFJfTkFW X0xBU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0xBU1Q7CisKKwkJCS8qIE1vdmUg b3V0ZXIgb2Zmc2V0IHRvIGNvbXBvdW5kX29mZnNldF9hcmcgKi8KKwkJCW5hdi0+Y29tcG91bmRf b2Zmc2V0X2FyZyA9IG5hdi0+b2Zmc2V0X2FyZzsKKworCQkJLyogTW92ZSBpbm5lciBvZmZzZXQg YW5kIGFyZyB1cCAqLworCQkJbmF2LT5vZmZzZXRfYXJnID0gaW5uZXItPm9mZnNldF9hcmc7CisJ CQluYXYtPmFyZyA9IGlubmVyLT5hcmc7CisKKwkJCS8qIE5vIGZ1cnRoZXIgbmVzdGluZyBjaGVj ayBuZWVkZWQgLSBhbHJlYWR5IHZhbGlkYXRlZCAqLworCQkJcmV0dXJuOworCQl9CisJCWVsc2Ug aWYgKCFvdXRlcl9pc19waHlzaWNhbCAmJiBpbm5lcl9pc19waHlzaWNhbCkKKwkJeworCQkJLyog RklSU1QvTEFTVCB3cmFwcGluZyBQUkVWL05FWFQ6IHByb2hpYml0ZWQgYnkgc3RhbmRhcmQgKi8K KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJIGVycm1zZygiRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhU IiksCisJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVY VChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4i KSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJ CX0KKwkJZWxzZSBpZiAob3V0ZXJfaXNfcGh5c2ljYWwgJiYgaW5uZXJfaXNfcGh5c2ljYWwpCisJ CXsKKwkJCS8qIFBSRVYvTkVYVCB3cmFwcGluZyBQUkVWL05FWFQ6IHByb2hpYml0ZWQgKi8KKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJIGVycm1zZygiUFJFViBhbmQgTkVYVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQiKSwK KwkJCQkJIGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJ UlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCS8qIEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGli aXRlZCAqLworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkgZXJybXNnKCJGSVJTVCBhbmQgTEFTVCBjYW5ub3QgY29udGFpbiBGSVJT VCBvciBMQVNUIiksCisJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFT VCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUg YWxsb3dlZC4iKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRp b24pKSk7CisJCX0KKwl9CiAJaWYgKCFyZXN1bHQuaGFzX2NvbHVtbl9yZWYpCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNDgzLDcgKzU3 MSw3IEBAIGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJOYXZFeHByICpuYXYsIFBhcnNlU3RhdGUgKnBz dGF0ZSkKIAkJCWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChOb2RlICopIG5hdi0+b2Zmc2V0 X2FyZykpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coIlBSRVYvTkVYVCBvZmZzZXQgbXVzdCBiZSBh IHJ1bi10aW1lIGNvbnN0YW50IiksCisJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRp b24gb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCIpLAogCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMKaW5kZXggYTRmZTcyNTY0NmMuLjQ2NzczNmQ5MTQ2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jCkBAIC0xMDEwNiwxNiArMTAxMDYsODMgQEAgZ2V0X3J1bGVfZXhwcihO b2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCWNhc2UgVF9SUFJOYXZFeHBy OgogCQkJewogCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisJCQkJ Y29uc3QgY2hhciAqb3V0ZXJfZnVuYyA9IE5VTEw7CisJCQkJY29uc3QgY2hhciAqaW5uZXJfZnVu YzsKIAotCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLAotCQkJCQkJCQkJICAgbmF2LT5r aW5kID09IFJQUl9OQVZfUFJFViA/ICJQUkVWKCIgOiAiTkVYVCgiKTsKLQkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwotCQkJCWlmIChu YXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwkJCQlzd2l0Y2ggKG5hdi0+a2luZCkKIAkJCQl7Ci0J CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKLQkJCQkJZ2V0X3J1bGVfZXhw cigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJ CWNhc2UgUlBSX05BVl9QUkVWOgorCQkJCQkJaW5uZXJfZnVuYyA9ICJQUkVWKCI7CisJCQkJCQli cmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX05FWFQ6CisJCQkJCQlpbm5lcl9mdW5jID0gIk5FWFQo IjsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfRklSU1Q6CisJCQkJCQlpbm5lcl9m dW5jID0gIkZJUlNUKCI7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX0xBU1Q6CisJ CQkJCQlpbm5lcl9mdW5jID0gIkxBU1QoIjsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9O QVZfUFJFVl9GSVJTVDoKKwkJCQkJCW91dGVyX2Z1bmMgPSAiUFJFVigiOworCQkJCQkJaW5uZXJf ZnVuYyA9ICJGSVJTVCgiOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9QUkVWX0xB U1Q6CisJCQkJCQlvdXRlcl9mdW5jID0gIlBSRVYoIjsKKwkJCQkJCWlubmVyX2Z1bmMgPSAiTEFT VCgiOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9ORVhUX0ZJUlNUOgorCQkJCQkJ b3V0ZXJfZnVuYyA9ICJORVhUKCI7CisJCQkJCQlpbm5lcl9mdW5jID0gIkZJUlNUKCI7CisJCQkJ CQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX05FWFRfTEFTVDoKKwkJCQkJCW91dGVyX2Z1bmMg PSAiTkVYVCgiOworCQkJCQkJaW5uZXJfZnVuYyA9ICJMQVNUKCI7CisJCQkJCQlicmVhazsKKwkJ CQkJZGVmYXVsdDoKKwkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5hdmlnYXRp b24ga2luZDogJWQiLAorCQkJCQkJCSBuYXYtPmtpbmQpOworCQkJCQkJaW5uZXJfZnVuYyA9IE5V TEw7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCQkJCWJyZWFrOworCQkJCX0KKworCQkJ CWlmIChvdXRlcl9mdW5jICE9IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBDb21wb3Vu ZDogUFJFVihGSVJTVChhcmcgWywgaW5uZXJfb2Zmc2V0XSkgWywKKwkJCQkJICogb3V0ZXJfb2Zm c2V0XSkKKwkJCQkJICovCisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBvdXRlcl9m dW5jKTsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIGlubmVyX2Z1bmMpOworCQkJ CQlnZXRfcnVsZV9leHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQp OworCQkJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUg KikgbmF2LT5vZmZzZXRfYXJnLCBjb250ZXh0LAorCQkJCQkJCQkJICBzaG93aW1wbGljaXQpOwor CQkJCQl9CisJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJCQkJaWYgKG5h di0+Y29tcG91bmRfb2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKGJ1ZiwgIiwgIik7CisJCQkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIG5h di0+Y29tcG91bmRfb2Zmc2V0X2FyZywKKwkJCQkJCQkJCSAgY29udGV4dCwgc2hvd2ltcGxpY2l0 KTsKKwkJCQkJfQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQkJfQor CQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIFNpbXBsZTogRlVOQyhhcmcgWywgb2Zmc2V0XSkgKi8K KwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIGlubmVyX2Z1bmMpOworCQkJCQlnZXRf cnVsZV9leHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJ CQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2 LT5vZmZzZXRfYXJnLCBjb250ZXh0LAorCQkJCQkJCQkJICBzaG93aW1wbGljaXQpOworCQkJCQl9 CisJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAkJCQl9Ci0JCQkJYXBwZW5k U3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOwogCQkJfQogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3dpbmRvd2Z1bmNzLmMKaW5kZXggMDkxMjYwZDJjY2UuLjQyMGE0OTYyMzk1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNzg1LDMgKzc4NSw1OSBAQCB3aW5kb3dfbmV4 dF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBu b3QgcmVhY2hlZCAqLwogfQorCisvKgorICogZmlyc3QKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIg Zm9yIFJQUidzIEZJUlNUIG5hdmlnYXRpb24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYo KSBmb3IgZGV0YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19maXJzdChQR19GVU5DVElPTl9BUkdT KQoreworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkgZXJybXNnKCJmaXJzdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJ TkUgY2xhdXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9 CisKKy8qCisgKiBsYXN0CisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBMQVNUIG5h dmlnYXRpb24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4KKyAq LworRGF0dW0KK3dpbmRvd19sYXN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJP UiwKKwkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJt c2coImxhc3QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdf UkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgorICogZmlyc3QodmFs dWUsIG9mZnNldCkKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIEZJUlNUIG5hdmln YXRpb24gb3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0 YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19maXJzdF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJIGVycm1zZygiZmlyc3QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5F IGNsYXVzZSIpKSk7CisJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQor CisvKgorICogbGFzdCh2YWx1ZSwgb2Zmc2V0KQorICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3Ig UlBSJ3MgTEFTVCBuYXZpZ2F0aW9uIG9wZXJhdG9yIHdpdGggb2Zmc2V0LgorICogU2VlIHdpbmRv d19wcmV2KCkgZm9yIGRldGFpbHMuCisgKi8KK0RhdHVtCit3aW5kb3dfbGFzdF9vZmZzZXQoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygibGFzdCgpIGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCBy ZWFjaGVkICovCit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA4ZTk1MTY5YjdiMC4uNmQ3 MGVkMjNhZWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA5ODQsNiArMTA5ODQsMTgg QEAKIHsgb2lkID0+ICc4MTI5JywgZGVzY3IgPT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywKICAg cHJvbmFtZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2Yn LCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1l bnQgaW50OCcsIHByb3NyYyA9PiAnd2luZG93X25leHRfb2Zmc2V0JyB9LAoreyBvaWQgPT4gJzgx MzAnLCBkZXNjciA9PiAnZmlyc3QgdmFsdWUgaW4gbWF0Y2gnLAorICBwcm9uYW1lID0+ICdmaXJz dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCisgIHBy b2FyZ3R5cGVzID0+ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfZmlyc3QnIH0sCit7 IG9pZCA9PiAnODEzMicsIGRlc2NyID0+ICdmaXJzdCB2YWx1ZSBpbiBtYXRjaCBhdCBvZmZzZXQn LAorICBwcm9uYW1lID0+ICdmaXJzdCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3Qg PT4gJ2YnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2Fu eWVsZW1lbnQgaW50OCcsIHByb3NyYyA9PiAnd2luZG93X2ZpcnN0X29mZnNldCcgfSwKK3sgb2lk ID0+ICc4MTMxJywgZGVzY3IgPT4gJ2xhc3QgdmFsdWUgaW4gbWF0Y2gnLAorICBwcm9uYW1lID0+ ICdsYXN0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywK KyAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQnLCBwcm9zcmMgPT4gJ3dpbmRvd19sYXN0JyB9 LAoreyBvaWQgPT4gJzgxMzMnLCBkZXNjciA9PiAnbGFzdCB2YWx1ZSBpbiBtYXRjaCBhdCBvZmZz ZXQnLAorICBwcm9uYW1lID0+ICdsYXN0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmlj dCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAn YW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfbGFzdF9vZmZzZXQnIH0sCiAKICMg ZnVuY3Rpb25zIGZvciByYW5nZSB0eXBlcwogeyBvaWQgPT4gJzM4MzInLCBkZXNjciA9PiAnSS9P JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IGZhYzM3Yzk2ODk2Li44MzQ4MDBhNDA2MiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC02OTksMTAgKzY5OSwxMCBAQCB0eXBlZGVmIHN0 cnVjdCBFeHByRXZhbFN0ZXAKIAkJc3RydWN0CiAJCXsKIAkJCVdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZTsKLQkJCVJQUk5hdktpbmQJa2luZDsJLyogUFJFViBvciBORVhUICovCi0JCQlEYXR1bQkg ICAqb2Zmc2V0X3ZhbHVlOwkvKiAyLWFyZzogcnVudGltZSBvZmZzZXQgdmFsdWUsIG9yCi0JCQkJ CQkJCQkJICogTlVMTCAqLwotCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbDsJLyogMi1hcmc6IHJ1 bnRpbWUgb2Zmc2V0IG51bGwgZmxhZyAqLworCQkJUlBSTmF2S2luZAlraW5kOwkvKiBuYXZpZ2F0 aW9uIGtpbmQgKHNpbXBsZSBvciBjb21wb3VuZCkgKi8KKwkJCURhdHVtCSAgICpvZmZzZXRfdmFs dWU7CS8qIG9mZnNldCB2YWx1ZShzKSwgb3IgTlVMTCAqLworCQkJYm9vbAkgICAqb2Zmc2V0X2lz bnVsbDsJLyogb2Zmc2V0IG51bGwgZmxhZyhzKSAqLworCQkJLyogRm9yIGNvbXBvdW5kIG5hdjog b2Zmc2V0X3ZhbHVlWzBdID0gaW5uZXIsIFsxXSA9IG91dGVyICovCiAJCX0JCQlycHJfbmF2Owog CiAJCS8qIGZvciBFRU9QX0FHR18qREVTRVJJQUxJWkUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5k ZXggZmY2ZDdkNzBhNjAuLjYwMmI3MmE2ZTBkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMjYz OCw2ICsyNjM4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAlTaXplCQluZmFT dGF0ZVNpemU7CS8qIHByZS1jYWxjdWxhdGVkIFJQUk5GQVN0YXRlIHNpemUgKi8KIAlib29sCSAg ICpuZmFWYXJNYXRjaGVkOwkvKiBwZXItcm93IGNhY2hlOiB2YXJNYXRjaGVkW3ZhcklkXSBmb3Ig dmFySWQKIAkJCQkJCQkJICogPCBudW1EZWZpbmVzICovCisJQml0bWFwc2V0ICAqZGVmaW5lTWF0 Y2hTdGFydERlcGVuZGVudDsJLyogREVGSU5FIHZhcnMgbmVlZGluZyBwZXItY29udGV4dAorCQkJ CQkJCQkJCQkgKiBldmFsdWF0aW9uCisJCQkJCQkJCQkJCSAqIChtYXRjaF9zdGFydC1kZXBlbmRl bnQpICovCiAJYml0bWFwd29yZCAqbmZhVmlzaXRlZEVsZW1zOwkvKiBlbGVtSWR4IHZpc2l0ZWQg Yml0bWFwIGZvciBjeWNsZQogCQkJCQkJCQkJICogZGV0ZWN0aW9uICovCiAJaW50CQkJbmZhVmlz aXRlZE5Xb3JkczsJLyogbnVtYmVyIG9mIGJpdG1hcHdvcmRzIGluCkBAIC0yNjkyLDEyICsyNjk1 LDE3IEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd0FnZ1N0YXRlCiAJVHVwbGVUYWJsZVNsb3QgKnRl bXBfc2xvdF8yOwogCiAJLyogUlBSIG5hdmlnYXRpb24gKi8KLQlpbnQ2NAkJbmF2TWF4T2Zmc2V0 OwkvKiBtYXggUFJFViBvZmZzZXQ7IHNlZSBSUFJfTkFWX09GRlNFVF8qICovCisJUlBSTmF2T2Zm c2V0S2luZCBuYXZNYXhPZmZzZXRLaW5kOwkvKiBzdGF0dXMgb2YgbmF2TWF4T2Zmc2V0ICovCisJ aW50NjQJCW5hdk1heE9mZnNldDsJLyogbWF4IGJhY2t3YXJkIG5hdiBvZmZzZXQgKHdoZW4gRklY RUQpICovCisJYm9vbAkJaGFzRmlyc3ROYXY7CS8qIEZJUlNUKCkgcHJlc2VudCBpbiBERUZJTkUg Ki8KKwlSUFJOYXZPZmZzZXRLaW5kIG5hdkZpcnN0T2Zmc2V0S2luZDsJLyogc3RhdHVzIG9mIG5h dkZpcnN0T2Zmc2V0ICovCisJaW50NjQJCW5hdkZpcnN0T2Zmc2V0OyAvKiBtaW4gRklSU1QoKSBv ZmZzZXQgKHdoZW4gRklYRUQpICovCiAJc3RydWN0IFdpbmRvd09iamVjdERhdGEgKm5hdl93aW5v Ymo7CS8qIHdpbm9iaiBmb3IgUlBSIG5hdiBmZXRjaCAqLwogCWludDY0CQluYXZfc2xvdF9wb3M7 CS8qIHBvc2l0aW9uIGNhY2hlZCBpbiBuYXZfc2xvdCwgb3IgLTEgKi8KLQlUdXBsZVRhYmxlU2xv dCAqbmF2X3Nsb3Q7CS8qIHNsb3QgZm9yIFBSRVYvTkVYVCB0YXJnZXQgcm93ICovCisJVHVwbGVU YWJsZVNsb3QgKm5hdl9zbG90OwkvKiBzbG90IGZvciBQUkVWL05FWFQvRklSU1QvTEFTVCB0YXJn ZXQgcm93ICovCiAJVHVwbGVUYWJsZVNsb3QgKm5hdl9zYXZlZF9vdXRlcnR1cGxlOwkvKiBzYXZl ZCBzbG90IGR1cmluZyBuYXYgc3dhcCAqLwogCVR1cGxlVGFibGVTbG90ICpuYXZfbnVsbF9zbG90 OwkvKiBhbGwgTlVMTCBzbG90ICovCisJaW50NjQJCW5hdl9tYXRjaF9zdGFydDsJLyogbWF0Y2hf c3RhcnQgZm9yIEZJUlNUL0xBU1QgbmF2ICovCiAKIAkvKiBSUFIgY3VycmVudCBtYXRjaCByZXN1 bHQgKi8KIAlib29sCQlycHJfbWF0Y2hfdmFsaWQ7CS8qIHRydWUgaWYgYSBtYXRjaCByZXN1bHQg aXMgc2V0ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjkyNjYzNjg3YTYuLjFmZGY2MjU3 NWNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC01ODYsOSArNTg2LDI0IEBAIHR5cGVkZWYg ZW51bSBSUFNraXBUbwogCVNUX05PTkUsCQkJCQkvKiBubyBBRlRFUiBNQVRDSCBjbGF1c2U7IGRl ZmF1bHQgZm9yIG5vbi1SUFIKIAkJCQkJCQkJICogd2luZG93cyAqLwogCVNUX05FWFRfUk9XLAkJ CQkvKiBTS0lQIFRPIE5FWFQgUk9XICovCi0JU1RfUEFTVF9MQVNUX1JPVywJCQkvKiBTS0lQIFRP IFBBU1QgTEFTVCBST1cgKi8KKwlTVF9QQVNUX0xBU1RfUk9XCQkJLyogU0tJUCBUTyBQQVNUIExB U1QgUk9XICovCiB9IFJQU2tpcFRvOwogCisvKgorICogUlBSTmF2T2Zmc2V0S2luZCAtIHN0YXR1 cyBvZiBuYXZpZ2F0aW9uIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltLgorICoKKyAqIFRoZSBw bGFubmVyIGNvbXB1dGVzIG5hdk1heE9mZnNldC9uYXZGaXJzdE9mZnNldCBmb3IgdHVwbGVzdG9y ZSBtYXJrCisgKiBvcHRpbWl6YXRpb24uICBUaGlzIGVudW0gdHJhY2tzIHdoZXRoZXIgdGhlIHZh bHVlIGlzIGEgcmVzb2x2ZWQgY29uc3RhbnQsCisgKiBuZWVkcyBydW50aW1lIGV2YWx1YXRpb24s IG9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIChyZXRhaW4gYWxsIHJvd3MpLgorICovCit0eXBlZGVm IGVudW0gUlBSTmF2T2Zmc2V0S2luZAoreworCVJQUl9OQVZfT0ZGU0VUX0ZJWEVELAkJLyogcmVz b2x2ZWQgY29uc3RhbnQ7IHVzZSB0aGUgb2Zmc2V0IHZhbHVlICovCisJUlBSX05BVl9PRkZTRVRf TkVFRFNfRVZBTCwJLyogbm9uLWNvbnN0YW50IG9mZnNldDsgZXZhbHVhdGUgYXQgZXhlY3V0b3IK KwkJCQkJCQkJICogaW5pdCAqLworCVJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwJLyogY2Fubm90 IGRldGVybWluZTsgcmV0YWluIGFsbCByb3dzIChubyB0cmltKSAqLworfSBSUFJOYXZPZmZzZXRL aW5kOworCiAvKgogICogUlBSUGF0dGVybk5vZGVUeXBlIC0gUm93IFBhdHRlcm4gUmVjb2duaXRp b24gcGF0dGVybiBub2RlIHR5cGVzCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMjdhMmU3 YjQ4YzcuLjkzY2U1MDVmMGQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTM4NywxNCArMTM4 NywzNCBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2cKIAlMaXN0CSAgICpkZWZpbmVDbGF1c2U7 CiAKIAkvKgotCSAqIE1heGltdW0gUFJFViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgbWFyayBvcHRp bWl6YXRpb24uID49IDA6IHN0YXRpY2FsbHkKLQkgKiBkZXRlcm1pbmVkIG1heCBvZmZzZXQgKG1h cmsgPSBjdXJyZW50cG9zIC0gb2Zmc2V0KS4KLQkgKiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFM OiBoYXMgbm9uLWNvbnN0YW50IG9mZnNldDsgZXZhbHVhdGUgYXQKLQkgKiBleGVjdXRvciBpbml0 LiAgUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlv bgotCSAqIChubyB0cmltIHBvc3NpYmxlKS4KKwkgKiBCaXRtYXBzZXQgb2YgREVGSU5FIHZhcmlh YmxlIGluZGljZXMgd2hvc2UgZXhwcmVzc2lvbnMgZGVwZW5kIG9uCisJICogbWF0Y2hfc3RhcnQg KGNvbnRhaW4gRklSU1QsIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kCisJICogUFJFVl9G SVJTVC9ORVhUX0ZJUlNUL1BSRVZfTEFTVC9ORVhUX0xBU1Qgd2l0aCBvZmZzZXQpLiAgVmFyaWFi bGVzIGluCisJICogdGhpcyBzZXQgcmVxdWlyZSBwZXItY29udGV4dCByZS1ldmFsdWF0aW9uIGR1 cmluZyBORkEgcHJvY2Vzc2luZy4KIAkgKi8KKwlCaXRtYXBzZXQgICpkZWZpbmVNYXRjaFN0YXJ0 RGVwZW5kZW50OworCisJLyoKKwkgKiBOYXZpZ2F0aW9uIG9mZnNldCBzdGF0dXMgYW5kIHZhbHVl cyBmb3IgdHVwbGVzdG9yZSBtYXJrIG9wdGltaXphdGlvbi4KKwkgKiBTZWUgUlBSTmF2T2Zmc2V0 S2luZCBpbiBub2Rlcy9wYXJzZW5vZGVzLmguCisJICoKKwkgKiBuYXZNYXhPZmZzZXQ6IG1heGlt dW0gYmFja3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zIChjb250cmlidXRlZCBieQorCSAqIFBS RVYsIExBU1Qtd2l0aC1vZmZzZXQsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QpLiAgT25s eSB2YWxpZCB3aGVuCisJICogbmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhF RC4KKwkgKgorCSAqIG5hdkZpcnN0T2Zmc2V0OiBtaW5pbXVtIGZvcndhcmQgb2Zmc2V0IGZyb20g bWF0Y2hfc3RhcnQgKGNvbnRyaWJ1dGVkIGJ5CisJICogRklSU1QsIGNvbXBvdW5kIFBSRVZfRklS U1QvTkVYVF9GSVJTVCkuICBDYW4gYmUgbmVnYXRpdmUgZm9yIGNvbXBvdW5kCisJICogUFJFVl9G SVJTVC4gIE9ubHkgdmFsaWQgd2hlbiBuYXZGaXJzdE9mZnNldEtpbmQgPT0gUlBSX05BVl9PRkZT RVRfRklYRUQKKwkgKiBhbmQgaGFzRmlyc3ROYXYgPT0gdHJ1ZS4KKwkgKi8KKwlSUFJOYXZPZmZz ZXRLaW5kIG5hdk1heE9mZnNldEtpbmQ7CiAJaW50NjQJCW5hdk1heE9mZnNldDsKIAorCS8qIHRy dWUgaWYgRklSU1QtYmFzZWQgbmF2aWdhdGlvbiAoRklSU1QsIFBSRVZfRklSU1QsIE5FWFRfRklS U1QpIGlzIHVzZWQgKi8KKwlib29sCQloYXNGaXJzdE5hdjsKKwlSUFJOYXZPZmZzZXRLaW5kIG5h dkZpcnN0T2Zmc2V0S2luZDsKKwlpbnQ2NAkJbmF2Rmlyc3RPZmZzZXQ7CisKIAkvKgogCSAqIGZh bHNlIGZvciBhbGwgYXBhcnQgZnJvbSB0aGUgV2luZG93QWdnIHRoYXQncyBjbG9zZXN0IHRvIHRo ZSByb290IG9mCiAJICogdGhlIHBsYW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggOTQ3MjNhM2I5 MDkuLjBhZmNmYWNkNWQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNjUxLDI3ICs2NTEsNTAg QEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93RnVuY1J1bkNvbmRpdGlvbgogLyoKICAqIFJQUk5hdkV4 cHIKICAqCi0gKiBSZXByZXNlbnRzIGEgUFJFVigpIG9yIE5FWFQoKSBuYXZpZ2F0aW9uIGNhbGwg aW4gYW4gUlBSIERFRklORSBjbGF1c2UuCisgKiBSZXByZXNlbnRzIGEgUFJFVi9ORVhUL0ZJUlNU L0xBU1QgbmF2aWdhdGlvbiBjYWxsIGluIGFuIFJQUiBERUZJTkUgY2xhdXNlLgogICogQXQgZXhw cmVzc2lvbiBjb21waWxlIHRpbWUgdGhpcyBpcyB0cmFuc2xhdGVkIGludG8gRUVPUF9SUFJfTkFW X1NFVCAvCiAgKiBFRU9QX1JQUl9OQVZfUkVTVE9SRSBvcGNvZGVzIHJhdGhlciB0aGFuIGEgbm9y bWFsIGZ1bmN0aW9uIGNhbGwuCiAgKgotICoga2luZDogICAgICAgUlBSX05BVl9QUkVWIG9yIFJQ Ul9OQVZfTkVYVAotICogYXJnOiAgICAgICAgdGhlIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgYWdh aW5zdCB0aGUgdGFyZ2V0IHJvdwotICogb2Zmc2V0X2FyZzogb3B0aW9uYWwgZXhwbGljaXQgb2Zm c2V0IGV4cHJlc3Npb24gKDItYXJnIGZvcm0pOyBOVUxMIGZvcgotICogICAgICAgICAgICAgdGhl IDEtYXJnIGZvcm0gd2hpY2ggdXNlcyBhbiBpbXBsaWNpdCBvZmZzZXQgb2YgMQorICogU2ltcGxl IG5hdmlnYXRpb24gKFBSRVYvTkVYVC9GSVJTVC9MQVNUKToKKyAqICAga2luZDogICAgICAgUlBS X05BVl9QUkVWLCBSUFJfTkFWX05FWFQsIFJQUl9OQVZfRklSU1QsIG9yIFJQUl9OQVZfTEFTVAor ICogICBhcmc6ICAgICAgICB0aGUgZXhwcmVzc2lvbiB0byBldmFsdWF0ZSBhZ2FpbnN0IHRoZSB0 YXJnZXQgcm93CisgKiAgIG9mZnNldF9hcmc6IG9wdGlvbmFsIGV4cGxpY2l0IG9mZnNldCBleHBy ZXNzaW9uICgyLWFyZyBmb3JtKTsgTlVMTCBmb3IKKyAqICAgICAgICAgICAgICAgdGhlIDEtYXJn IGZvcm0gKGltcGxpY2l0IG9mZnNldDogMSBmb3IgUFJFVi9ORVhULCAwIGZvcgorICogICAgICAg ICAgICAgICBGSVJTVC9MQVNUKQorICoKKyAqIENvbXBvdW5kIG5hdmlnYXRpb24gKFBSRVYvTkVY VCB3cmFwcGluZyBGSVJTVC9MQVNUKToKKyAqICAga2luZDogICAgICAgICAgICAgIFJQUl9OQVZf UFJFVl9GSVJTVCwgUFJFVl9MQVNULCBORVhUX0ZJUlNULCBORVhUX0xBU1QKKyAqICAgYXJnOiAg ICAgICAgICAgICAgIHRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGFnYWluc3QgdGhlIGZpbmFs IHRhcmdldCByb3cKKyAqICAgb2Zmc2V0X2FyZzogICAgICAgIGlubmVyIG9mZnNldCAoRklSU1Qv TEFTVCksIE5VTEwgPSBpbXBsaWNpdCBkZWZhdWx0CisgKiAgIGNvbXBvdW5kX29mZnNldF9hcmc6 IG91dGVyIG9mZnNldCAoUFJFVi9ORVhUKSwgTlVMTCA9IGltcGxpY2l0IGRlZmF1bHQKKyAqCisg KiBDb21wb3VuZCB0YXJnZXQgY29tcHV0YXRpb246CisgKiAgIFBSRVZfRklSU1Q6IChtYXRjaF9z dGFydCArIGlubmVyKSAtIG91dGVyCisgKiAgIE5FWFRfRklSU1Q6IChtYXRjaF9zdGFydCArIGlu bmVyKSArIG91dGVyCisgKiAgIFBSRVZfTEFTVDogIChjdXJyZW50cG9zICAtIGlubmVyKSAtIG91 dGVyCisgKiAgIE5FWFRfTEFTVDogIChjdXJyZW50cG9zICAtIGlubmVyKSArIG91dGVyCiAgKi8K IHR5cGVkZWYgZW51bSBSUFJOYXZLaW5kCiB7CiAJUlBSX05BVl9QUkVWLAogCVJQUl9OQVZfTkVY VCwKKwlSUFJfTkFWX0ZJUlNULAorCVJQUl9OQVZfTEFTVCwKKwkvKiBjb21wb3VuZDogb3V0ZXIo aW5uZXIoYXJnKSkgKi8KKwlSUFJfTkFWX1BSRVZfRklSU1QsCisJUlBSX05BVl9QUkVWX0xBU1Qs CisJUlBSX05BVl9ORVhUX0ZJUlNULAorCVJQUl9OQVZfTkVYVF9MQVNUCiB9IFJQUk5hdktpbmQ7 CiAKIHR5cGVkZWYgc3RydWN0IFJQUk5hdkV4cHIKIHsKIAlFeHByCQl4cHI7Ci0JUlBSTmF2S2lu ZAlraW5kOwkJCS8qIFBSRVYgb3IgTkVYVCAqLworCVJQUk5hdktpbmQJa2luZDsJCQkvKiBuYXZp Z2F0aW9uIGtpbmQgKi8KIAlFeHByCSAgICphcmc7CQkJLyogYXJndW1lbnQgZXhwcmVzc2lvbiAq LwotCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lvbiwgb3IgTlVMTCBm b3IgMS1hcmcgZm9ybSAqLworCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVz c2lvbiwgb3IgTlVMTCBmb3IgZGVmYXVsdCAqLworCUV4cHIJICAgKmNvbXBvdW5kX29mZnNldF9h cmc7CS8qIG91dGVyIG9mZnNldCBmb3IgY29tcG91bmQgbmF2LCBvcgorCQkJCQkJCQkJCSAqIE5V TEwgaWYgc2ltcGxlICovCiAJT2lkCQkJcmVzdWx0dHlwZTsJCS8qIHJlc3VsdCB0eXBlIChzYW1l IGFzIGFyZydzIHR5cGUpICovCiAJLyogT0lEIG9mIGNvbGxhdGlvbiBvZiByZXN1bHQgKi8KIAlP aWQJCQlyZXN1bHRjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3Jwci5oCmluZGV4IDAwYTI4YWJlMmI0Li4wYTE0Y2ZhZDc5YiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIu aApAQCAtNTUsMTkgKzU1LDExIEBACiAjZGVmaW5lIFJQUkVsZW1Jc0ZpbihlKQkJCSgoZSktPnZh cklkID09IFJQUl9WQVJJRF9GSU4pCiAjZGVmaW5lIFJQUkVsZW1DYW5Ta2lwKGUpCQkoKGUpLT5t aW4gPT0gMCkKIAotLyoKLSAqIG5hdk1heE9mZnNldCBzZW50aW5lbCB2YWx1ZXMuCi0gKiBOb24t bmVnYXRpdmUgdmFsdWVzIHJlcHJlc2VudCBhIHN0YXRpY2FsbHkgZGV0ZXJtaW5lZCBtYXhpbXVt IFBSRVYgb2Zmc2V0LgotICovCi0jZGVmaW5lIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwJKC0x KQkvKiBoYXMgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0OwotCQkJCQkJCQkJCQkgKiBldmFsdWF0 ZSBhdCBleGVjdXRvciBpbml0ICovCi0jZGVmaW5lIFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwJ KC0yKQkvKiBtdXN0IHJldGFpbiBlbnRpcmUgcGFydGl0aW9uCi0JCQkJCQkJCQkJCSAqIChlLmcu LCBmdXR1cmUgRklSU1QvTEFTVCkgKi8KLQogZXh0ZXJuIExpc3QgKmNvbGxlY3RQYXR0ZXJuVmFy aWFibGVzKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKIGV4dGVybiB2b2lkIGJ1aWxkRGVmaW5l VmFyaWFibGVMaXN0KExpc3QgKmRlZmluZUNsYXVzZSwKIAkJCQkJCQkJCUxpc3QgKipkZWZpbmVW YXJpYWJsZUxpc3QpOwogZXh0ZXJuIFJQUlBhdHRlcm4gKmJ1aWxkUlBSUGF0dGVybihSUFJQYXR0 ZXJuTm9kZSAqcGF0dGVybiwgTGlzdCAqZGVmaW5lVmFyaWFibGVMaXN0LAotCQkJCQkJCQkgICBS UFNraXBUbyBycFNraXBUbywgaW50IGZyYW1lT3B0aW9ucyk7CisJCQkJCQkJCSAgIFJQU2tpcFRv IHJwU2tpcFRvLCBpbnQgZnJhbWVPcHRpb25zLAorCQkJCQkJCQkgICBib29sIGhhc01hdGNoU3Rh cnREZXBlbmRlbnQpOwogCiAjZW5kaWYJCQkJCQkJLyogT1BUSU1JWkVSX1JQUl9IICovCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwci5vdXQKaW5kZXggYzAyZGJkNGMwOGQuLjA0ZWMyNWQ0Y2Y1IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHIub3V0CkBAIC0xMDQwLDkgKzEwNDAsMTAgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYo cHJpY2UpKQogKTsKLUVSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitFUlJP UjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUCiBMSU5FIDc6ICAg ICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihwcmljZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgp KSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxs b3dlZC4KIC0tIE5lc3RlZCBORVhUCiBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawogV0lORE9XIHcg QVMgKApAQCAtMTA1Miw5ICsxMDUzLDEwIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KQogICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChORVhUKHByaWNlKSkKICk7Ci1FUlJPUjog IFBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAorRVJST1I6ICBQUkVWIGFuZCBORVhUIGNh bm5vdCBjb250YWluIFBSRVYgb3IgTkVYVAogTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2Ug PiBORVhUKE5FWFQocHJpY2UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitI SU5UOiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFu ZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCiAtLSBQUkVWIG5lc3Rl ZCBpbnNpZGUgTkVYVAogU0VMRUNUIHByaWNlIEZST00gc3RvY2sKIFdJTkRPVyB3IEFTICgKQEAg LTEwNjQsOSArMTA2NiwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSkKICAgICBE RUZJTkUgQSBBUyBwcmljZSA+IE5FWFQoUFJFVihwcmljZSkpCiApOwotRVJST1I6ICBQUkVWIGFu ZCBORVhUIGNhbm5vdCBiZSBuZXN0ZWQKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgY29u dGFpbiBQUkVWIG9yIE5FWFQKIExJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChQ UkVWKHByaWNlKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9u bHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChM QVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgogLS0gUFJFViBuZXN0ZWQgaW5zaWRl IGV4cHJlc3Npb24gaW5zaWRlIE5FWFQKIFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cg dyBBUyAoCkBAIC0xMDc2LDkgKzEwNzksMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEEpCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKHByaWNlICogUFJFVihwcmljZSkpCiAp OwotRVJST1I6ICBQUkVWIGFuZCBORVhUIGNhbm5vdCBiZSBuZXN0ZWQKK0VSUk9SOiAgUFJFViBh bmQgTkVYVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQKIExJTkUgNzogICAgIERFRklORSBB IEFTIHByaWNlID4gTkVYVChwcmljZSAqIFBSRVYocHJpY2UpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitISU5UOiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSks IE5FWFQoRklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93 ZWQuCiAtLSBUcmlwbGUgbmVzdGluZzogZXJyb3IgcmVwb3J0ZWQgYXQgb3V0ZXJtb3N0IFBSRVYK IFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDg4LDkgKzEwOTIs MTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgcHJp Y2UgPiBQUkVWKFBSRVYoUFJFVihwcmljZSkpKQogKTsKLUVSUk9SOiAgUFJFViBhbmQgTkVYVCBj YW5ub3QgYmUgbmVzdGVkCitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJF ViBvciBORVhUCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihQUkVW KHByaWNlKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5 IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFT VCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4KIC0tIE5vIGNvbHVtbiByZWZlcmVuY2Ug aW4gUFJFVi9ORVhUIGFyZ3VtZW50CiAtLSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1 bW4gcmVmZXJlbmNlCiBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawpAQCAtMTEzNyw3ICsxMTQyLDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgUFJFVihw cmljZSwgcHJpY2UpID4gMAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IGJlIGEg cnVuLXRpbWUgY29uc3RhbnQKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQg bXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50CiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVW KHByaWNlLCBwcmljZSkgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBOb24tY29u c3RhbnQgb2Zmc2V0OiB2b2xhdGlsZSBmdW5jdGlvbiBhcyBvZmZzZXQKQEAgLTExNDksNyArMTE1 NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFTIFBS RVYocHJpY2UsIHJhbmRvbSgpOjppbnQpID4gMAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNl dCBtdXN0IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdh dGlvbiBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50CiBMSU5FIDc6ICAgICBERUZJ TkUgQSBBUyBQUkVWKHByaWNlLCByYW5kb20oKTo6aW50KSA+IDAKICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIC0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IHN1YnF1ZXJ5IGFzIG9mZnNldApAQCAt MTQ0Miw3ICsxNDQ3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERF RklORSBBIEFTIFBSRVYocHJpY2UsIC0xKSBJUyBOT1QgTlVMTAogKTsKLUVSUk9SOiAgUFJFVi9O RVhUIG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorRVJST1I6ICByb3cgcGF0dGVybiBuYXZp Z2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQogLS0gMi1hcmcgUFJFVi9ORVhUOiBO VUxMIG9mZnNldCAodHlwZWQpCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3CiBGUk9NIHN0b2NrCkBAIC0xNDUyLDcgKzE0NTcsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwg TlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKICk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVz dCBub3QgYmUgbnVsbAorRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0 IG5vdCBiZSBudWxsCiAtLSAyLWFyZyBQUkVWL05FWFQ6IE5VTEwgb2Zmc2V0ICh1bnR5cGVkKQog U0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdwog RlJPTSBzdG9jawpAQCAtMTQ2Miw3ICsxNDY3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEErKQogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5VTEwpIElTIE5PVCBOVUxMCiAp OwotRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKK0VSUk9SOiAgcm93 IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAogLS0gMi1hcmcgUFJF Vi9ORVhUOiBob3N0IHZhcmlhYmxlIG5lZ2F0aXZlIGFuZCBOVUxMCiBQUkVQQVJFIHRlc3RfcHJl dl9vZmZzZXQoaW50OCkgQVMKIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3Zh bHVlKHByaWNlKSBPVkVSIHcKQEAgLTE0NzQsOSArMTQ3OSw5IEBAIFdJTkRPVyB3IEFTICgKICAg ICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQogKTsKIEVYRUNVVEUgdGVzdF9w cmV2X29mZnNldCgtMSk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVn YXRpdmUKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUg bmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKLUVSUk9SOiAgUFJFVi9O RVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRp b24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKIERFQUxMT0NBVEUgdGVzdF9wcmV2X29mZnNldDsK IC0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3aXRoIGV4cHJlc3Npb24gKDAgKyAk MSkKIFBSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBBUwpAQCAtMTQ4OSw5ICsxNDk0LDkg QEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgMCAr ICQxKQogKTsKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7Ci1FUlJPUjogIFBSRVYvTkVY VCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdh dGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNl dChOVUxMKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitFUlJP UjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKIERFQUxM T0NBVEUgdGVzdF9wcmV2X29mZnNldDsKIC0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJs ZSB3aXRoIHBvc2l0aXZlIHZhbHVlCiAtLSBFeGVyY2lzZXMgUlBSX05BVl9PRkZTRVRfTkVFRFNf RVZBTCAtPiBldmFsX25hdl9tYXhfb2Zmc2V0KCkgcGF0aApAQCAtMTYzMCw2ICsxNjM1LDYwNCBA QCBXSU5ET1cgdyBBUyAoCiAgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAogKDIwIHJvd3MpCiAKKy0tCistLSBGSVJTVC9MQVNU IG5hdmlnYXRpb24KKy0tCistLSBUZXN0IGRhdGEgZm9yIEZJUlNUL0xBU1Q6IHZhbHVlcyBjeWNs ZSBiYWNrIHNvIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkKKy0tIGF0IHNwZWNpZmljIHBvc2l0aW9u cy4KK0NSRUFURSBURU1QIFRBQkxFIHJwcl9uYXYgKGlkIGludCwgdmFsIGludCk7CitJTlNFUlQg SU5UTyBycHJfbmF2IFZBTFVFUyAoMSwxMCksKDIsMjApLCgzLDMwKSwoNCwxMCksKDUsNTApLCg2 LDEwKTsKKy0tIEZJUlNUKHZhbCkgPSBjb25zdGFudDogQiBtYXRjaGVzIHdoZW4gbWF0Y2hfc3Rh cnQgaGFzIHZhbD0xMAorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IEE9aWQxLCBCPWlkMiwgRklSU1Qo dmFsKT0xMCDihpIgbWF0Y2ggezEsMn0KKy0tIG1hdGNoX3N0YXJ0PTMoMzApOiBBPWlkMywgQj1p ZDQsIEZJUlNUKHZhbCk9MzDiiaAxMCDihpIgbm8gbWF0Y2gKKy0tIG1hdGNoX3N0YXJ0PTQoMTAp OiBBPWlkNCwgQj1pZDUsIEZJUlNUKHZhbCk9MTAg4oaSIG1hdGNoIHs0LDV9CitTRUxFQ1QgaWQs IHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsKSA9IDEwCispOworIGlkIHwgdmFsIHwgbWYgfCBt bCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAyCisgIDIgfCAgMjAg fCAgICB8ICAgCisgIDMgfCAgMzAgfCAgICB8ICAgCisgIDQgfCAgMTAgfCAgNCB8ICA1CisgIDUg fCAgNTAgfCAgICB8ICAgCisgIDYgfCAgMTAgfCAgICB8ICAgCisoNiByb3dzKQorCistLSBMQVNU KHZhbCk6IGFsd2F5cyBlcXVhbHMgY3VycmVudCByb3cncyB2YWwgKG9mZnNldCAwIGRlZmF1bHQp CistLSBFcXVpdmFsZW50IHRvOiBCIEFTIHZhbCA+IDE1CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9N IHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgTEFTVCh2YWwpID4gMTUKKyk7CisgaWQgfCB2YWwgfCBtZiB8IG1sIAorLS0tLSstLS0t LSstLS0tKy0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgIDIKKyAgMiB8ICAyMCB8ICAgIHwgICAKKyAg MyB8ICAzMCB8ICAgIHwgICAKKyAgNCB8ICAxMCB8ICA0IHwgIDUKKyAgNSB8ICA1MCB8ICAgIHwg ICAKKyAgNiB8ICAxMCB8ICAgIHwgICAKKyg2IHJvd3MpCisKKy0tIFJlbHVjdGFudCBBKz8gd2l0 aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIHNob3J0ZXN0IG1hdGNoIHdoZXJlCistLSBm aXJzdCBhbmQgbGFzdCByb3dzIGhhdmUgdGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgx MCk6IHJlbHVjdGFudCB0cmllcyBCIGVhcmx5OgorLS0gICBpZDIoMjDiiaAxMCksIGlkMygzMOKJ oDEwKSwgaWQ0KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDR9CistLSBtYXRjaF9zdGFydD01KDUw KTogaWQ2KDEw4omgNTApIOKGkiBubyBtYXRjaAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJf bmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIg QVMgRklSU1QodmFsKSA9IExBU1QodmFsKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0t Ky0tLS0tKy0tLS0rLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgNAorICAyIHwgIDIwIHwgICAgfCAg IAorICAzIHwgIDMwIHwgICAgfCAgIAorICA0IHwgIDEwIHwgICAgfCAgIAorICA1IHwgIDUwIHwg ICAgfCAgIAorICA2IHwgIDEwIHwgICAgfCAgIAorKDYgcm93cykKKworLS0gR3JlZWR5IEErIHdp dGggRklSU1QodmFsKSA9IExBU1QodmFsKTogZmluZCBsb25nZXN0IG1hdGNoIHdoZXJlCistLSBm aXJzdCBhbmQgbGFzdCByb3dzIGhhdmUgdGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgx MCk6IGdyZWVkeSBBIGVhdHMgYWxsLCBCIHRyaWVzIGxhc3Q6CistLSAgIGlkNigxMD0xMCkg4oaS IG1hdGNoIHsxLDIsMyw0LDUsNn0KK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1Qo dmFsKSA9IExBU1QodmFsKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0tKy0tLS0tKy0t LS0rLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgNgorICAyIHwgIDIwIHwgICAgfCAgIAorICAzIHwg IDMwIHwgICAgfCAgIAorICA0IHwgIDEwIHwgICAgfCAgIAorICA1IHwgIDUwIHwgICAgfCAgIAor ICA2IHwgIDEwIHwgICAgfCAgIAorKDYgcm93cykKKworLS0gU0tJUCBUTyBORVhUIFJPVyB3aXRo IEZJUlNUKHZhbCkgPSBMQVNUKHZhbCk6IG92ZXJsYXBwaW5nIG1hdGNoIGF0dGVtcHRzLgorLS0g V2l0aCBPTkUgUk9XIFBFUiBNQVRDSCwgZWFjaCByb3cgc2hvd3Mgb25seSBpdHMgZmlyc3QgbWF0 Y2ggcmVzdWx0LgorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYs IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBKz8gQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCkgPSBMQVNU KHZhbCkKKyk7CisgaWQgfCB2YWwgfCBtZiB8IG1sIAorLS0tLSstLS0tLSstLS0tKy0tLS0KKyAg MSB8ICAxMCB8ICAxIHwgIDQKKyAgMiB8ICAyMCB8ICAgIHwgICAKKyAgMyB8ICAzMCB8ICAgIHwg ICAKKyAgNCB8ICAxMCB8ICA0IHwgIDYKKyAgNSB8ICA1MCB8ICAgIHwgICAKKyAgNiB8ICAxMCB8 ICAgIHwgICAKKyg2IHJvd3MpCisKKy0tIEZJUlNUL0xBU1QgMi1hcmcgb2Zmc2V0IGZvcm0KKy0t CistLSBGSVJTVCh2YWwsIDApID0gRklSU1QodmFsKTogbWF0Y2hfc3RhcnQgcm93CitTRUxFQ1Qg aWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFT IGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5F IEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwsIDApID0gMTAKKyk7CisgaWQgfCB2YWwgfCBtZiB8 IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDYKKyAgMiB8 ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAg IDAKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykK KworLS0gRklSU1QodmFsLCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJvdyAoc2Vjb25kIHJvdyBvZiBt YXRjaCkKKy0tIG1hdGNoX3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9MjAsIEIgbmVlZHMgdmFs PTIwIOKGkiBpZDIoMjApIG1hdGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTog RklSU1QodmFsLDEpPTEwLCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0KDEwKSBtYXRjaAorU0VMRUNU IGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgdmFsID0gRklSU1QodmFsLCAxKQorKTsKKyBpZCB8IHZhbCB8IG1m IHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgMgorICAy IHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAzIHwgICAyCisgIDQgfCAgMTAgfCAgICB8 ICAgMAorICA1IHwgIDUwIHwgIDUgfCAgIDIKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dz KQorCistLSBGSVJTVCh2YWwsIDk5KTogb2Zmc2V0IGJleW9uZCBtYXRjaCByYW5nZSDihpIgTlVM TCwgbm8gbWF0Y2gKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9N IHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVF LCBCIEFTIEZJUlNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAor LS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8 ICAzMCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8 ICAgMAorKDYgcm93cykKKworLS0gTEFTVCh2YWwsIDApID0gTEFTVCh2YWwpOiBjdXJyZW50IHJv dworU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCop IE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDApID4gMTUKKyk7CisgaWQgfCB2 YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAg IDMKKyAgMiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEw IHwgIDQgfCAgIDIKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAor KDYgcm93cykKKworLS0gTEFTVCh2YWwsIDEpOiBvbmUgcm93IGJhY2sgZnJvbSBjdXJyZW50IChw cmV2aW91cyBtYXRjaCByb3cpCistLSBBdCBCIGV2YWx1YXRpb24gb24gaWQyOiBMQVNUKHZhbCwx KSA9IHZhbCBhdCBpZDEgPSAxMAorLS0gQiBtYXRjaGVzIHdoZW4gcHJldmlvdXMgcm93IHZhbCA8 IDMwCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZhbCwgMSkgPCAzMAorKTsKKyBpZCB8 IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8 ICAgMworICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAg MTAgfCAgNCB8ICAgMgorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAw CisoNiByb3dzKQorCistLSBMQVNUKHZhbCwgOTkpOiBvZmZzZXQgYmVmb3JlIG1hdGNoX3N0YXJ0 IOKGkiBOVUxMCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBy cHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBMQVNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0t LSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAz MCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAg MAorKDYgcm93cykKKworLS0gRXJyb3I6IE5VTEwgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291 bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBGSVJTVCh2YWwsIE5VTEw6OmludDgpIElT IE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90 IGJlIG51bGwKKy0tIEVycm9yOiBuZWdhdGl2ZSBvZmZzZXQKK1NFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodmFsLCAtMSkgSVMgTlVMTAorKTsK K0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRp dmUKKy0tIEZJUlNUL0xBU1Qgb3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NF TEVDVCBmaXJzdCh2YWwpIEZST00gcnByX25hdjsKK0VSUk9SOiAgZmlyc3QgY2FuIG9ubHkgYmUg dXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIGZpcnN0KHZhbCkgRlJPTSBy cHJfbmF2OworICAgICAgICAgICAgICAgXgorU0VMRUNUIGxhc3QodmFsKSBGUk9NIHJwcl9uYXY7 CitFUlJPUjogIGxhc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUg MTogU0VMRUNUIGxhc3QodmFsKSBGUk9NIHJwcl9uYXY7CisgICAgICAgICAgICAgICBeCitTRUxF Q1QgZmlyc3QodmFsLCAxKSBGUk9NIHJwcl9uYXY7CitFUlJPUjogIGZpcnN0IGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBmaXJzdCh2YWwsIDEpIEZS T00gcnByX25hdjsKKyAgICAgICAgICAgICAgIF4KKy0tIEZ1bmN0aW9uYWwgbm90YXRpb246IHNo b3VsZCBhY2Nlc3MgY29sdW1uLCBub3QgUlBSIG5hdmlnYXRpb24KK0NSRUFURSBURU1QIFRBQkxF IHJwcl9uYW1lcyAocHJldiBpbnQsIG5leHQgaW50LCBmaXJzdCB0ZXh0LCBsYXN0IHRleHQpOwor SU5TRVJUIElOVE8gcnByX25hbWVzIFZBTFVFUyAoMSwgMiwgJ0pvZScsICdCbG93Jyk7CitTRUxF Q1QgcHJldihmKSwgbmV4dChmKSwgZmlyc3QoZiksIGxhc3QoZikgRlJPTSBycHJfbmFtZXMgZjsK KyBwcmV2IHwgbmV4dCB8IGZpcnN0IHwgbGFzdCAKKy0tLS0tLSstLS0tLS0rLS0tLS0tLSstLS0t LS0KKyAgICAxIHwgICAgMiB8IEpvZSAgIHwgQmxvdworKDEgcm93KQorCitEUk9QIFRBQkxFIHJw cl9uYW1lczsKKy0tIENvbXBvdW5kIG5hdmlnYXRpb246IFBSRVYoRklSU1QodmFsKSwgTSkKKy0t IHJwcl9uYXY6ICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYsMTApCistLSBQ UkVWKEZJUlNUKHZhbCksIDEpOiB0YXJnZXQgPSBtYXRjaF9zdGFydCArIDAgLSAxID0gbWF0Y2hf c3RhcnQgLSAxCistLSBBdCBtYXRjaF9zdGFydD0xOiB0YXJnZXQ9MCDihpIgb3V0IG9mIHJhbmdl IOKGkiBOVUxMCistLSBBdCBtYXRjaF9zdGFydD0zOiB0YXJnZXQ9Mih2YWw9MjApIOKGkiAyMCA+ IDAg4oaSIHRydWUKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1m LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgMSkg PiAwCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAg MSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwgICAg fCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwg IDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoRklSU1QodmFsLCAxKSwgMSk6IHRh cmdldCA9IG1hdGNoX3N0YXJ0ICsgMSArIDEgPSBtYXRjaF9zdGFydCArIDIKKy0tIEF0IG1hdGNo X3N0YXJ0PTEsIEIgb24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIOKGkiB0cnVl CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCwgMSksIDEpID4gMAorKTsK KyBpZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAg fCAgMSB8ICAgNgorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisg IDQgfCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAg IHwgICAwCisoNiByb3dzKQorCistLSBQUkVWKExBU1QodmFsKSwgMik6IHRhcmdldCA9IGN1cnJl bnRwb3MgLSAwIC0gMiA9IGN1cnJlbnRwb3MgLSAyCistLSBTYW1lIGJhY2t3YXJkIHJlYWNoIGFz IFBSRVYodmFsLCAyKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihMQVNUKHZhbCksIDIp IElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0r LS0tLS0KKyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwg IDMwIHwgICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAg MAorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwsIDEp LCAyKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIDEgKyAyID0gY3VycmVudHBvcyArIDEKKy0tIExv b2tzIDEgcm93IGFoZWFkOiBzYW1lIGFzIE5FWFQodmFsLCAxKQorU0VMRUNUIGlkLCB2YWwsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgTkVYVChMQVNUKHZhbCwgMSksIDIpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwg bWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgICA1Cisg IDIgfCAgMjAgfCAgICB8ICAgMAorICAzIHwgIDMwIHwgICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAg IHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJv d3MpCisKKy0tIENvbXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAoUFJFViBm YXIgYmFjaykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJw cl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgOTkpIElTIE5PVCBOVUxM CispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAw CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUg fCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IG91 dGVyIG9mZnNldCBiZXlvbmQgcGFydGl0aW9uIChORVhUIGZhciBmb3J3YXJkKQorU0VMRUNUIGlk LCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgTkVYVChGSVJTVCh2YWwpLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBj bnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAor ICAzIHwgIDMwIHwgICAwCisgIDQgfCAgMTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwg IDEwIHwgICAwCisoNiByb3dzKQorCistLSBDb21wb3VuZDogaW5uZXIgb2Zmc2V0IGJleW9uZCBt YXRjaCByYW5nZSAoRklSU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYo RklSU1QodmFsLCA5OSksIDEpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0t LSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAz MCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAg MAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFu Z2UgKExBU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWws IDk5KSwgMSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisg IDQgfCAgMTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDEwIHwgICAwCisoNiByb3dz KQorCistLSBDb21wb3VuZDogTlVMTCBvdXRlciBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNU KHZhbCksIE5VTEw6OmludDgpIElTIE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmln YXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIENvbXBvdW5kOiBuZWdhdGl2ZSBvdXRl ciBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1QodmFsKSwgLTEpIElTIE5VTEwKKyk7CitFUlJP UjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlCist LSBDb21wb3VuZDogZGVmYXVsdCBvZmZzZXRzIG9uIGJvdGggc2lkZXMKKy0tIFBSRVYoRklSU1Qo dmFsKSk6IGlubmVyPTAgKG1hdGNoX3N0YXJ0KSwgb3V0ZXI9MSDihpIgdGFyZ2V0ID0gbWF0Y2hf c3RhcnQgLSAxCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwg Y291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCkpIElTIE5P VCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0K KyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwg ICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2 IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwpKTogaW5uZXI9 MCAoY3VycmVudHBvcyksIG91dGVyPTEg4oaSIHRhcmdldCA9IGN1cnJlbnRwb3MgKyAxCitTRUxF Q1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsKSkgSVMgTk9UIE5VTEwKKyk7CisgaWQg fCB2YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEg fCAgIDUKKyAgMiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwg IDEwIHwgICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAg MAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIE5VTEwgb2Zmc2V0IChydW50aW1lIGVy cm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihGSVJTVCh2YWwsIE5VTEw6OmludDgpLCAxKSBJUyBOVUxMCispOworRVJST1I6ICByb3cg cGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCistLSBDb21wb3VuZDog aW5uZXIgbmVnYXRpdmUgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNv dW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZhbCwgLTEpLCAxKSBJ UyBOVUxMCispOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5v dCBiZSBuZWdhdGl2ZQorLS0gQ29tcG91bmQgKyBob3N0IHZhcmlhYmxlIG9mZnNldHMKK1BSRVBB UkUgdGVzdF9jb21wb3VuZF9vZmZzZXQoaW50OCwgaW50OCkgQVMKK1NFTEVDVCBpZCwgdmFsLCBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9N IHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVF LCBCIEFTIFBSRVYoRklSU1QodmFsLCAkMSksICQyKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUg dGVzdF9jb21wb3VuZF9vZmZzZXQoMCwgMSk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAKKy0tLS0r LS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAgfCAgIDAKKyAgMiB8ICAyMCB8ICAyIHwg ICA1CisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAgNSB8ICA1 MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworRVhFQ1VURSB0 ZXN0X2NvbXBvdW5kX29mZnNldCgxLCAxKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSst LS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgNgorICAyIHwgIDIwIHwgICAgfCAg IDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUw IHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCitERUFMTE9DQVRF IHRlc3RfY29tcG91bmRfb2Zmc2V0OworLS0gQ29tcG91bmQgKyBTS0lQIFRPIE5FWFQgUk9XOiBv dmVybGFwcGluZyBtYXRjaGVzIHdpdGggUFJFVihGSVJTVCgpKQorU0VMRUNUIGlkLCB2YWwsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBC IEFTIFBSRVYoRklSU1QodmFsKSwgMSkgPiAwCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCist LS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAg MiB8ICAgNQorICAzIHwgIDMwIHwgIDMgfCAgIDQKKyAgNCB8ICAxMCB8ICA0IHwgICAzCisgIDUg fCAgNTAgfCAgNSB8ICAgMgorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIENv bXBvdW5kICsgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFRFTVAgVEFCTEUgcnByX25hdl9w YXJ0IChnaWQgaW50LCBpZCBpbnQsIHZhbCBpbnQpOworSU5TRVJUIElOVE8gcnByX25hdl9wYXJ0 IFZBTFVFUworICAgICgxLDEsMTApLCgxLDIsMjApLCgxLDMsMzApLAorICAgICgyLDEsNDApLCgy LDIsNTApLCgyLDMsNjApOworU0VMRUNUIGdpZCwgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2X3BhcnQgV0lO RE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBnaWQgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgTkVYVChGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CisgZ2lkIHwgaWQgfCB2YWwg fCBtZiB8IGNudCAKKy0tLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAgMSB8ICAxIHwgIDEw IHwgIDEgfCAgIDMKKyAgIDEgfCAgMiB8ICAyMCB8ICAgIHwgICAwCisgICAxIHwgIDMgfCAgMzAg fCAgICB8ICAgMAorICAgMiB8ICAxIHwgIDQwIHwgIDEgfCAgIDMKKyAgIDIgfCAgMiB8ICA1MCB8 ICAgIHwgICAwCisgICAyIHwgIDMgfCAgNjAgfCAgICB8ICAgMAorKDYgcm93cykKKworRFJPUCBU QUJMRSBycHJfbmF2X3BhcnQ7CistLSBSZXZlcnNlIG5lc3Rpbmc6IEZJUlNUIHdyYXBwaW5nIFBS RVYgaXMgcHJvaGliaXRlZAorU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVF LCBCIEFTIEZJUlNUKFBSRVYodmFsKSkgPiAwCispOworRVJST1I6ICBGSVJTVCBhbmQgTEFTVCBj YW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQKK0xJTkUgNTogICAgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgRklSU1QoUFJFVih2YWwpKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJ UlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorLS0g UmV2ZXJzZSBuZXN0aW5nOiBMQVNUIHdyYXBwaW5nIE5FWFQgaXMgcHJvaGliaXRlZAorU0VMRUNU IGlkLCB2YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2YWwpKSA+ IDAKKyk7CitFUlJPUjogIEZJUlNUIGFuZCBMQVNUIGNhbm5vdCBjb250YWluIFBSRVYgb3IgTkVY VAorTElORSA1OiAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKE5FWFQodmFsKSkgPiAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYo RklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBj b21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4KK0RST1AgVEFCTEUgcnByX25hdjsKIC0tCiAtLSBT S0lQIFRPIC8gQmFja3RyYWNraW5nIC8gRnJhbWUgYm91bmRhcnkKIC0tCkBAIC0yMjQ3LDYgKzI4 NTAsMjcgQEAgRlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKICAgICAgICAgICAgIDEg fCAgICAgICAgIDk5OTk5CiAoMSByb3cpCiAKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworUkVTRVQg aml0OworLS0gSklUIGNvbXBvdW5kIG5hdmlnYXRpb24gdGVzdAorU0VUIGppdCA9IG9uOworU0VU IGppdF9hYm92ZV9jb3N0ID0gMDsKK1NFTEVDVCBjb3VudCgqKSBBUyBtYXRjaGVkX3Jvd3MKK0ZS T00gKAorIFNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuCisgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgdCh2KQorIFdJTkRPVyB3IEFTICgKKyAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICBQQVRURVJOIChBIEIrKQorICBERUZJTkUgQSBBUyBUUlVFLCBC IEFTIFBSRVYoRklSU1QodiksIDEpID4gMAorICkKKykgc3ViIFdIRVJFIG1hdGNoX2xlbiA+IDA7 CisgbWF0Y2hlZF9yb3dzIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIDEKKygxIHJvdykK KwogUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CiBSRVNFVCBqaXQ7CiAtLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCAxZTQ1MGEwN2NlZC4uMDg0NTMxNjk2NWUgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0xNjI5LDcgKzE2MjksNyBAQCBM SU5FIDY6ICAgICBQQVRURVJOIChBeywyMTQ3NDgzNjQ3fSkKIC0tIEV4cGVjdGVkOiBFUlJPUjog cXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgogRFJPUCBU QUJMRSBycHJfYm91bmRzOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cyAo UFJFViAvIE5FWFQpCistLSBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cyAoUFJFViAvIE5FWFQg LyBGSVJTVCAvIExBU1QpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIENSRUFURSBUQUJMRSBycHJfbmF2IChpZCBJTlQsIHZh bCBJTlQpOwogSU5TRVJUIElOVE8gcnByX25hdiBWQUxVRVMKQEAgLTE3MzAsNiArMTczMCw4MSBA QCBFUlJPUjogIG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKIExJTkUg MTogU0VMRUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiAgICAg ICAgICAgICAgICBeCiAtLSBFeHBlY3RlZDogRVJST1I6IG5leHQgY2FuIG9ubHkgYmUgdXNlZCBp biBhIERFRklORSBjbGF1c2UKKy0tIEZJUlNUIGZ1bmN0aW9uIC0gcmVmZXJlbmNlIG1hdGNoX3N0 YXJ0IHJvdworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnBy X25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+IEZJUlNU KHZhbCkKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0t LQorICAxIHwgIDEwIHwgICA1CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMAorICA0 IHwgIDI1IHwgICAwCisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIExBU1QgZnVuY3Rp b24gd2l0aG91dCBvZmZzZXQgLSBlcXVpdmFsZW50IHRvIGN1cnJlbnQgcm93J3MgdmFsdWUKK1NF TEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyBMQVNUKHZhbCkgPiBQUkVWKHZhbCkK KykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMworICA0IHwgIDI1 IHwgICAwCisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIEZJUlNUIGFuZCBMQVNUIGNv bWJpbmVkCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJf bmF2CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAg IERFRklORQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gRklSU1Qo dmFsKSBBTkQgTEFTVCh2YWwpID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZh bCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwg ICAwCisgIDMgfCAgMTUgfCAgIDMKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgIDMwIHwgICAwCiso NSByb3dzKQorCistLSBGSVJTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGlu IERFRklORQorU0VMRUNUIEZJUlNUKGlkKSwgaWQsIHZhbCBGUk9NIHJwcl9uYXY7CitFUlJPUjog IGZpcnN0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVD VCBGSVJTVChpZCksIGlkLCB2YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0g RXhwZWN0ZWQ6IEVSUk9SOiBmaXJzdCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVz ZQorLS0gTEFTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQor U0VMRUNUIExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKK0VSUk9SOiAgbGFzdCBjYW4g b25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgTEFTVChpZCks IGlkLCB2YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBsYXN0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCiBEUk9QIFRBQkxF IHJwcl9uYXY7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIFNLSVAgVE8gLyBJTklUSUFMIFRlc3RzCkBAIC0yMjI3LDYg KzIzMDIsMTUwIEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92OCc6OnJlZ2Ns YXNzKTsKICAgIGQgQVMgKHZhbCA+IDMwKSApOwogKDEgcm93KQogCistLSBOYXZpZ2F0aW9uIGZ1 bmN0aW9uIHNlcmlhbGl6YXRpb246IFBSRVYgd2l0aCBvZmZzZXQKK0NSRUFURSBWSUVXIHJwcl9z ZXJpYWxfbmF2MSBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJf c2VyaWFsCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRU RVJOIChBIEIrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgdmFsID4gUFJF Vih2YWwsIDIpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYxJzo6cmVn Y2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg U0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCop IE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAo YSBiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgdHJ1ZSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgYiBBUyAodmFsID4gUFJFVih2YWwsICgyKTo6YmlnaW50KSkgKTsKKygxIHJvdykKKworLS0g TmF2aWdhdGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBGSVJTVCBhbmQgTEFTVAorQ1JFQVRF IFZJRVcgcnByX3NlcmlhbF9uYXYyIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBB UyBGSVJTVCh2YWwpIDwgTEFTVCh2YWwsIDEpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnBy X3NlcmlhbF9uYXYyJzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgUEFUVEVSTiAoYSBiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEg QVMgdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgYiBBUyAoRklSU1QodmFsKSA8IExBU1QodmFsLCAoMSk6OmJp Z2ludCkpICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlv bjogY29tcG91bmQgUFJFVihGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYzIEFT CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisg ICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCwgMSksIDIp ID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Myc6OnJlZ2NsYXNz KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVD VCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVS IHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYisp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIg QVMgKFBSRVYoRklSU1QodmFsLCAoMSk6OmJpZ2ludCksICgyKTo6YmlnaW50KSA+IDApICk7Ciso MSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQg TkVYVChMQVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjQgQVMKK1NFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBE RUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpLCAyKSBJUyBOT1QgTlVMTCk7CitT RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2NCc6OnJlZ2NsYXNzKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291 bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg RlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYispICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg REVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKE5FWFQo TEFTVCh2YWwpLCAoMik6OmJpZ2ludCkgSVMgTk9UIE5VTEwpICk7CisoMSByb3cpCisKKy0tIE5h dmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitD UkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAg ICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVF LCBCIEFTIFBSRVYoTEFTVCh2YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdycHJfc2VyaWFsX25hdjUnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gcnByX3NlcmlhbCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgSU5JVElBTCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICBQQVRURVJOIChhIGIrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIERFRklORSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgYSBBUyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBiIEFTIChQUkVWKExBU1QodmFsLCAoMSk6OmJpZ2lu dCksICgyKTo6YmlnaW50KSA+IDApICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rp b24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnBy X3NlcmlhbF9uYXY2IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJw cl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBB VFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJ UlNUKHZhbCksIDMpID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2 Nic6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3Zp ZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBj b3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBB VFRFUk4gKGEgYispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgIGIgQVMgKE5FWFQoRklSU1QodmFsKSwgKDMpOjpiaWdpbnQpID4gMCkgKTsKKygx IHJvdykKKwogLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVs ZXV0aWxzCiBDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcKQEAgLTMwMjEsNiArMzI0MCw0MiBAQCBPUkRFUiBCWSBpZDsK ICgzIHJvd3MpCiAKIERST1AgVEFCTEUgcnByX251bGw7CistLSBDb21wb3VuZCBuYXZpZ2F0aW9u OiBpbm5lciBuYXYgbXVzdCBiZSBkaXJlY3QgYXJnIChub3QgbmVzdGVkIGluIGV4cHJlc3Npb24p CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2ICsg RklSU1QodikpID4gMAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRp b24gbXVzdCBiZSBhIGRpcmVjdCBhcmd1bWVudCBvZiB0aGUgb3V0ZXIgbmF2aWdhdGlvbgorTElO RSA2OiAgICAgREVGSU5FIEEgQVMgUFJFVih2ICsgRklSU1QodikpID4gMAorICAgICAgICAgICAg ICAgICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBO RVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2Vk LgorLS0gRklSU1QvTEFTVCB3cmFwcGluZyBGSVJTVC9MQVNUOiBwcm9oaWJpdGVkCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgRklSU1QoRklSU1QodikpID4g MAorKTsKK0VSUk9SOiAgRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gRklSU1Qgb3IgTEFT VAorTElORSA2OiAgICAgREVGSU5FIEEgQVMgRklSU1QoRklSU1QodikpID4gMAorICAgICAgICAg ICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkp LCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxv d2VkLgorLS0gVHJpcGxlIG5lc3Rpbmc6IHByb2hpYml0ZWQgKDMtbGV2ZWwgZGVlcCBuYXZpZ2F0 aW9uKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYo RklSU1QoUFJFVih2KSkpID4gMAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBj YW5ub3QgYmUgbmVzdGVkIG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAKK0xJTkUgNjogICAgIERF RklORSBBIEFTIFBSRVYoRklSU1QoUFJFVih2KSkpID4gMAorICAgICAgICAgICAgICAgICAgICAg ICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNU KCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLSBXaW5kb3cgRGVkdXBsaWNhdGlvbiBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDc3YWIyNWEyMjg5Li5kYzM1MjJmOTMwZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM2LDcgKzM2 LDcgQEAKIC0tICAgV2luZG93IEZ1bmN0aW9uIENvbWJpbmF0aW9ucwogLS0gICBERUZJTkUgRXhw cmVzc2lvbiBWYXJpYXRpb25zCiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0 aW9uCi0tLSAgIE5hdiBNYXJrIExvb2tiYWNrICh0dXBsZXN0b3JlIHRyaW0pCistLSAgIE5hdiBN YXJrIExvb2tiYWNrL0xvb2thaGVhZCAodHVwbGVzdG9yZSB0cmltKQogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBGaWx0 ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIHBsYXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVz IChub3QgTkZBIHN0YXRpc3RpY3MpLgogLS0gTkZBIHN0YXRpc3RpY3Mgc2hvdWxkIG5vdCBjaGFu Z2UgYmV0d2VlbiBwbGF0Zm9ybXM7IGlmIHRoZXkgZG8sIGl0IGNvdWxkCkBAIC0xMTMxLDYgKzEx MzEsMTI3IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQogKDEwIHJvd3MpCiAKKy0tIE5v IGFic29ycHRpb24gd2hlbiBERUZJTkUgdXNlcyBGSVJTVCAobWF0Y2hfc3RhcnQtZGVwZW5kZW50 KQorLS0gU2FtZSBwYXR0ZXJuIGFzIHJwcl9ldl9jdHhfYWJzb3JiX3VuYm91bmRlZCBidXQgd2l0 aCBGSVJTVCBpbiBERUZJTkUuCistLSBDb21wYXJlOiBhYnNvcmJlZCBjb3VudCBzaG91bGQgYmUg MCBoZXJlIHZzID4wIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmJfZmly c3QgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMCBBTkQgdiA+IEZJUlNUKHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQor CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQor ICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwIEFORCB2ID4gRklSU1Qo dikKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1 YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyBiCisgICBO YXYgTWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICBTdG9yYWdl OiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA5IHBlYWssIDE1 MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNSBwZWFrLCA1MSB0b3RhbCwgMCBw cnVuZWQKKyAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKKyAg IE5GQTogMCBhYnNvcmJlZCwgNDAgc2tpcHBlZCAobGVuIDEvNC8yLjUpCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkK KygxMSByb3dzKQorCistLSBBYnNvcnB0aW9uIHByZXNlcnZlZCB3aGVuIERFRklORSB1c2VzIG9u bHkgTEFTVCB3aXRob3V0IG9mZnNldAorLS0gTEFTVCh2KSBpcyBtYXRjaF9zdGFydC1pbmRlcGVu ZGVudCAoYWx3YXlzIGN1cnJlbnRwb3MpLCBzbyBhYnNvcnB0aW9uCistLSByZW1haW5zIGFjdGl2 ZS4gIENvbXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSA+MCwgbGlrZSB0aGUKKy0tIFBS RVYtb25seSBjYXNlIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfbGFzdCBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgTEFTVCh2 KSAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9sYXN0JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyBMQVNUKHYpICUgNSA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2lu ZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCisgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywg OTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAg cHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCisg ICBORkE6IDMwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4w KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTUwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gTm8gYWJzb3JwdGlvbiB3aXRoIGNvbXBv dW5kIFBSRVYoRklSU1QoKSkgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKK0NSRUFURSBWSUVXIHJw cl9ldl9jdHhfbm9fYWJzb3JiX2NvbXBvdW5kIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5F IEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1QodiksIDEpIElT IE5PVCBOVUxMCispOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMCBB TkQgUFJFVihGSVJTVCh2KSwgMSkgSVMgTk9UIE5VTEwKKyk7Jyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCisgICBQYXR0ZXJuOiBhKyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgTmF2 IE1hcmsgTG9va2FoZWFkOiAtMQorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgorICAgTkZBIFN0YXRlczogOSBwZWFrLCAxNTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEg Q29udGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQg KGxlbiA0LzUvNC45KSwgMSBtaXNtYXRjaGVkIChsZW4gNS81LzUuMCkKKyAgIE5GQTogMCBhYnNv cmJlZCwgMzkgc2tpcHBlZCAobGVuIDEvNC8yLjUpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMSByb3dzKQor CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTQz NDMsOSArNDQ2NCwxMCBAQCBTRUxFQ1QgKiBGUk9NICgKICg5IHJvd3MpCiAKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g TmF2IE1hcmsgTG9va2JhY2sgVGVzdHMKLS0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQgbmF2 aWdhdGlvbiBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KLS0tIExvb2tiYWNrOiBob3cgZmFy IGJhY2sgZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gTmF2IE1hcmsgTG9va2JhY2sv TG9va2FoZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5hdmlnYXRpb24g b2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBmYXIgYmFjayBm cm9tIGN1cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1Qp LgorLS0gTG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFydCAoRklSU1Qs IGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFByZXBhcmUgc3Rh dGVtZW50IGZvciBob3N0IHZhcmlhYmxlIG9mZnNldCB0ZXN0IGJlbG93CiBQUkVQQVJFIHJwcl9u YXZfb2Zmc2V0X3ByZXAoaW50OCkgQVMKQEAgLTQ0NjYsMyArNDU4OCwyOTggQEAgRVhQTEFJTiAo Q09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoMik7CiAKIFJFU0VUIHBsYW5f Y2FjaGVfbW9kZTsKIERFQUxMT0NBVEUgcnByX25hdl9vZmZzZXRfcHJlcDsKKy0tIEZJUlNUKHYp OiByZXRhaW4gYWxsIChyZWZlcmVuY2VzIG1hdGNoX3N0YXJ0IHJvdykKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYgPiBG SVJTVCh2KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBM b29rYWhlYWQ6IDAKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCiso NiByb3dzKQorCistLSBMQVNUKHYsIDEpOiBiYWNrd2FyZCByZWFjaCAxLCBzYW1lIGFzIFBSRVYo diwgMSkKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQor ICAgIERFRklORSBBIEFTIExBU1QodiwgMSkgPiAwCispOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9v a2JhY2s6IDEKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSBy b3dzKQorCistLSBMQVNUKHYpIHdpdGhvdXQgb2Zmc2V0ICsgUFJFVih2KTogbm8gbWF0Y2hfc3Rh cnQgZGVwZW5kZW5jeSwgb2Zmc2V0IDEKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodikgPiBQUkVWKHYpCispOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihGSVJTVCh2YWws IDEpLCAyKTogbG9va2JhY2sgZnJvbSBtYXRjaF9zdGFydCwgZmlyc3RPZmZzZXQgPSAxLTIgPSAt MQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgUFJFVihGSVJTVCh2LCAxKSwgMikgPiAwCispOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKKyAgIE5hdiBNYXJrIExvb2thaGVhZDogLTEKKyAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNiByb3dzKQorCistLSBDb21wb3VuZCBORVhU KEZJUlNUKHZhbCksIDMpOiBmaXJzdE9mZnNldCA9IDArMyA9IDMKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklS U1QodiksIDMpID4gMAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYg TWFyayBMb29rYWhlYWQ6IDMKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzCisoNiByb3dzKQorCistLSBDb21wb3VuZCBQUkVWKExBU1QodmFsKSwgMik6IGxvb2tiYWNr ID0gMCsyID0gMgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSspCisgICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYpLCAyKSA+IDAKKyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDIKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzCisoNSByb3dzKQorCistLSBDb21wb3VuZCBORVhUKExBU1QodmFsLCAxKSwgMyk6IGxv b2tiYWNrID0gbWF4KDEtMywgMCkgPSAwCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1QodiwgMSksIDMpID4g MAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNU KHZhbCwgTiksIE0pOiBjb25zdGFudCBuZWFyLW92ZXJmbG93IChOK00ganVzdCBmaXRzIGludDY0 KQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgUFJFVihMQVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDMpLCA0NjExNjg2MDE4 NDI3Mzg3OTAzKSBJUyBOT1QgTlVMTAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiA5 MjIzMzcyMDM2ODU0Nzc1ODA2CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25z dGFudCBvdmVyZmxvdyAtPiByZXRhaW4gYWxsCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4 NjAxODQyNzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBh KworICAgTmF2IE1hcmsgTG9va2JhY2s6IHJldGFpbiBhbGwKKyAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBDb21wb3VuZCBORVhUKEZJUlNU KHZhbCwgTiksIE0pOiBjb25zdGFudCBsb29rYWhlYWQgb3ZlcmZsb3cgLT4gbm8gdHJpbSBpbXBh Y3QKKy0tIE4gKyBNIG92ZXJmbG93cyBpbnQ2NCwgYnV0IHRhcmdldCBpcyBmb3J3YXJkIGZyb20g bWF0Y2hfc3RhcnQgc28gaXQgbmV2ZXIKKy0tIGNvbnN0cmFpbnMgdHJpbS4gIExvb2thaGVhZCBy ZW1haW5zIGF0IGRlZmF1bHQgKDApLgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChGSVJTVCh2LCA0NjExNjg2MDE4 NDI3Mzg3OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMgTk9UIE5VTEwKKyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisg ICBOYXYgTWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDYgcm93cykKKworLS0gQ29tcG91 bmQgUFJFVihMQVNUKHZhbCwgJDEpLCAkMik6IHBhcmFtZXRlciBsb29rYmFjayBvdmVyZmxvdyAt PiByZXRhaW4gYWxsCistLSBFWFBMQUlOIHNob3dzICJydW50aW1lIiAocGxhbi1sZXZlbCk7IEVY UExBSU4gQU5BTFlaRSBzaG93cyAicmV0YWluIGFsbCIKKy0tIChleGVjdXRvci1yZXNvbHZlZCku CitQUkVQQVJFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soaW50OCwgaW50OCkgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgJDEpLCAk MikgSVMgTk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19w bGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2so NDYxMTY4NjAxODQyNzM4NzkwNCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYg TWFyayBMb29rYmFjazogcnVudGltZQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgQU5BTFlaRSwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCisgICAgRVhFQ1VURSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKDQ2 MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9MSkKKyAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiByZXRhaW4gYWxs CisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogMTdrQgorICAgTkZBIFN0YXRl czogMSBwZWFrLCAxMSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAx MSB0b3RhbCwgMTAgcHJ1bmVkCisgICBORkE6IDAgbWF0Y2hlZCwgMCBtaXNtYXRjaGVkCisgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAuMDAg bG9vcHM9MSkKKyg5IHJvd3MpCisKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxMT0NBVEUg dGVzdF9vdmVyZmxvd19sb29rYmFjazsKKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFsLCAkMSks ICQyKTogcGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmltIGltcGFjdAorUFJF UEFSRSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiwgJDEpLCAkMikg SVMgTk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFu OworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK KyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKDQ2MTE2ODYwMTg0MjczODc5MDQs IDQ2MTE2ODYwMTg0MjczODc5MDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVy bjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBMb29rYWhlYWQ6IDAK KyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiAxN2tCCisgICBORkEgU3RhdGVz OiAxIHBlYWssIDExIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEx IHRvdGFsLCAxMCBwcnVuZWQKKyAgIE5GQTogMCBtYXRjaGVkLCAwIG1pc21hdGNoZWQKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMC4wMCBs b29wcz0xKQorKDEwIHJvd3MpCisKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxMT0NBVEUg dGVzdF9vdmVyZmxvd19sb29rYWhlYWQ7CistLSBQUkVWKHYpICsgUFJFVih2LCAkMSk6IE5FRURT X0VWQUwgcGF0aCBtdXN0IGFjY291bnQgZm9yIGltcGxpY2l0IGxvb2tiYWNrPTEKKy0tIFByZXZp b3VzbHksIGV2YWxfbmF2X21heF9vZmZzZXRfd2Fsa2VyIHNraXBwZWQgUFJFVih2KSB3aGVuIG9m ZnNldF9hcmcgd2FzCistLSBOVUxMLCBjYXVzaW5nIG1heE9mZnNldD0wIHdoZW4gJDE9MCwgd2hp Y2ggd291bGQgdHJpbSB0aGUgcm93IG5lZWRlZCBieQorLS0gUFJFVih2KS4gIFZlcmlmeSB0aGlz IGV4ZWN1dGVzIHdpdGhvdXQgImNhbm5vdCBmZXRjaCByb3cgYmVmb3JlIG1hcmsiIGVycm9yLgor UFJFUEFSRSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2KSBJUyBOT1QgTlVMTCBBTkQg UFJFVih2LCAkMSkgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9pbXBsaWNpdF9v ZmZzZXQoMCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKyAgICAgOQorICAgICAwCisgICAg IDAKKyAgICAgMAorICAgICAwCisgICAgIDAKKyAgICAgMAorICAgICAwCisgICAgIDAKKygxMCBy b3dzKQorCitERUFMTE9DQVRFIHRlc3RfcHJldl9pbXBsaWNpdF9vZmZzZXQ7CistLSBSdW50aW1l IGVycm9yOiBuZWdhdGl2ZSBvZmZzZXQgYXQgZXhlY3V0aW9uIHRpbWUKK1BSRVBBUkUgdGVzdF9y dW50aW1lX25lZ19vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUgdGVz dF9ydW50aW1lX25lZ19vZmZzZXQoLTEpOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9u IG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorREVBTExPQ0FURSB0ZXN0X3J1bnRpbWVfbmVn X29mZnNldDsKKy0tIFJ1bnRpbWUgZXJyb3I6IG51bGwgb2Zmc2V0IGF0IGV4ZWN1dGlvbiB0aW1l CitQUkVQQVJFIHRlc3RfcnVudGltZV9udWxsX29mZnNldChpbnQ4KSBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiwgJDEpIElTIE5PVCBOVUxM CispOworRVhFQ1VURSB0ZXN0X3J1bnRpbWVfbnVsbF9vZmZzZXQoTlVMTCk7CitFUlJPUjogIHJv dyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKK0RFQUxMT0NBVEUg dGVzdF9ydW50aW1lX251bGxfb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKaW5kZXggNDdmMzM5MDQ2 OTAuLmEwNWI0MjljZTc0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKQEAgLTc3Niw2ICs3NzYsMzYzIEBA IFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFO RCBwcmljZSA8IE5FWFQocHJpY2UsIDEpCiApOwogCistLQorLS0gRklSU1QvTEFTVCBuYXZpZ2F0 aW9uCistLQorCistLSBUZXN0IGRhdGEgZm9yIEZJUlNUL0xBU1Q6IHZhbHVlcyBjeWNsZSBiYWNr IHNvIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkKKy0tIGF0IHNwZWNpZmljIHBvc2l0aW9ucy4KK0NS RUFURSBURU1QIFRBQkxFIHJwcl9uYXYgKGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBy cHJfbmF2IFZBTFVFUyAoMSwxMCksKDIsMjApLCgzLDMwKSwoNCwxMCksKDUsNTApLCg2LDEwKTsK KworLS0gRklSU1QodmFsKSA9IGNvbnN0YW50OiBCIG1hdGNoZXMgd2hlbiBtYXRjaF9zdGFydCBo YXMgdmFsPTEwCistLSBtYXRjaF9zdGFydD0xKDEwKTogQT1pZDEsIEI9aWQyLCBGSVJTVCh2YWwp PTEwIOKGkiBtYXRjaCB7MSwyfQorLS0gbWF0Y2hfc3RhcnQ9MygzMCk6IEE9aWQzLCBCPWlkNCwg RklSU1QodmFsKT0zMOKJoDEwIOKGkiBubyBtYXRjaAorLS0gbWF0Y2hfc3RhcnQ9NCgxMCk6IEE9 aWQ0LCBCPWlkNSwgRklSU1QodmFsKT0xMCDihpIgbWF0Y2ggezQsNX0KK1NFTEVDVCBpZCwgdmFs LCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWwKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gMTAKKyk7CisKKy0tIExBU1QodmFsKTogYWx3YXlz IGVxdWFscyBjdXJyZW50IHJvdydzIHZhbCAob2Zmc2V0IDAgZGVmYXVsdCkKKy0tIEVxdWl2YWxl bnQgdG86IEIgQVMgdmFsID4gMTUKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZh bCkgPiAxNQorKTsKKworLS0gUmVsdWN0YW50IEErPyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZh bCk6IGZpbmQgc2hvcnRlc3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2 ZSB0aGUgc2FtZSB2YWwuCistLSBtYXRjaF9zdGFydD0xKDEwKTogcmVsdWN0YW50IHRyaWVzIEIg ZWFybHk6CistLSAgIGlkMigyMOKJoDEwKSwgaWQzKDMw4omgMTApLCBpZDQoMTA9MTApIOKGkiBt YXRjaCB7MSwyLDMsNH0KKy0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTDiiaA1MCkg4oaSIG5v IG1hdGNoCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoQSs/IEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2 YWwpCispOworCistLSBHcmVlZHkgQSsgd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBmaW5k IGxvbmdlc3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUgc2Ft ZSB2YWwuCistLSBtYXRjaF9zdGFydD0xKDEwKTogZ3JlZWR5IEEgZWF0cyBhbGwsIEIgdHJpZXMg bGFzdDoKKy0tICAgaWQ2KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDQsNSw2fQorU0VMRUNUIGlk LCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCispOworCistLSBTS0lQ IFRPIE5FWFQgUk9XIHdpdGggRklSU1QodmFsKSA9IExBU1QodmFsKTogb3ZlcmxhcHBpbmcgbWF0 Y2ggYXR0ZW1wdHMuCistLSBXaXRoIE9ORSBST1cgUEVSIE1BVENILCBlYWNoIHJvdyBzaG93cyBv bmx5IGl0cyBmaXJzdCBtYXRjaCByZXN1bHQuCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBO RVhUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg RklSU1QodmFsKSA9IExBU1QodmFsKQorKTsKKworLS0gRklSU1QvTEFTVCAyLWFyZyBvZmZzZXQg Zm9ybQorLS0KKy0tIEZJUlNUKHZhbCwgMCkgPSBGSVJTVCh2YWwpOiBtYXRjaF9zdGFydCByb3cK K1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCwgMCkgPSAxMAorKTsKKworLS0gRklS U1QodmFsLCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJvdyAoc2Vjb25kIHJvdyBvZiBtYXRjaCkKKy0t IG1hdGNoX3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9MjAsIEIgbmVlZHMgdmFsPTIwIOKGkiBp ZDIoMjApIG1hdGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1QodmFs LDEpPTEwLCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0KDEwKSBtYXRjaAorU0VMRUNUIGlkLCB2YWws IGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZS T00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRS VUUsIEIgQVMgdmFsID0gRklSU1QodmFsLCAxKQorKTsKKworLS0gRklSU1QodmFsLCA5OSk6IG9m ZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2Ug4oaSIE5VTEwsIG5vIG1hdGNoCitTRUxFQ1QgaWQsIHZh bCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwsIDk5KSBJUyBO T1QgTlVMTAorKTsKKworLS0gTEFTVCh2YWwsIDApID0gTEFTVCh2YWwpOiBjdXJyZW50IHJvdwor U0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAg IERFRklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDApID4gMTUKKyk7CisKKy0tIExBU1Qo dmFsLCAxKTogb25lIHJvdyBiYWNrIGZyb20gY3VycmVudCAocHJldmlvdXMgbWF0Y2ggcm93KQor LS0gQXQgQiBldmFsdWF0aW9uIG9uIGlkMjogTEFTVCh2YWwsMSkgPSB2YWwgYXQgaWQxID0gMTAK Ky0tIEIgbWF0Y2hlcyB3aGVuIHByZXZpb3VzIHJvdyB2YWwgPCAzMAorU0VMRUNUIGlkLCB2YWws IGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZS T00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRS VUUsIEIgQVMgTEFTVCh2YWwsIDEpIDwgMzAKKyk7CisKKy0tIExBU1QodmFsLCA5OSk6IG9mZnNl dCBiZWZvcmUgbWF0Y2hfc3RhcnQg4oaSIE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QodmFsLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisK Ky0tIEVycm9yOiBOVUxMIG9mZnNldAorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBG Uk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgRklSU1QodmFsLCBOVUxMOjppbnQ4KSBJUyBOVUxMCispOworCist LSBFcnJvcjogbmVnYXRpdmUgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHZhbCwgLTEpIElTIE5VTEwKKyk7CisKKy0tIEZJUlNU L0xBU1Qgb3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NFTEVDVCBmaXJzdCh2 YWwpIEZST00gcnByX25hdjsKK1NFTEVDVCBsYXN0KHZhbCkgRlJPTSBycHJfbmF2OworU0VMRUNU IGZpcnN0KHZhbCwgMSkgRlJPTSBycHJfbmF2OworCistLSBGdW5jdGlvbmFsIG5vdGF0aW9uOiBz aG91bGQgYWNjZXNzIGNvbHVtbiwgbm90IFJQUiBuYXZpZ2F0aW9uCitDUkVBVEUgVEVNUCBUQUJM RSBycHJfbmFtZXMgKHByZXYgaW50LCBuZXh0IGludCwgZmlyc3QgdGV4dCwgbGFzdCB0ZXh0KTsK K0lOU0VSVCBJTlRPIHJwcl9uYW1lcyBWQUxVRVMgKDEsIDIsICdKb2UnLCAnQmxvdycpOworU0VM RUNUIHByZXYoZiksIG5leHQoZiksIGZpcnN0KGYpLCBsYXN0KGYpIEZST00gcnByX25hbWVzIGY7 CitEUk9QIFRBQkxFIHJwcl9uYW1lczsKKworLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihG SVJTVCh2YWwpLCBNKQorLS0gcnByX25hdjogKDEsMTApLCgyLDIwKSwoMywzMCksKDQsMTApLCg1 LDUwKSwoNiwxMCkKKy0tIFBSRVYoRklSU1QodmFsKSwgMSk6IHRhcmdldCA9IG1hdGNoX3N0YXJ0 ICsgMCAtIDEgPSBtYXRjaF9zdGFydCAtIDEKKy0tIEF0IG1hdGNoX3N0YXJ0PTE6IHRhcmdldD0w IOKGkiBvdXQgb2YgcmFuZ2Ug4oaSIE5VTEwKKy0tIEF0IG1hdGNoX3N0YXJ0PTM6IHRhcmdldD0y KHZhbD0yMCkg4oaSIDIwID4gMCDihpIgdHJ1ZQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJF VihGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CisKKy0tIE5FWFQoRklSU1QodmFsLCAxKSwgMSk6IHRh cmdldCA9IG1hdGNoX3N0YXJ0ICsgMSArIDEgPSBtYXRjaF9zdGFydCArIDIKKy0tIEF0IG1hdGNo X3N0YXJ0PTEsIEIgb24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIOKGkiB0cnVl CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCwgMSksIDEpID4gMAorKTsK KworLS0gUFJFVihMQVNUKHZhbCksIDIpOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gMCAtIDIgPSBj dXJyZW50cG9zIC0gMgorLS0gU2FtZSBiYWNrd2FyZCByZWFjaCBhcyBQUkVWKHZhbCwgMikKK1NF TEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBE RUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFTVCh2YWwpLCAyKSBJUyBOT1QgTlVMTAorKTsK KworLS0gTkVYVChMQVNUKHZhbCwgMSksIDIpOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gMSArIDIg PSBjdXJyZW50cG9zICsgMQorLS0gTG9va3MgMSByb3cgYWhlYWQ6IHNhbWUgYXMgTkVYVCh2YWws IDEpCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsLCAxKSwgMikgSVMgTk9U IE5VTEwKKyk7CisKKy0tIENvbXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAo UFJFViBmYXIgYmFjaykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitG Uk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBC KykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgOTkpIElTIE5P VCBOVUxMCispOworCistLSBDb21wb3VuZDogb3V0ZXIgb2Zmc2V0IGJleW9uZCBwYXJ0aXRpb24g KE5FWFQgZmFyIGZvcndhcmQpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDk5KSBJ UyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlvbmQgbWF0Y2gg cmFuZ2UgKEZJUlNUIG9mZnNldCB0b28gbGFyZ2UpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNU KHZhbCwgOTkpLCAxKSBJUyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNl dCBiZXlvbmQgbWF0Y2ggcmFuZ2UgKExBU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBC IEFTIE5FWFQoTEFTVCh2YWwsIDk5KSwgMSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIENvbXBvdW5k OiBOVUxMIG91dGVyIG9mZnNldCAocnVudGltZSBlcnJvcikKK1NFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QodmFsKSwgTlVMTDo6aW50 OCkgSVMgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IG5lZ2F0aXZlIG91dGVyIG9mZnNldCAocnVu dGltZSBlcnJvcikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2 IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklO RSBBIEFTIE5FWFQoTEFTVCh2YWwpLCAtMSkgSVMgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGRl ZmF1bHQgb2Zmc2V0cyBvbiBib3RoIHNpZGVzCistLSBQUkVWKEZJUlNUKHZhbCkpOiBpbm5lcj0w IChtYXRjaF9zdGFydCksIG91dGVyPTEg4oaSIHRhcmdldCA9IG1hdGNoX3N0YXJ0IC0gMQorU0VM RUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpKSBJUyBOT1QgTlVMTAorKTsKKwor LS0gTkVYVChMQVNUKHZhbCkpOiBpbm5lcj0wIChjdXJyZW50cG9zKSwgb3V0ZXI9MSDihpIgdGFy Z2V0ID0gY3VycmVudHBvcyArIDEKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2 YWwpKSBJUyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIE5VTEwgb2Zmc2V0IChy dW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgUFJFVihGSVJTVCh2YWwsIE5VTEw6OmludDgpLCAxKSBJUyBOVUxMCispOworCist LSBDb21wb3VuZDogaW5uZXIgbmVnYXRpdmUgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZh bCwgLTEpLCAxKSBJUyBOVUxMCispOworCistLSBDb21wb3VuZCArIGhvc3QgdmFyaWFibGUgb2Zm c2V0cworUFJFUEFSRSB0ZXN0X2NvbXBvdW5kX29mZnNldChpbnQ4LCBpbnQ4KSBBUworU0VMRUNU IGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwsICQxKSwgJDIpIElTIE5PVCBOVUxMCisp OworRVhFQ1VURSB0ZXN0X2NvbXBvdW5kX29mZnNldCgwLCAxKTsKK0VYRUNVVEUgdGVzdF9jb21w b3VuZF9vZmZzZXQoMSwgMSk7CitERUFMTE9DQVRFIHRlc3RfY29tcG91bmRfb2Zmc2V0OworCist LSBDb21wb3VuZCArIFNLSVAgVE8gTkVYVCBST1c6IG92ZXJsYXBwaW5nIG1hdGNoZXMgd2l0aCBQ UkVWKEZJUlNUKCkpCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt ZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpLCAxKSA+ IDAKKyk7CisKKy0tIENvbXBvdW5kICsgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFRFTVAg VEFCTEUgcnByX25hdl9wYXJ0IChnaWQgaW50LCBpZCBpbnQsIHZhbCBpbnQpOworSU5TRVJUIElO VE8gcnByX25hdl9wYXJ0IFZBTFVFUworICAgICgxLDEsMTApLCgxLDIsMjApLCgxLDMsMzApLAor ICAgICgyLDEsNDApLCgyLDIsNTApLCgyLDMsNjApOworU0VMRUNUIGdpZCwgaWQsIHZhbCwgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBy cHJfbmF2X3BhcnQgV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBnaWQgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTkVYVChGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CitE Uk9QIFRBQkxFIHJwcl9uYXZfcGFydDsKKworLS0gUmV2ZXJzZSBuZXN0aW5nOiBGSVJTVCB3cmFw cGluZyBQUkVWIGlzIHByb2hpYml0ZWQKK1NFTEVDVCBpZCwgdmFsIEZST00gcnByX25hdiBXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBGSVJTVChQUkVWKHZhbCkpID4gMAorKTsKKworLS0gUmV2ZXJzZSBuZXN0 aW5nOiBMQVNUIHdyYXBwaW5nIE5FWFQgaXMgcHJvaGliaXRlZAorU0VMRUNUIGlkLCB2YWwgRlJP TSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQikK KyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2YWwpKSA+IDAKKyk7CisKK0RS T1AgVEFCTEUgcnByX25hdjsKKwogLS0KIC0tIFNLSVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBGcmFt ZSBib3VuZGFyeQogLS0KQEAgLTExMjksNiArMTQ4NiwyMyBAQCBGUk9NIHJlc3VsdCBXSEVSRSBt YXRjaF9sZW4gPiAwOwogUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CiBSRVNFVCBqaXQ7CiAKKy0tIEpJ VCBjb21wb3VuZCBuYXZpZ2F0aW9uIHRlc3QKK1NFVCBqaXQgPSBvbjsKK1NFVCBqaXRfYWJvdmVf Y29zdCA9IDA7CitTRUxFQ1QgY291bnQoKikgQVMgbWF0Y2hlZF9yb3dzCitGUk9NICgKKyBTRUxF Q1QgdiwgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbgorIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMDApIEFTIHQodikKKyBXSU5ET1cgdyBBUyAoCisgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgUEFUVEVSTiAoQSBCKykKKyAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJ UlNUKHYpLCAxKSA+IDAKKyApCispIHN1YiBXSEVSRSBtYXRjaF9sZW4gPiAwOworUkVTRVQgaml0 X2Fib3ZlX2Nvc3Q7CitSRVNFVCBqaXQ7CisKIC0tCiAtLSBJR05PUkUgTlVMTFMKIC0tCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggM2FjY2VjYjczYmEuLmY5ZDVhYTg5ZDdhIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBXSU5ET1cgdyBB UyAoCiBEUk9QIFRBQkxFIHJwcl9ib3VuZHM7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTmF2aWdhdGlvbiBGdW5j dGlvbnMgVGVzdHMgKFBSRVYgLyBORVhUKQorLS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMg KFBSRVYgLyBORVhUIC8gRklSU1QgLyBMQVNUKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIApAQCAtMTI3OCw2ICsxMjc4 LDUzIEBAIFdJTkRPVyB3IEFTICgKIE9SREVSIEJZIGlkOwogLS0gRXhwZWN0ZWQ6IEVSUk9SOiBu ZXh0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCiAKKy0tIEZJUlNUIGZ1bmN0 aW9uIC0gcmVmZXJlbmNlIG1hdGNoX3N0YXJ0IHJvdworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCop IE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAor ICAgICAgICBCIEFTIHZhbCA+IEZJUlNUKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBMQVNU IGZ1bmN0aW9uIHdpdGhvdXQgb2Zmc2V0IC0gZXF1aXZhbGVudCB0byBjdXJyZW50IHJvdydzIHZh bHVlCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2 CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgTEFTVCh2YWwpID4gUFJF Vih2YWwpCispCitPUkRFUiBCWSBpZDsKKworLS0gRklSU1QgYW5kIExBU1QgY29tYmluZWQKK1NF TEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyB2YWwgPiBGSVJTVCh2YWwpIEFORCBM QVNUKHZhbCkgPiBQUkVWKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBGSVJTVCBmdW5jdGlv biBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQorU0VMRUNUIEZJUlNUKGlkKSwg aWQsIHZhbCBGUk9NIHJwcl9uYXY7CistLSBFeHBlY3RlZDogRVJST1I6IGZpcnN0IGNhbiBvbmx5 IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCisKKy0tIExBU1QgZnVuY3Rpb24gY2Fubm90IGJl IHVzZWQgb3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBMQVNUKGlkKSwgaWQsIHZhbCBGUk9N IHJwcl9uYXY7CistLSBFeHBlY3RlZDogRVJST1I6IGxhc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBh IERFRklORSBjbGF1c2UKKwogRFJPUCBUQUJMRSBycHJfbmF2OwogCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE1NDgs NiArMTU5NSw2NiBAQCBXSU5ET1cgdyBBUyAoCiBTRUxFQ1QgKiBGUk9NIHJwcl9zZXJpYWxfdjgg T1JERVIgQlkgaWQ7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfdjgnOjpyZWdj bGFzcyk7CiAKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogUFJFViB3aXRo IG9mZnNldAorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYxIEFTCitTRUxFQ1QgaWQsIHZhbCwg Y291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5F IEEgQVMgVFJVRSwgQiBBUyB2YWwgPiBQUkVWKHZhbCwgMikpOworU0VMRUNUIHBnX2dldF92aWV3 ZGVmKCdycHJfc2VyaWFsX25hdjEnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rp b24gc2VyaWFsaXphdGlvbjogRklSU1QgYW5kIExBU1QKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxf bmF2MiBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFs CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChB IEIrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsKSA8IExB U1QodmFsLCAxKSk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Mic6OnJl Z2NsYXNzKTsKKworLS0gTmF2aWdhdGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBjb21wb3Vu ZCBQUkVWKEZJUlNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjMgQVMKK1NFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsLCAxKSwgMikgPiAwKTsKK1NF TEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYzJzo6cmVnY2xhc3MpOworCistLSBO YXZpZ2F0aW9uIGZ1bmN0aW9uIHNlcmlhbGl6YXRpb246IGNvbXBvdW5kIE5FWFQoTEFTVCgpKQor Q1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXY0IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJV RSwgQiBBUyBORVhUKExBU1QodmFsKSwgMikgSVMgTk9UIE5VTEwpOworU0VMRUNUIHBnX2dldF92 aWV3ZGVmKCdycHJfc2VyaWFsX25hdjQnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVu Y3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitDUkVBVEUgVklFVyBy cHJfc2VyaWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00g cnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAg UEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYo TEFTVCh2YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFs X25hdjUnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlv bjogY29tcG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXY2IEFT CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisg ICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDMpID4g MCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6OnJlZ2NsYXNzKTsK KwogLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxz CiBDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcKQEAgLTIxMjEsNiArMjIyOCwzMyBAQCBPUkRFUiBCWSBpZDsKIAogRFJP UCBUQUJMRSBycHJfbnVsbDsKIAorLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogaW5uZXIgbmF2IG11 c3QgYmUgZGlyZWN0IGFyZyAobm90IG5lc3RlZCBpbiBleHByZXNzaW9uKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiArIEZJUlNUKHYpKSA+IDAK Kyk7CisKKy0tIEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZAorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIEZJUlNUKEZJUlNUKHYp KSA+IDAKKyk7CisKKy0tIFRyaXBsZSBuZXN0aW5nOiBwcm9oaWJpdGVkICgzLWxldmVsIGRlZXAg bmF2aWdhdGlvbikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyBQUkVWKEZJUlNUKFBSRVYodikpKSA+IDAKKyk7CisKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gV2luZG93IERlZHVw bGljYXRpb24gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmlu ZGV4IDUwODJjYzJiNWRlLi5hMzc4OWU5MjYzMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBs YWluLnNxbApAQCAtMzYsNyArMzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRp b25zCiAtLSAgIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAgTGFyZ2UgU2NhbGUg U3RhdGlzdGljcyBWZXJpZmljYXRpb24KLS0tICAgTmF2IE1hcmsgTG9va2JhY2sgKHR1cGxlc3Rv cmUgdHJpbSkKKy0tICAgTmF2IE1hcmsgTG9va2JhY2svTG9va2FoZWFkICh0dXBsZXN0b3JlIHRy aW0pCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIAogLS0gRmlsdGVyIGZ1bmN0aW9uIHRvIG5vcm1hbGl6ZSBwbGF0Zm9ybS1k ZXBlbmRlbnQgbWVtb3J5IHZhbHVlcyAobm90IE5GQSBzdGF0aXN0aWNzKS4KQEAgLTcwNSw2ICs3 MDUsNzYgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICBDIEFTIHYgJSAyMSBJTiAoMywgNSwg OCwgMTAsIDEzLCAxNSwgMTgsIDIwKQogKTsnKTsKIAorLS0gTm8gYWJzb3JwdGlvbiB3aGVuIERF RklORSB1c2VzIEZJUlNUIChtYXRjaF9zdGFydC1kZXBlbmRlbnQpCistLSBTYW1lIHBhdHRlcm4g YXMgcnByX2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVkIGJ1dCB3aXRoIEZJUlNUIGluIERFRklORS4K Ky0tIENvbXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSAwIGhlcmUgdnMgPjAgYWJvdmUu CitDUkVBVEUgVklFVyBycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBC KQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwIEFORCB2ID4gRklS U1QodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfbm9fYWJzb3JiX2ZpcnN0JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMCBBTkQgdiA+IEZJUlNUKHYpCispOycpOworCistLSBBYnNvcnB0aW9uIHByZXNlcnZl ZCB3aGVuIERFRklORSB1c2VzIG9ubHkgTEFTVCB3aXRob3V0IG9mZnNldAorLS0gTEFTVCh2KSBp cyBtYXRjaF9zdGFydC1pbmRlcGVuZGVudCAoYWx3YXlzIGN1cnJlbnRwb3MpLCBzbyBhYnNvcnB0 aW9uCistLSByZW1haW5zIGFjdGl2ZS4gIENvbXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBi ZSA+MCwgbGlrZSB0aGUKKy0tIFBSRVYtb25seSBjYXNlIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnBy X2V2X2N0eF9hYnNvcmJfbGFzdCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYg JSA1IDw+IDAsIEIgQVMgTEFTVCh2KSAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9sYXN0 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBB UyB2ICUgNSA8PiAwLCBCIEFTIExBU1QodikgJSA1ID0gMAorKTsnKTsKKworLS0gTm8gYWJzb3Jw dGlvbiB3aXRoIGNvbXBvdW5kIFBSRVYoRklSU1QoKSkgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkK K0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfbm9fYWJzb3JiX2NvbXBvdW5kIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEr IEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYo RklSU1QodiksIDEpIElTIE5PVCBOVUxMCispOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMCBBTkQgUFJFVihGSVJTVCh2KSwgMSkgSVMgTk9UIE5VTEwKKyk7Jyk7CisK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjQ3 OCw5ICsyNTQ4LDEwIEBAIFNFTEVDVCAqIEZST00gKAogKSB0IFdIRVJFIGNudCA+IDA7CiAKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gTmF2IE1hcmsgTG9va2JhY2sgVGVzdHMKLS0tIFZlcmlmaWVzIHBsYW5uZXItY29t cHV0ZWQgbmF2aWdhdGlvbiBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KLS0tIExvb2tiYWNr OiBob3cgZmFyIGJhY2sgZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gTmF2IE1hcmsg TG9va2JhY2svTG9va2FoZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5h dmlnYXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBm YXIgYmFjayBmcm9tIGN1cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5kIFBSRVZfTEFTVC9O RVhUX0xBU1QpLgorLS0gTG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFy dCAoRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0g UHJlcGFyZSBzdGF0ZW1lbnQgZm9yIGhvc3QgdmFyaWFibGUgb2Zmc2V0IHRlc3QgYmVsb3cKQEAg LTI1NDcsMyArMjYxOCwxNjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZf b2Zmc2V0X3ByZXAoMik7CiBSRVNFVCBwbGFuX2NhY2hlX21vZGU7CiBERUFMTE9DQVRFIHJwcl9u YXZfb2Zmc2V0X3ByZXA7CiAKKy0tIEZJUlNUKHYpOiByZXRhaW4gYWxsIChyZWZlcmVuY2VzIG1h dGNoX3N0YXJ0IHJvdykKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIHYgPiBGSVJTVCh2KQorKTsKKworLS0gTEFTVCh2LCAx KTogYmFja3dhcmQgcmVhY2ggMSwgc2FtZSBhcyBQUkVWKHYsIDEpCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYs IDEpID4gMAorKTsKKworLS0gTEFTVCh2KSB3aXRob3V0IG9mZnNldCArIFBSRVYodik6IG5vIG1h dGNoX3N0YXJ0IGRlcGVuZGVuY3ksIG9mZnNldCAxCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYpID4gUFJFVih2 KQorKTsKKworLS0gQ29tcG91bmQgUFJFVihGSVJTVCh2YWwsIDEpLCAyKTogbG9va2JhY2sgZnJv bSBtYXRjaF9zdGFydCwgZmlyc3RPZmZzZXQgPSAxLTIgPSAtMQorRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihGSVJT VCh2LCAxKSwgMikgPiAwCispOworCistLSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCksIDMpOiBm aXJzdE9mZnNldCA9IDArMyA9IDMKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiksIDMpID4gMAorKTsK KworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCksIDIpOiBsb29rYmFjayA9IDArMiA9IDIKK0VY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklO RSBBIEFTIFBSRVYoTEFTVCh2KSwgMikgPiAwCispOworCistLSBDb21wb3VuZCBORVhUKExBU1Qo dmFsLCAxKSwgMyk6IGxvb2tiYWNrID0gbWF4KDEtMywgMCkgPSAwCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExB U1QodiwgMSksIDMpID4gMAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0p OiBjb25zdGFudCBuZWFyLW92ZXJmbG93IChOK00ganVzdCBmaXRzIGludDY0KQorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihMQVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDMpLCA0NjExNjg2MDE4NDI3Mzg3OTAzKSBJ UyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25z dGFudCBvdmVyZmxvdyAtPiByZXRhaW4gYWxsCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4 NjAxODQyNzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOworCist LSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBsb29rYWhlYWQgb3Zl cmZsb3cgLT4gbm8gdHJpbSBpbXBhY3QKKy0tIE4gKyBNIG92ZXJmbG93cyBpbnQ2NCwgYnV0IHRh cmdldCBpcyBmb3J3YXJkIGZyb20gbWF0Y2hfc3RhcnQgc28gaXQgbmV2ZXIKKy0tIGNvbnN0cmFp bnMgdHJpbS4gIExvb2thaGVhZCByZW1haW5zIGF0IGRlZmF1bHQgKDApLgorRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw KSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVY VChGSVJTVCh2LCA0NjExNjg2MDE4NDI3Mzg3OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMg Tk9UIE5VTEwKKyk7CisKKy0tIENvbXBvdW5kIFBSRVYoTEFTVCh2YWwsICQxKSwgJDIpOiBwYXJh bWV0ZXIgbG9va2JhY2sgb3ZlcmZsb3cgLT4gcmV0YWluIGFsbAorLS0gRVhQTEFJTiBzaG93cyAi cnVudGltZSIgKHBsYW4tbGV2ZWwpOyBFWFBMQUlOIEFOQUxZWkUgc2hvd3MgInJldGFpbiBhbGwi CistLSAoZXhlY3V0b3ItcmVzb2x2ZWQpLgorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2tiYWNr KGludDgsIGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgUFJFVihMQVNUKHYsICQxKSwgJDIpIElTIE5PVCBOVUxMCispOworU0VUIHBsYW5fY2Fj aGVfbW9kZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VU RSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKDQ2MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0 MjczODc5MDQpOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKKyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soNDYxMTY4NjAxODQy NzM4NzkwNCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitE RUFMTE9DQVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2s7CisKKy0tIENvbXBvdW5kIE5FWFQoRklS U1QodmFsLCAkMSksICQyKTogcGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmlt IGltcGFjdAorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1Qo diwgJDEpLCAkMikgSVMgTk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2Vf Z2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKKyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKDQ2MTE2ODYw MTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworUkVTRVQgcGxhbl9jYWNoZV9tb2Rl OworREVBTExPQ0FURSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZDsKKworLS0gUFJFVih2KSArIFBS RVYodiwgJDEpOiBORUVEU19FVkFMIHBhdGggbXVzdCBhY2NvdW50IGZvciBpbXBsaWNpdCBsb29r YmFjaz0xCistLSBQcmV2aW91c2x5LCBldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlciBza2lwcGVk IFBSRVYodikgd2hlbiBvZmZzZXRfYXJnIHdhcworLS0gTlVMTCwgY2F1c2luZyBtYXhPZmZzZXQ9 MCB3aGVuICQxPTAsIHdoaWNoIHdvdWxkIHRyaW0gdGhlIHJvdyBuZWVkZWQgYnkKKy0tIFBSRVYo dikuICBWZXJpZnkgdGhpcyBleGVjdXRlcyB3aXRob3V0ICJjYW5ub3QgZmV0Y2ggcm93IGJlZm9y ZSBtYXJrIiBlcnJvci4KK1BSRVBBUkUgdGVzdF9wcmV2X2ltcGxpY2l0X29mZnNldChpbnQ4KSBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodikg SVMgTk9UIE5VTEwgQU5EIFBSRVYodiwgJDEpIElTIE5PVCBOVUxMCispOworRVhFQ1VURSB0ZXN0 X3ByZXZfaW1wbGljaXRfb2Zmc2V0KDApOworREVBTExPQ0FURSB0ZXN0X3ByZXZfaW1wbGljaXRf b2Zmc2V0OworCistLSBSdW50aW1lIGVycm9yOiBuZWdhdGl2ZSBvZmZzZXQgYXQgZXhlY3V0aW9u IHRpbWUKK1BSRVBBUkUgdGVzdF9ydW50aW1lX25lZ19vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1Qg TlVMTAorKTsKK0VYRUNVVEUgdGVzdF9ydW50aW1lX25lZ19vZmZzZXQoLTEpOworREVBTExPQ0FU RSB0ZXN0X3J1bnRpbWVfbmVnX29mZnNldDsKKworLS0gUnVudGltZSBlcnJvcjogbnVsbCBvZmZz ZXQgYXQgZXhlY3V0aW9uIHRpbWUKK1BSRVBBUkUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0KGlu dDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw KSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJF Vih2LCAkMSkgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfcnVudGltZV9udWxsX29mZnNl dChOVUxMKTsKK0RFQUxMT0NBVEUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0OwpkaWZmIC0tZ2l0 IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAppbmRleCAxNmRlMTQyMTMwMi4uYTNiMWE4NTVjZGMgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CkBAIC03NDcsNiArNzQ3LDggQEAgRXJyb3JEYXRhCiBFcnJvclNhdmVD b250ZXh0CiBFc3RpbWF0ZURTTUZvcmVpZ25TY2FuX2Z1bmN0aW9uCiBFc3RpbWF0aW9uSW5mbwor RXZhbE5hdkZpcnN0Q29udGV4dAorRXZhbE5hdk1heENvbnRleHQKIEV2ZW50VHJpZ2dlckNhY2hl RW50cnkKIEV2ZW50VHJpZ2dlckNhY2hlSXRlbQogRXZlbnRUcmlnZ2VyQ2FjaGVTdGF0ZVR5cGUK QEAgLTE4MDEsNiArMTgwMyw4IEBAIE5hbWVkTFdMb2NrVHJhbmNoZVJlcXVlc3QKIE5hbWVkVHVw bGVzdG9yZVNjYW4KIE5hbWVkVHVwbGVzdG9yZVNjYW5TdGF0ZQogTmFtZXNwYWNlSW5mbworTmF2 Q2hlY2tSZXN1bHQKK05hdk9mZnNldENvbnRleHQKIE5lc3RMb29wCiBOZXN0TG9vcFBhcmFtCiBO ZXN0TG9vcFN0YXRlCkBAIC0yNDc5LDYgKzI0ODMsNyBAQCBRdWV1ZVBvc2l0aW9uCiBRdWl0U2ln bmFsUmVhc29uCiBSUFJOYXZFeHByCiBSUFJOYXZLaW5kCitSUFJOYXZPZmZzZXRLaW5kCiBSQlRO b2RlCiBSQlRPcmRlckNvbnRyb2wKIFJCVHJlZQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0025-Guard-int64-overflow-bounded-frame.txt" Content-Disposition: attachment; filename="nocfbot-0025-Guard-int64-overflow-bounded-frame.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63rfw24 RnJvbSBjMzMzNDI0MzEzZmI4ZDk0ZmYwYWVmZmZiMTg5ODkwZGI3NzZmZWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTM6MzE6NDQgKzA5MDAKU3ViamVjdDogW1BBVENIIDI1LzQwXSBH dWFyZCBhZ2FpbnN0IGludDY0IG92ZXJmbG93IGluIFJQUiBib3VuZGVkIGZyYW1lIGVuZAogY29t cHV0YXRpb24KCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMTYgKysrKysr KysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IDAxZGYyYTExZTBhLi45NGYxYjI5NDFhMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMjIsNiArMjIsNyBAQAogICovCiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJleGVjdXRv ci9leGVjUlBSLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJt aXNjYWRtaW4uaCIKQEAgLTEwNDYsMTAgKzEwNDcsMTEgQEAKICAqCiAgKiAgIFdoZW4gdGhlIGZy YW1lIGlzIGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgNQogICog ICBGT0xMT1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1JvdyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9 dHJ1ZSBhbmQKLSAqICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBB ZnRlciB0aGUgYWR2YW5jZSBwaGFzZSwKKyAqICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUg dXBwZXIgYm91bmQuICBCZWZvcmUgdGhlIG1hdGNoIHBoYXNlLAogICogICBhbnkgY29udGV4dCB3 aG9zZSBtYXRjaCBoYXMgZXhjZWVkZWQgdGhlIGZyYW1lIGJvdW5kYXJ5Ci0gKiAgIChjdXJyZW50 UG9zIC0gbWF0Y2hTdGFydFJvdyA+PSBmcmFtZU9mZnNldCArIDEpIGlzIGZpbmFsaXplZCBlYXJs eS4KLSAqICAgVGhpcyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZCB0aGUg d2luZG93IGZyYW1lLgorICogICAoY3VycmVudFBvcyA+PSBtYXRjaFN0YXJ0Um93ICsgZnJhbWVP ZmZzZXQgKyAxKSBpcyBmaW5hbGl6ZWQgZWFybHkKKyAqICAgYnkgZm9yY2luZyBhIG1pc21hdGNo LiAgVGhpcyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZAorICogICB0aGUg d2luZG93IGZyYW1lLiAgVGhlIHN1bSBpcyBjbGFtcGVkIHRvIFBHX0lOVDY0X01BWCBvbiBvdmVy Zmxvdy4KICAqCiAgKiAgIE5vdGUgdGhhdCBib3VuZGVkIGZyYW1lcyBhbHNvIGRpc2FibGUgY29u dGV4dCBhYnNvcnB0aW9uIGF0IHRoZQogICogICBwbGFubmVyIGxldmVsIChzZWUgVklJSS0zKGIp KSwgc2luY2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJyZWFrcyB0aGUKQEAgLTMxNTQsNyArMzE1Niwx MiBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1 cnJlbnRQb3MsCiAJCS8qIENoZWNrIGZyYW1lIGJvdW5kYXJ5IC0gZmluYWxpemUgaWYgZXhjZWVk ZWQgKi8KIAkJaWYgKGhhc0xpbWl0ZWRGcmFtZSkKIAkJewotCQkJaW50NjQJCWN0eEZyYW1lRW5k ID0gY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxOworCQkJaW50NjQJCWN0eEZy YW1lRW5kOworCisJCQkvKiBDbGFtcCB0byBJTlQ2NF9NQVggb24gb3ZlcmZsb3cgKi8KKwkJCWlm IChwZ19hZGRfczY0X292ZXJmbG93KGN0eC0+bWF0Y2hTdGFydFJvdywgZnJhbWVPZmZzZXQgKyAx LAorCQkJCQkJCQkJJmN0eEZyYW1lRW5kKSkKKwkJCQljdHhGcmFtZUVuZCA9IFBHX0lOVDY0X01B WDsKIAogCQkJaWYgKGN1cnJlbnRQb3MgPj0gY3R4RnJhbWVFbmQpCiAJCQl7CkBAIC0zMjA0LDYg KzMyMTEsNyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGlu dDY0IGN1cnJlbnRQb3MsCiAJCSAqIGNvbnRleHQgaGVyZSBtdXN0IGJlIHdpdGhpbiBpdHMgZnJh bWUgYm91bmRhcnkuCiAJCSAqLwogCQlBc3NlcnQoIWhhc0xpbWl0ZWRGcmFtZSB8fAorCQkJICAg Y3R4LT5tYXRjaFN0YXJ0Um93ID4gUEdfSU5UNjRfTUFYIC0gZnJhbWVPZmZzZXQgLSAxIHx8CiAJ CQkgICBjdXJyZW50UG9zIDwgY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxKTsK IAogCQluZmFfYWR2YW5jZSh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9zKTsKLS0gCjIuNTAuMSAo QXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0026-Fix-error-message-style.txt" Content-Disposition: attachment; filename="nocfbot-0026-Fix-error-message-style.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63wlc25 RnJvbSBmM2Q3Y2I0MDI5OGVlMzNmYTM3YjViZDc1YzE3YWQyY2I3ZTIwZmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTE6MTU6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIIDI2LzQwXSBG aXggUlBSIGVycm9yIG1lc3NhZ2Ugc3R5bGU6IGhpbnQgZm9ybWF0LCB0ZXJtaW5vbG9neSwKIGNh cGl0YWxpemF0aW9uCgpSZW1vdmUgY29sb24gaW4gZXJyaGludCAiVXNlOiBST1dTIGluc3RlYWQi IC0+ICJVc2UgUk9XUyBpbnN0ZWFkLiIKYW5kIGFkZCBtaXNzaW5nIHRyYWlsaW5nIHBlcmlvZC4g IFNob3J0ZW4gInJvdyBwYXR0ZXJuIGRlZmluaXRpb24KdmFyaWFibGUgbmFtZSIgdG8gIkRFRklO RSB2YXJpYWJsZSIgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIKZXJyb3IgbWVzc2FnZXMuICBD YXBpdGFsaXplIG5hdmlnYXRpb24gZnVuY3Rpb24gbmFtZXMgaW4gc3R1YgplcnJvciBtZXNzYWdl cyAocHJldiAtPiBQUkVWLCBldGMuKSB0byBtYXRjaCBTUUwgc3RhbmRhcmQga2V5d29yZApzdHls ZSB1c2VkIGVsc2V3aGVyZSBpbiB0aGUgcGFyc2VyLgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYyAgICAgICAgIHwgIDYgKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvd2lu ZG93ZnVuY3MuYyAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2Jhc2Uub3V0IHwgMTIgKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE3 IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwppbmRl eCAwNTA3MGNiMDRiYi4uOGZiZTEyZTE1MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAgLTc4 LDcgKzc4LDcgQEAgdHJhbnNmb3JtUlBSKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNl ICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9XSU5ET1dJTkdfRVJST1IpLAogCQkJCSBlcnJtc2coIkZSQU1FIG9wdGlvbiBHUk9V UFMgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQi KSwKLQkJCQkgZXJyaGludCgiVXNlOiBST1dTIGluc3RlYWQiKSwKKwkJCQkgZXJyaGludCgiVXNl IFJPV1MgaW5zdGVhZC4iKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKIAkJCQkJ CQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA+PSAwID8KIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVM b2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24pKSk7CkBAIC04Niw3ICs4Niw3IEBAIHRyYW5zZm9y bVJQUihQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2lu ZGVmLAogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VS Uk9SKSwKIAkJCQkgZXJybXNnKCJGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3 aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiKSwKLQkJCQkgZXJyaGludCgiVXNl OiBST1dTIGluc3RlYWQiKSwKKwkJCQkgZXJyaGludCgiVXNlIFJPV1MgaW5zdGVhZC4iKSwKIAkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2Nh dGlvbiA+PSAwID8KIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA6IHdpbmRlZi0+bG9j YXRpb24pKSk7CkBAIC0zMjksNyArMzI5LDcgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAJCQlp ZiAoIXN0cmNtcChuLCBuYW1lKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gZGVmaW5p dGlvbiB2YXJpYWJsZSBuYW1lIFwiJXNcIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIGluIERFRklO RSBjbGF1c2UiLAorCQkJCQkJIGVycm1zZygiREVGSU5FIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJz IG1vcmUgdGhhbiBvbmNlIiwKIAkJCQkJCQkJbmFtZSksCiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIHIpKSkpOwogCQl9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC93aW5kb3dmdW5jcy5jCmluZGV4IDQyMGE0OTYyMzk1Li5mYjk2NmNhZTQzYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKQEAgLTc0MCw3ICs3NDAsNyBAQCB3aW5kb3dfcHJl dihQR19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkg YmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOworCQkJIGVycm1zZygiUFJFVigpIGNhbiBv bmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJ CS8qIG5vdCByZWFjaGVkICovCiB9CiAKQEAgLTc1NCw3ICs3NTQsNyBAQCB3aW5kb3dfbmV4dChQ R19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJuZXh0KCkgY2FuIG9ubHkgYmUg dXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOworCQkJIGVycm1zZygiTkVYVCgpIGNhbiBvbmx5 IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8q IG5vdCByZWFjaGVkICovCiB9CiAKQEAgLTc2OCw3ICs3NjgsNyBAQCB3aW5kb3dfcHJldl9vZmZz ZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygicHJldigpIGNhbiBvbmx5 IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIlBSRVYoKSBjYW4g b25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCkBAIC03ODIsNyArNzgyLDcgQEAgd2luZG93X25leHRf b2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIm5leHQoKSBjYW4g b25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJORVhUKCkg Y2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxM KCk7CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtNzk2LDcgKzc5Niw3IEBAIHdpbmRvd19m aXJzdChQR19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJmaXJzdCgpIGNhbiBv bmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIkZJUlNUKCkg Y2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxM KCk7CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODEwLDcgKzgxMCw3IEBAIHdpbmRvd19s YXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coImxhc3QoKSBjYW4gb25s eSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJMQVNUKCkgY2Fu IG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7 CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODI0LDcgKzgyNCw3IEBAIHdpbmRvd19maXJz dF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygiZmlyc3QoKSBj YW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJGSVJT VCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5f TlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9CiAKQEAgLTgzOCw2ICs4MzgsNiBAQCB3aW5k b3dfbGFzdF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygibGFz dCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2co IkxBU1QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVU VVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9iYXNlLm91dAppbmRleCAwODQ1MzE2OTY1ZS4uOTEyYmQ3YjdjNzcgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0yMzIsNyArMjMyLDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIGlkID4gMCwgQSBBUyBpZCA8 IDEwCiApOwotRVJST1I6ICByb3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEi IGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNsYXVzZQorRVJST1I6ICBERUZJTkUg dmFyaWFibGUgImEiIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UKIExJTkUgNzogICAgIERFRklORSBB IEFTIGlkID4gMCwgQSBBUyBpZCA8IDEwCiAgICAgICAgICAgICAgICAgICAgXgogLS0gRXhwZWN0 ZWQ6IEVSUk9SOiByb3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEiIGFwcGVh cnMgbW9yZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNsYXVzZQpAQCAtNDY5LDcgKzQ2OSw3IEBAIFdJ TkRPVyB3IEFTICgKIEVSUk9SOiAgRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQg d2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiBMSU5FIDU6ICAgICBSQU5HRSBC RVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTi4uLgogICAg ICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5UOiAgVXNlIFJPV1MgaW5z dGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJt aXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAtLSBHUk9VUFMgZnJh bWUgbm90IHN0YXJ0aW5nIGF0IENVUlJFTlQgUk9XCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBA IC00ODMsNyArNDgzLDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBGUkFNRSBvcHRpb24gR1JP VVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2Vk CiBMSU5FIDU6ICAgICBHUk9VUFMgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJP VU5ERUQgRk9MTE9XSS4uLgogICAgICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFk CitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0 aW9uIEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24g aXMgdXNlZAogLS0gU3RhcnRpbmcgd2l0aCBOIFBSRUNFRElORwogU0VMRUNUIENPVU5UKCopIE9W RVIgdwpAQCAtNjQwLDcgKzY0MCw3IEBAIE9SREVSIEJZIGlkOwogRVJST1I6ICBGUkFNRSBvcHRp b24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlz IHVzZWQKIExJTkUgNTogICAgIFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExP V0lORwogICAgICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5UOiAgVXNl IFJPV1MgaW5zdGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlz IG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAtLSBH Uk9VUFMgZnJhbWUgd2l0aCBSUFIgKG5vdCBwZXJtaXR0ZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09V TlQoKikgT1ZFUiB3IGFzIGNudApAQCAtNjU2LDcgKzY1Niw3IEBAIE9SREVSIEJZIGlkOwogRVJS T1I6ICBGUkFNRSBvcHRpb24gR1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVy biByZWNvZ25pdGlvbiBpcyB1c2VkCiBMSU5FIDU6ICAgICBHUk9VUFMgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgMSBGT0xMT1dJTkcKICAgICAgICAgICAgIF4KLUhJTlQ6ICBVc2U6IFJPV1MgaW5z dGVhZAorSElOVDogIFVzZSBST1dTIGluc3RlYWQuCiAtLSBFeHBlY3RlZDogRVJST1I6IEZSQU1F IG9wdGlvbiBHUk9VUFMgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uIGlzIHVzZWQKIERST1AgVEFCTEUgcnByX2ZyYW1lOwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC03MDUsNyArNzA1 LDcgQEAgT1JERVIgQlkgaWQ7CiBFUlJPUjogIEZSQU1FIG9wdGlvbiBSQU5HRSBpcyBub3QgcGVy bWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAogTElORSA2OiAgICAg UkFOR0UgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5HCiAgICAgICAgICAgICBe Ci1ISU5UOiAgVXNlOiBST1dTIGluc3RlYWQKK0hJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgogLS0g RXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVu IHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKIERST1AgVEFCTEUgcnByX3BhcnRpdGlv bjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0027-Fix-comment-typos-grammar.txt" Content-Disposition: attachment; filename="nocfbot-0027-Fix-comment-typos-grammar.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon63z7c26 RnJvbSA4MDllOGI1YzlmNzllNDBlZTExNGJlZjk2M2UyYTkwMjgwMDYwOGVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTA6MDk6NDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDI3LzQwXSBG aXggY29tbWVudCB0eXBvcywgZ3JhbW1hciwgYW5kIGluYWNjdXJhY2llcyBpbiBSUFIKIGNvZGUK Ci0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICAgIHwgIDcgKysrLS0t LQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgIHwgMjAgKysrKysrKysr Ky0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyB8ICAz ICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggOTRmMWIyOTQxYTIuLmJhZWU0NWNlNTRlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC00MTYsNyArNDE2LDYgQEAKICAqIHRoZSBub3JtYWwgbG9v cC1iYWNrICh3aGljaCBjeWNsZSBkZXRlY3Rpb24gd2lsbCBldmVudHVhbGx5IGtpbGwpIGFuZAog ICogYSBmYXN0LWZvcndhcmQgZXhpdCBjbG9uZSB0aGF0IGJ5cGFzc2VzIHRoZSBsb29wIGVudGly ZWx5LgogICogKFNlZSBJWC00KGMpIGZvciBkZXRhaWxlZCBydW50aW1lIGJlaGF2aW9yLikKLSAq ICAgICAtIEVtcHR5IG1hdGNoIGlzIGltcG9zc2libGUgc2luY2UgYm9keSBpcyBub3QgbnVsbGFi bGUKICAqCiAgKiBJVi01LiBBYnNvcmJhYmlsaXR5IEFuYWx5c2lzIChSUFJfRUxFTV9BQlNPUkJB QkxFKQogICoKQEAgLTY0NSw4ICs2NDQsOCBAQAogICogV2hlbiBwcm9jZXNzaW5nIGEgY29udGV4 dCB3aG9zZSBtYXRjaFN0YXJ0Um93IGRpZmZlcnMgZnJvbSB0aGUgc2hhcmVkCiAgKiB2YWx1ZSwg bmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMoKSB0ZW1wb3JhcmlseSBzZXRzIG5hdl9tYXRj aF9zdGFydAogICogdG8gdGhhdCBjb250ZXh0J3MgbWF0Y2hTdGFydFJvdyBhbmQgcmUtZXZhbHVh dGVzIG9ubHkgdGhlIGRlcGVuZGVudAotICogdmFyaWFibGVzLiAgTm8gcmVzdG9yZSBpcyBuZWVk ZWQgYmVjYXVzZSBjb250ZXh0cyBhcmUgb3JkZXJlZCBieQotICogbWF0Y2hTdGFydFJvdyAoYXNj ZW5kaW5nKSwgc28gbm8gbGF0ZXIgY29udGV4dCBzaGFyZXMgdGhlIGhlYWQncyB2YWx1ZS4KKyAq IHZhcmlhYmxlcy4gIFRoZSBvcmlnaW5hbCBuYXZfbWF0Y2hfc3RhcnQgYW5kIGN1cnJlbnRwb3Mg YXJlIHNhdmVkIGFuZAorICogcmVzdG9yZWQgYWZ0ZXIgcmUtZXZhbHVhdGlvbi4KICAqCiAgKiBW SS01LiBUdXBsZXN0b3JlIE1hcmsgYW5kIFRyaW0gKG5vZGVXaW5kb3dBZ2cuYykKICAqCkBAIC0y NzE1LDcgKzI3MTQsNyBAQCBuZmFfYWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCWJvb2wJCXJlbHVjdGFudCA9IFJQUkVsZW1Jc1JlbHVj dGFudChlbGVtKTsKIAogCQkvKgotCQkgKiBDbG9uZSBzdGF0ZSBmb3IgdGhlIHNlY29uZC1wcmlv cml0eSBwYXRoLiBGb3IgZ3JlZWR5LCBjbG9uZSBpcyB0aGUKKwkJICogQ2xvbmUgc3RhdGUgZm9y IHRoZSBmaXJzdC1wcmlvcml0eSBwYXRoLiBGb3IgZ3JlZWR5LCBjbG9uZSBpcyB0aGUKIAkJICog bG9vcCBzdGF0ZTsgZm9yIHJlbHVjdGFudCwgY2xvbmUgaXMgdGhlIGV4aXQgc3RhdGUuCiAJCSAq LwogCQlpZiAocmVsdWN0YW50KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4 IGNkYmUzNTZhYmQ3Li44NDllYmY4YWJiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dB Z2cuYwpAQCAtMzcwNSw4ICszNzA1LDggQEAgaWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUo V2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCXsKIAkJLyoKIAkJICogRWFybHkgY2hl Y2sgaWYgcm93IGNvdWxkIGJlIG91dCBvZiByZWR1Y2VkIGZyYW1lLiAgV2hlbiBSUFIgaXMKLQkJ ICogZW5hYmxlZCwgRVhDVURFIGNsYXVzZSBjYW5ub3QgYmUgc3BlY2lmaWVkIGFuZCB0aGUgZnJh bWUgaXMgYWx3YXlzCi0JCSAqIGNvbnRpZ3VvdXMuICBTbyB3ZSBjYW4gZG8gdGhlIGNoZWNrIGZv bGxvd2luZ3Mgc2FmZWx5LiBOb3RlLAorCQkgKiBlbmFibGVkLCBFWENMVURFIGNsYXVzZSBjYW5u b3QgYmUgc3BlY2lmaWVkIGFuZCB0aGUgZnJhbWUgaXMgYWx3YXlzCisJCSAqIGNvbnRpZ3VvdXMu ICBTbyB3ZSBjYW4gc2FmZWx5IHBlcmZvcm0gdGhlIGZvbGxvd2luZyBjaGVja3MuIE5vdGUsCiAJ CSAqIGhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgYSByb3cgaXMgb3V0IG9mIHJlZHVjZWQg ZnJhbWUgaWYKIAkJICogdGhlcmUncyBhIE5VTEwgaW4gdGhlIG1pZGRsZS4gU28gd2UgbmVlZCB0 byBjaGVjayBpdCBpbiB0aGUKIAkJICogZm9sbG93aW5nIGRvIGxvb3AuCkBAIC00MTY4LDcgKzQx NjgsNyBAQCBldmFsX25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBM aXN0ICpkZWZpbmVDbGF1c2UpCiAKIC8qCiAgKiBycHJfaXNfZGVmaW5lZAotICogcmV0dXJuIHRy dWUgaWYgUm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgZGVmaW5lZC4KKyAqIFJldHVybiB0cnVl IGlmIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIGRlZmluZWQuCiAgKi8KIHN0YXRpYyBib29s CiBycHJfaXNfZGVmaW5lZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCkBAIC00MTgyLDE0ICs0 MTgyLDE0IEBAIHJwcl9pc19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKICAqIERl dGVybWluZSB3aGV0aGVyIGEgcm93IGlzIGluIHRoZSBjdXJyZW50IHJvdydzIHJlZHVjZWQgd2lu ZG93IGZyYW1lCiAgKiBhY2NvcmRpbmcgdG8gcm93IHBhdHRlcm4gbWF0Y2hpbmcKICAqCi0gKiBU aGUgcm93IG11c3QgaGFzIGJlZW4gYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQgaXQgaXMgaW4gYSBm dWxsIHdpbmRvdyBmcmFtZQotICogYW5kIGZldGNoZWQgaXQgaW50byBzbG90LgorICogVGhlIHJv dyBtdXN0IGhhdmUgYWxyZWFkeSBiZWVuIGRldGVybWluZWQgdG8gYmUgaW4gYSBmdWxsIHdpbmRv dyBmcmFtZQorICogYW5kIGZldGNoZWQgaW50byB0aGUgc2xvdC4KICAqCiAgKiBSZXR1cm5zOgog ICogPSAwLCBSUFIgaXMgbm90IGRlZmluZWQuCiAgKiA+MCwgaWYgdGhlIHJvdyBpcyB0aGUgZmly c3QgaW4gdGhlIHJlZHVjZWQgZnJhbWUuIFJldHVybiB0aGUgbnVtYmVyIG9mIHJvd3MKICAqIGlu IHRoZSByZWR1Y2VkIGZyYW1lLgotICogLTEsIGlmIHRoZSByb3cgaXMgdW5tYXRjaGVkIHJvdwor ICogLTEsIGlmIHRoZSByb3cgaXMgYW4gdW5tYXRjaGVkIHJvdwogICogLTIsIGlmIHRoZSByb3cg aXMgaW4gdGhlIHJlZHVjZWQgZnJhbWUgYnV0IG5lZWRlZCB0byBiZSBza2lwcGVkIGJlY2F1c2Ug b2YKICAqIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwogICogLS0tLS0tLS0tLS0tLS0t LS0KQEAgLTQyMDQsOCArNDIwNCw4IEBAIHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09i amVjdCB3aW5vYmosIGludDY0IHBvcykKIAlpZiAoIXJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkK IAl7CiAJCS8qCi0JCSAqIFJQUiBpcyBub3QgZGVmaW5lZC4gQXNzdW1lIHRoYXQgd2UgYXJlIGFs d2F5cyBpbiB0aGUgdGhlIHJlZHVjZWQKLQkJICogd2luZG93IGZyYW1lLgorCQkgKiBSUFIgaXMg bm90IGRlZmluZWQuIEFzc3VtZSB0aGF0IHdlIGFyZSBhbHdheXMgaW4gdGhlIHJlZHVjZWQgd2lu ZG93CisJCSAqIGZyYW1lLgogCQkgKi8KIAkJcnRuID0gMDsKIAkJcmV0dXJuIHJ0bjsKQEAgLTQ5 MzgsOCArNDkzOCw4IEBAIFdpbkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmos IGludCBhcmdubywKICAqIGlzb3V0OiBvdXRwdXQgYXJndW1lbnQsIHNldCB0byBpbmRpY2F0ZSB3 aGV0aGVyIHRhcmdldCByb3cgcG9zaXRpb24KICAqCQlpcyBvdXQgb2YgZnJhbWUgKGNhbiBwYXNz IE5VTEwgaWYgY2FsbGVyIGRvZXNuJ3QgY2FyZSBhYm91dCB0aGlzKQogICoKLSAqIFJldHVybnMg MCBpZiB3ZSBzdWNjZXNzZnVsbHkgZ290IHRoZSBzbG90LiBmYWxzZSBpZiBvdXQgb2YgZnJhbWUu Ci0gKiAoYWxzbyBpc291dCBpcyBzZXQpCisgKiBSZXR1cm5zIDAgaWYgd2Ugc3VjY2Vzc2Z1bGx5 IGdvdCB0aGUgc2xvdCwgb3Igbm9uemVybyBpZiBvdXQgb2YgZnJhbWUuCisgKiAoaXNvdXQgaXMg YWxzbyBzZXQgaW4gdGhlIGxhdHRlciBjYXNlLikKICAqLwogc3RhdGljIGludAogV2luR2V0U2xv dEluRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggMDJkNTExMjY5YWIuLjUwNjY4 ZjNiN2FiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFu LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCkBAIC0yNDc1 LDcgKzI0NzUsOCBAQCB0eXBlZGVmIHN0cnVjdCBOYXZPZmZzZXRDb250ZXh0CiAJaW50NjQJCW1h eE9mZnNldDsJCS8qIG1heCBQUkVWL0xBU1QgYmFja3dhcmQgb2Zmc2V0ICg+PSAwKSAqLwogCWJv b2wJCW1heE5lZWRzRXZhbDsJLyogbm9uLWNvbnN0YW50IFBSRVYvTEFTVCBvZmZzZXQgZm91bmQg Ki8KIAlib29sCQltYXhPdmVyZmxvdzsJLyogY29uc3RhbnQgb2Zmc2V0IG92ZXJmbG93IGRldGVj dGVkICovCi0JaW50NjQJCWZpcnN0T2Zmc2V0OwkvKiBtaW4gRklSU1Qgb2Zmc2V0ICg+PSAwKSwg b3IgLTEgaWYgbm9uZSAqLworCWludDY0CQlmaXJzdE9mZnNldDsJLyogbWluIEZJUlNUIG9mZnNl dCAobWF5IGJlIG5lZ2F0aXZlIGZvcgorCQkJCQkJCQkgKiBQUkVWX0ZJUlNUKSAqLwogCWJvb2wJ CWhhc0ZpcnN0OwkJLyogYW55IEZJUlNUIG5vZGUgZm91bmQgKi8KIAlib29sCQlmaXJzdE5lZWRz RXZhbDsgLyogbm9uLWNvbnN0YW50IEZJUlNUIG9mZnNldCBmb3VuZCAqLwogfSBOYXZPZmZzZXRD b250ZXh0OwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0028-Fix-documentation-synopsis-grammar.txt" Content-Disposition: attachment; filename="nocfbot-0028-Fix-documentation-synopsis-grammar.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon640sc27 RnJvbSA5YTgxZjE5ODFjZDkzMGZhMWUyNTI4OGEwN2YzNTBmYmFjZTRjOWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTA6NTA6MzYgKzA5MDAKU3ViamVjdDogW1BBVENIIDI4LzQwXSBG aXggUlBSIGRvY3VtZW50YXRpb246IHN5bm9wc2lzLCBncmFtbWFyLCBhbmQKIHRlcm1pbm9sb2d5 CgpSZW1vdmUgZXJyb25lb3VzIGNvbW1hIGluIFBBVFRFUk4gc3lub3BzaXMuICBGaXggdHlwb3Mg aW4KYWR2YW5jZWQuc2dtbCAoIj49OyIgc3RyYXkgc2VtaWNvbG9uLCAid2l0aCB0aGUgYSByb3ci LAoiRm9yIGV4YW1wbGUgZm9sbG93aW5nIikuICBDb3JyZWN0IFBSRVYvTkVYVCBkZXNjcmlwdGlv bgpmcm9tICJ3aXRoaW4gdGhlIHdpbmRvdyBmcmFtZSIgdG8gIndpdGhpbiB0aGUgcGFydGl0aW9u IgphbmQgYWRkIG1pc3NpbmcgIkRFRklORSBjbGF1c2Ugb25seSIgbm90ZS4gIENhcGl0YWxpemUK IlJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIiBjb25zaXN0ZW50bHkgYWNyb3NzIFNHTUwgZmlsZXMu CgpGaXggbnVtZXJvdXMgbWlzc2luZyBhcnRpY2xlcyBhbmQgZ3JhbW1hciBlcnJvcnMgaW4Kc2Vs ZWN0LnNnbWw6ICJhZnRlciBhIG1hdGNoIGZvdW5kIiAtPiAiYWZ0ZXIgYSBtYXRjaCBpcwpmb3Vu ZCIsICJkbyBub3QgbmVjZXNzYXJpbHkiIC0+ICJkb2VzIG5vdCBuZWNlc3NhcmlseSIsCmFkZCBt aXNzaW5nICJ0aGUiIGJlZm9yZSBjbGF1c2UgcmVmZXJlbmNlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv YWR2YW5jZWQuc2dtbCAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIGRvYy9zcmMvc2dtbC9m dW5jL2Z1bmMtd2luZG93LnNnbWwgfCAxNCArKysrKysrKy0tLS0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9zZWxlY3Quc2dtbCAgICAgICB8IDI4ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYWR2YW5jZWQu c2dtbAppbmRleCAwY2FmOWZkYWZmNi4uMTFjMjQxNmRmNTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9hZHZhbmNlZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sCkBAIC01 NTMsOCArNTUzLDggQEAgV0hFUkUgcG9zICZsdDsgMzsKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+ Ci0gICAgUm93IHBhdHRlcm4gY29tbW9uIHN5bnRheCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uCi0gICAgaW4gYSBxdWVyeS4gVGhlIHJvdyBwYXR0ZXJuIGNv bW1vbiBzeW50YXggaW5jbHVkZXMgdHdvIHN1YgorICAgIFJvdyBQYXR0ZXJuIENvbW1vbiBTeW50 YXggY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbgorICAgIGlu IGEgcXVlcnkuIFRoZSBSb3cgUGF0dGVybiBDb21tb24gU3ludGF4IGluY2x1ZGVzIHR3byBzdWIK ICAgICBjbGF1c2VzOiA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+CiAgICAgYW5kIDxsaXRlcmFs PlBBVFRFUk48L2xpdGVyYWw+LiA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGRlZmluZXMKICAg ICByb3cgcGF0dGVybiB2YXJpYWJsZXMgYWxvbmcgd2l0aCBhbiBleHByZXNzaW9uLiBUaGUgZXhw cmVzc2lvbiBtdXN0IGJlIGEKQEAgLTU4NCwxMiArNTg0LDEyIEBAIERFRklORQogICAgIE9uY2Ug PGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBleGlzdHMsIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVy YWw+IGNhbiBiZQogICAgIHVzZWQuIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+IGRlZmluZXMg YSBzZXF1ZW5jZSBvZiByb3dzIHRoYXQgc2F0aXNmaWVzCiAgICAgY29uZGl0aW9ucyBkZWZpbmVk IGluIHRoZSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZS4gIEZvciBleGFtcGxlCi0g ICAgZm9sbG93aW5nIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+IGRlZmluZXMgYSBzZXF1ZW5j ZSBvZiByb3dzIHN0YXJ0aW5nCi0gICAgd2l0aCB0aGUgYSByb3cgc2F0aXNmeWluZyAiTE9XUFJJ Q0UiLCB0aGVuIG9uZSBvciBtb3JlIHJvd3Mgc2F0aXNmeWluZworICAgIHRoZSBmb2xsb3dpbmcg PGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVlbmNlIG9mIHJvd3Mgc3Rh cnRpbmcKKyAgICB3aXRoIGEgcm93IHNhdGlzZnlpbmcgIkxPV1BSSUNFIiwgdGhlbiBvbmUgb3Ig bW9yZSByb3dzIHNhdGlzZnlpbmcKICAgICAiVVAiIGFuZCBmaW5hbGx5IG9uZSBvciBtb3JlIHJv d3Mgc2F0aXNmeWluZyAiRE9XTiIuIFBhdHRlcm4gdmFyaWFibGVzIGNhbgogICAgIGJlIGZvbGxv d2VkIGJ5IHF1YW50aWZpZXJzOiAiKyIgbWVhbnMgb25lIG9yIG1vcmUgbWF0Y2hlcywgIioiIG1l YW5zIHplcm8KICAgICBvciBtb3JlIG1hdGNoZXMsICI/IiBtZWFucyB6ZXJvIG9yIG9uZSBtYXRj aCwgIntufSIgKG4gJmd0OyAwKSBtZWFucyBleGFjdGx5Ci0gICAgbiBtYXRjaGVzLCAie24sfSIg KG4gJmd0Oz07IDApIG1lYW5zIGF0IGxlYXN0IG4gbWF0Y2hlcywgInssbX0iIChtICZndDsgMCkg bWVhbnMKKyAgICBuIG1hdGNoZXMsICJ7bix9IiAobiAmZ3Q7PSAwKSBtZWFucyBhdCBsZWFzdCBu IG1hdGNoZXMsICJ7LG19IiAobSAmZ3Q7IDApIG1lYW5zCiAgICAgYXQgbW9zdCBtIG1hdGNoZXMs IGFuZCAie24sbX0iICgwICZsdDs9IG4gJmx0Oz0gbSwgMCAmbHQ7IG0pIG1lYW5zIGJldHdlZW4g biBhbmQgbQogICAgIG1hdGNoZXMuICBQYXR0ZXJucyBjYW4gYmUgZ3JvdXBlZCB1c2luZyBwYXJl bnRoZXNlcyBhbmQgY29tYmluZWQgdXNpbmcKICAgICBhbHRlcm5hdGlvbiAodGhlIHZlcnRpY2Fs IGJhciAifCIgZm9yIE9SKS4gRm9yIGV4YW1wbGUsICIoVVAgRE9XTikrIgpAQCAtNjQyLDcgKzY0 Miw3IEBAIEZST00gc3RvY2sKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgUm93IHBhdHRl cm4gcmVjb2duaXRpb24gaW50ZXJuYWxseSB1c2VzIGEgbm9uZGV0ZXJtaW5pc3RpYyBmaW5pdGUK KyAgICBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiBpbnRlcm5hbGx5IHVzZXMgYSBub25kZXRlcm1p bmlzdGljIGZpbml0ZQogICAgIGF1dG9tYXRvbiAoTkZBKSB0byBtYXRjaCBwYXR0ZXJucy4gRm9y IHBhdHRlcm5zIHdpdGggdW5ib3VuZGVkCiAgICAgcXVhbnRpZmllcnMgKGUuZy4sIDxsaXRlcmFs PkErPC9saXRlcmFsPiBvciA8bGl0ZXJhbD4oQSBCKSs8L2xpdGVyYWw+KSwKICAgICB0aGUgTkZB IG1heSBuZWVkIHRvIHRyYWNrIG1hbnkgYWN0aXZlIG1hdGNoaW5nIGNvbnRleHRzIHNpbXVsdGFu ZW91c2x5LApAQCAtNjc2LDcgKzY3Niw3IEBAIEZST00gc3RvY2sKICAgIDwvcGFyYT4KIAogICAg PHBhcmE+Ci0gICAgV2hlbiBleGFtaW5pbmcgcXVlcnkgcGxhbnMgZm9yIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uIHdpdGgKKyAgICBXaGVuIGV4YW1pbmluZyBxdWVyeSBwbGFucyBmb3IgUm93IFBh dHRlcm4gUmVjb2duaXRpb24gd2l0aAogICAgIDxjb21tYW5kPkVYUExBSU48L2NvbW1hbmQ+LCB0 aGUgcGF0dGVybiBvdXRwdXQgbWF5IGluY2x1ZGUgc3BlY2lhbAogICAgIG1hcmtlcnMgdGhhdCBp bmRpY2F0ZSBvcHRpbWl6YXRpb24gb3Bwb3J0dW5pdGllcy4gQSBkb3VibGUgcXVvdGUKICAgICA8 bGl0ZXJhbD4iPC9saXRlcmFsPiBtYXJrcyB3aGVyZSBwYXR0ZXJuIGFic29ycHRpb24gY2FuIG9j Y3VyLApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwKaW5kZXggYWI4MDY5MGY3YmUuLmQxMDlh MmQyMmJjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwKQEAgLTI3OSw5ICsyNzksOSBA QAogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBSb3cgcGF0dGVybiByZWNvZ25pdGlvbiBuYXZp Z2F0aW9uIGZ1bmN0aW9ucyBhcmUgbGlzdGVkIGluCisgICBSb3cgUGF0dGVybiBSZWNvZ25pdGlv biBuYXZpZ2F0aW9uIGZ1bmN0aW9ucyBhcmUgbGlzdGVkIGluCiAgICA8eHJlZiBsaW5rZW5kPSJm dW5jdGlvbnMtcnByLW5hdmlnYXRpb24tdGFibGUiLz4uICBUaGVzZSBmdW5jdGlvbnMKLSAgIGNh biBiZSB1c2VkIHRvIGRlc2NyaWJlIERFRklORSBjbGF1c2Ugb2YgUm93IHBhdHRlcm4gcmVjb2du aXRpb24uCisgICBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSB0aGUgREVGSU5FIGNsYXVzZSBvZiBS b3cgUGF0dGVybiBSZWNvZ25pdGlvbi4KICAgPC9wYXJhPgogCiAgICA8dGFibGUgaWQ9ImZ1bmN0 aW9ucy1ycHItbmF2aWdhdGlvbi10YWJsZSI+CkBAIC0zMDksMTIgKzMwOSwxMyBAQAogICAgICAg IDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVl IGF0IHRoZSByb3cgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4KLSAgICAgICAgcm93cyBi ZWZvcmUgdGhlIGN1cnJlbnQgcm93IHdpdGhpbiB0aGUgd2luZG93IGZyYW1lOwotICAgICAgICBy ZXR1cm5zIE5VTEwgaWYgdGhlIHRhcmdldCByb3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1l LgorICAgICAgICByb3dzIGJlZm9yZSB0aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSBwYXJ0aXRp b247CisgICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGUgdGFyZ2V0IHJvdyBpcyBvdXRzaWRlIHRo ZSBwYXJ0aXRpb24uCiAgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IGRlZmF1 bHRzIHRvIDEgaWYgb21pdHRlZC4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRl cj4gbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyOwogICAgICAgICBhbiBvZmZzZXQgb2Yg MCByZWZlcnMgdG8gdGhlIGN1cnJlbnQgcm93IGl0c2VsZi4KICAgICAgICAgPHBhcmFtZXRlcj5v ZmZzZXQ8L3BhcmFtZXRlcj4gbXVzdCBub3QgYmUgTlVMTC4KKyAgICAgICAgQ2FuIG9ubHkgYmUg dXNlZCBpbiBhIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLgogICAgICAgIDwvcGFy YT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAKQEAgLTMyOCwxMiArMzI5LDEzIEBACiAgICAgICAg PC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUg YXQgdGhlIHJvdyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgotICAgICAgICByb3dzIGFm dGVyIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHdpbmRvdyBmcmFtZTsKLSAgICAgICAgcmV0 dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHdpbmRvdyBmcmFtZS4K KyAgICAgICAgcm93cyBhZnRlciB0aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSBwYXJ0aXRpb247 CisgICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGUgdGFyZ2V0IHJvdyBpcyBvdXRzaWRlIHRoZSBw YXJ0aXRpb24uCiAgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IGRlZmF1bHRz IHRvIDEgaWYgb21pdHRlZC4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4g bXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyOwogICAgICAgICBhbiBvZmZzZXQgb2YgMCBy ZWZlcnMgdG8gdGhlIGN1cnJlbnQgcm93IGl0c2VsZi4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZz ZXQ8L3BhcmFtZXRlcj4gbXVzdCBub3QgYmUgTlVMTC4KKyAgICAgICAgQ2FuIG9ubHkgYmUgdXNl ZCBpbiBhIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLgogICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2Vs ZWN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCmluZGV4IDVlNGJhOWQzY2M2 Li41MjcyZDZjMGJmYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCkBAIC0xMTMzLDM0ICsxMTMzLDM0IEBA IEVYQ0xVREUgTk8gT1RIRVJTCiAgICA8cGFyYT4KICAgICBUaGUKICAgICBvcHRpb25hbCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm93X3BhdHRlcm5fY29tbW9uX3N5bnRheDwvcmVw bGFjZWFibGU+Ci0gICAgZGVmaW5lcyB0aGUgPGZpcnN0dGVybT5yb3cgcGF0dGVybiByZWNvZ25p dGlvbiBjb25kaXRpb248L2ZpcnN0dGVybT4gZm9yCisgICAgZGVmaW5lcyB0aGUgPGZpcnN0dGVy bT5Sb3cgUGF0dGVybiBSZWNvZ25pdGlvbiBjb25kaXRpb248L2ZpcnN0dGVybT4gZm9yCiAgICAg dGhpcwogICAgIHdpbmRvdy4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvd19wYXR0 ZXJuX2NvbW1vbl9zeW50YXg8L3JlcGxhY2VhYmxlPgotICAgIGluY2x1ZGVzIGZvbGxvd2luZyBz dWJjbGF1c2VzLgorICAgIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgc3ViY2xhdXNlcy4KIAogPHN5 bm9wc2lzPgogWyB7IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyB8IEFGVEVSIE1BVENI IFNLSVAgVE8gTkVYVCBST1cgfSBdCiBbIElOSVRJQUwgfCBTRUVLIF0KLVBBVFRFUk4gKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybl92YXJpYWJsZV9uYW1lPC9yZXBsYWNl YWJsZT4gWyA8cmVwbGFjZWFibGU+cXVhbnRpZmllcjwvcmVwbGFjZWFibGU+IF0gWywgLi4uXSAp CitQQVRURVJOICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm5fdmFyaWFi bGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPnF1YW50aWZpZXI8L3JlcGxhY2Vh YmxlPiBdIFsgLi4uIF0gKQogREVGSU5FIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5k ZWZpbml0aW9uX3ZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0KIDwvc3lub3Bz aXM+CiAgICAgPGxpdGVyYWw+QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XPC9saXRlcmFs PiBvciA8bGl0ZXJhbD5BRlRFUiBNQVRDSAotICAgIFNLSVAgVE8gTkVYVCBST1c8L2xpdGVyYWw+ IGNvbnRyb2xzIGhvdyB0byBwcm9jZWVkIHRvIG5leHQgcm93IHBvc2l0aW9uCi0gICAgYWZ0ZXIg YSBtYXRjaCBmb3VuZC4gV2l0aCA8bGl0ZXJhbD5BRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVAot ICAgIFJPVzwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0KSBuZXh0IHJvdyBwb3NpdGlvbiBpcyBuZXh0 IHRvIHRoZSBsYXN0IHJvdyBvZgotICAgIHByZXZpb3VzIG1hdGNoLiBPbiB0aGUgb3RoZXIgaGFu ZCwgd2l0aCA8bGl0ZXJhbD5BRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQKLSAgICBST1c8L2xpdGVy YWw+IG5leHQgcm93IHBvc2l0aW9uIGlzIG5leHQgdG8gdGhlIGZpcnN0IHJvdyBvZiBwcmV2aW91 cwotICAgIG1hdGNoLiA8bGl0ZXJhbD5JTklUSUFMPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5TRUVL PC9saXRlcmFsPiBkZWZpbmVzIGhvdyBhCi0gICAgc3VjY2Vzc2Z1bCBwYXR0ZXJuIG1hdGNoaW5n IHN0YXJ0cyBmcm9tIHdoaWNoIHJvdyBpbiBhCi0gICAgZnJhbWUuIElmIDxsaXRlcmFsPklOSVRJ QUw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIG1hdGNoIG11c3Qgc3RhcnQKKyAgICBTS0lQ IFRPIE5FWFQgUk9XPC9saXRlcmFsPiBjb250cm9scyBob3cgdG8gcHJvY2VlZCB0byB0aGUgbmV4 dCByb3cgcG9zaXRpb24KKyAgICBhZnRlciBhIG1hdGNoIGlzIGZvdW5kLiBXaXRoIDxsaXRlcmFs PkFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUCisgICAgUk9XPC9saXRlcmFsPiAodGhlIGRlZmF1 bHQpIHRoZSBuZXh0IHJvdyBwb3NpdGlvbiBpcyBuZXh0IHRvIHRoZSBsYXN0IHJvdyBvZgorICAg IHRoZSBwcmV2aW91cyBtYXRjaC4gT24gdGhlIG90aGVyIGhhbmQsIHdpdGggPGxpdGVyYWw+QUZU RVIgTUFUQ0ggU0tJUCBUTyBORVhUCisgICAgUk9XPC9saXRlcmFsPiB0aGUgbmV4dCByb3cgcG9z aXRpb24gaXMgbmV4dCB0byB0aGUgZmlyc3Qgcm93IG9mIHRoZSBwcmV2aW91cworICAgIG1hdGNo LiA8bGl0ZXJhbD5JTklUSUFMPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5TRUVLPC9saXRlcmFsPiBz cGVjaWZpZXMgZnJvbQorICAgIHdoaWNoIHJvdyBpbiB0aGUgZnJhbWUgcGF0dGVybiBtYXRjaGlu ZyBiZWdpbnMuCisgICAgSWYgPGxpdGVyYWw+SU5JVElBTDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVk LCB0aGUgbWF0Y2ggbXVzdCBzdGFydAogICAgIGZyb20gdGhlIGZpcnN0IHJvdyBpbiB0aGUgZnJh bWUuIElmIDxsaXRlcmFsPlNFRUs8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwKLSAgICB0aGUgc2V0 IG9mIG1hdGNoaW5nIHJvd3MgZG8gbm90IG5lY2Vzc2FyaWx5IHN0YXJ0IGZyb20gdGhlIGZpcnN0 IHJvdy4gVGhlCisgICAgdGhlIHNldCBvZiBtYXRjaGluZyByb3dzIGRvZXMgbm90IG5lY2Vzc2Fy aWx5IHN0YXJ0IGZyb20gdGhlIGZpcnN0IHJvdy4gVGhlCiAgICAgZGVmYXVsdCBpcyA8bGl0ZXJh bD5JTklUSUFMPC9saXRlcmFsPi4gQ3VycmVudGx5CiAgICAgb25seSA8bGl0ZXJhbD5JTklUSUFM PC9saXRlcmFsPiBpcyBzdXBwb3J0ZWQuIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4KICAgICBk ZWZpbmVzIGRlZmluaXRpb24gdmFyaWFibGVzIGFsb25nIHdpdGggYSBib29sZWFuCiAgICAgZXhw cmVzc2lvbi4gPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVlbmNlIG9m IHJvd3MgdGhhdAogICAgIHNhdGlzZmllcyBjZXJ0YWluIGNvbmRpdGlvbnMgdXNpbmcgdmFyaWFi bGVzIGRlZmluZWQKLSAgICBpbiA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZSAoYW4g ZW1wdHkgPGxpdGVyYWw+UEFUVEVSTigpPC9saXRlcmFsPgorICAgIGluIHRoZSA8bGl0ZXJhbD5E RUZJTkU8L2xpdGVyYWw+IGNsYXVzZSAoYW4gZW1wdHkgPGxpdGVyYWw+UEFUVEVSTigpPC9saXRl cmFsPgogICAgIGlzIG5vdCBzdXBwb3J0ZWQpLiBFYWNoIHBhdHRlcm4gdmFyaWFibGUgY2FuIGJl IGZvbGxvd2VkIGJ5IGEgcXVhbnRpZmllcgogICAgIHRvIHNwZWNpZnkgaG93IG1hbnkgdGltZXMg aXQgc2hvdWxkIG1hdGNoOgogICAgIDxsaXRlcmFsPio8L2xpdGVyYWw+ICh6ZXJvIG9yIG1vcmUp LApAQCAtMTE5OCw3ICsxMTk4LDcgQEAgREVGSU5FIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5kZWZpbml0aW9uX3ZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBBUwogCiAgICA8cGFy YT4KICAgICBOb3RlIHRoYXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHVuaXF1ZSBwYXR0ZXJuIHZh cmlhYmxlcwotICAgIHVzZWQgaW4gPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2xhdXNlIGlz IDI1MS4KKyAgICB1c2VkIGluIHRoZSA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBjbGF1c2Ug aXMgMjUxLgogICAgIElmIHRoaXMgbGltaXQgaXMgZXhjZWVkZWQsIGFuIGVycm9yIHdpbGwgYmUg cmFpc2VkLgogICAgIEFkZGl0aW9uYWxseSwgdGhlIG1heGltdW0gbmVzdGluZyBkZXB0aCBvZiBw YXR0ZXJuIGdyb3VwcwogICAgIChwYXJlbnRoZXNlcykgaXMgMjUzIGxldmVscy4KLS0gCjIuNTAu MSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0029-Fix-nav_slot-pass-by-ref-dangling-pointer.txt" Content-Disposition: attachment; filename="nocfbot-0029-Fix-nav_slot-pass-by-ref-dangling-pointer.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon642j428 RnJvbSBjMzNhY2E0MTgzMTk4MTZiZGU4ODNkMWFkNmIwN2Y3ZWZmYmRkZGVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTM6NTk6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIDI5LzQwXSBG aXggbmF2X3Nsb3QgcGFzcy1ieS1yZWYgZGFuZ2xpbmcgcG9pbnRlciBpbiBSUFIKIG5hdmlnYXRp b24KCldoZW4gYSBERUZJTkUgZXhwcmVzc2lvbiBjb250YWlucyBtdWx0aXBsZSBuYXZpZ2F0aW9u IGNhbGxzIHRhcmdldGluZwpkaWZmZXJlbnQgcG9zaXRpb25zIChlLmcuLCBQUkVWKHgsMSkgPiBQ UkVWKHgsMikpLCB0aGUgc2Vjb25kIGNhbGwKcmUtZmV0Y2hlcyBuYXZfc2xvdCwgZnJlZWluZyB0 aGUgcHJldmlvdXMgdHVwbGUgdmlhIHBmcmVlLiAgQW55CnBhc3MtYnktcmVmIGRhdHVtIGV4dHJh Y3RlZCBmcm9tIHRoZSBmaXJzdCBuYXZpZ2F0aW9uIGJlY29tZXMgYQpkYW5nbGluZyBwb2ludGVy LiAgRml4IGJ5IGNvcHlpbmcgcGFzcy1ieS1yZWYgcmVzdWx0cyBpbnRvIHBlci10dXBsZQptZW1v cnkgaW4gdGhlIFJFU1RPUkUgc3RlcC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ci5jICAgICAgIHwgIDUgKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMg fCAyMCArKysrKysrCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgIHwgIDIg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0ICAgICB8IDgwICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCAgICAgICAgICB8 IDM0ICsrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNDEgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCmluZGV4IDYzNDlhNTY0YTk4Li44ZDhkYTY3ZTc5ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCkBAIC0xMzA0LDcgKzEzMDQsMTIgQEAgRXhlY0luaXRFeHByUmVj KEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQkvKiBFbWl0IFJFU1RPUkUgb3Bj b2RlOiByZXN0b3JlIG9yaWdpbmFsIHNsb3QgKi8KIAkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1Bf UlBSX05BVl9SRVNUT1JFOworCQkJCXNjcmF0Y2gucmVzdmFsdWUgPSByZXN2OworCQkJCXNjcmF0 Y2gucmVzbnVsbCA9IHJlc251bGw7CiAJCQkJc2NyYXRjaC5kLnJwcl9uYXYud2luc3RhdGUgPSB3 aW5zdGF0ZTsKKwkJCQlnZXRfdHlwbGVuYnl2YWwobmF2LT5yZXN1bHR0eXBlLAorCQkJCQkJCQkm c2NyYXRjaC5kLnJwcl9uYXYucmVzdWx0dHlwbGVuLAorCQkJCQkJCQkmc2NyYXRjaC5kLnJwcl9u YXYucmVzdWx0dHlwYnl2YWwpOwogCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKIAkJCQlicmVhazsKIAkJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmlu ZGV4IDJlYzU3OTczMmNjLi5lMmQ0MWMzMDk4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ckludGVycC5jCkBAIC02MTU2LDYgKzYxNTYsMTMgQEAgRXhlY0V2YWxSUFJOYXZTZXQoRXhwclN0 YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250ZXh0KQogICog V2hlbiBzbG90IHN3YXAgd2FzIGVsaWRlZCAodGFyZ2V0ID09IGN1cnJlbnRwb3MpLCB0aGlzIGlz IGEgaGFybWxlc3MKICAqIG5vLW9wIHNpbmNlIHNhdmVkIGFuZCBjdXJyZW50IHNsb3RzIGFyZSBp ZGVudGljYWwuCiAgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyBhbnkg bG9jYWwgc2xvdCBjYWNoZS4KKyAqCisgKiBGb3IgcGFzcy1ieS1yZWZlcmVuY2UgcmVzdWx0IHR5 cGVzLCB0aGUgcmVzdWx0IGRhdHVtIHBvaW50cyBpbnRvCisgKiBuYXZfc2xvdCdzIHR1cGxlIG1l bW9yeS4gIElmIGEgc3Vic2VxdWVudCBuYXZpZ2F0aW9uIGluIHRoZSBzYW1lCisgKiBleHByZXNz aW9uIHJlLWZldGNoZXMgbmF2X3Nsb3QgZm9yIGEgZGlmZmVyZW50IHBvc2l0aW9uLCB0aGUgb2xk CisgKiB0dXBsZSBpcyBmcmVlZCwgbGVhdmluZyBhIGRhbmdsaW5nIHBvaW50ZXIuICBXZSBwcmV2 ZW50IHRoaXMgYnkKKyAqIGNvcHlpbmcgcGFzcy1ieS1yZWYgcmVzdWx0cyBpbnRvIHBlci10dXBs ZSBtZW1vcnksIHdoaWNoIHN1cnZpdmVzCisgKiB1bnRpbCB0aGUgbmV4dCBSZXNldEV4cHJDb250 ZXh0LgogICovCiB2b2lkCiBFeGVjRXZhbFJQUk5hdlJlc3RvcmUoRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCwKQEAgLTYxNjQsNCArNjE3MSwxNyBAQCBFeGVjRXZhbFJQUk5hdlJl c3RvcmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAlXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUgPSBvcC0+ZC5ycHJfbmF2LndpbnN0YXRlOwogCiAJZWNvbnRleHQtPmVjeHRf b3V0ZXJ0dXBsZSA9IHdpbnN0YXRlLT5uYXZfc2F2ZWRfb3V0ZXJ0dXBsZTsKKworCS8qIFN0YWJp bGl6ZSBwYXNzLWJ5LXJlZiByZXN1bHQgYWdhaW5zdCBuYXZfc2xvdCByZS1mZXRjaCAqLworCWlm ICghb3AtPmQucnByX25hdi5yZXN1bHR0eXBieXZhbCAmJgorCQkhKm9wLT5yZXNudWxsKQorCXsK KwkJTWVtb3J5Q29udGV4dCBvbGRDb250ZXh0OworCisJCW9sZENvbnRleHQgPSBNZW1vcnlDb250 ZXh0U3dpdGNoVG8oZWNvbnRleHQtPmVjeHRfcGVyX3R1cGxlX21lbW9yeSk7CisJCSpvcC0+cmVz dmFsdWUgPSBkYXR1bUNvcHkoKm9wLT5yZXN2YWx1ZSwKKwkJCQkJCQkJICBmYWxzZSwKKwkJCQkJ CQkJICBvcC0+ZC5ycHJfbmF2LnJlc3VsdHR5cGxlbik7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRDb250ZXh0KTsKKwl9CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCA4MzQ4MDBh NDA2Mi4uZTZiMmFiMzA0MDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtNzAzLDYgKzcw Myw4IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJRGF0dW0JICAgKm9mZnNldF92 YWx1ZTsJLyogb2Zmc2V0IHZhbHVlKHMpLCBvciBOVUxMICovCiAJCQlib29sCSAgICpvZmZzZXRf aXNudWxsOwkvKiBvZmZzZXQgbnVsbCBmbGFnKHMpICovCiAJCQkvKiBGb3IgY29tcG91bmQgbmF2 OiBvZmZzZXRfdmFsdWVbMF0gPSBpbm5lciwgWzFdID0gb3V0ZXIgKi8KKwkJCWludDE2CQlyZXN1 bHR0eXBsZW47CS8qIFJFU1RPUkU6IHJlc3VsdCB0eXBlIGxlbmd0aCAqLworCQkJYm9vbAkJcmVz dWx0dHlwYnl2YWw7IC8qIFJFU1RPUkU6IHJlc3VsdCBwYXNzLWJ5LXZhbHVlPyAqLwogCQl9CQkJ cnByX25hdjsKIAogCQkvKiBmb3IgRUVPUF9BR0dfKkRFU0VSSUFMSVpFICovCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwci5vdXQKaW5kZXggMDRlYzI1ZDRjZjUuLjMyYWE4YmMzNzIyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHIub3V0CkBAIC0xNjM1LDYgKzE2MzUsODYgQEAgV0lORE9XIHcgQVMgKAog IGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKICgyMCByb3dzKQogCistLSBQYXNzLWJ5LXJlZiB0eXBlczogdHdvIFBSRVYgY2Fs bHMgdGFyZ2V0aW5nIGRpZmZlcmVudCBwb3NpdGlvbnMuCistLSBWZXJpZmllcyB0aGF0IGRhdHVt Q29weSBpbiBSRVNUT1JFIHByZXZlbnRzIGRhbmdsaW5nIHBvaW50ZXJzIHdoZW4KKy0tIG5hdl9z bG90IGlzIHJlLWZldGNoZWQgZm9yIHRoZSBzZWNvbmQgbmF2aWdhdGlvbi4KKy0tIHRkYXRlOjp0 ZXh0IGdpdmVzIGRpc3RpbmN0IHRleHQgdmFsdWVzIHBlciByb3cgKGUuZy4gJzA3LTAxLTIwMjMn KS4KKy0tIEIgbWF0Y2hlcyB3aGVuIDEtYmFjayBkYXRlIHRleHQgPiAyLWJhY2sgZGF0ZSB0ZXh0 IChhbHdheXMgdHJ1ZSBmb3IKKy0tIGFzY2VuZGluZyBkYXRlcyksIHNvIEIrIGV4dGVuZHMgdGhl IGZ1bGwgcGFydGl0aW9uIGFmdGVyIEEuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHRkYXRlOjp0 ZXh0IEFTIHRkYXRlX3RleHQsCisgICAgICAgZmlyc3RfdmFsdWUodGRhdGU6OnRleHQpIE9WRVIg dywgbGFzdF92YWx1ZSh0ZGF0ZTo6dGV4dCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0 ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBQUkVWKHRkYXRl Ojp0ZXh0LCAxKSA+IFBSRVYodGRhdGU6OnRleHQsIDIpCispOworIGNvbXBhbnkgIHwgICB0ZGF0 ZSAgICB8IHRkYXRlX3RleHQgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgMDctMDEtMjAyMyB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgMDct MDItMjAyMyB8IDA3LTAyLTIwMjMgIHwgMDctMTAtMjAyMyB8ICAgICA5CisgY29tcGFueTEgfCAw Ny0wMy0yMDIzIHwgMDctMDMtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgMDctMDQtMjAyMyB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgMDctMDUtMjAyMyB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwg MDctMDYtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wNy0yMDIzIHwgMDctMDctMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgMDctMDgtMjAyMyB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgMDctMDktMjAyMyB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIz IHwgMDctMTAtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wMS0yMDIzIHwgMDctMDEtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgMDctMDItMjAyMyB8IDA3LTAyLTIwMjMg IHwgMDctMTAtMjAyMyB8ICAgICA5CisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgMDctMDMtMjAy MyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0y MDIzIHwgMDctMDQtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wNS0yMDIzIHwgMDctMDUtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgMDctMDYtMjAyMyB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgMDctMDct MjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w OC0yMDIzIHwgMDctMDgtMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wOS0yMDIzIHwgMDctMDktMjAyMyB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgMDctMTAtMjAyMyB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gbnVtZXJpYzogUFJF VihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVWKHByaWNlOjpudW1lcmljLCAyKQorLS0gQiBtYXRj aGVzIHdoZW4gcHJpY2UgMS1iYWNrID4gcHJpY2UgMi1iYWNrIChhc2NlbmRpbmcgcGFpcikuCitT RUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlOjpudW1lcmljIEFTIG5wcmljZSwKKyAgICAgICBm aXJzdF92YWx1ZShwcmljZTo6bnVtZXJpYykgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlOjpudW1l cmljKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAor ICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyBUUlVFLAorICAgICAgICBCIEFTIFBSRVYocHJpY2U6Om51bWVyaWMsIDEpID4gUFJFVihw cmljZTo6bnVtZXJpYywgMikKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgbnByaWNlIHwg Zmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEg fCAwNy0wMS0yMDIzIHwgICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgICAyMDAgfCAgICAgICAgIDIwMCB8ICAgICAgICAx NTAgfCAgICAgMgorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgIDE1MCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAgMTQwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMg fCAgICAxNTAgfCAgICAgICAgIDE1MCB8ICAgICAgICAgOTAgfCAgICAgMgorIGNvbXBhbnkxIHwg MDctMDYtMjAyMyB8ICAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAgMTEwIHwgICAgICAgICAxMTAgfCAgICAgICAgMTIw IHwgICAgIDMKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgICAxMzAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgIDEyMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwg ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTAxLTIwMjMgfCAgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMDItMjAyMyB8ICAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgICAgMTUwMCB8 ICAgICAyCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgICAxNTAwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgIDE0MDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAg MTUwMCB8ICAgICAgICAxNTAwIHwgICAgICAgICA2MCB8ICAgICAyCisgY29tcGFueTIgfCAwNy0w Ni0yMDIzIHwgICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA3LTIwMjMgfCAgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEyMDAgfCAg ICAgMworIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAgMTMwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgICAxMjAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgIDEz MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKIC0tCiAt LSBGSVJTVC9MQVNUIG5hdmlnYXRpb24KIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAppbmRleCBhMDViNDI5 Y2U3NC4uNzI0ZDQ2MGIyZGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbApAQCAtNzc2LDYgKzc3Niw0MCBA QCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAxKSBB TkQgcHJpY2UgPCBORVhUKHByaWNlLCAxKQogKTsKIAorLS0gUGFzcy1ieS1yZWYgdHlwZXM6IHR3 byBQUkVWIGNhbGxzIHRhcmdldGluZyBkaWZmZXJlbnQgcG9zaXRpb25zLgorLS0gVmVyaWZpZXMg dGhhdCBkYXR1bUNvcHkgaW4gUkVTVE9SRSBwcmV2ZW50cyBkYW5nbGluZyBwb2ludGVycyB3aGVu CistLSBuYXZfc2xvdCBpcyByZS1mZXRjaGVkIGZvciB0aGUgc2Vjb25kIG5hdmlnYXRpb24uCist LSB0ZGF0ZTo6dGV4dCBnaXZlcyBkaXN0aW5jdCB0ZXh0IHZhbHVlcyBwZXIgcm93IChlLmcuICcw Ny0wMS0yMDIzJykuCistLSBCIG1hdGNoZXMgd2hlbiAxLWJhY2sgZGF0ZSB0ZXh0ID4gMi1iYWNr IGRhdGUgdGV4dCAoYWx3YXlzIHRydWUgZm9yCistLSBhc2NlbmRpbmcgZGF0ZXMpLCBzbyBCKyBl eHRlbmRzIHRoZSBmdWxsIHBhcnRpdGlvbiBhZnRlciBBLgorU0VMRUNUIGNvbXBhbnksIHRkYXRl LCB0ZGF0ZTo6dGV4dCBBUyB0ZGF0ZV90ZXh0LAorICAgICAgIGZpcnN0X3ZhbHVlKHRkYXRlOjp0 ZXh0KSBPVkVSIHcsIGxhc3RfdmFsdWUodGRhdGU6OnRleHQpIE9WRVIgdywgY291bnQoKikgT1ZF UiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkg T1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMg UFJFVih0ZGF0ZTo6dGV4dCwgMSkgPiBQUkVWKHRkYXRlOjp0ZXh0LCAyKQorKTsKKworLS0gbnVt ZXJpYzogUFJFVihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVWKHByaWNlOjpudW1lcmljLCAyKQor LS0gQiBtYXRjaGVzIHdoZW4gcHJpY2UgMS1iYWNrID4gcHJpY2UgMi1iYWNrIChhc2NlbmRpbmcg cGFpcikuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlOjpudW1lcmljIEFTIG5wcmljZSwK KyAgICAgICBmaXJzdF92YWx1ZShwcmljZTo6bnVtZXJpYykgT1ZFUiB3LCBsYXN0X3ZhbHVlKHBy aWNlOjpudW1lcmljKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9X IHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIFBSRVYocHJpY2U6Om51bWVyaWMsIDEp ID4gUFJFVihwcmljZTo6bnVtZXJpYywgMikKKyk7CisKIC0tCiAtLSBGSVJTVC9MQVNUIG5hdmln YXRpb24KIC0tCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0030-Add-inline-comments-design-notes.txt" Content-Disposition: attachment; filename="nocfbot-0030-Add-inline-comments-design-notes.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon6441m29 RnJvbSA3NmI2MGZiNTM4OTA2MzQ2MTQ0YmU3NDMwYjg1OGRkZDQ3MWVjM2FiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMjA6NDk6MjcgKzA5MDAKU3ViamVjdDogW1BBVENIIDMwLzQwXSBB ZGQgaW5saW5lIGNvbW1lbnRzIGZvciBjb21wbGV4IFJQUiBhbGdvcml0aG1zIGFuZAogZGVzaWdu IG5vdGVzCgpEb2N1bWVudCBFTkQgY2hhaW4gdHJhdmVyc2FsIGluIG5mYV9tYXRjaCgpLCBmYXN0 LWZvcndhcmQgcGF0aHMKaW4gbmZhX2FkdmFuY2VfZW5kKCksIGFic29ycHRpb24gc2FmZXR5IHJ1 bGVzIHdpdGggbmF2aWdhdGlvbgpsb29rdXAgdGFibGUsIHBlci1jb250ZXh0IGV2YWx1YXRpb24g c3RyYXRlZ3kgdGFibGUsIGZpeGVkLWxlbmd0aApncm91cCB1bnJvbGxpbmcgcmF0aW9uYWxlLCBh bmQgQkVHSU4vRU5EIHBvaW50ZXIgbGF5b3V0IGRpYWdyYW0uCi0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jICAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQog c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgfCA0MSArKysrKysrKysrKystLQogMiBm aWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1JQUi5jCmluZGV4IGJhZWU0NWNlNTRlLi43YmE3YjZmYjY3MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNSUFIuYwpAQCAtNDQwLDcgKzQ0MCwxNCBAQAogICogICBDYXNlIDI6IEdST1VQKyB3aXRo IGZpeGVkLWxlbmd0aCBjaGlsZHJlbiAobWluID09IG1heCwgcmVjdXJzaXZlbHkpCiAgKiAgICAg ICAgICAgZS5nLiwgKEEgQikrLCAoQSBCezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKwogICogICAg ICAgICAgIC0+IEFCU09SQkFCTEVfQlJBTkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdy b3VwLAotICogICAgICAgICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIG9uIEVO RAorICogICAgICAgICAgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBvbiBFTkQK KyAqCisgKiAgICAgICAgICAgV2h5IHRoaXMgaXMgc2FmZTogd2hlbiBldmVyeSBjaGlsZCBoYXMg bWluID09IG1heCwgdGhlIGdyb3VwCisgKiAgICAgICAgICAgaXMgc2VtYW50aWNhbGx5IGVxdWl2 YWxlbnQgdG8gdW5yb2xsaW5nIGl0cyBib2R5IGludG8gezEsMX0KKyAqICAgICAgICAgICBlbGVt ZW50cy4gIEUuZy4sIChBIEJ7Mn0pKyBiZWhhdmVzIGxpa2UgKEEgQiBCKSsuICBFYWNoCisgKiAg ICAgICAgICAgaXRlcmF0aW9uIGNvbnN1bWVzIGEgZml4ZWQgbnVtYmVyIG9mIHJvd3MsIHNvIGFu IGVhcmxpZXIKKyAqICAgICAgICAgICBjb250ZXh0J3MgY291bnQgYWx3YXlzIGRvbWluYXRlcyBh IGxhdGVyIG9uZSdzIChtb25vdG9uaWNpdHkpLgorICoKICAqICAgQ2FzZSAzOiBHUk9VUCsgd2hv c2UgYm9keSBzdGFydHMgd2l0aCBWQVIrIChlLmcuLCAoQSsgQikrKQogICogICAgICAgICAgIC0+ IFJlY3Vyc2VzIGZyb20gQkVHSU4gaW50byB0aGUgYm9keSwgYXBwbHlpbmcgQ2FzZSAxLgogICog ICAgICAgICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIHNldCBvbiBBLgpAQCAt NjQ3LDYgKzY1NCwxOSBAQAogICogdmFyaWFibGVzLiAgVGhlIG9yaWdpbmFsIG5hdl9tYXRjaF9z dGFydCBhbmQgY3VycmVudHBvcyBhcmUgc2F2ZWQgYW5kCiAgKiByZXN0b3JlZCBhZnRlciByZS1l dmFsdWF0aW9uLgogICoKKyAqIFN1bW1hcnkgb2YgZXZhbHVhdGlvbiBzdHJhdGVneSBieSBuYXZp Z2F0aW9uIGNvbnRlbnQ6CisgKgorICogICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAg ICBldmFsdWF0aW9uCisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqICAgTm8gbmF2aWdhdGlvbiAgICAgICAgICAgICAgICAgICAg c2hhcmVkIChvbmNlIHBlciByb3cpCisgKiAgIFBSRVYvTkVYVCBvbmx5ICAgICAgICAgICAgICAg ICAgIHNoYXJlZCAob25jZSBwZXIgcm93KQorICogICBMQVNUIChubyBvZmZzZXQpICAgICAgICAg ICAgICAgICBzaGFyZWQgKG9uY2UgcGVyIHJvdykKKyAqICAgTEFTVCAod2l0aCBvZmZzZXQpICAg ICAgICAgICAgICAgcGVyLWNvbnRleHQKKyAqICAgRklSU1QgKGFueSkgICAgICAgICAgICAgICAg ICAgICAgcGVyLWNvbnRleHQKKyAqICAgQ29tcG91bmQgKGlubmVyIEZJUlNUKSAgICAgICAgICAg cGVyLWNvbnRleHQKKyAqICAgQ29tcG91bmQgKGlubmVyIExBU1QsIG5vIG9mZi4pICAgc2hhcmVk IChvbmNlIHBlciByb3cpCisgKiAgIENvbXBvdW5kIChpbm5lciBMQVNULCB3L29mZi4pICAgIHBl ci1jb250ZXh0CisgKgogICogVkktNS4gVHVwbGVzdG9yZSBNYXJrIGFuZCBUcmltIChub2RlV2lu ZG93QWdnLmMpCiAgKgogICogTmF2aWdhdGlvbiBmdW5jdGlvbnMgcmVxdWlyZSBhY2Nlc3MgdG8g cGFzdCByb3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KQEAgLTc2MiwxMSArNzgyLDI2IEBACiAgKiAg IChiKSBVbmJvdW5kZWQgZnJhbWUgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVECiAgKiAgICAgICBGT0xMT1dJTkcpLiAgTGltaXRlZCBmcmFtZXMgYXBwbHkgZGlmZmVyZW50 bHkgdG8gZWFjaCBjb250ZXh0LAogICogICAgICAgYnJlYWtpbmcgdGhlIG1vbm90b25pY2l0eSBw cmluY2lwbGUuCi0gKiAgIChjKSBObyBtYXRjaF9zdGFydC1kZXBlbmRlbnQgbmF2aWdhdGlvbiBp biBERUZJTkUuICBGSVJTVCwKLSAqICAgICAgIExBU1Qtd2l0aC1vZmZzZXQsIGFuZCBjb21wb3Vu ZCBuYXZpZ2F0aW9uIHJlZmVyZW5jaW5nIG1hdGNoX3N0YXJ0Ci0gKiAgICAgICAoUFJFVl9GSVJT VCwgTkVYVF9GSVJTVCwgUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9mZnNldCkKLSAqICAgICAg IGNhdXNlIGRpZmZlcmVudCBjb250ZXh0cyB0byBldmFsdWF0ZSB0byBkaWZmZXJlbnQgdmFsdWVz IGZvciB0aGUKLSAqICAgICAgIHNhbWUgcm93LCBicmVha2luZyBtb25vdG9uaWNpdHkuCisgKiAg IChjKSBObyBtYXRjaF9zdGFydC1kZXBlbmRlbnQgbmF2aWdhdGlvbiBpbiBERUZJTkUuCisgKgor ICogICAgICAgTWVjaGFuaXNtOiBlYWNoIGNvbnRleHQgaGFzIGEgZGlmZmVyZW50IG1hdGNoU3Rh cnRSb3csIHNvIEZJUlNUCisgKiAgICAgICByZXNvbHZlcyB0byBhIGRpZmZlcmVudCByb3cgZm9y IGVhY2ggY29udGV4dCBhdCB0aGUgc2FtZQorICogICAgICAgY3VycmVudHBvcy4gIEFuIGVhcmxp ZXIgY29udGV4dCdzIERFRklORSByZXN1bHQgbm8gbG9uZ2VyCisgKiAgICAgICBzdWJzdW1lcyBh IGxhdGVyIG9uZSdzLCBtYWtpbmcgY291bnQtZG9taW5hbmNlIGNvbXBhcmlzb24KKyAqICAgICAg IGludmFsaWQuICBSYXRoZXIgdGhhbiBjb21wYXJpbmcgbWF0Y2hTdGFydFJvdyBhdCBydW50aW1l CisgKiAgICAgICAod2hpY2ggd291bGQgY29tcGxpY2F0ZSB0aGUgYWJzb3JiIHBhdGgpLCBhbnkg bWF0Y2hfc3RhcnQKKyAqICAgICAgIGRlcGVuZGVuY3kgZGlzYWJsZXMgYWJzb3JwdGlvbiBlbnRp cmVseS4KKyAqCisgKiAgICAgICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgIG1hdGNo X3N0YXJ0IGRlcC4gIGFic29ycHRpb24KKyAqICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgICAgTm8gbmF2aWdh dGlvbiAgICAgICAgICAgICAgICAgICBub25lICAgICAgICAgICAgICBzYWZlCisgKiAgICAgICBQ UkVWL05FWFQgb25seSAgICAgICAgICAgICAgICAgIG5vbmUgICAgICAgICAgICAgIHNhZmUKKyAq ICAgICAgIExBU1QgKG5vIG9mZnNldCkgICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAg c2FmZQorICogICAgICAgTEFTVCAod2l0aCBvZmZzZXQpICAgICAgICAgICAgICBib3VuZGFyeSBj aGVjayAgICB1bnNhZmUKKyAqICAgICAgIEZJUlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAg ZGlyZWN0ICAgICAgICAgICAgdW5zYWZlCisgKiAgICAgICBDb21wb3VuZCAoaW5uZXIgRklSU1Qp ICAgICAgICAgIGRpcmVjdCAgICAgICAgICAgIHVuc2FmZQorICogICAgICAgQ29tcG91bmQgKGlu bmVyIExBU1QsIG5vIG9mZi4pICBub25lICAgICAgICAgICAgICBzYWZlCisgKiAgICAgICBDb21w b3VuZCAoaW5uZXIgTEFTVCwgdy9vZmYuKSAgIGJvdW5kYXJ5IGNoayAgICAgIHVuc2FmZQogICoK ICAqIFJ1bnRpbWUgY29uZGl0aW9ucyAoZXZhbHVhdGVkIHBlciBjb250ZXh0IHBhaXIpOgogICoK QEAgLTIyNjAsNyArMjI5NSwxMyBAQCBuZmFfYWJzb3JiX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSkKICAqIG5mYV9ldmFsX3Zhcl9tYXRjaAogICoKICAqIEV2YWx1YXRlIGlmIGEg VkFSIGVsZW1lbnQgbWF0Y2hlcyB0aGUgY3VycmVudCByb3cuCi0gKiBVbmRlZmluZWQgdmFyaWFi bGVzICh2YXJJZCA+PSBkZWZpbmVWYXJpYWJsZUxpc3QgbGVuZ3RoKSBkZWZhdWx0IHRvIFRSVUUu CisgKgorICogdmFyTWF0Y2hlZCBpcyBhIHByZS1ldmFsdWF0ZWQgYm9vbGVhbiBhcnJheSBpbmRl eGVkIGJ5IHZhcklkLCBjb21wdXRlZAorICogb25jZSBwZXIgcm93IGJ5IGV2YWx1YXRpbmcgYWxs IERFRklORSBleHByZXNzaW9ucy4gIE5VTEwgbWVhbnMgbm8gREVGSU5FCisgKiBjbGF1c2VzIGV4 aXN0IChvbmx5IHBvc3NpYmxlIGR1cmluZyBlYXJseSBkZXZlbG9wbWVudC90ZXN0aW5nKS4KKyAq CisgKiBQZXIgU1FMOjIwMTYgUjAyMCwgcGF0dGVybiB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiBE RUZJTkUgYXJlIGltcGxpY2l0bHkKKyAqIFRSVUUgLS0gdGhleSBtYXRjaCBldmVyeSByb3cuICBU aGlzIGlzIGNoZWNrZWQgdmlhIHZhcklkID49IGxpc3RfbGVuZ3RoLgogICovCiBzdGF0aWMgYm9v bAogbmZhX2V2YWxfdmFyX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSUGF0dGVy bkVsZW1lbnQgKmVsZW0sCkBAIC0yMzM3LDkgKzIzNzgsMjAgQEAgbmZhX21hdGNoKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBib29sICp2YXJNYXRjaGVkKQog CiAJCQkJLyoKIAkJCQkgKiBGb3IgVkFSIGF0IG1heCBjb3VudCB3aXRoIEVORCBuZXh0LCBhZHZh bmNlIHRocm91Z2ggRU5ECi0JCQkJICogY2hhaW4gdG8gcmVhY2ggdGhlIGFic29ycHRpb24ganVk Z21lbnQgcG9pbnQuIE9ubHkKKwkJCQkgKiBjaGFpbiB0byByZWFjaCB0aGUgYWJzb3JwdGlvbiBq dWRnbWVudCBwb2ludC4gIE9ubHkKIAkJCQkgKiBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+ PSBtYXgsIG1heCBmaW5pdGUpIGFyZSBoYW5kbGVkOwogCQkJCSAqIHVuYm91bmRlZCBWQVJzIHN0 YXkgZm9yIGFkdmFuY2UgcGhhc2UuCisJCQkJICoKKwkJCQkgKiBJbiBuZXN0ZWQgcGF0dGVybnMg bGlrZSAoKEEgQil7Mn0pezN9LCBhIFZBUiByZWFjaGluZyBpdHMKKwkJCQkgKiBtYXggdHJpZ2dl cnMgYW4gZXhpdCBjYXNjYWRlOiBpbm5lciBFTkQgaW5jcmVtZW50cyBpbm5lcgorCQkJCSAqIGdy b3VwIGNvdW50LCB3aGljaCBtYXkgaXRzZWxmIHJlYWNoIG1heCwgcmVxdWlyaW5nIGFuIGV4aXQK KwkJCQkgKiB0byB0aGUgbmV4dCBvdXRlciBFTkQuICBUaGUgbG9vcCBiZWxvdyB3YWxrcyB0aGlz IGNoYWluLgorCQkJCSAqCisJCQkJICogQUJTT1JCQUJMRV9CUkFOQ0ggbWFya3MgZWxlbWVudHMg aW5zaWRlIHRoZSBhYnNvcmJhYmxlCisJCQkJICogcmVnaW9uOyBBQlNPUkJBQkxFIG1hcmtzIHRo ZSBvdXRlcm1vc3QganVkZ21lbnQgcG9pbnQKKwkJCQkgKiB3aGVyZSBjb3VudC1kb21pbmFuY2Ug aXMgZXZhbHVhdGVkLiAgV2UgY2hhaW4gdGhyb3VnaAorCQkJCSAqIEJSQU5DSCBlbGVtZW50cyB1 bnRpbCByZWFjaGluZyB0aGUgQUJTT1JCQUJMRSBwb2ludCBvcgorCQkJCSAqIGFuIGVsZW1lbnQg dGhhdCBjYW4gc3RpbGwgbG9vcCAoY291bnQgPCBtYXgpLgogCQkJCSAqLwogCQkJCWlmIChSUFJF bGVtSXNBYnNvcmJhYmxlQnJhbmNoKGVsZW0pICYmCiAJCQkJCSFSUFJFbGVtSXNBYnNvcmJhYmxl KGVsZW0pICYmCkBAIC0yNTYxLDEyICsyNjEzLDI1IEBAIG5mYV9hZHZhbmNlX2VuZChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJUlBSUGF0dGVybkVsZW1l bnQgKmp1bXBFbGVtOwogCQlSUFJORkFTdGF0ZSAqZmZTdGF0ZSA9IE5VTEw7CiAKLQkJLyogU25h cHNob3Qgc3RhdGUgZm9yIGZmIHBhdGggYmVmb3JlIG1vZGlmeWluZyBmb3IgbG9vcC1iYWNrICov CisJCS8qCisJCSAqIFR3byBwYXRocyBhcmUgZXhwbG9yZWQgaW4gcGFyYWxsZWwgd2hlbiB0aGUg Z3JvdXAgYm9keSBpcworCQkgKiBudWxsYWJsZSAoUlBSX0VMRU1fRU1QVFlfTE9PUCk6CisJCSAq CisJCSAqIDEuIFByaW1hcnkgcGF0aDogbG9vcCBiYWNrIGFuZCBhdHRlbXB0IHJlYWwgbWF0Y2hl cyBpbiB0aGUKKwkJICogICAgbmV4dCBpdGVyYXRpb24gKHN0YXRlLCBtb2RpZmllZCBiZWxvdyku CisJCSAqCisJCSAqIDIuIEZhc3QtZm9yd2FyZCBwYXRoOiBza2lwIGRpcmVjdGx5IHRvIGFmdGVy IHRoZSBncm91cCwKKwkJICogICAgdHJlYXRpbmcgYWxsIHJlbWFpbmluZyByZXF1aXJlZCBpdGVy YXRpb25zIGFzIGVtcHR5CisJCSAqICAgIG1hdGNoZXMgKGZmU3RhdGUsIGhhbmRsZWQgYWZ0ZXIg dGhlIHByaW1hcnkgcGF0aCkuCisJCSAqCisJCSAqIFRoZSBzbmFwc2hvdCBtdXN0IGJlIHRha2Vu IEJFRk9SRSBtb2RpZnlpbmcgc3RhdGUgZm9yIHRoZQorCQkgKiBsb29wLWJhY2ssIHNpbmNlIGJv dGggcGF0aHMgZGl2ZXJnZSBmcm9tIHRoZSBzYW1lIHBvaW50LgorCQkgKi8KIAkJaWYgKFJQUkVs ZW1DYW5FbXB0eUxvb3AoZWxlbSkpCiAJCQlmZlN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5z dGF0ZSwgc3RhdGUtPmVsZW1JZHgsCiAJCQkJCQkJCQkgICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+ aXNBYnNvcmJhYmxlKTsKIAotCQkvKiBMb29wIGJhY2sgZm9yIHJlYWwgbWF0Y2hlcyAocHJpbWFy eSBwYXRoKSAqLworCQkvKiBQcmltYXJ5IHBhdGg6IGxvb3AgYmFjayBmb3IgcmVhbCBtYXRjaGVz ICovCiAJCWZvciAoaW50IGQgPSBkZXB0aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsr KQogCQkJc3RhdGUtPmNvdW50c1tkXSA9IDA7CiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVt cDsKQEAgLTI1NzUsMTIgKzI2NDAsMTIgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJICBjdXJyZW50UG9zKTsKIAog CQkvKgotCQkgKiBGYXN0LWZvcndhcmQgZmFsbGJhY2sgZm9yIG51bGxhYmxlIGJvZGllcy4gIEUu Zy4gKEE/KXsyLDN9IHdoZW4gQQotCQkgKiBkb2Vzbid0IG1hdGNoOiB0aGUgbG9vcC1iYWNrIHBy b2R1Y2VzIGVtcHR5IGl0ZXJhdGlvbnMgdGhhdCBjeWNsZQotCQkgKiBkZXRlY3Rpb24gd291bGQg a2lsbC4gIEluc3RlYWQsIGV4aXQgZGlyZWN0bHkgdHJlYXRpbmcgYWxsCi0JCSAqIHJlbWFpbmlu ZyByZXF1aXJlZCBpdGVyYXRpb25zIGFzIGVtcHR5LiAgUm91dGUgdG8gZWxlbS0+bmV4dCAobm90 Ci0JCSAqIG5mYV9hZHZhbmNlX2VuZCkgdG8gYXZvaWQgY3JlYXRpbmcgY29tcGV0aW5nIGdyZWVk eS9yZWx1Y3RhbnQgbG9vcAotCQkgKiBzdGF0ZXMuCisJCSAqIEZhc3QtZm9yd2FyZCBwYXRoIGZv ciBudWxsYWJsZSBib2RpZXMuICBFLmcuIChBPyl7MiwzfSB3aGVuCisJCSAqIEEgZG9lc24ndCBt YXRjaDogdGhlIHByaW1hcnkgbG9vcC1iYWNrIHByb2R1Y2VzIGVtcHR5CisJCSAqIGl0ZXJhdGlv bnMgdGhhdCBjeWNsZSBkZXRlY3Rpb24gd291bGQga2lsbC4gIEluc3RlYWQsIGV4aXQKKwkJICog ZGlyZWN0bHkgd2l0aCBjb3VudCBzYXRpc2ZpZWQuICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QK KwkJICogbmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZCBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5 L3JlbHVjdGFudAorCQkgKiBsb29wIHN0YXRlcy4KIAkJICovCiAJCWlmIChmZlN0YXRlICE9IE5V TEwpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKaW5kZXggNzY3YTIxNDAxNmMuLjc1NGZj ZDUzMDk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtNDc4LDYgKzQ3OCwxOSBAQCBt ZXJnZUNvbnNlY3V0aXZlQWx0cyhMaXN0ICpjaGlsZHJlbikKICAqIG1lcmdlR3JvdXBQcmVmaXhT dWZmaXgKICAqCQlNZXJnZSBzZXF1ZW5jZSBwcmVmaXgvc3VmZml4IGludG8gR1JPVVAgd2l0aCBt YXRjaGluZyBjaGlsZHJlbi4KICAqCisgKiBXaGVuIGEgR1JPVVAncyBjaGlsZHJlbiBhcHBlYXIg YXMgYSBwcmVmaXggYmVmb3JlIGFuZC9vciBzdWZmaXggYWZ0ZXIKKyAqIHRoZSBHUk9VUCBpbiBh IFNFUSwgYWJzb3JiIHRoZW0gYnkgaW5jcmVtZW50aW5nIHRoZSBHUk9VUCdzIHF1YW50aWZpZXIu CisgKiBUaGlzIHJ1bnMgaXRlcmF0aXZlbHk6IEEgQiBBIEIgKEEgQikrIEEgQiAtPiAoQSBCKXs1 LH0uCisgKgorICogQWxnb3JpdGhtOgorICogICBGb3IgZWFjaCBHUk9VUCBlbmNvdW50ZXJlZCBp biB0aGUgc2VxdWVuY2U6CisgKiAgIDEuIFBSRUZJWCBwaGFzZTogY29tcGFyZSB0aGUgbGFzdCBO IGVsZW1lbnRzIGFscmVhZHkgaW4gdGhlIHJlc3VsdAorICogICAgICBsaXN0IGFnYWluc3QgdGhl IEdST1VQJ3MgY2hpbGRyZW4uICBPbiBtYXRjaCwgcmVtb3ZlIHRoZW0gZnJvbQorICogICAgICBy ZXN1bHQgYW5kIGluY3JlbWVudCB0aGUgR1JPVVAncyBtaW4vbWF4LiAgUmVwZWF0IHVudGlsIG5v IG1hdGNoLgorICogICAyLiBTVUZGSVggcGhhc2U6IGNvbXBhcmUgdGhlIG5leHQgTiBlbGVtZW50 cyBpbiB0aGUgaW5wdXQgYWdhaW5zdAorICogICAgICB0aGUgR1JPVVAncyBjaGlsZHJlbi4gIE9u IG1hdGNoLCBza2lwIHRoZW0gKHZpYSBza2lwVW50aWwpIGFuZAorICogICAgICBpbmNyZW1lbnQg bWluL21heC4gIFJlcGVhdCB1bnRpbCBubyBtYXRjaC4KKyAqCiAgKiBFeGFtcGxlczoKICAqICAg QSBCIChBIEIpKyAtPiAoQSBCKXsyLH0KICAqICAgKEEgQikrIEEgQiAtPiAoQSBCKXsyLH0KQEAg LTgxMyw4ICs4MjYsMTYgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAq cGF0dGVybikKIAl9CiAKIAkvKgotCSAqIENhc2UgMi8zOiBTYWZlIHdoZW4gY2hpbGQgaXMgZmlu aXRlIEFORCAob3V0ZXIgaXMgZXhhY3QgT1IgY2hpbGQgaXMKLQkgKiB7MSwxfSkKKwkgKiBDYXNl IDI6IE91dGVyIGV4YWN0IChtaW4gPT0gbWF4KTogKEF7MiwzfSl7NH0gLT4gQXs4LDEyfS4KKwkg KiAgICAgICAgIFNhZmUgYmVjYXVzZSBldmVyeSBpdGVyYXRpb24gcHJvZHVjZXMgdGhlIHNhbWUg cmFuZ2UuCisJICoKKwkgKiBDYXNlIDM6IENoaWxkIHsxLDF9OiAoQSl7Miw1fSAtPiBBezIsNX0u CisJICogICAgICAgICBTYWZlIGJlY2F1c2UgdGhlIGNoaWxkIGNvbnRyaWJ1dGVzIGV4YWN0bHkg b25lIHBlcgorCSAqICAgICAgICAgaXRlcmF0aW9uLCBzbyB0aGUgb3V0ZXIgcmFuZ2UgbWFwcyBk aXJlY3RseS4KKwkgKgorCSAqIFVuc2FmZSBleGFtcGxlOiAoQXsyfSl7MiwzfSBwcm9kdWNlcyBj b3VudHMgNCBvciA2IG9ubHksIG5vdAorCSAqIHRoZSBmdWxsIHJhbmdlIDQuLjYsIHNvIHdlIGNh bm5vdCBmbGF0dGVuIHdoZW4gY2hpbGQgaGFzIGEKKwkgKiBub24tdHJpdmlhbCByYW5nZSBBTkQg b3V0ZXIgaXMgYWxzbyBhIHJhbmdlLgogCSAqLwogCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9RVUFO VElUWV9JTkYgJiYKIAkJKHBhdHRlcm4tPm1pbiA9PSBwYXR0ZXJuLT5tYXggfHwKQEAgLTgyNCw2 ICs4NDUsNyBAQCB0cnlNdWx0aXBseVF1YW50aWZpZXJzKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJu KQogCQlpZiAobmV3X21pbl82NCA+PSBSUFJfUVVBTlRJVFlfSU5GKQogCQkJcmV0dXJuIHBhdHRl cm47CiAKKwkJLyogT3V0ZXIgdW5ib3VuZGVkOiByZXN1bHQgaXMgdW5ib3VuZGVkIHJlZ2FyZGxl c3Mgb2YgY2hpbGQgKi8KIAkJaWYgKHBhdHRlcm4tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GKQog CQkJbmV3X21heF82NCA9IFJQUl9RVUFOVElUWV9JTkY7CiAJCWVsc2UKQEAgLTExODYsOCArMTIw OCwxOSBAQCBmaWxsUlBSUGF0dGVyblZhcihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVy biAqcGF0LCBpbnQgKmlkeCwgUlBSRGVwdGggZGVwdAogICogZmlsbFJQUlBhdHRlcm5Hcm91cAog ICoJCUZpbGwgYSBHUk9VUCBwYXR0ZXJuIGFuZCBpdHMgY2hpbGRyZW4uCiAgKgotICogQ3JlYXRl cyBlbGVtZW50cyBmb3IgZ3JvdXAgY29udGVudCBhdCBpbmNyZWFzZWQgZGVwdGgsIHBsdXMgYW4g RU5EIG1hcmtlcgotICogaWYgdGhlIGdyb3VwIGhhcyBhIG5vbi10cml2aWFsIHF1YW50aWZpZXIu CisgKiBDcmVhdGVzIGVsZW1lbnRzIGZvciBncm91cCBjb250ZW50IGF0IGluY3JlYXNlZCBkZXB0 aCwgcGx1cyBCRUdJTi9FTkQKKyAqIG1hcmtlciBwYWlyIGlmIHRoZSBncm91cCBoYXMgYSBub24t dHJpdmlhbCBxdWFudGlmaWVyIChub3QgezEsMX0pLgorICoKKyAqIEVsZW1lbnQgbGF5b3V0IGZv ciAoQSBCKXsyLDN9OgorICoKKyAqICAgW0JFR0lOXSAgW0FdICBbQl0gIFtFTkRdICBbbmV4dCBl bGVtZW50Li4uXQorICogICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIF4KKyAqICAg ICB8ICAgICAgICAgICAgICAgICAgKy0tIGp1bXAgLS0rIChsb29wIGJhY2sgdG8gZmlyc3QgY2hp bGQpCisgKiAgICAgKy0tLS0ganVtcCAtLS0tLS0tLS0tLS0tLS0tLS0tKyAoc2tpcCB0byBhZnRl ciBFTkQpCisgKgorICogQkVHSU4uanVtcCBwb2ludHMgcGFzdCBFTkQgKHNraXAgcGF0aCB3aGVu IGNvdW50ID49IG1heCBvciBtaW4gPT0gMCkuCisgKiBFTkQuanVtcCBwb2ludHMgdG8gdGhlIGZp cnN0IGNoaWxkIChsb29wLWJhY2sgcGF0aCkuCisgKiBCRUdJTi5uZXh0IGFuZCBFTkQubmV4dCBh cmUgc2V0IGxhdGVyIGJ5IGZpbmFsaXplUlBSUGF0dGVybigpLgogICoKICAqIFJldHVybnMgdHJ1 ZSBpZiB0aGlzIGdyb3VwIGlzIG51bGxhYmxlLiAgQSBncm91cCBpcyBudWxsYWJsZSB3aGVuIGl0 cwogICogbWluIGlzIDAgKGNhbiBiZSBza2lwcGVkIGVudGlyZWx5KSBvciBpdHMgYm9keSBpcyBu dWxsYWJsZSAoZXZlcnkgcGF0aAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0031-Remove-unused-include-fix-header-ordering.txt" Content-Disposition: attachment; filename="nocfbot-0031-Remove-unused-include-fix-header-ordering.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon645zs30 RnJvbSBhMDc0Y2RiNDVmZmFhNmE0NmEwYjYwYTU4MWEyZWI1MjdkODU1Y2FkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMjA6NTI6MTMgKzA5MDAKU3ViamVjdDogW1BBVENIIDMxLzQwXSBS ZW1vdmUgdW51c2VkIGluY2x1ZGUgYW5kIGZpeCBoZWFkZXIgb3JkZXJpbmcgaW4gUlBSCiBmaWxl cwoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIHwgMiArLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICB8IDMgKy0tCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcnByLmMgICAgICAgIHwgMyArLS0KIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCmluZGV4IGUyZDQxYzMwOThmLi41OGI2NjkzZWQ3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCkBAIC01Niw4ICs1Niw4IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCi0jaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vzcy9oZWFwdG9h c3QuaCIKKyNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R1cGNvbnZl cnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXF1ZW5jZS5oIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0Fn Zy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDg0OWViZjhh YmIwLi4wMmYxN2U1NDcyYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAt MzQsMTAgKzM0LDkgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgotI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCi0j aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgorI2luY2x1ZGUgImNvbW1vbi9pbnQu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNSUFIuaCIKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIu YwppbmRleCA4ZmJlMTJlMTUxOC4uODg2NGIyMGU2Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMK QEAgLTMwLDkgKzMwLDggQEAKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRl ICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jwci5oIgotI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9jbGF1c2UuaCIKLSNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29s bGF0ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5j bHVkZSAicGFyc2VyL3BhcnNlX3Jwci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQu aCIKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0032-Fix-A1-frame-optimization-bypass-test.txt" Content-Disposition: attachment; filename="nocfbot-0032-Fix-A1-frame-optimization-bypass-test.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon648ga31 RnJvbSAyNzEwOTE2NWI4YzY3NjQwODliZjEwNmM3NTBjNjNiN2U0NWRjN2ExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDA6MTA6NTUgKzA5MDAKU3ViamVjdDogW1BBVENIIDMyLzQwXSBG aXggQTEgZnJhbWUgb3B0aW1pemF0aW9uIGJ5cGFzcyB0ZXN0IGluCiBycHJfaW50ZWdyYXRpb24K ClRoZSBub24tUlBSIGJhc2VsaW5lIHVzZWQgY291bnQoKikgd2l0aCBhIGRlZmF1bHQgZnJhbWUu ICBjb3VudCdzCnByb3N1cHBvcnQgZG9lcyBub3QgaGFuZGxlIFN1cHBvcnRSZXF1ZXN0T3B0aW1p emVXaW5kb3dDbGF1c2UsIHNvCm9wdGltaXplX3dpbmRvd19jbGF1c2VzKCkgd2FzIG5ldmVyIGlu dm9rZWQgb24gdGhlIGJhc2VsaW5lOyB0aGUKYWJzZW5jZSBvZiBhbiBleHBsaWNpdCBmcmFtZSBp biBFWFBMQUlOIHdhcyBhIHJ1bGV1dGlscwpkZWZhdWx0LWZyYW1lIG9taXNzaW9uLCBub3QgdGhl IHJlc3VsdCBvZiBhbnkgcmV3cml0ZS4gIFRoZSBwbGFuCmRpZmYgdGhlcmVmb3JlIGRpZCBub3Qg YWN0dWFsbHkgZXhlcmNpc2UgdGhlIFJQUiBndWFyZC4KClVzZSByb3dfbnVtYmVyKCkgaW5zdGVh ZCwgd2hpY2ggaGFzIHByb3N1cHBvcnQgaGFuZGxpbmcgdGhhdApyZXF1ZXN0LCBhbmQgZ2l2ZSBi b3RoIHF1ZXJpZXMgdGhlIHNhbWUgZXhwbGljaXQgaW5wdXQgZnJhbWUKKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykuICBUaGUgbm9uLVJQUgpwbGFuIG5v dyBzaG93cyB0aGUgcmV3cml0dGVuIGZyYW1lIChST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcpCndo aWxlIHRoZSBSUFIgcGxhbiBrZWVwcyBpdCBpbnRhY3QsIG1ha2luZyB0aGUgZ3VhcmQncyBlZmZl Y3QKb2JzZXJ2YWJsZSBpbiBFWFBMQUlOLgoKUmV3b3JkIHRoZSBibG9jayBjb21tZW50IHRvIGRl c2NyaWJlIHRoZSBhY3R1YWwgcGxhbm5lciBhY3Rpb24sCmFuZCBhbGlnbiB0aGUgaW5saW5lIGxh YmVscyB3aXRoIHRoZSBzdXJyb3VuZGluZyBBMi9BMyBzZWN0aW9ucy4KLS0tCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgfCAzMCArKysrKysrKysrKy0tLS0t LS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsICAgICAgfCAyNiAr KysrKysrKystLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDIyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2lu dGVncmF0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9u Lm91dAppbmRleCA5ZGJmMGY0M2M4Zi4uMGNjNzliNzU2MDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKQEAgLTM4LDI2ICszOCwzMiBAQCBJTlNF UlQgSU5UTyBycHJfaW50ZWcgVkFMVUVTCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEExLiBGcmFtZSBvcHRpbWl6YXRp b24gYnlwYXNzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIG9wdGltaXplX3dpbmRvd19jbGF1c2VzKCkgbXVzdCBub3Qg YXBwbHkgZnJhbWUgb3B0aW1pemF0aW9uIHRvIFJQUiB3aW5kb3dzLgotLS0gTm9uLVJQUiBjYXNl OiBmcmFtZSBjYW4gYmUgb3B0aW1pemVkIChSQU5HRSAtPiBST1dTIGNvbnZlcnNpb24sIGV0Yy4p LgotLS0gUlBSIGNhc2U6IGZyYW1lIG11c3Qgc3RheSBhcyBzcGVjaWZpZWQgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQKLS0tIFVOQk9VTkRFRCBGT0xMT1dJTkcpLgotLS0gTm9uLVJQUiB3 aW5kb3cgd2l0aCBkZWZhdWx0IGZyYW1lIC0+IGZyYW1lIG9wdGltaXphdGlvbiBhcHBsaWVkCist LSBWZXJpZnkgdGhhdCBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcygpIGRvZXMgbm90IGFwcGx5IGZy YW1lCistLSBvcHRpbWl6YXRpb24gdG8gUlBSIHdpbmRvd3MuICBCb3RoIHF1ZXJpZXMgYmVsb3cg dXNlIHRoZSBzYW1lIGlucHV0CistLSBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKSB3aXRoCistLSByb3dfbnVtYmVyKCksIHdob3NlIHByb3N1 cHBvcnQgaGFuZGxlcworLS0gU3VwcG9ydFJlcXVlc3RPcHRpbWl6ZVdpbmRvd0NsYXVzZSBhbmQg dHJpZ2dlcnMgZnJhbWUgcmV3cml0aW5nLgorLS0gSW4gdGhlIG5vbi1SUFIgYmFzZWxpbmUgdGhl IHBsYW5uZXIgcmV3cml0ZXMgdGhlIGZyYW1lIHRvIFJPV1MKKy0tIFVOQk9VTkRFRCBQUkVDRURJ TkcsIHdoaWxlIGluIHRoZSBSUFIgY2FzZSB0aGUgZ3VhcmQgaW4KKy0tIG9wdGltaXplX3dpbmRv d19jbGF1c2VzKCkgYmxvY2tzIHRoZSByZXdyaXRlIGFuZCB0aGUgZnJhbWUgaXMKKy0tIHByZXNl cnZlZCBhcyBzcGVjaWZpZWQuCistLSBOb24tUlBSIGJhc2VsaW5lOiB0aGUgcGxhbm5lciByZXdy aXRlcyB0aGUgZnJhbWUgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HLgogRVhQTEFJTiAoQ09T VFMgT0ZGKQotU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZwotV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkKTsKLSAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU0VMRUNUIHJvd19udW1iZXIoKSBP VkVSIHcgRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyk7CisgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgV2luZG93QWdn Ci0gICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkKQorICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcpCiAgICAtPiAgU29ydAogICAgICAgICAgU29y dCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCiAoNSByb3dzKQog Ci0tLSBSUFIgd2luZG93IC0+IGZyYW1lIG9wdGltaXphdGlvbiBtdXN0IE5PVCBjaGFuZ2UgdGhl IGZyYW1lCistLSBSUFIgY2FzZTogdGhlIGZyYW1lIGlzIHByZXNlcnZlZCBhcyBzcGVjaWZpZWQu CiBFWFBMQUlOIChDT1NUUyBPRkYpCi1TRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2lu dGVnCitTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgdyBGUk9NIHJwcl9pbnRlZwogV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCiAgICAgUEFUVEVSTiAoQSBCKykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf aW50ZWdyYXRpb24uc3FsCmluZGV4IDdkNzBmNWU0Yjk4Li42ZDQ3NzI4ZTkxMSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCkBAIC00MCwxOSArNDAsMjUgQEAgSU5T RVJUIElOVE8gcnByX2ludGVnIFZBTFVFUwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBMS4gRnJhbWUgb3B0aW1pemF0 aW9uIGJ5cGFzcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcygpIG11c3Qgbm90 IGFwcGx5IGZyYW1lIG9wdGltaXphdGlvbiB0byBSUFIgd2luZG93cy4KLS0tIE5vbi1SUFIgY2Fz ZTogZnJhbWUgY2FuIGJlIG9wdGltaXplZCAoUkFOR0UgLT4gUk9XUyBjb252ZXJzaW9uLCBldGMu KS4KLS0tIFJQUiBjYXNlOiBmcmFtZSBtdXN0IHN0YXkgYXMgc3BlY2lmaWVkIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5ECi0tLSBVTkJPVU5ERUQgRk9MTE9XSU5HKS4KLQotLS0gTm9uLVJQ UiB3aW5kb3cgd2l0aCBkZWZhdWx0IGZyYW1lIC0+IGZyYW1lIG9wdGltaXphdGlvbiBhcHBsaWVk CistLSBWZXJpZnkgdGhhdCBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcygpIGRvZXMgbm90IGFwcGx5 IGZyYW1lCistLSBvcHRpbWl6YXRpb24gdG8gUlBSIHdpbmRvd3MuICBCb3RoIHF1ZXJpZXMgYmVs b3cgdXNlIHRoZSBzYW1lIGlucHV0CistLSBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKSB3aXRoCistLSByb3dfbnVtYmVyKCksIHdob3NlIHBy b3N1cHBvcnQgaGFuZGxlcworLS0gU3VwcG9ydFJlcXVlc3RPcHRpbWl6ZVdpbmRvd0NsYXVzZSBh bmQgdHJpZ2dlcnMgZnJhbWUgcmV3cml0aW5nLgorLS0gSW4gdGhlIG5vbi1SUFIgYmFzZWxpbmUg dGhlIHBsYW5uZXIgcmV3cml0ZXMgdGhlIGZyYW1lIHRvIFJPV1MKKy0tIFVOQk9VTkRFRCBQUkVD RURJTkcsIHdoaWxlIGluIHRoZSBSUFIgY2FzZSB0aGUgZ3VhcmQgaW4KKy0tIG9wdGltaXplX3dp bmRvd19jbGF1c2VzKCkgYmxvY2tzIHRoZSByZXdyaXRlIGFuZCB0aGUgZnJhbWUgaXMKKy0tIHBy ZXNlcnZlZCBhcyBzcGVjaWZpZWQuCisKKy0tIE5vbi1SUFIgYmFzZWxpbmU6IHRoZSBwbGFubmVy IHJld3JpdGVzIHRoZSBmcmFtZSB0byBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcuCiBFWFBMQUlO IChDT1NUUyBPRkYpCi1TRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCi1XSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQpOworU0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcgRlJPTSBy cHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyk7CiAKLS0tIFJQUiB3aW5kb3cgLT4gZnJh bWUgb3B0aW1pemF0aW9uIG11c3QgTk9UIGNoYW5nZSB0aGUgZnJhbWUKKy0tIFJQUiBjYXNlOiB0 aGUgZnJhbWUgaXMgcHJlc2VydmVkIGFzIHNwZWNpZmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikK LVNFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKK1NFTEVDVCByb3dfbnVtYmVy KCkgT1ZFUiB3IEZST00gcnByX2ludGVnCiBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKICAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBQQVRU RVJOIChBIEIrKQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0033-Fix-imperative-voice-check_rpr_nav_expr-comment.txt" Content-Disposition: attachment; filename="nocfbot-0033-Fix-imperative-voice-check_rpr_nav_expr-comment.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64a2q32 RnJvbSAwMTUyNjFiZDdlODUzZmNmMjYxODhkODM3NGU4ZDlkMDI1OTk2N2JhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDA6MTk6MjAgKzA5MDAKU3ViamVjdDogW1BBVENIIDMzLzQwXSBG aXggaW1wZXJhdGl2ZSB2b2ljZSBpbiBjaGVja19ycHJfbmF2X2V4cHIgaGVhZGVyCiBjb21tZW50 CgpUaGUgaGVhZGVyIGNvbW1lbnQgb2YgY2hlY2tfcnByX25hdl9leHByKCkgb3BlbnMgd2l0aCB0 aGUKaW1wZXJhdGl2ZSAiVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2RXhwciBub2RlIC4uLiIgYnV0 IHRoZQpmb2xsb3dpbmcgc2VudGVuY2UgcmV2ZXJ0cyB0byB0aGUgdGhpcmQtcGVyc29uICJDaGVj a3MgZm9yCmlsbGVnYWwgbmVzdGluZyAuLi4iLiAgRHJvcCB0aGUgdHJhaWxpbmcgcyBzbyB0aGF0 IGJvdGgKc2VudGVuY2VzIGFyZSBpbXBlcmF0aXZlIGFuZCBjb25zaXN0ZW50LgoKQ29tbWVudC1v bmx5IGNoYW5nZTsgbm8gZnVuY3Rpb25hbCBlZmZlY3QuCi0tLQogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3Jwci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IDg4NjRiMjBlNmNmLi44N2NjZjU1 YTVlZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtNDI4LDcgKzQyOCw3IEBAIHRyYW5zZm9y bURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRv d0RlZiAqd2luZGVmLAogLyoKICAqIGNoZWNrX3Jwcl9uYXZfZXhwcgogICoJCVZhbGlkYXRlIGEg c2luZ2xlIFJQUk5hdkV4cHIgbm9kZSBieSB3YWxraW5nIGl0cyBhcmcgYW5kIG9mZnNldF9hcmcK LSAqCQlzdWJ0cmVlcyBpbiBhIHNpbmdsZSBwYXNzIGVhY2guICBDaGVja3MgZm9yIGlsbGVnYWwg bmVzdGluZywgbWlzc2luZworICoJCXN1YnRyZWVzIGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENo ZWNrIGZvciBpbGxlZ2FsIG5lc3RpbmcsIG1pc3NpbmcKICAqCQljb2x1bW4gcmVmZXJlbmNlcywg YW5kIG5vbi1jb25zdGFudCBvZmZzZXQgZXhwcmVzc2lvbnMuCiAgKgogICogTmVzdGluZyBydWxl cyAoU1FMIHN0YW5kYXJkIDUuNi40KToKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0034-Fix-passive-voice-RPR-error-messages.txt" Content-Disposition: attachment; filename="nocfbot-0034-Fix-passive-voice-RPR-error-messages.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64bmz33 RnJvbSAxMGRjODM3MzViMDQyODMzZGI3OWFlN2MxMzFiNDczOWMzN2U3NTgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDA6MzA6MTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDM0LzQwXSBG aXggcGFzc2l2ZSB2b2ljZSBpbiBSUFIgZXJyb3IgbWVzc2FnZXMKClNldmVyYWwgUlBSIGVycm9y IG1lc3NhZ2VzIHVzZWQgcGFzc2l2ZSBjb25zdHJ1Y3Rpb25zIGxpa2UgIlggaXMgbm90CnBlcm1p dHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiIG9yCiI8ZnVuY25hbWU+ KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiLiAgUG9zdGdyZVNRTCdzCm1l c3NhZ2Ugc3R5bGUgZ3VpZGUgcHJlZmVycyBhY3RpdmUgdm9pY2UgZm9yIHByb2hpYml0aW9ucyBh bmQKY29uc3RyYWludHM7IHJlcGhyYXNlIHRoZSBhZmZlY3RlZCBtZXNzYWdlcyBzbyB0aGUgYWN0 aW9uIGlzIHRoZQpzdWJqZWN0LgoKICAtICJGUkFNRSBvcHRpb24ge0dST1VQUyxSQU5HRX0gaXMg bm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuCiAgICByZWNvZ25pdGlvbiBpcyB1c2VkIiAt PiAiY2Fubm90IHVzZSBGUkFNRSBvcHRpb24ge0dST1VQUyxSQU5HRX0KICAgIHdpdGggcm93IHBh dHRlcm4gcmVjb2duaXRpb24iCiAgLSAiRVhDTFVERSBvcHRpb25zIGFyZSBub3QgcGVybWl0dGVk IHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24KICAgIGlzIHVzZWQiIC0+ICJjYW5ub3QgdXNl IEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0ZXJuCiAgICByZWNvZ25pdGlvbiIKICAtICJG UkFNRSBtdXN0IHN0YXJ0IGF0IENVUlJFTlQgUk9XIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRp b24gaXMKICAgIHVzZWQiIC0+ICIuLi4gd2hlbiB1c2luZyByb3cgcGF0dGVybiByZWNvZ25pdGlv biIgKGNvbnN0cmFpbnQKICAgIGZvcm0gcmV0YWluZWQsIG9ubHkgdGhlIHRyYWlsaW5nIHBhc3Np dmUgcGFydGljaXBsZSByZXBsYWNlZCkKICAtICJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIGNhbm5v dCBiZSBuZXN0ZWQgbW9yZSB0aGFuIHR3byBsZXZlbHMKICAgIGRlZXAiIC0+ICJjYW5ub3QgbmVz dCByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG1vcmUgdGhhbiB0d28KICAgIGxldmVscyBkZWVwIgog IC0gIiVzIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIiAocGFyc2VfZnVuYy5j KSBhbmQKICAgIGVpZ2h0IG1hdGNoaW5nIGRlZmVuc2l2ZSBzdHVicyBpbiB3aW5kb3dmdW5jcy5j CiAgICAoIlBSRVYoKS9ORVhUKCkvRklSU1QoKS9MQVNUKCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBh IERFRklORQogICAgY2xhdXNlIikgLT4gImNhbm5vdCB1c2UgLi4uIG91dHNpZGUgYSBERUZJTkUg Y2xhdXNlIgoKU3RhdGUtZGVzY3JpYmluZyBtZXNzYWdlcyBzdWNoIGFzICJERUZJTkUgdmFyaWFi bGUgJXMgaXMgbm90IHVzZWQKaW4gUEFUVEVSTiIgYW5kIGNvcHVsYSBjb25zdHJhaW50cyBsaWtl ICJtdXN0IGJlIGEgZGlyZWN0IGFyZ3VtZW50Cm9mIHRoZSBvdXRlciBuYXZpZ2F0aW9uIiAvICJv ZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiIGFyZSBsZWZ0CmFzIGlzOyB0aGV5IGFyZSBub3Qg cGFzc2l2ZSBpbiB0aGUgcHJvaGliaXRpb24gc2Vuc2UgYW5kIGZvbGxvdwpleGlzdGluZyBQRyBp ZGlvbXMuCgpVcGRhdGUgcmVncmVzc2lvbiB0ZXN0cyAocnByX2Jhc2Uuc3FsLy5vdXQgYW5kIHJw ci5vdXQpIHRvIG1hdGNoCnRoZSBuZXcgd29yZGluZy4KLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZnVuYy5jICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnBy LmMgICAgICAgICB8IDEwICsrLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3Mu YyAgICB8IDE2ICsrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAg ICB8IDE0ICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IHwg NTYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9i YXNlLnNxbCAgICAgIHwgMjQgKysrKystLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0 aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggYWE0 NWE5ODcxM2YuLjA3YmYxMTk2NWI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTc5MCw3 ICs3OTAsNyBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1 bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJLyogTm90IGEgY29sdW1uIHByb2plY3Rpb24g4oCUIHJl cG9ydCBlcnJvciAqLwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKLQkJCQkgZXJybXNnKCIlcyBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5F IGNsYXVzZSIsCisJCQkJIGVycm1zZygiY2Fubm90IHVzZSAlcyBvdXRzaWRlIGEgREVGSU5FIGNs YXVzZSIsCiAJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGZ1bmNuYW1lKSksCiAJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpp bmRleCA4N2NjZjU1YTVlZS4uZjU2YjdkYjViYzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAg LTc2LDcgKzc2LDcgQEAgdHJhbnNmb3JtUlBSKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xh dXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAJaWYgKHdjLT5mcmFtZU9wdGlvbnMgJiBGUkFN RU9QVElPTl9HUk9VUFMpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9X SU5ET1dJTkdfRVJST1IpLAotCQkJCSBlcnJtc2coIkZSQU1FIG9wdGlvbiBHUk9VUFMgaXMgbm90 IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiKSwKKwkJCQkg ZXJybXNnKCJjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBHUk9VUFMgd2l0aCByb3cgcGF0dGVybiBy ZWNvZ25pdGlvbiIpLAogCQkJCSBlcnJoaW50KCJVc2UgUk9XUyBpbnN0ZWFkLiIpLAogCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAogCQkJCQkJCQkJd2luZGVmLT5mcmFtZUxvY2F0aW9u ID49IDAgPwpAQCAtODQsNyArODQsNyBAQCB0cmFuc2Zvcm1SUFIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBXaW5kb3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAlpZiAod2MtPmZyYW1lT3B0 aW9ucyAmIEZSQU1FT1BUSU9OX1JBTkdFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2Rl KEVSUkNPREVfV0lORE9XSU5HX0VSUk9SKSwKLQkJCQkgZXJybXNnKCJGUkFNRSBvcHRpb24gUkFO R0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQi KSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3aXRoIHJvdyBw YXR0ZXJuIHJlY29nbml0aW9uIiksCiAJCQkJIGVycmhpbnQoIlVzZSBST1dTIGluc3RlYWQuIiks CiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCiAJCQkJCQkJCQl3aW5kZWYtPmZyYW1l TG9jYXRpb24gPj0gMCA/CkBAIC0xMTEsNyArMTExLDcgQEAgdHJhbnNmb3JtUlBSKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAKIAkJZXJl cG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dJTkRPV0lOR19FUlJPUiksCi0JCQkJ IGVycm1zZygiRlJBTUUgbXVzdCBzdGFydCBhdCBDVVJSRU5UIFJPVyB3aGVuIHJvdyBwYXR0ZXJu IHJlY29nbml0aW9uIGlzIHVzZWQiKSwKKwkJCQkgZXJybXNnKCJGUkFNRSBtdXN0IHN0YXJ0IGF0 IENVUlJFTlQgUk9XIHdoZW4gdXNpbmcgcm93IHBhdHRlcm4gcmVjb2duaXRpb24iKSwKIAkJCQkg ZXJyZGV0YWlsKCJDdXJyZW50IGZyYW1lIHN0YXJ0cyB3aXRoICVzLiIsIHN0YXJ0Qm91bmQpLAog CQkJCSBlcnJoaW50KCJVc2U6ICVzIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIC4uLiIsIGZyYW1l VHlwZSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHdpbmRlZi0+ZnJhbWVMb2Nh dGlvbiA+PSAwID8gd2luZGVmLT5mcmFtZUxvY2F0aW9uIDogd2luZGVmLT5sb2NhdGlvbikpKTsK QEAgLTEzNyw3ICsxMzcsNyBAQCB0cmFuc2Zvcm1SUFIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5k b3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAogCQllcmVwb3J0KEVSUk9SLAogCQkJ CShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VSUk9SKSwKLQkJCQkgZXJybXNnKCJFWENMVURF IG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBp cyB1c2VkIiksCisJCQkJIGVycm1zZygiY2Fubm90IHVzZSBFWENMVURFIG9wdGlvbnMgd2l0aCBy b3cgcGF0dGVybiByZWNvZ25pdGlvbiIpLAogCQkJCSBlcnJkZXRhaWwoIkZyYW1lIGRlZmluaXRp b24gaW5jbHVkZXMgJXMuIiwgZXhjbHVkZVR5cGUpLAogCQkJCSBlcnJoaW50KCJSZW1vdmUgdGhl IEVYQ0xVREUgY2xhdXNlIGZyb20gdGhlIHdpbmRvdyBkZWZpbml0aW9uLiIpLAogCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCB3aW5kZWYtPmV4Y2x1ZGVMb2NhdGlvbiA+PSAwID8gd2lu ZGVmLT5leGNsdWRlTG9jYXRpb24gOiB3aW5kZWYtPmxvY2F0aW9uKSkpOwpAQCAtNDk0LDcgKzQ5 NCw3IEBAIGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJOYXZFeHByICpuYXYsIFBhcnNlU3RhdGUgKnBz dGF0ZSkKIAkJCWlmIChyZXN1bHQubmF2X2NvdW50ID4gMSkKIAkJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJIGVycm1zZygicm93 IHBhdHRlcm4gbmF2aWdhdGlvbiBjYW5ub3QgYmUgbmVzdGVkIG1vcmUgdGhhbiB0d28gbGV2ZWxz IGRlZXAiKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBuZXN0IHJvdyBwYXR0ZXJuIG5hdmlnYXRp b24gbW9yZSB0aGFuIHR3byBsZXZlbHMgZGVlcCIpLAogCQkJCQkJIGVycmhpbnQoIk9ubHkgUFJF VihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkp IGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNz LmMKaW5kZXggZmI5NjZjYWU0M2MuLjQ2ZTdhMDNhNjY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvd2lu ZG93ZnVuY3MuYwpAQCAtNzQwLDcgKzc0MCw3IEBAIHdpbmRvd19wcmV2KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIlBSRVYoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVG SU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJjYW5ub3QgdXNlIFBSRVYoKSBvdXRzaWRlIGEg REVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAq LwogfQogCkBAIC03NTQsNyArNzU0LDcgQEAgd2luZG93X25leHQoUEdfRlVOQ1RJT05fQVJHUykK IHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAotCQkJIGVycm1zZygiTkVYVCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUg Y2xhdXNlIikpKTsKKwkJCSBlcnJtc2coImNhbm5vdCB1c2UgTkVYVCgpIG91dHNpZGUgYSBERUZJ TkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9 CiAKQEAgLTc2OCw3ICs3NjgsNyBAQCB3aW5kb3dfcHJldl9vZmZzZXQoUEdfRlVOQ1RJT05fQVJH UykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAotCQkJIGVycm1zZygiUFJFVigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJ TkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coImNhbm5vdCB1c2UgUFJFVigpIG91dHNpZGUgYSBE RUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICov CiB9CiAKQEAgLTc4Miw3ICs3ODIsNyBAQCB3aW5kb3dfbmV4dF9vZmZzZXQoUEdfRlVOQ1RJT05f QVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygiTkVYVCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBE RUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coImNhbm5vdCB1c2UgTkVYVCgpIG91dHNpZGUg YSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVk ICovCiB9CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCB3aW5kb3dfZmlyc3QoUEdfRlVOQ1RJT05fQVJH UykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAotCQkJIGVycm1zZygiRklSU1QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVG SU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJjYW5ub3QgdXNlIEZJUlNUKCkgb3V0c2lkZSBh IERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQg Ki8KIH0KIApAQCAtODEwLDcgKzgxMCw3IEBAIHdpbmRvd19sYXN0KFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKLQkJCSBlcnJtc2coIkxBU1QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5F IGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJjYW5ub3QgdXNlIExBU1QoKSBvdXRzaWRlIGEgREVG SU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLwog fQogCkBAIC04MjQsNyArODI0LDcgQEAgd2luZG93X2ZpcnN0X29mZnNldChQR19GVU5DVElPTl9B UkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJGSVJTVCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBE RUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coImNhbm5vdCB1c2UgRklSU1QoKSBvdXRzaWRl IGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hl ZCAqLwogfQogCkBAIC04MzgsNiArODM4LDYgQEAgd2luZG93X2xhc3Rfb2Zmc2V0KFBHX0ZVTkNU SU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIkxBU1QoKSBjYW4gb25seSBiZSB1c2VkIGlu IGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJjYW5ub3QgdXNlIExBU1QoKSBvdXRz aWRlIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVh Y2hlZCAqLwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDMyYWE4YmMzNzIyLi4z NTIwYzVjNWQ3NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTAyMywxMiArMTAy MywxMiBAQCBXSU5ET1cgdyBBUyAoCiAtLQogLS0gUFJFViBvdXRzaWRlIERFRklORSBjbGF1c2UK IFNFTEVDVCBwcmV2KHByaWNlKSBGUk9NIHN0b2NrOwotRVJST1I6ICBwcmV2IGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitFUlJPUjogIGNhbm5vdCB1c2UgcHJldiBvdXRzaWRl IGEgREVGSU5FIGNsYXVzZQogTElORSAxOiBTRUxFQ1QgcHJldihwcmljZSkgRlJPTSBzdG9jazsK ICAgICAgICAgICAgICAgIF4KIC0tIE5FWFQgb3V0c2lkZSBERUZJTkUgY2xhdXNlCiBTRUxFQ1Qg bmV4dChwcmljZSkgRlJPTSBzdG9jazsKLUVSUk9SOiAgbmV4dCBjYW4gb25seSBiZSB1c2VkIGlu IGEgREVGSU5FIGNsYXVzZQorRVJST1I6ICBjYW5ub3QgdXNlIG5leHQgb3V0c2lkZSBhIERFRklO RSBjbGF1c2UKIExJTkUgMTogU0VMRUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7CiAgICAgICAg ICAgICAgICBeCiAtLSBOZXN0ZWQgUFJFVgpAQCAtMTQzMSwxMSArMTQzMSwxMSBAQCBXSU5ET1cg dyBBUyAoCiAKIC0tIDItYXJnIFBSRVYvTkVYVCBvdXRzaWRlIERFRklORSBjbGF1c2UKIFNFTEVD VCBwcmV2KHByaWNlLCAyKSBGUk9NIHN0b2NrOwotRVJST1I6ICBwcmV2IGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlCitFUlJPUjogIGNhbm5vdCB1c2UgcHJldiBvdXRzaWRlIGEg REVGSU5FIGNsYXVzZQogTElORSAxOiBTRUxFQ1QgcHJldihwcmljZSwgMikgRlJPTSBzdG9jazsK ICAgICAgICAgICAgICAgIF4KIFNFTEVDVCBuZXh0KHByaWNlLCAyKSBGUk9NIHN0b2NrOwotRVJS T1I6ICBuZXh0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitFUlJPUjogIGNh bm5vdCB1c2UgbmV4dCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQogTElORSAxOiBTRUxFQ1QgbmV4 dChwcmljZSwgMikgRlJPTSBzdG9jazsKICAgICAgICAgICAgICAgIF4KIC0tIDItYXJnIFBSRVYv TkVYVDogbmVnYXRpdmUgb2Zmc2V0CkBAIC0xOTY3LDE1ICsxOTY3LDE1IEBAIFNFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKIEVSUk9SOiAg cm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKIC0tIEZJ UlNUL0xBU1Qgb3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKIFNFTEVDVCBmaXJz dCh2YWwpIEZST00gcnByX25hdjsKLUVSUk9SOiAgZmlyc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBh IERFRklORSBjbGF1c2UKK0VSUk9SOiAgY2Fubm90IHVzZSBmaXJzdCBvdXRzaWRlIGEgREVGSU5F IGNsYXVzZQogTElORSAxOiBTRUxFQ1QgZmlyc3QodmFsKSBGUk9NIHJwcl9uYXY7CiAgICAgICAg ICAgICAgICBeCiBTRUxFQ1QgbGFzdCh2YWwpIEZST00gcnByX25hdjsKLUVSUk9SOiAgbGFzdCBj YW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorRVJST1I6ICBjYW5ub3QgdXNlIGxh c3Qgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKIExJTkUgMTogU0VMRUNUIGxhc3QodmFsKSBGUk9N IHJwcl9uYXY7CiAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgZmlyc3QodmFsLCAxKSBGUk9NIHJw cl9uYXY7Ci1FUlJPUjogIGZpcnN0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNl CitFUlJPUjogIGNhbm5vdCB1c2UgZmlyc3Qgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKIExJTkUg MTogU0VMRUNUIGZpcnN0KHZhbCwgMSkgRlJPTSBycHJfbmF2OwogICAgICAgICAgICAgICAgXgog LS0gRnVuY3Rpb25hbCBub3RhdGlvbjogc2hvdWxkIGFjY2VzcyBjb2x1bW4sIG5vdCBSUFIgbmF2 aWdhdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCA5MTJiZDdi N2M3Ny4uMzYzN2E1YzgwMDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0 CkBAIC00MDIsNyArNDAyLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAg IERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIEZSQU1FIG11c3Qgc3RhcnQgYXQgQ1VS UkVOVCBST1cgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCitFUlJPUjogIEZS QU1FIG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1cgd2hlbiB1c2luZyByb3cgcGF0dGVybiByZWNv Z25pdGlvbgogTElORSA1OiAgICAgUk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgICAgIF4KIERFVEFJTDogIEN1cnJlbnQgZnJh bWUgc3RhcnRzIHdpdGggVU5CT1VOREVEIFBSRUNFRElORy4KQEAgLTQxOSwxMiArNDE5LDEyIEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAw CiApOwotRVJST1I6ICBFWENMVURFIG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cg cGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCitFUlJPUjogIGNhbm5vdCB1c2UgRVhDTFVERSBv cHRpb25zIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIExJTkUgNjogICAgIEVYQ0xVREUg Q1VSUkVOVCBST1cKICAgICAgICAgICAgIF4KIERFVEFJTDogIEZyYW1lIGRlZmluaXRpb24gaW5j bHVkZXMgRVhDTFVERSBDVVJSRU5UIFJPVy4KIEhJTlQ6ICBSZW1vdmUgdGhlIEVYQ0xVREUgY2xh dXNlIGZyb20gdGhlIHdpbmRvdyBkZWZpbml0aW9uLgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBFWENM VURFIG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlv biBpcyB1c2VkCistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRVhDTFVERSBvcHRpb25z IHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIC0tIEVYQ0xVREUgR1JPVVAgbm90IHBlcm1p dHRlZAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUKQEAgLTQzNSwxMiAr NDM1LDEyIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBB UyB2YWwgPiAwCiApOwotRVJST1I6ICBFWENMVURFIG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQg d2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCitFUlJPUjogIGNhbm5vdCB1c2Ug RVhDTFVERSBvcHRpb25zIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIExJTkUgNjogICAg IEVYQ0xVREUgR1JPVVAKICAgICAgICAgICAgIF4KIERFVEFJTDogIEZyYW1lIGRlZmluaXRpb24g aW5jbHVkZXMgRVhDTFVERSBHUk9VUC4KIEhJTlQ6ICBSZW1vdmUgdGhlIEVYQ0xVREUgY2xhdXNl IGZyb20gdGhlIHdpbmRvdyBkZWZpbml0aW9uLgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBFWENMVURF IG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBp cyB1c2VkCistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRVhDTFVERSBvcHRpb25zIHdp dGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIC0tIEVYQ0xVREUgVElFUyBub3QgcGVybWl0dGVk CiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9mcmFtZQpAQCAtNDUxLDEyICs0NTEs MTIgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHZh bCA+IDAKICk7Ci1FUlJPUjogIEVYQ0xVREUgb3B0aW9ucyBhcmUgbm90IHBlcm1pdHRlZCB3aGVu IHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKK0VSUk9SOiAgY2Fubm90IHVzZSBFWENM VURFIG9wdGlvbnMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogTElORSA2OiAgICAgRVhD TFVERSBUSUVTCiAgICAgICAgICAgICBeCiBERVRBSUw6ICBGcmFtZSBkZWZpbml0aW9uIGluY2x1 ZGVzIEVYQ0xVREUgVElFUy4KIEhJTlQ6ICBSZW1vdmUgdGhlIEVYQ0xVREUgY2xhdXNlIGZyb20g dGhlIHdpbmRvdyBkZWZpbml0aW9uLgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBFWENMVURFIG9wdGlv bnMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2Vk CistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRVhDTFVERSBvcHRpb25zIHdpdGggcm93 IHBhdHRlcm4gcmVjb2duaXRpb24KIC0tIFJBTkdFIGZyYW1lIG5vdCBzdGFydGluZyBhdCBDVVJS RU5UIFJPVwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUKQEAgLTQ2Niwx MSArNDY2LDExIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUg QSBBUyB2YWwgPiAwCiApOwotRVJST1I6ICBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1p dHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKK0VSUk9SOiAgY2Fubm90 IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogTElO RSA1OiAgICAgUkFOR0UgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU4uLi4KICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgotLS0g RXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVu IHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fu bm90IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgog LS0gR1JPVVBTIGZyYW1lIG5vdCBzdGFydGluZyBhdCBDVVJSRU5UIFJPVwogU0VMRUNUIENPVU5U KCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUKQEAgLTQ4MCwxMSArNDgwLDExIEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotRVJS T1I6ICBGUkFNRSBvcHRpb24gR1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVy biByZWNvZ25pdGlvbiBpcyB1c2VkCitFUlJPUjogIGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIEdS T1VQUyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiBMSU5FIDU6ICAgICBHUk9VUFMgQkVU V0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSS4uLgogICAgICAg ICAgICAgXgogSElOVDogIFVzZSBST1dTIGluc3RlYWQuCi0tLSBFeHBlY3RlZDogRVJST1I6IEZS QU1FIG9wdGlvbiBHUk9VUFMgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29n bml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBGUkFNRSBvcHRp b24gR1JPVVBTIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIC0tIFN0YXJ0aW5nIHdpdGgg TiBQUkVDRURJTkcKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2ZyYW1lCkBAIC00 OTQsNyArNDk0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklO RSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIEZSQU1FIG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBS T1cgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCitFUlJPUjogIEZSQU1FIG11 c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1cgd2hlbiB1c2luZyByb3cgcGF0dGVybiByZWNvZ25pdGlv bgogTElORSA1OiAgICAgUk9XUyBCRVRXRUVOIDEgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgICAgICAgICAgICBeCiBERVRBSUw6ICBDdXJyZW50IGZyYW1lIHN0YXJ0cyB3aXRo IG9mZnNldCBQUkVDRURJTkcuCkBAIC01MDksNyArNTA5LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIEZSQU1F IG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1cgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBp cyB1c2VkCitFUlJPUjogIEZSQU1FIG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1cgd2hlbiB1c2lu ZyByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogTElORSA1OiAgICAgUk9XUyBCRVRXRUVOIDEgRk9M TE9XSU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgICAgICBeCiBERVRBSUw6ICBD dXJyZW50IGZyYW1lIHN0YXJ0cyB3aXRoIG9mZnNldCBGT0xMT1dJTkcuCkBAIC02MzcsMTEgKzYz NywxMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5FIEEgQVMgdmFsID49IDAsIEIgQVMgdmFs ID49IDAKICkKIE9SREVSIEJZIGlkOwotRVJST1I6ICBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90 IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKK0VSUk9SOiAg Y2Fubm90IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlv bgogTElORSA1OiAgICAgUkFOR0UgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5H CiAgICAgICAgICAgICBeCiBISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4KLS0tIEV4cGVjdGVkOiBF UlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVy biByZWNvZ25pdGlvbiBpcyB1c2VkCistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRlJB TUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIC0tIEdST1VQUyBm cmFtZSB3aXRoIFJQUiAobm90IHBlcm1pdHRlZCkKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgYXMgY250CiBGUk9NIHJwcl9mcmFtZQpAQCAtNjUzLDExICs2NTMsMTEgQEAgV0lORE9X IHcgQVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+PSAwLCBCIEFTIHZhbCA+PSAwCiApCiBPUkRF UiBCWSBpZDsKLUVSUk9SOiAgRlJBTUUgb3B0aW9uIEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdo ZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorRVJST1I6ICBjYW5ub3QgdXNlIEZS QU1FIG9wdGlvbiBHUk9VUFMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogTElORSA1OiAg ICAgR1JPVVBTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HCiAgICAgICAgICAg ICBeCiBISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4KLS0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUg b3B0aW9uIEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRp b24gaXMgdXNlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBH Uk9VUFMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogRFJPUCBUQUJMRSBycHJfZnJhbWU7 CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIFBBUlRJVElPTiBCWSArIEZSQU1FIFRlc3RzCkBAIC03MDIsMTEgKzcwMiwx MSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5FIEEgQVMgdmFsID49IDEwLCBCIEFTIHZhbCA+ PSAyMAogKQogT1JERVIgQlkgaWQ7Ci1FUlJPUjogIEZSQU1FIG9wdGlvbiBSQU5HRSBpcyBub3Qg cGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorRVJST1I6ICBj YW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u CiBMSU5FIDY6ICAgICBSQU5HRSBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAxMCBGT0xMT1dJTkcK ICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgotLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJu IHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBGUkFN RSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogRFJPUCBUQUJMRSBy cHJfcGFydGl0aW9uOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBQQVRURVJOIFN5bnRheCBUZXN0cwpAQCAtMTcxMCwx MCArMTcxMCwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwp CiApCiBPUkRFUiBCWSBpZDsKLUVSUk9SOiAgcHJldiBjYW4gb25seSBiZSB1c2VkIGluIGEgREVG SU5FIGNsYXVzZQorRVJST1I6ICBjYW5ub3QgdXNlIHByZXYgb3V0c2lkZSBhIERFRklORSBjbGF1 c2UKIExJTkUgMTogU0VMRUNUIFBSRVYoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMg Y250CiAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHByZXYgY2FuIG9ubHkg YmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVz ZSBwcmV2IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCiAtLSBORVhUIGZ1bmN0aW9uIGNhbm5vdCBi ZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCiBTRUxFQ1QgTkVYVChpZCksIGlkLCB2YWwsIENP VU5UKCopIE9WRVIgdyBhcyBjbnQKIEZST00gcnByX25hdgpAQCAtMTcyNiwxMCArMTcyNiwxMCBA QCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCiApCiBPUkRFUiBC WSBpZDsKLUVSUk9SOiAgbmV4dCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQor RVJST1I6ICBjYW5ub3QgdXNlIG5leHQgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKIExJTkUgMTog U0VMRUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiAgICAgICAg ICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBh IERFRklORSBjbGF1c2UKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBuZXh0IG91dHNp ZGUgYSBERUZJTkUgY2xhdXNlCiAtLSBGSVJTVCBmdW5jdGlvbiAtIHJlZmVyZW5jZSBtYXRjaF9z dGFydCByb3cKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiBGUk9NIHJw cl9uYXYKQEAgLTE3OTUsMTYgKzE3OTUsMTYgQEAgT1JERVIgQlkgaWQ7CiAKIC0tIEZJUlNUIGZ1 bmN0aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCiBTRUxFQ1QgRklSU1Qo aWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKLUVSUk9SOiAgZmlyc3QgY2FuIG9ubHkgYmUgdXNl ZCBpbiBhIERFRklORSBjbGF1c2UKK0VSUk9SOiAgY2Fubm90IHVzZSBmaXJzdCBvdXRzaWRlIGEg REVGSU5FIGNsYXVzZQogTElORSAxOiBTRUxFQ1QgRklSU1QoaWQpLCBpZCwgdmFsIEZST00gcnBy X25hdjsKICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogZmlyc3QgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90 IHVzZSBmaXJzdCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQogLS0gTEFTVCBmdW5jdGlvbiBjYW5u b3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQogU0VMRUNUIExBU1QoaWQpLCBpZCwgdmFs IEZST00gcnByX25hdjsKLUVSUk9SOiAgbGFzdCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5F IGNsYXVzZQorRVJST1I6ICBjYW5ub3QgdXNlIGxhc3Qgb3V0c2lkZSBhIERFRklORSBjbGF1c2UK IExJTkUgMTogU0VMRUNUIExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKICAgICAgICAg ICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogbGFzdCBjYW4gb25seSBiZSB1c2VkIGluIGEg REVGSU5FIGNsYXVzZQorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIGxhc3Qgb3V0c2lk ZSBhIERFRklORSBjbGF1c2UKIERST1AgVEFCTEUgcnByX25hdjsKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU0tJUCBU TyAvIElOSVRJQUwgVGVzdHMKQEAgLTMyNzIsNyArMzI3Miw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNUKFBSRVYodikpKSA+IDAK ICk7Ci1FUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gY2Fubm90IGJlIG5lc3RlZCBtb3Jl IHRoYW4gdHdvIGxldmVscyBkZWVwCitFUlJPUjogIGNhbm5vdCBuZXN0IHJvdyBwYXR0ZXJuIG5h dmlnYXRpb24gbW9yZSB0aGFuIHR3byBsZXZlbHMgZGVlcAogTElORSA2OiAgICAgREVGSU5FIEEg QVMgUFJFVihGSVJTVChQUkVWKHYpKSkgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCiBI SU5UOiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFu ZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfYmFzZS5zcWwKaW5kZXggZjlkNWFhODlkN2EuLjkwYjFhZTk2YTBlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2Jhc2Uuc3FsCkBAIC0zNTEsNyArMzUxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJS T1I6IEVYQ0xVREUgb3B0aW9ucyBhcmUgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBFWENMVURF IG9wdGlvbnMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogCiAtLSBFWENMVURFIEdST1VQ IG5vdCBwZXJtaXR0ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTM2Myw3ICszNjMsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4g MAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogRVhDTFVERSBvcHRpb25zIGFyZSBub3QgcGVybWl0 dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBjYW5ub3QgdXNlIEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uCiAKIC0tIEVYQ0xVREUgVElFUyBub3QgcGVybWl0dGVkCiBTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3CkBAIC0zNzUsNyArMzc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQog ICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IEVYQ0xVREUg b3B0aW9ucyBhcmUgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlz IHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBFWENMVURFIG9wdGlvbnMgd2l0 aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogCiAtLSBSQU5HRSBmcmFtZSBub3Qgc3RhcnRpbmcg YXQgQ1VSUkVOVCBST1cKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTM4Niw3ICszODYsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4g MAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJt aXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCistLSBFeHBlY3RlZDog RVJST1I6IGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVj b2duaXRpb24KIAogLS0gR1JPVVBTIGZyYW1lIG5vdCBzdGFydGluZyBhdCBDVVJSRU5UIFJPVwog U0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMzk3LDcgKzM5Nyw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gR1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cg cGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1 c2UgRlJBTUUgb3B0aW9uIEdST1VQUyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiAKIC0t IFN0YXJ0aW5nIHdpdGggTiBQUkVDRURJTkcKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTUw NCw3ICs1MDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5FIEEgQVMgdmFsID49IDAsIEIg QVMgdmFsID49IDAKICkKIE9SREVSIEJZIGlkOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBv cHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u IGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gUkFO R0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogCiAtLSBHUk9VUFMgZnJhbWUgd2l0aCBS UFIgKG5vdCBwZXJtaXR0ZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dApAQCAtNTE3LDcgKzUxNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2YWwg Pj0gMCwgQiBBUyB2YWwgPj0gMAogKQogT1JERVIgQlkgaWQ7Ci0tLSBFeHBlY3RlZDogRVJST1I6 IEZSQU1FIG9wdGlvbiBHUk9VUFMgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBGUkFNRSBv cHRpb24gR1JPVVBTIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIAogRFJPUCBUQUJMRSBy cHJfZnJhbWU7CiAKQEAgLTU1Nyw3ICs1NTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5F IEEgQVMgdmFsID49IDEwLCBCIEFTIHZhbCA+PSAyMAogKQogT1JERVIgQlkgaWQ7Ci0tLSBFeHBl Y3RlZDogRVJST1I6IEZSQU1FIG9wdGlvbiBSQU5HRSBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93 IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3Qg dXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiAKIERS T1AgVEFCTEUgcnByX3BhcnRpdGlvbjsKIApAQCAtMTI2Miw3ICsxMjYyLDcgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICBCIEFTIHZhbCA+IFBSRVYodmFsKQogKQogT1JERVIgQlkgaWQ7Ci0tLSBF eHBlY3RlZDogRVJST1I6IHByZXYgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UK Ky0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBwcmV2IG91dHNpZGUgYSBERUZJTkUgY2xh dXNlCiAKIC0tIE5FWFQgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgb3RoZXIgdGhhbiBpbiBERUZJ TkUKIFNFTEVDVCBORVhUKGlkKSwgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApAQCAt MTI3Niw3ICsxMjc2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBCIEFTIHZhbCA+IFBSRVYo dmFsKQogKQogT1JERVIgQlkgaWQ7Ci0tLSBFeHBlY3RlZDogRVJST1I6IG5leHQgY2FuIG9ubHkg YmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVz ZSBuZXh0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCiAKIC0tIEZJUlNUIGZ1bmN0aW9uIC0gcmVm ZXJlbmNlIG1hdGNoX3N0YXJ0IHJvdwogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKQEAgLTEzMTksMTEgKzEzMTksMTEgQEAgT1JERVIgQlkgaWQ7CiAKIC0tIEZJUlNUIGZ1 bmN0aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCiBTRUxFQ1QgRklSU1Qo aWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKLS0tIEV4cGVjdGVkOiBFUlJPUjogZmlyc3QgY2Fu IG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fu bm90IHVzZSBmaXJzdCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQogCiAtLSBMQVNUIGZ1bmN0aW9u IGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCiBTRUxFQ1QgTEFTVChpZCksIGlk LCB2YWwgRlJPTSBycHJfbmF2OwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBsYXN0IGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2Ug bGFzdCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQogCiBEUk9QIFRBQkxFIHJwcl9uYXY7CiAKLS0g CjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0035-Use-Max-Min-macros-RPR-extremum.txt" Content-Disposition: attachment; filename="nocfbot-0035-Use-Max-Min-macros-RPR-extremum.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64dzi34 RnJvbSBjNGQxZmFiMTA0NmIyZjFkNWM2MGFjNzFjMGUxMzlmMGJjNWVhYmNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDA6NDY6MDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDM1LzQwXSBV c2UgTWF4KCkvTWluKCkgbWFjcm9zIGZvciBSUFIgZXh0cmVtdW0gYWNjdW11bGF0aW9uCgpUaGUg UlBSIHBsYW5uZXIgYW5kIGV4ZWN1dG9yIGFjY3VtdWxhdGVkIGV4dHJlbXVtIHZhbHVlcyAobWF4 CmJhY2t3YXJkIHJlYWNoLCBtaW4gZm9yd2FyZCBvZmZzZXQsIE5GQSBzdGF0ZS9jb250ZXh0IGhp Z2gtd2F0ZXIKbWFya3MsIGxlbmd0aCBzdGF0aXN0aWNzKSB3aXRoIGhhbmQtd3JpdHRlbgoiaWYg KFggPiBjdXJyZW50KSBjdXJyZW50ID0gWCIgaWRpb21zLiAgUmVwbGFjZSB0aGVzZSB3aXRoIHRo ZQpleGlzdGluZyBNYXgoKS9NaW4oKSBtYWNyb3MgZnJvbSBjLmgsIG1hdGNoaW5nIHRoZSBjb252 ZW50aW9uIHVzZWQKZWxzZXdoZXJlIGluIHRoZSBjb2RlYmFzZS4KClNpeCBNYXgoKSBzaXRlcyBh bmQgZml2ZSBNaW4oKSBzaXRlcyBhcmUgY29udmVydGVkIGFjcm9zcwpjcmVhdGVwbGFuLmMgKG5h dl9vZmZzZXRfd2Fsa2VyKSwgbm9kZVdpbmRvd0FnZy5jCihldmFsX25hdl9tYXhfb2Zmc2V0X3dh bGtlciwgZXZhbF9uYXZfZmlyc3Rfb2Zmc2V0X3dhbGtlciwKRXhlY1dpbmRvd0FnZyBuYXZtYXJr IHVwZGF0ZSksIGFuZCBleGVjUlBSLmMgKE5GQSBzdGF0ZS9jb250ZXh0CmFsbG9jYXRvcnMgYW5k IGxlbmd0aCBzdGF0cyB1cGRhdGVyKS4gIEJlaGF2aW9yIGlzIHVuY2hhbmdlZDsgYWxsCm9wZXJh bmRzIGFyZSBzaW1wbGUgc3RydWN0IG1lbWJlcnMgb3IgbG9jYWwgdmFyaWFibGVzLCBzbyB0aGUK bWFjcm8ncyBkb3VibGUtZXZhbHVhdGlvbiBjYXZlYXQgZG9lcyBub3QgYXBwbHkuCi0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICAgIHwgMTQgKysrKysrLS0tLS0tLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICB8ICA5ICsrKy0tLS0tLQog c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIHwgMTYgKysrKy0tLS0tLS0t LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggN2JhN2I2ZmI2NzIuLjg0ZjA5MDkzYjRiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0xNzg5LDggKzE3ODksOCBAQCBuZmFfc3RhdGVfYWxsb2Mo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCS8qIFVwZGF0ZSBzdGF0aXN0aWNzICovCiAJd2lu c3RhdGUtPm5mYVN0YXRlc0FjdGl2ZSsrOwogCXdpbnN0YXRlLT5uZmFTdGF0ZXNUb3RhbENyZWF0 ZWQrKzsKLQlpZiAod2luc3RhdGUtPm5mYVN0YXRlc0FjdGl2ZSA+IHdpbnN0YXRlLT5uZmFTdGF0 ZXNNYXgpCi0JCXdpbnN0YXRlLT5uZmFTdGF0ZXNNYXggPSB3aW5zdGF0ZS0+bmZhU3RhdGVzQWN0 aXZlOworCXdpbnN0YXRlLT5uZmFTdGF0ZXNNYXggPSBNYXgod2luc3RhdGUtPm5mYVN0YXRlc01h eCwKKwkJCQkJCQkJIHdpbnN0YXRlLT5uZmFTdGF0ZXNBY3RpdmUpOwogCiAJcmV0dXJuIHN0YXRl OwogfQpAQCAtMjAwMSw4ICsyMDAxLDggQEAgbmZhX2NvbnRleHRfYWxsb2MoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlKQogCS8qIFVwZGF0ZSBzdGF0aXN0aWNzICovCiAJd2luc3RhdGUtPm5mYUNv bnRleHRzQWN0aXZlKys7CiAJd2luc3RhdGUtPm5mYUNvbnRleHRzVG90YWxDcmVhdGVkKys7Ci0J aWYgKHdpbnN0YXRlLT5uZmFDb250ZXh0c0FjdGl2ZSA+IHdpbnN0YXRlLT5uZmFDb250ZXh0c01h eCkKLQkJd2luc3RhdGUtPm5mYUNvbnRleHRzTWF4ID0gd2luc3RhdGUtPm5mYUNvbnRleHRzQWN0 aXZlOworCXdpbnN0YXRlLT5uZmFDb250ZXh0c01heCA9IE1heCh3aW5zdGF0ZS0+bmZhQ29udGV4 dHNNYXgsCisJCQkJCQkJCSAgIHdpbnN0YXRlLT5uZmFDb250ZXh0c0FjdGl2ZSk7CiAKIAlyZXR1 cm4gY3R4OwogfQpAQCAtMjA0NiwxMCArMjA0Niw4IEBAIG5mYV91cGRhdGVfbGVuZ3RoX3N0YXRz KGludDY0IGNvdW50LCBORkFMZW5ndGhTdGF0cyAqc3RhdHMsIGludDY0IG5ld0xlbikKIAl9CiAJ ZWxzZQogCXsKLQkJaWYgKG5ld0xlbiA8IHN0YXRzLT5taW4pCi0JCQlzdGF0cy0+bWluID0gbmV3 TGVuOwotCQlpZiAobmV3TGVuID4gc3RhdHMtPm1heCkKLQkJCXN0YXRzLT5tYXggPSBuZXdMZW47 CisJCXN0YXRzLT5taW4gPSBNaW4oc3RhdHMtPm1pbiwgbmV3TGVuKTsKKwkJc3RhdHMtPm1heCA9 IE1heChzdGF0cy0+bWF4LCBuZXdMZW4pOwogCX0KIAlzdGF0cy0+dG90YWwgKz0gbmV3TGVuOwog fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDAyZjE3ZTU0NzJjLi44OWU2 NmM3MzczNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMjUzNiw4ICsy NTM2LDcgQEAgRXhlY1dpbmRvd0FnZyhQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJCQkJCSsgd2luc3Rh dGUtPm5hdkZpcnN0T2Zmc2V0OwogCQkJCWVsc2UKIAkJCQkJZmlyc3RyZWFjaCA9IDA7Ci0JCQkJ aWYgKGZpcnN0cmVhY2ggPCBuYXZtYXJrcG9zKQotCQkJCQluYXZtYXJrcG9zID0gZmlyc3RyZWFj aDsKKwkJCQluYXZtYXJrcG9zID0gTWluKG5hdm1hcmtwb3MsIGZpcnN0cmVhY2gpOwogCQkJfQog CiAJCQlpZiAobmF2bWFya3BvcyA+IHdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcG9zKQpAQCAt NDAwNyw4ICs0MDA2LDcgQEAgZXZhbF9uYXZfbWF4X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY3R4KQogCQkJCXJlYWNoID0gKGlubmVyID4gb3V0ZXIpID8gaW5uZXIgLSBvdXRlciA6 IDA7CiAJCX0KIAotCQlpZiAocmVhY2ggPiBjb250ZXh0LT5tYXhPZmZzZXQpCi0JCQljb250ZXh0 LT5tYXhPZmZzZXQgPSByZWFjaDsKKwkJY29udGV4dC0+bWF4T2Zmc2V0ID0gTWF4KGNvbnRleHQt Pm1heE9mZnNldCwgcmVhY2gpOwogCiAJCXJldHVybiBmYWxzZTsJCQkvKiBkb24ndCB3YWxrIGlu dG8gY2hpbGRyZW4gKi8KIAl9CkBAIC00MTE4LDggKzQxMTYsNyBAQCBldmFsX25hdl9maXJzdF9v ZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmN0eCkKIAkJCX0KIAkJfQogCi0JCWlmIChj b21iaW5lZCA8IGNvbnRleHQtPm1pbk9mZnNldCkKLQkJCWNvbnRleHQtPm1pbk9mZnNldCA9IGNv bWJpbmVkOworCQljb250ZXh0LT5taW5PZmZzZXQgPSBNaW4oY29udGV4dC0+bWluT2Zmc2V0LCBj b21iaW5lZCk7CiAKIAkJcmV0dXJuIGZhbHNlOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L2NyZWF0ZXBsYW4uYwppbmRleCA1MDY2OGYzYjdhYi4uZDdhZGYxN2EyNDIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI1NTEsMTAgKzI1NTEsNyBAQCBuYXZf b2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjdHgpCiAJCQkJaW50NjQJCW9mZnNldDsK IAogCQkJCWlmIChleHRyYWN0X2NvbnN0X29mZnNldChuYXYtPm9mZnNldF9hcmcsIDEsICZvZmZz ZXQpKQotCQkJCXsKLQkJCQkJaWYgKG9mZnNldCA+IGNvbnRleHQtPm1heE9mZnNldCkKLQkJCQkJ CWNvbnRleHQtPm1heE9mZnNldCA9IG9mZnNldDsKLQkJCQl9CisJCQkJCWNvbnRleHQtPm1heE9m ZnNldCA9IE1heChjb250ZXh0LT5tYXhPZmZzZXQsIG9mZnNldCk7CiAJCQkJZWxzZQogCQkJCQlj b250ZXh0LT5tYXhOZWVkc0V2YWwgPSB0cnVlOwogCQkJfQpAQCAtMjU3MywxMCArMjU3MCw3IEBA IG5hdl9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmN0eCkKIAkJCQlpbnQ2NAkJb2Zm c2V0OwogCiAJCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwg Jm9mZnNldCkpCi0JCQkJewotCQkJCQlpZiAob2Zmc2V0IDwgY29udGV4dC0+Zmlyc3RPZmZzZXQp Ci0JCQkJCQljb250ZXh0LT5maXJzdE9mZnNldCA9IG9mZnNldDsKLQkJCQl9CisJCQkJCWNvbnRl eHQtPmZpcnN0T2Zmc2V0ID0gTWluKGNvbnRleHQtPmZpcnN0T2Zmc2V0LCBvZmZzZXQpOwogCQkJ CWVsc2UKIAkJCQkJY29udGV4dC0+Zmlyc3ROZWVkc0V2YWwgPSB0cnVlOwogCQkJfQpAQCAtMjYx MCw4ICsyNjA0LDcgQEAgbmF2X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQog CQkJCQllbHNlCiAJCQkJCQljb21iaW5lZCA9IChpbm5lciA+IG91dGVyKSA/IGlubmVyIC0gb3V0 ZXIgOiAwOwogCi0JCQkJCWlmIChjb21iaW5lZCA+IGNvbnRleHQtPm1heE9mZnNldCkKLQkJCQkJ CWNvbnRleHQtPm1heE9mZnNldCA9IGNvbWJpbmVkOworCQkJCQljb250ZXh0LT5tYXhPZmZzZXQg PSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCBjb21iaW5lZCk7CiAJCQkJfQogCQkJCWVsc2UKIAkJ CQkJY29udGV4dC0+bWF4TmVlZHNFdmFsID0gdHJ1ZTsKQEAgLTI2NTksOCArMjY1Miw3IEBAIG5h dl9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmN0eCkKIAkJCQkJCQljb21iaW5lZCA9 IElOVDY0X01BWDsKIAkJCQkJfQogCi0JCQkJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPmZpcnN0 T2Zmc2V0KQotCQkJCQkJY29udGV4dC0+Zmlyc3RPZmZzZXQgPSBjb21iaW5lZDsKKwkJCQkJY29u dGV4dC0+Zmlyc3RPZmZzZXQgPSBNaW4oY29udGV4dC0+Zmlyc3RPZmZzZXQsIGNvbWJpbmVkKTsK IAkJCQl9CiAJCQkJZWxzZQogCQkJCQljb250ZXh0LT5maXJzdE5lZWRzRXZhbCA9IHRydWU7Ci0t IAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0036-Reword-RPR-navigation-function-synopses.txt" Content-Disposition: attachment; filename="nocfbot-0036-Reword-RPR-navigation-function-synopses.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64hk635 RnJvbSA5ZWM1M2EyYzUzZTFhYTgwYzQwZTc5OTc5ODEwMjFiMGMxMDYwMjk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDA6NTE6NDcgKzA5MDAKU3ViamVjdDogW1BBVENIIDM2LzQwXSBS ZXdvcmQgUlBSIG5hdmlnYXRpb24gZnVuY3Rpb24gc3lub3BzZXMKClRoZSBmaXJzdC1saW5lIHN5 bm9wc2VzIG9mIHByZXYvbmV4dC9maXJzdC9sYXN0IGluIGZ1bmMtd2luZG93LnNnbWwKcmVhZCAi UmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cgLi4uIi4gIFRoaXMgaXMgdG9vIG5h cnJvdzoKdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGFuIGFyYml0cmFyeSBleHByZXNzaW9uIChlLmcu IGZpcnN0KGNvbDEgKwpjb2wyKSksIG5vdCBqdXN0IGEgY29sdW1uIHJlZmVyZW5jZS4KClJld29y ZCBlYWNoIG9mIHRoZSBmb3VyIGVudHJpZXMgdG8gIlJldHVybnMgPHZhbHVlPiBldmFsdWF0ZWQg YXQgdGhlCnJvdyB0aGF0IGlzIDxvZmZzZXQ+IHJvd3MgLi4uIiwgbWF0Y2hpbmcgdGhlIHdvcmRp bmcgYWxyZWFkeSB1c2VkIGJ5CmxhZywgbGVhZCwgZmlyc3RfdmFsdWUsIGFuZCBsYXN0X3ZhbHVl IGluIHRoZSBzYW1lIHRhYmxlLiAgVGhpcyBib3RoCmFkZHJlc3NlcyB0aGUgbmFycm93bmVzcyBh bmQgYWxpZ25zIHRoZSBuYXZpZ2F0aW9uIGZ1bmN0aW9ucyB3aXRoCnRoZSBlc3RhYmxpc2hlZCB3 aW5kb3ctZnVuY3Rpb24gZG9jdW1lbnRhdGlvbiBpZGlvbS4KCkRvY3VtZW50YXRpb24tb25seSBj aGFuZ2UuCi0tLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCB8IDE5ICsrKysr KysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCmluZGV4IGQxMDlhMmQyMmJjLi5k MWRhMTA1YWQwZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCkBAIC0zMDgsOCArMzA4 LDkgQEAKICAgICAgICAgPHJldHVybnZhbHVlPmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgogICAg ICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZh bHVlIGF0IHRoZSByb3cgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4KLSAgICAgICAgcm93 cyBiZWZvcmUgdGhlIGN1cnJlbnQgcm93IHdpdGhpbiB0aGUgcGFydGl0aW9uOworICAgICAgICBS ZXR1cm5zIDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gZXZhbHVhdGVkIGF0IHRoZSByb3cg dGhhdCBpcworICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiByb3dzIGJlZm9y ZSB0aGUgY3VycmVudCByb3cgd2l0aGluCisgICAgICAgIHRoZSBwYXJ0aXRpb247CiAgICAgICAg IHJldHVybnMgTlVMTCBpZiB0aGUgdGFyZ2V0IHJvdyBpcyBvdXRzaWRlIHRoZSBwYXJ0aXRpb24u CiAgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IGRlZmF1bHRzIHRvIDEgaWYg b21pdHRlZC4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gbXVzdCBiZSBh IG5vbi1uZWdhdGl2ZSBpbnRlZ2VyOwpAQCAtMzI4LDggKzMyOSw5IEBACiAgICAgICAgIDxyZXR1 cm52YWx1ZT5hbnllbGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAg PHBhcmE+Ci0gICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1ZSBhdCB0aGUgcm93IDxwYXJh bWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+Ci0gICAgICAgIHJvd3MgYWZ0ZXIgdGhlIGN1cnJlbnQg cm93IHdpdGhpbiB0aGUgcGFydGl0aW9uOworICAgICAgICBSZXR1cm5zIDxwYXJhbWV0ZXI+dmFs dWU8L3BhcmFtZXRlcj4gZXZhbHVhdGVkIGF0IHRoZSByb3cgdGhhdCBpcworICAgICAgICA8cGFy YW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiByb3dzIGFmdGVyIHRoZSBjdXJyZW50IHJvdyB3aXRo aW4KKyAgICAgICAgdGhlIHBhcnRpdGlvbjsKICAgICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0 YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRpdGlvbi4KICAgICAgICAgPHBhcmFtZXRlcj5v ZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBpZiBvbWl0dGVkLgogICAgICAgICA8cGFy YW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7 CkBAIC0zNDgsOCArMzUwLDggQEAKICAgICAgICAgPHJldHVybnZhbHVlPmFueWVsZW1lbnQ8L3Jl dHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgUmV0dXJu cyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRl cj4KLSAgICAgICAgcm93cyBhZnRlciB0aGUgbWF0Y2ggc3RhcnQgcm93OworICAgICAgICBSZXR1 cm5zIDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gZXZhbHVhdGVkIGF0IHRoZSByb3cgdGhh dCBpcworICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiByb3dzIGFmdGVyIHRo ZSBtYXRjaCBzdGFydCByb3c7CiAgICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGUgdGFyZ2V0IHJv dyBpcyBiZXlvbmQgdGhlIGN1cnJlbnQgcm93LgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwv cGFyYW1ldGVyPiBkZWZhdWx0cyB0byAwIGlmIG9taXR0ZWQsIHJlZmVycmluZyB0byB0aGUKICAg ICAgICAgbWF0Y2ggc3RhcnQgcm93IGl0c2VsZi4KQEAgLTM2OCw4ICszNzAsOSBAQAogICAgICAg ICA8cmV0dXJudmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgog ICAgICAgIDxwYXJhPgotICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhlIHJv dyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgotICAgICAgICByb3dzIGJlZm9yZSB0aGUg Y3VycmVudCByb3cgd2l0aGluIHRoZSBtYXRjaDsKKyAgICAgICAgUmV0dXJucyA8cGFyYW1ldGVy PnZhbHVlPC9wYXJhbWV0ZXI+IGV2YWx1YXRlZCBhdCB0aGUgcm93IHRoYXQgaXMKKyAgICAgICAg PHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gcm93cyBiZWZvcmUgdGhlIGN1cnJlbnQgcm93 IHdpdGhpbgorICAgICAgICB0aGUgbWF0Y2g7CiAgICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGUg dGFyZ2V0IHJvdyBpcyBiZWZvcmUgdGhlIG1hdGNoIHN0YXJ0IHJvdy4KICAgICAgICAgPHBhcmFt ZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMCBpZiBvbWl0dGVkLCByZWZlcnJp bmcgdG8gdGhlCiAgICAgICAgIGN1cnJlbnQgcm93IGl0c2VsZi4KLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0037-Replace-non-ASCII-characters-RPR-code-tests.txt" Content-Disposition: attachment; filename="nocfbot-0037-Replace-non-ASCII-characters-RPR-code-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64jzd36 RnJvbSAxYzVkMmE0MzFjYTg1YTVlNzRiNDQ0OGFhY2I4YzhjYzFkYTBkZDBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDA6NTk6MTAgKzA5MDAKU3ViamVjdDogW1BBVENIIDM3LzQwXSBS ZXBsYWNlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIFJQUiBjb2RlIGFuZCB0ZXN0cwpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhlIFJQUiBwYXRjaGVzIGFjY3VtdWxhdGVkIGEg ZmV3IFVuaWNvZGUgY2hhcmFjdGVycyAoYXJyb3dzLCB0aGUKbm90LWVxdWFsIHNpZ24sIHBsdXMt bWludXMsIGVtIGRhc2gsIHNlY3Rpb24gc2lnbikgaW4gcmVncmVzc2lvbgp0ZXN0IGNvbW1lbnRz IGFuZCBhIGhhbmRmdWwgb2Ygc291cmNlLWNvZGUgY29tbWVudHMuICBUaGUgUG9zdGdyZVNRTApw cm9qZWN0IGNvbnZlbnRpb25hbGx5IGtlZXBzIHNvdXJjZSBhbmQgcmVncmVzc2lvbiB0ZXN0IGZp bGVzIGluCnBsYWluIEFTQ0lJLiAgUmVwbGFjZSB0aGVzZSB3aXRoIHRoZWlyIEFTQ0lJIGVxdWl2 YWxlbnRzOgoKICAtPiAgZm9yIFUrMjE5MiBSSUdIVFdBUkRTIEFSUk9XCiAgIT0gIGZvciBVKzIy NjAgTk9UIEVRVUFMIFRPCiAgKy8tIGZvciBVKzAwQjEgUExVUy1NSU5VUyBTSUdOCiAgLS0gIGZv ciBVKzIwMTQgRU0gREFTSAogIFNRTCBzdGFuZGFyZCA8bj4gIGZvciAiwqc8bj4iIHJlZmVyZW5j ZXMgKG1hdGNoaW5nIHRoZSBleGlzdGluZwogICAgICAgICAgICAgICAgICAgICJTUUwgc3RhbmRh cmQgNS42LjQiIGlkaW9tIGluIHBhcnNlX3Jwci5jKQoKQWZmZWN0ZWQ6IGNyZWF0ZXBsYW4uYywg ZXhlY1JQUi5jLCBwYXJzZV9mdW5jLmMgKGNvbW1lbnRzKSwgYW5kIHRoZQpycHIgLyBycHJfYmFz ZSAvIHJwcl9uZmEgcmVncmVzc2lvbiB0ZXN0IGZpbGVzIChzcWwgKyBleHBlY3RlZCkuClR3byBz aG9ydCBjb21tZW50IGxpbmUgYnJlYWtzIGluIGNyZWF0ZXBsYW4uYyBhcmUgcmVmbG93ZWQgYnkK cGdpbmRlbnQgYXMgYSBtZWNoYW5pY2FsIGNvbnNlcXVlbmNlIG9mIHRoZSBzbGlnaHRseSBsb25n ZXIgQVNDSUkKcmVwbGFjZW1lbnRzLgoKRG9jdW1lbnRhdGlvbi9jb21tZW50LW9ubHkgY2hhbmdl OyBubyBmdW5jdGlvbmFsIGVmZmVjdC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBS LmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxh bi5jIHwgIDggKystLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICB8 ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAgICAgfCAzMCArKysr KysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgfCAg NiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0ICAgfCA0OCArKysr KysrKysrKystLS0tLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAg ICAgICAgfCAzMCArKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFz ZS5zcWwgICAgICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAg ICAgICAgfCA0OCArKysrKysrKysrKystLS0tLS0tLS0tLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDkw IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRl eCA4NGYwOTA5M2I0Yi4uMTVlNDM5ZGFhYWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTYz MSw3ICs2MzEsNyBAQAogICogd2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9OQVZfUFJFVl9GSVJT VCwgZXRjLikuICBUaGUgZXhlY3V0b3IKICAqIGNvbXB1dGVzIHRoZSB0YXJnZXQgcG9zaXRpb24g aW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCiAgKiBwb2ludCAobWF0Y2hf c3RhcnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdlIHZhbGlkYXRpb24s Ci0gKiB0aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICjCsSBNKSB3aXRoIHBhcnRpdGlvbi1yYW5n ZSB2YWxpZGF0aW9uLgorICogdGhlbiB0aGUgb3V0ZXIgYWRqdXN0bWVudCAoKy8tIE0pIHdpdGgg cGFydGl0aW9uLXJhbmdlIHZhbGlkYXRpb24uCiAgKiBJZiBlaXRoZXIgc3RlcCBpcyBvdXQgb2Yg cmFuZ2UsIHRoZSByZXN1bHQgaXMgTlVMTC4KICAqCiAgKiBuYXZfc2xvdCBjYWNoZXMgdGhlIGxh c3QgZmV0Y2hlZCBwb3NpdGlvbiAobmF2X3Nsb3RfcG9zKSB0byBhdm9pZApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IGQ3YWRmMTdhMjQyLi5hMTY0M2U0MGJlNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMjU3OCw4ICsyNTc4 LDggQEAgbmF2X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQogCiAJCS8qCiAJ CSAqIENvbXBvdW5kIFBSRVZfTEFTVCAvIE5FWFRfTEFTVDogYmFzZSA9IGN1cnJlbnRwb3MuIFBS RVZfTEFTVCh2LCBOLAotCQkgKiBNKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gLSBNIOKGkiBs b29rYmFjayA9IE4gKyBNIE5FWFRfTEFTVCh2LAotCQkgKiBOLCBNKTogdGFyZ2V0ID0gY3VycmVu dHBvcyAtIE4gKyBNIOKGkiBsb29rYmFjayA9IG1heChOIC0gTSwgMCkKKwkJICogTSk6IHRhcmdl dCA9IGN1cnJlbnRwb3MgLSBOIC0gTSAtPiBsb29rYmFjayA9IE4gKyBNIE5FWFRfTEFTVCh2LCBO LAorCQkgKiBNKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gKyBNIC0+IGxvb2tiYWNrID0gbWF4 KE4gLSBNLCAwKQogCQkgKi8KIAkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCB8 fAogCQkJbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9MQVNUKQpAQCAtMjYxNCw4ICsyNjE0LDgg QEAgbmF2X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQogCQkvKgogCQkgKiBD b21wb3VuZCBQUkVWX0ZJUlNUIC8gTkVYVF9GSVJTVDogYmFzZSA9IG1hdGNoX3N0YXJ0LiBQUkVW X0ZJUlNUKHYsCiAJCSAqIE4sIE0pOiB0YXJnZXQgPSBtYXRjaF9zdGFydCArIE4gLSBNIE5FWFRf RklSU1QodiwgTiwgTSk6IHRhcmdldCA9Ci0JCSAqIG1hdGNoX3N0YXJ0ICsgTiArIE0gVGhlIGNv bWJpbmVkIG9mZnNldCAoTsKxTSkgZnJvbSBtYXRjaF9zdGFydCBjYW4KLQkJICogYmUgbmVnYXRp dmUsIG1lYW5pbmcgcm93cyBiZWZvcmUgbWF0Y2hfc3RhcnQgYXJlIG5lZWRlZC4KKwkJICogbWF0 Y2hfc3RhcnQgKyBOICsgTSBUaGUgY29tYmluZWQgb2Zmc2V0IChOKy8tTSkgZnJvbSBtYXRjaF9z dGFydAorCQkgKiBjYW4gYmUgbmVnYXRpdmUsIG1lYW5pbmcgcm93cyBiZWZvcmUgbWF0Y2hfc3Rh cnQgYXJlIG5lZWRlZC4KIAkJICovCiAJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0ZJ UlNUIHx8CiAJCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0ZJUlNUKQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9mdW5jLmMKaW5kZXggMDdiZjExOTY1YjguLjA3ZWNjZDZkZTMyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9mdW5jLmMKQEAgLTc4Nyw3ICs3ODcsNyBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJCQlyZXR1cm4gcHJvamVj dGlvbjsKIAkJfQogCi0JCS8qIE5vdCBhIGNvbHVtbiBwcm9qZWN0aW9uIOKAlCByZXBvcnQgZXJy b3IgKi8KKwkJLyogTm90IGEgY29sdW1uIHByb2plY3Rpb24gLS0gcmVwb3J0IGVycm9yICovCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJ CSBlcnJtc2coImNhbm5vdCB1c2UgJXMgb3V0c2lkZSBhIERFRklORSBjbGF1c2UiLApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDM1MjBjNWM1ZDc2Li44NTM4NGY2YjA5NiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTcyMyw5ICsxNzIzLDkgQEAgV0lORE9XIHcgQVMg KAogQ1JFQVRFIFRFTVAgVEFCTEUgcnByX25hdiAoaWQgaW50LCB2YWwgaW50KTsKIElOU0VSVCBJ TlRPIHJwcl9uYXYgVkFMVUVTICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYs MTApOwogLS0gRklSU1QodmFsKSA9IGNvbnN0YW50OiBCIG1hdGNoZXMgd2hlbiBtYXRjaF9zdGFy dCBoYXMgdmFsPTEwCi0tLSBtYXRjaF9zdGFydD0xKDEwKTogQT1pZDEsIEI9aWQyLCBGSVJTVCh2 YWwpPTEwIOKGkiBtYXRjaCB7MSwyfQotLS0gbWF0Y2hfc3RhcnQ9MygzMCk6IEE9aWQzLCBCPWlk NCwgRklSU1QodmFsKT0zMOKJoDEwIOKGkiBubyBtYXRjaAotLS0gbWF0Y2hfc3RhcnQ9NCgxMCk6 IEE9aWQ0LCBCPWlkNSwgRklSU1QodmFsKT0xMCDihpIgbWF0Y2ggezQsNX0KKy0tIG1hdGNoX3N0 YXJ0PTEoMTApOiBBPWlkMSwgQj1pZDIsIEZJUlNUKHZhbCk9MTAgLT4gbWF0Y2ggezEsMn0KKy0t IG1hdGNoX3N0YXJ0PTMoMzApOiBBPWlkMywgQj1pZDQsIEZJUlNUKHZhbCk9MzAhPTEwIC0+IG5v IG1hdGNoCistLSBtYXRjaF9zdGFydD00KDEwKTogQT1pZDQsIEI9aWQ1LCBGSVJTVCh2YWwpPTEw IC0+IG1hdGNoIHs0LDV9CiBTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCiBGUk9NIHJwcl9uYXYgV0lORE9XIHcg QVMgKAogICAgIE9SREVSIEJZIGlkCkBAIC0xNzY3LDggKzE3NjcsOCBAQCBGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAogLS0gUmVsdWN0YW50IEErPyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZh bCk6IGZpbmQgc2hvcnRlc3QgbWF0Y2ggd2hlcmUKIC0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2 ZSB0aGUgc2FtZSB2YWwuCiAtLSBtYXRjaF9zdGFydD0xKDEwKTogcmVsdWN0YW50IHRyaWVzIEIg ZWFybHk6Ci0tLSAgIGlkMigyMOKJoDEwKSwgaWQzKDMw4omgMTApLCBpZDQoMTA9MTApIOKGkiBt YXRjaCB7MSwyLDMsNH0KLS0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTDiiaA1MCkg4oaSIG5v IG1hdGNoCistLSAgIGlkMigyMCE9MTApLCBpZDMoMzAhPTEwKSwgaWQ0KDEwPTEwKSAtPiBtYXRj aCB7MSwyLDMsNH0KKy0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTAhPTUwKSAtPiBubyBtYXRj aAogU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtbAogRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKICAgICBPUkRF UiBCWSBpZApAQCAtMTc5MCw3ICsxNzkwLDcgQEAgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgK IC0tIEdyZWVkeSBBKyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCk6IGZpbmQgbG9uZ2VzdCBt YXRjaCB3aGVyZQogLS0gZmlyc3QgYW5kIGxhc3Qgcm93cyBoYXZlIHRoZSBzYW1lIHZhbC4KIC0t IG1hdGNoX3N0YXJ0PTEoMTApOiBncmVlZHkgQSBlYXRzIGFsbCwgQiB0cmllcyBsYXN0OgotLS0g ICBpZDYoMTA9MTApIOKGkiBtYXRjaCB7MSwyLDMsNCw1LDZ9CistLSAgIGlkNigxMD0xMCkgLT4g bWF0Y2ggezEsMiwzLDQsNSw2fQogU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAogRlJPTSBycHJfbmF2IFdJTkRP VyB3IEFTICgKICAgICBPUkRFUiBCWSBpZApAQCAtMTg1MSw4ICsxODUxLDggQEAgRlJPTSBycHJf bmF2IFdJTkRPVyB3IEFTICgKICg2IHJvd3MpCiAKIC0tIEZJUlNUKHZhbCwgMSk6IG1hdGNoX3N0 YXJ0ICsgMSByb3cgKHNlY29uZCByb3cgb2YgbWF0Y2gpCi0tLSBtYXRjaF9zdGFydD0xKDEwKTog RklSU1QodmFsLDEpPTIwLCBCIG5lZWRzIHZhbD0yMCDihpIgaWQyKDIwKSBtYXRjaCwgaWQzKDMw KSBubwotLS0gbWF0Y2hfc3RhcnQ9MygzMCk6IEZJUlNUKHZhbCwxKT0xMCwgQiBuZWVkcyB2YWw9 MTAg4oaSIGlkNCgxMCkgbWF0Y2gKKy0tIG1hdGNoX3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9 MjAsIEIgbmVlZHMgdmFsPTIwIC0+IGlkMigyMCkgbWF0Y2gsIGlkMygzMCkgbm8KKy0tIG1hdGNo X3N0YXJ0PTMoMzApOiBGSVJTVCh2YWwsMSk9MTAsIEIgbmVlZHMgdmFsPTEwIC0+IGlkNCgxMCkg bWF0Y2gKIFNFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAgIE9SREVS IEJZIGlkCkBAIC0xODcxLDcgKzE4NzEsNyBAQCBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAog ICA2IHwgIDEwIHwgICAgfCAgIDAKICg2IHJvd3MpCiAKLS0tIEZJUlNUKHZhbCwgOTkpOiBvZmZz ZXQgYmV5b25kIG1hdGNoIHJhbmdlIOKGkiBOVUxMLCBubyBtYXRjaAorLS0gRklSU1QodmFsLCA5 OSk6IG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2UgLT4gTlVMTCwgbm8gbWF0Y2gKIFNFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMg KAogICAgIE9SREVSIEJZIGlkCkBAIC0xOTMwLDcgKzE5MzAsNyBAQCBGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAogICA2IHwgIDEwIHwgICAgfCAgIDAKICg2IHJvd3MpCiAKLS0tIExBU1QodmFs LCA5OSk6IG9mZnNldCBiZWZvcmUgbWF0Y2hfc3RhcnQg4oaSIE5VTEwKKy0tIExBU1QodmFsLCA5 OSk6IG9mZnNldCBiZWZvcmUgbWF0Y2hfc3RhcnQgLT4gTlVMTAogU0VMRUNUIGlkLCB2YWwsIGNv dW50KCopIE9WRVIgdyBBUyBjbnQKIEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCiAgICAgT1JE RVIgQlkgaWQKQEAgLTE5OTEsOCArMTk5MSw4IEBAIERST1AgVEFCTEUgcnByX25hbWVzOwogLS0g Q29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCh2YWwpLCBNKQogLS0gcnByX25hdjogKDEs MTApLCgyLDIwKSwoMywzMCksKDQsMTApLCg1LDUwKSwoNiwxMCkKIC0tIFBSRVYoRklSU1QodmFs KSwgMSk6IHRhcmdldCA9IG1hdGNoX3N0YXJ0ICsgMCAtIDEgPSBtYXRjaF9zdGFydCAtIDEKLS0t IEF0IG1hdGNoX3N0YXJ0PTE6IHRhcmdldD0wIOKGkiBvdXQgb2YgcmFuZ2Ug4oaSIE5VTEwKLS0t IEF0IG1hdGNoX3N0YXJ0PTM6IHRhcmdldD0yKHZhbD0yMCkg4oaSIDIwID4gMCDihpIgdHJ1ZQor LS0gQXQgbWF0Y2hfc3RhcnQ9MTogdGFyZ2V0PTAgLT4gb3V0IG9mIHJhbmdlIC0+IE5VTEwKKy0t IEF0IG1hdGNoX3N0YXJ0PTM6IHRhcmdldD0yKHZhbD0yMCkgLT4gMjAgPiAwIC0+IHRydWUKIFNF TEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCkBA IC0yMDEyLDcgKzIwMTIsNyBAQCBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogKDYgcm93cykK IAogLS0gTkVYVChGSVJTVCh2YWwsIDEpLCAxKTogdGFyZ2V0ID0gbWF0Y2hfc3RhcnQgKyAxICsg MSA9IG1hdGNoX3N0YXJ0ICsgMgotLS0gQXQgbWF0Y2hfc3RhcnQ9MSwgQiBvbiBpZDI6IHRhcmdl dD0xKzErMT0zKHZhbD0zMCksIDMwPjAg4oaSIHRydWUKKy0tIEF0IG1hdGNoX3N0YXJ0PTEsIEIg b24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIC0+IHRydWUKIFNFTEVDVCBpZCwg dmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCkBAIC0yMTYwLDcg KzIxNjAsNyBAQCBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBX SU5ET1cgdyBBUyAoCiApOwogRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBt dXN0IG5vdCBiZSBuZWdhdGl2ZQogLS0gQ29tcG91bmQ6IGRlZmF1bHQgb2Zmc2V0cyBvbiBib3Ro IHNpZGVzCi0tLSBQUkVWKEZJUlNUKHZhbCkpOiBpbm5lcj0wIChtYXRjaF9zdGFydCksIG91dGVy PTEg4oaSIHRhcmdldCA9IG1hdGNoX3N0YXJ0IC0gMQorLS0gUFJFVihGSVJTVCh2YWwpKTogaW5u ZXI9MCAobWF0Y2hfc3RhcnQpLCBvdXRlcj0xIC0+IHRhcmdldCA9IG1hdGNoX3N0YXJ0IC0gMQog U0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKIEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQK QEAgLTIxNzksNyArMjE3OSw3IEBAIEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCiAgIDYgfCAg MTAgfCAgICB8ICAgMAogKDYgcm93cykKIAotLS0gTkVYVChMQVNUKHZhbCkpOiBpbm5lcj0wIChj dXJyZW50cG9zKSwgb3V0ZXI9MSDihpIgdGFyZ2V0ID0gY3VycmVudHBvcyArIDEKKy0tIE5FWFQo TEFTVCh2YWwpKTogaW5uZXI9MCAoY3VycmVudHBvcyksIG91dGVyPTEgLT4gdGFyZ2V0ID0gY3Vy cmVudHBvcyArIDEKIFNFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1m LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAg IE9SREVSIEJZIGlkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDM2 MzdhNWM4MDAyLi5hNjMyMTFmZjM2NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfYmFzZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFz ZS5vdXQKQEAgLTMwNjUsNyArMzA2NSw3IEBAIExJTkUgNjogICAgIERFRklORSBBIEFTIHZhbCA+ IDAKICAgICAgICAgICAgIF4KIC0tIEV4cGVjdGVkOiBTeW50YXggZXJyb3IKIC0tIFF1YWxpZmll ZCBjb2x1bW4gcmVmZXJlbmNlcyAoTk9UIFNVUFBPUlRFRCkKLS0tIFBhdHRlcm4gdmFyaWFibGUg cXVhbGlmaWVkIG5hbWU6IG5vdCBzdXBwb3J0ZWQgKHZhbGlkIHBlciDCpzQuMTYsIG5vdCB5ZXQg aW1wbGVtZW50ZWQpCistLSBQYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBuYW1lOiBub3Qgc3Vw cG9ydGVkICh2YWxpZCBwZXIgU1FMIHN0YW5kYXJkIDQuMTYsIG5vdCB5ZXQgaW1wbGVtZW50ZWQp CiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKIFdJTkRPVyB3IEFTICgKQEAg LTMxMDQsNyArMzEwNCw3IEBAIEVSUk9SOiAgREVGSU5FIHZhcmlhYmxlICJiIiBpcyBub3QgdXNl ZCBpbiBQQVRURVJOCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIEIudmFs ID4gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlICJiLnZhbCIg aXMgbm90IHN1cHBvcnRlZAotLS0gRlJPTS1jbGF1c2UgcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVk IG5hbWU6IG5vdCBhbGxvd2VkIChwcm9oaWJpdGVkIGJ5IMKnNi41KQorLS0gRlJPTS1jbGF1c2Ug cmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBhbGxvd2VkIChwcm9oaWJpdGVkIGJ5 IFNRTCBzdGFuZGFyZCA2LjUpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIK IFdJTkRPVyB3IEFTICgKQEAgLTU4MjEsNyArNTgyMSw3IEBAIENSRUFURSBUQUJMRSBycHJfc29y dCAoaWQgSU5ULCBjYXRlZ29yeSBWQVJDSEFSKDEwKSwgdmFsIElOVCk7CiBJTlNFUlQgSU5UTyBy cHJfc29ydCBWQUxVRVMKICAgICAoMSwgJ0EnLCAzMCksICgyLCAnQicsIDIwKSwgKDMsICdBJywg MTApLAogICAgICg0LCAnQicsIDQwKSwgKDUsICdBJywgNTApLCAoNiwgJ0InLCA2MCk7Ci0tLSBS UFIgd2l0aCBHUk9VUCBCWSAoYWdncmVnYXRlIGluIERFRklORSDihpIgRVJST1IgYmVmb3JlIEdS T1VQIEJZIGludGVyYWN0aW9uKQorLS0gUlBSIHdpdGggR1JPVVAgQlkgKGFnZ3JlZ2F0ZSBpbiBE RUZJTkUgLT4gRVJST1IgYmVmb3JlIEdST1VQIEJZIGludGVyYWN0aW9uKQogLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKIFNF TEVDVCBjYXRlZ29yeSwKICAgICAgICBDT1VOVCgqKSBhcyBncm91cF9jbnQsCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfbmZhLm91dAppbmRleCAyNTBmN2YxMzFiMS4uYTE5YjI2YzNiOTQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dApAQCAtMTE1MSw3ICsxMTUxLDcgQEAg V0lORE9XIHcgQVMgKAogCiAtLSBPcHRpb25hbCByZWx1Y3RhbnQgZ3JvdXA6IChBIEIpPz8gQwog LS0gbmZhX2FkdmFuY2VfYmVnaW46IHJlbHVjdGFudCB0cmllcyBza2lwIGZpcnN0LCBidXQgc2tp cCBwYXRoIG5lZWRzIEMKLS0tIGF0IHJvdyAxIHdoaWNoIGlzIEEg4oaSIHNraXAgZmFpbHMuIEVu dGVyIHBhdGggc3VjY2VlZHM6IEEoMSkgQigyKSBDKDMpLgorLS0gYXQgcm93IDEgd2hpY2ggaXMg QSAtPiBza2lwIGZhaWxzLiBFbnRlciBwYXRoIHN1Y2NlZWRzOiBBKDEpIEIoMikgQygzKS4KIFdJ VEggdGVzdF9vcHRpb25hbF9yZWx1Y3RhbnQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UwogICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCkBAIC0yOTYxLDggKzI5NjEsOCBAQCBXSU5ET1cg dyBBUyAoCiAgIDkgfCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiAoOSByb3dzKQog Ci0tLSBOZXN0ZWQgRU5E4oaSRU5EIG1heCByZWFjaGVkCi0tLSBJbm5lciBncm91cCAoQSBCKXsy fSByZWFjaGVzIG1heD0yIOKGkiBleGl0cyB0byBvdXRlciBFTkQKKy0tIE5lc3RlZCBFTkQtPkVO RCBtYXggcmVhY2hlZAorLS0gSW5uZXIgZ3JvdXAgKEEgQil7Mn0gcmVhY2hlcyBtYXg9MiAtPiBl eGl0cyB0byBvdXRlciBFTkQKIFdJVEggdGVzdF9lbmRfbmVzdGVkX21heCBBUyAoCiAgICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQSddKSwKQEAgLTMwMDIsOCAr MzAwMiw4IEBAIFdJTkRPVyB3IEFTICgKICAgOSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKICg5IHJvd3MpCiAKLS0tIE5lc3RlZCBFTkTihpJFTkQgYmV0d2VlbiBtaW4vbWF4Ci0t LSBJbm5lciBncm91cCAoQSBCKXsxLDN9IGV4aXRzIGJldHdlZW4gbWluL21heCDihpIgb3V0ZXIg RU5EIGNvdW50KysKKy0tIE5lc3RlZCBFTkQtPkVORCBiZXR3ZWVuIG1pbi9tYXgKKy0tIElubmVy IGdyb3VwIChBIEIpezEsM30gZXhpdHMgYmV0d2VlbiBtaW4vbWF4IC0+IG91dGVyIEVORCBjb3Vu dCsrCiBXSVRIIHRlc3RfZW5kX25lc3RlZF9taWQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUwogICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCkBAIC0zODg0LDkgKzM4ODQsOSBAQCBXSU5E T1cgdyBBUyAoCiAKIC0tIENvdmVyYWdlIGZhaWx1cmU6IG9sZGVyIGNhbid0IGNvdmVyIG5ld2Vy J3Mgc3RhdGVzCiAtLSBQYXR0ZXJuIEErIHwgQisgd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cuCi0t LSBSb3cgMTogb25seSBBIOKGkiBDdHgxIHRha2VzIEEgYnJhbmNoIG9ubHkgKEIgZmFpbHMpLgot LS0gUm93IDI6IEEgYW5kIEIg4oaSIEN0eDIgdGFrZXMgYm90aCBicmFuY2hlcy4KLS0tIEFic29y cHRpb246IEN0eDEgaGFzIEEgYnV0IG5vIEIg4oaSIGNhbid0IGNvdmVyIEN0eDIncyBCIHN0YXRl IOKGkiBmYWlscy4KKy0tIFJvdyAxOiBvbmx5IEEgLT4gQ3R4MSB0YWtlcyBBIGJyYW5jaCBvbmx5 IChCIGZhaWxzKS4KKy0tIFJvdyAyOiBBIGFuZCBCIC0+IEN0eDIgdGFrZXMgYm90aCBicmFuY2hl cy4KKy0tIEFic29ycHRpb246IEN0eDEgaGFzIEEgYnV0IG5vIEIgLT4gY2FuJ3QgY292ZXIgQ3R4 MidzIEIgc3RhdGUgLT4gZmFpbHMuCiBXSVRIIHRlc3RfY292ZXJhZ2VfZmFpbCBBUyAoCiAgICAg U0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQScsICdfJ10pLApAQCAt MzkyMCw4ICszOTIwLDggQEAgV0lORE9XIHcgQVMgKAogCiAtLSBBYnNvcmIgc2tpcHMgY29tcGxl dGVkIGNvbnRleHQgKG9sZGVyLT5zdGF0ZXM9PU5VTEwpCiAtLSBQYXR0ZXJuIEErIHwgQisgd2l0 aCBTS0lQIFBBU1QgTEFTVCBST1cuCi0tLSBSb3cgMTogQSBvbmx5IOKGkiBDdHgxIHRha2VzIEEg YnJhbmNoLiBSb3cgMjogQiBvbmx5IOKGkiBDdHgxIEEgZmFpbHMgKGNvbXBsZXRlZCkuCi0tLSBD dHgyIHRha2VzIEIgYnJhbmNoLiBBYnNvcnB0aW9uOiBDdHgxIHN0YXRlcz09TlVMTCDihpIgc2tp cC4KKy0tIFJvdyAxOiBBIG9ubHkgLT4gQ3R4MSB0YWtlcyBBIGJyYW5jaC4gUm93IDI6IEIgb25s eSAtPiBDdHgxIEEgZmFpbHMgKGNvbXBsZXRlZCkuCistLSBDdHgyIHRha2VzIEIgYnJhbmNoLiBB YnNvcnB0aW9uOiBDdHgxIHN0YXRlcz09TlVMTCAtPiBza2lwLgogV0lUSCB0ZXN0X29sZGVyX2Nv bXBsZXRlZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJB WVsnQSddKSwKQEAgLTM5NTMsOSArMzk1Myw5IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gQWJzb3Ji IHNraXBzIG5vbi1hYnNvcmJhYmxlIGNvbnRleHQgKCFoYXNBYnNvcmJhYmxlU3RhdGUpCiAtLSBQ YXR0ZXJuIEErIHwgQiBDIHdpdGggU0tJUCBQQVNUIExBU1QgUk9XIChvbmx5IEErIGJyYW5jaCBh YnNvcmJhYmxlKS4KLS0tIFJvdyAxOiBCIG9ubHkg4oaSIEN0eDEgdGFrZXMgQiBicmFuY2ggKG5v bi1hYnNvcmJhYmxlKSwgYWR2YW5jZXMgdG8gQy4KLS0tIFJvdyAyOiBDLEEg4oaSIEN0eDEgQyBt YXRjaGVzIChoYXNBYnNvcmJhYmxlU3RhdGU9ZmFsc2UpLiBDdHgyIHRha2VzIEEgKGFic29yYmFi bGUpLgotLS0gQWJzb3JwdGlvbjogQ3R4MSAhaGFzQWJzb3JiYWJsZVN0YXRlIOKGkiBza2lwLgor LS0gUm93IDE6IEIgb25seSAtPiBDdHgxIHRha2VzIEIgYnJhbmNoIChub24tYWJzb3JiYWJsZSks IGFkdmFuY2VzIHRvIEMuCistLSBSb3cgMjogQyxBIC0+IEN0eDEgQyBtYXRjaGVzIChoYXNBYnNv cmJhYmxlU3RhdGU9ZmFsc2UpLiBDdHgyIHRha2VzIEEgKGFic29yYmFibGUpLgorLS0gQWJzb3Jw dGlvbjogQ3R4MSAhaGFzQWJzb3JiYWJsZVN0YXRlIC0+IHNraXAuCiBXSVRIIHRlc3Rfb2xkZXJf bm9uX2Fic29yYmFibGUgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAo MSwgQVJSQVlbJ0InLCAnXyddKSwKQEAgLTQzOTcsNyArNDM5Nyw3IEBAIFdJTkRPVyB3IEFTICgK IC0tIChBPyl7MCwzfTogbWluPTAsIG51bGxhYmxlIGlubmVyLgogLS0gQSBuZXZlciBtYXRjaGVz LiBBPyBtYXRjaGVzIGVtcHR5LCBtaW49MCBzYXRpc2ZpZWQgaW1tZWRpYXRlbHkuCiAtLSBQZXIg c3RhbmRhcmQ6IGVtcHR5IG1hdGNoIGV4cGVjdGVkIGZvciBldmVyeSByb3cuCi0tLSBYWFg6IHZp c2l0ZWQgYml0bWFwIGJsb2NrcyBlbXB0eSBpdGVyYXRpb24g4oaSIG5vIG1hdGNoIChzYW1lIGFz IHsyLDN9KQorLS0gWFhYOiB2aXNpdGVkIGJpdG1hcCBibG9ja3MgZW1wdHkgaXRlcmF0aW9uIC0+ IG5vIG1hdGNoIChzYW1lIGFzIHsyLDN9KQogV0lUSCB0ZXN0XzcyOF9taW4wIEFTICgKICAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydCJ10pLApAQCAtNDQyNyw3 ICs0NDI3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gKEE/KXsxLDN9OiBtaW49MSwgbnVsbGFibGUg aW5uZXIuCiAtLSBBIG5ldmVyIG1hdGNoZXMuIE5lZWQgMSBlbXB0eSBpdGVyYXRpb24gdG8gc2F0 aXNmeSBtaW49MS4KIC0tIFBlciBzdGFuZGFyZDogZW1wdHkgbWF0Y2ggZXhwZWN0ZWQgZm9yIGV2 ZXJ5IHJvdy4KLS0tIFhYWDogdmlzaXRlZCBiaXRtYXAgYmxvY2tzIGVtcHR5IGl0ZXJhdGlvbiDi hpIgbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30pCistLSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJsb2Nr cyBlbXB0eSBpdGVyYXRpb24gLT4gbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30pCiBXSVRIIHRlc3Rf NzI4X21pbjEgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJS QVlbJ0InXSksCkBAIC00NDU4LDcgKzQ0NTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBBIG5ldmVy IG1hdGNoZXMuIE5lZWQgMiBlbXB0eSBpdGVyYXRpb25zIHRvIHNhdGlzZnkgbWluPTIuCiAtLSBQ ZXIgc3RhbmRhcmQ6IFNUUjA2PShTVFJFIFNUUkUpIGlzIHZhbGlkIGZvciBtaW49Mi4KIC0tIEV4 cGVjdGVkOiBlbXB0eSBtYXRjaCBmb3IgZXZlcnkgcm93Ci0tLSBYWFg6IHZpc2l0ZWQgYml0bWFw IGJsb2NrcyBzZWNvbmQgZW1wdHkgaXRlcmF0aW9uIOKGkiBtYXRjaCBmYWlsdXJlCistLSBYWFg6 IHZpc2l0ZWQgYml0bWFwIGJsb2NrcyBzZWNvbmQgZW1wdHkgaXRlcmF0aW9uIC0+IG1hdGNoIGZh aWx1cmUKIFdJVEggdGVzdF83MjhfbWluMiBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CiAgICAgICAgICgxLCBBUlJBWVsnQiddKSwKQEAgLTQ0ODYsMTAgKzQ0ODYsMTAgQEAgV0lORE9X IHcgQVMgKAogKDMgcm93cykKIAogLS0gKEE/KXsyLDN9IG1peGVkOiBzb21lIHJvd3MgbWF0Y2gg QSwgc29tZSBkb24ndAotLS0gUm93cyAxLTI6IEEgbWF0Y2hlcywgZ3JlZWR5IHRha2VzIDIg4oaS IG1pbiBzYXRpc2ZpZWQKKy0tIFJvd3MgMS0yOiBBIG1hdGNoZXMsIGdyZWVkeSB0YWtlcyAyIC0+ IG1pbiBzYXRpc2ZpZWQKIC0tIFJvdyAzOiBBIGRvZXNuJ3QgbWF0Y2gsIG5lZWRzIDIgZW1wdHkg aXRlcmF0aW9ucyBmb3IgbWluPTIKIC0tIFhYWDogUm93IDMgZmFpbHMgZHVlIHRvIHZpc2l0ZWQg Yml0bWFwIChzYW1lIGFzIHB1cmUgZW1wdHkgezIsM30pCi0tLSBSb3cgNDogQSBtYXRjaGVzIDEg cmVhbCBpdGVyICsgMSBmZiBlbXB0eSBleGl0IOKGkiBtYXRjaCA0LTQKKy0tIFJvdyA0OiBBIG1h dGNoZXMgMSByZWFsIGl0ZXIgKyAxIGZmIGVtcHR5IGV4aXQgLT4gbWF0Y2ggNC00CiBXSVRIIHRl c3RfNzI4X21pbjJfbWl4ZWQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAg ICAoMSwgQVJSQVlbJ0EnXSksCkBAIC00NTI0LDggKzQ1MjQsOCBAQCBXSU5ET1cgdyBBUyAoCiAt LSBmaXJlcyBhcyBhIHBhcmFsbGVsIGV4aXQgcGF0aCAoRVhJVCBPTkxZLCBubyBncmVlZHkvcmVs dWN0YW50IGxvb3ApLgogLS0gRGF0YTogYWx0ZXJuYXRpbmcgQSwgQiByb3dzICg2IHJvd3MpCiAt LSBHcmVlZHk6IGVhY2ggcm93IGdldHMgdGhlIGxvbmdlc3QgbWF0Y2ggZnJvbSBpdHMgc3RhcnRp bmcgcG9zaXRpb24uCi0tLSBSb3cgMTogMyBpdGVycyAoQUAxLEJAMikoQUAzLEJANCkoQUA1LEJA Nikg4oaSIDEtNgotLS0gUm93IDU6IDEgcmVhbCBpdGVyICsgMSBmZiBlbXB0eSBleGl0IOKGkiA1 LTYKKy0tIFJvdyAxOiAzIGl0ZXJzIChBQDEsQkAyKShBQDMsQkA0KShBQDUsQkA2KSAtPiAxLTYK Ky0tIFJvdyA1OiAxIHJlYWwgaXRlciArIDEgZmYgZW1wdHkgZXhpdCAtPiA1LTYKIFdJVEggdGVz dF83MjhfbXVsdGlfYm9keSBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAg ICgxLCBBUlJBWVsnQSddKSwKQEAgLTQ1OTAsOSArNDU5MCw5IEBAIFdJTkRPVyB3IEFTICgKICgz IHJvd3MpCiAKIC0tIChBPyBCPyl7MiwzfTogbWl4ZWQgcmVhbCBhbmQgZW1wdHkgaXRlcmF0aW9u cwotLS0gUm93IDE6IGl0ZXIxIHJlYWwgKEFAMSxCQDIpLCBpdGVyMiBhdCByb3cgMyBlbXB0eSDi hpIgZmYgZXhpdCwgbWF0Y2ggMS0yCi0tLSBSb3cgMzogQyBkb2Vzbid0IG1hdGNoIEEgb3IgQiDi hpIgTlVMTAotLS0gUm93IDQ6IGl0ZXIxIHJlYWwgKEFANCxCQDUpLCBpdGVyMiBhdCBlbmQgZW1w dHkg4oaSIGZmIGV4aXQsIG1hdGNoIDQtNQorLS0gUm93IDE6IGl0ZXIxIHJlYWwgKEFAMSxCQDIp LCBpdGVyMiBhdCByb3cgMyBlbXB0eSAtPiBmZiBleGl0LCBtYXRjaCAxLTIKKy0tIFJvdyAzOiBD IGRvZXNuJ3QgbWF0Y2ggQSBvciBCIC0+IE5VTEwKKy0tIFJvdyA0OiBpdGVyMSByZWFsIChBQDQs QkA1KSwgaXRlcjIgYXQgZW5kIGVtcHR5IC0+IGZmIGV4aXQsIG1hdGNoIDQtNQogV0lUSCB0ZXN0 XzcyOF9tdWx0aV9taXhlZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAg ICgxLCBBUlJBWVsnQSddKSwKQEAgLTQ2MjksNyArNDYyOSw3IEBAIFdJTkRPVyB3IEFTICgKIC0t IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogLS0gU3RhbmRhcmQncyB3b3JrZWQgZXhhbXBsZTogQT8gQisgd2l0aCBzcGVjaWZpYyBk YXRhCiAtLSBQcmVmZXJtZW50IG9yZGVyOiAoQSkoQkJCKSwgKEEpKEJCKSwgKEEpKEIpLCAoKShC QkIpLCAoKShCQiksICgpKEIpCi0tLSBSb3cgMTogQSBjb25kaXRpb24gKHByaWNlPjEwMCkgaXMg ZmFsc2Ug4oaSIEEgZmFpbHMKKy0tIFJvdyAxOiBBIGNvbmRpdGlvbiAocHJpY2U+MTAwKSBpcyBm YWxzZSAtPiBBIGZhaWxzCiAtLSBCYWNrdHJhY2s6IGVtcHR5IEE/LCB0aGVuIEIrIGZyb20gcm93 IDEKIC0tIEV4cGVjdGVkOiByb3dzIDEtMyBtYXRjaCBhcyBCIChBPyB0YWtlcyBlbXB0eSBtYXRj aCkKIFdJVEggdGVzdF83M19leGFtcGxlIEFTICgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IDcyNGQ0 NjBiMmRhLi41NTYzZTA2MmNkZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC04MjAsOSArODIwLDkg QEAgQ1JFQVRFIFRFTVAgVEFCTEUgcnByX25hdiAoaWQgaW50LCB2YWwgaW50KTsKIElOU0VSVCBJ TlRPIHJwcl9uYXYgVkFMVUVTICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYs MTApOwogCiAtLSBGSVJTVCh2YWwpID0gY29uc3RhbnQ6IEIgbWF0Y2hlcyB3aGVuIG1hdGNoX3N0 YXJ0IGhhcyB2YWw9MTAKLS0tIG1hdGNoX3N0YXJ0PTEoMTApOiBBPWlkMSwgQj1pZDIsIEZJUlNU KHZhbCk9MTAg4oaSIG1hdGNoIHsxLDJ9Ci0tLSBtYXRjaF9zdGFydD0zKDMwKTogQT1pZDMsIEI9 aWQ0LCBGSVJTVCh2YWwpPTMw4omgMTAg4oaSIG5vIG1hdGNoCi0tLSBtYXRjaF9zdGFydD00KDEw KTogQT1pZDQsIEI9aWQ1LCBGSVJTVCh2YWwpPTEwIOKGkiBtYXRjaCB7NCw1fQorLS0gbWF0Y2hf c3RhcnQ9MSgxMCk6IEE9aWQxLCBCPWlkMiwgRklSU1QodmFsKT0xMCAtPiBtYXRjaCB7MSwyfQor LS0gbWF0Y2hfc3RhcnQ9MygzMCk6IEE9aWQzLCBCPWlkNCwgRklSU1QodmFsKT0zMCE9MTAgLT4g bm8gbWF0Y2gKKy0tIG1hdGNoX3N0YXJ0PTQoMTApOiBBPWlkNCwgQj1pZDUsIEZJUlNUKHZhbCk9 MTAgLT4gbWF0Y2ggezQsNX0KIFNFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKIEZST00gcnByX25hdiBXSU5ET1cg dyBBUyAoCiAgICAgT1JERVIgQlkgaWQKQEAgLTg0Niw4ICs4NDYsOCBAQCBGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAogLS0gUmVsdWN0YW50IEErPyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZh bCk6IGZpbmQgc2hvcnRlc3QgbWF0Y2ggd2hlcmUKIC0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2 ZSB0aGUgc2FtZSB2YWwuCiAtLSBtYXRjaF9zdGFydD0xKDEwKTogcmVsdWN0YW50IHRyaWVzIEIg ZWFybHk6Ci0tLSAgIGlkMigyMOKJoDEwKSwgaWQzKDMw4omgMTApLCBpZDQoMTA9MTApIOKGkiBt YXRjaCB7MSwyLDMsNH0KLS0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTDiiaA1MCkg4oaSIG5v IG1hdGNoCistLSAgIGlkMigyMCE9MTApLCBpZDMoMzAhPTEwKSwgaWQ0KDEwPTEwKSAtPiBtYXRj aCB7MSwyLDMsNH0KKy0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTAhPTUwKSAtPiBubyBtYXRj aAogU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtbAogRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKICAgICBPUkRF UiBCWSBpZApAQCAtODYwLDcgKzg2MCw3IEBAIEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCiAt LSBHcmVlZHkgQSsgd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIGxvbmdlc3QgbWF0 Y2ggd2hlcmUKIC0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUgc2FtZSB2YWwuCiAtLSBt YXRjaF9zdGFydD0xKDEwKTogZ3JlZWR5IEEgZWF0cyBhbGwsIEIgdHJpZXMgbGFzdDoKLS0tICAg aWQ2KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDQsNSw2fQorLS0gICBpZDYoMTA9MTApIC0+IG1h dGNoIHsxLDIsMyw0LDUsNn0KIFNFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKIEZST00gcnByX25hdiBXSU5ET1cg dyBBUyAoCiAgICAgT1JERVIgQlkgaWQKQEAgLTg5NCw4ICs4OTQsOCBAQCBGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAogKTsKIAogLS0gRklSU1QodmFsLCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJv dyAoc2Vjb25kIHJvdyBvZiBtYXRjaCkKLS0tIG1hdGNoX3N0YXJ0PTEoMTApOiBGSVJTVCh2YWws MSk9MjAsIEIgbmVlZHMgdmFsPTIwIOKGkiBpZDIoMjApIG1hdGNoLCBpZDMoMzApIG5vCi0tLSBt YXRjaF9zdGFydD0zKDMwKTogRklSU1QodmFsLDEpPTEwLCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0 KDEwKSBtYXRjaAorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IEZJUlNUKHZhbCwxKT0yMCwgQiBuZWVk cyB2YWw9MjAgLT4gaWQyKDIwKSBtYXRjaCwgaWQzKDMwKSBubworLS0gbWF0Y2hfc3RhcnQ9Mygz MCk6IEZJUlNUKHZhbCwxKT0xMCwgQiBuZWVkcyB2YWw9MTAgLT4gaWQ0KDEwKSBtYXRjaAogU0VM RUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKIEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKQEAg LTkwNSw3ICs5MDUsNyBAQCBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBB IEFTIFRSVUUsIEIgQVMgdmFsID0gRklSU1QodmFsLCAxKQogKTsKIAotLS0gRklSU1QodmFsLCA5 OSk6IG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2Ug4oaSIE5VTEwsIG5vIG1hdGNoCistLSBGSVJT VCh2YWwsIDk5KTogb2Zmc2V0IGJleW9uZCBtYXRjaCByYW5nZSAtPiBOVUxMLCBubyBtYXRjaAog U0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKIEZST00gcnByX25hdiBXSU5E T1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKQEAgLTkzNyw3ICs5MzcsNyBAQCBGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDEp IDwgMzAKICk7CiAKLS0tIExBU1QodmFsLCA5OSk6IG9mZnNldCBiZWZvcmUgbWF0Y2hfc3RhcnQg 4oaSIE5VTEwKKy0tIExBU1QodmFsLCA5OSk6IG9mZnNldCBiZWZvcmUgbWF0Y2hfc3RhcnQgLT4g TlVMTAogU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKIEZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKQEAgLTk3Nyw4ICs5NzcsOCBAQCBEUk9Q IFRBQkxFIHJwcl9uYW1lczsKIC0tIENvbXBvdW5kIG5hdmlnYXRpb246IFBSRVYoRklSU1QodmFs KSwgTSkKIC0tIHJwcl9uYXY6ICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYs MTApCiAtLSBQUkVWKEZJUlNUKHZhbCksIDEpOiB0YXJnZXQgPSBtYXRjaF9zdGFydCArIDAgLSAx ID0gbWF0Y2hfc3RhcnQgLSAxCi0tLSBBdCBtYXRjaF9zdGFydD0xOiB0YXJnZXQ9MCDihpIgb3V0 IG9mIHJhbmdlIOKGkiBOVUxMCi0tLSBBdCBtYXRjaF9zdGFydD0zOiB0YXJnZXQ9Mih2YWw9MjAp IOKGkiAyMCA+IDAg4oaSIHRydWUKKy0tIEF0IG1hdGNoX3N0YXJ0PTE6IHRhcmdldD0wIC0+IG91 dCBvZiByYW5nZSAtPiBOVUxMCistLSBBdCBtYXRjaF9zdGFydD0zOiB0YXJnZXQ9Mih2YWw9MjAp IC0+IDIwID4gMCAtPiB0cnVlCiBTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAogRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFT ICgKICAgICBPUkRFUiBCWSBpZApAQCAtOTg5LDcgKzk4OSw3IEBAIEZST00gcnByX25hdiBXSU5E T1cgdyBBUyAoCiApOwogCiAtLSBORVhUKEZJUlNUKHZhbCwgMSksIDEpOiB0YXJnZXQgPSBtYXRj aF9zdGFydCArIDEgKyAxID0gbWF0Y2hfc3RhcnQgKyAyCi0tLSBBdCBtYXRjaF9zdGFydD0xLCBC IG9uIGlkMjogdGFyZ2V0PTErMSsxPTModmFsPTMwKSwgMzA+MCDihpIgdHJ1ZQorLS0gQXQgbWF0 Y2hfc3RhcnQ9MSwgQiBvbiBpZDI6IHRhcmdldD0xKzErMT0zKHZhbD0zMCksIDMwPjAgLT4gdHJ1 ZQogU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCop IE9WRVIgdyBBUyBjbnQKIEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkg aWQKQEAgLTEwNzQsNyArMTA3NCw3IEBAIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcg RlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKICk7CiAKIC0tIENvbXBvdW5kOiBkZWZhdWx0IG9m ZnNldHMgb24gYm90aCBzaWRlcwotLS0gUFJFVihGSVJTVCh2YWwpKTogaW5uZXI9MCAobWF0Y2hf c3RhcnQpLCBvdXRlcj0xIOKGkiB0YXJnZXQgPSBtYXRjaF9zdGFydCAtIDEKKy0tIFBSRVYoRklS U1QodmFsKSk6IGlubmVyPTAgKG1hdGNoX3N0YXJ0KSwgb3V0ZXI9MSAtPiB0YXJnZXQgPSBtYXRj aF9zdGFydCAtIDEKIFNFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1m LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAg IE9SREVSIEJZIGlkCkBAIC0xMDg0LDcgKzEwODQsNyBAQCBGUk9NIHJwcl9uYXYgV0lORE9XIHcg QVMgKAogICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpKSBJUyBOT1Qg TlVMTAogKTsKIAotLS0gTkVYVChMQVNUKHZhbCkpOiBpbm5lcj0wIChjdXJyZW50cG9zKSwgb3V0 ZXI9MSDihpIgdGFyZ2V0ID0gY3VycmVudHBvcyArIDEKKy0tIE5FWFQoTEFTVCh2YWwpKTogaW5u ZXI9MCAoY3VycmVudHBvcyksIG91dGVyPTEgLT4gdGFyZ2V0ID0gY3VycmVudHBvcyArIDEKIFNF TEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CiBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggOTBiMWFlOTZhMGUuLjg2ZWQwNmZlYzY4IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0yMDgzLDcgKzIwODMsNyBAQCBXSU5ET1cg dyBBUyAoCiAKIC0tIFF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlcyAoTk9UIFNVUFBPUlRFRCkK IAotLS0gUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCAodmFs aWQgcGVyIMKnNC4xNiwgbm90IHlldCBpbXBsZW1lbnRlZCkKKy0tIFBhdHRlcm4gdmFyaWFibGUg cXVhbGlmaWVkIG5hbWU6IG5vdCBzdXBwb3J0ZWQgKHZhbGlkIHBlciBTUUwgc3RhbmRhcmQgNC4x Niwgbm90IHlldCBpbXBsZW1lbnRlZCkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnBy X2VycgogV0lORE9XIHcgQVMgKApAQCAtMjExNiw3ICsyMTE2LDcgQEAgV0lORE9XIHcgQVMgKAog KTsKIC0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1u IHJlZmVyZW5jZSAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKIAotLS0gRlJPTS1jbGF1c2UgcmFu Z2UgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBhbGxvd2VkIChwcm9oaWJpdGVkIGJ5IMKn Ni41KQorLS0gRlJPTS1jbGF1c2UgcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBh bGxvd2VkIChwcm9oaWJpdGVkIGJ5IFNRTCBzdGFuZGFyZCA2LjUpCiBTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3CiBGUk9NIHJwcl9lcnIKIFdJTkRPVyB3IEFTICgKQEAgLTM2MTEsNyArMzYxMSw3IEBA IElOU0VSVCBJTlRPIHJwcl9zb3J0IFZBTFVFUwogICAgICgxLCAnQScsIDMwKSwgKDIsICdCJywg MjApLCAoMywgJ0EnLCAxMCksCiAgICAgKDQsICdCJywgNDApLCAoNSwgJ0EnLCA1MCksICg2LCAn QicsIDYwKTsKIAotLS0gUlBSIHdpdGggR1JPVVAgQlkgKGFnZ3JlZ2F0ZSBpbiBERUZJTkUg4oaS IEVSUk9SIGJlZm9yZSBHUk9VUCBCWSBpbnRlcmFjdGlvbikKKy0tIFJQUiB3aXRoIEdST1VQIEJZ IChhZ2dyZWdhdGUgaW4gREVGSU5FIC0+IEVSUk9SIGJlZm9yZSBHUk9VUCBCWSBpbnRlcmFjdGlv bikKIC0tIEV4cGVjdGVkOiBFUlJPUjogYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93 ZWQgaW4gREVGSU5FCiAKIFNFTEVDVCBjYXRlZ29yeSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwK aW5kZXggYWFhN2I0NGY3ODkuLjFkMjdlMGRjMDllIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNx bApAQCAtODA2LDcgKzgwNiw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gT3B0aW9uYWwgcmVsdWN0 YW50IGdyb3VwOiAoQSBCKT8/IEMKIC0tIG5mYV9hZHZhbmNlX2JlZ2luOiByZWx1Y3RhbnQgdHJp ZXMgc2tpcCBmaXJzdCwgYnV0IHNraXAgcGF0aCBuZWVkcyBDCi0tLSBhdCByb3cgMSB3aGljaCBp cyBBIOKGkiBza2lwIGZhaWxzLiBFbnRlciBwYXRoIHN1Y2NlZWRzOiBBKDEpIEIoMikgQygzKS4K Ky0tIGF0IHJvdyAxIHdoaWNoIGlzIEEgLT4gc2tpcCBmYWlscy4gRW50ZXIgcGF0aCBzdWNjZWVk czogQSgxKSBCKDIpIEMoMykuCiBXSVRIIHRlc3Rfb3B0aW9uYWxfcmVsdWN0YW50IEFTICgKICAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydBJ10pLApAQCAtMjEw Miw4ICsyMTAyLDggQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFn cykKICk7CiAKLS0tIE5lc3RlZCBFTkTihpJFTkQgbWF4IHJlYWNoZWQKLS0tIElubmVyIGdyb3Vw IChBIEIpezJ9IHJlYWNoZXMgbWF4PTIg4oaSIGV4aXRzIHRvIG91dGVyIEVORAorLS0gTmVzdGVk IEVORC0+RU5EIG1heCByZWFjaGVkCistLSBJbm5lciBncm91cCAoQSBCKXsyfSByZWFjaGVzIG1h eD0yIC0+IGV4aXRzIHRvIG91dGVyIEVORAogV0lUSCB0ZXN0X2VuZF9uZXN0ZWRfbWF4IEFTICgK ICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydBJ10pLApAQCAt MjEzMSw4ICsyMTMxLDggQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncykKICk7CiAKLS0tIE5lc3RlZCBFTkTihpJFTkQgYmV0d2VlbiBtaW4vbWF4Ci0tLSBJbm5l ciBncm91cCAoQSBCKXsxLDN9IGV4aXRzIGJldHdlZW4gbWluL21heCDihpIgb3V0ZXIgRU5EIGNv dW50KysKKy0tIE5lc3RlZCBFTkQtPkVORCBiZXR3ZWVuIG1pbi9tYXgKKy0tIElubmVyIGdyb3Vw IChBIEIpezEsM30gZXhpdHMgYmV0d2VlbiBtaW4vbWF4IC0+IG91dGVyIEVORCBjb3VudCsrCiBX SVRIIHRlc3RfZW5kX25lc3RlZF9taWQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwog ICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCkBAIC0yODIwLDkgKzI4MjAsOSBAQCBXSU5ET1cgdyBB UyAoCiAKIC0tIENvdmVyYWdlIGZhaWx1cmU6IG9sZGVyIGNhbid0IGNvdmVyIG5ld2VyJ3Mgc3Rh dGVzCiAtLSBQYXR0ZXJuIEErIHwgQisgd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cuCi0tLSBSb3cg MTogb25seSBBIOKGkiBDdHgxIHRha2VzIEEgYnJhbmNoIG9ubHkgKEIgZmFpbHMpLgotLS0gUm93 IDI6IEEgYW5kIEIg4oaSIEN0eDIgdGFrZXMgYm90aCBicmFuY2hlcy4KLS0tIEFic29ycHRpb246 IEN0eDEgaGFzIEEgYnV0IG5vIEIg4oaSIGNhbid0IGNvdmVyIEN0eDIncyBCIHN0YXRlIOKGkiBm YWlscy4KKy0tIFJvdyAxOiBvbmx5IEEgLT4gQ3R4MSB0YWtlcyBBIGJyYW5jaCBvbmx5IChCIGZh aWxzKS4KKy0tIFJvdyAyOiBBIGFuZCBCIC0+IEN0eDIgdGFrZXMgYm90aCBicmFuY2hlcy4KKy0t IEFic29ycHRpb246IEN0eDEgaGFzIEEgYnV0IG5vIEIgLT4gY2FuJ3QgY292ZXIgQ3R4MidzIEIg c3RhdGUgLT4gZmFpbHMuCiBXSVRIIHRlc3RfY292ZXJhZ2VfZmFpbCBBUyAoCiAgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQScsICdfJ10pLApAQCAtMjg0OCw4 ICsyODQ4LDggQEAgV0lORE9XIHcgQVMgKAogCiAtLSBBYnNvcmIgc2tpcHMgY29tcGxldGVkIGNv bnRleHQgKG9sZGVyLT5zdGF0ZXM9PU5VTEwpCiAtLSBQYXR0ZXJuIEErIHwgQisgd2l0aCBTS0lQ IFBBU1QgTEFTVCBST1cuCi0tLSBSb3cgMTogQSBvbmx5IOKGkiBDdHgxIHRha2VzIEEgYnJhbmNo LiBSb3cgMjogQiBvbmx5IOKGkiBDdHgxIEEgZmFpbHMgKGNvbXBsZXRlZCkuCi0tLSBDdHgyIHRh a2VzIEIgYnJhbmNoLiBBYnNvcnB0aW9uOiBDdHgxIHN0YXRlcz09TlVMTCDihpIgc2tpcC4KKy0t IFJvdyAxOiBBIG9ubHkgLT4gQ3R4MSB0YWtlcyBBIGJyYW5jaC4gUm93IDI6IEIgb25seSAtPiBD dHgxIEEgZmFpbHMgKGNvbXBsZXRlZCkuCistLSBDdHgyIHRha2VzIEIgYnJhbmNoLiBBYnNvcnB0 aW9uOiBDdHgxIHN0YXRlcz09TlVMTCAtPiBza2lwLgogV0lUSCB0ZXN0X29sZGVyX2NvbXBsZXRl ZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKQEAgLTI4NzQsOSArMjg3NCw5IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gQWJzb3JiIHNraXBz IG5vbi1hYnNvcmJhYmxlIGNvbnRleHQgKCFoYXNBYnNvcmJhYmxlU3RhdGUpCiAtLSBQYXR0ZXJu IEErIHwgQiBDIHdpdGggU0tJUCBQQVNUIExBU1QgUk9XIChvbmx5IEErIGJyYW5jaCBhYnNvcmJh YmxlKS4KLS0tIFJvdyAxOiBCIG9ubHkg4oaSIEN0eDEgdGFrZXMgQiBicmFuY2ggKG5vbi1hYnNv cmJhYmxlKSwgYWR2YW5jZXMgdG8gQy4KLS0tIFJvdyAyOiBDLEEg4oaSIEN0eDEgQyBtYXRjaGVz IChoYXNBYnNvcmJhYmxlU3RhdGU9ZmFsc2UpLiBDdHgyIHRha2VzIEEgKGFic29yYmFibGUpLgot LS0gQWJzb3JwdGlvbjogQ3R4MSAhaGFzQWJzb3JiYWJsZVN0YXRlIOKGkiBza2lwLgorLS0gUm93 IDE6IEIgb25seSAtPiBDdHgxIHRha2VzIEIgYnJhbmNoIChub24tYWJzb3JiYWJsZSksIGFkdmFu Y2VzIHRvIEMuCistLSBSb3cgMjogQyxBIC0+IEN0eDEgQyBtYXRjaGVzIChoYXNBYnNvcmJhYmxl U3RhdGU9ZmFsc2UpLiBDdHgyIHRha2VzIEEgKGFic29yYmFibGUpLgorLS0gQWJzb3JwdGlvbjog Q3R4MSAhaGFzQWJzb3JiYWJsZVN0YXRlIC0+IHNraXAuCiBXSVRIIHRlc3Rfb2xkZXJfbm9uX2Fi c29yYmFibGUgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJS QVlbJ0InLCAnXyddKSwKQEAgLTMyMzYsNyArMzIzNiw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIChB Pyl7MCwzfTogbWluPTAsIG51bGxhYmxlIGlubmVyLgogLS0gQSBuZXZlciBtYXRjaGVzLiBBPyBt YXRjaGVzIGVtcHR5LCBtaW49MCBzYXRpc2ZpZWQgaW1tZWRpYXRlbHkuCiAtLSBQZXIgc3RhbmRh cmQ6IGVtcHR5IG1hdGNoIGV4cGVjdGVkIGZvciBldmVyeSByb3cuCi0tLSBYWFg6IHZpc2l0ZWQg Yml0bWFwIGJsb2NrcyBlbXB0eSBpdGVyYXRpb24g4oaSIG5vIG1hdGNoIChzYW1lIGFzIHsyLDN9 KQorLS0gWFhYOiB2aXNpdGVkIGJpdG1hcCBibG9ja3MgZW1wdHkgaXRlcmF0aW9uIC0+IG5vIG1h dGNoIChzYW1lIGFzIHsyLDN9KQogV0lUSCB0ZXN0XzcyOF9taW4wIEFTICgKICAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydCJ10pLApAQCAtMzI2MCw3ICszMjYw LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gKEE/KXsxLDN9OiBtaW49MSwgbnVsbGFibGUgaW5uZXIu CiAtLSBBIG5ldmVyIG1hdGNoZXMuIE5lZWQgMSBlbXB0eSBpdGVyYXRpb24gdG8gc2F0aXNmeSBt aW49MS4KIC0tIFBlciBzdGFuZGFyZDogZW1wdHkgbWF0Y2ggZXhwZWN0ZWQgZm9yIGV2ZXJ5IHJv dy4KLS0tIFhYWDogdmlzaXRlZCBiaXRtYXAgYmxvY2tzIGVtcHR5IGl0ZXJhdGlvbiDihpIgbm8g bWF0Y2ggKHNhbWUgYXMgezIsM30pCistLSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJsb2NrcyBlbXB0 eSBpdGVyYXRpb24gLT4gbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30pCiBXSVRIIHRlc3RfNzI4X21p bjEgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJSQVlbJ0In XSksCkBAIC0zMjg1LDcgKzMyODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBBIG5ldmVyIG1hdGNo ZXMuIE5lZWQgMiBlbXB0eSBpdGVyYXRpb25zIHRvIHNhdGlzZnkgbWluPTIuCiAtLSBQZXIgc3Rh bmRhcmQ6IFNUUjA2PShTVFJFIFNUUkUpIGlzIHZhbGlkIGZvciBtaW49Mi4KIC0tIEV4cGVjdGVk OiBlbXB0eSBtYXRjaCBmb3IgZXZlcnkgcm93Ci0tLSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJsb2Nr cyBzZWNvbmQgZW1wdHkgaXRlcmF0aW9uIOKGkiBtYXRjaCBmYWlsdXJlCistLSBYWFg6IHZpc2l0 ZWQgYml0bWFwIGJsb2NrcyBzZWNvbmQgZW1wdHkgaXRlcmF0aW9uIC0+IG1hdGNoIGZhaWx1cmUK IFdJVEggdGVzdF83MjhfbWluMiBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAg ICAgICgxLCBBUlJBWVsnQiddKSwKQEAgLTMzMDcsMTAgKzMzMDcsMTAgQEAgV0lORE9XIHcgQVMg KAogKTsKIAogLS0gKEE/KXsyLDN9IG1peGVkOiBzb21lIHJvd3MgbWF0Y2ggQSwgc29tZSBkb24n dAotLS0gUm93cyAxLTI6IEEgbWF0Y2hlcywgZ3JlZWR5IHRha2VzIDIg4oaSIG1pbiBzYXRpc2Zp ZWQKKy0tIFJvd3MgMS0yOiBBIG1hdGNoZXMsIGdyZWVkeSB0YWtlcyAyIC0+IG1pbiBzYXRpc2Zp ZWQKIC0tIFJvdyAzOiBBIGRvZXNuJ3QgbWF0Y2gsIG5lZWRzIDIgZW1wdHkgaXRlcmF0aW9ucyBm b3IgbWluPTIKIC0tIFhYWDogUm93IDMgZmFpbHMgZHVlIHRvIHZpc2l0ZWQgYml0bWFwIChzYW1l IGFzIHB1cmUgZW1wdHkgezIsM30pCi0tLSBSb3cgNDogQSBtYXRjaGVzIDEgcmVhbCBpdGVyICsg MSBmZiBlbXB0eSBleGl0IOKGkiBtYXRjaCA0LTQKKy0tIFJvdyA0OiBBIG1hdGNoZXMgMSByZWFs IGl0ZXIgKyAxIGZmIGVtcHR5IGV4aXQgLT4gbWF0Y2ggNC00CiBXSVRIIHRlc3RfNzI4X21pbjJf bWl4ZWQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJSQVlb J0EnXSksCkBAIC0zMzM4LDggKzMzMzgsOCBAQCBXSU5ET1cgdyBBUyAoCiAtLSBmaXJlcyBhcyBh IHBhcmFsbGVsIGV4aXQgcGF0aCAoRVhJVCBPTkxZLCBubyBncmVlZHkvcmVsdWN0YW50IGxvb3Ap LgogLS0gRGF0YTogYWx0ZXJuYXRpbmcgQSwgQiByb3dzICg2IHJvd3MpCiAtLSBHcmVlZHk6IGVh Y2ggcm93IGdldHMgdGhlIGxvbmdlc3QgbWF0Y2ggZnJvbSBpdHMgc3RhcnRpbmcgcG9zaXRpb24u Ci0tLSBSb3cgMTogMyBpdGVycyAoQUAxLEJAMikoQUAzLEJANCkoQUA1LEJANikg4oaSIDEtNgot LS0gUm93IDU6IDEgcmVhbCBpdGVyICsgMSBmZiBlbXB0eSBleGl0IOKGkiA1LTYKKy0tIFJvdyAx OiAzIGl0ZXJzIChBQDEsQkAyKShBQDMsQkA0KShBQDUsQkA2KSAtPiAxLTYKKy0tIFJvdyA1OiAx IHJlYWwgaXRlciArIDEgZmYgZW1wdHkgZXhpdCAtPiA1LTYKIFdJVEggdGVzdF83MjhfbXVsdGlf Ym9keSBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsn QSddKSwKQEAgLTMzODksOSArMzM4OSw5IEBAIFdJTkRPVyB3IEFTICgKICk7CiAKIC0tIChBPyBC Pyl7MiwzfTogbWl4ZWQgcmVhbCBhbmQgZW1wdHkgaXRlcmF0aW9ucwotLS0gUm93IDE6IGl0ZXIx IHJlYWwgKEFAMSxCQDIpLCBpdGVyMiBhdCByb3cgMyBlbXB0eSDihpIgZmYgZXhpdCwgbWF0Y2gg MS0yCi0tLSBSb3cgMzogQyBkb2Vzbid0IG1hdGNoIEEgb3IgQiDihpIgTlVMTAotLS0gUm93IDQ6 IGl0ZXIxIHJlYWwgKEFANCxCQDUpLCBpdGVyMiBhdCBlbmQgZW1wdHkg4oaSIGZmIGV4aXQsIG1h dGNoIDQtNQorLS0gUm93IDE6IGl0ZXIxIHJlYWwgKEFAMSxCQDIpLCBpdGVyMiBhdCByb3cgMyBl bXB0eSAtPiBmZiBleGl0LCBtYXRjaCAxLTIKKy0tIFJvdyAzOiBDIGRvZXNuJ3QgbWF0Y2ggQSBv ciBCIC0+IE5VTEwKKy0tIFJvdyA0OiBpdGVyMSByZWFsIChBQDQsQkA1KSwgaXRlcjIgYXQgZW5k IGVtcHR5IC0+IGZmIGV4aXQsIG1hdGNoIDQtNQogV0lUSCB0ZXN0XzcyOF9tdWx0aV9taXhlZCBB UyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQSddKSwK QEAgLTM0MjEsNyArMzQyMSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gU3RhbmRhcmQncyB3b3Jr ZWQgZXhhbXBsZTogQT8gQisgd2l0aCBzcGVjaWZpYyBkYXRhCiAtLSBQcmVmZXJtZW50IG9yZGVy OiAoQSkoQkJCKSwgKEEpKEJCKSwgKEEpKEIpLCAoKShCQkIpLCAoKShCQiksICgpKEIpCi0tLSBS b3cgMTogQSBjb25kaXRpb24gKHByaWNlPjEwMCkgaXMgZmFsc2Ug4oaSIEEgZmFpbHMKKy0tIFJv dyAxOiBBIGNvbmRpdGlvbiAocHJpY2U+MTAwKSBpcyBmYWxzZSAtPiBBIGZhaWxzCiAtLSBCYWNr dHJhY2s6IGVtcHR5IEE/LCB0aGVuIEIrIGZyb20gcm93IDEKIC0tIEV4cGVjdGVkOiByb3dzIDEt MyBtYXRjaCBhcyBCIChBPyB0YWtlcyBlbXB0eSBtYXRjaCkKIFdJVEggdGVzdF83M19leGFtcGxl IEFTICgKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0038-Move-RPR-design-notes-to-README.rpr.txt" Content-Disposition: attachment; filename="nocfbot-0038-Move-RPR-design-notes-to-README.rpr.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64lne37 RnJvbSBmMDg2ZjA2YWIwZmRhMzBkOThkZDA0MzVjNGRlY2FkMzBkYzQwMGY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDE6MDU6MDQgKzA5MDAKU3ViamVjdDogW1BBVENIIDM4LzQwXSBN b3ZlIFJQUiBkZXNpZ24gbm90ZXMgZnJvbSBleGVjUlBSLmMgdG8gUkVBRE1FLnJwcgoKVGhlICJG bGF0LUFycmF5IFN0cmVhbSBORkEgR3VpZGUiIChDaGFwdGVycyBJLVhJSSBwbHVzIEFwcGVuZGl4 IEEtQykKd2FzIGNhcnJpZWQgYXMgYSBzaW5nbGUgMTU4MC1saW5lIEMgY29tbWVudCBibG9jayBh dCB0aGUgdG9wIG9mCmV4ZWNSUFIuYywgYWNjb3VudGluZyBmb3IgbmVhcmx5IGhhbGYgdGhlIGZp bGUncyBsZW5ndGguICBNb3ZlIGl0CnZlcmJhdGltIHRvIGEgbmV3IHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL1JFQURNRS5ycHIsIGZvbGxvd2luZyB0aGUKc2FtZSBwbGFpbi10ZXggY29udmVudGlvbiBh cyB0aGUgZXhpc3RpbmcgZXhlY3V0b3IvUkVBRE1FLCBhbmQKbGVhdmUgYSBmb3VyLWxpbmUgcG9p bnRlciBjb21tZW50IGluIGV4ZWNSUFIuYy4KCkFsbCBjaGFwdGVyIGNyb3NzLXJlZmVyZW5jZXMg aW4gdGhlIGRvY3VtZW50IGFyZSBpbnRyYS1kb2N1bWVudAooIkNoYXB0ZXIgSVYiLCAiQ2hhcHRl ciBWSUlJIiwgIkNoYXB0ZXIgWElJIiwgZXRjLikgYW5kIG5vIG90aGVyCnNvdXJjZSBvciBjb21t ZW50IHJlZmVycyB0byB0aGVtLCBzbyBleHRyYWN0aW5nIHRoZSBibG9jayB3aG9sZQppbnRyb2R1 Y2VzIG5vIGRhbmdsaW5nIHJlZmVyZW5jZXMuCgpDb2RlLW9yZ2FuaXphdGlvbiBjaGFuZ2U7IG5v IGZ1bmN0aW9uYWwgb3IgdGVzdCBpbXBhY3QuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVB RE1FLnJwciB8IDE1NzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMgIHwgMTU4MCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE1ODAgaW5zZXJ0aW9ucygrKSwgMTU3OCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL1JFQURNRS5ycHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjUyYmNkNzczOTBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv UkVBRE1FLnJwcgpAQCAtMCwwICsxLDE1NzggQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgUG9z dGdyZVNRTCBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbjogRmxhdC1BcnJheSBTdHJlYW0gTkZBIEd1 aWRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgVGFyZ2V0IGF1ZGllbmNlOiBEZXZlbG9wZXJz IHdpdGggYSBiYXNpYyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBQb3N0Z3JlU1FMCisgICAgICAgICAg ICAgICAgICAgZXhlY3V0b3IgYW5kIHBsYW5uZXIgYXJjaGl0ZWN0dXJlCisKKyAgU2NvcGU6IFRo ZSBlbnRpcmUgcHJvY2VzcyBmcm9tIFBBVFRFUk4vREVGSU5FIGNsYXVzZSBwYXJzaW5nIHRvIE5G QQorICAgICAgICAgcnVudGltZSBleGVjdXRpb24KKworICBSZWxhdGVkIGNvZGU6CisgICAgLSBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgICAgKHBhcnNlciBwaGFzZSkKKyAg ICAtIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgICAob3B0aW1pemVyIHBo YXNlKQorICAgIC0gc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgIChleGVj dXRvciBwaGFzZSwgd2luZG93IGFnZykKKyAgICAtIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYyAgICAgICAgICAoZXhlY3V0b3IgcGhhc2UsIE5GQSBlbmdpbmUpCisgICAgLSBzcmMvaW5j bHVkZS9leGVjdXRvci9leGVjUlBSLmggICAgICAgICAgKE5GQSBwdWJsaWMgQVBJKQorICAgIC0g c3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgIChwbGFuIG5vZGUgZGVmaW5p dGlvbnMpCisgICAgLSBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgKGV4 ZWN1dGlvbiBzdGF0ZSBkZWZpbml0aW9ucykKKyAgICAtIHNyYy9pbmNsdWRlL29wdGltaXplci9y cHIuaCAgICAgICAgICAgICAodHlwZXMgYW5kIGNvbnN0YW50cykKKyAgICAtIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAobmF2IG9mZnNldCBjb21wdXRhdGlvbikKKwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorCitXaGF0IGlzIGEgRmxhdC1BcnJheSBTdHJlYW0gTkZBPwor CisgIFRoZSBORkEgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYSB0cmFkaXRpb25hbCBz dGF0ZS10cmFuc2l0aW9uIGdyYXBoCisgIGJ1dCBhIGZsYXQgYXJyYXkgb2YgZml4ZWQtc2l6ZSAx Ni1ieXRlIGVsZW1lbnRzLiBBdCBydW50aW1lLCBpdCBwcm9jZXNzZXMKKyAgdGhlIHJvdyBzdHJl YW0gaW4gYSBmb3J3YXJkLW9ubHkgbWFubmVyLCBleHBhbmRpbmcgZXBzaWxvbiB0cmFuc2l0aW9u cworICBlYWdlcmx5IHdpdGhvdXQgYmFja3RyYWNraW5nLgorCisgIC0gRmxhdC1BcnJheTogUGF0 dGVybiBjb21waWxlZCBpbnRvIGEgZmxhdCBhcnJheSwKKyAgICAgICAgICAgICAgICBub3QgYSBn cmFwaCAoQ2hhcHRlciBJVikKKyAgLSBTdHJlYW06ICAgICBSb3dzIGNvbnN1bWVkIHNlcXVlbnRp YWxseSBpbiBvbmUgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgIG5ldmVyIHJldmlzaXRlZCAo Q2hhcHRlciBYSUkpCisgIC0gTkZBOiAgICAgICAgTm9uZGV0ZXJtaW5pc3RpYyBleGVjdXRpb24g d2hlcmUgbXVsdGlwbGUgc3RhdGVzCisgICAgICAgICAgICAgICAgY29leGlzdCB3aXRoaW4gYSBz aW5nbGUgY29udGV4dCAoQ2hhcHRlciBWSSkKKworQ2hhcHRlciBJICBSb3cgUGF0dGVybiBSZWNv Z25pdGlvbiBPdmVydmlldworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSb3cgUGF0dGVybiBSZWNv Z25pdGlvbiAoaGVyZWFmdGVyIFJQUikgaXMgYSBmZWF0dXJlIGludHJvZHVjZWQgaW4gU1FMOjIw MTYKK3RoYXQgbWF0Y2hlcyByZWdleC1iYXNlZCBwYXR0ZXJucyBhZ2FpbnN0IG9yZGVyZWQgcm93 IHNldHMuCisKK1RoZSBTUUwgc3RhbmRhcmQgZGVmaW5lcyB0d28gZm9ybXM6CisKKyAgRmVhdHVy ZSBSMDEwOiBNQVRDSF9SRUNPR05JWkUgKEZST00gY2xhdXNlKQorICAgIC0gRGVkaWNhdGVkIHRh YmxlIG9wZXJhdG9yCisgICAgLSBQcm92aWRlcyBkZWRpY2F0ZWQgZnVuY3Rpb25zIHN1Y2ggYXMg TUFUQ0hfTlVNQkVSKCksIENMQVNTSUZJRVIoKQorICAgIC0gU3VwcG9ydHMgT05FIFJPVyBQRVIg TUFUQ0ggLyBBTEwgUk9XUyBQRVIgTUFUQ0gKKworICBGZWF0dXJlIFIwMjA6IFJQUiBpbiBhIHdp bmRvdyAoV0lORE9XIGNsYXVzZSkKKyAgICAtIEludGVncmF0ZWQgaW50byB0aGUgZXhpc3Rpbmcg d2luZG93IGZ1bmN0aW9uIGZyYW1ld29yaworICAgIC0gU3VwcG9ydHMgQUxMIFJPV1MgUEVSIE1B VENIIG9ubHkKKyAgICAtIE5vIE1BVENIX05VTUJFUigpCisKK1RoaXMgaW1wbGVtZW50YXRpb24g dGFyZ2V0cyBGZWF0dXJlIFIwMjAuCisKK1RoZSBiYXNpYyBzeW50YXggaXMgYXMgZm9sbG93czoK KworICBTRUxFQ1QgLi4uCisgIE9WRVIgKAorICAgIFBBUlRJVElPTiBCWSAuLi4KKyAgICBPUkRF UiBCWSAuLi4KKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBbSU5JVElBTCB8IFNFRUtdICAgLS0gU0VFSyBpcyBkZWZpbmVkIGluIHRoZSBz dGFuZGFyZCBidXQgbm90IGltcGxlbWVudGVkCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVyB8IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCA8cmVnZXg+ICkKKyAgICBE RUZJTkUgPHZhcmlhYmxlPiBBUyA8Y29uZGl0aW9uPiwgLi4uCisgICkKKworVGhlIFBBVFRFUk4g Y2xhdXNlIGlzIGEgcmVndWxhciBleHByZXNzaW9uIG92ZXIgcm93IHBhdHRlcm4gdmFyaWFibGVz LgorVGhlIERFRklORSBjbGF1c2Ugc3BlY2lmaWVzIGJvb2xlYW4gY29uZGl0aW9ucyB0aGF0IGRl dGVybWluZSB3aGV0aGVyIGVhY2gKK3ZhcmlhYmxlIGV2YWx1YXRlcyB0byB0cnVlIGZvciB0aGUg Y3VycmVudCByb3cuCisKK0V4YW1wbGU6CisKKyAgUEFUVEVSTiAoQSsgQikKKyAgREVGSU5FIEEg QVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgICAgICAgIEIgQVMgcHJpY2UgPCBQUkVWKHByaWNl KQorCitUaGlzIHBhdHRlcm4gbWF0Y2hlcyAiYSBzcGFuIHdoZXJlIHByaWNlcyByaXNlIGNvbnNl Y3V0aXZlbHkgdGhlbiBkcm9wLiIKKworQ2hhcHRlciBJSSAgT3ZlcmFsbCBQcm9jZXNzaW5nIFBp cGVsaW5lCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JQUiBwcm9jZXNzaW5nIGlzIGRpdmlkZWQg aW50byB0aHJlZSBwaGFzZXM6CisKKyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCAgMS4gUGFyc2luZyAoUGFyc2VyKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgICAgU1FMIHRleHQg LT4gUEFUVEVSTiBBU1QgKyBERUZJTkUgZXhwcmVzc2lvbiB0cmVlICAgICAgIHwKKyAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK KyAgfCAgMi4gQ29tcGlsYXRpb24gKE9wdGltaXplci9QbGFubmVyKSAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAgfCAgICAgUEFUVEVSTiBBU1QgLT4gb3B0aW1pemF0aW9uIC0+IGZsYXQgTkZB IGVsZW1lbnQgYXJyYXkgIHwKKyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgMy4gRXhlY3V0aW9uIChFeGVjdXRvcikg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgICAgUm93LWJ5LXJvdyBt YXRjaGluZyB2aWEgTkZBIHNpbXVsYXRpb24gICAgICAgICAgICAgICAgIHwKKyAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwor RWFjaCBwaGFzZSB1c2VzIGluZGVwZW5kZW50IGRhdGEgc3RydWN0dXJlcywgYW5kIHRoZSBpbnRl cmZhY2VzIGJldHdlZW4KK3BoYXNlcyBhcmUgd2VsbC1kZWZpbmVkOgorCisgIFBhcnNlciAtPiBQ bGFubmVyOiAgICBXaW5kb3dDbGF1c2UucnBQYXR0ZXJuIChSUFJQYXR0ZXJuTm9kZSB0cmVlKQor ICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93Q2xhdXNlLmRlZmluZUNsYXVzZSAoVGFyZ2V0 RW50cnkgbGlzdCkKKworICBQbGFubmVyIC0+IEV4ZWN1dG9yOiAgV2luZG93QWdnLnJwUGF0dGVy biAoUlBSUGF0dGVybiBzdHJ1Y3QpCisgICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3dBZ2cu ZGVmaW5lQ2xhdXNlIChUYXJnZXRFbnRyeSBsaXN0KQorCitDaGFwdGVyIElJSSAgUGFyc2luZyBQ aGFzZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJSUktMS4gRW50cnkgUG9pbnQKKworICB0cmFu c2Zvcm1XaW5kb3dEZWZpbml0aW9ucygpIChwYXJzZV9jbGF1c2UuYykKKyAgICArLS0gdHJhbnNm b3JtUlBSKCkgKHBhcnNlX3Jwci5jKQorCit0cmFuc2Zvcm1SUFIoKSBpcyBpbnZva2VkIHdoZW4g UlBDb21tb25TeW50YXggaXMgcHJlc2VudCBhbmQgcGVyZm9ybXMgdGhlCitmb2xsb3dpbmc6CisK KyAgKDEpIEZyYW1lIG9wdGlvbiB2YWxpZGF0aW9uCisgICAgICAtIE9ubHkgUk9XUyBpcyBhbGxv d2VkIChSQU5HRSwgR1JPVVBTIGFyZSBub3QpCisgICAgICAtIFRoZSBzdGFydCBib3VuZGFyeSBt dXN0IGJlIENVUlJFTlQgUk9XCisgICAgICAtIEVYQ0xVREUgb3B0aW9uIGlzIG5vdCBhbGxvd2Vk CisKKyAgKDIpIFRyYW5zY3JpcHRpb24gdG8gV2luZG93Q2xhdXNlCisgICAgICAtIENvcGllcyBy cFBhdHRlcm4sIHJwU2tpcFRvLCBpbml0aWFsIGZpZWxkcworCisgICgzKSBERUZJTkUgY2xhdXNl IHRyYW5zZm9ybWF0aW9uICh0cmFuc2Zvcm1EZWZpbmVDbGF1c2UpCisKK0lJSS0yLiBQQVRURVJO IEFTVAorCitUaGUgcGFyc2VyIHRyYW5zZm9ybXMgdGhlIFBBVFRFUk4gY2xhdXNlIGludG8gYW4g UlBSUGF0dGVybk5vZGUgdHJlZS4KK0VhY2ggbm9kZSBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcg Zm91ciB0eXBlczoKKworICBSUFJfUEFUVEVSTl9WQVIgICAgVmFyaWFibGUgcmVmZXJlbmNlLiBO YW1lIHN0b3JlZCBpbiB2YXJOYW1lIGZpZWxkLgorICBSUFJfUEFUVEVSTl9TRVEgICAgQ29uY2F0 ZW5hdGlvbi4gQ2hpbGRyZW4gbm9kZSBsaXN0IGluIGNoaWxkcmVuLgorICBSUFJfUEFUVEVSTl9B TFQgICAgQWx0ZXJuYXRpb24uIEJyYW5jaCBub2RlIGxpc3QgaW4gY2hpbGRyZW4uCisgIFJQUl9Q QVRURVJOX0dST1VQICBHcm91cCAocGFyZW50aGVzZXMpLiBCb2R5IG5vZGUgbGlzdCBpbiBjaGls ZHJlbi4KKworQWxsIG5vZGVzIGhhdmUgbWluL21heCBmaWVsZHMgdG8gZXhwcmVzcyBxdWFudGlm aWVyczoKKworICBBICAgICAgIC0+IFZBUihBLCBtaW49MSwgbWF4PTEpCisgIEErICAgICAgLT4g VkFSKEEsIG1pbj0xLCBtYXg9SU5GKQorICBBKiAgICAgIC0+IFZBUihBLCBtaW49MCwgbWF4PUlO RikKKyAgQT8gICAgICAtPiBWQVIoQSwgbWluPTAsIG1heD0xKQorICBBezMsNX0gIC0+IFZBUihB LCBtaW49MywgbWF4PTUpCisKK0lmIHRoZSByZWx1Y3RhbnQgZmllbGQgaXMgdHJ1ZSwgdGhlIHF1 YW50aWZpZXIgaXMgcmVsdWN0YW50IChub24tZ3JlZWR5KS4KKyhSUFJQYXR0ZXJuTm9kZS5yZWx1 Y3RhbnQgaXMgYm9vbDsgcmVsdWN0YW50X2xvY2F0aW9uIGlzIHRoZSBzZXBhcmF0ZQorUGFyc2VM b2MgZmllbGQgaG9sZGluZyB0aGUgJz8nIHRva2VuIHBvc2l0aW9uLCBvciAtMSBpZiBhYnNlbnQu KQorCitFeGFtcGxlOiBQQVRURVJOICgoQSsgQikgfCBDKikKKworICBBTFQKKyAgKy0tIFNFUQor ICB8ICAgKy0tIFZBUihBLCAxLCBJTkYpCisgIHwgICArLS0gVkFSKEIsIDEsIDEpCisgICstLSBW QVIoQywgMCwgSU5GKQorCitJSUktMy4gREVGSU5FIENsYXVzZSBUcmFuc2Zvcm1hdGlvbgorCit0 cmFuc2Zvcm1EZWZpbmVDbGF1c2UoKSBwcm9jZXNzZXMgZWFjaCBERUZJTkUgdmFyaWFibGUgYXMg Zm9sbG93czoKKworICAoMSkgQ2hlY2tzIGZvciBkdXBsaWNhdGUgdmFyaWFibGUgbmFtZXMKKyAg KDIpIFRyYW5zZm9ybXMgdGhlIGV4cHJlc3Npb24gdmlhIHRyYW5zZm9ybUV4cHIoKQorICAoMykg RXh0cmFjdHMgVmFyIG5vZGVzIHZpYSBwdWxsX3Zhcl9jbGF1c2UoKSBhbmQgZW5zdXJlcyBlYWNo IGlzCisgICAgICBwcmVzZW50IGluIHRoZSBxdWVyeSB0YXJnZXRsaXN0LCBzbyB0aGUgcGxhbm5l ciBwcm9wYWdhdGVzIHRoZQorICAgICAgcmVmZXJlbmNlZCBjb2x1bW5zIHRocm91Z2ggdGhlIHBs YW4gdHJlZQorICAoNCkgV3JhcHMgaW4gYSBUYXJnZXRFbnRyeSB3aXRoIHRoZSB2YXJpYWJsZSBu YW1lIHNldCBpbiByZXNuYW1lCisKK0FmdGVyIGFsbCB2YXJpYWJsZXMgYXJlIHByb2Nlc3NlZDoK KyAgKDUpIENvZXJjZXMgZWFjaCBleHByZXNzaW9uIHRvIEJvb2xlYW4gdHlwZSAoY29lcmNlX3Rv X2Jvb2xlYW4pCisKK1ZhcmlhYmxlcyB0aGF0IGFyZSB1c2VkIGluIFBBVFRFUk4gYnV0IG5vdCBk ZWZpbmVkIGluIERFRklORSBhcmUgaW1wbGljaXRseQorZXZhbHVhdGVkIGFzIFRSVUUgKG1hdGNo aW5nIGFsbCByb3dzKS4KKworQ2hhcHRlciBJViAgQ29tcGlsYXRpb24gUGhhc2UKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKworSVYtMS4gRW50cnkgUG9pbnQKKworICBjcmVhdGVfd2luZG93YWdnX3Bs YW4oKSAoY3JlYXRlcGxhbi5jKQorICAgICstLSBidWlsZERlZmluZVZhcmlhYmxlTGlzdCgpICAg IEJ1aWxkIHZhcmlhYmxlIG5hbWUgbGlzdCBmcm9tIERFRklORQorICAgICstLSBidWlsZFJQUlBh dHRlcm4oKSAgICAgICAgICAgTkZBIGNvbXBpbGF0aW9uICg2IHBoYXNlcykKKworSVYtMi4gVGhl IDYgUGhhc2VzIG9mIGJ1aWxkUlBSUGF0dGVybigpCisKKyAgUGhhc2UgMTogQVNUIG9wdGltaXph dGlvbiAob3B0aW1pemVSUFJQYXR0ZXJuKQorICBQaGFzZSAyOiBTdGF0aXN0aWNzIGNvbGxlY3Rp b24gKHNjYW5SUFJQYXR0ZXJuKQorICBQaGFzZSAzOiBNZW1vcnkgYWxsb2NhdGlvbiAoYWxsb2Nh dGVSUFJQYXR0ZXJuKQorICBQaGFzZSA0OiBORkEgZWxlbWVudCBmaWxsIChmaWxsUlBSUGF0dGVy bikKKyAgUGhhc2UgNTogRmluYWxpemF0aW9uIChmaW5hbGl6ZVJQUlBhdHRlcm4pCisgIFBoYXNl IDY6IEFic29yYmFiaWxpdHkgYW5hbHlzaXMgKGNvbXB1dGVBYnNvcmJhYmlsaXR5KQorCitJVi0z LiBQaGFzZSAxOiBBU1QgT3B0aW1pemF0aW9uCisKK0FmdGVyIGNvcHlpbmcgdGhlIHBhcnNlci1n ZW5lcmF0ZWQgQVNULCB0aGUgZm9sbG93aW5nIG9wdGltaXphdGlvbnMgYXJlCithcHBsaWVkOgor CisgIChhKSBTRVEgZmxhdHRlbmluZzogVW53cmFwIG5lc3RlZCBTRVEgbm9kZXMKKyAgICAgIFNF UShBLCBTRVEoQiwgQykpIC0+IFNFUShBLCBCLCBDKQorCisgIChiKSBDb25zZWN1dGl2ZSB2YXJp YWJsZSBtZXJnaW5nOiBNZXJnZSBjb25zZWN1dGl2ZSBvY2N1cnJlbmNlcyBvZiB0aGUKKyAgICAg IHNhbWUgdmFyaWFibGUgaW50byBhIHNpbmdsZSBxdWFudGlmaWVyCisgICAgICBBIEEgLT4gQXsy fQorICAgICAgQXsyLDN9IEF7MSwyfSAtPiBBezMsNX0KKworICAoYykgQ29uc2VjdXRpdmUgZ3Jv dXAgbWVyZ2luZzogTWVyZ2UgcmVwZWF0ZWQgaWRlbnRpY2FsIGdyb3VwcworICAgICAgKEEgQikr IChBIEIpKyAtPiAoQSBCKXsyLElORn0KKworICAoZCkgQ29uc2VjdXRpdmUgQUxUIG1lcmdpbmc6 IE1lcmdlIHJlcGVhdGVkIGlkZW50aWNhbCBBTFQgbm9kZXMKKyAgICAgIChBIHwgQikgKEEgfCBC KSAoQSB8IEIpIC0+IChBIHwgQil7M30KKworICAoZSkgUHJlZml4L3N1ZmZpeCBhYnNvcnB0aW9u OiBBYnNvcmIgaWRlbnRpY2FsIHNlcXVlbmNlcyBiZWZvcmUvYWZ0ZXIKKyAgICAgIGEgZ3JvdXAK KyAgICAgIEEgQiAoQSBCKSsgLT4gKEEgQil7MixJTkZ9CisKKyAgKGYpIEFMVCBmbGF0dGVuaW5n IGFuZCBkZWR1cGxpY2F0aW9uCisgICAgICAoQSB8IChCIHwgQykpIC0+IChBIHwgQiB8IEMpCisg ICAgICAoQSB8IEIgfCBBKSAtPiAoQSB8IEIpCisKKyAgKGcpIFF1YW50aWZpZXIgbXVsdGlwbGlj YXRpb246IENvbGxhcHNlIG5lc3RlZCBxdWFudGlmaWVycyB3aGVuIHNhZmUKKyAgICAgIChBKykr IC0+IEErCisgICAgICAoQXsyLDN9KXs1fSAtPiBBezEwLDE1fQorCisgIChoKSBTaW5nbGUtY2hp bGQgdW53cmFwCisgICAgICBTRVEoQSkgLT4gQSwgIChBKXsxLDF9IC0+IEEKKworSVYtNC4gUGhh c2UgNDogTkZBIEVsZW1lbnQgQXJyYXkgR2VuZXJhdGlvbgorCitUcmFuc2Zvcm1zIHRoZSBvcHRp bWl6ZWQgQVNUIGludG8gYSBmbGF0IGFycmF5IG9mIFJQUlBhdHRlcm5FbGVtZW50LgorVGhpcyBp cyB0aGUgY29yZSBkYXRhIHN0cnVjdHVyZSB1c2VkIGZvciBORkEgc2ltdWxhdGlvbiBhdCBydW50 aW1lLgorCitSUFJQYXR0ZXJuRWxlbWVudCBzdHJ1Y3QgKDE2IGJ5dGVzKToKKworICBGaWVsZCAg ICAgIFNpemUgICAgIERlc2NyaXB0aW9uCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICB2YXJJZCAgICAgIDFCICAgICAgVmFyaWFi bGUgSUQgKDAtMjUxKSBvciBjb250cm9sIGNvZGUgKDI1Mi0yNTUpCisgIGRlcHRoICAgICAgMUIg ICAgICBHcm91cCBuZXN0aW5nIGRlcHRoCisgIGZsYWdzICAgICAgMUIgICAgICBCaXQgZmxhZ3Mg KHNlZSBiZWxvdykKKyAgcmVzZXJ2ZWQgICAxQiAgICAgIFBhZGRpbmcKKyAgbWluICAgICAgICA0 QiAgICAgIFF1YW50aWZpZXIgbG93ZXIgYm91bmQKKyAgbWF4ICAgICAgICA0QiAgICAgIFF1YW50 aWZpZXIgdXBwZXIgYm91bmQKKyAgbmV4dCAgICAgICAyQiAgICAgIE5leHQgZWxlbWVudCBpbmRl eCAoc2VxdWVudGlhbCBmbG93KQorICBqdW1wICAgICAgIDJCICAgICAgQnJhbmNoIHRhcmdldCBp bmRleCAoZm9yIEFMVC9HUk9VUCkKKworQ29udHJvbCBjb2RlczoKKworICBSUFJfVkFSSURfQkVH SU4gKDI1MikgIEdyb3VwIHN0YXJ0IG1hcmtlcgorICBSUFJfVkFSSURfRU5EICAgKDI1MykgIEdy b3VwIGVuZCBtYXJrZXIKKyAgUlBSX1ZBUklEX0FMVCAgICgyNTQpICBBbHRlcm5hdGlvbiBzdGFy dCBtYXJrZXIKKyAgUlBSX1ZBUklEX0ZJTiAgICgyNTUpICBQYXR0ZXJuIGNvbXBsZXRpb24gbWFy a2VyCisKK0VsZW1lbnQgZmxhZ3MgKDEgYnl0ZSwgYml0bWFzayk6CisKKyAgMHgwMSAgUlBSX0VM RU1fUkVMVUNUQU5UICAgICAgICAgIChWQVIsIEJFR0lOLCBFTkQpCisgICAgICAgIE5vbi1ncmVl ZHkgcXVhbnRpZmllci4gIFByZWZlcnMgc2hvcnRlciBtYXRjaDogdHJ5IGV4aXQtbG9vcAorICAg ICAgICBmaXJzdCwgdGhlbiByZXBlYXQuICBTZXQgb24gVkFSIGZvciBzaW1wbGUgKEErPyksCisg ICAgICAgIG9uIEJFR0lOK0VORCBmb3IgZ3JvdXAgKCguLi4pKz8pLgorCisgIDB4MDIgIFJQUl9F TEVNX0VNUFRZX0xPT1AgICAgICAgICAoRU5EKQorICAgICAgICBHcm91cCBib2R5IGNhbiBwcm9k dWNlIGVtcHR5IG1hdGNoIChhbGwgY2hpbGRyZW4gbnVsbGFibGUpLgorICAgICAgICBDcmVhdGVz IGEgZmFzdC1mb3J3YXJkIGV4aXQgY2xvbmUgYWxvbmdzaWRlIHRoZSBub3JtYWwKKyAgICAgICAg bG9vcC1iYWNrIHNvIGN5Y2xlIGRldGVjdGlvbiBkb2Vzbid0IGtpbGwgbGVnaXRpbWF0ZQorICAg ICAgICBtYXRjaGVzLiAoSVYtNGIpCisKKyAgMHgwNCAgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFO Q0ggIChWQVIsIEJFR0lOLCBFTkQsIEFMVCkKKyAgICAgICAgRWxlbWVudCBsaWVzIHdpdGhpbiBh biBhYnNvcmJhYmxlIHJlZ2lvbi4gIFVzZWQgYXQgcnVudGltZQorICAgICAgICB0byB0cmFjayB3 aGV0aGVyIHRoZSBjdXJyZW50IE5GQSBzdGF0ZSBpcyBpbiBhbiBhYnNvcmJhYmxlCisgICAgICAg IGNvbnRleHQuCisKKyAgMHgwOCAgUlBSX0VMRU1fQUJTT1JCQUJMRSAgICAgICAgIChWQVIsIEVO RCkKKyAgICAgICAgQWJzb3JwdGlvbiBqdWRnbWVudCBwb2ludC4gIFdoZXJlIHRvIGNvbXBhcmUg Y29uc2VjdXRpdmUKKyAgICAgICAgaXRlcmF0aW9ucyBmb3IgYWJzb3JwdGlvbi4KKyAgICAgICAg ICAtIFNpbXBsZSB1bmJvdW5kZWQgVkFSIChBKyk6IHNldCBvbiB0aGUgVkFSIGl0c2VsZgorICAg ICAgICAgIC0gVW5ib3VuZGVkIEdST1VQICgoQSBCKSspOiBzZXQgb24gdGhlIEVORCBlbGVtZW50 IG9ubHkKKworICBBY2Nlc3NvciBtYWNyb3M6CisgICAgUlBSRWxlbUlzUmVsdWN0YW50KGUpICAg ICAgICAoZSktPmZsYWdzICYgMHgwMQorICAgIFJQUkVsZW1DYW5FbXB0eUxvb3AoZSkgICAgICAg KGUpLT5mbGFncyAmIDB4MDIKKyAgICBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNoKGUpIChlKS0+ ZmxhZ3MgJiAweDA0CisgICAgUlBSRWxlbUlzQWJzb3JiYWJsZShlKSAgICAgICAoZSktPmZsYWdz ICYgMHgwOAorCitFeGFtcGxlOiBQQVRURVJOIChBKyBCIHwgQykKKworICBBU1Q6IEFMVChTRVEo VkFSKEEsMSxJTkYpLCBWQVIoQiwxLDEpKSwgVkFSKEMsMSwxKSkKKworICBDb21waWxhdGlvbiBy ZXN1bHQ6CisKKyAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBqdW1wICBEZXNj cmlwdGlvbgorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIDAgICBBTFQgICAgMCAgICAgIDEgICAgMSAgICAxICAgICAtMSAg ICBBbHRlcm5hdGlvbiBzdGFydAorICAgMSAgIEEoMCkgICAxICAgICAgMSAgICBJTkYgIDIgICAg IDMgICAgIEJyYW5jaCAxOiBBKworICAgMiAgIEIoMSkgICAxICAgICAgMSAgICAxICAgIDQgICAg IC0xICAgIEJyYW5jaCAxOiBCIC0+IEZJTgorICAgMyAgIEMoMikgICAxICAgICAgMSAgICAxICAg IDQgICAgIC0xICAgIEJyYW5jaCAyOiBDIC0+IEZJTgorICAgNCAgIEZJTiAgICAwICAgICAgMSAg ICAxICAgIC0xICAgIC0xICAgIFBhdHRlcm4gY29tcGxldGlvbgorCisgIC0gaWR4IDA6IEFMVCBt YXJrZXIuIG5leHQoPTEpIGlzIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgYnJhbmNoCisgIC0gaWR4 IDE6IFZhcmlhYmxlIEEuIG5leHQoPTIpIGlzIEIsIGp1bXAoPTMpIGlzIHRoZSBzdGFydCBvZiB0 aGUgc2Vjb25kCisgICAgICAgICAgIGJyYW5jaAorICAtIGlkeCAyOiBWYXJpYWJsZSBCLiBuZXh0 KD00KSBpcyBGSU4KKyAgLSBpZHggMzogVmFyaWFibGUgQy4gbmV4dCg9NCkgaXMgRklOCisgIC0g aWR4IDQ6IEZJTiBtYXJrZXIuIE1hdGNoIGNvbXBsZXRpb24gc2lnbmFsCisKK1JvbGVzIG9mIG5l eHQgYW5kIGp1bXA6CisKKyAgLSBuZXh0OiBUaGUgbmV4dCBlbGVtZW50IHRvIG1vdmUgdG8gImFm dGVyIGNvbnN1bWluZyIgdGhlIGN1cnJlbnQgZWxlbWVudC4KKyAgICAgICAgICBGb3IgVkFSLCB0 aGUgbmV4dCBwb3NpdGlvbiBhZnRlciBhIHN1Y2Nlc3NmdWwgbWF0Y2guCisgICAgICAgICAgRm9y IEJFR0lOL0VORCwgdGhlIG5leHQgcG9zaXRpb24gaW5zaWRlL291dHNpZGUgdGhlIGdyb3VwLgor CisgIC0ganVtcDogVGhlIGVsZW1lbnQgdG8gInNraXAgdG8uIgorICAgICAgICAgIEluIEFMVCwg YSBqdW1wIGZyb20gb25lIGJyYW5jaCB0byB0aGUgbmV4dCBicmFuY2guCisgICAgICAgICAgSW4g QkVHSU4sIGEgc2tpcCBwYXRoIHRvIEVORCsxIChmb3IgZ3JvdXBzIHdpdGggbWluPTApLgorICAg ICAgICAgIEluIEVORCwgYSBsb29wLWJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBncm91cCBib2R5 LgorCitFeGFtcGxlOiBQQVRURVJOICgoQSBCKSspCisKKyAgaWR4ICB2YXJJZCAgICBkZXB0aCAg bWluICBtYXggIG5leHQgIGp1bXAgIERlc2NyaXB0aW9uCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAwICAgQkVHSU4g ICAgMCAgICAgIDEgICAgSU5GICAxICAgICA0ICAgICBHcm91cCBzdGFydAorICAgMSAgIEEoMCkg ICAgIDEgICAgICAxICAgIDEgICAgMiAgICAgLTEgICAgQQorICAgMiAgIEIoMSkgICAgIDEgICAg ICAxICAgIDEgICAgMyAgICAgLTEgICAgQgorICAgMyAgIEVORCAgICAgIDAgICAgICAxICAgIElO RiAgNCAgICAgMSAgICAgR3JvdXAgZW5kCisgICA0ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAg ICAtMSAgICAtMSAgICBQYXR0ZXJuIGNvbXBsZXRpb24KKworICAtIGlkeCAwOiBCRUdJTi4gbmV4 dCg9MSkgZW50ZXJzIHRoZSBncm91cCBib2R5LgorICAgICAgICAgICBqdW1wKD00KSBza2lwcyB0 byBhZnRlciBFTkQgPSBGSU4gKHVzZWQgd2hlbiBtaW49MCkuCisgIC0gaWR4IDM6IEVORC4gbmV4 dCg9NCkgZXhpdHMgdGhlIGdyb3VwLgorICAgICAgICAgICBqdW1wKD0xKSBsb29wcyBiYWNrIHRv IHRoZSBzdGFydCBvZiB0aGUgZ3JvdXAgYm9keS4KKworSVYtNGEuIFJlbHVjdGFudCBGbGFnIChS UFJfRUxFTV9SRUxVQ1RBTlQpCisKK1RoZSByZWx1Y3RhbnQgZmxhZyBpcyBzZXQgZHVyaW5nIFBo YXNlIDQgKGZpbGxSUFJQYXR0ZXJuKSB3aGVuIHRoZSBBU1Qgbm9kZQoraGFzIHJlbHVjdGFudCA9 PSB0cnVlLiBJdCByZXZlcnNlcyB0aGUgcHJpb3JpdHkgb2YgcXVhbnRpZmllciBleHBhbnNpb24g YXQKK3J1bnRpbWU6CisKKyAgR3JlZWR5IChkZWZhdWx0KTogIHRyeSBsb29wLWJhY2sgZmlyc3Qs IHRoZW4gZXhpdCAgKHByZWZlciBsb25nZXIgbWF0Y2gpCisgIFJlbHVjdGFudDogICAgICAgICB0 cnkgZXhpdCBmaXJzdCwgdGhlbiBsb29wLWJhY2sgICAocHJlZmVyIHNob3J0ZXIgbWF0Y2gpCisK K1RoZSBmbGFnIGlzIHNldCBvbiBhbGwgZWxlbWVudHMgdGhhdCBjYXJyeSB0aGUgcXVhbnRpZmll cjoKKworICBTaW1wbGUgVkFSIChBKz8pOiAgICAgUlBSX0VMRU1fUkVMVUNUQU5UIG9uIHRoZSBW QVIgZWxlbWVudAorICBHcm91cCAoKC4uLikrPyk6ICAgICAgUlBSX0VMRU1fUkVMVUNUQU5UIG9u IEJFR0lOIGFuZCBFTkQgZWxlbWVudHMKKworQXQgcnVudGltZSAobmZhX2FkdmFuY2UpLCB0aGUg ZmxhZyBjb250cm9scyBERlMgZXhwbG9yYXRpb24gb3JkZXI6CisKKyAgVkFSIHdpdGggcXVhbnRp ZmllcjoKKyAgICBHcmVlZHk6ICAgIHByaW1hcnkgcGF0aCA9IG5leHQgKGNvbnRpbnVlKSwgY2xv bmUgPSBqdW1wIChza2lwKQorICAgIFJlbHVjdGFudDogcHJpbWFyeSBwYXRoID0ganVtcCAoc2tp cCksIGNsb25lID0gbmV4dCAoY29udGludWUpCisKKyAgRU5EIGVsZW1lbnQ6CisgICAgR3JlZWR5 OiAgICBwcmltYXJ5IHBhdGggPSBqdW1wIChsb29wLWJhY2spLCBjbG9uZSA9IG5leHQgKGV4aXQp CisgICAgUmVsdWN0YW50OiBwcmltYXJ5IHBhdGggPSBuZXh0IChleGl0KSwgY2xvbmUgPSBqdW1w IChsb29wLWJhY2spCisKKyAgQkVHSU4gd2l0aCBtaW49MDoKKyAgICBHcmVlZHk6ICAgIHByaW1h cnkgcGF0aCA9IG5leHQgKGVudGVyIGdyb3VwKSwgY2xvbmUgPSBqdW1wIChza2lwKQorICAgIFJl bHVjdGFudDogcHJpbWFyeSBwYXRoID0ganVtcCAoc2tpcCksIGNsb25lID0gbmV4dCAoZW50ZXIg Z3JvdXApCisKK1RoZSBhYnNvcnB0aW9uIG9wdGltaXphdGlvbiByZXF1aXJlcyBncmVlZHkgcXVh bnRpZmllcnMuIFJlbHVjdGFudAorcXVhbnRpZmllcnMgYXJlIGV4Y2x1ZGVkIGZyb20gYWJzb3Ji YWJpbGl0eSBhbmFseXNpcyAoc2VlIElWLTUpLgorCitJVi00Yi4gRW1wdHkgTG9vcCBGbGFnIChS UFJfRUxFTV9FTVBUWV9MT09QKQorCitUaGUgZW1wdHktbG9vcCBmbGFnIGlzIHNldCBkdXJpbmcg UGhhc2UgNCAoZmlsbFJQUlBhdHRlcm5Hcm91cCkgb24gdGhlIEVORAorZWxlbWVudCB3aGVuIHRo ZSBncm91cCBib2R5IGlzIG51bGxhYmxlIC0tIGkuZS4sIGV2ZXJ5IHBhdGggdGhyb3VnaCB0aGUK K2JvZHkgY2FuIG1hdGNoIHplcm8gcm93cyAoYWxsIGNoaWxkcmVuIGFyZSBudWxsYWJsZSkuCisK K0V4YW1wbGUgcGF0dGVybnMgdGhhdCB0cmlnZ2VyIHRoaXMgZmxhZzoKKworICAoQT8pKiAgICBB IGlzIG51bGxhYmxlIChtaW49MCksIHNvIGdyb3VwIGJvZHkgaXMgbnVsbGFibGUgLT4gRU5EIGdl dHMgZmxhZworICAoQT8gQj8pKyBCb3RoIGNoaWxkcmVuIG51bGxhYmxlIC0+IGJvZHkgbnVsbGFi bGUgLT4gRU5EIGdldHMgZmxhZworICAoQSB8IEIqKSBCKiBpcyBudWxsYWJsZSwgbWFraW5nIHRo ZSBBTFQgbnVsbGFibGUgLT4gRU5EIGdldHMgZmxhZworCitUaGUgZmxhZyB3b3JrcyBpbiBjb25q dW5jdGlvbiB3aXRoIHRoZSBlbXB0eSBtYXRjaCBjeWNsZSBkZXRlY3Rpb24KKyhlbGVtSWR4IHZp c2l0ZWQgYml0bWFwKS4gV2l0aG91dCB0aGlzIGZsYWcsIGN5Y2xlIGRldGVjdGlvbiBhbG9uZSB3 b3VsZAorY2F1c2UgbGVnaXRpbWF0ZSBtYXRjaGVzIHRvIGZhaWwuCisKK1Byb2JsZW0gZXhhbXBs ZTogKEEqKXsyLDN9CisgIC0gSXRlcmF0aW9uIDE6IEEqIGNvbnN1bWVzIGFsbCBhdmFpbGFibGUg cm93cyAtPiBjb3VudD0xLCBFTkQgcmVhY2hlZAorICAtIExvb3AtYmFjayBmb3IgaXRlcmF0aW9u IDI6IEEqIG1hdGNoZXMgemVybyByb3dzIC0+IEVORCByZWFjaGVkIGFnYWluCisgIC0gQ3ljbGUg ZGV0ZWN0aW9uIHNlZXMgdGhlIHNhbWUgZWxlbUlkeCBvbiB0aGUgc2FtZSByb3cgLT4gc3RhdGUg a2lsbGVkCisgIC0gY291bnQgbmV2ZXIgcmVhY2hlcyBtaW4oMikgLT4gbWF0Y2ggZmFpbHMgKGlu Y29ycmVjdCkKKworV2l0aCB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFnLCBuZmFfYWR2YW5j ZV9lbmQgY3JlYXRlcyB0d28gcGF0aHM6Cit0aGUgbm9ybWFsIGxvb3AtYmFjayAod2hpY2ggY3lj bGUgZGV0ZWN0aW9uIHdpbGwgZXZlbnR1YWxseSBraWxsKSBhbmQKK2EgZmFzdC1mb3J3YXJkIGV4 aXQgY2xvbmUgdGhhdCBieXBhc3NlcyB0aGUgbG9vcCBlbnRpcmVseS4KKyhTZWUgSVgtNChjKSBm b3IgZGV0YWlsZWQgcnVudGltZSBiZWhhdmlvci4pCisKK0lWLTUuIEFic29yYmFiaWxpdHkgQW5h bHlzaXMgKFJQUl9FTEVNX0FCU09SQkFCTEUpCisKK0NvbnRleHQgYWJzb3JwdGlvbiBpcyBhbiBv cHRpbWl6YXRpb24gdGVjaG5pcXVlIHRoYXQgcmVkdWNlcyBPKG5eMikgdG8gTyhuKS4KKyhSdW50 aW1lIGJlaGF2aW9yIGlzIGRlc2NyaWJlZCBpbiBDaGFwdGVyIFZJSUkuKQorCitUaGlzIHBoYXNl IGRldGVybWluZXMgd2hldGhlciB0aGUgcGF0dGVybiBoYXMgYSBzdHJ1Y3R1cmUgc3VpdGFibGUg Zm9yIHRoZQorYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24gYW5kIHNldHMgZmxhZ3Mgb24gdGhlIHJl bGV2YW50IGVsZW1lbnRzOgorCisgIFJQUl9FTEVNX0FCU09SQkFCTEUgICAgICAgICBBYnNvcnB0 aW9uIGNvbXBhcmlzb24gcG9pbnQKKyAgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0ggIEVsZW1l bnQgd2l0aGluIGFuIGFic29yYmFibGUgcmVnaW9uCisKK0VsaWdpYmlsaXR5IGNvbmRpdGlvbnM6 CisKKyAgKDEpIFNLSVAgUEFTVCBMQVNUIFJPVyAobm90IE5FWFQgUk9XKQorICAoMikgRnJhbWUg ZW5kIGlzIFVOQk9VTkRFRCBGT0xMT1dJTkcKKworU3RydWN0dXJhbCBjb25kaXRpb25zIChpc1Vu Ym91bmRlZFN0YXJ0ICsgY29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUpOgorCisgIENhc2Ug MTogU2ltcGxlIFZBUisgKGUuZy4sIEErKQorICAgICAgICAgIC0+IEFCU09SQkFCTEUgfCBBQlNP UkJBQkxFX0JSQU5DSCBzZXQgb24gdGhlIFZBUgorICBDYXNlIDI6IEdST1VQKyB3aXRoIGZpeGVk LWxlbmd0aCBjaGlsZHJlbiAobWluID09IG1heCwgcmVjdXJzaXZlbHkpCisgICAgICAgICAgZS5n LiwgKEEgQikrLCAoQSBCezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKworICAgICAgICAgIC0+IEFC U09SQkFCTEVfQlJBTkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdyb3VwLAorICAgICAg ICAgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBvbiBFTkQKKworICAgICAgICAg IFdoeSB0aGlzIGlzIHNhZmU6IHdoZW4gZXZlcnkgY2hpbGQgaGFzIG1pbiA9PSBtYXgsIHRoZSBn cm91cAorICAgICAgICAgIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRvIHVucm9sbGluZyBp dHMgYm9keSBpbnRvIHsxLDF9CisgICAgICAgICAgZWxlbWVudHMuICBFLmcuLCAoQSBCezJ9KSsg YmVoYXZlcyBsaWtlIChBIEIgQikrLiAgRWFjaAorICAgICAgICAgIGl0ZXJhdGlvbiBjb25zdW1l cyBhIGZpeGVkIG51bWJlciBvZiByb3dzLCBzbyBhbiBlYXJsaWVyCisgICAgICAgICAgY29udGV4 dCdzIGNvdW50IGFsd2F5cyBkb21pbmF0ZXMgYSBsYXRlciBvbmUncyAobW9ub3RvbmljaXR5KS4K KworICBDYXNlIDM6IEdST1VQKyB3aG9zZSBib2R5IHN0YXJ0cyB3aXRoIFZBUisgKGUuZy4sIChB KyBCKSspCisgICAgICAgICAgLT4gUmVjdXJzZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5LCBh cHBseWluZyBDYXNlIDEuCisgICAgICAgICAgICBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFO Q0ggc2V0IG9uIEEuCisgICAgICAgICAgICBCIGFuZCBFTkQgZ2V0IG5vIGZsYWdzIC0+IGFic29y cHRpb24gc3RvcHMgb25jZSBwYXN0IEEuCisKK0Fic29yYmFiaWxpdHkgaXMgZGV0ZXJtaW5lZCBw ZXItZWxlbWVudCwgbm90IHBlci1wYXR0ZXJuLgorQWJzb3JwdGlvbiBjb21wYXJpc29uIGlzIHBl cmZvcm1lZCBvbmx5IHdoZW4gYSBzdGF0ZSByZXNpZGVzIGF0IGFuCitlbGVtZW50IHdpdGggdGhl IFJQUl9FTEVNX0FCU09SQkFCTEUgZmxhZy4gT25jZSBhIHN0YXRlIGxlYXZlcyB0aGUKK2ZsYWdn ZWQgcmVnaW9uLCBhYnNvcnB0aW9uIGlzIHBlcm1hbmVudGx5IGRpc2FibGVkIGZvciB0aGF0IHN0 YXRlLgorCitUaHJvdWdoIHRoaXMgbWVjaGFuaXNtLCB0aGUgcnVudGltZSBndWFyYW50ZWVzIG1v bm90b25pY2l0eToKKyJhIGNvbnRleHQgdGhhdCBzdGFydGVkIGVhcmxpZXIgYWx3YXlzIHN1YnN1 bWVzIGEgY29udGV4dCB0aGF0CitzdGFydGVkIGxhdGVyLiIKKworQ2hhcHRlciBWICBORkEgUnVu dGltZSBEYXRhIFN0cnVjdHVyZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVi0xLiBSUFJORkFT dGF0ZSAtLSBORkEgU3RhdGUKKworQSBzaW5nbGUgTkZBIHN0YXRlIHJlcHJlc2VudHMgImhvdyBm YXIgdGhlIHBhdHRlcm4gaGFzIHByb2dyZXNzZWQuIgorCisgIEZpZWxkICAgICAgICAgRGVzY3Jp cHRpb24KKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgZWxlbUlkeCAgICAgICBJbmRleCBvZiB0aGUgY3VycmVudCBwYXR0ZXJu IGVsZW1lbnQKKyAgY291bnRzW10gICAgICBSZXBldGl0aW9uIGNvdW50IHBlciBncm91cCBkZXB0 aAorICBpc0Fic29yYmFibGUgIFdoZXRoZXIgdGhlIHN0YXRlIGlzIGluIGFuIGFic29yYmFibGUg cmVnaW9uCisgIG5leHQgICAgICAgICAgTmV4dCBzdGF0ZSBpbiB0aGUgbGlua2VkIGxpc3QKKwor VGhlIHNpemUgb2YgdGhlIGNvdW50cyBhcnJheSBpcyBycFBhdHRlcm4tPm1heERlcHRoICg9IG1h eGltdW0gZ3JvdXAKK25lc3RpbmcgZGVwdGggKyAxKSwgYWxsb2NhdGVkIGFzIGEgZmxleGlibGUg YXJyYXkgbWVtYmVyIGF0IHRoZSBlbmQgb2YKK3RoZSBzdHJ1Y3QuCisKK0V4YW1wbGU6IEluIFBB VFRFUk4gKChBIEIpKyBDKSwgYSBzdGF0ZSB3YWl0aW5nIGZvciBCIGluIHRoZSAzcmQgaXRlcmF0 aW9uCisKKyAgRWxlbWVudCBhcnJheTogWzA6QkVHSU4oZDApIDE6QShkMSkgMjpCKGQxKSAzOkVO RChkMCkgNDpDKGQwKSA1OkZJTl0KKworICBlbGVtSWR4ID0gMiAoQiwgZGVwdGggMSkKKyAgY291 bnRzWzBdID0gMiAoZGVwdGggMDogZGVwdGggb2YgRU5ELiBHcm91cCBjb21wbGV0ZWQgMiBpdGVy YXRpb25zKQorICBjb3VudHNbMV0gPSAxIChkZXB0aCAxOiBkZXB0aCBvZiBCLiBBIG1hdGNoZWQg aW4gY3VycmVudCBpdGVyYXRpb24pCisKKyAgQ291bnRzIGFyZSBpbmRleGVkIGJ5IGRlcHRoLCBu b3QgYnkgZWxlbUlkeC4KKyAgY291bnRzWzBdIGlzIGluY3JlbWVudGVkIHdoZW4gcGFzc2luZyB0 aHJvdWdoIEVORChkZXB0aCAwKSwKKyAgYW5kIHRoZSBncm91cCByZXBldGl0aW9uIGNvdW50IGlz IHByZXNlcnZlZCBldmVuIHdoZW4KKyAgdGhlIHN0YXRlIGlzIGF0IEIoZGVwdGggMSkuCisKK0Rl ZmluaXRpb24gb2YgdHdvIHN0YXRlcyBiZWluZyAiZXF1YWwiOgorCisgIFR3byBzdGF0ZXMgYXJl IGVxdWFsIGlmIHRoZXkgaGF2ZSB0aGUgc2FtZSBlbGVtSWR4IGFuZCB0aGUgc2FtZSBjb3VudHMK KyAgdXAgdG8gdGhlIGRlcHRoIG9mIHRoYXQgZWxlbWVudC4KKyAgbmZhX3N0YXRlc19lcXVhbCgp IGNvbXBhcmVzIGNvdW50c1swLi5lbGVtLT5kZXB0aF0gdXNpbmcgbWVtY21wLgorICBPbmx5IGNv dW50cyBhdCBvciBiZWxvdyB0aGUgZGVwdGggb2YgdGhlIGN1cnJlbnQgZWxlbWVudCBhcmUgbWVh bmluZ2Z1bC4KKworVi0yLiBSUFJORkFDb250ZXh0IC0tIE1hdGNoaW5nIENvbnRleHQKKworQSBz aW5nbGUgY29udGV4dCByZXByZXNlbnRzICJhIG1hdGNoaW5nIGF0dGVtcHQgc3RhcnRlZCBmcm9t IGEgc3BlY2lmaWMKK3N0YXJ0IHJvdy4iCisKKyAgRmllbGQgICAgICAgICAgICAgICAgIERlc2Ny aXB0aW9uCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBzdGF0ZXMgICAgICAgICAgICAgICAgTGlua2VkIGxp c3Qgb2YgYWN0aXZlIE5GQSBzdGF0ZXMKKyAgbWF0Y2hTdGFydFJvdyAgICAgICAgIFJvdyBudW1i ZXIgd2hlcmUgbWF0Y2hpbmcgc3RhcnRlZAorICBtYXRjaEVuZFJvdyAgICAgICAgICAgUm93IG51 bWJlciB3aGVyZSBtYXRjaGluZyBjb21wbGV0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICgt MSBpZiBpbmNvbXBsZXRlKQorICBsYXN0UHJvY2Vzc2VkUm93ICAgICAgTGFzdCByb3cgcHJvY2Vz c2VkCisgIG1hdGNoZWRTdGF0ZSAgICAgICAgICBTdGF0ZSB0aGF0IHJlYWNoZWQgRklOIChmb3Ig Z3JlZWR5IGZhbGxiYWNrKQorICBoYXNBYnNvcmJhYmxlU3RhdGUgICAgV2hldGhlciB0aGlzIGNv bnRleHQgY2FuIGFic29yYiBvdGhlciBjb250ZXh0cworICBhbGxTdGF0ZXNBYnNvcmJhYmxlICAg V2hldGhlciB0aGlzIGNvbnRleHQgY2FuIGJlIGFic29yYmVkCisgIG5leHQsIHByZXYgICAgICAg ICAgICBEb3VibHktbGlua2VkIGxpc3QKKworU2luY2UgdGhlIE5GQSBpcyBub25kZXRlcm1pbmlz dGljLCBtdWx0aXBsZSBzdGF0ZXMgY2FuIGNvZXhpc3QKK3NpbXVsdGFuZW91c2x5IHdpdGhpbiBh IHNpbmdsZSBjb250ZXh0LgorCitFeGFtcGxlOiBJbiBQQVRURVJOIChBIHwgQikgQywgaWYgdGhl IGZpcnN0IHJvdyBtYXRjaGVzIGJvdGggQSBhbmQgQiwKK3R3byBzdGF0ZXMgY29leGlzdCB3aXRo aW4gdGhlIGNvbnRleHQ6CisKKyAgU3RhdGUgMTogZWxlbUlkeD0zICh3YWl0aW5nIGZvciBDLCB2 aWEgYnJhbmNoIEEpCisgIFN0YXRlIDI6IGVsZW1JZHg9MyAod2FpdGluZyBmb3IgQywgdmlhIGJy YW5jaCBCKQorCitJbiB0aGlzIGNhc2UsIHNpbmNlIHRoZSAoZWxlbUlkeCwgY291bnRzKSBvZiB0 aGUgdHdvIHN0YXRlcyBhcmUgZXF1YWwsCituZmFfYWRkX3N0YXRlX3VuaXF1ZSgpIHJldGFpbnMg b25seSBTdGF0ZSAxIChicmFuY2ggQSksIHdoaWNoIHdhcworYWRkZWQgZmlyc3QuCitCZWNhdXNl IERGUyBwcm9jZXNzZXMgdGhlIGZpcnN0IGJyYW5jaCBvZiBBTFQgZmlyc3QsIHRoZSBzdGF0ZSB2 aWEgQQoraXMgcmVnaXN0ZXJlZCBmaXJzdCwgYW5kIHRoZSBzdGF0ZSB2aWEgQiBpcyBkaXNjYXJk ZWQgYXMgYSBkdXBsaWNhdGUuCitUaGlzIGlzIHRoZSBwcmVmZXJtZW50IGd1YXJhbnRlZS4KKwor Vi0zLiBSUFIgRmllbGRzIG9mIFdpbmRvd0FnZ1N0YXRlCisKKyAgbmZhQ29udGV4dCAvIG5mYUNv bnRleHRUYWlsICAgRG91Ymx5LWxpbmtlZCBsaXN0IG9mIGFjdGl2ZSBjb250ZXh0cworICBuZmFD b250ZXh0RnJlZSAgICAgICAgICAgICAgICBSZXVzZSBwb29sIGZvciBjb250ZXh0cworICBuZmFT dGF0ZUZyZWUgICAgICAgICAgICAgICAgICBSZXVzZSBwb29sIGZvciBzdGF0ZXMKKyAgbmZhVmFy TWF0Y2hlZCAgICAgICAgICAgICAgICAgUGVyLXJvdyBjYWNoZTogdmFyTWF0Y2hlZFt2YXJJZF0K KyAgbmZhVmlzaXRlZEVsZW1zICAgICAgICAgICAgICAgQml0bWFwIGZvciBjeWNsZSBkZXRlY3Rp b24KKyAgbmZhU3RhdGVTaXplICAgICAgICAgICAgICAgICAgUHJlY29tcHV0ZWQgc2l6ZSBvZiBS UFJORkFTdGF0ZQorCitNZW1vcnkgbWFuYWdlbWVudDoKKworICBTdGF0ZXMgYW5kIGNvbnRleHRz IGFyZSBtYW5hZ2VkIHRocm91Z2ggdGhlaXIgb3duIGZyZWUgbGlzdHMuCisgIEluc3RlYWQgb2Yg cGFsbG9jLCB0aGV5IGFyZSBvYnRhaW5lZCBmcm9tIHRoZSByZXVzZSBwb29sLCBhbmQKKyAgcmV0 dXJuZWQgdG8gdGhlIHBvb2wgdXBvbiBkZWFsbG9jYXRpb24uCisgIFRoaXMgcmVkdWNlcyB0aGUg b3ZlcmhlYWQgb2YgZnJlcXVlbnQgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24uCisKK0NoYXB0ZXIg VkkgIE5GQSBFeGVjdXRpb246IDMtUGhhc2UgTW9kZWwKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor VkktMS4gRW50cnkgUG9pbnQgYW5kIE92ZXJhbGwgRmxvdworCitXaGVuIHRoZSB3aW5kb3cgZnVu Y3Rpb24gcHJvY2Vzc2VzIGVhY2ggcm93LCByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSgpCitpcyBj YWxsZWQuIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBi ZWxvbmdzIHRvCithIG1hdGNoZWQgZnJhbWUsIGFuZCBpZiBuZWNlc3NhcnksIGNhbGxzIHVwZGF0 ZV9yZWR1Y2VkX2ZyYW1lKCkgdG8KK2RyaXZlIHRoZSBORkEuCisKK0Zsb3cgb2YgdXBkYXRlX3Jl ZHVjZWRfZnJhbWUoKToKKworICAoMSkgRmluZCBvciBjcmVhdGUgYSBjb250ZXh0IGZvciB0aGUg dGFyZ2V0IHJvdworICAoMikgRW50ZXIgdGhlIHJvdyBwcm9jZXNzaW5nIGxvb3AKKyAgKDMpIEFm dGVyIHRoZSBsb29wIGVuZHMsIHJlY29yZCB0aGUgbWF0Y2ggcmVzdWx0CisKK1BzZXVkb2NvZGUg b2YgdGhlIHJvdyBwcm9jZXNzaW5nIGxvb3A6CisKKyAgdGFyZ2V0Q3R4ID0gRXhlY1JQUkdldEhl YWRDb250ZXh0KHBvcykKKyAgaWYgdGFyZ2V0Q3R4ID09IE5VTEw6CisgICAgICB0YXJnZXRDdHgg PSBFeGVjUlBSU3RhcnRDb250ZXh0KHBvcykKKworICBmb3IgY3VycmVudFBvcyA9IHN0YXJ0UG9z OyB0YXJnZXRDdHgtPnN0YXRlcyAhPSBOVUxMOyBjdXJyZW50UG9zKys6CisgICAgICBpZiBub3Qg bmZhX2V2YWx1YXRlX3JvdyhjdXJyZW50UG9zKTogIC0tIHJvdyBkb2VzIG5vdCBleGlzdAorICAg ICAgICAgIEV4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzKCkgICAgICAtLSBmaW5hbGl6ZSBhbGwg Y29udGV4dHMKKyAgICAgICAgICBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cygpICAgICAgLS0g Y2xlYW4gdXAgYWZ0ZXIgZmluYWxpemF0aW9uCisgICAgICAgICAgYnJlYWsKKworICAgICAgRXhl Y1JQUlByb2Nlc3NSb3coY3VycmVudFBvcykgICAgICAgICAtLSAzLXBoYXNlIHByb2Nlc3NpbmcK KyAgICAgIEV4ZWNSUFJTdGFydENvbnRleHQoY3VycmVudFBvcyArIDEpICAgLS0gcHJlLWNyZWF0 ZSBuZXh0IHN0YXJ0IHBvaW50CisgICAgICBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cygpICAg ICAgICAgIC0tIHJlbW92ZSBkZWFkIGNvbnRleHRzCisKK0tleSBwb2ludDogUHJvY2Vzc2luZyBh IHNpbmdsZSByb3cgbWF5IHJlcXVpcmUgcHJvY2Vzc2luZyBtdWx0aXBsZSByb3dzCithaGVhZC4g RHVlIHRvIHRoZSBuYXR1cmUgb2Ygd2luZG93IGZ1bmN0aW9ucywgZGV0ZXJtaW5pbmcgdGhlIGZy YW1lIGZvcgorcm93IE4gcmVxdWlyZXMgbG9va2luZyBhdCByb3dzIGJleW9uZCBOLgorCitWSS0y LiBDb250ZXh0IENyZWF0aW9uOiBFeGVjUlBSU3RhcnRDb250ZXh0KCkKKworQ3JlYXRlcyBhIG5l dyBjb250ZXh0IGFuZCBwZXJmb3JtcyB0aGUgaW5pdGlhbCBhZHZhbmNlLgorCisgICgxKSBBbGxv Y2F0ZSBjb250ZXh0IHZpYSBuZmFfY29udGV4dF9hbGxvYygpCisgICgyKSBTZXQgbWF0Y2hTdGFy dFJvdyA9IHBvcworICAoMykgQ3JlYXRlIGluaXRpYWwgc3RhdGU6IGVsZW1JZHg9MCAoZmlyc3Qg cGF0dGVybiBlbGVtZW50KSwKKyAgICAgIGNvdW50cz1hbGwgemVybworICAoNCkgQ2FsbCBuZmFf YWR2YW5jZShpbml0aWFsQWR2YW5jZT10cnVlKQorCitUaGUgaW5pdGlhbCBhZHZhbmNlIGV4cGFu ZHMgZXBzaWxvbiB0cmFuc2l0aW9ucyBhdCB0aGUgYmVnaW5uaW5nIG9mCit0aGUgcGF0dGVybi4g Rm9yIGV4YW1wbGUsIHRoZSBpbml0aWFsIGFkdmFuY2UgZm9yIFBBVFRFUk4gKChBIHwgQikgQyk6 CisKKyAgU3RhcnQ6IGVsZW1JZHg9MCAoQUxUKQorICAgIC0+IEV4cGFuZCBBTFQgYnJhbmNoZXMK KyAgICAgIC0+IGVsZW1JZHg9MSAoQSkgLS0gVkFSLCBzbyBhZGQgc3RhdGU7IHN0b3AgaGVyZQor ICAgICAgLT4gZWxlbUlkeD0yIChCKSAtLSBWQVIsIHNvIGFkZCBzdGF0ZTsgc3RvcCBoZXJlCisK KyAgUmVzdWx0OiBUd28gc3RhdGVzIGluIHRoZSBjb250ZXh0IHt3YWl0aW5nIGZvciBBLCB3YWl0 aW5nIGZvciBCfQorCitEdXJpbmcgdGhlIGluaXRpYWwgYWR2YW5jZSwgcmVhY2hpbmcgRklOIGlz IG5vdCByZWNvcmRlZCBhcyBhIG1hdGNoLgorVGhpcyBpcyB0byBwcmV2ZW50IGVtcHR5IG1hdGNo ZXMuCisKK1ZJLTMuIFJvdyBFdmFsdWF0aW9uOiBuZmFfZXZhbHVhdGVfcm93KCkKKworRXZhbHVh dGVzIGFsbCB2YXJpYWJsZSBjb25kaXRpb25zIGluIHRoZSBERUZJTkUgY2xhdXNlIGF0IG9uY2Ug Zm9yCit0aGUgY3VycmVudCByb3cuCisKKyAgZm9yIGVhY2ggZGVmaW5lQ2xhdXNlW2ldOgorICAg ICAgcmVzdWx0ID0gRXhlY0V2YWxFeHByKGRlZmluZUNsYXVzZVtpXSkKKyAgICAgIHZhck1hdGNo ZWRbaV0gPSAobm90IG51bGwgYW5kIHRydWUpCisKK1RvIHN1cHBvcnQgcm93IG5hdmlnYXRpb24g b3BlcmF0b3JzIChQUkVWLCBORVhULCBGSVJTVCwgTEFTVCksCithIDEtc2xvdCBtb2RlbCBpcyB1 c2VkOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQKK3Jvdy4gIE5h dmlnYXRpb24gaXMgaGFuZGxlZCBieSBFRU9QX1JQUl9OQVZfU0VUL1JFU1RPUkUgb3Bjb2Rlcwor ZW1pdHRlZCBkdXJpbmcgREVGSU5FIGV4cHJlc3Npb24gY29tcGlsYXRpb246CisKKyAgTkFWX1NF VDogICAgIHNhdmUgZWN4dF9vdXRlcnR1cGxlLCBzd2FwIGluIHRhcmdldCByb3cgdmlhIG5hdl9z bG90CisgIChldmFsdWF0ZSk6ICBhcmd1bWVudCBleHByZXNzaW9uIHJlYWRzIGZyb20gc3dhcHBl ZCBzbG90CisgIE5BVl9SRVNUT1JFOiByZXN0b3JlIG9yaWdpbmFsIGVjeHRfb3V0ZXJ0dXBsZQor CitDb21wb3VuZCBuYXZpZ2F0aW9uIChQUkVWKEZJUlNUKCkpLCBORVhUKEZJUlNUKCkpLCBQUkVW KExBU1QoKSksCitORVhUKExBU1QoKSkpIGlzIGZsYXR0ZW5lZCBieSB0aGUgcGFyc2VyIGludG8g YSBzaW5nbGUgUlBSTmF2RXhwcgord2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9OQVZfUFJFVl9G SVJTVCwgZXRjLikuICBUaGUgZXhlY3V0b3IKK2NvbXB1dGVzIHRoZSB0YXJnZXQgcG9zaXRpb24g aW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCitwb2ludCAobWF0Y2hfc3Rh cnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdlIHZhbGlkYXRpb24sCit0 aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICgrLy0gTSkgd2l0aCBwYXJ0aXRpb24tcmFuZ2UgdmFs aWRhdGlvbi4KK0lmIGVpdGhlciBzdGVwIGlzIG91dCBvZiByYW5nZSwgdGhlIHJlc3VsdCBpcyBO VUxMLgorCituYXZfc2xvdCBjYWNoZXMgdGhlIGxhc3QgZmV0Y2hlZCBwb3NpdGlvbiAobmF2X3Ns b3RfcG9zKSB0byBhdm9pZAorcmVkdW5kYW50IHR1cGxlc3RvcmUgbG9va3VwcyB3aGVuIG11bHRp cGxlIG5hdmlnYXRpb24gY2FsbHMgdGFyZ2V0Cit0aGUgc2FtZSByb3cuCisKK1RoZSB2YXJNYXRj aGVkIGFycmF5IGlzIHJlZmVyZW5jZWQgbGF0ZXIgaW4gUGhhc2UgMSAoTWF0Y2gpLgorCitWSS00 LiBQZXItQ29udGV4dCBSZS1ldmFsdWF0aW9uIChtYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFi bGVzKQorCitERUZJTkUgdmFyaWFibGVzIHRoYXQgZGVwZW5kIG9uIG1hdGNoX3N0YXJ0ICh0aG9z ZSBjb250YWluaW5nIEZJUlNULAorTEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9G SVJTVC9ORVhUX0ZJUlNUL1BSRVZfTEFTVC9ORVhUX0xBU1QpCithcmUgaWRlbnRpZmllZCBhdCBw bGFuIHRpbWUgdmlhIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQuICBUaGUgc2hhcmVkCitldmFs dWF0aW9uIGluIG5mYV9ldmFsdWF0ZV9yb3coKSB1c2VzIHRoZSBoZWFkIGNvbnRleHQncyBtYXRj aFN0YXJ0Um93Citmb3IgRklSU1QvTEFTVCBiYXNlIHBvc2l0aW9uLgorCitXaGVuIHByb2Nlc3Np bmcgYSBjb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBzaGFyZWQK K3ZhbHVlLCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRlbXBvcmFyaWx5IHNldHMg bmF2X21hdGNoX3N0YXJ0Cit0byB0aGF0IGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGFuZCByZS1l dmFsdWF0ZXMgb25seSB0aGUgZGVwZW5kZW50Cit2YXJpYWJsZXMuICBUaGUgb3JpZ2luYWwgbmF2 X21hdGNoX3N0YXJ0IGFuZCBjdXJyZW50cG9zIGFyZSBzYXZlZCBhbmQKK3Jlc3RvcmVkIGFmdGVy IHJlLWV2YWx1YXRpb24uCisKK1N1bW1hcnkgb2YgZXZhbHVhdGlvbiBzdHJhdGVneSBieSBuYXZp Z2F0aW9uIGNvbnRlbnQ6CisKKyAgTmF2aWdhdGlvbiBjb250ZW50ICAgICAgICAgICAgICAgZXZh bHVhdGlvbgorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgIE5vIG5hdmlnYXRpb24gICAgICAgICAgICAgICAgICAgIHNoYXJlZCAob25j ZSBwZXIgcm93KQorICBQUkVWL05FWFQgb25seSAgICAgICAgICAgICAgICAgICBzaGFyZWQgKG9u Y2UgcGVyIHJvdykKKyAgTEFTVCAobm8gb2Zmc2V0KSAgICAgICAgICAgICAgICAgc2hhcmVkIChv bmNlIHBlciByb3cpCisgIExBU1QgKHdpdGggb2Zmc2V0KSAgICAgICAgICAgICAgIHBlci1jb250 ZXh0CisgIEZJUlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAgIHBlci1jb250ZXh0CisgIENv bXBvdW5kIChpbm5lciBGSVJTVCkgICAgICAgICAgIHBlci1jb250ZXh0CisgIENvbXBvdW5kIChp bm5lciBMQVNULCBubyBvZmYuKSAgIHNoYXJlZCAob25jZSBwZXIgcm93KQorICBDb21wb3VuZCAo aW5uZXIgTEFTVCwgdy9vZmYuKSAgICBwZXItY29udGV4dAorCitWSS01LiBUdXBsZXN0b3JlIE1h cmsgYW5kIFRyaW0gKG5vZGVXaW5kb3dBZ2cuYykKKworTmF2aWdhdGlvbiBmdW5jdGlvbnMgcmVx dWlyZSBhY2Nlc3MgdG8gcGFzdCByb3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KK1RvIGFsbG93IHR1 cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0aGF0IGFyZSBubyBsb25nZXIgcmVhY2hhYmxl LAordGhlIHBsYW5uZXIgY29tcHV0ZXMgdHdvIG9mZnNldHMgKHNlZSBjb21wdXRlX25hdl9vZmZz ZXRzKToKKworICBuYXZNYXhPZmZzZXQgKE5hdiBNYXJrIExvb2tiYWNrKToKKyAgICBNYXhpbXVt IGJhY2t3YXJkIHJlYWNoIGZyb20gY3VycmVudHBvcy4gIENvbnRyaWJ1dGVkIGJ5IFBSRVYsCisg ICAgTEFTVC13aXRoLW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QuCisg ICAgTWFyayBwb3NpdGlvbjogY3VycmVudHBvcyAtIG5hdk1heE9mZnNldC4KKworICBuYXZGaXJz dE9mZnNldCAoTmF2IE1hcmsgTG9va2FoZWFkKToKKyAgICBNaW5pbXVtIGZvcndhcmQgb2Zmc2V0 IGZyb20gbWF0Y2hfc3RhcnQuICBDb250cmlidXRlZCBieSBGSVJTVAorICAgIGFuZCBjb21wb3Vu ZCBQUkVWX0ZJUlNUL05FWFRfRklSU1QuICBDYW4gYmUgbmVnYXRpdmUgd2hlbgorICAgIGNvbXBv dW5kIFBSRVZfRklSU1QgbG9va3MgYmVmb3JlIG1hdGNoX3N0YXJ0LgorICAgIE1hcmsgcG9zaXRp b246IG9sZGVzdF9jb250ZXh0LT5tYXRjaFN0YXJ0Um93ICsgbmF2Rmlyc3RPZmZzZXQuCisKK1Ro ZSBhY3R1YWwgbWFyayBpcyBzZXQgdG86IG1pbihsb29rYmFja19tYXJrLCBsb29rYWhlYWRfbWFy aykuCitUaGlzIGVuc3VyZXMgYWxsIHJvd3MgcmVhY2hhYmxlIGJ5IGFueSBuYXZpZ2F0aW9uIGZ1 bmN0aW9uIGFyZSByZXRhaW5lZC4KKworV2hlbiBvZmZzZXRzIGNvbnRhaW4gbm9uLWNvbnN0YW50 IGV4cHJlc3Npb25zIChQYXJhbSksIHRoZSBwbGFubmVyIHNldHMKK25hdk1heE9mZnNldEtpbmQv bmF2Rmlyc3RPZmZzZXRLaW5kIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgYW5kIHRoZQor ZXhlY3V0b3IgZXZhbHVhdGVzIHRoZW0gYXQgaW5pdCB0aW1lLiAgT24gb3ZlcmZsb3csIHRoZSBr aW5kIGlzIHNldCB0bworUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCwgZGlzYWJsaW5nIHRyaW0g Zm9yIHRoYXQgZGltZW5zaW9uLgorCitWSS02LiBFeGVjUlBSUHJvY2Vzc1JvdygpOiAzLVBoYXNl IFByb2Nlc3NpbmcKKworTkZBIHByb2Nlc3NpbmcgZm9yIGEgc2luZ2xlIHJvdyBpcyBkaXZpZGVk IGludG8gdGhyZWUgcGhhc2VzOgorCisgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsKKyAgfCAgUGhhc2UgMTogTUFUQ0ggKGNvbnZlcmdlbmNlKSAgICAgICAg ICAgICAgfAorICB8ICBDb21wYXJlIHRoZSBjdXJyZW50IHJvdyBhZ2FpbnN0IGVhY2ggVkFSICB8 CisgIHwgIHN0YXRlLiBSZW1vdmUgc3RhdGVzIHRoYXQgZmFpbCB0byBtYXRjaC4gIHwKKyAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICB8ICBQaGFzZSAy OiBBQlNPUkIgKGFic29ycHRpb24pICAgICAgICAgICAgICB8CisgIHwgIE1lcmdlIGR1cGxpY2F0 ZSBjb250ZXh0cyB0byBwcmV2ZW50ICAgICAgIHwKKyAgfCAgc3RhdGUgZXhwbG9zaW9uLiAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgIHwgIFBoYXNlIDM6IEFEVkFOQ0UgKGV4cGFuc2lvbikgICAgICAg ICAgICAgIHwKKyAgfCAgRXhwYW5kIGVwc2lsb24gdHJhbnNpdGlvbnMgdG8gcHJlcGFyZSAgICAg fAorICB8ICBmb3IgdGhlIG5leHQgcm93LiAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworVGhpcyBvcmRl cmluZyBpcyBpbXBvcnRhbnQ6CisKKyAgLSBNYXRjaCBleGVjdXRlcyBmaXJzdCB0byAiY29uc3Vt ZSB0aGUgY3VycmVudCByb3cuIgorICAtIEFic29yYiBleGVjdXRlcyBpbW1lZGlhdGVseSBhZnRl ciBNYXRjaCwgd2hlbiBzdGF0ZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCisgIC0gQWR2YW5jZSBleGVj dXRlcyBsYXN0IHRvIHByZXBhcmUgInN0YXRlcyB3YWl0aW5nIGZvciB0aGUgbmV4dCByb3cuIgor CitDaGFwdGVyIFZJSSAgUGhhc2UgMTogTWF0Y2gKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworbmZh X21hdGNoKCkgaXRlcmF0ZXMgdGhyb3VnaCBlYWNoIHN0YXRlIGluIHRoZSBjb250ZXh0OgorCisg ICgxKSBDaGVjayB3aGV0aGVyIHRoZSBzdGF0ZSdzIGVsZW1JZHggaXMgYSBWQVIgZWxlbWVudAor ICAoMikgQ29tcGFyZSBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdyB1c2luZyBuZmFfZXZhbF92YXJf bWF0Y2goKQorICAoMykgTWF0Y2ggc3VjY2VzczogaW5jcmVtZW50IHJlcGV0aXRpb24gY291bnQs IHJldGFpbiBzdGF0ZQorICAoNCkgTWF0Y2ggZmFpbHVyZTogcmVtb3ZlIHN0YXRlCisKK01hdGNo IGRldGVybWluYXRpb24gKG5mYV9ldmFsX3Zhcl9tYXRjaCk6CisKKyAgSWYgdmFySWQgaXMgd2l0 aGluIHRoZSByYW5nZSBvZiBkZWZpbmVWYXJpYWJsZUxpc3Q6CisgICAgICBVc2UgdGhlIHZhbHVl IG9mIHZhck1hdGNoZWRbdmFySWRdCisKKyAgSWYgdmFySWQgZXhjZWVkcyB0aGUgcmFuZ2UgKHZh cmlhYmxlIG5vdCBkZWZpbmVkIGluIERFRklORSk6CisgICAgICBVbmNvbmRpdGlvbmFsbHkgdHJ1 ZSAobWF0Y2hlcyBhbGwgcm93cykKKworSW1tZWRpYXRlIGFkdmFuY2UgZm9yIHNpbXBsZSBWQVJz OgorCisgIEZvciBhIFZBUiB3aXRoIG1pbj0xLCBtYXg9MSB3aGVyZSB0aGUgbmV4dCBlbGVtZW50 IGlzIEVORCwKKyAgdGhlIE1hdGNoIHBoYXNlIHByb2Nlc3NlcyB0aHJvdWdoIEVORCBpbW1lZGlh dGVseS4KKyAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGFjY3VyYXRlIHN0YXRlIGNvbXBhcmlzb24g aW4gUGhhc2UgMiAoQWJzb3JiKS4KKworICBFeGFtcGxlOiBJbiBQQVRURVJOICgoQSBCKSspLCB3 aGVuIEEgbWF0Y2hlcywgaXQgaW1tZWRpYXRlbHkgYWR2YW5jZXMKKyAgdG8gQiwgYW5kIHdoZW4g QiBtYXRjaGVzLCBpdCBpbW1lZGlhdGVseSBhZHZhbmNlcyB0aHJvdWdoIEVORCB0bworICBjb21w bGV0ZSB0aGUgZ3JvdXAgY291bnQuIFRoaXMgZW5hYmxlcyBhYnNvcnB0aW9uIGNvbXBhcmlzb24g d2l0aAorICBvdGhlciBjb250ZXh0cy4KKworQ2hhcHRlciBWSUlJICBQaGFzZSAyOiBBYnNvcmIg KENvbnRleHQgQWJzb3JwdGlvbikKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVklJSS0xLiBQcm9i bGVtCisKK0luIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBhIG5ldyBjb250ZXh0IGlzIHN0 YXJ0ZWQgZm9yIGVhY2ggcm93Citwcm9jZXNzZWQuCitBcHBseWluZyBQQVRURVJOIChBKykgdG8g MTAgcm93cyBwcm9kdWNlcyAxMCBjb250ZXh0cywKK2VhY2ggb2Ygd2hpY2ggdHJhY2tzIHN0YXRl IGluZGVwZW5kZW50bHkuCisKK0lmIHRoZXJlIGFyZSBOIHJvd3MsIHRoZSB0b3RhbCBudW1iZXIg b2Ygc3RhdGVzIGJlY29tZXMgTyhOXjIpOgorCisgIENvbnRleHQgMSAoc3RhcnRlZCBhdCByb3cg MSk6IGNhbiBtYXRjaCBBIHVwIHRvIE4gdGltZXMKKyAgQ29udGV4dCAyIChzdGFydGVkIGF0IHJv dyAyKTogY2FuIG1hdGNoIEEgdXAgdG8gTi0xIHRpbWVzCisgIC4uLgorICBDb250ZXh0IE4gKHN0 YXJ0ZWQgYXQgcm93IE4pOiBjYW4gbWF0Y2ggQSAxIHRpbWUKKworVklJSS0yLiBTb2x1dGlvbjog Q29udGV4dCBBYnNvcnB0aW9uCisKK0tleSBvYnNlcnZhdGlvbjogYSBjb250ZXh0IHN0YXJ0ZWQg ZWFybGllciBjb250YWlucworYWxsIG1hdGNoZXMgb2YgYSBsYXRlci1zdGFydGVkIGNvbnRleHQg KG1vbm90b25pY2l0eSBwcmluY2lwbGUpLgorCitJZiBDb250ZXh0IDEgc3RhcnRlZCBhdCByb3cg MSBhbmQgbWF0Y2hlZCBBIDUgdGltZXMsCit0aGUgc3RhdGUgd2hlcmUgQ29udGV4dCAyIChzdGFy dGVkIGF0IHJvdyAyKSBtYXRjaGVkIEEgNCB0aW1lcworaXMgYWxyZWFkeSBjb250YWluZWQgd2l0 aGluIENvbnRleHQgMS4KKworVGhlcmVmb3JlIENvbnRleHQgMiBjYW4gYmUgImFic29yYmVkIiBp bnRvIENvbnRleHQgMS4KKworVklJSS0zLiBBYnNvcnB0aW9uIENvbmRpdGlvbnMKKworUGxhbm5l ci10aW1lIHByZXJlcXVpc2l0ZXMgKGFsbCBtdXN0IGhvbGQgZm9yIGFic29ycHRpb24gdG8gYmUg ZW5hYmxlZCk6CisKKyAgKGEpIFNLSVAgUEFTVCBMQVNUIFJPVy4gIFNLSVAgVE8gTkVYVCBST1cg Y3JlYXRlcyBvdmVybGFwcGluZworICAgICAgY29udGV4dHMgdGhhdCBjYW5ub3QgYmUgc2FmZWx5 IGFic29yYmVkLgorICAoYikgVW5ib3VuZGVkIGZyYW1lIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRAorICAgICAgRk9MTE9XSU5HKS4gIExpbWl0ZWQgZnJhbWVzIGFwcGx5 IGRpZmZlcmVudGx5IHRvIGVhY2ggY29udGV4dCwKKyAgICAgIGJyZWFraW5nIHRoZSBtb25vdG9u aWNpdHkgcHJpbmNpcGxlLgorICAoYykgTm8gbWF0Y2hfc3RhcnQtZGVwZW5kZW50IG5hdmlnYXRp b24gaW4gREVGSU5FLgorCisgICAgICBNZWNoYW5pc206IGVhY2ggY29udGV4dCBoYXMgYSBkaWZm ZXJlbnQgbWF0Y2hTdGFydFJvdywgc28gRklSU1QKKyAgICAgIHJlc29sdmVzIHRvIGEgZGlmZmVy ZW50IHJvdyBmb3IgZWFjaCBjb250ZXh0IGF0IHRoZSBzYW1lCisgICAgICBjdXJyZW50cG9zLiAg QW4gZWFybGllciBjb250ZXh0J3MgREVGSU5FIHJlc3VsdCBubyBsb25nZXIKKyAgICAgIHN1YnN1 bWVzIGEgbGF0ZXIgb25lJ3MsIG1ha2luZyBjb3VudC1kb21pbmFuY2UgY29tcGFyaXNvbgorICAg ICAgaW52YWxpZC4gIFJhdGhlciB0aGFuIGNvbXBhcmluZyBtYXRjaFN0YXJ0Um93IGF0IHJ1bnRp bWUKKyAgICAgICh3aGljaCB3b3VsZCBjb21wbGljYXRlIHRoZSBhYnNvcmIgcGF0aCksIGFueSBt YXRjaF9zdGFydAorICAgICAgZGVwZW5kZW5jeSBkaXNhYmxlcyBhYnNvcnB0aW9uIGVudGlyZWx5 LgorCisgICAgICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgIG1hdGNoX3N0YXJ0IGRl cC4gIGFic29ycHRpb24KKyAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgTm8gbmF2aWdhdGlvbiAgICAgICAgICAg ICAgICAgICBub25lICAgICAgICAgICAgICBzYWZlCisgICAgICBQUkVWL05FWFQgb25seSAgICAg ICAgICAgICAgICAgIG5vbmUgICAgICAgICAgICAgIHNhZmUKKyAgICAgIExBU1QgKG5vIG9mZnNl dCkgICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgc2FmZQorICAgICAgTEFTVCAod2l0 aCBvZmZzZXQpICAgICAgICAgICAgICBib3VuZGFyeSBjaGVjayAgICB1bnNhZmUKKyAgICAgIEZJ UlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAgZGlyZWN0ICAgICAgICAgICAgdW5zYWZlCisg ICAgICBDb21wb3VuZCAoaW5uZXIgRklSU1QpICAgICAgICAgIGRpcmVjdCAgICAgICAgICAgIHVu c2FmZQorICAgICAgQ29tcG91bmQgKGlubmVyIExBU1QsIG5vIG9mZi4pICBub25lICAgICAgICAg ICAgICBzYWZlCisgICAgICBDb21wb3VuZCAoaW5uZXIgTEFTVCwgdy9vZmYuKSAgIGJvdW5kYXJ5 IGNoayAgICAgIHVuc2FmZQorCitSdW50aW1lIGNvbmRpdGlvbnMgKGV2YWx1YXRlZCBwZXIgY29u dGV4dCBwYWlyKToKKworICAoMSkgVGhlIHBhdHRlcm4gaXMgbWFya2VkIGFzIGlzQWJzb3JiYWJs ZSAoc2VlIElWLTUpCisgICgyKSBhbGxTdGF0ZXNBYnNvcmJhYmxlIG9mIHRoZSB0YXJnZXQgY29u dGV4dCBpcyB0cnVlCisgICgzKSBBbiBlYXJsaWVyIGNvbnRleHQgImNvdmVycyIgYWxsIHN0YXRl cyBvZiB0aGUgdGFyZ2V0CisKK0NvdmVyIGNvbmRpdGlvbiAobmZhX3N0YXRlc19jb3ZlcmVkKToK KworICBBIHN0YXRlIHdpdGggdGhlIHNhbWUgZWxlbUlkeCBleGlzdHMgaW4gdGhlIGVhcmxpZXIg Y29udGV4dCwKKyAgYW5kIHRoZSBjb3VudCBhdCB0aGF0IGRlcHRoIGlzIGdyZWF0ZXIgdGhhbiBv ciBlcXVhbCAtLSB0aGVuIGl0IGlzIGNvdmVyZWQuCisKK1ZJSUktNC4gRHVhbC1GbGFnIERlc2ln bgorCitUd28gYm9vbGVhbiBmbGFncyBtYWtlIHRoZSBhYnNvcnB0aW9uIGRlY2lzaW9uIGVmZmlj aWVudDoKKworICBoYXNBYnNvcmJhYmxlU3RhdGUgKG1vbm90b25pYzogb25seSB0cnVlLT5mYWxz ZSB0cmFuc2l0aW9uIHBvc3NpYmxlKQorICAgICJEb2VzIHRoaXMgY29udGV4dCBoYXZlIHRoZSBh YmlsaXR5IHRvIGFic29yYiBvdGhlciBjb250ZXh0cz8iCisgICAgdHJ1ZSBpZiBhdCBsZWFzdCBv bmUgYWJzb3JiYWJsZSBzdGF0ZSBleGlzdHMuCisgICAgVHJhbnNpdGlvbnMgdG8gZmFsc2Ugd2hl biBzdGF0ZXMgYXJlIHJlbW92ZWQgbGVhdmluZyBubyBhYnNvcmJhYmxlCisgICAgc3RhdGVzLgor ICAgIE9uY2UgZmFsc2UsIGl0IG5ldmVyIGJlY29tZXMgdHJ1ZSBhZ2Fpbi4KKworICBhbGxTdGF0 ZXNBYnNvcmJhYmxlIChkeW5hbWljOiBjYW4gZmx1Y3R1YXRlKQorICAgICJDYW4gdGhpcyBjb250 ZXh0IGJlIGFic29yYmVkPyIKKyAgICB0cnVlIGlmIGFsbCBzdGF0ZXMgYXJlIGluIGFuIGFic29y YmFibGUgcmVnaW9uLgorICAgIEJlY29tZXMgZmFsc2Ugd2hlbiBhIG5vbi1hYnNvcmJhYmxlIHN0 YXRlIGlzIGFkZGVkOyByZXZlcnRzIHRvIHRydWUKKyAgICB3aGVuIGl0IGlzIHJlbW92ZWQuCisK K1ZJSUktNS4gQWJzb3JwdGlvbiBPcmRlcgorCituZmFfYWJzb3JiX2NvbnRleHRzKCkgdHJhdmVy c2VzIGZyb20gdGFpbCAobmV3ZXN0KSB0byBoZWFkIChvbGRlc3QpLgorCisgIGZvciBjdHggPSB0 YWlsIHRvIGhlYWQ6CisgICAgICBpZiBjdHguYWxsU3RhdGVzQWJzb3JiYWJsZToKKyAgICAgICAg ICBmb3Igb2xkZXIgPSBjdHgucHJldiB0byBoZWFkOgorICAgICAgICAgICAgICBpZiBvbGRlci5o YXNBYnNvcmJhYmxlU3RhdGU6CisgICAgICAgICAgICAgICAgICBpZiBuZmFfc3RhdGVzX2NvdmVy ZWQob2xkZXIsIGN0eCk6CisgICAgICAgICAgICAgICAgICAgICAgZnJlZShjdHgpICAtLSBhYnNv cmJlZAorICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKK1NpbmNlIGluc3BlY3Rpb24gc3Rh cnRzIGZyb20gdGhlIG5ld2VzdCBjb250ZXh0LCB0aGUgbW9zdCByZWNlbnRseSBzdGFydGVkCiso PSBoYXZpbmcgdGhlIHNob3J0ZXN0IG1hdGNoKSBjb250ZXh0IGlzIGFic29yYmVkIGZpcnN0Lgor CitDaGFwdGVyIElYICBQaGFzZSAzOiBBZHZhbmNlIChFcHNpbG9uIFRyYW5zaXRpb24gRXhwYW5z aW9uKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJWC0xLiBPdmVydmlldworCituZmFfYWR2YW5j ZSgpIGV4cGFuZHMgZXBzaWxvbiB0cmFuc2l0aW9ucyBmcm9tIGVhY2ggc3RhdGUgYWZ0ZXIgTWF0 Y2gsCitnZW5lcmF0aW5nICJuZXcgc3RhdGVzIHdhaXRpbmcgZm9yIHRoZSBuZXh0IHJvdy4iCisK K0FuIGVwc2lsb24gdHJhbnNpdGlvbiBpcyBhIHRyYW5zaXRpb24gdGhhdCBtb3ZlcyB3aXRob3V0 IGNvbnN1bWluZyBhIHJvdzoKKworICAtIEFMVDogYnJhbmNoIHRvIGVhY2ggYWx0ZXJuYXRpdmUK KyAgLSBCRUdJTjogZW50ZXIgZ3JvdXAgKG9yIHNraXAgaWYgbWluPTApCisgIC0gRU5EOiBsb29w LWJhY2sgd2l0aGluIGdyb3VwIChvciBleGl0IHdoZW4gY29uZGl0aW9uIGlzIG1ldCkKKyAgLSBG SU46IHJlY29yZCBtYXRjaCBjb21wbGV0aW9uCisgIC0gVkFSIGxvb3AvZXhpdDogcmVwZWF0L2V4 aXQgYWNjb3JkaW5nIHRvIHRoZSBxdWFudGlmaWVyCisKK0V4cGFuc2lvbiBzdG9wcyB1cG9uIHJl YWNoaW5nIGEgVkFSIGVsZW1lbnQsIGFuZCB0aGUgc3RhdGUgaXMgYWRkZWQuCitUaGlzIGlzIGJl Y2F1c2UgVkFSIGlzIHRoZSBlbGVtZW50IHRoYXQgIndpbGwgY29uc3VtZSB0aGUgbmV4dCByb3cu IgorCitJWC0yLiBQcm9jZXNzaW5nIE9yZGVyOiBERlMgYW5kIFByZWZlcm1lbnQKKworYWR2YW5j ZSBwcm9jZXNzZXMgc3RhdGVzIGluIGxleGljb2dyYXBoaWMgb3JkZXIsCitwZXJmb3JtaW5nIERl cHRoLUZpcnN0IFNlYXJjaCAoREZTKSBvbiBlYWNoIHN0YXRlLgorCitUaGlzIERGUyBvcmRlciBp cyB3aGF0IGd1YXJhbnRlZXMgdGhlIFNRTCBzdGFuZGFyZCdzICJwcmVmZXJtZW50IjoKKworICBU aGUgYnJhbmNoIHRoYXQgYXBwZWFycyBmaXJzdCBpbiB0aGUgUEFUVEVSTiB0ZXh0IHRha2VzIHBy ZWNlZGVuY2UuCisKK0V4YW1wbGU6IFBBVFRFUk4gKEEgfCBCKSBDCisKKyAgVGhlIGZpcnN0IGJy YW5jaCBBIG9mIHRoZSBBTFQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBzZWNvbmQgYnJhbmNo IEIuCisgIFdoZW4gYm90aCBBIGFuZCBCIGNhbiBtYXRjaCwgdGhlIG1hdGNoIHZpYSBBIGlzIHNl bGVjdGVkLgorCituZmFfYWRkX3N0YXRlX3VuaXF1ZSgpIHByZXZlbnRzIGR1cGxpY2F0ZSBhZGRp dGlvbiBvZiB0aGUgc2FtZSBzdGF0ZSwKK3NvIHRoZSBzdGF0ZSBhZGRlZCBmaXJzdCAoPSBmcm9t IHRoZSBwcmVmZXJyZWQgYnJhbmNoKSBpcyByZXRhaW5lZC4KKworSVgtMy4gUm91dGluZyBGdW5j dGlvbjogbmZhX3JvdXRlX3RvX2VsZW0oKQorCitBbGwgaW50ZXItZWxlbWVudCB0cmFuc2l0aW9u cyBpbiB0aGUgYWR2YW5jZSBwaGFzZSBnbyB0aHJvdWdoCituZmFfcm91dGVfdG9fZWxlbSgpLgor VGhpcyBmdW5jdGlvbiBicmFuY2hlcyBpdHMgYmVoYXZpb3IgYmFzZWQgb24gdGhlIHR5cGUgb2Yg dGhlIG5leHQgZWxlbWVudDoKKworICBJZiB0aGUgbmV4dCBlbGVtZW50IGlzIFZBUjoKKyAgICAo MSkgQWRkIHRoZSBzdGF0ZSB0byB0aGUgY29udGV4dCAobmZhX2FkZF9zdGF0ZV91bmlxdWUpCisg ICAgKDIpIElmIHRoZSBWQVIgaGFzIG1pbj0wLCBhbHNvIGFkZCBhIHNraXAgcGF0aCAocmVjdXJz ZSB2aWEgbmV4dCkKKyAgICAtPiBFeHBhbnNpb24gc3RvcHMgaGVyZSAoVkFSIGlzIHRoZSBlbGVt ZW50IHRoYXQgIndpbGwgY29uc3VtZSB0aGUgbmV4dAorICAgICAgIHJvdyIpCisKKyAgSWYgdGhl IG5leHQgZWxlbWVudCBpcyBub24tVkFSIChBTFQsIEJFR0lOLCBFTkQsIEZJTik6CisgICAgLT4g UmVjdXJzaXZlbHkgY2FsbCBuZmFfYWR2YW5jZV9zdGF0ZSgpIHRvIGNvbnRpbnVlIGV4cGFuc2lv bgorCitXaXRoIHRoaXMgc3RydWN0dXJlLCBhZHZhbmNlIHJlY3Vyc2l2ZWx5IGZvbGxvd3MgZXBz aWxvbiB0cmFuc2l0aW9ucwordW50aWwgcmVhY2hpbmcgYSBWQVIsIGNvbnNpc3RlbnRseSBzdG9w cGluZyBvbmx5IGF0IFZBUiBlbGVtZW50cy4KKworSVgtNC4gUGVyLUVsZW1lbnQgYWR2YW5jZSBC ZWhhdmlvcgorCisoYSkgQUxUIChuZmFfYWR2YW5jZV9hbHQpCisKKyAgVXBvbiBlbmNvdW50ZXJp bmcgYW4gQUxUIGVsZW1lbnQsIGFsbCBicmFuY2hlcyBhcmUgZXhwYW5kZWQgaW4gb3JkZXIuCisg IFRoZSBmaXJzdCBlbGVtZW50IG9mIGVhY2ggYnJhbmNoIGlzIGNvbm5lY3RlZCB2aWEgYSBqdW1w IHBvaW50ZXIuCisKKyAgaWR4PTAgKEFMVCkgLT4gYnJhbmNoIDEgc3RhcnQgKG5leHQpIC0+IGJy YW5jaCAyIHN0YXJ0IChqdW1wKSAtPiAuLi4KKworICBuZmFfYWR2YW5jZV9zdGF0ZSgpIGlzIHJl Y3Vyc2l2ZWx5IGNhbGxlZCBmb3IgZWFjaCBicmFuY2guCisKKyhiKSBCRUdJTiAobmZhX2FkdmFu Y2VfYmVnaW4pCisKKyAgSGFuZGxlcyBncm91cCBlbnRyeS4KKyAganVtcCBwb2ludHMgdG8gdGhl IGVsZW1lbnQgYWZ0ZXIgRU5EICg9IGZpcnN0IGVsZW1lbnQgb3V0c2lkZSB0aGUgZ3JvdXApLgor CisgIEdyZWVkeSAoZGVmYXVsdCk6CisgICAgKDEpIEVudGVyIHRoZSBncm91cCBib2R5IChtb3Zl IHZpYSBuZXh0LCByZXNldCB0aGUgY291bnQgYXQgdGhhdCBkZXB0aCkKKyAgICAoMikgSWYgbWlu PTAsIGFsc28gYWRkIGEgZ3JvdXAgc2tpcCBwYXRoIChtb3ZlIHZpYSBqdW1wKQorCisgIFJlbHVj dGFudDoKKyAgICBPcmRlciByZXZlcnNlZCAtLSBza2lwIHBhdGggZmlyc3QsIGdyb3VwIGVudHJ5 IHNlY29uZC4KKyAgICBJZiB0aGUgc2tpcCBwYXRoIHJlYWNoZXMgRklOLCB0aGUgZ3JvdXAgZW50 cnkgcGF0aCBpcyBub3QgZ2VuZXJhdGVkCisgICAgKHNob3J0ZXN0IG1hdGNoIHByZWZlcnJlZCku CisKKyhjKSBFTkQgKG5mYV9hZHZhbmNlX2VuZCkKKworICBIYW5kbGVzIGdyb3VwIHRlcm1pbmF0 aW9uLiBUaGlzIGlzIHRoZSBjb3JlIG9mIHRoZSByZXBldGl0aW9uIGxvZ2ljLgorCisgIExldCBj b3VudCBiZSB0aGUgY291bnQgYXQgdGhlIGN1cnJlbnQgZGVwdGg6CisKKyAgY291bnQgPCBtaW46 CisgICAgTG9vcC1iYWNrIChtb3ZlIHZpYSBqdW1wLCByZXBlYXQgdGhlIGdyb3VwIGJvZHkpCisK KyAgICBJZiB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFnIGlzIHNldDoKKyAgICAgIEluIGFk ZGl0aW9uIHRvIGxvb3AtYmFjaywgYWxzbyBhZGQgYSBmYXN0LWZvcndhcmQgZXhpdCBwYXRoLgor ICAgICAgVGhpcyBpcyBiZWNhdXNlIHRoZSBib2R5IG1heSBwcm9kdWNlIGFuIGVtcHR5IG1hdGNo LCBjYXVzaW5nIGNvdW50CisgICAgICB0byBuZXZlciByZWFjaCBtaW4uIGZhc3QtZm9yd2FyZCBy ZXNldHMgY291bnRzW2RlcHRoXSB0byAwCisgICAgICBhbmQgZXhpdHMgdmlhIG5leHQgKHRyZWF0 aW5nIHRoZSByZW1haW5pbmcgcmVxdWlyZWQgaXRlcmF0aW9ucworICAgICAgYXMgZW1wdHkgbWF0 Y2hlcykuCisKKyAgbWluIDw9IGNvdW50IDwgbWF4OgorICAgIEdyZWVkeTogbG9vcC1iYWNrIGZp cnN0LCBleGl0IHNlY29uZAorICAgIFJlbHVjdGFudDogZXhpdCBmaXJzdCwgbG9vcC1iYWNrIHNl Y29uZAorICAgICAgICAgICAgICAgSWYgdGhlIGV4aXQgcGF0aCByZWFjaGVzIEZJTiwgbG9vcC1i YWNrIGlzIG9taXR0ZWQuCisKKyAgY291bnQgPj0gbWF4OgorICAgIFVuY29uZGl0aW9uYWwgZXhp dCAobW92ZSB2aWEgbmV4dCkKKworICBPbiBleGl0OiByZXNldCBjb3VudHNbZGVwdGhdID0gMCwg YW5kIGlmIHRoZSBuZXh0IGVsZW1lbnQgaXMgYW4gb3V0ZXIgRU5ELAorICBpbmNyZW1lbnQgdGhl IGNvdW50IGF0IHRoZSBvdXRlciBkZXB0aC4KKworKGQpIFZBUiAobmZhX2FkdmFuY2VfdmFyKQor CisgIEhhbmRsZXMgcmVwZWF0L2V4aXQgZm9yIGEgVkFSIGVsZW1lbnQgd2l0aCBhIHF1YW50aWZp ZXIuCisKKyAgTGV0IGNvdW50IGJlIHRoZSBjb3VudCBhdCB0aGUgY3VycmVudCBkZXB0aDoKKwor ICBjb3VudCA8IG1pbjoKKyAgICBVbmNvbmRpdGlvbmFsIGxvb3AgKHN0YXkgYXQgdGhlIHNhbWUg ZWxlbUlkeCwgd2FpdCBmb3IgdGhlIG5leHQgcm93KQorCisgIG1pbiA8PSBjb3VudCA8IG1heDoK KyAgICBHcmVlZHk6IGxvb3AgZmlyc3QsIGV4aXQgKG5leHQpIHNlY29uZAorICAgIFJlbHVjdGFu dDogZXhpdCBmaXJzdCwgbG9vcCBzZWNvbmQKKyAgICAgICAgICAgICAgIElmIHRoZSBleGl0IHBh dGggcmVhY2hlcyBGSU4sIGxvb3AgaXMgb21pdHRlZC4KKworICBjb3VudCA+PSBtYXg6CisgICAg VW5jb25kaXRpb25hbCBleGl0IChtb3ZlIHZpYSBuZXh0KQorCisgIE9uIGV4aXQ6IHJlc2V0IGNv dW50c1tkZXB0aF0gPSAwLgorCisoZSkgRklOCisKKyAgTWF0Y2ggc3VjY2Vzcy4gVGhlIGN1cnJl bnQgc3RhdGUgaXMgbW92ZWQgdG8gbWF0Y2hlZFN0YXRlIGZvciByZWNvcmRpbmcsCisgIGFuZCBt YXRjaEVuZFJvdyBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgcm93LgorCisgIFVwb24gcmVhY2hpbmcg RklOLCBhbGwgcmVtYWluaW5nIHVucHJvY2Vzc2VkIHN0YXRlcyBhcmUgcmVtb3ZlZAorICAoZWFy bHkgdGVybWluYXRpb24pLiBCeSBERlMgb3JkZXIsIHRoZSBwYXRoIHRoYXQgcmVhY2hlZCBGSU4g Zmlyc3QKKyAgaGFzIHRoZSBoaWdoZXN0IHByZWZlcm1lbnQsIHNvIHRoZSByZXN0IGFyZSBpbmZl cmlvciBwYXRocy4KKyAgVGhpcyBpcyB0aGUgY29yZSBtZWNoYW5pc20gdGhhdCBndWFyYW50ZWVz IHByZWZlcm1lbnQuCisKKyAgSW4gU0tJUCBQQVNUIExBU1QgUk9XIG1vZGUsIHVwb24gcmVhY2hp bmcgRklOLCBzdWJzZXF1ZW50IGNvbnRleHRzCisgIHRoYXQgc3RhcnRlZCB3aXRoaW4gdGhlIG1h dGNoIHJhbmdlIGFyZSBpbW1lZGlhdGVseSBwcnVuZWQuCisKK0lYLTUuIFN0YXRlIERlZHVwbGlj YXRpb246IG5mYV9hZGRfc3RhdGVfdW5pcXVlKCkKKworV2hlbiBhZGRpbmcgYSBuZXcgc3RhdGUg dG8gYSBjb250ZXh0LCBpdCBpcyBjb21wYXJlZCBhZ2FpbnN0IGV4aXN0aW5nCitzdGF0ZXM7Citp ZiBhbiBpZGVudGljYWwgc3RhdGUgYWxyZWFkeSBleGlzdHMsIGl0IGlzIG5vdCBhZGRlZC4KKwor Q29tcGFyaXNvbiBjcml0ZXJpYTogZWxlbUlkeCArIGNvdW50c1swLi5lbGVtLT5kZXB0aF0gKHNl ZSBWLTEpCisKK1RoaXMgZGVkdXBsaWNhdGlvbiBpcyB0aGUgY29yZSBtZWNoYW5pc20gdGhhdCBz dXBwcmVzc2VzIE5GQSBzdGF0ZQorZXhwbG9zaW9uLgorQmVjYXVzZSBERlMgb3JkZXIgY2F1c2Vz IHByZWZlcnJlZC1icmFuY2ggc3RhdGVzIHRvIGJlIGFkZGVkIGZpcnN0LAoraWRlbnRpY2FsIHN0 YXRlcyBmcm9tIGxvd2VyLXByaW9yaXR5IGJyYW5jaGVzIGFyZSBhdXRvbWF0aWNhbGx5IGRpc2Nh cmRlZC4KKworSVgtNi4gQ3ljbGUgRGV0ZWN0aW9uOiBuZmFWaXNpdGVkRWxlbXMKKworV2hlbiBh IGdyb3VwIGJvZHkgY2FuIHByb2R1Y2UgYW4gZW1wdHkgbWF0Y2gsCitsb29waW5nIGJhY2sgZnJv bSBFTkQgbWF5IGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCisKK0V4YW1wbGU6IFBBVFRFUk4gKChB PykqKQorCisgIEE/IGhhcyBtaW49MCwgc28gaXQgY2FuIHBhc3MgdGhyb3VnaCB3aXRob3V0IG1h dGNoaW5nLgorICBJZiB0aGUgb3V0ZXIgZ3JvdXAgcmVwZWF0czogQkVHSU4gLT4gQT8gc2tpcCAt PiBFTkQgLT4gQkVHSU4gLT4gLi4uCisKK1RvIHByZXZlbnQgdGhpczoKKworICAoMSkgQXQgY29t cGlsZSB0aW1lOiBzZXQgdGhlIFJQUl9FTEVNX0VNUFRZX0xPT1AgZmxhZyBvbiB0aGUgRU5ECisg ICAgICBvZiBncm91cHMgd2hvc2UgYm9keSBpcyBudWxsYWJsZS4KKyAgICAgIFRoZSBydW50aW1l IGVmZmVjdCBvZiB0aGlzIGZsYWcgaXMgZGVzY3JpYmVkIGluIElYLTQoYyk6CisgICAgICB3aGVu IGNvdW50IDwgbWluLCBhIGZhc3QtZm9yd2FyZCBleGl0IHBhdGggaXMgYWRkZWQsCisgICAgICBy ZXNvbHZpbmcgdGhlIGRlYWRsb2NrIHdoZXJlIGNvdW50IGNhbm5vdCBpbmNyZWFzZSBkdWUgdG8g ZW1wdHkKKyAgICAgIG1hdGNoZXMuCisKKyAgKDIpIEF0IHJ1bnRpbWU6IGluaXRpYWxpemUgdGhl IG5mYVZpc2l0ZWRFbGVtcyBiaXRtYXAgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICBERlMgZXhw YW5zaW9uIG9mIGVhY2ggc3RhdGUgd2l0aGluIGFkdmFuY2UgKG9uY2UgcGVyIHN0YXRlKS4KKyAg ICAgIER1cmluZyBERlMsIGVwc2lsb24gZWxlbWVudHMgKEVORCwgQUxULCBCRUdJTikgYXJlIG1h cmtlZCBpbiB0aGUKKyAgICAgIGJpdG1hcCBhdCBuZmFfYWR2YW5jZV9zdGF0ZSBlbnRyeS4gIFZB UiBlbGVtZW50cyBhcmUgbWFya2VkIGxhdGVyCisgICAgICB3aGVuIGFkZGVkIHRvIHRoZSBzdGF0 ZSBsaXN0IChuZmFfYWRkX3N0YXRlX3VuaXF1ZSksIHNvIHRoYXQKKyAgICAgIGxlZ2l0aW1hdGUg bG9vcC1iYWNrIHRvIHRoZSBzYW1lIFZBUiBpbiBhIG5ldyBncm91cCBpdGVyYXRpb24KKyAgICAg IChlLmcuLCBFTkQgLT4gQUxUIC0+IHNhbWUgVkFSKSBpcyBub3QgYmxvY2tlZC4KKyAgICAgIElm IGEgcHJldmlvdXNseSB2aXNpdGVkIGVsZW1JZHggaXMgcmV2aXNpdGVkLCB0aGF0IHBhdGggaXMg dGVybWluYXRlZC4KKworICBOb3RlOiB0aGUgYml0bWFwIHRyYWNrcyBvbmx5IGVsZW1JZHggYW5k IGRvZXMgbm90IGNvbnNpZGVyIGNvdW50cy4KKyAgVGhlcmVmb3JlLCBsZWdpdGltYXRlIHJldmlz aXRzIHRvIHRoZSBzYW1lIGVsZW1JZHggYnV0IHdpdGggZGlmZmVyZW50CisgIGNvdW50cyBtYXkg YWxzbyBiZSBibG9ja2VkLiAgVGhpcyBvbmx5IG9jY3VycyB3aGVuIHRoZSBncm91cCBib2R5IGlz CisgIG51bGxhYmxlIChhbGwgcGF0aHMgY2FuIG1hdGNoIGVtcHR5KSwgY2F1c2luZyBFTkQgLT4g bG9vcC1iYWNrIC0+CisgIHNraXAgLT4gRU5EIHdpdGhpbiBhIHNpbmdsZSBERlMuICBJbiBzdWNo IGNhc2VzIHRoZSBFTkQgZWxlbWVudCBoYXMKKyAgdGhlIFJQUl9FTEVNX0VNUFRZX0xPT1AgZmxh Zywgc28gdGhlIGZhc3QtZm9yd2FyZCBleGl0IChJWC00KGMpKQorICBwcm92aWRlcyBhbiBhbHRl cm5hdGl2ZSBwYXRoIHRoYXQgYnlwYXNzZXMgdGhlIGN5Y2xlLgorCitDaGFwdGVyIFggIE1hdGNo IFJlc3VsdCBQcm9jZXNzaW5nCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1gtMS4gTWF0Y2ggUmVz dWx0CisKK1JQUiB0cmFja3MgdGhlIGN1cnJlbnQgbWF0Y2ggcmVzdWx0IGFzIGEgc2luZ2xlIGVu dHJ5IGluIFdpbmRvd0FnZ1N0YXRlCit3aXRoIGZvdXIgZmllbGRzOiBycHJfbWF0Y2hfdmFsaWQs IHJwcl9tYXRjaF9tYXRjaGVkLCBycHJfbWF0Y2hfc3RhcnQsCithbmQgcnByX21hdGNoX2xlbmd0 aC4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIHRydWUsIHRoZSBlbnRyeSBkZXNjcmliZXMKK3Ro ZSBtYXRjaCByZXN1bHQgZm9yIHRoZSBwb3NpdGlvbiBhdCBycHJfbWF0Y2hfc3RhcnQ6IHJwcl9t YXRjaF9tYXRjaGVkCitpbmRpY2F0ZXMgc3VjY2VzcyBvciBmYWlsdXJlLCBhbmQgcnByX21hdGNo X2xlbmd0aCBnaXZlcyB0aGUgbnVtYmVyIG9mCityb3dzIGNvbnN1bWVkLiAgQSBtYXRjaCB3aXRo IHJwcl9tYXRjaF9sZW5ndGggMCByZXByZXNlbnRzIGFuIGVtcHR5IG1hdGNoCisocGF0dGVybiBt YXRjaGVkIGJ1dCBjb25zdW1lZCBubyByb3dzKS4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIGZh bHNlLAordGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBldmFsdWF0ZWQgeWV0IChSRl9OT1RfREVU RVJNSU5FRCkuCisKK0Egcm93J3Mgc3RhdHVzIGFnYWluc3QgdGhlIGN1cnJlbnQgbWF0Y2ggcmVz dWx0IGNhbiBiZSBvYnRhaW5lZCBieQorY2FsbGluZyBnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMo KS4KKworWC0yLiBBRlRFUiBNQVRDSCBTS0lQCisKK0RldGVybWluZXMgdGhlIHN0YXJ0aW5nIHBv aW50IGZvciB0aGUgbmV4dCBtYXRjaCBhdHRlbXB0IGFmdGVyIGEgc3VjY2Vzc2Z1bAorbWF0Y2g6 CisKKyAgU0tJUCBUTyBORVhUIFJPVzoKKyAgICBOZXcgbWF0Y2ggYXR0ZW1wdCBiZWdpbnMgZnJv bSB0aGUgcm93IGFmdGVyIHRoZSBtYXRjaCBzdGFydCByb3cuCisgICAgT3ZlcmxhcHBpbmcgbWF0 Y2hlcyBhcmUgcG9zc2libGUuCisKKyAgU0tJUCBQQVNUIExBU1QgUk9XOgorICAgIE5ldyBtYXRj aCBhdHRlbXB0IGJlZ2lucyBmcm9tIHRoZSByb3cgYWZ0ZXIgdGhlIG1hdGNoIGVuZCByb3cuCisg ICAgT25seSBub24tb3ZlcmxhcHBpbmcgbWF0Y2hlcyBhcmUgcG9zc2libGUuCisKK1gtMy4gSU5J VElBTCB2cyBTRUVLCisKKyAgU3RhbmRhcmQgZGVmaW5pdGlvbiAoc2VjdGlvbiA2LjEyKToKKyAg SU5JVElBTDogImlzIHVzZWQgdG8gbG9vayBmb3IgYSBtYXRjaCB3aG9zZSBmaXJzdCByb3cgaXMg Ui4iCisgIFNFRUs6ICAgICJpcyB1c2VkIHRvIHBlcm1pdCBhIHNlYXJjaCBmb3IgdGhlIGZpcnN0 IG1hdGNoIGFueXdoZXJlCisgICAgICAgICAgIGZyb20gUiB0aHJvdWdoIHRoZSBlbmQgb2YgdGhl IGZ1bGwgd2luZG93IGZyYW1lLiIKKyAgSW4gZWl0aGVyIGNhc2UsIGlmIHRoZXJlIGlzIG5vIG1h dGNoLCB0aGUgcmVkdWNlZCB3aW5kb3cgZnJhbWUgaXMgZW1wdHkuCisgIFRoZSBkZWZhdWx0IGlz IElOSVRJQUwuCisKKyAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbjoKKyAgU0VFSyBpcyBub3Qgc3Vw cG9ydGVkICh0aGUgcGFyc2VyIHJhaXNlcyBhbiBlcnJvcikuCisgIE9ubHkgSU5JVElBTCBpcyBz dXBwb3J0ZWQsIHNlYXJjaGluZyBvbmx5IGZvciBtYXRjaGVzIHN0YXJ0aW5nIGF0IGVhY2gKKyAg cm93IHBvc2l0aW9uIHBvcy4KKworWC00LiBCb3VuZGVkIEZyYW1lIEhhbmRsaW5nCisKKyAgV2hl biB0aGUgZnJhbWUgaXMgYm91bmRlZCAoZS5nLiwgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCA1CisgIEZPTExPV0lORyksIEV4ZWNSUFJQcm9jZXNzUm93IHJlY2VpdmVzIGhhc0xpbWl0ZWRG cmFtZT10cnVlIGFuZAorICBmcmFtZU9mZnNldCBpbmRpY2F0aW5nIHRoZSB1cHBlciBib3VuZC4g IEJlZm9yZSB0aGUgbWF0Y2ggcGhhc2UsCisgIGFueSBjb250ZXh0IHdob3NlIG1hdGNoIGhhcyBl eGNlZWRlZCB0aGUgZnJhbWUgYm91bmRhcnkKKyAgKGN1cnJlbnRQb3MgPj0gbWF0Y2hTdGFydFJv dyArIGZyYW1lT2Zmc2V0ICsgMSkgaXMgZmluYWxpemVkIGVhcmx5CisgIGJ5IGZvcmNpbmcgYSBt aXNtYXRjaC4gIFRoaXMgcHJldmVudHMgbWF0Y2hlcyBmcm9tIGV4dGVuZGluZyBiZXlvbmQKKyAg dGhlIHdpbmRvdyBmcmFtZS4gIFRoZSBzdW0gaXMgY2xhbXBlZCB0byBQR19JTlQ2NF9NQVggb24g b3ZlcmZsb3cuCisKKyAgTm90ZSB0aGF0IGJvdW5kZWQgZnJhbWVzIGFsc28gZGlzYWJsZSBjb250 ZXh0IGFic29ycHRpb24gYXQgdGhlCisgIHBsYW5uZXIgbGV2ZWwgKHNlZSBWSUlJLTMoYikpLCBz aW5jZSB0aGUgZnJhbWUgYm91bmRhcnkgYnJlYWtzIHRoZQorICBtb25vdG9uaWNpdHkgYXNzdW1w dGlvbiByZXF1aXJlZCBmb3IgY29ycmVjdCBhYnNvcnB0aW9uLgorCitDaGFwdGVyIFhJICBXb3Jr ZWQgRXhhbXBsZTogRnVsbCBFeGVjdXRpb24gVHJhY2UKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor WEktMS4gUXVlcnkKKworICBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBzdGFydF9wcmljZSwKKyAgICAgICAgIGxhc3Rf dmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UKKyAgRlJPTSBzdG9jaworICBXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBPUkRFUiBCWSB0ZGF0ZQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVG SU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgICAgICAgICAgQiBBUyBwcmljZSA8IFBS RVYocHJpY2UpCisgICk7CisKK1hJLTIuIERhdGEKKworICBSb3cjICAgIHRkYXRlICAgICAgIHBy aWNlCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgICAgICAgMjAyNC0wMS0wMSAg MTAwCisgIDEgICAgICAgMjAyNC0wMS0wMiAgMTEwCisgIDIgICAgICAgMjAyNC0wMS0wMyAgMTIw CisgIDMgICAgICAgMjAyNC0wMS0wNCAgMTE1CisgIDQgICAgICAgMjAyNC0wMS0wNSAgMTMwCisK K1hJLTMuIENvbXBpbGF0aW9uIFJlc3VsdAorCisgIFBBVFRFUk4gKEErIEIpIC0+IHVuY2hhbmdl ZCBhZnRlciBvcHRpbWl6YXRpb24KKworICBpZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5l eHQgIGp1bXAKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IDAgICBBKDApICAgMCAgICAgIDEgICAgSU5GICAxICAgICAtMSAgICAgQSsKKyAgIDEgICBCKDEp ICAgMCAgICAgIDEgICAgMSAgICAyICAgICAtMSAgICAgQgorICAgMiAgIEZJTiAgICAwICAgICAg MSAgICAxICAgIC0xICAgIC0xCisKKyAgREVGSU5FOiBBIC0+ICJwcmljZSA+IFBSRVYocHJpY2Up IiwgQiAtPiAicHJpY2UgPCBQUkVWKHByaWNlKSIKKyAgaXNBYnNvcmJhYmxlID0gdHJ1ZSAoQSsg aXMgYSBzaW1wbGUgdW5ib3VuZGVkIFZBUikKKworWEktNC4gRXhlY3V0aW9uIFRyYWNlCisKKy0t LSBSb3cgMCAocHJpY2U9MTAwKSAtLS0KKworICB1cGRhdGVfcmVkdWNlZF9mcmFtZSgwKSBjYWxs ZWQuCisKKyAgQ29udGV4dCBDMCBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTApLgorICBJbml0aWFs IGFkdmFuY2U6IGVsZW1JZHg9MChBKSAtPiBWQVIsIHNvIHN0YXRlIGlzIGFkZGVkLgorICBDMC5z dGF0ZXMgPSBbe2VsZW1JZHg9MCwgY291bnRzPVswXX1dCisKKyAgbmZhX2V2YWx1YXRlX3Jvdygw KToKKyAgICBBOiBwcmljZSgxMDApID4gUFJFVihwcmljZSkgLT4gbm8gUFJFViAtPiBmYWxzZQor ICAgIEI6IHByaWNlKDEwMCkgPCBQUkVWKHByaWNlKSAtPiBubyBQUkVWIC0+IGZhbHNlCisgICAg dmFyTWF0Y2hlZCA9IFtmYWxzZSwgZmFsc2VdCisKKyAgRXhlY1JQUlByb2Nlc3NSb3coMCk6Cisg ICAgUGhhc2UgMSAoTWF0Y2gpOiBBKDApIHN0YXRlIHZzIHZhck1hdGNoZWRbMF09ZmFsc2UgLT4g c3RhdGUgcmVtb3ZlZAorICAgIEMwLnN0YXRlcyA9IFtdIChlbXB0eSkKKworICAgIFBoYXNlIDIg KEFic29yYik6IHNraXBwZWQgKG5vIHN0YXRlcykKKyAgICBQaGFzZSAzIChBZHZhbmNlKTogc2tp cHBlZCAobm8gc3RhdGVzKQorCisgIEMwLnN0YXRlcyBpcyBlbXB0eSwgc28gdGhlIGxvb3AgdGVy bWluYXRlcy4KKyAgbWF0Y2hFbmRSb3cgPCBtYXRjaFN0YXJ0Um93IC0+IHVubWF0Y2hlZC4KKwor LS0tIFJvdyAxIChwcmljZT0xMTApIC0tLQorCisgIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKDEpIGNh bGxlZC4KKworICBDb250ZXh0IEMxIGNyZWF0ZWQgKG1hdGNoU3RhcnRSb3c9MSkuCisgIEluaXRp YWwgYWR2YW5jZTogQzEuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMF19XQorCisgIG5m YV9ldmFsdWF0ZV9yb3coMSk6CisgICAgQTogMTEwID4gUFJFVigxMDApIC0+IHRydWUKKyAgICBC OiAxMTAgPCBQUkVWKDEwMCkgLT4gZmFsc2UKKyAgICB2YXJNYXRjaGVkID0gW3RydWUsIGZhbHNl XQorCisgIEV4ZWNSUFJQcm9jZXNzUm93KDEpOgorICAgIFBoYXNlIDEgKE1hdGNoKTogQSgwKSBt YXRjaCBzdWNjZWVkcyAtPiBjb3VudHNbMF0rKyAtPiBjb3VudHM9WzFdCisgICAgQzEuc3RhdGVz ID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMV19XQorCisgICAgUGhhc2UgMyAoQWR2YW5jZSk6Cisg ICAgICBTdGF0ZSB7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfTogQSsgKG1pbj0xLCBjb3VudD0xLCBt YXg9SU5GKQorICAgICAgICBjb3VudCA+PSBtaW4sIHNvOgorICAgICAgICBHcmVlZHkgLT4gbG9v cCBmaXJzdDoga2VlcCB7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfQorICAgICAgICAgICAgICAgICAg ZXhpdDogcmVzZXQgY291bnRzWzBdPTAsIG5leHQoPTEpIC0+IHtlbGVtSWR4PTEsCisgICAgICAg ICAgICAgICAgICAgICAgICBjb3VudHM9WzBdfQorICAgIEMxLnN0YXRlcyA9IFt7ZWxlbUlkeD0w LCBjb3VudHM9WzFdfSwge2VsZW1JZHg9MSwgY291bnRzPVswXX1dCisKKy0tLSBSb3cgMiAocHJp Y2U9MTIwKSAtLS0KKworICBDb250ZXh0IEMyIGNyZWF0ZWQgKG1hdGNoU3RhcnRSb3c9MikuCisg IEluaXRpYWwgYWR2YW5jZTogQzIuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMF19XQor CisgIG5mYV9ldmFsdWF0ZV9yb3coMik6CisgICAgQTogMTIwID4gUFJFVigxMTApIC0+IHRydWUK KyAgICBCOiAxMjAgPCBQUkVWKDExMCkgLT4gZmFsc2UKKyAgICB2YXJNYXRjaGVkID0gW3RydWUs IGZhbHNlXQorCisgIEMxIEV4ZWNSUFJQcm9jZXNzUm93KDIpOgorICAgIFBoYXNlIDEgKE1hdGNo KToKKyAgICAgIHtlbGVtSWR4PTAsIGNvdW50cz1bMV19OiBBIG1hdGNoZXMgLT4gY291bnRzPVsy XQorICAgICAge2VsZW1JZHg9MSwgY291bnRzPVswXX06IEIgZG9lcyBub3QgbWF0Y2ggLT4gcmVt b3ZlZAorICAgIEMxLnN0YXRlcyA9IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfV0KKworICBDMiBF eGVjUlBSUHJvY2Vzc1JvdygyKToKKyAgICBQaGFzZSAxIChNYXRjaCk6CisgICAgICB7ZWxlbUlk eD0wLCBjb3VudHM9WzBdfTogQSBtYXRjaGVzIC0+IGNvdW50cz1bMV0KKyAgICBDMi5zdGF0ZXMg PSBbe2VsZW1JZHg9MCwgY291bnRzPVsxXX1dCisKKyAgICBQaGFzZSAyIChBYnNvcmIpOgorICAg ICAgRG9lcyBDMSAoc3RhcnRlZCBlYXJsaWVyKSBjb3ZlciBDMj8KKyAgICAgICAgQzE6IHtlbGVt SWR4PTAsIGNvdW50cz1bMl19LCBDMjoge2VsZW1JZHg9MCwgY291bnRzPVsxXX0KKyAgICAgICAg U2FtZSBlbGVtSWR4LCBDMS5jb3VudHMgPj0gQzIuY291bnRzIC0+IGNvdmVyZWQKKyAgICAgIEMy IGFic29yYmVkLiAtPiByZW1vdmVkLgorCisgICAgUGhhc2UgMyAoQWR2YW5jZSk6CisgICAgICB7 ZWxlbUlkeD0wLCBjb3VudHM9WzJdfTogR3JlZWR5IC0+IGxvb3AgKyBleGl0CisgICAgICAgIExv b3A6IHtlbGVtSWR4PTAsIGNvdW50cz1bMl19CisgICAgICAgIEV4aXQ6IHJlc2V0IGNvdW50c1sw XT0wLCBuZXh0KD0xKSAtPiB7ZWxlbUlkeD0xLCBjb3VudHM9WzBdfQorICAgIEMxLnN0YXRlcyA9 IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfSwge2VsZW1JZHg9MSwgY291bnRzPVswXX1dCisKKyAg Q29udGV4dCBDMyBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTMpLgorCistLS0gUm93IDMgKHByaWNl PTExNSkgLS0tCisKKyAgbmZhX2V2YWx1YXRlX3JvdygzKToKKyAgICBBOiAxMTUgPiBQUkVWKDEy MCkgLT4gZmFsc2UKKyAgICBCOiAxMTUgPCBQUkVWKDEyMCkgLT4gdHJ1ZQorICAgIHZhck1hdGNo ZWQgPSBbZmFsc2UsIHRydWVdCisKKyAgRXhlY1JQUlByb2Nlc3NSb3coMyk6CisgICAgUGhhc2Ug MSAoTWF0Y2gpOgorICAgICAge2VsZW1JZHg9MCwgY291bnRzPVsyXX06IEEgZG9lcyBub3QgbWF0 Y2ggLT4gcmVtb3ZlZAorICAgICAge2VsZW1JZHg9MSwgY291bnRzPVswXX06IEIgbWF0Y2hlcyAt PiBjb3VudHM9WzFdCisgICAgQzEuc3RhdGVzID0gW3tlbGVtSWR4PTEsIGNvdW50cz1bMV19XQor CisgICAgUGhhc2UgMyAoQWR2YW5jZSk6CisgICAgICB7ZWxlbUlkeD0xLCBjb3VudHM9WzFdfTog QiAobWluPTEsIG1heD0xKQorICAgICAgICBjb3VudCgxKSA+PSBtYXgoMSkgLT4gdW5jb25kaXRp b25hbCBleGl0CisgICAgICAgIFJlc2V0IGNvdW50c1swXT0wLCBuZXh0ID0gMiAoRklOKQorICAg ICAgRklOIHJlYWNoZWQgLT4gbWF0Y2hFbmRSb3cgPSAzLCBtYXRjaGVkU3RhdGUgcmVjb3JkZWQu CisgICAgICBFYXJseSB0ZXJtaW5hdGlvbjogbm8gcmVtYWluaW5nIHN0YXRlcywgc28gY29tcGxl dGVkIGltbWVkaWF0ZWx5LgorICAgIEMxLnN0YXRlcyA9IFtdIChlbXB0eSBhZnRlciByZWFjaGlu ZyBGSU4pCisKKyAgQzEuc3RhdGVzIGlzIGVtcHR5IGFuZCBtYXRjaEVuZFJvdz0zID49IG1hdGNo U3RhcnRSb3c9MSAtPiBtYXRjaCBzdWNjZWVkcy4KKworICBycHJfbWF0Y2hfc3RhcnQgPSAxLCBy cHJfbWF0Y2hfbGVuZ3RoID0gMworCistLS0gUm93IDQgKHByaWNlPTEzMCkgLS0tCisKKyAgdXBk YXRlX3JlZHVjZWRfZnJhbWUoNCkgY2FsbGVkLgorICBDMyB3YXMgYWxyZWFkeSBjcmVhdGVkIGJ1 dCBtYXRjaFN0YXJ0Um93PTMsIHNvIGl0IGlzIG5vdCBhcHBsaWNhYmxlLgorICBOZXcgY29udGV4 dCBDNCBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTQpLgorCisgIG5mYV9ldmFsdWF0ZV9yb3coNCk6 CisgICAgQTogMTMwID4gUFJFVigxMTUpIC0+IHRydWUKKyAgICBCOiAxMzAgPCBQUkVWKDExNSkg LT4gZmFsc2UKKworICAuLi4gTm8gc3Vic2VxdWVudCByb3dzLCBzbyBFeGVjUlBSRmluYWxpemVB bGxDb250ZXh0cygpIGlzIGNhbGxlZC4KKyAgTWF0Y2ggaW5jb21wbGV0ZSAtPiB1bm1hdGNoZWQu CisKK1hJLTUuIEZpbmFsIFJlc3VsdAorCisgIFJvdyAwOiB1bm1hdGNoZWQgICAgIC0+IGZyYW1l ID0gdGhlIHJvdyBpdHNlbGYKKyAgUm93IDE6IG1hdGNoIGhlYWQgICAgLT4gZnJhbWUgPSByb3dz IDEgdGhyb3VnaCAzCisgIFJvdyAyOiBpbnNpZGUgbWF0Y2ggIC0+IHNraXBwZWQKKyAgUm93IDM6 IGluc2lkZSBtYXRjaCAgLT4gc2tpcHBlZAorICBSb3cgNDogdW5tYXRjaGVkICAgICAtPiBmcmFt ZSA9IHRoZSByb3cgaXRzZWxmCisKK0NoYXB0ZXIgWElJICBTdW1tYXJ5IG9mIEtleSBEZXNpZ24g RGVjaXNpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1hJSS0xLiBGbGF0IEFycmF5IHZzIFRy ZWUtQmFzZWQgTkZBCisKKyAgQ2hvaWNlOiBGbGF0IGFycmF5IChSUFJQYXR0ZXJuRWxlbWVudFtd KQorCisgIFJhdGlvbmFsZToKKyAgLSBDYWNoZS1mcmllbmRseTogMTYtYnl0ZSBmaXhlZCBzaXpl LCBjb250aWd1b3VzIG1lbW9yeQorICAtIEluZGV4LWJhc2VkIHJlZmVyZW5jZXM6IDItYnl0ZSBp bmRpY2VzIGluc3RlYWQgb2YgcG9pbnRlcnMKKyAgLSBFYXN5IHRvIHNlcmlhbGl6ZTogY2FuIHVz ZSBtZW1jcHkgd2hlbiBwYXNzaW5nIHRvIHBsYW4gbm9kZXMKKworWElJLTIuIEZvcndhcmQtb25s eSBFeGVjdXRpb24gdnMgQmFja3RyYWNraW5nCisKKyAgQ2hvaWNlOiBGb3J3YXJkLW9ubHkgKHN0 YXRlIHNldCB0cmFja2luZykKKworICBSYXRpb25hbGU6CisgIC0gQmFja3RyYWNraW5nIHRha2Vz IGV4cG9uZW50aWFsIHRpbWUgaW4gdGhlIHdvcnN0IGNhc2UKKyAgLSBORkEgc2ltdWxhdGlvbiBn dWFyYW50ZWVzIHBvbHlub21pYWwgdGltZQorICAtIERGUyBvcmRlciBuYXR1cmFsbHkgZ3VhcmFu dGVlcyBwcmVmZXJtZW50LgorICAgIEdyZWVkeS9yZWx1Y3RhbnQgcGVyIHF1YW50aWZpZXIgcmVx dWlyZXMgb25seSByZXZlcnNpbmcgdGhlIERGUyBvcmRlcgorICAtIFdpbmRvdyBmdW5jdGlvbnMg cmVjZWl2ZSBzb3J0ZWQgcm93cyBzZXF1ZW50aWFsbHkuCisgICAgRm9yd2FyZC1vbmx5IGZpdHMg ZGlyZWN0bHkgaW50byB0aGlzIHBpcGVsaW5lLAorICAgIHdoZXJlYXMgYmFja3RyYWNraW5nIHJl cXVpcmVzIHJlLWZldGNoaW5nIHByZXZpb3VzIHJvd3MKKyAgLSBERUZJTkUgY29uZGl0aW9ucyBh cmUgU1FMIGV4cHJlc3Npb25zIChQUkVWLCBSVU5OSU5HIGFnZ3JlZ2F0ZXMsIGV0Yy4pCisgICAg d2l0aCBoaWdoIHJlLWV2YWx1YXRpb24gY29zdC4gRm9yd2FyZC1vbmx5IHJlcXVpcmVzIG9ubHkg b25lIGV2YWx1YXRpb24KKyAgICBwZXIgcm93CisKK1hJSS0zLiBQZXItQ29udGV4dCBNYW5hZ2Vt ZW50CisKKyAgQ2hvaWNlOiBJbmRlcGVuZGVudCBjb250ZXh0IHBlciBzdGFydCByb3cKKworICBS YXRpb25hbGU6CisgIC0gU3VwcG9ydHMgb3ZlcmxhcHBpbmcgbWF0Y2hlcyB1bmRlciBTS0lQIFRP IE5FWFQgUk9XCisgIC0gRGV0ZXJtaW5lcyB0aGUgZnJhbWUgZm9yIGVhY2ggcm93IGluZGVwZW5k ZW50bHkKKyAgLSBBYnNvcnB0aW9uIG9wdGltaXphdGlvbiBjYW4gZWxpbWluYXRlIHJlZHVuZGFu dCBjb250ZXh0cyBpbiBPKG4pCisKK1hJSS00LiBNZW1vcnkgUG9vbCBNYW5hZ2VtZW50CisKKyAg Q2hvaWNlOiBDdXN0b20gZnJlZSBsaXN0CisKKyAgUmF0aW9uYWxlOgorICAtIE5GQSBzdGF0ZXMg YXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCBpbiBsYXJnZSBudW1iZXJzIHBlciByb3cKKyAgLSBB dm9pZHMgcGFsbG9jL3BmcmVlIG92ZXJoZWFkCisgIC0gU3RhdGUgc2l6ZSBpcyB2YXJpYWJsZSAo Y291bnRzW10gYXJyYXkpLCBidXQgd2l0aGluIGEgc2luZ2xlIHF1ZXJ5CisgICAgbWF4RGVwdGgg aXMgZml4ZWQsIHNvIGFsbCBzdGF0ZXMgaGF2ZSB0aGUgc2FtZSBzaXplCisKK1hJSS01LiBFeGVj dXRpb24gT3B0aW1pemF0aW9uIFN1bW1hcnkKKworICBUaGUgZm9sbG93aW5nIG9wdGltaXphdGlv bnMgbWFrZSB0aGUgTkZBIHNpbXVsYXRpb24gcHJhY3RpY2FsLgorCisgIC0tIENvbXBpbGUtdGlt ZSAtLQorCisgICgxKSBBU1QgT3B0aW1pemF0aW9uIChJVi0zKQorCisgICAgU2ltcGxpZmllcyB0 aGUgQVNUIGJlZm9yZSBjb252ZXJ0aW5nIHRoZSBwYXR0ZXJuIHRvIGFuIE5GQS4KKyAgICBSZWR1 Y2VzIHRoZSBudW1iZXIgb2YgTkZBIGVsZW1lbnRzIHRocm91Z2ggY29uc2VjdXRpdmUgdmFyaWFi bGUKKyAgICBtZXJnaW5nIChBIEEgLT4gQXsyfSksIFNFUSBmbGF0dGVuaW5nLCBxdWFudGlmaWVy IG11bHRpcGxpY2F0aW9uLAorICAgIGFuZCBvdGhlciB0cmFuc2Zvcm1hdGlvbnMuCisKKyAgICBT aWduaWZpY2FuY2U6IFJlZHVjaW5nIHRoZSBlbGVtZW50IGNvdW50IGRpcmVjdGx5IHNocmlua3Mg dGhlIHN0YXRlCisgICAgc3BhY2UsIGRlY3JlYXNpbmcgdGhlIGNvc3Qgb2YgYWxsIHN1YnNlcXVl bnQgcnVudGltZSBwaGFzZXMgKG1hdGNoLAorICAgIGFic29yYiwgYWR2YW5jZSkuCisKKyAgLS0g UnVudGltZTogYWR2YW5jZSBwaGFzZSAtLQorCisgICgyKSBHcm91cCBTa2lwIChJWC00KGIpKQor CisgICAgQXQgdGhlIEJFR0lOIG9mIGEgZ3JvdXAgd2l0aCBtaW49MCwgdXNlcyBqdW1wIHRvIHNr aXAgdGhlIGVudGlyZQorICAgIGdyb3VwLiBNb3ZlcyBkaXJlY3RseSB0byB0aGUgZmlyc3QgZWxl bWVudCBvdXRzaWRlIHRoZSBncm91cCB3aXRob3V0CisgICAgZXhwbG9yaW5nIHRoZSBncm91cCBi b2R5LiBHcmVlZHkgZW50ZXJzIHRoZW4gc2tpcHM7IFJlbHVjdGFudCBza2lwcworICAgIHRoZW4g ZW50ZXJzLgorCisgICAgU2lnbmlmaWNhbmNlOiBGb3Igb3B0aW9uYWwgZ3JvdXBzIChtaW49MCks IGltbWVkaWF0ZWx5IGdlbmVyYXRlcworICAgIGEgc2tpcCBwYXRoIHdpdGhvdXQgZXhwbG9yaW5n IHRoZSBib2R5LCBhdm9pZGluZyB1bm5lY2Vzc2FyeSBERlMKKyAgICBleHBhbnNpb24uCisKKyAg KDMpIFN0YXRlIERlZHVwbGljYXRpb24gKElYLTUpCisKKyAgICBEdXJpbmcgYWR2YW5jZSwgREZT IG1heSBnZW5lcmF0ZSBzdGF0ZXMgd2l0aCB0aGUgc2FtZSAoZWxlbUlkeCwKKyAgICBjb3VudHMp IGNvbWJpbmF0aW9uIHRocm91Z2ggbXVsdGlwbGUgcGF0aHMuIEFkZGl0aW9uYWxseSwgZm9yCisg ICAgZ3JvdXAgYWJzb3JwdGlvbiwgbmZhX21hdGNoIHBlcmZvcm1zIGlubGluZSBhZHZhbmNlIGZy b20gYm91bmRlZAorICAgIFZBUnMgKGNvdW50ID49IG1heCkgd2l0aGluIHRoZSBhYnNvcmJhYmxl IHJlZ2lvbiAoQUJTT1JCQUJMRV9CUkFOQ0gpCisgICAgdGhyb3VnaCBFTkQgY2hhaW5zIHRvIHJl YWNoIHRoZSBqdWRnbWVudCBwb2ludCAoQUJTT1JCQUJMRSBFTkQpLgorICAgIFRoaXMgcHJvY2Vz cyBjYW4gYWxzbyBwcm9kdWNlIGR1cGxpY2F0ZSBzdGF0ZXMgcmVhY2hpbmcgdGhlIHNhbWUgRU5E LgorICAgIG5mYV9hZGRfc3RhdGVfdW5pcXVlKCkgYmxvY2tzIGR1cGxpY2F0ZSBhZGRpdGlvbiBv ZiBpZGVudGljYWwgc3RhdGVzCisgICAgaW4gYm90aCBjYXNlcy4KKworICAgIFNpZ25pZmljYW5j ZTogUHJldmVudHMgZXhwb25lbnRpYWwgZ3Jvd3RoIG9mIHRoZSBzdGF0ZSBjb3VudCBpbgorICAg IEFMVCBicmFuY2hlcyBhbmQgcXVhbnRpZmllciBleHBhbnNpb24uIFNpbmNlIERGUyBvcmRlciBj YXVzZXMgdGhlCisgICAgcHJlZmVycmVkIGJyYW5jaCdzIHN0YXRlIHRvIGJlIHJlZ2lzdGVyZWQg Zmlyc3QsIGlkZW50aWNhbCBzdGF0ZXMKKyAgICBmcm9tIGxvd2VyLXByaW9yaXR5IGJyYW5jaGVz IGFyZSBhdXRvbWF0aWNhbGx5IGRpc2NhcmRlZCwgdGhlcmVieQorICAgIGFsc28gZ3VhcmFudGVl aW5nIHByZWZlcm1lbnQuCisKKyAgKDQpIEN5Y2xlIERldGVjdGlvbiBhbmQgRmFzdC1Gb3J3YXJk IChJWC02LCBJWC00KGMpKQorCisgICAgV2hlbiBhIG51bGxhYmxlIGdyb3VwIGJvZHkgKGUuZy4s IEE/KSByZXBlYXRzIGVtcHR5IG1hdGNoZXMsCisgICAgdGhlIEVORCAtPiBCRUdJTiBsb29wLWJh Y2sgY2FuIGNvbnRpbnVlIGluZGVmaW5pdGVseS4KKworICAgIFR3byBtZWNoYW5pc21zIHJlc29s dmUgdGhpczoKKyAgICAtIEEgdmlzaXRlZCBiaXRtYXAgKG5mYVZpc2l0ZWRFbGVtcykgYmxvY2tz IHJldmlzaXRhdGlvbiBvZiB0aGUKKyAgICAgIHNhbWUgZWxlbWVudCwgcHJldmVudGluZyBpbmZp bml0ZSBsb29wcyAoc2FmZXR5KQorICAgIC0gQXQgYW4gRU5EIHdpdGggdGhlIFJQUl9FTEVNX0VN UFRZX0xPT1AgZmxhZyBzZXQsIHdoZW4KKyAgICAgIGNvdW50IDwgbWluLCB0aGUgcmVtYWluaW5n IHJlcXVpcmVkIGl0ZXJhdGlvbnMgYXJlIHRyZWF0ZWQgYXMKKyAgICAgIGVtcHR5IG1hdGNoZXMg YW5kIGEgZmFzdC1mb3J3YXJkIGV4aXQgcGF0aCBvdXQgb2YgdGhlIGdyb3VwIGlzCisgICAgICBh ZGRlZCAoY29ycmVjdG5lc3MpCisKKyAgICBTaWduaWZpY2FuY2U6IEN5Y2xlIGRldGVjdGlvbiBn dWFyYW50ZWVzIHRlcm1pbmF0aW9uLCBhbmQKKyAgICBmYXN0LWZvcndhcmQgZ3VhcmFudGVlcyB0 aGF0IHRoZSBtaW4gY29uZGl0aW9uIGlzIHNhdGlzZmllZC4KKyAgICBXaXRob3V0IHRoZXNlLCBw YXR0ZXJucyBjb250YWluaW5nIG51bGxhYmxlIGdyb3VwcyB3b3VsZCBmYWxsCisgICAgaW50byBp bmZpbml0ZSBsb29wcyBvciBmYWlsIHRvIG1hdGNoLgorCisgICg1KSBNYXRjaCBQcnVuaW5nIChJ WC00KGUpKQorCisgICAgV2hlbiBhIHN0YXRlIHJlYWNoZXMgRklOIGR1cmluZyBhZHZhbmNlLCBh bGwgcmVtYWluaW5nIHVucHJvY2Vzc2VkCisgICAgc3RhdGVzIG9mIHRoYXQgY29udGV4dCBhcmUg cmVtb3ZlZC4gQmVjYXVzZSBvZiBERlMgb3JkZXIsIHRoZSBwYXRoCisgICAgdGhhdCByZWFjaGVz IEZJTiBmaXJzdCBoYXMgdGhlIGhpZ2hlc3QgcHJlZmVybWVudCwgc28gdGhlIHJlbWFpbmluZwor ICAgIHBhdGhzIGFyZSBpbmZlcmlvci4KKworICAgIFNpZ25pZmljYW5jZTogT25jZSB0aGUgYmVz dCBtYXRjaCBpcyBkZXRlcm1pbmVkLCBleHBsb3JhdGlvbiBvZgorICAgIGluZmVyaW9yIHBhdGhz IGlzIGltbWVkaWF0ZWx5IHRlcm1pbmF0ZWQuIFRoaXMgbWVjaGFuaXNtIGFjaGlldmVzCisgICAg Ym90aCBwcmVmZXJtZW50IGd1YXJhbnRlZXMgYW5kIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4K KworICAtLSBSdW50aW1lOiBpbnRlci1jb250ZXh0IC0tCisKKyAgKDYpIEVhcmx5IFRlcm1pbmF0 aW9uIChTS0lQIFBBU1QgTEFTVCBST1cpCisKKyAgICBJbiBTS0lQIFBBU1QgTEFTVCBST1cgbW9k ZSwgd2hlbiBhIG1hdGNoIGlzIGZvdW5kLCBzdWJzZXF1ZW50CisgICAgY29udGV4dHMgd2hvc2Ug c3RhcnQgcm93cyBmYWxsIHdpdGhpbiB0aGUgbWF0Y2ggcmFuZ2UgYXJlIHBydW5lZAorICAgIGlt bWVkaWF0ZWx5IHdpdGhvdXQgZnVydGhlciBwcm9jZXNzaW5nLgorICAgIEluIFNLSVAgVE8gTkVY VCBST1cgbW9kZSwgb3ZlcmxhcHBpbmcgY29udGV4dHMgYXJlIHByZXNlcnZlZAorICAgIGJlY2F1 c2UgZWFjaCByb3cgcmVxdWlyZXMgaXRzIG93biBpbmRlcGVuZGVudCBtYXRjaC4KKworICAgIFNp Z25pZmljYW5jZTogUHJ1bmVzIHN1YnNlcXVlbnQgY29udGV4dHMgd2hvc2Ugc3RhcnQgcm93cyBv dmVybGFwCisgICAgd2l0aCBhIHByaW9yIG1hdGNoIHJhbmdlLCBhdm9pZGluZyB1bm5lY2Vzc2Fy eSBwcm9jZXNzaW5nLgorCisgICg3KSBDb250ZXh0IEFic29ycHRpb24gKENoYXB0ZXIgVklJSSkK KworICAgIElmIGFuIGluZGVwZW5kZW50IGNvbnRleHQgaXMgY3JlYXRlZCBmb3IgZWFjaCByb3cs IE8obl4yKSBzdGF0ZXMKKyAgICBhY2N1bXVsYXRlLiBCeSBleHBsb2l0aW5nIHRoZSBtb25vdG9u aWNpdHkgdGhhdCBhbiBlYXJsaWVyLXN0YXJ0ZWQKKyAgICBjb250ZXh0IHN1YnN1bWVzIHRoZSBz dGF0ZXMgb2YgYSBsYXRlci1zdGFydGVkIGNvbnRleHQsIHJlZHVuZGFudAorICAgIGNvbnRleHRz IGFyZSBlbGltaW5hdGVkIGVhcmx5LgorCisgICAgQWJzb3JiYWJpbGl0eSBpcyBkZXRlcm1pbmVk IHBlci1lbGVtZW50OyBjb21wYXJpc29uIGlzIHBlcmZvcm1lZAorICAgIG9ubHkgYXQgZWxlbWVu dHMgd2l0aCB0aGUgUlBSX0VMRU1fQUJTT1JCQUJMRSBmbGFnIChzZWUgSVYtNSkuCisKKyAgICBT aWduaWZpY2FuY2U6IEtlZXBzIHRoZSBudW1iZXIgb2YgYWN0aXZlIGNvbnRleHRzIGF0IGEgY29u c3RhbnQKKyAgICBsZXZlbCwgYWNoaWV2aW5nIE8obl4yKSAtPiBPKG4pIHRpbWUgY29tcGxleGl0 eS4gV2l0aG91dCB0aGlzLAorICAgIHBlcmZvcm1hbmNlIGRlZ3JhZGVzIHNoYXJwbHkgb24gbG9u ZyBwYXJ0aXRpb25zLgorCitBcHBlbmRpeCBBLiBLZXkgRnVuY3Rpb24gSW5kZXgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKworICBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICBGaWxlICAgICAg ICAgICAgICAgICAgUm9sZQorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICB0cmFuc2Zvcm1SUFIgICAg ICAgICAgICAgICAgICBwYXJzZV9ycHIuYyAgICAgICAgICAgUGFyc2VyIGVudHJ5IHBvaW50Cisg IHRyYW5zZm9ybURlZmluZUNsYXVzZSAgICAgICAgIHBhcnNlX3Jwci5jICAgICAgICAgICBERUZJ TkUgdHJhbnNmb3JtYXRpb24KKyAgY29sbGVjdFBhdHRlcm5WYXJpYWJsZXMgICAgICAgcnByLmMg ICAgICAgICAgICAgICAgIFZhcmlhYmxlIGNvbGxlY3Rpb24KKyAgYnVpbGREZWZpbmVWYXJpYWJs ZUxpc3QgICAgICAgcnByLmMgICAgICAgICAgICAgICAgIERFRklORSB2YXJpYWJsZSBsaXN0Cisg IGJ1aWxkUlBSUGF0dGVybiAgICAgICAgICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBORkEg Y29tcGlsYXRpb24gbWFpbgorICBvcHRpbWl6ZVJQUlBhdHRlcm4gICAgICAgICAgICBycHIuYyAg ICAgICAgICAgICAgICAgQVNUIG9wdGltaXphdGlvbgorICBmaWxsUlBSUGF0dGVybiAgICAgICAg ICAgICAgICBycHIuYyAgICAgICAgICAgICAgICAgTkZBIGVsZW1lbnQgZ2VuZXJhdGlvbgorICBm aW5hbGl6ZVJQUlBhdHRlcm4gICAgICAgICAgICBycHIuYyAgICAgICAgICAgICAgICAgRmluYWxp emF0aW9uCisgIGNvbXB1dGVBYnNvcmJhYmlsaXR5ICAgICAgICAgIHJwci5jICAgICAgICAgICAg ICAgICBBYnNvcnB0aW9uIGFuYWx5c2lzCisgIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lICAgICAgICAg IG5vZGVXaW5kb3dBZ2cuYyAgICAgICBFeGVjdXRpb24gbWFpbiBsb29wCisgIG5mYV9ldmFsdWF0 ZV9yb3cgICAgICAgICAgICAgIG5vZGVXaW5kb3dBZ2cuYyAgICAgICBERUZJTkUgZXZhbHVhdGlv bgorICBFeGVjUlBSU3RhcnRDb250ZXh0ICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAg Q29udGV4dCBjcmVhdGlvbgorICBFeGVjUlBSUHJvY2Vzc1JvdyAgICAgICAgICAgICBleGVjUlBS LmMgICAgICAgICAgICAgMy1waGFzZSBwcm9jZXNzaW5nCisgIG5mYV9tYXRjaCAgICAgICAgICAg ICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQaGFzZSAxCisgIG5mYV9hYnNvcmJfY29u dGV4dHMgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQaGFzZSAyCisgIG5mYV9hZHZh bmNlICAgICAgICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQaGFzZSAzCisgIG5m YV9hZHZhbmNlX3N0YXRlICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQZXItc3Rh dGUgYnJhbmNoaW5nCisgIG5mYV9yb3V0ZV90b19lbGVtICAgICAgICAgICAgIGV4ZWNSUFIuYyAg ICAgICAgICAgICBFbGVtZW50IHJvdXRpbmcKKyAgbmZhX2FkdmFuY2VfYWx0ICAgICAgICAgICAg ICAgZXhlY1JQUi5jICAgICAgICAgICAgIEFMVCBoYW5kbGluZworICBuZmFfYWR2YW5jZV9iZWdp biAgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgQkVHSU4gaGFuZGxpbmcKKyAgbmZh X2FkdmFuY2VfZW5kICAgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIEVORCBoYW5k bGluZworICBuZmFfYWR2YW5jZV92YXIgICAgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAg ICAgVkFSIGhhbmRsaW5nCisgIG5mYV9hZGRfc3RhdGVfdW5pcXVlICAgICAgICAgIGV4ZWNSUFIu YyAgICAgICAgICAgICBEZWR1cGxpY2F0aW9uCisgIG5mYV9zdGF0ZXNfY292ZXJlZCAgICAgICAg ICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBBYnNvcnB0aW9uIGNoZWNrCisgIG5mYV9yZWV2YWx1 YXRlX2RlcGVuZGVudF92YXJzIGV4ZWNSUFIuYyAgICAgICAgICAgICBQZXItY29udGV4dCByZS1l dmFsCisgIEV4ZWNSUFJHZXRIZWFkQ29udGV4dCAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAg ICBDb250ZXh0IGxvb2t1cAorICBFeGVjUlBSRnJlZUNvbnRleHQgICAgICAgICAgICBleGVjUlBS LmMgICAgICAgICAgICAgQ29udGV4dCBkZWFsbG9jYXRpb24KKyAgRXhlY1JQUkNsZWFudXBEZWFk Q29udGV4dHMgICAgZXhlY1JQUi5jICAgICAgICAgICAgIERlYWQgY29udGV4dCBjbGVhbnVwCisg IEV4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQYXJ0 aXRpb24tZW5kIGZpbmFsaXplCisgIEV4ZWNSUFJSZWNvcmRDb250ZXh0U3VjY2VzcyAgIGV4ZWNS UFIuYyAgICAgICAgICAgICBTdGF0czogbWF0Y2ggc3VjY2VzcworICBFeGVjUlBSUmVjb3JkQ29u dGV4dEZhaWx1cmUgICBleGVjUlBSLmMgICAgICAgICAgICAgU3RhdHM6IG1hdGNoIGZhaWx1cmUK KyAgY29tcHV0ZV9uYXZfb2Zmc2V0cyAgICAgICAgICAgY3JlYXRlcGxhbi5jICAgICAgICAgIFRy aW0gb2Zmc2V0IGNvbXB1dGF0aW9uCisKK0FwcGVuZGl4IEIuIERhdGEgU3RydWN0dXJlIFJlbGF0 aW9uc2hpcCBEaWFncmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgUGFyc2VyIExheWVyCisg IC0tLS0tLS0tCisgIFJQQ29tbW9uU3ludGF4CisgICAgfC0tLSBycFNraXBUbzogUlBTa2lwVG8K KyAgICB8LS0tIGluaXRpYWw6IGJvb2wKKyAgICArLS0tIHJwUGF0dGVybjogUlBSUGF0dGVybk5v ZGUqICh0cmVlKQorICAgICAgICAgfC0tLSBub2RlVHlwZTogVkFSIHwgU0VRIHwgQUxUIHwgR1JP VVAKKyAgICAgICAgIHwtLS0gbWluLCBtYXg6IHF1YW50aWZpZXIKKyAgICAgICAgIHwtLS0gdmFy TmFtZTogdmFyaWFibGUgbmFtZSAoVkFSIG9ubHkpCisgICAgICAgICArLS0tIGNoaWxkcmVuOiBM aXN0KiAoU0VRL0FMVC9HUk9VUCBvbmx5KQorCisgIFBsYW5uZXIgTGF5ZXIKKyAgLS0tLS0tLS0t LQorICBXaW5kb3dBZ2cgKHBsYW4gbm9kZSkKKyAgICB8LS0tIHJwU2tpcFRvOiBSUFNraXBUbwor ICAgIHwtLS0gZGVmaW5lQ2xhdXNlOiBMaXN0PFRhcmdldEVudHJ5PgorICAgICstLS0gcnBQYXR0 ZXJuOiBSUFJQYXR0ZXJuKgorICAgICAgICAgfC0tLSBudW1WYXJzOiBpbnQKKyAgICAgICAgIHwt LS0gdmFyTmFtZXM6IGNoYXIqKgorICAgICAgICAgfC0tLSBtYXhEZXB0aDogUlBSRGVwdGgKKyAg ICAgICAgIHwtLS0gaXNBYnNvcmJhYmxlOiBib29sCisgICAgICAgICB8LS0tIG51bUVsZW1lbnRz OiBpbnQKKyAgICAgICAgICstLS0gZWxlbWVudHM6IFJQUlBhdHRlcm5FbGVtZW50W10gIChmbGF0 IGFycmF5KQorICAgICAgICAgICAgICB8LS0tIHZhcklkICAgICAgKDFCKQorICAgICAgICAgICAg ICB8LS0tIGRlcHRoICAgICAgKDFCKQorICAgICAgICAgICAgICB8LS0tIGZsYWdzICAgICAgKDFC KQorICAgICAgICAgICAgICB8LS0tIHJlc2VydmVkICAgKDFCKQorICAgICAgICAgICAgICB8LS0t IG1pbiwgbWF4ICAgKDRCICsgNEIpCisgICAgICAgICAgICAgICstLS0gbmV4dCwganVtcCAoMkIg KyAyQikKKworICBFeGVjdXRvciBMYXllcgorICAtLS0tLS0tLS0tCisgIFdpbmRvd0FnZ1N0YXRl CisgICAgfC0tLSBycFNraXBUbzogUlBTa2lwVG8gKEFGVEVSIE1BVENIIFNLSVAgbW9kZSkKKyAg ICB8LS0tIHJwUGF0dGVybjogUlBSUGF0dGVybiogKGNvcGllZCBmcm9tIHBsYW4pCisgICAgfC0t LSBkZWZpbmVWYXJpYWJsZUxpc3Q6IExpc3Q8U3RyaW5nPiAodmFyaWFibGUgbmFtZXMsIERFRklO RSBvcmRlcikKKyAgICB8LS0tIGRlZmluZUNsYXVzZUxpc3Q6IExpc3Q8RXhwclN0YXRlPgorICAg IHwtLS0gbmZhVmFyTWF0Y2hlZDogYm9vbFtdIChwZXItcm93IGNhY2hlKQorICAgIHwtLS0gbmZh VmlzaXRlZEVsZW1zOiBiaXRtYXB3b3JkKiAoY3ljbGUgZGV0ZWN0aW9uKQorICAgIHwtLS0gbmZh U3RhdGVTaXplOiBTaXplIChwcmUtY2FsY3VsYXRlZCBSUFJORkFTdGF0ZSBhbGxvY2F0aW9uIHNp emUpCisgICAgfC0tLSBuZmFDb250ZXh0IDwtPiBuZmFDb250ZXh0VGFpbCAoZG91Ymx5LWxpbmtl ZCBsaXN0KQorICAgIHwgICArLS0tIFJQUk5GQUNvbnRleHQKKyAgICB8ICAgICAgIHwtLS0gc3Rh dGVzOiBSUFJORkFTdGF0ZSogKGxpbmtlZCBsaXN0KQorICAgIHwgICAgICAgfCAgIHwtLS0gZWxl bUlkeAorICAgIHwgICAgICAgfCAgIHwtLS0gY291bnRzW10KKyAgICB8ICAgICAgIHwgICArLS0t IGlzQWJzb3JiYWJsZQorICAgIHwgICAgICAgfC0tLSBtYXRjaFN0YXJ0Um93LCBtYXRjaEVuZFJv dworICAgIHwgICAgICAgfC0tLSBsYXN0UHJvY2Vzc2VkUm93CisgICAgfCAgICAgICB8LS0tIG1h dGNoZWRTdGF0ZSAoY2xvbmVkIG9uIEZJTiBhcnJpdmFsKQorICAgIHwgICAgICAgfC0tLSBoYXNB YnNvcmJhYmxlU3RhdGUKKyAgICB8ICAgICAgICstLS0gYWxsU3RhdGVzQWJzb3JiYWJsZQorICAg IHwtLS0gbmZhQ29udGV4dEZyZWUgKHJlY3ljbGluZyBwb29sKQorICAgICstLS0gbmZhU3RhdGVG cmVlIChyZWN5Y2xpbmcgcG9vbCkKKworQXBwZW5kaXggQy4gTkZBIEVsZW1lbnQgQXJyYXkgRXhh bXBsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQy0xLiBQQVRURVJOIChBIEIgQykKKworICBp ZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAKKyAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAwICAgQSAgICAgIDAgICAgICAxICAgIDEg ICAgMSAgICAgLTEKKyAgIDEgICBCICAgICAgMCAgICAgIDEgICAgMSAgICAyICAgICAtMQorICAg MiAgIEMgICAgICAwICAgICAgMSAgICAxICAgIDMgICAgIC0xCisgICAzICAgRklOICAgIDAgICAg ICAxICAgIDEgICAgLTEgICAgLTEKKworQy0yLiBQQVRURVJOIChBKyBCKikKKworICBpZHggIHZh cklkICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAgIGZsYWdzCisgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgMCAgIEEgICAgICAwICAgICAgMSAgICBJTkYgIDEgICAgIC0xICAgIEFCU09SQkFCTEUg fCBBQlNPUkJBQkxFX0JSQU5DSAorICAgMSAgIEIgICAgICAwICAgICAgMCAgICBJTkYgIDIgICAg IC0xCisgICAyICAgRklOICAgIDAgICAgICAxICAgIDEgICAgLTEgICAgLTEKKworICBPbmx5IEEr IGlzIHRoZSBhYnNvcnB0aW9uIHBvaW50IChDYXNlIDEpLiBPbmNlIHBhc3QgQSwKKyAgYWJzb3Jw dGlvbiBpcyBwZXJtYW5lbnRseSBkaXNhYmxlZCBmb3IgdGhhdCBzdGF0ZS4KKworQy0zLiBQQVRU RVJOIChBIHwgQiB8IEMpCisKKyAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBq dW1wCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDAgICBB TFQgICAgMCAgICAgIDEgICAgMSAgICAxICAgICAtMSAgICBhbHRlcm5hdGlvbiBzdGFydAorICAg MSAgIEEgICAgICAxICAgICAgMSAgICAxICAgIDQgICAgIDIgICAgIGJyYW5jaCAxIC0+IEZJTiwg anVtcCAtPiBicmFuY2ggMgorICAgMiAgIEIgICAgICAxICAgICAgMSAgICAxICAgIDQgICAgIDMg ICAgIGJyYW5jaCAyIC0+IEZJTiwganVtcCAtPiBicmFuY2ggMworICAgMyAgIEMgICAgICAxICAg ICAgMSAgICAxICAgIDQgICAgIC0xICAgIGJyYW5jaCAzIC0+IEZJTgorICAgNCAgIEZJTiAgICAw ICAgICAgMSAgICAxICAgIC0xICAgIC0xCisKK0MtNC4gUEFUVEVSTiAoKEEgQikrIEMpCisKKyAg aWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAgIGZsYWdzCisgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAwICAgQkVHSU4gICAgMCAgICAgIDEgICAgSU5GICAxICAgICA0ICAg ICBBQlNPUkJBQkxFX0JSQU5DSAorICAgMSAgIEEgICAgICAgIDEgICAgICAxICAgIDEgICAgMiAg ICAgLTEgICAgQUJTT1JCQUJMRV9CUkFOQ0gKKyAgIDIgICBCICAgICAgICAxICAgICAgMSAgICAx ICAgIDMgICAgIC0xICAgIEFCU09SQkFCTEVfQlJBTkNICisgICAzICAgRU5EICAgICAgMCAgICAg IDEgICAgSU5GICA0ICAgICAxICAgICBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0gKKyAg IDQgICBDICAgICAgICAwICAgICAgMSAgICAxICAgIDUgICAgIC0xCisgICA1ICAgRklOICAgICAg MCAgICAgIDEgICAgMSAgICAtMSAgICAtMQorCisgIENhc2UgMjogR1JPVVArIHdpdGggezEsMX0g Ym9keSBWQVJzLiBBLCBCIGFyZSBicmFuY2hlczsKKyAgRU5EIGlzIHRoZSBhYnNvcnB0aW9uIHBv aW50LiBDb21wYXJlIHdpdGggQy02IChDYXNlIDMpLgorCitDLTUuIFBBVFRFUk4gKChBIHwgQikr PyBDKQorCisgIGlkeCAgdmFySWQgICAgZGVwdGggIG1pbiAgbWF4ICAgbmV4dCAganVtcCAgZmxh Z3MKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgMCAgIEJFR0lOICAgIDAgICAgICAxICAgIElORiAgIDEgICAg IDUgICAgIFJFTFVDVEFOVCwgZ3JvdXAgc3RhcnQKKyAgIDEgICBBTFQgICAgICAxICAgICAgMSAg ICAxICAgICAyICAgICAtMSAgICBhbHRlcm5hdGlvbiBzdGFydAorICAgMiAgIEEgICAgICAgIDIg ICAgICAxICAgIDEgICAgIDQgICAgIDMgICAgIGJyYW5jaCAxCisgICAzICAgQiAgICAgICAgMiAg ICAgIDEgICAgMSAgICAgNCAgICAgLTEgICAgYnJhbmNoIDIKKyAgIDQgICBFTkQgICAgICAwICAg ICAgMSAgICBJTkYgICA1ICAgICAxICAgICBSRUxVQ1RBTlQsIGdyb3VwIGVuZAorICAgNSAgIEMg ICAgICAgIDAgICAgICAxICAgIDEgICAgIDYgICAgIC0xCisgICA2ICAgRklOICAgICAgMCAgICAg IDEgICAgMSAgICAgLTEgICAgLTEKKworQy02LiBQQVRURVJOICgoQSsgQikrIEMpICAtLSBBYnNv cmJhYmlsaXR5IGZsYWcgZXhhbXBsZQorCisgIGlkeCAgdmFySWQgICAgZGVwdGggIG1pbiAgbWF4 ICAgbmV4dCAganVtcCAgZmxhZ3MKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAwICAgQkVHSU4g ICAgMCAgICAgIDEgICAgSU5GICAgMSAgICAgNCAgICAgQUJTT1JCQUJMRV9CUkFOQ0gsIGdyb3Vw IHN0YXJ0CisgICAxICAgQSAgICAgICAgMSAgICAgIDEgICAgSU5GICAgMiAgICAgLTEgICAgQUJT T1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNICisgICAyICAgQiAgICAgICAgMSAgICAgIDEgICAg MSAgICAgMyAgICAgLTEKKyAgIDMgICBFTkQgICAgICAwICAgICAgMSAgICBJTkYgICA0ICAgICAx ICAgICBncm91cCBlbmQKKyAgIDQgICBDICAgICAgICAwICAgICAgMSAgICAxICAgICA1ICAgICAt MQorICAgNSAgIEZJTiAgICAgIDAgICAgICAxICAgIDEgICAgIC0xICAgIC0xCisKKyAgUmVjdXJz ZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5IC0+IEEgbWF0Y2hlcyBDYXNlIDEgKHNpbXBsZSBW QVIrKS4KKyAgQSBnZXRzIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCwgQkVHSU4gZ2V0 cyBBQlNPUkJBQkxFX0JSQU5DSC4KKyAgQiBhbmQgRU5EIGdldCBubyBmbGFncyAtPiBhYnNvcnB0 aW9uIHN0b3BzIG9uY2UgdGhlIHN0YXRlIGFkdmFuY2VzIHRvIEIuCisgIChTZWUgSVYtNSBDYXNl IDMpCisKK0MtNy4gUEFUVEVSTiAoKEErIEIgfCBDKikrIEQpICAtLSBQZXItYnJhbmNoIGFic29y cHRpb24gaW4gQUxUCisKKyAgaWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBtYXggICBuZXh0ICBq dW1wICBmbGFncworICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDAgICBCRUdJTiAgICAwICAgICAg MSAgICBJTkYgICAxICAgICA2ICAgICBBQlNPUkJBQkxFX0JSQU5DSAorICAgMSAgIEFMVCAgICAg IDEgICAgICAxICAgIDEgICAgIDIgICAgIC0xICAgIEFCU09SQkFCTEVfQlJBTkNICisgICAyICAg QSAgICAgICAgMiAgICAgIDEgICAgSU5GICAgMyAgICAgNCAgICAgQUJTT1JCQUJMRSB8IEFCU09S QkFCTEVfQlJBTkNICisgICAzICAgQiAgICAgICAgMiAgICAgIDEgICAgMSAgICAgNSAgICAgLTEK KyAgIDQgICBDICAgICAgICAyICAgICAgMCAgICBJTkYgICA1ICAgICAtMSAgICBBQlNPUkJBQkxF IHwgQUJTT1JCQUJMRV9CUkFOQ0gKKyAgIDUgICBFTkQgICAgICAwICAgICAgMSAgICBJTkYgICA2 ICAgICAxICAgICBFTVBUWV9MT09QCisgICA2ICAgRCAgICAgICAgMCAgICAgIDEgICAgMSAgICAg NyAgICAgLTEKKyAgIDcgICBGSU4gICAgICAwICAgICAgMSAgICAxICAgICAtMSAgICAtMQorCisg IEFMVCBicmFuY2hlcyBhcmUgY2hlY2tlZCBpbmRlcGVuZGVudGx5IGZvciBhYnNvcmJhYmlsaXR5 LgorICBCcmFuY2ggMTogQSsgbWF0Y2hlcyBDYXNlIDEgLT4gQSBnZXRzIEFCU09SQkFCTEUuIEIg aGFzIG5vIGZsYWcuCisgIEJyYW5jaCAyOiBDKiBtYXRjaGVzIENhc2UgMSAtPiBDIGdldHMgQUJT T1JCQUJMRS4KKyAgQm90aCBBIGFuZCBDIGdldCBBQlNPUkJBQkxFX0JSQU5DSCBhcyBwYXJ0IG9m IHRoZWlyIHJlc3BlY3RpdmUgYnJhbmNoCisgIHBhdGhzLgorICBFTkQgaGFzIEVNUFRZX0xPT1A6 IGJyYW5jaCAyIChDKikgaXMgbnVsbGFibGUsIG1ha2luZyB0aGUgZ3JvdXAgYm9keQorICBudWxs YWJsZS4KKyAgQkVHSU4gYW5kIEFMVCBnZXQgQUJTT1JCQUJMRV9CUkFOQ0ggKG9uIHRoZSBwYXRo IHRvIGFic29yYmFibGUgZWxlbWVudHMpLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIEVuZCBv ZiBkb2N1bWVudAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4 IDE1ZTQzOWRhYWFlLi45NmNmYmZiYzBhMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMzAs MTU4NCArMzAsOCBAQAogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAKIC8qCi0gKiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0gKiAgIFBvc3RncmVTUUwgUm93IFBhdHRlcm4gUmVjb2duaXRpb246 IEZsYXQtQXJyYXkgU3RyZWFtIE5GQSBHdWlkZQotICogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICoK LSAqICAgVGFyZ2V0IGF1ZGllbmNlOiBEZXZlbG9wZXJzIHdpdGggYSBiYXNpYyB1bmRlcnN0YW5k aW5nIG9mIHRoZSBQb3N0Z3JlU1FMCi0gKiAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3IgYW5k IHBsYW5uZXIgYXJjaGl0ZWN0dXJlCi0gKgotICogICBTY29wZTogVGhlIGVudGlyZSBwcm9jZXNz IGZyb20gUEFUVEVSTi9ERUZJTkUgY2xhdXNlIHBhcnNpbmcgdG8gTkZBCi0gKiAgICAgICAgICBy dW50aW1lIGV4ZWN1dGlvbgotICoKLSAqICAgUmVsYXRlZCBjb2RlOgotICogICAgIC0gc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jICAgICAgICAgIChwYXJzZXIgcGhhc2UpCi0gKiAgICAg LSBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYyAgICAgICAgKG9wdGltaXplciBwaGFz ZSkKLSAqICAgICAtIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICAoZXhl Y3V0b3IgcGhhc2UsIHdpbmRvdyBhZ2cpCi0gKiAgICAgLSBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUlBSLmMgICAgICAgICAgKGV4ZWN1dG9yIHBoYXNlLCBORkEgZW5naW5lKQotICogICAgIC0g c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1JQUi5oICAgICAgICAgIChORkEgcHVibGljIEFQSSkK LSAqICAgICAtIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oICAgICAgICAgICAocGxhbiBu b2RlIGRlZmluaXRpb25zKQotICogICAgIC0gc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgg ICAgICAgICAgIChleGVjdXRpb24gc3RhdGUgZGVmaW5pdGlvbnMpCi0gKiAgICAgLSBzcmMvaW5j bHVkZS9vcHRpbWl6ZXIvcnByLmggICAgICAgICAgICAgKHR5cGVzIGFuZCBjb25zdGFudHMpCi0g KiAgICAgLSBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgKG5hdiBvZmZz ZXQgY29tcHV0YXRpb24pCi0gKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICoKLSAqIFdoYXQg aXMgYSBGbGF0LUFycmF5IFN0cmVhbSBORkE/Ci0gKgotICogICBUaGUgTkZBIGluIHRoaXMgaW1w bGVtZW50YXRpb24gaXMgbm90IGEgdHJhZGl0aW9uYWwgc3RhdGUtdHJhbnNpdGlvbiBncmFwaAot ICogICBidXQgYSBmbGF0IGFycmF5IG9mIGZpeGVkLXNpemUgMTYtYnl0ZSBlbGVtZW50cy4gQXQg cnVudGltZSwgaXQgcHJvY2Vzc2VzCi0gKiAgIHRoZSByb3cgc3RyZWFtIGluIGEgZm9yd2FyZC1v bmx5IG1hbm5lciwgZXhwYW5kaW5nIGVwc2lsb24gdHJhbnNpdGlvbnMKLSAqICAgZWFnZXJseSB3 aXRob3V0IGJhY2t0cmFja2luZy4KLSAqCi0gKiAgIC0gRmxhdC1BcnJheTogUGF0dGVybiBjb21w aWxlZCBpbnRvIGEgZmxhdCBhcnJheSwKLSAqICAgICAgICAgICAgICAgICBub3QgYSBncmFwaCAo Q2hhcHRlciBJVikKLSAqICAgLSBTdHJlYW06ICAgICBSb3dzIGNvbnN1bWVkIHNlcXVlbnRpYWxs eSBpbiBvbmUgZGlyZWN0aW9uLAotICogICAgICAgICAgICAgICAgIG5ldmVyIHJldmlzaXRlZCAo Q2hhcHRlciBYSUkpCi0gKiAgIC0gTkZBOiAgICAgICAgTm9uZGV0ZXJtaW5pc3RpYyBleGVjdXRp b24gd2hlcmUgbXVsdGlwbGUgc3RhdGVzCi0gKiAgICAgICAgICAgICAgICAgY29leGlzdCB3aXRo aW4gYSBzaW5nbGUgY29udGV4dCAoQ2hhcHRlciBWSSkKLSAqCi0gKiBDaGFwdGVyIEkgIFJvdyBQ YXR0ZXJuIFJlY29nbml0aW9uIE92ZXJ2aWV3Ci0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKgot ICogUm93IFBhdHRlcm4gUmVjb2duaXRpb24gKGhlcmVhZnRlciBSUFIpIGlzIGEgZmVhdHVyZSBp bnRyb2R1Y2VkIGluIFNRTDoyMDE2Ci0gKiB0aGF0IG1hdGNoZXMgcmVnZXgtYmFzZWQgcGF0dGVy bnMgYWdhaW5zdCBvcmRlcmVkIHJvdyBzZXRzLgotICoKLSAqIFRoZSBTUUwgc3RhbmRhcmQgZGVm aW5lcyB0d28gZm9ybXM6Ci0gKgotICogICBGZWF0dXJlIFIwMTA6IE1BVENIX1JFQ09HTklaRSAo RlJPTSBjbGF1c2UpCi0gKiAgICAgLSBEZWRpY2F0ZWQgdGFibGUgb3BlcmF0b3IKLSAqICAgICAt IFByb3ZpZGVzIGRlZGljYXRlZCBmdW5jdGlvbnMgc3VjaCBhcyBNQVRDSF9OVU1CRVIoKSwgQ0xB U1NJRklFUigpCi0gKiAgICAgLSBTdXBwb3J0cyBPTkUgUk9XIFBFUiBNQVRDSCAvIEFMTCBST1dT IFBFUiBNQVRDSAotICoKLSAqICAgRmVhdHVyZSBSMDIwOiBSUFIgaW4gYSB3aW5kb3cgKFdJTkRP VyBjbGF1c2UpCi0gKiAgICAgLSBJbnRlZ3JhdGVkIGludG8gdGhlIGV4aXN0aW5nIHdpbmRvdyBm dW5jdGlvbiBmcmFtZXdvcmsKLSAqICAgICAtIFN1cHBvcnRzIEFMTCBST1dTIFBFUiBNQVRDSCBv bmx5Ci0gKiAgICAgLSBObyBNQVRDSF9OVU1CRVIoKQotICoKLSAqIFRoaXMgaW1wbGVtZW50YXRp b24gdGFyZ2V0cyBGZWF0dXJlIFIwMjAuCi0gKgotICogVGhlIGJhc2ljIHN5bnRheCBpcyBhcyBm b2xsb3dzOgotICoKLSAqICAgU0VMRUNUIC4uLgotICogICBPVkVSICgKLSAqICAgICBQQVJUSVRJ T04gQlkgLi4uCi0gKiAgICAgT1JERVIgQlkgLi4uCi0gKiAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gKiAgICAgW0lOSVRJQUwgfCBTRUVLXSAg IC0tIFNFRUsgaXMgZGVmaW5lZCBpbiB0aGUgc3RhbmRhcmQgYnV0IG5vdCBpbXBsZW1lbnRlZAot ICogICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cgfCBTS0lQIFBBU1QgTEFTVCBST1cK LSAqICAgICBQQVRURVJOICggPHJlZ2V4PiApCi0gKiAgICAgREVGSU5FIDx2YXJpYWJsZT4gQVMg PGNvbmRpdGlvbj4sIC4uLgotICogICApCi0gKgotICogVGhlIFBBVFRFUk4gY2xhdXNlIGlzIGEg cmVndWxhciBleHByZXNzaW9uIG92ZXIgcm93IHBhdHRlcm4gdmFyaWFibGVzLgotICogVGhlIERF RklORSBjbGF1c2Ugc3BlY2lmaWVzIGJvb2xlYW4gY29uZGl0aW9ucyB0aGF0IGRldGVybWluZSB3 aGV0aGVyIGVhY2gKLSAqIHZhcmlhYmxlIGV2YWx1YXRlcyB0byB0cnVlIGZvciB0aGUgY3VycmVu dCByb3cuCi0gKgotICogRXhhbXBsZToKLSAqCi0gKiAgIFBBVFRFUk4gKEErIEIpCi0gKiAgIERF RklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSksCi0gKiAgICAgICAgICBCIEFTIHByaWNlIDwg UFJFVihwcmljZSkKLSAqCi0gKiBUaGlzIHBhdHRlcm4gbWF0Y2hlcyAiYSBzcGFuIHdoZXJlIHBy aWNlcyByaXNlIGNvbnNlY3V0aXZlbHkgdGhlbiBkcm9wLiIKLSAqCi0gKiBDaGFwdGVyIElJICBP dmVyYWxsIFByb2Nlc3NpbmcgUGlwZWxpbmUKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqCi0g KiBSUFIgcHJvY2Vzc2luZyBpcyBkaXZpZGVkIGludG8gdGhyZWUgcGhhc2VzOgotICoKLSAqICAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKLSAqICAgfCAgMS4gUGFyc2luZyAoUGFyc2VyKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKLSAqICAgfCAgICAgU1FMIHRleHQgLT4gUEFUVEVSTiBBU1QgKyBE RUZJTkUgZXhwcmVzc2lvbiB0cmVlICAgICAgIHwKLSAqICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAgfCAgMi4gQ29t cGlsYXRpb24gKE9wdGltaXplci9QbGFubmVyKSAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAq ICAgfCAgICAgUEFUVEVSTiBBU1QgLT4gb3B0aW1pemF0aW9uIC0+IGZsYXQgTkZBIGVsZW1lbnQg YXJyYXkgIHwKLSAqICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLSAqICAgfCAgMy4gRXhlY3V0aW9uIChFeGVjdXRvcikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAgfCAgICAgUm93LWJ5LXJvdyBt YXRjaGluZyB2aWEgTkZBIHNpbXVsYXRpb24gICAgICAgICAgICAgICAgIHwKLSAqICAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK LSAqCi0gKiBFYWNoIHBoYXNlIHVzZXMgaW5kZXBlbmRlbnQgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQg dGhlIGludGVyZmFjZXMgYmV0d2VlbgotICogcGhhc2VzIGFyZSB3ZWxsLWRlZmluZWQ6Ci0gKgot ICogICBQYXJzZXIgLT4gUGxhbm5lcjogICAgV2luZG93Q2xhdXNlLnJwUGF0dGVybiAoUlBSUGF0 dGVybk5vZGUgdHJlZSkKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvd0NsYXVzZS5k ZWZpbmVDbGF1c2UgKFRhcmdldEVudHJ5IGxpc3QpCi0gKgotICogICBQbGFubmVyIC0+IEV4ZWN1 dG9yOiAgV2luZG93QWdnLnJwUGF0dGVybiAoUlBSUGF0dGVybiBzdHJ1Y3QpCi0gKiAgICAgICAg ICAgICAgICAgICAgICAgICBXaW5kb3dBZ2cuZGVmaW5lQ2xhdXNlIChUYXJnZXRFbnRyeSBsaXN0 KQotICoKLSAqIENoYXB0ZXIgSUlJICBQYXJzaW5nIFBoYXNlCi0gKiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0gKgotICogSUlJLTEuIEVudHJ5IFBvaW50Ci0gKgotICogICB0cmFuc2Zvcm1XaW5kb3dE ZWZpbml0aW9ucygpIChwYXJzZV9jbGF1c2UuYykKLSAqICAgICArLS0gdHJhbnNmb3JtUlBSKCkg KHBhcnNlX3Jwci5jKQotICoKLSAqIHRyYW5zZm9ybVJQUigpIGlzIGludm9rZWQgd2hlbiBSUENv bW1vblN5bnRheCBpcyBwcmVzZW50IGFuZCBwZXJmb3JtcyB0aGUKLSAqIGZvbGxvd2luZzoKLSAq Ci0gKiAgICgxKSBGcmFtZSBvcHRpb24gdmFsaWRhdGlvbgotICogICAgICAgLSBPbmx5IFJPV1Mg aXMgYWxsb3dlZCAoUkFOR0UsIEdST1VQUyBhcmUgbm90KQotICogICAgICAgLSBUaGUgc3RhcnQg Ym91bmRhcnkgbXVzdCBiZSBDVVJSRU5UIFJPVwotICogICAgICAgLSBFWENMVURFIG9wdGlvbiBp cyBub3QgYWxsb3dlZAotICoKLSAqICAgKDIpIFRyYW5zY3JpcHRpb24gdG8gV2luZG93Q2xhdXNl Ci0gKiAgICAgICAtIENvcGllcyBycFBhdHRlcm4sIHJwU2tpcFRvLCBpbml0aWFsIGZpZWxkcwot ICoKLSAqICAgKDMpIERFRklORSBjbGF1c2UgdHJhbnNmb3JtYXRpb24gKHRyYW5zZm9ybURlZmlu ZUNsYXVzZSkKLSAqCi0gKiBJSUktMi4gUEFUVEVSTiBBU1QKLSAqCi0gKiBUaGUgcGFyc2VyIHRy YW5zZm9ybXMgdGhlIFBBVFRFUk4gY2xhdXNlIGludG8gYW4gUlBSUGF0dGVybk5vZGUgdHJlZS4K LSAqIEVhY2ggbm9kZSBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB0eXBlczoKLSAqCi0g KiAgIFJQUl9QQVRURVJOX1ZBUiAgICBWYXJpYWJsZSByZWZlcmVuY2UuIE5hbWUgc3RvcmVkIGlu IHZhck5hbWUgZmllbGQuCi0gKiAgIFJQUl9QQVRURVJOX1NFUSAgICBDb25jYXRlbmF0aW9uLiBD aGlsZHJlbiBub2RlIGxpc3QgaW4gY2hpbGRyZW4uCi0gKiAgIFJQUl9QQVRURVJOX0FMVCAgICBB bHRlcm5hdGlvbi4gQnJhbmNoIG5vZGUgbGlzdCBpbiBjaGlsZHJlbi4KLSAqICAgUlBSX1BBVFRF Uk5fR1JPVVAgIEdyb3VwIChwYXJlbnRoZXNlcykuIEJvZHkgbm9kZSBsaXN0IGluIGNoaWxkcmVu LgotICoKLSAqIEFsbCBub2RlcyBoYXZlIG1pbi9tYXggZmllbGRzIHRvIGV4cHJlc3MgcXVhbnRp ZmllcnM6Ci0gKgotICogICBBICAgICAgIC0+IFZBUihBLCBtaW49MSwgbWF4PTEpCi0gKiAgIEEr ICAgICAgLT4gVkFSKEEsIG1pbj0xLCBtYXg9SU5GKQotICogICBBKiAgICAgIC0+IFZBUihBLCBt aW49MCwgbWF4PUlORikKLSAqICAgQT8gICAgICAtPiBWQVIoQSwgbWluPTAsIG1heD0xKQotICog ICBBezMsNX0gIC0+IFZBUihBLCBtaW49MywgbWF4PTUpCi0gKgotICogSWYgdGhlIHJlbHVjdGFu dCBmaWVsZCBpcyB0cnVlLCB0aGUgcXVhbnRpZmllciBpcyByZWx1Y3RhbnQgKG5vbi1ncmVlZHkp LgotICogKFJQUlBhdHRlcm5Ob2RlLnJlbHVjdGFudCBpcyBib29sOyByZWx1Y3RhbnRfbG9jYXRp b24gaXMgdGhlIHNlcGFyYXRlCi0gKiBQYXJzZUxvYyBmaWVsZCBob2xkaW5nIHRoZSAnPycgdG9r ZW4gcG9zaXRpb24sIG9yIC0xIGlmIGFic2VudC4pCi0gKgotICogRXhhbXBsZTogUEFUVEVSTiAo KEErIEIpIHwgQyopCi0gKgotICogICBBTFQKLSAqICAgKy0tIFNFUQotICogICB8ICAgKy0tIFZB UihBLCAxLCBJTkYpCi0gKiAgIHwgICArLS0gVkFSKEIsIDEsIDEpCi0gKiAgICstLSBWQVIoQywg MCwgSU5GKQotICoKLSAqIElJSS0zLiBERUZJTkUgQ2xhdXNlIFRyYW5zZm9ybWF0aW9uCi0gKgot ICogdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKCkgcHJvY2Vzc2VzIGVhY2ggREVGSU5FIHZhcmlhYmxl IGFzIGZvbGxvd3M6Ci0gKgotICogICAoMSkgQ2hlY2tzIGZvciBkdXBsaWNhdGUgdmFyaWFibGUg bmFtZXMKLSAqICAgKDIpIFRyYW5zZm9ybXMgdGhlIGV4cHJlc3Npb24gdmlhIHRyYW5zZm9ybUV4 cHIoKQotICogICAoMykgRXh0cmFjdHMgVmFyIG5vZGVzIHZpYSBwdWxsX3Zhcl9jbGF1c2UoKSBh bmQgZW5zdXJlcyBlYWNoIGlzCi0gKiAgICAgICBwcmVzZW50IGluIHRoZSBxdWVyeSB0YXJnZXRs aXN0LCBzbyB0aGUgcGxhbm5lciBwcm9wYWdhdGVzIHRoZQotICogICAgICAgcmVmZXJlbmNlZCBj b2x1bW5zIHRocm91Z2ggdGhlIHBsYW4gdHJlZQotICogICAoNCkgV3JhcHMgaW4gYSBUYXJnZXRF bnRyeSB3aXRoIHRoZSB2YXJpYWJsZSBuYW1lIHNldCBpbiByZXNuYW1lCi0gKgotICogQWZ0ZXIg YWxsIHZhcmlhYmxlcyBhcmUgcHJvY2Vzc2VkOgotICogICAoNSkgQ29lcmNlcyBlYWNoIGV4cHJl c3Npb24gdG8gQm9vbGVhbiB0eXBlIChjb2VyY2VfdG9fYm9vbGVhbikKLSAqCi0gKiBWYXJpYWJs ZXMgdGhhdCBhcmUgdXNlZCBpbiBQQVRURVJOIGJ1dCBub3QgZGVmaW5lZCBpbiBERUZJTkUgYXJl IGltcGxpY2l0bHkKLSAqIGV2YWx1YXRlZCBhcyBUUlVFIChtYXRjaGluZyBhbGwgcm93cykuCi0g KgotICogQ2hhcHRlciBJViAgQ29tcGlsYXRpb24gUGhhc2UKLSAqID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLSAqCi0gKiBJVi0xLiBFbnRyeSBQb2ludAotICoKLSAqICAgY3JlYXRlX3dpbmRvd2FnZ19w bGFuKCkgKGNyZWF0ZXBsYW4uYykKLSAqICAgICArLS0gYnVpbGREZWZpbmVWYXJpYWJsZUxpc3Qo KSAgICBCdWlsZCB2YXJpYWJsZSBuYW1lIGxpc3QgZnJvbSBERUZJTkUKLSAqICAgICArLS0gYnVp bGRSUFJQYXR0ZXJuKCkgICAgICAgICAgIE5GQSBjb21waWxhdGlvbiAoNiBwaGFzZXMpCi0gKgot ICogSVYtMi4gVGhlIDYgUGhhc2VzIG9mIGJ1aWxkUlBSUGF0dGVybigpCi0gKgotICogICBQaGFz ZSAxOiBBU1Qgb3B0aW1pemF0aW9uIChvcHRpbWl6ZVJQUlBhdHRlcm4pCi0gKiAgIFBoYXNlIDI6 IFN0YXRpc3RpY3MgY29sbGVjdGlvbiAoc2NhblJQUlBhdHRlcm4pCi0gKiAgIFBoYXNlIDM6IE1l bW9yeSBhbGxvY2F0aW9uIChhbGxvY2F0ZVJQUlBhdHRlcm4pCi0gKiAgIFBoYXNlIDQ6IE5GQSBl bGVtZW50IGZpbGwgKGZpbGxSUFJQYXR0ZXJuKQotICogICBQaGFzZSA1OiBGaW5hbGl6YXRpb24g KGZpbmFsaXplUlBSUGF0dGVybikKLSAqICAgUGhhc2UgNjogQWJzb3JiYWJpbGl0eSBhbmFseXNp cyAoY29tcHV0ZUFic29yYmFiaWxpdHkpCi0gKgotICogSVYtMy4gUGhhc2UgMTogQVNUIE9wdGlt aXphdGlvbgotICoKLSAqIEFmdGVyIGNvcHlpbmcgdGhlIHBhcnNlci1nZW5lcmF0ZWQgQVNULCB0 aGUgZm9sbG93aW5nIG9wdGltaXphdGlvbnMgYXJlCi0gKiBhcHBsaWVkOgotICoKLSAqICAgKGEp IFNFUSBmbGF0dGVuaW5nOiBVbndyYXAgbmVzdGVkIFNFUSBub2RlcwotICogICAgICAgU0VRKEEs IFNFUShCLCBDKSkgLT4gU0VRKEEsIEIsIEMpCi0gKgotICogICAoYikgQ29uc2VjdXRpdmUgdmFy aWFibGUgbWVyZ2luZzogTWVyZ2UgY29uc2VjdXRpdmUgb2NjdXJyZW5jZXMgb2YgdGhlCi0gKiAg ICAgICBzYW1lIHZhcmlhYmxlIGludG8gYSBzaW5nbGUgcXVhbnRpZmllcgotICogICAgICAgQSBB IC0+IEF7Mn0KLSAqICAgICAgIEF7MiwzfSBBezEsMn0gLT4gQXszLDV9Ci0gKgotICogICAoYykg Q29uc2VjdXRpdmUgZ3JvdXAgbWVyZ2luZzogTWVyZ2UgcmVwZWF0ZWQgaWRlbnRpY2FsIGdyb3Vw cwotICogICAgICAgKEEgQikrIChBIEIpKyAtPiAoQSBCKXsyLElORn0KLSAqCi0gKiAgIChkKSBD b25zZWN1dGl2ZSBBTFQgbWVyZ2luZzogTWVyZ2UgcmVwZWF0ZWQgaWRlbnRpY2FsIEFMVCBub2Rl cwotICogICAgICAgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgLT4gKEEgfCBCKXszfQotICoKLSAq ICAgKGUpIFByZWZpeC9zdWZmaXggYWJzb3JwdGlvbjogQWJzb3JiIGlkZW50aWNhbCBzZXF1ZW5j ZXMgYmVmb3JlL2FmdGVyCi0gKiAgICAgICBhIGdyb3VwCi0gKiAgICAgICBBIEIgKEEgQikrIC0+ IChBIEIpezIsSU5GfQotICoKLSAqICAgKGYpIEFMVCBmbGF0dGVuaW5nIGFuZCBkZWR1cGxpY2F0 aW9uCi0gKiAgICAgICAoQSB8IChCIHwgQykpIC0+IChBIHwgQiB8IEMpCi0gKiAgICAgICAoQSB8 IEIgfCBBKSAtPiAoQSB8IEIpCi0gKgotICogICAoZykgUXVhbnRpZmllciBtdWx0aXBsaWNhdGlv bjogQ29sbGFwc2UgbmVzdGVkIHF1YW50aWZpZXJzIHdoZW4gc2FmZQotICogICAgICAgKEErKSsg LT4gQSsKLSAqICAgICAgIChBezIsM30pezV9IC0+IEF7MTAsMTV9Ci0gKgotICogICAoaCkgU2lu Z2xlLWNoaWxkIHVud3JhcAotICogICAgICAgU0VRKEEpIC0+IEEsICAoQSl7MSwxfSAtPiBBCi0g KgotICogSVYtNC4gUGhhc2UgNDogTkZBIEVsZW1lbnQgQXJyYXkgR2VuZXJhdGlvbgotICoKLSAq IFRyYW5zZm9ybXMgdGhlIG9wdGltaXplZCBBU1QgaW50byBhIGZsYXQgYXJyYXkgb2YgUlBSUGF0 dGVybkVsZW1lbnQuCi0gKiBUaGlzIGlzIHRoZSBjb3JlIGRhdGEgc3RydWN0dXJlIHVzZWQgZm9y IE5GQSBzaW11bGF0aW9uIGF0IHJ1bnRpbWUuCi0gKgotICogUlBSUGF0dGVybkVsZW1lbnQgc3Ry dWN0ICgxNiBieXRlcyk6Ci0gKgotICogICBGaWVsZCAgICAgIFNpemUgICAgIERlc2NyaXB0aW9u Ci0gKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotICogICB2YXJJZCAgICAgIDFCICAgICAgVmFyaWFibGUgSUQgKDAtMjUxKSBvciBj b250cm9sIGNvZGUgKDI1Mi0yNTUpCi0gKiAgIGRlcHRoICAgICAgMUIgICAgICBHcm91cCBuZXN0 aW5nIGRlcHRoCi0gKiAgIGZsYWdzICAgICAgMUIgICAgICBCaXQgZmxhZ3MgKHNlZSBiZWxvdykK LSAqICAgcmVzZXJ2ZWQgICAxQiAgICAgIFBhZGRpbmcKLSAqICAgbWluICAgICAgICA0QiAgICAg IFF1YW50aWZpZXIgbG93ZXIgYm91bmQKLSAqICAgbWF4ICAgICAgICA0QiAgICAgIFF1YW50aWZp ZXIgdXBwZXIgYm91bmQKLSAqICAgbmV4dCAgICAgICAyQiAgICAgIE5leHQgZWxlbWVudCBpbmRl eCAoc2VxdWVudGlhbCBmbG93KQotICogICBqdW1wICAgICAgIDJCICAgICAgQnJhbmNoIHRhcmdl dCBpbmRleCAoZm9yIEFMVC9HUk9VUCkKLSAqCi0gKiBDb250cm9sIGNvZGVzOgotICoKLSAqICAg UlBSX1ZBUklEX0JFR0lOICgyNTIpICBHcm91cCBzdGFydCBtYXJrZXIKLSAqICAgUlBSX1ZBUklE X0VORCAgICgyNTMpICBHcm91cCBlbmQgbWFya2VyCi0gKiAgIFJQUl9WQVJJRF9BTFQgICAoMjU0 KSAgQWx0ZXJuYXRpb24gc3RhcnQgbWFya2VyCi0gKiAgIFJQUl9WQVJJRF9GSU4gICAoMjU1KSAg UGF0dGVybiBjb21wbGV0aW9uIG1hcmtlcgotICoKLSAqIEVsZW1lbnQgZmxhZ3MgKDEgYnl0ZSwg Yml0bWFzayk6Ci0gKgotICogICAweDAxICBSUFJfRUxFTV9SRUxVQ1RBTlQgICAgICAgICAgKFZB UiwgQkVHSU4sIEVORCkKLSAqICAgICAgICAgTm9uLWdyZWVkeSBxdWFudGlmaWVyLiAgUHJlZmVy cyBzaG9ydGVyIG1hdGNoOiB0cnkgZXhpdC1sb29wCi0gKiAgICAgICAgIGZpcnN0LCB0aGVuIHJl cGVhdC4gIFNldCBvbiBWQVIgZm9yIHNpbXBsZSAoQSs/KSwKLSAqICAgICAgICAgb24gQkVHSU4r RU5EIGZvciBncm91cCAoKC4uLikrPykuCi0gKgotICogICAweDAyICBSUFJfRUxFTV9FTVBUWV9M T09QICAgICAgICAgKEVORCkKLSAqICAgICAgICAgR3JvdXAgYm9keSBjYW4gcHJvZHVjZSBlbXB0 eSBtYXRjaCAoYWxsIGNoaWxkcmVuIG51bGxhYmxlKS4KLSAqICAgICAgICAgQ3JlYXRlcyBhIGZh c3QtZm9yd2FyZCBleGl0IGNsb25lIGFsb25nc2lkZSB0aGUgbm9ybWFsCi0gKiAgICAgICAgIGxv b3AtYmFjayBzbyBjeWNsZSBkZXRlY3Rpb24gZG9lc24ndCBraWxsIGxlZ2l0aW1hdGUKLSAqICAg ICAgICAgbWF0Y2hlcy4gKElWLTRiKQotICoKLSAqICAgMHgwNCAgUlBSX0VMRU1fQUJTT1JCQUJM RV9CUkFOQ0ggIChWQVIsIEJFR0lOLCBFTkQsIEFMVCkKLSAqICAgICAgICAgRWxlbWVudCBsaWVz IHdpdGhpbiBhbiBhYnNvcmJhYmxlIHJlZ2lvbi4gIFVzZWQgYXQgcnVudGltZQotICogICAgICAg ICB0byB0cmFjayB3aGV0aGVyIHRoZSBjdXJyZW50IE5GQSBzdGF0ZSBpcyBpbiBhbiBhYnNvcmJh YmxlCi0gKiAgICAgICAgIGNvbnRleHQuCi0gKgotICogICAweDA4ICBSUFJfRUxFTV9BQlNPUkJB QkxFICAgICAgICAgKFZBUiwgRU5EKQotICogICAgICAgICBBYnNvcnB0aW9uIGp1ZGdtZW50IHBv aW50LiAgV2hlcmUgdG8gY29tcGFyZSBjb25zZWN1dGl2ZQotICogICAgICAgICBpdGVyYXRpb25z IGZvciBhYnNvcnB0aW9uLgotICogICAgICAgICAgIC0gU2ltcGxlIHVuYm91bmRlZCBWQVIgKEEr KTogc2V0IG9uIHRoZSBWQVIgaXRzZWxmCi0gKiAgICAgICAgICAgLSBVbmJvdW5kZWQgR1JPVVAg KChBIEIpKyk6IHNldCBvbiB0aGUgRU5EIGVsZW1lbnQgb25seQotICoKLSAqICAgQWNjZXNzb3Ig bWFjcm9zOgotICogICAgIFJQUkVsZW1Jc1JlbHVjdGFudChlKSAgICAgICAgKGUpLT5mbGFncyAm IDB4MDEKLSAqICAgICBSUFJFbGVtQ2FuRW1wdHlMb29wKGUpICAgICAgIChlKS0+ZmxhZ3MgJiAw eDAyCi0gKiAgICAgUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChlKSAoZSktPmZsYWdzICYgMHgw NAotICogICAgIFJQUkVsZW1Jc0Fic29yYmFibGUoZSkgICAgICAgKGUpLT5mbGFncyAmIDB4MDgK LSAqCi0gKiBFeGFtcGxlOiBQQVRURVJOIChBKyBCIHwgQykKLSAqCi0gKiAgIEFTVDogQUxUKFNF UShWQVIoQSwxLElORiksIFZBUihCLDEsMSkpLCBWQVIoQywxLDEpKQotICoKLSAqICAgQ29tcGls YXRpb24gcmVzdWx0OgotICoKLSAqICAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0 ICBqdW1wICBEZXNjcmlwdGlvbgotICogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICAgIDAgICBBTFQgICAgMCAgICAgIDEg ICAgMSAgICAxICAgICAtMSAgICBBbHRlcm5hdGlvbiBzdGFydAotICogICAgMSAgIEEoMCkgICAx ICAgICAgMSAgICBJTkYgIDIgICAgIDMgICAgIEJyYW5jaCAxOiBBKwotICogICAgMiAgIEIoMSkg ICAxICAgICAgMSAgICAxICAgIDQgICAgIC0xICAgIEJyYW5jaCAxOiBCIC0+IEZJTgotICogICAg MyAgIEMoMikgICAxICAgICAgMSAgICAxICAgIDQgICAgIC0xICAgIEJyYW5jaCAyOiBDIC0+IEZJ TgotICogICAgNCAgIEZJTiAgICAwICAgICAgMSAgICAxICAgIC0xICAgIC0xICAgIFBhdHRlcm4g Y29tcGxldGlvbgotICoKLSAqICAgLSBpZHggMDogQUxUIG1hcmtlci4gbmV4dCg9MSkgaXMgdGhl IHN0YXJ0IG9mIHRoZSBmaXJzdCBicmFuY2gKLSAqICAgLSBpZHggMTogVmFyaWFibGUgQS4gbmV4 dCg9MikgaXMgQiwganVtcCg9MykgaXMgdGhlIHN0YXJ0IG9mIHRoZSBzZWNvbmQKLSAqICAgICAg ICAgICAgYnJhbmNoCi0gKiAgIC0gaWR4IDI6IFZhcmlhYmxlIEIuIG5leHQoPTQpIGlzIEZJTgot ICogICAtIGlkeCAzOiBWYXJpYWJsZSBDLiBuZXh0KD00KSBpcyBGSU4KLSAqICAgLSBpZHggNDog RklOIG1hcmtlci4gTWF0Y2ggY29tcGxldGlvbiBzaWduYWwKLSAqCi0gKiBSb2xlcyBvZiBuZXh0 IGFuZCBqdW1wOgotICoKLSAqICAgLSBuZXh0OiBUaGUgbmV4dCBlbGVtZW50IHRvIG1vdmUgdG8g ImFmdGVyIGNvbnN1bWluZyIgdGhlIGN1cnJlbnQgZWxlbWVudC4KLSAqICAgICAgICAgICBGb3Ig VkFSLCB0aGUgbmV4dCBwb3NpdGlvbiBhZnRlciBhIHN1Y2Nlc3NmdWwgbWF0Y2guCi0gKiAgICAg ICAgICAgRm9yIEJFR0lOL0VORCwgdGhlIG5leHQgcG9zaXRpb24gaW5zaWRlL291dHNpZGUgdGhl IGdyb3VwLgotICoKLSAqICAgLSBqdW1wOiBUaGUgZWxlbWVudCB0byAic2tpcCB0by4iCi0gKiAg ICAgICAgICAgSW4gQUxULCBhIGp1bXAgZnJvbSBvbmUgYnJhbmNoIHRvIHRoZSBuZXh0IGJyYW5j aC4KLSAqICAgICAgICAgICBJbiBCRUdJTiwgYSBza2lwIHBhdGggdG8gRU5EKzEgKGZvciBncm91 cHMgd2l0aCBtaW49MCkuCi0gKiAgICAgICAgICAgSW4gRU5ELCBhIGxvb3AtYmFjayB0byB0aGUg c3RhcnQgb2YgdGhlIGdyb3VwIGJvZHkuCi0gKgotICogRXhhbXBsZTogUEFUVEVSTiAoKEEgQikr KQotICoKLSAqICAgaWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAgIERl c2NyaXB0aW9uCi0gKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgICAwICAgQkVHSU4gICAgMCAgICAgIDEgICAgSU5G ICAxICAgICA0ICAgICBHcm91cCBzdGFydAotICogICAgMSAgIEEoMCkgICAgIDEgICAgICAxICAg IDEgICAgMiAgICAgLTEgICAgQQotICogICAgMiAgIEIoMSkgICAgIDEgICAgICAxICAgIDEgICAg MyAgICAgLTEgICAgQgotICogICAgMyAgIEVORCAgICAgIDAgICAgICAxICAgIElORiAgNCAgICAg MSAgICAgR3JvdXAgZW5kCi0gKiAgICA0ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAgICAtMSAg ICAtMSAgICBQYXR0ZXJuIGNvbXBsZXRpb24KLSAqCi0gKiAgIC0gaWR4IDA6IEJFR0lOLiBuZXh0 KD0xKSBlbnRlcnMgdGhlIGdyb3VwIGJvZHkuCi0gKiAgICAgICAgICAgIGp1bXAoPTQpIHNraXBz IHRvIGFmdGVyIEVORCA9IEZJTiAodXNlZCB3aGVuIG1pbj0wKS4KLSAqICAgLSBpZHggMzogRU5E LiBuZXh0KD00KSBleGl0cyB0aGUgZ3JvdXAuCi0gKiAgICAgICAgICAgIGp1bXAoPTEpIGxvb3Bz IGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBncm91cCBib2R5LgotICoKLSAqIElWLTRhLiBSZWx1 Y3RhbnQgRmxhZyAoUlBSX0VMRU1fUkVMVUNUQU5UKQotICoKLSAqIFRoZSByZWx1Y3RhbnQgZmxh ZyBpcyBzZXQgZHVyaW5nIFBoYXNlIDQgKGZpbGxSUFJQYXR0ZXJuKSB3aGVuIHRoZSBBU1Qgbm9k ZQotICogaGFzIHJlbHVjdGFudCA9PSB0cnVlLiBJdCByZXZlcnNlcyB0aGUgcHJpb3JpdHkgb2Yg cXVhbnRpZmllciBleHBhbnNpb24gYXQKLSAqIHJ1bnRpbWU6Ci0gKgotICogICBHcmVlZHkgKGRl ZmF1bHQpOiAgdHJ5IGxvb3AtYmFjayBmaXJzdCwgdGhlbiBleGl0ICAocHJlZmVyIGxvbmdlciBt YXRjaCkKLSAqICAgUmVsdWN0YW50OiAgICAgICAgIHRyeSBleGl0IGZpcnN0LCB0aGVuIGxvb3At YmFjayAgIChwcmVmZXIgc2hvcnRlciBtYXRjaCkKLSAqCi0gKiBUaGUgZmxhZyBpcyBzZXQgb24g YWxsIGVsZW1lbnRzIHRoYXQgY2FycnkgdGhlIHF1YW50aWZpZXI6Ci0gKgotICogICBTaW1wbGUg VkFSIChBKz8pOiAgICAgUlBSX0VMRU1fUkVMVUNUQU5UIG9uIHRoZSBWQVIgZWxlbWVudAotICog ICBHcm91cCAoKC4uLikrPyk6ICAgICAgUlBSX0VMRU1fUkVMVUNUQU5UIG9uIEJFR0lOIGFuZCBF TkQgZWxlbWVudHMKLSAqCi0gKiBBdCBydW50aW1lIChuZmFfYWR2YW5jZSksIHRoZSBmbGFnIGNv bnRyb2xzIERGUyBleHBsb3JhdGlvbiBvcmRlcjoKLSAqCi0gKiAgIFZBUiB3aXRoIHF1YW50aWZp ZXI6Ci0gKiAgICAgR3JlZWR5OiAgICBwcmltYXJ5IHBhdGggPSBuZXh0IChjb250aW51ZSksIGNs b25lID0ganVtcCAoc2tpcCkKLSAqICAgICBSZWx1Y3RhbnQ6IHByaW1hcnkgcGF0aCA9IGp1bXAg KHNraXApLCBjbG9uZSA9IG5leHQgKGNvbnRpbnVlKQotICoKLSAqICAgRU5EIGVsZW1lbnQ6Ci0g KiAgICAgR3JlZWR5OiAgICBwcmltYXJ5IHBhdGggPSBqdW1wIChsb29wLWJhY2spLCBjbG9uZSA9 IG5leHQgKGV4aXQpCi0gKiAgICAgUmVsdWN0YW50OiBwcmltYXJ5IHBhdGggPSBuZXh0IChleGl0 KSwgY2xvbmUgPSBqdW1wIChsb29wLWJhY2spCi0gKgotICogICBCRUdJTiB3aXRoIG1pbj0wOgot ICogICAgIEdyZWVkeTogICAgcHJpbWFyeSBwYXRoID0gbmV4dCAoZW50ZXIgZ3JvdXApLCBjbG9u ZSA9IGp1bXAgKHNraXApCi0gKiAgICAgUmVsdWN0YW50OiBwcmltYXJ5IHBhdGggPSBqdW1wIChz a2lwKSwgY2xvbmUgPSBuZXh0IChlbnRlciBncm91cCkKLSAqCi0gKiBUaGUgYWJzb3JwdGlvbiBv cHRpbWl6YXRpb24gcmVxdWlyZXMgZ3JlZWR5IHF1YW50aWZpZXJzLiBSZWx1Y3RhbnQKLSAqIHF1 YW50aWZpZXJzIGFyZSBleGNsdWRlZCBmcm9tIGFic29yYmFiaWxpdHkgYW5hbHlzaXMgKHNlZSBJ Vi01KS4KLSAqCi0gKiBJVi00Yi4gRW1wdHkgTG9vcCBGbGFnIChSUFJfRUxFTV9FTVBUWV9MT09Q KQotICoKLSAqIFRoZSBlbXB0eS1sb29wIGZsYWcgaXMgc2V0IGR1cmluZyBQaGFzZSA0IChmaWxs UlBSUGF0dGVybkdyb3VwKSBvbiB0aGUgRU5ECi0gKiBlbGVtZW50IHdoZW4gdGhlIGdyb3VwIGJv ZHkgaXMgbnVsbGFibGUgLS0gaS5lLiwgZXZlcnkgcGF0aCB0aHJvdWdoIHRoZQotICogYm9keSBj YW4gbWF0Y2ggemVybyByb3dzIChhbGwgY2hpbGRyZW4gYXJlIG51bGxhYmxlKS4KLSAqCi0gKiBF eGFtcGxlIHBhdHRlcm5zIHRoYXQgdHJpZ2dlciB0aGlzIGZsYWc6Ci0gKgotICogICAoQT8pKiAg ICBBIGlzIG51bGxhYmxlIChtaW49MCksIHNvIGdyb3VwIGJvZHkgaXMgbnVsbGFibGUgLT4gRU5E IGdldHMgZmxhZwotICogICAoQT8gQj8pKyBCb3RoIGNoaWxkcmVuIG51bGxhYmxlIC0+IGJvZHkg bnVsbGFibGUgLT4gRU5EIGdldHMgZmxhZwotICogICAoQSB8IEIqKSBCKiBpcyBudWxsYWJsZSwg bWFraW5nIHRoZSBBTFQgbnVsbGFibGUgLT4gRU5EIGdldHMgZmxhZwotICoKLSAqIFRoZSBmbGFn IHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGVtcHR5IG1hdGNoIGN5Y2xlIGRldGVjdGlv bgotICogKGVsZW1JZHggdmlzaXRlZCBiaXRtYXApLiBXaXRob3V0IHRoaXMgZmxhZywgY3ljbGUg ZGV0ZWN0aW9uIGFsb25lIHdvdWxkCi0gKiBjYXVzZSBsZWdpdGltYXRlIG1hdGNoZXMgdG8gZmFp bC4KLSAqCi0gKiBQcm9ibGVtIGV4YW1wbGU6IChBKil7MiwzfQotICogICAtIEl0ZXJhdGlvbiAx OiBBKiBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHJvd3MgLT4gY291bnQ9MSwgRU5EIHJlYWNoZWQK LSAqICAgLSBMb29wLWJhY2sgZm9yIGl0ZXJhdGlvbiAyOiBBKiBtYXRjaGVzIHplcm8gcm93cyAt PiBFTkQgcmVhY2hlZCBhZ2FpbgotICogICAtIEN5Y2xlIGRldGVjdGlvbiBzZWVzIHRoZSBzYW1l IGVsZW1JZHggb24gdGhlIHNhbWUgcm93IC0+IHN0YXRlIGtpbGxlZAotICogICAtIGNvdW50IG5l dmVyIHJlYWNoZXMgbWluKDIpIC0+IG1hdGNoIGZhaWxzIChpbmNvcnJlY3QpCi0gKgotICogV2l0 aCB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFnLCBuZmFfYWR2YW5jZV9lbmQgY3JlYXRlcyB0 d28gcGF0aHM6Ci0gKiB0aGUgbm9ybWFsIGxvb3AtYmFjayAod2hpY2ggY3ljbGUgZGV0ZWN0aW9u IHdpbGwgZXZlbnR1YWxseSBraWxsKSBhbmQKLSAqIGEgZmFzdC1mb3J3YXJkIGV4aXQgY2xvbmUg dGhhdCBieXBhc3NlcyB0aGUgbG9vcCBlbnRpcmVseS4KLSAqIChTZWUgSVgtNChjKSBmb3IgZGV0 YWlsZWQgcnVudGltZSBiZWhhdmlvci4pCi0gKgotICogSVYtNS4gQWJzb3JiYWJpbGl0eSBBbmFs eXNpcyAoUlBSX0VMRU1fQUJTT1JCQUJMRSkKLSAqCi0gKiBDb250ZXh0IGFic29ycHRpb24gaXMg YW4gb3B0aW1pemF0aW9uIHRlY2huaXF1ZSB0aGF0IHJlZHVjZXMgTyhuXjIpIHRvIE8obikuCi0g KiAoUnVudGltZSBiZWhhdmlvciBpcyBkZXNjcmliZWQgaW4gQ2hhcHRlciBWSUlJLikKLSAqCi0g KiBUaGlzIHBoYXNlIGRldGVybWluZXMgd2hldGhlciB0aGUgcGF0dGVybiBoYXMgYSBzdHJ1Y3R1 cmUgc3VpdGFibGUgZm9yIHRoZQotICogYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24gYW5kIHNldHMg ZmxhZ3Mgb24gdGhlIHJlbGV2YW50IGVsZW1lbnRzOgotICoKLSAqICAgUlBSX0VMRU1fQUJTT1JC QUJMRSAgICAgICAgIEFic29ycHRpb24gY29tcGFyaXNvbiBwb2ludAotICogICBSUFJfRUxFTV9B QlNPUkJBQkxFX0JSQU5DSCAgRWxlbWVudCB3aXRoaW4gYW4gYWJzb3JiYWJsZSByZWdpb24KLSAq Ci0gKiBFbGlnaWJpbGl0eSBjb25kaXRpb25zOgotICoKLSAqICAgKDEpIFNLSVAgUEFTVCBMQVNU IFJPVyAobm90IE5FWFQgUk9XKQotICogICAoMikgRnJhbWUgZW5kIGlzIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSAqCi0gKiBTdHJ1Y3R1cmFsIGNvbmRpdGlvbnMgKGlzVW5ib3VuZGVkU3RhcnQgKyBj b21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZSk6Ci0gKgotICogICBDYXNlIDE6IFNpbXBsZSBW QVIrIChlLmcuLCBBKykKLSAqICAgICAgICAgICAtPiBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9C UkFOQ0ggc2V0IG9uIHRoZSBWQVIKLSAqICAgQ2FzZSAyOiBHUk9VUCsgd2l0aCBmaXhlZC1sZW5n dGggY2hpbGRyZW4gKG1pbiA9PSBtYXgsIHJlY3Vyc2l2ZWx5KQotICogICAgICAgICAgIGUuZy4s IChBIEIpKywgKEEgQnsyfSkrLCAoKEEgKEIgQyl7Mn0pezJ9KSsKLSAqICAgICAgICAgICAtPiBB QlNPUkJBQkxFX0JSQU5DSCBvbiBhbGwgZWxlbWVudHMgd2l0aGluIHRoZSBncm91cCwKLSAqICAg ICAgICAgICAgICBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0ggb24gRU5ECi0gKgotICog ICAgICAgICAgIFdoeSB0aGlzIGlzIHNhZmU6IHdoZW4gZXZlcnkgY2hpbGQgaGFzIG1pbiA9PSBt YXgsIHRoZSBncm91cAotICogICAgICAgICAgIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRv IHVucm9sbGluZyBpdHMgYm9keSBpbnRvIHsxLDF9Ci0gKiAgICAgICAgICAgZWxlbWVudHMuICBF LmcuLCAoQSBCezJ9KSsgYmVoYXZlcyBsaWtlIChBIEIgQikrLiAgRWFjaAotICogICAgICAgICAg IGl0ZXJhdGlvbiBjb25zdW1lcyBhIGZpeGVkIG51bWJlciBvZiByb3dzLCBzbyBhbiBlYXJsaWVy Ci0gKiAgICAgICAgICAgY29udGV4dCdzIGNvdW50IGFsd2F5cyBkb21pbmF0ZXMgYSBsYXRlciBv bmUncyAobW9ub3RvbmljaXR5KS4KLSAqCi0gKiAgIENhc2UgMzogR1JPVVArIHdob3NlIGJvZHkg c3RhcnRzIHdpdGggVkFSKyAoZS5nLiwgKEErIEIpKykKLSAqICAgICAgICAgICAtPiBSZWN1cnNl cyBmcm9tIEJFR0lOIGludG8gdGhlIGJvZHksIGFwcGx5aW5nIENhc2UgMS4KLSAqICAgICAgICAg ICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBzZXQgb24gQS4KLSAqICAgICAgICAg ICAgIEIgYW5kIEVORCBnZXQgbm8gZmxhZ3MgLT4gYWJzb3JwdGlvbiBzdG9wcyBvbmNlIHBhc3Qg QS4KLSAqCi0gKiBBYnNvcmJhYmlsaXR5IGlzIGRldGVybWluZWQgcGVyLWVsZW1lbnQsIG5vdCBw ZXItcGF0dGVybi4KLSAqIEFic29ycHRpb24gY29tcGFyaXNvbiBpcyBwZXJmb3JtZWQgb25seSB3 aGVuIGEgc3RhdGUgcmVzaWRlcyBhdCBhbgotICogZWxlbWVudCB3aXRoIHRoZSBSUFJfRUxFTV9B QlNPUkJBQkxFIGZsYWcuIE9uY2UgYSBzdGF0ZSBsZWF2ZXMgdGhlCi0gKiBmbGFnZ2VkIHJlZ2lv biwgYWJzb3JwdGlvbiBpcyBwZXJtYW5lbnRseSBkaXNhYmxlZCBmb3IgdGhhdCBzdGF0ZS4KLSAq Ci0gKiBUaHJvdWdoIHRoaXMgbWVjaGFuaXNtLCB0aGUgcnVudGltZSBndWFyYW50ZWVzIG1vbm90 b25pY2l0eToKLSAqICJhIGNvbnRleHQgdGhhdCBzdGFydGVkIGVhcmxpZXIgYWx3YXlzIHN1YnN1 bWVzIGEgY29udGV4dCB0aGF0Ci0gKiBzdGFydGVkIGxhdGVyLiIKLSAqCi0gKiBDaGFwdGVyIFYg IE5GQSBSdW50aW1lIERhdGEgU3RydWN0dXJlcwotICogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICoK LSAqIFYtMS4gUlBSTkZBU3RhdGUgLS0gTkZBIFN0YXRlCi0gKgotICogQSBzaW5nbGUgTkZBIHN0 YXRlIHJlcHJlc2VudHMgImhvdyBmYXIgdGhlIHBhdHRlcm4gaGFzIHByb2dyZXNzZWQuIgotICoK LSAqICAgRmllbGQgICAgICAgICBEZXNjcmlwdGlvbgotICogICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogICBlbGVtSWR4ICAg ICAgIEluZGV4IG9mIHRoZSBjdXJyZW50IHBhdHRlcm4gZWxlbWVudAotICogICBjb3VudHNbXSAg ICAgIFJlcGV0aXRpb24gY291bnQgcGVyIGdyb3VwIGRlcHRoCi0gKiAgIGlzQWJzb3JiYWJsZSAg V2hldGhlciB0aGUgc3RhdGUgaXMgaW4gYW4gYWJzb3JiYWJsZSByZWdpb24KLSAqICAgbmV4dCAg ICAgICAgICBOZXh0IHN0YXRlIGluIHRoZSBsaW5rZWQgbGlzdAotICoKLSAqIFRoZSBzaXplIG9m IHRoZSBjb3VudHMgYXJyYXkgaXMgcnBQYXR0ZXJuLT5tYXhEZXB0aCAoPSBtYXhpbXVtIGdyb3Vw Ci0gKiBuZXN0aW5nIGRlcHRoICsgMSksIGFsbG9jYXRlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1l bWJlciBhdCB0aGUgZW5kIG9mCi0gKiB0aGUgc3RydWN0LgotICoKLSAqIEV4YW1wbGU6IEluIFBB VFRFUk4gKChBIEIpKyBDKSwgYSBzdGF0ZSB3YWl0aW5nIGZvciBCIGluIHRoZSAzcmQgaXRlcmF0 aW9uCi0gKgotICogICBFbGVtZW50IGFycmF5OiBbMDpCRUdJTihkMCkgMTpBKGQxKSAyOkIoZDEp IDM6RU5EKGQwKSA0OkMoZDApIDU6RklOXQotICoKLSAqICAgZWxlbUlkeCA9IDIgKEIsIGRlcHRo IDEpCi0gKiAgIGNvdW50c1swXSA9IDIgKGRlcHRoIDA6IGRlcHRoIG9mIEVORC4gR3JvdXAgY29t cGxldGVkIDIgaXRlcmF0aW9ucykKLSAqICAgY291bnRzWzFdID0gMSAoZGVwdGggMTogZGVwdGgg b2YgQi4gQSBtYXRjaGVkIGluIGN1cnJlbnQgaXRlcmF0aW9uKQotICoKLSAqICAgQ291bnRzIGFy ZSBpbmRleGVkIGJ5IGRlcHRoLCBub3QgYnkgZWxlbUlkeC4KLSAqICAgY291bnRzWzBdIGlzIGlu Y3JlbWVudGVkIHdoZW4gcGFzc2luZyB0aHJvdWdoIEVORChkZXB0aCAwKSwKLSAqICAgYW5kIHRo ZSBncm91cCByZXBldGl0aW9uIGNvdW50IGlzIHByZXNlcnZlZCBldmVuIHdoZW4KLSAqICAgdGhl IHN0YXRlIGlzIGF0IEIoZGVwdGggMSkuCi0gKgotICogRGVmaW5pdGlvbiBvZiB0d28gc3RhdGVz IGJlaW5nICJlcXVhbCI6Ci0gKgotICogICBUd28gc3RhdGVzIGFyZSBlcXVhbCBpZiB0aGV5IGhh dmUgdGhlIHNhbWUgZWxlbUlkeCBhbmQgdGhlIHNhbWUgY291bnRzCi0gKiAgIHVwIHRvIHRoZSBk ZXB0aCBvZiB0aGF0IGVsZW1lbnQuCi0gKiAgIG5mYV9zdGF0ZXNfZXF1YWwoKSBjb21wYXJlcyBj b3VudHNbMC4uZWxlbS0+ZGVwdGhdIHVzaW5nIG1lbWNtcC4KLSAqICAgT25seSBjb3VudHMgYXQg b3IgYmVsb3cgdGhlIGRlcHRoIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQgYXJlIG1lYW5pbmdmdWwu Ci0gKgotICogVi0yLiBSUFJORkFDb250ZXh0IC0tIE1hdGNoaW5nIENvbnRleHQKLSAqCi0gKiBB IHNpbmdsZSBjb250ZXh0IHJlcHJlc2VudHMgImEgbWF0Y2hpbmcgYXR0ZW1wdCBzdGFydGVkIGZy b20gYSBzcGVjaWZpYwotICogc3RhcnQgcm93LiIKLSAqCi0gKiAgIEZpZWxkICAgICAgICAgICAg ICAgICBEZXNjcmlwdGlvbgotICogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICAgc3RhdGVzICAgICAgICAg ICAgICAgIExpbmtlZCBsaXN0IG9mIGFjdGl2ZSBORkEgc3RhdGVzCi0gKiAgIG1hdGNoU3RhcnRS b3cgICAgICAgICBSb3cgbnVtYmVyIHdoZXJlIG1hdGNoaW5nIHN0YXJ0ZWQKLSAqICAgbWF0Y2hF bmRSb3cgICAgICAgICAgIFJvdyBudW1iZXIgd2hlcmUgbWF0Y2hpbmcgY29tcGxldGVkCi0gKiAg ICAgICAgICAgICAgICAgICAgICAgICAoLTEgaWYgaW5jb21wbGV0ZSkKLSAqICAgbGFzdFByb2Nl c3NlZFJvdyAgICAgIExhc3Qgcm93IHByb2Nlc3NlZAotICogICBtYXRjaGVkU3RhdGUgICAgICAg ICAgU3RhdGUgdGhhdCByZWFjaGVkIEZJTiAoZm9yIGdyZWVkeSBmYWxsYmFjaykKLSAqICAgaGFz QWJzb3JiYWJsZVN0YXRlICAgIFdoZXRoZXIgdGhpcyBjb250ZXh0IGNhbiBhYnNvcmIgb3RoZXIg Y29udGV4dHMKLSAqICAgYWxsU3RhdGVzQWJzb3JiYWJsZSAgIFdoZXRoZXIgdGhpcyBjb250ZXh0 IGNhbiBiZSBhYnNvcmJlZAotICogICBuZXh0LCBwcmV2ICAgICAgICAgICAgRG91Ymx5LWxpbmtl ZCBsaXN0Ci0gKgotICogU2luY2UgdGhlIE5GQSBpcyBub25kZXRlcm1pbmlzdGljLCBtdWx0aXBs ZSBzdGF0ZXMgY2FuIGNvZXhpc3QKLSAqIHNpbXVsdGFuZW91c2x5IHdpdGhpbiBhIHNpbmdsZSBj b250ZXh0LgotICoKLSAqIEV4YW1wbGU6IEluIFBBVFRFUk4gKEEgfCBCKSBDLCBpZiB0aGUgZmly c3Qgcm93IG1hdGNoZXMgYm90aCBBIGFuZCBCLAotICogdHdvIHN0YXRlcyBjb2V4aXN0IHdpdGhp biB0aGUgY29udGV4dDoKLSAqCi0gKiAgIFN0YXRlIDE6IGVsZW1JZHg9MyAod2FpdGluZyBmb3Ig QywgdmlhIGJyYW5jaCBBKQotICogICBTdGF0ZSAyOiBlbGVtSWR4PTMgKHdhaXRpbmcgZm9yIEMs IHZpYSBicmFuY2ggQikKLSAqCi0gKiBJbiB0aGlzIGNhc2UsIHNpbmNlIHRoZSAoZWxlbUlkeCwg Y291bnRzKSBvZiB0aGUgdHdvIHN0YXRlcyBhcmUgZXF1YWwsCi0gKiBuZmFfYWRkX3N0YXRlX3Vu aXF1ZSgpIHJldGFpbnMgb25seSBTdGF0ZSAxIChicmFuY2ggQSksIHdoaWNoIHdhcwotICogYWRk ZWQgZmlyc3QuCi0gKiBCZWNhdXNlIERGUyBwcm9jZXNzZXMgdGhlIGZpcnN0IGJyYW5jaCBvZiBB TFQgZmlyc3QsIHRoZSBzdGF0ZSB2aWEgQQotICogaXMgcmVnaXN0ZXJlZCBmaXJzdCwgYW5kIHRo ZSBzdGF0ZSB2aWEgQiBpcyBkaXNjYXJkZWQgYXMgYSBkdXBsaWNhdGUuCi0gKiBUaGlzIGlzIHRo ZSBwcmVmZXJtZW50IGd1YXJhbnRlZS4KLSAqCi0gKiBWLTMuIFJQUiBGaWVsZHMgb2YgV2luZG93 QWdnU3RhdGUKLSAqCi0gKiAgIG5mYUNvbnRleHQgLyBuZmFDb250ZXh0VGFpbCAgIERvdWJseS1s aW5rZWQgbGlzdCBvZiBhY3RpdmUgY29udGV4dHMKLSAqICAgbmZhQ29udGV4dEZyZWUgICAgICAg ICAgICAgICAgUmV1c2UgcG9vbCBmb3IgY29udGV4dHMKLSAqICAgbmZhU3RhdGVGcmVlICAgICAg ICAgICAgICAgICAgUmV1c2UgcG9vbCBmb3Igc3RhdGVzCi0gKiAgIG5mYVZhck1hdGNoZWQgICAg ICAgICAgICAgICAgIFBlci1yb3cgY2FjaGU6IHZhck1hdGNoZWRbdmFySWRdCi0gKiAgIG5mYVZp c2l0ZWRFbGVtcyAgICAgICAgICAgICAgIEJpdG1hcCBmb3IgY3ljbGUgZGV0ZWN0aW9uCi0gKiAg IG5mYVN0YXRlU2l6ZSAgICAgICAgICAgICAgICAgIFByZWNvbXB1dGVkIHNpemUgb2YgUlBSTkZB U3RhdGUKLSAqCi0gKiBNZW1vcnkgbWFuYWdlbWVudDoKLSAqCi0gKiAgIFN0YXRlcyBhbmQgY29u dGV4dHMgYXJlIG1hbmFnZWQgdGhyb3VnaCB0aGVpciBvd24gZnJlZSBsaXN0cy4KLSAqICAgSW5z dGVhZCBvZiBwYWxsb2MsIHRoZXkgYXJlIG9idGFpbmVkIGZyb20gdGhlIHJldXNlIHBvb2wsIGFu ZAotICogICByZXR1cm5lZCB0byB0aGUgcG9vbCB1cG9uIGRlYWxsb2NhdGlvbi4KLSAqICAgVGhp cyByZWR1Y2VzIHRoZSBvdmVyaGVhZCBvZiBmcmVxdWVudCBhbGxvY2F0aW9uL2RlYWxsb2NhdGlv bi4KLSAqCi0gKiBDaGFwdGVyIFZJICBORkEgRXhlY3V0aW9uOiAzLVBoYXNlIE1vZGVsCi0gKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0gKgotICogVkktMS4gRW50cnkgUG9pbnQgYW5kIE92ZXJhbGwg RmxvdwotICoKLSAqIFdoZW4gdGhlIHdpbmRvdyBmdW5jdGlvbiBwcm9jZXNzZXMgZWFjaCByb3cs IHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKCkKLSAqIGlzIGNhbGxlZC4gVGhpcyBmdW5jdGlvbiBk ZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgcm93IGJlbG9uZ3MgdG8KLSAqIGEgbWF0Y2hl ZCBmcmFtZSwgYW5kIGlmIG5lY2Vzc2FyeSwgY2FsbHMgdXBkYXRlX3JlZHVjZWRfZnJhbWUoKSB0 bwotICogZHJpdmUgdGhlIE5GQS4KLSAqCi0gKiBGbG93IG9mIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1l KCk6Ci0gKgotICogICAoMSkgRmluZCBvciBjcmVhdGUgYSBjb250ZXh0IGZvciB0aGUgdGFyZ2V0 IHJvdwotICogICAoMikgRW50ZXIgdGhlIHJvdyBwcm9jZXNzaW5nIGxvb3AKLSAqICAgKDMpIEFm dGVyIHRoZSBsb29wIGVuZHMsIHJlY29yZCB0aGUgbWF0Y2ggcmVzdWx0Ci0gKgotICogUHNldWRv Y29kZSBvZiB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcDoKLSAqCi0gKiAgIHRhcmdldEN0eCA9IEV4 ZWNSUFJHZXRIZWFkQ29udGV4dChwb3MpCi0gKiAgIGlmIHRhcmdldEN0eCA9PSBOVUxMOgotICog ICAgICAgdGFyZ2V0Q3R4ID0gRXhlY1JQUlN0YXJ0Q29udGV4dChwb3MpCi0gKgotICogICBmb3Ig Y3VycmVudFBvcyA9IHN0YXJ0UG9zOyB0YXJnZXRDdHgtPnN0YXRlcyAhPSBOVUxMOyBjdXJyZW50 UG9zKys6Ci0gKiAgICAgICBpZiBub3QgbmZhX2V2YWx1YXRlX3JvdyhjdXJyZW50UG9zKTogIC0t IHJvdyBkb2VzIG5vdCBleGlzdAotICogICAgICAgICAgIEV4ZWNSUFJGaW5hbGl6ZUFsbENvbnRl eHRzKCkgICAgICAtLSBmaW5hbGl6ZSBhbGwgY29udGV4dHMKLSAqICAgICAgICAgICBFeGVjUlBS Q2xlYW51cERlYWRDb250ZXh0cygpICAgICAgLS0gY2xlYW4gdXAgYWZ0ZXIgZmluYWxpemF0aW9u Ci0gKiAgICAgICAgICAgYnJlYWsKLSAqCi0gKiAgICAgICBFeGVjUlBSUHJvY2Vzc1JvdyhjdXJy ZW50UG9zKSAgICAgICAgIC0tIDMtcGhhc2UgcHJvY2Vzc2luZwotICogICAgICAgRXhlY1JQUlN0 YXJ0Q29udGV4dChjdXJyZW50UG9zICsgMSkgICAtLSBwcmUtY3JlYXRlIG5leHQgc3RhcnQgcG9p bnQKLSAqICAgICAgIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzKCkgICAgICAgICAgLS0gcmVt b3ZlIGRlYWQgY29udGV4dHMKLSAqCi0gKiBLZXkgcG9pbnQ6IFByb2Nlc3NpbmcgYSBzaW5nbGUg cm93IG1heSByZXF1aXJlIHByb2Nlc3NpbmcgbXVsdGlwbGUgcm93cwotICogYWhlYWQuIER1ZSB0 byB0aGUgbmF0dXJlIG9mIHdpbmRvdyBmdW5jdGlvbnMsIGRldGVybWluaW5nIHRoZSBmcmFtZSBm b3IKLSAqIHJvdyBOIHJlcXVpcmVzIGxvb2tpbmcgYXQgcm93cyBiZXlvbmQgTi4KLSAqCi0gKiBW SS0yLiBDb250ZXh0IENyZWF0aW9uOiBFeGVjUlBSU3RhcnRDb250ZXh0KCkKLSAqCi0gKiBDcmVh dGVzIGEgbmV3IGNvbnRleHQgYW5kIHBlcmZvcm1zIHRoZSBpbml0aWFsIGFkdmFuY2UuCi0gKgot ICogICAoMSkgQWxsb2NhdGUgY29udGV4dCB2aWEgbmZhX2NvbnRleHRfYWxsb2MoKQotICogICAo MikgU2V0IG1hdGNoU3RhcnRSb3cgPSBwb3MKLSAqICAgKDMpIENyZWF0ZSBpbml0aWFsIHN0YXRl OiBlbGVtSWR4PTAgKGZpcnN0IHBhdHRlcm4gZWxlbWVudCksCi0gKiAgICAgICBjb3VudHM9YWxs IHplcm8KLSAqICAgKDQpIENhbGwgbmZhX2FkdmFuY2UoaW5pdGlhbEFkdmFuY2U9dHJ1ZSkKLSAq Ci0gKiBUaGUgaW5pdGlhbCBhZHZhbmNlIGV4cGFuZHMgZXBzaWxvbiB0cmFuc2l0aW9ucyBhdCB0 aGUgYmVnaW5uaW5nIG9mCi0gKiB0aGUgcGF0dGVybi4gRm9yIGV4YW1wbGUsIHRoZSBpbml0aWFs IGFkdmFuY2UgZm9yIFBBVFRFUk4gKChBIHwgQikgQyk6Ci0gKgotICogICBTdGFydDogZWxlbUlk eD0wIChBTFQpCi0gKiAgICAgLT4gRXhwYW5kIEFMVCBicmFuY2hlcwotICogICAgICAgLT4gZWxl bUlkeD0xIChBKSAtLSBWQVIsIHNvIGFkZCBzdGF0ZTsgc3RvcCBoZXJlCi0gKiAgICAgICAtPiBl bGVtSWR4PTIgKEIpIC0tIFZBUiwgc28gYWRkIHN0YXRlOyBzdG9wIGhlcmUKLSAqCi0gKiAgIFJl c3VsdDogVHdvIHN0YXRlcyBpbiB0aGUgY29udGV4dCB7d2FpdGluZyBmb3IgQSwgd2FpdGluZyBm b3IgQn0KLSAqCi0gKiBEdXJpbmcgdGhlIGluaXRpYWwgYWR2YW5jZSwgcmVhY2hpbmcgRklOIGlz IG5vdCByZWNvcmRlZCBhcyBhIG1hdGNoLgotICogVGhpcyBpcyB0byBwcmV2ZW50IGVtcHR5IG1h dGNoZXMuCi0gKgotICogVkktMy4gUm93IEV2YWx1YXRpb246IG5mYV9ldmFsdWF0ZV9yb3coKQot ICoKLSAqIEV2YWx1YXRlcyBhbGwgdmFyaWFibGUgY29uZGl0aW9ucyBpbiB0aGUgREVGSU5FIGNs YXVzZSBhdCBvbmNlIGZvcgotICogdGhlIGN1cnJlbnQgcm93LgotICoKLSAqICAgZm9yIGVhY2gg ZGVmaW5lQ2xhdXNlW2ldOgotICogICAgICAgcmVzdWx0ID0gRXhlY0V2YWxFeHByKGRlZmluZUNs YXVzZVtpXSkKLSAqICAgICAgIHZhck1hdGNoZWRbaV0gPSAobm90IG51bGwgYW5kIHRydWUpCi0g KgotICogVG8gc3VwcG9ydCByb3cgbmF2aWdhdGlvbiBvcGVyYXRvcnMgKFBSRVYsIE5FWFQsIEZJ UlNULCBMQVNUKSwKLSAqIGEgMS1zbG90IG1vZGVsIGlzIHVzZWQ6IG9ubHkgZWN4dF9vdXRlcnR1 cGxlIGlzIHNldCB0byB0aGUgY3VycmVudAotICogcm93LiAgTmF2aWdhdGlvbiBpcyBoYW5kbGVk IGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCi0gKiBlbWl0dGVkIGR1cmluZyBE RUZJTkUgZXhwcmVzc2lvbiBjb21waWxhdGlvbjoKLSAqCi0gKiAgIE5BVl9TRVQ6ICAgICBzYXZl IGVjeHRfb3V0ZXJ0dXBsZSwgc3dhcCBpbiB0YXJnZXQgcm93IHZpYSBuYXZfc2xvdAotICogICAo ZXZhbHVhdGUpOiAgYXJndW1lbnQgZXhwcmVzc2lvbiByZWFkcyBmcm9tIHN3YXBwZWQgc2xvdAot ICogICBOQVZfUkVTVE9SRTogcmVzdG9yZSBvcmlnaW5hbCBlY3h0X291dGVydHVwbGUKLSAqCi0g KiBDb21wb3VuZCBuYXZpZ2F0aW9uIChQUkVWKEZJUlNUKCkpLCBORVhUKEZJUlNUKCkpLCBQUkVW KExBU1QoKSksCi0gKiBORVhUKExBU1QoKSkpIGlzIGZsYXR0ZW5lZCBieSB0aGUgcGFyc2VyIGlu dG8gYSBzaW5nbGUgUlBSTmF2RXhwcgotICogd2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9OQVZf UFJFVl9GSVJTVCwgZXRjLikuICBUaGUgZXhlY3V0b3IKLSAqIGNvbXB1dGVzIHRoZSB0YXJnZXQg cG9zaXRpb24gaW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCi0gKiBwb2lu dCAobWF0Y2hfc3RhcnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdlIHZh bGlkYXRpb24sCi0gKiB0aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICgrLy0gTSkgd2l0aCBwYXJ0 aXRpb24tcmFuZ2UgdmFsaWRhdGlvbi4KLSAqIElmIGVpdGhlciBzdGVwIGlzIG91dCBvZiByYW5n ZSwgdGhlIHJlc3VsdCBpcyBOVUxMLgotICoKLSAqIG5hdl9zbG90IGNhY2hlcyB0aGUgbGFzdCBm ZXRjaGVkIHBvc2l0aW9uIChuYXZfc2xvdF9wb3MpIHRvIGF2b2lkCi0gKiByZWR1bmRhbnQgdHVw bGVzdG9yZSBsb29rdXBzIHdoZW4gbXVsdGlwbGUgbmF2aWdhdGlvbiBjYWxscyB0YXJnZXQKLSAq IHRoZSBzYW1lIHJvdy4KLSAqCi0gKiBUaGUgdmFyTWF0Y2hlZCBhcnJheSBpcyByZWZlcmVuY2Vk IGxhdGVyIGluIFBoYXNlIDEgKE1hdGNoKS4KLSAqCi0gKiBWSS00LiBQZXItQ29udGV4dCBSZS1l dmFsdWF0aW9uIChtYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzKQotICoKLSAqIERFRklO RSB2YXJpYWJsZXMgdGhhdCBkZXBlbmQgb24gbWF0Y2hfc3RhcnQgKHRob3NlIGNvbnRhaW5pbmcg RklSU1QsCi0gKiBMQVNULXdpdGgtb2Zmc2V0LCBvciBjb21wb3VuZCBQUkVWX0ZJUlNUL05FWFRf RklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCkKLSAqIGFyZSBpZGVudGlmaWVkIGF0IHBsYW4gdGlt ZSB2aWEgZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudC4gIFRoZSBzaGFyZWQKLSAqIGV2YWx1YXRp b24gaW4gbmZhX2V2YWx1YXRlX3JvdygpIHVzZXMgdGhlIGhlYWQgY29udGV4dCdzIG1hdGNoU3Rh cnRSb3cKLSAqIGZvciBGSVJTVC9MQVNUIGJhc2UgcG9zaXRpb24uCi0gKgotICogV2hlbiBwcm9j ZXNzaW5nIGEgY29udGV4dCB3aG9zZSBtYXRjaFN0YXJ0Um93IGRpZmZlcnMgZnJvbSB0aGUgc2hh cmVkCi0gKiB2YWx1ZSwgbmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMoKSB0ZW1wb3Jhcmls eSBzZXRzIG5hdl9tYXRjaF9zdGFydAotICogdG8gdGhhdCBjb250ZXh0J3MgbWF0Y2hTdGFydFJv dyBhbmQgcmUtZXZhbHVhdGVzIG9ubHkgdGhlIGRlcGVuZGVudAotICogdmFyaWFibGVzLiAgVGhl IG9yaWdpbmFsIG5hdl9tYXRjaF9zdGFydCBhbmQgY3VycmVudHBvcyBhcmUgc2F2ZWQgYW5kCi0g KiByZXN0b3JlZCBhZnRlciByZS1ldmFsdWF0aW9uLgotICoKLSAqIFN1bW1hcnkgb2YgZXZhbHVh dGlvbiBzdHJhdGVneSBieSBuYXZpZ2F0aW9uIGNvbnRlbnQ6Ci0gKgotICogICBOYXZpZ2F0aW9u IGNvbnRlbnQgICAgICAgICAgICAgICBldmFsdWF0aW9uCi0gKiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICAgTm8gbmF2aWdhdGlv biAgICAgICAgICAgICAgICAgICAgc2hhcmVkIChvbmNlIHBlciByb3cpCi0gKiAgIFBSRVYvTkVY VCBvbmx5ICAgICAgICAgICAgICAgICAgIHNoYXJlZCAob25jZSBwZXIgcm93KQotICogICBMQVNU IChubyBvZmZzZXQpICAgICAgICAgICAgICAgICBzaGFyZWQgKG9uY2UgcGVyIHJvdykKLSAqICAg TEFTVCAod2l0aCBvZmZzZXQpICAgICAgICAgICAgICAgcGVyLWNvbnRleHQKLSAqICAgRklSU1Qg KGFueSkgICAgICAgICAgICAgICAgICAgICAgcGVyLWNvbnRleHQKLSAqICAgQ29tcG91bmQgKGlu bmVyIEZJUlNUKSAgICAgICAgICAgcGVyLWNvbnRleHQKLSAqICAgQ29tcG91bmQgKGlubmVyIExB U1QsIG5vIG9mZi4pICAgc2hhcmVkIChvbmNlIHBlciByb3cpCi0gKiAgIENvbXBvdW5kIChpbm5l ciBMQVNULCB3L29mZi4pICAgIHBlci1jb250ZXh0Ci0gKgotICogVkktNS4gVHVwbGVzdG9yZSBN YXJrIGFuZCBUcmltIChub2RlV2luZG93QWdnLmMpCi0gKgotICogTmF2aWdhdGlvbiBmdW5jdGlv bnMgcmVxdWlyZSBhY2Nlc3MgdG8gcGFzdCByb3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KLSAqIFRv IGFsbG93IHR1cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0aGF0IGFyZSBubyBsb25nZXIg cmVhY2hhYmxlLAotICogdGhlIHBsYW5uZXIgY29tcHV0ZXMgdHdvIG9mZnNldHMgKHNlZSBjb21w dXRlX25hdl9vZmZzZXRzKToKLSAqCi0gKiAgIG5hdk1heE9mZnNldCAoTmF2IE1hcmsgTG9va2Jh Y2spOgotICogICAgIE1heGltdW0gYmFja3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zLiAgQ29u dHJpYnV0ZWQgYnkgUFJFViwKLSAqICAgICBMQVNULXdpdGgtb2Zmc2V0LCBhbmQgY29tcG91bmQg UFJFVl9MQVNUL05FWFRfTEFTVC4KLSAqICAgICBNYXJrIHBvc2l0aW9uOiBjdXJyZW50cG9zIC0g bmF2TWF4T2Zmc2V0LgotICoKLSAqICAgbmF2Rmlyc3RPZmZzZXQgKE5hdiBNYXJrIExvb2thaGVh ZCk6Ci0gKiAgICAgTWluaW11bSBmb3J3YXJkIG9mZnNldCBmcm9tIG1hdGNoX3N0YXJ0LiAgQ29u dHJpYnV0ZWQgYnkgRklSU1QKLSAqICAgICBhbmQgY29tcG91bmQgUFJFVl9GSVJTVC9ORVhUX0ZJ UlNULiAgQ2FuIGJlIG5lZ2F0aXZlIHdoZW4KLSAqICAgICBjb21wb3VuZCBQUkVWX0ZJUlNUIGxv b2tzIGJlZm9yZSBtYXRjaF9zdGFydC4KLSAqICAgICBNYXJrIHBvc2l0aW9uOiBvbGRlc3RfY29u dGV4dC0+bWF0Y2hTdGFydFJvdyArIG5hdkZpcnN0T2Zmc2V0LgotICoKLSAqIFRoZSBhY3R1YWwg bWFyayBpcyBzZXQgdG86IG1pbihsb29rYmFja19tYXJrLCBsb29rYWhlYWRfbWFyaykuCi0gKiBU aGlzIGVuc3VyZXMgYWxsIHJvd3MgcmVhY2hhYmxlIGJ5IGFueSBuYXZpZ2F0aW9uIGZ1bmN0aW9u IGFyZSByZXRhaW5lZC4KLSAqCi0gKiBXaGVuIG9mZnNldHMgY29udGFpbiBub24tY29uc3RhbnQg ZXhwcmVzc2lvbnMgKFBhcmFtKSwgdGhlIHBsYW5uZXIgc2V0cwotICogbmF2TWF4T2Zmc2V0S2lu ZC9uYXZGaXJzdE9mZnNldEtpbmQgdG8gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCBhbmQgdGhl Ci0gKiBleGVjdXRvciBldmFsdWF0ZXMgdGhlbSBhdCBpbml0IHRpbWUuICBPbiBvdmVyZmxvdywg dGhlIGtpbmQgaXMgc2V0IHRvCi0gKiBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMLCBkaXNhYmxp bmcgdHJpbSBmb3IgdGhhdCBkaW1lbnNpb24uCi0gKgotICogVkktNi4gRXhlY1JQUlByb2Nlc3NS b3coKTogMy1QaGFzZSBQcm9jZXNzaW5nCi0gKgotICogTkZBIHByb2Nlc3NpbmcgZm9yIGEgc2lu Z2xlIHJvdyBpcyBkaXZpZGVkIGludG8gdGhyZWUgcGhhc2VzOgotICoKLSAqICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICogICB8ICBQaGFzZSAxOiBN QVRDSCAoY29udmVyZ2VuY2UpICAgICAgICAgICAgICB8Ci0gKiAgIHwgIENvbXBhcmUgdGhlIGN1 cnJlbnQgcm93IGFnYWluc3QgZWFjaCBWQVIgIHwKLSAqICAgfCAgc3RhdGUuIFJlbW92ZSBzdGF0 ZXMgdGhhdCBmYWlsIHRvIG1hdGNoLiAgfAotICogICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Ci0gKiAgIHwgIFBoYXNlIDI6IEFCU09SQiAoYWJzb3JwdGlv bikgICAgICAgICAgICAgIHwKLSAqICAgfCAgTWVyZ2UgZHVwbGljYXRlIGNvbnRleHRzIHRvIHBy ZXZlbnQgICAgICAgfAotICogICB8ICBzdGF0ZSBleHBsb3Npb24uICAgICAgICAgICAgICAgICAg ICAgICAgICB8Ci0gKiAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKLSAqICAgfCAgUGhhc2UgMzogQURWQU5DRSAoZXhwYW5zaW9uKSAgICAgICAgICAgICAg fAotICogICB8ICBFeHBhbmQgZXBzaWxvbiB0cmFuc2l0aW9ucyB0byBwcmVwYXJlICAgICB8Ci0g KiAgIHwgIGZvciB0aGUgbmV4dCByb3cuICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICoKLSAqIFRo aXMgb3JkZXJpbmcgaXMgaW1wb3J0YW50OgotICoKLSAqICAgLSBNYXRjaCBleGVjdXRlcyBmaXJz dCB0byAiY29uc3VtZSB0aGUgY3VycmVudCByb3cuIgotICogICAtIEFic29yYiBleGVjdXRlcyBp bW1lZGlhdGVseSBhZnRlciBNYXRjaCwgd2hlbiBzdGF0ZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCi0g KiAgIC0gQWR2YW5jZSBleGVjdXRlcyBsYXN0IHRvIHByZXBhcmUgInN0YXRlcyB3YWl0aW5nIGZv ciB0aGUgbmV4dCByb3cuIgotICoKLSAqIENoYXB0ZXIgVklJICBQaGFzZSAxOiBNYXRjaAotICog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotICoKLSAqIG5mYV9tYXRjaCgpIGl0ZXJhdGVzIHRocm91Z2gg ZWFjaCBzdGF0ZSBpbiB0aGUgY29udGV4dDoKLSAqCi0gKiAgICgxKSBDaGVjayB3aGV0aGVyIHRo ZSBzdGF0ZSdzIGVsZW1JZHggaXMgYSBWQVIgZWxlbWVudAotICogICAoMikgQ29tcGFyZSBhZ2Fp bnN0IHRoZSBjdXJyZW50IHJvdyB1c2luZyBuZmFfZXZhbF92YXJfbWF0Y2goKQotICogICAoMykg TWF0Y2ggc3VjY2VzczogaW5jcmVtZW50IHJlcGV0aXRpb24gY291bnQsIHJldGFpbiBzdGF0ZQot ICogICAoNCkgTWF0Y2ggZmFpbHVyZTogcmVtb3ZlIHN0YXRlCi0gKgotICogTWF0Y2ggZGV0ZXJt aW5hdGlvbiAobmZhX2V2YWxfdmFyX21hdGNoKToKLSAqCi0gKiAgIElmIHZhcklkIGlzIHdpdGhp biB0aGUgcmFuZ2Ugb2YgZGVmaW5lVmFyaWFibGVMaXN0OgotICogICAgICAgVXNlIHRoZSB2YWx1 ZSBvZiB2YXJNYXRjaGVkW3ZhcklkXQotICoKLSAqICAgSWYgdmFySWQgZXhjZWVkcyB0aGUgcmFu Z2UgKHZhcmlhYmxlIG5vdCBkZWZpbmVkIGluIERFRklORSk6Ci0gKiAgICAgICBVbmNvbmRpdGlv bmFsbHkgdHJ1ZSAobWF0Y2hlcyBhbGwgcm93cykKLSAqCi0gKiBJbW1lZGlhdGUgYWR2YW5jZSBm b3Igc2ltcGxlIFZBUnM6Ci0gKgotICogICBGb3IgYSBWQVIgd2l0aCBtaW49MSwgbWF4PTEgd2hl cmUgdGhlIG5leHQgZWxlbWVudCBpcyBFTkQsCi0gKiAgIHRoZSBNYXRjaCBwaGFzZSBwcm9jZXNz ZXMgdGhyb3VnaCBFTkQgaW1tZWRpYXRlbHkuCi0gKiAgIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBh Y2N1cmF0ZSBzdGF0ZSBjb21wYXJpc29uIGluIFBoYXNlIDIgKEFic29yYikuCi0gKgotICogICBF eGFtcGxlOiBJbiBQQVRURVJOICgoQSBCKSspLCB3aGVuIEEgbWF0Y2hlcywgaXQgaW1tZWRpYXRl bHkgYWR2YW5jZXMKLSAqICAgdG8gQiwgYW5kIHdoZW4gQiBtYXRjaGVzLCBpdCBpbW1lZGlhdGVs eSBhZHZhbmNlcyB0aHJvdWdoIEVORCB0bwotICogICBjb21wbGV0ZSB0aGUgZ3JvdXAgY291bnQu IFRoaXMgZW5hYmxlcyBhYnNvcnB0aW9uIGNvbXBhcmlzb24gd2l0aAotICogICBvdGhlciBjb250 ZXh0cy4KLSAqCi0gKiBDaGFwdGVyIFZJSUkgIFBoYXNlIDI6IEFic29yYiAoQ29udGV4dCBBYnNv cnB0aW9uKQotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICoKLSAqIFZJSUktMS4gUHJvYmxlbQot ICoKLSAqIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBhIG5ldyBjb250ZXh0IGlzIHN0 YXJ0ZWQgZm9yIGVhY2ggcm93Ci0gKiBwcm9jZXNzZWQuCi0gKiBBcHBseWluZyBQQVRURVJOIChB KykgdG8gMTAgcm93cyBwcm9kdWNlcyAxMCBjb250ZXh0cywKLSAqIGVhY2ggb2Ygd2hpY2ggdHJh Y2tzIHN0YXRlIGluZGVwZW5kZW50bHkuCi0gKgotICogSWYgdGhlcmUgYXJlIE4gcm93cywgdGhl IHRvdGFsIG51bWJlciBvZiBzdGF0ZXMgYmVjb21lcyBPKE5eMik6Ci0gKgotICogICBDb250ZXh0 IDEgKHN0YXJ0ZWQgYXQgcm93IDEpOiBjYW4gbWF0Y2ggQSB1cCB0byBOIHRpbWVzCi0gKiAgIENv bnRleHQgMiAoc3RhcnRlZCBhdCByb3cgMik6IGNhbiBtYXRjaCBBIHVwIHRvIE4tMSB0aW1lcwot ICogICAuLi4KLSAqICAgQ29udGV4dCBOIChzdGFydGVkIGF0IHJvdyBOKTogY2FuIG1hdGNoIEEg MSB0aW1lCi0gKgotICogVklJSS0yLiBTb2x1dGlvbjogQ29udGV4dCBBYnNvcnB0aW9uCi0gKgot ICogS2V5IG9ic2VydmF0aW9uOiBhIGNvbnRleHQgc3RhcnRlZCBlYXJsaWVyIGNvbnRhaW5zCi0g KiBhbGwgbWF0Y2hlcyBvZiBhIGxhdGVyLXN0YXJ0ZWQgY29udGV4dCAobW9ub3RvbmljaXR5IHBy aW5jaXBsZSkuCi0gKgotICogSWYgQ29udGV4dCAxIHN0YXJ0ZWQgYXQgcm93IDEgYW5kIG1hdGNo ZWQgQSA1IHRpbWVzLAotICogdGhlIHN0YXRlIHdoZXJlIENvbnRleHQgMiAoc3RhcnRlZCBhdCBy b3cgMikgbWF0Y2hlZCBBIDQgdGltZXMKLSAqIGlzIGFscmVhZHkgY29udGFpbmVkIHdpdGhpbiBD b250ZXh0IDEuCi0gKgotICogVGhlcmVmb3JlIENvbnRleHQgMiBjYW4gYmUgImFic29yYmVkIiBp bnRvIENvbnRleHQgMS4KLSAqCi0gKiBWSUlJLTMuIEFic29ycHRpb24gQ29uZGl0aW9ucwotICoK LSAqIFBsYW5uZXItdGltZSBwcmVyZXF1aXNpdGVzIChhbGwgbXVzdCBob2xkIGZvciBhYnNvcnB0 aW9uIHRvIGJlIGVuYWJsZWQpOgotICoKLSAqICAgKGEpIFNLSVAgUEFTVCBMQVNUIFJPVy4gIFNL SVAgVE8gTkVYVCBST1cgY3JlYXRlcyBvdmVybGFwcGluZwotICogICAgICAgY29udGV4dHMgdGhh dCBjYW5ub3QgYmUgc2FmZWx5IGFic29yYmVkLgotICogICAoYikgVW5ib3VuZGVkIGZyYW1lIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRAotICogICAgICAgRk9MTE9XSU5H KS4gIExpbWl0ZWQgZnJhbWVzIGFwcGx5IGRpZmZlcmVudGx5IHRvIGVhY2ggY29udGV4dCwKLSAq ICAgICAgIGJyZWFraW5nIHRoZSBtb25vdG9uaWNpdHkgcHJpbmNpcGxlLgotICogICAoYykgTm8g bWF0Y2hfc3RhcnQtZGVwZW5kZW50IG5hdmlnYXRpb24gaW4gREVGSU5FLgotICoKLSAqICAgICAg IE1lY2hhbmlzbTogZWFjaCBjb250ZXh0IGhhcyBhIGRpZmZlcmVudCBtYXRjaFN0YXJ0Um93LCBz byBGSVJTVAotICogICAgICAgcmVzb2x2ZXMgdG8gYSBkaWZmZXJlbnQgcm93IGZvciBlYWNoIGNv bnRleHQgYXQgdGhlIHNhbWUKLSAqICAgICAgIGN1cnJlbnRwb3MuICBBbiBlYXJsaWVyIGNvbnRl eHQncyBERUZJTkUgcmVzdWx0IG5vIGxvbmdlcgotICogICAgICAgc3Vic3VtZXMgYSBsYXRlciBv bmUncywgbWFraW5nIGNvdW50LWRvbWluYW5jZSBjb21wYXJpc29uCi0gKiAgICAgICBpbnZhbGlk LiAgUmF0aGVyIHRoYW4gY29tcGFyaW5nIG1hdGNoU3RhcnRSb3cgYXQgcnVudGltZQotICogICAg ICAgKHdoaWNoIHdvdWxkIGNvbXBsaWNhdGUgdGhlIGFic29yYiBwYXRoKSwgYW55IG1hdGNoX3N0 YXJ0Ci0gKiAgICAgICBkZXBlbmRlbmN5IGRpc2FibGVzIGFic29ycHRpb24gZW50aXJlbHkuCi0g KgotICogICAgICAgTmF2aWdhdGlvbiBjb250ZW50ICAgICAgICAgICAgICBtYXRjaF9zdGFydCBk ZXAuICBhYnNvcnB0aW9uCi0gKiAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICAgICAgIE5vIG5hdmlnYXRpb24gICAg ICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgc2FmZQotICogICAgICAgUFJFVi9ORVhU IG9ubHkgICAgICAgICAgICAgICAgICBub25lICAgICAgICAgICAgICBzYWZlCi0gKiAgICAgICBM QVNUIChubyBvZmZzZXQpICAgICAgICAgICAgICAgIG5vbmUgICAgICAgICAgICAgIHNhZmUKLSAq ICAgICAgIExBU1QgKHdpdGggb2Zmc2V0KSAgICAgICAgICAgICAgYm91bmRhcnkgY2hlY2sgICAg dW5zYWZlCi0gKiAgICAgICBGSVJTVCAoYW55KSAgICAgICAgICAgICAgICAgICAgIGRpcmVjdCAg ICAgICAgICAgIHVuc2FmZQotICogICAgICAgQ29tcG91bmQgKGlubmVyIEZJUlNUKSAgICAgICAg ICBkaXJlY3QgICAgICAgICAgICB1bnNhZmUKLSAqICAgICAgIENvbXBvdW5kIChpbm5lciBMQVNU LCBubyBvZmYuKSAgbm9uZSAgICAgICAgICAgICAgc2FmZQotICogICAgICAgQ29tcG91bmQgKGlu bmVyIExBU1QsIHcvb2ZmLikgICBib3VuZGFyeSBjaGsgICAgICB1bnNhZmUKLSAqCi0gKiBSdW50 aW1lIGNvbmRpdGlvbnMgKGV2YWx1YXRlZCBwZXIgY29udGV4dCBwYWlyKToKLSAqCi0gKiAgICgx KSBUaGUgcGF0dGVybiBpcyBtYXJrZWQgYXMgaXNBYnNvcmJhYmxlIChzZWUgSVYtNSkKLSAqICAg KDIpIGFsbFN0YXRlc0Fic29yYmFibGUgb2YgdGhlIHRhcmdldCBjb250ZXh0IGlzIHRydWUKLSAq ICAgKDMpIEFuIGVhcmxpZXIgY29udGV4dCAiY292ZXJzIiBhbGwgc3RhdGVzIG9mIHRoZSB0YXJn ZXQKLSAqCi0gKiBDb3ZlciBjb25kaXRpb24gKG5mYV9zdGF0ZXNfY292ZXJlZCk6Ci0gKgotICog ICBBIHN0YXRlIHdpdGggdGhlIHNhbWUgZWxlbUlkeCBleGlzdHMgaW4gdGhlIGVhcmxpZXIgY29u dGV4dCwKLSAqICAgYW5kIHRoZSBjb3VudCBhdCB0aGF0IGRlcHRoIGlzIGdyZWF0ZXIgdGhhbiBv ciBlcXVhbCAtLSB0aGVuIGl0IGlzIGNvdmVyZWQuCi0gKgotICogVklJSS00LiBEdWFsLUZsYWcg RGVzaWduCi0gKgotICogVHdvIGJvb2xlYW4gZmxhZ3MgbWFrZSB0aGUgYWJzb3JwdGlvbiBkZWNp c2lvbiBlZmZpY2llbnQ6Ci0gKgotICogICBoYXNBYnNvcmJhYmxlU3RhdGUgKG1vbm90b25pYzog b25seSB0cnVlLT5mYWxzZSB0cmFuc2l0aW9uIHBvc3NpYmxlKQotICogICAgICJEb2VzIHRoaXMg Y29udGV4dCBoYXZlIHRoZSBhYmlsaXR5IHRvIGFic29yYiBvdGhlciBjb250ZXh0cz8iCi0gKiAg ICAgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgYWJzb3JiYWJsZSBzdGF0ZSBleGlzdHMuCi0gKiAgICAg VHJhbnNpdGlvbnMgdG8gZmFsc2Ugd2hlbiBzdGF0ZXMgYXJlIHJlbW92ZWQgbGVhdmluZyBubyBh YnNvcmJhYmxlCi0gKiAgICAgc3RhdGVzLgotICogICAgIE9uY2UgZmFsc2UsIGl0IG5ldmVyIGJl Y29tZXMgdHJ1ZSBhZ2Fpbi4KLSAqCi0gKiAgIGFsbFN0YXRlc0Fic29yYmFibGUgKGR5bmFtaWM6 IGNhbiBmbHVjdHVhdGUpCi0gKiAgICAgIkNhbiB0aGlzIGNvbnRleHQgYmUgYWJzb3JiZWQ/Igot ICogICAgIHRydWUgaWYgYWxsIHN0YXRlcyBhcmUgaW4gYW4gYWJzb3JiYWJsZSByZWdpb24uCi0g KiAgICAgQmVjb21lcyBmYWxzZSB3aGVuIGEgbm9uLWFic29yYmFibGUgc3RhdGUgaXMgYWRkZWQ7 IHJldmVydHMgdG8gdHJ1ZQotICogICAgIHdoZW4gaXQgaXMgcmVtb3ZlZC4KLSAqCi0gKiBWSUlJ LTUuIEFic29ycHRpb24gT3JkZXIKLSAqCi0gKiBuZmFfYWJzb3JiX2NvbnRleHRzKCkgdHJhdmVy c2VzIGZyb20gdGFpbCAobmV3ZXN0KSB0byBoZWFkIChvbGRlc3QpLgotICoKLSAqICAgZm9yIGN0 eCA9IHRhaWwgdG8gaGVhZDoKLSAqICAgICAgIGlmIGN0eC5hbGxTdGF0ZXNBYnNvcmJhYmxlOgot ICogICAgICAgICAgIGZvciBvbGRlciA9IGN0eC5wcmV2IHRvIGhlYWQ6Ci0gKiAgICAgICAgICAg ICAgIGlmIG9sZGVyLmhhc0Fic29yYmFibGVTdGF0ZToKLSAqICAgICAgICAgICAgICAgICAgIGlm IG5mYV9zdGF0ZXNfY292ZXJlZChvbGRlciwgY3R4KToKLSAqICAgICAgICAgICAgICAgICAgICAg ICBmcmVlKGN0eCkgIC0tIGFic29yYmVkCi0gKiAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK LSAqCi0gKiBTaW5jZSBpbnNwZWN0aW9uIHN0YXJ0cyBmcm9tIHRoZSBuZXdlc3QgY29udGV4dCwg dGhlIG1vc3QgcmVjZW50bHkgc3RhcnRlZAotICogKD0gaGF2aW5nIHRoZSBzaG9ydGVzdCBtYXRj aCkgY29udGV4dCBpcyBhYnNvcmJlZCBmaXJzdC4KLSAqCi0gKiBDaGFwdGVyIElYICBQaGFzZSAz OiBBZHZhbmNlIChFcHNpbG9uIFRyYW5zaXRpb24gRXhwYW5zaW9uKQotICogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotICoKLSAqIElYLTEuIE92ZXJ2aWV3Ci0gKgotICogbmZhX2FkdmFuY2UoKSBleHBh bmRzIGVwc2lsb24gdHJhbnNpdGlvbnMgZnJvbSBlYWNoIHN0YXRlIGFmdGVyIE1hdGNoLAotICog Z2VuZXJhdGluZyAibmV3IHN0YXRlcyB3YWl0aW5nIGZvciB0aGUgbmV4dCByb3cuIgotICoKLSAq IEFuIGVwc2lsb24gdHJhbnNpdGlvbiBpcyBhIHRyYW5zaXRpb24gdGhhdCBtb3ZlcyB3aXRob3V0 IGNvbnN1bWluZyBhIHJvdzoKLSAqCi0gKiAgIC0gQUxUOiBicmFuY2ggdG8gZWFjaCBhbHRlcm5h dGl2ZQotICogICAtIEJFR0lOOiBlbnRlciBncm91cCAob3Igc2tpcCBpZiBtaW49MCkKLSAqICAg LSBFTkQ6IGxvb3AtYmFjayB3aXRoaW4gZ3JvdXAgKG9yIGV4aXQgd2hlbiBjb25kaXRpb24gaXMg bWV0KQotICogICAtIEZJTjogcmVjb3JkIG1hdGNoIGNvbXBsZXRpb24KLSAqICAgLSBWQVIgbG9v cC9leGl0OiByZXBlYXQvZXhpdCBhY2NvcmRpbmcgdG8gdGhlIHF1YW50aWZpZXIKLSAqCi0gKiBF eHBhbnNpb24gc3RvcHMgdXBvbiByZWFjaGluZyBhIFZBUiBlbGVtZW50LCBhbmQgdGhlIHN0YXRl IGlzIGFkZGVkLgotICogVGhpcyBpcyBiZWNhdXNlIFZBUiBpcyB0aGUgZWxlbWVudCB0aGF0ICJ3 aWxsIGNvbnN1bWUgdGhlIG5leHQgcm93LiIKLSAqCi0gKiBJWC0yLiBQcm9jZXNzaW5nIE9yZGVy OiBERlMgYW5kIFByZWZlcm1lbnQKLSAqCi0gKiBhZHZhbmNlIHByb2Nlc3NlcyBzdGF0ZXMgaW4g bGV4aWNvZ3JhcGhpYyBvcmRlciwKLSAqIHBlcmZvcm1pbmcgRGVwdGgtRmlyc3QgU2VhcmNoIChE RlMpIG9uIGVhY2ggc3RhdGUuCi0gKgotICogVGhpcyBERlMgb3JkZXIgaXMgd2hhdCBndWFyYW50 ZWVzIHRoZSBTUUwgc3RhbmRhcmQncyAicHJlZmVybWVudCI6Ci0gKgotICogICBUaGUgYnJhbmNo IHRoYXQgYXBwZWFycyBmaXJzdCBpbiB0aGUgUEFUVEVSTiB0ZXh0IHRha2VzIHByZWNlZGVuY2Uu Ci0gKgotICogRXhhbXBsZTogUEFUVEVSTiAoQSB8IEIpIEMKLSAqCi0gKiAgIFRoZSBmaXJzdCBi cmFuY2ggQSBvZiB0aGUgQUxUIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgc2Vjb25kIGJyYW5j aCBCLgotICogICBXaGVuIGJvdGggQSBhbmQgQiBjYW4gbWF0Y2gsIHRoZSBtYXRjaCB2aWEgQSBp cyBzZWxlY3RlZC4KLSAqCi0gKiBuZmFfYWRkX3N0YXRlX3VuaXF1ZSgpIHByZXZlbnRzIGR1cGxp Y2F0ZSBhZGRpdGlvbiBvZiB0aGUgc2FtZSBzdGF0ZSwKLSAqIHNvIHRoZSBzdGF0ZSBhZGRlZCBm aXJzdCAoPSBmcm9tIHRoZSBwcmVmZXJyZWQgYnJhbmNoKSBpcyByZXRhaW5lZC4KLSAqCi0gKiBJ WC0zLiBSb3V0aW5nIEZ1bmN0aW9uOiBuZmFfcm91dGVfdG9fZWxlbSgpCi0gKgotICogQWxsIGlu dGVyLWVsZW1lbnQgdHJhbnNpdGlvbnMgaW4gdGhlIGFkdmFuY2UgcGhhc2UgZ28gdGhyb3VnaAot ICogbmZhX3JvdXRlX3RvX2VsZW0oKS4KLSAqIFRoaXMgZnVuY3Rpb24gYnJhbmNoZXMgaXRzIGJl aGF2aW9yIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZSBuZXh0IGVsZW1lbnQ6Ci0gKgotICogICBJ ZiB0aGUgbmV4dCBlbGVtZW50IGlzIFZBUjoKLSAqICAgICAoMSkgQWRkIHRoZSBzdGF0ZSB0byB0 aGUgY29udGV4dCAobmZhX2FkZF9zdGF0ZV91bmlxdWUpCi0gKiAgICAgKDIpIElmIHRoZSBWQVIg aGFzIG1pbj0wLCBhbHNvIGFkZCBhIHNraXAgcGF0aCAocmVjdXJzZSB2aWEgbmV4dCkKLSAqICAg ICAtPiBFeHBhbnNpb24gc3RvcHMgaGVyZSAoVkFSIGlzIHRoZSBlbGVtZW50IHRoYXQgIndpbGwg Y29uc3VtZSB0aGUgbmV4dAotICogICAgICAgIHJvdyIpCi0gKgotICogICBJZiB0aGUgbmV4dCBl bGVtZW50IGlzIG5vbi1WQVIgKEFMVCwgQkVHSU4sIEVORCwgRklOKToKLSAqICAgICAtPiBSZWN1 cnNpdmVseSBjYWxsIG5mYV9hZHZhbmNlX3N0YXRlKCkgdG8gY29udGludWUgZXhwYW5zaW9uCi0g KgotICogV2l0aCB0aGlzIHN0cnVjdHVyZSwgYWR2YW5jZSByZWN1cnNpdmVseSBmb2xsb3dzIGVw c2lsb24gdHJhbnNpdGlvbnMKLSAqIHVudGlsIHJlYWNoaW5nIGEgVkFSLCBjb25zaXN0ZW50bHkg c3RvcHBpbmcgb25seSBhdCBWQVIgZWxlbWVudHMuCi0gKgotICogSVgtNC4gUGVyLUVsZW1lbnQg YWR2YW5jZSBCZWhhdmlvcgotICoKLSAqIChhKSBBTFQgKG5mYV9hZHZhbmNlX2FsdCkKLSAqCi0g KiAgIFVwb24gZW5jb3VudGVyaW5nIGFuIEFMVCBlbGVtZW50LCBhbGwgYnJhbmNoZXMgYXJlIGV4 cGFuZGVkIGluIG9yZGVyLgotICogICBUaGUgZmlyc3QgZWxlbWVudCBvZiBlYWNoIGJyYW5jaCBp cyBjb25uZWN0ZWQgdmlhIGEganVtcCBwb2ludGVyLgotICoKLSAqICAgaWR4PTAgKEFMVCkgLT4g YnJhbmNoIDEgc3RhcnQgKG5leHQpIC0+IGJyYW5jaCAyIHN0YXJ0IChqdW1wKSAtPiAuLi4KLSAq Ci0gKiAgIG5mYV9hZHZhbmNlX3N0YXRlKCkgaXMgcmVjdXJzaXZlbHkgY2FsbGVkIGZvciBlYWNo IGJyYW5jaC4KLSAqCi0gKiAoYikgQkVHSU4gKG5mYV9hZHZhbmNlX2JlZ2luKQotICoKLSAqICAg SGFuZGxlcyBncm91cCBlbnRyeS4KLSAqICAganVtcCBwb2ludHMgdG8gdGhlIGVsZW1lbnQgYWZ0 ZXIgRU5EICg9IGZpcnN0IGVsZW1lbnQgb3V0c2lkZSB0aGUgZ3JvdXApLgotICoKLSAqICAgR3Jl ZWR5IChkZWZhdWx0KToKLSAqICAgICAoMSkgRW50ZXIgdGhlIGdyb3VwIGJvZHkgKG1vdmUgdmlh IG5leHQsIHJlc2V0IHRoZSBjb3VudCBhdCB0aGF0IGRlcHRoKQotICogICAgICgyKSBJZiBtaW49 MCwgYWxzbyBhZGQgYSBncm91cCBza2lwIHBhdGggKG1vdmUgdmlhIGp1bXApCi0gKgotICogICBS ZWx1Y3RhbnQ6Ci0gKiAgICAgT3JkZXIgcmV2ZXJzZWQgLS0gc2tpcCBwYXRoIGZpcnN0LCBncm91 cCBlbnRyeSBzZWNvbmQuCi0gKiAgICAgSWYgdGhlIHNraXAgcGF0aCByZWFjaGVzIEZJTiwgdGhl IGdyb3VwIGVudHJ5IHBhdGggaXMgbm90IGdlbmVyYXRlZAotICogICAgIChzaG9ydGVzdCBtYXRj aCBwcmVmZXJyZWQpLgotICoKLSAqIChjKSBFTkQgKG5mYV9hZHZhbmNlX2VuZCkKLSAqCi0gKiAg IEhhbmRsZXMgZ3JvdXAgdGVybWluYXRpb24uIFRoaXMgaXMgdGhlIGNvcmUgb2YgdGhlIHJlcGV0 aXRpb24gbG9naWMuCi0gKgotICogICBMZXQgY291bnQgYmUgdGhlIGNvdW50IGF0IHRoZSBjdXJy ZW50IGRlcHRoOgotICoKLSAqICAgY291bnQgPCBtaW46Ci0gKiAgICAgTG9vcC1iYWNrIChtb3Zl IHZpYSBqdW1wLCByZXBlYXQgdGhlIGdyb3VwIGJvZHkpCi0gKgotICogICAgIElmIHRoZSBSUFJf RUxFTV9FTVBUWV9MT09QIGZsYWcgaXMgc2V0OgotICogICAgICAgSW4gYWRkaXRpb24gdG8gbG9v cC1iYWNrLCBhbHNvIGFkZCBhIGZhc3QtZm9yd2FyZCBleGl0IHBhdGguCi0gKiAgICAgICBUaGlz IGlzIGJlY2F1c2UgdGhlIGJvZHkgbWF5IHByb2R1Y2UgYW4gZW1wdHkgbWF0Y2gsIGNhdXNpbmcg Y291bnQKLSAqICAgICAgIHRvIG5ldmVyIHJlYWNoIG1pbi4gZmFzdC1mb3J3YXJkIHJlc2V0cyBj b3VudHNbZGVwdGhdIHRvIDAKLSAqICAgICAgIGFuZCBleGl0cyB2aWEgbmV4dCAodHJlYXRpbmcg dGhlIHJlbWFpbmluZyByZXF1aXJlZCBpdGVyYXRpb25zCi0gKiAgICAgICBhcyBlbXB0eSBtYXRj aGVzKS4KLSAqCi0gKiAgIG1pbiA8PSBjb3VudCA8IG1heDoKLSAqICAgICBHcmVlZHk6IGxvb3At YmFjayBmaXJzdCwgZXhpdCBzZWNvbmQKLSAqICAgICBSZWx1Y3RhbnQ6IGV4aXQgZmlyc3QsIGxv b3AtYmFjayBzZWNvbmQKLSAqICAgICAgICAgICAgICAgIElmIHRoZSBleGl0IHBhdGggcmVhY2hl cyBGSU4sIGxvb3AtYmFjayBpcyBvbWl0dGVkLgotICoKLSAqICAgY291bnQgPj0gbWF4OgotICog ICAgIFVuY29uZGl0aW9uYWwgZXhpdCAobW92ZSB2aWEgbmV4dCkKLSAqCi0gKiAgIE9uIGV4aXQ6 IHJlc2V0IGNvdW50c1tkZXB0aF0gPSAwLCBhbmQgaWYgdGhlIG5leHQgZWxlbWVudCBpcyBhbiBv dXRlciBFTkQsCi0gKiAgIGluY3JlbWVudCB0aGUgY291bnQgYXQgdGhlIG91dGVyIGRlcHRoLgot ICoKLSAqIChkKSBWQVIgKG5mYV9hZHZhbmNlX3ZhcikKLSAqCi0gKiAgIEhhbmRsZXMgcmVwZWF0 L2V4aXQgZm9yIGEgVkFSIGVsZW1lbnQgd2l0aCBhIHF1YW50aWZpZXIuCi0gKgotICogICBMZXQg Y291bnQgYmUgdGhlIGNvdW50IGF0IHRoZSBjdXJyZW50IGRlcHRoOgotICoKLSAqICAgY291bnQg PCBtaW46Ci0gKiAgICAgVW5jb25kaXRpb25hbCBsb29wIChzdGF5IGF0IHRoZSBzYW1lIGVsZW1J ZHgsIHdhaXQgZm9yIHRoZSBuZXh0IHJvdykKLSAqCi0gKiAgIG1pbiA8PSBjb3VudCA8IG1heDoK LSAqICAgICBHcmVlZHk6IGxvb3AgZmlyc3QsIGV4aXQgKG5leHQpIHNlY29uZAotICogICAgIFJl bHVjdGFudDogZXhpdCBmaXJzdCwgbG9vcCBzZWNvbmQKLSAqICAgICAgICAgICAgICAgIElmIHRo ZSBleGl0IHBhdGggcmVhY2hlcyBGSU4sIGxvb3AgaXMgb21pdHRlZC4KLSAqCi0gKiAgIGNvdW50 ID49IG1heDoKLSAqICAgICBVbmNvbmRpdGlvbmFsIGV4aXQgKG1vdmUgdmlhIG5leHQpCi0gKgot ICogICBPbiBleGl0OiByZXNldCBjb3VudHNbZGVwdGhdID0gMC4KLSAqCi0gKiAoZSkgRklOCi0g KgotICogICBNYXRjaCBzdWNjZXNzLiBUaGUgY3VycmVudCBzdGF0ZSBpcyBtb3ZlZCB0byBtYXRj aGVkU3RhdGUgZm9yIHJlY29yZGluZywKLSAqICAgYW5kIG1hdGNoRW5kUm93IGlzIHNldCB0byB0 aGUgY3VycmVudCByb3cuCi0gKgotICogICBVcG9uIHJlYWNoaW5nIEZJTiwgYWxsIHJlbWFpbmlu ZyB1bnByb2Nlc3NlZCBzdGF0ZXMgYXJlIHJlbW92ZWQKLSAqICAgKGVhcmx5IHRlcm1pbmF0aW9u KS4gQnkgREZTIG9yZGVyLCB0aGUgcGF0aCB0aGF0IHJlYWNoZWQgRklOIGZpcnN0Ci0gKiAgIGhh cyB0aGUgaGlnaGVzdCBwcmVmZXJtZW50LCBzbyB0aGUgcmVzdCBhcmUgaW5mZXJpb3IgcGF0aHMu Ci0gKiAgIFRoaXMgaXMgdGhlIGNvcmUgbWVjaGFuaXNtIHRoYXQgZ3VhcmFudGVlcyBwcmVmZXJt ZW50LgotICoKLSAqICAgSW4gU0tJUCBQQVNUIExBU1QgUk9XIG1vZGUsIHVwb24gcmVhY2hpbmcg RklOLCBzdWJzZXF1ZW50IGNvbnRleHRzCi0gKiAgIHRoYXQgc3RhcnRlZCB3aXRoaW4gdGhlIG1h dGNoIHJhbmdlIGFyZSBpbW1lZGlhdGVseSBwcnVuZWQuCi0gKgotICogSVgtNS4gU3RhdGUgRGVk dXBsaWNhdGlvbjogbmZhX2FkZF9zdGF0ZV91bmlxdWUoKQotICoKLSAqIFdoZW4gYWRkaW5nIGEg bmV3IHN0YXRlIHRvIGEgY29udGV4dCwgaXQgaXMgY29tcGFyZWQgYWdhaW5zdCBleGlzdGluZwot ICogc3RhdGVzOwotICogaWYgYW4gaWRlbnRpY2FsIHN0YXRlIGFscmVhZHkgZXhpc3RzLCBpdCBp cyBub3QgYWRkZWQuCi0gKgotICogQ29tcGFyaXNvbiBjcml0ZXJpYTogZWxlbUlkeCArIGNvdW50 c1swLi5lbGVtLT5kZXB0aF0gKHNlZSBWLTEpCi0gKgotICogVGhpcyBkZWR1cGxpY2F0aW9uIGlz IHRoZSBjb3JlIG1lY2hhbmlzbSB0aGF0IHN1cHByZXNzZXMgTkZBIHN0YXRlCi0gKiBleHBsb3Np b24uCi0gKiBCZWNhdXNlIERGUyBvcmRlciBjYXVzZXMgcHJlZmVycmVkLWJyYW5jaCBzdGF0ZXMg dG8gYmUgYWRkZWQgZmlyc3QsCi0gKiBpZGVudGljYWwgc3RhdGVzIGZyb20gbG93ZXItcHJpb3Jp dHkgYnJhbmNoZXMgYXJlIGF1dG9tYXRpY2FsbHkgZGlzY2FyZGVkLgotICoKLSAqIElYLTYuIEN5 Y2xlIERldGVjdGlvbjogbmZhVmlzaXRlZEVsZW1zCi0gKgotICogV2hlbiBhIGdyb3VwIGJvZHkg Y2FuIHByb2R1Y2UgYW4gZW1wdHkgbWF0Y2gsCi0gKiBsb29waW5nIGJhY2sgZnJvbSBFTkQgbWF5 IGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCi0gKgotICogRXhhbXBsZTogUEFUVEVSTiAoKEE/KSop Ci0gKgotICogICBBPyBoYXMgbWluPTAsIHNvIGl0IGNhbiBwYXNzIHRocm91Z2ggd2l0aG91dCBt YXRjaGluZy4KLSAqICAgSWYgdGhlIG91dGVyIGdyb3VwIHJlcGVhdHM6IEJFR0lOIC0+IEE/IHNr aXAgLT4gRU5EIC0+IEJFR0lOIC0+IC4uLgotICoKLSAqIFRvIHByZXZlbnQgdGhpczoKLSAqCi0g KiAgICgxKSBBdCBjb21waWxlIHRpbWU6IHNldCB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFn IG9uIHRoZSBFTkQKLSAqICAgICAgIG9mIGdyb3VwcyB3aG9zZSBib2R5IGlzIG51bGxhYmxlLgot ICogICAgICAgVGhlIHJ1bnRpbWUgZWZmZWN0IG9mIHRoaXMgZmxhZyBpcyBkZXNjcmliZWQgaW4g SVgtNChjKToKLSAqICAgICAgIHdoZW4gY291bnQgPCBtaW4sIGEgZmFzdC1mb3J3YXJkIGV4aXQg cGF0aCBpcyBhZGRlZCwKLSAqICAgICAgIHJlc29sdmluZyB0aGUgZGVhZGxvY2sgd2hlcmUgY291 bnQgY2Fubm90IGluY3JlYXNlIGR1ZSB0byBlbXB0eQotICogICAgICAgbWF0Y2hlcy4KLSAqCi0g KiAgICgyKSBBdCBydW50aW1lOiBpbml0aWFsaXplIHRoZSBuZmFWaXNpdGVkRWxlbXMgYml0bWFw IGltbWVkaWF0ZWx5IGJlZm9yZQotICogICAgICAgREZTIGV4cGFuc2lvbiBvZiBlYWNoIHN0YXRl IHdpdGhpbiBhZHZhbmNlIChvbmNlIHBlciBzdGF0ZSkuCi0gKiAgICAgICBEdXJpbmcgREZTLCBl cHNpbG9uIGVsZW1lbnRzIChFTkQsIEFMVCwgQkVHSU4pIGFyZSBtYXJrZWQgaW4gdGhlCi0gKiAg ICAgICBiaXRtYXAgYXQgbmZhX2FkdmFuY2Vfc3RhdGUgZW50cnkuICBWQVIgZWxlbWVudHMgYXJl IG1hcmtlZCBsYXRlcgotICogICAgICAgd2hlbiBhZGRlZCB0byB0aGUgc3RhdGUgbGlzdCAobmZh X2FkZF9zdGF0ZV91bmlxdWUpLCBzbyB0aGF0Ci0gKiAgICAgICBsZWdpdGltYXRlIGxvb3AtYmFj ayB0byB0aGUgc2FtZSBWQVIgaW4gYSBuZXcgZ3JvdXAgaXRlcmF0aW9uCi0gKiAgICAgICAoZS5n LiwgRU5EIC0+IEFMVCAtPiBzYW1lIFZBUikgaXMgbm90IGJsb2NrZWQuCi0gKiAgICAgICBJZiBh IHByZXZpb3VzbHkgdmlzaXRlZCBlbGVtSWR4IGlzIHJldmlzaXRlZCwgdGhhdCBwYXRoIGlzIHRl cm1pbmF0ZWQuCi0gKgotICogICBOb3RlOiB0aGUgYml0bWFwIHRyYWNrcyBvbmx5IGVsZW1JZHgg YW5kIGRvZXMgbm90IGNvbnNpZGVyIGNvdW50cy4KLSAqICAgVGhlcmVmb3JlLCBsZWdpdGltYXRl IHJldmlzaXRzIHRvIHRoZSBzYW1lIGVsZW1JZHggYnV0IHdpdGggZGlmZmVyZW50Ci0gKiAgIGNv dW50cyBtYXkgYWxzbyBiZSBibG9ja2VkLiAgVGhpcyBvbmx5IG9jY3VycyB3aGVuIHRoZSBncm91 cCBib2R5IGlzCi0gKiAgIG51bGxhYmxlIChhbGwgcGF0aHMgY2FuIG1hdGNoIGVtcHR5KSwgY2F1 c2luZyBFTkQgLT4gbG9vcC1iYWNrIC0+Ci0gKiAgIHNraXAgLT4gRU5EIHdpdGhpbiBhIHNpbmds ZSBERlMuICBJbiBzdWNoIGNhc2VzIHRoZSBFTkQgZWxlbWVudCBoYXMKLSAqICAgdGhlIFJQUl9F TEVNX0VNUFRZX0xPT1AgZmxhZywgc28gdGhlIGZhc3QtZm9yd2FyZCBleGl0IChJWC00KGMpKQot ICogICBwcm92aWRlcyBhbiBhbHRlcm5hdGl2ZSBwYXRoIHRoYXQgYnlwYXNzZXMgdGhlIGN5Y2xl LgotICoKLSAqIENoYXB0ZXIgWCAgTWF0Y2ggUmVzdWx0IFByb2Nlc3NpbmcKLSAqID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLSAqCi0gKiBYLTEuIE1hdGNoIFJlc3VsdAotICoKLSAqIFJQUiB0cmFja3Mg dGhlIGN1cnJlbnQgbWF0Y2ggcmVzdWx0IGFzIGEgc2luZ2xlIGVudHJ5IGluIFdpbmRvd0FnZ1N0 YXRlCi0gKiB3aXRoIGZvdXIgZmllbGRzOiBycHJfbWF0Y2hfdmFsaWQsIHJwcl9tYXRjaF9tYXRj aGVkLCBycHJfbWF0Y2hfc3RhcnQsCi0gKiBhbmQgcnByX21hdGNoX2xlbmd0aC4gIFdoZW4gcnBy X21hdGNoX3ZhbGlkIGlzIHRydWUsIHRoZSBlbnRyeSBkZXNjcmliZXMKLSAqIHRoZSBtYXRjaCBy ZXN1bHQgZm9yIHRoZSBwb3NpdGlvbiBhdCBycHJfbWF0Y2hfc3RhcnQ6IHJwcl9tYXRjaF9tYXRj aGVkCi0gKiBpbmRpY2F0ZXMgc3VjY2VzcyBvciBmYWlsdXJlLCBhbmQgcnByX21hdGNoX2xlbmd0 aCBnaXZlcyB0aGUgbnVtYmVyIG9mCi0gKiByb3dzIGNvbnN1bWVkLiAgQSBtYXRjaCB3aXRoIHJw cl9tYXRjaF9sZW5ndGggMCByZXByZXNlbnRzIGFuIGVtcHR5IG1hdGNoCi0gKiAocGF0dGVybiBt YXRjaGVkIGJ1dCBjb25zdW1lZCBubyByb3dzKS4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIGZh bHNlLAotICogdGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBldmFsdWF0ZWQgeWV0IChSRl9OT1Rf REVURVJNSU5FRCkuCi0gKgotICogQSByb3cncyBzdGF0dXMgYWdhaW5zdCB0aGUgY3VycmVudCBt YXRjaCByZXN1bHQgY2FuIGJlIG9idGFpbmVkIGJ5Ci0gKiBjYWxsaW5nIGdldF9yZWR1Y2VkX2Zy YW1lX3N0YXR1cygpLgotICoKLSAqIFgtMi4gQUZURVIgTUFUQ0ggU0tJUAotICoKLSAqIERldGVy bWluZXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgbmV4dCBtYXRjaCBhdHRlbXB0IGFmdGVy IGEgc3VjY2Vzc2Z1bAotICogbWF0Y2g6Ci0gKgotICogICBTS0lQIFRPIE5FWFQgUk9XOgotICog ICAgIE5ldyBtYXRjaCBhdHRlbXB0IGJlZ2lucyBmcm9tIHRoZSByb3cgYWZ0ZXIgdGhlIG1hdGNo IHN0YXJ0IHJvdy4KLSAqICAgICBPdmVybGFwcGluZyBtYXRjaGVzIGFyZSBwb3NzaWJsZS4KLSAq Ci0gKiAgIFNLSVAgUEFTVCBMQVNUIFJPVzoKLSAqICAgICBOZXcgbWF0Y2ggYXR0ZW1wdCBiZWdp bnMgZnJvbSB0aGUgcm93IGFmdGVyIHRoZSBtYXRjaCBlbmQgcm93LgotICogICAgIE9ubHkgbm9u LW92ZXJsYXBwaW5nIG1hdGNoZXMgYXJlIHBvc3NpYmxlLgotICoKLSAqIFgtMy4gSU5JVElBTCB2 cyBTRUVLCi0gKgotICogICBTdGFuZGFyZCBkZWZpbml0aW9uIChzZWN0aW9uIDYuMTIpOgotICog ICBJTklUSUFMOiAiaXMgdXNlZCB0byBsb29rIGZvciBhIG1hdGNoIHdob3NlIGZpcnN0IHJvdyBp cyBSLiIKLSAqICAgU0VFSzogICAgImlzIHVzZWQgdG8gcGVybWl0IGEgc2VhcmNoIGZvciB0aGUg Zmlyc3QgbWF0Y2ggYW55d2hlcmUKLSAqICAgICAgICAgICAgZnJvbSBSIHRocm91Z2ggdGhlIGVu ZCBvZiB0aGUgZnVsbCB3aW5kb3cgZnJhbWUuIgotICogICBJbiBlaXRoZXIgY2FzZSwgaWYgdGhl cmUgaXMgbm8gbWF0Y2gsIHRoZSByZWR1Y2VkIHdpbmRvdyBmcmFtZSBpcyBlbXB0eS4KLSAqICAg VGhlIGRlZmF1bHQgaXMgSU5JVElBTC4KLSAqCi0gKiAgIEN1cnJlbnQgaW1wbGVtZW50YXRpb246 Ci0gKiAgIFNFRUsgaXMgbm90IHN1cHBvcnRlZCAodGhlIHBhcnNlciByYWlzZXMgYW4gZXJyb3Ip LgotICogICBPbmx5IElOSVRJQUwgaXMgc3VwcG9ydGVkLCBzZWFyY2hpbmcgb25seSBmb3IgbWF0 Y2hlcyBzdGFydGluZyBhdCBlYWNoCi0gKiAgIHJvdyBwb3NpdGlvbiBwb3MuCi0gKgotICogWC00 LiBCb3VuZGVkIEZyYW1lIEhhbmRsaW5nCi0gKgotICogICBXaGVuIHRoZSBmcmFtZSBpcyBib3Vu ZGVkIChlLmcuLCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDUKLSAqICAgRk9MTE9XSU5H KSwgRXhlY1JQUlByb2Nlc3NSb3cgcmVjZWl2ZXMgaGFzTGltaXRlZEZyYW1lPXRydWUgYW5kCi0g KiAgIGZyYW1lT2Zmc2V0IGluZGljYXRpbmcgdGhlIHVwcGVyIGJvdW5kLiAgQmVmb3JlIHRoZSBt YXRjaCBwaGFzZSwKLSAqICAgYW55IGNvbnRleHQgd2hvc2UgbWF0Y2ggaGFzIGV4Y2VlZGVkIHRo ZSBmcmFtZSBib3VuZGFyeQotICogICAoY3VycmVudFBvcyA+PSBtYXRjaFN0YXJ0Um93ICsgZnJh bWVPZmZzZXQgKyAxKSBpcyBmaW5hbGl6ZWQgZWFybHkKLSAqICAgYnkgZm9yY2luZyBhIG1pc21h dGNoLiAgVGhpcyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZAotICogICB0 aGUgd2luZG93IGZyYW1lLiAgVGhlIHN1bSBpcyBjbGFtcGVkIHRvIFBHX0lOVDY0X01BWCBvbiBv dmVyZmxvdy4KLSAqCi0gKiAgIE5vdGUgdGhhdCBib3VuZGVkIGZyYW1lcyBhbHNvIGRpc2FibGUg Y29udGV4dCBhYnNvcnB0aW9uIGF0IHRoZQotICogICBwbGFubmVyIGxldmVsIChzZWUgVklJSS0z KGIpKSwgc2luY2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJyZWFrcyB0aGUKLSAqICAgbW9ub3Rvbmlj aXR5IGFzc3VtcHRpb24gcmVxdWlyZWQgZm9yIGNvcnJlY3QgYWJzb3JwdGlvbi4KLSAqCi0gKiBD aGFwdGVyIFhJICBXb3JrZWQgRXhhbXBsZTogRnVsbCBFeGVjdXRpb24gVHJhY2UKLSAqID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLSAqCi0gKiBYSS0xLiBRdWVyeQotICoKLSAqICAgU0VMRUNUIGNvbXBh bnksIHRkYXRlLCBwcmljZSwKLSAqICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcg QVMgc3RhcnRfcHJpY2UsCi0gKiAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMg ZW5kX3ByaWNlCi0gKiAgIEZST00gc3RvY2sKLSAqICAgV0lORE9XIHcgQVMgKAotICogICAgIFBB UlRJVElPTiBCWSBjb21wYW55Ci0gKiAgICAgT1JERVIgQlkgdGRhdGUKLSAqICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAqICAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAqICAgICBQQVRURVJOIChBKyBCKQotICogICAgIERF RklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSksCi0gKiAgICAgICAgICAgIEIgQVMgcHJpY2Ug PCBQUkVWKHByaWNlKQotICogICApOwotICoKLSAqIFhJLTIuIERhdGEKLSAqCi0gKiAgIFJvdyMg ICAgdGRhdGUgICAgICAgcHJpY2UKLSAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAq ICAgMCAgICAgICAyMDI0LTAxLTAxICAxMDAKLSAqICAgMSAgICAgICAyMDI0LTAxLTAyICAxMTAK LSAqICAgMiAgICAgICAyMDI0LTAxLTAzICAxMjAKLSAqICAgMyAgICAgICAyMDI0LTAxLTA0ICAx MTUKLSAqICAgNCAgICAgICAyMDI0LTAxLTA1ICAxMzAKLSAqCi0gKiBYSS0zLiBDb21waWxhdGlv biBSZXN1bHQKLSAqCi0gKiAgIFBBVFRFUk4gKEErIEIpIC0+IHVuY2hhbmdlZCBhZnRlciBvcHRp bWl6YXRpb24KLSAqCi0gKiAgIGlkeCAgdmFySWQgIGRlcHRoICBtaW4gIG1heCAgbmV4dCAganVt cAotICogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogICAg MCAgIEEoMCkgICAwICAgICAgMSAgICBJTkYgIDEgICAgIC0xICAgICBBKwotICogICAgMSAgIEIo MSkgICAwICAgICAgMSAgICAxICAgIDIgICAgIC0xICAgICBCCi0gKiAgICAyICAgRklOICAgIDAg ICAgICAxICAgIDEgICAgLTEgICAgLTEKLSAqCi0gKiAgIERFRklORTogQSAtPiAicHJpY2UgPiBQ UkVWKHByaWNlKSIsIEIgLT4gInByaWNlIDwgUFJFVihwcmljZSkiCi0gKiAgIGlzQWJzb3JiYWJs ZSA9IHRydWUgKEErIGlzIGEgc2ltcGxlIHVuYm91bmRlZCBWQVIpCi0gKgotICogWEktNC4gRXhl Y3V0aW9uIFRyYWNlCi0gKgotICogLS0tIFJvdyAwIChwcmljZT0xMDApIC0tLQotICoKLSAqICAg dXBkYXRlX3JlZHVjZWRfZnJhbWUoMCkgY2FsbGVkLgotICoKLSAqICAgQ29udGV4dCBDMCBjcmVh dGVkIChtYXRjaFN0YXJ0Um93PTApLgotICogICBJbml0aWFsIGFkdmFuY2U6IGVsZW1JZHg9MChB KSAtPiBWQVIsIHNvIHN0YXRlIGlzIGFkZGVkLgotICogICBDMC5zdGF0ZXMgPSBbe2VsZW1JZHg9 MCwgY291bnRzPVswXX1dCi0gKgotICogICBuZmFfZXZhbHVhdGVfcm93KDApOgotICogICAgIEE6 IHByaWNlKDEwMCkgPiBQUkVWKHByaWNlKSAtPiBubyBQUkVWIC0+IGZhbHNlCi0gKiAgICAgQjog cHJpY2UoMTAwKSA8IFBSRVYocHJpY2UpIC0+IG5vIFBSRVYgLT4gZmFsc2UKLSAqICAgICB2YXJN YXRjaGVkID0gW2ZhbHNlLCBmYWxzZV0KLSAqCi0gKiAgIEV4ZWNSUFJQcm9jZXNzUm93KDApOgot ICogICAgIFBoYXNlIDEgKE1hdGNoKTogQSgwKSBzdGF0ZSB2cyB2YXJNYXRjaGVkWzBdPWZhbHNl IC0+IHN0YXRlIHJlbW92ZWQKLSAqICAgICBDMC5zdGF0ZXMgPSBbXSAoZW1wdHkpCi0gKgotICog ICAgIFBoYXNlIDIgKEFic29yYik6IHNraXBwZWQgKG5vIHN0YXRlcykKLSAqICAgICBQaGFzZSAz IChBZHZhbmNlKTogc2tpcHBlZCAobm8gc3RhdGVzKQotICoKLSAqICAgQzAuc3RhdGVzIGlzIGVt cHR5LCBzbyB0aGUgbG9vcCB0ZXJtaW5hdGVzLgotICogICBtYXRjaEVuZFJvdyA8IG1hdGNoU3Rh cnRSb3cgLT4gdW5tYXRjaGVkLgotICoKLSAqIC0tLSBSb3cgMSAocHJpY2U9MTEwKSAtLS0KLSAq Ci0gKiAgIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKDEpIGNhbGxlZC4KLSAqCi0gKiAgIENvbnRleHQg QzEgY3JlYXRlZCAobWF0Y2hTdGFydFJvdz0xKS4KLSAqICAgSW5pdGlhbCBhZHZhbmNlOiBDMS5z dGF0ZXMgPSBbe2VsZW1JZHg9MCwgY291bnRzPVswXX1dCi0gKgotICogICBuZmFfZXZhbHVhdGVf cm93KDEpOgotICogICAgIEE6IDExMCA+IFBSRVYoMTAwKSAtPiB0cnVlCi0gKiAgICAgQjogMTEw IDwgUFJFVigxMDApIC0+IGZhbHNlCi0gKiAgICAgdmFyTWF0Y2hlZCA9IFt0cnVlLCBmYWxzZV0K LSAqCi0gKiAgIEV4ZWNSUFJQcm9jZXNzUm93KDEpOgotICogICAgIFBoYXNlIDEgKE1hdGNoKTog QSgwKSBtYXRjaCBzdWNjZWVkcyAtPiBjb3VudHNbMF0rKyAtPiBjb3VudHM9WzFdCi0gKiAgICAg QzEuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMV19XQotICoKLSAqICAgICBQaGFzZSAz IChBZHZhbmNlKToKLSAqICAgICAgIFN0YXRlIHtlbGVtSWR4PTAsIGNvdW50cz1bMV19OiBBKyAo bWluPTEsIGNvdW50PTEsIG1heD1JTkYpCi0gKiAgICAgICAgIGNvdW50ID49IG1pbiwgc286Ci0g KiAgICAgICAgIEdyZWVkeSAtPiBsb29wIGZpcnN0OiBrZWVwIHtlbGVtSWR4PTAsIGNvdW50cz1b MV19Ci0gKiAgICAgICAgICAgICAgICAgICBleGl0OiByZXNldCBjb3VudHNbMF09MCwgbmV4dCg9 MSkgLT4ge2VsZW1JZHg9MSwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cz1bMF19 Ci0gKiAgICAgQzEuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMV19LCB7ZWxlbUlkeD0x LCBjb3VudHM9WzBdfV0KLSAqCi0gKiAtLS0gUm93IDIgKHByaWNlPTEyMCkgLS0tCi0gKgotICog ICBDb250ZXh0IEMyIGNyZWF0ZWQgKG1hdGNoU3RhcnRSb3c9MikuCi0gKiAgIEluaXRpYWwgYWR2 YW5jZTogQzIuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMF19XQotICoKLSAqICAgbmZh X2V2YWx1YXRlX3JvdygyKToKLSAqICAgICBBOiAxMjAgPiBQUkVWKDExMCkgLT4gdHJ1ZQotICog ICAgIEI6IDEyMCA8IFBSRVYoMTEwKSAtPiBmYWxzZQotICogICAgIHZhck1hdGNoZWQgPSBbdHJ1 ZSwgZmFsc2VdCi0gKgotICogICBDMSBFeGVjUlBSUHJvY2Vzc1JvdygyKToKLSAqICAgICBQaGFz ZSAxIChNYXRjaCk6Ci0gKiAgICAgICB7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfTogQSBtYXRjaGVz IC0+IGNvdW50cz1bMl0KLSAqICAgICAgIHtlbGVtSWR4PTEsIGNvdW50cz1bMF19OiBCIGRvZXMg bm90IG1hdGNoIC0+IHJlbW92ZWQKLSAqICAgICBDMS5zdGF0ZXMgPSBbe2VsZW1JZHg9MCwgY291 bnRzPVsyXX1dCi0gKgotICogICBDMiBFeGVjUlBSUHJvY2Vzc1JvdygyKToKLSAqICAgICBQaGFz ZSAxIChNYXRjaCk6Ci0gKiAgICAgICB7ZWxlbUlkeD0wLCBjb3VudHM9WzBdfTogQSBtYXRjaGVz IC0+IGNvdW50cz1bMV0KLSAqICAgICBDMi5zdGF0ZXMgPSBbe2VsZW1JZHg9MCwgY291bnRzPVsx XX1dCi0gKgotICogICAgIFBoYXNlIDIgKEFic29yYik6Ci0gKiAgICAgICBEb2VzIEMxIChzdGFy dGVkIGVhcmxpZXIpIGNvdmVyIEMyPwotICogICAgICAgICBDMToge2VsZW1JZHg9MCwgY291bnRz PVsyXX0sIEMyOiB7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfQotICogICAgICAgICBTYW1lIGVsZW1J ZHgsIEMxLmNvdW50cyA+PSBDMi5jb3VudHMgLT4gY292ZXJlZAotICogICAgICAgQzIgYWJzb3Ji ZWQuIC0+IHJlbW92ZWQuCi0gKgotICogICAgIFBoYXNlIDMgKEFkdmFuY2UpOgotICogICAgICAg e2VsZW1JZHg9MCwgY291bnRzPVsyXX06IEdyZWVkeSAtPiBsb29wICsgZXhpdAotICogICAgICAg ICBMb29wOiB7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfQotICogICAgICAgICBFeGl0OiByZXNldCBj b3VudHNbMF09MCwgbmV4dCg9MSkgLT4ge2VsZW1JZHg9MSwgY291bnRzPVswXX0KLSAqICAgICBD MS5zdGF0ZXMgPSBbe2VsZW1JZHg9MCwgY291bnRzPVsyXX0sIHtlbGVtSWR4PTEsIGNvdW50cz1b MF19XQotICoKLSAqICAgQ29udGV4dCBDMyBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTMpLgotICoK LSAqIC0tLSBSb3cgMyAocHJpY2U9MTE1KSAtLS0KLSAqCi0gKiAgIG5mYV9ldmFsdWF0ZV9yb3co Myk6Ci0gKiAgICAgQTogMTE1ID4gUFJFVigxMjApIC0+IGZhbHNlCi0gKiAgICAgQjogMTE1IDwg UFJFVigxMjApIC0+IHRydWUKLSAqICAgICB2YXJNYXRjaGVkID0gW2ZhbHNlLCB0cnVlXQotICoK LSAqICAgRXhlY1JQUlByb2Nlc3NSb3coMyk6Ci0gKiAgICAgUGhhc2UgMSAoTWF0Y2gpOgotICog ICAgICAge2VsZW1JZHg9MCwgY291bnRzPVsyXX06IEEgZG9lcyBub3QgbWF0Y2ggLT4gcmVtb3Zl ZAotICogICAgICAge2VsZW1JZHg9MSwgY291bnRzPVswXX06IEIgbWF0Y2hlcyAtPiBjb3VudHM9 WzFdCi0gKiAgICAgQzEuc3RhdGVzID0gW3tlbGVtSWR4PTEsIGNvdW50cz1bMV19XQotICoKLSAq ICAgICBQaGFzZSAzIChBZHZhbmNlKToKLSAqICAgICAgIHtlbGVtSWR4PTEsIGNvdW50cz1bMV19 OiBCIChtaW49MSwgbWF4PTEpCi0gKiAgICAgICAgIGNvdW50KDEpID49IG1heCgxKSAtPiB1bmNv bmRpdGlvbmFsIGV4aXQKLSAqICAgICAgICAgUmVzZXQgY291bnRzWzBdPTAsIG5leHQgPSAyIChG SU4pCi0gKiAgICAgICBGSU4gcmVhY2hlZCAtPiBtYXRjaEVuZFJvdyA9IDMsIG1hdGNoZWRTdGF0 ZSByZWNvcmRlZC4KLSAqICAgICAgIEVhcmx5IHRlcm1pbmF0aW9uOiBubyByZW1haW5pbmcgc3Rh dGVzLCBzbyBjb21wbGV0ZWQgaW1tZWRpYXRlbHkuCi0gKiAgICAgQzEuc3RhdGVzID0gW10gKGVt cHR5IGFmdGVyIHJlYWNoaW5nIEZJTikKLSAqCi0gKiAgIEMxLnN0YXRlcyBpcyBlbXB0eSBhbmQg bWF0Y2hFbmRSb3c9MyA+PSBtYXRjaFN0YXJ0Um93PTEgLT4gbWF0Y2ggc3VjY2VlZHMuCi0gKgot ICogICBycHJfbWF0Y2hfc3RhcnQgPSAxLCBycHJfbWF0Y2hfbGVuZ3RoID0gMwotICoKLSAqIC0t LSBSb3cgNCAocHJpY2U9MTMwKSAtLS0KLSAqCi0gKiAgIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKDQp IGNhbGxlZC4KLSAqICAgQzMgd2FzIGFscmVhZHkgY3JlYXRlZCBidXQgbWF0Y2hTdGFydFJvdz0z LCBzbyBpdCBpcyBub3QgYXBwbGljYWJsZS4KLSAqICAgTmV3IGNvbnRleHQgQzQgY3JlYXRlZCAo bWF0Y2hTdGFydFJvdz00KS4KLSAqCi0gKiAgIG5mYV9ldmFsdWF0ZV9yb3coNCk6Ci0gKiAgICAg QTogMTMwID4gUFJFVigxMTUpIC0+IHRydWUKLSAqICAgICBCOiAxMzAgPCBQUkVWKDExNSkgLT4g ZmFsc2UKLSAqCi0gKiAgIC4uLiBObyBzdWJzZXF1ZW50IHJvd3MsIHNvIEV4ZWNSUFJGaW5hbGl6 ZUFsbENvbnRleHRzKCkgaXMgY2FsbGVkLgotICogICBNYXRjaCBpbmNvbXBsZXRlIC0+IHVubWF0 Y2hlZC4KLSAqCi0gKiBYSS01LiBGaW5hbCBSZXN1bHQKLSAqCi0gKiAgIFJvdyAwOiB1bm1hdGNo ZWQgICAgIC0+IGZyYW1lID0gdGhlIHJvdyBpdHNlbGYKLSAqICAgUm93IDE6IG1hdGNoIGhlYWQg ICAgLT4gZnJhbWUgPSByb3dzIDEgdGhyb3VnaCAzCi0gKiAgIFJvdyAyOiBpbnNpZGUgbWF0Y2gg IC0+IHNraXBwZWQKLSAqICAgUm93IDM6IGluc2lkZSBtYXRjaCAgLT4gc2tpcHBlZAotICogICBS b3cgNDogdW5tYXRjaGVkICAgICAtPiBmcmFtZSA9IHRoZSByb3cgaXRzZWxmCi0gKgotICogQ2hh cHRlciBYSUkgIFN1bW1hcnkgb2YgS2V5IERlc2lnbiBEZWNpc2lvbnMKLSAqID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLSAqCi0gKiBYSUktMS4gRmxhdCBBcnJheSB2cyBUcmVlLUJhc2VkIE5GQQotICoK LSAqICAgQ2hvaWNlOiBGbGF0IGFycmF5IChSUFJQYXR0ZXJuRWxlbWVudFtdKQotICoKLSAqICAg UmF0aW9uYWxlOgotICogICAtIENhY2hlLWZyaWVuZGx5OiAxNi1ieXRlIGZpeGVkIHNpemUsIGNv bnRpZ3VvdXMgbWVtb3J5Ci0gKiAgIC0gSW5kZXgtYmFzZWQgcmVmZXJlbmNlczogMi1ieXRlIGlu ZGljZXMgaW5zdGVhZCBvZiBwb2ludGVycwotICogICAtIEVhc3kgdG8gc2VyaWFsaXplOiBjYW4g dXNlIG1lbWNweSB3aGVuIHBhc3NpbmcgdG8gcGxhbiBub2RlcwotICoKLSAqIFhJSS0yLiBGb3J3 YXJkLW9ubHkgRXhlY3V0aW9uIHZzIEJhY2t0cmFja2luZwotICoKLSAqICAgQ2hvaWNlOiBGb3J3 YXJkLW9ubHkgKHN0YXRlIHNldCB0cmFja2luZykKLSAqCi0gKiAgIFJhdGlvbmFsZToKLSAqICAg LSBCYWNrdHJhY2tpbmcgdGFrZXMgZXhwb25lbnRpYWwgdGltZSBpbiB0aGUgd29yc3QgY2FzZQot ICogICAtIE5GQSBzaW11bGF0aW9uIGd1YXJhbnRlZXMgcG9seW5vbWlhbCB0aW1lCi0gKiAgIC0g REZTIG9yZGVyIG5hdHVyYWxseSBndWFyYW50ZWVzIHByZWZlcm1lbnQuCi0gKiAgICAgR3JlZWR5 L3JlbHVjdGFudCBwZXIgcXVhbnRpZmllciByZXF1aXJlcyBvbmx5IHJldmVyc2luZyB0aGUgREZT IG9yZGVyCi0gKiAgIC0gV2luZG93IGZ1bmN0aW9ucyByZWNlaXZlIHNvcnRlZCByb3dzIHNlcXVl bnRpYWxseS4KLSAqICAgICBGb3J3YXJkLW9ubHkgZml0cyBkaXJlY3RseSBpbnRvIHRoaXMgcGlw ZWxpbmUsCi0gKiAgICAgd2hlcmVhcyBiYWNrdHJhY2tpbmcgcmVxdWlyZXMgcmUtZmV0Y2hpbmcg cHJldmlvdXMgcm93cwotICogICAtIERFRklORSBjb25kaXRpb25zIGFyZSBTUUwgZXhwcmVzc2lv bnMgKFBSRVYsIFJVTk5JTkcgYWdncmVnYXRlcywgZXRjLikKLSAqICAgICB3aXRoIGhpZ2ggcmUt ZXZhbHVhdGlvbiBjb3N0LiBGb3J3YXJkLW9ubHkgcmVxdWlyZXMgb25seSBvbmUgZXZhbHVhdGlv bgotICogICAgIHBlciByb3cKLSAqCi0gKiBYSUktMy4gUGVyLUNvbnRleHQgTWFuYWdlbWVudAot ICoKLSAqICAgQ2hvaWNlOiBJbmRlcGVuZGVudCBjb250ZXh0IHBlciBzdGFydCByb3cKLSAqCi0g KiAgIFJhdGlvbmFsZToKLSAqICAgLSBTdXBwb3J0cyBvdmVybGFwcGluZyBtYXRjaGVzIHVuZGVy IFNLSVAgVE8gTkVYVCBST1cKLSAqICAgLSBEZXRlcm1pbmVzIHRoZSBmcmFtZSBmb3IgZWFjaCBy b3cgaW5kZXBlbmRlbnRseQotICogICAtIEFic29ycHRpb24gb3B0aW1pemF0aW9uIGNhbiBlbGlt aW5hdGUgcmVkdW5kYW50IGNvbnRleHRzIGluIE8obikKLSAqCi0gKiBYSUktNC4gTWVtb3J5IFBv b2wgTWFuYWdlbWVudAotICoKLSAqICAgQ2hvaWNlOiBDdXN0b20gZnJlZSBsaXN0Ci0gKgotICog ICBSYXRpb25hbGU6Ci0gKiAgIC0gTkZBIHN0YXRlcyBhcmUgY3JlYXRlZCBhbmQgZGVzdHJveWVk IGluIGxhcmdlIG51bWJlcnMgcGVyIHJvdwotICogICAtIEF2b2lkcyBwYWxsb2MvcGZyZWUgb3Zl cmhlYWQKLSAqICAgLSBTdGF0ZSBzaXplIGlzIHZhcmlhYmxlIChjb3VudHNbXSBhcnJheSksIGJ1 dCB3aXRoaW4gYSBzaW5nbGUgcXVlcnkKLSAqICAgICBtYXhEZXB0aCBpcyBmaXhlZCwgc28gYWxs IHN0YXRlcyBoYXZlIHRoZSBzYW1lIHNpemUKLSAqCi0gKiBYSUktNS4gRXhlY3V0aW9uIE9wdGlt aXphdGlvbiBTdW1tYXJ5Ci0gKgotICogICBUaGUgZm9sbG93aW5nIG9wdGltaXphdGlvbnMgbWFr ZSB0aGUgTkZBIHNpbXVsYXRpb24gcHJhY3RpY2FsLgotICoKLSAqICAgLS0gQ29tcGlsZS10aW1l IC0tCi0gKgotICogICAoMSkgQVNUIE9wdGltaXphdGlvbiAoSVYtMykKLSAqCi0gKiAgICAgU2lt cGxpZmllcyB0aGUgQVNUIGJlZm9yZSBjb252ZXJ0aW5nIHRoZSBwYXR0ZXJuIHRvIGFuIE5GQS4K LSAqICAgICBSZWR1Y2VzIHRoZSBudW1iZXIgb2YgTkZBIGVsZW1lbnRzIHRocm91Z2ggY29uc2Vj dXRpdmUgdmFyaWFibGUKLSAqICAgICBtZXJnaW5nIChBIEEgLT4gQXsyfSksIFNFUSBmbGF0dGVu aW5nLCBxdWFudGlmaWVyIG11bHRpcGxpY2F0aW9uLAotICogICAgIGFuZCBvdGhlciB0cmFuc2Zv cm1hdGlvbnMuCi0gKgotICogICAgIFNpZ25pZmljYW5jZTogUmVkdWNpbmcgdGhlIGVsZW1lbnQg Y291bnQgZGlyZWN0bHkgc2hyaW5rcyB0aGUgc3RhdGUKLSAqICAgICBzcGFjZSwgZGVjcmVhc2lu ZyB0aGUgY29zdCBvZiBhbGwgc3Vic2VxdWVudCBydW50aW1lIHBoYXNlcyAobWF0Y2gsCi0gKiAg ICAgYWJzb3JiLCBhZHZhbmNlKS4KLSAqCi0gKiAgIC0tIFJ1bnRpbWU6IGFkdmFuY2UgcGhhc2Ug LS0KLSAqCi0gKiAgICgyKSBHcm91cCBTa2lwIChJWC00KGIpKQotICoKLSAqICAgICBBdCB0aGUg QkVHSU4gb2YgYSBncm91cCB3aXRoIG1pbj0wLCB1c2VzIGp1bXAgdG8gc2tpcCB0aGUgZW50aXJl Ci0gKiAgICAgZ3JvdXAuIE1vdmVzIGRpcmVjdGx5IHRvIHRoZSBmaXJzdCBlbGVtZW50IG91dHNp ZGUgdGhlIGdyb3VwIHdpdGhvdXQKLSAqICAgICBleHBsb3JpbmcgdGhlIGdyb3VwIGJvZHkuIEdy ZWVkeSBlbnRlcnMgdGhlbiBza2lwczsgUmVsdWN0YW50IHNraXBzCi0gKiAgICAgdGhlbiBlbnRl cnMuCi0gKgotICogICAgIFNpZ25pZmljYW5jZTogRm9yIG9wdGlvbmFsIGdyb3VwcyAobWluPTAp LCBpbW1lZGlhdGVseSBnZW5lcmF0ZXMKLSAqICAgICBhIHNraXAgcGF0aCB3aXRob3V0IGV4cGxv cmluZyB0aGUgYm9keSwgYXZvaWRpbmcgdW5uZWNlc3NhcnkgREZTCi0gKiAgICAgZXhwYW5zaW9u LgotICoKLSAqICAgKDMpIFN0YXRlIERlZHVwbGljYXRpb24gKElYLTUpCi0gKgotICogICAgIER1 cmluZyBhZHZhbmNlLCBERlMgbWF5IGdlbmVyYXRlIHN0YXRlcyB3aXRoIHRoZSBzYW1lIChlbGVt SWR4LAotICogICAgIGNvdW50cykgY29tYmluYXRpb24gdGhyb3VnaCBtdWx0aXBsZSBwYXRocy4g QWRkaXRpb25hbGx5LCBmb3IKLSAqICAgICBncm91cCBhYnNvcnB0aW9uLCBuZmFfbWF0Y2ggcGVy Zm9ybXMgaW5saW5lIGFkdmFuY2UgZnJvbSBib3VuZGVkCi0gKiAgICAgVkFScyAoY291bnQgPj0g bWF4KSB3aXRoaW4gdGhlIGFic29yYmFibGUgcmVnaW9uIChBQlNPUkJBQkxFX0JSQU5DSCkKLSAq ICAgICB0aHJvdWdoIEVORCBjaGFpbnMgdG8gcmVhY2ggdGhlIGp1ZGdtZW50IHBvaW50IChBQlNP UkJBQkxFIEVORCkuCi0gKiAgICAgVGhpcyBwcm9jZXNzIGNhbiBhbHNvIHByb2R1Y2UgZHVwbGlj YXRlIHN0YXRlcyByZWFjaGluZyB0aGUgc2FtZSBFTkQuCi0gKiAgICAgbmZhX2FkZF9zdGF0ZV91 bmlxdWUoKSBibG9ja3MgZHVwbGljYXRlIGFkZGl0aW9uIG9mIGlkZW50aWNhbCBzdGF0ZXMKLSAq ICAgICBpbiBib3RoIGNhc2VzLgotICoKLSAqICAgICBTaWduaWZpY2FuY2U6IFByZXZlbnRzIGV4 cG9uZW50aWFsIGdyb3d0aCBvZiB0aGUgc3RhdGUgY291bnQgaW4KLSAqICAgICBBTFQgYnJhbmNo ZXMgYW5kIHF1YW50aWZpZXIgZXhwYW5zaW9uLiBTaW5jZSBERlMgb3JkZXIgY2F1c2VzIHRoZQot ICogICAgIHByZWZlcnJlZCBicmFuY2gncyBzdGF0ZSB0byBiZSByZWdpc3RlcmVkIGZpcnN0LCBp ZGVudGljYWwgc3RhdGVzCi0gKiAgICAgZnJvbSBsb3dlci1wcmlvcml0eSBicmFuY2hlcyBhcmUg YXV0b21hdGljYWxseSBkaXNjYXJkZWQsIHRoZXJlYnkKLSAqICAgICBhbHNvIGd1YXJhbnRlZWlu ZyBwcmVmZXJtZW50LgotICoKLSAqICAgKDQpIEN5Y2xlIERldGVjdGlvbiBhbmQgRmFzdC1Gb3J3 YXJkIChJWC02LCBJWC00KGMpKQotICoKLSAqICAgICBXaGVuIGEgbnVsbGFibGUgZ3JvdXAgYm9k eSAoZS5nLiwgQT8pIHJlcGVhdHMgZW1wdHkgbWF0Y2hlcywKLSAqICAgICB0aGUgRU5EIC0+IEJF R0lOIGxvb3AtYmFjayBjYW4gY29udGludWUgaW5kZWZpbml0ZWx5LgotICoKLSAqICAgICBUd28g bWVjaGFuaXNtcyByZXNvbHZlIHRoaXM6Ci0gKiAgICAgLSBBIHZpc2l0ZWQgYml0bWFwIChuZmFW aXNpdGVkRWxlbXMpIGJsb2NrcyByZXZpc2l0YXRpb24gb2YgdGhlCi0gKiAgICAgICBzYW1lIGVs ZW1lbnQsIHByZXZlbnRpbmcgaW5maW5pdGUgbG9vcHMgKHNhZmV0eSkKLSAqICAgICAtIEF0IGFu IEVORCB3aXRoIHRoZSBSUFJfRUxFTV9FTVBUWV9MT09QIGZsYWcgc2V0LCB3aGVuCi0gKiAgICAg ICBjb3VudCA8IG1pbiwgdGhlIHJlbWFpbmluZyByZXF1aXJlZCBpdGVyYXRpb25zIGFyZSB0cmVh dGVkIGFzCi0gKiAgICAgICBlbXB0eSBtYXRjaGVzIGFuZCBhIGZhc3QtZm9yd2FyZCBleGl0IHBh dGggb3V0IG9mIHRoZSBncm91cCBpcwotICogICAgICAgYWRkZWQgKGNvcnJlY3RuZXNzKQotICoK LSAqICAgICBTaWduaWZpY2FuY2U6IEN5Y2xlIGRldGVjdGlvbiBndWFyYW50ZWVzIHRlcm1pbmF0 aW9uLCBhbmQKLSAqICAgICBmYXN0LWZvcndhcmQgZ3VhcmFudGVlcyB0aGF0IHRoZSBtaW4gY29u ZGl0aW9uIGlzIHNhdGlzZmllZC4KLSAqICAgICBXaXRob3V0IHRoZXNlLCBwYXR0ZXJucyBjb250 YWluaW5nIG51bGxhYmxlIGdyb3VwcyB3b3VsZCBmYWxsCi0gKiAgICAgaW50byBpbmZpbml0ZSBs b29wcyBvciBmYWlsIHRvIG1hdGNoLgotICoKLSAqICAgKDUpIE1hdGNoIFBydW5pbmcgKElYLTQo ZSkpCi0gKgotICogICAgIFdoZW4gYSBzdGF0ZSByZWFjaGVzIEZJTiBkdXJpbmcgYWR2YW5jZSwg YWxsIHJlbWFpbmluZyB1bnByb2Nlc3NlZAotICogICAgIHN0YXRlcyBvZiB0aGF0IGNvbnRleHQg YXJlIHJlbW92ZWQuIEJlY2F1c2Ugb2YgREZTIG9yZGVyLCB0aGUgcGF0aAotICogICAgIHRoYXQg cmVhY2hlcyBGSU4gZmlyc3QgaGFzIHRoZSBoaWdoZXN0IHByZWZlcm1lbnQsIHNvIHRoZSByZW1h aW5pbmcKLSAqICAgICBwYXRocyBhcmUgaW5mZXJpb3IuCi0gKgotICogICAgIFNpZ25pZmljYW5j ZTogT25jZSB0aGUgYmVzdCBtYXRjaCBpcyBkZXRlcm1pbmVkLCBleHBsb3JhdGlvbiBvZgotICog ICAgIGluZmVyaW9yIHBhdGhzIGlzIGltbWVkaWF0ZWx5IHRlcm1pbmF0ZWQuIFRoaXMgbWVjaGFu aXNtIGFjaGlldmVzCi0gKiAgICAgYm90aCBwcmVmZXJtZW50IGd1YXJhbnRlZXMgYW5kIHBlcmZv cm1hbmNlIG9wdGltaXphdGlvbi4KLSAqCi0gKiAgIC0tIFJ1bnRpbWU6IGludGVyLWNvbnRleHQg LS0KLSAqCi0gKiAgICg2KSBFYXJseSBUZXJtaW5hdGlvbiAoU0tJUCBQQVNUIExBU1QgUk9XKQot ICoKLSAqICAgICBJbiBTS0lQIFBBU1QgTEFTVCBST1cgbW9kZSwgd2hlbiBhIG1hdGNoIGlzIGZv dW5kLCBzdWJzZXF1ZW50Ci0gKiAgICAgY29udGV4dHMgd2hvc2Ugc3RhcnQgcm93cyBmYWxsIHdp dGhpbiB0aGUgbWF0Y2ggcmFuZ2UgYXJlIHBydW5lZAotICogICAgIGltbWVkaWF0ZWx5IHdpdGhv dXQgZnVydGhlciBwcm9jZXNzaW5nLgotICogICAgIEluIFNLSVAgVE8gTkVYVCBST1cgbW9kZSwg b3ZlcmxhcHBpbmcgY29udGV4dHMgYXJlIHByZXNlcnZlZAotICogICAgIGJlY2F1c2UgZWFjaCBy b3cgcmVxdWlyZXMgaXRzIG93biBpbmRlcGVuZGVudCBtYXRjaC4KLSAqCi0gKiAgICAgU2lnbmlm aWNhbmNlOiBQcnVuZXMgc3Vic2VxdWVudCBjb250ZXh0cyB3aG9zZSBzdGFydCByb3dzIG92ZXJs YXAKLSAqICAgICB3aXRoIGEgcHJpb3IgbWF0Y2ggcmFuZ2UsIGF2b2lkaW5nIHVubmVjZXNzYXJ5 IHByb2Nlc3NpbmcuCi0gKgotICogICAoNykgQ29udGV4dCBBYnNvcnB0aW9uIChDaGFwdGVyIFZJ SUkpCi0gKgotICogICAgIElmIGFuIGluZGVwZW5kZW50IGNvbnRleHQgaXMgY3JlYXRlZCBmb3Ig ZWFjaCByb3csIE8obl4yKSBzdGF0ZXMKLSAqICAgICBhY2N1bXVsYXRlLiBCeSBleHBsb2l0aW5n IHRoZSBtb25vdG9uaWNpdHkgdGhhdCBhbiBlYXJsaWVyLXN0YXJ0ZWQKLSAqICAgICBjb250ZXh0 IHN1YnN1bWVzIHRoZSBzdGF0ZXMgb2YgYSBsYXRlci1zdGFydGVkIGNvbnRleHQsIHJlZHVuZGFu dAotICogICAgIGNvbnRleHRzIGFyZSBlbGltaW5hdGVkIGVhcmx5LgotICoKLSAqICAgICBBYnNv cmJhYmlsaXR5IGlzIGRldGVybWluZWQgcGVyLWVsZW1lbnQ7IGNvbXBhcmlzb24gaXMgcGVyZm9y bWVkCi0gKiAgICAgb25seSBhdCBlbGVtZW50cyB3aXRoIHRoZSBSUFJfRUxFTV9BQlNPUkJBQkxF IGZsYWcgKHNlZSBJVi01KS4KLSAqCi0gKiAgICAgU2lnbmlmaWNhbmNlOiBLZWVwcyB0aGUgbnVt YmVyIG9mIGFjdGl2ZSBjb250ZXh0cyBhdCBhIGNvbnN0YW50Ci0gKiAgICAgbGV2ZWwsIGFjaGll dmluZyBPKG5eMikgLT4gTyhuKSB0aW1lIGNvbXBsZXhpdHkuIFdpdGhvdXQgdGhpcywKLSAqICAg ICBwZXJmb3JtYW5jZSBkZWdyYWRlcyBzaGFycGx5IG9uIGxvbmcgcGFydGl0aW9ucy4KLSAqCi0g KiBBcHBlbmRpeCBBLiBLZXkgRnVuY3Rpb24gSW5kZXgKLSAqID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LSAqCi0gKiAgIEZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgIEZpbGUgICAgICAgICAgICAg ICAgICBSb2xlCi0gKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgIHRyYW5zZm9ybVJQUiAgICAg ICAgICAgICAgICAgIHBhcnNlX3Jwci5jICAgICAgICAgICBQYXJzZXIgZW50cnkgcG9pbnQKLSAq ICAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlICAgICAgICAgcGFyc2VfcnByLmMgICAgICAgICAgIERF RklORSB0cmFuc2Zvcm1hdGlvbgotICogICBjb2xsZWN0UGF0dGVyblZhcmlhYmxlcyAgICAgICBy cHIuYyAgICAgICAgICAgICAgICAgVmFyaWFibGUgY29sbGVjdGlvbgotICogICBidWlsZERlZmlu ZVZhcmlhYmxlTGlzdCAgICAgICBycHIuYyAgICAgICAgICAgICAgICAgREVGSU5FIHZhcmlhYmxl IGxpc3QKLSAqICAgYnVpbGRSUFJQYXR0ZXJuICAgICAgICAgICAgICAgcnByLmMgICAgICAgICAg ICAgICAgIE5GQSBjb21waWxhdGlvbiBtYWluCi0gKiAgIG9wdGltaXplUlBSUGF0dGVybiAgICAg ICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBBU1Qgb3B0aW1pemF0aW9uCi0gKiAgIGZpbGxS UFJQYXR0ZXJuICAgICAgICAgICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBORkEgZWxlbWVu dCBnZW5lcmF0aW9uCi0gKiAgIGZpbmFsaXplUlBSUGF0dGVybiAgICAgICAgICAgIHJwci5jICAg ICAgICAgICAgICAgICBGaW5hbGl6YXRpb24KLSAqICAgY29tcHV0ZUFic29yYmFiaWxpdHkgICAg ICAgICAgcnByLmMgICAgICAgICAgICAgICAgIEFic29ycHRpb24gYW5hbHlzaXMKLSAqICAgdXBk YXRlX3JlZHVjZWRfZnJhbWUgICAgICAgICAgbm9kZVdpbmRvd0FnZy5jICAgICAgIEV4ZWN1dGlv biBtYWluIGxvb3AKLSAqICAgbmZhX2V2YWx1YXRlX3JvdyAgICAgICAgICAgICAgbm9kZVdpbmRv d0FnZy5jICAgICAgIERFRklORSBldmFsdWF0aW9uCi0gKiAgIEV4ZWNSUFJTdGFydENvbnRleHQg ICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBDb250ZXh0IGNyZWF0aW9uCi0gKiAgIEV4 ZWNSUFJQcm9jZXNzUm93ICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICAzLXBoYXNl IHByb2Nlc3NpbmcKLSAqICAgbmZhX21hdGNoICAgICAgICAgICAgICAgICAgICAgZXhlY1JQUi5j ICAgICAgICAgICAgIFBoYXNlIDEKLSAqICAgbmZhX2Fic29yYl9jb250ZXh0cyAgICAgICAgICAg ZXhlY1JQUi5jICAgICAgICAgICAgIFBoYXNlIDIKLSAqICAgbmZhX2FkdmFuY2UgICAgICAgICAg ICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIFBoYXNlIDMKLSAqICAgbmZhX2FkdmFuY2Vf c3RhdGUgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIFBlci1zdGF0ZSBicmFuY2hp bmcKLSAqICAgbmZhX3JvdXRlX3RvX2VsZW0gICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAg ICAgIEVsZW1lbnQgcm91dGluZwotICogICBuZmFfYWR2YW5jZV9hbHQgICAgICAgICAgICAgICBl eGVjUlBSLmMgICAgICAgICAgICAgQUxUIGhhbmRsaW5nCi0gKiAgIG5mYV9hZHZhbmNlX2JlZ2lu ICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBCRUdJTiBoYW5kbGluZwotICogICBu ZmFfYWR2YW5jZV9lbmQgICAgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgRU5EIGhh bmRsaW5nCi0gKiAgIG5mYV9hZHZhbmNlX3ZhciAgICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAg ICAgICAgICBWQVIgaGFuZGxpbmcKLSAqICAgbmZhX2FkZF9zdGF0ZV91bmlxdWUgICAgICAgICAg ZXhlY1JQUi5jICAgICAgICAgICAgIERlZHVwbGljYXRpb24KLSAqICAgbmZhX3N0YXRlc19jb3Zl cmVkICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIEFic29ycHRpb24gY2hlY2sKLSAq ICAgbmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMgZXhlY1JQUi5jICAgICAgICAgICAgIFBl ci1jb250ZXh0IHJlLWV2YWwKLSAqICAgRXhlY1JQUkdldEhlYWRDb250ZXh0ICAgICAgICAgZXhl Y1JQUi5jICAgICAgICAgICAgIENvbnRleHQgbG9va3VwCi0gKiAgIEV4ZWNSUFJGcmVlQ29udGV4 dCAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBDb250ZXh0IGRlYWxsb2NhdGlvbgot ICogICBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cyAgICBleGVjUlBSLmMgICAgICAgICAgICAg RGVhZCBjb250ZXh0IGNsZWFudXAKLSAqICAgRXhlY1JQUkZpbmFsaXplQWxsQ29udGV4dHMgICAg ZXhlY1JQUi5jICAgICAgICAgICAgIFBhcnRpdGlvbi1lbmQgZmluYWxpemUKLSAqICAgRXhlY1JQ UlJlY29yZENvbnRleHRTdWNjZXNzICAgZXhlY1JQUi5jICAgICAgICAgICAgIFN0YXRzOiBtYXRj aCBzdWNjZXNzCi0gKiAgIEV4ZWNSUFJSZWNvcmRDb250ZXh0RmFpbHVyZSAgIGV4ZWNSUFIuYyAg ICAgICAgICAgICBTdGF0czogbWF0Y2ggZmFpbHVyZQotICogICBjb21wdXRlX25hdl9vZmZzZXRz ICAgICAgICAgICBjcmVhdGVwbGFuLmMgICAgICAgICAgVHJpbSBvZmZzZXQgY29tcHV0YXRpb24K LSAqCi0gKiBBcHBlbmRpeCBCLiBEYXRhIFN0cnVjdHVyZSBSZWxhdGlvbnNoaXAgRGlhZ3JhbQot ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotICoKLSAqICAgUGFyc2VyIExheWVyCi0gKiAgIC0tLS0t LS0tCi0gKiAgIFJQQ29tbW9uU3ludGF4Ci0gKiAgICAgfC0tLSBycFNraXBUbzogUlBTa2lwVG8K LSAqICAgICB8LS0tIGluaXRpYWw6IGJvb2wKLSAqICAgICArLS0tIHJwUGF0dGVybjogUlBSUGF0 dGVybk5vZGUqICh0cmVlKQotICogICAgICAgICAgfC0tLSBub2RlVHlwZTogVkFSIHwgU0VRIHwg QUxUIHwgR1JPVVAKLSAqICAgICAgICAgIHwtLS0gbWluLCBtYXg6IHF1YW50aWZpZXIKLSAqICAg ICAgICAgIHwtLS0gdmFyTmFtZTogdmFyaWFibGUgbmFtZSAoVkFSIG9ubHkpCi0gKiAgICAgICAg ICArLS0tIGNoaWxkcmVuOiBMaXN0KiAoU0VRL0FMVC9HUk9VUCBvbmx5KQotICoKLSAqICAgUGxh bm5lciBMYXllcgotICogICAtLS0tLS0tLS0tCi0gKiAgIFdpbmRvd0FnZyAocGxhbiBub2RlKQot ICogICAgIHwtLS0gcnBTa2lwVG86IFJQU2tpcFRvCi0gKiAgICAgfC0tLSBkZWZpbmVDbGF1c2U6 IExpc3Q8VGFyZ2V0RW50cnk+Ci0gKiAgICAgKy0tLSBycFBhdHRlcm46IFJQUlBhdHRlcm4qCi0g KiAgICAgICAgICB8LS0tIG51bVZhcnM6IGludAotICogICAgICAgICAgfC0tLSB2YXJOYW1lczog Y2hhcioqCi0gKiAgICAgICAgICB8LS0tIG1heERlcHRoOiBSUFJEZXB0aAotICogICAgICAgICAg fC0tLSBpc0Fic29yYmFibGU6IGJvb2wKLSAqICAgICAgICAgIHwtLS0gbnVtRWxlbWVudHM6IGlu dAotICogICAgICAgICAgKy0tLSBlbGVtZW50czogUlBSUGF0dGVybkVsZW1lbnRbXSAgKGZsYXQg YXJyYXkpCi0gKiAgICAgICAgICAgICAgIHwtLS0gdmFySWQgICAgICAoMUIpCi0gKiAgICAgICAg ICAgICAgIHwtLS0gZGVwdGggICAgICAoMUIpCi0gKiAgICAgICAgICAgICAgIHwtLS0gZmxhZ3Mg ICAgICAoMUIpCi0gKiAgICAgICAgICAgICAgIHwtLS0gcmVzZXJ2ZWQgICAoMUIpCi0gKiAgICAg ICAgICAgICAgIHwtLS0gbWluLCBtYXggICAoNEIgKyA0QikKLSAqICAgICAgICAgICAgICAgKy0t LSBuZXh0LCBqdW1wICgyQiArIDJCKQotICoKLSAqICAgRXhlY3V0b3IgTGF5ZXIKLSAqICAgLS0t LS0tLS0tLQotICogICBXaW5kb3dBZ2dTdGF0ZQotICogICAgIHwtLS0gcnBTa2lwVG86IFJQU2tp cFRvIChBRlRFUiBNQVRDSCBTS0lQIG1vZGUpCi0gKiAgICAgfC0tLSBycFBhdHRlcm46IFJQUlBh dHRlcm4qIChjb3BpZWQgZnJvbSBwbGFuKQotICogICAgIHwtLS0gZGVmaW5lVmFyaWFibGVMaXN0 OiBMaXN0PFN0cmluZz4gKHZhcmlhYmxlIG5hbWVzLCBERUZJTkUgb3JkZXIpCi0gKiAgICAgfC0t LSBkZWZpbmVDbGF1c2VMaXN0OiBMaXN0PEV4cHJTdGF0ZT4KLSAqICAgICB8LS0tIG5mYVZhck1h dGNoZWQ6IGJvb2xbXSAocGVyLXJvdyBjYWNoZSkKLSAqICAgICB8LS0tIG5mYVZpc2l0ZWRFbGVt czogYml0bWFwd29yZCogKGN5Y2xlIGRldGVjdGlvbikKLSAqICAgICB8LS0tIG5mYVN0YXRlU2l6 ZTogU2l6ZSAocHJlLWNhbGN1bGF0ZWQgUlBSTkZBU3RhdGUgYWxsb2NhdGlvbiBzaXplKQotICog ICAgIHwtLS0gbmZhQ29udGV4dCA8LT4gbmZhQ29udGV4dFRhaWwgKGRvdWJseS1saW5rZWQgbGlz dCkKLSAqICAgICB8ICAgKy0tLSBSUFJORkFDb250ZXh0Ci0gKiAgICAgfCAgICAgICB8LS0tIHN0 YXRlczogUlBSTkZBU3RhdGUqIChsaW5rZWQgbGlzdCkKLSAqICAgICB8ICAgICAgIHwgICB8LS0t IGVsZW1JZHgKLSAqICAgICB8ICAgICAgIHwgICB8LS0tIGNvdW50c1tdCi0gKiAgICAgfCAgICAg ICB8ICAgKy0tLSBpc0Fic29yYmFibGUKLSAqICAgICB8ICAgICAgIHwtLS0gbWF0Y2hTdGFydFJv dywgbWF0Y2hFbmRSb3cKLSAqICAgICB8ICAgICAgIHwtLS0gbGFzdFByb2Nlc3NlZFJvdwotICog ICAgIHwgICAgICAgfC0tLSBtYXRjaGVkU3RhdGUgKGNsb25lZCBvbiBGSU4gYXJyaXZhbCkKLSAq ICAgICB8ICAgICAgIHwtLS0gaGFzQWJzb3JiYWJsZVN0YXRlCi0gKiAgICAgfCAgICAgICArLS0t IGFsbFN0YXRlc0Fic29yYmFibGUKLSAqICAgICB8LS0tIG5mYUNvbnRleHRGcmVlIChyZWN5Y2xp bmcgcG9vbCkKLSAqICAgICArLS0tIG5mYVN0YXRlRnJlZSAocmVjeWNsaW5nIHBvb2wpCi0gKgot ICogQXBwZW5kaXggQy4gTkZBIEVsZW1lbnQgQXJyYXkgRXhhbXBsZXMKLSAqID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLSAqCi0gKiBDLTEuIFBBVFRFUk4gKEEgQiBDKQotICoKLSAqICAgaWR4ICB2YXJJ ZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBqdW1wCi0gKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogICAgMCAgIEEgICAgICAwICAgICAgMSAgICAxICAg IDEgICAgIC0xCi0gKiAgICAxICAgQiAgICAgIDAgICAgICAxICAgIDEgICAgMiAgICAgLTEKLSAq ICAgIDIgICBDICAgICAgMCAgICAgIDEgICAgMSAgICAzICAgICAtMQotICogICAgMyAgIEZJTiAg ICAwICAgICAgMSAgICAxICAgIC0xICAgIC0xCi0gKgotICogQy0yLiBQQVRURVJOIChBKyBCKikK LSAqCi0gKiAgIGlkeCAgdmFySWQgIGRlcHRoICBtaW4gIG1heCAgbmV4dCAganVtcCAgZmxhZ3MK LSAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgICAwICAgQSAgICAgIDAgICAgICAxICAgIElORiAg MSAgICAgLTEgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNICi0gKiAgICAxICAgQiAg ICAgIDAgICAgICAwICAgIElORiAgMiAgICAgLTEKLSAqICAgIDIgICBGSU4gICAgMCAgICAgIDEg ICAgMSAgICAtMSAgICAtMQotICoKLSAqICAgT25seSBBKyBpcyB0aGUgYWJzb3JwdGlvbiBwb2lu dCAoQ2FzZSAxKS4gT25jZSBwYXN0IEEsCi0gKiAgIGFic29ycHRpb24gaXMgcGVybWFuZW50bHkg ZGlzYWJsZWQgZm9yIHRoYXQgc3RhdGUuCi0gKgotICogQy0zLiBQQVRURVJOIChBIHwgQiB8IEMp Ci0gKgotICogICBpZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAKLSAqICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogICAgMCAgIEFMVCAg ICAwICAgICAgMSAgICAxICAgIDEgICAgIC0xICAgIGFsdGVybmF0aW9uIHN0YXJ0Ci0gKiAgICAx ICAgQSAgICAgIDEgICAgICAxICAgIDEgICAgNCAgICAgMiAgICAgYnJhbmNoIDEgLT4gRklOLCBq dW1wIC0+IGJyYW5jaCAyCi0gKiAgICAyICAgQiAgICAgIDEgICAgICAxICAgIDEgICAgNCAgICAg MyAgICAgYnJhbmNoIDIgLT4gRklOLCBqdW1wIC0+IGJyYW5jaCAzCi0gKiAgICAzICAgQyAgICAg IDEgICAgICAxICAgIDEgICAgNCAgICAgLTEgICAgYnJhbmNoIDMgLT4gRklOCi0gKiAgICA0ICAg RklOICAgIDAgICAgICAxICAgIDEgICAgLTEgICAgLTEKLSAqCi0gKiBDLTQuIFBBVFRFUk4gKChB IEIpKyBDKQotICoKLSAqICAgaWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1 bXAgIGZsYWdzCi0gKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgICAwICAgQkVHSU4gICAgMCAg ICAgIDEgICAgSU5GICAxICAgICA0ICAgICBBQlNPUkJBQkxFX0JSQU5DSAotICogICAgMSAgIEEg ICAgICAgIDEgICAgICAxICAgIDEgICAgMiAgICAgLTEgICAgQUJTT1JCQUJMRV9CUkFOQ0gKLSAq ICAgIDIgICBCICAgICAgICAxICAgICAgMSAgICAxICAgIDMgICAgIC0xICAgIEFCU09SQkFCTEVf QlJBTkNICi0gKiAgICAzICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICA0ICAgICAxICAgICBB QlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0gKLSAqICAgIDQgICBDICAgICAgICAwICAgICAg MSAgICAxICAgIDUgICAgIC0xCi0gKiAgICA1ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAgICAt MSAgICAtMQotICoKLSAqICAgQ2FzZSAyOiBHUk9VUCsgd2l0aCB7MSwxfSBib2R5IFZBUnMuIEEs IEIgYXJlIGJyYW5jaGVzOwotICogICBFTkQgaXMgdGhlIGFic29ycHRpb24gcG9pbnQuIENvbXBh cmUgd2l0aCBDLTYgKENhc2UgMykuCi0gKgotICogQy01LiBQQVRURVJOICgoQSB8IEIpKz8gQykK LSAqCi0gKiAgIGlkeCAgdmFySWQgICAgZGVwdGggIG1pbiAgbWF4ICAgbmV4dCAganVtcCAgZmxh Z3MKLSAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotICogICAgMCAgIEJFR0lOICAgIDAgICAgICAxICAgIElORiAg IDEgICAgIDUgICAgIFJFTFVDVEFOVCwgZ3JvdXAgc3RhcnQKLSAqICAgIDEgICBBTFQgICAgICAx ICAgICAgMSAgICAxICAgICAyICAgICAtMSAgICBhbHRlcm5hdGlvbiBzdGFydAotICogICAgMiAg IEEgICAgICAgIDIgICAgICAxICAgIDEgICAgIDQgICAgIDMgICAgIGJyYW5jaCAxCi0gKiAgICAz ICAgQiAgICAgICAgMiAgICAgIDEgICAgMSAgICAgNCAgICAgLTEgICAgYnJhbmNoIDIKLSAqICAg IDQgICBFTkQgICAgICAwICAgICAgMSAgICBJTkYgICA1ICAgICAxICAgICBSRUxVQ1RBTlQsIGdy b3VwIGVuZAotICogICAgNSAgIEMgICAgICAgIDAgICAgICAxICAgIDEgICAgIDYgICAgIC0xCi0g KiAgICA2ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAgICAgLTEgICAgLTEKLSAqCi0gKiBDLTYu IFBBVFRFUk4gKChBKyBCKSsgQykgIC0tIEFic29yYmFiaWxpdHkgZmxhZyBleGFtcGxlCi0gKgot ICogICBpZHggIHZhcklkICAgIGRlcHRoICBtaW4gIG1heCAgIG5leHQgIGp1bXAgIGZsYWdzCi0g KiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogICAgMCAgIEJFR0lOICAgIDAgICAgICAxICAgIElO RiAgIDEgICAgIDQgICAgIEFCU09SQkFCTEVfQlJBTkNILCBncm91cCBzdGFydAotICogICAgMSAg IEEgICAgICAgIDEgICAgICAxICAgIElORiAgIDIgICAgIC0xICAgIEFCU09SQkFCTEUgfCBBQlNP UkJBQkxFX0JSQU5DSAotICogICAgMiAgIEIgICAgICAgIDEgICAgICAxICAgIDEgICAgIDMgICAg IC0xCi0gKiAgICAzICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICAgNCAgICAgMSAgICAgZ3Jv dXAgZW5kCi0gKiAgICA0ICAgQyAgICAgICAgMCAgICAgIDEgICAgMSAgICAgNSAgICAgLTEKLSAq ICAgIDUgICBGSU4gICAgICAwICAgICAgMSAgICAxICAgICAtMSAgICAtMQotICoKLSAqICAgUmVj dXJzZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5IC0+IEEgbWF0Y2hlcyBDYXNlIDEgKHNpbXBs ZSBWQVIrKS4KLSAqICAgQSBnZXRzIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCwgQkVH SU4gZ2V0cyBBQlNPUkJBQkxFX0JSQU5DSC4KLSAqICAgQiBhbmQgRU5EIGdldCBubyBmbGFncyAt PiBhYnNvcnB0aW9uIHN0b3BzIG9uY2UgdGhlIHN0YXRlIGFkdmFuY2VzIHRvIEIuCi0gKiAgIChT ZWUgSVYtNSBDYXNlIDMpCi0gKgotICogQy03LiBQQVRURVJOICgoQSsgQiB8IEMqKSsgRCkgIC0t IFBlci1icmFuY2ggYWJzb3JwdGlvbiBpbiBBTFQKLSAqCi0gKiAgIGlkeCAgdmFySWQgICAgZGVw dGggIG1pbiAgbWF4ICAgbmV4dCAganVtcCAgZmxhZ3MKLSAqICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gKiAgICAwICAgQkVHSU4gICAgMCAgICAgIDEgICAgSU5GICAgMSAgICAgNiAgICAgQUJTT1JC QUJMRV9CUkFOQ0gKLSAqICAgIDEgICBBTFQgICAgICAxICAgICAgMSAgICAxICAgICAyICAgICAt MSAgICBBQlNPUkJBQkxFX0JSQU5DSAotICogICAgMiAgIEEgICAgICAgIDIgICAgICAxICAgIElO RiAgIDMgICAgIDQgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSAotICogICAgMyAg IEIgICAgICAgIDIgICAgICAxICAgIDEgICAgIDUgICAgIC0xCi0gKiAgICA0ICAgQyAgICAgICAg MiAgICAgIDAgICAgSU5GICAgNSAgICAgLTEgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJB TkNICi0gKiAgICA1ICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICAgNiAgICAgMSAgICAgRU1Q VFlfTE9PUAotICogICAgNiAgIEQgICAgICAgIDAgICAgICAxICAgIDEgICAgIDcgICAgIC0xCi0g KiAgICA3ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAgICAgLTEgICAgLTEKLSAqCi0gKiAgIEFM VCBicmFuY2hlcyBhcmUgY2hlY2tlZCBpbmRlcGVuZGVudGx5IGZvciBhYnNvcmJhYmlsaXR5Lgot ICogICBCcmFuY2ggMTogQSsgbWF0Y2hlcyBDYXNlIDEgLT4gQSBnZXRzIEFCU09SQkFCTEUuIEIg aGFzIG5vIGZsYWcuCi0gKiAgIEJyYW5jaCAyOiBDKiBtYXRjaGVzIENhc2UgMSAtPiBDIGdldHMg QUJTT1JCQUJMRS4KLSAqICAgQm90aCBBIGFuZCBDIGdldCBBQlNPUkJBQkxFX0JSQU5DSCBhcyBw YXJ0IG9mIHRoZWlyIHJlc3BlY3RpdmUgYnJhbmNoCi0gKiAgIHBhdGhzLgotICogICBFTkQgaGFz IEVNUFRZX0xPT1A6IGJyYW5jaCAyIChDKikgaXMgbnVsbGFibGUsIG1ha2luZyB0aGUgZ3JvdXAg Ym9keQotICogICBudWxsYWJsZS4KLSAqICAgQkVHSU4gYW5kIEFMVCBnZXQgQUJTT1JCQUJMRV9C UkFOQ0ggKG9uIHRoZSBwYXRoIHRvIGFic29yYmFibGUgZWxlbWVudHMpLgotICoKLSAqID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLSAqICAgRW5kIG9mIGRvY3VtZW50Ci0gKiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisgKiBGb3IgdGhlIGRlc2lnbiBhbmQgZXhlY3V0aW9uIG1vZGVsIG9mIHRoZSBORkEgZW5n aW5lIGltcGxlbWVudGVkCisgKiBpbiB0aGlzIGZpbGUsIHNlZSBzcmMvYmFja2VuZC9leGVjdXRv ci9SRUFETUUucnByLgogICovCiAKIC8qIEJpdG1hcCBtYWNyb3MgZm9yIE5GQSBjeWNsZSBkZXRl Y3Rpb24gKGNmLiBiaXRtYXBzZXQuYywgdGlkYml0bWFwLmMpICovCi0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0039-Apply-pgindent-RPR-comment-blocks.txt" Content-Disposition: attachment; filename="nocfbot-0039-Apply-pgindent-RPR-comment-blocks.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64n9d38 RnJvbSA0NDEwMzlhYmE1MTNkNmZmMGY0ZGU3OWM4ZTNhODc2NWYwZmJhYTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDE6MTc6MTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDM5LzQwXSBB cHBseSBwZ2luZGVudCBjYW5vbmljYWxpemF0aW9uIHRvIFJQUiBjb21tZW50IGJsb2NrcwoKVHdv IFJQUiBzb3VyY2UgZmlsZXMgY2FycmllZCBjb21tZW50IGJsb2NrcyB0aGF0IHByZS1kYXRlZCB0 aGVpcgpsYXN0IHBnaW5kZW50IHBhc3M6IGV4ZWNSUFIuYyAoaW4gbmZhX21hdGNoIGFuZCBuZmFf YWR2YW5jZV9lbmQpCmFuZCBycHIuYyAoaW4gdHJ5TXVsdGlwbHlRdWFudGlmaWVycykuICBSdW4g cGdpbmRlbnQgdG8gYnJpbmcgdGhlCnByb3NlIHBhcmFncmFwaHMgaW50byBsaW5lIHdpdGggdGhl IHByb2plY3Qtd2lkZSA3OC1jb2x1bW4gc3R5bGUuCgpGb3IgdHdvIG9mIHRob3NlIGJsb2NrcyB0 aGUgc3RydWN0dXJlIGlzIG1lYW5pbmdmdWwgKG51bWJlcmVkIGxpc3QKaW4gbmZhX2FkdmFuY2Vf ZW5kLCAiQ2FzZSAyIC8gQ2FzZSAzIC8gVW5zYWZlIGV4YW1wbGUiIGxhYmVscyBpbgp0cnlNdWx0 aXBseVF1YW50aWZpZXJzKSwgc28gdGhlIGxhYmVsZWQgaXRlbXMgYXJlIHdyYXBwZWQgaW4KLyot LS0tLS0tLS0tIC4uLiAqLS0tLS0tLS0tLSAuLi4gKi8gdG8gZGlzYWJsZSBwZ2luZGVudCByZWZs b3cgb24KdGhlIGhhbmdpbmcgaW5kZW50cyB3aGlsZSBsZWF2aW5nIHBsYWluIHByb3NlIHBhcmFn cmFwaHMgaW5zaWRlCnRoZSBzYW1lIGJsb2NrIGF0IHRoZSBjYW5vbmljYWwgNzgtY29sdW1uIHdy YXAuCgpUaGVzZSBhZGp1c3RtZW50cyB3ZXJlIGRlZmVycmVkIGZyb20gZWFybGllciBkZWx0YSBw YXRjaGVzIGluIHRoaXMKc2VyaWVzIChVc2UgTWF4KCkvTWluKCkgbWFjcm9zLCBSZXBsYWNlIG5v bi1BU0NJSSBjaGFyYWN0ZXJzKSBzbwp0aG9zZSBwYXRjaGVzIGNvdWxkIHJlbWFpbiBmb2N1c2Vk IG9uIHRoZWlyIHN0YXRlZCBsb2dpY2FsIGNoYW5nZXMuCldpdGggdGhlIGRlc2lnbiBub3RlcyBu b3cgZXh0cmFjdGVkIGludG8gUkVBRE1FLnJwciwgdGhpcyBpcyBhCm5hdHVyYWwgbW9tZW50IHRv IGNsZWFyIHRoZSByZW1haW5pbmcgZm9ybWF0dGluZyBkZWJ0LgoKV2hpdGVzcGFjZS1vbmx5IGNo YW5nZTsgbm8gZnVuY3Rpb25hbCBvciB0ZXN0IGltcGFjdC4KLS0tCiBzcmMvYmFja2VuZC9leGVj dXRvci9leGVjUlBSLmMgICB8IDMwICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgfCAgOSArKysrKy0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQ Ui5jCmluZGV4IDk2Y2ZiZmJjMGEyLi4yNDJhZTljNmRjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIu YwpAQCAtODEwLDEwICs4MTAsMTAgQEAgbmZhX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBib29sICp2YXJNYXRjaGVkKQogCQkJCSAqIHRvIHRoZSBu ZXh0IG91dGVyIEVORC4gIFRoZSBsb29wIGJlbG93IHdhbGtzIHRoaXMgY2hhaW4uCiAJCQkJICoK IAkJCQkgKiBBQlNPUkJBQkxFX0JSQU5DSCBtYXJrcyBlbGVtZW50cyBpbnNpZGUgdGhlIGFic29y YmFibGUKLQkJCQkgKiByZWdpb247IEFCU09SQkFCTEUgbWFya3MgdGhlIG91dGVybW9zdCBqdWRn bWVudCBwb2ludAotCQkJCSAqIHdoZXJlIGNvdW50LWRvbWluYW5jZSBpcyBldmFsdWF0ZWQuICBX ZSBjaGFpbiB0aHJvdWdoCi0JCQkJICogQlJBTkNIIGVsZW1lbnRzIHVudGlsIHJlYWNoaW5nIHRo ZSBBQlNPUkJBQkxFIHBvaW50IG9yCi0JCQkJICogYW4gZWxlbWVudCB0aGF0IGNhbiBzdGlsbCBs b29wIChjb3VudCA8IG1heCkuCisJCQkJICogcmVnaW9uOyBBQlNPUkJBQkxFIG1hcmtzIHRoZSBv dXRlcm1vc3QganVkZ21lbnQgcG9pbnQgd2hlcmUKKwkJCQkgKiBjb3VudC1kb21pbmFuY2UgaXMg ZXZhbHVhdGVkLiAgV2UgY2hhaW4gdGhyb3VnaCBCUkFOQ0gKKwkJCQkgKiBlbGVtZW50cyB1bnRp bCByZWFjaGluZyB0aGUgQUJTT1JCQUJMRSBwb2ludCBvciBhbiBlbGVtZW50CisJCQkJICogdGhh dCBjYW4gc3RpbGwgbG9vcCAoY291bnQgPCBtYXgpLgogCQkJCSAqLwogCQkJCWlmIChSUFJFbGVt SXNBYnNvcmJhYmxlQnJhbmNoKGVsZW0pICYmCiAJCQkJCSFSUFJFbGVtSXNBYnNvcmJhYmxlKGVs ZW0pICYmCkBAIC0xMDM1LDkgKzEwMzUsOSBAQCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCVJQUlBhdHRlcm5FbGVtZW50ICpq dW1wRWxlbTsKIAkJUlBSTkZBU3RhdGUgKmZmU3RhdGUgPSBOVUxMOwogCi0JCS8qCi0JCSAqIFR3 byBwYXRocyBhcmUgZXhwbG9yZWQgaW4gcGFyYWxsZWwgd2hlbiB0aGUgZ3JvdXAgYm9keSBpcwot CQkgKiBudWxsYWJsZSAoUlBSX0VMRU1fRU1QVFlfTE9PUCk6CisJCS8qLS0tLS0tLS0tLQorCQkg KiBUd28gcGF0aHMgYXJlIGV4cGxvcmVkIGluIHBhcmFsbGVsIHdoZW4gdGhlIGdyb3VwIGJvZHkg aXMgbnVsbGFibGUKKwkJICogKFJQUl9FTEVNX0VNUFRZX0xPT1ApOgogCQkgKgogCQkgKiAxLiBQ cmltYXJ5IHBhdGg6IGxvb3AgYmFjayBhbmQgYXR0ZW1wdCByZWFsIG1hdGNoZXMgaW4gdGhlCiAJ CSAqICAgIG5leHQgaXRlcmF0aW9uIChzdGF0ZSwgbW9kaWZpZWQgYmVsb3cpLgpAQCAtMTA0Niw4 ICsxMDQ2LDkgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBS TkZBQ29udGV4dCAqY3R4LAogCQkgKiAgICB0cmVhdGluZyBhbGwgcmVtYWluaW5nIHJlcXVpcmVk IGl0ZXJhdGlvbnMgYXMgZW1wdHkKIAkJICogICAgbWF0Y2hlcyAoZmZTdGF0ZSwgaGFuZGxlZCBh ZnRlciB0aGUgcHJpbWFyeSBwYXRoKS4KIAkJICoKLQkJICogVGhlIHNuYXBzaG90IG11c3QgYmUg dGFrZW4gQkVGT1JFIG1vZGlmeWluZyBzdGF0ZSBmb3IgdGhlCi0JCSAqIGxvb3AtYmFjaywgc2lu Y2UgYm90aCBwYXRocyBkaXZlcmdlIGZyb20gdGhlIHNhbWUgcG9pbnQuCisJCSAqIFRoZSBzbmFw c2hvdCBtdXN0IGJlIHRha2VuIEJFRk9SRSBtb2RpZnlpbmcgc3RhdGUgZm9yIHRoZSBsb29wLWJh Y2ssCisJCSAqIHNpbmNlIGJvdGggcGF0aHMgZGl2ZXJnZSBmcm9tIHRoZSBzYW1lIHBvaW50Lgor CQkgKi0tLS0tLS0tLS0KIAkJICovCiAJCWlmIChSUFJFbGVtQ2FuRW1wdHlMb29wKGVsZW0pKQog CQkJZmZTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIHN0YXRlLT5lbGVtSWR4LApA QCAtMTA2MiwxMiArMTA2MywxMSBAQCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJCQkgIGN1cnJlbnRQb3MpOwogCiAJCS8q Ci0JCSAqIEZhc3QtZm9yd2FyZCBwYXRoIGZvciBudWxsYWJsZSBib2RpZXMuICBFLmcuIChBPyl7 MiwzfSB3aGVuCi0JCSAqIEEgZG9lc24ndCBtYXRjaDogdGhlIHByaW1hcnkgbG9vcC1iYWNrIHBy b2R1Y2VzIGVtcHR5Ci0JCSAqIGl0ZXJhdGlvbnMgdGhhdCBjeWNsZSBkZXRlY3Rpb24gd291bGQg a2lsbC4gIEluc3RlYWQsIGV4aXQKLQkJICogZGlyZWN0bHkgd2l0aCBjb3VudCBzYXRpc2ZpZWQu ICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QKLQkJICogbmZhX2FkdmFuY2VfZW5kKSB0byBhdm9p ZCBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5L3JlbHVjdGFudAotCQkgKiBsb29wIHN0YXRlcy4K KwkJICogRmFzdC1mb3J3YXJkIHBhdGggZm9yIG51bGxhYmxlIGJvZGllcy4gIEUuZy4gKEE/KXsy LDN9IHdoZW4gQQorCQkgKiBkb2Vzbid0IG1hdGNoOiB0aGUgcHJpbWFyeSBsb29wLWJhY2sgcHJv ZHVjZXMgZW1wdHkgaXRlcmF0aW9ucyB0aGF0CisJCSAqIGN5Y2xlIGRldGVjdGlvbiB3b3VsZCBr aWxsLiAgSW5zdGVhZCwgZXhpdCBkaXJlY3RseSB3aXRoIGNvdW50CisJCSAqIHNhdGlzZmllZC4g IFJvdXRlIHRvIGVsZW0tPm5leHQgKG5vdCBuZmFfYWR2YW5jZV9lbmQpIHRvIGF2b2lkCisJCSAq IGNyZWF0aW5nIGNvbXBldGluZyBncmVlZHkvcmVsdWN0YW50IGxvb3Agc3RhdGVzLgogCQkgKi8K IAkJaWYgKGZmU3RhdGUgIT0gTlVMTCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRl eCA3NTRmY2Q1MzA5OS4uMjU0MzE3MGMzNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBA IC04MjUsNyArODI1LDcgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAq cGF0dGVybikKIAkJcmV0dXJuIGNoaWxkOwogCX0KIAotCS8qCisJLyotLS0tLS0tLS0tCiAJICog Q2FzZSAyOiBPdXRlciBleGFjdCAobWluID09IG1heCk6IChBezIsM30pezR9IC0+IEF7OCwxMn0u CiAJICogICAgICAgICBTYWZlIGJlY2F1c2UgZXZlcnkgaXRlcmF0aW9uIHByb2R1Y2VzIHRoZSBz YW1lIHJhbmdlLgogCSAqCkBAIC04MzMsOSArODMzLDEwIEBAIHRyeU11bHRpcGx5UXVhbnRpZmll cnMoUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pCiAJICogICAgICAgICBTYWZlIGJlY2F1c2UgdGhl IGNoaWxkIGNvbnRyaWJ1dGVzIGV4YWN0bHkgb25lIHBlcgogCSAqICAgICAgICAgaXRlcmF0aW9u LCBzbyB0aGUgb3V0ZXIgcmFuZ2UgbWFwcyBkaXJlY3RseS4KIAkgKgotCSAqIFVuc2FmZSBleGFt cGxlOiAoQXsyfSl7MiwzfSBwcm9kdWNlcyBjb3VudHMgNCBvciA2IG9ubHksIG5vdAotCSAqIHRo ZSBmdWxsIHJhbmdlIDQuLjYsIHNvIHdlIGNhbm5vdCBmbGF0dGVuIHdoZW4gY2hpbGQgaGFzIGEK LQkgKiBub24tdHJpdmlhbCByYW5nZSBBTkQgb3V0ZXIgaXMgYWxzbyBhIHJhbmdlLgorCSAqIFVu c2FmZSBleGFtcGxlOiAoQXsyfSl7MiwzfSBwcm9kdWNlcyBjb3VudHMgNCBvciA2IG9ubHksIG5v dCB0aGUgZnVsbAorCSAqIHJhbmdlIDQuLjYsIHNvIHdlIGNhbm5vdCBmbGF0dGVuIHdoZW4gY2hp bGQgaGFzIGEgbm9uLXRyaXZpYWwgcmFuZ2UgQU5ECisJICogb3V0ZXIgaXMgYWxzbyBhIHJhbmdl LgorCSAqLS0tLS0tLS0tLQogCSAqLwogCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9RVUFOVElUWV9J TkYgJiYKIAkJKHBhdHRlcm4tPm1pbiA9PSBwYXR0ZXJuLT5tYXggfHwKLS0gCjIuNTAuMSAoQXBw bGUgR2l0LTE1NSkKCg== --0000000000003376fb0650c4ab8e Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0040-Reword-RPR-navigation-descriptions-pg_proc.dat.txt" Content-Disposition: attachment; filename="nocfbot-0040-Reword-RPR-navigation-descriptions-pg_proc.dat.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mon64pd739 RnJvbSA4MzM5YTU3ODNkM2M5NzM4ZjA0M2U4YWVhOWQwMmVjZmZmZTQyYWYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIgTWF5IDIwMjYgMDE6MTk6MzcgKzA5MDAKU3ViamVjdDogW1BBVENIIDQwLzQwXSBS ZXdvcmQgUlBSIG5hdmlnYXRpb24gZnVuY3Rpb24gZGVzY3JpcHRpb25zIGluCiBwZ19wcm9jLmRh dAoKVGhlIGRlc2NyIGZpZWxkcyBmb3IgcHJldi9uZXh0L2ZpcnN0L2xhc3QgaW4gcGdfcHJvYy5k YXQgd2VyZQp3cml0dGVuIHRlcnNlbHkgKGUuZy4gJ3ByZXZpb3VzIHZhbHVlJywgJ2ZpcnN0IHZh bHVlIGluIG1hdGNoJyksCmluY29uc2lzdGVudCB3aXRoIHRoZSBzdXJyb3VuZGluZyB3aW5kb3ct ZnVuY3Rpb24gZW50cmllcyB0aGF0IGFsbApmb2xsb3cgYSAnZmV0Y2ggdGhlIC4uLiByb3cgdmFs dWUnIHN0eWxlIChsYWcsIGxlYWQsIGZpcnN0X3ZhbHVlLApsYXN0X3ZhbHVlLCBudGhfdmFsdWUp LgoKUmV3b3JkIHRoZSBlaWdodCBSUFIgbmF2aWdhdGlvbiBlbnRyaWVzIHRvIG1hdGNoIHRoYXQg cGF0dGVybiwKd2hpbGUgZGlzdGluZ3Vpc2hpbmcgcGFydGl0aW9uLXNjb3BlZCAocHJldi9uZXh0 KSBmcm9tIG1hdGNoLXNjb3BlZAooZmlyc3QvbGFzdCkgbmF2aWdhdGlvbiBpbiB0aGUgd29yZGlu Zy4KCiAgcHJldiAvIHByZXZfb2Zmc2V0OiAgIGZldGNoIHRoZSAoTnRoKSBwcmVjZWRpbmcgcm93 IHZhbHVlCiAgbmV4dCAvIG5leHRfb2Zmc2V0OiAgIGZldGNoIHRoZSAoTnRoKSBmb2xsb3dpbmcg cm93IHZhbHVlCiAgZmlyc3QgLyBmaXJzdF9vZmZzZXQ6IGZldGNoIHRoZSAoTnRoKSBmaXJzdCBy b3cgdmFsdWUgd2l0aGluIG1hdGNoCiAgbGFzdCAvIGxhc3Rfb2Zmc2V0OiAgIGZldGNoIHRoZSAo TnRoLWZyb20tKWxhc3Qgcm93IHZhbHVlIHdpdGhpbiBtYXRjaAoKQ2F0YWxvZyBkZXNjciBvbmx5 OyBubyBmdW5jdGlvbmFsIG9yIHRlc3QgaW1wYWN0LiAgVmlzaWJsZSB0byB1c2Vycwp0aHJvdWdo IHBzcWwncyBcZGYrIG91dHB1dC4KLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IHwgMTYgKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA2ZDcwZWQyM2FlYi4u NTVjNDFlNjYxMDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA5NzIsMjggKzEwOTcy LDI4IEBACiB7IG9pZCA9PiAnMzExNCcsIGRlc2NyID0+ICdmZXRjaCB0aGUgTnRoIHJvdyB2YWx1 ZScsCiAgIHByb25hbWUgPT4gJ250aF92YWx1ZScsIHByb2tpbmQgPT4gJ3cnLCBwcm9yZXR0eXBl ID0+ICdhbnllbGVtZW50JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQgaW50NCcsIHBy b3NyYyA9PiAnd2luZG93X250aF92YWx1ZScgfSwKLXsgb2lkID0+ICc4MTI2JywgZGVzY3IgPT4g J3ByZXZpb3VzIHZhbHVlJywKK3sgb2lkID0+ICc4MTI2JywgZGVzY3IgPT4gJ2ZldGNoIHRoZSBw cmVjZWRpbmcgcm93IHZhbHVlJywKICAgcHJvbmFtZSA9PiAncHJldicsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnll bGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfcHJldicgfSwKLXsgb2lkID0+ICc4MTI4JywgZGVz Y3IgPT4gJ3ByZXZpb3VzIHZhbHVlIGF0IG9mZnNldCcsCit7IG9pZCA9PiAnODEyOCcsIGRlc2Ny ID0+ICdmZXRjaCB0aGUgTnRoIHByZWNlZGluZyByb3cgdmFsdWUnLAogICBwcm9uYW1lID0+ICdw cmV2JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUg PT4gJ2FueWVsZW1lbnQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJv c3JjID0+ICd3aW5kb3dfcHJldl9vZmZzZXQnIH0sCi17IG9pZCA9PiAnODEyNycsIGRlc2NyID0+ ICduZXh0IHZhbHVlJywKK3sgb2lkID0+ICc4MTI3JywgZGVzY3IgPT4gJ2ZldGNoIHRoZSBmb2xs b3dpbmcgcm93IHZhbHVlJywKICAgcHJvbmFtZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnllbGVt ZW50JywgcHJvc3JjID0+ICd3aW5kb3dfbmV4dCcgfSwKLXsgb2lkID0+ICc4MTI5JywgZGVzY3Ig PT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywKK3sgb2lkID0+ICc4MTI5JywgZGVzY3IgPT4gJ2Zl dGNoIHRoZSBOdGggZm9sbG93aW5nIHJvdyB2YWx1ZScsCiAgIHByb25hbWUgPT4gJ25leHQnLCBw cm92b2xhdGlsZSA9PiAncycsIHByb2lzc3RyaWN0ID0+ICdmJywgcHJvcmV0dHlwZSA9PiAnYW55 ZWxlbWVudCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnllbGVtZW50IGludDgnLCBwcm9zcmMgPT4g J3dpbmRvd19uZXh0X29mZnNldCcgfSwKLXsgb2lkID0+ICc4MTMwJywgZGVzY3IgPT4gJ2ZpcnN0 IHZhbHVlIGluIG1hdGNoJywKK3sgb2lkID0+ICc4MTMwJywgZGVzY3IgPT4gJ2ZldGNoIHRoZSBm aXJzdCByb3cgdmFsdWUgd2l0aGluIG1hdGNoJywKICAgcHJvbmFtZSA9PiAnZmlyc3QnLCBwcm92 b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAogICBwcm9hcmd0eXBl cyA9PiAnYW55ZWxlbWVudCcsIHByb3NyYyA9PiAnd2luZG93X2ZpcnN0JyB9LAoteyBvaWQgPT4g JzgxMzInLCBkZXNjciA9PiAnZmlyc3QgdmFsdWUgaW4gbWF0Y2ggYXQgb2Zmc2V0JywKK3sgb2lk ID0+ICc4MTMyJywgZGVzY3IgPT4gJ2ZldGNoIHRoZSBOdGggcm93IHZhbHVlIHdpdGhpbiBtYXRj aCcsCiAgIHByb25hbWUgPT4gJ2ZpcnN0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmlj dCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAogICBwcm9hcmd0eXBlcyA9PiAn YW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfZmlyc3Rfb2Zmc2V0JyB9LAoteyBv aWQgPT4gJzgxMzEnLCBkZXNjciA9PiAnbGFzdCB2YWx1ZSBpbiBtYXRjaCcsCit7IG9pZCA9PiAn ODEzMScsIGRlc2NyID0+ICdmZXRjaCB0aGUgbGFzdCByb3cgdmFsdWUgd2l0aGluIG1hdGNoJywK ICAgcHJvbmFtZSA9PiAnbGFzdCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAn YW55ZWxlbWVudCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3 aW5kb3dfbGFzdCcgfSwKLXsgb2lkID0+ICc4MTMzJywgZGVzY3IgPT4gJ2xhc3QgdmFsdWUgaW4g bWF0Y2ggYXQgb2Zmc2V0JywKK3sgb2lkID0+ICc4MTMzJywgZGVzY3IgPT4gJ2ZldGNoIHRoZSBO dGgtZnJvbS1sYXN0IHJvdyB2YWx1ZSB3aXRoaW4gbWF0Y2gnLAogICBwcm9uYW1lID0+ICdsYXN0 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4g J2FueWVsZW1lbnQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJvc3Jj ID0+ICd3aW5kb3dfbGFzdF9vZmZzZXQnIH0sCiAKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkK Cg== --0000000000003376fb0650c4ab8e--