Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 19:53:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 15:53:17 2025 Received: from localhost ([127.0.0.1]:41528 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u82dJ-00056w-Aa for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 15:53:17 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:54458) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u82dF-00056K-3f for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 15:53:15 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-39c13fa05ebso975280f8f.0 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 12:53:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745524387; x=1746129187; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QPHa1NUJSZEEcB4YYObbYARmR08KNT8YvJrQzwdg4uQ=; b=iKETf/dL8xHSDOqZKqIKJiEu7ckUpyyu00lG6dj4ZRVn73I2ZsEa2VEDnvGTjpylJI /+qi8Y7KGtWb0XMPyDXr+RKqIIwztjg5TEnM3d+KSX+mHqDk0NFqSnVNh1EVZAIgIXp4 pARa/jD6xGnhHIeH9i0RhNGlTZZ+8GUsBx+vOoIN9ClnC6Dtdd7ipFuDepTR/kRun/XT mUquzhZSMROzs0KtJH9mrvE+PK7qp0PTlJDzVF7nNBziQxUAXveGSinK1aC3JZtZT8DN bmanw4gtKkaHItBl8d0c0H26/M4jcEZ770Ol9eg+RErduZeoGgbYYF7QtN5dFhI/lf+i HPDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745524387; x=1746129187; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QPHa1NUJSZEEcB4YYObbYARmR08KNT8YvJrQzwdg4uQ=; b=rZwTb8eIngWYmf5aXf3gOYMdb2hWt9p9Z7nViHk/IeGzofm0xPJxmdMs5yeeX/jZkq I0QFuDlyaDLU7++hFsz4+2ynkOE6fkytdzyqH41Qvq0+5YQ2VaWVLWfrkRVW+1zle2Bs 3JG51XI4I+TaKrK8DvaaIQGcG/WQSbFkVkegoaAoaAaai6a0aJQdWQpThcuknJlzz51l BgXJN0TP2rrOKjdTcth4Wt3rHWcdj5ffMRlP9Yo1YlTbJ2tSA2FOaaSo9VS6v+PB9EwM Qo7R7JpjmFWOZxnHoAoLSqjFK5tpN1Wg0a5T263txYNTLqFizVPyqpvdsYQXXwJIqtjk Y2JQ== X-Forwarded-Encrypted: i=1; AJvYcCXIvr89oy6hm0NOOSD3AthAanUM5Bj1zudhnZyCk7Xn0VGlOdFSSTTQ43gN3+DKOD3Fp6OYpw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YywSuVtvbLJRf8yz5YD8Yc2HgXc5G+EgmkIVxbihpCi1erytWfa f01fFvaf+gyIs++3NXG3HoogYsIAFG1+nnBxvSJg7bd0smGrFyS4 X-Gm-Gg: ASbGncuGGOZMs3lqorq3V9Ns4Imnd8CZv472Fg5OBRUcCxp3V5aP3PzHUnbcHeR5OhV dgcKuxz+xG4IzrlC5rbV+kJic6pI3ahGpGyX6ZZ7ymL7EAo3enRBh0cYF4z2S41hWJGSpYrjmgs NrKVs+4POuLG+3yZ5GsiGrfJ2QN1+iCRrBh9QC2pnB1nrOMjwWdoqjsqk6J/rVKzVYmr3Q9Ct5A 9VTDtOUw6jsv8FVqyY4WQ33L/hPXWZHP4HMNHFL7BN54ppJK+jIAjaiELjLTyobk8r10tZZcuZe Bn7+o7xB9tX8TtBxu7FV1vcE/YoiXCE56QCj1xB39mHNMvJ8y7djgl8kgjWmHgn7k3NQKunC7ue Bwprx4lZiAAXQzk9QNWiDHAzJiVF7L1KM/FpDxDDruhclh9EJSg== X-Google-Smtp-Source: AGHT+IG0leP7OrF+9rm2Gx1u5SmiQtEMXgTlk1ePYxRXVk3L00UiUuxam1R0ZoKEcg/Tze9WgomrSA== X-Received: by 2002:a5d:47aa:0:b0:39d:724f:a8cd with SMTP id ffacd0b85a97d-3a072ad9c43mr489800f8f.35.1745524386796; Thu, 24 Apr 2025 12:53:06 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a073ca5debsm230680f8f.38.2025.04.24.12.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 12:53:06 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <87r01hnyya.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <865xitzsek.fsf@HIDDEN> <m2tt6dbk3c.fsf@HIDDEN> <87r01hnyya.fsf@HIDDEN> Date: Thu, 24 Apr 2025 21:53:05 +0200 Message-ID: <m2ikmtbala.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Pip Cet <pipcet@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> Eli Zaretskii <eliz@HIDDEN> writes: >> >>>> + DO_MARKERS (b, m) >>>> + { >>>> + if (!vectorlike_marked_p (&m->header)) >>>> + marker_vector_remove (XVECTOR (BUF_MARKERS (b)), m); >>>> + } >>>> + END_DO_MARKERS; >>> >>> Would it be possible not to introduce macros that modify the C syntax? >>> These are problematic for more than one reason (one being that they >>> are not recognized by C modes we use). We have macros whose names >>> start with FOR_EACH_ (like FOR_EACH_FRAME); can we introduce >>> FOR_EACH_MARKER instead, and not hide opening/closing braces inside >>> macros? >> >> I tried, already in igc, but failed. IOW, I don't now a way to get rid >> of the END_DO_MARKERS. > > Okay, I'll bite. :-) > I think what we should do is mimic FOR_EACH_TAIL, and use > FOR_EACH_MARKER like this: > > struct Lisp_Marker *m; > FOR_EACH_MARKER (b, m) > { > /* do something with m */ > } We need an if somewhere for the MARKERP, don't we? So... > However, if we wanted to, we could do this (the "continued" thing is > overkill to make "break" work in a FOR_EACH_MARKER loop): ... we'll need this. The continued thing is quite clever, didn't think of it. I dismissed the two for loops because of the break/continue. So, since it's already done, and can be pilfered, that's fine with me :-). Let's see if the others find it too complicated.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 19:26:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 15:26:30 2025 Received: from localhost ([127.0.0.1]:41362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u82DM-0003Hy-HG for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 15:26:30 -0400 Received: from mail-24418.protonmail.ch ([109.224.244.18]:38613) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>) id 1u82DI-0003HS-1p for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 15:26:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1745522776; x=1745781976; bh=S6O1uIRUHlQqMBSBOLG/aKN0wz58JSiPU5lFf5zrmCk=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post; b=olL9chZDu3uNhAiZP3aa9cPVQMNXcJ/XvVH/ganyFYVWyGOffM5uhDWDKcHHPPdMV FexlRqI3f3PyxL++NAq3S5/h7AvG0vwVoPHwATGMP8QQNrdbWMQrljpmVxFpCfADLt btxcYmWT/bT5vHwiVVDt1g/9wi0DZ5wrFOsp0JmAinOPfCEH3jNPxTCqu8LovB8SF7 Hn+L5MCwiXP8SXqtyYdo34/PJTyYsA+5qSDa+RFT5CoZddwsdS3HCdncrOx2skQfKT XeIP+mhusfU0kH/SLax/qjMjqtPMeHdlI38YEglwrtA8d51H9ykTdn7wX536hWuiyy LJCuTee8wKkhQ== Date: Thu, 24 Apr 2025 19:26:10 +0000 To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> From: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation Message-ID: <87r01hnyya.fsf@HIDDEN> In-Reply-To: <m2tt6dbk3c.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <865xitzsek.fsf@HIDDEN> <m2tt6dbk3c.fsf@HIDDEN> Feedback-ID: 112775352:user:proton X-Pm-Message-ID: 04c9bb4fba03fe4d0493e297c4a22a249b6e6071 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Eli Zaretskii <eliz@HIDDEN> writes: > >>> + DO_MARKERS (b, m) >>> + { >>> + if (!vectorlike_marked_p (&m->header)) >>> +=09marker_vector_remove (XVECTOR (BUF_MARKERS (b)), m); >>> + } >>> + END_DO_MARKERS; >> >> Would it be possible not to introduce macros that modify the C syntax? >> These are problematic for more than one reason (one being that they >> are not recognized by C modes we use). We have macros whose names >> start with FOR_EACH_ (like FOR_EACH_FRAME); can we introduce >> FOR_EACH_MARKER instead, and not hide opening/closing braces inside >> macros? > > I tried, already in igc, but failed. IOW, I don't now a way to get rid > of the END_DO_MARKERS. Okay, I'll bite. I think what we should do is mimic FOR_EACH_TAIL, and use FOR_EACH_MARKER like this: struct Lisp_Marker *m; FOR_EACH_MARKER (b, m) { /* do something with m */ } However, if we wanted to, we could do this (the "continued" thing is overkill to make "break" work in a FOR_EACH_MARKER loop): diff --git a/src/marker-vector.h b/src/marker-vector.h index 141e79ac0ee..bfca02fc33d 100644 --- a/src/marker-vector.h +++ b/src/marker-vector.h @@ -39,27 +39,55 @@ #define EMACS_MARKER_VECTOR_H MARKER_VECTOR_ENTRY_SIZE =3D 2, }; =20 -/* Iterate over markers in marker vector MV, binding a variable with - name M to a pointer to Lisp_Marker. The loop must be ended - with an END_DO_MARKERS. */ - -# define DO_MARKERS_OF_VECTOR(mv, m)=09=09=09=09=09\ - for (ptrdiff_t e_ =3D MARKER_VECTOR_HEADER_SIZE,=09=09=09\ -=09 end_ =3D XFIXNUM (AREF (mv, MARKER_VECTOR_MAX_ENTRY));=09=09\ - e_ <=3D end_;=09=09=09=09=09=09=09\ - e_ +=3D MARKER_VECTOR_ENTRY_SIZE)=09=09=09=09=09\ - {=09=09=09=09=09=09=09=09=09\ - Lisp_Object m_ =3D AREF (mv, e_ + MARKER_VECTOR_OFFSET_MARKER);=09\ - if (MARKERP (m_))=09=09=09=09=09=09\ -=09 {=09=09=09=09=09=09=09=09\ - struct Lisp_Marker *m =3D XMARKER (m_); - -/* Iterate over markers of buffer B, binding a variable with name M to a - pointer to Lisp_Marker. The loop must be ended with an - END_DO_MARKERS. */ - -# define DO_MARKERS(b, m) DO_MARKERS_OF_VECTOR (BUF_MARKERS (b), m) -# define END_DO_MARKERS }} +struct for_each_marker_data +{ + ptrdiff_t e; + ptrdiff_t end; + Lisp_Object m; + Lisp_Object mv; + bool continued; + struct Lisp_Marker *marker; +}; + +INLINE struct for_each_marker_data +build_for_each_marker_data(Lisp_Object mv) +{ + struct for_each_marker_data ret; + ret.e =3D MARKER_VECTOR_HEADER_SIZE; + ret.end =3D XFIXNUM (AREF (mv, MARKER_VECTOR_MAX_ENTRY)); + ret.m =3D Qnil; + ret.mv =3D mv; + ret.marker =3D NULL; + ret.continued =3D true; + return ret; +} + +INLINE bool +next_marker_entry (struct for_each_marker_data *d) +{ + if (!d->continued) + return false; + while (d->e <=3D d->end) + { + d->m =3D AREF (d->mv, d->e + MARKER_VECTOR_OFFSET_MARKER); + d->e +=3D MARKER_VECTOR_ENTRY_SIZE; + if (MARKERP (d->m)) +=09{ +=09 d->marker =3D XMARKER (d->m); +=09 d->continued =3D false; +=09 return true; +=09} + } + return false; +} + +#define FOR_EACH_MARKER_OF_VECTOR(v, m)=09=09=09=09=09\ + for (struct for_each_marker_data d_ =3D build_for_each_marker_data (v); = \ + next_marker_entry (&d_);)=09=09=09=09=09\ + for (struct Lisp_Marker *m =3D d_.marker; !d_.continued; d_.continued = =3D true) + +#define FOR_EACH_MARKER(b, m) \ + FOR_EACH_MARKER_OF_VECTOR(BUF_MARKERS (b), m) =20 Lisp_Object make_marker_vector (void); Lisp_Object alloc_marker_vector (ptrdiff_t len); diff --git a/src/alloc.c b/src/alloc.c index c90f60ee518..30bdd1140b8 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -7114,12 +7114,11 @@ sweep_symbols (void) static void unchain_dead_markers (struct buffer *b) { - DO_MARKERS (b, m) + FOR_EACH_MARKER (b, m) { if (!vectorlike_marked_p (&m->header)) =09marker_vector_remove (XVECTOR (BUF_MARKERS (b)), m); } - END_DO_MARKERS; } =20 NO_INLINE /* For better stack traces */ diff --git a/src/buffer.c b/src/buffer.c index 93a2edb3693..21b6096517d 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2073,12 +2073,11 @@ DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0= , 1, "bKill buffer: ", /* Unchain all markers that belong to this indirect buffer. =09 Don't unchain the markers that belong to the base buffer =09 or its other indirect buffers. */ - DO_MARKERS (b, m) + FOR_EACH_MARKER (b, m) =09{ =09 if (m->buffer =3D=3D b) =09 marker_vector_remove (XVECTOR (BUF_MARKERS (b)), m); =09} - END_DO_MARKERS; =20 /* Intervals should be owned by the base buffer (Bug#16502). */ i =3D buffer_intervals (b); @@ -2618,7 +2617,7 @@ #define swapfield_(field, type) \ other_buffer->text->end_unchanged =3D other_buffer->text->gpt; swap_buffer_overlays (current_buffer, other_buffer); { - DO_MARKERS (current_buffer, m) + FOR_EACH_MARKER (current_buffer, m) { =09if (m->buffer =3D=3D other_buffer) =09 m->buffer =3D current_buffer; @@ -2627,8 +2626,7 @@ #define swapfield_(field, type) \ =09 BUF_MARKERS(buf) should either be for `buf' or dead. */ =09 eassert (!m->buffer); } - END_DO_MARKERS; - DO_MARKERS (other_buffer, m) + FOR_EACH_MARKER (other_buffer, m) { =09if (m->buffer =3D=3D current_buffer) =09 m->buffer =3D other_buffer; @@ -2637,7 +2635,6 @@ #define swapfield_(field, type) \ =09 BUF_MARKERS(buf) should either be for `buf' or dead. */ =09 eassert (!m->buffer); } - END_DO_MARKERS; } =20 { /* Some of the C code expects that both window markers of a @@ -2746,12 +2743,11 @@ DEFUN ("set-buffer-multibyte", Fset_buffer_multibyt= e, Sset_buffer_multibyte, GPT =3D GPT_BYTE; TEMP_SET_PT_BOTH (PT_BYTE, PT_BYTE); =20 - DO_MARKERS (current_buffer, tail) + FOR_EACH_MARKER (current_buffer, tail) =09{ =09 const ptrdiff_t bytepos =3D marker_vector_bytepos (tail); =09 marker_vector_set_charpos (tail, bytepos); =09} - END_DO_MARKERS; =20 /* Convert multibyte form of 8-bit characters to unibyte. */ pos =3D BEG; @@ -2901,13 +2897,12 @@ DEFUN ("set-buffer-multibyte", Fset_buffer_multibyt= e, Sset_buffer_multibyte, =09TEMP_SET_PT_BOTH (position, byte); } =20 - DO_MARKERS (current_buffer, tail) + FOR_EACH_MARKER (current_buffer, tail) =09{ =09 ptrdiff_t bytepos =3D marker_vector_bytepos (tail); =09 bytepos =3D advance_to_char_boundary (bytepos); =09 marker_vector_set_charpos (tail, BYTE_TO_CHAR (bytepos)); =09} - END_DO_MARKERS; =20 /* Do this last, so it can calculate the new correspondences =09 between chars and bytes. */ diff --git a/src/coding.c b/src/coding.c index f3dd2639e73..51c87fb3161 100644 --- a/src/coding.c +++ b/src/coding.c @@ -8118,14 +8118,13 @@ decode_coding_object (struct coding_system *coding, =09move_gap_both (from, from_byte); if (BASE_EQ (src_object, dst_object)) =09{ -=09 DO_MARKERS (current_buffer, tail) +=09 FOR_EACH_MARKER (current_buffer, tail) =09 { =09 const ptrdiff_t charpos =3D marker_vector_charpos (tail); =09 tail->need_adjustment =09=09=3D charpos =3D=3D (tail->insertion_type ? from : to); =09 need_marker_adjustment |=3D tail->need_adjustment; =09 } -=09 END_DO_MARKERS; =09 saved_pt =3D PT, saved_pt_byte =3D PT_BYTE; =09 TEMP_SET_PT_BOTH (from, from_byte); =09 current_buffer->text->inhibit_shrinking =3D true; @@ -8250,7 +8249,7 @@ decode_coding_object (struct coding_system *coding, =20 if (need_marker_adjustment) =09{ -=09 DO_MARKERS (current_buffer, tail) +=09 FOR_EACH_MARKER (current_buffer, tail) =09 { =09 if (tail->need_adjustment) =09=09{ @@ -8269,7 +8268,6 @@ decode_coding_object (struct coding_system *coding, =09=09 } =09=09} =09 } -=09 END_DO_MARKERS; =09} } =20 @@ -8340,14 +8338,13 @@ encode_coding_object (struct coding_system *coding, if (BASE_EQ (src_object, dst_object) && BUFFERP (src_object)) { same_buffer =3D true; - DO_MARKERS (XBUFFER (src_object), tail) + FOR_EACH_MARKER (XBUFFER (src_object), tail) =09{ =09 const ptrdiff_t charpos =3D marker_vector_charpos (tail); =09 tail->need_adjustment =09 =3D charpos =3D=3D (tail->insertion_type ? from : to); =09 need_marker_adjustment |=3D tail->need_adjustment; =09} - END_DO_MARKERS; } =20 if (! NILP (CODING_ATTR_PRE_WRITE (attrs))) @@ -8505,7 +8502,7 @@ encode_coding_object (struct coding_system *coding, =20 if (need_marker_adjustment) =09{ -=09 DO_MARKERS (current_buffer, tail) +=09 FOR_EACH_MARKER (current_buffer, tail) =09 { =09 if (tail->need_adjustment) =09=09{ @@ -8524,7 +8521,6 @@ encode_coding_object (struct coding_system *coding, =09=09 } =09=09} =09 } -=09 END_DO_MARKERS; =09} } =20 diff --git a/src/editfns.c b/src/editfns.c index 61cb7bdd201..b96275dc0a3 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -4438,7 +4438,7 @@ transpose_markers (ptrdiff_t start1, ptrdiff_t end1, amt1 =3D (end2 - start2) + (start2 - end1); amt2 =3D (end1 - start1) + (start2 - end1); =20 - DO_MARKERS (current_buffer, marker) + FOR_EACH_MARKER (current_buffer, marker) { mpos =3D marker_vector_charpos (marker); if (mpos >=3D start1 && mpos < end2) @@ -4452,7 +4452,6 @@ transpose_markers (ptrdiff_t start1, ptrdiff_t end1, =09} marker_vector_set_charpos (marker, mpos); } - END_DO_MARKERS; } =20 DEFUN ("transpose-regions", Ftranspose_regions, Stranspose_regions, 4, 5, diff --git a/src/marker-vector.c b/src/marker-vector.c index b65bbe15845..cd2603f9561 100644 --- a/src/marker-vector.c +++ b/src/marker-vector.c @@ -164,7 +164,7 @@ check_marker_vector (struct Lisp_Vector *v, bool alloca= ting) =20 size_t nused =3D 0; Lisp_Object mv =3D make_lisp_ptr (v, Lisp_Vectorlike); - DO_MARKERS_OF_VECTOR (mv, m) + FOR_EACH_MARKER_OF_VECTOR (mv, m) { eassert (m->entry =3D=3D e_); eassert (m->buffer !=3D NULL); @@ -175,7 +175,6 @@ check_marker_vector (struct Lisp_Vector *v, bool alloca= ting) =09} ++nused; } - END_DO_MARKERS; =20 eassert ((nused + nfree) * MARKER_VECTOR_ENTRY_SIZE =09 + MARKER_VECTOR_HEADER_SIZE =3D=3D gc_vsize (v)); @@ -286,11 +285,10 @@ marker_vector_reset (struct buffer *b) /* The old GC contains at least one assertion that unchaining markers in kill-buffer resets the markers' buffers. IGC does not do this, can't do this, and does not need it. */ - DO_MARKERS (b, m) + FOR_EACH_MARKER (b, m) { m->buffer =3D NULL; } - END_DO_MARKERS; BUF_MARKERS (b) =3D Qnil; } =20 @@ -348,7 +346,7 @@ marker_vector_adjust_for_insert (struct buffer *b, { const ptrdiff_t nchars =3D to_charpos - from_charpos; struct Lisp_Vector *v =3D XVECTOR (BUF_MARKERS (b)); - DO_MARKERS (b, m) + FOR_EACH_MARKER (b, m) { const ptrdiff_t charpos =3D XFIXNUM (CHARPOS (v, m->entry)); if (charpos =3D=3D from_charpos) @@ -359,7 +357,6 @@ marker_vector_adjust_for_insert (struct buffer *b, else if (charpos > from_charpos) =09CHARPOS (v, m->entry) =3D make_fixnum (charpos + nchars); } - END_DO_MARKERS; } =20 /* Adjust marker positions of buffer Bs for a replacement of text at @@ -375,7 +372,7 @@ marker_vector_adjust_for_replace (struct buffer *b, const ptrdiff_t diff_nchars =3D new_nchars - old_nchars; const ptrdiff_t old_to_charpos =3D from_charpos + old_nchars; struct Lisp_Vector *v =3D XVECTOR (BUF_MARKERS (b)); - DO_MARKERS (b, m) + FOR_EACH_MARKER (b, m) { const ptrdiff_t charpos =3D XFIXNUM (CHARPOS (v, m->entry)); if (charpos >=3D old_to_charpos) @@ -383,5 +380,4 @@ marker_vector_adjust_for_replace (struct buffer *b, else if (charpos > from_charpos) =09CHARPOS (v, m->entry) =3D make_fixnum (from_charpos); } - END_DO_MARKERS; } diff --git a/src/undo.c b/src/undo.c index 65de0bd4e13..3e63c8af3f9 100644 --- a/src/undo.c +++ b/src/undo.c @@ -128,7 +128,7 @@ record_marker_adjustments (ptrdiff_t from, ptrdiff_t to= ) { prepare_record (); =20 - DO_MARKERS (current_buffer, m) + FOR_EACH_MARKER (current_buffer, m) { ptrdiff_t charpos =3D marker_vector_charpos (m); eassert (charpos <=3D Z); @@ -154,7 +154,6 @@ record_marker_adjustments (ptrdiff_t from, ptrdiff_t to= ) } } } - END_DO_MARKERS; } =20 /* Record that a deletion is about to take place, of the characters in Note that "m" appears only once, so there is another possibility: FOR_EACH_MARKER (v, struct Lisp_Marker *m) { /* do something with m */ } I'm not saying any of this is a good idea, but it appears possible. Pip
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 18:25:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 14:25:23 2025 Received: from localhost ([127.0.0.1]:41089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u81GC-00081B-9a for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 14:25:22 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:52582) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u81G8-0007wW-1v for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 14:25:17 -0400 Received: by mail-pl1-x644.google.com with SMTP id d9443c01a7336-223fd89d036so18072115ad.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 11:25:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745519109; x=1746123909; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RoWpk8IzzWQfe6zsmYUWErMlllzg569+kKHJqeG46tw=; b=FYjYHE1Y6UMyws4yyFvvwUY/vHSiodlwG8x5CGdZDdKR1tN/J5Z4r96tkSkQOVHPC8 90Hofrn/v+jGnwSPmGvmGYoletQdEQyGscMKPwCeV4WIRluH3lCNtDWR+JI6ijG3Rjp9 1rYu7OxQOgkKCrNWi+x+OEfNzASTE5tS1sAIvYjmocxC5ofVSJCZ3OSO2kyTEIdJ7Kus OGCkh2ZQiV8h5UkWstu1l1N800uwbs6kjFmF+a6odlLqVyyfx63cjNjH98t2WKJa1t1H hj4OxziPU4nC0Rfgr5joR6493qqXMZpvqVjPOi+Nk6d/0VGhPm/ZBZxV7gI2r28aPBhn 7gMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745519109; x=1746123909; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RoWpk8IzzWQfe6zsmYUWErMlllzg569+kKHJqeG46tw=; b=UWz8fGErTXLyavMa46bE8uA+jBN21uEACOrjxS9JZEfO8cLxqthGW9Oyv6WBIrnZqo WoJwSCuCXAR/oebFWLnjD1XY5HB4cQZCTUApXRrAkoXuALH92UT2jwpcyHHnHpIysklb WsLzg6QenHKNfuzP6Zy9R4+BY+qePu+K8aRQ2efVgshQu9pWa29XIoQXQV6e5tGZRyxw G6FYQ/R/WeFkHjoaxhftmNiDFNCmfkuO88tbKJpYmxZlorBe1OpwbrWWkYfyi/ufsHG5 uDKqLn9iWXmdcFYQK/yoIMNa9DzcA4HUf6ZkAeuOaxjompMIaGbm4mnIcCam6yCyNu9n Vktg== X-Forwarded-Encrypted: i=1; AJvYcCXn+QRFJNUHR1lEnVxbuKdqMH5q6NXr0hDX8fPkZc+eu/dfTJ7sWpQb0/bYnAaFacaxCelXmw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzM72QCppFHE5bcMU08uOvETnbshZtQ63DgZPntoyBWTqi6ePFX ooDx/H3Fgv0PL+edPgd+dsiu57n8vqBQKvBQh9z1jJV/ZNOwC+yv X-Gm-Gg: ASbGncuLVA2UpcXSjxA+xO1KYFwj9pKp70/RYuJeyDP5uqGxBZAxOJ8E/mOGuhHzD24 Xtz3AOCS5EF5ftJu7awnyZXBuH3srGQicpeKnZB+BdPtpgkdNgOwYwGTRFfszqFN9V1/4aI+0S2 lKKMOThQpa4cl1b7tzz5S9FSGuY/kz/8IkZhIQYdOCutHZwM58Qd476u9iFsp3UXUekcpPKS66y 0vjyjLIwFWXSVpiBiURG6UHzQ2msDvxO/ka5GvcB6AEbt1KcrNLXSkFYOY4FrDg75ej0eIsxGmi cUPiE1jqnXQGzEb+rFPPgLoauXZPFbxfWoG18E6FNA== X-Google-Smtp-Source: AGHT+IFSxgvTwrncWdlBWolH6VxazZezDFIEgLFs2nEfS60sbDpdBB69vVxCQ62jDX43D70jT0XlKA== X-Received: by 2002:a17:902:d4ce:b0:216:6283:5a8c with SMTP id d9443c01a7336-22dbd460b20mr6495735ad.39.1745519109355; Thu, 24 Apr 2025 11:25:09 -0700 (PDT) Received: from localhost ([1.7.159.71]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-22db5104da6sm16847965ad.205.2025.04.24.11.25.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 11:25:08 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2plh1bjwf.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <jwvzfg5zgpf.fsf-monnier+emacs@HIDDEN> <m2plh1bjwf.fsf@HIDDEN> Date: Thu, 24 Apr 2025 23:55:05 +0530 Message-ID: <87v7qtto1q.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, yantar92@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llmann = wrote: >> So the benchmark tests scroll time, including jit/font-lock time. >> It uses its own copy of a major mode, so that you can compare "scroll + >> font-lock" performance between different Emacs releases without being >> affected by improvements/regressions in CC-mode itself. > > So maybe it would make sense to run both that benchmark as-is plus one > without smie but with tamil.txt, I guess. Or in other words, now only > the as-is benchmark, because the tamil.txt results I've already posted. Before including tamil.txt, I would like to make clear that the file contents is volume 1 of a (popular) novel which was released in the 50s. I got the text itself from Project Madurai which states that [1]: Acknowledgement: Our Sincere thanks go to the following persons for their assistance in = the preparation of this work. Etext preparation : AU-KBC Research Center (Mr. Baskaran), Anna Univers= ity, Chennai,India Proof-reading: Mr. S. Anbumani, Mr. N.D. Logasundaram,Mr. Narayanan Gov= indarajan, Ms. Pavithra Srinivasan, Mr. Ramachandran Mahadevan, Ms. Sathya, Mr. Sr= eeram Krishnamoorthy, Dr. Sridhar Rathinam, Mrs. Srilatha Rajagopal, Mr. VinothJagannathan Web version: Mr. S. Anbumani, Blacksburg, Virginia, USA This webpage presents the Etxt in Tamil script in Unicode encoding. This file was last revised on Apr. 12, 2003 =C2=A9 Project Madurai, 1998-2021. Project Madurai is an open, voluntary, worldwide initiative devoted to = preparation of electronic texts of tamil literary works and to distribute them free= on the Internet. Details of Project Madurai are available at the website https://www.projectmadurai.org/ You are welcome to freely distribute this file, provided this header pa= ge is kept intact.=20=20=20 So I assume there should no problem in distributing it in the repo. If there could be, we could try composing all the text from any work in freetamilebooks.com which publishes under the CC BY-NC-SA license. 1. https://www.projectmadurai.org/pm_etexts/utf8/pmuni0169_00.html
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 16:32:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 12:32:12 2025 Received: from localhost ([127.0.0.1]:40613 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7zUi-0001KI-D2 for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 12:32:12 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:52482) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7zUe-0001Jm-0L for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 12:32:08 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4394a0c65fcso12675755e9.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 09:32:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745512321; x=1746117121; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=1fliT/YR8A2oaPHpeu3QuxHV3vCwvGGv8CjkWUaKDbY=; b=WeYBYhhnN5Mlh+IWtPmmlpb73CDTeElcOFMlA//NNon4TpAFxmeuJW9TqEkSKfy2v7 ETUUJCmw9lw3Y+WVBoCTqvUXccPSXB4bhYm5Tt34lASEIjROTzHRMWCBQLffyhPUcWLG DX2RaUbqFTzD4WIz0Eb8UJySIn8IPH+Iez4EP6mIqtwySwJSVIhW8IWnT+TFE9MoQ8Fd m09IktdiEPVT8unzaxAX7S2dDW7DljtXQfJpQqOl3pBYq+pHNYseNQGURxzztRZClHTQ WZrgyMhKdL7cgbyK1M6MVassmU9A7ixnT/98fLfA25bIjVe6hXrMGtKVGg2mWMnuBarA d75w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745512321; x=1746117121; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1fliT/YR8A2oaPHpeu3QuxHV3vCwvGGv8CjkWUaKDbY=; b=oe6cJCFlEr3ucgq+V9D9/Ewaa4hz0YBQA+hatMj8G8sEO9k7xc9ru+GZfwFfVLxTlW dYCbT/fkHb1VNluEeR7H4HcNpj111e7M/ZOahE33xXQZmm7IBVvUYClIer3WFy0iVY5u XWJ564SxaXCydoLkHBfuYxogTaVboCM23++1+qeWhMjY9cYJ2eG7M6fnTWuh2DW4AtoK kZBsJixIeM3arAhesdMgwVTXyRxPe1zyPSiJD6y6R13JxpMj0jVl9RqzMeYWRcKhwk8r RbeES73QayBWn78D5tsY8LXzbRRtu0r8GqY8wRtOhrGPmx21dodcWtizBHYbPRGYBc4/ KWnw== X-Forwarded-Encrypted: i=1; AJvYcCXqcX11voCAS/aDu/xMUGZb9i48y5Vo0x9c3/gxJL3fooiBlYfu24oCzonohA6HFobARHdVPw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzqnCkigAnwbz4eXQgCmUrrpBsBvm4Qv+5ZRLz1qyyNde8BPGp0 WH361Q0lYNjAcjk4XPRDE+RcC5UzQZ9Xbj7dSjjuLHIZjH4VHp0u X-Gm-Gg: ASbGncuXlV3X10k0h2k45QD0uCMYGHnT8MtoB/hSWus7AeLMjLSGIftb23l9KeM7lHY jD1qfrRbOeITeRRU/U8oKGPSzHSOx5NWieOsLNtGiUNTA5OmrB8zuWjOKZOVNHLlv09Bl+qfSiw 9Bh2bhuVTQvnVWqCyoTi9dXefux5MF9qrGitoyc+smg1p8iK0GJ4hnChE7jl3jcYcUPZcw2VLKS Vazq7vO+qZlxQWgZ1UmHHkQVTt8PU1k4/VkH85/v929Oqczaqh2EQM7UDO1puHYEvfG9MpOxc0T qWll2WOMlY9vCe+j2Mx4Sxgtfp2L+HFIHeksOfLvrt3dsFefmDXfKa7jLwXhLhT/7V2/a7TVkZS SUpduxWniYfMEgHvyLkzkN1sb2+woqKb6K77+tcu0+M6mlCZCQA== X-Google-Smtp-Source: AGHT+IH4SP76KuyUlfTC+VXlTE7M5gE5gVjYjKxeGnsEJAabR1QAZ/YW8hZBB5DOQjnWdK/KPkYnmQ== X-Received: by 2002:a05:600c:83c6:b0:43c:f8fe:dd82 with SMTP id 5b1f17b1804b1-440a310ec66mr1863355e9.18.1745512321312; Thu, 24 Apr 2025 09:32:01 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d4a7ff8sm2694427f8f.13.2025.04.24.09.32.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 09:32:00 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <jwvzfg5zgpf.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <jwvzfg5zgpf.fsf-monnier+emacs@HIDDEN> Date: Thu, 24 Apr 2025 18:32:00 +0200 Message-ID: <m2plh1bjwf.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, yantar92@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >>> Evaluate this, then invoke "M-x scroll-up-benchmark" in a large buffer >>> with lots of non-ASCII characters. Compare the timings between the >>> two versions of Emacs. >> >> elb-scroll from elisp-bechmarks is basically >> >> (dotimes (_ 10) >> (elb-smie-mode) >> (goto-char (point-min)) >> (condition-case nil >> (while t (scroll-up nil) (redisplay 'force)) >> (end-of-buffer nil)))))) >> >> looks similar, but I don't know what elb-smie-mode does. > > It's a major mode for the C language, separate from CC-mode. > [ It's basically "vendored" copy of the `sm-c-mode` that's on GNU > ELPA. ] Ah, interesting. > So the benchmark tests scroll time, including jit/font-lock time. > It uses its own copy of a major mode, so that you can compare "scroll + > font-lock" performance between different Emacs releases without being > affected by improvements/regressions in CC-mode itself. So maybe it would make sense to run both that benchmark as-is plus one without smie but with tamil.txt, I guess. Or in other words, now only the as-is benchmark, because the tamil.txt results I've already posted.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 16:28:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 12:28:07 2025 Received: from localhost ([127.0.0.1]:40586 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7zQk-00011c-Ix for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 12:28:07 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:48550) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7zQe-00010y-Bb for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 12:28:01 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-39c1efbefc6so935994f8f.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 09:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745512073; x=1746116873; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=bacTVFrBpbECjWSNbEG0gGdtQGkj7y2Fh6Z3UQjhqh0=; b=XFiwXw3wz5dkyMtHm/W2j+KdxdwNcnpInFuzwui/GzVlTdyQBx97CX1k0fFdbqCP31 lk32FlXLi1IuwiN3V76bp9f7CnXE1JsskYx2co/XFrwDXY2EC/yFq9XjA/k0+fOhbxb6 GLWWTEe384rPaSBYJcWsoRjgTVZi93dI9N1jP8QPAvzcLON/vRFBKbf1DVX+LKd1jAkt e5xIO+t9H5ib92mas2z2a+6j8jTJAKwY9uJK+z5VTZP93Xai9dd5oPUl3ZcdxWLGq4JX g+LgbMZEhGcI8+Crkm3oA39IQH9ySAekINYJXb2UigyzAbmhsH+oTIeDLXNX2g4AdN+h yXlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745512073; x=1746116873; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bacTVFrBpbECjWSNbEG0gGdtQGkj7y2Fh6Z3UQjhqh0=; b=PEnY+aaW3gw8r+KO76CZzByx7/RUsaFiNNbOMqYH/fKGbsVrYn9fNUHp1Zah94SYwr UBadT+IOVmTcX8hhS5buAFe60iYTigzG2fcjklRSTvLAGvPxcmlmy97rZv/0V53WaNXA K2lUbMbTMlB4Ex/rQMTC9bIQmGMZAtSNJLnJHsE5XYZ+z9bJtGrRj76ovdOWdcPLTQ3o qAaQXKJFY1OtYSfx//tjmHEGeCiHL1Trtgt8E0UbmrliX0QW8i2GuhlKoWGfFkDQEuGx qIVHp5RESTGo0CnQjjFU/BdQnSGgc0d7/JM808HGRnUPXaNanGqgVHAR+d6G7if2iC7N 8I1A== X-Forwarded-Encrypted: i=1; AJvYcCXrYm9LBgQjeVtkIhyehFPNot82smsYkD/G/iTwzrw5GbozAAG/Yeo02VghRbkWA3CvEOqLdA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxpyR+yQcwhajYQm26zqV9Os9j4NSOhGtFXOk6tpsdKHDqpRzhf F2yXYMvRpPLBe1ACHqMVHc5MPpYfeNs8uLwADEWBcHGsiHsflnST8UE41BCL X-Gm-Gg: ASbGncv6Fv+Efq1mPn4T5Bwg9QfKSpORm/LO3X0DIPbVZ3uEhnpfv715dDtSkMZZjL0 ftDM9aWyNDV6l0abVWeg0zDIINkmed/sbY/5q9YJEYAVI0K/2zDa79jRK/dE0Baslym80DfbTBT O8ynLJyIXHpqOahY7qOkqX6+4mUfJFWLgMN+HOl5kwALcddUmEeWT5idcDD+u7GRrIy/0mQR6ub hpnNzN0ByEMfrjlTqcAXKWvrRKgQubKPjYdsDMVpmt5SBMvZayojZmaqscCDfH2zXyi60gdiGp2 CiRt5DXJMYWsCB6+BTQsgSk9NbTVI6OrTc5FhkcH0P5pt2LCUmCuHR6Px5ezDZ8Z7By3SCZ2Jf2 F5d8QQ2esgjh8JUX+Yl2YsIokMvV8WXmooyonxoYGYL1EPErvqLSfBWROKFgn X-Google-Smtp-Source: AGHT+IEgrgFhWuynT6rl0tqmKYIoWZeaX1ampLqZLN7XZf0Pss3p1r+p0j22HkEnZDVFDjzOl3tXAA== X-Received: by 2002:a5d:47a9:0:b0:39a:cc34:2f9b with SMTP id ffacd0b85a97d-3a06cf5958amr2707339f8f.16.1745512073434; Thu, 24 Apr 2025 09:27:53 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d4a800esm2569884f8f.3.2025.04.24.09.27.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 09:27:52 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <865xitzsek.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <865xitzsek.fsf@HIDDEN> Date: Thu, 24 Apr 2025 18:27:51 +0200 Message-ID: <m2tt6dbk3c.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org >> Date: Wed, 23 Apr 2025 17:41:18 +0300 >> From: Eli Zaretskii <eliz@HIDDEN> >> >> > From: Stefan Monnier <monnier@HIDDEN> >> > Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, >> > 77924 <at> debbugs.gnu.org >> > Date: Wed, 23 Apr 2025 10:34:11 -0400 >> > >> > FWIW, I'm not a great fan of rebasing either. I did rebase the branch >> > last night not for rebasing's sake but because I felt there was a need >> > for more detailed commit messages. >> > >> > In any case, any objection to merging the branch? >> >> I'd like to have a closer review of it first, so please wait for a >> while. When I skimmed it, I remember having several, hopefully minor, >> aspects that stood out, and I want to take a closer look. > > See below: > >> - m->next = BUF_MARKERS (buf); >> - BUF_MARKERS (buf) = m; >> + marker_vector_add (buf, m); >> + marker_vector_set_charpos (m, charpos); > > Could we please name functions that manipulate and get marker > information marker_SOMETHING and not marker_vector_something? > marker_vector_add is semi-okay (although marker_add would have been > nicer, IMO), but marker_vector_set_charpos and marker_vector_charpos > are not, because AFAIU they manipulate the marker's position, not > marker-vector's position. > > In general, wherever the fact that we have a vector of markers is > merely an implementation detail that is not important to the > programmer, can we just drop the "vector" part from the names of the > functions, for the same reason that the old functions and macros > weren't called marker_list_SOMETHING? Well. For one thing, the marker is now no longer the central data structure. It's basically only fancy index into a marker vector + 2 bit flags (which could/should by moved to the marker vector, maybe). The marker vector is the central data structure holding a character position which the marker refers to. Secondly functions marker_position and marker_byte_position still exist, basically one level higher. But below that level, the implementation necessarily lurks. That's why I'd prefer to keep the marker_vector prefix. >> + DO_MARKERS (b, m) >> + { >> + if (!vectorlike_marked_p (&m->header)) >> + marker_vector_remove (XVECTOR (BUF_MARKERS (b)), m); >> + } >> + END_DO_MARKERS; > > Would it be possible not to introduce macros that modify the C syntax? > These are problematic for more than one reason (one being that they > are not recognized by C modes we use). We have macros whose names > start with FOR_EACH_ (like FOR_EACH_FRAME); can we introduce > FOR_EACH_MARKER instead, and not hide opening/closing braces inside > macros? I tried, already in igc, but failed. IOW, I don't now a way to get rid of the END_DO_MARKERS. [...] I hope Stef can take care of some of the rest. Stef, please let me know if should help. It could take a few days though, because of real-world interference. Thanks for the review.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 16:14:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 12:14:00 2025 Received: from localhost ([127.0.0.1]:40532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7zD5-00009n-IN for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 12:14:00 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:22354) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1u7zCz-00008z-4O for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 12:13:53 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 8EE0B442746; Thu, 24 Apr 2025 12:13:46 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1745511225; bh=22T0vDpbkqvbge9vFSizh1y24vJQ8nVNc3IlEmS3IdY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=cZPJSpeixPjKf2cD9Hwz4hOFE0syv+umQegjwvgLXljdh9770xI8ySkX4608QvoFk MOM1e/l2UY1AK0DMu7Vr8ySy7I2PxPUIfPA5zSQ+rY4UzB+lTQLMZtb2lVSOfye4sh nOGP/YfdW1fsGhZm1fZm2fUHvneZEVN8PFlK3zFP/kUVCUi6mOe5I2lv9zXkMrWBXy BrvpngWBDUd6SwtGsmYSgcTMmidNhGEKTtgtQ6BcFzFqV/Tui9NYaHJ91kMLaeRGT1 p/XtnPXqpLJJu9B4xO9YI/KYy237ORBe2Bv5rnA14AfFNfvzuMs9q71gU/PBszIild J8Yw8o8IkgnaA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 2EB0844273B; Thu, 24 Apr 2025 12:13:45 -0400 (EDT) Received: from pastel (104-195-208-18.cpe.teksavvy.com [104.195.208.18]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EDB2112076C; Thu, 24 Apr 2025 12:13:44 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Gerd =?windows-1252?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2a586neq2.fsf@HIDDEN> Message-ID: <jwvzfg5zgpf.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> Date: Thu, 24 Apr 2025 12:13:44 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.016 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, yantar92@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> Evaluate this, then invoke "M-x scroll-up-benchmark" in a large buffer >> with lots of non-ASCII characters. Compare the timings between the >> two versions of Emacs. > > elb-scroll from elisp-bechmarks is basically > > (dotimes (_ 10) > (elb-smie-mode) > (goto-char (point-min)) > (condition-case nil > (while t (scroll-up nil) (redisplay 'force)) > (end-of-buffer nil)))))) > > looks similar, but I don't know what elb-smie-mode does. It's a major mode for the C language, separate from CC-mode. [ It's basically "vendored" copy of the `sm-c-mode` that's on GNU ELPA. ] So the benchmark tests scroll time, including jit/font-lock time. It uses its own copy of a major mode, so that you can compare "scroll + font-lock" performance between different Emacs releases without being affected by improvements/regressions in CC-mode itself. Stefan
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 13:35:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 09:35:08 2025 Received: from localhost ([127.0.0.1]:37402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7wjM-0006Y6-6P for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 09:35:08 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:53481) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7wjI-0006VF-9c for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 09:35:04 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43cf06eabdaso9577845e9.2 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 06:35:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745501698; x=1746106498; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Egk9/WQ65hXIG6ZIbCP+XnTtPpHPRnJ/Op22KN3dASA=; b=mrG/3HJjaDgvBi0V0Fap7ZVa4tBeMLb85B0j9rBjoyZ/VSqQ8b0K+Fen/NsUeMJA5S WMjYIgvYgh7JJ9fNzEnuu6Uam8I40HiW5Z5swwleY2mWy7mOB2rwAGgqyLhA4CGDqJWB 7qvi4Z4hnZx1VMoGBuLoNIJ1UgyuH7iDsPSfJJMsHy8b+GMwDx1sbf+XzjS1JTyiNsLf qDWMbunGrlZlPu9h+TpIuqAYRkMFc4eCcLTdv9rzG6V6qfntHt9e2Lx55LLtxV+xKaFs C4HElAOiWTAGroytVmiXkDNizs6qsMdCak/fNv4uQonWtX2VO35pft2mrKUyb8kxHztd wxrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745501698; x=1746106498; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Egk9/WQ65hXIG6ZIbCP+XnTtPpHPRnJ/Op22KN3dASA=; b=K9S9podQbYw7yRL59+SFW+g9T/01bvlV8J3YOzcPghdg/TFEfuW0QR/9IA5cV4iBu4 TZfZdY9s2cVEL+Z4wcvsPWUv2rWkwMPqAab2BJ5fchMbjk8g1//me5pPb/WJpeb0Sb3j ZwZ+mfz4FOGs3TXnfKtuaiux7gXXJWbQYuI/Tx2l4g2PKVXOA9WaO7Ui6h7uMRUx7FeH GBMBGu0iJa68PBnWE7G83usTB52GvCQ2Y5X2/We5kaMmxaN55GOo+az1x9Db7IWbVP0g nKpDTpDSx3v9K7nG5VVgo53NlaVKHGB9lvJJNMqYTGssWh1jwApZJeIkOHl/4aNkIeSP 8dfQ== X-Forwarded-Encrypted: i=1; AJvYcCUNATZwU3jVTScrcIO6Q9TVCCTEkt1XP94jeY9fygW61Plz/D8FpjUMu0+/Dlk0uPRAa8VAqA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwI8QVxWi7sZT91K0uOXMgZEpce7Bvpmj4R+98+nAH5GoMap/X8 OHntidi3ru16RUqApHZWLbt8Y1r7SIRZ56O6ms96dBDv+nQf2r7gw1IVy0hV X-Gm-Gg: ASbGncs1r0EF1/WZ56Rl2nijCpkxeYICu/hMcGItd9JiriihgetJCaiR4FPWsvtNZlx rCIAf4suzOmy1rK8oFImSFU4yCOUmB6kHFvX4Fjm9mUSNHg1DYLg4xh7QVp2wfcOfQeyTxbEa0r QiWaNuI8uZ2SaFqX3psXqXw1ZjRhdO9hyURF1IJfBdplChD1EvomqjO6akKem/R2itiz8TsJTDJ KCgWpFHVNGmKucZqNzvKv5m/HxsqlqLjpH031S8F65f7PI8yg4OycRRefJLSuh61QgkmGX+czvj OiO6PQkvA/xYl0etkgjamvmw3tdmyCPjleA1trFEskH4sLe2t1I4UWwqxoy2f1NLC92cNaOpOZm TkNOU5xIi0N7JjSNE0tjIDXi4xOV+y5izb1RYa2VRmOTW X-Google-Smtp-Source: AGHT+IFupUPyO/rGuay9wnwLs0yThajtQgZg1mHxUzXzYT/WJkF6QCxIUkEYfJtikfRD3IKA0o9msA== X-Received: by 2002:a05:600c:b8e:b0:43c:ec28:d31b with SMTP id 5b1f17b1804b1-4409bd0fbacmr24732225e9.10.1745501697173; Thu, 24 Apr 2025 06:34:57 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4409d2e0414sm21757665e9.40.2025.04.24.06.34.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 06:34:56 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <87zfg5939u.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <87plh2m72a.fsf@HIDDEN> <m2ecxinkcd.fsf@HIDDEN> <87zfg5939u.fsf@HIDDEN> Date: Thu, 24 Apr 2025 15:34:55 +0200 Message-ID: <m2zfg5bs3k.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, yantar92@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Visuwesh <visuweshm@HIDDEN> writes: > [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE= =8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llma= nn wrote: > >>> Is there a standard benchmark code that I can try for this? I have such >>> a large HTML file with Tamil text, and I can scroll through the buffer >>> produced by shr-render-buffer. >> >> The elisp-benchmarks package has an elb-scroll.el, in its benchmarks >> directory. AFAICT, that loads an xmenu.c from the resources >> sub-directory of the benchmarks. >> >> You could copy that, or modify it. >> >> P.S. >> >> One can set the benchmarks directory to somewhere else, and run >> benchmarks like this: >> >> (setq elb-bench-directory "~/emacs/notes/code/benchmarks") >> (elisp-benchmarks-run ".*replace-region-contents.*" t 100) >> >> The 100 is the number of runs, which should be chosen high enough that >> the "err" column in the result buffer is reasonably low. I'd start with >> 1 to see how long that takes, and then increase it. > > I ran the benchmark with the text file tamil.txt in place of xmenu.c, > but I didn't disable elb-smie-mode since I ran into weird issues. In > both master and text-index cases, I ran the benchmark with > > % emacs -Q -l elisp-benchmarks-run --eval '(elisp-benchmarks-run "elb= -scroll" t 10)' > > and here are the results for the master branch: > > * Results > > | test | non-gc (s) | gc (s) | gcs | total (s) | err | > |--------+------------+--------+-----+-----------+-----| > | scroll | 155.73 | 49.29 | 835 | 205.02 | 0% | > |--------+------------+--------+-----+-----------+-----| > | total | 155.73 | 49.29 | 835 | 205.02 | 0% | > > and for the scratch/text-index branch: > > * Results > > | test | non-gc (s) | gc (s) | gcs | total (s) | err | > |--------+------------+--------+-----+-----------+-----| > | scroll | 171.89 | 51.56 | 869 | 223.44 | 1% | > |--------+------------+--------+-----+-----------+-----| > | total | 171.89 | 51.56 | 869 | 223.44 | 1% | > > Unfortunately, my laptop went to power saving mode during the last two > minutes or so for the scratch/text-index benchmark run so that might > play into the numbers a tiny bit. I can try repeating the test later > for the latter case if desired. Empirically speaking, both branches > seemed to scroll at the same speed. > > This is how I configured both Emacses: > > % ./configure --with-sound=3Dalsa --with-x-toolkit=3Dmotif \ > --without-xaw3d --without-gconf --without-libsystemd \ > --with-cairo CFLAGS=3D-g3 CC=3D$(which gcc-13) > > If anyone wants to repeat the test, I attach the text file (compressed) > I use here. Same on Mac mini M1, idle, tamil.txt but without the elb-smie-mode, 10 runs. * master Results | test | non-gc (s) | gc (s) | gcs | total (s) | err (s) | |--------+------------+--------+------+-----------+---------| | scroll | 23.48 | 12.00 | 1271 | 35.48 | 0.23 | |--------+------------+--------+------+-----------+---------| | total | 23.48 | 12.00 | 1271 | 35.48 | 0.23 | * text-index Results | test | non-gc (s) | gc (s) | gcs | total (s) | err (s) | |--------+------------+--------+------+-----------+---------| | scroll | 23.03 | 12.06 | 1271 | 35.09 | 0.15 | |--------+------------+--------+------+-----------+---------| | total | 23.03 | 12.06 | 1271 | 35.09 | 0.15 | Config --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=config.log Content-Transfer-Encoding: base64 Content-Description: config.log VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IEdOVSBFbWFjcyBjb25maWd1cmUgMzEuMC41 MCwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi43Mi4gIEludm9jYXRpb24g Y29tbWFuZCBsaW5lIHdhcwoKICAkIC9Vc2Vycy9nZXJkL2VtYWNzL3NhdmFubmFoL3RleHQtaW5k ZXgvY29uZmlndXJlIC0tY2FjaGUtZmlsZSAvdmFyL2ZvbGRlcnMvMWQva182dDI1Zjk0c2w4M3N6 cWJmOGdwa3JoMDAwMGduL1QvL2NvbmZpZy5jYWNoZS50ZXh0LWluZGV4IC0td2l0aC1uYXRpdmUt Y29tcGlsYXRpb249bm8gQ0M9Y2xhbmcgJ0NGTEFHUz0tV2dudS1pbWFnaW5hcnktY29uc3RhbnQg LVd1bnVzZWQtcmVzdWx0IC1nIC1GIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyAtV25vLWlnbm9yZWQtYXR0cmlidXRlcyAtV25v LWZsYWctZW51bSAtV25vLW1pc3NpbmctbWV0aG9kLXJldHVybi10eXBlIC1Xbm8tdmFyaWFkaWMt bWFjcm9zIC1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgLVduby1hdmFpbGFiaWxpdHkgLVduby1udWxs YWJpbGl0eS1jb21wbGV0ZW5lc3MnCgojIyAtLS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMj IC0tLS0tLS0tLSAjIwoKaG9zdG5hbWUgPSBtaW5pCnVuYW1lIC1tID0gYXJtNjQKdW5hbWUgLXIg PSAyNC40LjAKdW5hbWUgLXMgPSBEYXJ3aW4KdW5hbWUgLXYgPSBEYXJ3aW4gS2VybmVsIFZlcnNp b24gMjQuNC4wOiBGcmkgQXByIDExIDE4OjMyOjQzIFBEVCAyMDI1OyByb290OnhudS0xMTQxNy4x MDEuMTV+MTE3L1JFTEVBU0VfQVJNNjRfVDgxMDMKCi91c3IvYmluL3VuYW1lIC1wID0gYXJtCi9i aW4vdW5hbWUgLVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHVua25v d24KL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5m byA9IHVua25vd24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IE1hY2gga2VybmVsIHZlcnNpb246 CgkgRGFyd2luIEtlcm5lbCBWZXJzaW9uIDI0LjQuMDogRnJpIEFwciAxMSAxODozMjo0MyBQRFQg MjAyNTsgcm9vdDp4bnUtMTE0MTcuMTAxLjE1fjExNy9SRUxFQVNFX0FSTTY0X1Q4MTAzCktlcm5l bCBjb25maWd1cmVkIGZvciB1cCB0byA4IHByb2Nlc3NvcnMuCjggcHJvY2Vzc29ycyBhcmUgcGh5 c2ljYWxseSBhdmFpbGFibGUuCjggcHJvY2Vzc29ycyBhcmUgbG9naWNhbGx5IGF2YWlsYWJsZS4K UHJvY2Vzc29yIHR5cGU6IGFybTY0ZSAoQVJNNjRFKQpQcm9jZXNzb3JzIGFjdGl2ZTogMCAxIDIg MyA0IDUgNiA3ClByaW1hcnkgbWVtb3J5IGF2YWlsYWJsZTogMTYuMDAgZ2lnYWJ5dGVzCkRlZmF1 bHQgcHJvY2Vzc29yIHNldDogNjg2IHRhc2tzLCAyNDEyIHRocmVhZHMsIDggcHJvY2Vzc29ycwpM b2FkIGF2ZXJhZ2U6IDIuNjcsIE1hY2ggZmFjdG9yOiA1LjMyCi9iaW4vbWFjaGluZSAgICAgICAg ICAgPSB1bmtub3duCi91c3IvYmluL29zbGV2ZWwgICAgICAgPSB1bmtub3duCi9iaW4vdW5pdmVy c2UgICAgICAgICAgPSB1bmtub3duCgpQQVRIOiAvb3B0L2hvbWVicmV3L29wdC9sbHZtL2Jpbi8K UEFUSDogL29wdC9ob21lYnJldy9vcHQvb3Blbmpkay9iaW4vClBBVEg6IC9vcHQvaG9tZWJyZXcv YmluLwpQQVRIOiAvb3B0L2hvbWVicmV3L3NiaW4vClBBVEg6IC9vcHQvaG9tZWJyZXcvb3B0L2xs dm0vYmluLwpQQVRIOiAvb3B0L2hvbWVicmV3L29wdC9vcGVuamRrL2Jpbi8KUEFUSDogL3Vzci9i aW4vClBBVEg6IC9iaW4vClBBVEg6IC91c3Ivc2Jpbi8KUEFUSDogL3NiaW4vClBBVEg6IC9Vc2Vy cy9nZXJkL2Jpbi8KUEFUSDogL3Vzci9sb2NhbC9NYWNHUEcyL2Jpbi8KUEFUSDogL0xpYnJhcnkv QXBwbGUvdXNyL2Jpbi8KUEFUSDogL0FwcGxpY2F0aW9ucy9FbWFjcy5hcHAvQ29udGVudHMvTWFj T1MvYmluLwpQQVRIOiAvQXBwbGljYXRpb25zL0VtYWNzLmFwcC9Db250ZW50cy9NYWNPUy8KUEFU SDogL3Vzci9sb2NhbC9iaW4vClBBVEg6IC9TeXN0ZW0vQ3J5cHRleGVzL0FwcC91c3IvYmluLwpQ QVRIOiAvdmFyL3J1bi9jb20uYXBwbGUuc2VjdXJpdHkuY3J5cHRleGQvY29kZXguc3lzdGVtL2Jv b3RzdHJhcC91c3IvbG9jYWwvYmluLwpQQVRIOiAvdmFyL3J1bi9jb20uYXBwbGUuc2VjdXJpdHku Y3J5cHRleGQvY29kZXguc3lzdGVtL2Jvb3RzdHJhcC91c3IvYmluLwpQQVRIOiAvdmFyL3J1bi9j b20uYXBwbGUuc2VjdXJpdHkuY3J5cHRleGQvY29kZXguc3lzdGVtL2Jvb3RzdHJhcC91c3IvYXBw bGVpbnRlcm5hbC9iaW4vClBBVEg6IC9vcHQvWDExL2Jpbi8KUEFUSDogL3Vzci90ZXhiaW4vClBB VEg6IC9Vc2Vycy9nZXJkLy5sb2NhbC9iaW4vClBBVEg6IC9vcHQvaG9tZWJyZXcvYmluLwpQQVRI OiAvb3B0L2hvbWVicmV3L3NiaW4vClBBVEg6IC9Vc2Vycy9nZXJkL2Jpbi8KUEFUSDogL2Jpbi8K UEFUSDogL3Vzci9zYmluLwpQQVRIOiAvc2Jpbi8KUEFUSDogL3Vzci9sb2NhbC9NYWNHUEcyL2Jp bi8KUEFUSDogL0xpYnJhcnkvQXBwbGUvdXNyL2Jpbi8KUEFUSDogL0FwcGxpY2F0aW9ucy9FbWFj cy5hcHAvQ29udGVudHMvTWFjT1MvYmluLwpQQVRIOiAvQXBwbGljYXRpb25zL0VtYWNzLmFwcC9D b250ZW50cy9NYWNPUy8KUEFUSDogL1VzZXJzL2dlcmQvLmxvY2FsL2Jpbi8KCgojIyAtLS0tLS0t LS0tLSAjIwojIyBDb3JlIHRlc3RzLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKY29uZmlndXJlOjQy NTA6IGxvYWRpbmcgY2FjaGUgL3Zhci9mb2xkZXJzLzFkL2tfNnQyNWY5NHNsODNzenFiZjhncGty aDAwMDBnbi9ULy9jb25maWcuY2FjaGUudGV4dC1pbmRleApjb25maWd1cmU6NDkwMzogbG9va2lu ZyBmb3IgYXV4IGZpbGVzOiBpbnN0YWxsLXNoIG5kay1idWlsZC1oZWxwZXIubWsgY29uZmlnLmd1 ZXNzIGNvbmZpZy5zdWIKY29uZmlndXJlOjQ5MTY6ICB0cnlpbmcgLi9idWlsZC1hdXgvCmNvbmZp Z3VyZTo0OTI3OiAgIC4vYnVpbGQtYXV4L2luc3RhbGwtc2ggZm91bmQKY29uZmlndXJlOjQ5NDU6 ICAgLi9idWlsZC1hdXgvbmRrLWJ1aWxkLWhlbHBlci5tayBmb3VuZApjb25maWd1cmU6NDk0NTog ICAuL2J1aWxkLWF1eC9jb25maWcuZ3Vlc3MgZm91bmQKY29uZmlndXJlOjQ5NDU6ICAgLi9idWls ZC1hdXgvY29uZmlnLnN1YiBmb3VuZApjb25maWd1cmU6NTEzMTogY2hlY2tpbmcgZm9yIHhjcnVu CmNvbmZpZ3VyZTo1MTY0OiByZXN1bHQ6IHhjcnVuCmNvbmZpZ3VyZTo1MTc5OiBjaGVja2luZyBm b3IgbWFrZQpjb25maWd1cmU6NTIxMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUyMzc6IGNoZWNr aW5nIGZvciBHTlUgTWFrZQpjb25maWd1cmU6NTI5NDogcmVzdWx0OiBnbWFrZQpjb25maWd1cmU6 NTMyODogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29uZmlndXJlOjUzNDQ6IHJlc3VsdDog YWFyY2g2NC1hcHBsZS1kYXJ3aW4yNC40LjAKY29uZmlndXJlOjUzNjQ6IGNoZWNraW5nIGhvc3Qg c3lzdGVtIHR5cGUKY29uZmlndXJlOjUzNzk6IHJlc3VsdDogYWFyY2g2NC1hcHBsZS1kYXJ3aW4y NC40LjAKY29uZmlndXJlOjkyOTM6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24KY29u ZmlndXJlOjkzMDI6IGNsYW5nIC0tdmVyc2lvbiA+JjUKSG9tZWJyZXcgY2xhbmcgdmVyc2lvbiAy MC4xLjIKVGFyZ2V0OiBhcm02NC1hcHBsZS1kYXJ3aW4yNC40LjAKVGhyZWFkIG1vZGVsOiBwb3Np eApJbnN0YWxsZWREaXI6IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xsdm0vMjAuMS4yL2JpbgpDb25m aWd1cmF0aW9uIGZpbGU6IC9vcHQvaG9tZWJyZXcvZXRjL2NsYW5nL2FybTY0LWFwcGxlLWRhcndp bjI0LmNmZwpjb25maWd1cmU6OTMxMzogJD8gPSAwCmNvbmZpZ3VyZTo5MzAyOiBjbGFuZyAtdiA+ JjUKSG9tZWJyZXcgY2xhbmcgdmVyc2lvbiAyMC4xLjIKVGFyZ2V0OiBhcm02NC1hcHBsZS1kYXJ3 aW4yNC40LjAKVGhyZWFkIG1vZGVsOiBwb3NpeApJbnN0YWxsZWREaXI6IC9vcHQvaG9tZWJyZXcv Q2VsbGFyL2xsdm0vMjAuMS4yL2JpbgpDb25maWd1cmF0aW9uIGZpbGU6IC9vcHQvaG9tZWJyZXcv ZXRjL2NsYW5nL2FybTY0LWFwcGxlLWRhcndpbjI0LmNmZwpTeXN0ZW0gY29uZmlndXJhdGlvbiBm aWxlIGRpcmVjdG9yeTogL29wdC9ob21lYnJldy9ldGMvY2xhbmcKVXNlciBjb25maWd1cmF0aW9u IGZpbGUgZGlyZWN0b3J5OiAvVXNlcnMvZ2VyZC8uY29uZmlnL2NsYW5nCmNvbmZpZ3VyZTo5MzEz OiAkPyA9IDAKY29uZmlndXJlOjkzMDI6IGNsYW5nIC1WID4mNQpjbGFuZzogZXJyb3I6IGFyZ3Vt ZW50IHRvICctVicgaXMgbWlzc2luZyAoZXhwZWN0ZWQgMSB2YWx1ZSkKY2xhbmc6IGVycm9yOiBu byBpbnB1dCBmaWxlcwpjb25maWd1cmU6OTMxMzogJD8gPSAxCmNvbmZpZ3VyZTo5MzAyOiBjbGFu ZyAtcXZlcnNpb24gPiY1CmNsYW5nOiBlcnJvcjogdW5rbm93biBhcmd1bWVudCAnLXF2ZXJzaW9u JzsgZGlkIHlvdSBtZWFuICctLXZlcnNpb24nPwpjbGFuZzogZXJyb3I6IG5vIGlucHV0IGZpbGVz CmNvbmZpZ3VyZTo5MzEzOiAkPyA9IDEKY29uZmlndXJlOjkzMDI6IGNsYW5nIC12ZXJzaW9uID4m NQpjbGFuZzogZXJyb3I6IHVua25vd24gYXJndW1lbnQgJy12ZXJzaW9uJzsgZGlkIHlvdSBtZWFu ICctLXZlcnNpb24nPwpjbGFuZzogZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbmZpZ3VyZTo5MzEz OiAkPyA9IDEKY29uZmlndXJlOjkzMzM6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIg d29ya3MKY29uZmlndXJlOjkzNTU6IGNsYW5nIC1XZ251LWltYWdpbmFyeS1jb25zdGFudCAtV3Vu dXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIC1Xbm8taWdub3JlZC1hdHRyaWJ1dGVzIC1Xbm8tZmxh Zy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRob2QtcmV0dXJuLXR5cGUgLVduby12YXJpYWRpYy1tYWNy b3MgLVduby1zdHJpY3QtcHJvdG90eXBlcyAtV25vLWF2YWlsYWJpbGl0eSAtV25vLW51bGxhYmls aXR5LWNvbXBsZXRlbmVzcyAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6OTM1OTogJD8gPSAw CmNvbmZpZ3VyZTo5NDEwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQxNDogY2hlY2tpbmcgZm9y IEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTo5NDE2OiByZXN1 bHQ6IGEub3V0CmNvbmZpZ3VyZTo5NDIyOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFi bGVzCmNvbmZpZ3VyZTo5NDI5OiBjbGFuZyAtbyBjb25mdGVzdCAtV2dudS1pbWFnaW5hcnktY29u c3RhbnQgLVd1bnVzZWQtcmVzdWx0IC1nIC1GIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyAtV25vLWlnbm9yZWQtYXR0cmlidXRl cyAtV25vLWZsYWctZW51bSAtV25vLW1pc3NpbmctbWV0aG9kLXJldHVybi10eXBlIC1Xbm8tdmFy aWFkaWMtbWFjcm9zIC1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgLVduby1hdmFpbGFiaWxpdHkgLVdu by1udWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjk0 MzM6ICQ/ID0gMApjb25maWd1cmU6OTQ1NzogcmVzdWx0OiAKY29uZmlndXJlOjk0ODE6IGNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZwpjb25maWd1cmU6OTQ4OTogY2xhbmcg LW8gY29uZnRlc3QgLVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2VkLXJlc3VsdCAtZyAt RiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MgLVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVudW0gLVduby1taXNz aW5nLW1ldGhvZC1yZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAtV25vLXN0cmljdC1w cm90b3R5cGVzIC1Xbm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHktY29tcGxldGVuZXNz ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo5NDkzOiAkPyA9IDAKY29uZmlndXJlOjk1MDA6 IC4vY29uZnRlc3QKY29uZmlndXJlOjk1MDQ6ICQ/ID0gMApjb25maWd1cmU6OTUxOTogcmVzdWx0 OiBubwpjb25maWd1cmU6OTUyNTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMK Y29uZmlndXJlOjk1NzY6IHJlc3VsdDogbwpjb25maWd1cmU6OTU4MDogY2hlY2tpbmcgd2hldGhl ciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMKY29uZmlndXJlOjk2MTI6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo5NjIzOiBjaGVja2luZyB3aGV0aGVyIGNsYW5nIGFjY2VwdHMgLWcKY29uZmln dXJlOjk2OTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5NzExOiBjaGVja2luZyBmb3IgY2xhbmcg b3B0aW9uIHRvIGVuYWJsZSBDMTEgZmVhdHVyZXMKY29uZmlndXJlOjk3NDU6IHJlc3VsdDogbm9u ZSBuZWVkZWQKY29uZmlndXJlOjk4NjQ6IGNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlz IGNsYW5nCmNvbmZpZ3VyZTo5ODk3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTkwMTogY2hlY2tp bmcgZm9yIGNvbXBpbGVyIG9wdGlvbiBuZWVkZWQgd2hlbiBjaGVja2luZyBmb3IgZGVjbGFyYXRp b25zCmNvbmZpZ3VyZTo5OTM2OiByZXN1bHQ6IC1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb24KY29uZmlndXJlOjk5NTE6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6OTk4NDog cmVzdWx0OiBhcgpjb25maWd1cmU6MTAwMDk6IGNoZWNraW5nIHdoZXRoZXIgY2xhbmcgYW5kIGNj IHVuZGVyc3RhbmQgLWMgYW5kIC1vIHRvZ2V0aGVyCmNvbmZpZ3VyZToxMDExMTogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc3RkaW8uaApjb25maWd1cmU6MTAxNTQ6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCmNvbmZp Z3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc3Ry aW5nLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6IGNoZWNr aW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEwMTU0OiBjaGVja2luZyBmb3Igc3RkaW50LmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZvciBzdHJpbmdzLmgKY29uZmlndXJlOjEwMTU0 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCmNv bmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Ig c3lzL3R5cGVzLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6 IGNoZWNraW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6MTAxNTQ6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHdjaGFyLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZvciBtaW5peC9jb25maWcuaApjb25maWd1 cmU6MTAxNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3IgbGludXgv ZnMuaApjb25maWd1cmU6MTAxNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMTU0OiBjaGVja2lu ZyBmb3IgbWFsbG9jLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDE1 NDogY2hlY2tpbmcgZm9yIHN5cy9zeXN0ZW1pbmZvLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN5cy9zeXNpbmZvLmgKY29uZmlndXJl OjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIGNvZmYuaApj b25maWd1cmU6MTAxNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Ig cHR5LmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tp bmcgZm9yIHN5cy9yZXNvdXJjZS5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc3lzL3V0c25hbWUuaApjb25maWd1cmU6MTAxNTQ6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHB3ZC5oCmNvbmZpZ3VyZTox MDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3IgdXRpbC5oCmNv bmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Ig c2FuaXRpemVyL2xzYW5faW50ZXJmYWNlLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZvciBzYW5pdGl6ZXIvYXNhbl9pbnRlcmZhY2UuaApj b25maWd1cmU6MTAxNTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9y IHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaApjb25maWd1cmU6MTAxNTQ6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN5cy9zb2NrZXQuaApjb25maWd1 cmU6MTAxNTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN5cy9w YXJhbS5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVj a2luZyBmb3IgcHRocmVhZC5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEwMTU0OiBjaGVja2luZyBmb3IgbWFsbG9jL21hbGxvYy5oCmNvbmZpZ3VyZToxMDE1NDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc3lzL3VuLmgKY29uZmlndXJl OjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZvciB2Zm9yay5o CmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZv ciBzdGRib29sLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6 IGNoZWNraW5nIGZvciB1dG1wLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MTAxNTQ6IGNoZWNraW5nIGZvciB1dG1weC5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3IgT1MuaApjb25maWd1cmU6MTAxNTQ6IHJl c3VsdDogbm8KY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3IgYnl0ZXN3YXAuaApjb25maWd1 cmU6MTAxNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3IgZGlyZW50 LmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5n IGZvciBleGVjaW5mby5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEw MTU0OiBjaGVja2luZyBmb3IgbGludXgveGF0dHIuaApjb25maWd1cmU6MTAxNTQ6IHJlc3VsdDog bm8KY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc2VsaW51eC9zZWxpbnV4LmgKY29uZmln dXJlOjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN0ZGlv X2V4dC5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTAxNTQ6IGNoZWNr aW5nIGZvciBzeXMvdmZzLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox MDE1NDogY2hlY2tpbmcgZm9yIHN5cy9mc190eXBlcy5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0 OiBubwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZvciBnZXRvcHQuaApjb25maWd1cmU6MTAx NTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN5cy90aW1lLmgK Y29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAxNTQ6IGNoZWNraW5nIGZv ciBpZWVlNzU0LmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDE1NDog Y2hlY2tpbmcgZm9yIGxpbWl0cy5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc3lzL3NlbGVjdC5oCmNvbmZpZ3VyZToxMDE1NDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2luZyBmb3Igc3RkYml0LmgKY29uZmlndXJl OjEwMTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN0ZGNrZGlu dC5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMTU0OiBjaGVja2lu ZyBmb3Igc3lzL3JhbmRvbS5oCmNvbmZpZ3VyZToxMDE1NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEwMTU0OiBjaGVja2luZyBmb3IgZW5kaWFuLmgKY29uZmlndXJlOjEwMTU0OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxMDE1NDogY2hlY2tpbmcgZm9yIHN5cy9lbmRpYW4uaApjb25maWd1cmU6MTAx NTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMTg1OiBjaGVja2luZyB3aGV0aGVyIGl0IGlzIHNh ZmUgdG8gZGVmaW5lIF9fRVhURU5TSU9OU19fCmNvbmZpZ3VyZToxMDIxNDogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjEwMjE3OiBjaGVja2luZyB3aGV0aGVyIF9YT1BFTl9TT1VSQ0Ugc2hvdWxkIGJl IGRlZmluZWQKY29uZmlndXJlOjEwMjY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDM0NjogY2hl Y2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29uZmlndXJlOjEwNDE3OiByZXN1 bHQ6IGNsYW5nIC1FCmNvbmZpZ3VyZToxMDQzMTogY2xhbmcgLUUgIGNvbmZ0ZXN0LmMKY29uZmln dXJlOjEwNDMxOiAkPyA9IDAKY29uZmlndXJlOjEwNDQ3OiBjbGFuZyAtRSAgY29uZnRlc3QuYwpj b25mdGVzdC5jOjYzOjEwOiBmYXRhbCBlcnJvcjogJ2FjX25vbmV4aXN0ZW50LmgnIGZpbGUgbm90 IGZvdW5kCiAgIDYzIHwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEgZXJyb3IgZ2VuZXJhdGVkLgpjb25maWd1cmU6MTA0NDc6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjMxLjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDMxLjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAjZGVmaW5lIEhBVkVfTUFJTFVUSUxTIDEKfCAjZGVmaW5lIEdDX1JFTUVNQkVSX0xBU1Rf TUFSS0VEIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VVFNOQU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1VUSUxfSCAxCnwgI2RlZmluZSBIQVZF X1NBTklUSVpFUl9MU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJWkVSX0FT QU5fSU5URVJGQUNFX0ggMQp8ICNkZWZpbmUgSEFWRV9TQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFD RV9ERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCnwgI2RlZmluZSBIQVZFX01B TExPQ19NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVf U1REQk9PTF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhf SCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAx CnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwg I2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1REQ0tESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkFORE9NX0ggMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQ VVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNf XyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5o Pgpjb25maWd1cmU6MTA0ODA6IGNoZWNraW5nIGZvciBlZ3JlcCAtZQpjb25maWd1cmU6MTA2MTA6 IHJlc3VsdDogL3Vzci9iaW4vZ3JlcCAtRQpjb25maWd1cmU6MTA2MTc6IGNoZWNraW5nIGZvciBN aW5peCBBbXN0ZXJkYW0gY29tcGlsZXIKY29uZmlndXJlOjEwNjQ1OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMDgyMjogY2hlY2tpbmcgZm9yIHJhbmxpYgpjb25maWd1cmU6MTA4NTU6IHJlc3VsdDog cmFubGliCmNvbmZpZ3VyZToxMDkyMjogY2hlY2tpbmcgZm9yIGNsYW5nIG9wdGlvbiB0byBzdXBw b3J0IGxhcmdlIGZpbGVzCmNvbmZpZ3VyZToxMTAwMDogcmVzdWx0OiBub25lIG5lZWRlZApjb25m aWd1cmU6MTEwMjU6IGNoZWNraW5nIGZvciBjbGFuZyBvcHRpb24gdG8gc3VwcG9ydCB0aW1lc3Rh bXBzIGFmdGVyIDIwMzgKY29uZmlndXJlOjExMDY5OiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZp Z3VyZToxMTg2NjogY2hlY2tpbmcgd2hldGhlciBjbGFuZyBhY2NlcHRzIC1PCmNvbmZpZ3VyZTox MTg5NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjExOTA5OiBjaGVja2luZyB3aGV0aGVyIHRoZSBj b21waWxlciBpcyBjbGFuZwpjb25maWd1cmU6MTE5NDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox MjA1MDogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdlcnJvciAtV3Vua25v d24td2FybmluZy1vcHRpb24KY29uZmlndXJlOjEyMDgzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MTIzNzU6IGNoZWNraW5nIHdoZXRoZXIgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyBp cyBuZWVkZWQKY29uZmlndXJlOjEyNDIxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjQyNDogY2hl Y2tpbmcgd2hldGhlciAtV3VuaW5pdGlhbGl6ZWQgaXMgc3VwcG9ydGVkCmNvbmZpZ3VyZToxMjQ1 NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtZnN0cmljdC1mbGV4LWFycmF5cwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDog bm8KY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAt V2FsbApjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tp bmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdhcml0aC1jb252ZXJzaW9uCmNvbmZpZ3Vy ZToxMjYzNTogcmVzdWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBj b21waWxlciBoYW5kbGVzIC1XZGF0ZS10aW1lCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2Rp c2FibGVkLW9wdGltaXphdGlvbgpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdkdXBsaWNhdGVk LWNvbmQKY29uZmlndXJlOjEyNjM1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tp bmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdleHRyYQpjb25maWd1cmU6MTI2MzU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVdmb3JtYXQtc2lnbmVkbmVzcwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmbGV4 LWFycmF5LW1lbWJlci1ub3QtYXQtZW5kCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiBubwpjb25m aWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XaW5pdC1z ZWxmCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyNjAxOiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2ludmFsaWQtcGNoCmNvbmZpZ3VyZToxMjYz NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV2xvZ2ljYWwtb3AKY29uZmlndXJlOjEyNjM1OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5n LWRlY2xhcmF0aW9ucwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjYw MTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5nLWluY2x1ZGUt ZGlycwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tp bmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKY29uZmln dXJlOjEyNjM1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIg QyBjb21waWxlciBoYW5kbGVzIC1XbWlzc2luZy12YXJpYWJsZS1kZWNsYXJhdGlvbnMKY29uZmln dXJlOjEyNjM1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIg QyBjb21waWxlciBoYW5kbGVzIC1XbmVzdGVkLWV4dGVybnMKY29uZmlndXJlOjEyNjM1OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5k bGVzIC1XbnVsbC1kZXJlZmVyZW5jZQpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvbGQtc3R5 bGUtZGVmaW5pdGlvbgpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjYw MTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvcGVubXAtc2ltZApjb25m aWd1cmU6MTI2MzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3BhY2tlZApjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdw b2ludGVyLWFyaXRoCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyNjAx OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3N0cmljdC1mbGV4LWFycmF5 cwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3 aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3N0cmljdC1wcm90b3R5cGVzCmNvbmZpZ3VyZTox MjYzNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29t cGlsZXIgaGFuZGxlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdApjb25maWd1cmU6MTI2MzU6 IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIg aGFuZGxlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuCmNvbmZpZ3VyZToxMjYzNTogcmVz dWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5k bGVzIC1Xc3VnZ2VzdC1maW5hbC1tZXRob2RzCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiBubwpj b25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1Xc3Vn Z2VzdC1maW5hbC10eXBlcwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEy NjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3RyYW1wb2xpbmVzCmNv bmZpZ3VyZToxMjYzNTogcmVzdWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRo ZXIgQyBjb21waWxlciBoYW5kbGVzIC1XdW5pbml0aWFsaXplZApjb25maWd1cmU6MTI2MzU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVd1bmtub3duLXByYWdtYXMKY29uZmlndXJlOjEyNjM1OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XdW51c2Vk LW1hY3Jvcwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjAxOiBjaGVj a2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3ZhcmlhZGljLW1hY3Jvcwpjb25maWd1 cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlCmNvbmZpZ3Vy ZToxMjYzNTogcmVzdWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBj b21waWxlciBoYW5kbGVzIC1Xd3JpdGUtc3RyaW5ncwpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMg LVdhcnJheS1ib3VuZHM9Mgpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEy NjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2F0dHJpYnV0ZS1hbGlh cz0yCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5n IHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZm9ybWF0PTIKY29uZmlndXJlOjEyNjM1OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBo YW5kbGVzIC1XZm9ybWF0LXRydW5jYXRpb249Mgpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogbm8K Y29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2lt cGxpY2l0LWZhbGx0aHJvdWdoPTUKY29uZmlndXJlOjEyNjM1OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToxMjYwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdzaGlmdC1vdmVy Zmxvdz0yCmNvbmZpZ3VyZToxMjYzNTogcmVzdWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNr aW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XdXNlLWFmdGVyLWZyZWU9Mwpjb25maWd1 cmU6MTI2MzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjAxOiBjaGVja2luZyB3aGV0aGVyIEMg Y29tcGlsZXIgaGFuZGxlcyAtV3ZsYS1sYXJnZXItdGhhbj00MDMxCmNvbmZpZ3VyZToxMjYzNTog cmVzdWx0OiBubwpjb25maWd1cmU6MTI2MDE6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBo YW5kbGVzIC1XdGhyZWFkLXNhZmV0eQpjb25maWd1cmU6MTI2MzU6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxMjY0NjogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdyZWR1bmRh bnQtZGVjbHMKY29uZmlndXJlOjEyNjc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTI2ODk6IGNo ZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XdHJhaWxpbmctd2hpdGVzcGFjZQpj b25maWd1cmU6MTI3MDk6IGNsYW5nIC1vIGNvbmZ0ZXN0IC1XZ251LWltYWdpbmFyeS1jb25zdGFu dCAtV3VudXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIC1Xbm8taWdub3JlZC1hdHRyaWJ1dGVzIC1X bm8tZmxhZy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRob2QtcmV0dXJuLXR5cGUgLVduby12YXJpYWRp Yy1tYWNyb3MgLVduby1zdHJpY3QtcHJvdG90eXBlcyAtV25vLWF2YWlsYWJpbGl0eSAtV25vLW51 bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyAtTyAtV3Vua25vd24td2FybmluZy1vcHRpb24gLVdlcnJv ciAtV3RyYWlsaW5nLXdoaXRlc3BhY2UgICBjb25mdGVzdC5jICA+JjUKZXJyb3I6IHVua25vd24g d2FybmluZyBvcHRpb24gJy1XdHJhaWxpbmctd2hpdGVzcGFjZSc7IGRpZCB5b3UgbWVhbiAnLVd1 bmljb2RlLXdoaXRlc3BhY2UnPyBbLVdlcnJvciwtV3Vua25vd24td2FybmluZy1vcHRpb25dCmNv bmZpZ3VyZToxMjcwOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMzEu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMzEuMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgSEFWRV9NQUlMVVRJTFMgMQp8ICNkZWZpbmUgR0Nf UkVNRU1CRVJfTEFTVF9NQVJLRUQgMQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VU U05BTUVfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTF9IIDEK fCAjZGVmaW5lIEhBVkVfU0FOSVRJWkVSX0xTQU5fSU5URVJGQUNFX0ggMQp8ICNkZWZpbmUgSEFW RV9TQU5JVElaRVJfQVNBTl9JTlRFUkZBQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1NBTklUSVpFUl9D T01NT05fSU5URVJGQUNFX0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERCT09MX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZp bmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERDS0RJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19SQU5ET01fSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9MSU5VWF9TT1VSQ0VfQ09NUEFUIDEKfCAjZGVm aW5lIF9fVVNFX01JTkdXX0FOU0lfU1RESU8gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAK fCBpbnQKfCBtYWluICh2b2lkKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjEyNzIyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjczMjogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwpjb25maWd1 cmU6MTI3NjU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjc3NTogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVduby1vdmVycmlkZS1pbml0CmNvbmZpZ3VyZToxMjgwODogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjEyODE4OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFu ZGxlcyAtV25vLXNpZ24tY29tcGFyZQpjb25maWd1cmU6MTI4NTE6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxMjg2MTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby10eXBl LWxpbWl0cwpjb25maWd1cmU6MTI4OTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjkwNDogY2hl Y2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby11bnVzZWQtcGFyYW1ldGVyCmNv bmZpZ3VyZToxMjkzNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyOTQ3OiBjaGVja2luZyB3aGV0 aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLWZvcm1hdC1ub25saXRlcmFsCmNvbmZpZ3VyZTox Mjk4MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyOTkwOiBjaGVja2luZyB3aGV0aGVyIEMgY29t cGlsZXIgaGFuZGxlcyAtV25vLWJpZGktY2hhcnMKY29uZmlndXJlOjEzMDIzOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxMzA4MjogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdu by1iaXR3aXNlLWluc3RlYWQtb2YtbG9naWNhbApjb25maWd1cmU6MTMxMTU6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToxMzEyNTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdu by1taXNzaW5nLWJyYWNlcwpjb25maWd1cmU6MTMxNTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox MzE2ODogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby1udWxsLXBvaW50 ZXItYXJpdGhtZXRpYwpjb25maWd1cmU6MTMyMDE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzIx MTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby1pbXBsaWNpdC1jb25z dC1pbnQtZmxvYXQtY29udmVyc2lvbgpjb25maWd1cmU6MTMyNDQ6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxMzI1NDogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby1pbnQt aW4tYm9vbC1jb250ZXh0CmNvbmZpZ3VyZToxMzI4NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEz Mjk3OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXNoaWZ0LW92ZXJm bG93CmNvbmZpZ3VyZToxMzMzMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEzNDA2OiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLWluaXRpYWxpemVyLW92ZXJyaWRlcwpj b25maWd1cmU6MTM0Mzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzQ0OTogY2hlY2tpbmcgd2hl dGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby10YXV0b2xvZ2ljYWwtY29tcGFyZQpjb25maWd1 cmU6MTM0ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzQ5MjogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVduby10YXV0b2xvZ2ljYWwtY29uc3RhbnQtb3V0LW9mLXJhbmdl LWNvbXBhcmUKY29uZmlndXJlOjEzNTI1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTM1NDE6IGNo ZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnMKY29uZmlndXJlOjEzNTc0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTM3NjA6IGNoZWNr aW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjEzODM0OiByZXN1bHQ6 IC9vcHQvaG9tZWJyZXcvYmluL2dpbnN0YWxsIC1jCmNvbmZpZ3VyZToxMzg0OTogY2hlY2tpbmcg Zm9yIGdhd2sKY29uZmlndXJlOjEzODgyOiByZXN1bHQ6IGF3awpjb25maWd1cmU6MTM4OTY6IGNo ZWNraW5nIGNvbW1hbmQgdG8gc3ltbGluayBmaWxlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKY29u ZmlndXJlOjEzOTE5OiByZXN1bHQ6IGxuIC1zCmNvbmZpZ3VyZToxMzkzMzogY2hlY2tpbmcgZm9y IGluc3RhbGwtaW5mbwpjb25maWd1cmU6MTM5NzA6IHJlc3VsdDogL29wdC9ob21lYnJldy9iaW4v aW5zdGFsbC1pbmZvCmNvbmZpZ3VyZToxMzk4MDogY2hlY2tpbmcgZm9yIGd6aXAKY29uZmlndXJl OjE0MDE2OiByZXN1bHQ6IC91c3IvYmluL2d6aXAKY29uZmlndXJlOjE0MDI4OiBjaGVja2luZyBm b3IgJ2ZpbmQnIGFyZ3MgdG8gZGVsZXRlIGEgZmlsZQpjb25maWd1cmU6MTQwNDM6IHJlc3VsdDog LWRlbGV0ZQpjb25maWd1cmU6MTQwNjA6IGNoZWNraW5nIGZvciBicmV3CmNvbmZpZ3VyZToxNDA5 MzogcmVzdWx0OiBicmV3CmNvbmZpZ3VyZToxNDEwNzogY2hlY2tpbmcgZm9yIG1ha2VpbmZvCmNv bmZpZ3VyZToxNDE0MzogcmVzdWx0OiAvb3B0L2hvbWVicmV3L2Jpbi9tYWtlaW5mbwpjb25maWd1 cmU6MTQxNTc6IGNoZWNraW5nIGZvciBwb3J0CmNvbmZpZ3VyZToxNDE5NjogcmVzdWx0OiBubwpj b25maWd1cmU6MTQyNTQ6IGNoZWNraW5nIHdoZXRoZXIgYWRkcmVzc2VzIGFyZSBzYW5pdGl6ZWQK Y29uZmlndXJlOjE0Mjg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNDMzODogY2hlY2tpbmcgZm9y IGZsYWdzIHRvIHdvcmsgYXJvdW5kIEdDQyBidWcgNTg0MTYKY29uZmlndXJlOjE0Mzk5OiByZXN1 bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZToxNDQ2NTogY2hlY2tpbmcgZm9yIG1hdGggbGlicmFy eQpjb25maWd1cmU6MTQ1MzY6IHJlc3VsdDogbm9uZSByZXF1aXJlZApjb25maWd1cmU6MTQ2NDQ6 IGNoZWNraW5nIGZvciBwa2ctY29uZmlnCmNvbmZpZ3VyZToxNDY4MDogcmVzdWx0OiAvb3B0L2hv bWVicmV3L2Jpbi9wa2ctY29uZmlnCmNvbmZpZ3VyZToxNDcwNTogY2hlY2tpbmcgcGtnLWNvbmZp ZyBpcyBhdCBsZWFzdCB2ZXJzaW9uIDAuOS4wCmNvbmZpZ3VyZToxNDcwODogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjE0NzI4OiBjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaApjb25maWd1 cmU6MTQ3Mjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0NzI4OiBjaGVja2luZyBmb3Igc3lzL3Nv dW5kY2FyZC5oCmNvbmZpZ3VyZToxNDcyODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQ3Mjg6IGNo ZWNraW5nIGZvciBzb3VuZGNhcmQuaApjb25maWd1cmU6MTQ3Mjg6IHJlc3VsdDogbm8KY29uZmln dXJlOjE0NzI4OiBjaGVja2luZyBmb3IgbW1zeXN0ZW0uaApjb25maWd1cmU6MTQ3Mjg6IHJlc3Vs dDogbm8KY29uZmlndXJlOjE0NzQ5OiBjaGVja2luZyBmb3IgX29zc19pb2N0bCBpbiAtbG9zc2F1 ZGlvCmNvbmZpZ3VyZToxNDc5MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTQ5MTA6IGNoZWNraW5n IGZvciBhbHNhID49IDEuMC4wCmNvbmZpZ3VyZToxNDkxNzogJFBLR19DT05GSUcgLS1leGlzdHMg LS1wcmludC1lcnJvcnMgIiRBTFNBX01PRFVMRVMiClBhY2thZ2UgYWxzYSB3YXMgbm90IGZvdW5k IGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRo ZSBkaXJlY3RvcnkgY29udGFpbmluZyBgYWxzYS5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBl bnZpcm9ubWVudCB2YXJpYWJsZQpQYWNrYWdlICdhbHNhJyBub3QgZm91bmQKY29uZmlndXJlOjE0 OTIwOiAkPyA9IDEKY29uZmlndXJlOjE0OTM0OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50 LWVycm9ycyAiJEFMU0FfTU9EVUxFUyIKUGFja2FnZSBhbHNhIHdhcyBub3QgZm91bmQgaW4gdGhl IHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVj dG9yeSBjb250YWluaW5nIGBhbHNhLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25t ZW50IHZhcmlhYmxlClBhY2thZ2UgJ2Fsc2EnIG5vdCBmb3VuZApjb25maWd1cmU6MTQ5Mzc6ICQ/ ID0gMQpjb25maWd1cmU6MTQ5NTE6IHJlc3VsdDogbm8KUGFja2FnZSAnYWxzYScgbm90IGZvdW5k CmNvbmZpZ3VyZToxNTAyMTogY2hlY2tpbmcgZm9yIEFERFJfTk9fUkFORE9NSVpFCmNvbmZpZ3Vy ZToxNTA0OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTUxMjk6IGNsYW5nIC1FICAgIGNvbmZ0ZXN0 LmMKY29uZmlndXJlOjE1MTI5OiAkPyA9IDAKY29uZmlndXJlOjE1MTM2OiBjaGVja2luZyBmb3Ig c3lzL3dhaXQuaCB0aGF0IGlzIFBPU0lYLjEgY29tcGF0aWJsZQpjb25maWd1cmU6MTUxNzM6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxNTE4NDogY2hlY2tpbmcgZm9yIG5ldC9pZi5oCmNvbmZpZ3Vy ZToxNTE4NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE1MTk1OiBjaGVja2luZyBmb3IgaWZhZGRy cy5oCmNvbmZpZ3VyZToxNTE5NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE1MjA2OiBjaGVja2lu ZyBmb3IgbmV0L2lmX2RsLmgKY29uZmlndXJlOjE1MjA2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MTUyMTg6IGNoZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2ZsYWdzCmNvbmZpZ3VyZToxNTIx ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE1MjMzOiBjaGVja2luZyBmb3Igc3RydWN0IGlmcmVx Lmlmcl9od2FkZHIKY29uZmlndXJlOjE1MjMzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNTI0ODog Y2hlY2tpbmcgZm9yIHN0cnVjdCBpZnJlcS5pZnJfbmV0bWFzawpjb25maWd1cmU6MTUyNDg6IHJl c3VsdDogbm8KY29uZmlndXJlOjE1MjYzOiBjaGVja2luZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9i cm9hZGFkZHIKY29uZmlndXJlOjE1MjYzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTUyNzg6IGNo ZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2FkZHIKY29uZmlndXJlOjE1Mjc4OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6MTUyOTM6IGNoZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2FkZHIu c2FfbGVuCmNvbmZpZ3VyZToxNTI5MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE1MzE1OiBjaGVj a2luZyB3aGV0aGVyIGdjYyB1bmRlcnN0YW5kcyAtTU1EIC1NRgpjb25maWd1cmU6MTUzNDc6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxNTM3MjogY2hlY2tpbmcgZm9yIGNsYW5nIG9wdGlvbnMgbmVl ZGVkIHRvIGRldGVjdCBhbGwgdW5kZWNsYXJlZCBmdW5jdGlvbnMKY29uZmlndXJlOjE1NDQxOiBy ZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZToxNTU1NTogY2hlY2tpbmcgZm9yIHN0cnVjdCBw YXNzd2QucHdfZ2Vjb3MKY29uZmlndXJlOjE1NTU1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTU1 ODc6IGNoZWNraW5nIGZvciBYCmNvbmZpZ3VyZToxNTgwNDogcmVzdWx0OiBubwpjb25maWd1cmU6 MTU5Nzc6IGNoZWNraW5nIGZvciBBcHBLaXQvQXBwS2l0LmgKY29uZmlndXJlOjE1OTc3OiBjbGFu ZyAtYyAtV2dudS1pbWFnaW5hcnktY29uc3RhbnQgLVd1bnVzZWQtcmVzdWx0IC1nIC1GIC9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cyAtV25vLWlnbm9yZWQtYXR0cmlidXRlcyAtV25vLWZsYWctZW51bSAtV25vLW1pc3NpbmctbWV0 aG9kLXJldHVybi10eXBlIC1Xbm8tdmFyaWFkaWMtbWFjcm9zIC1Xbm8tc3RyaWN0LXByb3RvdHlw ZXMgLVduby1hdmFpbGFiaWxpdHkgLVduby1udWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MgLU8gLXgg b2JqZWN0aXZlLWMgICAgIC14IG9iamVjdGl2ZS1jICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL0FwcEtpdC5oOjEwOgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrL0hlYWRlcnMvRm91bmRhdGlvbi5oOjk0OgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrL0hlYWRlcnMv TlNVUkxFcnJvci5oOjE1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29k ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxv cGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNl cy5mcmFtZXdvcmsvSGVhZGVycy9Db3JlU2VydmljZXMuaDoyMzoKSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQUUuZnJhbWV3b3Jr L0hlYWRlcnMvQUUuaDoyMDoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9DYXJi b25Db3JlLmg6Mzk6Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q bGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVt L0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2Fy Ym9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQuaDo4Mzc6Mzogd2FybmluZzogJ1Njcmlw dFRva2VuVHlwZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMy4w IC0gRGVwcmVjYXRlZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA4MzcgfCAgIFNjcmlw dFRva2VuVHlwZSAgICAgdGhlVG9rZW47CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMu ZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQu aDo4MzM6NDE6IG5vdGU6ICdTY3JpcHRUb2tlblR5cGUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFy a2VkIGRlcHJlY2F0ZWQgaGVyZQogIDgzMyB8IHR5cGVkZWYgc2hvcnQgICAgICAgICAgICAgICAg ICAgICAgICAgICBTY3JpcHRUb2tlblR5cGUgQVBJX0RFUFJFQ0FURUQoICJEZXByZWNhdGVkIiwg bWFjb3MoMTAuMCwxMy4wKSk7OwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q bGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVt L0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2Fy Ym9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQuaDo4NTc6Mzogd2FybmluZzogJ1Njcmlw dFRva2VuVHlwZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMy4w IC0gRGVwcmVjYXRlZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA4NTcgfCAgIFNjcmlw dFRva2VuVHlwZSAgICAgbGVmdERlbGltc1syXTsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2 aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1Nj cmlwdC5oOjgzMzo0MTogbm90ZTogJ1NjcmlwdFRva2VuVHlwZScgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODMzIHwgdHlwZWRlZiBzaG9ydCAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNjcmlwdFRva2VuVHlwZSBBUElfREVQUkVDQVRFRCggIkRlcHJlY2F0 ZWQiLCBtYWNvcygxMC4wLDEzLjApKTs7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jr cy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1NjcmlwdC5oOjg1ODozOiB3YXJuaW5nOiAn U2NyaXB0VG9rZW5UeXBlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09T IDEzLjAgLSBEZXByZWNhdGVkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDg1OCB8ICAg U2NyaXB0VG9rZW5UeXBlICAgICByaWdodERlbGltc1syXTsKICAgICAgfCAgIF4KL0FwcGxpY2F0 aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZv cm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Nv cmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFk ZXJzL1NjcmlwdC5oOjgzMzo0MTogbm90ZTogJ1NjcmlwdFRva2VuVHlwZScgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODMzIHwgdHlwZWRlZiBzaG9ydCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdFRva2VuVHlwZSBBUElfREVQUkVDQVRFRCggIkRl cHJlY2F0ZWQiLCBtYWNvcygxMC4wLDEzLjApKTs7CiAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJh bWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1NjcmlwdC5oOjg1OTozOiB3YXJu aW5nOiAnU2NyaXB0VG9rZW5UeXBlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDEzLjAgLSBEZXByZWNhdGVkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDg1 OSB8ICAgU2NyaXB0VG9rZW5UeXBlICAgICBsZWZ0Q29tbWVudFs0XTsKICAgICAgfCAgIF4KL0Fw cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gu cGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv cmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29y ay9IZWFkZXJzL1NjcmlwdC5oOjgzMzo0MTogbm90ZTogJ1NjcmlwdFRva2VuVHlwZScgaGFzIGJl ZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODMzIHwgdHlwZWRlZiBzaG9y dCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdFRva2VuVHlwZSBBUElfREVQUkVDQVRF RCggIkRlcHJlY2F0ZWQiLCBtYWNvcygxMC4wLDEzLjApKTs7CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdv cmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1NjcmlwdC5oOjg2MDoz OiB3YXJuaW5nOiAnU2NyaXB0VG9rZW5UeXBlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNh dGVkIGluIG1hY09TIDEzLjAgLSBEZXByZWNhdGVkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z XQogIDg2MCB8ICAgU2NyaXB0VG9rZW5UeXBlICAgICByaWdodENvbW1lbnRbNF07CiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5m cmFtZXdvcmsvSGVhZGVycy9TY3JpcHQuaDo4MzM6NDE6IG5vdGU6ICdTY3JpcHRUb2tlblR5cGUn IGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDgzMyB8IHR5cGVk ZWYgc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JpcHRUb2tlblR5cGUgQVBJX0RF UFJFQ0FURUQoICJEZXByZWNhdGVkIiwgbWFjb3MoMTAuMCwxMy4wKSk7OwogICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMu ZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQu aDo4NjE6Mzogd2FybmluZzogJ1NjcmlwdFRva2VuVHlwZScgaXMgZGVwcmVjYXRlZDogZmlyc3Qg ZGVwcmVjYXRlZCBpbiBtYWNPUyAxMy4wIC0gRGVwcmVjYXRlZCBbLVdkZXByZWNhdGVkLWRlY2xh cmF0aW9uc10KICA4NjEgfCAgIFNjcmlwdFRva2VuVHlwZSAgICAgZXNjYXBlQ29kZTsgICAgICAg ICAgICAgLyplc2NhcGUgc3ltYm9sIGNvZGUqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL0NhcmJvbkNvcmUuZnJhbWV3b3JrL0hlYWRlcnMvU2Ny aXB0Lmg6ODMzOjQxOiBub3RlOiAnU2NyaXB0VG9rZW5UeXBlJyBoYXMgYmVlbiBleHBsaWNpdGx5 IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4MzMgfCB0eXBlZGVmIHNob3J0ICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2NyaXB0VG9rZW5UeXBlIEFQSV9ERVBSRUNBVEVEKCAiRGVwcmVjYXRl ZCIsIG1hY29zKDEwLjAsMTMuMCkpOzsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtz L0NhcmJvbkNvcmUuZnJhbWV3b3JrL0hlYWRlcnMvU2NyaXB0Lmg6ODYyOjM6IHdhcm5pbmc6ICdT Y3JpcHRUb2tlblR5cGUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1Mg MTMuMCAtIERlcHJlY2F0ZWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgODYyIHwgICBT Y3JpcHRUb2tlblR5cGUgICAgIGRlY2ltYWxDb2RlOwogICAgICB8ICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNl cnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL0NhcmJvbkNvcmUuZnJhbWV3b3JrL0hlYWRlcnMv U2NyaXB0Lmg6ODMzOjQxOiBub3RlOiAnU2NyaXB0VG9rZW5UeXBlJyBoYXMgYmVlbiBleHBsaWNp dGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4MzMgfCB0eXBlZGVmIHNob3J0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2NyaXB0VG9rZW5UeXBlIEFQSV9ERVBSRUNBVEVEKCAiRGVwcmVj YXRlZCIsIG1hY29zKDEwLjAsMTMuMCkpOzsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDY6 CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E ZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gu c2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL0Fw cEtpdC5oOjE1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsv SGVhZGVycy9OU0FjY2Vzc2liaWxpdHlDb2xvci5oOjk6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAv QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TQ29sb3IuaDo0NjoKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNBcHBsaWNhdGlvbi5o OjEwOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVy cy9OU1Jlc3BvbmRlci5oOjEwOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5m cmFtZXdvcmsvSGVhZGVycy9OU0V2ZW50Lmg6MTA6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvSGVhZGVycy9BcHBsaWNhdGlvblNlcnZp Y2VzLmg6NDM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9ISVNlcnZpY2VzLmZyYW1ld29yay9IZWFkZXJzL0hJU2Vy dmljZXMuaDoyNjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL0hJU2VydmljZXMuZnJhbWV3b3JrL0hlYWRlcnMvSElT aGFwZS5oOjIyOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvUXVpY2tkcmF3Lmg6 MzE6Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0NzU6Mzogd2FybmluZzogJ0NN RGF0ZVRpbWUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBb LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA0NzUgfCAgIENNRGF0ZVRpbWUgICAgICAgICAg ZGF0ZVRpbWU7ICAgICAgICAgICAgICAgLyogZGF0ZSBhbmQgdGltZSBvZiBwcm9maWxlIGNyZWF0 aW9uICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9G cmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0MjQ6 Mzogbm90ZTogJ0NNRGF0ZVRpbWUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0 ZWQgaGVyZQogIDQyNCB8IH0gQ01EYXRlVGltZSBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJ T05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtz L01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2Vz LmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJl Y2F0ZWQuaDo0ODM6Mzogd2FybmluZzogJ0NNRml4ZWRYWVpDb2xvcicgaXMgZGVwcmVjYXRlZDog Zmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z XQogIDQ4MyB8ICAgQ01GaXhlZFhZWkNvbG9yICAgICB3aGl0ZTsgICAgICAgICAgICAgICAgICAv KiBwcm9maWxlIGlsbHVtaW5hbnQgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy dmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5j RGVwcmVjYXRlZC5oOjQzNTozOiBub3RlOiAnQ01GaXhlZFhZWkNvbG9yJyBoYXMgYmVlbiBleHBs aWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA0MzUgfCB9IENNRml4ZWRYWVpDb2xvciBE RVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1l d29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0OTU6Mzogd2FybmluZzogJ0NNRGF0 ZVRpbWUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdk ZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA0OTUgfCAgIENNRGF0ZVRpbWUgICAgICAgICAgZGF0 ZVRpbWU7ICAgICAgICAgICAgICAgLyogZGF0ZSBhbmQgdGltZSBvZiBwcm9maWxlIGNyZWF0aW9u ICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFt ZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0MjQ6Mzog bm90ZTogJ0NNRGF0ZVRpbWUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQg aGVyZQogIDQyNCB8IH0gQ01EYXRlVGltZSBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05f MTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDo1MDM6Mzogd2FybmluZzogJ0NNRml4ZWRYWVpDb2xvcicgaXMgZGVwcmVjYXRlZDogZmly c3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog IDUwMyB8ICAgQ01GaXhlZFhZWkNvbG9yICAgICB3aGl0ZTsgICAgICAgICAgICAgICAgICAvKiBw cm9maWxlIGlsbHVtaW5hbnQgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjQzNTozOiBub3RlOiAnQ01GaXhlZFhZWkNvbG9yJyBoYXMgYmVlbiBleHBsaWNp dGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA0MzUgfCB9IENNRml4ZWRYWVpDb2xvciBERVBS RUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29y ay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo1MDU6Mzogd2FybmluZzogJ0NNUHJvZmls ZU1ENScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2Rl cHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDUwNSB8ICAgQ01Qcm9maWxlTUQ1ICAgICAgICBkaWdl c3Q7ICAgICAgICAgICAgICAgICAvKiBQcm9maWxlIG1lc3NhZ2UgZGlnZXN0ICovCiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0NDg6NDE6IG5vdGU6ICdDTVBy b2ZpbGVNRDUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQ0 OCB8IHR5cGVkZWYgdW5zaWduZWQgY2hhciAgICAgICAgICAgICAgICAgICBDTVByb2ZpbGVNRDVb MTZdIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9D b2xvclN5bmNEZXByZWNhdGVkLmg6NTE3OjM6IHdhcm5pbmc6ICdDTVRhZ1JlY29yZCcgaXMgZGVw cmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVj bGFyYXRpb25zXQogIDUxNyB8ICAgQ01UYWdSZWNvcmQgICAgICAgICB0YWdMaXN0WzFdOyAgICAg ICAgICAgICAvKiB2YXJpYWJsZSBzaXplLCBkZXRlcm1pbmVkIGJ5IGNvdW50ICovCiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo1MTM6Mzogbm90ZTogJ0NNVGFn UmVjb3JkJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA1MTMg fCB9IENNVGFnUmVjb3JkIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9M QVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0Zy YW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjUyMToz OiB3YXJuaW5nOiAnQ00ySGVhZGVyJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNTIxIHwgICBDTTJIZWFk ZXIgICAgICAgICAgIGhlYWRlcjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjQ4NjozOiBub3RlOiAnQ00ySGVhZGVyJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1h cmtlZCBkZXByZWNhdGVkIGhlcmUKICA0ODYgfCB9IENNMkhlYWRlciBERVBSRUNBVEVEX0lOX01B Q19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNh dGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0Nv bG9yU3luY0RlcHJlY2F0ZWQuaDo1MjI6Mzogd2FybmluZzogJ0NNVGFnRWxlbVRhYmxlJyBpcyBk ZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1k ZWNsYXJhdGlvbnNdCiAgNTIyIHwgICBDTVRhZ0VsZW1UYWJsZSAgICAgIHRhZ1RhYmxlOwogICAg ICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv cm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJy YXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9R RC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NTE4OjM6IG5vdGU6ICdD TVRhZ0VsZW1UYWJsZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJl CiAgNTE4IHwgfSBDTVRhZ0VsZW1UYWJsZSBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05f MTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDo1NTA6Mzogd2FybmluZzogJ0NNRGF0ZVRpbWUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA1NTAg fCAgIENNRGF0ZVRpbWUgICAgICAgICAgZGF0ZVRpbWU7ICAgICAgICAgICAgICAgLyogKi8KICAg ICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3Mv UUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQyNDozOiBub3RlOiAn Q01EYXRlVGltZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAg NDI0IHwgfSBDTURhdGVUaW1lIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FO RF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjYx ODozOiB3YXJuaW5nOiAnQ01GaXhlZFhZWkNvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXBy ZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNjE4IHwg ICBDTUZpeGVkWFlaQ29sb3IgICAgIGJhY2tpbmdYWVo7ICAgICAgICAgICAgIC8qIGFic29sdXRl IFhZWiB2YWx1ZXMgb2YgYmFja2luZyAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6NDM1OjM6IG5vdGU6ICdDTUZpeGVkWFlaQ29sb3InIGhhcyBiZWVuIGV4 cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQzNSB8IH0gQ01GaXhlZFhZWkNvbG9y IERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjY2MjozOiB3YXJuaW5nOiAnQ01G aXhlZFhZQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAu NiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA2NjIgfCAgIENNRml4ZWRYWUNvbG9yICAg ICAgcmVkUGhvc3Bob3I7ICAgICAgICAgICAgLyogUGhvc3Bob3JzIC0gbmF0aXZlIGNyb21hdGlj aXR5IHZhbHVlcyBvZiB0aGUgZGlzcGxheSAgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0 aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29s b3JTeW5jRGVwcmVjYXRlZC5oOjQyOTozOiBub3RlOiAnQ01GaXhlZFhZQ29sb3InIGhhcyBiZWVu IGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQyOSB8IH0gQ01GaXhlZFhZQ29s b3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8 ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5m cmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NjYzOjM6IHdhcm5pbmc6ICdD TUZpeGVkWFlDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAx MC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDY2MyB8ICAgQ01GaXhlZFhZQ29sb3Ig ICAgICBncmVlblBob3NwaG9yOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6NDI5OjM6IG5vdGU6ICdDTUZpeGVkWFlDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDI5IHwgfSBDTUZpeGVkWFlDb2xvciBERVBSRUNB VEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9I ZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo2NjQ6Mzogd2FybmluZzogJ0NNRml4ZWRYWUNv bG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVw cmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNjY0IHwgICBDTUZpeGVkWFlDb2xvciAgICAgIGJsdWVQ aG9zcGhvcjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQy OTozOiBub3RlOiAnQ01GaXhlZFhZQ29sb3InIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogIDQyOSB8IH0gQ01GaXhlZFhZQ29sb3IgREVQUkVDQVRFRF9JTl9NQUNf T1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp b25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xv clN5bmNEZXByZWNhdGVkLmg6NjY1OjM6IHdhcm5pbmc6ICdDTUZpeGVkWFlDb2xvcicgaXMgZGVw cmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVj bGFyYXRpb25zXQogIDY2NSB8ICAgQ01GaXhlZFhZQ29sb3IgICAgICB3aGl0ZVBvaW50OwogICAg ICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv cm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJy YXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9R RC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDI5OjM6IG5vdGU6ICdD TUZpeGVkWFlDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJl CiAgNDI5IHwgfSBDTUZpeGVkWFlDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05f MTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDo2ODE6Mzogd2FybmluZzogJ0NNTmF0aXZlRGlzcGxheUluZm8nIGlzIGRlcHJlY2F0ZWQ6 IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KICA2ODEgfCAgIENNTmF0aXZlRGlzcGxheUluZm8gbmF0aXZlRGlzcGxheUluZm87ICAgICAg LyogZGF0YSBvZiB0eXBlIENNTmF0aXZlRGlzcGxheUluZm8gKi8KICAgICAgfCAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hl YWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjY3NjozOiBub3RlOiAnQ01OYXRpdmVEaXNwbGF5 SW5mbycgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNjc2IHwg fSBDTU5hdGl2ZURpc3BsYXlJbmZvIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82 X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3 b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5o OjczNDozOiB3YXJuaW5nOiAnQ01TY3JlZW5pbmdDaGFubmVsUmVjJyBpcyBkZXByZWNhdGVkOiBm aXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNd CiAgNzM0IHwgICBDTVNjcmVlbmluZ0NoYW5uZWxSZWMgIGNoYW5uZWxJbmZvWzFdOyAgICAgIC8q IHZhcmlhYmxlIHNpemUsIGRldGVybWluZWQgYnkgY2hhbm5lbENvdW50ICovCiAgICAgIHwgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1l d29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo3Mjc6Mzogbm90ZTogJ0NNU2NyZWVu aW5nQ2hhbm5lbFJlYycgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJl CiAgNzI3IHwgfSBDTVNjcmVlbmluZ0NoYW5uZWxSZWMgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9W RVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2 aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNE ZXByZWNhdGVkLmg6NzgyOjM6IHdhcm5pbmc6ICdDTUZpeGVkWFlaQ29sb3InIGlzIGRlcHJlY2F0 ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0 aW9uc10KICA3ODIgfCAgIENNRml4ZWRYWVpDb2xvciAgICAgaWxsdW1pbmFudDsgICAgICAgICAg ICAgLyogYWJzb2x1dGUgWFlacyBvZiBpbGx1bWluYW50ICBpbiBjZC9tXjIgKi8KICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQzNTozOiBub3RlOiAnQ01GaXhl ZFhZWkNvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA0 MzUgfCB9IENNRml4ZWRYWVpDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBf Nl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l d29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQu aDo3ODM6Mzogd2FybmluZzogJ0NNRml4ZWRYWVpDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3Qg ZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDc4 MyB8ICAgQ01GaXhlZFhZWkNvbG9yICAgICBzdXJyb3VuZDsgICAgICAgICAgICAgICAvKiBhYnNv bHV0ZSBYWVpzIG9mIHN1cnJvdW5kIGluIGNkL21eMiAqLwogICAgICB8ICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVy cy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDM1OjM6IG5vdGU6ICdDTUZpeGVkWFlaQ29sb3InIGhh cyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQzNSB8IH0gQ01GaXhl ZFhZWkNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsK ICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs YXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0v TGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29y a3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjc5MDozOiB3YXJu aW5nOiAnQ01GaXhlZFhZWkNvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNzkwIHwgICBDTUZpeGVk WFlaQ29sb3IgICAgIFhZWlsxXTsgICAgICAgICAgICAgICAgIC8qIHZhcmlhYmxlIHNpemUsIGRl dGVybWluZWQgYnkgdGFnIGVsZW1lbnQgc2l6ZSAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9D b2xvclN5bmNEZXByZWNhdGVkLmg6NDM1OjM6IG5vdGU6ICdDTUZpeGVkWFlaQ29sb3InIGhhcyBi ZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQzNSB8IH0gQ01GaXhlZFhZ WkNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAg ICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3Mv UUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjgyOTozOiB3YXJuaW5n OiAnQ01JbnRlbnRDUkRWTVNpemUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4g bWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA4MjkgfCAgIENNSW50ZW50 Q1JEVk1TaXplICAgaW50ZW50Q1JEWzFdOyAgICAgICAgICAgLyogdmFyaWFibGUgc2l6ZSwgZGV0 ZXJtaW5lZCBieSBjb3VudCAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6ODIzOjM6IG5vdGU6ICdDTUludGVudENSRFZNU2l6ZScgaGFzIGJlZW4gZXhwbGlj aXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODIzIHwgfSBDTUludGVudENSRFZNU2l6ZSBE RVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1l d29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo4NjA6NTogd2FybmluZzogJ0NNVmlk ZW9DYXJkR2FtbWFUYWJsZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNP UyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDg2MCB8ICAgICBDTVZpZGVvQ2Fy ZEdhbW1hVGFibGUgICAgdGFibGU7CiAgICAgIHwgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy dmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5j RGVwcmVjYXRlZC5oOjg0MzozOiBub3RlOiAnQ01WaWRlb0NhcmRHYW1tYVRhYmxlJyBoYXMgYmVl biBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4NDMgfCB9IENNVmlkZW9DYXJk R2FtbWFUYWJsZSBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7 CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q bGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVt L0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdv cmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo4NjE6NTogd2Fy bmluZzogJ0NNVmlkZW9DYXJkR2FtbWFGb3JtdWxhJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXBy ZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgODYxIHwg ICAgIENNVmlkZW9DYXJkR2FtbWFGb3JtdWxhICBmb3JtdWxhOwogICAgICB8ICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9I ZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo4NTU6Mzogbm90ZTogJ0NNVmlkZW9DYXJkR2Ft bWFGb3JtdWxhJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4 NTUgfCB9IENNVmlkZW9DYXJkR2FtbWFGb3JtdWxhIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVS U0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjg2ODozOiB3YXJuaW5nOiAnQ01WaWRlb0NhcmRHYW1tYScgaXMgZGVwcmVjYXRl ZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRp b25zXQogIDg2OCB8ICAgQ01WaWRlb0NhcmRHYW1tYSAgICBnYW1tYTsKICAgICAgfCAgIF4KL0Fw cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gu cGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv cmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3Jr L0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjg2MzozOiBub3RlOiAnQ01WaWRlb0NhcmRH YW1tYScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODYzIHwg fSBDTVZpZGVvQ2FyZEdhbW1hIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FO RF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjg4 NTozOiB3YXJuaW5nOiAnQ01NYWtlQW5kTW9kZWwnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJl Y2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA4ODUgfCAg IENNTWFrZUFuZE1vZGVsICAgICAgbWFrZUFuZE1vZGVsOwogICAgICB8ICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVy cy9Db2xvclN5bmNEZXByZWNhdGVkLmg6ODgwOjM6IG5vdGU6ICdDTU1ha2VBbmRNb2RlbCcgaGFz IGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODgwIHwgfSBDTU1ha2VB bmRNb2RlbCBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAg ICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtz L1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMTg3OjM6IHdhcm5p bmc6ICdDTTJIZWFkZXInIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1Mg MTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDExODcgfCAgIENNMkhlYWRlciAgICAg ICAgICAgY20yOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E ZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gu c2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv cmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6 NDg2OjM6IG5vdGU6ICdDTTJIZWFkZXInIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogIDQ4NiB8IH0gQ00ySGVhZGVyIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVS U0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjExODg6Mzogd2FybmluZzogJ0NNNEhlYWRlcicgaXMgZGVwcmVjYXRlZDogZmly c3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog MTE4OCB8ICAgQ000SGVhZGVyICAgICAgICAgICBjbTQ7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBs aWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJz L0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo1MDc6Mzogbm90ZTogJ0NNNEhlYWRlcicgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNTA3IHwgfSBDTTRIZWFkZXIgREVQ UkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdv cmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTE5NjozOiB3YXJuaW5nOiAnQ01Qcm9m aWxlUmVmJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxMTk2IHwgICBDTVByb2ZpbGVSZWYgICAgICAgIHBy b2ZpbGVTZXRbMV07ICAgICAgICAgIC8qIFZhcmlhYmxlLiBPcmRlcmVkIGZyb20gU291cmNlIC0+ IERlc3QgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEw MDA6NDE6IG5vdGU6ICdDTVByb2ZpbGVSZWYnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogMTAwMCB8IHR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNUHJvZmlsZVJlZiog ICAgICBDTVByb2ZpbGVSZWYgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5E X0xBVEVSOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1l d29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMjAzOjM6IHdhcm5pbmc6ICdDTVBy b2ZpbGVSZWYnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBb LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEyMDMgfCAgIENNUHJvZmlsZVJlZiAgICAgICAg cHJvZmlsZTsgICAgICAgICAgICAgICAgLyogcHJvZmlsZSAqLwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTAwMDo0MTogbm90ZTogJ0NNUHJvZmlsZVJlZicg aGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMDAwIHwgdHlwZWRl ZiBzdHJ1Y3QgT3BhcXVlQ01Qcm9maWxlUmVmKiAgICAgIENNUHJvZmlsZVJlZiBERVBSRUNBVEVE X0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu ZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVj YXRlZC5oOjEyMTE6Mzogd2FybmluZzogJ05DTUNvbmNhdFByb2ZpbGVTcGVjJyBpcyBkZXByZWNh dGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAxMjExIHwgICBOQ01Db25jYXRQcm9maWxlU3BlYyAgcHJvZmlsZVNwZWNzWzFdOyAg ICAgIC8qIFZhcmlhYmxlLiBPcmRlcmVkIGZyb20gU291cmNlIC0+IERlc3QgKi8KICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEyMDQ6Mzogbm90ZTogJ05DTUNv bmNhdFByb2ZpbGVTcGVjJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhl cmUKIDEyMDQgfCB9IE5DTUNvbmNhdFByb2ZpbGVTcGVjIERFUFJFQ0FURURfSU5fTUFDX09TX1hf VkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy dmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5j RGVwcmVjYXRlZC5oOjEzMDI6Mzogd2FybmluZzogJ0NNUkdCQ29sb3InIGlzIGRlcHJlY2F0ZWQ6 IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KIDEzMDIgfCAgIENNUkdCQ29sb3IgICAgICAgICAgcmdiOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTIzMjozOiBub3RlOiAnQ01SR0JDb2xvcicgaGFz IGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjMyIHwgfSBDTVJHQkNv bG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAg fCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQu ZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEzMDM6Mzogd2FybmluZzog J0NNSFNWQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAu NiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMDMgfCAgIENNSFNWQ29sb3IgICAgICAg ICAgaHN2OwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTI1 NzozOiBub3RlOiAnQ01IU1ZDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVj YXRlZCBoZXJlCiAxMjU3IHwgfSBDTUhTVkNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVS U0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjEzMDQ6Mzogd2FybmluZzogJ0NNSExTQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10K IDEzMDQgfCAgIENNSExTQ29sb3IgICAgICAgICAgaGxzOwogICAgICB8ICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVy cy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTI1MTozOiBub3RlOiAnQ01ITFNDb2xvcicgaGFzIGJl ZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjUxIHwgfSBDTUhMU0NvbG9y IERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEzMDY6Mzogd2FybmluZzogJ0NN TGFiQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBb LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMDYgfCAgIENNTGFiQ29sb3IgICAgICAgICAg TGFiOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJh bWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTI2Mzoz OiBub3RlOiAnQ01MYWJDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRl ZCBoZXJlCiAxMjYzIHwgfSBDTUxhYkNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lP Tl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu ZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVj YXRlZC5oOjEzMDc6Mzogd2FybmluZzogJ0NNTHV2Q29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0 IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEz MDcgfCAgIENNTHV2Q29sb3IgICAgICAgICAgTHV2OwogICAgICB8ICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9D b2xvclN5bmNEZXByZWNhdGVkLmg6MTI2OTozOiBub3RlOiAnQ01MdXZDb2xvcicgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjY5IHwgfSBDTUx1dkNvbG9yIERF UFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3 b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEzMDg6Mzogd2FybmluZzogJ0NNWXh5 Q29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdk ZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMDggfCAgIENNWXh5Q29sb3IgICAgICAgICAgWXh5 OwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3 b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTI3NTozOiBu b3RlOiAnQ01ZeHlDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBo ZXJlCiAxMjc1IHwgfSBDTVl4eUNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8x MF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJh bWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRl ZC5oOjEzMDk6Mzogd2FybmluZzogJ0NNQ01ZS0NvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBk ZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxMzA5 IHwgICBDTUNNWUtDb2xvciAgICAgICAgIGNteWs7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNh dGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0Nv bG9yU3luY0RlcHJlY2F0ZWQuaDoxMjM5OjM6IG5vdGU6ICdDTUNNWUtDb2xvcicgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjM5IHwgfSBDTUNNWUtDb2xvciBE RVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1l d29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMzEwOjM6IHdhcm5pbmc6ICdDTUNN WUNvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxMzEwIHwgICBDTUNNWUNvbG9yICAgICAgICAgIGNt eTsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEyNDU6Mzog bm90ZTogJ0NNQ01ZQ29sb3InIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQg aGVyZQogMTI0NSB8IH0gQ01DTVlDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05f MTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDoxMzExOjM6IHdhcm5pbmc6ICdDTUdyYXlDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3Qg ZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMx MSB8ICAgQ01HcmF5Q29sb3IgICAgICAgICBncmF5OwogICAgICB8ICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9D b2xvclN5bmNEZXByZWNhdGVkLmg6MTI3OTozOiBub3RlOiAnQ01HcmF5Q29sb3InIGhhcyBiZWVu IGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTI3OSB8IH0gQ01HcmF5Q29sb3Ig REVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFt ZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMxMjozOiB3YXJuaW5nOiAnQ01N dWx0aWNoYW5uZWw1Q29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMTIgfCAgIENNTXVsdGljaGFu bmVsNUNvbG9yICBtYzU7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDoxMjgzOjM6IG5vdGU6ICdDTU11bHRpY2hhbm5lbDVDb2xvcicgaGFzIGJlZW4gZXhwbGlj aXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjgzIHwgfSBDTU11bHRpY2hhbm5lbDVDb2xv ciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMzEzOjM6IHdhcm5pbmc6ICdD TU11bHRpY2hhbm5lbDZDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBt YWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMxMyB8ICAgQ01NdWx0aWNo YW5uZWw2Q29sb3IgIG1jNjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu ZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVj YXRlZC5oOjEyODc6Mzogbm90ZTogJ0NNTXVsdGljaGFubmVsNkNvbG9yJyBoYXMgYmVlbiBleHBs aWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyODcgfCB9IENNTXVsdGljaGFubmVsNkNv bG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAg fCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQu ZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEzMTQ6Mzogd2FybmluZzog J0NNTXVsdGljaGFubmVsN0NvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxMzE0IHwgICBDTU11bHRp Y2hhbm5lbDdDb2xvciAgbWM3OwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6MTI5MTozOiBub3RlOiAnQ01NdWx0aWNoYW5uZWw3Q29sb3InIGhhcyBiZWVuIGV4 cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTI5MSB8IH0gQ01NdWx0aWNoYW5uZWw3 Q29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAg ICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv cm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJy YXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9R RC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMxNTozOiB3YXJuaW5n OiAnQ01NdWx0aWNoYW5uZWw4Q29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMTUgfCAgIENNTXVs dGljaGFubmVsOENvbG9yICBtYzg7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0Rl cHJlY2F0ZWQuaDoxMjk1OjM6IG5vdGU6ICdDTU11bHRpY2hhbm5lbDhDb2xvcicgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjk1IHwgfSBDTU11bHRpY2hhbm5l bDhDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAg ICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtz L1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMzE2OjM6IHdhcm5p bmc6ICdDTU5hbWVkQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMTYgfCAgIENNTmFtZWRDb2xv ciAgICAgICAgbmFtZWRDb2xvcjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjEyOTk6Mzogbm90ZTogJ0NNTmFtZWRDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjk5IHwgfSBDTU5hbWVkQ29sb3IgREVQUkVDQVRF RF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTUxNTozOiB3YXJuaW5nOiAnQ01CaXRtYXBDb2xv clNwYWNlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxNTE1IHwgICBDTUJpdG1hcENvbG9yU3BhY2UgIHNw YWNlOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJh bWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTUwNzo0 MTogbm90ZTogJ0NNQml0bWFwQ29sb3JTcGFjZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQg ZGVwcmVjYXRlZCBoZXJlCiAxNTA3IHwgdHlwZWRlZiBVSW50MzIgICAgICAgICAgICAgICAgICAg ICAgICAgIENNQml0bWFwQ29sb3JTcGFjZSBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05f MTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3Mv UUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE1ODk6Mzogd2Fybmlu ZzogJ0NNSGFuZGxlTG9jYXRpb24nIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4g bWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDE1ODkgfCAgIENNSGFuZGxl TG9jYXRpb24gICAgaGFuZGxlTG9jOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2 aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNE ZXByZWNhdGVkLmg6MTU1NzozOiBub3RlOiAnQ01IYW5kbGVMb2NhdGlvbicgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxNTU3IHwgfSBDTUhhbmRsZUxvY2F0aW9u IERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE1OTQ6Mzogd2FybmluZzogJ0NN UGF0aExvY2F0aW9uJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEw LjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxNTk0IHwgICBDTVBhdGhMb2NhdGlvbiAg ICAgIHBhdGhMb2M7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l d29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQu aDoxNTc4OjM6IG5vdGU6ICdDTVBhdGhMb2NhdGlvbicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJr ZWQgZGVwcmVjYXRlZCBoZXJlCiAxNTc4IHwgfSBDTVBhdGhMb2NhdGlvbiBERVBSRUNBVEVEX0lO X01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBs aWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJz L0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxNTk1OjM6IHdhcm5pbmc6ICdDTUJ1ZmZlckxvY2F0aW9u JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVj YXRlZC1kZWNsYXJhdGlvbnNdCiAxNTk1IHwgICBDTUJ1ZmZlckxvY2F0aW9uICAgIGJ1ZmZlckxv YzsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE1ODM6Mzog bm90ZTogJ0NNQnVmZmVyTG9jYXRpb24nIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogMTU4MyB8IH0gQ01CdWZmZXJMb2NhdGlvbiBERVBSRUNBVEVEX0lOX01BQ19P U19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlv blNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9y U3luY0RlcHJlY2F0ZWQuaDoxNjAwOjM6IHdhcm5pbmc6ICdDTVByb2ZMb2MnIGlzIGRlcHJlY2F0 ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0 aW9uc10KIDE2MDAgfCAgIENNUHJvZkxvYyAgICAgICAgICAgdTsKICAgICAgfCAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hl YWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE1OTY6Mzogbm90ZTogJ0NNUHJvZkxvYycgaGFz IGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxNTk2IHwgfSBDTVByb2ZM b2MgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8 ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5m cmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTYwNTo0Mjogd2FybmluZzog J0NNUHJvZmlsZUxvY2F0aW9uJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1h Y09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxNjA1IHwgICBjbUN1cnJlbnRQ cm9maWxlTG9jYXRpb25TaXplICA9IHNpemVvZihDTVByb2ZpbGVMb2NhdGlvbikKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0 aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29s b3JTeW5jRGVwcmVjYXRlZC5oOjE2MDE6Mzogbm90ZTogJ0NNUHJvZmlsZUxvY2F0aW9uJyBoYXMg YmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE2MDEgfCB9IENNUHJvZmls ZUxvY2F0aW9uIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsK ICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs YXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0v TGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29y a3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE2MjA6Mzogd2Fy bmluZzogJ0NNMkhlYWRlcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNP UyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTYyMCB8ICAgQ00ySGVhZGVyICAg ICAgICAgICBoZWFkZXI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDo0ODY6Mzogbm90ZTogJ0NNMkhlYWRlcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQg ZGVwcmVjYXRlZCBoZXJlCiAgNDg2IHwgfSBDTTJIZWFkZXIgREVQUkVDQVRFRF9JTl9NQUNfT1Nf WF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6MTYyMzozOiB3YXJuaW5nOiAnQ01Qcm9maWxlTG9jYXRpb24nIGlzIGRl cHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRl Y2xhcmF0aW9uc10KIDE2MjMgfCAgIENNUHJvZmlsZUxvY2F0aW9uICAgbG9jYXRpb247CiAgICAg IHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y bXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJh cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FE LmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxNjAxOjM6IG5vdGU6ICdD TVByb2ZpbGVMb2NhdGlvbicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBo ZXJlCiAxNjAxIHwgfSBDTVByb2ZpbGVMb2NhdGlvbiBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZF UlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0Rl cHJlY2F0ZWQuaDoxNjI3OjM6IHdhcm5pbmc6ICdDTU1ha2VBbmRNb2RlbCcgaXMgZGVwcmVjYXRl ZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRp b25zXQogMTYyNyB8ICAgQ01NYWtlQW5kTW9kZWwgKiAgICBtYWtlQW5kTW9kZWw7CiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo4ODA6Mzogbm90ZTogJ0NNTWFr ZUFuZE1vZGVsJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4 ODAgfCB9IENNTWFrZUFuZE1vZGVsIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82 X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3 b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5o OjE2Mjg6Mzogd2FybmluZzogJ0NNUHJvZmlsZU1ENScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVw cmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTYyOCB8 ICAgQ01Qcm9maWxlTUQ1ICogICAgICBkaWdlc3Q7ICAgICAgICAgICAgICAgICAvKiBEZXJpdmVk IGZyb20gdGhlIFJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuIE1ENSBNZXNzYWdlLURpZ2VzdCBBbGdv cml0aG0gKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQ0 ODo0MTogbm90ZTogJ0NNUHJvZmlsZU1ENScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVw cmVjYXRlZCBoZXJlCiAgNDQ4IHwgdHlwZWRlZiB1bnNpZ25lZCBjaGFyICAgICAgICAgICAgICAg ICAgIENNUHJvZmlsZU1ENVsxNl0gREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZf QU5EX0xBVEVSOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxOTk0OjM6IHdhcm5pbmc6ICdD TURldmljZUlEJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYg Wy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxOTk0IHwgICBDTURldmljZUlEICAgICAgICAg IGRldmljZUlEOyAgICAgICAgICAgICAgIC8qIGRldmljZSBJRCAqLwogICAgICB8ICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsv SGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTk1OTo0MTogbm90ZTogJ0NNRGV2aWNlSUQn IGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTk1OSB8IHR5cGVk ZWYgVUludDMyICAgICAgICAgICAgICAgICAgICAgICAgICBDTURldmljZUlEIERFUFJFQ0FURURf SU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250 ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9N YWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5m cmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNh dGVkLmg6MTk5NjozOiB3YXJuaW5nOiAnQ01EZXZpY2VTdGF0ZScgaXMgZGVwcmVjYXRlZDogZmly c3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog MTk5NiB8ICAgQ01EZXZpY2VTdGF0ZSAgICAgICBkZXZpY2VTdGF0ZTsgICAgICAgICAgICAvKiBE ZXZpY2UgU3RhdGUgZmxhZ3MgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjE5NTM6NDE6IG5vdGU6ICdDTURldmljZVN0YXRlJyBoYXMgYmVlbiBleHBsaWNp dGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE5NTMgfCB0eXBlZGVmIFVJbnQzMiAgICAgICAg ICAgICAgICAgICAgICAgICAgQ01EZXZpY2VTdGF0ZSBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZF UlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE5OTc6Mzog d2FybmluZzogJ0NNRGV2aWNlUHJvZmlsZUlEJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNh dGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxOTk3IHwgICBD TURldmljZVByb2ZpbGVJRCAgIGRlZmF1bHRQcm9maWxlSUQ7ICAgICAgIC8qIENhbiBjaGFuZ2Ug Ki8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE5NjQ6NDE6 IG5vdGU6ICdDTURldmljZVByb2ZpbGVJRCcgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVw cmVjYXRlZCBoZXJlCiAxOTY0IHwgdHlwZWRlZiBVSW50MzIgICAgICAgICAgICAgICAgICAgICAg ICAgIENNRGV2aWNlUHJvZmlsZUlEIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82 X0FORF9MQVRFUjsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5m cmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MjAxMDozOiB3YXJuaW5nOiAn Q01EZXZpY2VQcm9maWxlSUQnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDIwMTAgfCAgIENNRGV2aWNlUHJv ZmlsZUlEICAgcHJvZmlsZUlEOyAgICAgICAgICAgICAgLyogVGhlIGlkZW50aWZpZXIgZm9yIHRo aXMgcHJvZmlsZSAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFt ZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVk Lmg6MTk2NDo0MTogbm90ZTogJ0NNRGV2aWNlUHJvZmlsZUlEJyBoYXMgYmVlbiBleHBsaWNpdGx5 IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE5NjQgfCB0eXBlZGVmIFVJbnQzMiAgICAgICAgICAg ICAgICAgICAgICAgICAgQ01EZXZpY2VQcm9maWxlSUQgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9W RVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFt ZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoyMDExOjM6 IHdhcm5pbmc6ICdDTVByb2ZpbGVMb2NhdGlvbicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMjAxMSB8ICAg Q01Qcm9maWxlTG9jYXRpb24gICBwcm9maWxlTG9jOyAgICAgICAgICAgICAvKiBUaGUgcHJvZmls ZSdzIGxvY2F0aW9uICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0 ZWQuaDoxNjAxOjM6IG5vdGU6ICdDTVByb2ZpbGVMb2NhdGlvbicgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxNjAxIHwgfSBDTVByb2ZpbGVMb2NhdGlvbiBERVBS RUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29y ay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoyMDE4OjM6IHdhcm5pbmc6ICdDTURldmlj ZVByb2ZpbGVJRCcgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42 IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMjAxOCB8ICAgQ01EZXZpY2VQcm9maWxlSUQg ICBwcm9maWxlSUQ7ICAgICAgICAgICAgICAvKiBUaGUgaWRlbnRpZmllciBmb3IgdGhpcyBwcm9m aWxlICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9G cmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxOTY0 OjQxOiBub3RlOiAnQ01EZXZpY2VQcm9maWxlSUQnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2Vk IGRlcHJlY2F0ZWQgaGVyZQogMTk2NCB8IHR5cGVkZWYgVUludDMyICAgICAgICAgICAgICAgICAg ICAgICAgICBDTURldmljZVByb2ZpbGVJRCBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05f MTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3Mv UUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjIwMTk6Mzogd2Fybmlu ZzogJ0NNUHJvZmlsZUxvY2F0aW9uJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAyMDE5IHwgICBDTVByb2Zp bGVMb2NhdGlvbiAgIHByb2ZpbGVMb2M7ICAgICAgICAgICAgIC8qIFRoZSBwcm9maWxlJ3MgbG9j YXRpb24gKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE2 MDE6Mzogbm90ZTogJ0NNUHJvZmlsZUxvY2F0aW9uJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKIDE2MDEgfCB9IENNUHJvZmlsZUxvY2F0aW9uIERFUFJFQ0FURURf SU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0 aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZv cm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRl cnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjIwMjE6Mzogd2FybmluZzogJ0NNRGV2aWNlUHJvZmls ZVNjb3BlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAyMDIxIHwgICBDTURldmljZVByb2ZpbGVTY29wZSAg cHJvZmlsZVNjb3BlOyAgICAgICAgIC8qIFRoZSBzY29wZSB0aGlzIHByb2ZpbGUgYXBwbGllcyB0 byAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJh bWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTk4NTox ODogbm90ZTogJ0NNRGV2aWNlUHJvZmlsZVNjb3BlJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKIDE5ODUgfCB9IENNRGV2aWNlU2NvcGUsIENNRGV2aWNlUHJvZmls ZVNjb3BlIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAg ICAgfCAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3 b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5o OjIwMzM6Mzogd2FybmluZzogJ0NNRGV2aWNlUHJvZmlsZUluZm8nIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10K IDIwMzMgfCAgIENNRGV2aWNlUHJvZmlsZUluZm8gIHByb2ZpbGVzWzFdOyAgICAgICAgICAgLyog VGhlIHByb2ZpbGUgaW5mbyByZWNvcmRzICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlv blNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9y U3luY0RlcHJlY2F0ZWQuaDoyMDE0OjM6IG5vdGU6ICdDTURldmljZVByb2ZpbGVJbmZvJyBoYXMg YmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDIwMTQgfCB9IENNRGV2aWNl UHJvZmlsZUluZm8gREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVS OwogICAgICB8ICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDY6CkluIGZp bGUgaW5jbHVkZWQgZnJvbSAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL0FwcEtpdC5o OjEwNjoKL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVy Lmg6MzA6MTU6IHdhcm5pbmc6ICdOU1ZvaWNlQXR0cmlidXRlS2V5JyBpcyBkZXByZWNhdGVkOiBm aXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBp biBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgMzAg fCBBUFBLSVRfRVhURVJOIE5TVm9pY2VBdHRyaWJ1dGVLZXkgY29uc3QgTlNWb2ljZUxvY2FsZUlk ZW50aWZpZXIgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7CiAgICAgIHwgICAgICAgICAgICAg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5o OjI0OjIwOiBub3RlOiAnTlNWb2ljZUF0dHJpYnV0ZUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDI0IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TVm9pY2VB dHRyaWJ1dGVLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDozMTox NTogd2FybmluZzogJ05TVm9pY2VBdHRyaWJ1dGVLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91 bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICAzMSB8IEFQUEtJ VF9FWFRFUk4gTlNWb2ljZUF0dHJpYnV0ZUtleSBjb25zdCBOU1ZvaWNlU3VwcG9ydGVkQ2hhcmFj dGVycyBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsKICAgICAgfCAgICAgICAgICAgICAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MjQ6 MjA6IG5vdGU6ICdOU1ZvaWNlQXR0cmlidXRlS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKICAgMjQgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNWb2ljZUF0dHJp YnV0ZUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjMyOjE1OiB3 YXJuaW5nOiAnTlNWb2ljZUF0dHJpYnV0ZUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0 aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDMyIHwgQVBQS0lUX0VY VEVSTiBOU1ZvaWNlQXR0cmlidXRlS2V5IGNvbnN0IE5TVm9pY2VJbmRpdmlkdWFsbHlTcG9rZW5D aGFyYWN0ZXJzIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOwogICAgICB8ICAgICAgICAgICAg ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIu aDoyNDoyMDogbm90ZTogJ05TVm9pY2VBdHRyaWJ1dGVLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkg bWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICAyNCB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1ZvaWNl QXR0cmlidXRlS2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MzY6 MTU6IHdhcm5pbmc6ICdOU1NwZWVjaERpY3Rpb25hcnlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0 IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFW Rm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICAzNiB8IEFQ UEtJVF9FWFRFUk4gTlNTcGVlY2hEaWN0aW9uYXJ5S2V5IGNvbnN0IE5TU3BlZWNoRGljdGlvbmFy eUxvY2FsZUlkZW50aWZpZXIgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1N0cmlu ZwogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJz L05TU3BlZWNoU3ludGhlc2l6ZXIuaDozNToyMDogbm90ZTogJ05TU3BlZWNoRGljdGlvbmFyeUtl eScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDM1IHwgdHlw ZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoRGljdGlvbmFyeUtleSBOU19UWVBFRF9FTlVNOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMv TlNTcGVlY2hTeW50aGVzaXplci5oOjM3OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hEaWN0aW9uYXJ5 S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2Ug QVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVk LWRlY2xhcmF0aW9uc10KICAgMzcgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoRGljdGlvbmFyeUtl eSBjb25zdCBOU1NwZWVjaERpY3Rpb25hcnlNb2RpZmljYXRpb25EYXRlIEFQSV9BVkFJTEFCTEUo bWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJpbmcKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MzU6MjA6IG5v dGU6ICdOU1NwZWVjaERpY3Rpb25hcnlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogICAzNSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaERpY3Rpb25h cnlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDozODoxNTogd2Fy bmluZzogJ05TU3BlZWNoRGljdGlvbmFyeUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0 aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDM4IHwgQVBQS0lUX0VY VEVSTiBOU1NwZWVjaERpY3Rpb25hcnlLZXkgY29uc3QgTlNTcGVlY2hEaWN0aW9uYXJ5UHJvbnVu Y2lhdGlvbnMgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU0FycmF5CiAgICAgIHwg ICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hT eW50aGVzaXplci5oOjM1OjIwOiBub3RlOiAnTlNTcGVlY2hEaWN0aW9uYXJ5S2V5JyBoYXMgYmVl biBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgMzUgfCB0eXBlZGVmIE5TU3Ry aW5nICogTlNTcGVlY2hEaWN0aW9uYXJ5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5 bnRoZXNpemVyLmg6Mzk6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaERpY3Rpb25hcnlLZXknIGlzIGRl cHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5 bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRp b25zXQogICAzOSB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hEaWN0aW9uYXJ5S2V5IGNvbnN0IE5T U3BlZWNoRGljdGlvbmFyeUFiYnJldmlhdGlvbnMgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7 ICAvLyBOU0FycmF5CiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3 b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjM1OjIwOiBub3RlOiAnTlNTcGVlY2hE aWN0aW9uYXJ5S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUK ICAgMzUgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hEaWN0aW9uYXJ5S2V5IE5TX1RZUEVE X0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdv cmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NDA6MTU6IHdhcm5pbmc6ICdOU1NwZWVj aERpY3Rpb25hcnlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1Mg MTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFst V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA0MCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hE aWN0aW9uYXJ5S2V5IGNvbnN0IE5TU3BlZWNoRGljdGlvbmFyeUVudHJ5U3BlbGxpbmcgQVBJX0FW QUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1N0cmluZwogICAgICB8ICAgICAgICAgICAgICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoz NToyMDogbm90ZTogJ05TU3BlZWNoRGljdGlvbmFyeUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDM1IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNo RGljdGlvbmFyeUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjQx OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hEaWN0aW9uYXJ5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJz dCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBB VkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNDEgfCBB UFBLSVRfRVhURVJOIE5TU3BlZWNoRGljdGlvbmFyeUtleSBjb25zdCBOU1NwZWVjaERpY3Rpb25h cnlFbnRyeVBob25lbWVzIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJpbmcK ICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9O U1NwZWVjaFN5bnRoZXNpemVyLmg6MzU6MjA6IG5vdGU6ICdOU1NwZWVjaERpY3Rpb25hcnlLZXkn IGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICAzNSB8IHR5cGVk ZWYgTlNTdHJpbmcgKiBOU1NwZWVjaERpY3Rpb25hcnlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAg fCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E ZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gu c2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05T U3BlZWNoU3ludGhlc2l6ZXIuaDo0ODoxNTogd2FybmluZzogJ05TVm9pY2VHZW5kZXJOYW1lJyBp cyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVl Y2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xh cmF0aW9uc10KICAgNDggfCBBUFBLSVRfRVhURVJOIE5TVm9pY2VHZW5kZXJOYW1lIGNvbnN0IE5T Vm9pY2VHZW5kZXJOZXV0cmFsIEFQSV9BVkFJTEFCTEUobWFjb3MoMTIuMykpOwogICAgICB8ICAg ICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3lu dGhlc2l6ZXIuaDo0NDoyMDogbm90ZTogJ05TVm9pY2VHZW5kZXJOYW1lJyBoYXMgYmVlbiBleHBs aWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNDQgfCB0eXBlZGVmIE5TU3RyaW5nICog TlNWb2ljZUdlbmRlck5hbWUgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIu aDo1MjoxNTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGlu IEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA1MiB8 IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVjaFN0YXR1c1By b3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNEaWN0aW9uYXJ5LCBzZWUg a2V5cyBiZWxvdwogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29y ay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToyMDogbm90ZTogJ05TU3BlZWNoUHJv cGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1 MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVh ZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTM6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFByb3Bl cnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBV c2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNh dGVkLWRlY2xhcmF0aW9uc10KICAgNTMgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUHJvcGVydHlL ZXkgY29uc3QgTlNTcGVlY2hFcnJvcnNQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUp KTsgIC8vIE5TRGljdGlvbmFyeSwgc2VlIGtleXMgYmVsb3cKICAgICAgfCAgICAgICAgICAgICAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6 NTE6MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1h cmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQ cm9wZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjU0OjE1 OiB3YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVw cmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3Vu ZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDU0IHwgQVBQS0lU X0VYVEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0IE5TU3BlZWNoSW5wdXRNb2RlUHJvcGVy dHkgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1N0cmluZzogTlNTcGVlY2hNb2Rl VGV4dFByb3BlcnR5IG9yIE5TU3BlZWNoTW9kZVBob25lbWVQcm9wZXJ0eQogICAgICB8ICAgICAg ICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhl c2l6ZXIuaDo1MToyMDogbm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxp Y2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBO U1NwZWVjaFByb3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAg ICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVy Lmg6NTU6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBm aXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBp biBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNTUg fCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hDaGFyYWN0 ZXJNb2RlUHJvcGVydHkgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7IC8vIE5TU3RyaW5nOiBO U1NwZWVjaE1vZGVOb3JtYWxQcm9wZXJ0eSBvciBOU1NwZWVjaE1vZGVMaXRlcmFsUHJvcGVydHkK ICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9O U1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBo YXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBlZGVm IE5TU3RyaW5nICogTlNTcGVlY2hQcm9wZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAg ICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVl Y2hTeW50aGVzaXplci5oOjU2OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaXMg ZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNo U3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAgIDU2IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0IE5T U3BlZWNoTnVtYmVyTW9kZVByb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAvLyBO U1N0cmluZzogTlNTcGVlY2hNb2RlTm9ybWFsUHJvcGVydHkgb3IgTlNTcGVlY2hNb2RlTGl0ZXJh bFByb3BlcnR5CiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3Jr L0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9w ZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUx IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250 ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9N YWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFk ZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1NzoxNTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVy dHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVz ZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0 ZWQtZGVjbGFyYXRpb25zXQogICA1NyB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtl eSBjb25zdCBOU1NwZWVjaFJhdGVQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsg IC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3 b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQ cm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAg IDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5V TTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9I ZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1ODoxNTogd2FybmluZzogJ05TU3BlZWNoUHJv cGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAt IFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXQogICA1OCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0 eUtleSBjb25zdCBOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3Mo MTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtp dC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6MjA6IG5vdGU6ICdO U1NwZWVjaFByb3BlcnR5S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVk IGhlcmUKICAgNTEgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQcm9wZXJ0eUtleSBOU19U WVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjU5OjE1OiB3YXJuaW5nOiAnTlNT cGVlY2hQcm9wZXJ0eUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNP UyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQg Wy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDU5IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVj aFByb3BlcnR5S2V5IGNvbnN0IE5TU3BlZWNoUGl0Y2hNb2RQcm9wZXJ0eSBBUElfQVZBSUxBQkxF KG1hY29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBu b3RlOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVw cmVjYXRlZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlL ZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw S2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo2MDoxNTogd2Fybmlu ZzogJ05TU3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBp bnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA2MCB8IEFQUEtJVF9FWFRFUk4g TlNTcGVlY2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVjaFZvbHVtZVByb3BlcnR5IEFQSV9BVkFJ TEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6 MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQcm9w ZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjYxOjE1OiB3 YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0 aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDYxIHwgQVBQS0lUX0VY VEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0IE5TU3BlZWNoU3ludGhlc2l6ZXJJbmZvUHJv cGVydHkgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU0RpY3Rpb25hcnksIHNlZSBr ZXlzIGJlbG93CiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3Jr L0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9w ZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUx IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250 ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9N YWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFk ZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo2MjoxNTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVy dHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVz ZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0 ZWQtZGVjbGFyYXRpb25zXQogICA2MiB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtl eSBjb25zdCBOU1NwZWVjaFJlY2VudFN5bmNQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEw LjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQu ZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNT cGVlY2hQcm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBo ZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQ RURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1l d29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo2MzoxNTogd2FybmluZzogJ05TU3Bl ZWNoUHJvcGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1Mg MTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFst V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA2MyB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQ cm9wZXJ0eUtleSBjb25zdCBOU1NwZWVjaFBob25lbWVTeW1ib2xzUHJvcGVydHkgQVBJX0FWQUlM QUJMRShtYWNvcygxMC41KSk7ICAvLyBOU0RpY3Rpb25hcnksIHNlZSBrZXlzIGJlbG93CiAgICAg IHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVl Y2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJl ZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0 cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3lu dGhlc2l6ZXIuaDo2NDoxNTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJl Y2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRo ZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z XQogICA2NCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVj aEN1cnJlbnRWb2ljZVByb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNT dHJpbmcKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVh ZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5 S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0 eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQcm9wZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMv TlNTcGVlY2hTeW50aGVzaXplci5oOjY1OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtl eScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFW U3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1k ZWNsYXJhdGlvbnNdCiAgIDY1IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNv bnN0IE5TU3BlZWNoQ29tbWFuZERlbGltaXRlclByb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3Mo MTAuNSkpOyAgLy8gTlNEaWN0aW9uYXJ5LCBzZWUga2V5cyBiZWxvdwogICAgICB8ICAgICAgICAg ICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv cm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJy YXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6 ZXIuaDo1MToyMDogbm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0 bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1Nw ZWVjaFByb3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6 NjY6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJz dCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBB VkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNjYgfCBB UFBLSVRfRVhURVJOIE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hSZXNldFByb3Bl cnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOwogICAgICB8ICAgICAgICAgICAgICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToy MDogbm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2Vk IGRlcHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3Bl cnR5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6Njc6MTU6IHdh cm5pbmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNh dGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRp b24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNjcgfCBBUFBLSVRfRVhU RVJOIE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hPdXRwdXRUb0ZpbGVVUkxQcm9w ZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TVVJMCiAgICAgIHwgICAgICAg ICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVz aXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGlj aXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5T U3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIu aDoxMjU6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaE1vZGUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91 bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDEyNSB8IEFQUEtJ VF9FWFRFUk4gTlNTcGVlY2hNb2RlIGNvbnN0IE5TU3BlZWNoTW9kZVRleHQgQVBJX0FWQUlMQUJM RShtYWNvcygxMC41KSk7CiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEyMzoyMDogbm90ZTogJ05TU3Bl ZWNoTW9kZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTIz IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoTW9kZSBOU19UWVBFRF9FTlVNOwogICAgICB8 ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNT cGVlY2hTeW50aGVzaXplci5oOjEyNjoxNTogd2FybmluZzogJ05TU3BlZWNoTW9kZScgaXMgZGVw cmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3lu dGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv bnNdCiAgMTI2IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaE1vZGUgY29uc3QgTlNTcGVlY2hNb2Rl UGhvbmVtZSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsKICAgICAgfCAgICAgICAgICAgICAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6 MTIzOjIwOiBub3RlOiAnTlNTcGVlY2hNb2RlJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBk ZXByZWNhdGVkIGhlcmUKICAxMjMgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hNb2RlIE5T X1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5m cmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTI4OjE1OiB3YXJuaW5nOiAn TlNTcGVlY2hNb2RlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0 LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdk ZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxMjggfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoTW9k ZSBjb25zdCBOU1NwZWVjaE1vZGVOb3JtYWwgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7CiAg ICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNT cGVlY2hTeW50aGVzaXplci5oOjEyMzoyMDogbm90ZTogJ05TU3BlZWNoTW9kZScgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTIzIHwgdHlwZWRlZiBOU1N0cmlu ZyAqIE5TU3BlZWNoTW9kZSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5o OjEyOToxNTogd2FybmluZzogJ05TU3BlZWNoTW9kZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVw cmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3Vu ZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTI5IHwgQVBQS0lU X0VYVEVSTiBOU1NwZWVjaE1vZGUgY29uc3QgTlNTcGVlY2hNb2RlTGl0ZXJhbCBBUElfQVZBSUxB QkxFKG1hY29zKDEwLjUpKTsKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5m cmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTIzOjIwOiBub3RlOiAnTlNT cGVlY2hNb2RlJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAx MjMgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hNb2RlIE5TX1RZUEVEX0VOVU07CiAgICAg IHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9O U1NwZWVjaFN5bnRoZXNpemVyLmg6MTMzOjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hTdGF0dXNLZXkn IGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNw ZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVj bGFyYXRpb25zXQogIDEzMyB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hTdGF0dXNLZXkgY29uc3Qg TlNTcGVlY2hTdGF0dXNPdXRwdXRCdXN5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8g TlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsv SGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTMyOjIwOiBub3RlOiAnTlNTcGVlY2hTdGF0 dXNLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDEzMiB8 IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFN0YXR1c0tleSBOU19UWVBFRF9FTlVNOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMv TlNTcGVlY2hTeW50aGVzaXplci5oOjEzNDoxNTogd2FybmluZzogJ05TU3BlZWNoU3RhdHVzS2V5 JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZT cGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRl Y2xhcmF0aW9uc10KICAxMzQgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoU3RhdHVzS2V5IGNvbnN0 IE5TU3BlZWNoU3RhdHVzT3V0cHV0UGF1c2VkIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAg Ly8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdv cmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTMyOjIwOiBub3RlOiAnTlNTcGVlY2hT dGF0dXNLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDEz MiB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFN0YXR1c0tleSBOU19UWVBFRF9FTlVNOwog ICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRl cnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzNToxNTogd2FybmluZzogJ05TU3BlZWNoU3RhdHVz S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2Ug QVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVk LWRlY2xhcmF0aW9uc10KICAxMzUgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoU3RhdHVzS2V5IGNv bnN0IE5TU3BlZWNoU3RhdHVzTnVtYmVyT2ZDaGFyYWN0ZXJzTGVmdCBBUElfQVZBSUxBQkxFKG1h Y29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzMjoyMDogbm90 ZTogJ05TU3BlZWNoU3RhdHVzS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNh dGVkIGhlcmUKICAxMzIgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hTdGF0dXNLZXkgTlNf VFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZy YW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzY6MTU6IHdhcm5pbmc6ICdO U1NwZWVjaFN0YXR1c0tleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNP UyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQg Wy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTM2IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVj aFN0YXR1c0tleSBjb25zdCBOU1NwZWVjaFN0YXR1c1Bob25lbWVDb2RlIEFQSV9BVkFJTEFCTEUo bWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTMyOjIwOiBu b3RlOiAnTlNTcGVlY2hTdGF0dXNLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogIDEzMiB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFN0YXR1c0tleSBO U19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQu ZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE0MDoxNTogd2FybmluZzog J05TU3BlZWNoRXJyb3JLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFk IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE0MCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVl Y2hFcnJvcktleSBjb25zdCBOU1NwZWVjaEVycm9yQ291bnQgQVBJX0FWQUlMQUJMRShtYWNvcygx MC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0 LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzk6MjA6IG5vdGU6ICdO U1NwZWVjaEVycm9yS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhl cmUKICAxMzkgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hFcnJvcktleSBOU19UWVBFRF9F TlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3Jr L0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE0MToxNTogd2FybmluZzogJ05TU3BlZWNo RXJyb3JLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAt IFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXQogIDE0MSB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hFcnJvcktl eSBjb25zdCBOU1NwZWVjaEVycm9yT2xkZXN0Q29kZSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUp KTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzOToyMDogbm90ZTogJ05TU3Bl ZWNoRXJyb3JLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQog IDEzOSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaEVycm9yS2V5IE5TX1RZUEVEX0VOVU07 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVh ZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTQyOjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hFcnJv cktleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNl IEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRl ZC1kZWNsYXJhdGlvbnNdCiAgMTQyIHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaEVycm9yS2V5IGNv bnN0IE5TU3BlZWNoRXJyb3JPbGRlc3RDaGFyYWN0ZXJPZmZzZXQgQVBJX0FWQUlMQUJMRShtYWNv cygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw S2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzk6MjA6IG5vdGU6 ICdOU1NwZWVjaEVycm9yS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVk IGhlcmUKICAxMzkgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hFcnJvcktleSBOU19UWVBF RF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3 b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE0MzoxNTogd2FybmluZzogJ05TU3Bl ZWNoRXJyb3JLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQu MCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2Rl cHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE0MyB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hFcnJv cktleSBjb25zdCBOU1NwZWVjaEVycm9yTmV3ZXN0Q29kZSBBUElfQVZBSUxBQkxFKG1hY29zKDEw LjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQu ZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzOToyMDogbm90ZTogJ05T U3BlZWNoRXJyb3JLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVy ZQogIDEzOSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaEVycm9yS2V5IE5TX1RZUEVEX0VO VU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsv SGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTQ0OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hF cnJvcktleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0g VXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVj YXRlZC1kZWNsYXJhdGlvbnNdCiAgMTQ0IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaEVycm9yS2V5 IGNvbnN0IE5TU3BlZWNoRXJyb3JOZXdlc3RDaGFyYWN0ZXJPZmZzZXQgQVBJX0FWQUlMQUJMRSht YWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzk6MjA6IG5v dGU6ICdOU1NwZWVjaEVycm9yS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNh dGVkIGhlcmUKICAxMzkgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hFcnJvcktleSBOU19U WVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE0ODoxNTogd2FybmluZzogJ05T U3BlZWNoU3ludGhlc2l6ZXJJbmZvS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVk IGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24g aW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNDggfCBBUFBLSVRfRVhURVJO IE5TU3BlZWNoU3ludGhlc2l6ZXJJbmZvS2V5IGNvbnN0IE5TU3BlZWNoU3ludGhlc2l6ZXJJbmZv SWRlbnRpZmllciBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TU3RyaW5nCiAgICAg IHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVl Y2hTeW50aGVzaXplci5oOjE0NzoyMDogbm90ZTogJ05TU3BlZWNoU3ludGhlc2l6ZXJJbmZvS2V5 JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAxNDcgfCB0eXBl ZGVmIE5TU3RyaW5nICogTlNTcGVlY2hTeW50aGVzaXplckluZm9LZXkgTlNfVFlQRURfRU5VTTsK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250 ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9N YWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFk ZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNDk6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFN5bnRo ZXNpemVySW5mb0tleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAx NC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTQ5IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFN5 bnRoZXNpemVySW5mb0tleSBjb25zdCBOU1NwZWVjaFN5bnRoZXNpemVySW5mb1ZlcnNpb24gQVBJ X0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1N0cmluZwogICAgICB8ICAgICAgICAgICAg ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIu aDoxNDc6MjA6IG5vdGU6ICdOU1NwZWVjaFN5bnRoZXNpemVySW5mb0tleScgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTQ3IHwgdHlwZWRlZiBOU1N0cmluZyAq IE5TU3BlZWNoU3ludGhlc2l6ZXJJbmZvS2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5 bnRoZXNpemVyLmg6MTUzOjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQaG9uZW1lSW5mb0tleScgaXMg ZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNo U3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAgMTUzIHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFBob25lbWVJbmZvS2V5IGNvbnN0 IE5TU3BlZWNoUGhvbmVtZUluZm9PcGNvZGUgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAv LyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29y ay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNTI6MjA6IG5vdGU6ICdOU1NwZWVjaFBo b25lbWVJbmZvS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUK ICAxNTIgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQaG9uZW1lSW5mb0tleSBOU19UWVBF RF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3 b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE1NDoxNTogd2FybmluZzogJ05TU3Bl ZWNoUGhvbmVtZUluZm9LZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFk IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE1NCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVl Y2hQaG9uZW1lSW5mb0tleSBjb25zdCBOU1NwZWVjaFBob25lbWVJbmZvU3ltYm9sIEFQSV9BVkFJ TEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJpbmcKICAgICAgfCAgICAgICAgICAgICAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTUy OjIwOiBub3RlOiAnTlNTcGVlY2hQaG9uZW1lSW5mb0tleScgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTUyIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNo UGhvbmVtZUluZm9LZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDox NTU6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFBob25lbWVJbmZvS2V5JyBpcyBkZXByZWNhdGVkOiBm aXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBp biBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNTUg fCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUGhvbmVtZUluZm9LZXkgY29uc3QgTlNTcGVlY2hQaG9u ZW1lSW5mb0V4YW1wbGUgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1N0cmluZwog ICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E ZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gu c2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05T U3BlZWNoU3ludGhlc2l6ZXIuaDoxNTI6MjA6IG5vdGU6ICdOU1NwZWVjaFBob25lbWVJbmZvS2V5 JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAxNTIgfCB0eXBl ZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQaG9uZW1lSW5mb0tleSBOU19UWVBFRF9FTlVNOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMv TlNTcGVlY2hTeW50aGVzaXplci5oOjE1NjoxNTogd2FybmluZzogJ05TU3BlZWNoUGhvbmVtZUlu Zm9LZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVz ZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0 ZWQtZGVjbGFyYXRpb25zXQogIDE1NiB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQaG9uZW1lSW5m b0tleSBjb25zdCBOU1NwZWVjaFBob25lbWVJbmZvSGlsaXRlU3RhcnQgQVBJX0FWQUlMQUJMRSht YWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNTI6MjA6IG5v dGU6ICdOU1NwZWVjaFBob25lbWVJbmZvS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBk ZXByZWNhdGVkIGhlcmUKICAxNTIgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQaG9uZW1l SW5mb0tleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE1NzoxNTog d2FybmluZzogJ05TU3BlZWNoUGhvbmVtZUluZm9LZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91 bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE1NyB8IEFQUEtJ VF9FWFRFUk4gTlNTcGVlY2hQaG9uZW1lSW5mb0tleSBjb25zdCBOU1NwZWVjaFBob25lbWVJbmZv SGlsaXRlRW5kIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAg fCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVj aFN5bnRoZXNpemVyLmg6MTUyOjIwOiBub3RlOiAnTlNTcGVlY2hQaG9uZW1lSW5mb0tleScgaGFz IGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTUyIHwgdHlwZWRlZiBO U1N0cmluZyAqIE5TU3BlZWNoUGhvbmVtZUluZm9LZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3Bl ZWNoU3ludGhlc2l6ZXIuaDoxNjE6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaENvbW1hbmREZWxpbWl0 ZXJLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVz ZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0 ZWQtZGVjbGFyYXRpb25zXQogIDE2MSB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hDb21tYW5kRGVs aW1pdGVyS2V5IGNvbnN0IE5TU3BlZWNoQ29tbWFuZFByZWZpeCBBUElfQVZBSUxBQkxFKG1hY29z KDEwLjUpKTsgIC8vIE5TU3RyaW5nCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBL aXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE2MDoyMDogbm90ZTog J05TU3BlZWNoQ29tbWFuZERlbGltaXRlcktleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQg ZGVwcmVjYXRlZCBoZXJlCiAgMTYwIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoQ29tbWFu ZERlbGltaXRlcktleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE2 MjoxNTogd2FybmluZzogJ05TU3BlZWNoQ29tbWFuZERlbGltaXRlcktleScgaXMgZGVwcmVjYXRl ZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6 ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAg MTYyIHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaENvbW1hbmREZWxpbWl0ZXJLZXkgY29uc3QgTlNT cGVlY2hDb21tYW5kU3VmZml4IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJp bmcKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVy cy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTYwOjIwOiBub3RlOiAnTlNTcGVlY2hDb21tYW5kRGVs aW1pdGVyS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAx NjAgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hDb21tYW5kRGVsaW1pdGVyS2V5IE5TX1RZ UEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KMTE3IHdhcm5pbmdzIGdlbmVy YXRlZC4KY29uZmlndXJlOjE1OTc3OiAkPyA9IDAKY29uZmlndXJlOjE1OTc3OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MTU5OTE6IGNoZWNraW5nIGZvciBNYWMgT1MgWCAxMC42IG9yIG5ld2VyCmNv bmZpZ3VyZToxNjAxMjogY2xhbmcgLWMgLVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2Vk LXJlc3VsdCAtZyAtRiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MgLVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVu dW0gLVduby1taXNzaW5nLW1ldGhvZC1yZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAt V25vLXN0cmljdC1wcm90b3R5cGVzIC1Xbm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHkt Y29tcGxldGVuZXNzIC1PIC14IG9iamVjdGl2ZS1jICAgICAteCBvYmplY3RpdmUtYyAgY29uZnRl c3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Nzg6CkluIGZpbGUgaW5j bHVkZWQgZnJvbSAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL0FwcEtpdC5oOjEwOgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrL0hlYWRlcnMv Rm91bmRhdGlvbi5oOjk0OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29k ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxv cGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24u ZnJhbWV3b3JrL0hlYWRlcnMvTlNVUkxFcnJvci5oOjE1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvSGVhZGVycy9Db3JlU2VydmljZXMuaDoyMzoK SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvQUUuZnJhbWV3b3JrL0hlYWRlcnMvQUUuaDoyMDoKSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFt ZXdvcmsvSGVhZGVycy9DYXJib25Db3JlLmg6Mzk6Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtz L01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3 b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQuaDo4Mzc6 Mzogd2FybmluZzogJ1NjcmlwdFRva2VuVHlwZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxMy4wIC0gRGVwcmVjYXRlZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KICA4MzcgfCAgIFNjcmlwdFRva2VuVHlwZSAgICAgdGhlVG9rZW47CiAgICAgIHwgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdv cmsvSGVhZGVycy9TY3JpcHQuaDo4MzM6NDE6IG5vdGU6ICdTY3JpcHRUb2tlblR5cGUnIGhhcyBi ZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDgzMyB8IHR5cGVkZWYgc2hv cnQgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JpcHRUb2tlblR5cGUgQVBJX0RFUFJFQ0FU RUQoICJEZXByZWNhdGVkIiwgbWFjb3MoMTAuMCwxMy4wKSk7OwogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtz L01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3 b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQuaDo4NTc6 Mzogd2FybmluZzogJ1NjcmlwdFRva2VuVHlwZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxMy4wIC0gRGVwcmVjYXRlZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KICA4NTcgfCAgIFNjcmlwdFRva2VuVHlwZSAgICAgbGVmdERlbGltc1syXTsKICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZy YW1ld29yay9IZWFkZXJzL1NjcmlwdC5oOjgzMzo0MTogbm90ZTogJ1NjcmlwdFRva2VuVHlwZScg aGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODMzIHwgdHlwZWRl ZiBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdFRva2VuVHlwZSBBUElfREVQ UkVDQVRFRCggIkRlcHJlY2F0ZWQiLCBtYWNvcygxMC4wLDEzLjApKTs7CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5m cmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1NjcmlwdC5o Ojg1ODozOiB3YXJuaW5nOiAnU2NyaXB0VG9rZW5UeXBlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBk ZXByZWNhdGVkIGluIG1hY09TIDEzLjAgLSBEZXByZWNhdGVkIFstV2RlcHJlY2F0ZWQtZGVjbGFy YXRpb25zXQogIDg1OCB8ICAgU2NyaXB0VG9rZW5UeXBlICAgICByaWdodERlbGltc1syXTsKICAg ICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25D b3JlLmZyYW1ld29yay9IZWFkZXJzL1NjcmlwdC5oOjgzMzo0MTogbm90ZTogJ1NjcmlwdFRva2Vu VHlwZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgODMzIHwg dHlwZWRlZiBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdFRva2VuVHlwZSBB UElfREVQUkVDQVRFRCggIkRlcHJlY2F0ZWQiLCBtYWNvcygxMC4wLDEzLjApKTs7CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2 aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1Nj cmlwdC5oOjg1OTozOiB3YXJuaW5nOiAnU2NyaXB0VG9rZW5UeXBlJyBpcyBkZXByZWNhdGVkOiBm aXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEzLjAgLSBEZXByZWNhdGVkIFstV2RlcHJlY2F0ZWQt ZGVjbGFyYXRpb25zXQogIDg1OSB8ICAgU2NyaXB0VG9rZW5UeXBlICAgICBsZWZ0Q29tbWVudFs0 XTsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9D YXJib25Db3JlLmZyYW1ld29yay9IZWFkZXJzL1NjcmlwdC5oOjgzMzo0MTogbm90ZTogJ1Njcmlw dFRva2VuVHlwZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAg ODMzIHwgdHlwZWRlZiBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdFRva2Vu VHlwZSBBUElfREVQUkVDQVRFRCggIkRlcHJlY2F0ZWQiLCBtYWNvcygxMC4wLDEzLjApKTs7CiAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0 aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZv cm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Nv cmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9DYXJib25Db3JlLmZyYW1ld29yay9IZWFk ZXJzL1NjcmlwdC5oOjg2MDozOiB3YXJuaW5nOiAnU2NyaXB0VG9rZW5UeXBlJyBpcyBkZXByZWNh dGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEzLjAgLSBEZXByZWNhdGVkIFstV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXQogIDg2MCB8ICAgU2NyaXB0VG9rZW5UeXBlICAgICByaWdodENv bW1lbnRbNF07CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvSGVhZGVycy9TY3JpcHQuaDo4MzM6NDE6IG5vdGU6 ICdTY3JpcHRUb2tlblR5cGUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQg aGVyZQogIDgzMyB8IHR5cGVkZWYgc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3Jp cHRUb2tlblR5cGUgQVBJX0RFUFJFQ0FURUQoICJEZXByZWNhdGVkIiwgbWFjb3MoMTAuMCwxMy4w KSk7OwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdv cmsvSGVhZGVycy9TY3JpcHQuaDo4NjE6Mzogd2FybmluZzogJ1NjcmlwdFRva2VuVHlwZScgaXMg ZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMy4wIC0gRGVwcmVjYXRlZCBb LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA4NjEgfCAgIFNjcmlwdFRva2VuVHlwZSAgICAg ZXNjYXBlQ29kZTsgICAgICAgICAgICAgLyplc2NhcGUgc3ltYm9sIGNvZGUqLwogICAgICB8ICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL0NhcmJvbkNvcmUuZnJh bWV3b3JrL0hlYWRlcnMvU2NyaXB0Lmg6ODMzOjQxOiBub3RlOiAnU2NyaXB0VG9rZW5UeXBlJyBo YXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4MzMgfCB0eXBlZGVm IHNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0VG9rZW5UeXBlIEFQSV9ERVBS RUNBVEVEKCAiRGVwcmVjYXRlZCIsIG1hY29zKDEwLjAsMTMuMCkpOzsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZy YW1ld29yay9GcmFtZXdvcmtzL0NhcmJvbkNvcmUuZnJhbWV3b3JrL0hlYWRlcnMvU2NyaXB0Lmg6 ODYyOjM6IHdhcm5pbmc6ICdTY3JpcHRUb2tlblR5cGUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTMuMCAtIERlcHJlY2F0ZWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAgODYyIHwgICBTY3JpcHRUb2tlblR5cGUgICAgIGRlY2ltYWxDb2RlOwogICAgICB8 ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL0NhcmJvbkNvcmUu ZnJhbWV3b3JrL0hlYWRlcnMvU2NyaXB0Lmg6ODMzOjQxOiBub3RlOiAnU2NyaXB0VG9rZW5UeXBl JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4MzMgfCB0eXBl ZGVmIHNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0VG9rZW5UeXBlIEFQSV9E RVBSRUNBVEVEKCAiRGVwcmVjYXRlZCIsIG1hY29zKDEwLjAsMTMuMCkpOzsKICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gY29uZnRlc3QuYzo3ODoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvQXBwS2l0Lmg6MTU6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TQWNjZXNzaWJpbGl0eUNvbG9yLmg6OToKSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNDb2xvci5o OjQ2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVy cy9OU0FwcGxpY2F0aW9uLmg6MTA6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0 LmZyYW1ld29yay9IZWFkZXJzL05TUmVzcG9uZGVyLmg6MTA6CkluIGZpbGUgaW5jbHVkZWQgZnJv bSAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TRXZlbnQuaDoxMDoKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q bGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVt L0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9IZWFkZXJz L0FwcGxpY2F0aW9uU2VydmljZXMuaDo0MzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL0hJU2VydmljZXMuZnJhbWV3 b3JrL0hlYWRlcnMvSElTZXJ2aWNlcy5oOjI2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvSElTZXJ2aWNlcy5mcmFt ZXdvcmsvSGVhZGVycy9ISVNoYXBlLmg6MjI6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9RdWlja2RyYXcuaDozMToKL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQ3 NTozOiB3YXJuaW5nOiAnQ01EYXRlVGltZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRl ZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDQ3NSB8ICAgQ01E YXRlVGltZSAgICAgICAgICBkYXRlVGltZTsgICAgICAgICAgICAgICAvKiBkYXRlIGFuZCB0aW1l IG9mIHByb2ZpbGUgY3JlYXRpb24gKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy dmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5j RGVwcmVjYXRlZC5oOjQyNDozOiBub3RlOiAnQ01EYXRlVGltZScgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDI0IHwgfSBDTURhdGVUaW1lIERFUFJFQ0FURURf SU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0 aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZv cm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRl cnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQ4MzozOiB3YXJuaW5nOiAnQ01GaXhlZFhZWkNvbG9y JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVj YXRlZC1kZWNsYXJhdGlvbnNdCiAgNDgzIHwgICBDTUZpeGVkWFlaQ29sb3IgICAgIHdoaXRlOyAg ICAgICAgICAgICAgICAgIC8qIHByb2ZpbGUgaWxsdW1pbmFudCAqLwogICAgICB8ICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsv SGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDM1OjM6IG5vdGU6ICdDTUZpeGVkWFlaQ29s b3InIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQzNSB8IH0g Q01GaXhlZFhZWkNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9M QVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0Zy YW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQ5NToz OiB3YXJuaW5nOiAnQ01EYXRlVGltZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBp biBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDQ5NSB8ICAgQ01EYXRl VGltZSAgICAgICAgICBkYXRlVGltZTsgICAgICAgICAgICAgICAvKiBkYXRlIGFuZCB0aW1lIG9m IHByb2ZpbGUgY3JlYXRpb24gKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjQyNDozOiBub3RlOiAnQ01EYXRlVGltZScgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDI0IHwgfSBDTURhdGVUaW1lIERFUFJFQ0FURURfSU5f TUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjUwMzozOiB3YXJuaW5nOiAnQ01GaXhlZFhZWkNvbG9yJyBp cyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRl ZC1kZWNsYXJhdGlvbnNdCiAgNTAzIHwgICBDTUZpeGVkWFlaQ29sb3IgICAgIHdoaXRlOyAgICAg ICAgICAgICAgICAgIC8qIHByb2ZpbGUgaWxsdW1pbmFudCAqLwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDM1OjM6IG5vdGU6ICdDTUZpeGVkWFlaQ29sb3In IGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQzNSB8IH0gQ01G aXhlZFhZWkNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRF UjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjUwNTozOiB3 YXJuaW5nOiAnQ01Qcm9maWxlTUQ1JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNTA1IHwgICBDTVByb2Zp bGVNRDUgICAgICAgIGRpZ2VzdDsgICAgICAgICAgICAgICAgIC8qIFByb2ZpbGUgbWVzc2FnZSBk aWdlc3QgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjQ0 ODo0MTogbm90ZTogJ0NNUHJvZmlsZU1ENScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVw cmVjYXRlZCBoZXJlCiAgNDQ4IHwgdHlwZWRlZiB1bnNpZ25lZCBjaGFyICAgICAgICAgICAgICAg ICAgIENNUHJvZmlsZU1ENVsxNl0gREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZf QU5EX0xBVEVSOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo1MTc6Mzogd2FybmluZzogJ0NN VGFnUmVjb3JkJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYg Wy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNTE3IHwgICBDTVRhZ1JlY29yZCAgICAgICAg IHRhZ0xpc3RbMV07ICAgICAgICAgICAgIC8qIHZhcmlhYmxlIHNpemUsIGRldGVybWluZWQgYnkg Y291bnQgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjUx MzozOiBub3RlOiAnQ01UYWdSZWNvcmQnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogIDUxMyB8IH0gQ01UYWdSZWNvcmQgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9W RVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2 aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNE ZXByZWNhdGVkLmg6NTIxOjM6IHdhcm5pbmc6ICdDTTJIZWFkZXInIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10K ICA1MjEgfCAgIENNMkhlYWRlciAgICAgICAgICAgaGVhZGVyOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDg2OjM6IG5vdGU6ICdDTTJIZWFkZXInIGhhcyBi ZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDQ4NiB8IH0gQ00ySGVhZGVy IERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjUyMjozOiB3YXJuaW5nOiAnQ01U YWdFbGVtVGFibGUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAu NiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA1MjIgfCAgIENNVGFnRWxlbVRhYmxlICAg ICAgdGFnVGFibGU7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l d29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQu aDo1MTg6Mzogbm90ZTogJ0NNVGFnRWxlbVRhYmxlJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKICA1MTggfCB9IENNVGFnRWxlbVRhYmxlIERFUFJFQ0FURURfSU5f TUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjU1MDozOiB3YXJuaW5nOiAnQ01EYXRlVGltZScgaXMgZGVw cmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVj bGFyYXRpb25zXQogIDU1MCB8ICAgQ01EYXRlVGltZSAgICAgICAgICBkYXRlVGltZTsgICAgICAg ICAgICAgICAvKiAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFt ZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVk Lmg6NDI0OjM6IG5vdGU6ICdDTURhdGVUaW1lJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBk ZXByZWNhdGVkIGhlcmUKICA0MjQgfCB9IENNRGF0ZVRpbWUgREVQUkVDQVRFRF9JTl9NQUNfT1Nf WF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6NjE4OjM6IHdhcm5pbmc6ICdDTUZpeGVkWFlaQ29sb3InIGlzIGRlcHJl Y2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xh cmF0aW9uc10KICA2MTggfCAgIENNRml4ZWRYWVpDb2xvciAgICAgYmFja2luZ1hZWjsgICAgICAg ICAgICAgLyogYWJzb2x1dGUgWFlaIHZhbHVlcyBvZiBiYWNraW5nICovCiAgICAgIHwgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29y ay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0MzU6Mzogbm90ZTogJ0NNRml4ZWRYWVpD b2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDM1IHwg fSBDTUZpeGVkWFlaQ29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5E X0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NjYy OjM6IHdhcm5pbmc6ICdDTUZpeGVkWFlDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDY2MiB8ICAg Q01GaXhlZFhZQ29sb3IgICAgICByZWRQaG9zcGhvcjsgICAgICAgICAgICAvKiBQaG9zcGhvcnMg LSBuYXRpdmUgY3JvbWF0aWNpdHkgdmFsdWVzIG9mIHRoZSBkaXNwbGF5ICAqLwogICAgICB8ICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFt ZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDI5OjM6IG5vdGU6ICdDTUZpeGVk WFlDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDI5 IHwgfSBDTUZpeGVkWFlDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9B TkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29y ay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo2 NjM6Mzogd2FybmluZzogJ0NNRml4ZWRYWUNvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXBy ZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNjYzIHwg ICBDTUZpeGVkWFlDb2xvciAgICAgIGdyZWVuUGhvc3Bob3I7CiAgICAgIHwgICBeCi9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFk ZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0Mjk6Mzogbm90ZTogJ0NNRml4ZWRYWUNvbG9yJyBo YXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA0MjkgfCB9IENNRml4 ZWRYWUNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsK ICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs YXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0v TGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29y a3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjY2NDozOiB3YXJu aW5nOiAnQ01GaXhlZFhZQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4g bWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICA2NjQgfCAgIENNRml4ZWRY WUNvbG9yICAgICAgYmx1ZVBob3NwaG9yOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6NDI5OjM6IG5vdGU6ICdDTUZpeGVkWFlDb2xvcicgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDI5IHwgfSBDTUZpeGVkWFlDb2xvciBE RVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1l d29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo2NjU6Mzogd2FybmluZzogJ0NNRml4 ZWRYWUNvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYg Wy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgNjY1IHwgICBDTUZpeGVkWFlDb2xvciAgICAg IHdoaXRlUG9pbnQ7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l d29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQu aDo0Mjk6Mzogbm90ZTogJ0NNRml4ZWRYWUNvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKICA0MjkgfCB9IENNRml4ZWRYWUNvbG9yIERFUFJFQ0FURURfSU5f TUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjY4MTozOiB3YXJuaW5nOiAnQ01OYXRpdmVEaXNwbGF5SW5m bycgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXQogIDY4MSB8ICAgQ01OYXRpdmVEaXNwbGF5SW5mbyBuYXRpdmVE aXNwbGF5SW5mbzsgICAgICAvKiBkYXRhIG9mIHR5cGUgQ01OYXRpdmVEaXNwbGF5SW5mbyAqLwog ICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jr cy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6Njc2OjM6IG5vdGU6 ICdDTU5hdGl2ZURpc3BsYXlJbmZvJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNh dGVkIGhlcmUKICA2NzYgfCB9IENNTmF0aXZlRGlzcGxheUluZm8gREVQUkVDQVRFRF9JTl9NQUNf T1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp b25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xv clN5bmNEZXByZWNhdGVkLmg6NzM0OjM6IHdhcm5pbmc6ICdDTVNjcmVlbmluZ0NoYW5uZWxSZWMn IGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNh dGVkLWRlY2xhcmF0aW9uc10KICA3MzQgfCAgIENNU2NyZWVuaW5nQ2hhbm5lbFJlYyAgY2hhbm5l bEluZm9bMV07ICAgICAgLyogdmFyaWFibGUgc2l6ZSwgZGV0ZXJtaW5lZCBieSBjaGFubmVsQ291 bnQgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0Zy YW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjcyNzoz OiBub3RlOiAnQ01TY3JlZW5pbmdDaGFubmVsUmVjJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKICA3MjcgfCB9IENNU2NyZWVuaW5nQ2hhbm5lbFJlYyBERVBSRUNB VEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9I ZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo3ODI6Mzogd2FybmluZzogJ0NNRml4ZWRYWVpD b2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2Rl cHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDc4MiB8ICAgQ01GaXhlZFhZWkNvbG9yICAgICBpbGx1 bWluYW50OyAgICAgICAgICAgICAvKiBhYnNvbHV0ZSBYWVpzIG9mIGlsbHVtaW5hbnQgIGluIGNk L21eMiAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6NDM1 OjM6IG5vdGU6ICdDTUZpeGVkWFlaQ29sb3InIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogIDQzNSB8IH0gQ01GaXhlZFhZWkNvbG9yIERFUFJFQ0FURURfSU5fTUFD X09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0 aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29s b3JTeW5jRGVwcmVjYXRlZC5oOjc4MzozOiB3YXJuaW5nOiAnQ01GaXhlZFhZWkNvbG9yJyBpcyBk ZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1k ZWNsYXJhdGlvbnNdCiAgNzgzIHwgICBDTUZpeGVkWFlaQ29sb3IgICAgIHN1cnJvdW5kOyAgICAg ICAgICAgICAgIC8qIGFic29sdXRlIFhZWnMgb2Ygc3Vycm91bmQgaW4gY2QvbV4yICovCiAgICAg IHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y bXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJh cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FE LmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0MzU6Mzogbm90ZTogJ0NN Rml4ZWRYWVpDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJl CiAgNDM1IHwgfSBDTUZpeGVkWFlaQ29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9O XzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250 ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9N YWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5m cmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNh dGVkLmg6NzkwOjM6IHdhcm5pbmc6ICdDTUZpeGVkWFlaQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10K ICA3OTAgfCAgIENNRml4ZWRYWVpDb2xvciAgICAgWFlaWzFdOyAgICAgICAgICAgICAgICAgLyog dmFyaWFibGUgc2l6ZSwgZGV0ZXJtaW5lZCBieSB0YWcgZWxlbWVudCBzaXplICovCiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo0MzU6Mzogbm90ZTogJ0NNRml4 ZWRYWVpDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAg NDM1IHwgfSBDTUZpeGVkWFlaQ29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEw XzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFt ZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVk Lmg6ODI5OjM6IHdhcm5pbmc6ICdDTUludGVudENSRFZNU2l6ZScgaXMgZGVwcmVjYXRlZDogZmly c3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog IDgyOSB8ICAgQ01JbnRlbnRDUkRWTVNpemUgICBpbnRlbnRDUkRbMV07ICAgICAgICAgICAvKiB2 YXJpYWJsZSBzaXplLCBkZXRlcm1pbmVkIGJ5IGNvdW50ICovCiAgICAgIHwgICBeCi9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFk ZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo4MjM6Mzogbm90ZTogJ0NNSW50ZW50Q1JEVk1TaXpl JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA4MjMgfCB9IENN SW50ZW50Q1JEVk1TaXplIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9M QVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0Zy YW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjg2MDo1 OiB3YXJuaW5nOiAnQ01WaWRlb0NhcmRHYW1tYVRhYmxlJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBk ZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgODYw IHwgICAgIENNVmlkZW9DYXJkR2FtbWFUYWJsZSAgICB0YWJsZTsKICAgICAgfCAgICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsv SGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6ODQzOjM6IG5vdGU6ICdDTVZpZGVvQ2FyZEdh bW1hVGFibGUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDg0 MyB8IH0gQ01WaWRlb0NhcmRHYW1tYVRhYmxlIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lP Tl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu ZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVj YXRlZC5oOjg2MTo1OiB3YXJuaW5nOiAnQ01WaWRlb0NhcmRHYW1tYUZvcm11bGEnIGlzIGRlcHJl Y2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xh cmF0aW9uc10KICA4NjEgfCAgICAgQ01WaWRlb0NhcmRHYW1tYUZvcm11bGEgIGZvcm11bGE7CiAg ICAgIHwgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs YXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0v TGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29y a3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjg1NTozOiBub3Rl OiAnQ01WaWRlb0NhcmRHYW1tYUZvcm11bGEnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogIDg1NSB8IH0gQ01WaWRlb0NhcmRHYW1tYUZvcm11bGEgREVQUkVDQVRF RF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6ODY4OjM6IHdhcm5pbmc6ICdDTVZpZGVvQ2FyZEdh bW1hJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVw cmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgODY4IHwgICBDTVZpZGVvQ2FyZEdhbW1hICAgIGdhbW1h OwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3 b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6ODYzOjM6IG5v dGU6ICdDTVZpZGVvQ2FyZEdhbW1hJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNh dGVkIGhlcmUKICA4NjMgfCB9IENNVmlkZW9DYXJkR2FtbWEgREVQUkVDQVRFRF9JTl9NQUNfT1Nf WF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6ODg1OjM6IHdhcm5pbmc6ICdDTU1ha2VBbmRNb2RlbCcgaXMgZGVwcmVj YXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFy YXRpb25zXQogIDg4NSB8ICAgQ01NYWtlQW5kTW9kZWwgICAgICBtYWtlQW5kTW9kZWw7CiAgICAg IHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y bXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJh cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FE LmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDo4ODA6Mzogbm90ZTogJ0NN TWFrZUFuZE1vZGVsJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUK ICA4ODAgfCB9IENNTWFrZUFuZE1vZGVsIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8x MF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJh bWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRl ZC5oOjExODc6Mzogd2FybmluZzogJ0NNMkhlYWRlcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVw cmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTE4NyB8 ICAgQ00ySGVhZGVyICAgICAgICAgICBjbTI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlv blNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9y U3luY0RlcHJlY2F0ZWQuaDo0ODY6Mzogbm90ZTogJ0NNMkhlYWRlcicgaGFzIGJlZW4gZXhwbGlj aXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgNDg2IHwgfSBDTTJIZWFkZXIgREVQUkVDQVRF RF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTE4ODozOiB3YXJuaW5nOiAnQ000SGVhZGVyJyBp cyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRl ZC1kZWNsYXJhdGlvbnNdCiAxMTg4IHwgICBDTTRIZWFkZXIgICAgICAgICAgIGNtNDsKICAgICAg fCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQu ZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjUwNzozOiBub3RlOiAnQ000 SGVhZGVyJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA1MDcg fCB9IENNNEhlYWRlciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFU RVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFt ZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMTk2OjM6 IHdhcm5pbmc6ICdDTVByb2ZpbGVSZWYnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDExOTYgfCAgIENNUHJv ZmlsZVJlZiAgICAgICAgcHJvZmlsZVNldFsxXTsgICAgICAgICAgLyogVmFyaWFibGUuIE9yZGVy ZWQgZnJvbSBTb3VyY2UgLT4gRGVzdCAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6MTAwMDo0MTogbm90ZTogJ0NNUHJvZmlsZVJlZicgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMDAwIHwgdHlwZWRlZiBzdHJ1Y3QgT3Bh cXVlQ01Qcm9maWxlUmVmKiAgICAgIENNUHJvZmlsZVJlZiBERVBSRUNBVEVEX0lOX01BQ19PU19Y X1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0Zy YW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEyMDM6 Mzogd2FybmluZzogJ0NNUHJvZmlsZVJlZicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRl ZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTIwMyB8ICAgQ01Q cm9maWxlUmVmICAgICAgICBwcm9maWxlOyAgICAgICAgICAgICAgICAvKiBwcm9maWxlICovCiAg ICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtz L1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMDAwOjQxOiBub3Rl OiAnQ01Qcm9maWxlUmVmJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhl cmUKIDEwMDAgfCB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDTVByb2ZpbGVSZWYqICAgICAgQ01Qcm9m aWxlUmVmIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVy cy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTIxMTozOiB3YXJuaW5nOiAnTkNNQ29uY2F0UHJvZmls ZVNwZWMnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdk ZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEyMTEgfCAgIE5DTUNvbmNhdFByb2ZpbGVTcGVjICBw cm9maWxlU3BlY3NbMV07ICAgICAgLyogVmFyaWFibGUuIE9yZGVyZWQgZnJvbSBTb3VyY2UgLT4g RGVzdCAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTIw NDozOiBub3RlOiAnTkNNQ29uY2F0UHJvZmlsZVNwZWMnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFy a2VkIGRlcHJlY2F0ZWQgaGVyZQogMTIwNCB8IH0gTkNNQ29uY2F0UHJvZmlsZVNwZWMgREVQUkVD QVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsv SGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMwMjozOiB3YXJuaW5nOiAnQ01SR0JDb2xv cicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXQogMTMwMiB8ICAgQ01SR0JDb2xvciAgICAgICAgICByZ2I7CiAg ICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtz L1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMjMyOjM6IG5vdGU6 ICdDTVJHQkNvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUK IDEyMzIgfCB9IENNUkdCQ29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZf QU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E ZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gu c2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv cmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6 MTMwMzozOiB3YXJuaW5nOiAnQ01IU1ZDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMwMyB8ICAg Q01IU1ZDb2xvciAgICAgICAgICBoc3Y7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUu YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Bl ci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNl cnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3lu Y0RlcHJlY2F0ZWQuaDoxMjU3OjM6IG5vdGU6ICdDTUhTVkNvbG9yJyBoYXMgYmVlbiBleHBsaWNp dGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyNTcgfCB9IENNSFNWQ29sb3IgREVQUkVDQVRF RF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMwNDozOiB3YXJuaW5nOiAnQ01ITFNDb2xvcicg aXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0 ZWQtZGVjbGFyYXRpb25zXQogMTMwNCB8ICAgQ01ITFNDb2xvciAgICAgICAgICBobHM7CiAgICAg IHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y bXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJh cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FE LmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMjUxOjM6IG5vdGU6ICdD TUhMU0NvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEy NTEgfCB9IENNSExTQ29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5E X0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMw NjozOiB3YXJuaW5nOiAnQ01MYWJDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRl ZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMwNiB8ICAgQ01M YWJDb2xvciAgICAgICAgICBMYWI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0Rl cHJlY2F0ZWQuaDoxMjYzOjM6IG5vdGU6ICdDTUxhYkNvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5 IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyNjMgfCB9IENNTGFiQ29sb3IgREVQUkVDQVRFRF9J Tl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVy cy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMwNzozOiB3YXJuaW5nOiAnQ01MdXZDb2xvcicgaXMg ZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQt ZGVjbGFyYXRpb25zXQogMTMwNyB8ICAgQ01MdXZDb2xvciAgICAgICAgICBMdXY7CiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMjY5OjM6IG5vdGU6ICdDTUx1 dkNvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyNjkg fCB9IENNTHV2Q29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xB VEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJh bWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTMwODoz OiB3YXJuaW5nOiAnQ01ZeHlDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBp biBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMwOCB8ICAgQ01ZeHlD b2xvciAgICAgICAgICBZeHk7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtz L01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2Vz LmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJl Y2F0ZWQuaDoxMjc1OjM6IG5vdGU6ICdDTVl4eUNvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1h cmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyNzUgfCB9IENNWXh5Q29sb3IgREVQUkVDQVRFRF9JTl9N QUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9D b2xvclN5bmNEZXByZWNhdGVkLmg6MTMwOTozOiB3YXJuaW5nOiAnQ01DTVlLQ29sb3InIGlzIGRl cHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRl Y2xhcmF0aW9uc10KIDEzMDkgfCAgIENNQ01ZS0NvbG9yICAgICAgICAgY215azsKICAgICAgfCAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJh bWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEyMzk6Mzogbm90ZTogJ0NNQ01Z S0NvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyMzkg fCB9IENNQ01ZS0NvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9M QVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0Zy YW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEzMTA6 Mzogd2FybmluZzogJ0NNQ01ZQ29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDEzMTAgfCAgIENNQ01Z Q29sb3IgICAgICAgICAgY215OwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6MTI0NTozOiBub3RlOiAnQ01DTVlDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjQ1IHwgfSBDTUNNWUNvbG9yIERFUFJFQ0FURURfSU5f TUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjEzMTE6Mzogd2FybmluZzogJ0NNR3JheUNvbG9yJyBpcyBk ZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1k ZWNsYXJhdGlvbnNdCiAxMzExIHwgICBDTUdyYXlDb2xvciAgICAgICAgIGdyYXk7CiAgICAgIHwg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZy YW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMjc5OjM6IG5vdGU6ICdDTUdy YXlDb2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjc5 IHwgfSBDTUdyYXlDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRf TEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9G cmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMzEy OjM6IHdhcm5pbmc6ICdDTU11bHRpY2hhbm5lbDVDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3Qg ZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMx MiB8ICAgQ01NdWx0aWNoYW5uZWw1Q29sb3IgIG1jNTsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjEyODM6Mzogbm90ZTogJ0NNTXVsdGljaGFubmVsNUNvbG9y JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyODMgfCB9IENN TXVsdGljaGFubmVsNUNvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FO RF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEz MTM6Mzogd2FybmluZzogJ0NNTXVsdGljaGFubmVsNkNvbG9yJyBpcyBkZXByZWNhdGVkOiBmaXJz dCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAx MzEzIHwgICBDTU11bHRpY2hhbm5lbDZDb2xvciAgbWM2OwogICAgICB8ICAgXgovQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVy cy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTI4NzozOiBub3RlOiAnQ01NdWx0aWNoYW5uZWw2Q29s b3InIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTI4NyB8IH0g Q01NdWx0aWNoYW5uZWw2Q29sb3IgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZf QU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E ZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gu c2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv cmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6 MTMxNDozOiB3YXJuaW5nOiAnQ01NdWx0aWNoYW5uZWw3Q29sb3InIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10K IDEzMTQgfCAgIENNTXVsdGljaGFubmVsN0NvbG9yICBtYzc7CiAgICAgIHwgICBeCi9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFk ZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxMjkxOjM6IG5vdGU6ICdDTU11bHRpY2hhbm5lbDdD b2xvcicgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxMjkxIHwg fSBDTU11bHRpY2hhbm5lbDdDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBf Nl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz L0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09T WC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l d29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQu aDoxMzE1OjM6IHdhcm5pbmc6ICdDTU11bHRpY2hhbm5lbDhDb2xvcicgaXMgZGVwcmVjYXRlZDog Zmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z XQogMTMxNSB8ICAgQ01NdWx0aWNoYW5uZWw4Q29sb3IgIG1jODsKICAgICAgfCAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hl YWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjEyOTU6Mzogbm90ZTogJ0NNTXVsdGljaGFubmVs OENvbG9yJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyOTUg fCB9IENNTXVsdGljaGFubmVsOENvbG9yIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8x MF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJh bWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRl ZC5oOjEzMTY6Mzogd2FybmluZzogJ0NNTmFtZWRDb2xvcicgaXMgZGVwcmVjYXRlZDogZmlyc3Qg ZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTMx NiB8ICAgQ01OYW1lZENvbG9yICAgICAgICBuYW1lZENvbG9yOwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTI5OTozOiBub3RlOiAnQ01OYW1lZENvbG9yJyBo YXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDEyOTkgfCB9IENNTmFt ZWRDb2xvciBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAg ICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtz L1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxNTE1OjM6IHdhcm5p bmc6ICdDTUJpdG1hcENvbG9yU3BhY2UnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDE1MTUgfCAgIENNQml0 bWFwQ29sb3JTcGFjZSAgc3BhY2U7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0Rl cHJlY2F0ZWQuaDoxNTA3OjQxOiBub3RlOiAnQ01CaXRtYXBDb2xvclNwYWNlJyBoYXMgYmVlbiBl eHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE1MDcgfCB0eXBlZGVmIFVJbnQzMiAg ICAgICAgICAgICAgICAgICAgICAgICAgQ01CaXRtYXBDb2xvclNwYWNlIERFUFJFQ0FURURfSU5f TUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFt ZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVk Lmg6MTU4OTozOiB3YXJuaW5nOiAnQ01IYW5kbGVMb2NhdGlvbicgaXMgZGVwcmVjYXRlZDogZmly c3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog MTU4OSB8ICAgQ01IYW5kbGVMb2NhdGlvbiAgICBoYW5kbGVMb2M7CiAgICAgIHwgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9I ZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxNTU3OjM6IG5vdGU6ICdDTUhhbmRsZUxvY2F0 aW9uJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE1NTcgfCB9 IENNSGFuZGxlTG9jYXRpb24gREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5E X0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTU5 NDozOiB3YXJuaW5nOiAnQ01QYXRoTG9jYXRpb24nIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJl Y2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDE1OTQgfCAg IENNUGF0aExvY2F0aW9uICAgICAgcGF0aExvYzsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0 aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29s b3JTeW5jRGVwcmVjYXRlZC5oOjE1Nzg6Mzogbm90ZTogJ0NNUGF0aExvY2F0aW9uJyBoYXMgYmVl biBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE1NzggfCB9IENNUGF0aExvY2F0 aW9uIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAg fCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQu ZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE1OTU6Mzogd2FybmluZzog J0NNQnVmZmVyTG9jYXRpb24nIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDE1OTUgfCAgIENNQnVmZmVyTG9j YXRpb24gICAgYnVmZmVyTG9jOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6MTU4MzozOiBub3RlOiAnQ01CdWZmZXJMb2NhdGlvbicgaGFzIGJlZW4gZXhwbGlj aXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxNTgzIHwgfSBDTUJ1ZmZlckxvY2F0aW9uIERF UFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3 b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE2MDA6Mzogd2FybmluZzogJ0NNUHJv ZkxvYycgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2Rl cHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTYwMCB8ICAgQ01Qcm9mTG9jICAgICAgICAgICB1Owog ICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jr cy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTU5NjozOiBub3Rl OiAnQ01Qcm9mTG9jJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUK IDE1OTYgfCB9IENNUHJvZkxvYyBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9B TkRfTEFURVI7CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29y ay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDox NjA1OjQyOiB3YXJuaW5nOiAnQ01Qcm9maWxlTG9jYXRpb24nIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0 IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDE2 MDUgfCAgIGNtQ3VycmVudFByb2ZpbGVMb2NhdGlvblNpemUgID0gc2l6ZW9mKENNUHJvZmlsZUxv Y2F0aW9uKQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFt ZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTYwMTozOiBub3RlOiAnQ01Qcm9m aWxlTG9jYXRpb24nIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQog MTYwMSB8IH0gQ01Qcm9maWxlTG9jYXRpb24gREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9O XzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250 ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9N YWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5m cmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNh dGVkLmg6MTYyMDozOiB3YXJuaW5nOiAnQ00ySGVhZGVyJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBk ZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxNjIw IHwgICBDTTJIZWFkZXIgICAgICAgICAgIGhlYWRlcjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjQ4NjozOiBub3RlOiAnQ00ySGVhZGVyJyBoYXMgYmVlbiBl eHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA0ODYgfCB9IENNMkhlYWRlciBERVBS RUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCi9B cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NY LnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3 b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29y ay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxNjIzOjM6IHdhcm5pbmc6ICdDTVByb2Zp bGVMb2NhdGlvbicgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42 IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMTYyMyB8ICAgQ01Qcm9maWxlTG9jYXRpb24g ICBsb2NhdGlvbjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3 b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5o OjE2MDE6Mzogbm90ZTogJ0NNUHJvZmlsZUxvY2F0aW9uJyBoYXMgYmVlbiBleHBsaWNpdGx5IG1h cmtlZCBkZXByZWNhdGVkIGhlcmUKIDE2MDEgfCB9IENNUHJvZmlsZUxvY2F0aW9uIERFUFJFQ0FU RURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hl YWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE2Mjc6Mzogd2FybmluZzogJ0NNTWFrZUFuZE1v ZGVsJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVw cmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAxNjI3IHwgICBDTU1ha2VBbmRNb2RlbCAqICAgIG1ha2VB bmRNb2RlbDsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjg4 MDozOiBub3RlOiAnQ01NYWtlQW5kTW9kZWwnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogIDg4MCB8IH0gQ01NYWtlQW5kTW9kZWwgREVQUkVDQVRFRF9JTl9NQUNf T1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp b25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xv clN5bmNEZXByZWNhdGVkLmg6MTYyODozOiB3YXJuaW5nOiAnQ01Qcm9maWxlTUQ1JyBpcyBkZXBy ZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNs YXJhdGlvbnNdCiAxNjI4IHwgICBDTVByb2ZpbGVNRDUgKiAgICAgIGRpZ2VzdDsgICAgICAgICAg ICAgICAgIC8qIERlcml2ZWQgZnJvbSB0aGUgUlNBIERhdGEgU2VjdXJpdHksIEluYy4gTUQ1IE1l c3NhZ2UtRGlnZXN0IEFsZ29yaXRobSAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6NDQ4OjQxOiBub3RlOiAnQ01Qcm9maWxlTUQ1JyBoYXMgYmVlbiBleHBs aWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICA0NDggfCB0eXBlZGVmIHVuc2lnbmVkIGNo YXIgICAgICAgICAgICAgICAgICAgQ01Qcm9maWxlTUQ1WzE2XSBERVBSRUNBVEVEX0lOX01BQ19P U19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3Jr L0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjE5 OTQ6Mzogd2FybmluZzogJ0NNRGV2aWNlSUQnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0 ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDE5OTQgfCAgIENN RGV2aWNlSUQgICAgICAgICAgZGV2aWNlSUQ7ICAgICAgICAgICAgICAgLyogZGV2aWNlIElEICov CiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q bGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVt L0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdv cmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxOTU5OjQxOiBu b3RlOiAnQ01EZXZpY2VJRCcgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBo ZXJlCiAxOTU5IHwgdHlwZWRlZiBVSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgIENNRGV2 aWNlSUQgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBs aWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJz L0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoxOTk2OjM6IHdhcm5pbmc6ICdDTURldmljZVN0YXRlJyBp cyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRl ZC1kZWNsYXJhdGlvbnNdCiAxOTk2IHwgICBDTURldmljZVN0YXRlICAgICAgIGRldmljZVN0YXRl OyAgICAgICAgICAgIC8qIERldmljZSBTdGF0ZSBmbGFncyAqLwogICAgICB8ICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVh ZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MTk1Mzo0MTogbm90ZTogJ0NNRGV2aWNlU3RhdGUn IGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTk1MyB8IHR5cGVk ZWYgVUludDMyICAgICAgICAgICAgICAgICAgICAgICAgICBDTURldmljZVN0YXRlIERFUFJFQ0FU RURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6MTk5NzozOiB3YXJuaW5nOiAnQ01EZXZpY2VQcm9maWxlSUQnIGlzIGRlcHJlY2F0 ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0 aW9uc10KIDE5OTcgfCAgIENNRGV2aWNlUHJvZmlsZUlEICAgZGVmYXVsdFByb2ZpbGVJRDsgICAg ICAgLyogQ2FuIGNoYW5nZSAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl cy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXBy ZWNhdGVkLmg6MTk2NDo0MTogbm90ZTogJ0NNRGV2aWNlUHJvZmlsZUlEJyBoYXMgYmVlbiBleHBs aWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE5NjQgfCB0eXBlZGVmIFVJbnQzMiAgICAg ICAgICAgICAgICAgICAgICAgICAgQ01EZXZpY2VQcm9maWxlSUQgREVQUkVDQVRFRF9JTl9NQUNf T1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29y ay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0RlcHJlY2F0ZWQuaDoy MDEwOjM6IHdhcm5pbmc6ICdDTURldmljZVByb2ZpbGVJRCcgaXMgZGVwcmVjYXRlZDogZmlyc3Qg ZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogMjAx MCB8ICAgQ01EZXZpY2VQcm9maWxlSUQgICBwcm9maWxlSUQ7ICAgICAgICAgICAgICAvKiBUaGUg aWRlbnRpZmllciBmb3IgdGhpcyBwcm9maWxlICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNh dGlvblNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0Nv bG9yU3luY0RlcHJlY2F0ZWQuaDoxOTY0OjQxOiBub3RlOiAnQ01EZXZpY2VQcm9maWxlSUQnIGhh cyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTk2NCB8IHR5cGVkZWYg VUludDMyICAgICAgICAgICAgICAgICAgICAgICAgICBDTURldmljZVByb2ZpbGVJRCBERVBSRUNB VEVEX0lOX01BQ19PU19YX1ZFUlNJT05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vydmlj ZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVw cmVjYXRlZC5oOjIwMTE6Mzogd2FybmluZzogJ0NNUHJvZmlsZUxvY2F0aW9uJyBpcyBkZXByZWNh dGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAyMDExIHwgICBDTVByb2ZpbGVMb2NhdGlvbiAgIHByb2ZpbGVMb2M7ICAgICAgICAg ICAgIC8qIFRoZSBwcm9maWxlJ3MgbG9jYXRpb24gKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxp Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMv Q29sb3JTeW5jRGVwcmVjYXRlZC5oOjE2MDE6Mzogbm90ZTogJ0NNUHJvZmlsZUxvY2F0aW9uJyBo YXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKIDE2MDEgfCB9IENNUHJv ZmlsZUxvY2F0aW9uIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRF UjsKICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1l d29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjIwMTg6Mzog d2FybmluZzogJ0NNRGV2aWNlUHJvZmlsZUlEJyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNh dGVkIGluIG1hY09TIDEwLjYgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAyMDE4IHwgICBD TURldmljZVByb2ZpbGVJRCAgIHByb2ZpbGVJRDsgICAgICAgICAgICAgIC8qIFRoZSBpZGVudGlm aWVyIGZvciB0aGlzIHByb2ZpbGUgKi8KICAgICAgfCAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy dmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL0hlYWRlcnMvQ29sb3JTeW5j RGVwcmVjYXRlZC5oOjE5NjQ6NDE6IG5vdGU6ICdDTURldmljZVByb2ZpbGVJRCcgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAxOTY0IHwgdHlwZWRlZiBVSW50MzIg ICAgICAgICAgICAgICAgICAgICAgICAgIENNRGV2aWNlUHJvZmlsZUlEIERFUFJFQ0FURURfSU5f TUFDX09TX1hfVkVSU0lPTl8xMF82X0FORF9MQVRFUjsKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFt ZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVk Lmg6MjAxOTozOiB3YXJuaW5nOiAnQ01Qcm9maWxlTG9jYXRpb24nIGlzIGRlcHJlY2F0ZWQ6IGZp cnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10K IDIwMTkgfCAgIENNUHJvZmlsZUxvY2F0aW9uICAgcHJvZmlsZUxvYzsgICAgICAgICAgICAgLyog VGhlIHByb2ZpbGUncyBsb2NhdGlvbiAqLwogICAgICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25T ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5 bmNEZXByZWNhdGVkLmg6MTYwMTozOiBub3RlOiAnQ01Qcm9maWxlTG9jYXRpb24nIGhhcyBiZWVu IGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTYwMSB8IH0gQ01Qcm9maWxlTG9j YXRpb24gREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEwXzZfQU5EX0xBVEVSOwogICAg ICB8ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv cm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJy YXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9R RC5mcmFtZXdvcmsvSGVhZGVycy9Db2xvclN5bmNEZXByZWNhdGVkLmg6MjAyMTozOiB3YXJuaW5n OiAnQ01EZXZpY2VQcm9maWxlU2NvcGUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTAuNiBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KIDIwMjEgfCAgIENNRGV2 aWNlUHJvZmlsZVNjb3BlICBwcm9maWxlU2NvcGU7ICAgICAgICAgLyogVGhlIHNjb3BlIHRoaXMg cHJvZmlsZSBhcHBsaWVzIHRvICovCiAgICAgIHwgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp Y2VzLmZyYW1ld29yay9GcmFtZXdvcmtzL1FELmZyYW1ld29yay9IZWFkZXJzL0NvbG9yU3luY0Rl cHJlY2F0ZWQuaDoxOTg1OjE4OiBub3RlOiAnQ01EZXZpY2VQcm9maWxlU2NvcGUnIGhhcyBiZWVu IGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogMTk4NSB8IH0gQ01EZXZpY2VTY29w ZSwgQ01EZXZpY2VQcm9maWxlU2NvcGUgREVQUkVDQVRFRF9JTl9NQUNfT1NfWF9WRVJTSU9OXzEw XzZfQU5EX0xBVEVSOwogICAgICB8ICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp b25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvSGVhZGVycy9Db2xv clN5bmNEZXByZWNhdGVkLmg6MjAzMzozOiB3YXJuaW5nOiAnQ01EZXZpY2VQcm9maWxlSW5mbycg aXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxMC42IFstV2RlcHJlY2F0 ZWQtZGVjbGFyYXRpb25zXQogMjAzMyB8ICAgQ01EZXZpY2VQcm9maWxlSW5mbyAgcHJvZmlsZXNb MV07ICAgICAgICAgICAvKiBUaGUgcHJvZmlsZSBpbmZvIHJlY29yZHMgKi8KICAgICAgfCAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvUUQuZnJhbWV3 b3JrL0hlYWRlcnMvQ29sb3JTeW5jRGVwcmVjYXRlZC5oOjIwMTQ6Mzogbm90ZTogJ0NNRGV2aWNl UHJvZmlsZUluZm8nIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQog MjAxNCB8IH0gQ01EZXZpY2VQcm9maWxlSW5mbyBERVBSRUNBVEVEX0lOX01BQ19PU19YX1ZFUlNJ T05fMTBfNl9BTkRfTEFURVI7CiAgICAgIHwgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25m dGVzdC5jOjc4OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NE S3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsv SGVhZGVycy9BcHBLaXQuaDoxMDY6Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNT cGVlY2hTeW50aGVzaXplci5oOjMwOjE1OiB3YXJuaW5nOiAnTlNWb2ljZUF0dHJpYnV0ZUtleScg aXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3Bl ZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNs YXJhdGlvbnNdCiAgIDMwIHwgQVBQS0lUX0VYVEVSTiBOU1ZvaWNlQXR0cmlidXRlS2V5IGNvbnN0 IE5TVm9pY2VMb2NhbGVJZGVudGlmaWVyIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOwogICAg ICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3Bl ZWNoU3ludGhlc2l6ZXIuaDoyNDoyMDogbm90ZTogJ05TVm9pY2VBdHRyaWJ1dGVLZXknIGhhcyBi ZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICAyNCB8IHR5cGVkZWYgTlNT dHJpbmcgKiBOU1ZvaWNlQXR0cmlidXRlS2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5 bnRoZXNpemVyLmg6MzE6MTU6IHdhcm5pbmc6ICdOU1ZvaWNlQXR0cmlidXRlS2V5JyBpcyBkZXBy ZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50 aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KICAgMzEgfCBBUFBLSVRfRVhURVJOIE5TVm9pY2VBdHRyaWJ1dGVLZXkgY29uc3QgTlNWb2lj ZVN1cHBvcnRlZENoYXJhY3RlcnMgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7CiAgICAgIHwg ICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hT eW50aGVzaXplci5oOjI0OjIwOiBub3RlOiAnTlNWb2ljZUF0dHJpYnV0ZUtleScgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDI0IHwgdHlwZWRlZiBOU1N0cmlu ZyAqIE5TVm9pY2VBdHRyaWJ1dGVLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhl c2l6ZXIuaDozMjoxNTogd2FybmluZzogJ05TVm9pY2VBdHRyaWJ1dGVLZXknIGlzIGRlcHJlY2F0 ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNp emVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog ICAzMiB8IEFQUEtJVF9FWFRFUk4gTlNWb2ljZUF0dHJpYnV0ZUtleSBjb25zdCBOU1ZvaWNlSW5k aXZpZHVhbGx5U3Bva2VuQ2hhcmFjdGVycyBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsKICAg ICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1Nw ZWVjaFN5bnRoZXNpemVyLmg6MjQ6MjA6IG5vdGU6ICdOU1ZvaWNlQXR0cmlidXRlS2V5JyBoYXMg YmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgMjQgfCB0eXBlZGVmIE5T U3RyaW5nICogTlNWb2ljZUF0dHJpYnV0ZUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAg ICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hT eW50aGVzaXplci5oOjM2OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hEaWN0aW9uYXJ5S2V5JyBpcyBk ZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hT eW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0 aW9uc10KICAgMzYgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoRGljdGlvbmFyeUtleSBjb25zdCBO U1NwZWVjaERpY3Rpb25hcnlMb2NhbGVJZGVudGlmaWVyIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAu NSkpOyAgLy8gTlNTdHJpbmcKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9Y Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2 ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5m cmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MzU6MjA6IG5vdGU6ICdOU1Nw ZWVjaERpY3Rpb25hcnlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQg aGVyZQogICAzNSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaERpY3Rpb25hcnlLZXkgTlNf VFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZy YW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDozNzoxNTogd2FybmluZzogJ05T U3BlZWNoRGljdGlvbmFyeUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBt YWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3Rl YWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDM3IHwgQVBQS0lUX0VYVEVSTiBOU1Nw ZWVjaERpY3Rpb25hcnlLZXkgY29uc3QgTlNTcGVlY2hEaWN0aW9uYXJ5TW9kaWZpY2F0aW9uRGF0 ZSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TU3RyaW5nCiAgICAgIHwgICAgICAg ICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVz aXplci5oOjM1OjIwOiBub3RlOiAnTlNTcGVlY2hEaWN0aW9uYXJ5S2V5JyBoYXMgYmVlbiBleHBs aWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgMzUgfCB0eXBlZGVmIE5TU3RyaW5nICog TlNTcGVlY2hEaWN0aW9uYXJ5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNp emVyLmg6Mzg6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaERpY3Rpb25hcnlLZXknIGlzIGRlcHJlY2F0 ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNp emVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog ICAzOCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hEaWN0aW9uYXJ5S2V5IGNvbnN0IE5TU3BlZWNo RGljdGlvbmFyeVByb251bmNpYXRpb25zIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8g TlNBcnJheQogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RL cy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9I ZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDozNToyMDogbm90ZTogJ05TU3BlZWNoRGljdGlv bmFyeUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDM1 IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoRGljdGlvbmFyeUtleSBOU19UWVBFRF9FTlVN OwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtz L01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hl YWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjM5OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hEaWN0 aW9uYXJ5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAg LSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXBy ZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgMzkgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoRGljdGlv bmFyeUtleSBjb25zdCBOU1NwZWVjaERpY3Rpb25hcnlBYmJyZXZpYXRpb25zIEFQSV9BVkFJTEFC TEUobWFjb3MoMTAuNSkpOyAgLy8gTlNBcnJheQogICAgICB8ICAgICAgICAgICAgICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDozNToyMDog bm90ZTogJ05TU3BlZWNoRGljdGlvbmFyeUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQg ZGVwcmVjYXRlZCBoZXJlCiAgIDM1IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoRGljdGlv bmFyeUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjQwOjE1OiB3 YXJuaW5nOiAnTlNTcGVlY2hEaWN0aW9uYXJ5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXBy ZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5k YXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNDAgfCBBUFBLSVRf RVhURVJOIE5TU3BlZWNoRGljdGlvbmFyeUtleSBjb25zdCBOU1NwZWVjaERpY3Rpb25hcnlFbnRy eVNwZWxsaW5nIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJpbmcKICAgICAg fCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVj aFN5bnRoZXNpemVyLmg6MzU6MjA6IG5vdGU6ICdOU1NwZWVjaERpY3Rpb25hcnlLZXknIGhhcyBi ZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICAzNSB8IHR5cGVkZWYgTlNT dHJpbmcgKiBOU1NwZWVjaERpY3Rpb25hcnlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAg ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNo U3ludGhlc2l6ZXIuaDo0MToxNTogd2FybmluZzogJ05TU3BlZWNoRGljdGlvbmFyeUtleScgaXMg ZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNo U3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAgIDQxIHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaERpY3Rpb25hcnlLZXkgY29uc3Qg TlNTcGVlY2hEaWN0aW9uYXJ5RW50cnlQaG9uZW1lcyBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUp KTsgIC8vIE5TU3RyaW5nCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjM1OjIwOiBub3RlOiAnTlNTcGVl Y2hEaWN0aW9uYXJ5S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhl cmUKICAgMzUgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hEaWN0aW9uYXJ5S2V5IE5TX1RZ UEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29k ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxv cGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFt ZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NDg6MTU6IHdhcm5pbmc6ICdOU1Zv aWNlR2VuZGVyTmFtZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAx NC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDQ4IHwgQVBQS0lUX0VYVEVSTiBOU1ZvaWNlR2Vu ZGVyTmFtZSBjb25zdCBOU1ZvaWNlR2VuZGVyTmV1dHJhbCBBUElfQVZBSUxBQkxFKG1hY29zKDEy LjMpKTsKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVh ZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NDQ6MjA6IG5vdGU6ICdOU1ZvaWNlR2VuZGVyTmFt ZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDQ0IHwgdHlw ZWRlZiBOU1N0cmluZyAqIE5TVm9pY2VHZW5kZXJOYW1lIE5TX1RZUEVEX0VOVU07CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1Nw ZWVjaFN5bnRoZXNpemVyLmg6NTI6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBp cyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVl Y2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xh cmF0aW9uc10KICAgNTIgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3Qg TlNTcGVlY2hTdGF0dXNQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5T RGljdGlvbmFyeSwgc2VlIGtleXMgYmVsb3cKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6MjA6IG5v dGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXBy ZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQcm9wZXJ0eUtl eSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBL aXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUzOjE1OiB3YXJuaW5n OiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBp biBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGlu c3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgIDUzIHwgQVBQS0lUX0VYVEVSTiBO U1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0IE5TU3BlZWNoRXJyb3JzUHJvcGVydHkgQVBJX0FWQUlM QUJMRShtYWNvcygxMC41KSk7ICAvLyBOU0RpY3Rpb25hcnksIHNlZSBrZXlzIGJlbG93CiAgICAg IHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVl Y2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJl ZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0 cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3lu dGhlc2l6ZXIuaDo1NDoxNTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJl Y2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRo ZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z XQogICA1NCB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVj aElucHV0TW9kZVByb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJp bmc6IE5TU3BlZWNoTW9kZVRleHRQcm9wZXJ0eSBvciBOU1NwZWVjaE1vZGVQaG9uZW1lUHJvcGVy dHkKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFj T1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVy cy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5 JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBl ZGVmIE5TU3RyaW5nICogTlNTcGVlY2hQcm9wZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8 ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNT cGVlY2hTeW50aGVzaXplci5oOjU1OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScg aXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3Bl ZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNs YXJhdGlvbnNdCiAgIDU1IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0 IE5TU3BlZWNoQ2hhcmFjdGVyTW9kZVByb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkp OyAvLyBOU1N0cmluZzogTlNTcGVlY2hNb2RlTm9ybWFsUHJvcGVydHkgb3IgTlNTcGVlY2hNb2Rl TGl0ZXJhbFByb3BlcnR5CiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVl Y2hQcm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJl CiAgIDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURf RU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29y ay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1NjoxNTogd2FybmluZzogJ05TU3BlZWNo UHJvcGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQu MCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2Rl cHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA1NiB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9w ZXJ0eUtleSBjb25zdCBOU1NwZWVjaE51bWJlck1vZGVQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1h Y29zKDEwLjUpKTsgLy8gTlNTdHJpbmc6IE5TU3BlZWNoTW9kZU5vcm1hbFByb3BlcnR5IG9yIE5T U3BlZWNoTW9kZUxpdGVyYWxQcm9wZXJ0eQogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToyMDogbm90 ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3BlcnR5S2V5 IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtp dC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTc6MTU6IHdhcm5pbmc6 ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5z dGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNTcgfCBBUFBLSVRfRVhURVJOIE5T U3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hSYXRlUHJvcGVydHkgQVBJX0FWQUlMQUJM RShtYWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToyMDog bm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRl cHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3BlcnR5 S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0 aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZv cm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw cEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NTg6MTU6IHdhcm5p bmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVk IGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24g aW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNTggfCBBUFBLSVRfRVhURVJO IE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hQaXRjaEJhc2VQcm9wZXJ0eSBBUElf QVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAg ICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv TWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5o OjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNo UHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1OTox NTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91 bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA1OSB8IEFQUEtJ VF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVjaFBpdGNoTW9kUHJvcGVy dHkgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAg ICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhl c2l6ZXIuaDo1MToyMDogbm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxp Y2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBO U1NwZWVjaFByb3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAg ICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVy Lmg6NjA6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBm aXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBp biBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNjAg fCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hWb2x1bWVQ cm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwg ICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hT eW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJlZW4g ZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0cmlu ZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhl c2l6ZXIuaDo2MToxNTogd2FybmluZzogJ05TU3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJlY2F0 ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNp emVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQog ICA2MSB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVjaFN5 bnRoZXNpemVySW5mb1Byb3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNE aWN0aW9uYXJ5LCBzZWUga2V5cyBiZWxvdwogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToyMDogbm90 ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3BlcnR5S2V5 IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtp dC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NjI6MTU6IHdhcm5pbmc6 ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5z dGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNjIgfCBBUFBLSVRfRVhURVJOIE5T U3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hSZWNlbnRTeW5jUHJvcGVydHkgQVBJX0FW QUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1 MToyMDogbm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFy a2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFBy b3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0Fw cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gu cGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv cmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NjM6MTU6 IHdhcm5pbmc6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXBy ZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5k YXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAgNjMgfCBBUFBLSVRf RVhURVJOIE5TU3BlZWNoUHJvcGVydHlLZXkgY29uc3QgTlNTcGVlY2hQaG9uZW1lU3ltYm9sc1By b3BlcnR5IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNEaWN0aW9uYXJ5LCBzZWUg a2V5cyBiZWxvdwogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29y ay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToyMDogbm90ZTogJ05TU3BlZWNoUHJv cGVydHlLZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1 MSB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVh ZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6NjQ6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFByb3Bl cnR5S2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBV c2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNh dGVkLWRlY2xhcmF0aW9uc10KICAgNjQgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUHJvcGVydHlL ZXkgY29uc3QgTlNTcGVlY2hDdXJyZW50Vm9pY2VQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29z KDEwLjUpKTsgIC8vIE5TU3RyaW5nCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBL aXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjUxOjIwOiBub3RlOiAn TlNTcGVlY2hQcm9wZXJ0eUtleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRl ZCBoZXJlCiAgIDUxIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUHJvcGVydHlLZXkgTlNf VFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZy YW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDo2NToxNTogd2FybmluZzogJ05T U3BlZWNoUHJvcGVydHlLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFj T1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFk IFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogICA2NSB8IEFQUEtJVF9FWFRFUk4gTlNTcGVl Y2hQcm9wZXJ0eUtleSBjb25zdCBOU1NwZWVjaENvbW1hbmREZWxpbWl0ZXJQcm9wZXJ0eSBBUElf QVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TRGljdGlvbmFyeSwgc2VlIGtleXMgYmVsb3cK ICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9O U1NwZWVjaFN5bnRoZXNpemVyLmg6NTE6MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBo YXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBlZGVm IE5TU3RyaW5nICogTlNTcGVlY2hQcm9wZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAg ICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVl Y2hTeW50aGVzaXplci5oOjY2OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaXMg ZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNo U3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAgIDY2IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0IE5T U3BlZWNoUmVzZXRQcm9wZXJ0eSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsKICAgICAgfCAg ICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0 ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5 bnRoZXNpemVyLmg6NTE6MjA6IG5vdGU6ICdOU1NwZWVjaFByb3BlcnR5S2V5JyBoYXMgYmVlbiBl eHBsaWNpdGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAgNTEgfCB0eXBlZGVmIE5TU3RyaW5n ICogTlNTcGVlY2hQcm9wZXJ0eUtleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAg ICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVz aXplci5oOjY3OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQcm9wZXJ0eUtleScgaXMgZGVwcmVjYXRl ZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6 ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAg IDY3IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFByb3BlcnR5S2V5IGNvbnN0IE5TU3BlZWNoT3V0 cHV0VG9GaWxlVVJMUHJvcGVydHkgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1VS TAogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50 cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNP U1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJz L05TU3BlZWNoU3ludGhlc2l6ZXIuaDo1MToyMDogbm90ZTogJ05TU3BlZWNoUHJvcGVydHlLZXkn IGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogICA1MSB8IHR5cGVk ZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFByb3BlcnR5S2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1Nw ZWVjaFN5bnRoZXNpemVyLmg6MTI1OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hNb2RlJyBpcyBkZXBy ZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50 aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KICAxMjUgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoTW9kZSBjb25zdCBOU1NwZWVjaE1vZGVU ZXh0IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOwogICAgICB8ICAgICAgICAgICAgICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMjM6 MjA6IG5vdGU6ICdOU1NwZWVjaE1vZGUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJl Y2F0ZWQgaGVyZQogIDEyMyB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaE1vZGUgTlNfVFlQ RURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1l d29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMjY6MTU6IHdhcm5pbmc6ICdOU1Nw ZWVjaE1vZGUnIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAt IFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXQogIDEyNiB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hNb2RlIGNv bnN0IE5TU3BlZWNoTW9kZVBob25lbWUgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7CiAgICAg IHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVl Y2hTeW50aGVzaXplci5oOjEyMzoyMDogbm90ZTogJ05TU3BlZWNoTW9kZScgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTIzIHwgdHlwZWRlZiBOU1N0cmluZyAq IE5TU3BlZWNoTW9kZSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEy ODoxNTogd2FybmluZzogJ05TU3BlZWNoTW9kZScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVj YXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0 aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTI4IHwgQVBQS0lUX0VY VEVSTiBOU1NwZWVjaE1vZGUgY29uc3QgTlNTcGVlY2hNb2RlTm9ybWFsIEFQSV9BVkFJTEFCTEUo bWFjb3MoMTAuNSkpOwogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2Rl LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9w ZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1l d29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMjM6MjA6IG5vdGU6ICdOU1NwZWVj aE1vZGUnIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDEyMyB8 IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaE1vZGUgTlNfVFlQRURfRU5VTTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3Bl ZWNoU3ludGhlc2l6ZXIuaDoxMjk6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaE1vZGUnIGlzIGRlcHJl Y2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRo ZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z XQogIDEyOSB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hNb2RlIGNvbnN0IE5TU3BlZWNoTW9kZUxp dGVyYWwgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7CiAgICAgIHwgICAgICAgICAgICAgICBe Ci9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFj T1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEy MzoyMDogbm90ZTogJ05TU3BlZWNoTW9kZScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVw cmVjYXRlZCBoZXJlCiAgMTIzIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoTW9kZSBOU19U WVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNv ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVs b3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJh bWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzMzoxNTogd2FybmluZzogJ05T U3BlZWNoU3RhdHVzS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09T IDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBb LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxMzMgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNo U3RhdHVzS2V5IGNvbnN0IE5TU3BlZWNoU3RhdHVzT3V0cHV0QnVzeSBBUElfQVZBSUxBQkxFKG1h Y29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzMjoyMDogbm90 ZTogJ05TU3BlZWNoU3RhdHVzS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXByZWNh dGVkIGhlcmUKICAxMzIgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hTdGF0dXNLZXkgTlNf VFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZy YW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzQ6MTU6IHdhcm5pbmc6ICdO U1NwZWVjaFN0YXR1c0tleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNP UyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQg Wy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTM0IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVj aFN0YXR1c0tleSBjb25zdCBOU1NwZWVjaFN0YXR1c091dHB1dFBhdXNlZCBBUElfQVZBSUxBQkxF KG1hY29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBs aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBs YXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr cy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjEzMjoyMDog bm90ZTogJ05TU3BlZWNoU3RhdHVzS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBkZXBy ZWNhdGVkIGhlcmUKICAxMzIgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hTdGF0dXNLZXkg TlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0 LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzU6MTU6IHdhcm5pbmc6 ICdOU1NwZWVjaFN0YXR1c0tleScgaXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBt YWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3Rl YWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTM1IHwgQVBQS0lUX0VYVEVSTiBOU1Nw ZWVjaFN0YXR1c0tleSBjb25zdCBOU1NwZWVjaFN0YXR1c051bWJlck9mQ2hhcmFjdGVyc0xlZnQg QVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAg ICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv cm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJy YXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6 ZXIuaDoxMzI6MjA6IG5vdGU6ICdOU1NwZWVjaFN0YXR1c0tleScgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTMyIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3Bl ZWNoU3RhdHVzS2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4K L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNP U1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTM2 OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hTdGF0dXNLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRl cHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91 bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDEzNiB8IEFQUEtJ VF9FWFRFUk4gTlNTcGVlY2hTdGF0dXNLZXkgY29uc3QgTlNTcGVlY2hTdGF0dXNQaG9uZW1lQ29k ZSBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TTnVtYmVyCiAgICAgIHwgICAgICAg ICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0 Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xp YnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVz aXplci5oOjEzMjoyMDogbm90ZTogJ05TU3BlZWNoU3RhdHVzS2V5JyBoYXMgYmVlbiBleHBsaWNp dGx5IG1hcmtlZCBkZXByZWNhdGVkIGhlcmUKICAxMzIgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNT cGVlY2hTdGF0dXNLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDox NDA6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaEVycm9yS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBk ZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZv dW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNDAgfCBBUFBL SVRfRVhURVJOIE5TU3BlZWNoRXJyb3JLZXkgY29uc3QgTlNTcGVlY2hFcnJvckNvdW50IEFQSV9B VkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAg IF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9N YWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9G cmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6 MTM5OjIwOiBub3RlOiAnTlNTcGVlY2hFcnJvcktleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJr ZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTM5IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoRXJy b3JLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv QXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNDE6MTU6IHdh cm5pbmc6ICdOU1NwZWVjaEVycm9yS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVk IGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24g aW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNDEgfCBBUFBLSVRfRVhURVJO IE5TU3BlZWNoRXJyb3JLZXkgY29uc3QgTlNTcGVlY2hFcnJvck9sZGVzdENvZGUgQVBJX0FWQUlM QUJMRShtYWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxMzk6 MjA6IG5vdGU6ICdOU1NwZWVjaEVycm9yS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtlZCBk ZXByZWNhdGVkIGhlcmUKICAxMzkgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hFcnJvcktl eSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlv bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3Jt L0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBL aXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE0MjoxNTogd2Fybmlu ZzogJ05TU3BlZWNoRXJyb3JLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4g bWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0 ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE0MiB8IEFQUEtJVF9FWFRFUk4gTlNT cGVlY2hFcnJvcktleSBjb25zdCBOU1NwZWVjaEVycm9yT2xkZXN0Q2hhcmFjdGVyT2Zmc2V0IEFQ SV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAg ICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt cy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFy eS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVy Lmg6MTM5OjIwOiBub3RlOiAnTlNTcGVlY2hFcnJvcktleScgaGFzIGJlZW4gZXhwbGljaXRseSBt YXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTM5IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNo RXJyb3JLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNDM6MTU6 IHdhcm5pbmc6ICdOU1NwZWVjaEVycm9yS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNh dGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRp b24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNDMgfCBBUFBLSVRfRVhU RVJOIE5TU3BlZWNoRXJyb3JLZXkgY29uc3QgTlNTcGVlY2hFcnJvck5ld2VzdENvZGUgQVBJX0FW QUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU051bWJlcgogICAgICB8ICAgICAgICAgICAgICAg XgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01h Y09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0Zy YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDox Mzk6MjA6IG5vdGU6ICdOU1NwZWVjaEVycm9yS2V5JyBoYXMgYmVlbiBleHBsaWNpdGx5IG1hcmtl ZCBkZXByZWNhdGVkIGhlcmUKICAxMzkgfCB0eXBlZGVmIE5TU3RyaW5nICogTlNTcGVlY2hFcnJv cktleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNh dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRm b3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B cHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE0NDoxNTogd2Fy bmluZzogJ05TU3BlZWNoRXJyb3JLZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQg aW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBp bnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE0NCB8IEFQUEtJVF9FWFRFUk4g TlNTcGVlY2hFcnJvcktleSBjb25zdCBOU1NwZWVjaEVycm9yTmV3ZXN0Q2hhcmFjdGVyT2Zmc2V0 IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAg ICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNp emVyLmg6MTM5OjIwOiBub3RlOiAnTlNTcGVlY2hFcnJvcktleScgaGFzIGJlZW4gZXhwbGljaXRs eSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTM5IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3Bl ZWNoRXJyb3JLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgov QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09T WC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNDg6 MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFN5bnRoZXNpemVySW5mb0tleScgaXMgZGVwcmVjYXRlZDog Zmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3BlZWNoU3ludGhlc2l6ZXIg aW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNdCiAgMTQ4 IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFN5bnRoZXNpemVySW5mb0tleSBjb25zdCBOU1NwZWVj aFN5bnRoZXNpemVySW5mb0lkZW50aWZpZXIgQVBJX0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAv LyBOU1N0cmluZwogICAgICB8ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIv U0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29y ay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNDc6MjA6IG5vdGU6ICdOU1NwZWVjaFN5 bnRoZXNpemVySW5mb0tleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBo ZXJlCiAgMTQ3IHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoU3ludGhlc2l6ZXJJbmZvS2V5 IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0v RGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtp dC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTQ5OjE1OiB3YXJuaW5n OiAnTlNTcGVlY2hTeW50aGVzaXplckluZm9LZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJl Y2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRh dGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE0OSB8IEFQUEtJVF9F WFRFUk4gTlNTcGVlY2hTeW50aGVzaXplckluZm9LZXkgY29uc3QgTlNTcGVlY2hTeW50aGVzaXpl ckluZm9WZXJzaW9uIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNTdHJpbmcKICAg ICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2 ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNk ay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1Nw ZWVjaFN5bnRoZXNpemVyLmg6MTQ3OjIwOiBub3RlOiAnTlNTcGVlY2hTeW50aGVzaXplckluZm9L ZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDE0NyB8IHR5 cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFN5bnRoZXNpemVySW5mb0tleSBOU19UWVBFRF9FTlVN OwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtz L01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hl YWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE1MzoxNTogd2FybmluZzogJ05TU3BlZWNoUGhv bmVtZUluZm9LZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQu MCAtIFVzZSBBVlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2Rl cHJlY2F0ZWQtZGVjbGFyYXRpb25zXQogIDE1MyB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hQaG9u ZW1lSW5mb0tleSBjb25zdCBOU1NwZWVjaFBob25lbWVJbmZvT3Bjb2RlIEFQSV9BVkFJTEFCTEUo bWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz L0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTUyOjIwOiBu b3RlOiAnTlNTcGVlY2hQaG9uZW1lSW5mb0tleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQg ZGVwcmVjYXRlZCBoZXJlCiAgMTUyIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUGhvbmVt ZUluZm9LZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNTQ6MTU6 IHdhcm5pbmc6ICdOU1NwZWVjaFBob25lbWVJbmZvS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBk ZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZv dW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNTQgfCBBUFBL SVRfRVhURVJOIE5TU3BlZWNoUGhvbmVtZUluZm9LZXkgY29uc3QgTlNTcGVlY2hQaG9uZW1lSW5m b1N5bWJvbCBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8vIE5TU3RyaW5nCiAgICAgIHwg ICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lz dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hT eW50aGVzaXplci5oOjE1MjoyMDogbm90ZTogJ05TU3BlZWNoUGhvbmVtZUluZm9LZXknIGhhcyBi ZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDE1MiB8IHR5cGVkZWYgTlNT dHJpbmcgKiBOU1NwZWVjaFBob25lbWVJbmZvS2V5IE5TX1RZUEVEX0VOVU07CiAgICAgIHwgICAg ICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv cGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9T eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVj aFN5bnRoZXNpemVyLmg6MTU1OjE1OiB3YXJuaW5nOiAnTlNTcGVlY2hQaG9uZW1lSW5mb0tleScg aXMgZGVwcmVjYXRlZDogZmlyc3QgZGVwcmVjYXRlZCBpbiBtYWNPUyAxNC4wIC0gVXNlIEFWU3Bl ZWNoU3ludGhlc2l6ZXIgaW4gQVZGb3VuZGF0aW9uIGluc3RlYWQgWy1XZGVwcmVjYXRlZC1kZWNs YXJhdGlvbnNdCiAgMTU1IHwgQVBQS0lUX0VYVEVSTiBOU1NwZWVjaFBob25lbWVJbmZvS2V5IGNv bnN0IE5TU3BlZWNoUGhvbmVtZUluZm9FeGFtcGxlIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkp OyAgLy8gTlNTdHJpbmcKICAgICAgfCAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29k ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxv cGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFt ZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTUyOjIwOiBub3RlOiAnTlNTcGVl Y2hQaG9uZW1lSW5mb0tleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBo ZXJlCiAgMTUyIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoUGhvbmVtZUluZm9LZXkgTlNf VFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZl bG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZy YW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIuaDoxNTY6MTU6IHdhcm5pbmc6ICdO U1NwZWVjaFBob25lbWVJbmZvS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5z dGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNTYgfCBBUFBLSVRfRVhURVJOIE5T U3BlZWNoUGhvbmVtZUluZm9LZXkgY29uc3QgTlNTcGVlY2hQaG9uZW1lSW5mb0hpbGl0ZVN0YXJ0 IEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuNSkpOyAgLy8gTlNOdW1iZXIKICAgICAgfCAgICAgICAg ICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNp emVyLmg6MTUyOjIwOiBub3RlOiAnTlNTcGVlY2hQaG9uZW1lSW5mb0tleScgaGFzIGJlZW4gZXhw bGljaXRseSBtYXJrZWQgZGVwcmVjYXRlZCBoZXJlCiAgMTUyIHwgdHlwZWRlZiBOU1N0cmluZyAq IE5TU3BlZWNoUGhvbmVtZUluZm9LZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh dGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9M aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhl c2l6ZXIuaDoxNTc6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaFBob25lbWVJbmZvS2V5JyBpcyBkZXBy ZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGluIG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50 aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5zdGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u c10KICAxNTcgfCBBUFBLSVRfRVhURVJOIE5TU3BlZWNoUGhvbmVtZUluZm9LZXkgY29uc3QgTlNT cGVlY2hQaG9uZW1lSW5mb0hpbGl0ZUVuZCBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjUpKTsgIC8v IE5TTnVtYmVyCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9T REtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3Jr L0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE1MjoyMDogbm90ZTogJ05TU3BlZWNoUGhv bmVtZUluZm9LZXknIGhhcyBiZWVuIGV4cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQog IDE1MiB8IHR5cGVkZWYgTlNTdHJpbmcgKiBOU1NwZWVjaFBob25lbWVJbmZvS2V5IE5TX1RZUEVE X0VOVU07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF4KL0FwcGxpY2F0aW9ucy9YY29kZS5h cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVy L1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdv cmsvSGVhZGVycy9OU1NwZWVjaFN5bnRoZXNpemVyLmg6MTYxOjE1OiB3YXJuaW5nOiAnTlNTcGVl Y2hDb21tYW5kRGVsaW1pdGVyS2V5JyBpcyBkZXByZWNhdGVkOiBmaXJzdCBkZXByZWNhdGVkIGlu IG1hY09TIDE0LjAgLSBVc2UgQVZTcGVlY2hTeW50aGVzaXplciBpbiBBVkZvdW5kYXRpb24gaW5z dGVhZCBbLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KICAxNjEgfCBBUFBLSVRfRVhURVJOIE5T U3BlZWNoQ29tbWFuZERlbGltaXRlcktleSBjb25zdCBOU1NwZWVjaENvbW1hbmRQcmVmaXggQVBJ X0FWQUlMQUJMRShtYWNvcygxMC41KSk7ICAvLyBOU1N0cmluZwogICAgICB8ICAgICAgICAgICAg ICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z L01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5 L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNoU3ludGhlc2l6ZXIu aDoxNjA6MjA6IG5vdGU6ICdOU1NwZWVjaENvbW1hbmREZWxpbWl0ZXJLZXknIGhhcyBiZWVuIGV4 cGxpY2l0bHkgbWFya2VkIGRlcHJlY2F0ZWQgaGVyZQogIDE2MCB8IHR5cGVkZWYgTlNTdHJpbmcg KiBOU1NwZWVjaENvbW1hbmREZWxpbWl0ZXJLZXkgTlNfVFlQRURfRU5VTTsKICAgICAgfCAgICAg ICAgICAgICAgICAgICAgXgovQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9IZWFkZXJzL05TU3BlZWNo U3ludGhlc2l6ZXIuaDoxNjI6MTU6IHdhcm5pbmc6ICdOU1NwZWVjaENvbW1hbmREZWxpbWl0ZXJL ZXknIGlzIGRlcHJlY2F0ZWQ6IGZpcnN0IGRlcHJlY2F0ZWQgaW4gbWFjT1MgMTQuMCAtIFVzZSBB VlNwZWVjaFN5bnRoZXNpemVyIGluIEFWRm91bmRhdGlvbiBpbnN0ZWFkIFstV2RlcHJlY2F0ZWQt ZGVjbGFyYXRpb25zXQogIDE2MiB8IEFQUEtJVF9FWFRFUk4gTlNTcGVlY2hDb21tYW5kRGVsaW1p dGVyS2V5IGNvbnN0IE5TU3BlZWNoQ29tbWFuZFN1ZmZpeCBBUElfQVZBSUxBQkxFKG1hY29zKDEw LjUpKTsgIC8vIE5TU3RyaW5nCiAgICAgIHwgICAgICAgICAgICAgICBeCi9BcHBsaWNhdGlvbnMv WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0Rl dmVsb3Blci9TREtzL01hY09TWC5zZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQu ZnJhbWV3b3JrL0hlYWRlcnMvTlNTcGVlY2hTeW50aGVzaXplci5oOjE2MDoyMDogbm90ZTogJ05T U3BlZWNoQ29tbWFuZERlbGltaXRlcktleScgaGFzIGJlZW4gZXhwbGljaXRseSBtYXJrZWQgZGVw cmVjYXRlZCBoZXJlCiAgMTYwIHwgdHlwZWRlZiBOU1N0cmluZyAqIE5TU3BlZWNoQ29tbWFuZERl bGltaXRlcktleSBOU19UWVBFRF9FTlVNOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBeCjEx NyB3YXJuaW5ncyBnZW5lcmF0ZWQuCmNvbmZpZ3VyZToxNjAxMjogJD8gPSAwCmNvbmZpZ3VyZTox NjAyMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2MDI4OiBjaGVja2luZyBmb3IgTWFjIE9TIFgg MTIuMCBvciBsYXRlcgpjb25maWd1cmU6MTYwNTA6IGNsYW5nIC1jIC1XZ251LWltYWdpbmFyeS1j b25zdGFudCAtV3VudXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIC1Xbm8taWdub3JlZC1hdHRyaWJ1 dGVzIC1Xbm8tZmxhZy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRob2QtcmV0dXJuLXR5cGUgLVduby12 YXJpYWRpYy1tYWNyb3MgLVduby1zdHJpY3QtcHJvdG90eXBlcyAtV25vLWF2YWlsYWJpbGl0eSAt V25vLW51bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyAtTyAteCBvYmplY3RpdmUtYyAgICAgLXggb2Jq ZWN0aXZlLWMgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6ODE6MTogZXJyb3I6IHVua25vd24g dHlwZSBuYW1lICdNYWMnCiAgIDgxIHwgTWFjIE9TIFggMTIueCBvciBsYXRlci4KICAgICAgfCBe CmNvbmZ0ZXN0LmM6ODE6NzogZXJyb3I6IGV4cGVjdGVkICc7JyBhZnRlciB0b3AgbGV2ZWwgZGVj bGFyYXRvcgogICA4MSB8IE1hYyBPUyBYIDEyLnggb3IgbGF0ZXIuCiAgICAgIHwgICAgICAgXgog ICAgICB8ICAgICAgIDsKMiBlcnJvcnMgZ2VuZXJhdGVkLgpjb25maWd1cmU6MTYwNTA6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjMxLjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDMxLjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIEhBVkVfTUFJTFVUSUxTIDEKfCAjZGVmaW5lIEdDX1JFTUVNQkVSX0xBU1RfTUFSS0VE IDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VVFNOQU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1VUSUxfSCAxCnwgI2RlZmluZSBIQVZFX1NBTklU SVpFUl9MU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJWkVSX0FTQU5fSU5U RVJGQUNFX0ggMQp8ICNkZWZpbmUgSEFWRV9TQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFS QU1fSCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19N QUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1REQk9P TF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCnwgI2Rl ZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1REQ0tESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkFORE9NX0ggMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwg I2RlZmluZSBfTElOVVhfU09VUkNFX0NPTVBBVCAxCnwgI2RlZmluZSBfX1VTRV9NSU5HV19BTlNJ X1NURElPIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJkYXJ3 aW4iCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8 ICNkZWZpbmUgSEFWRV9ORVRfSUZfSCAxCnwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCnwgI2Rl ZmluZSBIQVZFX05FVF9JRl9ETF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0lGUkVRX0lGUl9G TEFHUyAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQlJPQURBRERSIDEKfCAjZGVm aW5lIEhBVkVfU1RSVUNUX0lGUkVRX0lGUl9BRERSIDEKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0lG UkVRX0lGUl9BRERSX1NBX0xFTiAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9QQVNTV0RfUFdfR0VD T1MgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4KfCAjaWYgTUFD X09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAwMDAKfCBNYWMgT1MgWCAxMi54IG9yIGxh dGVyLgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8IAp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTYwNjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjE4MDog Y2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6MTYyMDE6IGZvdW5kIC91c3IvYmluL2djYwpjb25m aWd1cmU6MTYyMTM6IHJlc3VsdDogZ2NjCmNvbmZpZ3VyZToxNjIzODogY2hlY2tpbmcgZm9yIE9i amVjdGl2ZSBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjE2MjQ3OiBnY2MgLS12ZXJzaW9u ID4mNQpBcHBsZSBjbGFuZyB2ZXJzaW9uIDE3LjAuMCAoY2xhbmctMTcwMC4wLjEzLjMpClRhcmdl dDogYXJtNjQtYXBwbGUtZGFyd2luMjQuNC4wClRocmVhZCBtb2RlbDogcG9zaXgKSW5zdGFsbGVk RGlyOiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvVG9vbGNoYWlu cy9YY29kZURlZmF1bHQueGN0b29sY2hhaW4vdXNyL2Jpbgpjb25maWd1cmU6MTYyNTg6ICQ/ID0g MApjb25maWd1cmU6MTYyNDc6IGdjYyAtdiA+JjUKQXBwbGUgY2xhbmcgdmVyc2lvbiAxNy4wLjAg KGNsYW5nLTE3MDAuMC4xMy4zKQpUYXJnZXQ6IGFybTY0LWFwcGxlLWRhcndpbjI0LjQuMApUaHJl YWQgbW9kZWw6IHBvc2l4Ckluc3RhbGxlZERpcjogL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1Rvb2xjaGFpbnMvWGNvZGVEZWZhdWx0LnhjdG9vbGNoYWluL3Vzci9i aW4KY29uZmlndXJlOjE2MjU4OiAkPyA9IDAKY29uZmlndXJlOjE2MjQ3OiBnY2MgLVYgPiY1CmNs YW5nOiBlcnJvcjogYXJndW1lbnQgdG8gJy1WJyBpcyBtaXNzaW5nIChleHBlY3RlZCAxIHZhbHVl KQpjbGFuZzogZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbmZpZ3VyZToxNjI1ODogJD8gPSAxCmNv bmZpZ3VyZToxNjI0NzogZ2NjIC1xdmVyc2lvbiA+JjUKY2xhbmc6IGVycm9yOiB1bmtub3duIGFy Z3VtZW50ICctcXZlcnNpb24nOyBkaWQgeW91IG1lYW4gJy0tdmVyc2lvbic/CmNsYW5nOiBlcnJv cjogbm8gaW5wdXQgZmlsZXMKY29uZmlndXJlOjE2MjU4OiAkPyA9IDEKY29uZmlndXJlOjE2MjYy OiBjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgT2JqZWN0aXZlIEMK Y29uZmlndXJlOjE2MjgyOiBnY2MgLWMgICAgIGNvbmZ0ZXN0Lm0gPiY1CmNvbmZpZ3VyZToxNjI4 MjogJD8gPSAwCmNvbmZpZ3VyZToxNjI5NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2MzA1OiBj aGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZToxNjMyNjogZ2NjIC1jIC1n ICAgIGNvbmZ0ZXN0Lm0gPiY1CmNvbmZpZ3VyZToxNjMyNjogJD8gPSAwCmNvbmZpZ3VyZToxNjM3 MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2Mzk3OiBjaGVja2luZyBpZiB0aGUgT2JqZWN0aXZl IEMgY29tcGlsZXIgc3VwcG9ydHMgaW5zdGFuY2V0eXBlCmNvbmZpZ3VyZToxNjQwOTogZ2NjIC1j IC1nIC1PMiAgICBjb25mdGVzdC5tID4mNQpjb25maWd1cmU6MTY0MDk6ICQ/ID0gMApjb25maWd1 cmU6MTY0MTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjQyODogY2hlY2tpbmcgaWYgdGhlIE9i amVjdGl2ZSBDIGNvbXBpbGVyIGRlZmF1bHRzIHRvIEM5OQpjb25maWd1cmU6MTY0NDU6IGdjYyAt YyAtZyAtTzIgICAgY29uZnRlc3QubSA+JjUKY29uZnRlc3QubTo4NToxODogd2FybmluZzogZm9y IGxvb3AgaGFzIGVtcHR5IGJvZHkgWy1XZW1wdHktYm9keV0KICAgODUgfCBmb3IgKGludCBpID0g MDs7KTsKICAgICAgfCAgICAgICAgICAgICAgICAgIF4KY29uZnRlc3QubTo4NToxODogbm90ZTog cHV0IHRoZSBzZW1pY29sb24gb24gYSBzZXBhcmF0ZSBsaW5lIHRvIHNpbGVuY2UgdGhpcyB3YXJu aW5nCjEgd2FybmluZyBnZW5lcmF0ZWQuCmNvbmZpZ3VyZToxNjQ0NTogJD8gPSAwCmNvbmZpZ3Vy ZToxNjQ1NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3MzMwOiBjaGVja2luZyB3aGV0aGVyIG1h bGxvYyBpcyBEb3VnIExlYSBzdHlsZQpjb25maWd1cmU6MTczNjA6IHJlc3VsdDogbm8KY29uZmln dXJlOjE3MzY2OiBjaGVja2luZyBhbGlnbm1lbnQgb2YgaW50CmNvbmZpZ3VyZToxNzM5MDogcmVz dWx0OiA0CmNvbmZpZ3VyZToxNzQwMDogY2hlY2tpbmcgYWxpZ25tZW50IG9mIGxvbmcKY29uZmln dXJlOjE3NDI0OiByZXN1bHQ6IDgKY29uZmlndXJlOjE3NDM0OiBjaGVja2luZyBhbGlnbm1lbnQg b2YgbG9uZyBsb25nCmNvbmZpZ3VyZToxNzQ1ODogcmVzdWx0OiA4CmNvbmZpZ3VyZToxNzQ3MDog Y2hlY2tpbmcgc2l6ZSBvZiBsb25nCmNvbmZpZ3VyZToxNzQ5MzogcmVzdWx0OiA4CmNvbmZpZ3Vy ZToxNzUwMjogY2hlY2tpbmcgZm9yIHN0cnVjdCBhbGlnbm1lbnQKY29uZmlndXJlOjE3NTMzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6MTc1NDk6IGNoZWNraW5nIGZvciBzdGRhbGlnbi5oCmNvbmZp Z3VyZToxNzU0OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NTU2OiBjaGVja2luZyB3aGV0aGVy IGFsaWduYXMgaXMgcmVxdWlyZWQgeWV0IHVuYXZhaWxhYmxlCmNvbmZpZ3VyZToxNzYwNjogcmVz dWx0OiBubwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBzYnJrCmNvbmZpZ3VyZToxNzYy NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUK Y29uZmlndXJlOjE3NjI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZv ciBfX2xzYW5faWdub3JlX29iamVjdApjb25maWd1cmU6MTc2MjQ6IHJlc3VsdDogbm8KY29uZmln dXJlOjE3NjI0OiBjaGVja2luZyBmb3IgZm9yawpjb25maWd1cmU6MTc2MjQ6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToxNzYyNDogY2hlY2tpbmcgZm9yIHZmb3JrCmNvbmZpZ3VyZToxNzYyNDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgZmNobW9kCmNvbmZpZ3VyZTox NzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgdXRtcG5hbWUK Y29uZmlndXJlOjE3NjI0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzYyNDogY2hlY2tpbmcgZm9y IHV0bXB4bmFtZQpjb25maWd1cmU6MTc2MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzYyNDog Y2hlY2tpbmcgZm9yIGNhbm9uaWNhbGl6ZV9maWxlX25hbWUKY29uZmlndXJlOjE3NjI0OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxNzYyNDogY2hlY2tpbmcgZm9yIHJlYWxwYXRoCmNvbmZpZ3VyZTox NzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgbHN0YXQKY29u ZmlndXJlOjE3NjI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBm Y2htb2RhdApjb25maWd1cmU6MTc2MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzYyNDogY2hl Y2tpbmcgZm9yIGxjaG1vZApjb25maWd1cmU6MTc2MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox NzYyNDogY2hlY2tpbmcgZm9yIGZjbnRsCmNvbmZpZ3VyZToxNzYyNDogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgZmRvcGVuZGlyCmNvbmZpZ3VyZToxNzYyNDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgbGlzdHhhdHRyCmNvbmZpZ3Vy ZToxNzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgZnN0YXRh dApjb25maWd1cmU6MTc2MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzYyNDogY2hlY2tpbmcg Zm9yIGZzeW5jCmNvbmZpZ3VyZToxNzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBj aGVja2luZyBmb3IgZ2V0dGltZW9mZGF5CmNvbmZpZ3VyZToxNzYyNDogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgbWVtc2V0X3MKY29uZmlndXJlOjE3NjI0OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBzdHJmdGltZV96CmNvbmZpZ3Vy ZToxNzYyNDogcmVzdWx0OiBubwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBwc2VsZWN0 CmNvbmZpZ3VyZToxNzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBm b3IgcHRocmVhZF9zaWdtYXNrCmNvbmZpZ3VyZToxNzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjE3NjI0OiBjaGVja2luZyBmb3IgcmVhZGxpbmsKY29uZmlndXJlOjE3NjI0OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBpc2JsYW5rCmNvbmZpZ3VyZToxNzYyNDog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgaXN3Y3R5cGUKY29uZmln dXJlOjE3NjI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBzdHJ0 b2ltYXgKY29uZmlndXJlOjE3NjI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc2MjQ6IGNoZWNr aW5nIGZvciBzeW1saW5rCmNvbmZpZ3VyZToxNzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3 NjI0OiBjaGVja2luZyBmb3IgbG9jYWx0aW1lX3IKY29uZmlndXJlOjE3NjI0OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MTc2MjQ6IGNoZWNraW5nIGZvciBnZXRkdGFibGVzaXplCmNvbmZpZ3VyZTox NzYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3IgdXRpbWVucwpj b25maWd1cmU6MTc2MjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3NjI0OiBjaGVja2luZyBmb3Ig bHV0aW1lbnMKY29uZmlndXJlOjE3NjI0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzcyNTogY2hl Y2tpbmcgZm9yIHdvcmtpbmcgbW1hcApjb25maWd1cmU6MTc4ODk6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxNzkwNzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWxYYnNkCmNvbmZpZ3VyZToxNzkzOTog cmVzdWx0OiBubwpjb25maWd1cmU6MTc5NTE6IGNoZWNraW5nIGZvciBwdGhyZWFkIGxpYnJhcnkK Y29uZmlndXJlOjE4MDAwOiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZToxODAyNzogY2hl Y2tpbmcgZm9yIHRocmVhZCBzdXBwb3J0CmNvbmZpZ3VyZToxODA0MzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE4Mzc5OiBjaGVja2luZyBmb3IgbGlicnN2Zy0yLjAgPj0gMi4xNC4wCmNvbmZpZ3Vy ZToxODM4NjogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgIiRSU1ZHX01PRFVM RSIKY29uZmlndXJlOjE4Mzg5OiAkPyA9IDAKY29uZmlndXJlOjE4NDAzOiAkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyAiJFJTVkdfTU9EVUxFIgpjb25maWd1cmU6MTg0MDY6ICQ/ ID0gMApjb25maWd1cmU6MTg0NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxODU3NDogY2hlY2tp bmcgZm9yIGxpYndlYnBkZW11eCA+PSAwLjYuMApjb25maWd1cmU6MTg1ODE6ICRQS0dfQ09ORklH IC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkV0VCUF9NT0RVTEUiCmNvbmZpZ3VyZToxODU4NDog JD8gPSAwCmNvbmZpZ3VyZToxODU5ODogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJv cnMgIiRXRUJQX01PRFVMRSIKY29uZmlndXJlOjE4NjAxOiAkPyA9IDAKY29uZmlndXJlOjE4NjM5 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTg2NTg6IGNoZWNraW5nIGZvciBXZWJQR2V0SW5mbwpj b25maWd1cmU6MTg2NTg6IGNsYW5nIC1vIGNvbmZ0ZXN0IC1XZ251LWltYWdpbmFyeS1jb25zdGFu dCAtV3VudXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv RGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NY LnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIC1Xbm8taWdub3JlZC1hdHRyaWJ1dGVzIC1X bm8tZmxhZy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRob2QtcmV0dXJuLXR5cGUgLVduby12YXJpYWRp Yy1tYWNyb3MgLVduby1zdHJpY3QtcHJvdG90eXBlcyAtV25vLWF2YWlsYWJpbGl0eSAtV25vLW51 bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyAtTyAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9s aWJyc3ZnLzIuNjAuMC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcv aW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ0 aWZmLzQuNy4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvenN0ZC9pbmNsdWRl IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3h6LzUuOC4xL2luY2x1ZGUgLWlzeXN0ZW0g L29wdC9ob21lYnJldy9vcHQvanBlZy10dXJiby9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJy ZXcvQ2VsbGFyL2NhaXJvLzEuMTguNC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIC9vcHQvaG9tZWJy ZXcvQ2VsbGFyL2NhaXJvLzEuMTguNC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2Vs bGFyL3BhbmdvLzEuNTYuMy9pbmNsdWRlL3BhbmdvLTEuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3 L0NlbGxhci9nbGliLzIuODQuMF8xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxs YXIvZnJpYmlkaS8xLjAuMTYvaW5jbHVkZS9mcmliaWRpIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcv Q2VsbGFyL2ZvbnRjb25maWcvMi4xNi4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvbGlieGV4dC8xLjMuNi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFy L3hvcmdwcm90by8yMDI0LjEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9s aWJ4cmVuZGVyLzAuOS4xMi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xp YngxMS8xLjguMTIvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4Y2Iv MS4xNy4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGF1LzEuMC4x Mi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhkbWNwLzEuMS41L2lu Y2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGl4bWFuLzAuNDQuMi9pbmNsdWRl L3BpeG1hbi0xIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2hhcmZidXp6LzExLjAuMS9p bmNsdWRlL2hhcmZidXp6IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L2ZyZWV0eXBlL2luY2x1 ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L2xpYnBuZy9pbmNsdWRlL2xp YnBuZzE2IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dyYXBoaXRlMi8xLjMuMTQvaW5j bHVkZSAtaXN5c3RlbSAvTGlicmFyeS9EZXZlbG9wZXIvQ29tbWFuZExpbmVUb29scy9TREtzL01h Y09TWDE1LnNkay91c3IvaW5jbHVkZS9mZmkgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIv Z2xpYi8yLjg0LjBfMS9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2Vs bGFyL2dsaWIvMi44NC4wXzEvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21l YnJldy9vcHQvZ2V0dGV4dC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3Bj cmUyLzEwLjQ1L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvd2VicC9pbmNsdWRl IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L3dlYnAvaW5jbHVkZS93ZWJwICAgICBjb25mdGVz dC5jICAgLUwvb3B0L2hvbWVicmV3L29wdC93ZWJwL2xpYiAtbHdlYnBkZW11eCA+JjUKVW5kZWZp bmVkIHN5bWJvbHMgZm9yIGFyY2hpdGVjdHVyZSBhcm02NDoKICAiX1dlYlBHZXRJbmZvIiwgcmVm ZXJlbmNlZCBmcm9tOgogICAgICBfbWFpbiBpbiBjb25mdGVzdC02MWEyMTMubwpsZDogc3ltYm9s KHMpIG5vdCBmb3VuZCBmb3IgYXJjaGl0ZWN0dXJlIGFybTY0CmNsYW5nOiBlcnJvcjogbGlua2Vy IGNvbW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEgKHVzZSAtdiB0byBzZWUgaW52b2NhdGlv bikKY29uZmlndXJlOjE4NjU4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIzMS4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAzMS4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAj ZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBIQVZFX01BSUxVVElMUyAxCnwgI2RlZmlu ZSBHQ19SRU1FTUJFUl9MQVNUX01BUktFRCAxCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9X Q0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVVRTTkFNRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElM X0ggMQp8ICNkZWZpbmUgSEFWRV9TQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSCAxCnwgI2RlZmlu ZSBIQVZFX1NBTklUSVpFUl9BU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJ WkVSX0NPTU1PTl9JTlRFUkZBQ0VfREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0gg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5f SCAxCnwgI2RlZmluZSBIQVZFX1NUREJPT0xfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwg I2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NURENLRElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1JBTkRPTV9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9O RVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0xJTlVYX1NPVVJDRV9DT01QQVQgMQp8 ICNkZWZpbmUgX19VU0VfTUlOR1dfQU5TSV9TVERJTyAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwg I2RlZmluZSBTWVNURU1fVFlQRSAiZGFyd2luIgp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUX0lGX0ggMQp8ICNkZWZp bmUgSEFWRV9JRkFERFJTX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRfSUZfRExfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfRkxBR1MgMQp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZS RVFfSUZSX0JST0FEQUREUiAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUiAx CnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUl9TQV9MRU4gMQp8ICNkZWZpbmUg SEFWRV9TVFJVQ1RfUEFTU1dEX1BXX0dFQ09TIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3 LT5wd19nZWNvcwp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIE5T X1NFTEZfQ09OVEFJTkVEIDEKfCAjZGVmaW5lIE5BVElWRV9PQkpDX0lOU1RBTkNFVFlQRSAxCnwg I2RlZmluZSBBTElHTk9GX0lOVCA0CnwgI2RlZmluZSBBTElHTk9GX0xPTkcgOAp8ICNkZWZpbmUg QUxJR05PRl9MT05HX0xPTkcgOAp8ICNkZWZpbmUgU0laRU9GX0xPTkcgOAp8ICNkZWZpbmUgSEFW RV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9TVERBTElHTl9IIDEK fCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIEhBVkVfRk9SSyAxCnwgI2RlZmluZSBIQVZFX1ZGT1JLIDEKfCAjZGVmaW5lIEhBVkVfRkNI TU9EIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhOQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEgg MQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVm aW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9G RE9QRU5ESVIgMQp8ICNkZWZpbmUgSEFWRV9MSVNUWEFUVFIgMQp8ICNkZWZpbmUgSEFWRV9GU1RB VEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkg MQp8ICNkZWZpbmUgSEFWRV9NRU1TRVRfUyAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwg I2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmlu ZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFW RV9MT0NBTFRJTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVERUQUJMRVNJWkUgMQp8ICNkZWZpbmUg U1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9QVEhS RUFEIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgV2ViUEdldEluZm8gdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBXZWJQR2V0SW5mby4K fCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9m ZGF5LiAgKi8KfCAjZGVmaW5lIFdlYlBHZXRJbmZvIGlubm9jdW91c19XZWJQR2V0SW5mbwp8IAp8 IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKfCAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIFdlYlBHZXRJ bmZvICh2b2lkKTsgYmVsb3cuICAqLwp8IAp8ICNpbmNsdWRlIDxsaW1pdHMuaD4KfCAjdW5kZWYg V2ViUEdldEluZm8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIFdlYlBHZXRJbmZvICh2b2lkKTsKfCAvKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1l bnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl IGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9XZWJQR2V0 SW5mbyB8fCBkZWZpbmVkIF9fc3R1Yl9fX1dlYlBHZXRJbmZvCnwgY2hva2UgbWUKfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICh2b2lkKQp8IHsKfCByZXR1cm4gV2ViUEdldEluZm8gKCk7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxODY1ODogcmVzdWx0OiBubwpjb25maWd1cmU6 MTg3NjQ6IGNoZWNraW5nIGZvciBsaWJ3ZWJwZGVtdXggPj0gMC42LjAgbGlid2VicGRlY29kZXIg Pj0gMC42LjAKY29uZmlndXJlOjE4NzcxOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVy cm9ycyAiJFdFQlBfTU9EVUxFIgpjb25maWd1cmU6MTg3NzQ6ICQ/ID0gMApjb25maWd1cmU6MTg3 ODg6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkV0VCUF9NT0RVTEUiCmNv bmZpZ3VyZToxODc5MTogJD8gPSAwCmNvbmZpZ3VyZToxODgyOTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjE4OTU2OiBjaGVja2luZyBmb3Igc3FsaXRlMwpjb25maWd1cmU6MTg5ODg6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZToxODk5ODogY2hlY2tpbmcgZm9yIHNxbGl0ZTNfbG9hZF9leHRlbnNpb24g aW4gLWxzcWxpdGUzCmNvbmZpZ3VyZToxOTAzOTogcmVzdWx0OiBubwpjb25maWd1cmU6MTk1Mjc6 IGNoZWNraW5nIGZvciBnZXRhZGRyaW5mb19hIGluIC1sYW5sCmNvbmZpZ3VyZToxOTU2ODogcmVz dWx0OiBubwpjb25maWd1cmU6MjAxMDk6IGNoZWNraW5nIGZvciBtYWxsb2NfdHJpbQpjb25maWd1 cmU6MjAxMDk6IHJlc3VsdDogbm8KY29uZmlndXJlOjIwMjE3OiBjaGVja2luZyBmb3IgZGJ1cy0x ID49IDEuMApjb25maWd1cmU6MjAyMjQ6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJy b3JzICJkYnVzLTEgPj0gMS4wIgpjb25maWd1cmU6MjAyMjc6ICQ/ID0gMApjb25maWd1cmU6MjAy NDE6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJkYnVzLTEgPj0gMS4wIgpj b25maWd1cmU6MjAyNDQ6ICQ/ID0gMApjb25maWd1cmU6MjAyODI6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToyMDI5NTogY2hlY2tpbmcgZm9yIGRidXNfd2F0Y2hfZ2V0X3VuaXhfZmQKY29uZmlndXJl OjIwMjk1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjAzMDE6IGNoZWNraW5nIGZvciBkYnVzX3R5 cGVfaXNfdmFsaWQKY29uZmlndXJlOjIwMzAxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjAzMDc6 IGNoZWNraW5nIGZvciBkYnVzX3ZhbGlkYXRlX2J1c19uYW1lCmNvbmZpZ3VyZToyMDMwNzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjIwMzEzOiBjaGVja2luZyBmb3IgZGJ1c192YWxpZGF0ZV9wYXRo CmNvbmZpZ3VyZToyMDMxMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjIwMzE5OiBjaGVja2luZyBm b3IgZGJ1c192YWxpZGF0ZV9pbnRlcmZhY2UKY29uZmlndXJlOjIwMzE5OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MjAzMjU6IGNoZWNraW5nIGZvciBkYnVzX3ZhbGlkYXRlX21lbWJlcgpjb25maWd1 cmU6MjAzMjU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMDMzMTogY2hlY2tpbmcgZm9yIGRidXNf bWVzc2FnZV9zZXRfYWxsb3dfaW50ZXJhY3RpdmVfYXV0aG9yaXphdGlvbgpjb25maWd1cmU6MjAz MzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMTAyNTogY2hlY2tpbmcgZm9yIGxnZXRmaWxlY29u IGluIC1sc2VsaW51eApjb25maWd1cmU6MjEwNjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjIxMTg4 OiBjaGVja2luZyBmb3IgZ251dGxzID49IDIuMTIuMgpjb25maWd1cmU6MjExOTU6ICRQS0dfQ09O RklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnbnV0bHMgPj0gMi4xMi4yIgpjb25maWd1cmU6 MjExOTg6ICQ/ID0gMApjb25maWd1cmU6MjEyMTI6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJp bnQtZXJyb3JzICJnbnV0bHMgPj0gMi4xMi4yIgpjb25maWd1cmU6MjEyMTU6ICQ/ID0gMApjb25m aWd1cmU6MjEyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMTM3NDogY2hlY2tpbmcgZm9yIGxp YnN5c3RlbWQgPj0gMjIyCmNvbmZpZ3VyZToyMTM4MTogJFBLR19DT05GSUcgLS1leGlzdHMgLS1w cmludC1lcnJvcnMgImxpYnN5c3RlbWQgPj0gMjIyIgpQYWNrYWdlIGxpYnN5c3RlbWQgd2FzIG5v dCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxk IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGxpYnN5c3RlbWQucGMnCnRvIHRoZSBQS0df Q09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKUGFja2FnZSAnbGlic3lzdGVtZCcgbm90 IGZvdW5kCmNvbmZpZ3VyZToyMTM4NDogJD8gPSAxCmNvbmZpZ3VyZToyMTM5ODogJFBLR19DT05G SUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImxpYnN5c3RlbWQgPj0gMjIyIgpQYWNrYWdlIGxp YnN5c3RlbWQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVy aGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGxpYnN5c3RlbWQu cGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKUGFja2FnZSAn bGlic3lzdGVtZCcgbm90IGZvdW5kCmNvbmZpZ3VyZToyMTQwMTogJD8gPSAxCmNvbmZpZ3VyZToy MTQxNTogcmVzdWx0OiBubwpQYWNrYWdlICdsaWJzeXN0ZW1kJyBub3QgZm91bmQKY29uZmlndXJl OjIxNTU4OiBjaGVja2luZyBmb3IgdHJlZS1zaXR0ZXIgPj0gMC4yMC4yCmNvbmZpZ3VyZToyMTU2 NTogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgInRyZWUtc2l0dGVyID49IDAu MjAuMiIKY29uZmlndXJlOjIxNTY4OiAkPyA9IDAKY29uZmlndXJlOjIxNTgyOiAkUEtHX0NPTkZJ RyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAidHJlZS1zaXR0ZXIgPj0gMC4yMC4yIgpjb25maWd1 cmU6MjE1ODU6ICQ/ID0gMApjb25maWd1cmU6MjE2MjM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToy MTg2ODogY2hlY2tpbmcgZm9yIHN5cy9pbm90aWZ5LmgKY29uZmlndXJlOjIxODY4OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyMjAwMDogY2hlY2tpbmcgZm9yIGxpYmtxdWV1ZQpjb25maWd1cmU6MjIw MDc6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJsaWJrcXVldWUiClBhY2th Z2UgbGlia3F1ZXVlIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGgu ClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBsaWJrcXVl dWUucGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKUGFja2Fn ZSAnbGlia3F1ZXVlJyBub3QgZm91bmQKY29uZmlndXJlOjIyMDEwOiAkPyA9IDEKY29uZmlndXJl OjIyMDI0OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlia3F1ZXVlIgpQ YWNrYWdlIGxpYmtxdWV1ZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBw YXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgbGli a3F1ZXVlLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlClBh Y2thZ2UgJ2xpYmtxdWV1ZScgbm90IGZvdW5kCmNvbmZpZ3VyZToyMjAyNzogJD8gPSAxCmNvbmZp Z3VyZToyMjA0MTogcmVzdWx0OiBubwpQYWNrYWdlICdsaWJrcXVldWUnIG5vdCBmb3VuZApjb25m aWd1cmU6MjIwODI6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcga3F1ZXVlCmNvbmZp Z3VyZToyMjE0MDogcmVzdWx0OiBub25lIHJlcXVpcmVkCmNvbmZpZ3VyZToyMjg1NzogY2xhbmcg LWMgLVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2VkLXJlc3VsdCAtZyAtRiAvQXBwbGlj YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0 Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mg LVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVudW0gLVduby1taXNzaW5nLW1ldGhv ZC1yZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAtV25vLXN0cmljdC1wcm90b3R5cGVz IC1Xbm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIC1PIC1pc3lz dGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnJzdmcvMi42MC4wL2luY2x1ZGUvbGlicnN2Zy0y LjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnRpZmYvNC43LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0 L2hvbWVicmV3L29wdC96c3RkL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIv eHovNS44LjEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9qcGVnLXR1cmJvL2lu Y2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUv Y2Fpcm8gLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGFuZ28vMS41Ni4zL2luY2x1ZGUvcGFuZ28t MS4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dsaWIvMi44NC4wXzEvaW5jbHVkZSAt aXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9mcmliaWRpLzEuMC4xNi9pbmNsdWRlL2ZyaWJp ZGkgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZm9udGNvbmZpZy8yLjE2LjAvaW5jbHVk ZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4ZXh0LzEuMy42L2luY2x1ZGUgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIveG9yZ3Byb3RvLzIwMjQuMS9pbmNsdWRlIC1pc3lz dGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhyZW5kZXIvMC45LjEyL2luY2x1ZGUgLWlzeXN0 ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieDExLzEuOC4xMi9pbmNsdWRlIC1pc3lzdGVtIC9v cHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhjYi8xLjE3LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hv bWVicmV3L0NlbGxhci9saWJ4YXUvMS4wLjEyL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJl dy9DZWxsYXIvbGlieGRtY3AvMS4xLjUvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0Nl bGxhci9waXhtYW4vMC40NC4yL2luY2x1ZGUvcGl4bWFuLTEgLWlzeXN0ZW0gL29wdC9ob21lYnJl dy9DZWxsYXIvaGFyZmJ1enovMTEuMC4xL2luY2x1ZGUvaGFyZmJ1enogLWlzeXN0ZW0gL29wdC9o b21lYnJldy9vcHQvZnJlZXR5cGUvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gL29wdC9ob21l YnJldy9vcHQvbGlicG5nL2luY2x1ZGUvbGlicG5nMTYgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvZ3JhcGhpdGUyLzEuMy4xNC9pbmNsdWRlIC1pc3lzdGVtIC9MaWJyYXJ5L0RldmVsb3Bl ci9Db21tYW5kTGluZVRvb2xzL1NES3MvTWFjT1NYMTUuc2RrL3Vzci9pbmNsdWRlL2ZmaSAtaXN5 c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGliLzIuODQuMF8xL2luY2x1ZGUvZ2xpYi0yLjAg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9saWIvZ2xpYi0yLjAv aW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9nZXR0ZXh0L2luY2x1ZGUgLWlzeXN0 ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGNyZTIvMTAuNDUvaW5jbHVkZSAgICBjb25mdGVzdC5j ID4mNQpjb25maWd1cmU6MjI4NTc6ICQ/ID0gMApjb25maWd1cmU6Mjc3ODY6IGNoZWNraW5nIGZv ciBqcGVnbGliIDZiIG9yIGxhdGVyCmNvbmZpZ3VyZToyNzgyMDogY2xhbmcgLW8gY29uZnRlc3Qg LVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2VkLXJlc3VsdCAtZyAtRiAvQXBwbGljYXRp b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9y bS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MgLVdu by1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVudW0gLVduby1taXNzaW5nLW1ldGhvZC1y ZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAtV25vLXN0cmljdC1wcm90b3R5cGVzIC1X bm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIC1PIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnJzdmcvMi42MC4wL2luY2x1ZGUvbGlicnN2Zy0yLjAg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIC9v cHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnRpZmYvNC43LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hv bWVicmV3L29wdC96c3RkL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIveHov NS44LjEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9qcGVnLXR1cmJvL2luY2x1 ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUvY2Fp cm8gLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGFuZ28vMS41Ni4zL2luY2x1ZGUvcGFuZ28tMS4w IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dsaWIvMi44NC4wXzEvaW5jbHVkZSAtaXN5 c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9mcmliaWRpLzEuMC4xNi9pbmNsdWRlL2ZyaWJpZGkg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZm9udGNvbmZpZy8yLjE2LjAvaW5jbHVkZSAt aXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4ZXh0LzEuMy42L2luY2x1ZGUgLWlzeXN0 ZW0gL29wdC9ob21lYnJldy9DZWxsYXIveG9yZ3Byb3RvLzIwMjQuMS9pbmNsdWRlIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhyZW5kZXIvMC45LjEyL2luY2x1ZGUgLWlzeXN0ZW0g L29wdC9ob21lYnJldy9DZWxsYXIvbGlieDExLzEuOC4xMi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQv aG9tZWJyZXcvQ2VsbGFyL2xpYnhjYi8xLjE3LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVi cmV3L0NlbGxhci9saWJ4YXUvMS4wLjEyL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvbGlieGRtY3AvMS4xLjUvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxh ci9waXhtYW4vMC40NC4yL2luY2x1ZGUvcGl4bWFuLTEgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvaGFyZmJ1enovMTEuMC4xL2luY2x1ZGUvaGFyZmJ1enogLWlzeXN0ZW0gL29wdC9ob21l YnJldy9vcHQvZnJlZXR5cGUvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gL29wdC9ob21lYnJl dy9vcHQvbGlicG5nL2luY2x1ZGUvbGlicG5nMTYgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxs YXIvZ3JhcGhpdGUyLzEuMy4xNC9pbmNsdWRlIC1pc3lzdGVtIC9MaWJyYXJ5L0RldmVsb3Blci9D b21tYW5kTGluZVRvb2xzL1NES3MvTWFjT1NYMTUuc2RrL3Vzci9pbmNsdWRlL2ZmaSAtaXN5c3Rl bSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGliLzIuODQuMF8xL2luY2x1ZGUvZ2xpYi0yLjAgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9saWIvZ2xpYi0yLjAvaW5j bHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9nZXR0ZXh0L2luY2x1ZGUgLWlzeXN0ZW0g L29wdC9ob21lYnJldy9DZWxsYXIvcGNyZTIvMTAuNDUvaW5jbHVkZSAgICAgY29uZnRlc3QuYyAt bHNxbGl0ZTMgICA+JjUKVW5kZWZpbmVkIHN5bWJvbHMgZm9yIGFyY2hpdGVjdHVyZSBhcm02NDoK ICAiX2pwZWdfQ3JlYXRlRGVjb21wcmVzcyIsIHJlZmVyZW5jZWQgZnJvbToKICAgICAgX21haW4g aW4gY29uZnRlc3QtOWVkNjc4Lm8KICAiX2pwZWdfZGVzdHJveV9kZWNvbXByZXNzIiwgcmVmZXJl bmNlZCBmcm9tOgogICAgICBfbWFpbiBpbiBjb25mdGVzdC05ZWQ2NzgubwpsZDogc3ltYm9sKHMp IG5vdCBmb3VuZCBmb3IgYXJjaGl0ZWN0dXJlIGFybTY0CmNsYW5nOiBlcnJvcjogbGlua2VyIGNv bW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEgKHVzZSAtdiB0byBzZWUgaW52b2NhdGlvbikK Y29uZmlndXJlOjI3ODIwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIz MS4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAzMS4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBIQVZFX01BSUxVVElMUyAxCnwgI2RlZmluZSBH Q19SRU1FTUJFUl9MQVNUX01BUktFRCAxCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VVRTTkFNRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElMX0gg MQp8ICNkZWZpbmUgSEFWRV9TQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSCAxCnwgI2RlZmluZSBI QVZFX1NBTklUSVpFUl9BU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJWkVS X0NPTU1PTl9JTlRFUkZBQ0VfREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAx CnwgI2RlZmluZSBIQVZFX1NUREJPT0xfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2Rl ZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NURENLRElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1JBTkRPTV9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRC U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0xJTlVYX1NPVVJDRV9DT01QQVQgMQp8ICNk ZWZpbmUgX19VU0VfTUlOR1dfQU5TSV9TVERJTyAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2Rl ZmluZSBTWVNURU1fVFlQRSAiZGFyd2luIgp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUX0lGX0ggMQp8ICNkZWZpbmUg SEFWRV9JRkFERFJTX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRfSUZfRExfSCAxCnwgI2RlZmluZSBI QVZFX1NUUlVDVF9JRlJFUV9JRlJfRkxBR1MgMQp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFf SUZSX0JST0FEQUREUiAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUiAxCnwg I2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUl9TQV9MRU4gMQp8ICNkZWZpbmUgSEFW RV9TVFJVQ1RfUEFTU1dEX1BXX0dFQ09TIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5w d19nZWNvcwp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIE5TX1NF TEZfQ09OVEFJTkVEIDEKfCAjZGVmaW5lIE5BVElWRV9PQkpDX0lOU1RBTkNFVFlQRSAxCnwgI2Rl ZmluZSBBTElHTk9GX0lOVCA0CnwgI2RlZmluZSBBTElHTk9GX0xPTkcgOAp8ICNkZWZpbmUgQUxJ R05PRl9MT05HX0xPTkcgOAp8ICNkZWZpbmUgU0laRU9GX0xPTkcgOAp8ICNkZWZpbmUgSEFWRV9T VFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9TVERBTElHTl9IIDEKfCAj ZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IEhBVkVfRk9SSyAxCnwgI2RlZmluZSBIQVZFX1ZGT1JLIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9E IDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhOQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8 ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5l IEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GRE9Q RU5ESVIgMQp8ICNkZWZpbmUgSEFWRV9MSVNUWEFUVFIgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFU IDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8 ICNkZWZpbmUgSEFWRV9NRU1TRVRfUyAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2Rl ZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBI QVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9M T0NBTFRJTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVERUQUJMRVNJWkUgMQp8ICNkZWZpbmUgU1lT VEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9XRUJQIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRFMyAxCnwgI2RlZmluZSBIQVZF X0RCVVMgMQp8ICNkZWZpbmUgSEFWRV9EQlVTX1dBVENIX0dFVF9VTklYX0ZEIDEKfCAjZGVmaW5l IEhBVkVfREJVU19UWVBFX0lTX1ZBTElEIDEKfCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFURV9C VVNfTkFNRSAxCnwgI2RlZmluZSBIQVZFX0RCVVNfVkFMSURBVEVfUEFUSCAxCnwgI2RlZmluZSBI QVZFX0RCVVNfVkFMSURBVEVfSU5URVJGQUNFIDEKfCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFU RV9NRU1CRVIgMQp8ICNkZWZpbmUgSEFWRV9EQlVTX01FU1NBR0VfU0VUX0FMTE9XX0lOVEVSQUNU SVZFX0FVVEhPUklaQVRJT04gMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFW RV9UUkVFX1NJVFRFUiAxCnwgI2RlZmluZSBIQVZFX0tRVUVVRSAxCnwgI2RlZmluZSBVU0VfRklM RV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUg SEFWRV9YSU0gMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICN1bmRlZiBIQVZFX1NURExJQl9IIC8qIEF2b2lkIGNvbmZpZy5oL2pwZWdsaWIuaCBjb2xsaXNp b24uICAqLwp8IAkJICAjaW5jbHVkZSA8c3RkaW8uaD4gLyoganBlZ2xpYi5oIG5lZWRzIEZJTEUg YW5kIHNpemVfdC4gICovCnwgCQkgICNpbmNsdWRlIDxqcGVnbGliLmg+CnwgCQkgICNpbmNsdWRl IDxqZXJyb3IuaD4KfCAJCSAgY2hhciB2ZXJpZnlbSlBFR19MSUJfVkVSU0lPTiA8IDYyID8gLTEg OiAxXTsKfCAJCSAgc3RydWN0IGpwZWdfZGVjb21wcmVzc19zdHJ1Y3QgY2luZm87CnwgCnwgaW50 CnwgbWFpbiAodm9pZCkKfCB7CnwgCnwgCQkgIGpwZWdfY3JlYXRlX2RlY29tcHJlc3MgKCZjaW5m byk7CnwgCQkgIFdBUk5NUyAoJmNpbmZvLCBKV1JOX0pQRUdfRU9GKTsKfCAJCSAganBlZ19kZXN0 cm95X2RlY29tcHJlc3MgKCZjaW5mbyk7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToyNzgyMDogY2xhbmcgLW8gY29uZnRlc3QgLVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1X dW51c2VkLXJlc3VsdCAtZyAtRiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl bG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2Rr L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MgLVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1m bGFnLWVudW0gLVduby1taXNzaW5nLW1ldGhvZC1yZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1h Y3JvcyAtV25vLXN0cmljdC1wcm90b3R5cGVzIC1Xbm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFi aWxpdHktY29tcGxldGVuZXNzIC1PIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnJz dmcvMi42MC4wL2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9pbmNs dWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnRpZmYv NC43LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC96c3RkL2luY2x1ZGUgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIveHovNS44LjEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0 L2hvbWVicmV3L29wdC9qcGVnLXR1cmJvL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIv cGFuZ28vMS41Ni4zL2luY2x1ZGUvcGFuZ28tMS4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2Vs bGFyL2dsaWIvMi44NC4wXzEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9m cmliaWRpLzEuMC4xNi9pbmNsdWRlL2ZyaWJpZGkgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxs YXIvZm9udGNvbmZpZy8yLjE2LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxh ci9saWJ4ZXh0LzEuMy42L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIveG9y Z3Byb3RvLzIwMjQuMS9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhy ZW5kZXIvMC45LjEyL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieDEx LzEuOC4xMi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhjYi8xLjE3 LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4YXUvMS4wLjEyL2lu Y2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGRtY3AvMS4xLjUvaW5jbHVk ZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9waXhtYW4vMC40NC4yL2luY2x1ZGUvcGl4 bWFuLTEgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvaGFyZmJ1enovMTEuMC4xL2luY2x1 ZGUvaGFyZmJ1enogLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvZnJlZXR5cGUvaW5jbHVkZS9m cmVldHlwZTIgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvbGlicG5nL2luY2x1ZGUvbGlicG5n MTYgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ3JhcGhpdGUyLzEuMy4xNC9pbmNsdWRl IC1pc3lzdGVtIC9MaWJyYXJ5L0RldmVsb3Blci9Db21tYW5kTGluZVRvb2xzL1NES3MvTWFjT1NY MTUuc2RrL3Vzci9pbmNsdWRlL2ZmaSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGli LzIuODQuMF8xL2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIv Z2xpYi8yLjg0LjBfMS9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3 L29wdC9nZXR0ZXh0L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGNyZTIv MTAuNDUvaW5jbHVkZSAgICAgY29uZnRlc3QuYyAtbHNxbGl0ZTMgICAtbGpwZWcgPiY1CmxkOiBs aWJyYXJ5ICdqcGVnJyBub3QgZm91bmQKY2xhbmc6IGVycm9yOiBsaW5rZXIgY29tbWFuZCBmYWls ZWQgd2l0aCBleGl0IGNvZGUgMSAodXNlIC12IHRvIHNlZSBpbnZvY2F0aW9uKQpjb25maWd1cmU6 Mjc4MjA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjMxLjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDMxLjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIEhBVkVfTUFJTFVUSUxTIDEKfCAjZGVmaW5lIEdDX1JFTUVNQkVS X0xBU1RfTUFSS0VEIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VVFNOQU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1VUSUxfSCAxCnwgI2RlZmlu ZSBIQVZFX1NBTklUSVpFUl9MU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJ WkVSX0FTQU5fSU5URVJGQUNFX0ggMQp8ICNkZWZpbmUgSEFWRV9TQU5JVElaRVJfQ09NTU9OX0lO VEVSRkFDRV9ERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCnwgI2RlZmluZSBI QVZFX01BTExPQ19NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5l IEhBVkVfU1REQk9PTF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVf VVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lO Rk9fSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVf SCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1REQ0tESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkFORE9N X0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfX0VYVEVO U0lPTlNfXyAxCnwgI2RlZmluZSBfTElOVVhfU09VUkNFX0NPTVBBVCAxCnwgI2RlZmluZSBfX1VT RV9NSU5HV19BTlNJX1NURElPIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJkYXJ3aW4iCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRfSUZfSCAxCnwgI2RlZmluZSBIQVZFX0lGQURE UlNfSCAxCnwgI2RlZmluZSBIQVZFX05FVF9JRl9ETF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSVUNU X0lGUkVRX0lGUl9GTEFHUyAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQlJPQURB RERSIDEKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0lGUkVRX0lGUl9BRERSIDEKfCAjZGVmaW5lIEhB VkVfU1RSVUNUX0lGUkVRX0lGUl9BRERSX1NBX0xFTiAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9Q QVNTV0RfUFdfR0VDT1MgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwg I2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgTlNfU0VMRl9DT05UQUlO RUQgMQp8ICNkZWZpbmUgTkFUSVZFX09CSkNfSU5TVEFOQ0VUWVBFIDEKfCAjZGVmaW5lIEFMSUdO T0ZfSU5UIDQKfCAjZGVmaW5lIEFMSUdOT0ZfTE9ORyA4CnwgI2RlZmluZSBBTElHTk9GX0xPTkdf TE9ORyA4CnwgI2RlZmluZSBTSVpFT0ZfTE9ORyA4CnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRS SUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1NUREFMSUdOX0ggMQp8ICNkZWZpbmUgSEFW RV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9GT1JL IDEKfCAjZGVmaW5lIEhBVkVfVkZPUksgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZp bmUgSEFWRV9VVE1QWE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFMUEFUSCAxCnwgI2RlZmluZSBI QVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hN T0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZET1BFTkRJUiAxCnwg I2RlZmluZSBIQVZFX0xJU1RYQVRUUiAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZp bmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX01FTVNFVF9TIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVf SVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9J TUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0xPQ0FMVElNRV9S IDEKfCAjZGVmaW5lIEhBVkVfR0VURFRBQkxFU0laRSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9D IDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQUQgMQp8ICNkZWZp bmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZF X1dFQlAgMQp8ICNkZWZpbmUgSEFWRV9TUUxJVEUzIDEKfCAjZGVmaW5lIEhBVkVfREJVUyAxCnwg I2RlZmluZSBIQVZFX0RCVVNfV0FUQ0hfR0VUX1VOSVhfRkQgMQp8ICNkZWZpbmUgSEFWRV9EQlVT X1RZUEVfSVNfVkFMSUQgMQp8ICNkZWZpbmUgSEFWRV9EQlVTX1ZBTElEQVRFX0JVU19OQU1FIDEK fCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFURV9QQVRIIDEKfCAjZGVmaW5lIEhBVkVfREJVU19W QUxJREFURV9JTlRFUkZBQ0UgMQp8ICNkZWZpbmUgSEFWRV9EQlVTX1ZBTElEQVRFX01FTUJFUiAx CnwgI2RlZmluZSBIQVZFX0RCVVNfTUVTU0FHRV9TRVRfQUxMT1dfSU5URVJBQ1RJVkVfQVVUSE9S SVpBVElPTiAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX1RSRUVfU0lU VEVSIDEKfCAjZGVmaW5lIEhBVkVfS1FVRVVFIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAx CnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBIQVZFX1hJTSAx CnwgI2RlZmluZSBVU0VfWElNIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI3VuZGVmIEhB VkVfU1RETElCX0ggLyogQXZvaWQgY29uZmlnLmgvanBlZ2xpYi5oIGNvbGxpc2lvbi4gICovCnwg CQkgICNpbmNsdWRlIDxzdGRpby5oPiAvKiBqcGVnbGliLmggbmVlZHMgRklMRSBhbmQgc2l6ZV90 LiAgKi8KfCAJCSAgI2luY2x1ZGUgPGpwZWdsaWIuaD4KfCAJCSAgI2luY2x1ZGUgPGplcnJvci5o Pgp8IAkJICBjaGFyIHZlcmlmeVtKUEVHX0xJQl9WRVJTSU9OIDwgNjIgPyAtMSA6IDFdOwp8IAkJ ICBzdHJ1Y3QganBlZ19kZWNvbXByZXNzX3N0cnVjdCBjaW5mbzsKfCAKfCBpbnQKfCBtYWluICh2 b2lkKQp8IHsKfCAKfCAJCSAganBlZ19jcmVhdGVfZGVjb21wcmVzcyAoJmNpbmZvKTsKfCAJCSAg V0FSTk1TICgmY2luZm8sIEpXUk5fSlBFR19FT0YpOwp8IAkJICBqcGVnX2Rlc3Ryb3lfZGVjb21w cmVzcyAoJmNpbmZvKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3ODM0 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzk1NDogY2hlY2tpbmcgZm9yIGxjbXMyCmNvbmZpZ3Vy ZToyNzk2MTogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImxjbXMyIgpjb25m aWd1cmU6Mjc5NjQ6ICQ/ID0gMApjb25maWd1cmU6Mjc5Nzg6ICRQS0dfQ09ORklHIC0tZXhpc3Rz IC0tcHJpbnQtZXJyb3JzICJsY21zMiIKY29uZmlndXJlOjI3OTgxOiAkPyA9IDAKY29uZmlndXJl OjI4MDE5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjgwNDM6IGNoZWNraW5nIGZvciBsaWJyYXJ5 IGNvbnRhaW5pbmcgaW5mbGF0ZUVuZApjb25maWd1cmU6MjgwNzU6IHJlc3VsdDogLWx6CmNvbmZp Z3VyZToyODE2NDogY2hlY2tpbmcgZm9yIGRsYWRkcgpjb25maWd1cmU6MjgxNjQ6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZToyODE3MDogY2hlY2tpbmcgZm9yIGRsZnVuYwpjb25maWd1cmU6MjgxNzA6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI4Nzg1OiBjaGVja2luZyBmb3IgbGlicG5nID49IDEuMC4w CmNvbmZpZ3VyZToyODc5MjogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImxp YnBuZyA+PSAxLjAuMCIKY29uZmlndXJlOjI4Nzk1OiAkPyA9IDAKY29uZmlndXJlOjI4ODA5OiAk UEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlicG5nID49IDEuMC4wIgpjb25m aWd1cmU6Mjg4MTI6ICQ/ID0gMApjb25maWd1cmU6Mjg4NTA6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToyODkyMjogY2hlY2tpbmcgd2hldGhlciBwbmdfbG9uZ2ptcCBpcyBkZWNsYXJlZApjb25maWd1 cmU6Mjg5MjI6IGNsYW5nIC1jIC1XZ251LWltYWdpbmFyeS1jb25zdGFudCAtV3VudXNlZC1yZXN1 bHQgLWcgLUYgL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm b3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGli cmFyeS9GcmFtZXdvcmtzIC1Xbm8taWdub3JlZC1hdHRyaWJ1dGVzIC1Xbm8tZmxhZy1lbnVtIC1X bm8tbWlzc2luZy1tZXRob2QtcmV0dXJuLXR5cGUgLVduby12YXJpYWRpYy1tYWNyb3MgLVduby1z dHJpY3QtcHJvdG90eXBlcyAtV25vLWF2YWlsYWJpbGl0eSAtV25vLW51bGxhYmlsaXR5LWNvbXBs ZXRlbmVzcyAtTyAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJyc3ZnLzIuNjAuMC9p bmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvaW5jbHVkZS9nZGstcGl4 YnVmLTIuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ0aWZmLzQuNy4wL2luY2x1 ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvenN0ZC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQv aG9tZWJyZXcvQ2VsbGFyL3h6LzUuOC4xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9v cHQvanBlZy10dXJiby9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJv LzEuMTguNC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJv LzEuMTguNC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BhbmdvLzEuNTYu My9pbmNsdWRlL3BhbmdvLTEuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGliLzIu ODQuMF8xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZnJpYmlkaS8xLjAu MTYvaW5jbHVkZS9mcmliaWRpIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2ZvbnRjb25m aWcvMi4xNi4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGV4dC8x LjMuNi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3hvcmdwcm90by8yMDI0 LjEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4cmVuZGVyLzAuOS4x Mi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYngxMS8xLjguMTIvaW5j bHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4Y2IvMS4xNy4wL2luY2x1ZGUg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGF1LzEuMC4xMi9pbmNsdWRlIC1pc3lz dGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhkbWNwLzEuMS41L2luY2x1ZGUgLWlzeXN0ZW0g L29wdC9ob21lYnJldy9DZWxsYXIvcGl4bWFuLzAuNDQuMi9pbmNsdWRlL3BpeG1hbi0xIC1pc3lz dGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2hhcmZidXp6LzExLjAuMS9pbmNsdWRlL2hhcmZidXp6 IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L2ZyZWV0eXBlL2luY2x1ZGUvZnJlZXR5cGUyIC1p c3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L2xpYnBuZy9pbmNsdWRlL2xpYnBuZzE2IC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dyYXBoaXRlMi8xLjMuMTQvaW5jbHVkZSAtaXN5c3RlbSAv TGlicmFyeS9EZXZlbG9wZXIvQ29tbWFuZExpbmVUb29scy9TREtzL01hY09TWDE1LnNkay91c3Iv aW5jbHVkZS9mZmkgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9p bmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dsaWIvMi44NC4w XzEvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvZ2V0dGV4 dC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BjcmUyLzEwLjQ1L2luY2x1 ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvbGlicG5nL2luY2x1ZGUvbGlicG5nMTYgICAg IGNvbmZ0ZXN0LmMgPiY1IC1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24KY29u ZmlndXJlOjI4OTIyOiAkPyA9IDAKY29uZmlndXJlOjI4OTIyOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6Mjg5Njc6IGNoZWNraW5nIGZvciB0aWZmaW8uaApjb25maWd1cmU6Mjg5Njc6IGNsYW5nIC1j IC1XZ251LWltYWdpbmFyeS1jb25zdGFudCAtV3VudXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxpY2F0 aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZv cm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIC1X bm8taWdub3JlZC1hdHRyaWJ1dGVzIC1Xbm8tZmxhZy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRob2Qt cmV0dXJuLXR5cGUgLVduby12YXJpYWRpYy1tYWNyb3MgLVduby1zdHJpY3QtcHJvdG90eXBlcyAt V25vLWF2YWlsYWJpbGl0eSAtV25vLW51bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyAtTyAtaXN5c3Rl bSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJyc3ZnLzIuNjAuMC9pbmNsdWRlL2xpYnJzdmctMi4w IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSAv b3B0L2hvbWVicmV3L0NlbGxhci9saWJ0aWZmLzQuNy4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9o b21lYnJldy9vcHQvenN0ZC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3h6 LzUuOC4xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvanBlZy10dXJiby9pbmNs dWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJvLzEuMTguNC9pbmNsdWRlL2Nh aXJvIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJvLzEuMTguNC9pbmNsdWRlIC1p c3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BhbmdvLzEuNTYuMy9pbmNsdWRlL3BhbmdvLTEu MCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGliLzIuODQuMF8xL2luY2x1ZGUgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZnJpYmlkaS8xLjAuMTYvaW5jbHVkZS9mcmliaWRp IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2ZvbnRjb25maWcvMi4xNi4wL2luY2x1ZGUg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGV4dC8xLjMuNi9pbmNsdWRlIC1pc3lz dGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3hvcmdwcm90by8yMDI0LjEvaW5jbHVkZSAtaXN5c3Rl bSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4cmVuZGVyLzAuOS4xMi9pbmNsdWRlIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYngxMS8xLjguMTIvaW5jbHVkZSAtaXN5c3RlbSAvb3B0 L2hvbWVicmV3L0NlbGxhci9saWJ4Y2IvMS4xNy4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21l YnJldy9DZWxsYXIvbGlieGF1LzEuMC4xMi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcv Q2VsbGFyL2xpYnhkbWNwLzEuMS41L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxs YXIvcGl4bWFuLzAuNDQuMi9pbmNsdWRlL3BpeG1hbi0xIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcv Q2VsbGFyL2hhcmZidXp6LzExLjAuMS9pbmNsdWRlL2hhcmZidXp6IC1pc3lzdGVtIC9vcHQvaG9t ZWJyZXcvb3B0L2ZyZWV0eXBlL2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIC9vcHQvaG9tZWJy ZXcvb3B0L2xpYnBuZy9pbmNsdWRlL2xpYnBuZzE2IC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2Vs bGFyL2dyYXBoaXRlMi8xLjMuMTQvaW5jbHVkZSAtaXN5c3RlbSAvTGlicmFyeS9EZXZlbG9wZXIv Q29tbWFuZExpbmVUb29scy9TREtzL01hY09TWDE1LnNkay91c3IvaW5jbHVkZS9mZmkgLWlzeXN0 ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9pbmNsdWRlL2dsaWItMi4wIC1p c3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dsaWIvMi44NC4wXzEvbGliL2dsaWItMi4wL2lu Y2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvZ2V0dGV4dC9pbmNsdWRlIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BjcmUyLzEwLjQ1L2luY2x1ZGUgICAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjI4OTY3OiAkPyA9IDAKY29uZmlndXJlOjI4OTY3OiByZXN1bHQ6IHllcwpj b25maWd1cmU6Mjg5NzM6IGNoZWNraW5nIGZvciBUSUZGR2V0VmVyc2lvbiBpbiAtbHRpZmYKY29u ZmlndXJlOjI5MDAyOiBjbGFuZyAtbyBjb25mdGVzdCAtV2dudS1pbWFnaW5hcnktY29uc3RhbnQg LVd1bnVzZWQtcmVzdWx0IC1nIC1GIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl dmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5z ZGsvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyAtV25vLWlnbm9yZWQtYXR0cmlidXRlcyAtV25v LWZsYWctZW51bSAtV25vLW1pc3NpbmctbWV0aG9kLXJldHVybi10eXBlIC1Xbm8tdmFyaWFkaWMt bWFjcm9zIC1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgLVduby1hdmFpbGFiaWxpdHkgLVduby1udWxs YWJpbGl0eS1jb21wbGV0ZW5lc3MgLU8gLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGli cnN2Zy8yLjYwLjAvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L2lu Y2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlidGlm Zi80LjcuMC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L3pzdGQvaW5jbHVkZSAt aXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci94ei81LjguMS9pbmNsdWRlIC1pc3lzdGVtIC9v cHQvaG9tZWJyZXcvb3B0L2pwZWctdHVyYm8vaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3 L0NlbGxhci9jYWlyby8xLjE4LjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSAvb3B0L2hvbWVicmV3 L0NlbGxhci9jYWlyby8xLjE4LjQvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxh ci9wYW5nby8xLjU2LjMvaW5jbHVkZS9wYW5nby0xLjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9D ZWxsYXIvZ2xpYi8yLjg0LjBfMS9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFy L2ZyaWJpZGkvMS4wLjE2L2luY2x1ZGUvZnJpYmlkaSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0Nl bGxhci9mb250Y29uZmlnLzIuMTYuMC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2Vs bGFyL2xpYnhleHQvMS4zLjYvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci94 b3JncHJvdG8vMjAyNC4xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGli eHJlbmRlci8wLjkuMTIvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4 MTEvMS44LjEyL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGNiLzEu MTcuMC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhhdS8xLjAuMTIv aW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4ZG1jcC8xLjEuNS9pbmNs dWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BpeG1hbi8wLjQ0LjIvaW5jbHVkZS9w aXhtYW4tMSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9oYXJmYnV6ei8xMS4wLjEvaW5j bHVkZS9oYXJmYnV6eiAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9mcmVldHlwZS9pbmNsdWRl L2ZyZWV0eXBlMiAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9saWJwbmcvaW5jbHVkZS9saWJw bmcxNiAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9ncmFwaGl0ZTIvMS4zLjE0L2luY2x1 ZGUgLWlzeXN0ZW0gL0xpYnJhcnkvRGV2ZWxvcGVyL0NvbW1hbmRMaW5lVG9vbHMvU0RLcy9NYWNP U1gxNS5zZGsvdXNyL2luY2x1ZGUvZmZpIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2ds aWIvMi44NC4wXzEvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxh ci9nbGliLzIuODQuMF8xL2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJy ZXcvb3B0L2dldHRleHQvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9wY3Jl Mi8xMC40NS9pbmNsdWRlICAgICBjb25mdGVzdC5jIC1sdGlmZiAtbHogLWxtIC1sc3FsaXRlMyAg ID4mNQpsZDogbGlicmFyeSAndGlmZicgbm90IGZvdW5kCmNsYW5nOiBlcnJvcjogbGlua2VyIGNv bW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEgKHVzZSAtdiB0byBzZWUgaW52b2NhdGlvbikK Y29uZmlndXJlOjI5MDAyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIz MS4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAzMS4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBIQVZFX01BSUxVVElMUyAxCnwgI2RlZmluZSBH Q19SRU1FTUJFUl9MQVNUX01BUktFRCAxCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VVRTTkFNRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElMX0gg MQp8ICNkZWZpbmUgSEFWRV9TQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSCAxCnwgI2RlZmluZSBI QVZFX1NBTklUSVpFUl9BU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJWkVS X0NPTU1PTl9JTlRFUkZBQ0VfREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAx CnwgI2RlZmluZSBIQVZFX1NUREJPT0xfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2Rl ZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NURENLRElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1JBTkRPTV9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRC U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0xJTlVYX1NPVVJDRV9DT01QQVQgMQp8ICNk ZWZpbmUgX19VU0VfTUlOR1dfQU5TSV9TVERJTyAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2Rl ZmluZSBTWVNURU1fVFlQRSAiZGFyd2luIgp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUX0lGX0ggMQp8ICNkZWZpbmUg SEFWRV9JRkFERFJTX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRfSUZfRExfSCAxCnwgI2RlZmluZSBI QVZFX1NUUlVDVF9JRlJFUV9JRlJfRkxBR1MgMQp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFf SUZSX0JST0FEQUREUiAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUiAxCnwg I2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUl9TQV9MRU4gMQp8ICNkZWZpbmUgSEFW RV9TVFJVQ1RfUEFTU1dEX1BXX0dFQ09TIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5w d19nZWNvcwp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIE5TX1NF TEZfQ09OVEFJTkVEIDEKfCAjZGVmaW5lIE5BVElWRV9PQkpDX0lOU1RBTkNFVFlQRSAxCnwgI2Rl ZmluZSBBTElHTk9GX0lOVCA0CnwgI2RlZmluZSBBTElHTk9GX0xPTkcgOAp8ICNkZWZpbmUgQUxJ R05PRl9MT05HX0xPTkcgOAp8ICNkZWZpbmUgU0laRU9GX0xPTkcgOAp8ICNkZWZpbmUgSEFWRV9T VFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9TVERBTElHTl9IIDEKfCAj ZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IEhBVkVfRk9SSyAxCnwgI2RlZmluZSBIQVZFX1ZGT1JLIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9E IDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhOQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8 ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5l IEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GRE9Q RU5ESVIgMQp8ICNkZWZpbmUgSEFWRV9MSVNUWEFUVFIgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFU IDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8 ICNkZWZpbmUgSEFWRV9NRU1TRVRfUyAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2Rl ZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBI QVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9M T0NBTFRJTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVERUQUJMRVNJWkUgMQp8ICNkZWZpbmUgU1lT VEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9XRUJQIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRFMyAxCnwgI2RlZmluZSBIQVZF X0RCVVMgMQp8ICNkZWZpbmUgSEFWRV9EQlVTX1dBVENIX0dFVF9VTklYX0ZEIDEKfCAjZGVmaW5l IEhBVkVfREJVU19UWVBFX0lTX1ZBTElEIDEKfCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFURV9C VVNfTkFNRSAxCnwgI2RlZmluZSBIQVZFX0RCVVNfVkFMSURBVEVfUEFUSCAxCnwgI2RlZmluZSBI QVZFX0RCVVNfVkFMSURBVEVfSU5URVJGQUNFIDEKfCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFU RV9NRU1CRVIgMQp8ICNkZWZpbmUgSEFWRV9EQlVTX01FU1NBR0VfU0VUX0FMTE9XX0lOVEVSQUNU SVZFX0FVVEhPUklaQVRJT04gMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFW RV9UUkVFX1NJVFRFUiAxCnwgI2RlZmluZSBIQVZFX0tRVUVVRSAxCnwgI2RlZmluZSBVU0VfRklM RV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUg SEFWRV9YSU0gMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAj ZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBEWU5BTUlDX0xJQl9TVUZGSVggIi5keWxpYiIK fCAjZGVmaW5lIERZTkFNSUNfTElCX1NFQ09OREFSWV9TVUZGSVggIi5zbyIKfCAjZGVmaW5lIEhB VkVfRExBRERSIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NV RkZJWCAiLmR5bGliIgp8ICNkZWZpbmUgTU9EVUxFU19TRUNPTkRBUllfU1VGRklYICIuc28iCnwg I2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBt aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVu IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuCnwgICAgVGhlICdleHRl cm4gIkMiJyBpcyBmb3IgYnVpbGRzIGJ5IEMrKyBjb21waWxlcnM7CnwgICAgYWx0aG91Z2ggdGhp cyBpcyBub3QgZ2VuZXJhbGx5IHN1cHBvcnRlZCBpbiBDIGNvZGUgc3VwcG9ydGluZyBpdCBoZXJl CnwgICAgaGFzIGxpdHRsZSBjb3N0IGFuZCBzb21lIHByYWN0aWNhbCBiZW5lZml0IChzciAxMTA1 MzIpLiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hh ciBUSUZGR2V0VmVyc2lvbiAodm9pZCk7CnwgaW50CnwgbWFpbiAodm9pZCkKfCB7CnwgcmV0dXJu IFRJRkZHZXRWZXJzaW9uICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjkw MTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5MTQ3OiBjaGVja2luZyBmb3IgZ2lmX2xpYi5oCmNv bmZpZ3VyZToyOTE0NzogY2xhbmcgLWMgLVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2Vk LXJlc3VsdCAtZyAtRiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv UGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MgLVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVu dW0gLVduby1taXNzaW5nLW1ldGhvZC1yZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAt V25vLXN0cmljdC1wcm90b3R5cGVzIC1Xbm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHkt Y29tcGxldGVuZXNzIC1PIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnJzdmcvMi42 MC4wL2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9pbmNsdWRlL2dk ay1waXhidWYtMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnRpZmYvNC43LjAv aW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC96c3RkL2luY2x1ZGUgLWlzeXN0ZW0g L29wdC9ob21lYnJldy9DZWxsYXIveHovNS44LjEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVi cmV3L29wdC9qcGVnLXR1cmJvL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIv Y2Fpcm8vMS4xOC40L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIv Y2Fpcm8vMS4xOC40L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGFuZ28v MS41Ni4zL2luY2x1ZGUvcGFuZ28tMS4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2ds aWIvMi44NC4wXzEvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9mcmliaWRp LzEuMC4xNi9pbmNsdWRlL2ZyaWJpZGkgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZm9u dGNvbmZpZy8yLjE2LjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4 ZXh0LzEuMy42L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIveG9yZ3Byb3Rv LzIwMjQuMS9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhyZW5kZXIv MC45LjEyL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieDExLzEuOC4x Mi9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhjYi8xLjE3LjAvaW5j bHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4YXUvMS4wLjEyL2luY2x1ZGUg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGRtY3AvMS4xLjUvaW5jbHVkZSAtaXN5 c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9waXhtYW4vMC40NC4yL2luY2x1ZGUvcGl4bWFuLTEg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvaGFyZmJ1enovMTEuMC4xL2luY2x1ZGUvaGFy ZmJ1enogLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvZnJlZXR5cGUvaW5jbHVkZS9mcmVldHlw ZTIgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvbGlicG5nL2luY2x1ZGUvbGlicG5nMTYgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ3JhcGhpdGUyLzEuMy4xNC9pbmNsdWRlIC1pc3lz dGVtIC9MaWJyYXJ5L0RldmVsb3Blci9Db21tYW5kTGluZVRvb2xzL1NES3MvTWFjT1NYMTUuc2Rr L3Vzci9pbmNsdWRlL2ZmaSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGliLzIuODQu MF8xL2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ2xpYi8y Ljg0LjBfMS9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9n ZXR0ZXh0L2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcGNyZTIvMTAuNDUv aW5jbHVkZSAgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjE3MzoxMDogZmF0YWwgZXJyb3I6 ICdnaWZfbGliLmgnIGZpbGUgbm90IGZvdW5kCiAgMTczIHwgI2luY2x1ZGUgPGdpZl9saWIuaD4K ICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fgoxIGVycm9yIGdlbmVyYXRlZC4KY29uZmlndXJl OjI5MTQ3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIzMS4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAzMS4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVf UERVTVBFUiAxCnwgI2RlZmluZSBIQVZFX01BSUxVVElMUyAxCnwgI2RlZmluZSBHQ19SRU1FTUJF Ul9MQVNUX01BUktFRCAxCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVVRTTkFNRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElMX0ggMQp8ICNkZWZp bmUgSEFWRV9TQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1NBTklU SVpFUl9BU0FOX0lOVEVSRkFDRV9IIDEKfCAjZGVmaW5lIEhBVkVfU0FOSVRJWkVSX0NPTU1PTl9J TlRFUkZBQ0VfREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmlu ZSBIQVZFX1NUREJPT0xfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZF X1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJ TkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1Rf SCAxCnwgI2RlZmluZSBIQVZFX1NURENLRElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JBTkRP TV9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX19FWFRF TlNJT05TX18gMQp8ICNkZWZpbmUgX0xJTlVYX1NPVVJDRV9DT01QQVQgMQp8ICNkZWZpbmUgX19V U0VfTUlOR1dfQU5TSV9TVERJTyAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAiZGFyd2luIgp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUX0lGX0ggMQp8ICNkZWZpbmUgSEFWRV9JRkFE RFJTX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRfSUZfRExfSCAxCnwgI2RlZmluZSBIQVZFX1NUUlVD VF9JRlJFUV9JRlJfRkxBR1MgMQp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFfSUZSX0JST0FE QUREUiAxCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUiAxCnwgI2RlZmluZSBI QVZFX1NUUlVDVF9JRlJFUV9JRlJfQUREUl9TQV9MRU4gMQp8ICNkZWZpbmUgSEFWRV9TVFJVQ1Rf UEFTU1dEX1BXX0dFQ09TIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8 ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIE5TX1NFTEZfQ09OVEFJ TkVEIDEKfCAjZGVmaW5lIE5BVElWRV9PQkpDX0lOU1RBTkNFVFlQRSAxCnwgI2RlZmluZSBBTElH Tk9GX0lOVCA0CnwgI2RlZmluZSBBTElHTk9GX0xPTkcgOAp8ICNkZWZpbmUgQUxJR05PRl9MT05H X0xPTkcgOAp8ICNkZWZpbmUgU0laRU9GX0xPTkcgOAp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRU UklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9TVERBTElHTl9IIDEKfCAjZGVmaW5lIEhB VkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfRk9S SyAxCnwgI2RlZmluZSBIQVZFX1ZGT1JLIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EIDEKfCAjZGVm aW5lIEhBVkVfVVRNUFhOQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8ICNkZWZpbmUg SEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENI TU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GRE9QRU5ESVIgMQp8 ICNkZWZpbmUgSEFWRV9MSVNUWEFUVFIgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVm aW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUg SEFWRV9NRU1TRVRfUyAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZF X0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRP SU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9MT0NBTFRJTUVf UiAxCnwgI2RlZmluZSBIQVZFX0dFVERUQUJMRVNJWkUgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExP QyAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEIDEKfCAjZGVm aW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFW RV9XRUJQIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRFMyAxCnwgI2RlZmluZSBIQVZFX0RCVVMgMQp8 ICNkZWZpbmUgSEFWRV9EQlVTX1dBVENIX0dFVF9VTklYX0ZEIDEKfCAjZGVmaW5lIEhBVkVfREJV U19UWVBFX0lTX1ZBTElEIDEKfCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFURV9CVVNfTkFNRSAx CnwgI2RlZmluZSBIQVZFX0RCVVNfVkFMSURBVEVfUEFUSCAxCnwgI2RlZmluZSBIQVZFX0RCVVNf VkFMSURBVEVfSU5URVJGQUNFIDEKfCAjZGVmaW5lIEhBVkVfREJVU19WQUxJREFURV9NRU1CRVIg MQp8ICNkZWZpbmUgSEFWRV9EQlVTX01FU1NBR0VfU0VUX0FMTE9XX0lOVEVSQUNUSVZFX0FVVEhP UklaQVRJT04gMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9UUkVFX1NJ VFRFUiAxCnwgI2RlZmluZSBIQVZFX0tRVUVVRSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkg MQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgSEFWRV9YSU0g MQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhB VkVfWkxJQiAxCnwgI2RlZmluZSBEWU5BTUlDX0xJQl9TVUZGSVggIi5keWxpYiIKfCAjZGVmaW5l IERZTkFNSUNfTElCX1NFQ09OREFSWV9TVUZGSVggIi5zbyIKfCAjZGVmaW5lIEhBVkVfRExBRERS IDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmR5 bGliIgp8ICNkZWZpbmUgTU9EVUxFU19TRUNPTkRBUllfU1VGRklYICIuc28iCnwgI2RlZmluZSBO QVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2lmZGVmIEhBVkVfU1RESU9f SAp8ICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERMSUJfSAp8 ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwg IyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9I CnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9I CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8Z2lmX2xpYi5oPgpj b25maWd1cmU6MjkxNDc6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5NDY4OiBjaGVja2luZyBmb3Ig Z3BtLmgKY29uZmlndXJlOjI5NDY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMTA5NjogY2hlY2tp bmcgZm9yIGxpYnhtbC0yLjAgPiAyLjYuMTcKY29uZmlndXJlOjMxMTAzOiAkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlieG1sLTIuMCA+IDIuNi4xNyIKY29uZmlndXJlOjMx MTA2OiAkPyA9IDAKY29uZmlndXJlOjMxMTIwOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50 LWVycm9ycyAibGlieG1sLTIuMCA+IDIuNi4xNyIKY29uZmlndXJlOjMxMTIzOiAkPyA9IDAKY29u ZmlndXJlOjMxMTYxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzEyMTI6IGNoZWNraW5nIGZvciBo dG1sUmVhZE1lbW9yeSBpbiAtbHhtbDIKY29uZmlndXJlOjMxMjUzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzE1Mjg6IGNoZWNraW5nIGZvciBsaW51eC9zZWNjb21wLmgKY29uZmlndXJlOjMxNTI4 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMTUyODogY2hlY2tpbmcgZm9yIGxpbnV4L2ZpbHRlci5o CmNvbmZpZ3VyZTozMTUyODogcmVzdWx0OiBubwpjb25maWd1cmU6MzE2Njk6IGNoZWNraW5nIGZv ciBsaWJzZWNjb21wID49IDIuNS4yCmNvbmZpZ3VyZTozMTY3NjogJFBLR19DT05GSUcgLS1leGlz dHMgLS1wcmludC1lcnJvcnMgImxpYnNlY2NvbXAgPj0gMi41LjIiClBhY2thZ2UgbGlic2VjY29t cCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlv dSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgbGlic2VjY29tcC5wYycKdG8g dGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpQYWNrYWdlICdsaWJzZWNj b21wJyBub3QgZm91bmQKY29uZmlndXJlOjMxNjc5OiAkPyA9IDEKY29uZmlndXJlOjMxNjkzOiAk UEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlic2VjY29tcCA+PSAyLjUuMiIK UGFja2FnZSBsaWJzZWNjb21wIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNo IHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBs aWJzZWNjb21wLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxl ClBhY2thZ2UgJ2xpYnNlY2NvbXAnIG5vdCBmb3VuZApjb25maWd1cmU6MzE2OTY6ICQ/ID0gMQpj b25maWd1cmU6MzE3MTA6IHJlc3VsdDogbm8KUGFja2FnZSAnbGlic2VjY29tcCcgbm90IGZvdW5k CmNvbmZpZ3VyZTozMTc1MDogY2hlY2tpbmcgZm9yIGFjY2VwdDQKY29uZmlndXJlOjMxNzUwOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMTc1NjogY2hlY2tpbmcgZm9yIGZjaGRpcgpjb25maWd1cmU6 MzE3NTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTc2MjogY2hlY2tpbmcgZm9yIGdldGhvc3Ru YW1lCmNvbmZpZ3VyZTozMTc2MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxNzY4OiBjaGVja2lu ZyBmb3IgZ2V0cnVzYWdlCmNvbmZpZ3VyZTozMTc2ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMx Nzc0OiBjaGVja2luZyBmb3IgZ2V0X2N1cnJlbnRfZGlyX25hbWUKY29uZmlndXJlOjMxNzc0OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMTc4MDogY2hlY2tpbmcgZm9yIGxyYW5kNDgKY29uZmlndXJl OjMxNzgwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE3ODY6IGNoZWNraW5nIGZvciByYW5kb20K Y29uZmlndXJlOjMxNzg2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE3OTI6IGNoZWNraW5nIGZv ciByaW50CmNvbmZpZ3VyZTozMTc5MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxNzk4OiBjaGVj a2luZyBmb3IgdGNkcmFpbgpjb25maWd1cmU6MzE3OTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToz MTgwNDogY2hlY2tpbmcgZm9yIHRydW5jCmNvbmZpZ3VyZTozMTgwNDogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjMxODEwOiBjaGVja2luZyBmb3Igc2VsZWN0CmNvbmZpZ3VyZTozMTgxMDogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjMxODE2OiBjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUKY29uZmlndXJl OjMxODE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE4MjI6IGNoZWNraW5nIGZvciBuZXdsb2Nh bGUKY29uZmlndXJlOjMxODIyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE4Mjg6IGNoZWNraW5n IGZvciBnZXRybGltaXQKY29uZmlndXJlOjMxODI4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE4 MzQ6IGNoZWNraW5nIGZvciBzZXRybGltaXQKY29uZmlndXJlOjMxODM0OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MzE4NDA6IGNoZWNraW5nIGZvciBzaHV0ZG93bgpjb25maWd1cmU6MzE4NDA6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozMTg0NjogY2hlY2tpbmcgZm9yIHB0aHJlYWRfc2lnbWFzawpj b25maWd1cmU6MzE4NDY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTg1MjogY2hlY2tpbmcgZm9y IHN0cnNpZ25hbApjb25maWd1cmU6MzE4NTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTg1ODog Y2hlY2tpbmcgZm9yIHNldGl0aW1lcgpjb25maWd1cmU6MzE4NTg6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTozMTg2NDogY2hlY2tpbmcgZm9yIHNlbmR0bwpjb25maWd1cmU6MzE4NjQ6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTozMTg3MDogY2hlY2tpbmcgZm9yIHJlY3Zmcm9tCmNvbmZpZ3VyZTozMTg3 MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxODc2OiBjaGVja2luZyBmb3IgZ2V0c29ja25hbWUK Y29uZmlndXJlOjMxODc2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE4ODI6IGNoZWNraW5nIGZv ciBnZXRpZmFkZHJzCmNvbmZpZ3VyZTozMTg4MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxODg4 OiBjaGVja2luZyBmb3IgZnJlZWlmYWRkcnMKY29uZmlndXJlOjMxODg4OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MzE4OTQ6IGNoZWNraW5nIGZvciBnYWlfc3RyZXJyb3IKY29uZmlndXJlOjMxODk0 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE5MDA6IGNoZWNraW5nIGZvciBzeW5jCmNvbmZpZ3Vy ZTozMTkwMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxOTA2OiBjaGVja2luZyBmb3IgZW5kcHdl bnQKY29uZmlndXJlOjMxOTA2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE5MTI6IGNoZWNraW5n IGZvciBnZXRncmVudApjb25maWd1cmU6MzE5MTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTkx ODogY2hlY2tpbmcgZm9yIGVuZGdyZW50CmNvbmZpZ3VyZTozMTkxODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjMxOTI0OiBjaGVja2luZyBmb3IgY2ZtYWtlcmF3CmNvbmZpZ3VyZTozMTkyNDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjMxOTMwOiBjaGVja2luZyBmb3IgY2ZzZXRzcGVlZApjb25maWd1 cmU6MzE5MzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTkzNjogY2hlY2tpbmcgZm9yIF9fZXhl Y3V0YWJsZV9zdGFydApjb25maWd1cmU6MzE5MzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjMxOTQy OiBjaGVja2luZyBmb3IgbG9nMgpjb25maWd1cmU6MzE5NDI6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTozMTk0ODogY2hlY2tpbmcgZm9yIHB0aHJlYWRfc2V0bmFtZV9ucApjb25maWd1cmU6MzE5NDg6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTk1NDogY2hlY2tpbmcgZm9yIHB0aHJlYWRfc2V0X25h bWVfbnAKY29uZmlndXJlOjMxOTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMTk2NTogY2hlY2tp bmcgZm9yIGdldHB3ZW50CmNvbmZpZ3VyZTozMjAxODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMy MDM2OiBjaGVja2luZyBmb3IgcmVuYW1lYXQyCmNvbmZpZ3VyZTozMjA4OTogcmVzdWx0OiBubwpj b25maWd1cmU6MzIxODY6IGNoZWNraW5nIHdoZXRoZXIgcHRocmVhZF9zZXRuYW1lX25wIHRha2Vz IGEgc2luZ2xlIGFyZ3VtZW50CmNvbmZpZ3VyZTozMjIxMzogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjMyMjYxOiBjaGVja2luZyBmb3IgYWxpZ25lZF9hbGxvYwpjb25maWd1cmU6MzIyNjE6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozMjI3MTogY2hlY2tpbmcgd2hldGhlciBhbGlnbmVkX2FsbG9jIGlz IGRlY2xhcmVkCmNvbmZpZ3VyZTozMjI3MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMyMjg0OiBj aGVja2luZyBmb3IgcG9zaXhfbWFkdmlzZQpjb25maWd1cmU6MzIyODQ6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTozMjI5MDogY2hlY2tpbmcgZm9yIG1hZHZpc2UKY29uZmlndXJlOjMyMjkwOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MzIyOTg6IGNoZWNraW5nIGZvciBfX2J1aWx0aW5fZnJhbWVfYWRk cmVzcwpjb25maWd1cmU6MzIzMjY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMjMzMzogY2hlY2tp bmcgZm9yIF9fYnVpbHRpbl91bndpbmRfaW5pdApjb25maWd1cmU6MzIzNjE6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTozMjM3MjogY2hlY2tpbmcgZm9yIGRlY2xhcmF0aW9ucyBvZiBmc2Vla28gYW5k IGZ0ZWxsbwpjb25maWd1cmU6MzI0NTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMjQ2ODogY2hl Y2tpbmcgZm9yIGdyYW50cHQKY29uZmlndXJlOjMyNDY4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MzI0Nzc6IGNoZWNraW5nIGZvciBnZXRwdApjb25maWd1cmU6MzI0Nzc6IHJlc3VsdDogbm8KY29u ZmlndXJlOjMyNDgzOiBjaGVja2luZyBmb3IgcG9zaXhfb3BlbnB0CmNvbmZpZ3VyZTozMjQ4Mzog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjMyNDk3OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWlu aW5nIHRwdXRzCmNvbmZpZ3VyZTozMjU3MjogcmVzdWx0OiAtbG5jdXJzZXMKY29uZmlndXJlOjMy Njg3OiBjaGVja2luZyB3aGV0aGVyIC1sbmN1cnNlcyBsaWJyYXJ5IGRlZmluZXMgQkMKY29uZmln dXJlOjMyNzE4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzI3MzU6IGNoZWNraW5nIGZvciB0aW1l cmZkIGludGVyZmFjZQpjb25maWd1cmU6MzI3NjU6IHJlc3VsdDogbm8KY29uZmlndXJlOjMyNzc0 OiBjaGVja2luZyB3aGV0aGVyIHNpZ25hbHMgY2FuIGJlIGhhbmRsZWQgb24gYWx0ZXJuYXRlIHN0 YWNrCmNvbmZpZ3VyZTozMjgwOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMzNTM4OiBjaGVja2lu ZyBmb3IgdmFsZ3JpbmQvdmFsZ3JpbmQuaApjb25maWd1cmU6MzM1Mzg6IHJlc3VsdDogbm8KY29u ZmlndXJlOjMzNTQ2OiBjaGVja2luZyBmb3Igc3RydWN0IHVuaXBhaXIudW5pY29kZQpjb25maWd1 cmU6MzM1NDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjMzNTYxOiBjaGVja2luZyBmb3IgcGlkX3QK Y29uZmlndXJlOjMzNTYxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzM2MDU6IGNoZWNraW5nIGZv ciB3b3JraW5nIGZvcmsKY29uZmlndXJlOjMzNjQzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzM2 NjQ6IGNoZWNraW5nIGZvciB3b3JraW5nIHZmb3JrCmNvbmZpZ3VyZTozMzc5NjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjMzODIyOiBjaGVja2luZyBmb3Igc25wcmludGYKY29uZmlndXJlOjMzODIy OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzM4Mjg6IGNoZWNraW5nIGZvciBvcGVuX21lbXN0cmVh bQpjb25maWd1cmU6MzM4Mjg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMzgzNjogY2hlY2tpbmcg Zm9yIHNwYXduLmgKY29uZmlndXJlOjMzODM2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzM4NDQ6 IGNoZWNraW5nIGZvciBwb3NpeF9zcGF3bgpjb25maWd1cmU6MzM4NDQ6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTozMzg1MDogY2hlY2tpbmcgZm9yIHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRj aGRpcgpjb25maWd1cmU6MzM4NTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjMzODU2OiBjaGVja2lu ZyBmb3IgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGNoZGlyX25wCmNvbmZpZ3VyZTozMzg1 NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMzODYyOiBjaGVja2luZyBmb3IgcG9zaXhfc3Bhd25h dHRyX3NldGZsYWdzCmNvbmZpZ3VyZTozMzg2MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMzODcz OiBjaGVja2luZyB3aGV0aGVyIFBPU0lYX1NQQVdOX1NFVFNJRCBpcyBkZWNsYXJlZApjb25maWd1 cmU6MzM4NzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMzg4OTogY2hlY2tpbmcgd2hldGhlciBH TGliIGlzIGxpbmtlZCBpbgpjb25maWd1cmU6MzM5MjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjMz OTQwOiBjaGVja2luZyBmb3IgbmxfbGFuZ2luZm8gYW5kIENPREVTRVQKY29uZmlndXJlOjMzOTY5 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzM5ODA6IGNoZWNraW5nIGZvciBubF9sYW5naW5mbyBh bmQgX05MX1BBUEVSX1dJRFRICmNvbmZpZ3VyZTozNDAwOTogcmVzdWx0OiBubwpjb25maWd1cmU6 MzQwMjE6IGNoZWNraW5nIGZvciBtYnN0YXRlX3QKY29uZmlndXJlOjM0MDQ5OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MzQ1NDc6IGNoZWNraW5nIGZvciBfc2V0am1wCmNvbmZpZ3VyZTozNDU4MTog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjM0NTkwOiBjaGVja2luZyBmb3Igc2lnc2V0am1wCmNvbmZp Z3VyZTozNDYyMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM0NzU1OiBjaGVja2luZyBQT1NJWCB0 ZXJtaW9zCmNvbmZpZ3VyZTozNDc4NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM0Nzk1OiBjaGVj a2luZyBzaXplIG9mIHNwZWVkX3QKY29uZmlndXJlOjM0ODE5OiByZXN1bHQ6IDgKY29uZmlndXJl OjM0ODM1OiBjaGVja2luZyBmb3IgdXNhYmxlIEZJT05SRUFECmNvbmZpZ3VyZTozNDg4MjogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjM0ODkwOiBjaGVja2luZyBmb3IgdXNhYmxlIFNJR0lPCmNvbmZp Z3VyZTozNDkxOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM1MTgzOiBjaGVja2luZyBmb3IgQy9D KysgcmVzdHJpY3Qga2V5d29yZApjb25maWd1cmU6MzUyMjM6IHJlc3VsdDogX19yZXN0cmljdF9f CmNvbmZpZ3VyZTozNTIzNTogY2hlY2tpbmcgZm9yIHR5cGVvZiBzeW50YXggYW5kIGtleXdvcmQg c3BlbGxpbmcKY29uZmlndXJlOjM1Mjc2OiByZXN1bHQ6IHR5cGVvZgpjb25maWd1cmU6MzUyOTA6 IGNoZWNraW5nIGZvciBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMKY29uZmlndXJlOjM1MzE3OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MzUzNzY6IGNoZWNraW5nIHdoZXRoZXIgbWFsbG9jICgwKSByZXR1 cm5zIG5vbm51bGwKY29uZmlndXJlOjM1NDI2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzU1MDU6 IGNoZWNraW5nIGZvciBzeXMvYWNsLmgKY29uZmlndXJlOjM1NTA1OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzU1MTY6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgYWNsX2dldF9maWxl CmNvbmZpZ3VyZTozNTU3NDogcmVzdWx0OiBub25lIHJlcXVpcmVkCmNvbmZpZ3VyZTozNTU4Mzog Y2hlY2tpbmcgZm9yIGFjbF9nZXRfZmlsZQpjb25maWd1cmU6MzU1ODM6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTozNTU4OTogY2hlY2tpbmcgZm9yIGFjbF9nZXRfZmQKY29uZmlndXJlOjM1NTg5OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6MzU1OTU6IGNoZWNraW5nIGZvciBhY2xfc2V0X2ZpbGUKY29u ZmlndXJlOjM1NTk1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzU2MDE6IGNoZWNraW5nIGZvciBh Y2xfc2V0X2ZkCmNvbmZpZ3VyZTozNTYwMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM1NjA3OiBj aGVja2luZyBmb3IgYWNsX2dldF9saW5rX25wCmNvbmZpZ3VyZTozNTYwNzogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjM1NjEzOiBjaGVja2luZyBmb3IgYWNsX2ZyZWUKY29uZmlndXJlOjM1NjEzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6MzU2MTk6IGNoZWNraW5nIGZvciBhY2xfZnJvbV9tb2RlCmNv bmZpZ3VyZTozNTYxOTogcmVzdWx0OiBubwpjb25maWd1cmU6MzU2MjU6IGNoZWNraW5nIGZvciBh Y2xfZnJvbV90ZXh0CmNvbmZpZ3VyZTozNTYyNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM1NjMx OiBjaGVja2luZyBmb3IgYWNsX2RlbGV0ZV9kZWZfZmlsZQpjb25maWd1cmU6MzU2MzE6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozNTYzNzogY2hlY2tpbmcgZm9yIGFjbF9leHRlbmRlZF9maWxlCmNv bmZpZ3VyZTozNTYzNzogcmVzdWx0OiBubwpjb25maWd1cmU6MzU2NDM6IGNoZWNraW5nIGZvciBh Y2xfZGVsZXRlX2ZkX25wCmNvbmZpZ3VyZTozNTY0MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM1 NjQ5OiBjaGVja2luZyBmb3IgYWNsX2RlbGV0ZV9maWxlX25wCmNvbmZpZ3VyZTozNTY0OTogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjM1NjU1OiBjaGVja2luZyBmb3IgYWNsX2NvcHlfZXh0X25hdGl2 ZQpjb25maWd1cmU6MzU2NTU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozNTY2MTogY2hlY2tpbmcg Zm9yIGFjbF9jcmVhdGVfZW50cnlfbnAKY29uZmlndXJlOjM1NjYxOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzU2Njc6IGNoZWNraW5nIGZvciBhY2xfdG9fc2hvcnRfdGV4dApjb25maWd1cmU6MzU2 Njc6IHJlc3VsdDogbm8KY29uZmlndXJlOjM1NjczOiBjaGVja2luZyBmb3IgYWNsX2ZyZWVfdGV4 dApjb25maWd1cmU6MzU2NzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjM1NjgyOiBjaGVja2luZyBm b3Igd29ya2luZyBhY2xfZ2V0X2ZpbGUKY29uZmlndXJlOjM1NzE3OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzU3MjU6IGNoZWNraW5nIGZvciBhY2wvbGliYWNsLmgKY29uZmlndXJlOjM1NzI1OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNTc0MzogY2hlY2tpbmcgZm9yIGFjbF9lbnRyaWVzCmNvbmZp Z3VyZTozNTc0MzogcmVzdWx0OiBubwpjb25maWd1cmU6MzU3NTc6IGNoZWNraW5nIGZvciBBQ0xf RklSU1RfRU5UUlkKY29uZmlndXJlOjM1Nzg2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzU3OTM6 IGNoZWNraW5nIGZvciBBQ0xfVFlQRV9FWFRFTkRFRApjb25maWd1cmU6MzU4MjI6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTozNjAxMjogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgKY29uZmln dXJlOjM2MDQxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzYwNDk6IGNoZWNraW5nIGZvciBhbGxv Y2EKY29uZmlndXJlOjM2MDk0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzYxNjg6IGNoZWNraW5n IGZvciBhIHJhY2UtZnJlZSBta2RpciAtcApjb25maWd1cmU6MzYyMTE6IHJlc3VsdDogL29wdC9o b21lYnJldy9iaW4vZ21rZGlyIC1wCmNvbmZpZ3VyZTozNjIxNjogY2hlY2tpbmcgd2hldGhlciB0 aGUgcHJlcHJvY2Vzc29yIHN1cHBvcnRzIGluY2x1ZGVfbmV4dApjb25maWd1cmU6MzYyODE6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozNjMwMzogY2hlY2tpbmcgd2hldGhlciBzb3VyY2UgY29kZSBs aW5lIGxlbmd0aCBpcyB1bmxpbWl0ZWQKY29uZmlndXJlOjM2MzMwOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzYzNTE6IGNoZWNraW5nIHdoZXRoZXIgZW5kdXRlbnQgaXMgZGVjbGFyZWQKY29uZmln dXJlOjM2MzUxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjM4MjogY2hlY2tpbmcgZm9yIHN0cnVj dCB1dG1weC51dF91c2VyCmNvbmZpZ3VyZTozNjM4MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM2 MzkyOiBjaGVja2luZyBmb3Igc3RydWN0IHV0bXAudXRfdXNlcgpjb25maWd1cmU6MzYzOTI6IHJl c3VsdDogbm8KY29uZmlndXJlOjM2NDAyOiBjaGVja2luZyBmb3Igc3RydWN0IHV0bXB4LnV0X25h bWUKY29uZmlndXJlOjM2NDAyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjQxMjogY2hlY2tpbmcg Zm9yIHN0cnVjdCB1dG1wLnV0X25hbWUKY29uZmlndXJlOjM2NDEyOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzY0MjI6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdXRtcHgudXRfdHlwZQpjb25maWd1cmU6 MzY0MjI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozNjQzMjogY2hlY2tpbmcgZm9yIHN0cnVjdCB1 dG1wLnV0X3R5cGUKY29uZmlndXJlOjM2NDMyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjQ0Mjog Y2hlY2tpbmcgZm9yIHN0cnVjdCB1dG1weC51dF9waWQKY29uZmlndXJlOjM2NDQyOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6MzY0NTI6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdXRtcC51dF9waWQKY29u ZmlndXJlOjM2NDUyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjQ2MjogY2hlY2tpbmcgZm9yIHN0 cnVjdCB1dG1wLnV0X3R2CmNvbmZpZ3VyZTozNjQ2MjogcmVzdWx0OiBubwpjb25maWd1cmU6MzY0 NzI6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdXRtcHgudXRfaG9zdApjb25maWd1cmU6MzY0NzI6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozNjQ4MjogY2hlY2tpbmcgZm9yIHN0cnVjdCB1dG1wLnV0X2hv c3QKY29uZmlndXJlOjM2NDgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzY0OTI6IGNoZWNraW5n IGZvciBzdHJ1Y3QgdXRtcHgudXRfaWQKY29uZmlndXJlOjM2NDkyOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MzY1MDI6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdXRtcC51dF9pZApjb25maWd1cmU6MzY1 MDI6IHJlc3VsdDogbm8KY29uZmlndXJlOjM2NTEyOiBjaGVja2luZyBmb3Igc3RydWN0IHV0bXB4 LnV0X3Nlc3Npb24KY29uZmlndXJlOjM2NTEyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjUyMjog Y2hlY2tpbmcgZm9yIHN0cnVjdCB1dG1wLnV0X3Nlc3Npb24KY29uZmlndXJlOjM2NTIyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTozNjUzMjogY2hlY2tpbmcgZm9yIHN0cnVjdCB1dG1weC51dF9leGl0 CmNvbmZpZ3VyZTozNjUzMjogcmVzdWx0OiBubwpjb25maWd1cmU6MzY1NDI6IGNoZWNraW5nIGZv ciBzdHJ1Y3QgdXRtcC51dF9leGl0CmNvbmZpZ3VyZTozNjU0MjogcmVzdWx0OiBubwpjb25maWd1 cmU6MzY1NTM6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdXRtcHgudXRfZXhpdC51dF9leGl0CmNvbmZp Z3VyZTozNjU1MzogcmVzdWx0OiBubwpjb25maWd1cmU6MzY1NjM6IGNoZWNraW5nIGZvciBzdHJ1 Y3QgdXRtcHgudXRfZXhpdC5lX2V4aXQKY29uZmlndXJlOjM2NTYzOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTozNjU3MzogY2hlY2tpbmcgZm9yIHN0cnVjdCB1dG1wLnV0X2V4aXQuZV9leGl0CmNvbmZp Z3VyZTozNjU3MzogcmVzdWx0OiBubwpjb25maWd1cmU6MzY1ODQ6IGNoZWNraW5nIGZvciBzdHJ1 Y3QgdXRtcHgudXRfZXhpdC51dF90ZXJtaW5hdGlvbgpjb25maWd1cmU6MzY1ODQ6IHJlc3VsdDog bm8KY29uZmlndXJlOjM2NTk0OiBjaGVja2luZyBmb3Igc3RydWN0IHV0bXB4LnV0X2V4aXQuZV90 ZXJtaW5hdGlvbgpjb25maWd1cmU6MzY1OTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjM2NjA0OiBj aGVja2luZyBmb3Igc3RydWN0IHV0bXAudXRfZXhpdC5lX3Rlcm1pbmF0aW9uCmNvbmZpZ3VyZToz NjYwNDogcmVzdWx0OiBubwpjb25maWd1cmU6MzY2MTY6IGNoZWNraW5nIHdoZXRoZXIgc3lzaW5m byBpcyBkZWNsYXJlZApjb25maWd1cmU6MzY2MTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjM2NjMx OiBjaGVja2luZyBmb3Igc3lzL3N5c2N0bC5oCmNvbmZpZ3VyZTozNjYzMTogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjM2NjQzOiBjaGVja2luZyBmb3Igc3lzY3RsCmNvbmZpZ3VyZTozNjY0MzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjM2NzQ3OiBjaGVja2luZyB3aGV0aGVyIGxzdGF0IGNvcnJlY3Rs eSBoYW5kbGVzIHRyYWlsaW5nIHNsYXNoCmNvbmZpZ3VyZTozNjgxMDogcmVzdWx0OiBubwpjb25m aWd1cmU6MzY4MjM6IGNoZWNraW5nIHdoZXRoZXIgLy8gaXMgZGlzdGluY3QgZnJvbSAvCmNvbmZp Z3VyZTozNjg1NDogcmVzdWx0OiBubwpjb25maWd1cmU6MzY4NjY6IGNoZWNraW5nIHdoZXRoZXIg cmVhbHBhdGggd29ya3MKY29uZmlndXJlOjM3MTAyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNzEy MzogY2hlY2tpbmcgZm9yIGZhY2Nlc3NhdApjb25maWd1cmU6MzcxNzY6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTozNzE5NDogY2hlY2tpbmcgZm9yIGdldGN3ZApjb25maWd1cmU6MzcxOTQ6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozNzg2NjogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlz IGJpZ2VuZGlhbgpjb25maWd1cmU6MzgwODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjM4MzI3OiBj aGVja2luZyBpZiBlbnZpcm9uIGlzIHByb3Blcmx5IGRlY2xhcmVkCmNvbmZpZ3VyZTozODM2MTog cmVzdWx0OiBubwpjb25maWd1cmU6MzgzNzg6IGNoZWNraW5nIGZvciBjb21wbGV0ZSBlcnJuby5o CmNvbmZpZ3VyZTozODQ1ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4NzcyOiBjaGVja2luZyB3 aGV0aGVyIGN0eXBlLmggZGVmaW5lcyBfX2hlYWRlcl9pbmxpbmUKY29uZmlndXJlOjM4Nzk2OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6Mzg5NjE6IGNoZWNraW5nIGZvciBtb2RlX3QKY29uZmlndXJl OjM4OTYxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzkwNzY6IGNoZWNraW5nIGZvciBsaWJyYXJ5 IGNvbnRhaW5pbmcgc2V0ZmlsZWNvbgpjb25maWd1cmU6MzkxMzQ6IHJlc3VsdDogbm8KY29uZmln dXJlOjM5MTkxOiBjaGVja2luZyB3aGV0aGVyIHN0cm1vZGUgaXMgZGVjbGFyZWQKY29uZmlndXJl OjM5MTkxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzkyNjA6IGNoZWNraW5nIHdoZXRoZXIgZ2V0 bGluZSBpcyBkZWNsYXJlZApjb25maWd1cmU6MzkyNjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToz OTY1NzogY2hlY2tpbmcgZm9yIGdldG9wdC5oCmNvbmZpZ3VyZTozOTY1NzogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjM5Njc0OiBjaGVja2luZyBmb3IgZ2V0b3B0X2xvbmdfb25seQpjb25maWd1cmU6 Mzk2NzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozOTY4ODogY2hlY2tpbmcgd2hldGhlciBnZXRv cHQgaXMgUE9TSVggY29tcGF0aWJsZQpjb25maWd1cmU6Mzk4NjM6IHJlc3VsdDogbm8KY29uZmln dXJlOjQwMTkxOiBjaGVja2luZyBmb3IgZ2xpYmMtY29tcGF0aWJsZSBzeXMvY2RlZnMuaApjb25m aWd1cmU6NDAyMTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjQwMjQ4OiBjaGVja2luZyB3aGV0aGVy IHRpbWVzcGVjX2dldCBpcyBkZWNsYXJlZApjb25maWd1cmU6NDAyNDg6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo0MDI1NDogY2hlY2tpbmcgZm9yIHRpbWVzcGVjX2dldApjb25maWd1cmU6NDAyOTc6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MDQyMzogY2hlY2tpbmcgZm9yIHN0cnVjdCB0aW1ldmFs CmNvbmZpZ3VyZTo0MDQ1ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQwNDYzOiBjaGVja2luZyBm b3Igd2lkZS1lbm91Z2ggc3RydWN0IHRpbWV2YWwudHZfc2VjIG1lbWJlcgpjb25maWd1cmU6NDA1 MDI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MDYwMjogY2hlY2tpbmcgd2hldGhlciBsaW1pdHMu aCBoYXMgV09SRF9CSVQsIEJPT0xfV0lEVEggZXRjLgpjb25maWd1cmU6NDA2Mzk6IHJlc3VsdDog bm8KY29uZmlndXJlOjQwNjc4OiBjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBwcm9kdWNl cyBtdWx0aS1hcmNoIGJpbmFyaWVzCmNvbmZpZ3VyZTo0MDcyMjogcmVzdWx0OiBubwpjb25maWd1 cmU6NDA4NTU6IGNoZWNraW5nIHdoZXRoZXIgc3RkaW50LmggY29uZm9ybXMgdG8gQzk5CmNvbmZp Z3VyZTo0MTEzNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQxMTQ2OiBjaGVja2luZyB3aGV0aGVy IHN0ZGludC5oIHdvcmtzIHdpdGhvdXQgSVNPIEMgcHJlZGVmaW5lcwpjb25maWd1cmU6NDExODc6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MTE5ODogY2hlY2tpbmcgd2hldGhlciBzdGRpbnQuaCBo YXMgVUlOVE1BWF9XSURUSCBldGMuCmNvbmZpZ3VyZTo0MTIzODogcmVzdWx0OiBubwpjb25maWd1 cmU6NDE3Nzg6IGNoZWNraW5nIHdoZXRoZXIgbWFsbG9jIGlzIHB0cmRpZmZfdCBzYWZlCmNvbmZp Z3VyZTo0MTgyNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQxODQ0OiBjaGVja2luZyB3aGV0aGVy IG1hbGxvYywgcmVhbGxvYywgY2FsbG9jIHNldCBlcnJubyBvbiBmYWlsdXJlCmNvbmZpZ3VyZTo0 MTg4NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQxOTA3OiBjaGVja2luZyB3aGV0aGVyIG1hbGxv YyAoMCkgcmV0dXJucyBub25udWxsCmNvbmZpZ3VyZTo0MTk1NzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjQyMDE5OiBjaGVja2luZyB3aGV0aGVyIG1lbW1lbSBpcyBkZWNsYXJlZApjb25maWd1cmU6 NDIwMTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MjIyNzogY2hlY2tpbmcgd2hldGhlciBtZW1y Y2hyIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0MjIyNzogcmVzdWx0OiBubwpjb25maWd1cmU6NDIy NDI6IGNoZWNraW5nIHdoZXRoZXIgPGxpbWl0cy5oPiBkZWZpbmVzIE1JTiBhbmQgTUFYCmNvbmZp Z3VyZTo0MjI3MDogcmVzdWx0OiBubwpjb25maWd1cmU6NDIyODM6IGNoZWNraW5nIHdoZXRoZXIg PHN5cy9wYXJhbS5oPiBkZWZpbmVzIE1JTiBhbmQgTUFYCmNvbmZpZ3VyZTo0MjMxMTogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjQyMzQ3OiBjaGVja2luZyB3aGV0aGVyIHRpbWVfdCBpcyBzaWduZWQK Y29uZmlndXJlOjQyMzc1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDIzODM6IGNoZWNraW5nIHdo ZXRoZXIgYWxhcm0gaXMgZGVjbGFyZWQKY29uZmlndXJlOjQyMzgzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6NDIzOTk6IGNoZWNraW5nIGZvciB3b3JraW5nIG1rdGltZQpjb25maWd1cmU6NDI2NjI6 IHJlc3VsdDogbm8KY29uZmlndXJlOjQyNzI4OiBjaGVja2luZyBmb3Igc3RydWN0IHRtLnRtX2dt dG9mZgpjb25maWd1cmU6NDI3Mjg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MjczODogY2hlY2tp bmcgZm9yIHN0cnVjdCB0bS50bV96b25lCmNvbmZpZ3VyZTo0MjczODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjQyNzY3OiBjaGVja2luZyB3aGV0aGVyIDxzeXMvc2VsZWN0Lmg+IGlzIHNlbGYtY29u dGFpbmVkCmNvbmZpZ3VyZTo0Mjg1MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQzMDIzOiBjaGVj a2luZyB3aGV0aGVyIHJlYWxsb2Mgc2hvdWxkIGFib3J0IHVwb24gdW5kZWZpbmVkIGJlaGF2aW91 cgpjb25maWd1cmU6NDMwMzI6IHJlc3VsdDogbm8KY29uZmlndXJlOjQzMDM1OiBjaGVja2luZyBm b3IgaW5saW5lCmNvbmZpZ3VyZTo0MzA2MjogcmVzdWx0OiBpbmxpbmUKY29uZmlndXJlOjQzMDgz OiBjaGVja2luZyBmb3Igc2lnc2V0X3QKY29uZmlndXJlOjQzMDgzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6NDMxODQ6IGNoZWNraW5nIGZvciB2b2xhdGlsZSBzaWdfYXRvbWljX3QKY29uZmlndXJl OjQzMTg0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDMyMDI6IGNoZWNraW5nIGZvciBzaWdoYW5k bGVyX3QKY29uZmlndXJlOjQzMjAyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0MzI3MDogY2hlY2tp bmcgZm9yIGdvb2QgbWF4X2FsaWduX3QKY29uZmlndXJlOjQzMzE4OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6NDMzMjU6IGNoZWNraW5nIHdoZXRoZXIgTlVMTCBjYW4gYmUgdXNlZCBpbiBhcmJpdHJh cnkgZXhwcmVzc2lvbnMKY29uZmlndXJlOjQzMzU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDMz NjE6IGNoZWNraW5nIGZvciB1bnJlYWNoYWJsZQpjb25maWd1cmU6NDMzOTI6IHJlc3VsdDogbm8K Y29uZmlndXJlOjQzMzk4OiBjaGVja2luZyB3aGV0aGVyIG51bGxwdHJfdCBuZWVkcyA8c3RkZGVm Lmg+CmNvbmZpZ3VyZTo0MzQxODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQzNDI1OiBjaGVja2lu ZyB3aGV0aGVyIDxzdGRkZWYuaD4gaXMgaWRlbXBvdGVudApjb25maWd1cmU6NDM0Mzk6IGNsYW5n IC1jIC1XZ251LWltYWdpbmFyeS1jb25zdGFudCAtV3VudXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxp Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxh dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz IC1Xbm8taWdub3JlZC1hdHRyaWJ1dGVzIC1Xbm8tZmxhZy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRo b2QtcmV0dXJuLXR5cGUgLVduby12YXJpYWRpYy1tYWNyb3MgLVduby1zdHJpY3QtcHJvdG90eXBl cyAtV25vLWF2YWlsYWJpbGl0eSAtV25vLW51bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyAtTyAgICBj b25mdGVzdC5jID4mNQpjb25maWd1cmU6NDM0Mzk6ICQ/ID0gMApjb25maWd1cmU6NDM0NTA6IHJl c3VsdDogZ3Vlc3NpbmcgeWVzCmNvbmZpZ3VyZTo0MzUzNzogY2hlY2tpbmcgd2hldGhlciBmY2xv c2VhbGwgaXMgZGVjbGFyZWQKY29uZmlndXJlOjQzNTM3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0 MzU0NzogY2hlY2tpbmcgd2hldGhlciBnZXR3IGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0MzU0Nzog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjQzNTU3OiBjaGVja2luZyB3aGV0aGVyIHB1dHcgaXMgZGVj bGFyZWQKY29uZmlndXJlOjQzNTU3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDM2NDM6IGNoZWNr aW5nIHdoaWNoIGZsYXZvciBvZiBwcmludGYgYXR0cmlidXRlIG1hdGNoZXMgaW50dHlwZXMgbWFj cm9zCmNvbmZpZ3VyZTo0MzY4MTogcmVzdWx0OiBzeXN0ZW0KY29uZmlndXJlOjQzNzE4OiBjaGVj a2luZyBmb3IgYW4gZW5nbGlzaCBVbmljb2RlIGxvY2FsZQpjb25maWd1cmU6NDM4NDE6IHJlc3Vs dDogZW5fVVMuVVRGLTgKY29uZmlndXJlOjQzODUyOiBjaGVja2luZyB3aGV0aGVyIGVjdnQgaXMg ZGVjbGFyZWQKY29uZmlndXJlOjQzODUyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDM4NjI6IGNo ZWNraW5nIHdoZXRoZXIgZmN2dCBpcyBkZWNsYXJlZApjb25maWd1cmU6NDM4NjI6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo0Mzg3MjogY2hlY2tpbmcgd2hldGhlciBnY3Z0IGlzIGRlY2xhcmVkCmNv bmZpZ3VyZTo0Mzg3MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQzOTY0OiBjaGVja2luZyB3aGV0 aGVyIE1CX0NVUl9NQVggaXMgY29ycmVjdApjb25maWd1cmU6NDQwMzY6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo0NDE0MjogY2hlY2tpbmcgd2hldGhlciBzdHJubGVuIGlzIGRlY2xhcmVkCmNvbmZp Z3VyZTo0NDE0MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MTUzOiBjaGVja2luZyB3aGV0aGVy IHN0cnRvaW1heCBpcyBkZWNsYXJlZApjb25maWd1cmU6NDQxNTM6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo0NDI2MTogY2hlY2tpbmcgd2hldGhlciBzdGF0IGZpbGUtbW9kZSBtYWNyb3MgYXJlIGJy b2tlbgpjb25maWd1cmU6NDQyOTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ0NDA1OiBjaGVja2lu ZyBmb3IgbmxpbmtfdApjb25maWd1cmU6NDQ0MDU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDUy NzogY2hlY2tpbmcgZm9yIGJsa3NpemVfdApjb25maWd1cmU6NDQ1Mjc6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo0NDUzODogY2hlY2tpbmcgZm9yIGJsa2NudF90CmNvbmZpZ3VyZTo0NDUzODogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQ0NTUzOiBjaGVja2luZyBmb3Igc3RydWN0IHRpbWVzcGVjIGlu IDx0aW1lLmg+CmNvbmZpZ3VyZTo0NDU4MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0NzgwOiBj aGVja2luZyBmb3IgVElNRV9VVEMgaW4gPHRpbWUuaD4KY29uZmlndXJlOjQ0ODA4OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NDQ4MTg6IGNoZWNraW5nIHdoZXRoZXIgZXhlY3ZwZSBpcyBkZWNsYXJl ZApjb25maWd1cmU6NDQ4MTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ0OTMxOiBjaGVja2luZyB3 aGV0aGVyIGNsZWFyZXJyX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0NDkzMTogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQ0OTQxOiBjaGVja2luZyB3aGV0aGVyIGZlb2ZfdW5sb2NrZWQg aXMgZGVjbGFyZWQKY29uZmlndXJlOjQ0OTQxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQ5NTE6 IGNoZWNraW5nIHdoZXRoZXIgZmVycm9yX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0 NDk1MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0OTYxOiBjaGVja2luZyB3aGV0aGVyIGZmbHVz aF91bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6NDQ5NjE6IHJlc3VsdDogbm8KY29uZmln dXJlOjQ0OTcxOiBjaGVja2luZyB3aGV0aGVyIGZnZXRzX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNv bmZpZ3VyZTo0NDk3MTogcmVzdWx0OiBubwpjb25maWd1cmU6NDQ5ODE6IGNoZWNraW5nIHdoZXRo ZXIgZnB1dGNfdW5sb2NrZWQgaXMgZGVjbGFyZWQKY29uZmlndXJlOjQ0OTgxOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo0NDk5MTogY2hlY2tpbmcgd2hldGhlciBmcHV0c191bmxvY2tlZCBpcyBkZWNs YXJlZApjb25maWd1cmU6NDQ5OTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ1MDAxOiBjaGVja2lu ZyB3aGV0aGVyIGZyZWFkX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0NTAwMTogcmVz dWx0OiBubwpjb25maWd1cmU6NDUwMTE6IGNoZWNraW5nIHdoZXRoZXIgZndyaXRlX3VubG9ja2Vk IGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0NTAxMTogcmVzdWx0OiBubwpjb25maWd1cmU6NDUwMjE6 IGNoZWNraW5nIHdoZXRoZXIgZ2V0Y191bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6NDUw MjE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NTAzMTogY2hlY2tpbmcgd2hldGhlciBnZXRjaGFy X3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0NTAzMTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjQ1MDQxOiBjaGVja2luZyB3aGV0aGVyIHB1dGNfdW5sb2NrZWQgaXMgZGVjbGFyZWQKY29u ZmlndXJlOjQ1MDQxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDUwNTE6IGNoZWNraW5nIHdoZXRo ZXIgcHV0Y2hhcl91bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6NDUwNTE6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo0NTM4NTogY2hlY2tpbmcgdHlwZSBvZiBhcnJheSBhcmd1bWVudCB0byBn ZXRncm91cHMKY29uZmlndXJlOjQ1NTAwOiByZXN1bHQ6IGdpZF90CmNvbmZpZ3VyZTo0NTUwNTog Y2hlY2tpbmcgd2hldGhlciBnZXRkZWxpbSBpcyBkZWNsYXJlZApjb25maWd1cmU6NDU1MDU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTo0NTUxNjogY2hlY2tpbmcgd2hldGhlciBnZXRkdGFibGVzaXpl IGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0NTUxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1NTI3 OiBjaGVja2luZyBmb3IgT19DTE9FWEVDCmNvbmZpZ3VyZTo0NTU1ODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjQ1NTYzOiBjaGVja2luZyBmb3IgcHJvbW90ZWQgbW9kZV90IHR5cGUKY29uZmlndXJl OjQ1NTkyOiByZXN1bHQ6IGludApjb25maWd1cmU6NDU1OTk6IGNoZWNraW5nIHdoZXRoZXIgdGhl IHV0aW1lcyBmdW5jdGlvbiB3b3Jrcwpjb25maWd1cmU6NDU3NTU6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo0NTc3MDogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgb3B0aW9uIHRvIGFsbG93IHdhcm5p bmdzCmNvbmZpZ3VyZTo0NTc5OTogcmVzdWx0OiAtV25vLWVycm9yCmNvbmZpZ3VyZTo0NTg0NTog Y2xhbmcgLVdnbnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2VkLXJlc3VsdCAtZyAtRiAvQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y a3MgLVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVudW0gLVduby1taXNzaW5nLW1l dGhvZC1yZXR1cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAtV25vLXN0cmljdC1wcm90b3R5 cGVzIC1Xbm8tYXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIC1PICAg IC1FIGNvbmZ0ZXN0LmMgPiBjb25mdGVzdC5vdXQKY29uZmlndXJlOjQ1ODQ4OiAkPyA9IDAKY29u ZmlndXJlOjQ1ODgyOiBjaGVja2luZyBmb3IgYWxpZ25hcyBhbmQgYWxpZ25vZgpjb25maWd1cmU6 NDU5NTQ6IHJlc3VsdDogeWVzLCA8c3RkYWxpZ24uaD4gbWFjcm9zCmNvbmZpZ3VyZTo0NTk3Njog Y2hlY2tpbmcgZm9yIGFsbG9jYSBhcyBhIGNvbXBpbGVyIGJ1aWx0LWluCmNvbmZpZ3VyZTo0NjAw NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2MDUzOiBjaGVja2luZyBmb3Igc3RhdGljX2Fzc2Vy dApjb25maWd1cmU6NDYxMDU6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ2MjIzOiBjaGVja2luZyBm b3IgYm9vbCwgdHJ1ZSwgZmFsc2UKY29uZmlndXJlOjQ2MjQ4OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo0NjI2MjogY2hlY2tpbmcgZm9yIF9fYnVpbHRpbl9leHBlY3QKY29uZmlndXJlOjQ2MzA4OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NDY0NjI6IGNoZWNraW5nIGZvciByZWFkbGlua2F0CmNvbmZp Z3VyZTo0NjUxNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2NTU2OiBjaGVja2luZyBmb3IgbGli cmFyeSBjb250YWluaW5nIGNsb2NrX2dldHRpbWUKY29uZmlndXJlOjQ2NjE0OiByZXN1bHQ6IG5v bmUgcmVxdWlyZWQKY29uZmlndXJlOjQ2NjI0OiBjaGVja2luZyBmb3IgY2xvY2tfZ2V0cmVzCmNv bmZpZ3VyZTo0NjYyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2NjMwOiBjaGVja2luZyBmb3Ig Y2xvY2tfZ2V0dGltZQpjb25maWd1cmU6NDY2MzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NjYz NjogY2hlY2tpbmcgZm9yIGNsb2NrX3NldHRpbWUKY29uZmlndXJlOjQ2NjM2OiByZXN1bHQ6IHll cwpjb25maWd1cmU6NDY3MDU6IGNoZWNraW5nIGZvciBjb3B5X2ZpbGVfcmFuZ2UKY29uZmlndXJl OjQ2NzU4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0Njg0MTogY2hlY2tpbmcgZm9yIGRfdHlwZSBt ZW1iZXIgaW4gZGlyZWN0b3J5IHN0cnVjdApjb25maWd1cmU6NDY4NzQ6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo0Njg5MjogY2hlY2tpbmcgd2hldGhlciAvLyBpcyBkaXN0aW5jdCBmcm9tIC8KY29u ZmlndXJlOjQ2OTIzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0NjkzNDogY2hlY2tpbmcgd2hldGhl ciBkdXAyIHdvcmtzCmNvbmZpZ3VyZTo0NzA0MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ3MTQw OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGJhY2t0cmFjZV9zeW1ib2xzX2ZkCmNv bmZpZ3VyZTo0NzE5ODogcmVzdWx0OiBub25lIHJlcXVpcmVkCmNvbmZpZ3VyZTo0NzI2MDogY2hl Y2tpbmcgZm9yIGZhY2Nlc3NhdApjb25maWd1cmU6NDczMTM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo0NzM1MTogY2hlY2tpbmcgZm9yIGFjY2Vzcwpjb25maWd1cmU6NDczNTE6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo0NzM4ODogY2hlY2tpbmcgd2hldGhlciBmY2htb2RhdCB3b3Jrcwpjb25maWd1 cmU6NDc0Nzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NzYxNDogY2hlY2tpbmcgd2hldGhlciBm Y250bCBoYW5kbGVzIEZfRFVQRkQgY29ycmVjdGx5CmNvbmZpZ3VyZTo0NzY5MjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjQ3NzEwOiBjaGVja2luZyB3aGV0aGVyIGZjbnRsIHVuZGVyc3RhbmRzIEZf RFVQRkRfQ0xPRVhFQwpjb25maWd1cmU6NDc3ODU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0Nzgz ODogY2hlY2tpbmcgd2hldGhlciBmZG9wZW5kaXIgaXMgZGVjbGFyZWQKY29uZmlndXJlOjQ3ODM4 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDc4NjI6IGNoZWNraW5nIHdoZXRoZXIgZmRvcGVuZGly IHdvcmtzCmNvbmZpZ3VyZTo0NzkyNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ4MTA0OiBjaGVj a2luZyBmb3IgZmxleGlibGUgYXJyYXkgbWVtYmVyCmNvbmZpZ3VyZTo0ODE0MzogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjQ4MTYyOiBjaGVja2luZyBmb3IgX19mcGVuZGluZwpjb25maWd1cmU6NDgx OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ4MjE5OiBjaGVja2luZyB3aGV0aGVyIGZyZWUgaXMg a25vd24gdG8gcHJlc2VydmUgZXJybm8KY29uZmlndXJlOjQ4MjU0OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo0ODMwNTogY2hlY2tpbmcgd2hldGhlciBmc3RhdGF0ICguLi4sIDApIHdvcmtzCmNvbmZp Z3VyZTo0ODM0NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ4NDAwOiBjaGVja2luZyBmb3Igc3lz L21vdW50LmgKY29uZmlndXJlOjQ4NDAwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDg0MjU6IGNo ZWNraW5nIGZvciBzdGF0dmZzIGZ1bmN0aW9uIChTVlI0KQpjb25maWd1cmU6NDg0NzM6IHJlc3Vs dDogbm8KY29uZmlndXJlOjQ4NTMyOiBjaGVja2luZyBmb3IgdHdvLWFyZ3VtZW50IHN0YXRmcyB3 aXRoIHN0YXRmcy5mX2Zyc2l6ZSBtZW1iZXIKY29uZmlndXJlOjQ4NTc3OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo0ODU4ODogY2hlY2tpbmcgZm9yIDMtYXJndW1lbnQgc3RhdGZzIGZ1bmN0aW9uIChE RUMgT1NGLzEpCmNvbmZpZ3VyZTo0ODYyNzogcmVzdWx0OiBubwpjb25maWd1cmU6NDg2NDQ6IGNo ZWNraW5nIGZvciB0d28tYXJndW1lbnQgc3RhdGZzIHdpdGggc3RhdGZzLmZfYnNpemUgbWVtYmVy IChBSVgsIDQuM0JTRCkKY29uZmlndXJlOjQ4Njg5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDg4 MzA6IGNoZWNraW5nIGZvciBzeXMvZnMvczVwYXJhbS5oCmNvbmZpZ3VyZTo0ODgzMDogcmVzdWx0 OiBubwpjb25maWd1cmU6NDg4MzY6IGNoZWNraW5nIGZvciBzeXMvc3RhdGZzLmgKY29uZmlndXJl OjQ4ODM2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0ODg0NDogY2hlY2tpbmcgZm9yIHN0YXRmcyB0 aGF0IHRydW5jYXRlcyBibG9jayBjb3VudHMKY29uZmlndXJlOjQ4ODgwOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo0ODkzMjogY2hlY2tpbmcgZm9yIGZ1dGltZW5zCmNvbmZpZ3VyZTo0ODk4NTogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQ5MDA1OiBjaGVja2luZyB3aGV0aGVyIGZ1dGltZW5zIHdvcmtz CmNvbmZpZ3VyZTo0OTA5ODogcmVzdWx0OiBubwpjb25maWd1cmU6NDkxNDA6IGNoZWNraW5nIGZv ciBnZXRsaW5lCmNvbmZpZ3VyZTo0OTE5MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ5MjA4OiBj aGVja2luZyBmb3Igd29ya2luZyBnZXRsaW5lIGZ1bmN0aW9uCmNvbmZpZ3VyZTo0OTI5NDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQ5MzU4OiBjaGVja2luZyBmb3IgZ2V0bG9hZGF2Zwpjb25maWd1 cmU6NDk0MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0OTgzNDogY2hlY2tpbmcgZm9yIHN5cy9s b2FkYXZnLmgKY29uZmlndXJlOjQ5ODM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0OTg0NjogY2hl Y2tpbmcgd2hldGhlciBnZXRsb2FkYXZnIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo0OTg0NjogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjUwMTI1OiBjaGVja2luZyBmb3IgZ2V0cmFuZG9tCmNvbmZpZ3Vy ZTo1MDE4MzogcmVzdWx0OiBubwpjb25maWd1cmU6NTAzNTE6IGNoZWNraW5nIGZvciBnZXR0aW1l b2ZkYXkgd2l0aCBQT1NJWCBzaWduYXR1cmUKY29uZmlndXJlOjUwNDEwOiByZXN1bHQ6IHllcwpj b25maWd1cmU6NTA1MDU6IGNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIHRo ZSBfX2lubGluZSBrZXl3b3JkCmNvbmZpZ3VyZTo1MDUzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjUwNTU3OiBjaGVja2luZyBmb3IgZ21wLmgKY29uZmlndXJlOjUwNTU3OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo1MDU1NzogY2hlY2tpbmcgZm9yIGdtcC9nbXAuaApjb25maWd1cmU6NTA1NTc6IHJl c3VsdDogbm8KY29uZmlndXJlOjUwODYwOiBjaGVja2luZyBmb3IgbWVtbWVtCmNvbmZpZ3VyZTo1 MDg2MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUwODc2OiBjaGVja2luZyB3aGV0aGVyIG1lbW1l bSB3b3Jrcwpjb25maWd1cmU6NTA5NjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjUxMDExOiBjaGVj a2luZyBmb3IgbWVtcGNweQpjb25maWd1cmU6NTEwNjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjUx MTMwOiBjaGVja2luZyBmb3IgbWVtcmNocgpjb25maWd1cmU6NTExMzA6IHJlc3VsdDogbm8KY29u ZmlndXJlOjUxMTc4OiBjaGVja2luZyBmb3IgbWVtc2V0X2V4cGxpY2l0CmNvbmZpZ3VyZTo1MTIz MTogcmVzdWx0OiBubwpjb25maWd1cmU6NTEyNjQ6IGNoZWNraW5nIGZvciBleHBsaWNpdF9tZW1z ZXQKY29uZmlndXJlOjUxMjY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1MTI3MzogY2hlY2tpbmcg Zm9yIHdvcmtpbmcgbWVtc2V0X3MKY29uZmlndXJlOjUxMzIxOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6NTEzNjQ6IGNoZWNraW5nIGZvciBta29zdGVtcApjb25maWd1cmU6NTE0MTc6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo1MTUzNTogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBuYW5v c2xlZXAKY29uZmlndXJlOjUxNTkzOiByZXN1bHQ6IG5vbmUgcmVxdWlyZWQKY29uZmlndXJlOjUx NjE0OiBjaGVja2luZyBmb3Igd29ya2luZyBuYW5vc2xlZXAKY29uZmlndXJlOjUxNzI1OiByZXN1 bHQ6IG5vIChtaXNoYW5kbGVzIGxhcmdlIGFyZ3VtZW50cykKY29uZmlndXJlOjUxNzc2OiBjaGVj a2luZyBmb3Igc3lzL3BzdGF0LmgKY29uZmlndXJlOjUxNzc2OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo1MTc4MzogY2hlY2tpbmcgZm9yIHN5cy9zeXNtcC5oCmNvbmZpZ3VyZTo1MTc4MzogcmVzdWx0 OiBubwpjb25maWd1cmU6NTE3OTA6IGNoZWNraW5nIGZvciBzeXMvcGFyYW0uaApjb25maWd1cmU6 NTE3OTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MTc5ODogY2hlY2tpbmcgZm9yIHN5cy9zeXNj dGwuaApjb25maWd1cmU6NTE3OTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MTgxMTogY2hlY2tp bmcgZm9yIHNjaGVkX2dldGFmZmluaXR5X25wCmNvbmZpZ3VyZTo1MTgxMTogcmVzdWx0OiBubwpj b25maWd1cmU6NTE4MTc6IGNoZWNraW5nIGZvciBwc3RhdF9nZXRkeW5hbWljCmNvbmZpZ3VyZTo1 MTgxNzogcmVzdWx0OiBubwpjb25maWd1cmU6NTE4MjM6IGNoZWNraW5nIGZvciBzeXNtcApjb25m aWd1cmU6NTE4MjM6IHJlc3VsdDogbm8KY29uZmlndXJlOjUxODI5OiBjaGVja2luZyBmb3Igc3lz Y3RsCmNvbmZpZ3VyZTo1MTgyOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUxODM4OiBjaGVja2lu ZyBmb3Igc2NoZWRfZ2V0YWZmaW5pdHkKY29uZmlndXJlOjUxODkxOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo1MTk2MjogY2hlY2tpbmcgZm9yIHBpcGUyCmNvbmZpZ3VyZTo1MjAxNTogcmVzdWx0OiBu bwpjb25maWd1cmU6NTIwNTk6IGNoZWNraW5nIHdoZXRoZXIgc2lnbmF0dXJlIG9mIHBzZWxlY3Qg Y29uZm9ybXMgdG8gUE9TSVgKY29uZmlndXJlOjUyMDkxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 NTIwOTQ6IGNoZWNraW5nIHdoZXRoZXIgcHNlbGVjdCBkZXRlY3RzIGludmFsaWQgZmRzCmNvbmZp Z3VyZTo1MjE2MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUyMjAzOiBjaGVja2luZyB3aGV0aGVy IHB0aHJlYWRfc2lnbWFzayBpcyBhIG1hY3JvCmNvbmZpZ3VyZTo1MjIzMTogcmVzdWx0OiBubwpj b25maWd1cmU6NTIyNjI6IGNoZWNraW5nIHdoZXRoZXIgcHRocmVhZF9zaWdtYXNrIHdvcmtzIHdp dGhvdXQgLWxwdGhyZWFkCmNvbmZpZ3VyZTo1MjMwODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUy MzIxOiBjaGVja2luZyB3aGV0aGVyIHB0aHJlYWRfc2lnbWFzayByZXR1cm5zIGVycm9yIG51bWJl cnMKY29uZmlndXJlOjUyMzcxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTIzODI6IGNoZWNraW5n IHdoZXRoZXIgcHRocmVhZF9zaWdtYXNrIHVuYmxvY2tzIHNpZ25hbHMgY29ycmVjdGx5CmNvbmZp Z3VyZTo1MjQ2MDogcmVzdWx0OiBndWVzc2luZyB5ZXMKY29uZmlndXJlOjUyNTI1OiBjaGVja2lu ZyBmb3IgeGF0dHIgbGlicmFyeSB3aXRoIEFUVFJfQUNUSU9OX1BFUk1JU1NJT05TCmNvbmZpZ3Vy ZTo1MjU3MDogcmVzdWx0OiBubwpjb25maWd1cmU6NTI1NzM6IFdBUk5JTkc6IGxpYmF0dHIgZGV2 ZWxvcG1lbnQgbGlicmFyeSB3YXMgbm90IGZvdW5kIG9yIG5vdCB1c2FibGUuCmNvbmZpZ3VyZTo1 MjU3NTogV0FSTklORzogR05VIEVtYWNzIHdpbGwgYmUgYnVpbHQgd2l0aG91dCB4YXR0ciBzdXBw b3J0Lgpjb25maWd1cmU6NTI2MDI6IGNoZWNraW5nIHdoZXRoZXIgcmVhZGxpbmsgc2lnbmF0dXJl IGlzIGNvcnJlY3QKY29uZmlndXJlOjUyNjM0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTI2Mzc6 IGNoZWNraW5nIHdoZXRoZXIgcmVhZGxpbmsgaGFuZGxlcyB0cmFpbGluZyBzbGFzaCBjb3JyZWN0 bHkKY29uZmlndXJlOjUyNjk0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1MjcxMDogY2hlY2tpbmcg d2hldGhlciByZWFkbGluayB0cnVuY2F0ZXMgcmVzdWx0cyBjb3JyZWN0bHkKY29uZmlndXJlOjUy NzY2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTI4MjU6IGNoZWNraW5nIGZvciByZWFkbGlua2F0 CmNvbmZpZ3VyZTo1Mjg3ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUyODk5OiBjaGVja2luZyB3 aGV0aGVyIHJlYWRsaW5rYXQgc2lnbmF0dXJlIGlzIGNvcnJlY3QKY29uZmlndXJlOjUyOTMxOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NTI5ODk6IGNoZWNraW5nIHdoZXRoZXIgcmVhbGxvYyAoLi4u LCAwKSByZXR1cm5zIG5vbm51bGwKY29uZmlndXJlOjUzMDQxOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6NTMxMDA6IGNoZWNraW5nIGZvciB3b3JraW5nIHJlX2NvbXBpbGVfcGF0dGVybgpjb25maWd1 cmU6NTM0Mzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjUzNTE5OiBjaGVja2luZyBmb3IgbGliaW50 bC5oCmNvbmZpZ3VyZTo1MzUxOTogcmVzdWx0OiBubwpjb25maWd1cmU6NTM1Mjc6IGNoZWNraW5n IHdoZXRoZXIgaXNibGFuayBpcyBkZWNsYXJlZApjb25maWd1cmU6NTM1Mjc6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo1MzU0MzogY2hlY2tpbmcgZm9yIHNpZzJzdHIKY29uZmlndXJlOjUzNTQzOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1MzU0OTogY2hlY2tpbmcgZm9yIHN0cjJzaWcKY29uZmlndXJl OjUzNTQ5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1MzU5ODogY2hlY2tpbmcgZm9yIHNpZ2Rlc2Ny X25wCmNvbmZpZ3VyZTo1MzU5ODogcmVzdWx0OiBubwpjb25maWd1cmU6NTM2NDQ6IGNoZWNraW5n IGZvciBzb2NrbGVuX3QKY29uZmlndXJlOjUzNjQ0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTM3 MTA6IGNoZWNraW5nIGZvciBzc2l6ZV90CmNvbmZpZ3VyZTo1MzczODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjUzNzg2OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYXRpbS50dl9uc2VjCmNv bmZpZ3VyZTo1Mzc4NjogcmVzdWx0OiBubwpjb25maWd1cmU6NTM4NDA6IGNoZWNraW5nIGZvciBz dHJ1Y3Qgc3RhdC5zdF9hdGltZXNwZWMudHZfbnNlYwpjb25maWd1cmU6NTM4NDA6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo1Mzg4NDogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2JpcnRodGlt ZXNwZWMudHZfbnNlYwpjb25maWd1cmU6NTM4ODQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM4 MTogY2hlY2tpbmcgZm9yIHN0cGNweQpjb25maWd1cmU6NTQ0MzQ6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo1NDUxMzogY2hlY2tpbmcgZm9yIHdvcmtpbmcgc3Rybmxlbgpjb25maWd1cmU6NTQ1OTM6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDY0ODogY2hlY2tpbmcgd2hldGhlciBzdHJ0b2ltYXgg d29ya3MKY29uZmlndXJlOjU0NzIxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQ3Nzk6IGNoZWNr aW5nIHdoZXRoZXIgc3ltbGluayBoYW5kbGVzIHRyYWlsaW5nIHNsYXNoIGNvcnJlY3RseQpjb25m aWd1cmU6NTQ4MzQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjU0OTI1OiBjaGVja2luZyB3aGV0aGVy IGxvY2FsdGltZV9yIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo1NDkyNTogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjU0OTUwOiBjaGVja2luZyB3aGV0aGVyIGxvY2FsdGltZV9yIGlzIGNvbXBhdGlibGUg d2l0aCBpdHMgUE9TSVggc2lnbmF0dXJlCmNvbmZpZ3VyZTo1NDk5MzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjU1MDg2OiBjaGVja2luZyB3aGV0aGVyIGxvY2FsdGltZSB3b3JrcyBldmVuIG5lYXIg ZXh0cmVtYQpjb25maWd1cmU6NTUxMzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NTE0MjogY2hl Y2tpbmcgZm9yIHRpbWV6b25lX3QKY29uZmlndXJlOjU1MTQyOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo1NTE1ODogY2hlY2tpbmcgZm9yIHR6YWxsb2MKY29uZmlndXJlOjU1MjExOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo1NTI3NDogY2hlY2tpbmcgZm9yIHRpbWVnbQpjb25maWd1cmU6NTUzMjc6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTo1NTM5MDogY2hlY2tpbmcgd2hldGhlciB0aW1lcl9zZXR0aW1l IGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo1NTM5MDogcmVzdWx0OiBubwpjb25maWd1cmU6NTU1MjE6 IGNoZWNraW5nIGZvciB1dGltZW5zYXQKY29uZmlndXJlOjU1NTc0OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6NTU1OTQ6IGNoZWNraW5nIHdoZXRoZXIgdXRpbWVuc2F0IHdvcmtzCmNvbmZpZ3VyZTo1 NTcyMTogcmVzdWx0OiBubwpjb25maWd1cmU6NTU3NjI6IGNoZWNraW5nIGZvciB2YXJpYWJsZS1s ZW5ndGggYXJyYXlzCmNvbmZpZ3VyZTo1NTgzMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU3MzIw OiBjaGVja2luZyBmb3IgcmF3bWVtY2hyCmNvbmZpZ3VyZTo1NzMyMDogcmVzdWx0OiBubwpjb25m aWd1cmU6NTcxODg6IGNoZWNraW5nIHdoZXRoZXIgb3BlbiByZWNvZ25pemVzIGEgdHJhaWxpbmcg c2xhc2gKY29uZmlndXJlOjU3MjQ5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1NjA4NDogY2hlY2tp bmcgZm9yIGV1aWRhY2Nlc3MKY29uZmlndXJlOjU2MDg0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1 NjEwOTogY2hlY2tpbmcgZm9yIGZhY2Nlc3NhdApjb25maWd1cmU6NTYxNjI6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo1NjE3NjogY2hlY2tpbmcgZm9yIGxpYmdlbi5oCmNvbmZpZ3VyZTo1NjE3Njog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjU2MTg0OiBjaGVja2luZyBmb3IgZ2V0Z3JvdXBzCmNvbmZp Z3VyZTo1NjE4NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU2MjQ4OiBjaGVja2luZyBmb3Igd29y a2luZyBnZXRncm91cHMKY29uZmlndXJlOjU2Mjk0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTYz MTY6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgZWFjY2Vzcwpjb25maWd1cmU6NTYz NzQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjU2Mzg0OiBjaGVja2luZyBmb3IgZWFjY2Vzcwpjb25m aWd1cmU6NTYzODQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjU3MDM1OiBjaGVja2luZyBmb3IgZ3Jv dXBfbWVtYmVyCmNvbmZpZ3VyZTo1NzAzNTogcmVzdWx0OiBubwpjb25maWd1cmU6NTY3ODQ6IGNo ZWNraW5nIGZvciBnZXRncm91cHMKY29uZmlndXJlOjU2Nzg0OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6NTY4NDg6IGNoZWNraW5nIGZvciB3b3JraW5nIGdldGdyb3Vwcwpjb25maWd1cmU6NTY4OTQ6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NjkyMjogY2hlY2tpbmcgd2hldGhlciBnZXRncm91cHMg aGFuZGxlcyBuZWdhdGl2ZSB2YWx1ZXMKY29uZmlndXJlOjU2OTY5OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo1NzUwOTogY2hlY2tpbmcgZm9yIGZ1dGltZXMKY29uZmlndXJlOjU3NTYyOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NTc1Nzg6IGNoZWNraW5nIGZvciBmdXRpbWVzYXQKY29uZmlndXJlOjU3 NjMxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1NzY0NzogY2hlY2tpbmcgZm9yIGx1dGltZXMKY29u ZmlndXJlOjU3NzAwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTc3MTY6IGNoZWNraW5nIGZvciBm dXRpbWVucwpjb25maWd1cmU6NTc3Njk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1Nzc4NTogY2hl Y2tpbmcgZm9yIHV0aW1lbnNhdApjb25maWd1cmU6NTc4Mzg6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo1NzEzODogY2hlY2tpbmcgZm9yIF9fbWt0aW1lX2ludGVybmFsCmNvbmZpZ3VyZTo1NzEzODog cmVzdWx0OiBubwpjb25maWd1cmU6NTgyMzg6IGNoZWNraW5nIGZvciB0aW1lcl9nZXRvdmVycnVu CmNvbmZpZ3VyZTo1ODIzODogcmVzdWx0OiBubwpjb25maWd1cmU6NTkyMTY6IHVwZGF0aW5nIGNh Y2hlIC92YXIvZm9sZGVycy8xZC9rXzZ0MjVmOTRzbDgzc3pxYmY4Z3BrcmgwMDAwZ24vVC8vY29u ZmlnLmNhY2hlLnRleHQtaW5kZXgKY29uZmlndXJlOjU5MzQ4OiBjcmVhdGluZyAuL2NvbmZpZy5z dGF0dXMKCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUnVubmluZyBjb25maWcuc3Rh dHVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCgpUaGlzIGZpbGUgd2FzIGV4dGVu ZGVkIGJ5IEdOVSBFbWFjcyBjb25maWcuc3RhdHVzIDMxLjAuNTAsIHdoaWNoIHdhcwpnZW5lcmF0 ZWQgYnkgR05VIEF1dG9jb25mIDIuNzIuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAg Q09ORklHX0ZJTEVTICAgID0gCiAgQ09ORklHX0hFQURFUlMgID0gCiAgQ09ORklHX0xJTktTICAg ID0gCiAgQ09ORklHX0NPTU1BTkRTID0gCiAgJCAuL2NvbmZpZy5zdGF0dXMgCgpvbiBtaW5pCgpj b25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIHNyYy92ZXJib3NlLm1rCmNvbmZpZy5zdGF0dXM6 MjYyMTogY3JlYXRpbmcgc3JjL2VtYWNzLW1vZHVsZS5oCmNvbmZpZy5zdGF0dXM6MjYyMTogY3Jl YXRpbmcgbmV4dHN0ZXAvQ29jb2EvRW1hY3MuYmFzZS9Db250ZW50cy9JbmZvLnBsaXN0CmNvbmZp Zy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgbmV4dHN0ZXAvQ29jb2EvRW1hY3MuYmFzZS9Db250ZW50 cy9SZXNvdXJjZXMvRW5nbGlzaC5scHJvai9JbmZvUGxpc3Quc3RyaW5ncwpjb25maWcuc3RhdHVz OjI2MjE6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgbGli L2dudWxpYi5tawpjb25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIC4vZG9jL21hbi9lbWFjcy4x CmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgbGliL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6 MjYyMTogY3JlYXRpbmcgbGliLXNyYy9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjI2MjE6IGNyZWF0 aW5nIG9sZFhNZW51L01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgc3JjL01h a2VmaWxlCmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgbHdsaWIvTWFrZWZpbGUKY29uZmln LnN0YXR1czoyNjIxOiBjcmVhdGluZyBuZXh0c3RlcC9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjI2 MjE6IGNyZWF0aW5nIG50L01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgZG9j L2VtYWNzL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgZG9jL21pc2MvTWFr ZWZpbGUKY29uZmlnLnN0YXR1czoyNjIxOiBjcmVhdGluZyBkb2MvbGlzcGludHJvL01ha2VmaWxl CmNvbmZpZy5zdGF0dXM6MjYyMTogY3JlYXRpbmcgZG9jL2xpc3ByZWYvTWFrZWZpbGUKY29uZmln LnN0YXR1czoyNjIxOiBjcmVhdGluZyBsaXNwL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjYyMTog Y3JlYXRpbmcgbGVpbS9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIHRlc3Qv TWFrZWZpbGUKY29uZmlnLnN0YXR1czoyNjIxOiBjcmVhdGluZyB0ZXN0L21hbnVhbC9ub3Zlcmxh eS9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIHRlc3QvaW5mcmEvTWFrZWZp bGUKY29uZmlnLnN0YXR1czoyNjIxOiBjcmVhdGluZyBhZG1pbi9jaGFyc2V0cy9NYWtlZmlsZQpj b25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIGFkbWluL3VuaWRhdGEvTWFrZWZpbGUKY29uZmln LnN0YXR1czoyNjIxOiBjcmVhdGluZyBhZG1pbi9ncmFtbWFycy9NYWtlZmlsZQpjb25maWcuc3Rh dHVzOjI2MjE6IGNyZWF0aW5nIGphdmEvTWFrZWZpbGUKY29uZmlnLnN0YXR1czoyNjIxOiBjcmVh dGluZyBjcm9zcy9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIGphdmEvQW5k cm9pZE1hbmlmZXN0LnhtbApjb25maWcuc3RhdHVzOjI2MjE6IGNyZWF0aW5nIHNyYy9jb25maWcu aApjb25maWcuc3RhdHVzOjI4NTI6IGV4ZWN1dGluZyBzcmMvZXBhdGhzLmggY29tbWFuZHMKY29u ZmlnLnN0YXR1czoyODUyOiBleGVjdXRpbmcgc3JjLy5nZGJpbml0IGNvbW1hbmRzCmNvbmZpZy5z dGF0dXM6Mjg1MjogZXhlY3V0aW5nIGRvYy9lbWFjcy9lbWFjc3Zlci50ZXhpIGNvbW1hbmRzCmNv bmZpZy5zdGF0dXM6Mjg1MjogZXhlY3V0aW5nIGV0Yy1yZWZjYXJkcy1lbWFjc3Zlci50ZXggY29t bWFuZHMKCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgQ2FjaGUgdmFyaWFibGVzLiAjIwojIyAt LS0tLS0tLS0tLS0tLS0tICMjCgphY19jdl9hbGlnbm9mX2ludD00CmFjX2N2X2FsaWdub2ZfbG9u Zz04CmFjX2N2X2FsaWdub2ZfbG9uZ19sb25nPTgKYWNfY3ZfYnVpbGQ9YWFyY2g2NC1hcHBsZS1k YXJ3aW4yNC40LjAKYWNfY3ZfY19iaWdlbmRpYW49bm8KYWNfY3ZfY19jb21waWxlcl9nbnU9eWVz CmFjX2N2X2NfZmxleG1lbWJlcj15ZXMKYWNfY3ZfY19pbmxpbmU9aW5saW5lCmFjX2N2X2NfcmVz dHJpY3Q9X19yZXN0cmljdF9fCmFjX2N2X2NfdHlwZW9mPXR5cGVvZgphY19jdl9jX3VuZGVjbGFy ZWRfYnVpbHRpbl9vcHRpb25zPSdub25lIG5lZWRlZCcKYWNfY3ZfY192YXJhcnJheXM9eWVzCmFj X2N2X2Vudl9BTFNBX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9BTFNBX0NGTEFHU192YWx1ZT0KYWNf Y3ZfZW52X0FMU0FfTElCU19zZXQ9CmFjX2N2X2Vudl9BTFNBX0xJQlNfdmFsdWU9CmFjX2N2X2Vu dl9BTkRST0lEX0NDX3NldD0KYWNfY3ZfZW52X0FORFJPSURfQ0NfdmFsdWU9CmFjX2N2X2Vudl9B TkRST0lEX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9BTkRST0lEX0NGTEFHU192YWx1ZT0KYWNfY3Zf ZW52X0FQS1NJR05FUl9zZXQ9CmFjX2N2X2Vudl9BUEtTSUdORVJfdmFsdWU9CmFjX2N2X2Vudl9D QUlST19DRkxBR1Nfc2V0PQphY19jdl9lbnZfQ0FJUk9fQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZf Q0FJUk9fTElCU19zZXQ9CmFjX2N2X2Vudl9DQUlST19MSUJTX3ZhbHVlPQphY19jdl9lbnZfQ0FJ Uk9fWENCX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DQUlST19YQ0JfQ0ZMQUdTX3ZhbHVlPQphY19j dl9lbnZfQ0FJUk9fWENCX0xJQlNfc2V0PQphY19jdl9lbnZfQ0FJUk9fWENCX0xJQlNfdmFsdWU9 CmFjX2N2X2Vudl9DQUlST19YTElCX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DQUlST19YTElCX0NG TEFHU192YWx1ZT0KYWNfY3ZfZW52X0NBSVJPX1hMSUJfTElCU19zZXQ9CmFjX2N2X2Vudl9DQUlS T19YTElCX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9DQ0Nfc2V0PQphY19jdl9lbnZfQ0NDX3ZhbHVl PQphY19jdl9lbnZfQ0Nfc2V0PXNldAphY19jdl9lbnZfQ0NfdmFsdWU9Y2xhbmcKYWNfY3ZfZW52 X0NGTEFHU19zZXQ9c2V0CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9Jy1XZ251LWltYWdpbmFyeS1j b25zdGFudCAtV3VudXNlZC1yZXN1bHQgLWcgLUYgL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9NYWNPU1gucGxhdGZvcm0vRGV2ZWxvcGVyL1NES3Mv TWFjT1NYLnNkay9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIC1Xbm8taWdub3JlZC1hdHRyaWJ1 dGVzIC1Xbm8tZmxhZy1lbnVtIC1Xbm8tbWlzc2luZy1tZXRob2QtcmV0dXJuLXR5cGUgLVduby12 YXJpYWRpYy1tYWNyb3MgLVduby1zdHJpY3QtcHJvdG90eXBlcyAtV25vLWF2YWlsYWJpbGl0eSAt V25vLW51bGxhYmlsaXR5LWNvbXBsZXRlbmVzcycKYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KYWNf Y3ZfZW52X0NQUEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQX3NldD0KYWNfY3ZfZW52X0NQUF92 YWx1ZT0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0KYWNfY3ZfZW52X0NYWEZMQUdTX3ZhbHVlPQph Y19jdl9lbnZfQ1hYX3NldD0KYWNfY3ZfZW52X0NYWF92YWx1ZT0KYWNfY3ZfZW52X0RCVVNfQ0ZM QUdTX3NldD0KYWNfY3ZfZW52X0RCVVNfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfREJVU19MSUJT X3NldD0KYWNfY3ZfZW52X0RCVVNfTElCU192YWx1ZT0KYWNfY3ZfZW52X0ZPTlRDT05GSUdfQ0ZM QUdTX3NldD0KYWNfY3ZfZW52X0ZPTlRDT05GSUdfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfRk9O VENPTkZJR19MSUJTX3NldD0KYWNfY3ZfZW52X0ZPTlRDT05GSUdfTElCU192YWx1ZT0KYWNfY3Zf ZW52X0ZSRUVUWVBFX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9GUkVFVFlQRV9DRkxBR1NfdmFsdWU9 CmFjX2N2X2Vudl9GUkVFVFlQRV9MSUJTX3NldD0KYWNfY3ZfZW52X0ZSRUVUWVBFX0xJQlNfdmFs dWU9CmFjX2N2X2Vudl9HQ09ORl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfR0NPTkZfQ0ZMQUdTX3Zh bHVlPQphY19jdl9lbnZfR0NPTkZfTElCU19zZXQ9CmFjX2N2X2Vudl9HQ09ORl9MSUJTX3ZhbHVl PQphY19jdl9lbnZfR0ZJTEVOT1RJRllfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0dGSUxFTk9USUZZ X0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dGSUxFTk9USUZZX0xJQlNfc2V0PQphY19jdl9lbnZf R0ZJTEVOT1RJRllfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dPQkpFQ1RfQ0ZMQUdTX3NldD0KYWNf Y3ZfZW52X0dPQkpFQ1RfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfR09CSkVDVF9MSUJTX3NldD0K YWNfY3ZfZW52X0dPQkpFQ1RfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dTRVRUSU5HU19DRkxBR1Nf c2V0PQphY19jdl9lbnZfR1NFVFRJTkdTX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dTRVRUSU5H U19MSUJTX3NldD0KYWNfY3ZfZW52X0dTRVRUSU5HU19MSUJTX3ZhbHVlPQphY19jdl9lbnZfR1RL X0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9HVEtfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfR1RLX0xJ QlNfc2V0PQphY19jdl9lbnZfR1RLX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9IQVJGQlVaWl9DRkxB R1Nfc2V0PQphY19jdl9lbnZfSEFSRkJVWlpfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfSEFSRkJV WlpfTElCU19zZXQ9CmFjX2N2X2Vudl9IQVJGQlVaWl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfSU1B R0VNQUdJQ0tfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0lNQUdFTUFHSUNLX0NGTEFHU192YWx1ZT0K YWNfY3ZfZW52X0lNQUdFTUFHSUNLX0xJQlNfc2V0PQphY19jdl9lbnZfSU1BR0VNQUdJQ0tfTElC U192YWx1ZT0KYWNfY3ZfZW52X0pBUlNJR05FUl9zZXQ9CmFjX2N2X2Vudl9KQVJTSUdORVJfdmFs dWU9CmFjX2N2X2Vudl9KQVZBQ19zZXQ9CmFjX2N2X2Vudl9KQVZBQ192YWx1ZT0KYWNfY3ZfZW52 X0tRVUVVRV9DRkxBR1Nfc2V0PQphY19jdl9lbnZfS1FVRVVFX0NGTEFHU192YWx1ZT0KYWNfY3Zf ZW52X0tRVUVVRV9MSUJTX3NldD0KYWNfY3ZfZW52X0tRVUVVRV9MSUJTX3ZhbHVlPQphY19jdl9l bnZfTENNUzJfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0xDTVMyX0NGTEFHU192YWx1ZT0KYWNfY3Zf ZW52X0xDTVMyX0xJQlNfc2V0PQphY19jdl9lbnZfTENNUzJfTElCU192YWx1ZT0KYWNfY3ZfZW52 X0xERkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQkdOVVRM U19DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCR05VVExTX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52 X0xJQkdOVVRMU19MSUJTX3NldD0KYWNfY3ZfZW52X0xJQkdOVVRMU19MSUJTX3ZhbHVlPQphY19j dl9lbnZfTElCT1RGX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9MSUJPVEZfQ0ZMQUdTX3ZhbHVlPQph Y19jdl9lbnZfTElCT1RGX0xJQlNfc2V0PQphY19jdl9lbnZfTElCT1RGX0xJQlNfdmFsdWU9CmFj X2N2X2Vudl9MSUJTRUNDT01QX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9MSUJTRUNDT01QX0NGTEFH U192YWx1ZT0KYWNfY3ZfZW52X0xJQlNFQ0NPTVBfTElCU19zZXQ9CmFjX2N2X2Vudl9MSUJTRUND T01QX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9MSUJTWVNURU1EX0NGTEFHU19zZXQ9CmFjX2N2X2Vu dl9MSUJTWVNURU1EX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQlNZU1RFTURfTElCU19zZXQ9 CmFjX2N2X2Vudl9MSUJTWVNURU1EX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9MSUJTX3NldD0KYWNf Y3ZfZW52X0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9MSUJYTUwyX0NGTEFHU19zZXQ9CmFjX2N2X2Vu dl9MSUJYTUwyX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQlhNTDJfTElCU19zZXQ9CmFjX2N2 X2Vudl9MSUJYTUwyX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9NMTdOX0ZMVF9DRkxBR1Nfc2V0PQph Y19jdl9lbnZfTTE3Tl9GTFRfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfTTE3Tl9GTFRfTElCU19z ZXQ9CmFjX2N2X2Vudl9NMTdOX0ZMVF9MSUJTX3ZhbHVlPQphY19jdl9lbnZfT0JKQ0ZMQUdTX3Nl dD0KYWNfY3ZfZW52X09CSkNGTEFHU192YWx1ZT0KYWNfY3ZfZW52X09CSkNfc2V0PQphY19jdl9l bnZfT0JKQ192YWx1ZT0KYWNfY3ZfZW52X1BLR19DT05GSUdfTElCRElSX3NldD0KYWNfY3ZfZW52 X1BLR19DT05GSUdfTElCRElSX3ZhbHVlPQphY19jdl9lbnZfUEtHX0NPTkZJR19QQVRIX3NldD0K YWNfY3ZfZW52X1BLR19DT05GSUdfUEFUSF92YWx1ZT0KYWNfY3ZfZW52X1BLR19DT05GSUdfc2V0 PQphY19jdl9lbnZfUEtHX0NPTkZJR192YWx1ZT0KYWNfY3ZfZW52X1BOR19DRkxBR1Nfc2V0PQph Y19jdl9lbnZfUE5HX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X1BOR19MSUJTX3NldD0KYWNfY3Zf ZW52X1BOR19MSUJTX3ZhbHVlPQphY19jdl9lbnZfUlNWR19DRkxBR1Nfc2V0PQphY19jdl9lbnZf UlNWR19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9SU1ZHX0xJQlNfc2V0PQphY19jdl9lbnZfUlNW R19MSUJTX3ZhbHVlPQphY19jdl9lbnZfU0RLX0JVSUxEX1RPT0xTX3NldD0KYWNfY3ZfZW52X1NE S19CVUlMRF9UT09MU192YWx1ZT0KYWNfY3ZfZW52X1RSRUVfU0lUVEVSX0NGTEFHU19zZXQ9CmFj X2N2X2Vudl9UUkVFX1NJVFRFUl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9UUkVFX1NJVFRFUl9M SUJTX3NldD0KYWNfY3ZfZW52X1RSRUVfU0lUVEVSX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9XRUJL SVRfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X1dFQktJVF9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9X RUJLSVRfTElCU19zZXQ9CmFjX2N2X2Vudl9XRUJLSVRfTElCU192YWx1ZT0KYWNfY3ZfZW52X1dF QlBfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X1dFQlBfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfV0VC UF9MSUJTX3NldD0KYWNfY3ZfZW52X1dFQlBfTElCU192YWx1ZT0KYWNfY3ZfZW52X1hGSVhFU19D RkxBR1Nfc2V0PQphY19jdl9lbnZfWEZJWEVTX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X1hGSVhF U19MSUJTX3NldD0KYWNfY3ZfZW52X1hGSVhFU19MSUJTX3ZhbHVlPQphY19jdl9lbnZfWEZUX0NG TEFHU19zZXQ9CmFjX2N2X2Vudl9YRlRfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfWEZUX0xJQlNf c2V0PQphY19jdl9lbnZfWEZUX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9YSU5FUkFNQV9DRkxBR1Nf c2V0PQphY19jdl9lbnZfWElORVJBTUFfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfWElORVJBTUFf TElCU19zZXQ9CmFjX2N2X2Vudl9YSU5FUkFNQV9MSUJTX3ZhbHVlPQphY19jdl9lbnZfWElOUFVU X0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9YSU5QVVRfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfWElO UFVUX0xJQlNfc2V0PQphY19jdl9lbnZfWElOUFVUX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9YTUtN Rl9zZXQ9CmFjX2N2X2Vudl9YTUtNRl92YWx1ZT0KYWNfY3ZfZW52X1hSQU5EUl9DRkxBR1Nfc2V0 PQphY19jdl9lbnZfWFJBTkRSX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X1hSQU5EUl9MSUJTX3Nl dD0KYWNfY3ZfZW52X1hSQU5EUl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfWklQX3NldD0KYWNfY3Zf ZW52X1pJUF92YWx1ZT0KYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD0KYWNfY3ZfZW52X2J1aWxk X2FsaWFzX3ZhbHVlPQphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9ob3N0X2Fs aWFzX3ZhbHVlPQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0KYWNfY3ZfZW52X3RhcmdldF9h bGlhc192YWx1ZT0KYWNfY3ZfZnVuY19XZWJQR2V0SW5mbz1ubwphY19jdl9mdW5jX19fZXhlY3V0 YWJsZV9zdGFydD1ubwphY19jdl9mdW5jX19fbHNhbl9pZ25vcmVfb2JqZWN0PW5vCmFjX2N2X2Z1 bmNfX19ta3RpbWVfaW50ZXJuYWw9bm8KYWNfY3ZfZnVuY19hY2NlcHQ0PW5vCmFjX2N2X2Z1bmNf YWNjZXNzPXllcwphY19jdl9mdW5jX2FjbF9jb3B5X2V4dF9uYXRpdmU9eWVzCmFjX2N2X2Z1bmNf YWNsX2NyZWF0ZV9lbnRyeV9ucD15ZXMKYWNfY3ZfZnVuY19hY2xfZGVsZXRlX2RlZl9maWxlPXll cwphY19jdl9mdW5jX2FjbF9kZWxldGVfZmRfbnA9eWVzCmFjX2N2X2Z1bmNfYWNsX2RlbGV0ZV9m aWxlX25wPXllcwphY19jdl9mdW5jX2FjbF9lbnRyaWVzPW5vCmFjX2N2X2Z1bmNfYWNsX2V4dGVu ZGVkX2ZpbGU9bm8KYWNfY3ZfZnVuY19hY2xfZnJlZT15ZXMKYWNfY3ZfZnVuY19hY2xfZnJlZV90 ZXh0PW5vCmFjX2N2X2Z1bmNfYWNsX2Zyb21fbW9kZT1ubwphY19jdl9mdW5jX2FjbF9mcm9tX3Rl eHQ9eWVzCmFjX2N2X2Z1bmNfYWNsX2dldF9mZD15ZXMKYWNfY3ZfZnVuY19hY2xfZ2V0X2ZpbGU9 eWVzCmFjX2N2X2Z1bmNfYWNsX2dldF9saW5rX25wPXllcwphY19jdl9mdW5jX2FjbF9zZXRfZmQ9 eWVzCmFjX2N2X2Z1bmNfYWNsX3NldF9maWxlPXllcwphY19jdl9mdW5jX2FjbF90b19zaG9ydF90 ZXh0PW5vCmFjX2N2X2Z1bmNfYWxpZ25lZF9hbGxvYz15ZXMKYWNfY3ZfZnVuY19hbGxvY2Ffd29y a3M9eWVzCmFjX2N2X2Z1bmNfY2Fub25pY2FsaXplX2ZpbGVfbmFtZT1ubwphY19jdl9mdW5jX2Nm bWFrZXJhdz15ZXMKYWNfY3ZfZnVuY19jZnNldHNwZWVkPXllcwphY19jdl9mdW5jX2Nsb2NrX2dl dHJlcz15ZXMKYWNfY3ZfZnVuY19jbG9ja19nZXR0aW1lPXllcwphY19jdl9mdW5jX2Nsb2NrX3Nl dHRpbWU9eWVzCmFjX2N2X2Z1bmNfY29weV9maWxlX3JhbmdlPW5vCmFjX2N2X2Z1bmNfZGJ1c19t ZXNzYWdlX3NldF9hbGxvd19pbnRlcmFjdGl2ZV9hdXRob3JpemF0aW9uPXllcwphY19jdl9mdW5j X2RidXNfdHlwZV9pc192YWxpZD15ZXMKYWNfY3ZfZnVuY19kYnVzX3ZhbGlkYXRlX2J1c19uYW1l PXllcwphY19jdl9mdW5jX2RidXNfdmFsaWRhdGVfaW50ZXJmYWNlPXllcwphY19jdl9mdW5jX2Ri dXNfdmFsaWRhdGVfbWVtYmVyPXllcwphY19jdl9mdW5jX2RidXNfdmFsaWRhdGVfcGF0aD15ZXMK YWNfY3ZfZnVuY19kYnVzX3dhdGNoX2dldF91bml4X2ZkPXllcwphY19jdl9mdW5jX2RsYWRkcj15 ZXMKYWNfY3ZfZnVuY19kbGZ1bmM9bm8KYWNfY3ZfZnVuY19lYWNjZXNzPW5vCmFjX2N2X2Z1bmNf ZW5kZ3JlbnQ9eWVzCmFjX2N2X2Z1bmNfZW5kcHdlbnQ9eWVzCmFjX2N2X2Z1bmNfZXVpZGFjY2Vz cz1ubwphY19jdl9mdW5jX2V4cGxpY2l0X21lbXNldD1ubwphY19jdl9mdW5jX2ZhY2Nlc3NhdD15 ZXMKYWNfY3ZfZnVuY19mY2hkaXI9eWVzCmFjX2N2X2Z1bmNfZmNobW9kPXllcwphY19jdl9mdW5j X2ZjaG1vZGF0PXllcwphY19jdl9mdW5jX2ZjbnRsPXllcwphY19jdl9mdW5jX2Zkb3BlbmRpcj15 ZXMKYWNfY3ZfZnVuY19mb3JrPXllcwphY19jdl9mdW5jX2Zvcmtfd29ya3M9eWVzCmFjX2N2X2Z1 bmNfZnJlZWlmYWRkcnM9eWVzCmFjX2N2X2Z1bmNfZnNlZWtvX2Z0ZWxsbz15ZXMKYWNfY3ZfZnVu Y19mc3RhdGF0PXllcwphY19jdl9mdW5jX2ZzeW5jPXllcwphY19jdl9mdW5jX2Z1dGltZW5zPXll cwphY19jdl9mdW5jX2Z1dGltZXM9eWVzCmFjX2N2X2Z1bmNfZnV0aW1lc2F0PW5vCmFjX2N2X2Z1 bmNfZ2FpX3N0cmVycm9yPXllcwphY19jdl9mdW5jX2dldF9jdXJyZW50X2Rpcl9uYW1lPW5vCmFj X2N2X2Z1bmNfZ2V0Y3dkPXllcwphY19jdl9mdW5jX2dldGR0YWJsZXNpemU9eWVzCmFjX2N2X2Z1 bmNfZ2V0Z3JlbnQ9eWVzCmFjX2N2X2Z1bmNfZ2V0Z3JvdXBzPXllcwphY19jdl9mdW5jX2dldGdy b3Vwc193b3Jrcz15ZXMKYWNfY3ZfZnVuY19nZXRob3N0bmFtZT15ZXMKYWNfY3ZfZnVuY19nZXRp ZmFkZHJzPXllcwphY19jdl9mdW5jX2dldGxpbmU9eWVzCmFjX2N2X2Z1bmNfZ2V0bG9hZGF2Zz15 ZXMKYWNfY3ZfZnVuY19nZXRvcHRfbG9uZ19vbmx5PXllcwphY19jdl9mdW5jX2dldHBhZ2VzaXpl PXllcwphY19jdl9mdW5jX2dldHB0PW5vCmFjX2N2X2Z1bmNfZ2V0cHdlbnQ9eWVzCmFjX2N2X2Z1 bmNfZ2V0cmFuZG9tPW5vCmFjX2N2X2Z1bmNfZ2V0cmxpbWl0PXllcwphY19jdl9mdW5jX2dldHJ1 c2FnZT15ZXMKYWNfY3ZfZnVuY19nZXRzb2NrbmFtZT15ZXMKYWNfY3ZfZnVuY19nZXR0aW1lb2Zk YXk9eWVzCmFjX2N2X2Z1bmNfZ3JhbnRwdD15ZXMKYWNfY3ZfZnVuY19ncm91cF9tZW1iZXI9bm8K YWNfY3ZfZnVuY19pc2JsYW5rPXllcwphY19jdl9mdW5jX2lzd2N0eXBlPXllcwphY19jdl9mdW5j X2xjaG1vZD15ZXMKYWNfY3ZfZnVuY19saXN0eGF0dHI9eWVzCmFjX2N2X2Z1bmNfbG9jYWx0aW1l X3I9eWVzCmFjX2N2X2Z1bmNfbG9nMj15ZXMKYWNfY3ZfZnVuY19scmFuZDQ4PXllcwphY19jdl9m dW5jX2xzdGF0PXllcwphY19jdl9mdW5jX2x1dGltZW5zPW5vCmFjX2N2X2Z1bmNfbHV0aW1lcz15 ZXMKYWNfY3ZfZnVuY19tYWR2aXNlPXllcwphY19jdl9mdW5jX21hbGxvY18wX25vbm51bGw9eWVz CmFjX2N2X2Z1bmNfbWFsbG9jX3RyaW09bm8KYWNfY3ZfZnVuY19tZW1tZW09eWVzCmFjX2N2X2Z1 bmNfbWVtcGNweT1ubwphY19jdl9mdW5jX21lbXJjaHI9bm8KYWNfY3ZfZnVuY19tZW1zZXRfZXhw bGljaXQ9bm8KYWNfY3ZfZnVuY19tZW1zZXRfcz15ZXMKYWNfY3ZfZnVuY19ta29zdGVtcD15ZXMK YWNfY3ZfZnVuY19tbWFwX2ZpeGVkX21hcHBlZD15ZXMKYWNfY3ZfZnVuY19uZXdsb2NhbGU9eWVz CmFjX2N2X2Z1bmNfb3Blbl9tZW1zdHJlYW09eWVzCmFjX2N2X2Z1bmNfcGlwZTI9bm8KYWNfY3Zf ZnVuY19wb3NpeF9tYWR2aXNlPXllcwphY19jdl9mdW5jX3Bvc2l4X29wZW5wdD15ZXMKYWNfY3Zf ZnVuY19wb3NpeF9zcGF3bj15ZXMKYWNfY3ZfZnVuY19wb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNf YWRkY2hkaXI9bm8KYWNfY3ZfZnVuY19wb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkY2hkaXJf bnA9eWVzCmFjX2N2X2Z1bmNfcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzPXllcwphY19jdl9mdW5j X3BzZWxlY3Q9eWVzCmFjX2N2X2Z1bmNfcHN0YXRfZ2V0ZHluYW1pYz1ubwphY19jdl9mdW5jX3B0 aHJlYWRfc2V0X25hbWVfbnA9bm8KYWNfY3ZfZnVuY19wdGhyZWFkX3NldG5hbWVfbnA9eWVzCmFj X2N2X2Z1bmNfcHRocmVhZF9zaWdtYXNrPXllcwphY19jdl9mdW5jX3JhbmRvbT15ZXMKYWNfY3Zf ZnVuY19yYXdtZW1jaHI9bm8KYWNfY3ZfZnVuY19yZWFkbGluaz15ZXMKYWNfY3ZfZnVuY19yZWFk bGlua2F0PXllcwphY19jdl9mdW5jX3JlYWxwYXRoPXllcwphY19jdl9mdW5jX3JlY3Zmcm9tPXll cwphY19jdl9mdW5jX3JlbmFtZWF0Mj1ubwphY19jdl9mdW5jX3JpbnQ9eWVzCmFjX2N2X2Z1bmNf c2Jyaz15ZXMKYWNfY3ZfZnVuY19zY2hlZF9nZXRhZmZpbml0eT1ubwphY19jdl9mdW5jX3NjaGVk X2dldGFmZmluaXR5X25wPW5vCmFjX2N2X2Z1bmNfc2VsZWN0PXllcwphY19jdl9mdW5jX3NlbmR0 bz15ZXMKYWNfY3ZfZnVuY19zZXRpdGltZXI9eWVzCmFjX2N2X2Z1bmNfc2V0cmxpbWl0PXllcwph Y19jdl9mdW5jX3NodXRkb3duPXllcwphY19jdl9mdW5jX3NpZzJzdHI9bm8KYWNfY3ZfZnVuY19z aWdkZXNjcl9ucD1ubwphY19jdl9mdW5jX3NucHJpbnRmPXllcwphY19jdl9mdW5jX3N0cGNweT15 ZXMKYWNfY3ZfZnVuY19zdHIyc2lnPW5vCmFjX2N2X2Z1bmNfc3RyZnRpbWVfej1ubwphY19jdl9m dW5jX3N0cm5sZW5fd29ya2luZz15ZXMKYWNfY3ZfZnVuY19zdHJzaWduYWw9eWVzCmFjX2N2X2Z1 bmNfc3RydG9pbWF4PXllcwphY19jdl9mdW5jX3N5bWxpbms9eWVzCmFjX2N2X2Z1bmNfc3luYz15 ZXMKYWNfY3ZfZnVuY19zeXNjdGw9eWVzCmFjX2N2X2Z1bmNfc3lzbXA9bm8KYWNfY3ZfZnVuY190 Y2RyYWluPXllcwphY19jdl9mdW5jX3RpbWVnbT15ZXMKYWNfY3ZfZnVuY190aW1lcl9nZXRvdmVy cnVuPW5vCmFjX2N2X2Z1bmNfdHJ1bmM9eWVzCmFjX2N2X2Z1bmNfdHphbGxvYz1ubwphY19jdl9m dW5jX3V0aW1lbnM9bm8KYWNfY3ZfZnVuY191dGltZW5zYXQ9eWVzCmFjX2N2X2Z1bmNfdXRtcG5h bWU9bm8KYWNfY3ZfZnVuY191dG1weG5hbWU9eWVzCmFjX2N2X2Z1bmNfdmZvcms9eWVzCmFjX2N2 X2Z1bmNfdmZvcmtfd29ya3M9eWVzCmFjX2N2X2hhdmVfZGVjbF9QT1NJWF9TUEFXTl9TRVRTSUQ9 eWVzCmFjX2N2X2hhdmVfZGVjbF9hbGFybT15ZXMKYWNfY3ZfaGF2ZV9kZWNsX2FsaWduZWRfYWxs b2M9eWVzCmFjX2N2X2hhdmVfZGVjbF9jbGVhcmVycl91bmxvY2tlZD15ZXMKYWNfY3ZfaGF2ZV9k ZWNsX2VjdnQ9eWVzCmFjX2N2X2hhdmVfZGVjbF9lbmR1dGVudD1ubwphY19jdl9oYXZlX2RlY2xf ZXhlY3ZwZT1ubwphY19jdl9oYXZlX2RlY2xfZmNsb3NlYWxsPW5vCmFjX2N2X2hhdmVfZGVjbF9m Y3Z0PXllcwphY19jdl9oYXZlX2RlY2xfZmRvcGVuZGlyPXllcwphY19jdl9oYXZlX2RlY2xfZmVv Zl91bmxvY2tlZD15ZXMKYWNfY3ZfaGF2ZV9kZWNsX2ZlcnJvcl91bmxvY2tlZD15ZXMKYWNfY3Zf aGF2ZV9kZWNsX2ZmbHVzaF91bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfZmdldHNfdW5sb2Nr ZWQ9bm8KYWNfY3ZfaGF2ZV9kZWNsX2ZwdXRjX3VubG9ja2VkPW5vCmFjX2N2X2hhdmVfZGVjbF9m cHV0c191bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfZnJlYWRfdW5sb2NrZWQ9bm8KYWNfY3Zf aGF2ZV9kZWNsX2Z3cml0ZV91bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfZ2N2dD15ZXMKYWNf Y3ZfaGF2ZV9kZWNsX2dldGNfdW5sb2NrZWQ9eWVzCmFjX2N2X2hhdmVfZGVjbF9nZXRjaGFyX3Vu bG9ja2VkPXllcwphY19jdl9oYXZlX2RlY2xfZ2V0ZGVsaW09eWVzCmFjX2N2X2hhdmVfZGVjbF9n ZXRkdGFibGVzaXplPXllcwphY19jdl9oYXZlX2RlY2xfZ2V0bGluZT15ZXMKYWNfY3ZfaGF2ZV9k ZWNsX2dldGxvYWRhdmc9eWVzCmFjX2N2X2hhdmVfZGVjbF9nZXR3PXllcwphY19jdl9oYXZlX2Rl Y2xfaXNibGFuaz15ZXMKYWNfY3ZfaGF2ZV9kZWNsX2xvY2FsdGltZV9yPXllcwphY19jdl9oYXZl X2RlY2xfbWVtbWVtPXllcwphY19jdl9oYXZlX2RlY2xfbWVtcmNocj1ubwphY19jdl9oYXZlX2Rl Y2xfcG5nX2xvbmdqbXA9eWVzCmFjX2N2X2hhdmVfZGVjbF9wdXRjX3VubG9ja2VkPXllcwphY19j dl9oYXZlX2RlY2xfcHV0Y2hhcl91bmxvY2tlZD15ZXMKYWNfY3ZfaGF2ZV9kZWNsX3B1dHc9eWVz CmFjX2N2X2hhdmVfZGVjbF9zdHJtb2RlPXllcwphY19jdl9oYXZlX2RlY2xfc3Rybmxlbj15ZXMK YWNfY3ZfaGF2ZV9kZWNsX3N0cnRvaW1heD15ZXMKYWNfY3ZfaGF2ZV9kZWNsX3N5c2luZm89bm8K YWNfY3ZfaGF2ZV9kZWNsX3RpbWVyX3NldHRpbWU9bm8KYWNfY3ZfaGF2ZV9kZWNsX3RpbWVzcGVj X2dldD15ZXMKYWNfY3ZfaGF2ZV94PWhhdmVfeD1ubwphY19jdl9oZWFkZXJfQXBwS2l0X0FwcEtp dF9oPXllcwphY19jdl9oZWFkZXJfT1NfaD1ubwphY19jdl9oZWFkZXJfYWNsX2xpYmFjbF9oPW5v CmFjX2N2X2hlYWRlcl9ieXRlc3dhcF9oPW5vCmFjX2N2X2hlYWRlcl9jb2ZmX2g9bm8KYWNfY3Zf aGVhZGVyX2RpcmVudF9oPXllcwphY19jdl9oZWFkZXJfZW5kaWFuX2g9bm8KYWNfY3ZfaGVhZGVy X2V4ZWNpbmZvX2g9eWVzCmFjX2N2X2hlYWRlcl9nZXRvcHRfaD15ZXMKYWNfY3ZfaGVhZGVyX2dp Zl9saWJfaD1ubwphY19jdl9oZWFkZXJfZ21wX2dtcF9oPW5vCmFjX2N2X2hlYWRlcl9nbXBfaD1u bwphY19jdl9oZWFkZXJfZ3BtX2g9bm8KYWNfY3ZfaGVhZGVyX2llZWU3NTRfaD1ubwphY19jdl9o ZWFkZXJfaWZhZGRyc19oPXllcwphY19jdl9oZWFkZXJfaW50dHlwZXNfaD15ZXMKYWNfY3ZfaGVh ZGVyX2xpYmdlbl9oPXllcwphY19jdl9oZWFkZXJfbGliaW50bF9oPW5vCmFjX2N2X2hlYWRlcl9s aW1pdHNfaD15ZXMKYWNfY3ZfaGVhZGVyX2xpbnV4X2ZpbHRlcl9oPW5vCmFjX2N2X2hlYWRlcl9s aW51eF9mc19oPW5vCmFjX2N2X2hlYWRlcl9saW51eF9zZWNjb21wX2g9bm8KYWNfY3ZfaGVhZGVy X2xpbnV4X3hhdHRyX2g9bm8KYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2g9bm8KYWNf Y3ZfaGVhZGVyX21hbGxvY19oPW5vCmFjX2N2X2hlYWRlcl9tYWxsb2NfbWFsbG9jX2g9eWVzCmFj X2N2X2hlYWRlcl9taW5peF9jb25maWdfaD1ubwphY19jdl9oZWFkZXJfbW1zeXN0ZW1faD1ubwph Y19jdl9oZWFkZXJfbmV0X2lmX2RsX2g9eWVzCmFjX2N2X2hlYWRlcl9uZXRfaWZfaD15ZXMKYWNf Y3ZfaGVhZGVyX3B0aHJlYWRfaD15ZXMKYWNfY3ZfaGVhZGVyX3B0eV9oPW5vCmFjX2N2X2hlYWRl cl9wd2RfaD15ZXMKYWNfY3ZfaGVhZGVyX3Nhbml0aXplcl9hc2FuX2ludGVyZmFjZV9oPXllcwph Y19jdl9oZWFkZXJfc2FuaXRpemVyX2NvbW1vbl9pbnRlcmZhY2VfZGVmc19oPXllcwphY19jdl9o ZWFkZXJfc2FuaXRpemVyX2xzYW5faW50ZXJmYWNlX2g9eWVzCmFjX2N2X2hlYWRlcl9zZWxpbnV4 X3NlbGludXhfaD1ubwphY19jdl9oZWFkZXJfc291bmRjYXJkX2g9bm8KYWNfY3ZfaGVhZGVyX3Nw YXduX2g9eWVzCmFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbj1ubwphY19jdl9oZWFkZXJfc3RkYWxp Z25faD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGJpdF9oPW5vCmFjX2N2X2hlYWRlcl9zdGRib29sX2g9 eWVzCmFjX2N2X2hlYWRlcl9zdGRja2RpbnRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGludF9oPXll cwphY19jdl9oZWFkZXJfc3RkaW9fZXh0X2g9bm8KYWNfY3ZfaGVhZGVyX3N0ZGlvX2g9eWVzCmFj X2N2X2hlYWRlcl9zdGRsaWJfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwphY19jdl9o ZWFkZXJfc3RyaW5nc19oPXllcwphY19jdl9oZWFkZXJfc3lzX2FjbF9oPXllcwphY19jdl9oZWFk ZXJfc3lzX2VuZGlhbl9oPW5vCmFjX2N2X2hlYWRlcl9zeXNfZnNfczVwYXJhbV9oPW5vCmFjX2N2 X2hlYWRlcl9zeXNfZnNfdHlwZXNfaD1ubwphY19jdl9oZWFkZXJfc3lzX2lub3RpZnlfaD1ubwph Y19jdl9oZWFkZXJfc3lzX2xvYWRhdmdfaD1ubwphY19jdl9oZWFkZXJfc3lzX21vdW50X2g9eWVz CmFjX2N2X2hlYWRlcl9zeXNfcGFyYW1faD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19wc3RhdF9oPW5v CmFjX2N2X2hlYWRlcl9zeXNfcmFuZG9tX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfcmVzb3VyY2Vf aD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zZWxlY3RfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zb2Nr ZXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaD1ubwphY19jdl9oZWFkZXJfc3lz X3N0YXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zdGF0ZnNfaD1ubwphY19jdl9oZWFkZXJfc3lz X3N5c2N0bF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3N5c2luZm9faD1ubwphY19jdl9oZWFkZXJf c3lzX3N5c21wX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXN0ZW1pbmZvX2g9bm8KYWNfY3ZfaGVh ZGVyX3N5c190aW1lX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaD15ZXMKYWNfY3ZfaGVh ZGVyX3N5c191bl9oPXllcwphY19jdl9oZWFkZXJfc3lzX3V0c25hbWVfaD15ZXMKYWNfY3ZfaGVh ZGVyX3N5c192ZnNfaD1ubwphY19jdl9oZWFkZXJfc3lzX3dhaXRfaD15ZXMKYWNfY3ZfaGVhZGVy X3RpZmZpb19oPXllcwphY19jdl9oZWFkZXJfdW5pc3RkX2g9eWVzCmFjX2N2X2hlYWRlcl91dGls X2g9eWVzCmFjX2N2X2hlYWRlcl91dG1wX2g9eWVzCmFjX2N2X2hlYWRlcl91dG1weF9oPXllcwph Y19jdl9oZWFkZXJfdmFsZ3JpbmRfdmFsZ3JpbmRfaD1ubwphY19jdl9oZWFkZXJfdmZvcmtfaD1u bwphY19jdl9oZWFkZXJfd2NoYXJfaD15ZXMKYWNfY3ZfaG9zdD1hYXJjaDY0LWFwcGxlLWRhcndp bjI0LjQuMAphY19jdl9saWJfWGJzZF9tYWluPW5vCmFjX2N2X2xpYl9hbmxfZ2V0YWRkcmluZm9f YT1ubwphY19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD1ubwphY19jdl9saWJfc2VsaW51eF9s Z2V0ZmlsZWNvbj1ubwphY19jdl9saWJfc3FsaXRlM19zcWxpdGUzX2xvYWRfZXh0ZW5zaW9uPW5v CmFjX2N2X2xpYl90aWZmX1RJRkZHZXRWZXJzaW9uPW5vCmFjX2N2X2xpYl94bWwyX2h0bWxSZWFk TWVtb3J5PXllcwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9hZGRyPXllcwphY19jdl9t ZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9hZGRyX3NhX2xlbj15ZXMKYWNfY3ZfbWVtYmVyX3N0cnVj dF9pZnJlcV9pZnJfYnJvYWRhZGRyPXllcwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9m bGFncz15ZXMKYWNfY3ZfbWVtYmVyX3N0cnVjdF9pZnJlcV9pZnJfaHdhZGRyPW5vCmFjX2N2X21l bWJlcl9zdHJ1Y3RfaWZyZXFfaWZyX25ldG1hc2s9bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF9wYXNz d2RfcHdfZ2Vjb3M9eWVzCmFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hdGltX3R2X25zZWM9 bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2F0aW1lc3BlY190dl9uc2VjPXllcwphY19j dl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmlydGh0aW1lc3BlY190dl9uc2VjPXllcwphY19jdl9t ZW1iZXJfc3RydWN0X3RtX3RtX2dtdG9mZj15ZXMKYWNfY3ZfbWVtYmVyX3N0cnVjdF90bV90bV96 b25lPXllcwphY19jdl9tZW1iZXJfc3RydWN0X3VuaXBhaXJfdW5pY29kZT1ubwphY19jdl9tZW1i ZXJfc3RydWN0X3V0bXBfdXRfZXhpdD1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXBfdXRfZXhp dF9lX2V4aXQ9bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF91dG1wX3V0X2V4aXRfZV90ZXJtaW5hdGlv bj1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXBfdXRfaG9zdD15ZXMKYWNfY3ZfbWVtYmVyX3N0 cnVjdF91dG1wX3V0X2lkPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfdXRtcF91dF9uYW1lPXllcwph Y19jdl9tZW1iZXJfc3RydWN0X3V0bXBfdXRfcGlkPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfdXRt cF91dF9zZXNzaW9uPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfdXRtcF91dF90dj1ubwphY19jdl9t ZW1iZXJfc3RydWN0X3V0bXBfdXRfdHlwZT1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXBfdXRf dXNlcj1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXB4X3V0X2V4aXQ9bm8KYWNfY3ZfbWVtYmVy X3N0cnVjdF91dG1weF91dF9leGl0X2VfZXhpdD1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXB4 X3V0X2V4aXRfZV90ZXJtaW5hdGlvbj1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXB4X3V0X2V4 aXRfdXRfZXhpdD1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXB4X3V0X2V4aXRfdXRfdGVybWlu YXRpb249bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF91dG1weF91dF9ob3N0PXllcwphY19jdl9tZW1i ZXJfc3RydWN0X3V0bXB4X3V0X2lkPXllcwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXB4X3V0X25h bWU9bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF91dG1weF91dF9waWQ9eWVzCmFjX2N2X21lbWJlcl9z dHJ1Y3RfdXRtcHhfdXRfc2Vzc2lvbj1ubwphY19jdl9tZW1iZXJfc3RydWN0X3V0bXB4X3V0X3R5 cGU9eWVzCmFjX2N2X21lbWJlcl9zdHJ1Y3RfdXRtcHhfdXRfdXNlcj15ZXMKYWNfY3Zfb2JqY19j b21waWxlcl9nbnU9eWVzCmFjX2N2X29iamV4dD1vCmFjX2N2X3BhdGhfRUdSRVBfVFJBRElUSU9O QUw9Jy91c3IvYmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfR1pJUF9QUk9HPS91c3IvYmluL2d6aXAK YWNfY3ZfcGF0aF9JTlNUQUxMX0lORk89L29wdC9ob21lYnJldy9iaW4vaW5zdGFsbC1pbmZvCmFj X2N2X3BhdGhfTUFLRT1nbWFrZQphY19jdl9wYXRoX01BS0VJTkZPPS9vcHQvaG9tZWJyZXcvYmlu L21ha2VpbmZvCmFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0vb3B0L2hvbWVicmV3L2Jpbi9w a2ctY29uZmlnCmFjX2N2X3BhdGhfaW5zdGFsbD0nL29wdC9ob21lYnJldy9iaW4vZ2luc3RhbGwg LWMnCmFjX2N2X3BhdGhfbWtkaXI9L29wdC9ob21lYnJldy9iaW4vZ21rZGlyCmFjX2N2X3Byb2df QVI9YXIKYWNfY3ZfcHJvZ19BV0s9YXdrCmFjX2N2X3Byb2dfQlJFVz1icmV3CmFjX2N2X3Byb2df Q1BQPSdjbGFuZyAtRScKYWNfY3ZfcHJvZ19IQVZFX1hTRVJWRVI9ZmFsc2UKYWNfY3ZfcHJvZ19N QUtFX1BST0c9eWVzCmFjX2N2X3Byb2dfWENSVU49eGNydW4KYWNfY3ZfcHJvZ19hY19jdF9PQkpD PWdjYwphY19jdl9wcm9nX2FjX2N0X1JBTkxJQj1yYW5saWIKYWNfY3ZfcHJvZ19jY19jMTE9CmFj X2N2X3Byb2dfY2NfY2xhbmdfY19vPXllcwphY19jdl9wcm9nX2NjX2c9eWVzCmFjX2N2X3Byb2df Y2Nfc3RkYz0KYWNfY3ZfcHJvZ19vYmpjX2c9eWVzCmFjX2N2X3NhZmVfdG9fZGVmaW5lX19fZXh0 ZW5zaW9uc19fPXllcwphY19jdl9zZWFyY2hfYWNsX2dldF9maWxlPSdub25lIHJlcXVpcmVkJwph Y19jdl9zZWFyY2hfYmFja3RyYWNlX3N5bWJvbHNfZmQ9J25vbmUgcmVxdWlyZWQnCmFjX2N2X3Nl YXJjaF9jbG9ja19nZXR0aW1lPSdub25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfZWFjY2Vzcz1u bwphY19jdl9zZWFyY2hfa3F1ZXVlPSdub25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfbmFub3Ns ZWVwPSdub25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfc2V0ZmlsZWNvbj1ubwphY19jdl9zaG91 bGRfZGVmaW5lX194b3Blbl9zb3VyY2U9bm8KYWNfY3Zfc2l6ZW9mX2xvbmc9OAphY19jdl9zaXpl b2Zfc3BlZWRfdD04CmFjX2N2X3N5c19sYXJnZWZpbGVfb3B0cz0nbm9uZSBuZWVkZWQnCmFjX2N2 X3N5c19wb3NpeF90ZXJtaW9zPXllcwphY19jdl9zeXNfeWVhcjIwMzhfb3B0cz0nbm9uZSBuZWVk ZWQnCmFjX2N2X3R5cGVfYmxrY250X3Q9eWVzCmFjX2N2X3R5cGVfYmxrc2l6ZV90PXllcwphY19j dl90eXBlX2dldGdyb3Vwcz1naWRfdAphY19jdl90eXBlX2dpZF90PXllcwphY19jdl90eXBlX21i c3RhdGVfdD15ZXMKYWNfY3ZfdHlwZV9tb2RlX3Q9eWVzCmFjX2N2X3R5cGVfbmxpbmtfdD15ZXMK YWNfY3ZfdHlwZV9waWRfdD15ZXMKYWNfY3ZfdHlwZV9zaWdoYW5kbGVyX3Q9bm8KYWNfY3ZfdHlw ZV9zaWdzZXRfdD15ZXMKYWNfY3ZfdHlwZV9zb2NrbGVuX3Q9eWVzCmFjX2N2X3R5cGVfdGltZXpv bmVfdD1ubwphY19jdl90eXBlX3ZvbGF0aWxlX3NpZ19hdG9taWNfdD15ZXMKYWNfY3Zfd29ya2lu Z19hbGxvY2FfaD15ZXMKYW1fY3ZfZnVuY193b3JraW5nX2dldGxpbmU9eWVzCmFtX2N2X2xhbmdp bmZvX2NvZGVzZXQ9eWVzCmVtYWNzX2N2X2FsaWduYXNfdW5hdmFpbGFibGU9bm8KZW1hY3NfY3Zf YWx0ZXJuYXRlX3N0YWNrPXllcwplbWFjc19jdl9hdXRvZGVwZW5kPXllcwplbWFjc19jdl9jbGFu Zz15ZXMKZW1hY3NfY3ZfZmluZF9kZWxldGU9LWRlbGV0ZQplbWFjc19jdl9mdW5jX19fYnVpbHRp bl9mcmFtZV9hZGRyZXNzPXllcwplbWFjc19jdl9mdW5jX19fYnVpbHRpbl91bndpbmRfaW5pdD15 ZXMKZW1hY3NfY3ZfZnVuY19fc2V0am1wPXllcwplbWFjc19jdl9mdW5jX3NpZ3NldGptcD15ZXMK ZW1hY3NfY3ZfZ2NjX2J1Z181ODQxNl9DRkxBR1M9J25vbmUgbmVlZGVkJwplbWFjc19jdl9oYXZl X3NxbGl0ZTM9eWVzCmVtYWNzX2N2X2hhdmVfdGltZXJmZD1ubwplbWFjc19jdl9qcGVnbGliPW5v CmVtYWNzX2N2X2xhbmdpbmZvX19ubF9wYXBlcl93aWR0aD1ubwplbWFjc19jdl9saWJfbWF0aD0n bm9uZSByZXF1aXJlZCcKZW1hY3NfY3ZfbGliej0tbHoKZW1hY3NfY3ZfbGlua3NfZ2xpYj1ubwpl bWFjc19jdl9sbl9zX2ZpbGVvbmx5PSdsbiAtcycKZW1hY3NfY3ZfbWFjb3N4XzEyXzA9eWVzCmVt YWNzX2N2X29iamNfYzk5PXllcwplbWFjc19jdl9vYmpjX2luc3RhbmNldHlwZT15ZXMKZW1hY3Nf Y3ZfcGVyc29uYWxpdHlfYWRkcl9ub19yYW5kb21pemU9bm8KZW1hY3NfY3ZfcHJvZ19jY19vPXll cwplbWFjc19jdl9wdGhyZWFkX2xpYj0nbm9uZSBuZWVkZWQnCmVtYWNzX2N2X3B0aHJlYWRfc2V0 bmFtZV9ucF8xYXJnPXllcwplbWFjc19jdl9zYW5pdGl6ZV9hZGRyZXNzPW5vCmVtYWNzX2N2X3N0 YXRlbWVudF9leHByZXNzaW9ucz15ZXMKZW1hY3NfY3Zfc3RydWN0X2FsaWdubWVudD15ZXMKZW1h Y3NfY3ZfdGVybWluZm9fZGVmaW5lc19CQz15ZXMKZW1hY3NfY3ZfdHB1dHNfbGliPS1sbmN1cnNl cwplbWFjc19jdl91c2FibGVfRklPTlJFQUQ9eWVzCmVtYWNzX2N2X3VzYWJsZV9TSUdJTz15ZXMK ZW1hY3NfY3ZfdmFyX2RvdWdfbGVhX21hbGxvYz1ubwpmdV9jdl9zeXNfc3RhdF9zdGF0ZnMyX2Jz aXplPXllcwpmdV9jdl9zeXNfc3RhdF9zdGF0ZnMyX2Zyc2l6ZT1ubwpmdV9jdl9zeXNfc3RhdF9z dGF0ZnMzX29zZjE9bm8KZnVfY3Zfc3lzX3N0YXRfc3RhdHZmcz1ubwpmdV9jdl9zeXNfdHJ1bmNh dGluZ19zdGF0ZnM9bm8KZ2xfY3ZfX19idWlsdGluX2V4cGVjdD15ZXMKZ2xfY3ZfYWNsX0FDTF9G SVJTVF9FTlRSWT15ZXMKZ2xfY3ZfYWNsX0FDTF9UWVBFX0VYVEVOREVEPXllcwpnbF9jdl9jX19f aW5saW5lPXllcwpnbF9jdl9jX2Ftc3RlcmRhbV9jb21waWxlcj1ubwpnbF9jdl9jX2Jvb2w9bm8K Z2xfY3ZfY19tdWx0aWFyY2g9bm8KZ2xfY3ZfY2Nfbm9tZmlfbmVlZGVkPW5vCmdsX2N2X2NjX3Vu aW5pdGlhbGl6ZWRfc3VwcG9ydGVkPXllcwpnbF9jdl9jY193YWxsb3c9LVduby1lcnJvcgpnbF9j dl9jbGVhbl92ZXJzaW9uX3N0ZGRlZj15ZXMKZ2xfY3ZfY29tcGlsZXJfY2hlY2tfZGVjbF9vcHRp b249LVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbgpnbF9jdl9jb21waWxlcl9j bGFuZz15ZXMKZ2xfY3ZfZGVjbF9udWxsX3dvcmtzPXllcwpnbF9jdl9kZWNsX3JlYWRsaW5rX3dv cmtzPXllcwpnbF9jdl9kZWNsX3JlYWRsaW5rYXRfd29ya3M9eWVzCmdsX2N2X2RvdWJsZV9zbGFz aF9yb290PW5vCmdsX2N2X2ZzX3NwYWNlPXllcwpnbF9jdl9mdW5jX19fZnBlbmRpbmc9bm8KZ2xf Y3ZfZnVuY19jb3B5X2ZpbGVfcmFuZ2U9bm8KZ2xfY3ZfZnVuY19kdXAyX3dvcmtzPXllcwpnbF9j dl9mdW5jX2ZjaG1vZGF0X3dvcmtzPXllcwpnbF9jdl9mdW5jX2ZjbnRsX2ZfZHVwZmRfY2xvZXhl Yz15ZXMKZ2xfY3ZfZnVuY19mY250bF9mX2R1cGZkX3dvcmtzPXllcwpnbF9jdl9mdW5jX2Zkb3Bl bmRpcl93b3Jrcz15ZXMKZ2xfY3ZfZnVuY19mcmVlX3ByZXNlcnZlc19lcnJubz1ubwpnbF9jdl9m dW5jX2ZzdGF0YXRfemVyb19mbGFnPXllcwpnbF9jdl9mdW5jX2Z1dGltZW5zX3dvcmtzPW5vCmds X2N2X2Z1bmNfZ2V0Z3JvdXBzX3dvcmtzPW5vCmdsX2N2X2Z1bmNfZ2V0b3B0X3Bvc2l4PW5vCmds X2N2X2Z1bmNfZ2V0dGltZW9mZGF5X3Bvc2l4X3NpZ25hdHVyZT15ZXMKZ2xfY3ZfZnVuY19sb2Nh bHRpbWVfd29ya3M9eWVzCmdsX2N2X2Z1bmNfbHN0YXRfZGVyZWZlcmVuY2VzX3NsYXNoZWRfc3lt bGluaz1ubwpnbF9jdl9mdW5jX21hbGxvY18wX25vbm51bGw9MQpnbF9jdl9mdW5jX21hbGxvY19w b3NpeD15ZXMKZ2xfY3ZfZnVuY19tZW1tZW1fd29ya3NfYWx3YXlzPW5vCmdsX2N2X2Z1bmNfbWVt c2V0X3Nfd29ya3M9eWVzCmdsX2N2X2Z1bmNfbmFub3NsZWVwPSdubyAobWlzaGFuZGxlcyBsYXJn ZSBhcmd1bWVudHMpJwpnbF9jdl9mdW5jX29wZW5fc2xhc2g9bm8KZ2xfY3ZfZnVuY19wcmludGZf YXR0cmlidXRlX2ZsYXZvcj1zeXN0ZW0KZ2xfY3ZfZnVuY19wc2VsZWN0X2RldGVjdHNfZWJhZGY9 eWVzCmdsX2N2X2Z1bmNfcHRocmVhZF9zaWdtYXNrX2luX2xpYmNfd29ya3M9eWVzCmdsX2N2X2Z1 bmNfcHRocmVhZF9zaWdtYXNrX21hY3JvPW5vCmdsX2N2X2Z1bmNfcHRocmVhZF9zaWdtYXNrX3Jl dHVybl93b3Jrcz15ZXMKZ2xfY3ZfZnVuY19wdGhyZWFkX3NpZ21hc2tfdW5ibG9ja193b3Jrcz0n Z3Vlc3NpbmcgeWVzJwpnbF9jdl9mdW5jX3JlX2NvbXBpbGVfcGF0dGVybl93b3JraW5nPW5vCmds X2N2X2Z1bmNfcmVhZGxpbmtfdHJhaWxpbmdfc2xhc2g9bm8KZ2xfY3ZfZnVuY19yZWFkbGlua190 cnVuY2F0ZT15ZXMKZ2xfY3ZfZnVuY19yZWFsbG9jXzBfbm9ubnVsbD15ZXMKZ2xfY3ZfZnVuY19y ZWFsbG9jX3Nhbml0aXplPW5vCmdsX2N2X2Z1bmNfcmVhbHBhdGhfd29ya3M9bm8KZ2xfY3ZfZnVu Y19zdHJ0b2ltYXg9eWVzCmdsX2N2X2Z1bmNfc3ltbGlua193b3Jrcz1ubwpnbF9jdl9mdW5jX3Rp bWVzcGVjX2dldD15ZXMKZ2xfY3ZfZnVuY191bnJlYWNoYWJsZT1ubwpnbF9jdl9mdW5jX3V0aW1l bnNhdF93b3Jrcz1ubwpnbF9jdl9mdW5jX3dvcmtpbmdfYWNsX2dldF9maWxlPXllcwpnbF9jdl9m dW5jX3dvcmtpbmdfbWt0aW1lPW5vCmdsX2N2X2Z1bmNfd29ya2luZ191dGltZXM9eWVzCmdsX2N2 X2hhdmVfX19oZWFkZXJfaW5saW5lPXllcwpnbF9jdl9oYXZlX2luY2x1ZGVfbmV4dD15ZXMKZ2xf Y3ZfaGVhZGVyX2Vycm5vX2hfY29tcGxldGU9eWVzCmdsX2N2X2hlYWRlcl9saW1pdHNfd2lkdGg9 bm8KZ2xfY3ZfaGVhZGVyX3N0ZGludF93aWR0aD1ubwpnbF9jdl9oZWFkZXJfc3RkaW50X3dpdGhv dXRfU1REQ19tYWNyb3M9eWVzCmdsX2N2X2hlYWRlcl9zeXNfY2RlZnNfaD1ubwpnbF9jdl9oZWFk ZXJfc3lzX3NlbGVjdF9oX3NlbGZjb250YWluZWQ9eWVzCmdsX2N2X2hlYWRlcl93b3JraW5nX3N0 ZGFsaWduX2g9J3llcywgPHN0ZGFsaWduLmg+IG1hY3JvcycKZ2xfY3ZfaGVhZGVyX3dvcmtpbmdf c3RkaW50X2g9eWVzCmdsX2N2X21hY3JvX01CX0NVUl9NQVhfZ29vZD15ZXMKZ2xfY3ZfbWFjcm9f T19DTE9FWEVDPXllcwpnbF9jdl9tYWxsb2NfcHRyZGlmZj15ZXMKZ2xfY3ZfbWlubWF4X2luX2xp bWl0c19oPW5vCmdsX2N2X21pbm1heF9pbl9zeXNfcGFyYW1faD15ZXMKZ2xfY3ZfbmV4dF9hc3Nl cnRfaD0nPGFzc2VydC5oPicKZ2xfY3ZfbmV4dF9kaXJlbnRfaD0nPGRpcmVudC5oPicKZ2xfY3Zf bmV4dF9lbmRpYW5faD0nPGVuZGlhbi5oPicKZ2xfY3ZfbmV4dF9mY250bF9oPSc8ZmNudGwuaD4n CmdsX2N2X25leHRfZ2V0b3B0X2g9JzxnZXRvcHQuaD4nCmdsX2N2X25leHRfaW50dHlwZXNfaD0n PGludHR5cGVzLmg+JwpnbF9jdl9uZXh0X2xpbWl0c19oPSc8bGltaXRzLmg+JwpnbF9jdl9uZXh0 X3NpZ25hbF9oPSc8c2lnbmFsLmg+JwpnbF9jdl9uZXh0X3N0ZGRlZl9oPSc8c3RkZGVmLmg+Jwpn bF9jdl9uZXh0X3N0ZGludF9oPSc8c3RkaW50Lmg+JwpnbF9jdl9uZXh0X3N0ZGlvX2g9JzxzdGRp by5oPicKZ2xfY3ZfbmV4dF9zdGRsaWJfaD0nPHN0ZGxpYi5oPicKZ2xfY3ZfbmV4dF9zdHJpbmdf aD0nPHN0cmluZy5oPicKZ2xfY3ZfbmV4dF9zeXNfcmFuZG9tX2g9JzxzeXMvcmFuZG9tLmg+Jwpn bF9jdl9uZXh0X3N5c19zZWxlY3RfaD0nPHN5cy9zZWxlY3QuaD4nCmdsX2N2X25leHRfc3lzX3N0 YXRfaD0nPHN5cy9zdGF0Lmg+JwpnbF9jdl9uZXh0X3N5c190aW1lX2g9JzxzeXMvdGltZS5oPicK Z2xfY3ZfbmV4dF9zeXNfdHlwZXNfaD0nPHN5cy90eXBlcy5oPicKZ2xfY3ZfbmV4dF90aW1lX2g9 Jzx0aW1lLmg+JwpnbF9jdl9uZXh0X3VuaXN0ZF9oPSc8dW5pc3RkLmg+JwpnbF9jdl9udWxscHRy X3RfbmVlZHNfc3RkZGVmPXllcwpnbF9jdl9vbndhcmRzX2Z1bmNfY29weV9maWxlX3JhbmdlPW5v CmdsX2N2X29ud2FyZHNfZnVuY19mYWNjZXNzYXQ9eWVzCmdsX2N2X29ud2FyZHNfZnVuY19mdXRp bWVucz15ZXMKZ2xfY3Zfb253YXJkc19mdW5jX2Z1dGltZXM9eWVzCmdsX2N2X29ud2FyZHNfZnVu Y19mdXRpbWVzYXQ9bm8KZ2xfY3Zfb253YXJkc19mdW5jX2dldGxpbmU9eWVzCmdsX2N2X29ud2Fy ZHNfZnVuY19nZXRsb2FkYXZnPXllcwpnbF9jdl9vbndhcmRzX2Z1bmNfZ2V0cHdlbnQ9eWVzCmds X2N2X29ud2FyZHNfZnVuY19nZXRyYW5kb209bm8KZ2xfY3Zfb253YXJkc19mdW5jX2x1dGltZXM9 eWVzCmdsX2N2X29ud2FyZHNfZnVuY19tZW1wY3B5PW5vCmdsX2N2X29ud2FyZHNfZnVuY19tZW1z ZXRfZXhwbGljaXQ9bm8KZ2xfY3Zfb253YXJkc19mdW5jX21rb3N0ZW1wPXllcwpnbF9jdl9vbndh cmRzX2Z1bmNfcGlwZTI9bm8KZ2xfY3Zfb253YXJkc19mdW5jX3JlYWRsaW5rYXQ9eWVzCmdsX2N2 X29ud2FyZHNfZnVuY19yZW5hbWVhdDI9bm8KZ2xfY3Zfb253YXJkc19mdW5jX3NjaGVkX2dldGFm ZmluaXR5PW5vCmdsX2N2X29ud2FyZHNfZnVuY19zdHBjcHk9eWVzCmdsX2N2X29ud2FyZHNfZnVu Y190aW1lZ209eWVzCmdsX2N2X29ud2FyZHNfZnVuY190aW1lc3BlY19nZXQ9eWVzCmdsX2N2X29u d2FyZHNfZnVuY190emFsbG9jPW5vCmdsX2N2X29ud2FyZHNfZnVuY191dGltZW5zYXQ9eWVzCmds X2N2X3Byb21vdGVkX21vZGVfdD1pbnQKZ2xfY3ZfcnBsX2FsbG9jYT15ZXMKZ2xfY3Zfc2lnX3Bz ZWxlY3Q9eWVzCmdsX2N2X3NvdXJjZV9saW5lX2xlbmd0aF91bmxpbWl0ZWQ9eWVzCmdsX2N2X3Nz aXplX3Q9eWVzCmdsX2N2X3N0YXRpY19hc3NlcnQ9bm8KZ2xfY3Zfc3RkZGVmX2lkZW1wb3RlbnQ9 J2d1ZXNzaW5nIHllcycKZ2xfY3Zfc3RydWN0X2RpcmVudF9kX3R5cGU9eWVzCmdsX2N2X3N5c19z dHJ1Y3RfdGltZXNwZWNfaW5fdGltZV9oPXllcwpnbF9jdl9zeXNfc3RydWN0X3RpbWV2YWw9eWVz CmdsX2N2X3N5c19zdHJ1Y3RfdGltZXZhbF90dl9zZWM9eWVzCmdsX2N2X3RpbWVfaF9oYXNfVElN RV9VVEM9eWVzCmdsX2N2X3RpbWVfcl9wb3NpeD15ZXMKZ2xfY3ZfdGltZV90X2lzX3NpZ25lZD15 ZXMKZ2xfY3ZfdHlwZV9tYXhfYWxpZ25fdD15ZXMKZ2xfY3ZfdHlwZV9zaWdzZXRfdD15ZXMKZ2xf Y3Zfd2Fybl9jX19XYWxsPXllcwpnbF9jdl93YXJuX2NfX1dhcml0aF9jb252ZXJzaW9uPW5vCmds X2N2X3dhcm5fY19fV2FycmF5X2JvdW5kc18yPW5vCmdsX2N2X3dhcm5fY19fV2F0dHJpYnV0ZV9h bGlhc18yPW5vCmdsX2N2X3dhcm5fY19fV2RhdGVfdGltZT15ZXMKZ2xfY3Zfd2Fybl9jX19XZGlz YWJsZWRfb3B0aW1pemF0aW9uPXllcwpnbF9jdl93YXJuX2NfX1dkdXBsaWNhdGVkX2NvbmQ9bm8K Z2xfY3Zfd2Fybl9jX19XZXJyb3JfX1d1bmtub3duX3dhcm5pbmdfb3B0aW9uPXllcwpnbF9jdl93 YXJuX2NfX1dleHRyYT15ZXMKZ2xfY3Zfd2Fybl9jX19XZmxleF9hcnJheV9tZW1iZXJfbm90X2F0 X2VuZD1ubwpnbF9jdl93YXJuX2NfX1dmb3JtYXRfMj15ZXMKZ2xfY3Zfd2Fybl9jX19XZm9ybWF0 X3NpZ25lZG5lc3M9eWVzCmdsX2N2X3dhcm5fY19fV2Zvcm1hdF90cnVuY2F0aW9uXzI9bm8KZ2xf Y3Zfd2Fybl9jX19XaW1wbGljaXRfZmFsbHRocm91Z2hfNT1ubwpnbF9jdl93YXJuX2NfX1dpbml0 X3NlbGY9eWVzCmdsX2N2X3dhcm5fY19fV2ludmFsaWRfcGNoPXllcwpnbF9jdl93YXJuX2NfX1ds b2dpY2FsX29wPW5vCmdsX2N2X3dhcm5fY19fV21pc3NpbmdfZGVjbGFyYXRpb25zPXllcwpnbF9j dl93YXJuX2NfX1dtaXNzaW5nX2luY2x1ZGVfZGlycz15ZXMKZ2xfY3Zfd2Fybl9jX19XbWlzc2lu Z19wcm90b3R5cGVzPXllcwpnbF9jdl93YXJuX2NfX1dtaXNzaW5nX3ZhcmlhYmxlX2RlY2xhcmF0 aW9ucz15ZXMKZ2xfY3Zfd2Fybl9jX19XbmVzdGVkX2V4dGVybnM9eWVzCmdsX2N2X3dhcm5fY19f V25vX2JpZGlfY2hhcnM9bm8KZ2xfY3Zfd2Fybl9jX19Xbm9fYml0d2lzZV9pbnN0ZWFkX29mX2xv Z2ljYWw9eWVzCmdsX2N2X3dhcm5fY19fV25vX2RlcHJlY2F0ZWRfZGVjbGFyYXRpb25zPXllcwpn bF9jdl93YXJuX2NfX1dub19mb3JtYXRfbm9ubGl0ZXJhbD15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9f aW1wbGljaXRfY29uc3RfaW50X2Zsb2F0X2NvbnZlcnNpb249eWVzCmdsX2N2X3dhcm5fY19fV25v X2luaXRpYWxpemVyX292ZXJyaWRlcz15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9faW50X2luX2Jvb2xf Y29udGV4dD15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fbWlzc2luZ19icmFjZXM9eWVzCmdsX2N2X3dh cm5fY19fV25vX21pc3NpbmdfZmllbGRfaW5pdGlhbGl6ZXJzPXllcwpnbF9jdl93YXJuX2NfX1du b19udWxsX3BvaW50ZXJfYXJpdGhtZXRpYz15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fb3ZlcnJpZGVf aW5pdD15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fc2hpZnRfb3ZlcmZsb3c9eWVzCmdsX2N2X3dhcm5f Y19fV25vX3NpZ25fY29tcGFyZT15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fdGF1dG9sb2dpY2FsX2Nv bXBhcmU9eWVzCmdsX2N2X3dhcm5fY19fV25vX3RhdXRvbG9naWNhbF9jb25zdGFudF9vdXRfb2Zf cmFuZ2VfY29tcGFyZT15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fdHlwZV9saW1pdHM9eWVzCmdsX2N2 X3dhcm5fY19fV25vX3VudXNlZF9wYXJhbWV0ZXI9eWVzCmdsX2N2X3dhcm5fY19fV251bGxfZGVy ZWZlcmVuY2U9eWVzCmdsX2N2X3dhcm5fY19fV29sZF9zdHlsZV9kZWZpbml0aW9uPXllcwpnbF9j dl93YXJuX2NfX1dvcGVubXBfc2ltZD1ubwpnbF9jdl93YXJuX2NfX1dwYWNrZWQ9eWVzCmdsX2N2 X3dhcm5fY19fV3BvaW50ZXJfYXJpdGg9eWVzCmdsX2N2X3dhcm5fY19fV3JlZHVuZGFudF9kZWNs cz15ZXMKZ2xfY3Zfd2Fybl9jX19Xc2hpZnRfb3ZlcmZsb3dfMj1ubwpnbF9jdl93YXJuX2NfX1dz dHJpY3RfZmxleF9hcnJheXM9bm8KZ2xfY3Zfd2Fybl9jX19Xc3RyaWN0X3Byb3RvdHlwZXM9eWVz CmdsX2N2X3dhcm5fY19fV3N1Z2dlc3RfYXR0cmlidXRlX2Zvcm1hdD1ubwpnbF9jdl93YXJuX2Nf X1dzdWdnZXN0X2F0dHJpYnV0ZV9ub3JldHVybj1ubwpnbF9jdl93YXJuX2NfX1dzdWdnZXN0X2Zp bmFsX21ldGhvZHM9bm8KZ2xfY3Zfd2Fybl9jX19Xc3VnZ2VzdF9maW5hbF90eXBlcz1ubwpnbF9j dl93YXJuX2NfX1d0aHJlYWRfc2FmZXR5PXllcwpnbF9jdl93YXJuX2NfX1d0cmFpbGluZ193aGl0 ZXNwYWNlPW5vCmdsX2N2X3dhcm5fY19fV3RyYW1wb2xpbmVzPW5vCmdsX2N2X3dhcm5fY19fV3Vu aW5pdGlhbGl6ZWQ9eWVzCmdsX2N2X3dhcm5fY19fV3Vua25vd25fcHJhZ21hcz15ZXMKZ2xfY3Zf d2Fybl9jX19XdW51c2VkX21hY3Jvcz1ubwpnbF9jdl93YXJuX2NfX1d1c2VfYWZ0ZXJfZnJlZV8z PW5vCmdsX2N2X3dhcm5fY19fV3ZhcmlhZGljX21hY3Jvcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdmVj dG9yX29wZXJhdGlvbl9wZXJmb3JtYW5jZT1ubwpnbF9jdl93YXJuX2NfX1d2bGFfbGFyZ2VyX3Ro YW5fNDAzMT1ubwpnbF9jdl93YXJuX2NfX1d3cml0ZV9zdHJpbmdzPXllcwpnbF9jdl93YXJuX2Nf X2ZzdHJpY3RfZmxleF9hcnJheXM9bm8KZ2xfY3ZfeGF0dHJfbGliPW5vCmd0X2N2X2xvY2FsZV9l bl91dGY4PWVuX1VTLlVURi04Cmd0X2N2X3Zhcl9lbnZpcm9uX2RlY2xhcmF0aW9uPW5vCnBrZ19j dl9EQlVTX0NGTEFHUz0nLUkvb3B0L2hvbWVicmV3L0NlbGxhci9kYnVzLzEuMTYuMi9pbmNsdWRl L2RidXMtMS4wIC1JL29wdC9ob21lYnJldy9DZWxsYXIvZGJ1cy8xLjE2LjIvbGliL2RidXMtMS4w L2luY2x1ZGUnCnBrZ19jdl9EQlVTX0xJQlM9Jy1ML29wdC9ob21lYnJldy9DZWxsYXIvZGJ1cy8x LjE2LjIvbGliIC1sZGJ1cy0xJwpwa2dfY3ZfTENNUzJfQ0ZMQUdTPS1JL29wdC9ob21lYnJldy9v cHQvbGl0dGxlLWNtczIvaW5jbHVkZQpwa2dfY3ZfTENNUzJfTElCUz0nLUwvb3B0L2hvbWVicmV3 L29wdC9saXR0bGUtY21zMi9saWIgLWxsY21zMicKcGtnX2N2X0xJQkdOVVRMU19DRkxBR1M9Jy1J L29wdC9ob21lYnJldy9DZWxsYXIvZ251dGxzLzMuOC45L2luY2x1ZGUgLUkvb3B0L2hvbWVicmV3 L0NlbGxhci9uZXR0bGUvMy4xMC4xL2luY2x1ZGUgLUkvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ0 YXNuMS80LjIwLjAvaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYmlkbjIvMi4zLjgv aW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvQ2VsbGFyL3AxMS1raXQvMC4yNS41L2luY2x1ZGUvcDEx LWtpdC0xJwpwa2dfY3ZfTElCR05VVExTX0xJQlM9Jy1ML29wdC9ob21lYnJldy9DZWxsYXIvZ251 dGxzLzMuOC45L2xpYiAtbGdudXRscycKcGtnX2N2X0xJQlhNTDJfQ0ZMQUdTPQpwa2dfY3ZfTElC WE1MMl9MSUJTPS1seG1sMgpwa2dfY3ZfUE5HX0NGTEFHUz0tSS9vcHQvaG9tZWJyZXcvb3B0L2xp YnBuZy9pbmNsdWRlL2xpYnBuZzE2CnBrZ19jdl9QTkdfTElCUz0nLUwvb3B0L2hvbWVicmV3L29w dC9saWJwbmcvbGliIC1scG5nMTYnCnBrZ19jdl9SU1ZHX0NGTEFHUz0nLUkvb3B0L2hvbWVicmV3 L0NlbGxhci9saWJyc3ZnLzIuNjAuMC9pbmNsdWRlL2xpYnJzdmctMi4wIC1JL29wdC9ob21lYnJl dy9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1JL29wdC9ob21lYnJldy9DZWxsYXIvbGlidGlmZi80 LjcuMC9pbmNsdWRlIC1JL29wdC9ob21lYnJldy9vcHQvenN0ZC9pbmNsdWRlIC1JL29wdC9ob21l YnJldy9DZWxsYXIveHovNS44LjEvaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvb3B0L2pwZWctdHVy Ym8vaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJvLzEuMTguNC9pbmNsdWRlL2Nh aXJvIC1JL29wdC9ob21lYnJldy9DZWxsYXIvY2Fpcm8vMS4xOC40L2luY2x1ZGUgLUkvb3B0L2hv bWVicmV3L0NlbGxhci9wYW5nby8xLjU2LjMvaW5jbHVkZS9wYW5nby0xLjAgLUkvb3B0L2hvbWVi cmV3L0NlbGxhci9nbGliLzIuODQuMF8xL2luY2x1ZGUgLUkvb3B0L2hvbWVicmV3L0NlbGxhci9m cmliaWRpLzEuMC4xNi9pbmNsdWRlL2ZyaWJpZGkgLUkvb3B0L2hvbWVicmV3L0NlbGxhci9mb250 Y29uZmlnLzIuMTYuMC9pbmNsdWRlIC1JL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGV4dC8xLjMu Ni9pbmNsdWRlIC1JL29wdC9ob21lYnJldy9DZWxsYXIveG9yZ3Byb3RvLzIwMjQuMS9pbmNsdWRl IC1JL29wdC9ob21lYnJldy9DZWxsYXIvbGlieHJlbmRlci8wLjkuMTIvaW5jbHVkZSAtSS9vcHQv aG9tZWJyZXcvQ2VsbGFyL2xpYngxMS8xLjguMTIvaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvQ2Vs bGFyL2xpYnhjYi8xLjE3LjAvaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhhdS8x LjAuMTIvaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhkbWNwLzEuMS41L2luY2x1 ZGUgLUkvb3B0L2hvbWVicmV3L0NlbGxhci9waXhtYW4vMC40NC4yL2luY2x1ZGUvcGl4bWFuLTEg LUkvb3B0L2hvbWVicmV3L0NlbGxhci9oYXJmYnV6ei8xMS4wLjEvaW5jbHVkZS9oYXJmYnV6eiAt SS9vcHQvaG9tZWJyZXcvb3B0L2ZyZWV0eXBlL2luY2x1ZGUvZnJlZXR5cGUyIC1JL29wdC9ob21l YnJldy9vcHQvbGlicG5nL2luY2x1ZGUvbGlicG5nMTYgLUkvb3B0L2hvbWVicmV3L0NlbGxhci9n cmFwaGl0ZTIvMS4zLjE0L2luY2x1ZGUgLUkvTGlicmFyeS9EZXZlbG9wZXIvQ29tbWFuZExpbmVU b29scy9TREtzL01hY09TWDE1LnNkay91c3IvaW5jbHVkZS9mZmkgLUkvb3B0L2hvbWVicmV3L0Nl bGxhci9nbGliLzIuODQuMF8xL2luY2x1ZGUvZ2xpYi0yLjAgLUkvb3B0L2hvbWVicmV3L0NlbGxh ci9nbGliLzIuODQuMF8xL2xpYi9nbGliLTIuMC9pbmNsdWRlIC1JL29wdC9ob21lYnJldy9vcHQv Z2V0dGV4dC9pbmNsdWRlIC1JL29wdC9ob21lYnJldy9DZWxsYXIvcGNyZTIvMTAuNDUvaW5jbHVk ZScKcGtnX2N2X1JTVkdfTElCUz0nLUwvb3B0L2hvbWVicmV3L0NlbGxhci9saWJyc3ZnLzIuNjAu MC9saWIgLWxyc3ZnLTIgLUwvb3B0L2hvbWVicmV3L2xpYiAtbGdka19waXhidWYtMi4wIC1ML29w dC9ob21lYnJldy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9saWIgLWxnaW8tMi4wIC1ML29wdC9ob21l YnJldy9DZWxsYXIvY2Fpcm8vMS4xOC40L2xpYiAtbGNhaXJvIC1sZ29iamVjdC0yLjAgLWxnbGli LTIuMCAtTC9vcHQvaG9tZWJyZXcvb3B0L2dldHRleHQvbGliIC1saW50bCcKcGtnX2N2X1RSRUVf U0lUVEVSX0NGTEFHUz0tSS9vcHQvaG9tZWJyZXcvQ2VsbGFyL3RyZWUtc2l0dGVyLzAuMjUuMy9p bmNsdWRlCnBrZ19jdl9UUkVFX1NJVFRFUl9MSUJTPSctTC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3Ry ZWUtc2l0dGVyLzAuMjUuMy9saWIgLWx0cmVlLXNpdHRlcicKcGtnX2N2X1dFQlBfQ0ZMQUdTPSct SS9vcHQvaG9tZWJyZXcvb3B0L3dlYnAvaW5jbHVkZSAtSS9vcHQvaG9tZWJyZXcvb3B0L3dlYnAv aW5jbHVkZS93ZWJwJwpwa2dfY3ZfV0VCUF9MSUJTPSctTC9vcHQvaG9tZWJyZXcvb3B0L3dlYnAv bGliIC1sd2VicGRlbXV4IC1sd2VicGRlY29kZXInCgojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwoj IyBPdXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwoKQUFQVD0nJwpB TExPQ0E9JycKQUxMT0NBX0g9J2FsbG9jYS5oJwpBTFNBX0NGTEFHUz0nJwpBTFNBX0xJQlM9JycK QU1fREVGQVVMVF9WRVJCT1NJVFk9JzAnCkFORFJPSUQ9J25vJwpBTkRST0lEX0FCST0nJwpBTkRS T0lEX0JVSUxEX0NGTEFHUz0nJwpBTkRST0lEX0NDPScnCkFORFJPSURfQ0ZMQUdTPScnCkFORFJP SURfREVCVUdHQUJMRT0nJwpBTkRST0lEX0pBUj0nJwpBTkRST0lEX0xERkxBR1M9JycKQU5EUk9J RF9MSUJTPScnCkFORFJPSURfTUlOX1NESz0nJwpBTkRST0lEX09CSj0nJwpBTkRST0lEX1NES18x OF9PUl9FQVJMSUVSPScnCkFORFJPSURfU0RLXzhfT1JfRUFSTElFUj0nJwpBTkRST0lEX1NIQVJF RF9VU0VSX0lEPScnCkFORFJPSURfU0hBUkVEX1VTRVJfTkFNRT0nJwpBUEtTSUdORVI9JycKQVBQ TEVfVU5JVkVSU0FMX0JVSUxEPScwJwpBUj0nYXInCkFSRkxBR1M9J2NyJwpBU1NFUlRfSD0nYXNz ZXJ0LmgnCkFVVE9fREVQRU5EPSd5ZXMnCkFXSz0nYXdrJwpCSVRTSVpFT0ZfUFRSRElGRl9UPScn CkJJVFNJWkVPRl9TSUdfQVRPTUlDX1Q9JycKQklUU0laRU9GX1NJWkVfVD0nJwpCSVRTSVpFT0Zf V0NIQVJfVD0nJwpCSVRTSVpFT0ZfV0lOVF9UPScnCkJMRVNTTUFJTF9UQVJHRVQ9JycKQlJFVz0n YnJldycKQlVJTERfREVUQUlMUz0nJwpCWVRFU1dBUF9IPSdieXRlc3dhcC5oJwpDQUlST19DRkxB R1M9JycKQ0FJUk9fTElCUz0nJwpDQUlST19YQ0JfQ0ZMQUdTPScnCkNBSVJPX1hDQl9MSUJTPScn CkNBSVJPX1hMSUJfQ0ZMQUdTPScnCkNBSVJPX1hMSUJfTElCUz0nJwpDQU5fUFJJTlRfU1RBQ0tf VFJBQ0U9JzAnCkNDPSdjbGFuZycKQ0ZMQUdTPSctV2dudS1pbWFnaW5hcnktY29uc3RhbnQgLVd1 bnVzZWQtcmVzdWx0IC1nIC1GIC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01hY09TWC5zZGsv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyAtV25vLWlnbm9yZWQtYXR0cmlidXRlcyAtV25vLWZs YWctZW51bSAtV25vLW1pc3NpbmctbWV0aG9kLXJldHVybi10eXBlIC1Xbm8tdmFyaWFkaWMtbWFj cm9zIC1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgLVduby1hdmFpbGFiaWxpdHkgLVduby1udWxsYWJp bGl0eS1jb21wbGV0ZW5lc3MgLU8nCkNGTEFHU19TT1VORD0nJwpDSEVDS19TVFJVQ1RTPSdmYWxz ZScKQ0xJRU5UUkVTPScnCkNMSUVOVFc9JycKQ0xPQ0tfVElNRV9MSUI9JycKQ01fT0JKPSdjbS5v JwpDT01fRVJSTElCPScnCkNQUD0nY2xhbmcgLUUnCkNQUEZMQUdTPScgICcKQ1JZUFRPTElCPScn CkNYWD0nJwpDWFhGTEFHUz0nJwpDWUdXSU5fT0JKPScnCkNfU1dJVENIX01BQ0hJTkU9JycKQ19T V0lUQ0hfU1lTVEVNPScnCkNfU1dJVENIX1hfU0lURT0nJwpEOD0nJwpEQlVTX0NGTEFHUz0nLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZGJ1cy8xLjE2LjIvaW5jbHVkZS9kYnVzLTEuMCAt aXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9kYnVzLzEuMTYuMi9saWIvZGJ1cy0xLjAvaW5j bHVkZScKREJVU19MSUJTPSctTC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2RidXMvMS4xNi4yL2xpYiAt bGRidXMtMScKREJVU19PQko9J2RidXNiaW5kLm8nCkRFRlM9Jy1ESEFWRV9DT05GSUdfSCcKREVT TElCPScnCkRJUl9IQVNfRkRfTUVNQkVSPScxJwpET0NNSVNDX1czMj0nJwpEVU1QSU5HPSdwZHVt cGVyJwpEWU5BTUlDX0xJQl9TRUNPTkRBUllfU1VGRklYPScuc28nCkRZTkFNSUNfTElCX1NVRkZJ WD0nLmR5bGliJwpEWU5MSUJfT0JKPSdkeW5saWIubycKRUNIT19DPSdcYycKRUNIT19OPScnCkVD SE9fVD0nJwpFTUFDU1JFUz0nJwpFTUFDU19NQU5JRkVTVD0nJwpFTVVMVElIT1BfSElEREVOPScn CkVNVUxUSUhPUF9WQUxVRT0nJwpFTkRJQU5fSD0nZW5kaWFuLmgnCkVORElBTl9IX0pVU1RfTUlT U0lOR19TVERJTlQ9JzAnCkVOT0xJTktfSElEREVOPScnCkVOT0xJTktfVkFMVUU9JycKRU9WRVJG TE9XX0hJRERFTj0nJwpFT1ZFUkZMT1dfVkFMVUU9JycKRVJSTk9fSD0nJwpFVUlEQUNDRVNTX0xJ QkdFTj0nJwpFWEVDSU5GT19IPScnCkVYRUVYVD0nJwpGSUxFX0hBU19BQ0xfTElCPScnCkZJTkRf REVMRVRFPSctZGVsZXRlJwpGT05UQ09ORklHX0NGTEFHUz0nJwpGT05UQ09ORklHX0xJQlM9JycK Rk9OVF9PQko9JycKRlJFRVRZUEVfQ0ZMQUdTPScnCkZSRUVUWVBFX0xJQlM9JycKR0NPTkZfQ0ZM QUdTPScnCkdDT05GX0xJQlM9JycKR0VUQUREUklORk9fQV9MSUJTPScnCkdFVExPQURBVkdfTElC Uz0nJwpHRVRPUFRfQ0RFRlNfSD0nZ2V0b3B0LWNkZWZzLmgnCkdFVE9QVF9IPSdnZXRvcHQuaCcK R0VUUkFORE9NX0xJQj0nJwpHRklMRU5PVElGWV9DRkxBR1M9JycKR0ZJTEVOT1RJRllfTElCUz0n JwpHSUZfQ0ZMQUdTPScnCkdMX0NGTEFHX0FMTE9XX1dBUk5JTkdTPSctV25vLWVycm9yJwpHTF9D RkxBR19HTlVMSUJfV0FSTklOR1M9JyAtV25vLWNhc3QtcXVhbCAtV25vLWNvbnZlcnNpb24gLVdu by1mbG9hdC1lcXVhbCAtV25vLXNpZ24tY29tcGFyZSAtV25vLXVuZGVmIC1Xbm8tdW51c2VkLWZ1 bmN0aW9uIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLWZsb2F0LWNvbnZlcnNpb24gLVdpbXBs aWNpdC1mYWxsdGhyb3VnaCAtV25vLXBlZGFudGljIC1Xbm8tdGF1dG9sb2dpY2FsLWNvbnN0YW50 LW91dC1vZi1yYW5nZS1jb21wYXJlIC1Xbm8tc2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1saW1p dHMgLVduby11bnVzZWQtY29uc3QtdmFyaWFibGUnCkdMX0NPTkRfTElCVE9PTF9DT05ESVRJT049 JycKR0xfQ09ORF9PQkpfQ0FOT05JQ0FMSVpFX0xHUExfQ09ORElUSU9OPScxJwpHTF9DT05EX09C Sl9DT1BZX0ZJTEVfUkFOR0VfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9ESVJGRF9DT05ESVRJ T049JycKR0xfQ09ORF9PQkpfRFVQMl9DT05ESVRJT049JycKR0xfQ09ORF9PQkpfRVVJREFDQ0VT U19DT05ESVRJT049JzEnCkdMX0NPTkRfT0JKX0VYRUNJTkZPX0NPTkRJVElPTj0nJwpHTF9DT05E X09CSl9GQUNDRVNTQVRfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9GQ0hNT0RBVF9DT05ESVRJ T049JycKR0xfQ09ORF9PQkpfRkNOVExfQ09ORElUSU9OPScnCkdMX0NPTkRfT0JKX0ZET1BFTkRJ Ul9DT05ESVRJT049JycKR0xfQ09ORF9PQkpfRlBFTkRJTkdfQ09ORElUSU9OPScxJwpHTF9DT05E X09CSl9GUkVFX0NPTkRJVElPTj0nMScKR0xfQ09ORF9PQkpfRlNUQVRBVF9DT05ESVRJT049JzEn CkdMX0NPTkRfT0JKX0ZTVVNBR0VfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9GU1lOQ19DT05E SVRJT049JycKR0xfQ09ORF9PQkpfRlVUSU1FTlNfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9H RVRERUxJTV9DT05ESVRJT049JycKR0xfQ09ORF9PQkpfR0VURFRBQkxFU0laRV9DT05ESVRJT049 JycKR0xfQ09ORF9PQkpfR0VUR1JPVVBTX0NPTkRJVElPTj0nMScKR0xfQ09ORF9PQkpfR0VUTElO RV9DT05ESVRJT049JycKR0xfQ09ORF9PQkpfR0VUTE9BREFWR19DT05ESVRJT049JycKR0xfQ09O RF9PQkpfR0VUT1BUX0NPTkRJVElPTj0nMScKR0xfQ09ORF9PQkpfR0VUUkFORE9NX0NPTkRJVElP Tj0nMScKR0xfQ09ORF9PQkpfR0VUVElNRU9GREFZX0NPTkRJVElPTj0nJwpHTF9DT05EX09CSl9H Uk9VUF9NRU1CRVJfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9MQ0hNT0RfQ09ORElUSU9OPScn CkdMX0NPTkRfT0JKX0xTVEFUX0NPTkRJVElPTj0nMScKR0xfQ09ORF9PQkpfTUVNUENQWV9DT05E SVRJT049JzEnCkdMX0NPTkRfT0JKX01FTVJDSFJfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9N RU1TRVRfRVhQTElDSVRfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9NSU5JX0dNUF9HTlVMSUJf Q09ORElUSU9OPScxJwpHTF9DT05EX09CSl9NS09TVEVNUF9DT05ESVRJT049JycKR0xfQ09ORF9P QkpfTkFOT1NMRUVQX0NPTkRJVElPTj0nMScKR0xfQ09ORF9PQkpfT1BFTl9DT05ESVRJT049JzEn CkdMX0NPTkRfT0JKX1BTRUxFQ1RfQ09ORElUSU9OPScnCkdMX0NPTkRfT0JKX1BUSFJFQURfU0lH TUFTS19DT05ESVRJT049JycKR0xfQ09ORF9PQkpfUkFXTUVNQ0hSX0NPTkRJVElPTj0nMScKR0xf Q09ORF9PQkpfUkVBRExJTktBVF9DT05ESVRJT049JzEnCkdMX0NPTkRfT0JKX1JFQURMSU5LX0NP TkRJVElPTj0nMScKR0xfQ09ORF9PQkpfUkVBTExPQ19QT1NJWF9DT05ESVRJT049JycKR0xfQ09O RF9PQkpfUkVHRVhfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9TSUcyU1RSX0NPTkRJVElPTj0n MScKR0xfQ09ORF9PQkpfU0lHREVTQ1JfTlBfQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9TVERJ T19SRUFEX0NPTkRJVElPTj0nJwpHTF9DT05EX09CSl9TVERJT19XUklURV9DT05ESVRJT049JycK R0xfQ09ORF9PQkpfU1RQQ1BZX0NPTkRJVElPTj0nJwpHTF9DT05EX09CSl9TVFJOTEVOX0NPTkRJ VElPTj0nJwpHTF9DT05EX09CSl9TVFJUT0lNQVhfQ09ORElUSU9OPScnCkdMX0NPTkRfT0JKX1NU UlRPTExfQ09ORElUSU9OPScnCkdMX0NPTkRfT0JKX1NZTUxJTktfQ09ORElUSU9OPScxJwpHTF9D T05EX09CSl9USU1FR01fQ09ORElUSU9OPScxJwpHTF9DT05EX09CSl9USU1FX1JaX0NPTkRJVElP Tj0nMScKR0xfQ09ORF9PQkpfVElNRV9SX0NPTkRJVElPTj0nJwpHTF9DT05EX09CSl9VVElNRU5T QVRfQ09ORElUSU9OPScxJwpHTF9HRU5FUkFURV9BTExPQ0FfSF9DT05ESVRJT049JzEnCkdMX0dF TkVSQVRFX0FTU0VSVF9IX0NPTkRJVElPTj0nMScKR0xfR0VORVJBVEVfQllURVNXQVBfSF9DT05E SVRJT049JzEnCkdMX0dFTkVSQVRFX0VORElBTl9IX0NPTkRJVElPTj0nMScKR0xfR0VORVJBVEVf RVJSTk9fSF9DT05ESVRJT049JycKR0xfR0VORVJBVEVfRVhFQ0lORk9fSF9DT05ESVRJT049JycK R0xfR0VORVJBVEVfR0VUT1BUX0NERUZTX0hfQ09ORElUSU9OPScxJwpHTF9HRU5FUkFURV9HRVRP UFRfSF9DT05ESVRJT049JzEnCkdMX0dFTkVSQVRFX0dNUF9HTVBfSF9DT05ESVRJT049JycKR0xf R0VORVJBVEVfR01QX0hfQ09ORElUSU9OPScxJwpHTF9HRU5FUkFURV9JRUVFNzU0X0hfQ09ORElU SU9OPScxJwpHTF9HRU5FUkFURV9MSU1JVFNfSF9DT05ESVRJT049JzEnCkdMX0dFTkVSQVRFX01J TklfR01QX0hfQ09ORElUSU9OPScxJwpHTF9HRU5FUkFURV9TVERCSVRfSF9DT05ESVRJT049JzEn CkdMX0dFTkVSQVRFX1NURENLRElOVF9IX0NPTkRJVElPTj0nJwpHTF9HRU5FUkFURV9TVERERUZf SF9DT05ESVRJT049JzEnCkdMX0dFTkVSQVRFX1NURElOVF9IX0NPTkRJVElPTj0nMScKR0xfR05V TElCX0FCT1JUX0RFQlVHPScwJwpHTF9HTlVMSUJfQUNDRVNTPScwJwpHTF9HTlVMSUJfQUxJR05F RF9BTExPQz0nMCcKR0xfR05VTElCX0FMUEhBU09SVD0nMCcKR0xfR05VTElCX0FUT0xMPScwJwpH TF9HTlVMSUJfQ0FMTE9DX0dOVT0nMCcKR0xfR05VTElCX0NBTExPQ19QT1NJWD0nMCcKR0xfR05V TElCX0NBTk9OSUNBTElaRV9GSUxFX05BTUU9JzEnCkdMX0dOVUxJQl9DSERJUj0nMCcKR0xfR05V TElCX0NITU9EPScwJwpHTF9HTlVMSUJfQ0hPV049JzAnCkdMX0dOVUxJQl9DTE9TRT0nMCcKR0xf R05VTElCX0NMT1NFRElSPScwJwpHTF9HTlVMSUJfQ09QWV9GSUxFX1JBTkdFPScxJwpHTF9HTlVM SUJfQ1JFQVQ9JzAnCkdMX0dOVUxJQl9DVElNRT0nMCcKR0xfR05VTElCX0RJUkZEPScwJwpHTF9H TlVMSUJfRFBSSU5URj0nMCcKR0xfR05VTElCX0RVUDI9JzEnCkdMX0dOVUxJQl9EVVAzPScwJwpH TF9HTlVMSUJfRFVQPScwJwpHTF9HTlVMSUJfRFpQUklOVEY9JzAnCkdMX0dOVUxJQl9FTlZJUk9O PScxJwpHTF9HTlVMSUJfRVVJREFDQ0VTUz0nMScKR0xfR05VTElCX0VYRUNMPScwJwpHTF9HTlVM SUJfRVhFQ0xFPScwJwpHTF9HTlVMSUJfRVhFQ0xQPScwJwpHTF9HTlVMSUJfRVhFQ1Y9JzAnCkdM X0dOVUxJQl9FWEVDVkU9JzAnCkdMX0dOVUxJQl9FWEVDVlA9JzAnCkdMX0dOVUxJQl9FWEVDVlBF PScwJwpHTF9HTlVMSUJfRVhQTElDSVRfQlpFUk89JzAnCkdMX0dOVUxJQl9GQUNDRVNTQVQ9JzEn CkdMX0dOVUxJQl9GQ0hESVI9JzAnCkdMX0dOVUxJQl9GQ0hNT0RBVD0nMScKR0xfR05VTElCX0ZD SE9XTkFUPScwJwpHTF9HTlVMSUJfRkNMT1NFPScwJwpHTF9HTlVMSUJfRkNOVEw9JzEnCkdMX0dO VUxJQl9GREFUQVNZTkM9JzAnCkdMX0dOVUxJQl9GRE9QRU49JzAnCkdMX0dOVUxJQl9GRE9QRU5E SVI9JzEnCkdMX0dOVUxJQl9GRkxVU0g9JzAnCkdMX0dOVUxJQl9GRlNMPScwJwpHTF9HTlVMSUJf RkZTTEw9JzAnCkdMX0dOVUxJQl9GR0VUQz0nMScKR0xfR05VTElCX0ZHRVRTPScxJwpHTF9HTlVM SUJfRk9QRU49JzAnCkdMX0dOVUxJQl9GT1BFTl9HTlU9JzAnCkdMX0dOVUxJQl9GUFJJTlRGPScx JwpHTF9HTlVMSUJfRlBSSU5URl9QT1NJWD0nMCcKR0xfR05VTElCX0ZQVVJHRT0nMCcKR0xfR05V TElCX0ZQVVRDPScxJwpHTF9HTlVMSUJfRlBVVFM9JzEnCkdMX0dOVUxJQl9GUkVBRD0nMScKR0xf R05VTElCX0ZSRUVfUE9TSVg9JzEnCkdMX0dOVUxJQl9GUkVPUEVOPScwJwpHTF9HTlVMSUJfRlND QU5GPScxJwpHTF9HTlVMSUJfRlNFRUs9JzAnCkdMX0dOVUxJQl9GU0VFS089JzAnCkdMX0dOVUxJ Ql9GU1RBVD0nMCcKR0xfR05VTElCX0ZTVEFUQVQ9JzEnCkdMX0dOVUxJQl9GU1lOQz0nMScKR0xf R05VTElCX0ZURUxMPScwJwpHTF9HTlVMSUJfRlRFTExPPScwJwpHTF9HTlVMSUJfRlRSVU5DQVRF PScwJwpHTF9HTlVMSUJfRlVUSU1FTlM9JzEnCkdMX0dOVUxJQl9GV1JJVEU9JzEnCkdMX0dOVUxJ Ql9GWlBSSU5URj0nMCcKR0xfR05VTElCX0dFVEM9JzEnCkdMX0dOVUxJQl9HRVRDSEFSPScxJwpH TF9HTlVMSUJfR0VUQ1dEPScwJwpHTF9HTlVMSUJfR0VUREVMSU09JzAnCkdMX0dOVUxJQl9HRVRE T01BSU5OQU1FPScwJwpHTF9HTlVMSUJfR0VURFRBQkxFU0laRT0nMCcKR0xfR05VTElCX0dFVEVO VFJPUFk9JzAnCkdMX0dOVUxJQl9HRVRHUk9VUFM9JzEnCkdMX0dOVUxJQl9HRVRIT1NUTkFNRT0n MCcKR0xfR05VTElCX0dFVExJTkU9JzEnCkdMX0dOVUxJQl9HRVRMT0FEQVZHPScxJwpHTF9HTlVM SUJfR0VUTE9HSU49JzAnCkdMX0dOVUxJQl9HRVRMT0dJTl9SPScwJwpHTF9HTlVMSUJfR0VUT1BU X1BPU0lYPScxJwpHTF9HTlVMSUJfR0VUUEFHRVNJWkU9JzAnCkdMX0dOVUxJQl9HRVRQQVNTPScw JwpHTF9HTlVMSUJfR0VUUEFTU19HTlU9JzAnCkdMX0dOVUxJQl9HRVRQUk9HTkFNRT0nMCcKR0xf R05VTElCX0dFVFJBTkRPTT0nMScKR0xfR05VTElCX0dFVFNVQk9QVD0nMCcKR0xfR05VTElCX0dF VFRJTUVPRkRBWT0nMScKR0xfR05VTElCX0dFVFVNQVNLPScwJwpHTF9HTlVMSUJfR0VUVVNFUlNI RUxMPScwJwpHTF9HTlVMSUJfR1JBTlRQVD0nMCcKR0xfR05VTElCX0dST1VQX01FTUJFUj0nMScK R0xfR05VTElCX0lNQVhBQlM9JzAnCkdMX0dOVUxJQl9JTUFYRElWPScwJwpHTF9HTlVMSUJfSVNB VFRZPScwJwpHTF9HTlVMSUJfTENITU9EPScwJwpHTF9HTlVMSUJfTENIT1dOPScwJwpHTF9HTlVM SUJfTElOSz0nMCcKR0xfR05VTElCX0xJTktBVD0nMCcKR0xfR05VTElCX0xPQ0FMVElNRT0nMCcK R0xfR05VTElCX0xTRUVLPScwJwpHTF9HTlVMSUJfTFNUQVQ9JzEnCkdMX0dOVUxJQl9NQUxMT0Nf R05VPScxJwpHTF9HTlVMSUJfTUFMTE9DX1BPU0lYPScxJwpHTF9HTlVMSUJfTUJTQ0FTRUNNUD0n MCcKR0xfR05VTElCX01CU0NBU0VTVFI9JzAnCkdMX0dOVUxJQl9NQlNDSFI9JzAnCkdMX0dOVUxJ Ql9NQlNDU1BOPScwJwpHTF9HTlVMSUJfTUJTTEVOPScwJwpHTF9HTlVMSUJfTUJTTkNBU0VDTVA9 JzAnCkdMX0dOVUxJQl9NQlNOTEVOPScwJwpHTF9HTlVMSUJfTUJTUEJSSz0nMCcKR0xfR05VTElC X01CU1BDQVNFQ01QPScwJwpHTF9HTlVMSUJfTUJTUkNIUj0nMCcKR0xfR05VTElCX01CU1NFUD0n MCcKR0xfR05VTElCX01CU1NQTj0nMCcKR0xfR05VTElCX01CU1NUUj0nMCcKR0xfR05VTElCX01C U1RPS19SPScwJwpHTF9HTlVMSUJfTUJTVE9XQ1M9JzAnCkdMX0dOVUxJQl9NQlNfRU5EU1dJVEg9 JzAnCkdMX0dOVUxJQl9NQlNfU1RBUlRTV0lUSD0nMCcKR0xfR05VTElCX01CVE9XQz0nMCcKR0xf R05VTElCX01EQV9BQ0NFU1M9JzEnCkdMX0dOVUxJQl9NREFfQ0hESVI9JzEnCkdMX0dOVUxJQl9N REFfQ0hNT0Q9JzEnCkdMX0dOVUxJQl9NREFfQ0xPU0U9JzEnCkdMX0dOVUxJQl9NREFfQ1JFQVQ9 JzEnCkdMX0dOVUxJQl9NREFfRFVQMj0nMScKR0xfR05VTElCX01EQV9EVVA9JzEnCkdMX0dOVUxJ Ql9NREFfRUNWVD0nMScKR0xfR05VTElCX01EQV9FWEVDTD0nMScKR0xfR05VTElCX01EQV9FWEVD TEU9JzEnCkdMX0dOVUxJQl9NREFfRVhFQ0xQPScxJwpHTF9HTlVMSUJfTURBX0VYRUNWPScxJwpH TF9HTlVMSUJfTURBX0VYRUNWRT0nMScKR0xfR05VTElCX01EQV9FWEVDVlA9JzEnCkdMX0dOVUxJ Ql9NREFfRVhFQ1ZQRT0nMScKR0xfR05VTElCX01EQV9GQ0xPU0VBTEw9JzEnCkdMX0dOVUxJQl9N REFfRkNWVD0nMScKR0xfR05VTElCX01EQV9GRE9QRU49JzEnCkdMX0dOVUxJQl9NREFfRklMRU5P PScxJwpHTF9HTlVMSUJfTURBX0dDVlQ9JzEnCkdMX0dOVUxJQl9NREFfR0VUQ1dEPScxJwpHTF9H TlVMSUJfTURBX0dFVFBJRD0nMScKR0xfR05VTElCX01EQV9HRVRXPScxJwpHTF9HTlVMSUJfTURB X0lTQVRUWT0nMScKR0xfR05VTElCX01EQV9MU0VFSz0nMScKR0xfR05VTElCX01EQV9NRU1DQ1BZ PScxJwpHTF9HTlVMSUJfTURBX01LRElSPScxJwpHTF9HTlVMSUJfTURBX01LVEVNUD0nMScKR0xf R05VTElCX01EQV9PUEVOPScxJwpHTF9HTlVMSUJfTURBX1BVVEVOVj0nMScKR0xfR05VTElCX01E QV9QVVRXPScxJwpHTF9HTlVMSUJfTURBX1JFQUQ9JzEnCkdMX0dOVUxJQl9NREFfUk1ESVI9JzEn CkdMX0dOVUxJQl9NREFfU1RSRFVQPScxJwpHTF9HTlVMSUJfTURBX1NXQUI9JzEnCkdMX0dOVUxJ Ql9NREFfVEVNUE5BTT0nMScKR0xfR05VTElCX01EQV9UWlNFVD0nMScKR0xfR05VTElCX01EQV9V TUFTSz0nMScKR0xfR05VTElCX01EQV9VTkxJTks9JzEnCkdMX0dOVUxJQl9NREFfV1JJVEU9JzEn CkdMX0dOVUxJQl9NRU1DSFI9JzAnCkdMX0dOVUxJQl9NRU1NRU09JzEnCkdMX0dOVUxJQl9NRU1Q Q1BZPScxJwpHTF9HTlVMSUJfTUVNUkNIUj0nMScKR0xfR05VTElCX01FTVNFVF9FWFBMSUNJVD0n MScKR0xfR05VTElCX01LRElSPScwJwpHTF9HTlVMSUJfTUtESVJBVD0nMCcKR0xfR05VTElCX01L RFRFTVA9JzAnCkdMX0dOVUxJQl9NS0ZJRk89JzAnCkdMX0dOVUxJQl9NS0ZJRk9BVD0nMCcKR0xf R05VTElCX01LTk9EPScwJwpHTF9HTlVMSUJfTUtOT0RBVD0nMCcKR0xfR05VTElCX01LT1NURU1Q PScxJwpHTF9HTlVMSUJfTUtPU1RFTVBTPScwJwpHTF9HTlVMSUJfTUtTVEVNUD0nMCcKR0xfR05V TElCX01LU1RFTVBTPScwJwpHTF9HTlVMSUJfTUtUSU1FPScxJwpHTF9HTlVMSUJfTkFOT1NMRUVQ PScxJwpHTF9HTlVMSUJfTk9OQkxPQ0tJTkc9JzAnCkdMX0dOVUxJQl9PQlNUQUNLX1BSSU5URj0n MCcKR0xfR05VTElCX09CU1RBQ0tfUFJJTlRGX1BPU0lYPScwJwpHTF9HTlVMSUJfT0JTVEFDS19a UFJJTlRGPScwJwpHTF9HTlVMSUJfT1BFTj0nMScKR0xfR05VTElCX09QRU5BVD0nMCcKR0xfR05V TElCX09QRU5ESVI9JzAnCkdMX0dOVUxJQl9PVkVSUklERVNfU1RSVUNUX1NUQVQ9JzAnCkdMX0dO VUxJQl9QQ0xPU0U9JzAnCkdMX0dOVUxJQl9QRVJST1I9JzAnCkdMX0dOVUxJQl9QSVBFMj0nMScK R0xfR05VTElCX1BJUEU9JzAnCkdMX0dOVUxJQl9QT1BFTj0nMCcKR0xfR05VTElCX1BPU0lYX01F TUFMSUdOPScwJwpHTF9HTlVMSUJfUE9TSVhfT1BFTlBUPScwJwpHTF9HTlVMSUJfUFJFQUQ9JzAn CkdMX0dOVUxJQl9QUklOVEY9JzEnCkdMX0dOVUxJQl9QUklOVEZfUE9TSVg9JzAnCkdMX0dOVUxJ Ql9QU0VMRUNUPScxJwpHTF9HTlVMSUJfUFRIUkVBRF9TSUdNQVNLPScxJwpHTF9HTlVMSUJfUFRT TkFNRT0nMCcKR0xfR05VTElCX1BUU05BTUVfUj0nMCcKR0xfR05VTElCX1BVVEM9JzEnCkdMX0dO VUxJQl9QVVRDSEFSPScxJwpHTF9HTlVMSUJfUFVURU5WPScwJwpHTF9HTlVMSUJfUFVUUz0nMScK R0xfR05VTElCX1BXUklURT0nMCcKR0xfR05VTElCX1FTT1JUX1I9JzAnCkdMX0dOVUxJQl9SQUlT RT0nMCcKR0xfR05VTElCX1JBTkQ9JzAnCkdMX0dOVUxJQl9SQU5ET009JzAnCkdMX0dOVUxJQl9S QU5ET01fUj0nMCcKR0xfR05VTElCX1JBV01FTUNIUj0nMScKR0xfR05VTElCX1JFQUQ9JzAnCkdM X0dOVUxJQl9SRUFERElSPScwJwpHTF9HTlVMSUJfUkVBRExJTks9JzEnCkdMX0dOVUxJQl9SRUFE TElOS0FUPScxJwpHTF9HTlVMSUJfUkVBTExPQ0FSUkFZPScwJwpHTF9HTlVMSUJfUkVBTExPQ19Q T1NJWD0nMScKR0xfR05VTElCX1JFQUxQQVRIPScxJwpHTF9HTlVMSUJfUkVNT1ZFPScwJwpHTF9H TlVMSUJfUkVOQU1FPScwJwpHTF9HTlVMSUJfUkVOQU1FQVQ9JzAnCkdMX0dOVUxJQl9SRVdJTkRE SVI9JzAnCkdMX0dOVUxJQl9STURJUj0nMCcKR0xfR05VTElCX1JQTUFUQ0g9JzAnCkdMX0dOVUxJ Ql9TQ0FORElSPScwJwpHTF9HTlVMSUJfU0NBTkY9JzEnCkdMX0dOVUxJQl9TRUNVUkVfR0VURU5W PScwJwpHTF9HTlVMSUJfU0VMRUNUPScwJwpHTF9HTlVMSUJfU0VURU5WPScwJwpHTF9HTlVMSUJf U0VUSE9TVE5BTUU9JzAnCkdMX0dOVUxJQl9TSUcyU1RSPScxJwpHTF9HTlVMSUJfU0lHQUJCUkVW X05QPScwJwpHTF9HTlVMSUJfU0lHQUNUSU9OPScwJwpHTF9HTlVMSUJfU0lHREVTQ1JfTlA9JzEn CkdMX0dOVUxJQl9TSUdOQUxfSF9TSUdQSVBFPScwJwpHTF9HTlVMSUJfU0lHUFJPQ01BU0s9JzAn CkdMX0dOVUxJQl9TTEVFUD0nMCcKR0xfR05VTElCX1NOUFJJTlRGPScwJwpHTF9HTlVMSUJfU05a UFJJTlRGPScwJwpHTF9HTlVMSUJfU1BSSU5URl9QT1NJWD0nMCcKR0xfR05VTElCX1NUQUNLX1RS QUNFPScwJwpHTF9HTlVMSUJfU1RBVD0nMCcKR0xfR05VTElCX1NURElPX0hfTk9OQkxPQ0tJTkc9 JzAnCkdMX0dOVUxJQl9TVERJT19IX1NJR1BJUEU9JzAnCkdMX0dOVUxJQl9TVFBDUFk9JzEnCkdM X0dOVUxJQl9TVFBOQ1BZPScwJwpHTF9HTlVMSUJfU1RSQ0FTRVNUUj0nMCcKR0xfR05VTElCX1NU UkNIUk5VTD0nMCcKR0xfR05VTElCX1NUUkRVUD0nMCcKR0xfR05VTElCX1NUUkVSUk9SPScwJwpH TF9HTlVMSUJfU1RSRVJST1JOQU1FX05QPScwJwpHTF9HTlVMSUJfU1RSRVJST1JfTD0nMCcKR0xf R05VTElCX1NUUkVSUk9SX1I9JzAnCkdMX0dOVUxJQl9TVFJGVElNRT0nMCcKR0xfR05VTElCX1NU Uk5DQVQ9JzAnCkdMX0dOVUxJQl9TVFJORFVQPScwJwpHTF9HTlVMSUJfU1RSTkxFTj0nMScKR0xf R05VTElCX1NUUlBCUks9JzAnCkdMX0dOVUxJQl9TVFJQVElNRT0nMCcKR0xfR05VTElCX1NUUlNF UD0nMCcKR0xfR05VTElCX1NUUlNJR05BTD0nMCcKR0xfR05VTElCX1NUUlNUUj0nMCcKR0xfR05V TElCX1NUUlRPRD0nMCcKR0xfR05VTElCX1NUUlRPRj0nMCcKR0xfR05VTElCX1NUUlRPSU1BWD0n MScKR0xfR05VTElCX1NUUlRPS19SPScwJwpHTF9HTlVMSUJfU1RSVE9MPScwJwpHTF9HTlVMSUJf U1RSVE9MRD0nMCcKR0xfR05VTElCX1NUUlRPTEw9JzAnCkdMX0dOVUxJQl9TVFJUT1VMPScwJwpH TF9HTlVMSUJfU1RSVE9VTEw9JzAnCkdMX0dOVUxJQl9TVFJUT1VNQVg9JzAnCkdMX0dOVUxJQl9T VFJWRVJTQ01QPScwJwpHTF9HTlVMSUJfU1RSX0VORFNXSVRIPScwJwpHTF9HTlVMSUJfU1RSX1NU QVJUU1dJVEg9JzAnCkdMX0dOVUxJQl9TWU1MSU5LPScxJwpHTF9HTlVMSUJfU1lNTElOS0FUPScw JwpHTF9HTlVMSUJfU1lTVEVNX1BPU0lYPScwJwpHTF9HTlVMSUJfU1pQUklOVEY9JzAnCkdMX0dO VUxJQl9USU1FPScwJwpHTF9HTlVMSUJfVElNRUdNPScxJwpHTF9HTlVMSUJfVElNRVNQRUNfR0VU PScwJwpHTF9HTlVMSUJfVElNRVNQRUNfR0VUUkVTPScwJwpHTF9HTlVMSUJfVElNRV9SPScxJwpH TF9HTlVMSUJfVElNRV9SWj0nMScKR0xfR05VTElCX1RNUEZJTEU9JzAnCkdMX0dOVUxJQl9UUlVO Q0FURT0nMCcKR0xfR05VTElCX1RUWU5BTUVfUj0nMCcKR0xfR05VTElCX1RaTkFNRT0nMCcKR0xf R05VTElCX1RaU0VUPScwJwpHTF9HTlVMSUJfVU5JU1REX0hfR0VUT1BUPScxJwpHTF9HTlVMSUJf VU5JU1REX0hfTk9OQkxPQ0tJTkc9JzAnCkdMX0dOVUxJQl9VTklTVERfSF9TSUdQSVBFPScwJwpH TF9HTlVMSUJfVU5MSU5LPScwJwpHTF9HTlVMSUJfVU5MSU5LQVQ9JzAnCkdMX0dOVUxJQl9VTkxP Q0tQVD0nMCcKR0xfR05VTElCX1VOU0VURU5WPScwJwpHTF9HTlVMSUJfVVNMRUVQPScwJwpHTF9H TlVMSUJfVVRJTUVOU0FUPScxJwpHTF9HTlVMSUJfVkFTUFJJTlRGPScwJwpHTF9HTlVMSUJfVkFT WlBSSU5URj0nMCcKR0xfR05VTElCX1ZEUFJJTlRGPScwJwpHTF9HTlVMSUJfVkRaUFJJTlRGPScw JwpHTF9HTlVMSUJfVkZQUklOVEY9JzEnCkdMX0dOVUxJQl9WRlBSSU5URl9QT1NJWD0nMCcKR0xf R05VTElCX1ZGU0NBTkY9JzAnCkdMX0dOVUxJQl9WRlpQUklOVEY9JzAnCkdMX0dOVUxJQl9WUFJJ TlRGPScxJwpHTF9HTlVMSUJfVlBSSU5URl9QT1NJWD0nMCcKR0xfR05VTElCX1ZTQ0FORj0nMCcK R0xfR05VTElCX1ZTTlBSSU5URj0nMCcKR0xfR05VTElCX1ZTTlpQUklOVEY9JzAnCkdMX0dOVUxJ Ql9WU1BSSU5URl9QT1NJWD0nMCcKR0xfR05VTElCX1ZTWlBSSU5URj0nMCcKR0xfR05VTElCX1Za UFJJTlRGPScwJwpHTF9HTlVMSUJfV0NUT01CPScwJwpHTF9HTlVMSUJfV1JJVEU9JzAnCkdMX0dO VUxJQl9aUFJJTlRGPScwJwpHTF9HTlVMSUJfX0VYSVQ9JzAnCkdMX1NURENfQklUX0NFSUw9JzAn CkdMX1NURENfQklUX0ZMT09SPScwJwpHTF9TVERDX0JJVF9XSURUSD0nMScKR0xfU1REQ19DT1VO VF9PTkVTPScxJwpHTF9TVERDX0NPVU5UX1pFUk9TPScwJwpHTF9TVERDX0ZJUlNUX0xFQURJTkdf T05FPScwJwpHTF9TVERDX0ZJUlNUX0xFQURJTkdfWkVSTz0nMCcKR0xfU1REQ19GSVJTVF9UUkFJ TElOR19PTkU9JzAnCkdMX1NURENfRklSU1RfVFJBSUxJTkdfWkVSTz0nMCcKR0xfU1REQ19IQVNf U0lOR0xFX0JJVD0nMCcKR0xfU1REQ19MRUFESU5HX09ORVM9JzAnCkdMX1NURENfTEVBRElOR19a RVJPUz0nMScKR0xfU1REQ19UUkFJTElOR19PTkVTPScwJwpHTF9TVERDX1RSQUlMSU5HX1pFUk9T PScxJwpHTUFMTE9DX09CSj0nJwpHTVBfSD0nZ21wLmgnCkdOVUxJQkhFQURFUlNfT1ZFUlJJREVf V0lOVF9UPScwJwpHTlVMSUJfV0FSTl9DRkxBR1M9JyAtV2FsbCAtV2RhdGUtdGltZSAtV2Rpc2Fi bGVkLW9wdGltaXphdGlvbiAtV2V4dHJhIC1XZm9ybWF0LXNpZ25lZG5lc3MgLVdpbml0LXNlbGYg LVdpbnZhbGlkLXBjaCAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1pbmNsdWRlLWRp cnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdtaXNzaW5nLXZhcmlhYmxlLWRlY2xhcmF0aW9ucyAt V25lc3RlZC1leHRlcm5zIC1XbnVsbC1kZXJlZmVyZW5jZSAtV29sZC1zdHlsZS1kZWZpbml0aW9u IC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3N0cmljdC1wcm90b3R5cGVzIC1XdW5pbml0aWFs aXplZCAtV3Vua25vd24tcHJhZ21hcyAtV3ZhcmlhZGljLW1hY3JvcyAtV3dyaXRlLXN0cmluZ3Mg LVdmb3JtYXQ9MiAtV3RocmVhZC1zYWZldHkgLVdyZWR1bmRhbnQtZGVjbHMgLVduby1taXNzaW5n LWZpZWxkLWluaXRpYWxpemVycyAtV25vLW92ZXJyaWRlLWluaXQgLVduby1zaWduLWNvbXBhcmUg LVduby10eXBlLWxpbWl0cyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1mb3JtYXQtbm9ubGl0 ZXJhbCAtV25vLWJpdHdpc2UtaW5zdGVhZC1vZi1sb2dpY2FsIC1Xbm8tbWlzc2luZy1icmFjZXMg LVduby1udWxsLXBvaW50ZXItYXJpdGhtZXRpYyAtV25vLWltcGxpY2l0LWNvbnN0LWludC1mbG9h dC1jb252ZXJzaW9uIC1Xbm8taW50LWluLWJvb2wtY29udGV4dCAtV25vLXNoaWZ0LW92ZXJmbG93 IC1Xbm8taW5pdGlhbGl6ZXItb3ZlcnJpZGVzIC1Xbm8tdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdu by10YXV0b2xvZ2ljYWwtY29uc3RhbnQtb3V0LW9mLXJhbmdlLWNvbXBhcmUgLVduby1kZXByZWNh dGVkLWRlY2xhcmF0aW9ucycKR05VU1RFUF9DRkxBR1M9JycKR05VX09CSkNfQ0ZMQUdTPScnCkdP QkpFQ1RfQ0ZMQUdTPScnCkdPQkpFQ1RfTElCUz0nJwpHU0VUVElOR1NfQ0ZMQUdTPScnCkdTRVRU SU5HU19MSUJTPScnCkdUS19DRkxBR1M9JycKR1RLX0xJQlM9JycKR1RLX09CSj0nJwpHWklQX1BS T0c9Jy91c3IvYmluL2d6aXAnCkhBSUtVX0NGTEFHUz0nJwpIQUlLVV9DWFhfT0JKPScnCkhBSUtV X0xJQlM9JycKSEFJS1VfT0JKPScnCkhBUkZCVVpaX0NGTEFHUz0nJwpIQVJGQlVaWl9MSUJTPScn CkhBVkVfQUxJR05FRF9BTExPQz0nMScKSEFWRV9BTExPQ0FfSD0nMScKSEFWRV9BTFBIQVNPUlQ9 JzEnCkhBVkVfQVRPTEw9JzEnCkhBVkVfQkVfQVBQPSdubycKSEFWRV9CTEtDTlRfVD0nMScKSEFW RV9CTEtTSVpFX1Q9JzEnCkhBVkVfQzk5X1NURElOVF9IPScxJwpIQVZFX0NBTk9OSUNBTElaRV9G SUxFX05BTUU9JzAnCkhBVkVfQ0hPV049JzEnCkhBVkVfQ0xPU0VESVI9JzEnCkhBVkVfQ09QWV9G SUxFX1JBTkdFPScwJwpIQVZFX0RFQ0xfRElSRkQ9JzEnCkhBVkVfREVDTF9FQ1ZUPScxJwpIQVZF X0RFQ0xfRU5WSVJPTj0nMCcKSEFWRV9ERUNMX0VYRUNWUEU9JzAnCkhBVkVfREVDTF9GQ0hESVI9 JzEnCkhBVkVfREVDTF9GQ0xPU0VBTEw9JzAnCkhBVkVfREVDTF9GQ1ZUPScxJwpIQVZFX0RFQ0xf RkRBVEFTWU5DPScxJwpIQVZFX0RFQ0xfRkRPUEVORElSPScxJwpIQVZFX0RFQ0xfRlBVUkdFPScx JwpIQVZFX0RFQ0xfRlNFRUtPPScxJwpIQVZFX0RFQ0xfRlRFTExPPScxJwpIQVZFX0RFQ0xfR0NW VD0nMScKSEFWRV9ERUNMX0dFVERFTElNPScxJwpIQVZFX0RFQ0xfR0VURE9NQUlOTkFNRT0nMScK SEFWRV9ERUNMX0dFVExJTkU9JzEnCkhBVkVfREVDTF9HRVRMT0FEQVZHPScxJwpIQVZFX0RFQ0xf R0VUTE9HSU49JzEnCkhBVkVfREVDTF9HRVRMT0dJTl9SPScxJwpIQVZFX0RFQ0xfR0VUUEFHRVNJ WkU9JzEnCkhBVkVfREVDTF9HRVRVU0VSU0hFTEw9JzEnCkhBVkVfREVDTF9HRVRXPScxJwpIQVZF X0RFQ0xfSU1BWEFCUz0nMScKSEFWRV9ERUNMX0lNQVhESVY9JzEnCkhBVkVfREVDTF9JTklUU1RB VEU9JzEnCkhBVkVfREVDTF9MT0NBTFRJTUVfUj0nMScKSEFWRV9ERUNMX01FTU1FTT0nMScKSEFW RV9ERUNMX01FTVJDSFI9JzAnCkhBVkVfREVDTF9PQlNUQUNLX1BSSU5URj0nMScKSEFWRV9ERUNM X1BPU0lYX1NQQVdOX1NFVFNJRD0nJwpIQVZFX0RFQ0xfUFJPR1JBTV9JTlZPQ0FUSU9OX05BTUU9 JzEnCkhBVkVfREVDTF9QVVRXPScxJwpIQVZFX0RFQ0xfU0VURU5WPScxJwpIQVZFX0RFQ0xfU0VU SE9TVE5BTUU9JzEnCkhBVkVfREVDTF9TRVRTVEFURT0nMScKSEFWRV9ERUNMX1NOUFJJTlRGPScx JwpIQVZFX0RFQ0xfU1RSRFVQPScxJwpIQVZFX0RFQ0xfU1RSRVJST1JfUj0nMScKSEFWRV9ERUNM X1NUUk5EVVA9JzEnCkhBVkVfREVDTF9TVFJOTEVOPScxJwpIQVZFX0RFQ0xfU1RSU0lHTkFMPScx JwpIQVZFX0RFQ0xfU1RSVE9JTUFYPScxJwpIQVZFX0RFQ0xfU1RSVE9LX1I9JzEnCkhBVkVfREVD TF9TVFJUT1VNQVg9JzEnCkhBVkVfREVDTF9UUlVOQ0FURT0nMScKSEFWRV9ERUNMX1RUWU5BTUVf Uj0nMScKSEFWRV9ERUNMX1VOU0VURU5WPScxJwpIQVZFX0RFQ0xfVlNOUFJJTlRGPScxJwpIQVZF X0RJUkVOVF9IPScxJwpIQVZFX0RQUklOVEY9JzEnCkhBVkVfRFVQMz0nMScKSEFWRV9FTkRJQU5f SD0nMCcKSEFWRV9FVUlEQUNDRVNTPScwJwpIQVZFX0VYRUNWUEU9JzEnCkhBVkVfRVhQTElDSVRf QlpFUk89JzEnCkhBVkVfRkFDQ0VTU0FUPScxJwpIQVZFX0ZDSERJUj0nMScKSEFWRV9GQ0hNT0RB VD0nMScKSEFWRV9GQ0hPV05BVD0nMScKSEFWRV9GQ05UTD0nMScKSEFWRV9GREFUQVNZTkM9JzEn CkhBVkVfRkRPUEVORElSPScxJwpIQVZFX0ZGU0w9JzEnCkhBVkVfRkZTTEw9JzEnCkhBVkVfRlNF RUtPPScxJwpIQVZFX0ZTVEFUQVQ9JzEnCkhBVkVfRlNZTkM9JzEnCkhBVkVfRlRFTExPPScxJwpI QVZFX0ZUUlVOQ0FURT0nMScKSEFWRV9GVVRJTUVOUz0nMScKSEFWRV9HRVREVEFCTEVTSVpFPScx JwpIQVZFX0dFVEVOVFJPUFk9JzEnCkhBVkVfR0VUR1JPVVBTPScxJwpIQVZFX0dFVEhPU1ROQU1F PScxJwpIQVZFX0dFVExPR0lOPScxJwpIQVZFX0dFVE9QVF9IPScxJwpIQVZFX0dFVFBBR0VTSVpF PScxJwpIQVZFX0dFVFBBU1M9JzEnCkhBVkVfR0VUUFJPR05BTUU9JzEnCkhBVkVfR0VUUkFORE9N PScwJwpIQVZFX0dFVFNVQk9QVD0nMScKSEFWRV9HRVRUSU1FT0ZEQVk9JzEnCkhBVkVfR0VUVU1B U0s9JzEnCkhBVkVfR1JBTlRQVD0nMScKSEFWRV9HUk9VUF9NRU1CRVI9JzAnCkhBVkVfR1NFVFRJ TkdTPSdubycKSEFWRV9JTUFYQUJTPScxJwpIQVZFX0lNQVhESVY9JzEnCkhBVkVfSU1BWERJVl9U PScxJwpIQVZFX0lOSVRTVEFURT0nMScKSEFWRV9JTlRUWVBFU19IPScxJwpIQVZFX0xDSE1PRD0n MScKSEFWRV9MQ0hPV049JzEnCkhBVkVfTElCR01QPSdubycKSEFWRV9MSUJTRUNDT01QPSdubycK SEFWRV9MSU5LPScxJwpIQVZFX0xJTktBVD0nMScKSEFWRV9MU1RBVD0nMScKSEFWRV9NQUNQT1JU Uz0nJwpIQVZFX01BWF9BTElHTl9UPScxJwpIQVZFX01CU0xFTj0nMCcKSEFWRV9NQlRPV0M9JzEn CkhBVkVfTUVNUENQWT0nMCcKSEFWRV9NRU1TRVRfRVhQTElDSVQ9JzAnCkhBVkVfTUtESVJBVD0n MScKSEFWRV9NS0RURU1QPScxJwpIQVZFX01LRklGTz0nMScKSEFWRV9NS0ZJRk9BVD0nMScKSEFW RV9NS05PRD0nMScKSEFWRV9NS05PREFUPScxJwpIQVZFX01LT1NURU1QPScxJwpIQVZFX01LT1NU RU1QUz0nMScKSEFWRV9NS1NURU1QPScxJwpIQVZFX01LU1RFTVBTPScxJwpIQVZFX01PRFVMRVM9 J3llcycKSEFWRV9OQU5PU0xFRVA9JzEnCkhBVkVfTkFUSVZFX0NPTVA9J25vJwpIQVZFX09GRjY0 X1Q9JzEnCkhBVkVfT1BFTkFUPScxJwpIQVZFX09QRU5ESVI9JzEnCkhBVkVfT1NfSD0nMCcKSEFW RV9QQ0xPU0U9JzEnCkhBVkVfUERVTVBFUj0neWVzJwpIQVZFX1BHVEs9J25vJwpIQVZFX1BJUEUy PScwJwpIQVZFX1BJUEU9JzEnCkhBVkVfUE9QRU49JzEnCkhBVkVfUE9TSVhfTUVNQUxJR049JzEn CkhBVkVfUE9TSVhfT1BFTlBUPScxJwpIQVZFX1BPU0lYX1NJR05BTEJMT0NLSU5HPScxJwpIQVZF X1BPU0lYX1NQQVdOPScnCkhBVkVfUE9TSVhfU1BBV05BVFRSX1NFVEZMQUdTPScnCkhBVkVfUE9T SVhfU1BBV05fRklMRV9BQ1RJT05TX0FERENIRElSPScnCkhBVkVfUE9TSVhfU1BBV05fRklMRV9B Q1RJT05TX0FERENIRElSX05QPScnCkhBVkVfUFJFQUQ9JzEnCkhBVkVfUFNFTEVDVD0nMScKSEFW RV9QVEhSRUFEX1NJR01BU0s9JzEnCkhBVkVfUFRTTkFNRT0nMScKSEFWRV9QVFNOQU1FX1I9JzEn CkhBVkVfUFdSSVRFPScxJwpIQVZFX1FTT1JUX1I9JzEnCkhBVkVfUkFJU0U9JzEnCkhBVkVfUkFO RE9NPScxJwpIQVZFX1JBTkRPTV9IPScxJwpIQVZFX1JBTkRPTV9SPScxJwpIQVZFX1JBV01FTUNI Uj0nMCcKSEFWRV9SRUFERElSPScxJwpIQVZFX1JFQURMSU5LPScxJwpIQVZFX1JFQURMSU5LQVQ9 JzEnCkhBVkVfUkVBTExPQ0FSUkFZPScxJwpIQVZFX1JFQUxQQVRIPScxJwpIQVZFX1JFTkFNRUFU PScxJwpIQVZFX1JFV0lORERJUj0nMScKSEFWRV9SUE1BVENIPScxJwpIQVZFX1NDQU5ESVI9JzEn CkhBVkVfU0VDQ09NUD0nbm8nCkhBVkVfU0VDVVJFX0dFVEVOVj0nMScKSEFWRV9TRVRFTlY9JzEn CkhBVkVfU0VUSE9TVE5BTUU9JzEnCkhBVkVfU0VUU1RBVEU9JzEnCkhBVkVfU0lHMlNUUj0nMCcK SEFWRV9TSUdBQkJSRVZfTlA9JzEnCkhBVkVfU0lHQUNUSU9OPScxJwpIQVZFX1NJR0RFU0NSX05Q PScwJwpIQVZFX1NJR0hBTkRMRVJfVD0nMCcKSEFWRV9TSUdJTkZPX1Q9JzEnCkhBVkVfU0lHTkVE X1NJR19BVE9NSUNfVD0nJwpIQVZFX1NJR05FRF9XQ0hBUl9UPScnCkhBVkVfU0lHTkVEX1dJTlRf VD0nJwpIQVZFX1NJR1NFVF9UPScxJwpIQVZFX1NMRUVQPScxJwpIQVZFX1NQQVdOX0g9JycKSEFW RV9TVERJTlRfSD0nMScKSEFWRV9TVFBDUFk9JzEnCkhBVkVfU1RQTkNQWT0nMScKSEFWRV9TVFIy U0lHPScwJwpIQVZFX1NUUkNBU0VTVFI9JzEnCkhBVkVfU1RSQ0hSTlVMPScxJwpIQVZFX1NUUkVS Uk9STkFNRV9OUD0nMScKSEFWRV9TVFJFUlJPUl9MPScxJwpIQVZFX1NUUlBCUks9JzEnCkhBVkVf U1RSUFRJTUU9JzEnCkhBVkVfU1RSU0VQPScxJwpIQVZFX1NUUlRPRD0nMScKSEFWRV9TVFJUT0Y9 JzEnCkhBVkVfU1RSVE9MPScxJwpIQVZFX1NUUlRPTEQ9JzEnCkhBVkVfU1RSVE9MTD0nMScKSEFW RV9TVFJUT1VMPScxJwpIQVZFX1NUUlRPVUxMPScxJwpIQVZFX1NUUlVDVF9SQU5ET01fREFUQT0n MScKSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTj0nMScKSEFWRV9TVFJVQ1RfVElN RVZBTD0nMScKSEFWRV9TVFJWRVJTQ01QPScxJwpIQVZFX1NZTUxJTks9JzEnCkhBVkVfU1lNTElO S0FUPScxJwpIQVZFX1NZU19CSVRZUEVTX0g9JzAnCkhBVkVfU1lTX0NERUZTX0g9JzAnCkhBVkVf U1lTX0VORElBTl9IPScwJwpIQVZFX1NZU19JTlRUWVBFU19IPScwJwpIQVZFX1NZU19MT0FEQVZH X0g9JzAnCkhBVkVfU1lTX1BBUkFNX0g9JzAnCkhBVkVfU1lTX1JBTkRPTV9IPScxJwpIQVZFX1NZ U19TRUxFQ1RfSD0nMScKSEFWRV9TWVNfVElNRV9IPScxJwpIQVZFX1NZU19UWVBFU19IPScxJwpI QVZFX1RJTUVHTT0nMScKSEFWRV9USU1FU1BFQ19HRVQ9JzEnCkhBVkVfVElNRVNQRUNfR0VUUkVT PScxJwpIQVZFX1RJTUVaT05FX1Q9JzAnCkhBVkVfVFlQRV9WT0xBVElMRV9TSUdfQVRPTUlDX1Q9 JzEnCkhBVkVfVFpBTExPQz0nMCcKSEFWRV9VTklTVERfSD0nMScKSEFWRV9VTkxJTktBVD0nMScK SEFWRV9VTkxPQ0tQVD0nMScKSEFWRV9VU0xFRVA9JzEnCkhBVkVfVVRJTUVOU0FUPScxJwpIQVZF X1ZBU1BSSU5URj0nMScKSEFWRV9WRFBSSU5URj0nMScKSEFWRV9XQ0hBUl9IPScxJwpIQVZFX1dJ TlNPQ0syX0g9JzAnCkhBVkVfWFNFUlZFUj0nJwpIQVZFX19FWElUPScxJwpJRUVFNzU0X0g9J2ll ZWU3NTQuaCcKSU1BR0VNQUdJQ0tfQ0ZMQUdTPScnCklNQUdFTUFHSUNLX0xJQlM9JycKSU5DTFVE RV9ORVhUPSdpbmNsdWRlX25leHQnCklOQ0xVREVfTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkU9J2lu Y2x1ZGVfbmV4dCcKSU5TVEFMTF9BUkNIX0lOREVQX0VYVFJBPScnCklOU1RBTExfREFUQT0nJHtJ TlNUQUxMfSAtbSA2NDQnCklOU1RBTExfSU5GTz0nL29wdC9ob21lYnJldy9iaW4vaW5zdGFsbC1p bmZvJwpJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCklOU1RBTExfU0NSSVBUPScke0lOU1RB TEx9JwpJTlQzMl9NQVhfTFRfSU5UTUFYX01BWD0nMScKSU5UNjRfTUFYX0VRX0xPTkdfTUFYPSdk ZWZpbmVkIF9MUDY0JwpJU19EOF9SOD0nJwpKQVJTSUdORVI9JycKSkFWQUM9JycKSlBFR19DRkxB R1M9JycKS1FVRVVFX0NGTEFHUz0nJwpLUVVFVUVfTElCUz0nJwpLUkI0TElCPScnCktSQjVMSUI9 JycKTENNUzJfQ0ZMQUdTPSctaXN5c3RlbSAvb3B0L2hvbWVicmV3L29wdC9saXR0bGUtY21zMi9p bmNsdWRlJwpMQ01TMl9MSUJTPSctTC9vcHQvaG9tZWJyZXcvb3B0L2xpdHRsZS1jbXMyL2xpYiAt bGxjbXMyJwpMREZMQUdTPScnCkxEX1NXSVRDSF9TWVNURU09JycKTERfU1dJVENIX1NZU1RFTV9U RU1BQ1M9JyAtZnJhbWV3b3JrIEFwcEtpdCAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgQ2Fy Ym9uICAgICAgICAgICAgICAgICAgICAgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBR dWFydHpDb3JlIC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVycycKTERfU1dJVENIX1hf U0lURT0nJwpMRF9TV0lUQ0hfWF9TSVRFX1JQQVRIPScnCkxJQkdDQ0pJVF9DRkxBR1M9JycKTElC R0NDSklUX0xJQlM9JycKTElCR0lGPScnCkxJQkdNUD0nJwpMSUJHTVBfQ0ZMQUdTPScnCkxJQkdO VVRMU19DRkxBR1M9Jy1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dudXRscy8zLjguOS9p bmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL25ldHRsZS8zLjEwLjEvaW5jbHVk ZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ0YXNuMS80LjIwLjAvaW5jbHVkZSAt aXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJpZG4yLzIuMy44L2luY2x1ZGUgLWlzeXN0 ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvcDExLWtpdC8wLjI1LjUvaW5jbHVkZS9wMTEta2l0LTEn CkxJQkdOVVRMU19MSUJTPSctTC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dudXRscy8zLjguOS9saWIg LWxnbnV0bHMnCkxJQkdOVV9MSUJERVBTPScnCkxJQkdOVV9MVExJQkRFUFM9JycKTElCR1BNPScn CkxJQkhFU0lPRD0nJwpMSUJJTlRMPScnCkxJQkpQRUc9JycKTElCTU9EVUxFUz0nJwpMSUJPQkpT PScnCkxJQk9URl9DRkxBR1M9JycKTElCT1RGX0xJQlM9JycKTElCUE5HPSctTC9vcHQvaG9tZWJy ZXcvb3B0L2xpYnBuZy9saWIgLWxwbmcxNicKTElCUkVTT0xWPScnCkxJQlM9JyAnCkxJQlNFQ0NP TVBfQ0ZMQUdTPScnCkxJQlNFQ0NPTVBfTElCUz0nJwpMSUJTRUxJTlVYX0NGTEFHUz0nJwpMSUJT RUxJTlVYX0xJQlM9JycKTElCU09VTkQ9JycKTElCU1lTVEVNRF9DRkxBR1M9JycKTElCU1lTVEVN RF9MSUJTPScnCkxJQlNfRUNMSUVOVD0nJwpMSUJTX0dOVVNURVA9JycKTElCU19NQUlMPScnCkxJ QlNfU1lTVEVNPScnCkxJQlNfVEVSTUNBUD0nLWxuY3Vyc2VzJwpMSUJUSUZGPScnCkxJQlhNRU5V PScnCkxJQlhNTDJfQ0ZMQUdTPScnCkxJQlhNTDJfTElCUz0nLWx4bWwyJwpMSUJYTVU9JycKTElC WFBNPScnCkxJQlhTTT0nJwpMSUJYVFI2PScnCkxJQlhUX09USEVSPSckKExJQlhTTSknCkxJQlhf T1RIRVI9JycKTElCWj0nLWx6JwpMSUJfQUNMPScnCkxJQl9DTE9DS19HRVRUSU1FPScnCkxJQl9F QUNDRVNTPScnCkxJQl9FWEVDSU5GTz0nJwpMSUJfR0VUUkFORE9NPScnCkxJQl9NQVRIPScnCkxJ Ql9OQU5PU0xFRVA9JycKTElCX1BUSFJFQUQ9JycKTElCX1BUSFJFQURfU0lHTUFTSz0nJwpMSUJf U0VMSU5VWD0nJwpMSUJfVElNRVJfVElNRT0nJwpMSUJfV1NPQ0szMj0nJwpMSUJfWEFUVFI9JycK TElNSVRTX0g9J2xpbWl0cy5oJwpMTl9TX0ZJTEVPTkxZPSdsbiAtcycKTE9DQUxFX0VOX1VURjg9 J2VuX1VTLlVURi04JwpMVExJQkdNUD0nJwpMVExJQklOVEw9JycKTFRMSUJPQkpTPScnCk0xN05f RkxUX0NGTEFHUz0nJwpNMTdOX0ZMVF9MSUJTPScnCk1BS0VJTkZPPScvb3B0L2hvbWVicmV3L2Jp bi9tYWtlaW5mbycKTUFLRV9QUk9HPSd5ZXMnCk1LRElSX1A9Jy9vcHQvaG9tZWJyZXcvYmluL2dt a2RpciAtcCcKTU9EVUxFU19PQko9J2VtYWNzLW1vZHVsZS5vJwpNT0RVTEVTX1NFQ09OREFSWV9T VUZGSVg9Jy5zbycKTU9EVUxFU19TVUZGSVg9Jy5keWxpYicKTkFOT1NMRUVQX0xJQj0nJwpOQVRJ VkVfQ09NUElMQVRJT05fQU9UPSdubycKTkRLX0JVSUxEX0FCST0nJwpOREtfQlVJTERfQU5EUk9J RF9NSz0nJwpOREtfQlVJTERfQU5ZX0NYWF9NT0RVTEU9JycKTkRLX0JVSUxEX0FSPScnCk5ES19C VUlMRF9BUkNIPScnCk5ES19CVUlMRF9DQz0nJwpOREtfQlVJTERfQ0ZMQUdTPScnCk5ES19CVUlM RF9DWFg9JycKTkRLX0JVSUxEX0NYWF9MREZMQUdTPScnCk5ES19CVUlMRF9DWFhfU0hBUkVEPScn Ck5ES19CVUlMRF9DWFhfU1RMPScnCk5ES19CVUlMRF9NT0RVTEVTPScnCk5ES19CVUlMRF9OQVNN PScnCk5ES19CVUlMRF9SRUFERUxGPScnCk5ES19CVUlMRF9TREs9JycKTkRLX0JVSUxEX1NPX0xE RkxBR1M9JycKTkVYVF9BU1NFUlRfSD0nPGFzc2VydC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJ VkVfQVNTRVJUX0g9Jzxhc3NlcnQuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0RJUkVOVF9I PSc8ZGlyZW50Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9FTkRJQU5fSD0nPGVuZGlhbi5o PicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfRVJSTk9fSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVD VElWRV9GQ05UTF9IPSc8ZmNudGwuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0dFVE9QVF9I PSc8Z2V0b3B0Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9JTlRUWVBFU19IPSc8aW50dHlw ZXMuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0xJTUlUU19IPSc8bGltaXRzLmg+JwpORVhU X0FTX0ZJUlNUX0RJUkVDVElWRV9TSUdOQUxfSD0nPHNpZ25hbC5oPicKTkVYVF9BU19GSVJTVF9E SVJFQ1RJVkVfU1REREVGX0g9JzxzdGRkZWYuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NU RElOVF9IPSc8c3RkaW50Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TVERJT19IPSc8c3Rk aW8uaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NURExJQl9IPSc8c3RkbGliLmg+JwpORVhU X0FTX0ZJUlNUX0RJUkVDVElWRV9TVFJJTkdfSD0nPHN0cmluZy5oPicKTkVYVF9BU19GSVJTVF9E SVJFQ1RJVkVfU1lTX1JBTkRPTV9IPSc8c3lzL3JhbmRvbS5oPicKTkVYVF9BU19GSVJTVF9ESVJF Q1RJVkVfU1lTX1NFTEVDVF9IPSc8c3lzL3NlbGVjdC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJ VkVfU1lTX1NUQVRfSD0nPHN5cy9zdGF0Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TWVNf VElNRV9IPSc8c3lzL3RpbWUuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NZU19UWVBFU19I PSc8c3lzL3R5cGVzLmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9USU1FX0g9Jzx0aW1lLmg+ JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9VTklTVERfSD0nPHVuaXN0ZC5oPicKTkVYVF9ESVJF TlRfSD0nPGRpcmVudC5oPicKTkVYVF9FTkRJQU5fSD0nPGVuZGlhbi5oPicKTkVYVF9FUlJOT19I PScnCk5FWFRfRkNOVExfSD0nPGZjbnRsLmg+JwpORVhUX0dFVE9QVF9IPSc8Z2V0b3B0Lmg+JwpO RVhUX0lOVFRZUEVTX0g9JzxpbnR0eXBlcy5oPicKTkVYVF9MSU1JVFNfSD0nPGxpbWl0cy5oPicK TkVYVF9TSUdOQUxfSD0nPHNpZ25hbC5oPicKTkVYVF9TVERERUZfSD0nPHN0ZGRlZi5oPicKTkVY VF9TVERJTlRfSD0nPHN0ZGludC5oPicKTkVYVF9TVERJT19IPSc8c3RkaW8uaD4nCk5FWFRfU1RE TElCX0g9JzxzdGRsaWIuaD4nCk5FWFRfU1RSSU5HX0g9JzxzdHJpbmcuaD4nCk5FWFRfU1lTX1JB TkRPTV9IPSc8c3lzL3JhbmRvbS5oPicKTkVYVF9TWVNfU0VMRUNUX0g9JzxzeXMvc2VsZWN0Lmg+ JwpORVhUX1NZU19TVEFUX0g9JzxzeXMvc3RhdC5oPicKTkVYVF9TWVNfVElNRV9IPSc8c3lzL3Rp bWUuaD4nCk5FWFRfU1lTX1RZUEVTX0g9JzxzeXMvdHlwZXMuaD4nCk5FWFRfVElNRV9IPSc8dGlt ZS5oPicKTkVYVF9VTklTVERfSD0nPHVuaXN0ZC5oPicKTk9USUZZX0NGTEFHUz0nJwpOT1RJRllf TElCUz0nJwpOT1RJRllfT0JKPSdrcXVldWUubycKTlNfT0JKPScnCk5TX09CSkNfT0JKPSduc3Rl cm0ubyBuc2Zucy5vIG5zbWVudS5vIG5zc2VsZWN0Lm8gbnNpbWFnZS5vIG1hY2ZvbnQubycKTlRE SVI9JycKTlRMSUI9JycKTlVMTFBUUl9UX05FRURTX1NURERFRj0nMScKT0JKQz0nZ2NjJwpPQkpD RkxBR1M9Jy1nIC1PMicKT0JKRVhUPSdvJwpPVEhFUl9GSUxFUz0nbnMtYXBwJwpQQUNLQUdFX0JV R1JFUE9SVD0nYnVnLWdudS1lbWFjc0BnbnUub3JnJwpQQUNLQUdFX05BTUU9J0dOVSBFbWFjcycK UEFDS0FHRV9TVFJJTkc9J0dOVSBFbWFjcyAzMS4wLjUwJwpQQUNLQUdFX1RBUk5BTUU9J2VtYWNz JwpQQUNLQUdFX1VSTD0naHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8nClBBQ0tB R0VfVkVSU0lPTj0nMzEuMC41MCcKUEFUSF9TRVBBUkFUT1I9JzonClBBWENUTF9kdW1wZWQ9JycK UEFYQ1RMX25vdGR1bXBlZD0nJwpQR1RLX0xJQlM9JycKUEdUS19PQko9JycKUEtHX0NPTkZJRz0n L29wdC9ob21lYnJldy9iaW4vcGtnLWNvbmZpZycKUEtHX0NPTkZJR19MSUJESVI9JycKUEtHX0NP TkZJR19QQVRIPScnClBOR19DRkxBR1M9Jy1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L2xpYnBu Zy9pbmNsdWRlL2xpYnBuZzE2JwpQTkdfTElCUz0nLUwvb3B0L2hvbWVicmV3L29wdC9saWJwbmcv bGliIC1scG5nMTYnClBSQUdNQV9DT0xVTU5TPScnClBSQUdNQV9TWVNURU1fSEVBREVSPScjcHJh Z21hIEdDQyBzeXN0ZW1faGVhZGVyJwpQUklQVFJfUFJFRklYPSdfX1BSSVBUUl9QUkVGSVgnClBS T0ZJTElOR19DRkxBR1M9JycKUFRIUkVBRF9IX0RFRklORVNfU1RSVUNUX1RJTUVTUEVDPScwJwpQ VEhSRUFEX1NJR01BU0tfTElCPScnClBUUkRJRkZfVF9TVUZGSVg9JycKUUNPUFlfQUNMX0xJQj0n JwpSQUxMT0NfT0JKPScnClJBTkxJQj0ncmFubGliJwpSRUFERUxGPScnClJFUExBQ0VfQUJPUlQ9 JzAnClJFUExBQ0VfQUNDRVNTPScwJwpSRVBMQUNFX0FMSUdORURfQUxMT0M9JzAnClJFUExBQ0Vf Q0FMTE9DX0ZPUl9DQUxMT0NfR05VPScwJwpSRVBMQUNFX0NBTExPQ19GT1JfQ0FMTE9DX1BPU0lY PScwJwpSRVBMQUNFX0NBTk9OSUNBTElaRV9GSUxFX05BTUU9JzAnClJFUExBQ0VfQ0hNT0Q9JzAn ClJFUExBQ0VfQ0hPV049JzAnClJFUExBQ0VfQ0xPU0U9JzAnClJFUExBQ0VfQ0xPU0VESVI9JzAn ClJFUExBQ0VfQ09QWV9GSUxFX1JBTkdFPScwJwpSRVBMQUNFX0NSRUFUPScwJwpSRVBMQUNFX0NU SU1FPScwJwpSRVBMQUNFX0RJUkZEPScwJwpSRVBMQUNFX0RQUklOVEY9JzAnClJFUExBQ0VfRFVQ Mj0nMCcKUkVQTEFDRV9EVVAzPScwJwpSRVBMQUNFX0RVUD0nMCcKUkVQTEFDRV9FWEVDTD0nMCcK UkVQTEFDRV9FWEVDTEU9JzAnClJFUExBQ0VfRVhFQ0xQPScwJwpSRVBMQUNFX0VYRUNWPScwJwpS RVBMQUNFX0VYRUNWRT0nMCcKUkVQTEFDRV9FWEVDVlA9JzAnClJFUExBQ0VfRVhFQ1ZQRT0nMCcK UkVQTEFDRV9GQUNDRVNTQVQ9JzEnClJFUExBQ0VfRkNIRElSPScwJwpSRVBMQUNFX0ZDSE1PREFU PScwJwpSRVBMQUNFX0ZDSE9XTkFUPScwJwpSRVBMQUNFX0ZDTE9TRT0nMCcKUkVQTEFDRV9GQ05U TD0nMCcKUkVQTEFDRV9GREFUQVNZTkM9JzAnClJFUExBQ0VfRkRPUEVOPScwJwpSRVBMQUNFX0ZE T1BFTkRJUj0nMCcKUkVQTEFDRV9GRkxVU0g9JzAnClJFUExBQ0VfRkZTTEw9JzAnClJFUExBQ0Vf Rk9QRU49JzAnClJFUExBQ0VfRk9QRU5fRk9SX0ZPUEVOX0dOVT0nMCcKUkVQTEFDRV9GUFJJTlRG PScwJwpSRVBMQUNFX0ZQVVJHRT0nMCcKUkVQTEFDRV9GUkVFPScxJwpSRVBMQUNFX0ZSRU9QRU49 JzAnClJFUExBQ0VfRlNFRUs9JzAnClJFUExBQ0VfRlNFRUtPPScwJwpSRVBMQUNFX0ZTVEFUPScw JwpSRVBMQUNFX0ZTVEFUQVQ9JzEnClJFUExBQ0VfRlRFTEw9JzAnClJFUExBQ0VfRlRFTExPPScw JwpSRVBMQUNFX0ZUUlVOQ0FURT0nMCcKUkVQTEFDRV9GVVRJTUVOUz0nMScKUkVQTEFDRV9HRVRD V0Q9JzAnClJFUExBQ0VfR0VUREVMSU09JzAnClJFUExBQ0VfR0VURE9NQUlOTkFNRT0nMCcKUkVQ TEFDRV9HRVREVEFCTEVTSVpFPScwJwpSRVBMQUNFX0dFVEVOVFJPUFk9JzAnClJFUExBQ0VfR0VU R1JPVVBTPScxJwpSRVBMQUNFX0dFVExJTkU9JzAnClJFUExBQ0VfR0VUTE9BREFWRz0nMCcKUkVQ TEFDRV9HRVRMT0dJTj0nMCcKUkVQTEFDRV9HRVRMT0dJTl9SPScwJwpSRVBMQUNFX0dFVFBBR0VT SVpFPScwJwpSRVBMQUNFX0dFVFBBU1M9JzAnClJFUExBQ0VfR0VUUEFTU19GT1JfR0VUUEFTU19H TlU9JzAnClJFUExBQ0VfR0VUUFJPR05BTUU9JzAnClJFUExBQ0VfR0VUUkFORE9NPScwJwpSRVBM QUNFX0dFVFNVQk9QVD0nMCcKUkVQTEFDRV9HRVRUSU1FT0ZEQVk9JzAnClJFUExBQ0VfR0VUVVNF UlNIRUxMPScwJwpSRVBMQUNFX0dNVElNRT0nMCcKUkVQTEFDRV9JTUFYQUJTPScwJwpSRVBMQUNF X0lNQVhESVY9JzAnClJFUExBQ0VfSU5JVFNUQVRFPScwJwpSRVBMQUNFX0lTQVRUWT0nMCcKUkVQ TEFDRV9MQ0hPV049JzAnClJFUExBQ0VfTElOSz0nMCcKUkVQTEFDRV9MSU5LQVQ9JzAnClJFUExB Q0VfTE9DQUxUSU1FPScwJwpSRVBMQUNFX0xPQ0FMVElNRV9SPScwJwpSRVBMQUNFX0xPQ0FMVElN RV9SWj0nMCcKUkVQTEFDRV9MU0VFSz0nMCcKUkVQTEFDRV9MU1RBVD0nMScKUkVQTEFDRV9NQUxM T0NfRk9SX01BTExPQ19HTlU9JzAnClJFUExBQ0VfTUFMTE9DX0ZPUl9NQUxMT0NfUE9TSVg9JzAn ClJFUExBQ0VfTUJTVE9XQ1M9JzAnClJFUExBQ0VfTUJUT1dDPScwJwpSRVBMQUNFX01CX0NVUl9N QVg9JzAnClJFUExBQ0VfTUVNQ0hSPScwJwpSRVBMQUNFX01FTU1FTT0nMScKUkVQTEFDRV9NRU1Q Q1BZPScwJwpSRVBMQUNFX01FTVNFVF9FWFBMSUNJVD0nMCcKUkVQTEFDRV9NS0RJUj0nMCcKUkVQ TEFDRV9NS0ZJRk89JzAnClJFUExBQ0VfTUtGSUZPQVQ9JzAnClJFUExBQ0VfTUtOT0Q9JzAnClJF UExBQ0VfTUtOT0RBVD0nMCcKUkVQTEFDRV9NS09TVEVNUD0nMCcKUkVQTEFDRV9NS09TVEVNUFM9 JzAnClJFUExBQ0VfTUtTVEVNUD0nMCcKUkVQTEFDRV9NS1RJTUU9JzEnClJFUExBQ0VfTUtUSU1F X1o9JzAnClJFUExBQ0VfTkFOT1NMRUVQPScxJwpSRVBMQUNFX05VTEw9JzAnClJFUExBQ0VfT0JT VEFDS19QUklOVEY9JzAnClJFUExBQ0VfT1BFTj0nMScKUkVQTEFDRV9PUEVOQVQ9JzAnClJFUExB Q0VfT1BFTkRJUj0nMCcKUkVQTEFDRV9QRVJST1I9JzAnClJFUExBQ0VfUElQRTI9JzAnClJFUExB Q0VfUE9QRU49JzAnClJFUExBQ0VfUE9TSVhfTUVNQUxJR049JzAnClJFUExBQ0VfUE9TSVhfT1BF TlBUPScwJwpSRVBMQUNFX1BSRUFEPScwJwpSRVBMQUNFX1BSSU5URj0nMCcKUkVQTEFDRV9QU0VM RUNUPScwJwpSRVBMQUNFX1BUSFJFQURfU0lHTUFTSz0nMCcKUkVQTEFDRV9QVFNOQU1FPScwJwpS RVBMQUNFX1BUU05BTUVfUj0nMCcKUkVQTEFDRV9QVVRFTlY9JzAnClJFUExBQ0VfUFdSSVRFPScw JwpSRVBMQUNFX1FTT1JUX1I9JzAnClJFUExBQ0VfUkFJU0U9JzAnClJFUExBQ0VfUkFORD0nMCcK UkVQTEFDRV9SQU5ET009JzAnClJFUExBQ0VfUkFORE9NX1I9JzAnClJFUExBQ0VfUkVBRD0nMCcK UkVQTEFDRV9SRUFERElSPScwJwpSRVBMQUNFX1JFQURMSU5LPScxJwpSRVBMQUNFX1JFQURMSU5L QVQ9JzEnClJFUExBQ0VfUkVBTExPQ0FSUkFZPScwJwpSRVBMQUNFX1JFQUxMT0NfRk9SX1JFQUxM T0NfUE9TSVg9JzAnClJFUExBQ0VfUkVBTFBBVEg9JzEnClJFUExBQ0VfUkVNT1ZFPScwJwpSRVBM QUNFX1JFTkFNRT0nMCcKUkVQTEFDRV9SRU5BTUVBVD0nMCcKUkVQTEFDRV9SRVdJTkRESVI9JzAn ClJFUExBQ0VfUk1ESVI9JzAnClJFUExBQ0VfU0VMRUNUPScwJwpSRVBMQUNFX1NFVEVOVj0nMCcK UkVQTEFDRV9TRVRIT1NUTkFNRT0nMCcKUkVQTEFDRV9TRVRTVEFURT0nMCcKUkVQTEFDRV9TTEVF UD0nMCcKUkVQTEFDRV9TTlBSSU5URj0nMCcKUkVQTEFDRV9TUFJJTlRGPScwJwpSRVBMQUNFX1NU QVQ9JzAnClJFUExBQ0VfU1RESU9fUkVBRF9GVU5DUz0nMCcKUkVQTEFDRV9TVERJT19XUklURV9G VU5DUz0nMCcKUkVQTEFDRV9TVFBDUFk9JzAnClJFUExBQ0VfU1RQTkNQWT0nMCcKUkVQTEFDRV9T VFJDQVNFU1RSPScwJwpSRVBMQUNFX1NUUkNIUk5VTD0nMCcKUkVQTEFDRV9TVFJEVVA9JzAnClJF UExBQ0VfU1RSRVJST1I9JzAnClJFUExBQ0VfU1RSRVJST1JOQU1FX05QPScwJwpSRVBMQUNFX1NU UkVSUk9SX0w9JzAnClJFUExBQ0VfU1RSRVJST1JfUj0nMCcKUkVQTEFDRV9TVFJGVElNRT0nMCcK UkVQTEFDRV9TVFJOQ0FUPScwJwpSRVBMQUNFX1NUUk5EVVA9JzAnClJFUExBQ0VfU1RSTkxFTj0n MCcKUkVQTEFDRV9TVFJTSUdOQUw9JzAnClJFUExBQ0VfU1RSU1RSPScwJwpSRVBMQUNFX1NUUlRP RD0nMCcKUkVQTEFDRV9TVFJUT0Y9JzAnClJFUExBQ0VfU1RSVE9JTUFYPScwJwpSRVBMQUNFX1NU UlRPS19SPScwJwpSRVBMQUNFX1NUUlRPTD0nMCcKUkVQTEFDRV9TVFJUT0xEPScwJwpSRVBMQUNF X1NUUlRPTEw9JzAnClJFUExBQ0VfU1RSVE9VTD0nMCcKUkVQTEFDRV9TVFJUT1VMTD0nMCcKUkVQ TEFDRV9TVFJUT1VNQVg9JzAnClJFUExBQ0VfU1RSVUNUX1RJTUVWQUw9JzAnClJFUExBQ0VfU1RS VkVSU0NNUD0nMCcKUkVQTEFDRV9TWU1MSU5LPScxJwpSRVBMQUNFX1NZTUxJTktBVD0nMCcKUkVQ TEFDRV9USU1FPScwJwpSRVBMQUNFX1RJTUVHTT0nMScKUkVQTEFDRV9USU1FU1BFQ19HRVQ9JzAn ClJFUExBQ0VfVElNRVNQRUNfR0VUUkVTPScwJwpSRVBMQUNFX1RNUEZJTEU9JzAnClJFUExBQ0Vf VFJVTkNBVEU9JzAnClJFUExBQ0VfVFRZTkFNRV9SPScwJwpSRVBMQUNFX1RaU0VUPScwJwpSRVBM QUNFX1VOTElOSz0nMCcKUkVQTEFDRV9VTkxJTktBVD0nMCcKUkVQTEFDRV9VTlNFVEVOVj0nMCcK UkVQTEFDRV9VU0xFRVA9JzAnClJFUExBQ0VfVVRJTUVOU0FUPScxJwpSRVBMQUNFX1ZBU1BSSU5U Rj0nMCcKUkVQTEFDRV9WRFBSSU5URj0nMCcKUkVQTEFDRV9WRlBSSU5URj0nMCcKUkVQTEFDRV9W UFJJTlRGPScwJwpSRVBMQUNFX1ZTTlBSSU5URj0nMCcKUkVQTEFDRV9WU1BSSU5URj0nMCcKUkVQ TEFDRV9XQ1RPTUI9JzAnClJFUExBQ0VfV1JJVEU9JzAnClJFUExBQ0VfX0VYSVQ9JzAnClJTVkdf Q0ZMQUdTPSctaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJyc3ZnLzIuNjAuMC9pbmNs dWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvaW5jbHVkZS9nZGstcGl4YnVm LTIuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ0aWZmLzQuNy4wL2luY2x1ZGUg LWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvenN0ZC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9t ZWJyZXcvQ2VsbGFyL3h6LzUuOC4xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQv anBlZy10dXJiby9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJvLzEu MTguNC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2NhaXJvLzEu MTguNC9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BhbmdvLzEuNTYuMy9p bmNsdWRlL3BhbmdvLTEuMCAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9nbGliLzIuODQu MF8xL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZnJpYmlkaS8xLjAuMTYv aW5jbHVkZS9mcmliaWRpIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2ZvbnRjb25maWcv Mi4xNi4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGV4dC8xLjMu Ni9pbmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3hvcmdwcm90by8yMDI0LjEv aW5jbHVkZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4cmVuZGVyLzAuOS4xMi9p bmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYngxMS8xLjguMTIvaW5jbHVk ZSAtaXN5c3RlbSAvb3B0L2hvbWVicmV3L0NlbGxhci9saWJ4Y2IvMS4xNy4wL2luY2x1ZGUgLWlz eXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvbGlieGF1LzEuMC4xMi9pbmNsdWRlIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2xpYnhkbWNwLzEuMS41L2luY2x1ZGUgLWlzeXN0ZW0gL29w dC9ob21lYnJldy9DZWxsYXIvcGl4bWFuLzAuNDQuMi9pbmNsdWRlL3BpeG1hbi0xIC1pc3lzdGVt IC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2hhcmZidXp6LzExLjAuMS9pbmNsdWRlL2hhcmZidXp6IC1p c3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L2ZyZWV0eXBlL2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lz dGVtIC9vcHQvaG9tZWJyZXcvb3B0L2xpYnBuZy9pbmNsdWRlL2xpYnBuZzE2IC1pc3lzdGVtIC9v cHQvaG9tZWJyZXcvQ2VsbGFyL2dyYXBoaXRlMi8xLjMuMTQvaW5jbHVkZSAtaXN5c3RlbSAvTGli cmFyeS9EZXZlbG9wZXIvQ29tbWFuZExpbmVUb29scy9TREtzL01hY09TWDE1LnNkay91c3IvaW5j bHVkZS9mZmkgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9pbmNs dWRlL2dsaWItMi4wIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL2dsaWIvMi44NC4wXzEv bGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gL29wdC9ob21lYnJldy9vcHQvZ2V0dGV4dC9p bmNsdWRlIC1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvQ2VsbGFyL3BjcmUyLzEwLjQ1L2luY2x1ZGUn ClJTVkdfTElCUz0nLUwvb3B0L2hvbWVicmV3L0NlbGxhci9saWJyc3ZnLzIuNjAuMC9saWIgLWxy c3ZnLTIgLUwvb3B0L2hvbWVicmV3L2xpYiAtbGdka19waXhidWYtMi4wIC1ML29wdC9ob21lYnJl dy9DZWxsYXIvZ2xpYi8yLjg0LjBfMS9saWIgLWxnaW8tMi4wIC1ML29wdC9ob21lYnJldy9DZWxs YXIvY2Fpcm8vMS4xOC40L2xpYiAtbGNhaXJvIC1sZ29iamVjdC0yLjAgLWxnbGliLTIuMCAtTC9v cHQvaG9tZWJyZXcvb3B0L2dldHRleHQvbGliIC1saW50bCcKU0RLX0JVSUxEX1RPT0xTPScnClNF UENIQVI9JzonClNFVEZBVFRSPScnClNFVFRJTkdTX0NGTEFHUz0nJwpTRVRUSU5HU19MSUJTPScn ClNIRUxMPScvYmluL3NoJwpTSUdfQVRPTUlDX1RfU1VGRklYPScnClNJWkVPRl9MT05HPSc4JwpT SVpFX1RfU1VGRklYPScnClNNQUxMX0pBX0RJQz0nbm8nClNRTElURTNfQ0ZMQUdTPScnClNRTElU RTNfTElCUz0nLWxzcWxpdGUzJwpTVERCSVRfSD0nc3RkYml0LmgnClNURENLRElOVF9IPScnClNU RERFRl9IPSdzdGRkZWYuaCcKU1REREVGX05PVF9JREVNUE9URU5UPScwJwpTVERJTlRfSD0nc3Rk aW50LmgnClNVQkRJUl9NQUtFRklMRVNfSU49JyAkKHNyY2RpcikvbGliL01ha2VmaWxlLmluICQo c3JjZGlyKS9saWItc3JjL01ha2VmaWxlLmluICQoc3JjZGlyKS9vbGRYTWVudS9NYWtlZmlsZS5p biAkKHNyY2Rpcikvc3JjL01ha2VmaWxlLmluICQoc3JjZGlyKS9sd2xpYi9NYWtlZmlsZS5pbiAk KHNyY2RpcikvbmV4dHN0ZXAvTWFrZWZpbGUuaW4gJChzcmNkaXIpL250L01ha2VmaWxlLmluICQo c3JjZGlyKS9kb2MvZW1hY3MvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2RvYy9taXNjL01ha2VmaWxl LmluICQoc3JjZGlyKS9kb2MvbGlzcGludHJvL01ha2VmaWxlLmluICQoc3JjZGlyKS9kb2MvbGlz cHJlZi9NYWtlZmlsZS5pbiAkKHNyY2RpcikvbGlzcC9NYWtlZmlsZS5pbiAkKHNyY2RpcikvbGVp bS9NYWtlZmlsZS5pbiAkKHNyY2RpcikvdGVzdC9NYWtlZmlsZS5pbiAkKHNyY2RpcikvdGVzdC9p bmZyYS9NYWtlZmlsZS5pbiAkKHNyY2RpcikvYWRtaW4vY2hhcnNldHMvTWFrZWZpbGUuaW4gJChz cmNkaXIpL2FkbWluL3VuaWRhdGEvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2FkbWluL2dyYW1tYXJz L01ha2VmaWxlLmluJwpTWVNURU1fVFlQRT0nZGFyd2luJwpTWVNfVElNRV9IX0RFRklORVNfU1RS VUNUX1RJTUVTUEVDPScwJwpURVJNQ0FQX09CSj0ndGVybWluZm8ubycKVElGRl9DRkxBR1M9JycK VElNRVJfVElNRV9MSUI9JycKVElNRV9IX0RFRklORVNfU1RSVUNUX1RJTUVTUEVDPScxJwpUSU1F X0hfREVGSU5FU19USU1FX1VUQz0nMScKVE9PTEtJVF9MSUJXPScnClRSRUVfU0lUVEVSX0NGTEFH Uz0nLWlzeXN0ZW0gL29wdC9ob21lYnJldy9DZWxsYXIvdHJlZS1zaXR0ZXIvMC4yNS4zL2luY2x1 ZGUnClRSRUVfU0lUVEVSX0xJQlM9Jy1ML29wdC9ob21lYnJldy9DZWxsYXIvdHJlZS1zaXR0ZXIv MC4yNS4zL2xpYiAtbHRyZWUtc2l0dGVyJwpVSU5UMzJfTUFYX0xUX1VJTlRNQVhfTUFYPScxJwpV SU5UNjRfTUFYX0VRX1VMT05HX01BWD0nZGVmaW5lZCBfTFA2NCcKVU5ERUZJTkVfU1RSVE9LX1I9 JzAnClVOSVNURF9IX0RFRklORVNfU1RSVUNUX1RJTUVTUEVDPScwJwpVTklTVERfSF9IQVZFX1NZ U19SQU5ET01fSD0nMScKVU5JU1REX0hfSEFWRV9XSU5TT0NLMl9IPScwJwpVTklTVERfSF9IQVZF X1dJTlNPQ0syX0hfQU5EX1VTRV9TT0NLRVRTPScwJwpVU0VfQUNMPScxJwpVU0VfU0VMSU5VWF9T RUxJTlVYX0g9JzAnClVTRV9TVEFSVFVQX05PVElGSUNBVElPTj0nbm8nClZNTElNSVRfT0JKPScn ClczMl9MSUJTPScnClczMl9PQko9JycKVzMyX1JFU19MSU5LPScnCldBUk5fQ0ZMQUdTPScgLVdh bGwgLVdkYXRlLXRpbWUgLVdkaXNhYmxlZC1vcHRpbWl6YXRpb24gLVdleHRyYSAtV2Zvcm1hdC1z aWduZWRuZXNzIC1XaW5pdC1zZWxmIC1XaW52YWxpZC1wY2ggLVdtaXNzaW5nLWRlY2xhcmF0aW9u cyAtV21pc3NpbmctaW5jbHVkZS1kaXJzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbWlzc2luZy12 YXJpYWJsZS1kZWNsYXJhdGlvbnMgLVduZXN0ZWQtZXh0ZXJucyAtV251bGwtZGVyZWZlcmVuY2Ug LVdvbGQtc3R5bGUtZGVmaW5pdGlvbiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdzdHJpY3Qt cHJvdG90eXBlcyAtV3VuaW5pdGlhbGl6ZWQgLVd1bmtub3duLXByYWdtYXMgLVd2YXJpYWRpYy1t YWNyb3MgLVd3cml0ZS1zdHJpbmdzIC1XZm9ybWF0PTIgLVd0aHJlYWQtc2FmZXR5IC1XcmVkdW5k YW50LWRlY2xzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1vdmVycmlkZS1p bml0IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdHlwZS1saW1pdHMgLVduby11bnVzZWQtcGFyYW1l dGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVduby1iaXR3aXNlLWluc3RlYWQtb2YtbG9naWNh bCAtV25vLW1pc3NpbmctYnJhY2VzIC1Xbm8tbnVsbC1wb2ludGVyLWFyaXRobWV0aWMgLVduby1p bXBsaWNpdC1jb25zdC1pbnQtZmxvYXQtY29udmVyc2lvbiAtV25vLWludC1pbi1ib29sLWNvbnRl eHQgLVduby1zaGlmdC1vdmVyZmxvdyAtV25vLWluaXRpYWxpemVyLW92ZXJyaWRlcyAtV25vLXRh dXRvbG9naWNhbC1jb21wYXJlIC1Xbm8tdGF1dG9sb2dpY2FsLWNvbnN0YW50LW91dC1vZi1yYW5n ZS1jb21wYXJlIC1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMnCldBUk5fSkFWQUZMQUdTPScn CldDSEFSX1RfU1VGRklYPScnCldFQktJVF9DRkxBR1M9JycKV0VCS0lUX0xJQlM9JycKV0VCUF9D RkxBR1M9Jy1pc3lzdGVtIC9vcHQvaG9tZWJyZXcvb3B0L3dlYnAvaW5jbHVkZSAtaXN5c3RlbSAv b3B0L2hvbWVicmV3L29wdC93ZWJwL2luY2x1ZGUvd2VicCcKV0VCUF9MSUJTPSctTC9vcHQvaG9t ZWJyZXcvb3B0L3dlYnAvbGliIC1sd2VicGRlbXV4IC1sd2VicGRlY29kZXInCldFUlJPUl9DRkxB R1M9JycKV0lER0VUX09CSj0nJwpXSU5ET1dTXzY0X0JJVF9PRkZfVD0nMCcKV0lORE9XU182NF9C SVRfU1RfU0laRT0nMCcKV0lORE9XU19TVEFUX0lOT0RFUz0nMCcKV0lORE9XU19TVEFUX1RJTUVT UEVDPScwJwpXSU5ET1dfU1lTVEVNX09CSj0nZm9udHNldC5vIGZyaW5nZS5vIGltYWdlLm8nCldJ TkRSRVM9JycKV0lOVF9UX1NVRkZJWD0nJwpYQVJHU19MSU1JVD0nJwpYQ0JfTElCUz0nJwpYQ09N UE9TSVRFX0NGTEFHUz0nJwpYQ09NUE9TSVRFX0xJQlM9JycKWENPTkZJR1VSRT0nJwpYQ1JVTj0n eGNydW4nClhEQkVfQ0ZMQUdTPScnClhEQkVfTElCUz0nJwpYRklYRVNfQ0ZMQUdTPScnClhGSVhF U19MSUJTPScnClhGVF9DRkxBR1M9JycKWEZUX0xJQlM9JycKWEdTRUxPQko9JycKWElORVJBTUFf Q0ZMQUdTPScnClhJTkVSQU1BX0xJQlM9JycKWElOUFVUX0NGTEFHUz0nJwpYSU5QVVRfTElCUz0n JwpYTUVOVV9PQko9JycKWE1LTUY9JycKWE9CSj0nJwpYUkFORFJfQ0ZMQUdTPScnClhSQU5EUl9M SUJTPScnClhSRU5ERVJfTElCUz0nJwpYU0hBUEVfQ0ZMQUdTPScnClhTSEFQRV9MSUJTPScnClhT WU5DX0NGTEFHUz0nJwpYU1lOQ19MSUJTPScnClhXSURHRVRTX09CSj0nJwpYX1RPT0xLSVRfVFlQ RT0nbm9uZScKWklQPScnClpJUEFMSUdOPScnCmFjX2N0X0NDPScnCmFjX2N0X0NYWD0nJwphY19j dF9PQkpDPSdnY2MnCmFyY2hsaWJkaXI9JyR7bnNfYXBwbGliZXhlY2Rpcn0nCmJpbmRpcj0nJHtl eGVjX3ByZWZpeH0vYmluJwpiaXRtYXBkaXI9JycKYnVpbGQ9J2FhcmNoNjQtYXBwbGUtZGFyd2lu MjQuNC4wJwpidWlsZF9hbGlhcz0nJwpidWlsZF9jcHU9J2FhcmNoNjQnCmJ1aWxkX29zPSdkYXJ3 aW4yNC40LjAnCmJ1aWxkX3ZlbmRvcj0nYXBwbGUnCmNhY2hlX2ZpbGU9Jy92YXIvZm9sZGVycy8x ZC9rXzZ0MjVmOTRzbDgzc3pxYmY4Z3BrcmgwMDAwZ24vVC8vY29uZmlnLmNhY2hlLnRleHQtaW5k ZXgnCmNhbm9uaWNhbD0nYWFyY2g2NC1hcHBsZS1kYXJ3aW4yNC40LjAnCmNvbW1hX3NwYWNlX3Zl cnNpb249JycKY29tbWFfdmVyc2lvbj0nJwpjb25maWd1cmF0aW9uPSdhYXJjaDY0LWFwcGxlLWRh cndpbjI0LjQuMCcKY29weXJpZ2h0PSdDb3B5cmlnaHQgKEMpIDIwMjUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuJwpkYXRhZGlyPScke2RhdGFyb290ZGlyfScKZGF0YXJvb3RkaXI9JyR7 cHJlZml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5B TUV9JwpkdmlkaXI9JyR7ZG9jZGlyfScKZW1hY3NfbWFqb3JfdmVyc2lvbj0nMzEnCmVtYWNzX3Vz ZV9tYWlsdXRpbHM9JycKZXRjZGlyPScke25zX2FwcHJlc2Rpcn0vZXRjJwpldGNkb2NkaXI9JyR7 bnNfYXBwcmVzZGlyfS9ldGMnCmV4ZWNfcHJlZml4PScvVXNlcnMvZ2VyZC9lbWFjcy9zYXZhbm5h aC90ZXh0LWluZGV4L25leHRzdGVwL0VtYWNzLmFwcC9Db250ZW50cy9NYWNPUycKZ2FtZWRpcj0n JHtsb2NhbHN0YXRlZGlyfS9nYW1lcy9lbWFjcycKZ2FtZWdyb3VwPScnCmdhbWV1c2VyPScnCmds X0dOVUxJQl9FTkFCTEVEXzAzZTBhYWFkNGNiODljYTc1NzY1M2JkMzY3YTZjY2I3X0NPTkRJVElP Tj0nMScKZ2xfR05VTElCX0VOQUJMRURfMjYwOTQxYzBlNWRjNjdlYzllODdkMWZiMzIxYzMwMGJf Q09ORElUSU9OPScxJwpnbF9HTlVMSUJfRU5BQkxFRF81MjY0Mjk0YWEwYTU1NTc1NDFiNTNjOGM3 NDFmN2YzMV9DT05ESVRJT049JzEnCmdsX0dOVUxJQl9FTkFCTEVEXzYwOTllOTczN2Y3NTdkYjM2 YzQ3ZmE5ZDlmMDJlODhjX0NPTkRJVElPTj0nMScKZ2xfR05VTElCX0VOQUJMRURfODQ0NDAzNGVh Nzc5Yjg4NzY4ODY1YmI2MGI0ZmI4YzlfQ09ORElUSU9OPScxJwpnbF9HTlVMSUJfRU5BQkxFRF85 MjU2NzdmMDM0M2RlNjRiODlhOWYwYzc5MGI0MTA0Y19DT05ESVRJT049JzEnCmdsX0dOVUxJQl9F TkFCTEVEX2E5Nzg2ODUwZTk5OWFlNjVhODM2YTYwNDFlOGU1ZWQxX0NPTkRJVElPTj0nMScKZ2xf R05VTElCX0VOQUJMRURfYmU0NTNjZWM1ZWVjZjU3MzFhMjc0ZjJkZTdmMmRiMzZfQ09ORElUSU9O PScxJwpnbF9HTlVMSUJfRU5BQkxFRF9jbG9leGVjX0NPTkRJVElPTj0nMScKZ2xfR05VTElCX0VO QUJMRURfZGlyZmRfQ09ORElUSU9OPScnCmdsX0dOVUxJQl9FTkFCTEVEX2VuZGlhbl9DT05ESVRJ T049JzEnCmdsX0dOVUxJQl9FTkFCTEVEX2V1aWRhY2Nlc3NfQ09ORElUSU9OPScxJwpnbF9HTlVM SUJfRU5BQkxFRF9mZDM4YzdlNDYzYjU0NzQ0Yjc3Yjk4YWVhZmI0ZmE3Y19DT05ESVRJT049JzEn CmdsX0dOVUxJQl9FTkFCTEVEX2dldGRlbGltX0NPTkRJVElPTj0nJwpnbF9HTlVMSUJfRU5BQkxF RF9nZXRkdGFibGVzaXplX0NPTkRJVElPTj0nJwpnbF9HTlVMSUJfRU5BQkxFRF9nZXRncm91cHNf Q09ORElUSU9OPScxJwpnbF9HTlVMSUJfRU5BQkxFRF9sY2htb2RfQ09ORElUSU9OPScnCmdsX0dO VUxJQl9FTkFCTEVEX29wZW5fQ09ORElUSU9OPScxJwpnbF9HTlVMSUJfRU5BQkxFRF9yYXdtZW1j aHJfQ09ORElUSU9OPScxJwpnbF9HTlVMSUJfRU5BQkxFRF9zdHJ0b2xsX0NPTkRJVElPTj0nJwpn bF9HTlVMSUJfRU5BQkxFRF91dGltZW5zX0NPTkRJVElPTj0nMScKZ2xfR05VTElCX0VOQUJMRURf dmVyaWZ5X0NPTkRJVElPTj0nMScKZ2xfTElCT0JKREVQUz0nICQoREVQRElSKS9hY2xfZW50cmll cy5QbyAkKERFUERJUikvbWVtbWVtLlBvICQoREVQRElSKS9ta3RpbWUuUG8nCmdsX0xJQk9CSlM9 JyBhY2xfZW50cmllcy5vIG1lbW1lbS5vIG1rdGltZS5vJwpnbF9MVExJQk9CSlM9JyBhY2xfZW50 cmllcy5sbyBtZW1tZW0ubG8gbWt0aW1lLmxvJwpnbF9saWJnbnVfTElCT0JKREVQUz0nICQoREVQ RElSKS9saWJnbnVfYS1hY2xfZW50cmllcy5QbyAkKERFUERJUikvbGliZ251X2EtbWVtbWVtLlBv ICQoREVQRElSKS9saWJnbnVfYS1ta3RpbWUuUG8nCmdsX2xpYmdudV9MSUJPQkpTPScgbGliZ251 X2EtYWNsX2VudHJpZXMubyBsaWJnbnVfYS1tZW1tZW0ubyBsaWJnbnVfYS1ta3RpbWUubycKZ2xf bGliZ251X0xUTElCT0JKUz0nIGxpYmdudV9sYS1hY2xfZW50cmllcy5sbyBsaWJnbnVfbGEtbWVt bWVtLmxvIGxpYmdudV9sYS1ta3RpbWUubG8nCmdsdGVzdHNfTElCT0JKREVQUz0nJwpnbHRlc3Rz X0xJQk9CSlM9JycKZ2x0ZXN0c19MVExJQk9CSlM9JycKZ2x0ZXN0c19XSVRORVNTPSdJTl9FTUFD U19HTlVMSUJfVEVTVFMnCmdsdGVzdHNfbGliZ251X0xJQk9CSkRFUFM9JycKZ2x0ZXN0c19saWJn bnVfTElCT0JKUz0nJwpnbHRlc3RzX2xpYmdudV9MVExJQk9CSlM9JycKZ3NldHRpbmdzc2NoZW1h ZGlyPScnCmhvc3Q9J2FhcmNoNjQtYXBwbGUtZGFyd2luMjQuNC4wJwpob3N0X2FsaWFzPScnCmhv c3RfY3B1PSdhYXJjaDY0Jwpob3N0X29zPSdkYXJ3aW4yNC40LjAnCmhvc3RfdmVuZG9yPSdhcHBs ZScKaHRtbGRpcj0nJHtkb2NkaXJ9JwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKaW5m b2Rpcj0nJHtuc19hcHByZXNkaXJ9L2luZm8nCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwps aWJleGVjZGlyPScke25zX2FwcGxpYmV4ZWNkaXJ9JwpsaWJsb2NrZmlsZT0nJwpsaXNwZGlyPSck e25zX2FwcHJlc2Rpcn0vbGlzcCcKbGlzcGRpcnJlbD0nJHtuc19hcHByZXNkaXJ9L2xpc3AnCmxp c3BwYXRoPScke2xvY2FsbGlzcHBhdGh9OiR7c3RhbmRhcmRsaXNwcGF0aH0nCmxvY2FsZWRpcj0n JHtkYXRhcm9vdGRpcn0vbG9jYWxlJwpsb2NhbGxpc3BwYXRoPScke25zX2FwcHJlc2Rpcn0vc2l0 ZS1saXNwJwpsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJwptYW5kaXI9JyR7bnNfYXBwcmVz ZGlyfS9tYW4nCm5zX2FwcGJpbmRpcj0nL1VzZXJzL2dlcmQvZW1hY3Mvc2F2YW5uYWgvdGV4dC1p bmRleC9uZXh0c3RlcC9FbWFjcy5hcHAvQ29udGVudHMvTWFjT1MnCm5zX2FwcGRpcj0nL1VzZXJz L2dlcmQvZW1hY3Mvc2F2YW5uYWgvdGV4dC1pbmRleC9uZXh0c3RlcC9FbWFjcy5hcHAnCm5zX2Fw cGxpYmRpcj0nL1VzZXJzL2dlcmQvZW1hY3Mvc2F2YW5uYWgvdGV4dC1pbmRleC9uZXh0c3RlcC9F bWFjcy5hcHAvQ29udGVudHMvRnJhbWV3b3JrcycKbnNfYXBwbGliZXhlY2Rpcj0nL1VzZXJzL2dl cmQvZW1hY3Mvc2F2YW5uYWgvdGV4dC1pbmRleC9uZXh0c3RlcC9FbWFjcy5hcHAvQ29udGVudHMv TWFjT1MvbGliZXhlYycKbnNfYXBwcmVzZGlyPScvVXNlcnMvZ2VyZC9lbWFjcy9zYXZhbm5haC90 ZXh0LWluZGV4L25leHRzdGVwL0VtYWNzLmFwcC9Db250ZW50cy9SZXNvdXJjZXMnCm5zX2FwcHNy Yz0nQ29jb2EvRW1hY3MuYmFzZScKbnNfY2hlY2tfZmlsZT0nQ29udGVudHMvSW5mby5wbGlzdCcK bnNfc2VsZl9jb250YWluZWQ9J3llcycKb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwpwZGZk aXI9JyR7ZG9jZGlyfScKcHJlZml4PScvVXNlcnMvZ2VyZC9lbWFjcy9zYXZhbm5haC90ZXh0LWlu ZGV4L25leHRzdGVwL0VtYWNzLmFwcC9Db250ZW50cy9SZXNvdXJjZXMnCnByb2dyYW1fdHJhbnNm b3JtX25hbWU9J3MseCx4LCcKcHNkaXI9JyR7ZG9jZGlyfScKcnVuc3RhdGVkaXI9JyR7bG9jYWxz dGF0ZWRpcn0vcnVuJwpzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpzaGFyZWRzdGF0ZWRp cj0nJHtwcmVmaXh9L2NvbScKc3JjZGlyPScuJwpzdGFuZGFyZGxpc3BwYXRoPScke2xpc3BkaXJ9 JwpzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJwpzeXN0ZW1kdXNlcnVuaXRkaXI9JyR7cHJlZml4 fS9saWIvc3lzdGVtZC91c2VyJwp0YXJnZXRfYWxpYXM9JycKdmVyc2lvbj0nMzEuMC41MCcKd2l0 aF9tYWlsdXRpbHM9J3llcycKeF9kZWZhdWx0X3NlYXJjaF9wYXRoPScnCgojIyAtLS0tLS0tLS0t LS0tLS0tLS0tICMjCiMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0t LS0tLSAjIwoKbW9kdWxlX2Vudl9zbmlwcGV0XzI1PScuL3NyYy9tb2R1bGUtZW52LTI1LmgnCm1v ZHVsZV9lbnZfc25pcHBldF8yNj0nLi9zcmMvbW9kdWxlLWVudi0yNi5oJwptb2R1bGVfZW52X3Nu aXBwZXRfMjc9Jy4vc3JjL21vZHVsZS1lbnYtMjcuaCcKbW9kdWxlX2Vudl9zbmlwcGV0XzI4PScu L3NyYy9tb2R1bGUtZW52LTI4LmgnCm1vZHVsZV9lbnZfc25pcHBldF8yOT0nLi9zcmMvbW9kdWxl LWVudi0yOS5oJwptb2R1bGVfZW52X3NuaXBwZXRfMzA9Jy4vc3JjL21vZHVsZS1lbnYtMzAuaCcK bW9kdWxlX2Vudl9zbmlwcGV0XzMxPScuL3NyYy9tb2R1bGUtZW52LTMxLmgnCgojIyAtLS0tLS0t LS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKLyogY29uZmRlZnMu aCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgojZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCiNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIzMS4wLjUwIgojZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMzEuMC41MCIKI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgojZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKI2RlZmluZSBIQVZFX1BEVU1QRVIgMQojZGVmaW5l IEhBVkVfTUFJTFVUSUxTIDEKI2RlZmluZSBHQ19SRU1FTUJFUl9MQVNUX01BUktFRCAxCiNkZWZp bmUgSEFWRV9TVERJT19IIDEKI2RlZmluZSBIQVZFX1NURExJQl9IIDEKI2RlZmluZSBIQVZFX1NU UklOR19IIDEKI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQojZGVmaW5lIEhBVkVfU1RESU5UX0gg MQojZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQojZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVmaW5lIEhBVkVfVU5JU1REX0ggMQojZGVmaW5lIEhB VkVfV0NIQVJfSCAxCiNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCiNkZWZpbmUgSEFWRV9T WVNfVVRTTkFNRV9IIDEKI2RlZmluZSBIQVZFX1BXRF9IIDEKI2RlZmluZSBIQVZFX1VUSUxfSCAx CiNkZWZpbmUgSEFWRV9TQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSCAxCiNkZWZpbmUgSEFWRV9T QU5JVElaRVJfQVNBTl9JTlRFUkZBQ0VfSCAxCiNkZWZpbmUgSEFWRV9TQU5JVElaRVJfQ09NTU9O X0lOVEVSRkFDRV9ERUZTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCiNkZWZpbmUgSEFWRV9N QUxMT0NfTUFMTE9DX0ggMQojZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQojZGVmaW5lIEhBVkVfU1RE Qk9PTF9IIDEKI2RlZmluZSBIQVZFX1VUTVBfSCAxCiNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKI2Rl ZmluZSBIQVZFX0RJUkVOVF9IIDEKI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQojZGVmaW5lIEhB VkVfR0VUT1BUX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCiNkZWZpbmUgSEFWRV9MSU1J VFNfSCAxCiNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQojZGVmaW5lIEhBVkVfU1REQ0tESU5U X0ggMQojZGVmaW5lIEhBVkVfU1lTX1JBTkRPTV9IIDEKI2RlZmluZSBTVERDX0hFQURFUlMgMQoj ZGVmaW5lIF9BTExfU09VUkNFIDEKI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKI2RlZmluZSBf R05VX1NPVVJDRSAxCiNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQojZGVmaW5l IF9ORVRCU0RfU09VUkNFIDEKI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQojZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQojZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQojZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQojZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQojZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQojZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCiNkZWZpbmUgX19FWFRFTlNJT05TX18g MQojZGVmaW5lIF9MSU5VWF9TT1VSQ0VfQ09NUEFUIDEKI2RlZmluZSBfX1VTRV9NSU5HV19BTlNJ X1NURElPIDEKI2RlZmluZSBHQ0NfTElOVCAxCiNkZWZpbmUgU1lTVEVNX1RZUEUgImRhcndpbiIK I2RlZmluZSBIQVZFX1RFUk1fSCAxCiNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKI2RlZmluZSBI QVZFX05FVF9JRl9IIDEKI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCiNkZWZpbmUgSEFWRV9ORVRf SUZfRExfSCAxCiNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFfSUZSX0ZMQUdTIDEKI2RlZmluZSBI QVZFX1NUUlVDVF9JRlJFUV9JRlJfQlJPQURBRERSIDEKI2RlZmluZSBIQVZFX1NUUlVDVF9JRlJF UV9JRlJfQUREUiAxCiNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFfSUZSX0FERFJfU0FfTEVOIDEK I2RlZmluZSBIQVZFX1NUUlVDVF9QQVNTV0RfUFdfR0VDT1MgMQojZGVmaW5lIFVTRVJfRlVMTF9O QU1FIHB3LT5wd19nZWNvcwojZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCiNkZWZpbmUg TlNfU0VMRl9DT05UQUlORUQgMQojZGVmaW5lIE5BVElWRV9PQkpDX0lOU1RBTkNFVFlQRSAxCiNk ZWZpbmUgQUxJR05PRl9JTlQgNAojZGVmaW5lIEFMSUdOT0ZfTE9ORyA4CiNkZWZpbmUgQUxJR05P Rl9MT05HX0xPTkcgOAojZGVmaW5lIFNJWkVPRl9MT05HIDgKI2RlZmluZSBIQVZFX1NUUlVDVF9B VFRSSUJVVEVfQUxJR05FRCAxCiNkZWZpbmUgSEFWRV9TVERBTElHTl9IIDEKI2RlZmluZSBIQVZF X1NCUksgMQojZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQojZGVmaW5lIEhBVkVfRk9SSyAxCiNk ZWZpbmUgSEFWRV9WRk9SSyAxCiNkZWZpbmUgSEFWRV9GQ0hNT0QgMQojZGVmaW5lIEhBVkVfVVRN UFhOQU1FIDEKI2RlZmluZSBIQVZFX1JFQUxQQVRIIDEKI2RlZmluZSBIQVZFX0xTVEFUIDEKI2Rl ZmluZSBIQVZFX0ZDSE1PREFUIDEKI2RlZmluZSBIQVZFX0xDSE1PRCAxCiNkZWZpbmUgSEFWRV9G Q05UTCAxCiNkZWZpbmUgSEFWRV9GRE9QRU5ESVIgMQojZGVmaW5lIEhBVkVfTElTVFhBVFRSIDEK I2RlZmluZSBIQVZFX0ZTVEFUQVQgMQojZGVmaW5lIEhBVkVfRlNZTkMgMQojZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKI2RlZmluZSBIQVZFX01FTVNFVF9TIDEKI2RlZmluZSBIQVZFX1BTRUxF Q1QgMQojZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKI2RlZmluZSBIQVZFX1JFQURMSU5L IDEKI2RlZmluZSBIQVZFX0lTQkxBTksgMQojZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQojZGVmaW5l IEhBVkVfU1RSVE9JTUFYIDEKI2RlZmluZSBIQVZFX1NZTUxJTksgMQojZGVmaW5lIEhBVkVfTE9D QUxUSU1FX1IgMQojZGVmaW5lIEhBVkVfR0VURFRBQkxFU0laRSAxCiNkZWZpbmUgU1lTVEVNX01B TExPQyAxCiNkZWZpbmUgSEFWRV9NTUFQIDEKI2RlZmluZSBIQVZFX1BUSFJFQUQgMQojZGVmaW5l IFRIUkVBRFNfRU5BQkxFRCAxCiNkZWZpbmUgSEFWRV9SU1ZHIDEKI2RlZmluZSBIQVZFX1dFQlAg MQojZGVmaW5lIEhBVkVfU1FMSVRFMyAxCiNkZWZpbmUgSEFWRV9EQlVTIDEKI2RlZmluZSBIQVZF X0RCVVNfV0FUQ0hfR0VUX1VOSVhfRkQgMQojZGVmaW5lIEhBVkVfREJVU19UWVBFX0lTX1ZBTElE IDEKI2RlZmluZSBIQVZFX0RCVVNfVkFMSURBVEVfQlVTX05BTUUgMQojZGVmaW5lIEhBVkVfREJV U19WQUxJREFURV9QQVRIIDEKI2RlZmluZSBIQVZFX0RCVVNfVkFMSURBVEVfSU5URVJGQUNFIDEK I2RlZmluZSBIQVZFX0RCVVNfVkFMSURBVEVfTUVNQkVSIDEKI2RlZmluZSBIQVZFX0RCVVNfTUVT U0FHRV9TRVRfQUxMT1dfSU5URVJBQ1RJVkVfQVVUSE9SSVpBVElPTiAxCiNkZWZpbmUgSEFWRV9H TlVUTFMgMQojZGVmaW5lIEhBVkVfVFJFRV9TSVRURVIgMQojZGVmaW5lIEhBVkVfS1FVRVVFIDEK I2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQojZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKI2RlZmluZSBIQVZFX1hJTSAxCiNkZWZpbmUgVVNFX1hJTSAxCiNkZWZpbmUgSEFWRV9MQ01T MiAxCiNkZWZpbmUgSEFWRV9aTElCIDEKI2RlZmluZSBEWU5BTUlDX0xJQl9TVUZGSVggIi5keWxp YiIKI2RlZmluZSBEWU5BTUlDX0xJQl9TRUNPTkRBUllfU1VGRklYICIuc28iCiNkZWZpbmUgSEFW RV9ETEFERFIgMQojZGVmaW5lIEhBVkVfTU9EVUxFUyAxCiNkZWZpbmUgTU9EVUxFU19TVUZGSVgg Ii5keWxpYiIKI2RlZmluZSBNT0RVTEVTX1NFQ09OREFSWV9TVUZGSVggIi5zbyIKI2RlZmluZSBO QVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgojZGVmaW5lIEhBVkVfUE5HIDEKI2RlZmluZSBIQVZF X05TIDEKI2RlZmluZSBOU19JTVBMX0NPQ09BIDEKI2RlZmluZSBIQVZFX0xJQlhNTDIgMQojZGVm aW5lIEhBVkVfRkNIRElSIDEKI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKI2RlZmluZSBIQVZF X0dFVFJVU0FHRSAxCiNkZWZpbmUgSEFWRV9MUkFORDQ4IDEKI2RlZmluZSBIQVZFX1JBTkRPTSAx CiNkZWZpbmUgSEFWRV9SSU5UIDEKI2RlZmluZSBIQVZFX1RDRFJBSU4gMQojZGVmaW5lIEhBVkVf VFJVTkMgMQojZGVmaW5lIEhBVkVfU0VMRUNUIDEKI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEK I2RlZmluZSBIQVZFX05FV0xPQ0FMRSAxCiNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQojZGVmaW5l IEhBVkVfU0VUUkxJTUlUIDEKI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCiNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQojZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKI2RlZmluZSBIQVZFX1NFTkRUTyAxCiNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCiNk ZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCiNkZWZpbmUgSEFWRV9HRVRJRkFERFJTIDEKI2RlZmlu ZSBIQVZFX0ZSRUVJRkFERFJTIDEKI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCiNkZWZpbmUg SEFWRV9TWU5DIDEKI2RlZmluZSBIQVZFX0VORFBXRU5UIDEKI2RlZmluZSBIQVZFX0dFVEdSRU5U IDEKI2RlZmluZSBIQVZFX0VOREdSRU5UIDEKI2RlZmluZSBIQVZFX0NGTUFLRVJBVyAxCiNkZWZp bmUgSEFWRV9DRlNFVFNQRUVEIDEKI2RlZmluZSBIQVZFX0xPRzIgMQojZGVmaW5lIEhBVkVfUFRI UkVBRF9TRVROQU1FX05QIDEKI2RlZmluZSBIQVZFX0dFVFBXRU5UIDEKI2RlZmluZSBIQVZFX1BU SFJFQURfU0VUTkFNRV9OUF8xQVJHIDEKI2RlZmluZSBIQVZFX0FMSUdORURfQUxMT0MgMQojZGVm aW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDEKI2RlZmluZSBIQVZFX1BPU0lYX01BRFZJU0Ug MQojZGVmaW5lIEhBVkVfTUFEVklTRSAxCiNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQURE UkVTUyAxCiNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQojZGVmaW5lIEhBVkVf RlNFRUtPIDEKI2RlZmluZSBIQVZFX0dSQU5UUFQgMQojZGVmaW5lIEhBVkVfUE9TSVhfT1BFTlBU IDEKI2RlZmluZSBURVJNSU5GTyAxCiNkZWZpbmUgVEVSTUlORk9fREVGSU5FU19CQyAxCiNkZWZp bmUgVVNFX05DVVJTRVMgMQojZGVmaW5lIEhBVkVfV09SS0lOR19WRk9SSyAxCiNkZWZpbmUgSEFW RV9XT1JLSU5HX0ZPUksgMQojZGVmaW5lIEhBVkVfU05QUklOVEYgMQojZGVmaW5lIEhBVkVfT1BF Tl9NRU1TVFJFQU0gMQojZGVmaW5lIEhBVkVfU1BBV05fSCAxCiNkZWZpbmUgSEFWRV9QT1NJWF9T UEFXTiAxCiNkZWZpbmUgSEFWRV9QT1NJWF9TUEFXTl9GSUxFX0FDVElPTlNfQUREQ0hESVJfTlAg MQojZGVmaW5lIEhBVkVfUE9TSVhfU1BBV05BVFRSX1NFVEZMQUdTIDEKI2RlZmluZSBIQVZFX0RF Q0xfUE9TSVhfU1BBV05fU0VUU0lEIDEKI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQoj ZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKI2RlZmluZSBBTVBFUlNBTkRfRlVMTF9OQU1FIDEKI2Rl ZmluZSBIQVZFX1BUWVMgMQojZGVmaW5lIEhBVkVfU09DS0VUUyAxCiNkZWZpbmUgTlVMTF9ERVZJ Q0UgIi9kZXYvbnVsbCIKI2RlZmluZSBTRVBDSEFSICc6JwojZGVmaW5lIHN1YnByb2Nlc3NlcyAx CiNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgMAoj ZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gRElSRUNUT1JZX1NFUCkKI2Rl ZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykpCiNkZWZpbmUgRE9O VF9SRU9QRU5fUFRZIDEKI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCiNk ZWZpbmUgSU5URVJSVVBUX0lOUFVUIDEKI2RlZmluZSBVTklYOThfUFRZUyAxCiNkZWZpbmUgUFRZ X0lURVJBVElPTiBpbnQgaTsgZm9yIChpID0gMDsgaSA8IDE7IGkrKykKI2RlZmluZSBQVFlfVFRZ X05BTUVfU1BSSU5URiB7IGNoYXIgKnB0eW5hbWUgPSAwOyBzaWdzZXRfdCBibG9ja2VkOyBzaWdl bXB0eXNldCAoJmJsb2NrZWQpOyBzaWdhZGRzZXQgKCZibG9ja2VkLCBTSUdDSExEKTsgcHRocmVh ZF9zaWdtYXNrIChTSUdfQkxPQ0ssICZibG9ja2VkLCAwKTsgaWYgKGdyYW50cHQgKGZkKSAhPSAt MSAmJiB1bmxvY2twdCAoZmQpICE9IC0xKSBwdHluYW1lID0gcHRzbmFtZShmZCk7IHB0aHJlYWRf c2lnbWFzayAoU0lHX1VOQkxPQ0ssICZibG9ja2VkLCAwKTsgaWYgKCFwdHluYW1lKSB7IGVtYWNz X2Nsb3NlIChmZCk7IHJldHVybiAtMTsgfSBzbnByaW50ZiAocHR5X25hbWUsIFBUWV9OQU1FX1NJ WkUsICIlcyIsIHB0eW5hbWUpOyB9CiNkZWZpbmUgUFRZX09QRU4gZG8geyBmZCA9IHBvc2l4X29w ZW5wdCAoT19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NUVFkpOyBpZiAoZmQgPCAwICYmIGVycm5v ID09IEVJTlZBTCkgZmQgPSBwb3NpeF9vcGVucHQgKE9fUkRXUiB8IE9fTk9DVFRZKTsgfSB3aGls ZSAoZmFsc2UpCiNkZWZpbmUgUFRZX05BTUVfU1BSSU5URiAvKiovCiNkZWZpbmUgU0lHTkFMU19W SUFfQ0hBUkFDVEVSUyAxCiNkZWZpbmUgVEFCMyBPWFRBQlMKI2RlZmluZSBHQ19TRVRKTVBfV09S S1MgMQojZGVmaW5lIEhBVkVfX1NFVEpNUCAxCiNkZWZpbmUgSEFWRV9TSUdTRVRKTVAgMQojZGVm aW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQojZGVmaW5lIERBUldJTl9PUyAvKiov CiNkZWZpbmUgU0laRU9GX1NQRUVEX1QgOAojZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCiNkZWZp bmUgVVNBQkxFX1NJR0lPIDEKI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyNSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCiNkZWZpbmUgVEVSTV9IRUFERVIgIm5zdGVy bS5oIgojZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gImFhcmNoNjQtYXBwbGUtZGFyd2luMjQu NC4wIgojZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLWNhY2hlLWZpbGUgL3Zhci9mb2xk ZXJzLzFkL2tfNnQyNWY5NHNsODNzenFiZjhncGtyaDAwMDBnbi9ULy9jb25maWcuY2FjaGUudGV4 dC1pbmRleCAtLXdpdGgtbmF0aXZlLWNvbXBpbGF0aW9uPW5vIENDPWNsYW5nICdDRkxBR1M9LVdn bnUtaW1hZ2luYXJ5LWNvbnN0YW50IC1XdW51c2VkLXJlc3VsdCAtZyAtRiAvQXBwbGljYXRpb25z L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5wbGF0Zm9ybS9E ZXZlbG9wZXIvU0RLcy9NYWNPU1guc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MgLVduby1p Z25vcmVkLWF0dHJpYnV0ZXMgLVduby1mbGFnLWVudW0gLVduby1taXNzaW5nLW1ldGhvZC1yZXR1 cm4tdHlwZSAtV25vLXZhcmlhZGljLW1hY3JvcyAtV25vLXN0cmljdC1wcm90b3R5cGVzIC1Xbm8t YXZhaWxhYmlsaXR5IC1Xbm8tbnVsbGFiaWxpdHktY29tcGxldGVuZXNzJyIKI2RlZmluZSByZXN0 cmljdCBfX3Jlc3RyaWN0X18KI2RlZmluZSBIQVZFX1RZUEVPRiAxCiNkZWZpbmUgSEFWRV9TVEFU RU1FTlRfRVhQUkVTU0lPTlMgMQojZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQojZGVmaW5l IEhBVkVfU1lTX0FDTF9IIDEKI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCiNkZWZpbmUgSEFW RV9BQ0xfR0VUX0ZEIDEKI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCiNkZWZpbmUgSEFWRV9B Q0xfU0VUX0ZEIDEKI2RlZmluZSBIQVZFX0FDTF9HRVRfTElOS19OUCAxCiNkZWZpbmUgSEFWRV9B Q0xfRlJFRSAxCiNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKI2RlZmluZSBIQVZFX0FDTF9E RUxFVEVfREVGX0ZJTEUgMQojZGVmaW5lIEhBVkVfQUNMX0RFTEVURV9GRF9OUCAxCiNkZWZpbmUg SEFWRV9BQ0xfREVMRVRFX0ZJTEVfTlAgMQojZGVmaW5lIEhBVkVfQUNMX0NPUFlfRVhUX05BVElW RSAxCiNkZWZpbmUgSEFWRV9BQ0xfQ1JFQVRFX0VOVFJZX05QIDEKI2RlZmluZSBIQVZFX0FDTF9G SVJTVF9FTlRSWSAxCiNkZWZpbmUgSEFWRV9BQ0xfVFlQRV9FWFRFTkRFRCAxCiNkZWZpbmUgVVNF X0FDTCAxCiNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxCiNkZWZpbmUgSEFWRV9BTExPQ0EgMQojZGVm aW5lIEhBVkVfREVDTF9FTkRVVEVOVCAwCiNkZWZpbmUgSEFWRV9TVFJVQ1RfVVRNUFhfVVRfVVNF UiAxCiNkZWZpbmUgSEFWRV9TVFJVQ1RfVVRNUF9VVF9OQU1FIDEKI2RlZmluZSBIQVZFX1NUUlVD VF9VVE1QWF9VVF9UWVBFIDEKI2RlZmluZSBIQVZFX1NUUlVDVF9VVE1QWF9VVF9QSUQgMQojZGVm aW5lIEhBVkVfU1RSVUNUX1VUTVBYX1VUX0hPU1QgMQojZGVmaW5lIEhBVkVfU1RSVUNUX1VUTVBf VVRfSE9TVCAxCiNkZWZpbmUgSEFWRV9TVFJVQ1RfVVRNUFhfVVRfSUQgMQojZGVmaW5lIEhBVkVf REVDTF9TWVNJTkZPIDAKI2RlZmluZSBIQVZFX1NZU19TWVNDVExfSCAxCiNkZWZpbmUgSEFWRV9T WVNDVEwgMQojZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKI2RlZmluZSBIQVZFX0dFVENXRCAxCiNk ZWZpbmUgSEFWRV9fX0hFQURFUl9JTkxJTkUgMQojZGVmaW5lIFVTRV9TRUxJTlVYX1NFTElOVVhf SCAwCiNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMQojZGVmaW5lIEhBVkVfREVDTF9HRVRMSU5F IDEKI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKI2RlZmluZSBIQVZFX0dFVE9QVF9MT05HX09OTFkg MQojZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCiNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05H X0xPTkdfSU5UIDEKI2RlZmluZSBIQVZFX01BTExPQ19QVFJESUZGIDEKI2RlZmluZSBIQVZFX01B TExPQ19QT1NJWCAxCiNkZWZpbmUgSEFWRV9NQUxMT0NfMF9OT05OVUxMIDEKI2RlZmluZSBIQVZF X0RFQ0xfTUVNTUVNIDEKI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCiNkZWZpbmUgSEFWRV9N SU5NQVhfSU5fU1lTX1BBUkFNX0ggMQojZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQojZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAxCiNkZWZpbmUgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGIDEKI2Rl ZmluZSBIQVZFX1NUUlVDVF9UTV9UTV9aT05FIDEKI2RlZmluZSBIQVZFX1RNX0dNVE9GRiAxCiNk ZWZpbmUgSEFWRV9TSUdTRVRfVCAxCiNkZWZpbmUgSEFWRV9ERUNMX0ZDTE9TRUFMTCAwCiNkZWZp bmUgSEFWRV9ERUNMX0dFVFcgMQojZGVmaW5lIEhBVkVfREVDTF9QVVRXIDEKI2RlZmluZSBIQVZF X0RFQ0xfRUNWVCAxCiNkZWZpbmUgSEFWRV9ERUNMX0ZDVlQgMQojZGVmaW5lIEhBVkVfREVDTF9H Q1ZUIDEKI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCiNkZWZpbmUgSEFWRV9ERUNMX1NUUlRP SU1BWCAxCiNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCiNkZWZpbmUgSEFWRV9ERUNMX0VYRUNWUEUg MAojZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAxCiNkZWZpbmUgSEFWRV9ERUNM X0ZFT0ZfVU5MT0NLRUQgMQojZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMQojZGVm aW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAojZGVmaW5lIEhBVkVfREVDTF9GR0VUU19V TkxPQ0tFRCAwCiNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKI2RlZmluZSBIQVZF X0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAojZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAw CiNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCiNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMQojZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDEKI2RlZmlu ZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAxCiNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5M T0NLRUQgMQojZGVmaW5lIEdFVEdST1VQU19UIGdpZF90CiNkZWZpbmUgSEFWRV9ERUNMX0dFVERF TElNIDEKI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAxCiNkZWZpbmUgUFJPTU9URURf TU9ERV9UIGludAojZGVmaW5lIEhBVkVfV09SS0lOR19VVElNRVMgMQojZGVmaW5lIEhBVkVfQUxM T0NBIDEKI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQojZGVmaW5lIEdOVUxJQl9DQU5P TklDQUxJWkVfTEdQTCAxCiNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKI2RlZmluZSBIQVZFX0NM T0NLX0dFVFJFUyAxCiNkZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1FIDEKI2RlZmluZSBIQVZFX0NM T0NLX1NFVFRJTUUgMQojZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQojZGVmaW5lIEhBVkVf U1RSVUNUX0RJUkVOVF9EX1RZUEUgMQojZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKI2RlZmluZSBI QVZFX0FDQ0VTUyAxCiNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCiNkZWZpbmUgSEFWRV9ERUNM X0ZET1BFTkRJUiAxCiNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCiNkZWZpbmUgRkxFWElCTEVf QVJSQVlfTUVNQkVSIC8qKi8KI2RlZmluZSBIQVZFX1dPUktJTkdfRlNUQVRBVF9aRVJPX0ZMQUcg MQojZGVmaW5lIEdOVUxJQl9GU1RBVEFUIDEKI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKI2Rl ZmluZSBTVEFUX1NUQVRGUzJfQlNJWkUgMQojZGVmaW5lIEhBVkVfRlVUSU1FTlMgMQojZGVmaW5l IEhBVkVfR0VUTElORSAxCiNkZWZpbmUgSEFWRV9HRVRMT0FEQVZHIDEKI2RlZmluZSBfX0dFVE9Q VF9QUkVGSVggcnBsXwojZGVmaW5lIEhBVkVfVElNRVNQRUNfR0VUIDEKI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAojZGVmaW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCiNkZWZp bmUgSEFWRV9fX0lOTElORSAxCiNkZWZpbmUgR05VTElCX0xTVEFUIDEKI2RlZmluZSBIQVZFX01F TU1FTSAxCiNkZWZpbmUgSEFWRV9NRU1TRVRfU19TVVBQT1JUU19aRVJPIDEKI2RlZmluZSBIQVZF X01LT1NURU1QIDEKI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQojZGVmaW5lIE5FRURfTUtUSU1F X1dPUktJTkcgMQojZGVmaW5lIEhBVkVfQlVHX0JJR19OQU5PU0xFRVAgMQojZGVmaW5lIEhBVkVf U1lTX1BBUkFNX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NZU0NUTF9IIDEKI2RlZmluZSBIQVZFX1NZ U0NUTCAxCiNkZWZpbmUgUkVBRExJTktfVFJBSUxJTkdfU0xBU0hfQlVHIDEKI2RlZmluZSBIQVZF X1JFQURMSU5LQVQgMQojZGVmaW5lIEhBVkVfUkVBTExPQ18wX05PTk5VTEwgMQojZGVmaW5lIF9S RUdFWF9JTkNMVURFX0xJTUlUU19IIDEKI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCiNk ZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCiNkZWZpbmUgcmVf c2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAojZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBy cGxfcmVfY29tcGlsZV9wYXR0ZXJuCiNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9j b21waWxlX2Zhc3RtYXAKI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAojZGVmaW5lIHJl X3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgojZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAoj ZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJz IHJwbF9yZV9zZXRfcmVnaXN0ZXJzCiNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAojZGVmaW5l IHJlX2V4ZWMgcnBsX3JlX2V4ZWMKI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCiNkZWZpbmUg cmVnZXhlYyBycGxfcmVnZXhlYwojZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgojZGVmaW5l IHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCiNkZWZpbmUg SEFWRV9TVFJVQ1RfU1RBVF9TVF9BVElNRVNQRUNfVFZfTlNFQyAxCiNkZWZpbmUgSEFWRV9TVFJV Q1RfU1RBVF9TVF9CSVJUSFRJTUVTUEVDX1RWX05TRUMgMQojZGVmaW5lIEdOVUxJQl9GU0NBTkYg MQojZGVmaW5lIEdOVUxJQl9TQ0FORiAxCiNkZWZpbmUgSEFWRV9TVFBDUFkgMQojZGVmaW5lIEdO VUxJQl9URU1QTkFNRSAxCiNkZWZpbmUgSEFWRV9ERUNMX0xPQ0FMVElNRV9SIDEKI2RlZmluZSBI QVZFX1RJTUVHTSAxCiNkZWZpbmUgR05VTElCX1NURElPX1NJTkdMRV9USFJFQUQgMQojZGVmaW5l IFVTRV9VTkxPQ0tFRF9JTyBHTlVMSUJfU1RESU9fU0lOR0xFX1RIUkVBRAojZGVmaW5lIEhBVkVf VVRJTUVOU0FUIDEKI2RlZmluZSBIQVZFX0NfVkFSQVJSQVlTIDEKI2RlZmluZSBPUEVOX1RSQUlM SU5HX1NMQVNIX0JVRyAxCiNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQojZGVmaW5lIEhBVkVfTElC R0VOX0ggMQojZGVmaW5lIEhBVkVfR0VUR1JPVVBTIDEKI2RlZmluZSBIQVZFX0dFVEdST1VQUyAx CiNkZWZpbmUgSEFWRV9GVVRJTUVTIDEKI2RlZmluZSBIQVZFX0xVVElNRVMgMQojZGVmaW5lIEhB VkVfRlVUSU1FTlMgMQojZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKI2RlZmluZSBORUVEX01LVElN RV9JTlRFUk5BTCAxCiNkZWZpbmUgSEFWRV9XSU5ET1dfU1lTVEVNIDEKI2RlZmluZSBQT0xMX0ZP Ul9JTlBVVCAxCiNkZWZpbmUgRU1BQ1NfQ09ORklHX0ZFQVRVUkVTICJBQ0wgREJVUyBHTlVUTFMg TENNUzIgTElCWE1MMiBNT0RVTEVTIE5PVElGWSBLUVVFVUUgTlMgUERVTVBFUiBQTkcgUlNWRyBT UUxJVEUzIFRIUkVBRFMgVE9PTEtJVF9TQ1JPTExfQkFSUyBUUkVFX1NJVFRFUiBXRUJQIFhJTSBa TElCIgoKY29uZmlndXJlOiBleGl0IDAK --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 13:27:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 09:27:05 2025 Received: from localhost ([127.0.0.1]:37329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7wbZ-0005uk-EM for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 09:27:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40898) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7wbU-0005uC-CF for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 09:27:02 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7wbO-00030d-SH; Thu, 24 Apr 2025 09:26:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=DdSBtxBVBu8WpRIhfeDg/f6X4NurOreqoHNnzJLVf2o=; b=SmSw0DodQ5JA DtjYQ4EmEuZTRRQVPfc3K8jQVCRQVdA1i9QRUbgATS5XTaUnnnSqGpjah4iE+WhFHgQtH93YrUXgv g4yIlYr7FirU2dcqhq87Rr2kBLUTE/eBec6T3ag01XEY/Ijyyx1oVaJk6Vx5VRTJbwqkvH/wsHtqy 9/bcTgC8kMZUNuTiKMWKIWFNPX9GIR8110mM6ODjJJVPocG8rL6SE8n3bRF+hB/e8YKobRQTY2mgs C3QdhA/uCjE4TNazHTbC9KOYHmOmPWweZQL3eSIYqkiOfKiUVUd36mGuHJWov/kCYH66xbvzE5xmE OKDGZGeT7o719T3Dbp6Qew==; Date: Thu, 24 Apr 2025 16:26:49 +0300 Message-Id: <86zfg5y9k6.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> In-Reply-To: <87zfg5939u.fsf@HIDDEN> (message from Visuwesh on Thu, 24 Apr 2025 17:31:49 +0530) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <87plh2m72a.fsf@HIDDEN> <m2ecxinkcd.fsf@HIDDEN> <87zfg5939u.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, yantar92@HIDDEN, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Visuwesh <visuweshm@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier > <monnier@HIDDEN>, yantar92@HIDDEN, stefankangas@HIDDEN, > 77924 <at> debbugs.gnu.org > Date: Thu, 24 Apr 2025 17:31:49 +0530 > > I ran the benchmark with the text file tamil.txt in place of xmenu.c, > but I didn't disable elb-smie-mode since I ran into weird issues. In > both master and text-index cases, I ran the benchmark with > > % emacs -Q -l elisp-benchmarks-run --eval '(elisp-benchmarks-run "elb-scroll" t 10)' > > and here are the results for the master branch: > > * Results > > | test | non-gc (s) | gc (s) | gcs | total (s) | err | > |--------+------------+--------+-----+-----------+-----| > | scroll | 155.73 | 49.29 | 835 | 205.02 | 0% | > |--------+------------+--------+-----+-----------+-----| > | total | 155.73 | 49.29 | 835 | 205.02 | 0% | > > and for the scratch/text-index branch: > > * Results > > | test | non-gc (s) | gc (s) | gcs | total (s) | err | > |--------+------------+--------+-----+-----------+-----| > | scroll | 171.89 | 51.56 | 869 | 223.44 | 1% | > |--------+------------+--------+-----+-----------+-----| > | total | 171.89 | 51.56 | 869 | 223.44 | 1% | > > Unfortunately, my laptop went to power saving mode during the last two > minutes or so for the scratch/text-index benchmark run so that might > play into the numbers a tiny bit. I can try repeating the test later > for the latter case if desired. Empirically speaking, both branches > seemed to scroll at the same speed. Thanks. Unless the power saving mode explains it, the results look a bit disappointing to me: the branch is slower by about 10%. That's unexpected, I think.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 12:02:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 08:02:53 2025 Received: from localhost ([127.0.0.1]:37051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7vI1-0000pE-MD for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 08:02:52 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:58434) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u7vHv-0000oD-Hv for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 08:02:45 -0400 Received: by mail-pf1-x444.google.com with SMTP id d2e1a72fcca58-7376dd56eccso896348b3a.0 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 05:02:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745496157; x=1746100957; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vXKESxH58PzMTHHfYYs5QOigHVGpQa6zsyrDnnXN2yc=; b=k5j1vMxigYs0lBtcaS8udUYnTcz1kKBbrAJE+NcaaMqDzYZKjhDI47ZGkfiGzLsFWf Tr7/qHsfs7wZOV+V42+wMd0HiEtKHp2e2qlVD/X3i4qvwmtIQlp0mHd2cB/MviwKlthk G4rSc5BAnxLGztnZfvA4u4nEvJT1XwcFDPAS02fku4lNJCKMYVUHXh/8pDazrKTbPPxE qHon425DOeq8g6cssjBrvkzEYTnQRDp11YKPv0MO1ntaHX9t2TZ2BglafHEuOMT0RoJo dO5IDdR0p/P3LJ8OusTO03QjP9oddETE/CcuFZGNl++s0+AKiT+KNtMLcBdfxzAchwne 2g1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745496157; x=1746100957; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vXKESxH58PzMTHHfYYs5QOigHVGpQa6zsyrDnnXN2yc=; b=E7PcPXHzdI5pkX1+Ri4bfqBI3aljMzvwPvsXEpIqE2ojuT8FGm+Y/zNi05hs1JpOFO ADS9oEVoXDplKZavTrzDxnOyhojMGgyBzMQ6oAoXsfho5c1NMfn+C5hLbMDNgqHzDA0h g3NCa1DTn8nyZ+mwSLCwDJWUwM9aQE6IjBxZ4MlnaRPYn3ABhMuQrSZXNJqLb2uScloZ bPRNryLjwBa1l3be58gaFrBy1+KFrUZ0ZhQrXd+xZJlcol7F0HqZnbpbm94XaU1A6Cms x/cLbY51Kn0B+cjaFZaBjd0gK2cEcIKzq0Jl3qZt/Foyq5VPXaF+6Xj9fSjsqhb3sGhN hlTw== X-Forwarded-Encrypted: i=1; AJvYcCUHZtB7o9cp1eofBtntZ6w90RKA+vS89ErPyWS89DU0fjOe9ICNIkHermVvEUFeC3/cJwCy3w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzNEFnQC2OY8pRn4W1/08S43Fj6SScYHPqgqT7Myx3W2lodzibc 77l4nbnZ7DC0m4e4r6l63wlVtuSZbfoMh8w5m8/YZkR8lckw6xT6/inC8x9S X-Gm-Gg: ASbGncvk+/uIwaXQwqcEbysumwF1pgMdhNuBKwgsWfr5cL1jN+UTtnEzlmGIDATxUsZ ee9ZVwAQ9WhPhHhimpJp0cTLmH73+nGHxnxihD+u1dTPdJTW8W9SOD/zUGguAeCTvQXAX6Tnpai SPA27rCuCxjCMRuzFfosczMLVId42xjpiBHKKe/cHjM3mYeOd7TgGK8ixjd6xQD3aBjBo0PYdbD RQC193v/8gGidzjf0VDf9oNL5Ke1bPhs9gc9Sw6PpyKMIDY3rVZ5mt6+AqcympFn/CuAN82sz1a LqxX5z+wTmPhqTbCu+Zv6TYUZpKhHhJ8P87ANg== X-Google-Smtp-Source: AGHT+IGv8a6Wd6nIkcPgTxbN3BfvE979AHeVIvlMfftgboQBnB8OWkQ0N12TCDUpUD9hl3Bfk8yGWQ== X-Received: by 2002:a05:6a00:14d2:b0:736:4704:d5da with SMTP id d2e1a72fcca58-73e24e05a29mr3296432b3a.22.1745496157439; Thu, 24 Apr 2025 05:02:37 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-73e25a6b462sm1188275b3a.114.2025.04.24.05.02.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 05:02:37 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m28qnpn5ax.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <87frhxnbls.fsf@HIDDEN> <m2plh1naa7.fsf@HIDDEN> <87cyd1alyl.fsf@HIDDEN> <m2ldrpn6p7.fsf@HIDDEN> <874iydainw.fsf@HIDDEN> <m28qnpn5ax.fsf@HIDDEN> Date: Thu, 24 Apr 2025 17:32:33 +0530 Message-ID: <87v7qt938m.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llmann = wrote: >>> - the resources directory containing xmenu.c or whatever must be a >>> sibling to the benchmarks directory >>> >>> - The pattern matching the test case doesn't seem to always work. I use >>> ".*scroll.*" but the report at the end shows also "setq" and >>> "font-lock"??? >> >> I am using "elb-scroll" as the pattern and it only picks up scroll. >> (Though the time it takes to run 10 repeats (so 100 loops) is ~30 mins >> here.) > > Is that with the smie mode? Yep, I gave up on trying to load text-mode or otherwise, and use elb-smie-mode in the test. See my other mail for the results.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 12:02:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 08:02:10 2025 Received: from localhost ([127.0.0.1]:37049 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7vHN-0000ly-GH for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 08:02:09 -0400 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:50573) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u7vHH-0000kl-6X for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 08:02:03 -0400 Received: by mail-pf1-x444.google.com with SMTP id d2e1a72fcca58-73712952e1cso835121b3a.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 05:02:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745496117; x=1746100917; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=d0Uh7zAZezC2UI5yo9dTU0TnD9xJaszdh/PNlCLQN9Y=; b=NSrt8ejOZmJLwtYzvBVopnUf1pYas4H4LQvW4sLOnpW3u6lJ+8ybkrTTvuJXE09fSv myuCXhFVpTxGSPELxDUVL728yNsPhAT8LNP6KociE1moOE318I7XTbIbddWcGejlq2zH KAlOrrwqBNvigWdex0gYsuSIUpqRQjG6Rwkrb9G4DUr/ZGtcF7iHyWjGIL+IrieyYscC IvgpiKFT6VnF4JkrOIc+eHeQ6m7v5Hc/yqHMXa4vYx3bfWNpf9xq/x3kB91oiIBbmRUt vwfk4nkfACnO3FxstbGvT1g/mvukNCWaKNMwbDS0j9kd1DU7w4vOUS0iYu3fiMs5RWbg DuyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745496117; x=1746100917; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=d0Uh7zAZezC2UI5yo9dTU0TnD9xJaszdh/PNlCLQN9Y=; b=L/nKSreJedZQHED4FIZBQjQdiekf5Lxy4VluPQjPwVbfnkzXqDgQPeR4maYPGi+mmH EL538G/PpesRjg4AIyMC2WgI8PYpQHBiwaK8omZ+fGba0CLZVZa/QfDXxQXmca94WwDd 8DNkZ12KTYl3vGFgVss7AwEnUsdURnwWVt1um7wGlpxZg+3Ksxp3fo409zM9EDgMHEnS yCrH9gvtiBsTXd9OGCGDL9N+8deESl6MaK36mtvbaB02mkdAYpTKAM1Pt16rmiYT1tlX mwhsa00qRT5RiOLMummn5MlDF2lSrh3azdoemLn8UObbSsdcRLtbRt+ikMRkz1HLfbi4 AdyA== X-Forwarded-Encrypted: i=1; AJvYcCWS1dgKrK2XjrW7p9MzH//hVMuneMCPuELn3KliiFOKmfgDT+mx1yoHMZkEzQLXrnoR5niKuw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz6v5ejxgoUpJ4JMXAKtHNIwFK2zA2yI2Rhn9mxfVaKj1tK6N4i eJG/A92gq6vjAZuZSF1dt2vezqXCFrn+ceIC0YumO+JtA8EZuBBivjQtBnpU X-Gm-Gg: ASbGnctFCo/SYBeTKrn8aZywVgLxjMiR3N/Mrv8I5OJANIDPmWqPg1xSrf29m03BI1m akYe1SPeWz2XxWI974sij/zY1XbwUf2KSUFLr0IWrSN4v2UM44MCa2tecmUvr4gUVdZm1VJOn1a XjjWBZ9NUJwjddIhua30ELEZBpSORe7imbak3Ey35H2TUrTkvLv+70X8rIwRd8D6UXRjCXUrFbq f8YEhn7Kzlzf6+VtU4QHX3Fn5a43VVedFJlxiS0uWZ6XGRZUUHG6gQPWFYt/8Xaay3+9fU9Da0v qYH61k0uvNmMMtoZrjFiuTYrBH7s4SEen5WiVDkMqHRGSmgF X-Google-Smtp-Source: AGHT+IFDrK50QMqUoKw3oZJzzioUakm/6SVkRVQJkiTSlKiQJDqKvGYc5dsbijlOOHpIdxe+gpYneg== X-Received: by 2002:a05:6a20:549c:b0:1f5:5807:13c7 with SMTP id adf61e73a8af0-20444e9c443mr3411208637.17.1745496115893; Thu, 24 Apr 2025 05:01:55 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with UTF8SMTPSA id 41be03b00d2f7-b15faded629sm1023759a12.63.2025.04.24.05.01.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 05:01:54 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2ecxinkcd.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <87plh2m72a.fsf@HIDDEN> <m2ecxinkcd.fsf@HIDDEN> Date: Thu, 24 Apr 2025 17:31:49 +0530 Message-ID: <87zfg5939u.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, yantar92@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llmann = wrote: >> Is there a standard benchmark code that I can try for this? I have such >> a large HTML file with Tamil text, and I can scroll through the buffer >> produced by shr-render-buffer. > > The elisp-benchmarks package has an elb-scroll.el, in its benchmarks > directory. AFAICT, that loads an xmenu.c from the resources > sub-directory of the benchmarks. > > You could copy that, or modify it. > > P.S. > > One can set the benchmarks directory to somewhere else, and run > benchmarks like this: > > (setq elb-bench-directory "~/emacs/notes/code/benchmarks") > (elisp-benchmarks-run ".*replace-region-contents.*" t 100) > > The 100 is the number of runs, which should be chosen high enough that > the "err" column in the result buffer is reasonably low. I'd start with > 1 to see how long that takes, and then increase it. I ran the benchmark with the text file tamil.txt in place of xmenu.c, but I didn't disable elb-smie-mode since I ran into weird issues. In both master and text-index cases, I ran the benchmark with % emacs -Q -l elisp-benchmarks-run --eval '(elisp-benchmarks-run "elb-s= croll" t 10)' and here are the results for the master branch: * Results | test | non-gc (s) | gc (s) | gcs | total (s) | err | |--------+------------+--------+-----+-----------+-----| | scroll | 155.73 | 49.29 | 835 | 205.02 | 0% | |--------+------------+--------+-----+-----------+-----| | total | 155.73 | 49.29 | 835 | 205.02 | 0% | and for the scratch/text-index branch: * Results | test | non-gc (s) | gc (s) | gcs | total (s) | err | |--------+------------+--------+-----+-----------+-----| | scroll | 171.89 | 51.56 | 869 | 223.44 | 1% | |--------+------------+--------+-----+-----------+-----| | total | 171.89 | 51.56 | 869 | 223.44 | 1% | Unfortunately, my laptop went to power saving mode during the last two minutes or so for the scratch/text-index benchmark run so that might play into the numbers a tiny bit. I can try repeating the test later for the latter case if desired. Empirically speaking, both branches seemed to scroll at the same speed. This is how I configured both Emacses: % ./configure --with-sound=3Dalsa --with-x-toolkit=3Dmotif \ --without-xaw3d --without-gconf --without-libsystemd \ --with-cairo CFLAGS=3D-g3 CC=3D$(which gcc-13) If anyone wants to repeat the test, I attach the text file (compressed) I use here. --=-=-= Content-Type: application/gzip Content-Disposition: attachment; filename=tamil.txt.gz Content-Transfer-Encoding: base64 H4sICKH/CWgCA3RhbWlsLnR4dADU/UuPI1mWJgiuQ36FqG6sCqBrPRoDdKUBrciqagx6umqm0dk1 g1kNLDM8M7wywj3g7pE5tTMaQBWqaapawHy4MMIRXCgXJBdCKlUFHrkhgfkl8VNGSbn33O+8rgjV PAoYQ8DDTJWUx32cex7f+b7ffvP111/9t6++Lv/my1//w5uvy2/+tvz7N7/++6/Kv//2q+9+9fWb 3/zu2++/GpR/86s3v/3+y2/Lf1N+Uf72d9//rvyHL//Tf3rzm6L47W/KX3/zd98UX/y5/zzfij9q 4Tzqb998+335b/6y+BfPn/z+zW+++nX53d98+9Vvvx+Uv/v6q7/55pdf/qvfff+3X/yP5d9+8+1v 3nz/L4viT/XoT3X9p3pz+N/6tvxTPflTvX3+2/Ev+/L4+6b95fFHj88//VO9fP7n83dXf1q/b/9x +O/hF2v69fNXp39aX8WrNfSl+k/r4Z/q+eEX9e74i/nzT8rD1Q7/nhw/cfs81sfrD+nXzfFqj8er PbYfKv57DP2f/xZ/+Td///U3//jrL3/5d1/+5suvv/+L4v/2u2/Lv/rq67/58tsvy+9/9ebrv/+u /Ltvyu+f//erL5/n7te//uYfv/r678rffvntd998/d1hNg+/+erb8s1333313fdvnr9ZHlbA86d/ ++2Xz4vizfdffXNc39//6qvvyn/85tu/vyj+5++//H9/z37/F+Vf/pcv/td//x/K//3L77588+3f /Kr8D8+P87zy/8V//vai/Pdvvvv7509+/S8H5V9+/fWb8r98/dU/PD/AV9//t0H5H3715fOPnhfg //L1L796U/xv337zzd9+8e2Xb375/Jh/UR6+/VcXz9/669/95s3Xz586/OD/evEfL8r/9M3fvfnu d1//8vm6vwk/fv7rf3vz9fNu/D9/8w9fHX/zX998PSj+83cX5f/25h+++v5X374p/+rbr55v/ua7 518cv/S/v/nNm+dd+vUvnx+v/M9vfvXml1/+w/F3z1/6qzff/+q/vWk/91fffvnl853K/zVsmm++ +fb5l4PiPx5/99Uvf/Xm2+drPY/R1+3jfHf88a+ff/Lm+ef/9c3fffPbN79uL/V//+rrb77/Vfl/ efN3b57f/DBJxf/jy78ujyPyzdfGO//7X7/5m7//7q9/9+3fDZ6//O3fPb/B81P9l7/6y+L/OM7J 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 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:55:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:55:07 2025 Received: from localhost ([127.0.0.1]:36976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7vAL-00005w-FF for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:55:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32806) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7vA5-0008Vr-A4 for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:54:49 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7v9y-0007Pq-Sw; Thu, 24 Apr 2025 07:54:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=MNuk5t4cqz1U4h4OyKp3W7IdxshQ2hoyVjq6cmFeggY=; b=LxYVYBR6VCfv XM3vsIcRU1TDINasgDd2R0GRBvsXv33jyiWBF7CmERBuLtkaJD9+3hNiAPLlkkrzu5SmyG1UuFvKS GxYhaxCMeLi7Xk0K55cwN79rvTDrUTqKoYAVlrPn+Ng5l044c05lDogxQR8fEXL7R1BpnY0+QX/MI 6ZupapIoX0Q3Ca1L0zHj/AmZSqyDivOWGJqrvGZ0+GqDNJbX4HGMgwbHpTL5WICNcP6NMAKMFVTPw GPuXdgdTx6TqiaEchtjnT0RGhhqZ4ENytYezVDH7MvVQvICDUqmx4H18IAiK9tyfjly4DBj33AS2e SSikKaX8FEUm8+YG75S6bQ==; Date: Thu, 24 Apr 2025 14:54:27 +0300 Message-Id: <865xitzsek.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: monnier@HIDDEN, gerd.moellmann@HIDDEN In-Reply-To: <86plh3ym7l.fsf@HIDDEN> (message from Eli Zaretskii on Wed, 23 Apr 2025 17:41:18 +0300) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org > Date: Wed, 23 Apr 2025 17:41:18 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > > From: Stefan Monnier <monnier@HIDDEN> > > Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, > > 77924 <at> debbugs.gnu.org > > Date: Wed, 23 Apr 2025 10:34:11 -0400 > > > > FWIW, I'm not a great fan of rebasing either. I did rebase the branch > > last night not for rebasing's sake but because I felt there was a need > > for more detailed commit messages. > > > > In any case, any objection to merging the branch? > > I'd like to have a closer review of it first, so please wait for a > while. When I skimmed it, I remember having several, hopefully minor, > aspects that stood out, and I want to take a closer look. See below: > - m->next = BUF_MARKERS (buf); > - BUF_MARKERS (buf) = m; > + marker_vector_add (buf, m); > + marker_vector_set_charpos (m, charpos); Could we please name functions that manipulate and get marker information marker_SOMETHING and not marker_vector_something? marker_vector_add is semi-okay (although marker_add would have been nicer, IMO), but marker_vector_set_charpos and marker_vector_charpos are not, because AFAIU they manipulate the marker's position, not marker-vector's position. In general, wherever the fact that we have a vector of markers is merely an implementation detail that is not important to the programmer, can we just drop the "vector" part from the names of the functions, for the same reason that the old functions and macros weren't called marker_list_SOMETHING? > + DO_MARKERS (b, m) > + { > + if (!vectorlike_marked_p (&m->header)) > + marker_vector_remove (XVECTOR (BUF_MARKERS (b)), m); > + } > + END_DO_MARKERS; Would it be possible not to introduce macros that modify the C syntax? These are problematic for more than one reason (one being that they are not recognized by C modes we use). We have macros whose names start with FOR_EACH_ (like FOR_EACH_FRAME); can we introduce FOR_EACH_MARKER instead, and not hide opening/closing braces inside macros? > + marker_vector_reset (b); I'd prefer marker_vector_clear. Or maybe even marker_delete_all. > - set_marker_both (point_marker, Qnil, PT, PT_BYTE); > + set_marker_both (point_marker, Qnil, PT); It's confusing to keep calling this set_marker_both, when we no longer pass the byte position. > + DO_MARKERS (current_buffer, tail) > + { > + if (tail->need_adjustment) > + { > + tail->need_adjustment = 0; > + if (tail->insertion_type) > + { > + marker_vector_set_charpos (tail, from); > + } We don't use braces around blocks of a single statement. > INLINE ptrdiff_t > +gc_vsize (const struct Lisp_Vector *v) > +{ > + return v->header.size & ~ARRAY_MARK_FLAG; > +} > + > +INLINE ptrdiff_t > gc_asize (Lisp_Object array) > { > /* Like ASIZE, but also can be used in the garbage collector. */ > - return XVECTOR (array)->header.size & ~ARRAY_MARK_FLAG; > + return gc_vsize (XVECTOR (array)); > } Please add a comment to gc_vsize similar to what we say in gc_asize. > +/* Push entry ENTRY of V to its free-list. This must set MARKER to not ^^^^^^ > + be a marker, which is done by using the MARKER field of entry > + to form the free-list. */ > + > +static void > +push_free (struct Lisp_Vector *v, const ptrdiff_t entry) > +{ > + check_is_entry (v, entry); > + NEXT_FREE (v, entry) = FREE (v); > + FREE (v) = make_fixnum (entry); There's no argument named MARKER in this function. > +Lisp_Object > +alloc_marker_vector (ptrdiff_t len) > +{ > +#ifdef HAVE_MPS > + return igc_alloc_marker_vector (len, FREE_LIST_END); > +#else > + return make_vector (len, FREE_LIST_END); > +#endif > +} We don't have any code on master that uses HAVE_MPS. This changeset adds at least 2 of them. I'd prefer not to have these conditions on master as long as the igc branch was not landed. > +void > +marker_vector_reset (struct buffer *b) > +{ > + /* The old GC contains at least one assertion that unchaining markers > + in kill-buffer resets the markers' buffers. IGC does not do this, > + can't do this, and does not need it. */ Likewise here, wrt comments about igc. > +/* Return marker M's byte position. */ > + > +ptrdiff_t > +marker_vector_bytepos (const struct Lisp_Marker *m) > +{ > + const ptrdiff_t charpos = marker_vector_charpos (m); > + return buf_charpos_to_bytepos (m->buffer, charpos); Can m->buffer be NULL or a dead buffer? If so, what will happen here? > +void > +marker_vector_adjust_for_insert (struct buffer *b, > + const ptrdiff_t from_charpos, > + const ptrdiff_t to_charpos, > + const bool before_markers) > +{ > + const ptrdiff_t nchars = to_charpos - from_charpos; > + struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b)); > + DO_MARKERS (b, m) > + { > + const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry)); > + if (charpos == from_charpos) > + { > + if (m->insertion_type || before_markers) > + CHARPOS (v, m->entry) = make_fixnum (to_charpos); > + } > + else if (charpos > from_charpos) > + CHARPOS (v, m->entry) = make_fixnum (charpos + nchars); Why does it use CHARPOS and not marker_vector_set_charpos? > +void > +marker_vector_adjust_for_replace (struct buffer *b, > + const ptrdiff_t from_charpos, > + const ptrdiff_t old_nchars, > + const ptrdiff_t new_nchars) > +{ > + const ptrdiff_t diff_nchars = new_nchars - old_nchars; > + const ptrdiff_t old_to_charpos = from_charpos + old_nchars; > + struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b)); > + DO_MARKERS (b, m) > + { > + const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry)); > + if (charpos >= old_to_charpos) > + CHARPOS (v, m->entry) = make_fixnum (charpos + diff_nchars); > + else if (charpos > from_charpos) > + CHARPOS (v, m->entry) = make_fixnum (from_charpos); > + } > + END_DO_MARKERS; Likewise here. > +Lisp_Object make_marker_vector (void); > +Lisp_Object alloc_marker_vector (ptrdiff_t len); > +void marker_vector_add (struct buffer *b, struct Lisp_Marker *m); > +void marker_vector_remove (struct Lisp_Vector *v, struct Lisp_Marker *m); > +void marker_vector_reset (struct buffer *b); > +void marker_vector_set_charpos (struct Lisp_Marker *m, ptrdiff_t charpos); > +ptrdiff_t marker_vector_charpos (const struct Lisp_Marker *m); > +ptrdiff_t marker_vector_bytepos (const struct Lisp_Marker *m); > +void marker_vector_adjust_for_insert (struct buffer *b, const ptrdiff_t from, > + ptrdiff_t to, bool before_markers); > +void marker_vector_adjust_for_replace (struct buffer *b, ptrdiff_t from, > + ptrdiff_t old_chars, ptrdiff_t new_chars); We use the 'extern' qualifier for prototypes of non-static functions in header files. > + Note that the byte positions at interval boundaries can be in the > + middle of a multi-byte character. > + > + character start byte position > + | > + ------01234-------- bytes of a character (up to 5 in Emacs' > + | internal encoding) > + N * interval > + > + To find the character position corresponding to a byte position > + BYTEPOS, we look up the character position in the index at BYTEPOS / > + interval. From there, we can scan forward in the text until we reach > + BYTEPOS, counting characters, or we scan backward from the interval > + end, if that is closer. > + > + To find the byte position BYTEPOS corresponding to a given character > + position CHARPOS, we search the index for the last entry ENTRY whose > + character position is <= CHARPOS. That entry corresponds to a byte > + position ENTRY * interval size. From there, we scan the text until > + we reach BYTEPOS, counting characters until we reach CHARPOS. The > + byte position reached at the end is BYTEPOS. We also scan backward > + from the interval end, if that looks advantageous. Doesn't this make charpos->bytepos conversion more expensive than in the other direction? If not, why not? If the charpos->bytepos conversion is indeed more expensive, shouldn't it be the other way around, since AFAIR we need a byte position of a given character position much more frequently than the other way around? (And now it should be even more frequently, since markers record only the character positions.) > + Why divide the text into intervals of bytes instead of characters? > + Dividing the text into intervals of characters makes scanning > + overhead less uniform, since characters can be of different lengths > + (1 to 5 bytes). */ AFAIU, this should mention the fact that the implementation wants to use binary search to find the entry corresponding to a character position. > +// clang-format off Do we need this,l and if we do, does it have to be a C++ style comment? > + > +struct text_index > +{ > + /* Value at index IDX is the character position of byte position IDX * > + INTERVAL. Note that that byte position may be in the middle of a > + character. The value at index 0 is BEG. */ > + ptrdiff_t *charpos; What is IDX here? And what is INTERVAL? > + /* Number of valid entries in the above array. This is always at least 1 > + because the first entry is for BEG. */ > + size_t nentries; > + > + /* Number of entries allocated. */ > + size_t capacity; Why not ptrdiff_t? AFAIR, unsigned types should be avoided, to prevent problems when mixing them with signed types. > +/* Value is true is known position cache of TI is valid. */ ^^ Typo: "if". > +static bool > +is_cache_valid (const struct text_index *ti) > +{ > + return ti->cache.bytepos != TEXT_INDEX_INVALID_POSITION; > +} Shouldn't we also test against BEG_BYTE and Z_BYTE? > +/* Return the byte position in index TI corresponding to index entry > + ENTRY. Note that this position cab be in the middle of a multi-byte ^^^ "can" > +/* Return the character position in index TI corresponding index entry ^^^^^^^^^^^^^ "corresponding to" > + /* Start at the byte position of the last index entry. if TO_BYTEPOS ^^ Capitalize "If". > + /* Loop over bytes, starting one after the index entry we start from > + because we are only interested in yet unknown entries, and the > + one at EMTRY can be assumed to stay unchanged. */ ^^^^^ "ENTRY" > + for (++bytepos; bytepos < z_byte; ++bytepos) > + { > + if (CHAR_HEAD_P (BUF_FETCH_BYTE (b, bytepos))) > + ++charpos; > + > + if (bytepos == next_stop) > + { > + /* Add a new index entry. */ > + append_entry (ti, charpos); > + > + /* If we reached the one after the position we are interested > + in, we're done since we can then scan forward and backward > + to BYTEPOS. */ > + if ((to.bytepos != TEXT_INDEX_INVALID_POSITION > + && bytepos > to.bytepos) > + || (to.charpos != TEXT_INDEX_INVALID_POSITION > + && charpos > to.charpos)) > + break; > + > + /* Compute next stop. We are done if no next entry > + can be built. */ > + next_stop += TEXT_INDEX_INTERVAL; > + if (next_stop >= z_byte) > + break; > + } > + } I think this loop could be optimized if it used BYTES_BY_CHAR_HEAD instead of advancing one byte at a time. > +static ptrdiff_t > +charpos_forward_to_bytepos (struct buffer *b, const struct text_pos from, > + const ptrdiff_t to_bytepos) > +{ > + eassert (from.bytepos <= to_bytepos); > + ptrdiff_t bytepos = from.bytepos; > + ptrdiff_t charpos = from.charpos; > + while (bytepos < to_bytepos) > + { > + ++bytepos; > + if (CHAR_HEAD_P (BUF_FETCH_BYTE (b, bytepos))) > + ++charpos; > + } > + return charpos; > +} Likewise here. > + ptrdiff_t charpos = from.charpos; Please use CHARPOS(from) instead of accessing the struct members directly (here and elsewhere). > + while (charpos < to_charpos) > + { > + ++bytepos; > + if (CHAR_HEAD_P (BUF_FETCH_BYTE (b, bytepos))) > + ++charpos; > + } Here we could also use BYTES_BY_CHAR_HEAD. > +/* Improve the known bytepos bounds *PREV and *NEXT if KNOWN is closer > + to BYTEPOS. */ > + > +static void > +narrow_charpos_bounds_1 (const struct text_pos known, struct text_pos *prev, > + struct text_pos *next, const ptrdiff_t charpos) The commentary mentions BYTEPOS, but the function doesn't have such an argument. > +/* Improve the known bytepos bounds *PREV and *NEXT of buffer B using > + known positions in B. BYTEPOS is a byte position to convert to a > + character position. */ > + > +static void > +narrow_charpos_bounds (struct buffer *b, struct text_pos *prev, > + struct text_pos *next, const ptrdiff_t charpos) Same here. > +/* Return the character position in buffer B corresponding to > + byte position BYTEPOS. */ > + > +ptrdiff_t > +buf_bytepos_to_charpos (struct buffer *b, const ptrdiff_t bytepos) > +{ > + /* FIXME: Can BYTEPOS ever be outside of BEGV_BYTE..ZV_BYTE? */ > + /* If this buffer has as many characters as bytes, each character must > + be one byte. This takes care of the case where > + enable-multibyte-characters is nil. */ > + const struct text_pos z = z_pos (b); > + if (z.charpos == z.bytepos) > + return bytepos; > + > + /* Begin with the interval (BEG, Z), and improve on that by taking known > + positions into account like PT, GPT and the cache. This might > + already find the answer. */ > + struct text_index *ti = ensure_has_index (b); > + struct text_pos prev = beg_pos (b); > + struct text_pos next = z; > + > + narrow_bytepos_bounds (b, &prev, &next, bytepos); > + > + /* Z_BYTE does not have an index entry because we don't want > + extra entries for (Z, Z_BYTE), so short-circuit *before* looking > + up the index. Changing that would be possible but leads to more > + code than this if-statement, so it's probably not worth it. */ > + if (next.bytepos == bytepos) > + return next.charpos; > + > + ensure_bytepos_indexed (b, bytepos); > + const ptrdiff_t entry = index_bytepos_entry (ti, bytepos); > + narrow_bytepos_bounds_1 (index_text_pos (ti, entry), &prev, &next, bytepos); > + narrow_bytepos_bounds_1 (next_known_text_pos (b, entry), > + &prev, &next, bytepos); > + > + if (next.charpos - prev.charpos == next.bytepos - prev.bytepos > + /* Beware: NEXT and PREV can be in the middle of multibyte chars! */ > + && CHAR_HEAD_P (BUF_FETCH_BYTE (b, prev.bytepos))) > + return prev.charpos + (bytepos - prev.bytepos); /* ASCII-only! */ AFAICT, you already handled the ASCII-only case at the beginning, so why is this needed? > + /* Don't scan forward if CHARPOS is exactly on the previous know ^^^^ "known" > +DEFUN ("text-index--charpos-to-bytepos", Ftext_index__charpos_to_bytepos, > + Stext_index__charpos_to_bytepos, 1, 1, 0, > + doc: /* Convert CHARPOS to a bytepos in current buffer. > +If POSITION is out of range, the value is nil. */) > + (Lisp_Object charpos) > +{ > + const EMACS_INT pos = fix_position (charpos); > + if (pos < BEG || pos > Z) > + return Qnil; > + ptrdiff_t bytepos = buf_charpos_to_bytepos (current_buffer, pos); > + return make_fixnum (bytepos); > +} > + > +DEFUN ("text-index--bytepos-to-charpos", Ftext_index__bytepos_to_charpos, > + Stext_index__bytepos_to_charpos, 1, 1, 0, > + doc: /* Convert BYTEPOS to a charpos in current buffer. > +If BYTEPOS is out of range, the value is nil. */) > + (Lisp_Object bytepos) > +{ > + CHECK_FIXNUM (bytepos); > + const ptrdiff_t pos_byte = XFIXNUM (bytepos); > + if (pos_byte < BEG_BYTE || pos_byte > Z_BYTE) > + return Qnil; > + ptrdiff_t charpos = buf_bytepos_to_charpos (current_buffer, pos_byte); > + return make_fixnum (charpos); > +} > + > +DEFUN ("text-index--charpos-to-bytepos-brute", > + Ftext_index__charpos_to_bytepos_brute, > + Stext_index__charpos_to_bytepos_brute, 1, 1, 0, > + doc: /* Convert CHARPOS to a bytepos in current buffer. > +Compute with brute force. */) > + (Lisp_Object pos) > +{ > + const EMACS_INT to_charpos = fix_position (pos); > + if (to_charpos < BEG || to_charpos > Z) > + return Qnil; > + ptrdiff_t charpos = BEG, bytepos = BEG_BYTE; > + while (charpos < to_charpos) > + { > + ++bytepos; > + if (CHAR_HEAD_P (FETCH_BYTE (bytepos))) > + ++charpos; > + } > + return make_fixnum (bytepos); > +} Why are these functions needed? We already have byte-to-position and position-bytes, so at least the first two seem redundant. When would be the last two ones useful? Thanks.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:54:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:54:33 2025 Received: from localhost ([127.0.0.1]:36972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7v9x-0008Vj-Bk for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:54:32 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:47600) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7v9q-0008Ub-L5 for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:54:25 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-43cf034d4abso8707995e9.3 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 04:54:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745495656; x=1746100456; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=QCUakNQhPXvAVapkHO9bKogz7W6OT66yGWWN4kN9aQ0=; b=EfjNjHI3Omlx9sTcTVfATrj6q+T5YXq47DBINCtvrjGJOSSFHY1ycmm5Grxo/aI7GG hR01s8f65HttABCFJJFo9grs9rO2SB2yh0+e4fMKZF7ULIl4q0k/f0Y5n1sAAiEGe08e Oeuj6GKKC0q/tYHPe20H1bi48bs1cMfaDkF8Ct/sGfKyCtNWA0Rt3PBJ0TiEzPlJwh7z wqN0XQ7uB1CiENpkg2cvywa1Ad7hZYOslGKUuZ1r1V3CGPJXTcy1hBB35+kA6/YckHuD lS3zQFVWbN1yno6vd0sRgDF8dBaVb0UVVaivoSeKgl1XRs4kdETao6H3PeNQxUwfSufT PfCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745495656; x=1746100456; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=QCUakNQhPXvAVapkHO9bKogz7W6OT66yGWWN4kN9aQ0=; b=t2xf4xD1CHL0LL349ajr1dG0IMPVEj+r4Bw4oKbWPlePiJCTxMl1l++z8sU7iXqbTY 4LFkNv+JMSSxSEw2Zyck6WbbtOdMq6IX7bkpE04oqjG1bJ/sV2as30LRnWDZknSImQlt Gdu5XiGC8gUqZ7QBLEX55Ks7sDL86jaAJeqUMi53i7v+a75h2hZ9R55CK5gmIXLcRD5o rH6lYIaB5lk82rcP99bAt4MMTknRN4YLXKTxELUUTHPO1jxMgHrqt3xRvbeD+9UvWsIH 4lo6WQTSx0hW0u0gvjaWa2mYgeP7lUgWy9XRg8fwHzy/ZuInO27Iytrb7UKGiCGGorN4 izxg== X-Forwarded-Encrypted: i=1; AJvYcCUNChB6FCcSBLBX0pc+HhweWFpQPaM5xVSHBwDLU0TEKUVBHOv7Cj0IhjYHWJh15fa+18R3Vg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yzj149OXwsk0FCd56NZ2kXKCzMh/hTl+t8Z3tsEaJfb7e727Vbi Vn0HwsOzyfnMIWXU5IZX3fS4hHe+q/sUGb7HSDKjodNgA9UxDg86 X-Gm-Gg: ASbGnct2+F2H965IrhaHXqvPyP/xJeZN6DY/m/mCXS0sF230cKo6bMU//m9yANA6fEh OBuItSFQ1z4qCiAQ1xtZTut1IgsgHPrOyIynKMZI8kPvSIL/oYTuuCWW/1NilMZ0XptlU7ADDsL iQdRiRtEy2nRphU3yrZ2JZiOLcBUhD3Ev1OC3FeNh6jtqVTsjOgTlJtS9fQ18O4W4ERthx3ndcv gSRHBnyKYs6pqBKobyZePw1C+y2ZuwaOZBfIT6m3HJG/Bq7wmtTOCyJEQnIpO7nHqqE4+xm69LT 4cY9hxLiUE2O2wLgSMoqaahlQP5WL6/QwEWTYcM/G3K8exLVU5h69kmdbhabFr8FDZmAq4xpOo9 88WFA9EvZ5kVAB1YT+9eYz5Nfh6yMCTzMjmiO8fCj1tOa1iLjog== X-Google-Smtp-Source: AGHT+IHEuv/T/+J+9iZvWWgFIWzC9TQEZ4VTLe5KuhsW4c5EJQ9aaXTXxtmoH+DvGbX6JeDu+sojLQ== X-Received: by 2002:a05:600c:3b1a:b0:43d:40b0:5b with SMTP id 5b1f17b1804b1-4409bd76e79mr17665475e9.25.1745495656145; Thu, 24 Apr 2025 04:54:16 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4409d2ac717sm17776775e9.18.2025.04.24.04.54.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 04:54:15 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <874iydainw.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <87frhxnbls.fsf@HIDDEN> <m2plh1naa7.fsf@HIDDEN> <87cyd1alyl.fsf@HIDDEN> <m2ldrpn6p7.fsf@HIDDEN> <874iydainw.fsf@HIDDEN> Date: Thu, 24 Apr 2025 13:54:14 +0200 Message-ID: <m28qnpn5ax.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Visuwesh <visuweshm@HIDDEN> writes: >> - it must be run with GUI emacs -Q because it tries to enlarge-window >> which it can't on a terminal, and it assumes certain sizes >> ("stipulated sizes not whatever" error) > > That's a shame. AFAIU, the non-ASCII benchmark would be relevant > outside composition as well. +1 >> - the resources directory containing xmenu.c or whatever must be a >> sibling to the benchmarks directory >> >> - The pattern matching the test case doesn't seem to always work. I use >> ".*scroll.*" but the report at the end shows also "setq" and >> "font-lock"??? > > I am using "elb-scroll" as the pattern and it only picks up scroll. > (Though the time it takes to run 10 repeats (so 100 loops) is ~30 mins > here.) Is that with the smie mode?
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:44:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:44:16 2025 Received: from localhost ([127.0.0.1]:36898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7v04-0007jO-1l for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:44:16 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]:43494) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u7v01-0007ix-Jx for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:44:14 -0400 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-227914acd20so17220445ad.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 04:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745495047; x=1746099847; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2vLKXJndZ0dluf25FUKm0TFt14mkNy+k6GJ12YM8hnU=; b=MNcvY2hLnjBEk5Y3H4EzFi8ID6+Dp6CRwx6uQE6tY6LK0CSWSxNz4oEs94VUFPrGXA fv3pTHODhB371jEcc+7BHXSzoy0MNA0+CfqHIv+9+0S7YXR5UQhm5XJX6BTQs7Zz+OGk eVNDaSwCPaFjxth/WroFPNLJb4TFOBxVCiTJbNtahu0G2sYK335WF4O509sjraj5WuXT wgZCMYvxKliAhWVP1qI/WLHR1TzauLnIA13MlHmjUJJfErMEI9XR7mtH7abOJ7XxEtsV D/INDH71rn0sWYx5FLHe6Qz7QYA9wMdcnJc7P9CL6RePIvO2gDic+kb9pmn6jIPgU1Ci +Xpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745495047; x=1746099847; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2vLKXJndZ0dluf25FUKm0TFt14mkNy+k6GJ12YM8hnU=; b=u58FLdHuSCDo5WrQYq/GlevBR6PV5pGOJxKduqiNoC0AASFeDcn9Y4Q9uBaObFdQJ/ 8RDNjf8499yFPNO+ULkF4DmPcbpguiYzGWPex1ON5wQmXyLdYdQt7JJTt+Hh/14qyeNt EjzrC+ojj3ylpCiVZU8Jn/rVd+neCZ+sPYoSsTQOJDs0WAL4AqkrvtV/WwUk5sBCafQ8 UslJl4mDFAFnJX/QWqsSSLdHF2JC4rTsb9gJGtm2HHycFeSp2XAb9/Kr1vfJMX3MWegN So703uW9XaEVGDs9NvbLlvlS541mhjT6y63CBG5RdHLBYTbuerD6ig34He92zs5SXlPG pBrQ== X-Forwarded-Encrypted: i=1; AJvYcCWt+Au739Kuu0f7AUv51X4lgX5SgLJ0l4bt6WJPlKqXX2c/HGbzO/oqw+6KtCaEbJKCfe9Ulg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywad1ppryccov0AlN/5ZuMmx2KfBXqiOTFxWlsg6AXoqEqYR8QK YwR8q68ke8mEED4FnMNL3Aav+O85GCNaSgJBOdpooXZp7qGU+YuI X-Gm-Gg: ASbGnctUsZ/oW5xF79bZQzJKx/93os5N2LpZN6B2MSymVAykIdZTQPKJqm6yENfKpTo 8y8Jkla7GjoRtnEFJKK9JR31KnMImc2c3ZX99Um6Bf+RE5PtGgxotO/HZ8HT5ZTobTKI4XS5MLD N6jWZsJyFt2BRbKK1l29N3/vRWjlG56fH98wUc0t6sAnX7XrguzC6KEJfJTU22W5NCkOErw1MG1 7i42/In7/jOQY/oJqNfUn/iQimS2UQ28efxlvO04vjnZ1JMTOQdOnAX8TN1JLJVJm3VagUPebuk mxyTr5LPScQhALU031sTP7FEL3fm4S7w9ELVJQ== X-Google-Smtp-Source: AGHT+IHbbELczLW5UDSrTZKE7WgUXeKcxvVXt0/7FpLCgUWRn4A1jJirlMK0R7ffhARkw+kOp6yk9Q== X-Received: by 2002:a17:902:f54b:b0:215:58be:3349 with SMTP id d9443c01a7336-22db4837170mr29289315ad.14.1745495047434; Thu, 24 Apr 2025 04:44:07 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-22db4db99d3sm11075575ad.53.2025.04.24.04.44.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 04:44:07 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2ldrpn6p7.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <87frhxnbls.fsf@HIDDEN> <m2plh1naa7.fsf@HIDDEN> <87cyd1alyl.fsf@HIDDEN> <m2ldrpn6p7.fsf@HIDDEN> Date: Thu, 24 Apr 2025 17:14:03 +0530 Message-ID: <874iydainw.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llmann = wrote: > Visuwesh <visuweshm@HIDDEN> writes: > >> [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE= =8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llma= nn wrote: >> >>>>> Seems to have something to do with prog-mode, so maybe this depends on >>>>> the test file being a C file, which might be interesting for Visuwesh. >>>> >>>> I commented out (elb-smie-mode) form in the above snippet and that >>>> showed a backtrace which I could not explain. Replacing the form with >>>> (text-mode) didn't help either. So I'm running the benchmark with that >>>> form intact, even though the file I'm scrolling through is a text file. >>>> I am running the benchmark currently, and will report the results once >>>> they are done. >>>> >>>> Debugger entered--Lisp error: (overflow-error) >>> [...] >>> >>> Something went wrong when computing the "err" values, apparently. Maybe >>> it'll work if you increase the number of runs the NaN goes away? >> >> Oddly enough, it throws an error as soon as I start the benchmark. I >> don't think even a single iteration in the loop of elb-scroll-entry is >> complete, let alone a complete run. > > Hm, I can't really get that to run really well either, but while trying > I found that > > - it must be run with GUI emacs -Q because it tries to enlarge-window > which it can't on a terminal, and it assumes certain sizes > ("stipulated sizes not whatever" error) That's a shame. AFAIU, the non-ASCII benchmark would be relevant outside composition as well. > - the resources directory containing xmenu.c or whatever must be a > sibling to the benchmarks directory > > - The pattern matching the test case doesn't seem to always work. I use > ".*scroll.*" but the report at the end shows also "setq" and > "font-lock"??? I am using "elb-scroll" as the pattern and it only picks up scroll. (Though the time it takes to run 10 repeats (so 100 loops) is ~30 mins here.)
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:37:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:37:29 2025 Received: from localhost ([127.0.0.1]:36848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7utT-0006Et-Er for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:37:29 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:46291) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7utJ-00069l-TF for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:37:23 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-4394a823036so8773415e9.0 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 04:37:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745494631; x=1746099431; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4cxOzQiOZBM7/9a1EpurPKXaeYzJjI5pBQBA1FvogNI=; b=J+4tSneSQMU8RPHdAFbo47ZXS9q80k3Y1mrz7GoJ+3XoJSkf8xy8vQLqOOsSPLy3OG hM3CBPuQ6HsmIqMz+ptNA4EZZOX9jkBiyhL3as4g8C94HbtMCyMkPkCMlZ+xOCx2q1bY S388JeMYZQ2OiJqj4pH08XrTdEMplEKw1QtJyFG4gHkr9rX/YpZhZd09+UyHPyf6KySn yoAbfYmgW6cXBva8laUFBzjDh3AVGYNA5EoQlicULtXU3u35HReKhIV9zmcRV7QseJzZ S9aJIlgvmdeGaPRUYn8WBj4TV5oTtDC1ilbJkAKhQ56dzwbaAl45sMbinwNS7wAKnf5R mQ/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745494631; x=1746099431; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4cxOzQiOZBM7/9a1EpurPKXaeYzJjI5pBQBA1FvogNI=; b=NfuDYhTXewANJvMOujsDRAeP2lPrq3ZGtuBwmSXIeG9rnbFROcSUzoAR3xox7IAAsS 7iSBgizwkV3NkDa8S9/K+Q/HnXPRCwWoIBU0W3cHBb94cLETq0HbC3G68yOFus9jk6A3 5G76Isfz6OVno69NRwi6ru7PhiYPcUYkl20Yf+G+JsgdTCwGt5XyDeBTaEX9i11jWuc1 qe/f5bFnVThL4UdjC6pRuIpiGiTKHsbGSOO/vPFyHbaM614XMud4eN1IYqEpSeWhThBj DbnjsmgTQ9vqFKf+wdnvTTLtztG4jL1Gj4b0/HsWMyI4fVMXCXbNH2SMj92MMfLAqfh2 L7yw== X-Forwarded-Encrypted: i=1; AJvYcCVwU3eGjbW3x8iA81TnnEkaZUATUzyySt++dd/C6nIFwjdJxdkCGgfxfG3uD1luq91segLEug==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yy3Z39fuS+3GEbiteeMuK3ouAEaejNQxspxTZaeHsaAC7Z+dmRS UOr5bGTit7v/haqud3uvrb1MYcKdyP2iwidgDIAJ2tiHjnal8S4v X-Gm-Gg: ASbGncu+SHR2p9KBqas4CkecuOoySvngOaOZQZLGS53V7/CL/nK4lGEuIQoVazRR4Bs 7DzPkYgUwncAJKqw7jStFdl3x9oh5eXute5yoK8q5rqiB+YvKWYLeN4aTe0Yvr0FdfztxH8MtvF +DV7KAR5Yu/JZVAEP9k/Uq+iU5TkvNdhm1o//+pMUlwNMkRiPC84nR8uNTnrsp4TB+uvWC/q9nP 8bIheUWUB3Z455YEv4Ryvf+WagD2oy07aU76e/ox5Npz0PUvzzGIqp5NrX2mZAMcwq7LKZlsymd yQUnPz3SDdfz/SWNqZUwdEXJkMNPE5j0J1qOuZ7HPhhJKo7D4XJ5fOcledLjbysgQLMz1FOMdHw PPpg21qBH7X7GGfxdrHUMeATfeTfRLD64BGSAqwrnqCBgmMIWJw== X-Google-Smtp-Source: AGHT+IEv4IJlPZFhYw0Tk/9Q6QvzSbl+4w+2E3d4tskJkEdLkr5o2eVLKzqC7AG9wNwlBkUxp6/RyA== X-Received: by 2002:a05:600c:1c8d:b0:43c:ed61:2c26 with SMTP id 5b1f17b1804b1-4409bd1f46cmr21483725e9.17.1745494631500; Thu, 24 Apr 2025 04:37:11 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4409d2a1dc3sm17292185e9.13.2025.04.24.04.37.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 04:37:11 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2h62dn6fs.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> <m25xitorg7.fsf@HIDDEN> <m21pthor3n.fsf@HIDDEN> <m2wmb9namq.fsf@HIDDEN> <87jz79q080.fsf@HIDDEN> <m2h62dn6fs.fsf@HIDDEN> Date: Thu, 24 Apr 2025 13:37:10 +0200 Message-ID: <m2cyd1n63d.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Helmut Eller <eller.helmut@HIDDEN>, Juri Linkov <juri@HIDDEN>, martin rudalics <rudalics@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > I'll remove these comments. Show now be on savannah.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:30:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:30:04 2025 Received: from localhost ([127.0.0.1]:36829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7umF-0003UG-Jf for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:30:03 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:43171) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7um7-0003TX-Em for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:29:55 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-43cf680d351so12481535e9.0 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 04:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745494185; x=1746098985; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cNlRiCP5XOBI5gMAOr0Cs0LUAKbP5j8q/XhQOMRrOv4=; b=JYVCjl6rDiLcCH4swB6mpFn+EdQFgoVRlveeuLRqWmsJ+q0Tq5W5CFM1zfcIMCW6Jp ndZ7CaFxf0yvVS1UdpmFoZ128/YyyPnMXWpdTjyMBC3h1i+Rct4geB4a+GdyGOoQCUIO 7DpOqCFgpGsc9AmL5NstYceNluITaVKH6eao8Hts5rXNornfgpmZpJhge4/UI368SctI IJ1fn8Vbth/WKNOUtI05VTRS1KYOZRlBS/BifAWTh54nXEF7sKWxnEyC1XcB02nxBwsY gBif++AHLaOMp2+QGZmygrCmzSgfFde3vGpeJf8vEs/gYKak4cFIJqifhg7pbmxwx80v c5Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745494185; x=1746098985; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cNlRiCP5XOBI5gMAOr0Cs0LUAKbP5j8q/XhQOMRrOv4=; b=W+ZXmfYKNxFlZOemur5zLTr26yNMFp5BCqHMXzXqguxQX56WYS3+MNl7/MMBdqSzMe CedMIHNU0exD7Po2LTG0VDANhs3QwuE8Qncm7wshLaUK3fcOfLSiome5GXDftUnl3RVo UVFMc79Kz3BaZmw0rTsXockNBB8mDxVL2yzZ7vz8AqnbYfbWUx5FBIK07xs8aH/ILVJr vLz2v3CIPlSPrunSsrrbf3I12bVzrLcbc0yMpnkzEwvacPy9ibFY3fputUW+ewNeDnhT 5sqdLCB90eV80tr/x5hYVbGOWp/I4UhMaq4nJayml+Xpj0YblrepIS+4FfESk67c8bSB MSNg== X-Forwarded-Encrypted: i=1; AJvYcCUVY5hSqtDTK1o5yTKpcYyWQkvyeSnyhyc1p3faNGHtY98Ea1LMwbi/AnZTkj7O1kvwbdNs9g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxwgqUkzxKitbV2cCtqxsz4SxGfGaz0x278/RxPI4+Ww06KSTx6 wUsLu5oD8kqgf5Tn5JVPuJGRNSSaco6NBVo6+CI2XkgOKatMwkIw X-Gm-Gg: ASbGnctkoQdEW1h736pj8az8oWiyPqQ/gV9vISV4gGPACwCyc1mPMqFWn1d79xcobfI mViha3fVY8OrAET83dvpgCEMrp5x6Bz8xeqsd8OWq+Yr/lca+kFmt03c6hC2LB8h5xBMQ8oteFN 2b2YsLl+jmzyjWU2XKSciV3Boxl2AF2A2JcNyEBo9BK+jF7z6W70z2qBIU5jHTYjN1CJJVadd8R EQlMymcFebo2yHC/n09PADiO+kMGi31uR///VmqNKEOpOVDjLEyGYZsbUAX1ZwKA2W4bad8mm7A fmEhqFIOUdPB8/FOJbXK9YfnCsiNebH4l12Q9nvQ+Pc/U7JifxKm28+BOMR/lnyOICvaLKUxxtn dap+5QKNHUibX1NaInWNRsHM16pe2w3TcMJee1hdySzzEunTtQA== X-Google-Smtp-Source: AGHT+IFYuv7eyxY6dxTGGgoV3l9g784RF1jYmcILF/pOFECBVYSxHor1ahJ8YW7af7OpAjlabD0XPg== X-Received: by 2002:a7b:cb58:0:b0:43d:174:2668 with SMTP id 5b1f17b1804b1-4409c370359mr16012905e9.0.1745494184769; Thu, 24 Apr 2025 04:29:44 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4409d2a2e43sm17629685e9.10.2025.04.24.04.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 04:29:44 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <87jz79q080.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> <m25xitorg7.fsf@HIDDEN> <m21pthor3n.fsf@HIDDEN> <m2wmb9namq.fsf@HIDDEN> <87jz79q080.fsf@HIDDEN> Date: Thu, 24 Apr 2025 13:29:43 +0200 Message-ID: <m2h62dn6fs.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Helmut Eller <eller.helmut@HIDDEN>, Juri Linkov <juri@HIDDEN>, martin rudalics <rudalics@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Pip Cet <pipcet@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: >> >>> So, one could, theoretically store the charpos in a field of a marker >>> when "unchaining" it. Ugly, but doable. >> >> And one could do something practically, which I now pushed to savannah. > > Can you explain how that works in the non-indirect buffer case?=20=20 Yes, it doesn't :-). > AFAICT, we call marker_vector_reset but not marker_vector_remove in > that case, and there is no code in marker_vector_reset to remember the > last charpos. And the comment in marker_vector_reset sounds like it's > not called at all in the IGC case? You mean this: /* The old GC contains at least one assertion that unchaining markers in kill-buffer resets the markers' buffers. IGC does not do this, can't do this, and does not need it. */ What I meant there is what I described in my mistaken mail before, that it can't do anything with the markers. But if they are dead, who cares. CLassic thinko. I'll remove these comments. Thanks!
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:24:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:24:26 2025 Received: from localhost ([127.0.0.1]:36819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7ugn-00030e-Re for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:24:26 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:52552) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7uge-0002zN-9L for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:24:17 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-39c0e0bc733so774500f8f.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 04:24:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745493846; x=1746098646; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TyXDSQAcMWcDu2pfgnctucYXTO8uRt2jS/u6sFpepro=; b=GS/RnLhamgvqcYT+E/WPV3BtKSTmE4A+Q5VWnZI10+De+ngIusOCwHgsXtMlpy6Ypl nsTWDWehkUG7RSRSLbM48KFyh6ANP7krw0vZD6Ex5fYO0vTEep8GWmLUJDQcl18bk6Ml u4qV/oDtX0IoFdUb0zHHpFulRiN+2SusY3jPk8ugMH4mwjn1vS2z8pK1aEMC7CdQekU/ CCDsdz0h7grV2zU3Ve2ZFKlPXJgyZs0NwHTJC0D5ZUSLP3rGL7HIvu8pP969BTpawdD8 yFuBhJ5Z95aDTCXwY+biapY5PEBdkyQNp31aeYYVxHKe6OJqEpUlbNQR2uOgAjnwmP5O GJjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745493846; x=1746098646; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TyXDSQAcMWcDu2pfgnctucYXTO8uRt2jS/u6sFpepro=; b=xOnYiatwOkWyq1neTDiybAg9OPlmrBXOh8fF4sUKYZBoxxa8aiXdflW6a65O1EvAHI yuU+gJdSQgSGWKGZFPlM3QlBfTjUgjYBEAHJyBmCl/4jtl3fjQjV1oEyBfCPpbGks7GF QmzhXSAXkd8hf0CYhV0i1AV7LqMZQrCiofKSbdS+sxkPRSYyZLu2K3kbPW7Aa+w+eZ1e bQOsCHui9bumHUv1pP3UpxPM3sMF3yE85EktKRd6QTB6j6SnulMkmddSlFl7mhD8Lg4q Od6WVOd4QwMTUmsHsnXZwEfp063UjK1eUQeQHyERKiiNiY9k0i+Hi45L/sfTrhZZllR+ hNcw== X-Forwarded-Encrypted: i=1; AJvYcCXKTCSGpNaQp7LWTu1/MEDXAgHHmiUxKkUgWCkpEcXV2Y3y6w/BvOCi2RBCO/9ACbkdmXYp7Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzrAHNzM0ZvPc6Vt5mqtw/jqgHwJjll5CvPN1UPtAILCTN9fRta BptWdZflj8U3tPg+JKW13CvciRXv2m/pl3aRUBV0/r43FOxsnWrW X-Gm-Gg: ASbGncuoUReRBjwnlfzM4beso6QO6fv2EC7OMOpxHGMryEjDiRCltN+mdBU7n2QyvM3 DDbEcK1yl8KM9q2AWJt4nv6k2n3zb2vG+z/9YdPRalKpWhIKhObENc6Dw9HE0G3z29RJwL2+ESt vVRPsP3IAaICIOMzCgZ8RPjKbBPnZsQyQhrxIVS7brkHfwESCDvEyNNJk4NMr4UbYK2pK45Eo5d 3KTrkFW/Um/AS+alK+s1eVMxvg9nP4VOClj9wZtdFdYLr0rcnd6P6+cNQYXWDI8Xqr0B5wfm62v GrsKdLV+Ii/Y7U5CRB5/qD3s+uFjXreTh1+aEcPUP77p7JwKn6BvFRrRf7P4R/jWv3oB69DmF0k JIycUDKH8XOzO/1bspPn5tR/7HYPslmi1suwNZYrX8G+nvkY7gg== X-Google-Smtp-Source: AGHT+IGnDWjnc+JY/e8FpYxatx++zdArLxgorL0XDpUyAlykB6ujEX0Dc1VaymPoAXAQ8XLmnyjWtw== X-Received: by 2002:a05:6000:4310:b0:39e:e75b:5cc with SMTP id ffacd0b85a97d-3a06cf5490cmr1941012f8f.16.1745493845591; Thu, 24 Apr 2025 04:24:05 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d54c313sm1784250f8f.92.2025.04.24.04.24.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 04:24:05 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <87cyd1alyl.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <87frhxnbls.fsf@HIDDEN> <m2plh1naa7.fsf@HIDDEN> <87cyd1alyl.fsf@HIDDEN> Date: Thu, 24 Apr 2025 13:24:04 +0200 Message-ID: <m2ldrpn6p7.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Visuwesh <visuweshm@HIDDEN> writes: > [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE= =8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llma= nn wrote: > >>>> Seems to have something to do with prog-mode, so maybe this depends on >>>> the test file being a C file, which might be interesting for Visuwesh. >>> >>> I commented out (elb-smie-mode) form in the above snippet and that >>> showed a backtrace which I could not explain. Replacing the form with >>> (text-mode) didn't help either. So I'm running the benchmark with that >>> form intact, even though the file I'm scrolling through is a text file. >>> I am running the benchmark currently, and will report the results once >>> they are done. >>> >>> Debugger entered--Lisp error: (overflow-error) >>> round(-0.0e+NaN) >>> (let ((squares (apply #'+ (mapcar #'(lambda (x) (expt x 2)) errs)))) >>> (round (/ (* 100 (sqrt squares)) elapsed))) >>> (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'(lambda ... >>> ...) errs)))) (round (/ (* 100 (sqrt squares)) elapsed)))) >>> (insert (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'... >>> errs)))) (round (/ (* 100 (sqrt squares)) elapsed))))) >>> (let* ((--cl-var-- tests) (test nil) (l nil) (test-elapsed nil) >>> (test-gcs nil) (test-gc-elapsed nil) (test-err nil) (elapsed 0) (gcs >>> 0) (gc-elapsed 0) (errs nil) (--cl-var-- t)) (while (consp --cl-var--) >>> (setq test (car --cl-var--)) (setq l (gethash test res)) (setq >>> test-elapsed (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while >>> (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ >>> --cl-var-- (car x))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--)) >>> (setq test-gcs (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while >>> (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ >>> --cl-var-- (car ...))) (setq --cl-var-- (cdr --cl-var--))) >>> --cl-var--)) (setq test-gc-elapsed (let* ((--cl-var-- l) (x nil) >>> (--cl-var-- 0)) (while (consp --cl-var--) (setq x (car --cl-var--)) >>> (setq --cl-var-- (+ --cl-var-- (car ...))) (setq --cl-var-- (cdr >>> --cl-var--))) --cl-var--)) (setq test-err (if (cdr l) >>> (elb-std-deviation (mapcar #'car l)))) (insert (apply #'format >> >> Something went wrong when computing the "err" values, apparently. Maybe >> it'll work if you increase the number of runs the NaN goes away? > > Oddly enough, it throws an error as soon as I start the benchmark. I > don't think even a single iteration in the loop of elb-scroll-entry is > complete, let alone a complete run. Hm, I can't really get that to run really well either, but while trying I found that - it must be run with GUI emacs -Q because it tries to enlarge-window which it can't on a terminal, and it assumes certain sizes ("stipulated sizes not whatever" error) - the resources directory containing xmenu.c or whatever must be a sibling to the benchmarks directory - The pattern matching the test case doesn't seem to always work. I use ".*scroll.*" but the report at the end shows also "setq" and "font-lock"??? =20=20
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 11:16:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 07:16:17 2025 Received: from localhost ([127.0.0.1]:36811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7uYw-0002Ku-6I for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:16:17 -0400 Received: from mail-4316.protonmail.ch ([185.70.43.16]:59251) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>) id 1u7uYm-0002JZ-5O for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 07:16:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1745493356; x=1745752556; bh=PvCVt5u7WyUvGbQ7vaBCaNXVQJSouDrqQkQ0cbFKRQU=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post; b=pB6gmAMRvUvc7w3O6va6xKgS58ihCyhlM34j3KmPs/ft0U60KMgHmJEbp1tNNdpxg hs6Os8M4kyz+7zk284evPQs1kgKAn4YF8J/PzTJJ2kvGZHrJoxzOIrqNl9X3M2F5iR a0nFH1NLQVKaCoksh81e+KiWMBGWGoPS63L5GEYrrJejETfm/+zJZevtk2Kx/PzhaS G1e9FWh2vEHvO10eGyhV1BTv9F8Zwpo7kt19C+r7SNzOBnGIX0V1ncbkOP0E1NeYb4 GS//fA4t/nvrKARa/He53cClJj7Z6T1t9znvmFEj9InyY1XGYEnu8xlKklbHzRaFNw CQsMEimLWr4XQ== Date: Thu, 24 Apr 2025 11:15:50 +0000 To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> From: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation Message-ID: <87jz79q080.fsf@HIDDEN> In-Reply-To: <m2wmb9namq.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> <m25xitorg7.fsf@HIDDEN> <m21pthor3n.fsf@HIDDEN> <m2wmb9namq.fsf@HIDDEN> Feedback-ID: 112775352:user:proton X-Pm-Message-ID: 20e9abb88a09993a532565af2629ed9312a8f34f MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Helmut Eller <eller.helmut@HIDDEN>, Juri Linkov <juri@HIDDEN>, martin rudalics <rudalics@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> So, one could, theoretically store the charpos in a field of a marker >> when "unchaining" it. Ugly, but doable. > > And one could do something practically, which I now pushed to savannah. Can you explain how that works in the non-indirect buffer case? AFAICT, we call marker_vector_reset but not marker_vector_remove in that case, and there is no code in marker_vector_reset to remember the last charpos. And the comment in marker_vector_reset sounds like it's not called at all in the IGC case? Pip
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 10:33:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 06:33:12 2025 Received: from localhost ([127.0.0.1]:36614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7ttE-0006do-J0 for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 06:33:12 -0400 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:44437) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u7tt7-0006cc-Ir for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 06:33:05 -0400 Received: by mail-pf1-x441.google.com with SMTP id d2e1a72fcca58-736b350a22cso611390b3a.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 03:33:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745490775; x=1746095575; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PFWSNAAUnyUb1IFjv6bZyc8g7vi3AQWGyjte3qjWp/U=; b=IhQZLeUHmcQWOrap+mfomUZaoqU/eZcKbYGltDlal4E4C7v3nnVLUUKlHr01d/iqxI CvkxD8M3FjTC0TU7NjsMDhbVXO7Kwus+da9HJIeCpXDXyyTvRDTlj7SExsEIMeh0xNM4 9txvqZNDU4t26s/xtSWNgHxlylqACvfAZCu3HX5sqFichCka3GVtNEGFFQF/1dmCzhwG aUHHLSPoT1AE8mwOG/SOlBV/mzQGIYwTp73GR9yvRxENpwYFeIRvirUMBk/mfp4o3MKj 2tEzE6O62EEDbr3TExFwa9EfpyyNUFnldBNuZwR19nyx0z5o6MDUjMUByMLBkeFzxCpU i1cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745490775; x=1746095575; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=PFWSNAAUnyUb1IFjv6bZyc8g7vi3AQWGyjte3qjWp/U=; b=IgH+ITLXSPn7jKEGrb6/NZXj1FE6K/rT352W8y8zTOOjBAS6zcLjw6Sid5tKC6MP7X 6Z20A0kpaJG8KgL/EhaiUaZxj92wtZ3b4TAieazVMBvsaIqrECOVsE61N4lMzzZlf2cS PWclVDiLoIiqwA/X6DluDoWpYhxLWA/Fee+E51LGq3wSgaJx9TEouCPyvDvsjN4Avnxv +BZVnbfiV6V3wtAshba/VuVRrlgibQrix4s+kK1SUsvz8/JoK7oMvF/bOLMY2Ag/Q6QS cmsbaO+0OAg2WM6Rjc8GxPPJrIlCT8ydh4VtsZKIaULmZ+lQ/eGug63UFwjW0mff1LdR U4sg== X-Forwarded-Encrypted: i=1; AJvYcCVurZrLZcgJOmyL0JbbmS2yPYeQtwgYaC0Lpw3zDu1YGTPhjVw4e7ia15LK+s5DlOkjowqeEw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxbQbhiDnPWmc3+FGBXF1vXGxAxe2GbzU25+XMGHTQpE4N0jQP+ 0PyGbpUj9sNgDrtp4rWxRPytqqhLZXRkqdW3dNoz+8s5u46NNBzJ X-Gm-Gg: ASbGncuJyTJ7LoXazMZ/kGgO96LM7d09w1XF8sGw3GdoMJ4KBKJHsLYFL1GDhdE2agg SFvflro1pAIZaz0z+LdgdSmWelB7CnxeK31P7DgLJ1fjCOC24eqp/S/JCPHtd+3v7HdH7V6bcph FNVsenYslZvexHzssenS4Ya39BdiSveHgJgsnlIoWUh2bZOYdmSqQknwCiy/OVjvlt/wFu0cvBk gqn4tCsACGGlqGw8Gd7XWJ60l0u3y2WY51ABExK9ayMFTdN3IHF93y01wKYBEpR10L8ElEHXjuB GWGNEDy4AyvTtBBMzleji1o8t9bETFqS9uzcGVYZow== X-Google-Smtp-Source: AGHT+IHoxvSgnTaXo42OtKc+u2Mn/ah6qjqStcfeNbIzdZkq9RiekgFc2VVhfqwdLQLqhbAHsLF4Hw== X-Received: by 2002:a05:6a20:d706:b0:1f5:77bd:ecbc with SMTP id adf61e73a8af0-20444e9b3a8mr2768233637.16.1745490775007; Thu, 24 Apr 2025 03:32:55 -0700 (PDT) Received: from localhost ([1.7.159.71]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-73e2593f4cfsm1047474b3a.38.2025.04.24.03.32.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:32:54 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2plh1naa7.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <87frhxnbls.fsf@HIDDEN> <m2plh1naa7.fsf@HIDDEN> Date: Thu, 24 Apr 2025 16:02:50 +0530 Message-ID: <87cyd1alyl.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llmann = wrote: >>> Seems to have something to do with prog-mode, so maybe this depends on >>> the test file being a C file, which might be interesting for Visuwesh. >> >> I commented out (elb-smie-mode) form in the above snippet and that >> showed a backtrace which I could not explain. Replacing the form with >> (text-mode) didn't help either. So I'm running the benchmark with that >> form intact, even though the file I'm scrolling through is a text file. >> I am running the benchmark currently, and will report the results once >> they are done. >> >> Debugger entered--Lisp error: (overflow-error) >> round(-0.0e+NaN) >> (let ((squares (apply #'+ (mapcar #'(lambda (x) (expt x 2)) errs)))) >> (round (/ (* 100 (sqrt squares)) elapsed))) >> (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'(lambda ... >> ...) errs)))) (round (/ (* 100 (sqrt squares)) elapsed)))) >> (insert (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'... >> errs)))) (round (/ (* 100 (sqrt squares)) elapsed))))) >> (let* ((--cl-var-- tests) (test nil) (l nil) (test-elapsed nil) >> (test-gcs nil) (test-gc-elapsed nil) (test-err nil) (elapsed 0) (gcs >> 0) (gc-elapsed 0) (errs nil) (--cl-var-- t)) (while (consp --cl-var--) >> (setq test (car --cl-var--)) (setq l (gethash test res)) (setq >> test-elapsed (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while >> (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ >> --cl-var-- (car x))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--)) >> (setq test-gcs (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while >> (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ >> --cl-var-- (car ...))) (setq --cl-var-- (cdr --cl-var--))) >> --cl-var--)) (setq test-gc-elapsed (let* ((--cl-var-- l) (x nil) >> (--cl-var-- 0)) (while (consp --cl-var--) (setq x (car --cl-var--)) >> (setq --cl-var-- (+ --cl-var-- (car ...))) (setq --cl-var-- (cdr >> --cl-var--))) --cl-var--)) (setq test-err (if (cdr l) >> (elb-std-deviation (mapcar #'car l)))) (insert (apply #'format > > Something went wrong when computing the "err" values, apparently. Maybe > it'll work if you increase the number of runs the NaN goes away? Oddly enough, it throws an error as soon as I start the benchmark. I don't think even a single iteration in the loop of elb-scroll-entry is complete, let alone a complete run.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 10:06:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 06:06:57 2025 Received: from localhost ([127.0.0.1]:36442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7tTr-00043x-2i for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 06:06:57 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:47495) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7tTk-000421-Hl for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 06:06:51 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3913958ebf2so637209f8f.3 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 03:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745489202; x=1746094002; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nMeeg034WgnHukDiAdYxWCJ8y7BDBhpffWyeJZmPpQA=; b=SO1KkcqJrPFd9AFevfgVoeqSQuvoaLjyRbvRHkGQ/iK+SOEsKi5UGA7hi3etpgPUTW bm4FWvfbAxfYdFPoj9TTxaBfi5QEqFC/QRQ2w9mXT2VOsk91iZ7nEZntzdLeY6j1WUEJ UMHukIyPE5S8AzB/JBBrkABOOl4dNC6s38NxSt1SfEoyMAerKvVUsg1cjMgtbdtSotAe HIcOK+ei58Ueow0nFhstTgjdXRjDhKcPtNE7t9Z7OzN1Aeon6Q31dCBmyLAbCCBAZn4U TZfWGUtxzWyRNVTfdaMnEcTD5h4D9ExI0srsZAANZqXIuLo4MtlpDYm3/v/FfDR/uxbs ytBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745489202; x=1746094002; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nMeeg034WgnHukDiAdYxWCJ8y7BDBhpffWyeJZmPpQA=; b=G8K9gvi+VkgVSn4uTdHuSyM8gmz1BrYV3WloEn3xqLiI+Fod7rAUxCTo5O9oDH+hw+ sj5w2Uql/cCiW9+zotcZYHsha+285Dlnk90ChynAZxkfskdFUNbGRDXJd0/t4s5fSm6n f509sbTqDJpczNTyYB9JWDrBDttzktPSi+0M3YdWh6tSojNDlRf5jKG5sTyt3zQOkuZa T6W3ZIuxV1Seb3ShFeuSt8ds5VPg05MK35YRBDmPaGf+2awvKQIIppsnfqN7RAsbqt1Q CemYzxcTA70XElrwKZbu9csy/u3x8JbietIYA20uBnAWtYq2UJvcWHyIVz6DnbPneRrC luLg== X-Forwarded-Encrypted: i=1; AJvYcCUGEOvNiOgOIzVPG8foofDpRFqse2Bv3XP1n2Qv7KP3z8o57QZYzHA3PDqgVyhGBfrmHgjklA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyvFhzRGEptg8AqCoODnIky5d54ZMENUYrDtLGnRJbdpaC0sYoA IaoaFuIYJWsa2UKz8efdbgCSK59TpgnPbLGst8vq2VUEUbvhzVC9SiBXGNGG X-Gm-Gg: ASbGncs9ux5K/AgnCMtM2SAMqkO3C30ulQuu7EOOxWdaZQAH7/UT7jAf8xJMSbwMi1l bJAsqZhTj9gPUdbKJiHok0qMP1mAtGysiP4hpi1yV0JTGHfTZSblq2hUQ/xS49ybjmXrzcZQBi8 lP0kRBKo04ao8PXOGa/WAhYyGb8pA5npWvFCeTNtpf4DmLOnO5inyuwVSkB7WcYhjHFTbchg0Zz DAj+0X+sz89akwA+mvqxfgK5+hmyA8vqwARzXVR5yuVtPCMGf34OAN18+t4ADt9cMZfeIk5Q1CM CFkkLIWjyzFgwcBVThPnlLXzVhloPC0Q5phYFt9WtLht5wtoRlLJq4JVHXWRiMASHrw1P2awU4y 2SxWGfNEX5K1tVwAOoZ1Pj2kiOQDtpCgL76f8BgjdjApvRxNa2A== X-Google-Smtp-Source: AGHT+IGtvPMavSikn+/n6Nw3pTBiDc3t34Mpct0/aUfbCpvl/H5xIlYiDvaw/JK2XqO/CAYmf1N5JQ== X-Received: by 2002:a5d:6da7:0:b0:39c:f0d:9146 with SMTP id ffacd0b85a97d-3a06cfa5b6cmr1673364f8f.45.1745489201972; Thu, 24 Apr 2025 03:06:41 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d532551sm1584678f8f.65.2025.04.24.03.06.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:06:41 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <87frhxnbls.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> <87frhxnbls.fsf@HIDDEN> Date: Thu, 24 Apr 2025 12:06:40 +0200 Message-ID: <m2plh1naa7.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Visuwesh <visuweshm@HIDDEN> writes: > [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE= =8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llma= nn wrote: > >> looks similar, but I don't know what elb-smie-mode does. > > elb-smie-mode's is Stefan's SMIE demo as a C major-mode AFAIU. Thanks, but I have no idea what that does. > >> Seems to have something to do with prog-mode, so maybe this depends on >> the test file being a C file, which might be interesting for Visuwesh. > > I commented out (elb-smie-mode) form in the above snippet and that > showed a backtrace which I could not explain. Replacing the form with > (text-mode) didn't help either. So I'm running the benchmark with that > form intact, even though the file I'm scrolling through is a text file. > I am running the benchmark currently, and will report the results once > they are done. > > Debugger entered--Lisp error: (overflow-error) > round(-0.0e+NaN) > (let ((squares (apply #'+ (mapcar #'(lambda (x) (expt x 2)) errs)))) > (round (/ (* 100 (sqrt squares)) elapsed))) > (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'(lambda ... > ...) errs)))) (round (/ (* 100 (sqrt squares)) elapsed)))) > (insert (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'... > errs)))) (round (/ (* 100 (sqrt squares)) elapsed))))) > (let* ((--cl-var-- tests) (test nil) (l nil) (test-elapsed nil) > (test-gcs nil) (test-gc-elapsed nil) (test-err nil) (elapsed 0) (gcs > 0) (gc-elapsed 0) (errs nil) (--cl-var-- t)) (while (consp --cl-var--) > (setq test (car --cl-var--)) (setq l (gethash test res)) (setq > test-elapsed (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while > (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ > --cl-var-- (car x))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--)) > (setq test-gcs (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while > (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ > --cl-var-- (car ...))) (setq --cl-var-- (cdr --cl-var--))) > --cl-var--)) (setq test-gc-elapsed (let* ((--cl-var-- l) (x nil) > (--cl-var-- 0)) (while (consp --cl-var--) (setq x (car --cl-var--)) > (setq --cl-var-- (+ --cl-var-- (car ...))) (setq --cl-var-- (cdr > --cl-var--))) --cl-var--)) (setq test-err (if (cdr l) > (elb-std-deviation (mapcar #'car l)))) (insert (apply #'format Something went wrong when computing the "err" values, apparently. Maybe it'll work if you increase the number of runs the NaN goes away?
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 09:59:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 05:59:19 2025 Received: from localhost ([127.0.0.1]:36398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7tMV-0003K6-LI for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:59:19 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:58611) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7tMT-0003Jd-1v for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:59:17 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-39c1ef4acf2so576864f8f.0 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 02:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745488751; x=1746093551; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eY3DdER2f+MvFoYNa3MbluouUpFYhcLzHMExU+jMqu8=; b=DL6noyhbSd4T/gZq8ISH8folFOfodLxzDTRjx1GeFIKMQwPWzwblg5EkqEzuTX7Gni mpPmMlX14H+/ypumljEvbjPTH5d33bJJ+FCcYxoMphiq/jWUVz1yqH7urmhRpEyd4MSZ nP367RqZJA9CuYV+UE1fJkhSdzBVrcr2AP99GoD8EAyj8tUPrxvTLEHxeDvNLkG8+uU0 LWOOmzT3fwtIC0nqjNi0H2sFVWqD5SbugIxKCChoi6xKhgtoI5LK+wTr8uIRBuxCUEFh 5roE9CM3guTpZtjQU55D0kZQXojxzkDXRpqczkCtfjHxVz+xBG8LItEXQPXYFljPDOzf eCKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745488751; x=1746093551; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eY3DdER2f+MvFoYNa3MbluouUpFYhcLzHMExU+jMqu8=; b=UoFboSYVJrNv/HcLymAO1mIYO4Xz8awLS2uXJBBBG+JlTDvmYkTMwW5mQ+duPspmDj nFWrWygo7zUMO8RN3WjElABVxEFvYxJGzmx2N9P2JNUyRNGd3ocb/se98vFIaPkZZxwn PJcFZ0drCe6hhybYO8lYFe732KHEJklS9l35fP89ALFd2Nve0unEdWN8LWk9JaEjLb+s GZqtIY4+ppM0QoHWbv2G0RF9s6WMUB0GilN+leiS3Sw5ktbzrmgqcfevi/SiEsdDVniE Uh6FPuxcl9EYyM8fZZzw2ITJG8tqALQSB1Rl+D4WCG0m6HpAYhMYbfR5fGH2zleQtYt1 fFYA== X-Forwarded-Encrypted: i=1; AJvYcCUgwKqSFwYk4PBj3sRj/qDSOIce6hLU8gid/5+9DfJ5Ri4StMkwdKyqSZjtlw0uyRCZEExWBw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YziU7PUWeWeom5WT4IaHUon1RGlH1WgfwAM4Tx+f7MOZjK3T9Kq KQ5zL+5NiIaDkb5kP1sQwhXk7VG5jOx6l/rBcUrq2A5pqh1Lb5sh X-Gm-Gg: ASbGncuuDiC2xfXPnvTS0DJuDowuxPwN9UsXcs1QRJRobyVsPdgvnnvnchXtBuL4qdV QmmzW4z+cyUBQyEUfQJnQLLOO85ZxBqx5lv8ew0lu0GncYT5nwJj0N6hixdaExgsjYO/Ux6+61w 1ObUfVLPEuTQ9pZn222dJn/0j6s1yXIJCsZe216q/SzoLYRamYH7ymm5hGLwpJf/XCiLJHeX9sC 0PyNXALUOSWWtLXd9mKrR+EOrpXVLbhMDemwa8vQnZHW+QNDgyuePkkSIVlD8o6axOuhQp1pXZk GZ5SsDcu6vCQ24ua+34KofkitIel6zW5FoDSwCWE0M/sV04i0z7d9Cxh2S0WY3BR2wXyx+LVpvY pWjTXBA0b+BiDGX3bOw6lKMahZWy+hs+IstO93/QOE4FrCf9ULg== X-Google-Smtp-Source: AGHT+IHMJ0MxzIhignnvrt2xqqkFf17VGv1vbmwqwJVtUlYBaDzfxobX56I/6KiJKaha8pxv7gvR4w== X-Received: by 2002:a05:6000:2283:b0:390:e8d4:6517 with SMTP id ffacd0b85a97d-3a06cf5efc9mr1572130f8f.21.1745488750862; Thu, 24 Apr 2025 02:59:10 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d532dfesm1564711f8f.63.2025.04.24.02.59.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 02:59:10 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m21pthor3n.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> <m25xitorg7.fsf@HIDDEN> <m21pthor3n.fsf@HIDDEN> Date: Thu, 24 Apr 2025 11:59:09 +0200 Message-ID: <m2wmb9namq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Pip Cet <pipcet@HIDDEN>, Helmut Eller <eller.helmut@HIDDEN>, Juri Linkov <juri@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > So, one could, theoretically store the charpos in a field of a marker > when "unchaining" it. Ugly, but doable. And one could do something practically, which I now pushed to savannah.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 09:38:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 05:38:24 2025 Received: from localhost ([127.0.0.1]:36226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7t2F-0001jP-Hr for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:38:24 -0400 Received: from mail-pj1-x1044.google.com ([2607:f8b0:4864:20::1044]:48384) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u7t2A-0001hi-J4 for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:38:20 -0400 Received: by mail-pj1-x1044.google.com with SMTP id 98e67ed59e1d1-301a4d5156aso958954a91.1 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 02:38:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745487492; x=1746092292; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QcfMngQAgbXD4ITDt4jbHaQo7z5dVA0EA66uCB4vtSc=; b=mtjrhyDLwJ6ZGHWxYKimc6sEMchqKWZFUIQIGo5vIjv99aOAtfeqnpBA/NPWG4GonL 15XyjmzNgrwR/3QBiX3BsfkUj+BwxIRqZJuwaFQ9ucJ3wvVNKmqarpgHKt/5I5g6U86h tlck02pxjFXzT1Jnu4/QYUvRbICgx6m5E1HqYLlayIhHZsH1q4FUksmKJTuKbwl7Gkqf 4VpMuJTYQY8ZxHqejbismsdkHlGVbHcBqGluEWEWmNQT1P3VP30u0q5mE0R3y879GKz8 6SmnL8ntM95uZquyYkFrA/X7r9nKkQpCgs5RIlRzK8OrwOaSEhDVwUhW2OI6PfZHDSY9 qrtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745487492; x=1746092292; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QcfMngQAgbXD4ITDt4jbHaQo7z5dVA0EA66uCB4vtSc=; b=HZJgLa7paBGpy/DZ8qBuDAERRFL/8bJdvQ42Bghc3Sz5jJfnkCbIorJZtJ1BEr31uu 4BAYfoTSz62ZS4/xouJoJfzTQkm4p64+hAYngAnIbjx+H1aQNgkxisQBkQAuGgmWeXe8 MUEpnGu5uC6OoPGGQswile02MiK0mxBlpGWVVeKsijMZAwe1pZ2kNn2W/gTWM70Fqg+R j5QTZWvwBgtEqyMWKjtNnQYS9/Tp5sZgmXsp64BusujNG/q5VoGAHidUo0WRnSn35tEX VXxAW1amZusnxbHQwCIrRWc7EN89xSfRX36+jsK3HWw2CNeHxMQ4cpwHfZMB+D1+qWhU CMHw== X-Forwarded-Encrypted: i=1; AJvYcCX5uKhUGMygmGQoqJrOk8hub6Q/XYXYD0EOPQ7mqIlvar7bBvZYDAK/xC6ssPvQNtYCjx012A==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz7mj3A/RfIwytDMZF+ev1ia0ce7W6fxRiP2jX/C/I26BcWGlL0 4WqRQqCli+oZF4dLGtGibcllZYQNLPxDAnm1Adg8zKUVHb2wcPDL X-Gm-Gg: ASbGncsEMG9MAjzOLnn8MJi6HhLT5Xc8F3AnncC2Kq+4ySSrz5Wol4X7ackHNCPr1qa +dgY+v+TPBnF3JvExH0wwJfNwiarKrdaaz6fXz9dHKGocuICak6i+5U4usYuvOCflh57Je3HooM RhLNFsTPc4o+08IqAjMDvRqhrCnGr4LJnlkWCFFUlZo8uzPGUqQmTKlTV6IZ/mjMrLG/hrlQS1M fAwmCL0URCc+FLSf8xmFgjvu3svf+r+4YqIa9adJ1AUAasOkE4IvOTRRU1Nrue/kcZSVBo89RTe 8TTmC36RIgq533hJdIoC97jTZ/FntByEmWJqlw20ew== X-Google-Smtp-Source: AGHT+IGQDkd38YJKM661NWUzzDrYleoWQ6Gd4KeZb7URltUhxQYn4ku39KdfK1TT2lA5TEJ2vK/aBA== X-Received: by 2002:a17:90b:6cb:b0:2ee:d024:e4fc with SMTP id 98e67ed59e1d1-309ed341c95mr3305022a91.33.1745487492115; Thu, 24 Apr 2025 02:38:12 -0700 (PDT) Received: from localhost ([1.7.159.71]) by smtp.gmail.com with UTF8SMTPSA id 98e67ed59e1d1-309ef03b22esm962157a91.4.2025.04.24.02.38.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 02:38:11 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2a586neq2.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> <m2a586neq2.fsf@HIDDEN> Date: Thu, 24 Apr 2025 15:08:07 +0530 Message-ID: <87frhxnbls.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, yantar92@HIDDEN, 77924 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Gerd M=C3=B6llmann = wrote: > Eli Zaretskii <eliz@HIDDEN> writes: > >> I trust you and Stefan to decide on that. I myself am not familiar >> with the elisp-benchmarks suite well enough to have an opinion that is >> of importance. From where I stand, the important part is comparing >> the current master with the branch. >> >>> Don't know about the scrolling benchmark. Is what is in elisp-benchmarks >>> enough? If not, can you please give me a bencnhmark file for what you >>> want benchmarked? >> >> I don't know whether we have it in elisp-benchmarks, but if we don't, >> then the following should be good enough: >> >> (defun scroll-up-benchmark () >> (interactive) >> (let ((oldgc gcs-done) >> (oldtime (float-time))) >> (condition-case nil (while t (scroll-up) (redisplay)) >> (error (message "GCs: %d Elapsed time: %f seconds" >> (- gcs-done oldgc) (- (float-time) oldtime)))))) >> >> Evaluate this, then invoke "M-x scroll-up-benchmark" in a large buffer >> with lots of non-ASCII characters. Compare the timings between the >> two versions of Emacs. > > elb-scroll from elisp-bechmarks is basically > > (dotimes (_ 10) > (elb-smie-mode) > (goto-char (point-min)) > (condition-case nil > (while t (scroll-up nil) (redisplay 'force)) > (end-of-buffer nil)))))) > > looks similar, but I don't know what elb-smie-mode does. elb-smie-mode's is Stefan's SMIE demo as a C major-mode AFAIU. > Seems to have something to do with prog-mode, so maybe this depends on > the test file being a C file, which might be interesting for Visuwesh. I commented out (elb-smie-mode) form in the above snippet and that showed a backtrace which I could not explain. Replacing the form with (text-mode) didn't help either. So I'm running the benchmark with that form intact, even though the file I'm scrolling through is a text file. I am running the benchmark currently, and will report the results once they are done. Debugger entered--Lisp error: (overflow-error) round(-0.0e+NaN) (let ((squares (apply #'+ (mapcar #'(lambda (x) (expt x 2)) errs)))) (rou= nd (/ (* 100 (sqrt squares)) elapsed))) (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'(lambda ... ...) e= rrs)))) (round (/ (* 100 (sqrt squares)) elapsed)))) (insert (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'... errs))= )) (round (/ (* 100 (sqrt squares)) elapsed))))) (let* ((--cl-var-- tests) (test nil) (l nil) (test-elapsed nil) (test-gcs= nil) (test-gc-elapsed nil) (test-err nil) (elapsed 0) (gcs 0) (gc-elapsed = 0) (errs nil) (--cl-var-- t)) (while (consp --cl-var--) (setq test (car --c= l-var--)) (setq l (gethash test res)) (setq test-elapsed (let* ((--cl-var--= l) (x nil) (--cl-var-- 0)) (while (consp --cl-var--) (setq x (car --cl-var= --)) (setq --cl-var-- (+ --cl-var-- (car x))) (setq --cl-var-- (cdr --cl-va= r--))) --cl-var--)) (setq test-gcs (let* ((--cl-var-- l) (x nil) (--cl-var-= - 0)) (while (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- = (+ --cl-var-- (car ...))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--)) = (setq test-gc-elapsed (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while = (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+ --cl-var--= (car ...))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--)) (setq test-er= r (if (cdr l) (elb-std-deviation (mapcar #'car l)))) (insert (apply #'forma= t "|%s|%.2f|%.2f|%d|%.2f" test (mapcar #'(lambda (x) (/ x runs)) (list (- t= est-elapsed test-gc-elapsed) test-gc-elapsed test-gcs test-elapsed)))) (ins= ert (format "|%2d%%\n" (if test-err (round (/ (* 100 test-err) test-elapsed= )) -0.0))) (setq elapsed (+ elapsed test-elapsed)) (setq gcs (+ gcs test-gc= s)) (setq gc-elapsed (+ gc-elapsed test-gc-elapsed)) (setq errs (nconc errs= (list (or test-err -0.0)))) (setq --cl-var-- (cdr --cl-var--)) (setq --cl-= var-- nil)) (insert "|-\n") (insert (apply #'format "|total|%.2f|%.2f|%d|%.= 2f" (mapcar #'(lambda (x) (/ x runs)) (list (- elapsed gc-elapsed) gc-elaps= ed gcs elapsed)))) (insert (format "|%2d%%\n" (let ((squares (apply #'+ (ma= pcar ... errs)))) (round (/ (* 100 (sqrt squares)) elapsed))))) nil) elb--display(("scroll") #<hash-table equal 0/0 0x10e69c524987 ...> 1) (while (>=3D (setq --cl-var-- (1- --cl-var--)) 0) (message "Iteration num= ber: %d" i) (let* ((--cl-var-- tests) (test nil) (entry-point nil) (--cl-va= r-- t)) (while (consp --cl-var--) (setq test (car --cl-var--)) (setq entry-= point (intern (concat "elb-" test "-entry"))) (garbage-collect) (message "R= unning %s..." test) (let ((time (condition-case err (condition-case nil ...= ...) (... ... nil)))) (if time (progn (let* (... ...) (puthash v ... v))))= ) (setq --cl-var-- (cdr --cl-var--)) (setq --cl-var-- nil)) nil) (elb--disp= lay tests res i) (setq i (+ i 1))) (let* ((runs (or runs elb-runs)) (--cl-var-- runs) (i 1)) (while (>=3D (s= etq --cl-var-- (1- --cl-var--)) 0) (message "Iteration number: %d" i) (let*= ((--cl-var-- tests) (test nil) (entry-point nil) (--cl-var-- t)) (while (c= onsp --cl-var--) (setq test (car --cl-var--)) (setq entry-point (intern (co= ncat "elb-" test "-entry"))) (garbage-collect) (message "Running %s..." tes= t) (let ((time (condition-case err ... ...))) (if time (progn (let* ... ...= )))) (setq --cl-var-- (cdr --cl-var--)) (setq --cl-var-- nil)) nil) (elb--d= isplay tests res i) (setq i (+ i 1))) nil) (let ((tests (let ((names 'nil)) (mapatoms #'(lambda (s) (let ... ...))) = (sort names #'string-lessp)))) (let* ((runs (or runs elb-runs)) (--cl-var--= runs) (i 1)) (while (>=3D (setq --cl-var-- (1- --cl-var--)) 0) (message "I= teration number: %d" i) (let* ((--cl-var-- tests) (test nil) (entry-point n= il) (--cl-var-- t)) (while (consp --cl-var--) (setq test (car --cl-var--)) = (setq entry-point (intern (concat "elb-" test "-entry"))) (garbage-collect)= (message "Running %s..." test) (let ((time ...)) (if time (progn ...))) (s= etq --cl-var-- (cdr --cl-var--)) (setq --cl-var-- nil)) nil) (elb--display = tests res i) (setq i (+ i 1))) nil)) (let* ((native-comp-speed elb-speed) (compilation-safety elb-safety) (com= pile-function (if (featurep 'native-compile) #'native-compile #'byte-compil= e-file)) (res (make-hash-table :test #'equal)) (sources (directory-files el= b-bench-directory t "\\.el\\'")) (test-sources (if selector (let* ((--cl-va= r-- sources) (f nil) (--cl-var-- nil)) (while (consp --cl-var--) (setq f (c= ar --cl-var--)) (if (string-match selector f) (progn ...)) (setq --cl-var--= (cdr --cl-var--))) (nreverse --cl-var--)) sources))) (if recompile (progn = (mapc #'(lambda (f) (message "Compiling... %s" f) (funcall compile-function= f)) test-sources))) (mapc #'(lambda (file) (condition-case err (load file)= ((debug error) (message "Error loading: %S" err) nil))) (mapcar (if (and (= featurep 'native-compile) (fboundp 'comp-el-to-eln-filename)) #'comp-el-to-= eln-filename #'file-name-sans-extension) test-sources)) (let ((tests (let (= (names 'nil)) (mapatoms #'(lambda ... ...)) (sort names #'string-lessp)))) = (let* ((runs (or runs elb-runs)) (--cl-var-- runs) (i 1)) (while (>=3D (set= q --cl-var-- (1- --cl-var--)) 0) (message "Iteration number: %d" i) (let* (= (--cl-var-- tests) (test nil) (entry-point nil) (--cl-var-- t)) (while (con= sp --cl-var--) (setq test (car --cl-var--)) (setq entry-point (intern ...))= (garbage-collect) (message "Running %s..." test) (let (...) (if time ...))= (setq --cl-var-- (cdr --cl-var--)) (setq --cl-var-- nil)) nil) (elb--displ= ay tests res i) (setq i (+ i 1))) nil))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list 'elisp-be= nchmarks-run (+ 3 (length --cl-rest--))))) (let* ((native-comp-speed elb-sp= eed) (compilation-safety elb-safety) (compile-function (if (featurep 'nativ= e-compile) #'native-compile #'byte-compile-file)) (res (make-hash-table :te= st #'equal)) (sources (directory-files elb-bench-directory t "\\.el\\'")) (= test-sources (if selector (let* ((--cl-var-- sources) (f nil) (--cl-var-- n= il)) (while (consp --cl-var--) (setq f ...) (if ... ...) (setq --cl-var-- .= ..)) (nreverse --cl-var--)) sources))) (if recompile (progn (mapc #'(lambda= (f) (message "Compiling... %s" f) (funcall compile-function f)) test-sourc= es))) (mapc #'(lambda (file) (condition-case err (load file) ((debug error)= (message "Error loading: %S" err) nil))) (mapcar (if (and (featurep 'nativ= e-compile) (fboundp 'comp-el-to-eln-filename)) #'comp-el-to-eln-filename #'= file-name-sans-extension) test-sources)) (let ((tests (let ((names ...)) (m= apatoms #'...) (sort names #'string-lessp)))) (let* ((runs (or runs elb-run= s)) (--cl-var-- runs) (i 1)) (while (>=3D (setq --cl-var-- (1- --cl-var--))= 0) (message "Iteration number: %d" i) (let* ((--cl-var-- tests) (test nil)= (entry-point nil) (--cl-var-- t)) (while (consp --cl-var--) (setq test ...= ) (setq entry-point ...) (garbage-collect) (message "Running %s..." test) (= let ... ...) (setq --cl-var-- ...) (setq --cl-var-- nil)) nil) (elb--displa= y tests res i) (setq i (+ i 1))) nil)))) (let* ((recompile (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl= -rest-- (cdr --cl-rest--)))) t)) (runs (car-safe (prog1 --cl-rest-- (setq -= -cl-rest-- (cdr --cl-rest--)))))) (progn (if --cl-rest-- (signal 'wrong-num= ber-of-arguments (list 'elisp-benchmarks-run (+ 3 (length --cl-rest--))))) = (let* ((native-comp-speed elb-speed) (compilation-safety elb-safety) (compi= le-function (if (featurep 'native-compile) #'native-compile #'byte-compile-= file)) (res (make-hash-table :test #'equal)) (sources (directory-files elb-= bench-directory t "\\.el\\'")) (test-sources (if selector (let* (... ... ..= .) (while ... ... ... ...) (nreverse --cl-var--)) sources))) (if recompile = (progn (mapc #'(lambda ... ... ...) test-sources))) (mapc #'(lambda (file) = (condition-case err (load file) (... ... nil))) (mapcar (if (and (featurep = ...) (fboundp ...)) #'comp-el-to-eln-filename #'file-name-sans-extension) t= est-sources)) (let ((tests (let (...) (mapatoms ...) (sort names ...)))) (l= et* ((runs (or runs elb-runs)) (--cl-var-- runs) (i 1)) (while (>=3D (setq = --cl-var-- ...) 0) (message "Iteration number: %d" i) (let* (... ... ... ..= .) (while ... ... ... ... ... ... ... ...) nil) (elb--display tests res i) = (setq i (+ i 1))) nil))))) elisp-benchmarks-run("elb-scroll" t 100) (progn (elisp-benchmarks-run "elb-scroll" t 100)) eval((progn (elisp-benchmarks-run "elb-scroll" t 100)) t) elisp--eval-last-sexp(nil) #f(compiled-function () #<bytecode 0xf3e77a510d12>)() handler-bind-1(#f(compiled-function () #<bytecode 0xf3e77a510d12>) (error= ) eval-expression--debug) eval-last-sexp(nil) funcall-interactively(eval-last-sexp nil) call-interactively(eval-last-sexp nil nil) command-execute(eval-last-sexp)
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 09:18:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 05:18:16 2025 Received: from localhost ([127.0.0.1]:35974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7sim-0008O1-41 for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:18:16 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:61697) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7sii-0008NO-KA for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:18:13 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-39c266c2dd5so811012f8f.3 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 02:18:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745486286; x=1746091086; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LtgcemCM43s1/LgT3PX8uc69O/iQX5xxHBlZ9nM9G0Q=; b=V9fEGVgs+RzdMfhUC2YxfHkFZZIuCIlO5mJJ4cjzSLeVXPHIJAyxIgSPkmXg9WtcYt q86AdAiNh5b9OYIMCbdgcBRLxeEqEoKDty0n91hgmWrnO1nkU1/T40wjsPP8k7gy4g7q 3YUMtimIAh3x96MLH+WnJ3sg+IRGPW0lNqOBuErBLa9fjUZW6svC7GudIifrV1aqS0k2 3TBkX+tpD+tiyfsMs8+buxD0ybk0yWRTpHyeGexx1XFXfngLA8hb+1KTc7eEKyFF+uD/ ixBreQ1TTvNj6iJhKSdYA0Tazc7TzrCSSPDwZnmQrmIv4Ga97YGawrQsmbkqZ3NNCxR7 oGIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745486286; x=1746091086; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LtgcemCM43s1/LgT3PX8uc69O/iQX5xxHBlZ9nM9G0Q=; b=M3CSu9O4jMinfy+YdOXIAcPxyRsHbymdLnGBfNT7kHIzI/tt6EQOBkLrD1B79lAwKr zBKz8iEp7zJOZaXEWIRF8P5RlRIhUAM/CCto8N8i9cea1geFDCKjRG5NLCft1oTHcjqF 6QnbFSTdkQX96r48mriCzYlY4Pi+Rw/mEY0hZUmFEXLnfTTwNvjTDiWYU9xAbNekGmcp 1uwZ0r85BJpJHf/sk/2rw4f9rDFNjANitNEJujngti0KV4dP/LYeTPlndDr54yFyVsi5 tGBhg12Up23oUoqoRSdraP4F0FOv+L9qIw6K58gO0pcdIhRRBAxoWQfwyckACzoI3oTW MlzQ== X-Forwarded-Encrypted: i=1; AJvYcCXRCMVd7YRu9+3oCd24tAgWWS24nSURJ/A2Oy2uC7U7b+Xt5TwoeMn9h7SqcDFScVbVoorpjw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw2siS+S+GDyocSeXRKqXtEXt7158ZlezNUoEgI0MBiPsoCfgV9 6C5906d635L4iUUGE2ur12fkahMnjeviPNDKGW9qgU8FrZpSVTp2aSYfC+SU X-Gm-Gg: ASbGncsm7368TD5zkngP1lCAjo/n79XZxGftU8pv9myprXXkUFhwc/uGpokmTfUzUyX U+GdEWQbyYZMKi3TimXGdqFM5Sgma4sCXu0h6I2PJY+76+ZBca5O6kqnBJPXF+SlVD3maAfBVmo txXNvRfdG3qTLtAvshuQeh7tg/rTs5KzTZhr2POSw4gp+bohub393ZFWVtIMfTwO/CQ81gE7dII qPYe/BEQ6/KIknkCprgQ0nmTtUUccKuj8mCul76uvB+FAS2lhNtWIj7iEYBNgYDiu1MvyWyfOm9 O/R+bzxdV4V2wH48dVQ7OLNT3WMWJVEKifKc2WbUDEv2b5TocXGcuOhYucXWFTCYHXDjYJWH2GN MuOATsHVs8KxGp86+a3t+NlWDqtreamAo1Pj2huLlza0n94FKOw== X-Google-Smtp-Source: AGHT+IFW5p1JNLZd6mJt/SrYTxZEswqWshb5fdtdmT3K2brpIAVYpFyXYfzdnlKc6VQWdCEL2po0kQ== X-Received: by 2002:a05:6000:1787:b0:38b:d7d2:12f6 with SMTP id ffacd0b85a97d-3a06cf4b720mr1424477f8f.2.1745486286390; Thu, 24 Apr 2025 02:18:06 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d4c30d7sm1426875f8f.44.2025.04.24.02.18.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 02:18:06 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m25xitorg7.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> <m25xitorg7.fsf@HIDDEN> Date: Thu, 24 Apr 2025 11:18:04 +0200 Message-ID: <m21pthor3n.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Pip Cet <pipcet@HIDDEN>, Helmut Eller <eller.helmut@HIDDEN>, Juri Linkov <juri@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > martin rudalics <rudalics@HIDDEN> writes: > >>> BTW, during my rebasing I noticed the following incompatibility: >>> >>> commit 89ad510b2ebd5ed3ed8477e4a45ada3402bcedca >>> Author: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >>> Date: Thu Apr 17 08:42:52 2025 +0200 >>> >>> marker-vector.c: Move marker's position info to the array >>> >>> makes it "impossible" to implement `marker-last-position`. >> >> What would 'markerp' then return for a marker whose buffer has been >> killed? The idea of 'marker-last-position' is that if some agent (like >> a tab bar entry) keeps a reference to a killed buffer, that buffer >> cannot be collected and neither its markers, although the latter have >> been unchained already. =E2=80=98marker-position=E2=80=99 would always = return nil for >> such a marker but 'marker-last-position' would have worked in the past. >> >>> AFAICT this function is not used outside of Emacs at all (based on >>> a search of all *ELPA packages), but it *is* used in >>> `window--state-put-2`, since the following commit: >>> >>> commit 912e37b811107768e0cb3bc95184177f817dbdb2 >>> Author: Martin Rudalics <rudalics@HIDDEN> >>> Date: Mon Mar 4 10:33:49 2024 +0100 >>> >>> Fix 'set-window-configuration' and 'window-state-put' >>> >>> What's the impact of breaking `marker-last-position`? >> >> If 'window-restore-killed-buffer-windows' is a function that tries to >> resurrect a killed buffer, it could not derive the position of the start >> and point position of the buffer in that window. So AFAICT the function >> 'tab-bar-select-restore-windows' would be affected. Juri can tell more. >> >> martin > > Hm, that might be an unsolvable problem with igc, actually. At least I > don't know ATM how it could be solved. > > Let me try to explain. The function below is what igc uses to scan a > marker vector and remove stale references (weak references). It's from > my Emacs, not from feature/igc, but that doesn't play a role. the > situation is the same here and there. > > igc.c: > 2136 static mps_res_t > 2137 fix_marker_vector (mps_ss_t ss, struct Lisp_Vector *v) > 2138 { > 2139 MPS_SCAN_BEGIN (ss) > 2140 { > 2141 const ptrdiff_t max_entry =3D XFIXNUM (v->contents[MARKER_VECTO= R_MAX_ENTRY]); > 2142 for (ptrdiff_t e =3D MARKER_VECTOR_HEADER_SIZE; > 2143 e <=3D max_entry; e +=3D MARKER_VECTOR_ENTRY_SIZE) > 2144 { > 2145 /* Note that we cannot access anything of a marker here bec= ause > 2146 that is not allowed by MPS while scanning an unrelated > 2147 object. This includes MARKERP because that accesses the > 2148 header of a marker. */ > 2149 Lisp_Object *p =3D &v->contents[e + MARKER_VECTOR_OFFSET_MA= RKER]; > 2150 if (!NILP (*p) && !FIXNUMP (*p)) > 2151 { > 2152 IGC_FIX12_OBJ (ss, p); > 2153 if (NILP (*p)) > 2154 { > 2155 /* Changed to nil means the weak reference was to a= dead > 2156 marker. Put on free-list. */ > 2157 v->contents[e] =3D v->contents[MARKER_VECTOR_FREE]; > 2158 v->contents[MARKER_VECTOR_FREE] =3D make_fixnum (e); > 2159 } > 2160 } > 2161 } > 2162 } > 2163 MPS_SCAN_END (ss); > 2164 return MPS_RES_OK; > 2165 } > > The problem is that MPS doesn't allow accessing other MPS-managed > objects while working on the marker vector. See the comment at line 2145. > > Markers are such MPS-managed objects, so we can't read or change members > of a marker here, not the buffer, not something else. > > That restriction is very real, it suffices to add a MARKERP there to > make things literally fall apart when a marker object happens to be > behind a memory barrier, for example. > > Like I said, no idea. I've added Helmut and Pip in CC. No wait, not a problem :-). If someone from Lisp has that marker in his hands, it's of course not dead. So, sorry for the confusion. So, one could, theoretically store the charpos in a field of a marker when "unchaining" it. Ugly, but doable.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 09:10:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 05:10:43 2025 Received: from localhost ([127.0.0.1]:35915 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7sbS-0007nV-UX for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:10:43 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:53615) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7sbQ-0007n0-LL for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 05:10:41 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-391342fc0b5so558966f8f.3 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 02:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745485834; x=1746090634; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=125GVzrBJlY54kM198a222PxiPAjkXqJbj3YihxG0cA=; b=X5kzcbgPQOwpiHQBNf8YgeIS+iTUAWEIPe0hHAYbOncKSmyQxxbzNy5nffPUzjt3Gq 688cnFsM6QGP1fNICj1xOYDWszZovKPFp7UesHLWTzMYDHvZAK8b6Ua/L0IZ+7CXb+Nh 8/5ItOwUdJ0Q/krAsxm/oRcDPWm5AU0sGZKDK/iRfYRKBRIDA+l/yivqO2Go+DB5YB+L RLZXoR9OiZrwdL2pG3Fi7oI1DONt5dwCCEMc5eaW2YljL6v06q73cjppHf73RC4LEdar XszJxqFbffFRkY72OebLB09pEZjE7Zd4j8y9y7JYB98veCYDcpP86DLWpn/Out45R9vm L4wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745485834; x=1746090634; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=125GVzrBJlY54kM198a222PxiPAjkXqJbj3YihxG0cA=; b=b6u3hMvIVFcIiIUW7CnTu4km+jhCoA0LYyUSqSltGF3uTm2vZ4oOp3OP+hd+ZoOk+i kvolmo6ebyUMJck4OSQt7MjBrhFQyARJupt37TdljuMYIGnUBocoQjc7bm+0BbKH/3Ui FFLTzjVu9x/7kCHccua/dx9V2buRO/OT6k+axZtW/zN3mLFBTYC9uKxJPa1M6Xwgr2L4 RwIfibIU7u0+2U/x99tMuvt4pGA4y7YP0ScaUvnoUpEfulZicgZ9vNwawVbRyWYNmUUa wohnyutF36sBSMsN1omPHckPh1KTXHReT1LQROyp6OhszUqYVQQVtooMK7+XXpE91IcZ DKgw== X-Forwarded-Encrypted: i=1; AJvYcCVBlVGpNqgyPWuPMiz+LQeuR00tdbWQc0NN6JKbW1o3wSXf2YOnyPUxqh7BezlOO7dwoaSAXA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyijWx2PKGnWEM+eSYMJfEX7P7nSjKgzQB9htgoiAYLSLwCM/xs ixl0tNAthNuDX2jrQc8BogsCXZLXgUyHY+rpf6IOr2lKH4d8WJO6 X-Gm-Gg: ASbGnct1jkVOWFfqFAqP2Zwa0+y5z7sODY39qlCs3sg3YF35CPFmwWnahCeiqv47173 ke1Tb4uklhOLSjcsHVI6po8F5h+usrL6hE0D6++PQmmNyoyjWpunGx3YF86nk+Spv63Un96rvNS QEtSGpxEYPWBPu9RSXa1JlqFvFkfjonW++QjRhQCTsk2uJsbSRGr7KXajpPqJmSd6oqoMSv7D6J fdW5w68t/j9e89sJNjFq1+Et3FfIvOY35poJlq+DNzkOhTuexodsUQ4DjpTj4325Z0c4JMyKNjH LBz8G4yYJPX75s+nMiQ0U4XEOPmdhx1bSpRT0o44DHzsPpdcQWx5j2N8o8CVqojh79U0H2CqHHs WYH5T7eXlKoSuaTATubGoxhc3gK7rBnbEo71gAAxvRdLo+VxFpA== X-Google-Smtp-Source: AGHT+IGrQj0qxj7zPg+sIkN3KDJEvLqUOx8tMSgndteSIb2LfKKHCxcjUJCm+bM0rTXwv4wBBJI6Sg== X-Received: by 2002:a05:6000:402a:b0:39c:266c:400a with SMTP id ffacd0b85a97d-3a06cfc5d7amr1518049f8f.50.1745485833898; Thu, 24 Apr 2025 02:10:33 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d4a815bsm1398346f8f.8.2025.04.24.02.10.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 02:10:33 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> Date: Thu, 24 Apr 2025 11:10:32 +0200 Message-ID: <m25xitorg7.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Pip Cet <pipcet@HIDDEN>, Helmut Eller <eller.helmut@HIDDEN>, Juri Linkov <juri@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> BTW, during my rebasing I noticed the following incompatibility: >> >> commit 89ad510b2ebd5ed3ed8477e4a45ada3402bcedca >> Author: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Date: Thu Apr 17 08:42:52 2025 +0200 >> >> marker-vector.c: Move marker's position info to the array >> >> makes it "impossible" to implement `marker-last-position`. > > What would 'markerp' then return for a marker whose buffer has been > killed? The idea of 'marker-last-position' is that if some agent (like > a tab bar entry) keeps a reference to a killed buffer, that buffer > cannot be collected and neither its markers, although the latter have > been unchained already. =E2=80=98marker-position=E2=80=99 would always r= eturn nil for > such a marker but 'marker-last-position' would have worked in the past. > >> AFAICT this function is not used outside of Emacs at all (based on >> a search of all *ELPA packages), but it *is* used in >> `window--state-put-2`, since the following commit: >> >> commit 912e37b811107768e0cb3bc95184177f817dbdb2 >> Author: Martin Rudalics <rudalics@HIDDEN> >> Date: Mon Mar 4 10:33:49 2024 +0100 >> >> Fix 'set-window-configuration' and 'window-state-put' >> >> What's the impact of breaking `marker-last-position`? > > If 'window-restore-killed-buffer-windows' is a function that tries to > resurrect a killed buffer, it could not derive the position of the start > and point position of the buffer in that window. So AFAICT the function > 'tab-bar-select-restore-windows' would be affected. Juri can tell more. > > martin Hm, that might be an unsolvable problem with igc, actually. At least I don't know ATM how it could be solved. Let me try to explain. The function below is what igc uses to scan a marker vector and remove stale references (weak references). It's from my Emacs, not from feature/igc, but that doesn't play a role. the situation is the same here and there. igc.c: 2136 static mps_res_t 2137 fix_marker_vector (mps_ss_t ss, struct Lisp_Vector *v) 2138 { 2139 MPS_SCAN_BEGIN (ss) 2140 { 2141 const ptrdiff_t max_entry =3D XFIXNUM (v->contents[MARKER_VECTOR_= MAX_ENTRY]); 2142 for (ptrdiff_t e =3D MARKER_VECTOR_HEADER_SIZE; 2143 e <=3D max_entry; e +=3D MARKER_VECTOR_ENTRY_SIZE) 2144 { 2145 /* Note that we cannot access anything of a marker here becau= se 2146 that is not allowed by MPS while scanning an unrelated 2147 object. This includes MARKERP because that accesses the 2148 header of a marker. */ 2149 Lisp_Object *p =3D &v->contents[e + MARKER_VECTOR_OFFSET_MARK= ER]; 2150 if (!NILP (*p) && !FIXNUMP (*p)) 2151 { 2152 IGC_FIX12_OBJ (ss, p); 2153 if (NILP (*p)) 2154 { 2155 /* Changed to nil means the weak reference was to a d= ead 2156 marker. Put on free-list. */ 2157 v->contents[e] =3D v->contents[MARKER_VECTOR_FREE]; 2158 v->contents[MARKER_VECTOR_FREE] =3D make_fixnum (e); 2159 } 2160 } 2161 } 2162 } 2163 MPS_SCAN_END (ss); 2164 return MPS_RES_OK; 2165 } The problem is that MPS doesn't allow accessing other MPS-managed objects while working on the marker vector. See the comment at line 2145. Markers are such MPS-managed objects, so we can't read or change members of a marker here, not the buffer, not something else. That restriction is very real, it suffices to add a MARKERP there to make things literally fall apart when a marker object happens to be behind a memory barrier, for example. Like I said, no idea. I've added Helmut and Pip in CC.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 08:31:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 04:30:59 2025 Received: from localhost ([127.0.0.1]:35550 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7ryz-0004ES-Hm for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 04:30:59 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:43239) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7ryv-0004Ci-Pw for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 04:30:54 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-43cf680d351so11303255e9.0 for <77924 <at> debbugs.gnu.org>; Thu, 24 Apr 2025 01:30:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745483447; x=1746088247; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=4Egl1x/w85M7L233AfkuFEpceodBWSIi/agSDGF4hjs=; b=EUr7w5bgurJJLgJgiFW5Fxnp4C84qZyBj30Ngr6t60zzP0b8+u2akCbZpkmc3kGwcd Je9hmq0U13sR5yJvVmgDqFQ683Bov2gaGsd6KVlcN/FnEiWoj9nDVGJ4kIokUiEj0Wso KSE1VN8Q27kXXl3MWAr1I7aZmLPZ0hhXTze4R8QUb1M5NXY2gvYSU5OaKbuU6UVEYVZo LKUIfswhv7UV8xV/qZC8GgvljGu5iSxqhz4yHIK2sh500HXumO8EtbvagNLsj7cqvh9U EmEa5YlXhg1X3uiwxekPOzi+VoOu9T1pRZF9mfBG05yHRubCfa522y/ApVMdAOaS2mc3 E+cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745483447; x=1746088247; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4Egl1x/w85M7L233AfkuFEpceodBWSIi/agSDGF4hjs=; b=LzeRO1GF2oSJr2U5uFlG8+5V7Q49/bJsRo1xnc4Nu/07EfdwC4R6PjjPSZxLTXjU/+ rapoZYM76vq++Bfl+hg3IZm5sMRCP4rLkH4HSfIfkfNdGPbFemD5IOmsWf1s7aNCQZYR PsFtTTkMAqnhGHZ30jJCcdFK/6SVPATWmn+V949m4jrfRBjsQ/1eUGwk2qnCmhDTKvZB zwGdz86ewfV8py6yPDLaSr837imnY7RYnFO80kRHRO52FF4yt1ivUMh/RCP98jaLFsvB FKyDWh37+fQhlTyMTfxsMRPV8k5InqlrU7hu/V6fotkI9BJZ03LW3Dit5PW98HMuONIl +WzA== X-Forwarded-Encrypted: i=1; AJvYcCWaVD/qzUAiz9L28/hwFpn32XrXE8O3MoBUs8GcKIakH3+4GfdGjMyxSd/a3w3YJX9AOZBJaw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz9zlTx6xQiWEKy5tIYIovwOlKmMJGVvOe6RzSxm5p1pPOE+boD nzK0cwBVE9KEQFoudD+K6DkDdQQyulYUg3QozwMHIUEImdRFV2L7 X-Gm-Gg: ASbGncvEpO/3YJyM+PLRiwsJpSCOFH4OXFIE/Dxy4H8ah0qwAzYoNyy+1HBjQ5cvGNJ iP2QMG54H4XUCsln9ckx3B6KQA6cb9ooXEXwUVgl5VUFMMBvr1W4zeJ+n+4g4tg/Kk+VCOZxc/W rFD6WNXinVSuzqnjadZAFF4tFzLOPrkbHLv/lchdb7Au3PN6Z3tJUvsswFssN5a3x44C0CHBg0W Q3nb7wL+RPra25dJkrXCLchlm/7nFqdBfJV/sXSllAPr1tghPhSwSokn3oFZeFhxM3zvBFPNEf+ aQ4KnjlVJKLeFM9weQWqDVw+emRWTFSAcPgx9GxxGpUesEL60/YejX0W4BytASK3+QhvBBCHyWu wcRR1e8WE2bkcnMF4/Ytmtzp5m2X99z7ESsmK1AZGda8r/38H+g== X-Google-Smtp-Source: AGHT+IFe9ocf36yBoA+fIm6zeUZEY79jWmxrABtrt9Vrdo791PSjgVQ3jP93M5YnvdKxoiC8GrqDWw== X-Received: by 2002:a05:600c:4711:b0:439:5f04:4f8d with SMTP id 5b1f17b1804b1-4409c4bd615mr11211655e9.12.1745483447169; Thu, 24 Apr 2025 01:30:47 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4409d2d86f7sm10864065e9.32.2025.04.24.01.30.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 01:30:46 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <86cyd2yp45.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> <86cyd2yp45.fsf@HIDDEN> Date: Thu, 24 Apr 2025 10:30:45 +0200 Message-ID: <m2a586neq2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: yantar92@HIDDEN, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > I trust you and Stefan to decide on that. I myself am not familiar > with the elisp-benchmarks suite well enough to have an opinion that is > of importance. From where I stand, the important part is comparing > the current master with the branch. > >> Don't know about the scrolling benchmark. Is what is in elisp-benchmarks >> enough? If not, can you please give me a bencnhmark file for what you >> want benchmarked? > > I don't know whether we have it in elisp-benchmarks, but if we don't, > then the following should be good enough: > > (defun scroll-up-benchmark () > (interactive) > (let ((oldgc gcs-done) > (oldtime (float-time))) > (condition-case nil (while t (scroll-up) (redisplay)) > (error (message "GCs: %d Elapsed time: %f seconds" > (- gcs-done oldgc) (- (float-time) oldtime)))))) > > Evaluate this, then invoke "M-x scroll-up-benchmark" in a large buffer > with lots of non-ASCII characters. Compare the timings between the > two versions of Emacs. elb-scroll from elisp-bechmarks is basically (dotimes (_ 10) (elb-smie-mode) (goto-char (point-min)) (condition-case nil (while t (scroll-up nil) (redisplay 'force)) (end-of-buffer nil)))))) looks similar, but I don't know what elb-smie-mode does. Seems to have something to do with prog-mode, so maybe this depends on the test file being a C file, which might be interesting for Visuwesh.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 08:01:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 04:01:49 2025 Received: from localhost ([127.0.0.1]:35250 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7rWm-0001Z5-Jl for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 04:01:48 -0400 Received: from mout.gmx.net ([212.227.17.20]:36935) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1u7rWk-0001Yq-9I for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 04:01:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1745481689; x=1746086489; i=rudalics@HIDDEN; bh=6GLzlAx5aCBFgJ6OJthQSlO6JA+GoCXHvWj/Zm8f4ig=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=f2oTR2J9BWooxmeHIXzx24Gw8QPTgjhd54I6O2KpRSKPlj5IFHZk18TTpTf5K3Yj XQKBQcILmUiV9ZmlbofmQh4CyzaPoGAJt/FC6bxZSb0Mr74Bi6tJceqBetxSqFDS2 Zvbv0GHKqxnyg+jbUouAvFpzVUmv+zjzzmYPEEiZqVkuH5YFzEFroKX4F2F8MyvKV cvWNXA/tzlUH59fZ1uEPnJQuA0eFr8OKIOvXswoDWYRfx40tOKV345YIMf91iTTXN dheJRNqBsCaUrIfkiq0vIYJTvI6xySfrgEEsDJQxdqxnEe6XNeNh2fHECof/kbrNI PyLeblQi1ZBZlfhFkA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.125.249.94]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MEUz4-1uJNqc0NWU-00ET9P; Thu, 24 Apr 2025 10:01:28 +0200 Message-ID: <0b0d5bf1-bf98-4f89-87d6-de7e8c5dc291@HIDDEN> Date: Thu, 24 Apr 2025 10:01:23 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation To: Stefan Monnier <monnier@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:CPqpV+tf5DFw1NQb2DSJc/ZTfILE85RrvFdzAUsNQnn42gWDIGG aHBhwLlc1cjpsx9r7e9J79hBW7E4t4FS6ANBIGcbMlStSQ2diAHlc8DGCqleH+6kk7c+B4H eQejdzCJO3GTYpUppzU0aVA6vutqu8OJ44MjpdVubLM7HBzPW1Zt5BSE+zHioY2a/gLyiZA loVyIGrSXHHGVpSQeCRYw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:IQ5BXSliD1s=;bOzTKkCHqlLGrE0R/Puftf9dmLF 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 iLgw0lUMq9GzQ= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) ID4gQlRXLCBkdXJpbmcgbXkgcmViYXNpbmcgSSBub3RpY2VkIHRoZSBmb2xsb3dpbmcgaW5j b21wYXRpYmlsaXR5Og0KID4NCiA+ICAgICAgY29tbWl0IDg5YWQ1MTBiMmViZDVlZDNlZDg0 NzdlNGE0NWFkYTM0MDJiY2VkY2ENCiA+ICAgICAgQXV0aG9yOiBHZXJkIE3DtmxsbWFubiA8 Z2VyZC5tb2VsbG1hbm5AZ21haWwuY29tPg0KID4gICAgICBEYXRlOiAgIFRodSBBcHIgMTcg MDg6NDI6NTIgMjAyNSArMDIwMA0KID4NCiA+ICAgICAgICAgIG1hcmtlci12ZWN0b3IuYzog TW92ZSBtYXJrZXIncyBwb3NpdGlvbiBpbmZvIHRvIHRoZSBhcnJheQ0KID4NCiA+IG1ha2Vz IGl0ICJpbXBvc3NpYmxlIiB0byBpbXBsZW1lbnQgYG1hcmtlci1sYXN0LXBvc2l0aW9uYC4N Cg0KV2hhdCB3b3VsZCAnbWFya2VycCcgdGhlbiByZXR1cm4gZm9yIGEgbWFya2VyIHdob3Nl IGJ1ZmZlciBoYXMgYmVlbg0Ka2lsbGVkPyAgVGhlIGlkZWEgb2YgJ21hcmtlci1sYXN0LXBv c2l0aW9uJyBpcyB0aGF0IGlmIHNvbWUgYWdlbnQgKGxpa2UNCmEgdGFiIGJhciBlbnRyeSkg a2VlcHMgYSByZWZlcmVuY2UgdG8gYSBraWxsZWQgYnVmZmVyLCB0aGF0IGJ1ZmZlcg0KY2Fu bm90IGJlIGNvbGxlY3RlZCBhbmQgbmVpdGhlciBpdHMgbWFya2VycywgYWx0aG91Z2ggdGhl IGxhdHRlciBoYXZlDQpiZWVuIHVuY2hhaW5lZCBhbHJlYWR5LiAg4oCYbWFya2VyLXBvc2l0 aW9u4oCZIHdvdWxkIGFsd2F5cyByZXR1cm4gbmlsIGZvcg0Kc3VjaCBhIG1hcmtlciBidXQg J21hcmtlci1sYXN0LXBvc2l0aW9uJyB3b3VsZCBoYXZlIHdvcmtlZCBpbiB0aGUgcGFzdC4N Cg0KID4gQUZBSUNUIHRoaXMgZnVuY3Rpb24gaXMgbm90IHVzZWQgb3V0c2lkZSBvZiBFbWFj cyBhdCBhbGwgKGJhc2VkIG9uDQogPiBhIHNlYXJjaCBvZiBhbGwgKkVMUEEgcGFja2FnZXMp LCBidXQgaXQgKmlzKiB1c2VkIGluDQogPiBgd2luZG93LS1zdGF0ZS1wdXQtMmAsIHNpbmNl IHRoZSBmb2xsb3dpbmcgY29tbWl0Og0KID4NCiA+ICAgICAgY29tbWl0IDkxMmUzN2I4MTEx MDc3NjhlMGNiM2JjOTUxODQxNzdmODE3ZGJkYjINCiA+ICAgICAgQXV0aG9yOiBNYXJ0aW4g UnVkYWxpY3MgPHJ1ZGFsaWNzQGdteC5hdD4NCiA+ICAgICAgRGF0ZTogICBNb24gTWFyIDQg MTA6MzM6NDkgMjAyNCArMDEwMA0KID4NCiA+ICAgICAgICAgIEZpeCAnc2V0LXdpbmRvdy1j b25maWd1cmF0aW9uJyBhbmQgJ3dpbmRvdy1zdGF0ZS1wdXQnDQogPg0KID4gV2hhdCdzIHRo ZSBpbXBhY3Qgb2YgYnJlYWtpbmcgYG1hcmtlci1sYXN0LXBvc2l0aW9uYD8NCg0KSWYgJ3dp bmRvdy1yZXN0b3JlLWtpbGxlZC1idWZmZXItd2luZG93cycgaXMgYSBmdW5jdGlvbiB0aGF0 IHRyaWVzIHRvDQpyZXN1cnJlY3QgYSBraWxsZWQgYnVmZmVyLCBpdCBjb3VsZCBub3QgZGVy aXZlIHRoZSBwb3NpdGlvbiBvZiB0aGUgc3RhcnQNCmFuZCBwb2ludCBwb3NpdGlvbiBvZiB0 aGUgYnVmZmVyIGluIHRoYXQgd2luZG93LiAgU28gQUZBSUNUIHRoZSBmdW5jdGlvbg0KJ3Rh Yi1iYXItc2VsZWN0LXJlc3RvcmUtd2luZG93cycgd291bGQgYmUgYWZmZWN0ZWQuICBKdXJp IGNhbiB0ZWxsIG1vcmUuDQoNCm1hcnRpbg0K
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 07:57:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 03:57:19 2025 Received: from localhost ([127.0.0.1]:35200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7rSQ-0001DA-Ka for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 03:57:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55634) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7rSN-0001Cr-Fz for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 03:57:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7rSH-0007IM-Dq; Thu, 24 Apr 2025 03:57:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=7rA89W0VcncexLZfhAUyNga85DsLLehjTxhjklbMsQk=; b=HWFCpUL+Oh6S6QTx6BA4 fq6APuPnS+52CnDppFD93cBSgn9sSfhBlWmx2/sMjDXcNdL7uhDHvrPXlOImpBurf1mmDlgoB+HEn BqIGFrFHUH/imPKYqYfqzk4oarV+btpMwD6T3/nqJui+la+gNbxw/IjKsdoa9C01awyIOBYmYRgOe I+he13xJW3G5IAwgK0HZl5JaG5hy4IiTFT6eESk/3dXWCLl4OJAl705i+jnYQZ0SKOKGu2HqdOgYb eiOfLfZq4FLAFJzz1IX71myaNFIdQf1z4FCBsj29BCDkoo0QuZnJqu8lWMXEZgvkxmblJsyjuxPNm M2OAj7ZsXjMIXQ==; Date: Thu, 24 Apr 2025 10:57:00 +0300 Message-Id: <86a586yotv.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2ecxinkcd.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Thu, 24 Apr 2025 08:29:22 +0200) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <87plh2m72a.fsf@HIDDEN> <m2ecxinkcd.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: yantar92@HIDDEN, stefankangas@HIDDEN, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, visuweshm@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier > <monnier@HIDDEN>, yantar92@HIDDEN, stefankangas@HIDDEN, > 77924 <at> debbugs.gnu.org > Date: Thu, 24 Apr 2025 08:29:22 +0200 > > > Is there a standard benchmark code that I can try for this? I have such > > a large HTML file with Tamil text, and I can scroll through the buffer > > produced by shr-render-buffer. > > The elisp-benchmarks package has an elb-scroll.el, in its benchmarks > directory. AFAICT, that loads an xmenu.c from the resources > sub-directory of the benchmarks. Please test scrolling with non-ASCII characters, not with xmenu.c (which is pure-ASCII), since charpos-to-bytepos conversions in pure-ASCII buffers are trivial.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 07:51:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 03:51:58 2025 Received: from localhost ([127.0.0.1]:35149 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7rNG-0000mQ-43 for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 03:51:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37064) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7rNE-0000m0-85 for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 03:51:57 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7rN8-0006fe-B3; Thu, 24 Apr 2025 03:51:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=nvoWgsTvzitwy7hXzhzFYXwQughyQVQO/50x9B6Xo7U=; b=B5RlXAkVrdvW JYa7XwTlFN9df1Rj8+56hCi+8hh0wKHYIew2cBPcvAuMhZVF5xMOIJQVwwrmoCK6VHKTLzixFoUlF Oy6q6rdy4WR6tsnSbEad0uACRpYv9FBojyHOoItaLVI+viWjStNqReHW04sle7PyBaEFzuTvGCVGV HE8UKoOE0PjydvkhR9MICiiMizHi5HKA35icpQBa2d08t/kyghxwcCOBNGoWiaHIYZ+wfVNFTXiwb w0x/l5yHbdOYwDJKzYe6+EJenFfpJhpE+CNMI9sBDeB4OyNgLZBj14xeZR4L1ICkWaUvDrJjHYB6u kZAV/Tp55UEkm792DZZLZA==; Date: Thu, 24 Apr 2025 10:51:47 +0300 Message-Id: <86bjsmyp2k.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> In-Reply-To: <87plh2m72a.fsf@HIDDEN> (message from Visuwesh on Thu, 24 Apr 2025 11:31:33 +0530) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <87plh2m72a.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, yantar92@HIDDEN, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Visuwesh <visuweshm@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, gerd.moellmann@HIDDEN, > yantar92@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org > Date: Thu, 24 Apr 2025 11:31:33 +0530 > > > Still, for performance-oriented changes, it would be nice to see some > > benchmarks. Scrolling through some large file with many non-ASCII > > characters comes to mind (the Unicode UCD has quite a few of such > > files). > > Is there a standard benchmark code that I can try for this? I have such > a large HTML file with Tamil text, and I can scroll through the buffer > produced by shr-render-buffer. See my response to Gerd a few minutes ago.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 07:51:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 03:51:08 2025 Received: from localhost ([127.0.0.1]:35133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7rMR-0000jR-77 for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 03:51:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57198) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7rMM-0000hb-LI for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 03:51:04 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7rMG-0006ca-2O; Thu, 24 Apr 2025 03:50:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=p2tNpTMXHhHKkn6V0pilyke804QdVAMpvWc5KuMpTPw=; b=cwCnvro05Kx/EyThzqo0 7ZnjxAuxV7tby8ib41Yhl4bw3FDaW6cWYusuA2ZtAfTZScHAgxUimBkre3kY24H4FpVA9s89pfp8f X7qzy5TDKvAyTqNNyvinb7O3Ll4fFlyjS0c/woOm4cnaUHZabIAFsmMvwJ8VpIxDoT9rqb2nGhw+c F29BQ/Q4unC5Pay1cUrvTiYfeXjZRS3PC1f315A/FxTNtv2Ksm5MmXJtONOed7etof6zka9uS0DZQ /cIANZoRGUJ0gf2t30sGgbIb9PbKm7l9fhf9IAMSSqt8udGt1BN99O1mEctAm7oOwzo3Cav5l3QsS e5K2QPGx3AxljQ==; Date: Thu, 24 Apr 2025 10:50:50 +0300 Message-Id: <86cyd2yp45.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2ikmunmiq.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Thu, 24 Apr 2025 07:42:21 +0200) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <m2ikmunmiq.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: yantar92@HIDDEN, monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, stefankangas@HIDDEN, > 77924 <at> debbugs.gnu.org, yantar92@HIDDEN > Date: Thu, 24 Apr 2025 07:42:21 +0200 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > Still, for performance-oriented changes, it would be nice to see some > > benchmarks. Scrolling through some large file with many non-ASCII > > characters comes to mind (the Unicode UCD has quite a few of such > > files). > > > > Also, I believe there were cases where a lot of conversions > > created gobs of markers which slowed down things; it would be good to > > run those cases to see how they are affected. > > > > And finally, how about running the whole benchmark suite we have, in > > case it uncovers some unexpected results? > > I can offer to run benchmarks on my Mac mini. Should be fine, I think. I very much doubt that there will be significant differences between platforms for this kind of changes. > But we should agree upon what elisp-benchmark files I should use and on > the number of runs, because running them takes an eternity, and because > some of the benchmarks Stef (and me for elb-search) ran are not in the > "official" elisp-benchmarks package. I trust you and Stefan to decide on that. I myself am not familiar with the elisp-benchmarks suite well enough to have an opinion that is of importance. From where I stand, the important part is comparing the current master with the branch. > Don't know about the scrolling benchmark. Is what is in elisp-benchmarks > enough? If not, can you please give me a bencnhmark file for what you > want benchmarked? I don't know whether we have it in elisp-benchmarks, but if we don't, then the following should be good enough: (defun scroll-up-benchmark () (interactive) (let ((oldgc gcs-done) (oldtime (float-time))) (condition-case nil (while t (scroll-up) (redisplay)) (error (message "GCs: %d Elapsed time: %f seconds" (- gcs-done oldgc) (- (float-time) oldtime)))))) Evaluate this, then invoke "M-x scroll-up-benchmark" in a large buffer with lots of non-ASCII characters. Compare the timings between the two versions of Emacs. Thanks.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 06:29:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 02:29:34 2025 Received: from localhost ([127.0.0.1]:34252 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7q5V-0001AJ-Ra for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 02:29:34 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:61881) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7q5S-00019M-S0 for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 02:29:32 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-43cf0d787eeso6389785e9.3 for <77924 <at> debbugs.gnu.org>; Wed, 23 Apr 2025 23:29:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745476164; x=1746080964; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NFshJ97chhyt5ft4ijgl/cFX14Q3ue5+blHCc1Bn700=; b=hPz3wKPDrVFha89OISy9lbONPOL4ZM97082lSrsGDeQk3hT98h5pqjayKDbJTs2vhK s+ohd0GS3C08gNoREyDjs20qlozldlPlsRDl4XJniA30rKynkrBRENU+IuXaXPbmWBq4 a9udVXUeW8wA9pes/4qDBk3RXtJcwGcGPJ7rBcogcTzDPc3U1Z7SUq+/XHYoqwn8HjbO TVy7mp9B9se6aI4+UFjPeJhmBJOrz//Q37NJwAwNjDMuw0FOz8zfftfQxvi6dCmciTnG sP2IC28tLBpk9d9eN5bMHOAWbZKXnEx1wFqaA7DHYWVI1zH/zwjUYlLUl506wTrqw96e GaVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745476164; x=1746080964; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NFshJ97chhyt5ft4ijgl/cFX14Q3ue5+blHCc1Bn700=; b=BFrxnlkAIna7ez7q/UvDh4imAsoz9n+f1JL3WYbt2zvgcOtBpATLpSuhT/vJbXAmsa KF0qoiGD/Ya66OJIfvmvndUZJxB1iJ1JWpXw9ZXi5kvpTAvhJcgQG89UgJTE/RvFLyTI CyRHA/ljPvRdDmeHSGSQY6Cuhij2IxNPpgcoQIAz2crBwPwlZOd5+hLHG8p2bNZKX5mC PfC5ExaPwCyglONvigOg0LKYvl5ksryLlpbEtWtofocibWSRBJ65+ridr7OQQ774+fSe LyWcrpSaQvGekQOrpT3ygIr4JCdil1hGW09yiy6IOgLBxECehlJHJ6vkKaAMswBxeRqd 2o1A== X-Forwarded-Encrypted: i=1; AJvYcCWOltvMTonC+J4MYfxzRpyXDuwuJ0tLdNHke6yJb0Sgo4jT9RjrTrQV8WZb3YnRCtXP74wg0g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwF18rADxpqeiSuJs2mhzLcuzph5/M6VS+cN4XlRHce0sf3Qtm8 mbX0UWNimbCbJhdNV+q0c2pZRvfXkDkm+ZLlN6SKh6mfBfTkbCynX8+yAJ// X-Gm-Gg: ASbGnctSiWUqcCqiEpvUcYJOKIlMrK6LzdxUZpD5TNjEkP73kBAYa6NJQjT84bBJC/B hWP0PwSIMMZhCsOwdo+oBMJfJvfb8RPlTfgWf1Y96ly+SN5K7Mh8B+ewmHzpTlV0SZVDnMuUxOX k81gKHgeNbm9XJVpkZODJICmucEgvnZWedJTfR3PVvELy56Hyew95h7Gp61sQBh0EieIgwVbILk GlIO1/Ti93+DxtahVfFzA+V21dznw1XHF2DLoNrtwxws+QMZ63PibxSRj31W+29R59EyFkVOj/k KhUI1E4uuWEVXQbWwmaKNMUrgBA0wsUEg344TQen/ghm5TOlQisfinEzFlfVudzMq4wVqkyPGTV scQT5pwcDx0MTp0/AlsTVq2+OZUWDJNoAMkOuvoN+HAjKPho4wg== X-Google-Smtp-Source: AGHT+IGQxixqOBuA98mz+W1fbjX325Is6dV1n6Jw1Lc33AY97Z4Wp+MyLHVmeAz7NAFbtIolxMqELw== X-Received: by 2002:a05:600c:348d:b0:43c:e8a5:87a with SMTP id 5b1f17b1804b1-4409bd2deb3mr12270875e9.16.1745476163749; Wed, 23 Apr 2025 23:29:23 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4409d1e19e1sm7744055e9.0.2025.04.23.23.29.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 23:29:23 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Visuwesh <visuweshm@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <87plh2m72a.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> <87plh2m72a.fsf@HIDDEN> Date: Thu, 24 Apr 2025 08:29:22 +0200 Message-ID: <m2ecxinkcd.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, yantar92@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Visuwesh <visuweshm@HIDDEN> writes: > [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE= =8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Eli Zaretskii wr= ote: > >>> From: Stefan Monnier <monnier@HIDDEN> >>> Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, >>> 77924 <at> debbugs.gnu.org, Ihor Radchenko <yantar92@HIDDEN> >>> Date: Wed, 23 Apr 2025 11:41:43 -0400 >>>=20 >>> > Btw, did I miss some benchmarks? I presume that the main motivation >>> > for this branch is to speed up markers and charpos-to-bytepos >>> > conversions, is that right? If so, the only benchmark I saw shows on= ly >>> > a very mild speed-up, but maybe I missed something? >>>=20 >>> AFAICT we have tuned the current charpos<->bytepos conversion code such >>> that its worst case virtually never shows up in practice. >>>=20 >>> Supposedly Ihor has a use case where that conversion still can make >>> a noticeable difference, but I don't know if he tried the `text-index` >>> branch to confirm that it makes a measurable difference on his case. >>>=20 >>> Gerd and I played with some micro benchmarks to confirm that the >>> pathological behaviors are indeed solved, but other than that, the focus >>> was on making sure the branch does not make the normal case slower >>> (contrary to my sorted-array-of-markers-with-gap). >> >> Still, for performance-oriented changes, it would be nice to see some >> benchmarks. Scrolling through some large file with many non-ASCII >> characters comes to mind (the Unicode UCD has quite a few of such >> files). > > Is there a standard benchmark code that I can try for this? I have such > a large HTML file with Tamil text, and I can scroll through the buffer > produced by shr-render-buffer. The elisp-benchmarks package has an elb-scroll.el, in its benchmarks directory. AFAICT, that loads an xmenu.c from the resources sub-directory of the benchmarks. You could copy that, or modify it. P.S. One can set the benchmarks directory to somewhere else, and run benchmarks like this: (setq elb-bench-directory "~/emacs/notes/code/benchmarks") (elisp-benchmarks-run ".*replace-region-contents.*" t 100) The 100 is the number of runs, which should be chosen high enough that the "err" column in the result buffer is reasonably low. I'd start with 1 to see how long that takes, and then increase it.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 06:01:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 02:01:46 2025 Received: from localhost ([127.0.0.1]:34016 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7pec-0007Dy-A6 for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 02:01:46 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:57450) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <visuweshm@HIDDEN>) id 1u7peZ-0007DX-HA for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 02:01:45 -0400 Received: by mail-pl1-x644.google.com with SMTP id d9443c01a7336-224100e9a5cso7720245ad.2 for <77924 <at> debbugs.gnu.org>; Wed, 23 Apr 2025 23:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745474497; x=1746079297; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=79jaPFDtTTrB5qdmUUdnvFyWF9PKdyVJERdh8gR2r+g=; b=e2QZ1x8YesPrdz5uC8EmpxJ77btB0bSDca5+Q68e1e8vAmrzKVemt0/6oJUnR6n1ve aVqWIpVd9wckQLkaKsNGIXI6FQ6mldJEuHvnpyg43vNM8HskwxviYg+y6pfc75tOUrk0 epA+yBg4ics/skTXFGDP7AEN3gz+5/GxPkWo6ILVk26Js/Hd67NOgcVX5rvi+Bp46ank +FCRLu/WDBx9wMRcS8yrVRoR7EUPsK+qcxHuBtgb/VUSCQIwBSXWkGcr7OCxegEQvnJv 4cjwIT6kmoZjRcty+YfxM4u2YVoxe9jgvN92SRl8nph8DR9kdVAEJz6choXKq4BEKOaB yq0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745474497; x=1746079297; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=79jaPFDtTTrB5qdmUUdnvFyWF9PKdyVJERdh8gR2r+g=; b=G7tuky+Hu1HPRFwEVUEDtXpdSjgqltUyIkh59y5O+hIfC+mMFEVdek/7slVvjuT9q/ xQSfKlByAYn9xbV0W4DaxbAfHEoHHBeb58LlLQ59XhMtF3+qHQApMEsoDaZSyfRi3Sp7 39v227OVPLxY4WGxO7lkqLiQNnur0fYzRG10bMwJTfl1ZqcM/AaXlvIs5L0kCp6TEIkB Xwv+G594yJwW7ZutM916s0TdjFPFTv6PUHcGgwJS4210NQfKmLSvdfTXDck4/weYBkha TSghYKnsli6ztbgFLFFCa7yocXI6JGvnplwdjSlZfym9d2fwritFvVfA3RfSu7IAHezI WQHA== X-Forwarded-Encrypted: i=1; AJvYcCU+BwTJws2dcARA9DDD16CMFxrNfkQZc+RfBbf+8g2TTQJXkinnG+3Z20Mo4eSR15A0Dx8dKQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwVwK115c13GnLpgiwN4GIgjWHBz9yfjQsHkn3Ia7aKXyiSL8L2 YKvS44pzYJHpm2b9ZmwEyLqG4RLshVAsrcR35XyXUgyCj55jF+NN X-Gm-Gg: ASbGncvmOxOjDrsfYHpvBY5dWaZCwpGIwy+uyHLfIOQX02IQf07jiK1zVEecOhV3Gwy Dk2a2wA7rpyFwT9wvWTyn3BV4iKBQItxVvetXglahWriqCBxaC1/r1fPL5nmS1VnnesC+VXai+K w/mx35YzDF5lF/P7j9HgoTecOHE29p2BHCBtc6trt7wL2mCH2JOO2Yn0YmYc4mJ/JO0U34GwDw4 pf+pxLh0fqTGYQFznLjLnduVrzCv3IoI3HIW9e6dLzUjaWcBxK+nFkcKUlUbNujiMkDeBBKePdM aPGoS9IuBFhHNP+CCfBkKiXi5gnmWOXUND5W5Q== X-Google-Smtp-Source: AGHT+IFUTjmTvjXMurOoCCmgB31mMsYTeKmn6x2ewRUehz/hLUWlDisz9Ky5LEWOWf4AILCV60yCfQ== X-Received: by 2002:a17:902:cecb:b0:223:5525:6239 with SMTP id d9443c01a7336-22db3d7afcdmr20704205ad.38.1745474497224; Wed, 23 Apr 2025 23:01:37 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-22db50e79f7sm4692155ad.155.2025.04.23.23.01.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 23:01:36 -0700 (PDT) From: Visuwesh <visuweshm@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <86msc6ywyx.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> Date: Thu, 24 Apr 2025 11:31:33 +0530 Message-ID: <87plh2m72a.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, yantar92@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=8F= =E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 24, 2025] Eli Zaretskii wrote: >> From: Stefan Monnier <monnier@HIDDEN> >> Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, >> 77924 <at> debbugs.gnu.org, Ihor Radchenko <yantar92@HIDDEN> >> Date: Wed, 23 Apr 2025 11:41:43 -0400 >>=20 >> > Btw, did I miss some benchmarks? I presume that the main motivation >> > for this branch is to speed up markers and charpos-to-bytepos >> > conversions, is that right? If so, the only benchmark I saw shows only >> > a very mild speed-up, but maybe I missed something? >>=20 >> AFAICT we have tuned the current charpos<->bytepos conversion code such >> that its worst case virtually never shows up in practice. >>=20 >> Supposedly Ihor has a use case where that conversion still can make >> a noticeable difference, but I don't know if he tried the `text-index` >> branch to confirm that it makes a measurable difference on his case. >>=20 >> Gerd and I played with some micro benchmarks to confirm that the >> pathological behaviors are indeed solved, but other than that, the focus >> was on making sure the branch does not make the normal case slower >> (contrary to my sorted-array-of-markers-with-gap). > > Still, for performance-oriented changes, it would be nice to see some > benchmarks. Scrolling through some large file with many non-ASCII > characters comes to mind (the Unicode UCD has quite a few of such > files). Is there a standard benchmark code that I can try for this? I have such a large HTML file with Tamil text, and I can scroll through the buffer produced by shr-render-buffer.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 05:42:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 01:42:36 2025 Received: from localhost ([127.0.0.1]:33833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7pM3-0005Wv-Tf for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 01:42:36 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:51613) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7pLx-0005Vf-NP for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 01:42:31 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3995ff6b066so243822f8f.3 for <77924 <at> debbugs.gnu.org>; Wed, 23 Apr 2025 22:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745473343; x=1746078143; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Iu1pI3kf35bt0Ai5AF1lvMYxu5X+zRnoaIXDJ1FPSio=; b=i0sQIJ3/PbeOYGD0qPaGx3RAdtxu4w75xPFLFg6rQ9O7oE7LrSm3SVRw4RlUfGgl8n ebC5G2vOsNRW6R22y9XrOIxCirCqHOl2HE5NLa6cPpQ5kj8ylbO33V8NSTvPY8Y6M393 QM6GbMJU8X1k3GUi9IcDmbSAYfWdEAailWpjYPilkfdoxxtoO3PU30duR9vo8R2OQzIC MDxEKPr803pdePpTXFtLZRenjWqdSnKgzxvQrl8rEJNUvk1wwUwr2g07HTwYNgWEXnuq OLvgZbyKqvXkpHTDBTHBUev15JCAmxloBsN5vq5vsWxTuUmZvKbxEupO8F2DKgk0aUqm 4bMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745473343; x=1746078143; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Iu1pI3kf35bt0Ai5AF1lvMYxu5X+zRnoaIXDJ1FPSio=; b=dekOeV3/1xSGhPctHpWMY8nDjppOJbYkpkXtw53NDAULO6kf4g7f7BX+9m0tytduhk CG0xZw3SULLPMZlYSdhYjEmy5RqKdMeyMgDj9GNGTv5rBbk1oglFge/nriYS6sMXPoyh Vy6LxXtUChwNZHea3l71jvp/eGzaZHXuOpZfBPCUhdcERpIOHLlF9q5l5zD6iGjxbZyR umuvG2ihn5kiYmCsSNih2U7wHawkOx1jGLlGM1NWRN5bARF3AT4ULOF8qiA6wwAVMQlE +bqf51Wony2Jj22qrwz7O9oVAghobERpFoWBdqB7o+a3LDhZNb2R5xWi5vk+f1Kq50rS 1CAw== X-Forwarded-Encrypted: i=1; AJvYcCW6YpieAM19qyzklQM140twxlmsOHyg0hRyj+CAPSMIFPXgfUpNxNvPjdGdXWJPiBakEI/SVw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyA76IAE1tCO52ot+kDAmiT9819+B+0Cn0jsc/CRHas07BW7WRz oR6r1j+Jp3jU0WWJp0BNZNF7hAvpHPNAxVX4Fax5o/c15Mwh8FNe X-Gm-Gg: ASbGnct+8IbDUw3mJJjpzUEHCzN6hnrGpPuS3DRaHMKQly3o06kzUvFTH5cHRrDsI0/ A5awx3rnpBo2ur7TwujwGooMqaUhgL1AE/wPi+FHy0eAIA0SnV8wxNUUNyG+Hfbb2DvDqTFWtzR hmqBF3lfXI4ORI+TWG4UQNuxd1qXnjWmXXZhY/WwnPf2V9ylUUkA5aL1ldLXtN4qaaBTBBvS6RI FSZ+5wvkb2+S2jEytaqT4TFfwbt9HMdzEFob1eBnv9zR1BplV343H6tWy/OsawQQchn/lFKcvHb yBDLJEgf+pB/2Zt+YLz0hHfxhHxxZeLUR8FdUuAyeBHh/Op/mVMto82OHjfoSiiLB6VLn5V/xJA hZMZ/ULZKuh9yav+1LQyBqJs8zRz3S0iHf56v7x7TDD4u/9r1eQ== X-Google-Smtp-Source: AGHT+IFAKPPXYiOuag8ubKQWlXlDqv8TYsiz4IEIydDan/YnW9+7kVtefFMKjeX0a8WKslvds907Ug== X-Received: by 2002:a05:6000:228a:b0:391:29c0:83f5 with SMTP id ffacd0b85a97d-3a06cfa2f2cmr766351f8f.44.1745473343266; Wed, 23 Apr 2025 22:42:23 -0700 (PDT) Received: from pro2 (p200300e0b70e65008c33e61e626c43d3.dip0.t-ipconnect.de. [2003:e0:b70e:6500:8c33:e61e:626c:43d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a06d4c492fsm861276f8f.42.2025.04.23.22.42.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 22:42:22 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <86msc6ywyx.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> <86msc6ywyx.fsf@HIDDEN> Date: Thu, 24 Apr 2025 07:42:21 +0200 Message-ID: <m2ikmunmiq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 77924 Cc: yantar92@HIDDEN, Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Stefan Monnier <monnier@HIDDEN> >> Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, >> 77924 <at> debbugs.gnu.org, Ihor Radchenko <yantar92@HIDDEN> >> Date: Wed, 23 Apr 2025 11:41:43 -0400 >> >> > Btw, did I miss some benchmarks? I presume that the main motivation >> > for this branch is to speed up markers and charpos-to-bytepos >> > conversions, is that right? If so, the only benchmark I saw shows only >> > a very mild speed-up, but maybe I missed something? >> >> AFAICT we have tuned the current charpos<->bytepos conversion code such >> that its worst case virtually never shows up in practice. >> >> Supposedly Ihor has a use case where that conversion still can make >> a noticeable difference, but I don't know if he tried the `text-index` >> branch to confirm that it makes a measurable difference on his case. >> >> Gerd and I played with some micro benchmarks to confirm that the >> pathological behaviors are indeed solved, but other than that, the focus >> was on making sure the branch does not make the normal case slower >> (contrary to my sorted-array-of-markers-with-gap). > > Still, for performance-oriented changes, it would be nice to see some > benchmarks. Scrolling through some large file with many non-ASCII > characters comes to mind (the Unicode UCD has quite a few of such > files). > > Also, I believe there were cases where a lot of conversions > created gobs of markers which slowed down things; it would be good to > run those cases to see how they are affected. > > And finally, how about running the whole benchmark suite we have, in > case it uncovers some unexpected results? I can offer to run benchmarks on my Mac mini. But we should agree upon what elisp-benchmark files I should use and on the number of runs, because running them takes an eternity, and because some of the benchmarks Stef (and me for elb-search) ran are not in the "official" elisp-benchmarks package. Don't know about the scrolling benchmark. Is what is in elisp-benchmarks enough? If not, can you please give me a bencnhmark file for what you want benchmarked?
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 24 Apr 2025 05:01:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 24 01:01:28 2025 Received: from localhost ([127.0.0.1]:33497 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7oiF-0007EV-FN for submit <at> debbugs.gnu.org; Thu, 24 Apr 2025 01:01:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47780) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7oiB-0007Da-CT for 77924 <at> debbugs.gnu.org; Thu, 24 Apr 2025 01:01:24 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7oi5-0004SD-84; Thu, 24 Apr 2025 01:01:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=2FUNtTtQ+QfWwDzE1OnAuGQr7x+6BOOTNOnUTUghUQM=; b=KkhowpNPHwTk nNyN9WE2LNjmXkcB/WNH5BIhWheFnZvfx6upbaYc7JPVaF2PuNuxY4Nn3kMszcVWK2sLP3HJbWR3U 4Iz1ROUWsSAAv7S6GBXseZSQX1agnIzcq8Kxxrpi58Eed4PMhzDupXime451W87XQChQb/pBBu7k1 QIrN0m6BAcf7jJ02nLTzpKXQDqyX5GyI59iSQxT3EQuvMC/E12U/wBJGXCKV3ywBY1i9jlzfhOJ3I 6Ljwe6lSWVL6R8D+MkotIBchhl3JwtjhhO3TpTq3a1PLoylR/Bxw6CVpOJTsdW/02L3rs5MCiEA1s 8RWs2zhPJk4pYfzFskIypg==; Date: Thu, 24 Apr 2025 08:01:10 +0300 Message-Id: <86msc6ywyx.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Wed, 23 Apr 2025 11:41:43 -0400) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, yantar92@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, > 77924 <at> debbugs.gnu.org, Ihor Radchenko <yantar92@HIDDEN> > Date: Wed, 23 Apr 2025 11:41:43 -0400 > > > Btw, did I miss some benchmarks? I presume that the main motivation > > for this branch is to speed up markers and charpos-to-bytepos > > conversions, is that right? If so, the only benchmark I saw shows only > > a very mild speed-up, but maybe I missed something? > > AFAICT we have tuned the current charpos<->bytepos conversion code such > that its worst case virtually never shows up in practice. > > Supposedly Ihor has a use case where that conversion still can make > a noticeable difference, but I don't know if he tried the `text-index` > branch to confirm that it makes a measurable difference on his case. > > Gerd and I played with some micro benchmarks to confirm that the > pathological behaviors are indeed solved, but other than that, the focus > was on making sure the branch does not make the normal case slower > (contrary to my sorted-array-of-markers-with-gap). Still, for performance-oriented changes, it would be nice to see some benchmarks. Scrolling through some large file with many non-ASCII characters comes to mind (the Unicode UCD has quite a few of such files). Also, I believe there were cases where a lot of conversions created gobs of markers which slowed down things; it would be good to run those cases to see how they are affected. And finally, how about running the whole benchmark suite we have, in case it uncovers some unexpected results? Thanks.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 16:30:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 12:30:01 2025 Received: from localhost ([127.0.0.1]:58542 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7cz1-0006cy-Vy for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 12:30:01 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:62294) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1u7cyz-0006bj-LW for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 12:29:57 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 4BFA980911; Wed, 23 Apr 2025 11:41:52 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1745422911; bh=S16DMYFoKf/EaVE6DyAn2JaKqqvN8b3xl9NnOsSZznY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=iTpCVPiGxFRz+BiPFY/5wKMxatR2PwQbQ1dRJzOkw7IXxnNseAFIqApu+8ZzIEOzQ +EnJmdB5y4tDaNHI20Hna6+Co8DF85fWnDzqPRLtDUy+lXufqp5BOX4NdIkF7ucsC/ ZC1sAfIKfm5RYfahji+VLxgth11XrMiAgEdfLKoA9TDjLDzE454Ioj0ZAtxTuMcJgg Gj8b/M9KMCMbKaQGOlQd3mrt70gdo/9cfRtLZEtpH0rVSbAmBjHAiqT2bVE2zfG+jM JUYxh7/g40Fx5kotVJOlPT/SQ6bIbCAAWjKeqVAKE+Nxm9OvKME9CYhsmCjcnvsVkw SFk7AXWdn3IhQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 8732980823; Wed, 23 Apr 2025 11:41:51 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 780551200E4; Wed, 23 Apr 2025 11:41:51 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <86o6wnylxf.fsf@HIDDEN> Message-ID: <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> Date: Wed, 23 Apr 2025 11:41:43 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.207 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, Ihor Radchenko <yantar92@HIDDEN>, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Btw, did I miss some benchmarks? I presume that the main motivation > for this branch is to speed up markers and charpos-to-bytepos > conversions, is that right? If so, the only benchmark I saw shows only > a very mild speed-up, but maybe I missed something? AFAICT we have tuned the current charpos<->bytepos conversion code such that its worst case virtually never shows up in practice. Supposedly Ihor has a use case where that conversion still can make a noticeable difference, but I don't know if he tried the `text-index` branch to confirm that it makes a measurable difference on his case. Gerd and I played with some micro benchmarks to confirm that the pathological behaviors are indeed solved, but other than that, the focus was on making sure the branch does not make the normal case slower (contrary to my sorted-array-of-markers-with-gap). Stefan
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 16:24:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 12:24:01 2025 Received: from localhost ([127.0.0.1]:58521 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7ctF-0005av-9k for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 12:24:01 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:43419) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7ctB-0005ZH-EB for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 12:23:58 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3912fdddf8fso886801f8f.1 for <77924 <at> debbugs.gnu.org>; Wed, 23 Apr 2025 09:23:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745425431; x=1746030231; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZBnCY05jVwquqDXWob+MyVwxSbObnp/Uw1s1LTsavCs=; b=LcvJXGcbSsR0nXU43Lzpd5bzFGomtWF/XtQkHVi+kiZ4gUZ+f/joSNH+y01yJlfKZM jhF+8i+3FDZak4nXkT7vH/Gt7KkJorMHrOzDdIJ/JZAOafs8PjG8+sIlEWyJHHYmR/Bk 4ogg0srUMyQixP9v38qm5pkIEPn+Sy5TEBb14s/S/dRe2tZ2W/jrol+OgjfpM/ZEy0Ey U6bzV93IF3RryVxDVX/G5vIvCRqHPyTecNZauTI68CpJsKxAZwyjKyQvb6ZtYANB73dY 78Tf4ZzBnIE2bLfRTn09I7mZ3z24CjQHj2IYGpJQ9BzsOPkeHQCcimXB7NERk2nBFObc HMVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745425431; x=1746030231; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZBnCY05jVwquqDXWob+MyVwxSbObnp/Uw1s1LTsavCs=; b=ScPaXIATZTpkcK2BNmiEhWd7BpfmAZVN48JQdXTMA7SfmgSz6hYz5Df4WQoYBm+VPE v7JvoEO1VveQoYfqyXl3IAAFcQNimTpAjRrDLQhtyJBQw5ut3/zV5NQ44iAuXcSqdG2O hZUUA5C3uk6LRGKitvGJNznhvEXQoK0dihkX4dkZda3vLmT0NazWM7RaDD64nJZC428+ vijZUqZcNqXKWxqi39do+p9bTiNaCn6It4uM7pOKJiJfqvwTUyDBIlMjf5BShnIymZ3q rdggKCf6KmTzmNRYP+UNb7k8Km+WgltFg8edeIVvY7lDkTkjRyUNEQTt9vNgLB7D/aQm 2mew== X-Forwarded-Encrypted: i=1; AJvYcCURAovt66ZeEuNwPRa4zo/HSE+uVQpqhqW+MJjBwZ5kDb1+/B1iGwgooRXB6kAWpqajkWjYEQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxKfBSWIMHplr+01MRjEuYcFfni4dXuUZB7RDiRfRRmWslH8W7L 340NME5BvZ3fF8fA7A7xpSFJ/12o1+xFFneJPYHTJVD/0yi3Z3cM X-Gm-Gg: ASbGncsVLIst8LKLmuOGoJuZbHGHYOVWh0X6qU45DMftiOk+IMOVCrldLzqmP9Rg0Q/ g2q/Z6zzHgi6lEBrQQnqFzZRTAfL0BG7h8ZiV+of0yTkmpV+CzYlFrECxU7yZRkC5I3zLFc9SY5 dKu9YYFFndRfGiubHefwCk5wv6TQaD5nrPSW7SQ//3CY+0M3smwDy5yKUfaUgt0af+CRj/hcsly G/nWlEfFV1d9Um8L9POzTbYTorDXvC7agfro/0jXPhcs7x0vqhnBOytytR9j3iLKdKTXGMEWKgP iyxyOnFqRuvIs/WNSWHnEMn2uE91I9+uOdrvqxVhy7wbm8GiZaxci7GJXoLzDTSLt1S8MEcLqLp ooPeYsv+xlymp3FJeBZ5ekuKuIdOPgckqXX7IcHzQBXhyy1AvdA== X-Google-Smtp-Source: AGHT+IGPx12cVg3ALlwEMXZkylJo0auQCjculeAEgtkvgvKZHMEamJXX1Nd/3ZlwtSux3jyqYCiQNw== X-Received: by 2002:a5d:648d:0:b0:39e:cbca:8a72 with SMTP id ffacd0b85a97d-3a06723a853mr3020042f8f.12.1745425431136; Wed, 23 Apr 2025 09:23:51 -0700 (PDT) Received: from pro2 (p200300e0b7376d00808a7ba45869fd57.dip0.t-ipconnect.de. [2003:e0:b737:6d00:808a:7ba4:5869:fd57]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-44092d178aesm31435895e9.8.2025.04.23.09.23.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 09:23:50 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> <jwvecxiga9d.fsf-monnier+emacs@HIDDEN> Date: Wed, 23 Apr 2025 18:23:49 +0200 Message-ID: <m2v7quonhm.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, Ihor Radchenko <yantar92@HIDDEN>, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: > Gerd and I played with some micro benchmarks to confirm that the > pathological behaviors are indeed solved, but other than that, the focus > was on making sure the branch does not make the normal case slower > (contrary to my sorted-array-of-markers-with-gap). And, not to forget, it removed the cache markers which piled up a bit in igc. That was actually my original motivation at the beginning. Very nice, but so far only for. And, I don't know if that's wishful thinking, but it feels a bit snappier in interactive use.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 16:10:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 12:10:18 2025 Received: from localhost ([127.0.0.1]:58490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7cfw-00032P-Re for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 12:10:18 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:53730) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7cfs-0002yD-Fl for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 12:10:14 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-43cfba466b2so66856175e9.3 for <77924 <at> debbugs.gnu.org>; Wed, 23 Apr 2025 09:10:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745424606; x=1746029406; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eV1tYS8iSRNx5VHdGjj5ZLuaPazEnVMlqsYqXNi6B7g=; b=WWpU922kIA4WyeNcA89SpqNElJEBrr+2L3GcQ0S6llvVM6ke9lzxGBCYPsth7kbsPk OcgbB/DSquEwPzPDxukqZ5JDuYgKSl1H1wMNV1mnnWBM9m5vaiqn0xF4ZMY5CYJt/N8H d6sSyz7JHzvLhn1DprwHotiECVh1GEaIH+ttaQSZDm4OhyKifwsMX5nx+lUDTgvPyPom D9NSoyV3twpF7rA/Ccot8nBCRhVrLpTI0yWiqkKKj8luJiooaQc78v8R4+oMSEPA5eGA p4yB6fgQ8zOLbM9SCIH7bjY7CmsbfchJvu1+8hNCuicr3yrqa/AbfbLcaX00DB9XVHSz pORw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745424606; x=1746029406; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eV1tYS8iSRNx5VHdGjj5ZLuaPazEnVMlqsYqXNi6B7g=; b=Q8Fpl+VR5RqKeFg4ltygMCwiOoHB02rI6lneOX4so5EXnQdv1IuZt4Dkt7HBGd2gqn sf1j2g98N7HCxfIOZSFzzhlgx8J8LurT9xQqk9OvEQs33IzJ307UU6imvzZaYOMNTDCx pmaC5gVwPLU3w92E4tRsHtjIm8JTWxbQJV4EcapU49Ik74UVD0hv8VjMQCP/ebRtdyXR 9MWYd0VGURRkP88d8nPrKrMFBpPRq1ug6b+al4NRv2RvPs7vEiYiUFuHdSGHLS5DO9Lp 32UeSWEa5LFmoCG6Cud5h0JNHJcfsGHnSzlXv2lh484pHyOdW/KfNVo6PMV34VLfyqEo FqAQ== X-Forwarded-Encrypted: i=1; AJvYcCV9L37iK3+HTZsEFZe+NSBf/TWGrOFq+NtBkN6vxn8eF45eTiWV6h0u1+Qw6IorPbDKGYwiWQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzYoJzR9/fnBPNzVZrDgYqFiOc+m57rox4ak91tkma/w6wy9SoA vYpGBL+fRairQ/PiGJbvNJIMaXJkv5mQimxtgO4J3NZtFV02IdDNBFohYhOK X-Gm-Gg: ASbGncuzbKuTwimyn6zJlP/bYECADfg6FcHXg+f4cx//ENlC3hlEI9xDs4oiDq2xJEb 0ev1dS2LzD3pjZLPxKZUf2J9wtraw3OmeNwj2RVL30LxAcFQDB8baQbaVt/0GrnsXbk4yr7REPx dmM4ibI0a5aID7R1seiWW1NJk6jrNDX+4M8vldMN7M9p2Q5TggecX4/JRJiAsde3Tq2HpgKwlCv pUwa3tPHTfHMkhZjB5b+0GXg3U2NUd3oDGsVKzppSOt4Ma9bFi1xrXWarWA1pRsd3xP+iGrIoLl Px3O96UMROqMJ2vp23Hr1gKVhK9xaV0JRv0RVrmRiNv8f2Sk3PplSOOoYxSSAaPfWAsmaGeF4o9 rHF2+BPS2X+UT+SqssvADA0mRv0ioh2i6GRCLY0VM13cYr7HEWg== X-Google-Smtp-Source: AGHT+IF3xjq4XXmm4gFrhmQcQHQOJlHaH8cHc+Np0wgrSu5FBgDJw1hPhJNV8lnhICa31HxTbzAwhg== X-Received: by 2002:a05:600c:1383:b0:43d:23fe:e8a6 with SMTP id 5b1f17b1804b1-4406ab78e24mr145960975e9.5.1745424605694; Wed, 23 Apr 2025 09:10:05 -0700 (PDT) Received: from pro2 (p200300e0b7376d00808a7ba45869fd57.dip0.t-ipconnect.de. [2003:e0:b737:6d00:808a:7ba4:5869:fd57]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4a498csm18973762f8f.85.2025.04.23.09.10.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 09:10:05 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> Date: Wed, 23 Apr 2025 18:10:04 +0200 Message-ID: <m2msc6oo4j.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: > FWIW, I'm not a great fan of rebasing either. I did rebase the branch > last night not for rebasing's sake but because I felt there was a need > for more detailed commit messages. > > In any case, any objection to merging the branch? BTW, while porting back your changes, I got 1 emacs-git =E2=80=A6 am --3way -- /Users/gerd/emacs/github/cl-packages/0= 003-marker_vector_adjust_for_delete-Delete-function.patch Markdown-style quotes in commit message Markdown-style quotes in commit message Commit aborted; please see the file CONTRIBUTE :-)
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 15:37:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 11:37:02 2025 Received: from localhost ([127.0.0.1]:58386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7c9k-0005Vt-SA for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 11:37:02 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:21220) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1u7c9h-0005Ue-VX for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 11:36:58 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 0310E10002E; Wed, 23 Apr 2025 11:36:52 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1745422611; bh=ffx/workOmf5tCpcmV0NMeE5mndTlGu583Igm9eUnPQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=TYW564DObV5w2C7t2VQcdxnUYcQBMHVvOyDIc4o0vEWMgkbLyFVRiQ0li2xhu/RJc +I/JzXDMUw7mqRq77EM0/FL0QYOSmU8by7Ib83PUXrR8Tkzz+a2yznrK2RgLWCqxrN W/F+j/vV4tJ1zd36ts/MV/tJLMGUaSBPyUVR8pYtIv9lo51b4yf900o8LmNqxdhyP1 qFVnWjeCCvi8dVbzcLJmLUyeesjqfEY47aPIxHaxoU5ejq/lr4QMRV490HV0nnfhev /+V4ChEUZ7bDKIrUJ0nkUIFmW10ziaE38+qI8h9vAOVixEKFSRVhOaQnExyq4bBaEe 4JV4VJwvKfQpQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 3FBBE100027; Wed, 23 Apr 2025 11:36:51 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 3000F12022C; Wed, 23 Apr 2025 11:36:51 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Martin Rudalics <rudalics@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <86o6wnylxf.fsf@HIDDEN> Message-ID: <jwvjz7agaos.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> <86o6wnylxf.fsf@HIDDEN> Date: Wed, 23 Apr 2025 11:36:36 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.105 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) [ Hi Martin, need your opinion on `marker-last-position`. ] Eli wrote: >> I'd like to have a closer review of it first, so please wait for a >> while. When I skimmed it, I remember having several, hopefully minor, >> aspects that stood out, and I want to take a closer look. Please do. I hope my rebase makes it easier. =F0=9F=99=82 BTW, during my rebasing I noticed the following incompatibility: commit 89ad510b2ebd5ed3ed8477e4a45ada3402bcedca Author: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> Date: Thu Apr 17 08:42:52 2025 +0200 =20=20=20=20 marker-vector.c: Move marker's position info to the array makes it "impossible" to implement `marker-last-position`. AFAICT this function is not used outside of Emacs at all (based on a search of all *ELPA packages), but it *is* used in `window--state-put-2`, since the following commit: commit 912e37b811107768e0cb3bc95184177f817dbdb2 Author: Martin Rudalics <rudalics@HIDDEN> Date: Mon Mar 4 10:33:49 2024 +0100 =20=20=20=20 Fix 'set-window-configuration' and 'window-state-put' What's the impact of breaking `marker-last-position`? Stefan
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 14:47:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 10:47:57 2025 Received: from localhost ([127.0.0.1]:58255 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7bOG-0004mv-8U for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 10:47:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41444) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7bO4-0004ks-NL for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 10:47:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7bNn-0004aD-Je; Wed, 23 Apr 2025 10:47:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=byOoPkj1vy8BboUloOVWJzT9AjjCMI/XWLbz+9+Zqmk=; b=iKytlme/TSkx 1cW82ACTd0c7mq0mLHwlrwAStiDMrG5GlUP0FKjl/tU81W+IOp6PhaJHU+VHLOCgHXDCPuf6C+A5K WRjQzgIevZxUWX421JjwJdJ7QODBK4JuyR59XahZED5KSElLayMl5g/NKWASCt0DOCUzXSxr8XgWj M0OAHpoZbfj5SrPKWChg+BsBSwfpROlUHtRVC4l16zDZvbnMRhPrQdPdDTPhx5i9nM2SSw1Vt6Hn1 2tlRks7fFN+TQAMzb/qgDSx+1ajZzQZlmDB4Y21TNUpgEZ83qlWWvsr8NmzYWXmnmEtB6UDxOjq/H 9ciQUz1lWWoHKllK0MC8Iw==; Date: Wed, 23 Apr 2025 17:47:24 +0300 Message-Id: <86o6wnylxf.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: monnier@HIDDEN, gerd.moellmann@HIDDEN In-Reply-To: <86plh3ym7l.fsf@HIDDEN> (message from Eli Zaretskii on Wed, 23 Apr 2025 17:41:18 +0300) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> <86plh3ym7l.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org > Date: Wed, 23 Apr 2025 17:41:18 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > > From: Stefan Monnier <monnier@HIDDEN> > > Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, > > 77924 <at> debbugs.gnu.org > > Date: Wed, 23 Apr 2025 10:34:11 -0400 > > > > FWIW, I'm not a great fan of rebasing either. I did rebase the branch > > last night not for rebasing's sake but because I felt there was a need > > for more detailed commit messages. > > > > In any case, any objection to merging the branch? > > I'd like to have a closer review of it first, so please wait for a > while. When I skimmed it, I remember having several, hopefully minor, > aspects that stood out, and I want to take a closer look. Btw, did I miss some benchmarks? I presume that the main motivation for this branch is to speed up markers and charpos-to-bytepos conversions, is that right? If so, the only benchmark I saw shows only a very mild speed-up, but maybe I missed something?
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 14:41:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 10:41:40 2025 Received: from localhost ([127.0.0.1]:58225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7bIA-0003pK-8G for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 10:41:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43354) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7bI0-0003n8-MB for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 10:41:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7bHu-0003p0-U0; Wed, 23 Apr 2025 10:41:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=uZZR5XNQBhzq4j8Wxt708by1PnPUpHpwmwrJGKVqdqY=; b=Tk600g5B1Vqn og+RgQYouAgP43bq58xGw+41PGsbX17XD78uj2gngu2+ZiwHhMGt/qLCZFZYz9QiRLLzHhZpMwyXh fswsQBEpNyid7oS5WZ7vhtuwNhjjcL7odzrb8edjOx6HZgF/gqymkMh7ckY45MYR7tzyyk2/CGNI+ 2i4vaz5yUdjEbJTxzI8F1o7tjvDxMpz8H2QrZqn+q41mrlrdnfcy5V2E4ipu7iryWtY1LiAfA1BYs ptN/vlheaFcCYkGqR5fUHFG/0KjoulSDq/I4S6T0y39gsteTomRVf9cihjbibZRSuWNXcDohTLZgg DKh0nozfK7gf+WCkUOyurw==; Date: Wed, 23 Apr 2025 17:41:18 +0300 Message-Id: <86plh3ym7l.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Wed, 23 Apr 2025 10:34:11 -0400) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: gerd.moellmann@HIDDEN, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, > 77924 <at> debbugs.gnu.org > Date: Wed, 23 Apr 2025 10:34:11 -0400 > > FWIW, I'm not a great fan of rebasing either. I did rebase the branch > last night not for rebasing's sake but because I felt there was a need > for more detailed commit messages. > > In any case, any objection to merging the branch? I'd like to have a closer review of it first, so please wait for a while. When I skimmed it, I remember having several, hopefully minor, aspects that stood out, and I want to take a closer look.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 14:34:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 10:34:29 2025 Received: from localhost ([127.0.0.1]:58213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7bBD-0002dV-I6 for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 10:34:29 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:44127) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1u7bB4-0002bg-9k for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 10:34:22 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id C077F4413E3; Wed, 23 Apr 2025 10:34:12 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1745418851; bh=cSo5HNerwmLuYBwxanuQCn6uXdpsvRrca5/ymddZFqg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=IRlz8sjGz7v9hCuL9YYB+kvICVzQ3N3BCqii1AenDjL2bjbg1sD81E2RptE7SALzn sFum4jAZsPot7H4xjB1ikfsVTNGVy3kvINrEkMBVfDaa2kTsVCvnDSOO5HSJBzm3MY 7a3PH4XUht3HmNTAVnPTpuCoXD/7woIz3+DV7WUzXFOfjBRZul4uyhEFlnQXNshwvc OKoWquWlIfpUl9lwsL+UrHJaGH3OH57gElKPDMnWBIK85bifK/keXPokkzbVUCBywq 2UqWXTg0q3KxcuJwcLnsJevCPhH4LJMOy46uoFY9l3kHpOFhxfR1x+IE6Occ/6iBU9 BnSQ3awyZC8nw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id E8C5B4412F5; Wed, 23 Apr 2025 10:34:11 -0400 (EDT) Received: from pastel (104-195-208-18.cpe.teksavvy.com [104.195.208.18]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id B3803120262; Wed, 23 Apr 2025 10:34:11 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Gerd =?windows-1252?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2zfg7nh42.fsf@HIDDEN> Message-ID: <jwvmsc70wzm.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> <m2zfg7nh42.fsf@HIDDEN> Date: Wed, 23 Apr 2025 10:34:11 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.018 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) FWIW, I'm not a great fan of rebasing either. I did rebase the branch last night not for rebasing's sake but because I felt there was a need for more detailed commit messages. In any case, any objection to merging the branch? Stefan
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 13:27:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 09:27:07 2025 Received: from localhost ([127.0.0.1]:55689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7a81-0005RB-EE for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 09:27:07 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:44306) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7a7x-0005PE-On for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 09:27:03 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-39efc1365e4so2421213f8f.1 for <77924 <at> debbugs.gnu.org>; Wed, 23 Apr 2025 06:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745414815; x=1746019615; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=PmD3mVRvObB78SVM+3LgMUXgPDydYty2hzJoXX0iVhw=; b=Lybm9aOIrvoCqT7qfors4LsquHWJDJcBF+jXLx1q7EZtVXNs1G4/BHUG2v6Najaemo Jg88aNrFF76EM7wCVwzqcp32aG1EjcfeABlFiRZcIObi7cDjc/mtJwENQ6w/FrXMu77z /OYTfIP1Xh6ReKHlBIGDkclSCAfPfg0TPyxwxdX5oa7HVMiUrK4We8/cgVkNkVQl5nC2 gU94AqL51P7T+RJ6ulJ4+tLb91Z5D1XGDOmeN6tgp6a3xBHcjH4lTRx74PvsXoW9o/aF L4lLeDXk7oBuKwXnK5Rm8l5SyMNeqQVaWjR+0iBjlwJp0I/2NVfrYJYsHK9Z2SyD9CBv CvYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745414815; x=1746019615; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PmD3mVRvObB78SVM+3LgMUXgPDydYty2hzJoXX0iVhw=; b=l6t2baaGNclysOvDC37rcYYC3V9GzH7z4fpQx7NE89N6eEnTij2mFxg+z5ogv7ALOG KQTtutMP65FXyuXD8Q+odxL2Ou0oOWhnM0bTrjwiVKd43mXEzfJm6d2/idfl40Alfb9q FfYFb4sKO/uKH23/PLFFdchY7NW/AML3eZal/Gi6lRhK2ouKkw9l3kjqfNfuq8uuN6dE NKHyNRd5sw9eO79Xn44MajUok4bFrGGV+iHR7Xwn71pp4mqMIgutdvOUGYxkJF5trHcS Rhj8dEiC3Rm6cZooQrIbYXbZUjIAQs+b25zJ1jID+/XfVqkzMbHBAVDnGu4gtndinf0u CBsQ== X-Forwarded-Encrypted: i=1; AJvYcCUUYNYUKkIzn+mI4W3QTrfmCFcVKXZLFYwyri3WFJQdKvsbe+yOtJuNKE/dLBioOoLRTaUSyg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxTontJ0M2E38EgmxmxM0CeuDYDknyAV3Kxhvva17VaQgn12YGZ 4Fz1CqXRLSZfa6oX6hLkhfxR1+AXehrhfE0vUOYk/AzAzEauKtuFzyhlLV3v X-Gm-Gg: ASbGnctXKJcNiTAAZqFNz0xpRor3x4C7PodanGzQg/OYBuIoGRP40JwYyS4F2OvVt/Y xXwGX93ldmU7vBdwqqnWfrq2qjublRx06PB2IeG2XgiA8k083ZkTXElfGzUOFrikVxnpebFZKED fb2Qnm2bnF62QAR1vCYc+76gv9vOvSVWp6GhnYIJbd34ApJ/NxjAXT97DX+TYjcZe/WjmuYUi8B hkX8md2QkM3oplxXSmM3D/IUNQFOC6LyO5+Z0lpr3wz5yMNe+pBwCxO71nIoP4Wy/Wk0qeSa604 fV4QSMmXmm8j9ALSeNZ/zbA4f68sKjsrcKZ4fS00pXkufu3BIXuimS2Cl6lyS0ZqPZsC66AYjlB O1ufVkN7o1/LNOapYNrtU6pPSgIisdQKj1DmtYOGHocfqizejYw== X-Google-Smtp-Source: AGHT+IGBNMy8jVN/yO+QdXSbKI2z1MeNKX56kAuHrZwcxny3TCoFQ4TI6oQY3B8OFmV4vhDuzKieuQ== X-Received: by 2002:a5d:5983:0:b0:39f:ed8:d6c2 with SMTP id ffacd0b85a97d-39f0ed8d6e0mr6838542f8f.4.1745414815082; Wed, 23 Apr 2025 06:26:55 -0700 (PDT) Received: from pro2 (p200300e0b7376d00808a7ba45869fd57.dip0.t-ipconnect.de. [2003:e0:b737:6d00:808a:7ba4:5869:fd57]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4207dbsm18632846f8f.4.2025.04.23.06.26.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 06:26:54 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <861ptj10kb.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> <861ptj10kb.fsf@HIDDEN> Date: Wed, 23 Apr 2025 15:26:53 +0200 Message-ID: <m2zfg7nh42.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> My assumption up to a few minutes ago was that that procedure has >> changed > > It hasn't changed. > > Some people like to rebase, others dislike rebasing. (Full > disclosure: I'm in the latter camp.) (I'm in the same camp.) > Since we decided not to care either way, we don't request contributors > to do it one way or the other: they can do it however they like, and > we will accept that regardless. Thanks for the clarification!
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 13:15:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 09:15:43 2025 Received: from localhost ([127.0.0.1]:55626 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7Zx0-0003Cl-WD for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 09:15:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47234) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u7Zww-0003B3-Eb for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 09:15:38 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u7Zwq-0001EJ-RG; Wed, 23 Apr 2025 09:15:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=EW7N0whvSk//RvU/7mra9CyHBNCX9lr7CoGL2JuOJc8=; b=DyebpIfnBCscR5gC9Z4h aoCDsocExxifa4NDG+XbH5+rBLIaTYJl742V43eke9zfxnmVSMJJ4MaiXxAwA2JsTJEDLKX2g7mjO Sd6difj7WjyMJewTkXdFIV9zZe2VmmOnogmQKhFx7mqMqfMhvKJNiHilxW1k3Mh5P9hy4bQXVcwoe LLpx1EGY+c5AfpB/ehOlegi5s1AIpzad2begGSs0uWDj3HzVyj6zsvBmQ2WBgXntjGQqcZZO6Vlom dk7xPY31k4UdvyI12bJPb+oMpCVsQAZbEz953V98W4yUBWyu9bhCrVlyQe1CdjlhOoz94v0odQ/F4 /gzu35F4hNYzog==; Date: Wed, 23 Apr 2025 16:15:16 +0300 Message-Id: <861ptj10kb.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2frhzbi1y.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Wed, 23 Apr 2025 06:47:21 +0200) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> <m2frhzbi1y.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org, stefankangas@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: Stefan Kangas <stefankangas@HIDDEN>, 77924 <at> debbugs.gnu.org > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Date: Wed, 23 Apr 2025 06:47:21 +0200 > > Gerd Möllmann <gerd.moellmann@HIDDEN> writes: > > >>>> PS. BTW, a small procedural thing. Instead of merging master into a > >>>> scratch/ branch, I recommend deleting the branch, rebasing it on > >>>> master, and then pushing it again. This way, when we later merge it > >>>> into master, we avoid the merge commits, and the history is kept > >>>> clean and more easily reviewable. Not the end of the world either > >>>> way, but something to consider. > >>> > >>> Sorry, too much work :-). > >>> > >>> (For reviewing a branch with merges from master I recommend to find the > >>> latest merge commit, take the parent commit on the master side, and > >>> range diff with that. (If you have the merge in the reflog, that > >>> speeds up finding the latest merge, but that's only the case if you did > >>> the merge in that repo.)) > >> > >> git diff origin/master...origin/scratch/text-index > >> > >> should take care of it. > >> > >> If there's interest, I could take care of rebasing (and improving the > >> commit messages on the rebased commits) before merging into `master`. > > > > Please consider the branch yours, if you like, as far as I am concerned > > :-). Because... > > > >>> I consider this feature done when that is in, and play with arm64 NEON a > >>> bit instead. In C++ ;-). > > > > ...of that- > > It just appeared to me that I better ask instead of making assumptions: > When I landed tty child frames in master, there was a certain procedure > how to do that. See > > https://yhetil.org/emacs-devel/m2ldwdrnds.fsf@HIDDEN/ > > where I asked about this, and see Eli's reply. In essence: No rebasing, > squashing, and so on. Following that procedure, is why I posted the > change-log-style commit message for such a merge here. > > My assumption up to a few minutes ago was that that procedure has > changed It hasn't changed. Some people like to rebase, others dislike rebasing. (Full disclosure: I'm in the latter camp.) Since we decided not to care either way, we don't request contributors to do it one way or the other: they can do it however they like, and we will accept that regardless.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 23 Apr 2025 04:47:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 23 00:47:39 2025 Received: from localhost ([127.0.0.1]:51760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7S1I-0004RB-54 for submit <at> debbugs.gnu.org; Wed, 23 Apr 2025 00:47:39 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:50384) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7S1C-0004PL-1S for 77924 <at> debbugs.gnu.org; Wed, 23 Apr 2025 00:47:33 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-39c31e4c3e5so4071924f8f.0 for <77924 <at> debbugs.gnu.org>; Tue, 22 Apr 2025 21:47:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745383643; x=1745988443; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pZG5GxUojJpj/koYvFt1Ok329/eNL9LEAZZ5jFGH0K4=; b=XyEWgL+CRlaQbwH8+temyrbi0+r4oW0l6WCxlFVn+A1q1mKSBMm0HBAVAbGLQ2+0hL xz5r8Xbq1AFIHmcBkycELJryE8QVpA3l35/rN9f5g1aiWoixKkQLvFhElolMkwELLNgq by6QgZRT8EWXRnFgn5ckC6VVX32gxt8lkRBSsCiYAATChqzVdPbQbozbpbk93hWt1w+t N4V5e1wSSfynydRanzmMOkP4C8+FeDsKqom8Z7miY5/xRrMvngn8X3sieKiNtD6C1/Hn wSBNzcWSoLs0hHSUYwi4Vlq+9owC8AHH8upSiYnn3apK+o7j19AyLeX8rkBKuaIXRM40 eMVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745383643; x=1745988443; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pZG5GxUojJpj/koYvFt1Ok329/eNL9LEAZZ5jFGH0K4=; b=hMoN2kgOk0RZH5B+R0XpGGdBMR/K8cIflZtpPuM37172cTj0CHGhH3hFJESLSLZgQf mY62K41nn5hiCP0M69BY8c/3mVeaP6AAW6I9bs1liN+HKuQ9PgyiIIwREwZt7ADGpe0o EfA0t6Ss7PzdQDK7YzHEROKnI+huRfh1b4jMsVytx+HYqONUMVgAmiVXAbmJi/EiQ66r 5K5BCDZhpnamflQ3b29BrPRyahuZyNVUpoPmVMjTKrlZZTxd9l+YGfTxQgN3V5bMcmbP tRVLKAblVyZYTBX9R8AP7DSZP0xuR/lBK4USnekvJ2R6Lin4QjKrJ922ty2lGnR5rubh K3Kw== X-Forwarded-Encrypted: i=1; AJvYcCXwqkVZmPipl/j6km5Ki+OQ8ftAb05rfktBNFwkqAo8Hc0jMg3jMZ87SuaAas0+b7Czmkvn0Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxYNNbfey88UwjBr278sxxyZfWn0+Frba1JGPnzkzN+Kj0ZYgAc BGfxRmH5KzcCRCwxW7VNY3lfcm2r8uIYN7nz+nIMasopG+E/rg8D7P98UO4B X-Gm-Gg: ASbGncselJ39fRMKyogSYhdutGEAOS8+yHh+5JrFTSxMS5sgWWTzoJalIZCtyT1E1PR Am892c5Svcy4jYjGi5GJB4rrWD0tnfYUWSLiEd5oAi8WOXUCbR6PF34f8H2EjXpusZXXJu+V0Ig 2Vd4prbPNbgsCk17TQWhkytv5U2JOYqdLKMWGEyJTSRtX53zheLlyRMIABzAhwa/ecLjGx7SC5G +yoTp2eUn/95VD+abxfcM8EmIb2K++O14vGNr9vu+Oh4TuZouZsm/3RNyJvP1GQ4fYjzULGJa6h o72gm5Jkt5zZxNYDGJ6vWDOCBO6PB2++87eBB6Z+W268fz3o6xuoTbgtSiYxshbuc2zxSRml4Dq lxa7WDSX+JKHrUJtgQ9PLCFPmfFOqg/td7He7BBTc4TgWWfshrw== X-Google-Smtp-Source: AGHT+IFp7NgH85Sm0SwIhRrT2IUc89uyfzzpFcK00racoPJyoLBZayaEMDfZvQw6JSFJFOJWPM4wHQ== X-Received: by 2002:adf:f94a:0:b0:39f:6e9:8701 with SMTP id ffacd0b85a97d-39f06e9871dmr7755023f8f.7.1745383642926; Tue, 22 Apr 2025 21:47:22 -0700 (PDT) Received: from pro2 (p200300e0b7376d00808a7ba45869fd57.dip0.t-ipconnect.de. [2003:e0:b737:6d00:808a:7ba4:5869:fd57]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa43315esm17083895f8f.26.2025.04.22.21.47.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 21:47:22 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m234e0xo35.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> <m234e0xo35.fsf@HIDDEN> Date: Wed, 23 Apr 2025 06:47:21 +0200 Message-ID: <m2frhzbi1y.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Kangas <stefankangas@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: >>>> PS. BTW, a small procedural thing. Instead of merging master into a >>>> scratch/ branch, I recommend deleting the branch, rebasing it on >>>> master, and then pushing it again. This way, when we later merge = it >>>> into master, we avoid the merge commits, and the history is kept >>>> clean and more easily reviewable. Not the end of the world either >>>> way, but something to consider. >>> >>> Sorry, too much work :-). >>> >>> (For reviewing a branch with merges from master I recommend to find the >>> latest merge commit, take the parent commit on the master side, and >>> range diff with that. (If you have the merge in the reflog, that >>> speeds up finding the latest merge, but that's only the case if you did >>> the merge in that repo.)) >> >> git diff origin/master...origin/scratch/text-index >> >> should take care of it. >> >> If there's interest, I could take care of rebasing (and improving the >> commit messages on the rebased commits) before merging into `master`. > > Please consider the branch yours, if you like, as far as I am concerned > :-). Because... > >>> I consider this feature done when that is in, and play with arm64 NEON a >>> bit instead. In C++ ;-). > > ...of that- It just appeared to me that I better ask instead of making assumptions: When I landed tty child frames in master, there was a certain procedure how to do that. See https://yhetil.org/emacs-devel/m2ldwdrnds.fsf@HIDDEN/ where I asked about this, and see Eli's reply. In essence: No rebasing, squashing, and so on. Following that procedure, is why I posted the change-log-style commit message for such a merge here. My assumption up to a few minutes ago was that that procedure has changed? Which I wouldn't know because I'm not following the lists for some time. But, as I said, now I'm not really sure...
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 16:15:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 22 12:15:40 2025 Received: from localhost ([127.0.0.1]:49581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7GHb-0003Pk-UZ for submit <at> debbugs.gnu.org; Tue, 22 Apr 2025 12:15:40 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:54535) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7GHZ-0003PO-GO for 77924 <at> debbugs.gnu.org; Tue, 22 Apr 2025 12:15:38 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-39ee682e0ddso3131016f8f.1 for <77924 <at> debbugs.gnu.org>; Tue, 22 Apr 2025 09:15:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745338531; x=1745943331; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0IdxlHIzBCDMPIji0toDWDgysoTF9XODBpOYwXcF03A=; b=TVZ4ZXhdliDOq6ZMyrEr3pz174tApPFiFtNfOzMcRQS6Hm2ZssGAUTfcmu9Xmp69Wn yNOVpEliLBR3Qctbb/8GT6nbfVsNz2uMto5bIscX6Z/vLVf+49ckl9Uez1dQ7Mlw+e1d /4lupRunX1CZUUxmdQXomOzriEHJd3P+Hv7hCuCU0gsaRh6sEbKn+f0EzaerGsvoer+B YxoSXnYuGIyAe3CIaHc9sehiqiIoEfGTXCA1rgPtWaB6Ksak1dANjz3PS4OL6umfl378 zajq20Oo3r+LcBt3IcyZaI0IRARNNrLpd/uQZLHDo3CqSryKDJ7+h5SSmjdjk1Y41eeP AYBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745338531; x=1745943331; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0IdxlHIzBCDMPIji0toDWDgysoTF9XODBpOYwXcF03A=; b=MZaghdwwmlun+2OxpHUM16/UT3bw6VReqtQWYhXkFwHLkN1abQl8flbz41j46CU/5x 231zYcPboBcsG962edTjaBdFVWrKJdvO8tsvirECpd+4krMoVLuQqi8dh/3OfLlrCukU Jusbin3u2LJ3XzQlM82GTUD9dQLPjvekwXjCqYQcgX5xEVThJcAV/eI0sjeHcTOmN7m4 6ex+7vQwDvPLiSe+pG9JpN8hs5+brX8ZKL8ZXSCWalmk60gR1paQzVBGyvynhoXOcGqm VL6akydNKi4ox5vfQrehRP1tsYXdGUNHlfUjysitjWQKaVzlwJoGUXKt1TAQ42L7JtsT Gp5w== X-Forwarded-Encrypted: i=1; AJvYcCVtmJYgK5fvfVuAgsgODIkvf886Mf8Yb4FioxPiL4sTnODmNF/m6S6XehAAtPsxsAC55iEJGg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzxwdwdBqZ0T3IsAtxVMriBVxdUtzOF+6bHjpqZLDgOFu5DjVAr O9q02FPgq9ohIgF3L+toNWFKKw/KQrrkfMgSzJvhJMC4pawMuTlhsFRK9pXT X-Gm-Gg: ASbGncsfcHJzZ/TuEC/qfS0j5wJB3yTV5i8Fq6Sa7wVzarSIbgSnR6gc2YsDFh+Bh9J QySoFMMTAj6D0/WDupIdJ9NQJftZW623Jc6S8nXVjZoWytXWTRdF81Hg4mLUfVAL6Ky/TpWwEpb eqrmX3sZya/hTqcbM0Pi2wGK9UselpGxdlL7MAphEZChSpvTDSt4lqqlBadCYDdkNMwJSZ7Rmgb ToEtJiY3zOzXRSR00GqLQYjL4W6Fczf2cU1DKTyx3MdZL3pJddfbvTcdtEFIjsC/NUcr+oCcTmx 5nxVLyXBoU2893uQARE71GFSER2EBWNj9S8V60EbaskMdwuzRHRgMMwjZnC7lrQ3yOJqwbjUY9B nD3O+iwQOtThw1JGlbm1wB2OUc76Mwko/t583sPBL0hmqc1LUCw== X-Google-Smtp-Source: AGHT+IF2PJ5lppdBSepu8CJsJRFZlKLym4iu2BOEszFG5f5WzV73sAtKnGHFBgeuwWMeTT9IHemgbQ== X-Received: by 2002:a05:6000:4201:b0:39e:cbc7:ad2c with SMTP id ffacd0b85a97d-39efba5ede7mr12658516f8f.25.1745338530785; Tue, 22 Apr 2025 09:15:30 -0700 (PDT) Received: from pro2 (p200300e0b7301900d125c0c7bda1f42d.dip0.t-ipconnect.de. [2003:e0:b730:1900:d125:c0c7:bda1:f42d]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4a4be2sm15468110f8f.83.2025.04.22.09.15.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 09:15:30 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> Date: Tue, 22 Apr 2025 18:15:29 +0200 Message-ID: <m2sem0yxy6.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Kangas <stefankangas@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: > As discussed in the other thread, this performs fairly few > charpos->bytepos conversions, actually. Instead it spends most of its > time inside the `diffseq.h` code. You could try something like: > > (require 'subr-x) >=20=20=20=20=20 > (defun elb-replace-region-contents-entry () > (with-temp-buffer > (let ((step (apply #'concat (make-list 2000 "=F0=9F=99=82=C3=A9t= =C3=A9=F0=9F=91=B6=F0=9F=8F=BF ")))) > (dotimes (_ (/ 500000 (length step))) > (insert step)) >=20=20=20=20=20 > (dotimes (_ 100000) > (let* ((a (+ (point-min) (random (buffer-size)))) > (b (min (+ a (length step) (random 512) -256) (point-m= ax)))) > (replace-region-contents a b (lambda () step))))))) > > which should spend more time in Emacs's code (especially in > `buffer_chars_equal`) than in `diffseq.h` Tried to run that on my mini, but it didn't finish in ca. 2h. So I tried to call that function on my MB, and had to kill my Emacs :-). Anyway, the other benchmarks showed an improvement over master, so I'm content.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 14:34:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 22 10:34:02 2025 Received: from localhost ([127.0.0.1]:49206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7EhF-0006o4-DY for submit <at> debbugs.gnu.org; Tue, 22 Apr 2025 10:34:01 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:46383) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7EhC-0006nh-ET for 77924 <at> debbugs.gnu.org; Tue, 22 Apr 2025 10:33:59 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-43ea40a6e98so47745825e9.1 for <77924 <at> debbugs.gnu.org>; Tue, 22 Apr 2025 07:33:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745332432; x=1745937232; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=on5QFVVfxk3WRAguyn+t3APA8iJPfIvDCaVsiaUrK7k=; b=PCwDjXWkck7uBJ6+CP78+EDHsH9I6Ym9M4+Zv2xrXe8v8SHsj2gztIWjKVNOTCUT/W xBU5okmA5HnCSlhpEVq+JH7D+GJ7pNwV269GJzG+ecLm5oEQjwRt9dODEvFQ26+YHg8j xZXCXAmp0noxjOxNo1m18fpYZH2UKJDUUkeQp8jyn+L+qnr6FQHNDsmsI1ctyfphcg6E sthLhjIhBhqWGspNGnVuNuZhQQjbYAu2VzvxLPmfnT0rr01k51RJUspAQL9WRBFn6u5B GKZD0jV/0L7q5I6eDzw6FVyNlAp5HnPcyrwmfZOLKjR7Ygg2I1f1oPAm661hJaTpaBtS 5eQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332432; x=1745937232; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=on5QFVVfxk3WRAguyn+t3APA8iJPfIvDCaVsiaUrK7k=; b=MmKNN4BR3xOsNgiJPYl451WNg4Xw2RdCHlGLqnXdXROZ347hWlMwK7bZqAQd1idPE4 jFViAw9VsSW8/sc6HLfZ+MYIdVj+nLP21u5O0oeJuMM733dcfRn2HDTzWz+kpwUZFGMn ai293V0yKVTLXwkrwacaP5X2KJn826HtspXdimo/mMATvEtz+PXx9wfOzlaQMNXXyKgT O8pd1rQ8RDGk3OF6d5p/Xj5WPE8Kvy0KzZXO+pHD3rV0JdCuqPun2JceLhblksBer8Gl Ul8k7HJqfCkMJyfzEiD4ftVr1n9WPqrUR32eOKgk8oxTIhybDE3GW1n1zReKdeoDr0AE wwvg== X-Forwarded-Encrypted: i=1; AJvYcCXRXRah8EsrqPp1Tjr5svLNY25h3pR7+45654NdjKIdDZ+6xUwsQN4V1GXAsdrSKhnCKpVXxg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyA2VaQAtUvdpPqKwMxxq4HusPd2ocxLhr+Go8/UBjq8Wj15Gqy a9W/gOLEvy7Jh8Hgq2PaJQWN85LBhJBv8pa78GEc6XEwLjjIvvbpK3Qn3Pr4 X-Gm-Gg: ASbGncsuNSvv1icw5WeUpkhuyFisl3H42JFzS3CvBvZqsY2CoxVIZZkM30g0RzKVGRK gCx7y19veoc4HdMxI4chqV1j9q5p/AuNxgG15JQSw1LI/DW8y+C0FmMhVytVlew+GLqiOmvkr3t Cbx7LlpTG0qEqMfDgI4F32up6xAgi4J8fhMOH2UQnQcFXxPtiwSe6XrKnvBwtWYUJfTHnv7Dy/J wIcly6xYYUCvyAMbdbv7OOD85u44EGWyQA+uXYBPF6fDqMzIXSmC8hMTYc+OMvKYImVT9JGkYzq E9THNh/tqSDHp0gispwggVHQM4270xvg0sP+D1c/x/C6/bEVijN5lFBezQTjwdxmqjUH9AkZs7v +a0ebb/JLPEh8NxZyqu7qYbl/XvGmNkdrzyinoq31r+ZB X-Google-Smtp-Source: AGHT+IEhVYXgDq5HF2+3KktF6Ezcj2/QoQ8nIWJ3qoJWxMt671lnxhFRS4KyL9JAKW1VfHplhlWRhA== X-Received: by 2002:a05:600c:1f83:b0:43c:efed:733e with SMTP id 5b1f17b1804b1-4406ab98a0dmr143932615e9.14.1745332431668; Tue, 22 Apr 2025 07:33:51 -0700 (PDT) Received: from pro2 (p200300e0b7301900b98b74cfc94b2689.dip0.t-ipconnect.de. [2003:e0:b730:1900:b98b:74cf:c94b:2689]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4406d5bbe45sm176827325e9.24.2025.04.22.07.33.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:33:51 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> Date: Tue, 22 Apr 2025 16:33:50 +0200 Message-ID: <m234e0xo35.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Kangas <stefankangas@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >>> - Any chance you could add a comment explaining how you arrived at >>> text_index_interval=3D4*1024? If it's arbitrarily chosen, adding a >>> comment to that effect might be useful. >> It's neither completely arbitrary nor can I really say much about it. >> INTERVAL / 2 is basically the worst-case distance one has to scan >> through text. Don't really know what to say more, and the above is >> pretty obvious.=20 > > FWIW, the current code in `master` uses a threshold of 5k (sometimes 5k > bytes, sometimes 5k chars) as the minimum distance between > "cache-markers". > > It's a tradeoff between the size of the text-index array (and the time > it takes to populate/update it) and the time it takes to scan the text > from one of the positions recorded in that array to the position we're > actually interested in. > > We haven't really investigated which value would be ideal. True. It might even be different between machines, don't know. I once, in the beginning, tried large values, don't remember, maybe 16K, and performance seemed to drop, but not much. Difficult to find an ideal value. > The code that does the scan can probably be improved significantly > (e.g. by processing the text several bytes at a time). For sure.=20 >> (defun elb-replace-region-contents-entry () >> (with-temp-buffer >> (let ((step (apply #'concat (make-list 2000 "=F0=9F=99=82=C3=A9t=C3= =A9=F0=9F=91=B6=F0=9F=8F=BF ")))) >> (dotimes (_ (/ 100000 (length step))) >> (insert step))) >>=20 >> (dotimes (_ 100000) >> (let* ((a (1+ (random (point-max)))) >> (b (1+ (random (point-max)))) >> (beg (min a b)) >> (end (max a b))) >> (replace-region-contents beg end "=F0=9F=99=82=C3=A9t=C3=A9=F0= =9F=91=B6=F0=9F=8F=BF =F0=9F=99=82=C3=A9t=C3=A9=F0=9F=91=B6=F0=9F=8F=BF "))= ))) > > As discussed in the other thread, this performs fairly few > charpos->bytepos conversions, actually. Instead it spends most of its > time inside the `diffseq.h` code. You could try something like: > > (require 'subr-x) >=20=20=20=20=20 > (defun elb-replace-region-contents-entry () > (with-temp-buffer > (let ((step (apply #'concat (make-list 2000 "=F0=9F=99=82=C3=A9t= =C3=A9=F0=9F=91=B6=F0=9F=8F=BF ")))) > (dotimes (_ (/ 500000 (length step))) > (insert step)) >=20=20=20=20=20 > (dotimes (_ 100000) > (let* ((a (+ (point-min) (random (buffer-size)))) > (b (min (+ a (length step) (random 512) -256) (point-m= ax)))) > (replace-region-contents a b (lambda () step))))))) > > which should spend more time in Emacs's code (especially in > `buffer_chars_equal`) than in `diffseq.h` > >>> PS. BTW, a small procedural thing. Instead of merging master into a >>> scratch/ branch, I recommend deleting the branch, rebasing it on >>> master, and then pushing it again. This way, when we later merge it >>> into master, we avoid the merge commits, and the history is kept >>> clean and more easily reviewable. Not the end of the world either >>> way, but something to consider. >> >> Sorry, too much work :-). >> >> (For reviewing a branch with merges from master I recommend to find the >> latest merge commit, take the parent commit on the master side, and >> range diff with that. (If you have the merge in the reflog, that >> speeds up finding the latest merge, but that's only the case if you did >> the merge in that repo.)) > > git diff origin/master...origin/scratch/text-index > > should take care of it. > > If there's interest, I could take care of rebasing (and improving the > commit messages on the rebased commits) before merging into `master`. Please consider the branch yours, if you like, as far as I am concerned :-). Because... >> I consider this feature done when that is in, and play with arm64 NEON a >> bit instead. In C++ ;-). ...of that- > > BTW, regarding processing several bytes at a time, we could try > something like > > long unsigned eightbytes =3D BUF_FETCH_8BYTES (bytepos); > long unsigned eightbits =3D ((~eightbytes) & 0x8080808080808080) >> 7; > long unsigned fourtwobits =3D eightbits + (eightbits >> 32); > long unsigned twofourbits =3D fourtwobits + (fourtwobits >> 16); > nchars +=3D (twofourbits + (twofourbits >> 8)) & 0xff; > > Not sure it would be significantly faster than the current code, tho. > Maybe an even easier first change would be to replace > > if (CHAR_HEAD_P (BUF_FETCH_BYTE (b, bytepos))) > ++charpos; > > with > > charpos +=3D (~BUF_FETCH_BYTE (b, bytepos)) >> 7; > > so as to avoid a branch that can be sometimes hard to predict. > Hard to tell if that would be faster. Maybe if I know a bit more about the current state of affairs of SIMD support, one could write something using that. That would certainly be faster. On my M1 chips it would mean processing 16 bytes at a time (128 bit registers), and I've seen a presentation that talked about 256 and even 512 bits on some Intel CPUs (AMX).
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 14:08:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 22 10:08:13 2025 Received: from localhost ([127.0.0.1]:49142 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7EIH-0005Wd-D6 for submit <at> debbugs.gnu.org; Tue, 22 Apr 2025 10:08:13 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:24109) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1u7EID-0005WM-CL for 77924 <at> debbugs.gnu.org; Tue, 22 Apr 2025 10:08:10 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 21E90807B7; Tue, 22 Apr 2025 10:08:00 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1745330879; bh=kJ8/x3iHlNeGMYzyIxdnhfPN7sLOCY952fURqJFoG3E=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=e6nkIlYXu02DPSriAmXduud6bs5lhFcFjmckr3uynlCVajSygIEsZPbUyz6mz+AF4 qhPV+BKkIVyvAYyPMjG4dmJYOWVooWR+Rj6EUgX6ybykh1X+V2ItFRHT8oLSzTzAjC y/Va3R3MQ+hCKk7mNPs7QWJNpoQqAxZyP5oBZOCcXkYQG4aex53zRrqJpNxdkKrfUY VZeFwJjcebEDvMhwBLiKM+k/+J/SA0y/O43edhVtREGq2ZDXVBIhgkESXZ4e6Sukpy ijjxFQss8TtuG4TVA69HkQuszIRUSoyCQriCiKejZJmFeHh9GnAwr0u4v+R3KtImit GPOOZ4ZyTnr1w== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 13648803EA; Tue, 22 Apr 2025 10:07:59 -0400 (EDT) Received: from pastel (104-195-208-18.cpe.teksavvy.com [104.195.208.18]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id D31AC120568; Tue, 22 Apr 2025 10:07:58 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Gerd =?windows-1252?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m27c3cesxb.fsf@HIDDEN> Message-ID: <jwvzfg8493r.fsf-monnier+emacs@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> Date: Tue, 22 Apr 2025 10:07:58 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.064 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: Stefan Kangas <stefankangas@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> - Any chance you could add a comment explaining how you arrived at >> text_index_interval=3D4*1024? If it's arbitrarily chosen, adding a >> comment to that effect might be useful. > It's neither completely arbitrary nor can I really say much about it. > INTERVAL / 2 is basically the worst-case distance one has to scan > through text. Don't really know what to say more, and the above is > pretty obvious.=20 FWIW, the current code in `master` uses a threshold of 5k (sometimes 5k bytes, sometimes 5k chars) as the minimum distance between "cache-markers". It's a tradeoff between the size of the text-index array (and the time it takes to populate/update it) and the time it takes to scan the text from one of the positions recorded in that array to the position we're actually interested in. We haven't really investigated which value would be ideal. The code that does the scan can probably be improved significantly (e.g. by processing the text several bytes at a time). > (defun elb-replace-region-contents-entry () > (with-temp-buffer > (let ((step (apply #'concat (make-list 2000 "=F0=9F=99=82=C3=A9t=C3= =A9=F0=9F=91=B6=F0=9F=8F=BF ")))) > (dotimes (_ (/ 100000 (length step))) > (insert step))) >=20 > (dotimes (_ 100000) > (let* ((a (1+ (random (point-max)))) > (b (1+ (random (point-max)))) > (beg (min a b)) > (end (max a b))) > (replace-region-contents beg end "=F0=9F=99=82=C3=A9t=C3=A9=F0=9F= =91=B6=F0=9F=8F=BF =F0=9F=99=82=C3=A9t=C3=A9=F0=9F=91=B6=F0=9F=8F=BF "))))) As discussed in the other thread, this performs fairly few charpos->bytepos conversions, actually. Instead it spends most of its time inside the `diffseq.h` code. You could try something like: (require 'subr-x) =20=20=20=20 (defun elb-replace-region-contents-entry () (with-temp-buffer (let ((step (apply #'concat (make-list 2000 "=F0=9F=99=82=C3=A9t=C3= =A9=F0=9F=91=B6=F0=9F=8F=BF ")))) (dotimes (_ (/ 500000 (length step))) (insert step)) =20=20=20=20 (dotimes (_ 100000) (let* ((a (+ (point-min) (random (buffer-size)))) (b (min (+ a (length step) (random 512) -256) (point-max= )))) (replace-region-contents a b (lambda () step))))))) which should spend more time in Emacs's code (especially in `buffer_chars_equal`) than in `diffseq.h` >> PS. BTW, a small procedural thing. Instead of merging master into a >> scratch/ branch, I recommend deleting the branch, rebasing it on >> master, and then pushing it again. This way, when we later merge it >> into master, we avoid the merge commits, and the history is kept >> clean and more easily reviewable. Not the end of the world either >> way, but something to consider. > > Sorry, too much work :-). > > (For reviewing a branch with merges from master I recommend to find the > latest merge commit, take the parent commit on the master side, and > range diff with that. (If you have the merge in the reflog, that > speeds up finding the latest merge, but that's only the case if you did > the merge in that repo.)) git diff origin/master...origin/scratch/text-index should take care of it. If there's interest, I could take care of rebasing (and improving the commit messages on the rebased commits) before merging into `master`. > I consider this feature done when that is in, and play with arm64 NEON a > bit instead. In C++ ;-). BTW, regarding processing several bytes at a time, we could try something like long unsigned eightbytes =3D BUF_FETCH_8BYTES (bytepos); long unsigned eightbits =3D ((~eightbytes) & 0x8080808080808080) >> 7; long unsigned fourtwobits =3D eightbits + (eightbits >> 32); long unsigned twofourbits =3D fourtwobits + (fourtwobits >> 16); nchars +=3D (twofourbits + (twofourbits >> 8)) & 0xff; Not sure it would be significantly faster than the current code, tho. Maybe an even easier first change would be to replace if (CHAR_HEAD_P (BUF_FETCH_BYTE (b, bytepos))) ++charpos; with charpos +=3D (~BUF_FETCH_BYTE (b, bytepos)) >> 7; so as to avoid a branch that can be sometimes hard to predict. Stefan
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 12:35:22 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 22 08:35:22 2025 Received: from localhost ([127.0.0.1]:46680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u7CqQ-0000P9-BF for submit <at> debbugs.gnu.org; Tue, 22 Apr 2025 08:35:22 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:57697) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u7CqL-0000Ja-Ve for 77924 <at> debbugs.gnu.org; Tue, 22 Apr 2025 08:35:20 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-39ac9aea656so6432665f8f.3 for <77924 <at> debbugs.gnu.org>; Tue, 22 Apr 2025 05:35:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745325311; x=1745930111; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9nGA6aIVQjMwSpRqCbGI68janZHQuzAZ1L5Qa9zWo6U=; b=ZIU1/jmWFnvmwIP6lLQ8PDFqoMFQqR3/FH8DsPA/WT/RaxQGLUxCRRdEHhdS3KNNjk 5B8G6JSXiGuIdlLAbjCN3Ydtfo+pGmXV2m3LobOhLwn5d/n+VVR7xDx8uXf18/VeXPv+ bGws6fn8WeE1YsYl7io48qbV9hp0SgpeAKo68EHM1BeAZ01BVIQEBKD0kvDUhX/6URXk 26KpCj9AcrqtMGF+Fmxx6RY58EzW65/cUQyJKRW8uI5ZzDpsaUm73b/6fivAe57Vkz0J S7antqXvH8HJHjQ4On/fgr6BV4TvUusT8NQKk6TtaWSK7DmiNcehEX7sk3HSobAUhL70 buBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745325311; x=1745930111; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9nGA6aIVQjMwSpRqCbGI68janZHQuzAZ1L5Qa9zWo6U=; b=qvPuVFjC69wSDh5VJrfxTizshZl9kB+C/WY2UlVB/lWas/qionw3WNT8/yAhFE2Cah pyZPNcK2FA9eUrhUJaClqZiYYG6V0k97qRSiA3gosUu6ofq9NszFXkv2716/EMwut134 /TXkVzMUityS93uCPKS/mAwI/D+jnmr+E8n2MHA6w2ex3Op2tqPGfijfgi9Cwy1OEO2o c0h75Y2H8xzzN0ffKFKSV/LYmPCtimxa1Br3xbwKjb1gKo3IuEB5+JKznyAYNYopNJua wXvotH5umgdf2ObSlKhfruL+CifwBQl2wwBOBFSVRvsaQ5UCb01fQpn+V57kHXHR5VMv hLXg== X-Gm-Message-State: AOJu0YxkNP6gpn7Q1vqqTHphGcR9/dBulIw4mmnNVR0xvNYJOS6VlVKB UJq6dzEaWUvN/pCnjgMNF83AO+dok/hYSk3cuQ5F0hdltvPjZuYd X-Gm-Gg: ASbGncvRsRYTaZJl27ikVQQs5gK9xsVRcATdVJdg0uOZVMRVim+j/DadYIypIkNgqMP AakLBhEZMZ4J3RIBmX57D/mPevthXr76VyJqjYQBIJoFvlQY6niVgx15/fn955rKzYFQ+KJF1aZ UJ1aA27DvHVBE3OT3BLqIlWAh0yjpm33riSuLy/kwhvEUuMm3uqSe5muolXbizvNOp6oONYRM60 n3BItY0wNX/bsJ9L6ZCJTXKTBMa3QGmSx1s9hiTHGn0GgGOZYn4ywIYeNnYSI2f+XjImA5qkfm7 v3jfZYeiU8VuU08Yk76RBJFyRJp30+kvYp4g8/aj1OizAO6F6rUjs/rlpnxe0AznLxcybVkrXbo 3KK5/BVB66wrlkzWUeAY33t/a2kGnoacjm5Efi7RCFSpPs6K6ZsWuFzc= X-Google-Smtp-Source: AGHT+IGzuho3kRn4rCOEWC6cWyh6x6r1qp3xkirZzO2cOddwwWmrnTcXTNqRTvYLXmBQEKEfJNpgKg== X-Received: by 2002:a05:6000:188e:b0:391:4835:d8a8 with SMTP id ffacd0b85a97d-39efba2ab31mr12878607f8f.1.1745325311341; Tue, 22 Apr 2025 05:35:11 -0700 (PDT) Received: from pro2 (p200300e0b7301900b98b74cfc94b2689.dip0.t-ipconnect.de. [2003:e0:b730:1900:b98b:74cf:c94b:2689]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4a4f21sm15329030f8f.91.2025.04.22.05.35.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 05:35:10 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Kangas <stefankangas@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2v7qw8uhh.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> <m2v7qw8uhh.fsf@HIDDEN> Date: Tue, 22 Apr 2025 14:35:09 +0200 Message-ID: <m24iygz85e.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > * Without optimization Results > > | test | non-gc (s) | gc (s) | gcs | total (s) | err= (s) | > |-------------------------+------------+--------+-----+-----------+----= -----| > | replace-region-contents | 0.93 | 0.00 | 0 | 0.93 | = 0.33 | > |-------------------------+------------+--------+-----+-----------+----= -----| > | total | 0.93 | 0.00 | 0 | 0.93 | = 0.33 | > > * With opt. Results > > | test | non-gc (s) | gc (s) | gcs | total (s) | err= (s) | > |-------------------------+------------+--------+-----+-----------+----= -----| > | replace-region-contents | 0.89 | 0.00 | 0 | 0.89 | = 0.32 | > |-------------------------+------------+--------+-----+-----------+----= -----| > | total | 0.89 | 0.00 | 0 | 0.89 | = 0.32 | ** master Results | test | non-gc (s) | gc (s) | gcs | total (s) | err (= s) | |-------------------------+------------+--------+-----+-----------+------= ---| | replace-region-contents | 1.04 | 0.00 | 0 | 1.04 | 0.= 33 | |-------------------------+------------+--------+-----+-----------+------= ---| | total | 1.04 | 0.00 | 0 | 1.04 | 0.= 33 | So, improvement, also here with text-index.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 08:35:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 22 04:35:02 2025 Received: from localhost ([127.0.0.1]:45130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u795q-0003t8-9U for submit <at> debbugs.gnu.org; Tue, 22 Apr 2025 04:35:02 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:43454) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u795m-0003sV-RP for 77924 <at> debbugs.gnu.org; Tue, 22 Apr 2025 04:34:59 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-43cf628cb14so42604975e9.1 for <77924 <at> debbugs.gnu.org>; Tue, 22 Apr 2025 01:34:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745310892; x=1745915692; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Tb4JDkU2blnmN5x2g4np2S05h3U5piwkOOK/N1EzUuo=; b=dUpGB/zZoSB46d/SsQ5TJP9V7wXz5Qgi/wVyjW0aZKHbSh4LcsYv2E4zMDPvU4xUi9 vLHysKSosWo5JuN68iBZbHD+vahBEapeeKbvIrXXK71SN21y8M4p0Gz8gIjOkTT9KNBI aH61s+3TYWz/YXxr9pJ00F47/KC3PDJcEqUWL5sx/IdHc6ox5sQQ7vYRI1aOm5dtwkOv 7UUaNGCFotlVH/l4bB4MPHJiYpwS/IuAgQxCHm2MpgFHaJjP81jV5ut3oSdb+mxie/vu YJqKtGJUntXi5UjFylnHRtsSUgXt09KalAtj/r9IYddGuI68ouwG3D1pQ944wZzjBAAY SlHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745310892; x=1745915692; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Tb4JDkU2blnmN5x2g4np2S05h3U5piwkOOK/N1EzUuo=; b=bnVUMe9rvX/VhmaQ8EhIwWfGzI9E2OH1GlAdPHCQ4dCCkKT5YSF+27/6YYFUWY8Q0Z SJHuYD9np1P1J7x8UfnbBYxbW9qD9JO0ORbfqmaZSVUeSpDrZK0Y+auhurMX7JH3U7Wf +LS4GLkYpJfgQkqniKYlmGhT629pIuwpKf3paQ17HeCqXNRXb1d+dGp/Srbx+QrlgqE+ iJgA9M4GmLUaA0tB/uQPjCmybYG0jbsmxpUODQ7Cr5oPmQhjrpnvQqdUR/7/JBjArtfo xBboUETqp01maJiBBvqeWxXzVq30SRma1meV238ju6OPcpOaprmdS5Skbw5GrkkHRChB vbyQ== X-Gm-Message-State: AOJu0YwLyRf25S/6XxydYtIf44dbwHgougZY+Yz7sXltTkVXCK2fklmP +jCEwKf9xzHv1R0veg01wAoeK2914cDOdKWnbUsSuyjrEo84GGAp X-Gm-Gg: ASbGncsvsDN7CwkQnMDEM7Ged0fRJvgXO2Spf9wzbElcngZAibA17xfmisGNFZjTGlU VneZ7gqdUTNJd4nR8U48QHrmd/b3219ff4EWyWXbPbnEnMGPngF2/OQB/A8XjQzQE/onudHNOLn nsaAXxk2FKw+Gy5jrmtKE9GuHEmutvhS87OI6849/p9gGpdm2hg3gCtIGJ3sa0Dy5MT7LVKrG6v HHXVgjqmCBHzKrknABEKIcpSlWojhLh2seDPlT/v2dkhZi5zFyjMOrDg2395rAHn45dhm76bWdI faKKdZik0Qp1fYlEXFQ7xLE+U4OCHeCHYW8BeQhnXKIC7AoiiE9yBXU8LKGn3K65MCHHWRA0zKS nhiXWxv/aNr9L7KH5foRnaif1YH2+ohAtoUgzWRSzm0mf X-Google-Smtp-Source: AGHT+IEPb9L3GK6F2JqmVlIJ4kUNmfaccmKk9VCh6IJjdCW0zyPyKBhevDxE4kDELRl/8hBvyShgOw== X-Received: by 2002:a05:6000:4313:b0:39f:d0a:5b23 with SMTP id ffacd0b85a97d-39f0d0a5b9fmr3489827f8f.17.1745310892215; Tue, 22 Apr 2025 01:34:52 -0700 (PDT) Received: from pro2 (p200300e0b7301900b98b74cfc94b2689.dip0.t-ipconnect.de. [2003:e0:b730:1900:b98b:74cf:c94b:2689]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4a4f2dsm14543928f8f.95.2025.04.22.01.34.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 01:34:51 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Kangas <stefankangas@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m27c3cesxb.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> <m27c3cesxb.fsf@HIDDEN> Date: Tue, 22 Apr 2025 10:34:50 +0200 Message-ID: <m2v7qw8uhh.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Stefan Kangas <stefankangas@HIDDEN> writes: > >> This sounds great. I pushed a couple of typo fixes while reading the >> patches, please use them as you see fit (squash, etc.). > > Thanks, I've ported that back to my side. > >> >> - Any chance you could add a comment explaining how you arrived at >> text_index_interval=3D4*1024? If it's arbitrarily chosen, adding a >> comment to that effect might be useful. > > It's neither completely arbitrary nor can I really say much about it. > INTERVAL / 2 is basically the worst-case distance one has to scan > through text. Don't really know what to say more, and the above is > pretty obvious. > >> >> - Maybe rename `text-index-interval` to `text-index--interval` (to >> indicate that it's internal)? >> >> - I guess `use-text-index` can be removed? > > I've removed these Lisp variables a few days ago or so. They were only > for experimenting with the whole thing. > >>> Please see the comments at the start of marker-vector.c and text-index.c >>> for more details. Also see the thread(s) on emacs-devel with Stef an me. >> >> For posterity, I guess that would be: >> >> Re: Question about region caches >> https://lists.gnu.org/r/emacs-devel/2025-03/msg01382.html >> >> PS. BTW, a small procedural thing. Instead of merging master into a >> scratch/ branch, I recommend deleting the branch, rebasing it on >> master, and then pushing it again. This way, when we later merge it >> into master, we avoid the merge commits, and the history is kept >> clean and more easily reviewable. Not the end of the world either >> way, but something to consider. > > Sorry, too much work :-). > > (For reviewing a branch with merges from master I recommend to find the > latest merge commit, take the parent commit on the master side, and > range diff with that. (If you have the merge in the reflog, that > speeds up finding the latest merge, but that's only the case if you did > the merge in that repo.)) There was the open question left whether or not it pays off to avoid the binary search in charpos -> bytepos conversion. Benchmarked it with (defun elb-replace-region-contents-entry () (with-temp-buffer (let ((step (apply #'concat (make-list 2000 "=F0=9F=99=82=C3=A9t=C3=A9= =F0=9F=91=B6=F0=9F=8F=BF ")))) (dotimes (_ (/ 100000 (length step))) (insert step))) (dotimes (_ 100000) (let* ((a (1+ (random (point-max)))) (b (1+ (random (point-max)))) (beg (min a b)) (end (max a b))) (replace-region-contents beg end "=F0=9F=99=82=C3=A9t=C3=A9=F0=9F=91=B6=F0= =9F=8F=BF =F0=9F=99=82=C3=A9t=C3=A9=F0=9F=91=B6=F0=9F=8F=BF "))))) 2000 runs on my idle Mac mini, M1 etc. * Without optimization Results | test | non-gc (s) | gc (s) | gcs | total (s) | err (= s) | |-------------------------+------------+--------+-----+-----------+------= ---| | replace-region-contents | 0.93 | 0.00 | 0 | 0.93 | 0.= 33 | |-------------------------+------------+--------+-----+-----------+------= ---| | total | 0.93 | 0.00 | 0 | 0.93 | 0.= 33 | * With opt. Results | test | non-gc (s) | gc (s) | gcs | total (s) | err (= s) | |-------------------------+------------+--------+-----+-----------+------= ---| | replace-region-contents | 0.89 | 0.00 | 0 | 0.89 | 0.= 32 | |-------------------------+------------+--------+-----+-----------+------= ---| | total | 0.89 | 0.00 | 0 | 0.89 | 0.= 32 | I think the large err values are because of the random and the O(ND) in replace-region-contents. Whatever, the optimization seems to pay off, so I'll add that to scratch/text-index on savannah later. Tests with the change: SUMMARY OF TEST RESULTS ----------------------- Files examined: 530 Ran 8041 tests, 7765 results as expected, 0 unexpected, 276 skipped I consider this feature done when that is in, and play with arm64 NEON a bit instead. In C++ ;-).
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 04:12:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 22 00:12:11 2025 Received: from localhost ([127.0.0.1]:42737 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u74zT-0007kL-0t for submit <at> debbugs.gnu.org; Tue, 22 Apr 2025 00:12:11 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:51615) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u74zQ-0007k7-Hf for 77924 <at> debbugs.gnu.org; Tue, 22 Apr 2025 00:12:09 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3995ff6b066so2407864f8f.3 for <77924 <at> debbugs.gnu.org>; Mon, 21 Apr 2025 21:12:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745295122; x=1745899922; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=hVIv5zgmPHgMvarwMS47WoU8pTy3QGZRk7haxdG839w=; b=fD+qj8C8ptm2Le/g+KNgchzXXPFVJ35HNqQ3EJZH6f7G1hGQtPnluEARBKnJogoWgA /fuT9TQKTCSPuRAdtmlPUySF9Qcs3DKcz9X0MVFI1MsATWwHlFO72MpOpquFpg1XniSA bHq+TLB0R3xRXN0rHFCjEx2kE379aWW0k2dnJ4+lI70LWQxHwahYbbDh00fzP3L+vuE4 2im6ObBAQgijAlDzJTvYAUYEcpBxMosZt+a26N9Pm0svACDEoHO3x2AJMJcolgxEW8WX f8QP7SdVLyQCAmQZE0PuM2n/AttR+VVknmHj2exvI34v/a0kWCUseahLpiaDUoGv5ujR Hnnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745295122; x=1745899922; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hVIv5zgmPHgMvarwMS47WoU8pTy3QGZRk7haxdG839w=; b=p0VvOgIk/q5LODkzPm5Sozq7hy2v03pbx94DJtbj9mOdQ9UyNzocAjaBnIAeXuGUb1 LgRAGMzIiWzx17c2Q1XhlVzTrq4MCRj/Fd5z8G2LeSYyN1OAJWa5HnthY2271QZgstUw bcOpZtcBkNOo337abdqFxtsBhiLZfkSu8UyHaKT/MpG5GRaR9ASgNb+YTSXa0DZtioQX o5ffjjGu+J+y4xG4K/LMymgG2zZUwHFKx/sM27pG2w09SQpbej+XDNP3c3LufmD74LMV yOtLxfPIHKwCzrLkSaimRAfSWMeR3L7XQRHT1BI/oHxRQFzsxXysJvE2N8aKRWf3037i utqg== X-Gm-Message-State: AOJu0YxiAZICq5mZC/vwxinbA+RXiEyD68ASs/1npIkX4YOdVrBbda7Z u2Y51jbA+MhrpmdWS3iTko/Uur8lRJl51Dw8K7NT/3aZE1qAZICIeSP3KA== X-Gm-Gg: ASbGncuWsUsNY92FP5CwUI6fSmajIO/1vkTf/qjKvPgrLXvNMWvw0l8lHyw3aI8nsxz 8UUatNdLP1C8LC1GHxjTdDEH/ds71rxYamFCNZjggXrr8iGVwtvomz+ttIw97nNt70VzAlOtRLe tiOEdba5G4bhcFU543dnmsXQ5vkJIc4iM/YT4R0XSGOJ8lGz5NT2IHjgdP6UsimTqA9MiYlnwJC ewHQ47mPvvZU2+5xTHUQ4m40J4doMs9GPEv+XAi/7DZUo7aLRsJs7hz3sRs1eWuaO4wzdftzY/h O2Hp0zOznYf0EXzGOr0yrfa2iFefr9Stqo0a6RSz9HIQcJ5TwzYhV25IMWKaZxdQKdWT4CH4SLU koIJvJ269lF84srS4J7ysfqFwMsirwts1dK7nZpr1pfes X-Google-Smtp-Source: AGHT+IEKSMMQP7pfvjG1yqbjGKdKa1M4UeCeNOnnVAumOjK7ApppRgY+xxiLxGNyDAWxYt7s+Qejfg== X-Received: by 2002:a5d:584e:0:b0:39c:140c:25e with SMTP id ffacd0b85a97d-39efba560b1mr10232167f8f.24.1745295121817; Mon, 21 Apr 2025 21:12:01 -0700 (PDT) Received: from pro2 (p200300e0b7301900b98b74cfc94b2689.dip0.t-ipconnect.de. [2003:e0:b730:1900:b98b:74cf:c94b:2689]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4406d5cf3a7sm157372395e9.32.2025.04.21.21.12.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 21:12:01 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Stefan Kangas <stefankangas@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> Date: Tue, 22 Apr 2025 06:12:00 +0200 Message-ID: <m27c3cesxb.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Monnier <monnier@HIDDEN>, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Kangas <stefankangas@HIDDEN> writes: > This sounds great. I pushed a couple of typo fixes while reading the > patches, please use them as you see fit (squash, etc.). Thanks, I've ported that back to my side. > > - Any chance you could add a comment explaining how you arrived at > text_index_interval=4*1024? If it's arbitrarily chosen, adding a > comment to that effect might be useful. It's neither completely arbitrary nor can I really say much about it. INTERVAL / 2 is basically the worst-case distance one has to scan through text. Don't really know what to say more, and the above is pretty obvious. > > - Maybe rename `text-index-interval` to `text-index--interval` (to > indicate that it's internal)? > > - I guess `use-text-index` can be removed? I've removed these Lisp variables a few days ago or so. They were only for experimenting with the whole thing. >> Please see the comments at the start of marker-vector.c and text-index.c >> for more details. Also see the thread(s) on emacs-devel with Stef an me. > > For posterity, I guess that would be: > > Re: Question about region caches > https://lists.gnu.org/r/emacs-devel/2025-03/msg01382.html > > PS. BTW, a small procedural thing. Instead of merging master into a > scratch/ branch, I recommend deleting the branch, rebasing it on > master, and then pushing it again. This way, when we later merge it > into master, we avoid the merge commits, and the history is kept > clean and more easily reviewable. Not the end of the world either > way, but something to consider. Sorry, too much work :-). (For reviewing a branch with merges from master I recommend to find the latest merge commit, take the parent commit on the master side, and range diff with that. (If you have the merge in the reflog, that speeds up finding the latest merge, but that's only the case if you did the merge in that repo.))
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 22 Apr 2025 02:29:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 21 22:29:59 2025 Received: from localhost ([127.0.0.1]:42016 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u73OZ-0006QS-8t for submit <at> debbugs.gnu.org; Mon, 21 Apr 2025 22:29:59 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]:46517) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>) id 1u73OW-0006Q6-0k for 77924 <at> debbugs.gnu.org; Mon, 21 Apr 2025 22:29:57 -0400 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-5f3f04b5dbcso6326662a12.1 for <77924 <at> debbugs.gnu.org>; Mon, 21 Apr 2025 19:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745288990; x=1745893790; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:from:to:cc:subject:date :message-id:reply-to; bh=LtugAM+2soJLY6Vo5WyLZZN6rdXf3MY443IWnAR+la0=; b=HcodGUEKfRkKg1OuKbqr2ZX8EkFQYsuuFdXX5Zk4dcuwFi+J8bWXQ4hhTZXWiQocRF I6wY21cuHo2KH8muGGCERHreC9/mdV7/GuYMoChMGvlSrcByH1hQSrm6CPLI6JLf+STh wF1arthN7mq8EwvaMJbJvJYGP+SmHOgfpnc4kYZkwDyYk4y5olC8+qg+fFJs4exgb1VJ E6TERmkXGd+XrbyavjnktDYBFUo7PETxSVBOZQb+/F2KEvzX3MqJt5g+qBG4PsgAbc+G 8G0yk6Kj4vUkP0lOPVECsEIJHIL3xkrQ/jIXfnCedcUwtVaJJyKffAeyne/0pXq5JJOR 2aMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745288990; x=1745893790; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LtugAM+2soJLY6Vo5WyLZZN6rdXf3MY443IWnAR+la0=; b=InoLe6Nw5DJ2742ZgN+jZzRgGY1/doBbVZ+xNzgaIH6pPGNxFm6JlcKhWhA8CAh0Ty zTXWziuS1gQ5XLtep1RUkxAsKLcQwaVu5eVX6z52SPApX0ALLz4d2iEHANeEMfIsBgYK LEVkIv/ijs9qZ6aHW5H4t+5uAIi8hz7GAEmPFBTVI1a765uNjV3SevWbXGELimL7fS3A 5RHdFZo4NnqSctYyQn+guQ7Xqth5y6Rczn1tc64+OBGMKtYHpo1X6NGNUV15+//PofxU NPMFFGGW1WkJwxns+7pXSN5qVFDKwNbKpFSM4CqVnq2EWnw2h/PE9HWuNOJCzkUCvoqh zDCQ== X-Forwarded-Encrypted: i=1; AJvYcCVOUHyVpII3jYBdV4TyNVYxCnxPK0g78YvMNpLU/UBJucmw1MKHCrpO9SzJu3oEhM093iiUuQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yza5uuXVWAEOsRkdy0QFZek50cBMR1wfH/5gVSRLiYdsBMP+ki0 Db+N92PCwd3puMhojmyunMZlORhzFF7p67KOXo/mS+JobZBBL+ZpxJGLAiK6kTEVJ+8/IoKcsyi d+VtIt2taBYBmuLsTxlQhpfrzWEE7SwnP X-Gm-Gg: ASbGncsfSGtHlO6vGe5Ae3XpQQqutFz6yvv880G6owPX3aUMzAN8lM1DCX3UTKpv13+ 87RdY9zIdYx48oyGt3xeMzHidnsYczNivTaN/jX4dUtSd+8VA+SaEb9ha5DH+9wphhucVZSdgq3 e7TGSWGPAdXoN/LsoQtd2bcOIS X-Google-Smtp-Source: AGHT+IEk7Gfbl0OniHnOZ1VkCJy3qesbBCbCkyNIBJ2ely3f6kfOWFnfu1cdvrbJPdA307+6DywYI0k99uOTpCPSBjI= X-Received: by 2002:a05:6402:2356:b0:5f6:21a4:61d5 with SMTP id 4fb4d7f45d1cf-5f62857414dmr11380628a12.17.1745288989730; Mon, 21 Apr 2025 19:29:49 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 21 Apr 2025 22:29:47 -0400 Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 21 Apr 2025 22:29:47 -0400 From: Stefan Kangas <stefankangas@HIDDEN> In-Reply-To: <m2jz7gp25p.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> MIME-Version: 1.0 Date: Mon, 21 Apr 2025 22:29:47 -0400 X-Gm-Features: ATxdqUFqPQGYNq0kzbhaE9F0TIBWpuuS7qnAH3sIfvyBsmsHLRu8SaiBzpMbiaw Message-ID: <CADwFkmmabgGhBFUFYeNuFUuJC575YZdA+PVaOh19Hnxj-A-1wQ@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>, 77924 <at> debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > This is about the branch scratch/text-index on savannah, which is a port > of what I have in my Emacs. > > The branch changes the implementation of Lisp markers. > > - Markers no longer form a doubly-linked list, they are stored in a > marker vector instead which allows O(1) insertion and deletion of > markers. (The idea of a marker vector is from what I did in igc. In my > Emacs, both igc and old GC use the same marker vector implementation. > The new one is different from the one in feature/igc.) > > - Lisp_Marker doesn't contain the character position directly. It is > stored in the marker vector instead. This leads to faster, > cache-friendly, marker position adjustments. > > - Markers don't contain byte positions. Byte positions are computed when > needed. Bytepos <-> charpos conversion are done using a text-index > data structure. This removes the heuristics currently used in master, > and allows removing byte positions from markers. > > In summary, I'd say performance is good, to say the least, in many cases > better, and it fixes corner cases leading the abysmal performance in > current master. This sounds great. I pushed a couple of typo fixes while reading the patches, please use them as you see fit (squash, etc.). - Any chance you could add a comment explaining how you arrived at text_index_interval=3D4*1024? If it's arbitrarily chosen, adding a comment to that effect might be useful. - Maybe rename `text-index-interval` to `text-index--interval` (to indicate that it's internal)? - I guess `use-text-index` can be removed? > Please see the comments at the start of marker-vector.c and text-index.c > for more details. Also see the thread(s) on emacs-devel with Stef an me. For posterity, I guess that would be: Re: Question about region caches https://lists.gnu.org/r/emacs-devel/2025-03/msg01382.html PS. BTW, a small procedural thing. Instead of merging master into a scratch/ branch, I recommend deleting the branch, rebasing it on master, and then pushing it again. This way, when we later merge it into master, we avoid the merge commits, and the history is kept clean and more easily reviewable. Not the end of the world either way, but something to consider.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 21 Apr 2025 18:37:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 21 14:37:12 2025 Received: from localhost ([127.0.0.1]:38539 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6w12-0001me-4S for submit <at> debbugs.gnu.org; Mon, 21 Apr 2025 14:37:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44648) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rms@HIDDEN>) id 1u6w0y-0001mO-2W for 77924 <at> debbugs.gnu.org; Mon, 21 Apr 2025 14:37:08 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <rms@HIDDEN>) id 1u6w0s-0004D9-L9; Mon, 21 Apr 2025 14:37:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=5xS9Dffv14cSATr9YgccjLjA+b3sqqTPiZ/V0+r/VD0=; b=gZGw+FZzCLZ4 zSMTj/+/OdH5+NFEVnPd1bBRo2c0sar9GfgpMH0wE6uNcdA002OMPG+T9OyuQfFAFH0cQjcK+4enc GmbARUP6qWiYlpcp9yppdJ/0pvMArkF02YBFUr2+u+EaXW0MTp3TKp3KeAyHvdZX8EMPOXqJCBZho NZX7speobTnw15tSLit5cS/V9xMue+Ru7TyA1G99Ti178ZIM2cy+jnIjnhQ7GkPq4tFaw028SUAXU dn6b1KyQa/PUmSmdaUxW13/nwUDHLPFe69kxGgh4lb4dIEzNOSLEC20uyMgnd0OGbhcw0doeyJiHq 8wJlNq8tuBJWvadbpLZnCw==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from <rms@HIDDEN>) id 1u6w0r-00055o-ST; Mon, 21 Apr 2025 14:37:01 -0400 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman <rms@HIDDEN> To: Gerd =?iso-8859-1?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2jz7gp25p.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=C3=B6llmann?= on Sat, 19 Apr 2025 18:05:38 +0200) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> Message-Id: <E1u6w0r-00055o-ST@HIDDEN> Date: Mon, 21 Apr 2025 14:37:01 -0400 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Reply-To: rms@HIDDEN Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] The one thing I worry about, regarding this new data structure, is that allocation of the vectors could get troblesome wnet there are many markers in a buffer. I don't know whether that theoretical problem makes a big difference in practice. The new scheme may be better. I just suggest looking at this question. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 21 Apr 2025 05:41:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 21 01:41:55 2025 Received: from localhost ([127.0.0.1]:58973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6juk-0004U8-Uv for submit <at> debbugs.gnu.org; Mon, 21 Apr 2025 01:41:55 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:58800) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6juh-0004TZ-UO for 77924 <at> debbugs.gnu.org; Mon, 21 Apr 2025 01:41:52 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-43ce71582e9so29318035e9.1 for <77924 <at> debbugs.gnu.org>; Sun, 20 Apr 2025 22:41:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745214106; x=1745818906; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F6n5TN1PKLlo04xHTY14abai59SWJMtQ/1bVxx0oy8A=; b=V8ez3hK2hGlaIfZDnNFATHz7DZcSMi3NSkNGCALCZKbHHLfng2lkVw922/3iIPuCkm vfVi0V13ftCk0r9grzxDY/mZYPdtfpXHFwdoU4IScCLzub+H1ppKRuj1AtKg1lkrH5ZC 80wuEZc98YED0B8PRHntd/rjSZpkBfrICOlAvmJOuECizIdFLMKayHug7NyDvtCHaQWq s7+7MwJfFPax7qsog0CujOHVsisxiP2d7NUasiw/GTQsi6Vm7juCzPlRdVf82+tO7IDO vZs3iG92+yBhXcqRUI2jXBx4BqpCMcH0Fwd5f/yMbdQN/FilrrlM94rNRTuRyzKMkQYQ n8Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745214106; x=1745818906; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=F6n5TN1PKLlo04xHTY14abai59SWJMtQ/1bVxx0oy8A=; b=rm2ylhY3gnZ0Jj/elmDjhCjxeS005VEC+BB4wl0d60I7CRzGla5B/K3t6T215hGmQr A6h3+Gpte2YwcmvtR+iv/e/3HOpqqJDbl5o4hDQxAVVZFYLtvGO96lbGnvsfOqOFM8Gt PGxMs48WDV90ZwifpqDhffDDYyLDz14n49t6V0dXEqZcXmS3fu4pZY6tp7mwFKEy9b7Q hf4L3bzXLxMZeLnSLR3alifp8/qpmh3pK7ZnDYnp4cuaAGtnIDbrBPcIhBATLbQwLbq/ 3Q3vz5NBvgOOhjOyRL376STfgdlyOTIinFV+Ym+HAtfzAhSLWvE14F0O9P/k4ex78f21 nhJA== X-Gm-Message-State: AOJu0YyTTmwcL6jvfO1MCU8pcyPr9FVMPI6qfqDll427Bj3VTPw0o+Et DYsguw9zFALKHrM6B7Ko1OvVTrqiJsmvHM1zTRREJlNUZuVtvKHm X-Gm-Gg: ASbGncttXsBGPF9K7JdQHJ1ln99+gDzjtOLe1b+E/6E78Nva1TdfkjHa495ekYiGq60 Lp2c8bPt/5O9Qe5xLnDG79XQDWKoNqginNJvZXIWTwBoxPYwK8MkjQprLWlSieSPsQnBMlVBG3a tjC1dhNZEr6nGo9eJ+r/yZgqC1n7MYFnm9eNn+7M1p7sEQrpDfiP1HEV8nVpWG2bGR4bcq/JORC RsGccftMQPSaO47rwr4O75Ei9t6bUF0Ywhec6aryK5qO94b8hPXDL8IWfCfkqjDZ+S949EZ2biv +RNy7UxaLbij49NrL4SddRbN1BLmJMorc9NhvzGIB7/fgA4DVClYrXBf49C4L/uV1liewaGgAjK qH0aSkjwr8KbdIQM3RftLmpxAVck06f3oX2sh/EysIw== X-Google-Smtp-Source: AGHT+IFNxg7VP/h/z45CezG4Ozg3U3UH1pW4xZBCaCnTOuVrlOqHp5ZNkmimdwdDg3d/H40nADtTAg== X-Received: by 2002:a05:6000:40db:b0:390:fb37:1bd with SMTP id ffacd0b85a97d-39efbacf35fmr8273929f8f.46.1745214105666; Sun, 20 Apr 2025 22:41:45 -0700 (PDT) Received: from pro2 (p200300e0b728b60058490051f8c259a0.dip0.t-ipconnect.de. [2003:e0:b728:b600:5849:51:f8c2:59a0]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4332c1sm10579424f8f.27.2025.04.20.22.41.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Apr 2025 22:41:45 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2plh6dt3q.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <86plh86rit.fsf@HIDDEN> <m2fri4ozpv.fsf@HIDDEN> <m2r01ndg5r.fsf@HIDDEN> <m2y0vv2pva.fsf@HIDDEN> <m2plh6dt3q.fsf@HIDDEN> Date: Mon, 21 Apr 2025 07:41:43 +0200 Message-ID: <m2ldrudqaw.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > I'll fix that a bit later today. Done.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 21 Apr 2025 04:41:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 21 00:41:25 2025 Received: from localhost ([127.0.0.1]:58583 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6iyD-0007L7-2Y for submit <at> debbugs.gnu.org; Mon, 21 Apr 2025 00:41:25 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:55714) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6iy9-0007Kr-HJ for 77924 <at> debbugs.gnu.org; Mon, 21 Apr 2025 00:41:22 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-43cebe06e9eso29897075e9.3 for <77924 <at> debbugs.gnu.org>; Sun, 20 Apr 2025 21:41:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745210475; x=1745815275; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a4yctWQ+K5GV/JUIZJYXyGh+x5gT0UW9J6vejl6I/Ko=; b=ko1DiD3xUQBF4QVROZi2FXNu/Y8J3b/E6nRZ+dQcuL/iIdfSdQSKoUKPhofKYIyjRn z2mXFsFSzrKjKgJ3UB99fnX3wU4EkwtS7wAQ2zhxCMr+5cPN8fT+dfKAcx8021l7jRmd d6Cb3Wyn9GLFBKHRL8VSMe7ov3KOyXgit0wZcCTdbW1aiBo9hRQAZ/WHyJt0yopAJJwi 2qyveVWN5ozaGTVbCnbKYPWy5tln6g0plPH225iuDM53sc5oLKheCqkimmYh+moPJ1zH bbSlf47KXkzn+Mhcw9/VFxLL4cCjV3rL7yXwj/LjIVLef5EL6xT6YYNNscpAiI1Zy2GV aa0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745210475; x=1745815275; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=a4yctWQ+K5GV/JUIZJYXyGh+x5gT0UW9J6vejl6I/Ko=; b=vvxXTd6iIVxlWFAXGhxC5JsVJVtxnbS8CzLGhKodmhy4pnQNgpqmSyIjEIIqSv9GxE FDrykeO86yQ+suJhkpxeWexzov4YMBpj3xFRTJ26I1TrMREV48E4Wa72+u3o9ejhomH6 keNbeH1CT5WJ5XrhZAs62wj5Pe3cHjINBOiJJLYAzrDP6yGcq8rEMnuV0c+Wr2Lotyf1 EhOpHkDPEUIcG4CEVuanHS8LlsfmphCZy+ulF+sz21nObd33h1WyBviHyqqOQTY2kjRR fRIoUS4t1FhWwd4eAodvKhW0b1Yas/59FCR1t3WneauPjomA0i9F6mB1LY4v/LptF24/ RQaQ== X-Gm-Message-State: AOJu0YyXQGD6q++SzatlHooC3Jx32R4WfjZNvyHHPHAfACXM8LSfs54M 2pLxsRYgZxm0bPI4y5Bxb+deptBbAel9teKE8I48rcQAagsO4QS8SAQmSA== X-Gm-Gg: ASbGncu/P4IIZS9FMRaGY7w3wmmOCzeS5qDc9d28lq3vA5LMQGYXFVieboGdnZ/B+Zf 5zr+Uc+LOu+wPdOjcdN4NQkLBwcfvU0MRxziRoTull/Yu1tdzhJKfZV1MMEugHntLN0OtuQ46ZA PtHPOsGY54/MiAKoi+onPE3VgEorAqc3UmDGQE7B/7EV04MpEXZ1mzY6lOinVkG1b1VPmqM1TcB BwD+ZudVDga/2581ovBP+cn65QDbDwbtPdFx00RbR6GLY1tDe3Qlymt9GIFDc/1cTEbW6fH5ujY FaWMJRTduVxALRUiZjcro03c9vwPl/rDAZg31zDp3NRR5Mv4EP4SHnC5DZAUnfPKKQ/HUxqj6FU Fa6fmKkDqSl9nhc5n0FwzjP8qKFjpODEERA3bal8a5wnQESw= X-Google-Smtp-Source: AGHT+IH6QxXfhY7Jvxvgixnjl9phvJiPV0Gef5HHfKJFicazE1K+s8zAobBWnPgvZAGs0zdB8lw7cQ== X-Received: by 2002:a05:600c:1c9d:b0:43b:ce36:7574 with SMTP id 5b1f17b1804b1-4406ab93b95mr84252345e9.11.1745210475142; Sun, 20 Apr 2025 21:41:15 -0700 (PDT) Received: from pro2 (p200300e0b728b60058490051f8c259a0.dip0.t-ipconnect.de. [2003:e0:b728:b600:5849:51:f8c2:59a0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4406d5bbcfesm120509575e9.23.2025.04.20.21.41.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Apr 2025 21:41:14 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2y0vv2pva.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <86plh86rit.fsf@HIDDEN> <m2fri4ozpv.fsf@HIDDEN> <m2r01ndg5r.fsf@HIDDEN> <m2y0vv2pva.fsf@HIDDEN> Date: Mon, 21 Apr 2025 06:41:13 +0200 Message-ID: <m2plh6dt3q.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: >> >>> Eli Zaretskii <eliz@HIDDEN> writes: >>> >>>> Are there any backward-incompatible changes with this? >>> >>> None I'm aware of. >>> >>>> Do all the tests still pass as well as they did before these changes? >>> >>> I got a SEGV in buffer-tests right now when I checked again that went >>> away an a second run. So I'll have to check that. >> >> SUMMARY OF TEST RESULTS >> ----------------------- >> Files examined: 530 >> Ran 8041 tests, 7765 results as expected, 0 unexpected, 276 skipped >> [scratch/text-index] gerd@mini 2025-04-19 22:51 >> >> Now fixed. > > Commit message: A warning: the branch currently contains a bug that can lead to a stack overflow that looks like this: (lldb) bt * thread #1, queue =3D 'com.apple.main-thread', stop reason =3D EXC_BAD_ACC= ESS (code=3D2, address=3D0x16b0ffff0) frame #0: 0x000000010451bc38 emacs`ensure_charpos_indexed(b=3D0x0000000= 107280d28, charpos=3D4415031360) at text-index.c:356 frame #1: 0x000000010451bb10 emacs`text_index_charpos_to_bytepos(b=3D0x= 0000000107280840, charpos=3D25980) at text-index.c:621:3 frame #2: 0x00000001046cc1d0 emacs`marker_vector_bytepos(m=3D0x00000001= 07280d28) at marker-vector.c:323:10 frame #3: 0x0000000104529aec emacs`marker_byte_position(marker=3D(struc= t Lisp_Marker *) $52 =3D 0x0000000107280d28) at marker.c:376:29 frame #4: 0x000000010451cfb4 emacs`BUF_PT_BYTE(buf=3D0x0000000107280840= ) at buffer.h:909:6 !gud 909:6:/Users/gerd/emacs/github/cl-packages/src/buffer.h * frame #5: 0x000000010451bdec emacs`narrow_charpos_bounds(b=3D0x00000001= 07280840, prev=3D0x000000016b100178, next=3D0x000000016b100168, charpos=3D2= 5980) at text-index.c:549:42 frame #6: 0x000000010451bb78 emacs`text_index_charpos_to_bytepos(b=3D0x= 0000000107280840, charpos=3D25980) at text-index.c:628:23 frame #7: 0x00000001046cc1d0 emacs`marker_vector_bytepos(m=3D0x00000001= 07280d28) at marker-vector.c:323:10 frame #8: 0x0000000104529aec emacs`marker_byte_position(marker=3D(struc= t Lisp_Marker *) $52 =3D 0x0000000107280d28) at marker.c:376:29 frame #9: 0x000000010451cfb4 emacs`BUF_PT_BYTE(buf=3D0x0000000107280840= ) at buffer.h:909:6 frame #10: 0x000000010451bdec emacs`narrow_charpos_bounds(b=3D0x0000000= 107280840, prev=3D0x000000016b1002c8, next=3D0x000000016b1002b8, charpos=3D= 25980) at text-index.c:549:42 frame #11: 0x000000010451bb78 emacs`text_index_charpos_to_bytepos(b=3D0= x0000000107280840, charpos=3D25980) at text-index.c:628:23 frame #12: 0x00000001046cc1d0 emacs`marker_vector_bytepos(m=3D0x0000000= 107280d28) at marker-vector.c:323:10 frame #13: 0x0000000104529aec emacs`marker_byte_position(marker=3D(stru= ct Lisp_Marker *) $52 =3D 0x0000000107280d28) at marker.c:376:29 frame #14: 0x000000010451cfb4 emacs`BUF_PT_BYTE(buf=3D0x000000010728084= 0) at buffer.h:909:6 The reason for that is that functions like BUF_PT (and maybe others) are "too smart", in the case of indirect buffers, for what I need in the text index. I'll fix that a bit later today.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 20 Apr 2025 08:34:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 20 04:34:28 2025 Received: from localhost ([127.0.0.1]:44920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6Q8B-0006Zo-K9 for submit <at> debbugs.gnu.org; Sun, 20 Apr 2025 04:34:27 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:56820) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6Q89-0006ZZ-Q1 for 77924 <at> debbugs.gnu.org; Sun, 20 Apr 2025 04:34:26 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-43edecbfb94so33310055e9.1 for <77924 <at> debbugs.gnu.org>; Sun, 20 Apr 2025 01:34:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745138059; x=1745742859; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=TH2hoS2oGQcgBuXKJq7NKFRN4T7Zu8gWCvEwogdIpCc=; b=JRUt7mlqggMbOQ3C7oQTNFx1Fx0cJ/B0q0NSiU2ktEfS3sXeBMgrbYZXqDuNLBd9g6 MOgwCpCZVlz8UbMQuSVBndRhstn/uAJn+2mNP6GfEjFZDWs1rpL0qtXIIANCtpHPbBCi xRahbxw38TbxlthPLEXTH8XVjYnKgVKSeTrksUvPc2B2lbqxor5sVroA8StYi4OagX5H a2ZbG0j6WopAmymQc6bX5THf0ylMPhH+iq/H7uBxtSco2eW6a6eC2LCYzrz1BRYXGxb0 e7FWjeDRhvzsOGc0FWgNPAUH3LgykljhSkM6rJ4mQrVSvBT2hK6gP6lj5wgu9qYWBDRy 6NMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745138059; x=1745742859; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=TH2hoS2oGQcgBuXKJq7NKFRN4T7Zu8gWCvEwogdIpCc=; b=nTXSKMS6xoUsNU1ooaRcZMqsSGDvQyIrEZf0Ln2CSTOVg1Um7bS5IC/9pCOvQzwUAM Y3PZJMH4oZrddv/jvQ4XLV9SNdevZ+eNvqV1JAprjokjdzp0IY6jSfe6Z84mksB9/sW3 eJBAm2zgBXVlaJTMcN/xVdz+ujd7NGf7wh/dcRIL9Q8nwJElrj/XoOY8LkS8J+aZV7bE H3bP3jBCs5Ghtb/09t6JEA3IcCHMVgcAvzYfdJyvzUSFs1ONZlj2CHXVLWExS3hdcHLi O4o66k9b1fjGpG1k+Uburu/n50kRMFMFZR+ZCVeXXAGGbKV+kaaaWV1qJ0bs3SIIBsdn 3k1w== X-Gm-Message-State: AOJu0YySSQ67RnMfqIOWSY3J7+R0Dfvpm9GR7UTHT5keyVBgoOTTEA1H B4iMOTctkOpzsyfo8zCwdZ0+jKNsgMZ5RnQwFmTgkyWF8BC3HpSI X-Gm-Gg: ASbGnctqJZtaMWS/+HUc4phxcNk1qODVqCHuBl0gLstBOCdiF9texxaJtQk8p9VySRD UuXYiF18FCp7C8d5oc81jXFMKh7P2GepA/JuY1S44tgztSFeFdJ7IZnr4KIeqOKaIJX0/sjCHe1 bF5uqfrt/kGletypFfyDfU7L1xXlX4CjXLndhWxWi/z9EnDPIqLb3QfcXuayKvVwvGb1Dzrp1h6 bfocX0t7hSqFbFAAy+nphWSA8zGDXLRXwYYOLG0bMtr/4IycTsQFETsb9zOelFzss5yfeDZVOSc kmBoFQc3rSxQ7nY7PM44l/RF/HgE/GpsSvRh1soNe2GZVlcdZLkRGh8Ic6bMcHlHyFsmMt6RV6s Ox3D4LN0RjazRMU0aG9YVw/gx14TIyno34DgjLv1M1pGm X-Google-Smtp-Source: AGHT+IHEQRVFUr7ZBe3VJHoQLi0qX0r5oAnDgX8/OQodcqxeHfsrpfKDf6OnonqIP/dlkcxbcQT/YQ== X-Received: by 2002:a05:600c:a143:b0:43d:878c:7c40 with SMTP id 5b1f17b1804b1-44076c9c6fbmr31452725e9.10.1745138059065; Sun, 20 Apr 2025 01:34:19 -0700 (PDT) Received: from pro2 (p200300e0b720a300c964490db7e76205.dip0.t-ipconnect.de. [2003:e0:b720:a300:c964:490d:b7e7:6205]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4206fasm8138747f8f.2.2025.04.20.01.34.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Apr 2025 01:34:18 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2r01ndg5r.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <86plh86rit.fsf@HIDDEN> <m2fri4ozpv.fsf@HIDDEN> <m2r01ndg5r.fsf@HIDDEN> Date: Sun, 20 Apr 2025 10:34:17 +0200 Message-ID: <m2y0vv2pva.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> Eli Zaretskii <eliz@HIDDEN> writes: >> >>> Are there any backward-incompatible changes with this? >> >> None I'm aware of. >> >>> Do all the tests still pass as well as they did before these changes? >> >> I got a SEGV in buffer-tests right now when I checked again that went >> away an a second run. So I'll have to check that. > > SUMMARY OF TEST RESULTS > ----------------------- > Files examined: 530 > Ran 8041 tests, 7765 results as expected, 0 unexpected, 276 skipped > [scratch/text-index] gerd@mini 2025-04-19 22:51 > > Now fixed. Commit message: --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=text-index-change.log Content-Transfer-Encoding: base64 TmV3IG1hcmtlcnMsIHRleHQgaW5kZXgsIG1hcmtlciB2ZWN0b3JzIChidWcjNzc5MjQpCgpUaGlz IGNoYW5nZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIExpc3AgbWFya2Vycy4KCi0gTWFya2VycyBu byBsb25nZXIgZm9ybSBhIHNpbmdseS1saW5rZWQgbGlzdCwgdGhleSBhcmUgc3RvcmVkIGluIGEK ICBtYXJrZXIgdmVjdG9yIGluc3RlYWQgd2hpY2ggYWxsb3dzIE8oMSkgaW5zZXJ0aW9uIGFuZCBk ZWxldGlvbiBvZgogIG1hcmtlcnMuIChUaGUgaWRlYSBvZiBhIG1hcmtlciB2ZWN0b3IgaXMgZnJv bSB3aGF0IEkgZGlkIGluIGlnYy4gSW4gbXkKICBFbWFjcywgYm90aCBpZ2MgYW5kIG9sZCBHQyB1 c2UgdGhlIHNhbWUgbWFya2VyIHZlY3RvciBpbXBsZW1lbnRhdGlvbi4KICBUaGUgbmV3IG9uZSBp cyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGluIGZlYXR1cmUvaWdjLikKCi0gTGlzcF9NYXJrZXIg ZG9lc24ndCBjb250YWluIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gZGlyZWN0bHkuIEl0IGlzCiAg c3RvcmVkIGluIHRoZSBtYXJrZXIgdmVjdG9yIGluc3RlYWQuIFRoaXMgbGVhZHMgdG8gZmFzdGVy LAogIGNhY2hlLWZyaWVuZGx5LCBtYXJrZXIgcG9zaXRpb24gYWRqdXN0bWVudHMuCgotIE1hcmtl cnMgZG9uJ3QgY29udGFpbiBieXRlIHBvc2l0aW9ucy4gQnl0ZSBwb3NpdGlvbnMgYXJlIGNvbXB1 dGVkIHdoZW4KICBuZWVkZWQuIEJ5dGVwb3MgPC0+IGNoYXJwb3MgY29udmVyc2lvbiBhcmUgZG9u ZSB1c2luZyBhIHRleHQtaW5kZXgKICBkYXRhIHN0cnVjdHVyZS4gVGhpcyByZW1vdmVzIHRoZSBo ZXVyaXN0aWNzIGN1cnJlbnRseSB1c2VkIGluIG1hc3RlciwKICBhbmQgYWxsb3dzIHJlbW92aW5n IGJ5dGUgcG9zaXRpb25zIGZyb20gbWFya2Vycy4KClBsZWFzZSBzZWUgdGhlIGNvbW1lbnRzIGF0 IHRoZSBzdGFydCBvZiBtYXJrZXItdmVjdG9yLmMgYW5kIHRleHQtaW5kZXguYwpmb3IgbW9yZSBk ZXRhaWxzLiBBbHNvIHNlZSB0aGUgdGhyZWFkKHMpIG9uIGVtYWNzLWRldmVsIHdpdGggU3RlZiBh biBtZS4KCiogc3JjL21hcmtlci12ZWN0b3IuW2NoXSwgc3JjL3RleHQtaW5kZXguW2NoXTogTmV3 IGZpbGVzLgoqIHRlc3Qvc3JjL3RleHQtaW5kZXgtdGVzdHMuZWw6IE5ldyBmaWxlLgoKKiBzcmMv TWFrZWZpbGUuaW4gKGJhc2Vfb2JqKTogQWRkIG1hcmtlci12ZWN0b3IubyBhbmQKdGV4dC1pbmRl eC5vLgoKKiBzcmMvbGlzcC5oIChnY192c2l6ZSk6IE5ldyBmdW5jdGlvbi4KKHN0cnVjdCBMaXNw X01hcmtlcik6IFJlbW92ZSBwb3NpdGlvbnMgYW5kIG5leHQgcG9pbnRlci4gQWRkCm1hcmtlciB2 ZWN0b3IgaW5kZXguCgoqIHNyYy9hbGxvYy5jIChGbWFrZV9tYXJrZXIsIGJ1aWxkX21hcmtlcik6 IEFkYXB0IHRvIExpc3BfTWFya2VyCmNoYW5nZXMuCihtYXJrX2J1ZmZlcik6IFNldCBtYXJrZXIg dmVjdG9yIG1hcmtlZC4KKHVuY2hhaW5fZGVhZF9tYXJrZXJzKTogTmV3IGltcGxlbWVudGF0aW9u LgoKKiBzcmMvYnVmZmVyLmg6IChzdHJ1Y3QgYnVmZmVyX3RleHQpOiBBZGQgdGV4dCBpbmRleCBh bmQgbWFya2VyCnZlY3Rvci4KCiogc3JjL2J1ZmZlci5jOiAoRmdldF9idWZmZXJfY3JlYXRlKTog SW5pdGlhbGl6ZSBidWZmZXIncyB0ZXh0CmluZGV4IGFuZCBtYXJrZXIgdmVjdG9yLgooY2xvbmVf cGVyX2J1ZmZlcl92YWx1ZXMpOiBHZXQvc2V0IGNoYXJwb3MgdmlhIG1hcmtlciB2ZWN0b3IuCihy ZWNvcmRfYnVmZmVyX21hcmtlcnMpOiBDYWxsIHNldF9tYXJrZXJfYm90aCB3aXRob3V0IGJ5dGVw b3MuCihGbWFrZV9pbmRpcmVjdF9idWZmZXIpOiBJbml0aWFsaXplIG93biB0ZXh0J3MgaW5kZXgg dG8gTlVMTC4KQ2FsbCBidWlsZF9tYXJrZXIgd2l0aG91dCBieXRlcG9zLgooRmtpbGxfYnVmZmVy KTogVXNlIERPX01BUktFUlMgYW5kIG1hcmtlcl92ZWN0b3JfcmVzZXQuIEZyZWUgdGV4dAppbmRl eC4KKHN3YXBfYnVmZmVyX292ZXJsYXlzKTogVXNlIERPX01BUktFUlMuCihGc2V0X2J1ZmZlcl9t dWx0aWJ5dGUpOiBVc2UgRE9fTUFSS0VSUwoKKiBzcmMvY2FsbGludC5jIChGY2FsbF9pbnRlcmFj dGl2ZWx5KTogQ2FsbCBzZXRfbWFya2VyX2JvdGgKd2l0aG91dCBieXRlcG9zLgoKKiBzcmMvY29k aW5nLmMgKGRlY29kZV9jb2Rpbmdfb2JqZWN0KTogVXNlIERPX01BUktFUlMuCihkZWNvZGVfY29k aW5nX29iamVjdCk6IEdldC9zZXQgY2hhcnBvcyB2aWEgbWFya2VyIHZlY3Rvci4gVXNlCkRPX01B UktFUlMuCgoqIHNyYy9jb21wb3NpdGUuYyAoYXV0b2NtcF9jaGFycyk6IERvbid0IHBhc3MgYnl0 ZXBvcyB0bwpidWlsZF9tYXJrZXIuCgoqIHNyYy9kaXNwZXh0ZXJuLmggKFNFVF9NQVJLRVJfRlJP TV9URVhUX1BPUyk6RG9uJ3QgcGFzcyBieXRlcG9zCnRvIHNldF9tYXJrZXJfYm90aC4KCiogc3Jj L2VkaXRmbnMuYyAoRnBvaW50X21hcmtlciwgRnBvaW50X21pbl9tYXJrZXIpOgooRnBvaW50X21h eF9tYXJrZXIpOiBEb24ndCBidWlsZF9tYXJrZXIgd2l0aCBieXRlcG9zLgooc2F2ZV9yZXN0cmlj dGlvbl9zYXZlXzEsIHNhdmVfcmVzdHJpY3Rpb25fcmVzdG9yZV8xKToKQ2hhbmdlIHRvIG5vdCB1 c2UgYnl0ZXBvcy4gVXNlIERPX01BUktFUlMuCih0cmFuc3Bvc2VfbWFya2Vycyk6Cih0cmFuc3Bv c2VfbWFya2Vycyk6Cih0cmFuc3Bvc2VfbWFya2Vycyk6CgoqIHNyYy9lbWFjcy5jIChtYWluKTog Q2FsbCBpbml0X3RleHRfaW5kZXggYW5kCnN5bW5zX29mX3RleHRfaW5kZXguCgoqIHNyYy9mbnMu YyAoaW50ZXJuYWxfZXF1YWxfMSk6IERvbid0IHVzZSBtYXJrZXIgYnl0ZXBvcy4KKHZhbHVlX2Nt cCk6IEJldCBjaGFycG9zIHZpYSBtYXJrZXIgdmVjdG9yLgooc3hoYXNoX29iaik6IERvbid0IHVz ZSBtYXJrZXIgYnl0ZXBvcy4KCiogc3JjL2luZGVudC5jIChjaGVja19kaXNwbGF5X3dpZHRoLCBy ZXN0b3JlX3dpbmRvd19idWZmZXIpOgooRnZlcnRpY2FsX21vdGlvbik6IENhbGwgc2V0X21hcmtl cl9ib3RoIHdpdGhvdXQgYnl0ZXBvcy4KCiogc3JjL2luc2RlbC5jIChhZGp1c3Rfc3VzcGVuZF9h dXRvX2hzY3JvbGwpOiBHZXQgY2hhcnBvcyB2aWEgbWFya2VyIHZlY3Rvci4KKGFkanVzdF9tYXJr ZXJzX2Zvcl9kZWxldGUsIGFkanVzdF9tYXJrZXJzX2Zvcl9pbnNlcnQpOgooYWRqdXN0X21hcmtl cnNfZm9yX3JlcGxhY2UpOiBVc2UgdGV4dCBpbmRleCBmdW5jdGlvbnMuCihjb3VudF9ieXRlcyk6 IFJlbW92ZWQuCihhZGp1c3RfbWFya2Vyc19ieXRlcG9zKTogUmVtb3ZlIGNvZGUgYWRqdXN0aW5n IGJ5dGVwb3MuCgoqIHNyYy9scmVhZC5jIChyZWFkY2hhciwgdW5yZWFkY2hhcik6IEdldC9zZXQg Y2hhcnBvc3ZpYSBtYXJrZXIKdmVjdG9yLgoKKiBzcmMvbWFya2VyLmMgKGNhY2hlZF9jaGFyb3Ms IGNhY2hlZF9ieXRlcG9zLCBjYWNoZWRfYnVmZmVyKToKKGNhY2hlZF9tb2RpZmYpOiBSZW1vdmVk LgooY2xlYXJfY2hhcnBvc19jYWNoZSk6IEVtcHRpZWQuCihidWZfYnl0ZXBvc190b19jaGFycG9z LCBidWZfY2hhcnBvc190b19ieXRlb2lzKTogVXNlIHRleHQKaW5kZXguIFJlbW92ZSBvbGQgaW1w bGVtZW50YXRpb24uCihGbWFya2VyX3Bvc2l0aW9uLCBGbWFya2VyX2xhc3RfcG9zaXRpb24pOiBH ZXQgY2hhcnBvcyB2aWEgbWFya2VyIHZlY3Rvci4KKGF0dGFjaF9tYXJrZXIpOiBSZW1vdmUgYnl0 ZXBvcyBwYXJhbWV0ZXIuCihzZXRfbWFya2VyX2ludGVybmFsKTogRG9uJ3QgdXNlIGJ5dGUgcG9z aXRpb25zLgooc2V0X21hcmtlcl9ib3RoKTogUmVtb3ZlIGJ5dGVwb3MgcGFyYW1ldGVyLiBEb24n dCBhY3Qgb24gYnl0ZXBvcy4KKHNldF9tYXJrZXJfcmVzdHJpY3RlZF9ib3RoKTogRG9uJ3QgdXNl IGJ5dGUgcG9zaXRpb25zLgooc2V0X21hcmtlcl9yZXN0cmljdGVkX2JvdGgpOiBSZW1vdmUgYnl0 ZXBvcyBwYXJhbWV0ZXIuCih1bmNoYWluX21hcmtlcik6IFVzZSBtYXJrZXIgdmVjdG9yLgoobWFy a2VyX3Bvc2l0aW9uLCBtYXJrZXJfYnl0ZV9wb3NpdGlvbik6IFVzZSBtYXJrZXIgdmVjdG9yLgoK KiBzcmMvcGR1bXBlci5jIChkdW1wX21hcmtlcik6IEFkYXB0IHRvIGNoYW5nZXMgaW4gTGlzcF9N YXJrZXIuCihkdW1wX2J1ZmZlcik6IEFkYXB0IHRvIGNoYW5nZXMgaW4gc3RydWN0IGJ1ZmZlcl90 ZXh0LgoKKiBzcmMvcHJpbnQuYyAocHJpbnRfZmluaXNoKTogQ2FsbCBzZXRfbWFya2VyX2JvdGgg d2l0aG91dCBieXRlcG9zLgoKKiBzcmMvcHJvY2Vzcy5jICh1cGRhdGVfcHJvY2Vzc19tYXJrLCBy ZWFkX3Byb2Nlc3Nfb3V0cHV0X2FmdGVyX2luc2VydCk6CihGaW50ZXJuYWxfZGVmYXVsdF9wcm9j ZXNzX3NlbnRpbmVsKTogQ2FsbCBzZXRfbWFya2VyX2JvdGggd2l0aG91dApieXRlcG9zLgoKKiBz cmMvdW5kby5jIChyZWNvcmRfbWFya2VyX2FkanVzdG1lbnRzKTogR2V0IGNoYXJwb3MgdmlhIG1h cmtlcgp2ZWN0b3IuCgoqIHNyYy93aW5kb3cuYyAoc2VsZWN0X3dpbmRvd18xLCB3aW5kb3dfcG9p bnQpOgooRmRlbGV0ZV9vdGhlcl93aW5kb3dzX2ludGVybmEsIHNldF93aW5kb3dfYnVmZmVyKToK KHRlbXBfb3V0cHV0X2J1ZmZlcl9zaG93LCBGc3BsaXRfd2luZG93X2ludGVybmFsKToKKHdpbmRv d19zY3JvbGxfZm9yX2xvbmdfbGluZXMsIHdpbmRvd19zY3JvbGxfcGl4ZWxfYmFzZWQpOgood2lu ZG93X3Njcm9sbF9saW5lX2Jhc2VkLCBzY3JvbGxfY29tbWFuZCk6CihGcmVjZW50ZXIsIEZtb3Zl X3RvX3dpbmRvd19saW5lLCBGc2V0X3dpbmRvd19jb25maWd1cmF0aW9uKToKKEZzZXRfd2luZG93 X2NvbmZpZ3VyYXRpb24sIEZzZXRfd2luZG93X2NvbmZpZ3VyYXRpb24pOgooc2F2ZV93aW5kb3df c2F2ZSk6IERvbid0IHBhc3MKYnl0ZXBvcyBwYXJhbSB0byBzZXRfbWFya2VyXyogZnVuY3Rpb25z LCBidWlsZF9tYXJrZXIgZXRjLgoKKiBzcmMveGRpc3AuYyAoRmJ1ZmZlcl90ZXh0X3BpeGVsX3Np emUsICBtZXNzYWdlX2RvbG9nKToKKHdpdGhfZWNob19hcmVhX2J1ZmZlciwgdW53aW5kX3dpdGhf ZWNob19hcmVhX2J1ZmZlcik6CihyZXNpemVfbWluaV93aW5kb3csIGZvcm1hdF9tb2RlX2xpbmVf dW53aW5kX2RhdGEpOgoocmVkaXNwbGF5X3dpbmRvdywgcmVkaXNwbGF5X3dpbmRvdywgcmVkaXNw bGF5X3dpbmRvdyk6Cih0cnlfd2luZG93KTogRG9uJ3QgdXNlIG1hcmtlciBieXRlcG9zLCBwYXNz IGJ5dGVwb3MgcGFyYW0gdG8Kc2V0X21hcmtlcl8qIGZ1bmN0aW9ucywgZXRjLgo= --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 19 Apr 2025 20:56:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 19 16:56:32 2025 Received: from localhost ([127.0.0.1]:38678 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6FEk-00071s-ON for submit <at> debbugs.gnu.org; Sat, 19 Apr 2025 16:56:32 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:44308) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6FEe-000709-Tv for 77924 <at> debbugs.gnu.org; Sat, 19 Apr 2025 16:56:27 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-39efc1365e4so739930f8f.1 for <77924 <at> debbugs.gnu.org>; Sat, 19 Apr 2025 13:56:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745096179; x=1745700979; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gBhlG0sauO9gvuFz1FvZBSwGf51snW/0rypj0VQNIm0=; b=Lz2W02vwQ/cXY4lo3gWmJBnHwpfDwmFuhHV+Pgk8sW9NNrugqHfqcSjubqBvQuR2DJ gAaufwYmE2hLgYhpI7FQ4wZ6CF76Eg+d4cKSTV70FXp/ucF5rJbEnsd74DRWCoTNmwOs +GGOwucui0vw0uCQ6NwDcju7J5jP01g43tpTpcYR405l0UUrTGY9/w+GaNgE3Ww2UUq6 k4V+SChYdlQDqaYII5uE6Er8adldZLzc3V1sahGCpRFjdMFNSimJLdkyQzGCGZD3wR/k d2oekDZTqrUiDRnk/oXyKctuSCAlOs9LkjAvCXhRDxrY9hxqJ/odtQLuCA+nWRp/Jk3k nF7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745096179; x=1745700979; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gBhlG0sauO9gvuFz1FvZBSwGf51snW/0rypj0VQNIm0=; b=ebECDxSX+GYRlYlA2icr/9w0lB0Eo288jL7sE5A/DkSQ2c0OT5Bx10L1FdpmVcq+We O7KFWkTDdx9Lt6Ejtg+YfJjVCd5ioULw7FHalwqYi/B99hrootX+dxBVXMZ+wbnl5xjj TKJ/EhVYURDuNYFEeB8rXt+WBHEprkQ/b1lcK1451Lfd+9MndBMG4BBXGkbFujRv4qhg 5SkLPw1zFYhdOzC6ljUUGbo8w7SZaCHLiOmJezKCKaYxTTOv56HbKJbsXc6EjXS19fSG jvJrqKHYKPgg5SrLQgxnnTgbAnhMEmoNALNag0iHYVjp1axJGSoAckpVCRa9m91/QRh+ QRow== X-Gm-Message-State: AOJu0Yx3a/NeP0+LbYn6//Td9xYNheLShVdOIcR2qqdnH+pb7b8i3rzV v/Sv4pTg14WYzjIckMIzI/hB19R59wYwtNy3YM0e335Hqw4IzYB9 X-Gm-Gg: ASbGnctZhTIXpzIH7jnyXzwHVpEG9ZNk00bDbILevrfv1MIrIBX3u1pxMymoIJZFs9J yIkmI2VCk193iqeZNN9kf7TSlXaV2sSwP9TrbYKFAlruy1F5kwKO6u76nG5xEiZ4BpC6SmwNVmU BnrrcH98vfdbZEs6xgk0E0JBqGMltNj+Yotd3YQSVJoVpT1BXzlMAUV8PCTaXHk7CQYAR6W8Iuv tirNwS09vRkRd3j28iRdDDbKedr806EjeDWoFs+JzmpwcyInSjMXu+0u/LOExH/tTnCpN1Z1c6t nUGxE6dIQMkckfiScLZ1K3phsvPUrrI913rFCOZdnfj/4BJ35mvU3gHFJ/PDa/BHOtqYqwNwp4n pD37TLWLSN1ujYR3RmWuY8B9tbRNSDPmfNYlJVgd88rnc2GUI7w== X-Google-Smtp-Source: AGHT+IF6vB7I9hX7Mh23zeK99E4EXD8Z+iuiuFlgX/fdvNQD2VrwhZeG2KFN/SzOH7RSGQiwAr86gw== X-Received: by 2002:a05:6000:4012:b0:390:f9d0:5e3 with SMTP id ffacd0b85a97d-39efba37dbfmr5596446f8f.1.1745096178459; Sat, 19 Apr 2025 13:56:18 -0700 (PDT) Received: from pro2 (p200300e0b7179a00edfd9109c079612a.dip0.t-ipconnect.de. [2003:e0:b717:9a00:edfd:9109:c079:612a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa43c023sm6771029f8f.46.2025.04.19.13.56.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 13:56:18 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <m2fri4ozpv.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <86plh86rit.fsf@HIDDEN> <m2fri4ozpv.fsf@HIDDEN> Date: Sat, 19 Apr 2025 22:56:16 +0200 Message-ID: <m2r01ndg5r.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Eli Zaretskii <eliz@HIDDEN> writes: > >> Are there any backward-incompatible changes with this? > > None I'm aware of. > >> Do all the tests still pass as well as they did before these changes? > > I got a SEGV in buffer-tests right now when I checked again that went > away an a second run. So I'll have to check that. SUMMARY OF TEST RESULTS ----------------------- Files examined: 530 Ran 8041 tests, 7765 results as expected, 0 unexpected, 276 skipped [scratch/text-index] gerd@mini 2025-04-19 22:51 Now fixed.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 19 Apr 2025 16:58:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 19 12:58:30 2025 Received: from localhost ([127.0.0.1]:36341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6BWQ-0007NG-2N for submit <at> debbugs.gnu.org; Sat, 19 Apr 2025 12:58:30 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:45189) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6BWN-0007Mt-Nq for 77924 <at> debbugs.gnu.org; Sat, 19 Apr 2025 12:58:28 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso22539975e9.2 for <77924 <at> debbugs.gnu.org>; Sat, 19 Apr 2025 09:58:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745081901; x=1745686701; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=60PrrnpWeSVE/nv5wmLOv1p4KC+SIWuq8eDu/MjvDMs=; b=BNFL2F0vga7tz8iVOM0z2hPg/NmGAtMwCXEwMQUGBeIZWDmF25Hb0ljI5YkDtjFlID JCrftjHphgHAMFdsLS9H3Hq2OOrArsg93zgptyaZB79dGymZTJjl9hhoEEE5GmI/H34Y Rw149wfIYBjrJkgISCgPF3XaJeez8vDZROjGk1qbiGkNUx4c+YRhUbDN44gVJaIqQhTM Vg1/wPgedni09+Lz3uNOC6MXaZlSfSFHTQ2xLthCeWSzQcLVJqMDkifYdkppX0PKF9iQ XA080LfSGdVvFDRX0PmxeLV097PC0NW22eh77xvPBM8fhgZlmrF8gfgwcpmKOL+/rVXC lZlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745081901; x=1745686701; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=60PrrnpWeSVE/nv5wmLOv1p4KC+SIWuq8eDu/MjvDMs=; b=h9CVCODiU9F8oSQYgDRfCM1HKZR/C6yoXi1NQkaYNyi+AMV18iRt0zrYlYCdH2expS DX1o/yarped2BnBht9ZTP1S7ygSflIyhMB2tzIdJSoFaa7Y2QG+MTV8J0Fj/1zkkiw0m lx7FExv2zkwXk2QJBLsd9tc1E3weY/ftuR9hdmVC/+7YkZxHWFZPpgyVGBFUkRX0aBWb 9xaC/vvJ0xLcvnx41Cxrtb182zTAunExQKvko7RBex+X/50N29lHOyHIMBi6FbgBzRMx Q6zF4ZRj+lUAHxaCCHYzmSeaMgYjmSlxGXUu9i1ZYP0DU/lcqJws+GitqVQkFCEwECVb y0MQ== X-Gm-Message-State: AOJu0YzmWm6zWISk+ttHy3OtiXUs8Gq7J2iKmNMfaizAQau0t41FcUhb 8+zJfb+cTxWmp6xRgFggdaiEjqDBQ+zzaQhZbMJSBoeUIMGrhW0L X-Gm-Gg: ASbGncsvydegQj599fV9fMGD4kzdSx4d9U3XmHDyP+p2hEsHokXzwoTcmBOkWAITzzb 9yBAg9KaNKpbeKAakj44dhY6nlartDkZ3vXLbQ8MNeB+qa1pdCHtdlf/j4uYfFoSITiqUn6nlQ3 uI6Mvvm8FluSVothHg4e+tEf1UcDqcl31YmhyMU5EUgIrIvKY4MNtljrod6PNcUJRjwZrzco4HX Eg5gYZIGNpt2r84lT8h2hAsSsgUSunPVyHlgM2wDL0KI2eWbCx5RP6uvJLD2MFcSqRbph/Oc1dW DE7yTy4C3IgCMgaL9EXOJN+nyZsfvmS9/ccylbP4gdfuggK56vWN207Xy5QGIui9oW37F0hTj0C BZXDrya7mgQSBIyW5aVqkqjo3Zik/f5/hNEOL8vcnY70AAJPq3w== X-Google-Smtp-Source: AGHT+IFtiiUDHtp/y9OET7/E4nnTbUsp2FSclehAVron4Ih2hIs47dyPUMSEeGq197A0b539ftcWYQ== X-Received: by 2002:a5d:584e:0:b0:391:39fb:59c8 with SMTP id ffacd0b85a97d-39efba5f83dmr5418865f8f.25.1745081901313; Sat, 19 Apr 2025 09:58:21 -0700 (PDT) Received: from pro2 (p200300e0b7179a00edfd9109c079612a.dip0.t-ipconnect.de. [2003:e0:b717:9a00:edfd:9109:c079:612a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4406d5aa100sm68414465e9.7.2025.04.19.09.58.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 09:58:20 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation In-Reply-To: <86plh86rit.fsf@HIDDEN> References: <m2jz7gp25p.fsf@HIDDEN> <86plh86rit.fsf@HIDDEN> Date: Sat, 19 Apr 2025 18:58:20 +0200 Message-ID: <m2fri4ozpv.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > Are there any backward-incompatible changes with this? None I'm aware of. > Do all the tests still pass as well as they did before these changes? I got a SEGV in buffer-tests right now when I checked again that went away an a second run. So I'll have to check that.
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at 77924) by debbugs.gnu.org; 19 Apr 2025 16:32:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 19 12:32:54 2025 Received: from localhost ([127.0.0.1]:36106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6B7e-0004nH-EZ for submit <at> debbugs.gnu.org; Sat, 19 Apr 2025 12:32:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49620) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u6B7b-0004n3-Mr for 77924 <at> debbugs.gnu.org; Sat, 19 Apr 2025 12:32:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1u6B7W-00062t-8V; Sat, 19 Apr 2025 12:32:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=El/ssJyA02Ev9E3Zg0NjcTNEwerkL9i4ebQ+VsAUxCk=; b=G/mH79Rauci8m91MQrba Q1ELhD1JxiFl05aNoWJDyotMTne9CQGzUg1ckr4Tj+EpMKpsCLajNa+QgCrHO4Ix1HR76YNXQ1Y3O xst8hQl0ohRg6fw8WvYZfhilbmw0RPV5KManX1vV0UYnu3iYVkBX74ZyTWx82veu8cnNXfQsCGkT+ 1G0yyBwkNkPHgZjyUFJJCBrAs6wEmgIsFg07Y6qNAc/nfU3O+Slc3o9yCfeOqOIHjnW+UN5NyINH1 LZzdBCuAxak30V1bDI8G7Xcy8osG+QkclbaSF3iGSZomxl/lKsJmnoioYCHZuHkoxnn2xePRWIVaj znfQiC3O4wjaEw==; Date: Sat, 19 Apr 2025 19:32:42 +0300 Message-Id: <86plh86rit.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2jz7gp25p.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sat, 19 Apr 2025 18:05:38 +0200) Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation References: <m2jz7gp25p.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77924 Cc: monnier@HIDDEN, 77924 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: Stefan Monnier <monnier@HIDDEN> > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Date: Sat, 19 Apr 2025 18:05:38 +0200 > > This is about the branch scratch/text-index on savannah, which is a port > of what I have in my Emacs. > > The branch changes the implementation of Lisp markers. > > - Markers no longer form a doubly-linked list, they are stored in a > marker vector instead which allows O(1) insertion and deletion of > markers. (The idea of a marker vector is from what I did in igc. In my > Emacs, both igc and old GC use the same marker vector implementation. > The new one is different from the one in feature/igc.) > > - Lisp_Marker doesn't contain the character position directly. It is > stored in the marker vector instead. This leads to faster, > cache-friendly, marker position adjustments. > > - Markers don't contain byte positions. Byte positions are computed when > needed. Bytepos <-> charpos conversion are done using a text-index > data structure. This removes the heuristics currently used in master, > and allows removing byte positions from markers. > > In summary, I'd say performance is good, to say the least, in many cases > better, and it fixes corner cases leading the abysmal performance in > current master. > > Please see the comments at the start of marker-vector.c and text-index.c > for more details. Also see the thread(s) on emacs-devel with Stef an me. Thanks. Are there any backward-incompatible changes with this? Do all the tests still pass as well as they did before these changes?
bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 19 Apr 2025 16:05:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 19 12:05:55 2025 Received: from localhost ([127.0.0.1]:35845 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u6AhW-0002fW-Mo for submit <at> debbugs.gnu.org; Sat, 19 Apr 2025 12:05:55 -0400 Received: from lists.gnu.org ([2001:470:142::17]:47548) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6AhT-0002ez-DS for submit <at> debbugs.gnu.org; Sat, 19 Apr 2025 12:05:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6AhL-00022J-A0 for bug-gnu-emacs@HIDDEN; Sat, 19 Apr 2025 12:05:43 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <gerd.moellmann@HIDDEN>) id 1u6AhJ-0001u7-IH for bug-gnu-emacs@HIDDEN; Sat, 19 Apr 2025 12:05:42 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3995ff6b066so1445179f8f.3 for <bug-gnu-emacs@HIDDEN>; Sat, 19 Apr 2025 09:05:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745078740; x=1745683540; darn=gnu.org; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=DvMWM75l2U6mBu9r6RI09XZGJ8BeZ9oW08Ahx2iBeDc=; b=joLA6D12WSwx7Brq7GA3sJf+IgHNYI01UCqq77P7Lrp4erwmqwc+EKv/KvaT9gnvQF oJzgEG3x0cwsOkmRSYkAOs+DMoVsp4m53+V8XRU2LRx4Fmq9/yebHJops+Zfc379py4R sHyvQQvk1FQOe2BOTZzqdgrgJde0ZeIKReIA6bBDWCUXX7PYu7D6d7+iSpTK4H5oZhbj +b9KT+bNvSll2dtnV6ZIuolMDeABUPRVVdRn0SUHiPsaL2M3HpLArp/dCKX09Q9ew/O9 AC9/97fXNrWC68OtJv1UwOF7tGLHXq06g/RhUVBKqMkXtNSMMuQzk48wwwt8zge4xai0 IygA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745078740; x=1745683540; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DvMWM75l2U6mBu9r6RI09XZGJ8BeZ9oW08Ahx2iBeDc=; b=TAbEqyxUh2cP0XPCA4IjzO1y+v9zLfyWmEQACHavh3Jcm9AZaLqZg+ZDs0lsUQQKU9 IrGqzaKDWcA0bqOQHn2Z0vLX/MRDbRW5vucEESv1eYZ6c3Xq5WUnJjIem6GwR08SHcFC I0UKRZY5VwCs8vSbGa60fEILVrFkM+hhgOhfgNS/HMluUrkL7Lq6H9GmLKRkduIv4Vox Hx0RWcraFTnpw8MTr/u7FIurUk8IckrAoT6o5Xt6Vn+80r7+hNBJaJvOV4c780H4y5hx khmlXQ/FUt2q1lTGi/l0R3kqhJ5JFoPmDSVeHDsW+JDyveXqMSLPU5EuFqkq6YGE4H8r j0aw== X-Gm-Message-State: AOJu0YwjBZo8XM0d11vN9adfMF9+uo/16IofgB21PTBxloH8I4xI3brB elBH/t9lsmaBcm7Gm6OaYZXsgU16C3GVPYz9HsqHJ/NNWwx82j2XMcVi/bqu X-Gm-Gg: ASbGncu3xsFGMYrLDKjrOI6Siho2dtopg1xy01sMOPnC2GPylOg2ZFVyERC7KZraVn/ XJNgUqm8UAciqBY4B5CWRmgDecLZ2tOjbBducyh9iDtFRpwkona3nfsG/qsEH3vsGEu2Wh8HhhM xXafeMAZ+5ohdnl6XFDsOw8nMy5rymZRBfHPTplX2Nrw5juMsiHuikqsf+J/cjdQG8P/6iJ9yom h6rI/y5O3jBMOg5DZtWSjpVNbI2wVHhI7XsLej+DL2ISiBADFLpMmb8u2pGC8NZ3E566hcIznAR 3FMyzHCTUvHkdL7zrNI8oiEaX5xeZAQw9qhaSo0u18dj4lqInfeUoJGL799j1Ff5C2Fa7QsK3Ov RsMBu1XaZsfpls0nmGgLTGWka1yZdvR+myIi8e1m8l/zB/xilWA== X-Google-Smtp-Source: AGHT+IHAjkDYwqb0EjtFZ0JrL4ORcyAtyACfBgQrtaugqkk2cEKWIdQJeT0gYkEcpWMX8ZMPo9dDXw== X-Received: by 2002:a05:6000:4284:b0:391:3028:c779 with SMTP id ffacd0b85a97d-39efbae3ff8mr4914368f8f.45.1745078739497; Sat, 19 Apr 2025 09:05:39 -0700 (PDT) Received: from pro2 (p200300e0b7179a00edfd9109c079612a.dip0.t-ipconnect.de. [2003:e0:b717:9a00:edfd:9109:c079:612a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4235dasm6166630f8f.9.2025.04.19.09.05.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 09:05:39 -0700 (PDT) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: 31.0.50; [Feature branch] Change marker implementation X-Debbugs-Cc: Date: Sat, 19 Apr 2025 18:05:38 +0200 Message-ID: <m2jz7gp25p.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=gerd.moellmann@HIDDEN; helo=mail-wr1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) This is about the branch scratch/text-index on savannah, which is a port of what I have in my Emacs. The branch changes the implementation of Lisp markers. - Markers no longer form a doubly-linked list, they are stored in a marker vector instead which allows O(1) insertion and deletion of markers. (The idea of a marker vector is from what I did in igc. In my Emacs, both igc and old GC use the same marker vector implementation. The new one is different from the one in feature/igc.) - Lisp_Marker doesn't contain the character position directly. It is stored in the marker vector instead. This leads to faster, cache-friendly, marker position adjustments. - Markers don't contain byte positions. Byte positions are computed when needed. Bytepos <-> charpos conversion are done using a text-index data structure. This removes the heuristics currently used in master, and allows removing byte positions from markers. In summary, I'd say performance is good, to say the least, in many cases better, and it fixes corner cases leading the abysmal performance in current master. Please see the comments at the start of marker-vector.c and text-index.c for more details. Also see the thread(s) on emacs-devel with Stef an me.
Gerd Möllmann <gerd.moellmann@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#77924
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.