<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>75217</bug_id>
          
          <creation_ts>2011-12-25 19:18:30 -0800</creation_ts>
          <short_desc>[Forms] Use enum instead of bool for HTMLInputElement::setValue</short_desc>
          <delta_ts>2012-02-13 03:01:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75067</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527097</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2011-12-25 19:18:30 -0800</bug_when>
    <thetext>There are two reasons for introducing enum rather than bool.
1. HTMLINputElement::setValue should fire input and change events.
2. Avoid bool constant in code.

HTMLINputElement::setValue should fire event in following way:
1. No event firing
2. Change event
3. Input event and Change event

We can avoid following pattern:
  bool sendChangeEvent = false;
  applyStep(-n, RejectAny, sendChangeEvent, ec);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527115</commentid>
    <comment_count>1</comment_count>
      <attachid>120519</attachid>
    <who name="">yosin</who>
    <bug_when>2011-12-25 19:53:52 -0800</bug_when>
    <thetext>Created attachment 120519
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527539</commentid>
    <comment_count>2</comment_count>
      <attachid>120519</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-27 20:01:58 -0800</bug_when>
    <thetext>Comment on attachment 120519
Patch 1

View in context: https://bugs.webkit.org/attachment.cgi?id=120519&amp;action=review

&gt; Source/WebCore/html/HTMLInputElement.cpp:1098
&gt; +    // FIXME: Why do we do this when !eventBehavior?

&quot;!eventBehavior&quot; looks incorrect.

&gt; Source/WebCore/html/HTMLTextFormControlElement.h:37
&gt; +enum TextFieldEventBehavior { DispatchNoEvent, DispatchChangeEvent, DispatchInputEvent, DispatchInputAndChangeEvent };

Please add an explanation why we have four different values to ChangeLog though we replace a bool value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529955</commentid>
    <comment_count>3</comment_count>
      <attachid>121207</attachid>
    <who name="">yosin</who>
    <bug_when>2012-01-04 19:19:47 -0800</bug_when>
    <thetext>Created attachment 121207
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529976</commentid>
    <comment_count>4</comment_count>
      <attachid>121207</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-04 20:40:34 -0800</bug_when>
    <thetext>Comment on attachment 121207
Patch 2

View in context: https://bugs.webkit.org/attachment.cgi?id=121207&amp;action=review

&gt; Source/WebCore/ChangeLog:15
&gt; +        Use TextFieldEventBehavior enum instead of sendChangeEvent bool
&gt; +        parameter for HTMLInputElement::setValue method. This new enum
&gt; +        parameter allows us to dispatch input and change events when
&gt; +        user agent populates input field as specified in 
&gt; +        &quot;Common events behavior&quot; of HTML5 standard.
&gt; +
&gt; +        This patch is required for fixing bug 75067 &quot;Forms] Spin buttons
&gt; +        of number input type should fire both input and change event.&quot;

&quot;Forms]&quot; -&gt; &quot;[Forms]&quot; 

I think these paragraphs don&apos;t explain a concrete reason that TextFieldEventBehavior has four values.
A patch should be minimal in general.  I prefer introducing TextFieldEventBehavior with two values in this patch, and extending it to four values in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548443</commentid>
    <comment_count>5</comment_count>
      <attachid>121207</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-02 21:59:52 -0800</bug_when>
    <thetext>Comment on attachment 121207
Patch 2

Sweeping the review queue. r- due to tkent&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555094</commentid>
    <comment_count>6</comment_count>
      <attachid>126733</attachid>
    <who name="">yosin</who>
    <bug_when>2012-02-13 00:56:01 -0800</bug_when>
    <thetext>Created attachment 126733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555095</commentid>
    <comment_count>7</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-02-13 00:57:45 -0800</bug_when>
    <thetext>Please ignore the patch posted at 2012-02-13 00:56 PST. It contains patch of LayoutTests/ChangeLog. It should not be included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555097</commentid>
    <comment_count>8</comment_count>
      <attachid>126734</attachid>
    <who name="">yosin</who>
    <bug_when>2012-02-13 00:59:54 -0800</bug_when>
    <thetext>Created attachment 126734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555100</commentid>
    <comment_count>9</comment_count>
      <attachid>126735</attachid>
    <who name="">yosin</who>
    <bug_when>2012-02-13 01:02:39 -0800</bug_when>
    <thetext>Created attachment 126735
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555103</commentid>
    <comment_count>10</comment_count>
      <attachid>126735</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-13 01:15:30 -0800</bug_when>
    <thetext>Comment on attachment 126735
Patch 3

View in context: https://bugs.webkit.org/attachment.cgi?id=126735&amp;action=review

&gt; Source/WebCore/html/RadioInputType.cpp:160
&gt; -#if PLATFORM(IOS)
&gt; -    state-&gt;indeterminate = element()-&gt;indeterminate();
&gt; -
&gt;      if (element()-&gt;indeterminate())
&gt;          element()-&gt;setIndeterminate(false);
&gt; -#endif
&gt; -
&gt; -    element()-&gt;setChecked(true, true);
&gt; +    element()-&gt;setChecked(true, DispatchChangeEvent);
&gt;  

please do not remove unrelated code.

&gt; Source/WebCore/html/RadioInputType.cpp:-185
&gt; -
&gt; -#if PLATFORM(IOS)        
&gt;          element()-&gt;setIndeterminate(state.indeterminate);
&gt; -#endif
&gt; -

ditto.

&gt; Source/WebCore/html/RadioInputType.cpp:-203
&gt; -#if PLATFORM(IOS)
&gt;      return true;
&gt; -#else
&gt; -    return false;
&gt; -#endif

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555106</commentid>
    <comment_count>11</comment_count>
      <attachid>126736</attachid>
    <who name="">yosin</who>
    <bug_when>2012-02-13 01:20:22 -0800</bug_when>
    <thetext>Created attachment 126736
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555108</commentid>
    <comment_count>12</comment_count>
      <attachid>126736</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-13 01:26:31 -0800</bug_when>
    <thetext>Comment on attachment 126736
Patch 4

View in context: https://bugs.webkit.org/attachment.cgi?id=126736&amp;action=review

ok

&gt; Source/WebCore/html/RangeInputType.cpp:224
&gt; -        bool sendChangeEvent = true;
&gt; -        setValueAsNumber(newValue, sendChangeEvent, ec);
&gt; +        TextFieldEventBehavior eventBehavior = DispatchChangeEvent;
&gt; +        setValueAsNumber(newValue, eventBehavior, ec);

nit: We can remove the &apos;eventBehavior&apos; variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555145</commentid>
    <comment_count>13</comment_count>
      <attachid>126736</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 03:01:32 -0800</bug_when>
    <thetext>Comment on attachment 126736
Patch 4

Clearing flags on attachment: 126736

Committed r107555: &lt;http://trac.webkit.org/changeset/107555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555146</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 03:01:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120519</attachid>
            <date>2011-12-25 19:53:52 -0800</date>
            <delta_ts>2012-01-04 19:19:42 -0800</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-75217-20111226125350.patch</filename>
            <type>text/plain</type>
            <size>34439</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA3YjA0OThjODI4MWE3
MDBhZWMxYjM1NzJmMDA5YmUyYWY2ZTQ2ZS4uYzVhODIyODJjZTE4ZjliODNiNDMwODEzZmViYzRm
NDBjYTZlOWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDExLTEyLTI1ICBZb3Np
ZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFVzZSBl
bnVtIGluc3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjE3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IgZW51bSBpbnN0ZWFkIG9mIHNlbmRDaGFuZ2VFdmVudCBib29sCisgICAgICAg
IHBhcmFtZXRlciBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUgbWV0aG9kLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gRXhpc3RpbmcgdGVzdHMgY292ZXIgdGhpcyBwYXRjaC4KKworICAg
ICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlQnV0dG9uSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9CYXNlQnV0dG9u
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAg
ICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAqIGh0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9DaGVja2JveElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaGVja2JveElucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xp
Y2spOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29sb3JJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzdGVwRG93bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRD
aGVja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRm9y
VXNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNOdW1iZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAg
ICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAqIGh0bWwv
TnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SYWRpb0lucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2spOgorICAg
ICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJ
bnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1
dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0
VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0
VHlwZS5oOgorCiAyMDExLTEyLTI1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRml4IHRlc3RzIGZhaWxpbmcgYXMgYSByZXN1bHQgb2YgcjEwMzY0MwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCBjNjRlZmI0OTg4Y2E4MDYzY2FlNDYyYWQ4ZTMwYmQ5NDdkNGFi
MGQ2Li44NTQ1MDkyMmRjMGU2NDQyMjNlYzEzMjJiNzEzMjEzNDI4MTMwNmFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTEyLTI1ICBZb3NpZnVtaSBJ
bm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFVzZSBlbnVtIGlu
c3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjE3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50OjpzZXRWYWx1ZSk6IFVzZSBl
bnVtIGZvciBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZQorCiAyMDExLTEyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMDM2MTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25J
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNw
cAppbmRleCAxMTU0NmVkZGRhNzljZDNkZWQ0ZGNhMWFkMDJjMDVmMjBjNGQ2NDRhLi45YTE2MTZm
Y2VkMmJjOGMzNzE5MGQ2YmY3ZDk3YmE0MjhjYjE3MjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIEJhc2VC
dXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFzZUJ1dHRvbklu
cHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1
ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9u
SW5wdXRUeXBlLmgKaW5kZXggZGFiYzI3Y2FjNGZiYjMyZWZlMDI0YzFhZWY1YmMzNmU5ZTc3ZTcw
Yy4uMWI3NTQzYzA1NTJhN2E5Y2E5Y2RkMjNhZDI0YTgyYTlkN2NjYWNjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEq
LCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NL
ZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikgT1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA3MGY1
MzlkODAzZjRhNzk3ZGMwZDk3OGMyMzVkOTRlZGUxMjAxMTBiLi5mZjI4ZGFlMzZkYzIxYTc3MTg4
NTAxYTUwYTliODY4YmMyYmI0MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIEJhc2VDaGVja2Fi
bGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2
YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggMmMyYzRhZDNjM2I1ZmM2OTA4ZDcwMjZhMTM3ODIy
MzBlMmVjMzc3Ny4uNDIxMWFkNTIxYjVkZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUwLDcg
KzUwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1Zh
bHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJh
dGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNv
bnN0IFN0cmluZyYsIGJvb2wsIGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVja2FibGUoKSBPVkVSUklERTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAx
NTg1MWQyODIxM2NmZDA2ZmZjZTI2NDZjOTNiOTg1ZTVhNWFjYmYyLi40ODkzMzBhYmE4N2Y1ZTg5
NWY5MDhhODE4MmM2OWU0N2JlOTliZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC02NSw5ICs2NSw5IEBAIGRvdWJsZSBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBw
YXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCkpOwogfQogCi12b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFs
dWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRp
b25Db2RlJikgY29uc3QKK3ZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2
aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QKIHsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNl
cmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRW
YWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmIHZhbHVl
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmgKaW5kZXggMWY4ODY2NDhmNGI3ZjIwZjdmZGEzZmYyNGExOGI2NWM0OWI1ZTc4Ni4uZGYyZGUx
YzE1MzY3NzgyMWUwZDcxODk3MDA5NzNmOGRkNzFlZWI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBz
ZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Is
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1p
c21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmFuZ2VV
bmRlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4IGRkYTE3MmFlYzc4M2ZkMWU4YzBkNzU4Zjlj
ZTViN2JmZDA5ZjRmZmIuLmMwMDZiYzc1N2VjNmRmOGRkZjI2Yzc0NmQ2YTVmOGEwYTA5NjhiZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCkBAIC04MCw3ICs4
MCw3IEBAIFBhc3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRlPiBDaGVja2JveElucHV0VHlwZTo6
d2lsbERpc3BhdGNoQ2xpY2soKQogICAgIGlmIChzdGF0ZS0+aW5kZXRlcm1pbmF0ZSkKICAgICAg
ICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWluYXRlKGZhbHNlKTsKIAotICAgIGVsZW1lbnQoKS0+
c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIHRydWUpOworICAgIGVsZW1lbnQoKS0+c2V0Q2hl
Y2tlZCghc3RhdGUtPmNoZWNrZWQsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogCiAgICAgcmV0dXJu
IHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
aW5kZXggZDdiZDgxZjRjZjQ5YWU4ZTM3MmE4ODBmNDk5MjkyM2U1NDg4YjI3YS4uMDU1YzhiZDM1
ZjU4YzcxMTU1OGE4MzZkM2YwYzk0YTNlMWFmNTY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xv
cklucHV0VHlwZS5jcHAKQEAgLTEyMCw5ICsxMjAsOSBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICB1cGRhdGVDb2xvclN3YXRjaCgpOwogfQogCi12b2lk
IENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVl
Q2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewotICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFs
dWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZh
bHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKCF2YWx1
ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
aAppbmRleCBkNTFkZWFhN2RiZTUzZTI2OGVhZjc2ZDhiYTE1YzYzZjM0YjRiZDE1Li4xNjMyY2Q5
OWY3MTlhM2IxZjdlYjhiZWVmNzc2YTA0MjMzNDRkMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xv
cklucHV0VHlwZS5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIENvbG9yIHZhbHVlQXNDb2xvcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2goKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggNjU1ZTgxZWFkYmM3MzExOWM1MDBiNmQ1NTk3MDkyYjA4NTRmMmUw
Ny4uNzEzOTZhMDBjNTQyODFkNzY3ZGM1ODM2YTRlMmU2ZWI1MTUzOWZlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgYm9vbCBGaWxlSW5w
dXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgRmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCwgYm9vbCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBtX2ZpbGVMaXN0LT5jbGVhcigpOwog
ICAgIG1faWNvbi5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAppbmRleCBi
NWE1ZDE5NmQxYTA2Njg1YmE0MWY1NDc0OWE5NDU2OGQ5NzE2NTE1Li41MzU3NWE0MjBmMWU3NThi
ZGQ5MGE4ZjRiNTkxODQ4N2VmODM3NDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
aApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1
ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNp
ZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJREU7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRl
cm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCiAgICAgdmlydHVhbCBib29sIHN0
b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRD
aGFuZ2VFdmVudCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDIxNGU1YzRlZTllZDY3OGE4
MDVhNzkwMGE1YjA0M2I2Mzg5MTliNzEuLmY3Y2JlNTAwNjFlZWU3MGE3MWYzYmNkMDIzM2I0MzIz
MTVjOTVlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAt
MzgzLDcgKzM4Myw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6Z2V0QWxsb3dlZFZhbHVlU3Rl
cFdpdGhEZWNpbWFsUGxhY2VzKEFueVN0ZXBIYW5kbGluZyBhbnlTCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwKGRvdWJsZSBjb3VudCwgQW55
U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZywgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjphcHBseVN0ZXAoZG91YmxlIGNv
dW50LCBBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yIGV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRvdWJsZSBzdGVw
OwogICAgIHVuc2lnbmVkIHN0ZXBEZWNpbWFsUGxhY2VzLCBjdXJyZW50RGVjaW1hbFBsYWNlczsK
QEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChkb3Vi
bGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcsCiAgICAgaWYgKG5ld1Zh
bHVlID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkKICAgICAgICAgbmV3VmFsdWUgPSBtX2lucHV0
VHlwZS0+bWF4aW11bSgpOwogCi0gICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIHNl
bmRDaGFuZ2VFdmVudCk7CisgICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIGV2ZW50
QmVoYXZpb3IpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCiAgICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRp
b24ocmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIHRydWUpOwpAQCAt
NDUwLDE0ICs0NTAsMTIgQEAgZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OmFsaWduVmFsdWVGb3JT
dGVwKGRvdWJsZSBuZXdWYWx1ZSwgZG91YmxlIHN0ZXAsIHVuc2lnbmUKIAogdm9pZCBIVE1MSW5w
dXRFbGVtZW50OjpzdGVwVXAoaW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGJvb2wg
c2VuZENoYW5nZUV2ZW50ID0gZmFsc2U7Ci0gICAgYXBwbHlTdGVwKG4sIFJlamVjdEFueSwgc2Vu
ZENoYW5nZUV2ZW50LCBlYyk7CisgICAgYXBwbHlTdGVwKG4sIFJlamVjdEFueSwgRGlzcGF0Y2hO
b0V2ZW50LCBlYyk7CiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcERvd24oaW50IG4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2U7
Ci0gICAgYXBwbHlTdGVwKC1uLCBSZWplY3RBbnksIHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAg
IGFwcGx5U3RlcCgtbiwgUmVqZWN0QW55LCBEaXNwYXRjaE5vRXZlbnQsIGVjKTsKIH0KIAogYm9v
bCBIVE1MSW5wdXRFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2
ZW50KSBjb25zdApAQCAtOTU4LDcgKzk1Niw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNU
ZXh0VHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pc1RleHRUeXBlKCk7CiB9
CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0Q2hlY2tlZChib29sIG5vd0NoZWNrZWQsIGJv
b2wgc2VuZENoYW5nZUV2ZW50KQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJv
b2wgbm93Q2hlY2tlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewog
ICAgIGlmIChjaGVja2VkKCkgPT0gbm93Q2hlY2tlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtOTg1
LDcgKzk4Myw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0Q2hlY2tlZChib29sIG5vd0No
ZWNrZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQogICAgIC8vIHVuY2hlY2tlZCB0byBtYXRjaCBv
dGhlciBicm93c2Vycy4gRE9NIGlzIG5vdCBhIHVzZWZ1bCBzdGFuZGFyZCBmb3IgdGhpcwogICAg
IC8vIGJlY2F1c2UgaXQgc2F5cyBvbmx5IHRvIGZpcmUgY2hhbmdlIGV2ZW50cyBhdCAibG9zZSBm
b2N1cyIgdGltZSwgd2hpY2ggaXMKICAgICAvLyBkZWZpbml0ZWx5IHdyb25nIGluIHByYWN0aWNl
IGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KLSAgICBpZiAoc2VuZENoYW5nZUV2ZW50ICYm
IGluRG9jdW1lbnQoKSAmJiBtX2lucHV0VHlwZS0+c2hvdWxkU2VuZENoYW5nZUV2ZW50QWZ0ZXJD
aGVja2VkQ2hhbmdlZCgpKSB7CisgICAgaWYgKGV2ZW50QmVoYXZpb3IgIT0gRGlzcGF0Y2hOb0V2
ZW50ICYmIGluRG9jdW1lbnQoKSAmJiBtX2lucHV0VHlwZS0+c2hvdWxkU2VuZENoYW5nZUV2ZW50
QWZ0ZXJDaGVja2VkQ2hhbmdlZCgpKSB7CiAgICAgICAgIHNldFRleHRBc09mTGFzdEZvcm1Db250
cm9sQ2hhbmdlRXZlbnQoU3RyaW5nKCkpOwogICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hh
bmdlRXZlbnQoKTsKICAgICB9CkBAIC0xMDU5LDcgKzEwNTcsNyBAQCBTdHJpbmcgSFRNTElucHV0
RWxlbWVudDo6dmFsdWVXaXRoRGVmYXVsdCgpIGNvbnN0CiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIC8vIENhbGwgc2V0
VmFsdWUgYW5kIG1ha2UgaXQgc2VuZCBhIGNoYW5nZSBldmVudC4KLSAgICBzZXRWYWx1ZSh2YWx1
ZSwgdHJ1ZSk7CisgICAgc2V0VmFsdWUodmFsdWUsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogfQog
CiBjb25zdCBTdHJpbmcmIEhUTUxJbnB1dEVsZW1lbnQ6OnN1Z2dlc3RlZFZhbHVlKCkgY29uc3QK
QEAgLTEwNzcsNyArMTA3NSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0U3VnZ2VzdGVk
VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwog
fQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUs
IGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShj
b25zdCBTdHJpbmcmIHZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3Ip
CiB7CiAgICAgaWYgKCFtX2lucHV0VHlwZS0+Y2FuU2V0VmFsdWUodmFsdWUpKQogICAgICAgICBy
ZXR1cm47CkBAIC0xMDg5LDI1ICsxMDg3LDI1IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0
VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCiAgICAgc2V0
TGFzdENoYW5nZVdhc05vdFVzZXJFZGl0KCk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNo
ZXNSZW5kZXJlcihmYWxzZSk7CiAgICAgbV9zdWdnZXN0ZWRWYWx1ZSA9IFN0cmluZygpOyAvLyBQ
cmV2ZW50IFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUgZnJvbSB1c2luZyB0aGUgc3VnZ2Vz
dGVkIHZhbHVlLgotICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFs
dWVDaGFuZ2VkLCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZShz
YW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKIAogICAgIGlmICgh
dmFsdWVDaGFuZ2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoc2VuZENoYW5nZUV2ZW50
KQorICAgIGlmIChldmVudEJlaGF2aW9yICE9IERpc3BhdGNoTm9FdmVudCkKICAgICAgICAgbV9p
bnB1dFR5cGUtPmRpc3BhdGNoQ2hhbmdlRXZlbnRJblJlc3BvbnNlVG9TZXRWYWx1ZSgpOwogCi0g
ICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBkbyB0aGlzIHdoZW4gIXNlbmRDaGFuZ2VFdmVudD8KLSAg
ICBpZiAoaXNUZXh0RmllbGQoKSAmJiAoIWZvY3VzZWQoKSB8fCAhc2VuZENoYW5nZUV2ZW50KSkK
KyAgICAvLyBGSVhNRTogV2h5IGRvIHdlIGRvIHRoaXMgd2hlbiAhZXZlbnRCZWhhdmlvcj8KKyAg
ICBpZiAoaXNUZXh0RmllbGQoKSAmJiAoIWZvY3VzZWQoKSB8fCBldmVudEJlaGF2aW9yID09IERp
c3BhdGNoTm9FdmVudCkpCiAgICAgICAgIHNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdl
RXZlbnQodmFsdWUpOwogCiAgICAgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZCgpOwogfQogCi12b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6
ZWRWYWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIG1fdmFsdWVJZkRpcnR5ID0gc2FuaXRp
emVkVmFsdWU7Ci0gICAgbV93YXNNb2RpZmllZEJ5VXNlciA9IHNlbmRDaGFuZ2VFdmVudDsKKyAg
ICBtX3dhc01vZGlmaWVkQnlVc2VyID0gZXZlbnRCZWhhdmlvciAhPSBEaXNwYXRjaE5vRXZlbnQ7
CiAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKQEAgLTExMjYsMTMgKzExMjQsMTMg
QEAgZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJl
dHVybiBtX2lucHV0VHlwZS0+dmFsdWVBc051bWJlcigpOwogfQogCi12b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBFeGNlcHRpb25Db2RlJiBl
YywgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVl
QXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYywgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIGlmICghaXNmaW5pdGUobmV3VmFsdWUp
KSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIHNlbmRDaGFu
Z2VFdmVudCwgZWMpOworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVl
LCBldmVudEJlaGF2aW9yLCBlYyk7CiB9CiAKIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50OjpwbGFj
ZWhvbGRlcigpIGNvbnN0CkBAIC0xNjYyLDcgKzE2NjAsNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnN0ZXBVcEZyb21SZW5kZXJlcihpbnQgbikKICAgICBjb25zdCBkb3VibGUgbmFuID0gbnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAgICAgU3RyaW5nIGN1cnJlbnRTdHJp
bmdWYWx1ZSA9IHZhbHVlKCk7CiAgICAgZG91YmxlIGN1cnJlbnQgPSBtX2lucHV0VHlwZS0+cGFy
c2VUb0RvdWJsZShjdXJyZW50U3RyaW5nVmFsdWUsIG5hbik7Ci0gICAgY29uc3QgYm9vbCBzZW5k
Q2hhbmdlRXZlbnQgPSB0cnVlOwogICAgIGlmICghaXNmaW5pdGUoY3VycmVudCkpIHsKICAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICAgICAgY3VycmVudCA9IG1faW5wdXRUeXBlLT5kZWZh
dWx0VmFsdWVGb3JTdGVwVXAoKTsKQEAgLTE2NzEsMTAgKzE2NjgsMTAgQEAgdm9pZCBIVE1MSW5w
dXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgICAgICAgICBjdXJyZW50
ID0gbV9pbnB1dFR5cGUtPm1pbmltdW0oKSAtIG5leHREaWZmOwogICAgICAgICBpZiAoY3VycmVu
dCA+IG1faW5wdXRUeXBlLT5tYXhpbXVtKCkgLSBuZXh0RGlmZikKICAgICAgICAgICAgIGN1cnJl
bnQgPSBtX2lucHV0VHlwZS0+bWF4aW11bSgpIC0gbmV4dERpZmY7Ci0gICAgICAgIHNldFZhbHVl
QXNOdW1iZXIoY3VycmVudCwgZWMsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgICAgIHNldFZhbHVl
QXNOdW1iZXIoY3VycmVudCwgZWMsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7CiAgICAg
fQogICAgIGlmICgoc2lnbiA+IDAgJiYgY3VycmVudCA8IG1faW5wdXRUeXBlLT5taW5pbXVtKCkp
IHx8IChzaWduIDwgMCAmJiBjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkpCi0gICAg
ICAgIHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlw
ZS0+bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1heGltdW0oKSksIHNlbmRDaGFuZ2VFdmVudCk7
CisgICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lu
cHV0VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1heGltdW0oKSksIERpc3BhdGNoSW5w
dXRBbmRDaGFuZ2VFdmVudCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7
CiAgICAgICAgIGlmIChzdGVwTWlzbWF0Y2godmFsdWUoKSkpIHsKQEAgLTE2OTQsMTQgKzE2OTEs
MTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAg
ICAgICAgICAgICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4aW11bSgpKQogICAgICAg
ICAgICAgICAgIG5ld1ZhbHVlID0gbV9pbnB1dFR5cGUtPm1heGltdW0oKTsKIAotICAgICAgICAg
ICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIG4gPT0gMSB8fCBuID09IC0xKTsKKyAg
ICAgICAgICAgIHNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGVjLCBuID09IDEgfHwgbiA9PSAt
MSA/IERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCA6IERpc3BhdGNoTm9FdmVudCk7CiAgICAg
ICAgICAgICBjdXJyZW50ID0gbmV3VmFsdWU7CiAgICAgICAgICAgICBpZiAobiA+IDEpCi0gICAg
ICAgICAgICAgICAgYXBwbHlTdGVwKG4gLSAxLCBBbnlJc0RlZmF1bHRTdGVwLCBzZW5kQ2hhbmdl
RXZlbnQsIGVjKTsKKyAgICAgICAgICAgICAgICBhcHBseVN0ZXAobiAtIDEsIEFueUlzRGVmYXVs
dFN0ZXAsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCwgZWMpOwogICAgICAgICAgICAgZWxz
ZSBpZiAobiA8IC0xKQotICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuICsgMSwgQW55SXNEZWZh
dWx0U3RlcCwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICAgICAgYXBwbHlTdGVw
KG4gKyAxLCBBbnlJc0RlZmF1bHRTdGVwLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQsIGVj
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhcHBseVN0ZXAobiwgQW55SXNEZWZhdWx0
U3RlcCwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICBhcHBseVN0ZXAobiwgQW55
SXNEZWZhdWx0U3RlcCwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50LCBlYyk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDc4NjdhMzJlYzNi
Zjc2ZjIxMDRkNWU5ZWQyNjg1NTA2ZjU3N2U4MWIuLjllYzI5NjE1MGNlMTA4OTg0ZDE1NGNlMmEz
NWFkOGUwODJhYTY5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBA
IC0xMjEsNyArMTIxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNl
aG9sZGVyRWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBjaGVja2VkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0NoZWNrZWQ7IH0KLSAgICB2b2lkIHNldENoZWNrZWQoYm9vbCwgYm9vbCBzZW5kQ2hh
bmdlRXZlbnQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRDaGVja2VkKGJvb2wsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpOwogCiAgICAgLy8gJ2luZGV0ZXJtaW5hdGUn
IGlzIGEgc3RhdGUgaW5kZXBlbmRlbnQgb2YgdGhlIGNoZWNrZWQgc3RhdGUgdGhhdCBjYXVzZXMg
dGhlIGNvbnRyb2wgdG8gZHJhdyBpbiBhIHdheSB0aGF0IGhpZGVzIHRoZSBhY3R1YWwgc3RhdGUu
CiAgICAgYm9vbCBpbmRldGVybWluYXRlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luZGV0ZXJtaW5h
dGU7IH0KQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0
IFN0cmluZyYpOwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKKyAgICB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRj
aE5vRXZlbnQpOwogICAgIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpOwogICAg
IC8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyB3b3VsZCBiZSBhIHZhbGlkIHZhbHVl
LgogICAgIC8vIFdlIHNob3VsZCBub3QgY2FsbCB0aGlzIGZvciB0eXBlcyB3aXRoIG5vIHN0cmlu
ZyB2YWx1ZSBzdWNoIGFzIENIRUNLQk9YIGFuZCBSQURJTy4KQEAgLTE2MCw3ICsxNjAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsK
IAogICAgIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFs
c2UpOworICAgIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIEV4Y2VwdGlvbkNvZGUmLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KTsKIAogICAgIHZpcnR1YWwg
U3RyaW5nIHBsYWNlaG9sZGVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsYWNlaG9s
ZGVyKGNvbnN0IFN0cmluZyYpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHB1YmxpYzoKICAgICAvLyBP
dGhlcndpc2UsIHRoZXkgd291bGQgYmUgcHJpdmF0ZS4KICAgICBDaGVja2VkUmFkaW9CdXR0b25z
JiBjaGVja2VkUmFkaW9CdXR0b25zKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVDaGVja2VkUmFk
aW9CdXR0b25zKCk7Ci0gICAgdm9pZCBzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYsIGJv
b2wgc2VuZENoYW5nZUV2ZW50KTsKKyAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3Ry
aW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcik7CiAKICAgICB2b2lkIGNhY2hlU2VsZWN0aW9u
SW5SZXNwb25zZVRvU2V0VmFsdWUoaW50IGNhcmV0T2Zmc2V0KSB7IGNhY2hlU2VsZWN0aW9uKGNh
cmV0T2Zmc2V0LCBjYXJldE9mZnNldCwgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24pOyB9CiAKQEAg
LTMyNyw3ICszMjcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZ2V0QWxsb3dlZFZhbHVlU3RlcFdp
dGhEZWNpbWFsUGxhY2VzKEFueVN0ZXBIYW5kbGluZywgZG91YmxlKiwgdW5zaWduZWQqKSBjb25z
dDsKIAogICAgIC8vIEhlbHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCB2
YWx1ZSAqIGNvdW50IHRvIHRoZSBjdXJyZW50IHZhbHVlLgotICAgIHZvaWQgYXBwbHlTdGVwKGRv
dWJsZSBjb3VudCwgQW55U3RlcEhhbmRsaW5nLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZvaWQgYXBwbHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRs
aW5nLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJik7CiAgICAgZG91Ymxl
IGFsaWduVmFsdWVGb3JTdGVwKGRvdWJsZSB2YWx1ZSwgZG91YmxlIHN0ZXAsIHVuc2lnbmVkIGN1
cnJlbnREZWNpbWFsUGxhY2VzLCB1bnNpZ25lZCBzdGVwRGVjaW1hbFBsYWNlcyk7CiAKICNpZiBF
TkFCTEUoREFUQUxJU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmgKaW5kZXggY2EyMTIzMmQ2MDBjM2E4YWRjOTljZTFiZDZhNDcxZWQ0ZTFi
MzBiNi4uODllNmU0MjRkNTdmN2I0MDJjZGI1NDA3NWJlODFkYmUxZTViOTY0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMzQs
NiArMzQsNyBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbDsKIGNsYXNzIFZpc2libGVQb3NpdGlv
bjsKIAogZW51bSBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24geyBTZWxlY3Rpb25IYXNOb0Rp
cmVjdGlvbiwgU2VsZWN0aW9uSGFzRm9yd2FyZERpcmVjdGlvbiwgU2VsZWN0aW9uSGFzQmFja3dh
cmREaXJlY3Rpb24gfTsKK2VudW0gVGV4dEZpZWxkRXZlbnRCZWhhdmlvciB7IERpc3BhdGNoTm9F
dmVudCwgRGlzcGF0Y2hDaGFuZ2VFdmVudCwgRGlzcGF0Y2hJbnB1dEV2ZW50LCBEaXNwYXRjaElu
cHV0QW5kQ2hhbmdlRXZlbnQgfTsKIAogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQg
OiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiBwdWJsaWM6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggY2MzYWI1YTAyNDdiYjI1ZWM3
ZDU3NTJjMTU3ZDUzZGMzNzdlZjc5YS4uZGY3YzJmOTMyYWFjZTk0Nzg0YTZmYWZkY2IxZjRlMDAw
M2E0YmY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApAQCAtNzUs
NyArNzUsNyBAQCBib29sIEhpZGRlbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21B
dHRyaWJ1dGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBIaWRkZW5JbnB1dFR5cGU6
OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIGJvb2wpCit2b2lk
IEhpZGRlbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJp
YnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRl
bklucHV0VHlwZS5oCmluZGV4IDA3YTNmZWNkZjU4MDM3MjU5MjdmMzM0M2M0ODdmZGJjYzQzZjEw
ZDkuLmVjYmRhYTU2ZDQxMTgzMjJlZDRhOWNkNWJlNjRlZjliZjRmZWMyYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc0hpZGRlblR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29s
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFw
cGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDUxMDIzOTI3ODg4ZDQzNjRmNmZiODBmNmU5
MTlhYTg3NWE0NjAxMGUuLjM4NWUwZjFjZGRmYjY4NDI5MDAzM2FlMTBmZmY3OWUxZmZiZDdmMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBkb3VibGUg
SW5wdXRUeXBlOjp2YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gbnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit2b2lkIElucHV0
VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiB9
CkBAIC01MzMsOSArNTMzLDkgQEAgYm9vbCBJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVG
cm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBJbnB1dFR5cGU6OnNl
dFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIGJvb2wgc2VuZENoYW5n
ZUV2ZW50KQordm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVk
VmFsdWUsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKLSAg
ICBlbGVtZW50KCktPnNldFZhbHVlSW50ZXJuYWwoc2FuaXRpemVkVmFsdWUsIHNlbmRDaGFuZ2VF
dmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0aXplZFZhbHVlLCBl
dmVudEJlaGF2aW9yKTsKICAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggYzEzZmEwODMzZjVjM2NjMjg5MTBkMzRjOWVi
M2JlMWVkYmMyZWQzNi4uNmU0OGYxNmM2NjBmMTBlZWIyOWQ2MjdhZmMxY2UyZDJjYjQwNjEwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaWZuZGVmIElucHV0
VHlwZV9oCiAjZGVmaW5lIElucHV0VHlwZV9oCiAKKyNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Zh
c3RBbGxvY0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTEyNiw3ICsx
MjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0OwotICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQs
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJl
cihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
IAogICAgIC8vIFZhbGlkYXRpb24gZnVuY3Rpb25zCiAKQEAgLTIyNCw3ICsyMjUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENo
YW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAg
ICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCk7Ci0gICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBi
b29sIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCk7CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCA2ZDBlOTcyYjMwZmY1ZGFkOGNlYjliMGE5ZTlm
MjI1ZjE1M2FmMDI2Li4wYmY3NjcxNWRhNjgxMWQ2MGJiMjU4ODcxMDRiNmZlMGUzOWQyMGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC04Myw3ICs4Myw3IEBA
IGRvdWJsZSBOdW1iZXJJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVy
biBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCkpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051
bWJlcihkb3VibGUgbmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykgY29uc3QKK3ZvaWQgTnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRp
b25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAobmV3VmFsdWUgPCAtbnVtZXJpY19saW1pdHM8
ZmxvYXQ+OjptYXgoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwpAQCAtOTMs
NyArOTMsNyBAQCB2b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUg
bmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeAogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGVsZW1lbnQoKS0+c2V0VmFs
dWUoc2VyaWFsaXplKG5ld1ZhbHVlKSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBlbGVtZW50KCkt
PnNldFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIGV2ZW50QmVoYXZpb3IpOwogfQogCiBib29s
IE51bWJlcklucHV0VHlwZTo6dHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYgdmFsdWUpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCAyNmU3OTg2YzNlNjdi
YWJhNTIxNTM3OTQ0MDlmNjQ5NmQyMjMyYjAyLi4xYWZlZjhhNjk2YzE0MmE1ZmUyNTJlNTc2NGQ4
MTMxODJjZTc5ZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTQz
LDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICBOdW1iZXJJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50
LCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlQXNOdW1iZXIoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2Rl
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25z
dCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNo
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0
IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SYWRpb0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBl
LmNwcAppbmRleCA3ZTY5NTE3YTM1MzI5NDdhZjkxZDRiNTQwNjJhOGIxNzhiZjgwN2FmLi40Mzg0
YWQ2MjYyYmZmMmQzZTc3OGY5Nzk4MTczNmVmZmMwZGFiNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhZGlvSW5wdXRUeXBlLmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIFBhc3NPd25QdHI8Q2xpY2tI
YW5kbGluZ1N0YXRlPiBSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogCiAgICAg
aWYgKGVsZW1lbnQoKS0+aW5kZXRlcm1pbmF0ZSgpKQogICAgICAgICBlbGVtZW50KCktPnNldElu
ZGV0ZXJtaW5hdGUoZmFsc2UpOwotICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCh0cnVlLCB0cnVl
KTsKKyAgICBlbGVtZW50KCktPnNldENoZWNrZWQodHJ1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7
CiAKICAgICByZXR1cm4gc3RhdGUucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcAppbmRleCBhY2ZlMWNjYTUyNDc4M2YxMjU3NzAzZmUyZjEwYjNjYzIzYmFm
MDE0Li4wZGVhYzkyZDI3MDliZDRlM2ZkNGFjODIwZmY3ZDg3MjE5ZDRkMmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtNzgsOSArNzgsOSBAQCBkb3VibGUgUmFu
Z2VJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRvRG91
YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFO
KCkpOwogfQogCi12b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBu
ZXdWYWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdAordm9p
ZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0CiB7
Ci0gICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBzZW5kQ2hhbmdl
RXZlbnQpOworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplKG5ld1ZhbHVlKSwgZXZl
bnRCZWhhdmlvcik7CiB9CiAKIGJvb2wgUmFuZ2VJbnB1dFR5cGU6OnN1cHBvcnRzUmVxdWlyZWQo
KSBjb25zdApAQCAtMjIwLDggKzIyMCw4IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtl
eWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIAogICAgIGlmIChuZXdWYWx1ZSAhPSBj
dXJyZW50KSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgIGJvb2wgc2VuZENo
YW5nZUV2ZW50ID0gdHJ1ZTsKLSAgICAgICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgc2Vu
ZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRC
ZWhhdmlvciA9IERpc3BhdGNoQ2hhbmdlRXZlbnQ7CisgICAgICAgIHNldFZhbHVlQXNOdW1iZXIo
bmV3VmFsdWUsIGV2ZW50QmVoYXZpb3IsIGVjKTsKIAogICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgICAgIGVsZW1lbnQoKS0+ZG9jdW1l
bnQoKS0+YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQoKS0+cmVuZGVy
ZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIHRydWUpOwpAQCAtMjg1LDkgKzI4
NSw5IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCiAg
ICAgZWxlbWVudCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1
dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBi
b29sIHNlbmRDaGFuZ2VFdmVudCkKK3ZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0
IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
IGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgSW5wdXRUeXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVD
aGFuZ2VkLCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUs
IHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAoIXZhbHVlQ2hhbmdlZCkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IGU3
NTE5MzA5OGExYzU4MGZhNDc5ZThlMDgyODBjMzY1NTQ1YTMyZDUuLmFiZjJlYTY3NDgyN2YxODMw
YTYxMTBjZjAwOTg0Y2Y0MGZkMzhmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSYW5nZUNv
bnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBkb3VibGUgdmFs
dWVBc051bWJlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgcmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKQEAgLTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBzZXJp
YWxpemUoZG91YmxlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VF
dmVudCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0
ZSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
CmluZGV4IGM5YzkwODMzNTcyNjMzZThjMWZkOTQ3YTc1NzhmMzE0YjIzNzI4ZTYuLmUyYTM5YjIw
YjYxMzA5YWI0NjVhZGU2M2IxM2Y0MDI0OWZhMTliZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTc3LDkgKzc3LDkgQEAgYm9vbCBUZXh0RmllbGRJ
bnB1dFR5cGU6OmNhblNldFN1Z2dlc3RlZFZhbHVlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVk
VmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKK3ZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBi
b29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQog
ewotICAgIElucHV0VHlwZTo6c2V0VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hhbmdlZCwg
c2VuZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVl
LCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKHZhbHVlQ2hhbmdlZCkK
ICAgICAgICAgZWxlbWVudCgpLT51cGRhdGVJbm5lclRleHRWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKaW5kZXggMTYxODg0ZDY3MGI5NDk3ODRjNmYzNDhm
MmU2Y2FkNTRiYzJkY2UyYS4uODVhMTAyODY0ZDdmYjU5NzA0NzBlMmEwNDc4YjIxNTVjMzlkODgw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCkBAIC03Miw3ICs3
Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1Ym1pdEltcGxpY2l0bHko
RXZlbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBz
ZW5kQ2hhbmdlRXZlbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRJblJlc3BvbnNlVG9T
ZXRWYWx1ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3Bl
Y3RMaXN0QXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSW5wdXRFbGVtZW50LmNwcAppbmRleCA1ZGFkYjBjZjhhNTY3MzFkODM3YmE3NTJjMTQy
YzBmYzExYTU5MTRmLi43MzYxNjViYmZkYWRkODJkZDEzNDlhZjU2ZjQ2OTZkM2Y3NTlkOTYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKQEAg
LTkwLDcgKzkwLDcgQEAgaW50IFdlYklucHV0RWxlbWVudDo6c2l6ZSgpIGNvbnN0CiAKIHZvaWQg
V2ViSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIHZhbHVlLCBib29sIHNl
bmRDaGFuZ2VFdmVudCkKIHsKLSAgICB1bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2V0VmFs
dWUodmFsdWUsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+
KCktPnNldFZhbHVlKHZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQgPyBEaXNwYXRjaENoYW5nZUV2ZW50
IDogRGlzcGF0Y2hOb0V2ZW50KTsKIH0KIAogV2ViU3RyaW5nIFdlYklucHV0RWxlbWVudDo6dmFs
dWUoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121207</attachid>
            <date>2012-01-04 19:19:47 -0800</date>
            <delta_ts>2012-02-13 00:55:58 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-75217-20120105121946.patch</filename>
            <type>text/plain</type>
            <size>34943</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRhZGRmYjMyNDFkNTA2
NmJlYWQ1YWQxNDU5ZWJjYjZjMDI0NWY5Zi4uMTNhODI1Zjc1ZDgxNmM3YzEwYzA1ZjYwOTkwN2Zh
ZmE5NzcyYmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTAxLTA1ICBZb3Np
ZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFVzZSBl
bnVtIGluc3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjE3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IgZW51bSBpbnN0ZWFkIG9mIHNlbmRDaGFuZ2VFdmVudCBib29sCisgICAgICAg
IHBhcmFtZXRlciBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUgbWV0aG9kLiBUaGlzIG5l
dyBlbnVtCisgICAgICAgIHBhcmFtZXRlciBhbGxvd3MgdXMgdG8gZGlzcGF0Y2ggaW5wdXQgYW5k
IGNoYW5nZSBldmVudHMgd2hlbgorICAgICAgICB1c2VyIGFnZW50IHBvcHVsYXRlcyBpbnB1dCBm
aWVsZCBhcyBzcGVjaWZpZWQgaW4gCisgICAgICAgICJDb21tb24gZXZlbnRzIGJlaGF2aW9yIiBv
ZiBIVE1MNSBzdGFuZGFyZC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlcXVpcmVkIGZvciBm
aXhpbmcgYnVnIDc1MDY3ICJGb3Jtc10gU3BpbiBidXR0b25zCisgICAgICAgIG9mIG51bWJlciBp
bnB1dCB0eXBlIHNob3VsZCBmaXJlIGJvdGggaW5wdXQgYW5kIGNoYW5nZSBldmVudC4iCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBjb3ZlciB0aGlzIHBhdGNoLgorCisg
ICAgICAgICogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VCdXR0b25JbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0
b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUpOgor
ICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcik6CisgICAgICAgICogaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjp3aWxsRGlzcGF0Y2hD
bGljayk6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb2xvcklucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjphcHBseVN0ZXApOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudDo6c3RlcFVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OnN0ZXBEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNl
dENoZWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVG
b3JVc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc051bWJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaDogQWRkIGVudW0gVGV4dEZpZWxkRXZlbnRCZWhhdmlvci4K
KyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
aWRkZW5JbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlw
ZS5oOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
TnVtYmVySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6
c2V0VmFsdWVBc051bWJlcik6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDoKKyAg
ICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlv
SW5wdXRUeXBlOjp3aWxsRGlzcGF0Y2hDbGljayk6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWVBc051
bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAg
ICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFs
dWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmg6CisKIDIwMTEtMTItMzAg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW5zZXJ0aW5nIG5v
ZGVzIGlzIHNsb3cgZHVlIHRvIE5vZGU6Om5vdGlmeU5vZGVMaXN0c0F0dHJpYnV0ZUNoYW5nZWQg
KDIwJSspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGUzNTM4YjZkOWIwZjA5NDA5MzU1
OTQ5ZDE2MjM4ZTI3ZTU1ODdiM2UuLmU0MWRmNjU5M2MyMWI0M2ZlMTY2OTViMmEzZTQyMGRlMTE1
ODcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDEtMDUgIFlvc2lmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtG
b3Jtc10gVXNlIGVudW0gaW5zdGVhZCBvZiBib29sIGZvciBIVE1MSW5wdXRFbGVtZW50OjpzZXRW
YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNy
Yy9XZWJJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6
OnNldFZhbHVlKTogVXNlIGVudW0gZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlCisKIDIw
MTItMDEtMDQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIENvbXBpbGUgZml4LCByZW5hbWUgbGlicGxhdGZvcm0uYSB0byBsaWJ3ZWJr
aXRfcGxhdGZvcm0uYSB0byBhdm9pZCBjb2xsaXNpb24gd2l0aCBuYWNsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAppbmRleCAxMTU0NmVkZGRhNzljZDNkZWQ0
ZGNhMWFkMDJjMDVmMjBjNGQ2NDRhLi45YTE2MTZmY2VkMmJjOGMzNzE5MGQ2YmY3ZDk3YmE0Mjhj
YjE3MjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAK
QEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVl
U2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFz
ZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCwgYm9vbCkKK3ZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAg
ICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggZGFiYzI3Y2Fj
NGZiYjMyZWZlMDI0YzFhZWY1YmMzNmU5ZTc3ZTcwYy4uMWI3NTQzYzA1NTJhN2E5Y2E5Y2RkMjNh
ZDI0YTgyYTlkN2NjYWNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0
dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRU
eXBlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0
dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBib29sLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA3MGY1MzlkODAzZjRhNzk3ZGMwZDk3OGMyMzVkOTRl
ZGUxMjAxMTBiLi5mZjI4ZGFlMzZkYzIxYTc3MTg4NTAxYTUwYTliODY4YmMyYmI0MDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTEw
NCw3ICsxMDQsNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2Vw
YXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCwgYm9vbCkKK3ZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsK
ICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXgg
MmMyYzRhZDNjM2I1ZmM2OTA4ZDcwMjZhMTM3ODIyMzBlMmVjMzc3Ny4uNDIxMWFkNTIxYjVkZDA3
OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVj
a2FibGUoKSBPVkVSUklERTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0NjM2NjcyOWYzYzNkOGZhY2U1ZWFlMWVmNDEw
NDE3OGFiZWE2ODJiLi4yOTA0ZjJlODVlMzlmZjE3YjQ3YWYwZDc3ODMyNmJlNTljOTljNzM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
CkBAIC02NSw5ICs2NSw5IEBAIGRvdWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVl
QXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFs
dWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCi12b2lkIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUs
IGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3QKK3ZvaWQgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QK
IHsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFu
Z2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBl
dmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVN
aXNtYXRjaEZvcihjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggNDZjMGM5ZDhkZGE0OGI4MTNi
Mjk1MTdiMjc2ZTFiYjBhZDI3ZGY1My4uZTM0NTM1MDYwYzIxMzQ4OWU3Zjk1MGQ4ZDJhYzc4MGYw
NjZhMGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgdmFs
dWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0Rh
dGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBk
b3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihk
b3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikgY29u
c3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmlu
ZGV4IGRkYTE3MmFlYzc4M2ZkMWU4YzBkNzU4ZjljZTViN2JmZDA5ZjRmZmIuLmMwMDZiYzc1N2Vj
NmRmOGRkZjI2Yzc0NmQ2YTVmOGEwYTA5NjhiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuY3BwCkBAIC04MCw3ICs4MCw3IEBAIFBhc3NPd25QdHI8Q2xpY2tIYW5k
bGluZ1N0YXRlPiBDaGVja2JveElucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogICAgIGlm
IChzdGF0ZS0+aW5kZXRlcm1pbmF0ZSkKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWlu
YXRlKGZhbHNlKTsKIAotICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQs
IHRydWUpOworICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIERpc3Bh
dGNoQ2hhbmdlRXZlbnQpOwogCiAgICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggZDdiZDgxZjRjZjQ5YWU4ZTM3MmE4
ODBmNDk5MjkyM2U1NDg4YjI3YS4uMDU1YzhiZDM1ZjU4YzcxMTU1OGE4MzZkM2YwYzk0YTNlMWFm
NTY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEyMCw5ICsx
MjAsOSBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICB1
cGRhdGVDb2xvclN3YXRjaCgpOwogfQogCi12b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShj
b25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdlRXZl
bnQpCit2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBi
b29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQog
ewotICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENoYW5n
ZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2
ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCBkNTFkZWFhN2RiZTUzZTI2OGVh
Zjc2ZDhiYTE1YzYzZjM0YjRiZDE1Li4xNjMyY2Q5OWY3MTlhM2IxZjdlYjhiZWVmNzc2YTA0MjMz
NDRkMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01Niw3ICs1Niw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJp
bmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIENvbG9yIHZhbHVlQXNDb2xvcigpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZh
dGVFdmVudChFdmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKSBPVkVS
UklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggNjU1ZTgxZWFk
YmM3MzExOWM1MDBiNmQ1NTk3MDkyYjA4NTRmMmUwNy4uNzEzOTZhMDBjNTQyODFkNzY3ZGM1ODM2
YTRlMmU2ZWI1MTUzOWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBA
IC0yMTcsNyArMjE3LDcgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRl
RnJvbUF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRmlsZUlucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkKK3ZvaWQgRmlsZUlucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikK
IHsKICAgICBtX2ZpbGVMaXN0LT5jbGVhcigpOwogICAgIG1faWNvbi5jbGVhcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAppbmRleCBiNWE1ZDE5NmQxYTA2Njg1YmE0MWY1NDc0OWE5
NDU2OGQ5NzE2NTE1Li41MzU3NWE0MjBmMWU3NThiZGQ5MGE4ZjRiNTkxODQ4N2VmODM3NDkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJREU7
IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBh
dHRyaWJ1dGUuCiAgICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmli
dXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2
ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgSWNvbiogaWNvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0ZpbGVV
cGxvYWQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDQ2ZDEwNDliZGViOTlmNjdkZDNjN2Y2NjExNGU1ZGVhMzJjYTA5YmQuLjQ5
YzhjMDIzMWUwM2FiODZhOGY3YzkyZjdmZTgzMGQwZTkyNDI3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzgzLDcgKzM4Myw3IEBAIGJvb2wgSFRNTElu
cHV0RWxlbWVudDo6Z2V0QWxsb3dlZFZhbHVlU3RlcFdpdGhEZWNpbWFsUGxhY2VzKEFueVN0ZXBI
YW5kbGluZyBhbnlTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVu
dDo6YXBwbHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGlu
ZywgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBIVE1MSW5w
dXRFbGVtZW50OjphcHBseVN0ZXAoZG91YmxlIGNvdW50LCBBbnlTdGVwSGFuZGxpbmcgYW55U3Rl
cEhhbmRsaW5nLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIGRvdWJsZSBzdGVwOwogICAgIHVuc2lnbmVkIHN0ZXBEZWNpbWFs
UGxhY2VzLCBjdXJyZW50RGVjaW1hbFBsYWNlczsKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBh
bnlTdGVwSGFuZGxpbmcsCiAgICAgaWYgKG5ld1ZhbHVlID4gbV9pbnB1dFR5cGUtPm1heGltdW0o
KSkKICAgICAgICAgbmV3VmFsdWUgPSBtX2lucHV0VHlwZS0+bWF4aW11bSgpOwogCi0gICAgc2V0
VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgc2V0VmFs
dWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgICBkb2N1bWVudCgpLT5h
eE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIoKSwgQVhPYmplY3RDYWNo
ZTo6QVhWYWx1ZUNoYW5nZWQsIHRydWUpOwpAQCAtNDUwLDE0ICs0NTAsMTIgQEAgZG91YmxlIEhU
TUxJbnB1dEVsZW1lbnQ6OmFsaWduVmFsdWVGb3JTdGVwKGRvdWJsZSBuZXdWYWx1ZSwgZG91Ymxl
IHN0ZXAsIHVuc2lnbmUKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoaW50IG4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2U7Ci0g
ICAgYXBwbHlTdGVwKG4sIFJlamVjdEFueSwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgYXBw
bHlTdGVwKG4sIFJlamVjdEFueSwgRGlzcGF0Y2hOb0V2ZW50LCBlYyk7CiB9CiAKIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6c3RlcERvd24oaW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2U7Ci0gICAgYXBwbHlTdGVwKC1uLCBSZWplY3RB
bnksIHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAgIGFwcGx5U3RlcCgtbiwgUmVqZWN0QW55LCBE
aXNwYXRjaE5vRXZlbnQsIGVjKTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdApAQCAtOTU4LDcgKzk1Niw3
IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNUZXh0VHlwZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1faW5wdXRUeXBlLT5pc1RleHRUeXBlKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6
c2V0Q2hlY2tlZChib29sIG5vd0NoZWNrZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJvb2wgbm93Q2hlY2tlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIGlmIChjaGVja2VkKCkgPT0gbm93Q2hl
Y2tlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtOTg1LDcgKzk4Myw3IEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6c2V0Q2hlY2tlZChib29sIG5vd0NoZWNrZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50
KQogICAgIC8vIHVuY2hlY2tlZCB0byBtYXRjaCBvdGhlciBicm93c2Vycy4gRE9NIGlzIG5vdCBh
IHVzZWZ1bCBzdGFuZGFyZCBmb3IgdGhpcwogICAgIC8vIGJlY2F1c2UgaXQgc2F5cyBvbmx5IHRv
IGZpcmUgY2hhbmdlIGV2ZW50cyBhdCAibG9zZSBmb2N1cyIgdGltZSwgd2hpY2ggaXMKICAgICAv
LyBkZWZpbml0ZWx5IHdyb25nIGluIHByYWN0aWNlIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50
cy4KLSAgICBpZiAoc2VuZENoYW5nZUV2ZW50ICYmIGluRG9jdW1lbnQoKSAmJiBtX2lucHV0VHlw
ZS0+c2hvdWxkU2VuZENoYW5nZUV2ZW50QWZ0ZXJDaGVja2VkQ2hhbmdlZCgpKSB7CisgICAgaWYg
KGV2ZW50QmVoYXZpb3IgIT0gRGlzcGF0Y2hOb0V2ZW50ICYmIGluRG9jdW1lbnQoKSAmJiBtX2lu
cHV0VHlwZS0+c2hvdWxkU2VuZENoYW5nZUV2ZW50QWZ0ZXJDaGVja2VkQ2hhbmdlZCgpKSB7CiAg
ICAgICAgIHNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoU3RyaW5nKCkpOwog
ICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKICAgICB9CkBAIC0xMDU5
LDcgKzEwNTcsNyBAQCBTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6dmFsdWVXaXRoRGVmYXVsdCgp
IGNvbnN0CiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJp
bmcmIHZhbHVlKQogewogICAgIC8vIENhbGwgc2V0VmFsdWUgYW5kIG1ha2UgaXQgc2VuZCBhIGNo
YW5nZSBldmVudC4KLSAgICBzZXRWYWx1ZSh2YWx1ZSwgdHJ1ZSk7CisgICAgc2V0VmFsdWUodmFs
dWUsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogfQogCiBjb25zdCBTdHJpbmcmIEhUTUxJbnB1dEVs
ZW1lbnQ6OnN1Z2dlc3RlZFZhbHVlKCkgY29uc3QKQEAgLTEwNzcsNyArMTA3NSw3IEBAIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0U3VnZ2VzdGVkVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
ICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgaWYgKCFtX2lucHV0VHlwZS0+
Y2FuU2V0VmFsdWUodmFsdWUpKQogICAgICAgICByZXR1cm47CkBAIC0xMDg5LDI1ICsxMDg3LDI1
IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Ym9vbCBzZW5kQ2hhbmdlRXZlbnQpCiAgICAgc2V0TGFzdENoYW5nZVdhc05vdFVzZXJFZGl0KCk7
CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSk7CiAgICAgbV9z
dWdnZXN0ZWRWYWx1ZSA9IFN0cmluZygpOyAvLyBQcmV2ZW50IFRleHRGaWVsZElucHV0VHlwZTo6
c2V0VmFsdWUgZnJvbSB1c2luZyB0aGUgc3VnZ2VzdGVkIHZhbHVlLgotICAgIG1faW5wdXRUeXBl
LT5zZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBzZW5kQ2hhbmdlRXZlbnQp
OworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2Vk
LCBldmVudEJlaGF2aW9yKTsKIAogICAgIGlmICghdmFsdWVDaGFuZ2VkKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoc2VuZENoYW5nZUV2ZW50KQorICAgIGlmIChldmVudEJlaGF2aW9yICE9
IERpc3BhdGNoTm9FdmVudCkKICAgICAgICAgbV9pbnB1dFR5cGUtPmRpc3BhdGNoQ2hhbmdlRXZl
bnRJblJlc3BvbnNlVG9TZXRWYWx1ZSgpOwogCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBkbyB0
aGlzIHdoZW4gIXNlbmRDaGFuZ2VFdmVudD8KLSAgICBpZiAoaXNUZXh0RmllbGQoKSAmJiAoIWZv
Y3VzZWQoKSB8fCAhc2VuZENoYW5nZUV2ZW50KSkKKyAgICAvLyBGSVhNRTogV2h5IGRvIHdlIGRv
IHRoaXMgd2hlbiBldmVudEJlaGF2aW9yID09IERpc3BhdGNoTm9FdmVudD8KKyAgICBpZiAoaXNU
ZXh0RmllbGQoKSAmJiAoIWZvY3VzZWQoKSB8fCBldmVudEJlaGF2aW9yID09IERpc3BhdGNoTm9F
dmVudCkpCiAgICAgICAgIHNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQodmFs
dWUpOwogCiAgICAgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZCgpOwogfQogCi12b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50
ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
ciBldmVudEJlaGF2aW9yKQogewogICAgIG1fdmFsdWVJZkRpcnR5ID0gc2FuaXRpemVkVmFsdWU7
Ci0gICAgbV93YXNNb2RpZmllZEJ5VXNlciA9IHNlbmRDaGFuZ2VFdmVudDsKKyAgICBtX3dhc01v
ZGlmaWVkQnlVc2VyID0gZXZlbnRCZWhhdmlvciAhPSBEaXNwYXRjaE5vRXZlbnQ7CiAgICAgc2V0
TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKQEAgLTExMjYsMTMgKzExMjQsMTMgQEAgZG91Ymxl
IEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+dmFsdWVBc051bWJlcigpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBz
ZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNOdW1iZXIo
ZG91YmxlIG5ld1ZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYywgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
ciBldmVudEJlaGF2aW9yKQogewogICAgIGlmICghaXNmaW5pdGUobmV3VmFsdWUpKSB7CiAgICAg
ICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
bV9pbnB1dFR5cGUtPnNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIHNlbmRDaGFuZ2VFdmVudCwg
ZWMpOworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBldmVudEJl
aGF2aW9yLCBlYyk7CiB9CiAKIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50OjpwbGFjZWhvbGRlcigp
IGNvbnN0CkBAIC0xNjU5LDcgKzE2NTcsNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBV
cEZyb21SZW5kZXJlcihpbnQgbikKICAgICBjb25zdCBkb3VibGUgbmFuID0gbnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAgICAgU3RyaW5nIGN1cnJlbnRTdHJpbmdWYWx1ZSA9
IHZhbHVlKCk7CiAgICAgZG91YmxlIGN1cnJlbnQgPSBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJs
ZShjdXJyZW50U3RyaW5nVmFsdWUsIG5hbik7Ci0gICAgY29uc3QgYm9vbCBzZW5kQ2hhbmdlRXZl
bnQgPSB0cnVlOwogICAgIGlmICghaXNmaW5pdGUoY3VycmVudCkpIHsKICAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKICAgICAgICAgY3VycmVudCA9IG1faW5wdXRUeXBlLT5kZWZhdWx0VmFsdWVG
b3JTdGVwVXAoKTsKQEAgLTE2NjgsMTAgKzE2NjUsMTAgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgICAgICAgICBjdXJyZW50ID0gbV9pbnB1
dFR5cGUtPm1pbmltdW0oKSAtIG5leHREaWZmOwogICAgICAgICBpZiAoY3VycmVudCA+IG1faW5w
dXRUeXBlLT5tYXhpbXVtKCkgLSBuZXh0RGlmZikKICAgICAgICAgICAgIGN1cnJlbnQgPSBtX2lu
cHV0VHlwZS0+bWF4aW11bSgpIC0gbmV4dERpZmY7Ci0gICAgICAgIHNldFZhbHVlQXNOdW1iZXIo
Y3VycmVudCwgZWMsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgICAgIHNldFZhbHVlQXNOdW1iZXIo
Y3VycmVudCwgZWMsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7CiAgICAgfQogICAgIGlm
ICgoc2lnbiA+IDAgJiYgY3VycmVudCA8IG1faW5wdXRUeXBlLT5taW5pbXVtKCkpIHx8IChzaWdu
IDwgMCAmJiBjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkpCi0gICAgICAgIHNldFZh
bHVlKG1faW5wdXRUeXBlLT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlwZS0+bWluaW11
bSgpIDogbV9pbnB1dFR5cGUtPm1heGltdW0oKSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgICAg
IHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlwZS0+
bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1heGltdW0oKSksIERpc3BhdGNoSW5wdXRBbmRDaGFu
Z2VFdmVudCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgICAg
IGlmIChzdGVwTWlzbWF0Y2godmFsdWUoKSkpIHsKQEAgLTE2OTEsMTQgKzE2ODgsMTQgQEAgdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgICAgICAg
ICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4aW11bSgpKQogICAgICAgICAgICAgICAg
IG5ld1ZhbHVlID0gbV9pbnB1dFR5cGUtPm1heGltdW0oKTsKIAotICAgICAgICAgICAgc2V0VmFs
dWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIG4gPT0gMSB8fCBuID09IC0xKTsKKyAgICAgICAgICAg
IHNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGVjLCBuID09IDEgfHwgbiA9PSAtMSA/IERpc3Bh
dGNoSW5wdXRBbmRDaGFuZ2VFdmVudCA6IERpc3BhdGNoTm9FdmVudCk7CiAgICAgICAgICAgICBj
dXJyZW50ID0gbmV3VmFsdWU7CiAgICAgICAgICAgICBpZiAobiA+IDEpCi0gICAgICAgICAgICAg
ICAgYXBwbHlTdGVwKG4gLSAxLCBBbnlJc0RlZmF1bHRTdGVwLCBzZW5kQ2hhbmdlRXZlbnQsIGVj
KTsKKyAgICAgICAgICAgICAgICBhcHBseVN0ZXAobiAtIDEsIEFueUlzRGVmYXVsdFN0ZXAsIERp
c3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCwgZWMpOwogICAgICAgICAgICAgZWxzZSBpZiAobiA8
IC0xKQotICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuICsgMSwgQW55SXNEZWZhdWx0U3RlcCwg
c2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICAgICAgYXBwbHlTdGVwKG4gKyAxLCBB
bnlJc0RlZmF1bHRTdGVwLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQsIGVjKTsKICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBhcHBseVN0ZXAobiwgQW55SXNEZWZhdWx0U3RlcCwgc2Vu
ZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICBhcHBseVN0ZXAobiwgQW55SXNEZWZhdWx0
U3RlcCwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50LCBlYyk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDA1NDQzNmRkNDY3NjAyYzNlMTE5
OWZlNjhiZjk0ZjMwNTFiMjZlM2UuLjcxY2ZjMjE5OTRjYjdjMjI1MmY4YWU1ZTk3M2RjZmQ3OWMw
NjdlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMjEsNyAr
MTIxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxl
bWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBjaGVja2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0No
ZWNrZWQ7IH0KLSAgICB2b2lkIHNldENoZWNrZWQoYm9vbCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQg
PSBmYWxzZSk7CisgICAgdm9pZCBzZXRDaGVja2VkKGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IgPSBEaXNwYXRjaE5vRXZlbnQpOwogCiAgICAgLy8gJ2luZGV0ZXJtaW5hdGUnIGlzIGEgc3Rh
dGUgaW5kZXBlbmRlbnQgb2YgdGhlIGNoZWNrZWQgc3RhdGUgdGhhdCBjYXVzZXMgdGhlIGNvbnRy
b2wgdG8gZHJhdyBpbiBhIHdheSB0aGF0IGhpZGVzIHRoZSBhY3R1YWwgc3RhdGUuCiAgICAgYm9v
bCBpbmRldGVybWluYXRlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luZGV0ZXJtaW5hdGU7IH0KQEAg
LTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYp
OwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKKyAgICB2b2lkIHNldFZhbHVl
KGNvbnN0IFN0cmluZyYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQp
OwogICAgIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpOwogICAgIC8vIENoZWNr
cyBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyB3b3VsZCBiZSBhIHZhbGlkIHZhbHVlLgogICAgIC8v
IFdlIHNob3VsZCBub3QgY2FsbCB0aGlzIGZvciB0eXBlcyB3aXRoIG5vIHN0cmluZyB2YWx1ZSBz
dWNoIGFzIENIRUNLQk9YIGFuZCBSQURJTy4KQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGRv
dWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRv
dWJsZSwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOworICAg
IHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIEV4Y2VwdGlvbkNvZGUmLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHBs
YWNlaG9sZGVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsYWNlaG9sZGVyKGNvbnN0
IFN0cmluZyYpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHB1YmxpYzoKICAgICAvLyBPdGhlcndpc2Us
IHRoZXkgd291bGQgYmUgcHJpdmF0ZS4KICAgICBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVja2Vk
UmFkaW9CdXR0b25zKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVDaGVja2VkUmFkaW9CdXR0b25z
KCk7Ci0gICAgdm9pZCBzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYsIGJvb2wgc2VuZENo
YW5nZUV2ZW50KTsKKyAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcik7CiAKICAgICB2b2lkIGNhY2hlU2VsZWN0aW9uSW5SZXNwb25z
ZVRvU2V0VmFsdWUoaW50IGNhcmV0T2Zmc2V0KSB7IGNhY2hlU2VsZWN0aW9uKGNhcmV0T2Zmc2V0
LCBjYXJldE9mZnNldCwgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24pOyB9CiAKQEAgLTMyNiw3ICsz
MjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZ2V0QWxsb3dlZFZhbHVlU3RlcFdpdGhEZWNpbWFs
UGxhY2VzKEFueVN0ZXBIYW5kbGluZywgZG91YmxlKiwgdW5zaWduZWQqKSBjb25zdDsKIAogICAg
IC8vIEhlbHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCB2YWx1ZSAqIGNv
dW50IHRvIHRoZSBjdXJyZW50IHZhbHVlLgotICAgIHZvaWQgYXBwbHlTdGVwKGRvdWJsZSBjb3Vu
dCwgQW55U3RlcEhhbmRsaW5nLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgYXBwbHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRsaW5nLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJik7CiAgICAgZG91YmxlIGFsaWduVmFs
dWVGb3JTdGVwKGRvdWJsZSB2YWx1ZSwgZG91YmxlIHN0ZXAsIHVuc2lnbmVkIGN1cnJlbnREZWNp
bWFsUGxhY2VzLCB1bnNpZ25lZCBzdGVwRGVjaW1hbFBsYWNlcyk7CiAKICNpZiBFTkFCTEUoREFU
QUxJU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmgKaW5kZXggY2EyMTIzMmQ2MDBjM2E4YWRjOTljZTFiZDZhNDcxZWQ0ZTFiMzBiNi4uODll
NmU0MjRkNTdmN2I0MDJjZGI1NDA3NWJlODFkYmUxZTViOTY0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMzQsNiArMzQsNyBA
QCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIAogZW51
bSBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24geyBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwg
U2VsZWN0aW9uSGFzRm9yd2FyZERpcmVjdGlvbiwgU2VsZWN0aW9uSGFzQmFja3dhcmREaXJlY3Rp
b24gfTsKK2VudW0gVGV4dEZpZWxkRXZlbnRCZWhhdmlvciB7IERpc3BhdGNoTm9FdmVudCwgRGlz
cGF0Y2hDaGFuZ2VFdmVudCwgRGlzcGF0Y2hJbnB1dEV2ZW50LCBEaXNwYXRjaElucHV0QW5kQ2hh
bmdlRXZlbnQgfTsKIAogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQgOiBwdWJsaWMg
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggY2MzYWI1YTAyNDdiYjI1ZWM3ZDU3NTJjMTU3
ZDUzZGMzNzdlZjc5YS4uZGY3YzJmOTMyYWFjZTk0Nzg0YTZmYWZkY2IxZjRlMDAwM2E0YmY1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApAQCAtNzUsNyArNzUsNyBA
QCBib29sIEhpZGRlbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUo
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBIaWRkZW5JbnB1dFR5cGU6OnNldFZhbHVl
KGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIGJvb2wpCit2b2lkIEhpZGRlbklu
cHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1
ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlw
ZS5oCmluZGV4IDA3YTNmZWNkZjU4MDM3MjU5MjdmMzM0M2M0ODdmZGJjYzQzZjEwZDkuLmVjYmRh
YTU2ZDQxMTgzMjJlZDRhOWNkNWJlNjRlZjliZjRmZWMyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBpc0hpZGRlblR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1E
YXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCmluZGV4IDUxMDIzOTI3ODg4ZDQzNjRmNmZiODBmNmU5MTlhYTg3NWE0
NjAxMGUuLjM4NWUwZjFjZGRmYjY4NDI5MDAzM2FlMTBmZmY3OWUxZmZiZDdmMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBkb3VibGUgSW5wdXRUeXBl
Ojp2YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCk7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRv
dWJsZSwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit2b2lkIElucHV0VHlwZTo6c2V0
VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAogewogICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiB9CkBAIC01MzMs
OSArNTMzLDkgQEAgYm9vbCBJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmli
dXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNv
bnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQor
dm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJv
b2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKLSAgICBlbGVtZW50
KCktPnNldFZhbHVlSW50ZXJuYWwoc2FuaXRpemVkVmFsdWUsIHNlbmRDaGFuZ2VFdmVudCk7Cisg
ICAgZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0aXplZFZhbHVlLCBldmVudEJlaGF2
aW9yKTsKICAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKaW5kZXggYzEzZmEwODMzZjVjM2NjMjg5MTBkMzRjOWViM2JlMWVkYmMy
ZWQzNi4uNmU0OGYxNmM2NjBmMTBlZWIyOWQ2MjdhZmMxY2UyZDJjYjQwNjEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaWZuZGVmIElucHV0VHlwZV9oCiAj
ZGVmaW5lIElucHV0VHlwZV9oCiAKKyNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jh
c2UuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTEyNiw3ICsxMjcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAg
ICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIC8v
IFZhbGlkYXRpb24gZnVuY3Rpb25zCiAKQEAgLTIyNCw3ICsyMjUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRD
aGFuZ2VFdmVudCk7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hDaGFuZ2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCk7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVy
SW5wdXRUeXBlLmNwcAppbmRleCA2ZDBlOTcyYjMwZmY1ZGFkOGNlYjliMGE5ZTlmMjI1ZjE1M2Fm
MDI2Li4wYmY3NjcxNWRhNjgxMWQ2MGJiMjU4ODcxMDRiNmZlMGUzOWQyMGI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGRvdWJsZSBO
dW1iZXJJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRv
RG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRf
TmFOKCkpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3Vi
bGUgbmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKK3ZvaWQgTnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1
ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJiBl
YykgY29uc3QKIHsKICAgICBpZiAobmV3VmFsdWUgPCAtbnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpt
YXgoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwpAQCAtOTMsNyArOTMsNyBA
QCB2b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUs
IGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeAogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFs
aXplKG5ld1ZhbHVlKSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBlbGVtZW50KCktPnNldFZhbHVl
KHNlcmlhbGl6ZShuZXdWYWx1ZSksIGV2ZW50QmVoYXZpb3IpOwogfQogCiBib29sIE51bWJlcklu
cHV0VHlwZTo6dHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCAyNmU3OTg2YzNlNjdiYWJhNTIxNTM3
OTQ0MDlmNjQ5NmQyMjMyYjAyLi4xYWZlZjhhNjk2YzE0MmE1ZmUyNTJlNTc2NGQ4MTMxODJjZTc5
ZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTQzLDcgKzQzLDcg
QEAgcHJpdmF0ZToKICAgICBOdW1iZXJJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRp
b25Db2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1i
ZXIoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcm
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRl
eCA3ZTY5NTE3YTM1MzI5NDdhZjkxZDRiNTQwNjJhOGIxNzhiZjgwN2FmLi40Mzg0YWQ2MjYyYmZm
MmQzZTc3OGY5Nzk4MTczNmVmZmMwZGFiNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5w
dXRUeXBlLmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIFBhc3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0
YXRlPiBSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogCiAgICAgaWYgKGVsZW1l
bnQoKS0+aW5kZXRlcm1pbmF0ZSgpKQogICAgICAgICBlbGVtZW50KCktPnNldEluZGV0ZXJtaW5h
dGUoZmFsc2UpOwotICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCh0cnVlLCB0cnVlKTsKKyAgICBl
bGVtZW50KCktPnNldENoZWNrZWQodHJ1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiAKICAgICBy
ZXR1cm4gc3RhdGUucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcAppbmRleCBhY2ZlMWNjYTUyNDc4M2YxMjU3NzAzZmUyZjEwYjNjYzIzYmFmMDE0Li4wZGVh
YzkyZDI3MDliZDRlM2ZkNGFjODIwZmY3ZDg3MjE5ZDRkMmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtNzgsOSArNzgsOSBAQCBkb3VibGUgUmFuZ2VJbnB1dFR5
cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1l
bnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQog
Ci12b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwg
Ym9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdAordm9pZCBSYW5nZUlu
cHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0CiB7Ci0gICAgZWxl
bWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBzZW5kQ2hhbmdlRXZlbnQpOwor
ICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplKG5ld1ZhbHVlKSwgZXZlbnRCZWhhdmlv
cik7CiB9CiAKIGJvb2wgUmFuZ2VJbnB1dFR5cGU6OnN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdApA
QCAtMjIwLDggKzIyMCw4IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVu
dChLZXlib2FyZEV2ZW50KiBldmVudCkKIAogICAgIGlmIChuZXdWYWx1ZSAhPSBjdXJyZW50KSB7
CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgIGJvb2wgc2VuZENoYW5nZUV2ZW50
ID0gdHJ1ZTsKLSAgICAgICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgc2VuZENoYW5nZUV2
ZW50LCBlYyk7CisgICAgICAgIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciA9
IERpc3BhdGNoQ2hhbmdlRXZlbnQ7CisgICAgICAgIHNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUs
IGV2ZW50QmVoYXZpb3IsIGVjKTsKIAogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgICAgIGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+YXhP
YmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQoKS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIHRydWUpOwpAQCAtMjg1LDkgKzI4NSw5IEBAIHZv
aWQgUmFuZ2VJbnB1dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCiAgICAgZWxlbWVu
dCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNl
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRD
aGFuZ2VFdmVudCkKK3ZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYg
dmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVo
YXZpb3IpCiB7Ci0gICAgSW5wdXRUeXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVDaGFuZ2VkLCBz
ZW5kQ2hhbmdlRXZlbnQpOworICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hh
bmdlZCwgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAoIXZhbHVlQ2hhbmdlZCkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IGU3NTE5MzA5OGEx
YzU4MGZhNDc5ZThlMDgyODBjMzY1NTQ1YTMyZDUuLmFiZjJlYTY3NDgyN2YxODMwYTYxMTBjZjAw
OTg0Y2Y0MGZkMzhmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSYW5nZUNvbnRyb2woKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJl
cigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRv
dWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgcmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKQEAg
LTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91
YmxlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJv
b2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbWluT3JNYXhB
dHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNv
bnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IGM5
YzkwODMzNTcyNjMzZThjMWZkOTQ3YTc1NzhmMzE0YjIzNzI4ZTYuLmUyYTM5YjIwYjYxMzA5YWI0
NjVhZGU2M2IxM2Y0MDI0OWZhMTliZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKQEAgLTc3LDkgKzc3LDkgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6
OmNhblNldFN1Z2dlc3RlZFZhbHVlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBUZXh0
RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKK3ZvaWQgVGV4dEZpZWxkSW5w
dXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZhbHVl
Q2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewotICAgIElu
cHV0VHlwZTo6c2V0VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENoYW5n
ZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNo
YW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKHZhbHVlQ2hhbmdlZCkKICAgICAgICAg
ZWxlbWVudCgpLT51cGRhdGVJbm5lclRleHRWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmgKaW5kZXggMTYxODg0ZDY3MGI5NDk3ODRjNmYzNDhmMmU2Y2FkNTRi
YzJkY2UyYS4uODVhMTAyODY0ZDdmYjU5NzA0NzBlMmEwNDc4YjIxNTVjMzlkODgwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCkBAIC03Miw3ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQqKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRJblJlc3BvbnNlVG9TZXRWYWx1ZSgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0
cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFbGVtZW50LmNwcAppbmRleCA1ZGFkYjBjZjhhNTY3MzFkODM3YmE3NTJjMTQyYzBmYzExYTU5
MTRmLi43MzYxNjViYmZkYWRkODJkZDEzNDlhZjU2ZjQ2OTZkM2Y3NTlkOTYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKQEAgLTkwLDcgKzkw
LDcgQEAgaW50IFdlYklucHV0RWxlbWVudDo6c2l6ZSgpIGNvbnN0CiAKIHZvaWQgV2ViSW5wdXRF
bGVtZW50OjpzZXRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFuZ2VF
dmVudCkKIHsKLSAgICB1bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2V0VmFsdWUodmFsdWUs
IHNlbmRDaGFuZ2VFdmVudCk7CisgICAgdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnNldFZh
bHVlKHZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQgPyBEaXNwYXRjaENoYW5nZUV2ZW50IDogRGlzcGF0
Y2hOb0V2ZW50KTsKIH0KIAogV2ViU3RyaW5nIFdlYklucHV0RWxlbWVudDo6dmFsdWUoKSBjb25z
dAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126733</attachid>
            <date>2012-02-13 00:56:01 -0800</date>
            <delta_ts>2012-02-13 00:59:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75217-20120213175600.patch</filename>
            <type>text/plain</type>
            <size>50231</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IyMmNmOWMzYjg3ODMx
YThmNTcxNmQ1MTQ5YjA0MTAwNTRhMmUwYy4uNjFlYzA2ZTllOTgzOWE4YjlhMGIyZTQ4YzhlNTkx
M2QyZGRmZTM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxMi0wMi0xMyAgWW9z
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBVc2Ug
ZW51bSBpbnN0ZWFkIG9mIGJvb2wgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBUZXh0RmllbGRF
dmVudEJlaGF2aW9yIGVudW0gaW5zdGVhZCBvZiBzZW5kQ2hhbmdlRXZlbnQgYm9vbAorICAgICAg
ICBwYXJhbWV0ZXIgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlIG1ldGhvZC4gVGhpcyBu
ZXcgZW51bQorICAgICAgICBwYXJhbWV0ZXIgd2lsbCBiZSBleHRlbmRlZCB0byBkaXNwYXRjaCBp
bnB1dCBhbmQgY2hhbmdlIGV2ZW50cworICAgICAgICB3aGVuIHVzZXIgYWdlbnQgcG9wdWxhdGVz
IGlucHV0IGZpZWxkIGFzIHNwZWNpZmllZCBpbgorICAgICAgICAiQ29tbW9uIGV2ZW50cyBiZWhh
dmlvciIgb2YgSFRNTDUgc3RhbmRhcmQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyByZXF1aXJl
ZCBmb3IgZml4aW5nIGJ1ZyA3NTA2NyAiW0Zvcm1zXSBTcGluIGJ1dHRvbnMKKyAgICAgICAgb2Yg
bnVtYmVyIGlucHV0IHR5cGUgc2hvdWxkIGZpcmUgYm90aCBpbnB1dCBhbmQgY2hhbmdlIGV2ZW50
LiIKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRlc3RzIGNvdmVyIHRoaXMgcGF0
Y2guCisKKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwv
QmFzZUJ1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzZXRW
YWx1ZSk6CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKToKKyAgICAgICAgKiBo
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hlY2tib3hJbnB1dFR5cGU6OndpbGxE
aXNwYXRjaENsaWNrKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9D
b2xvcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXApOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c3RlcERvd24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6c2V0Q2hlY2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRWYWx1ZUZvclVzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzTnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21SZW5k
ZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZGRlbklucHV0VHlwZTo6c2V0VmFsdWUp
OgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0
bWwvSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKToKKyAgICAg
ICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFkaW9JbnB1dFR5cGU6OndpbGxEaXNwYXRjaENs
aWNrKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuaDoKKworMjAxMi0wMi0xMiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgW1Y4Q3VzdG9tVG9KU09iamVjdF0gSURMIGF0
dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzg0NTAKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoaXMg
aXMgdGhlIGZpcnN0IHN0ZXAgdG8gcmVtb3ZlIGhhcmQtY29kaW5nIGluIEhhc0N1c3RvbVRvVjhJ
bXBsZW1lbnRhdGlvbigpCisgICAgICAgIGluIENvZGVHZW5lcmF0b3JWOC5wbS4gVGhpcyBwYXRj
aCBhZGRzIFtWOEN1c3RvbVRvSlNPYmplY3RdCisgICAgICAgIHRvIGludGVyZmFjZXMgd2hpY2gg
aGF2ZSBjdXN0b20gdG9WOCgpIGJ1dCBkbyBub3QgaGF2ZSBjdXN0b20gdG9KUygpLgorCisgICAg
ICAgIE5vIHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogUmVwbGFjZWQgaGFyZC1jb2Rpbmcgd2l0aCBb
VjhDdXN0b21Ub0pTT2JqZWN0XS4KKyAgICAgICAgKEhhc0N1c3RvbVRvVjhJbXBsZW1lbnRhdGlv
bik6CisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5pZGw6IEFkZGVkIFtWOEN1c3RvbVRv
SlNPYmplY3RdLgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaWRsOgorICAgICAgICAqIGRv
bS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAg
KiBodG1sL0RPTVRva2VuTGlzdC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1BpeGVsQXJyYXkuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlkbDoKKyAg
ICAgICAgKiBzdmcvU1ZHRG9jdW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsOgorCiAyMDEyLTAyLTEyICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShN
RURJQV9TVFJFQU0pIGZyb20gTmF2aWdhdG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggMjE5N2U0Nzk4YTUzNDBmOWM5NmExOTkzOTQ0ZTE3NTczMzllMjA2Ni4uMzEwOTFkNWE4NWZh
YjhkMmQ4ZDFmNWE5NDliOWE5ZjgwYzJjYjkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0xMyAgWW9zaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBVc2UgZW51bSBpbnN0ZWFkIG9mIGJvb2wgZm9y
IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3JjL1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYklucHV0RWxlbWVudDo6c2V0VmFsdWUpOiBVc2UgZW51bSBmb3IgSFRNTElucHV0
RWxlbWVudDo6c2V0VmFsdWUKKwogMjAxMi0wMi0xMiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRh
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQYWdlIHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZl
IHdheSB0byBhc3NvY2lhdGUgQVBJIGltcGxlbWVudGF0aW9uIG9iamVjdHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAppbmRleCAxMTU0NmVkZGRhNzljZDNk
ZWQ0ZGNhMWFkMDJjMDVmMjBjNGQ2NDRhLi45YTE2MTZmY2VkMmJjOGMzNzE5MGQ2YmY3ZDk3YmE0
MjhjYjE3MjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5j
cHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1Zh
bHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
QmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsK
ICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggZGFiYzI3
Y2FjNGZiYjMyZWZlMDI0YzFhZWY1YmMzNmU5ZTc3ZTcwYy4uMWI3NTQzYzA1NTJhN2E5Y2E5Y2Rk
MjNhZDI0YTgyYTlkN2NjYWNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
QnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5w
dXRUeXBlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJv
bUF0dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA3MGY1MzlkODAzZjRhNzk3ZGMwZDk3OGMyMzVk
OTRlZGUxMjAxMTBiLi5mZjI4ZGFlMzZkYzIxYTc3MTg4NTAxYTUwYTliODY4YmMyYmI0MDNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVl
U2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikK
IHsKICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5k
ZXggMmMyYzRhZDNjM2I1ZmM2OTA4ZDcwMjZhMTM3ODIyMzBlMmVjMzc3Ny4uNDIxMWFkNTIxYjVk
ZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXND
aGVja2FibGUoKSBPVkVSUklERTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0NjM2NjcyOWYzYzNkOGZhY2U1ZWFlMWVm
NDEwNDE3OGFiZWE2ODJiLi4yOTA0ZjJlODVlMzlmZjE3YjQ3YWYwZDc3ODMyNmJlNTljOTljNzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCkBAIC02NSw5ICs2NSw5IEBAIGRvdWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZh
bHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+
dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCi12b2lk
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFs
dWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3QKK3ZvaWQgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29u
c3QKIHsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRD
aGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUp
LCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5
cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggNDZjMGM5ZDhkZGE0OGI4
MTNiMjk1MTdiMjc2ZTFiYjBhZDI3ZGY1My4uZTM0NTM1MDYwYzIxMzQ4OWU3Zjk1MGQ4ZDJhYzc4
MGYwNjZhMGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUg
dmFsdWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVB
c0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJl
cihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
CmluZGV4IDRlOTY2MzQ0MzI4OGUyNWI4YzRlODk0MjA3MjQ4MzIyODJkNzc1MmQuLjAyOTY3YmJm
NDhmOGQwN2Y2Yjc4NTIyMzZlNDM1MmI5Zjc0ZGRlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q2hlY2tib3hJbnB1dFR5cGUuY3BwCkBAIC04MCw3ICs4MCw3IEBAIFBhc3NPd25QdHI8Q2xpY2tI
YW5kbGluZ1N0YXRlPiBDaGVja2JveElucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogICAg
IGlmIChzdGF0ZS0+aW5kZXRlcm1pbmF0ZSkKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVy
bWluYXRlKGZhbHNlKTsKIAotICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNr
ZWQsIHRydWUpOworICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIERp
c3BhdGNoQ2hhbmdlRXZlbnQpOwogCiAgICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggOTczMTZkNDk5NzBlMjExMDQ4
MTQ3NGU5MjZmNDExMjRiNDNkNTZmNi4uYmVhYmVlODIyYjBmYzZjOGMzYjBiMDNjNWRjZjhlMGQ3
ZTA2YTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEyMiw5
ICsxMjIsOSBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAg
ICB1cGRhdGVDb2xvclN3YXRjaCgpOwogfQogCi12b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpCit2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9y
KQogewotICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENo
YW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQs
IGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCAzZTA2NGJkNDQwOWMwMzY2
ODMyMzViZmU5NmU1M2Q0MWI5ZTc0MmIxLi5mOTJiOTFjZWRkNGI0ZDRiNzc5ZjAxNDBmMDY3MDBj
MDQyNDNlYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01NSw3ICs1
NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgp
IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBmYzFi
ZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZhZmJhN2ZjZTFmZTUyLi5kZmJiZGY3Y2Q3MDQ4YmNiYzNh
ZjU4ZTcwMjkxNDY3NGM1NGJmOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBib29sIEZpbGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2Vw
YXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5w
dXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQordm9pZCBGaWxlSW5w
dXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yKQogewogICAgIG1fZmlsZUxpc3QtPmNsZWFyKCk7CiAgICAgbV9pY29uLmNsZWFyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGI1YTVkMTk2ZDFhMDY2ODViYTQxZjU0
NzQ5YTk0NTY4ZDk3MTY1MTUuLjUzNTc1YTQyMGYxZTc1OGJkZDkwYThmNGI1OTE4NDg3ZWY4Mzc0
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC01OSw3ICs1OSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVS
UklERTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZh
bHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21B
dHRyaWJ1dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBJY29uKiBpY29uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlz
RmlsZVVwbG9hZCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggYzc0ZTM0MGQzMTVjZWE0OWI0MDg3ZWJhM2M1NzU0YWY3MjA0MTI5
Yy4uNDIwZGU5ZjI4MzdmNDI0MGViYzMyZDllNjY5MDk0ODA1ZDVlNjY1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0zNTMsNyArMzUzLDcgQEAgYm9vbCBI
VE1MSW5wdXRFbGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFjZXMoQW55
U3RlcEhhbmRsaW5nIGFueVMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjphcHBseVN0ZXAoZG91YmxlIGNvdW50LCBBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhh
bmRsaW5nLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBh
bnlTdGVwSGFuZGxpbmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZG91YmxlIHN0ZXA7CiAgICAgdW5zaWduZWQgc3RlcERl
Y2ltYWxQbGFjZXMsIGN1cnJlbnREZWNpbWFsUGxhY2VzOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZv
aWQgSFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRs
aW5nIGFueVN0ZXBIYW5kbGluZywKICAgICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4
aW11bSgpKQogICAgICAgICBuZXdWYWx1ZSA9IG1faW5wdXRUeXBlLT5tYXhpbXVtKCk7CiAKLSAg
ICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBlYywgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBz
ZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBlYywgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgIGRvY3VtZW50
KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlcigpLCBBWE9iamVj
dENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgdHJ1ZSk7CkBAIC00MjAsMTQgKzQyMCwxMiBAQCBkb3Vi
bGUgSFRNTElucHV0RWxlbWVudDo6YWxpZ25WYWx1ZUZvclN0ZXAoZG91YmxlIG5ld1ZhbHVlLCBk
b3VibGUgc3RlcCwgdW5zaWduZQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcChpbnQg
biwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxz
ZTsKLSAgICBhcHBseVN0ZXAobiwgUmVqZWN0QW55LCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAg
ICBhcHBseVN0ZXAobiwgUmVqZWN0QW55LCBEaXNwYXRjaE5vRXZlbnQsIGVjKTsKIH0KIAogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bihpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZTsKLSAgICBhcHBseVN0ZXAoLW4sIFJl
amVjdEFueSwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgYXBwbHlTdGVwKC1uLCBSZWplY3RB
bnksIERpc3BhdGNoTm9FdmVudCwgZWMpOwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6Omlz
S2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0CkBAIC05MTMsNyAr
OTExLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1RleHRUeXBlKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPmlzVGV4dFR5cGUoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRDaGVja2VkKGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQoYm9vbCBub3dDaGVja2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgaWYgKGNoZWNrZWQoKSA9PSBu
b3dDaGVja2VkKQogICAgICAgICByZXR1cm47CkBAIC05MzgsNyArOTM2LDcgQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpCiAgICAgLy8gdW5jaGVja2VkIHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzLiBET00gaXMg
bm90IGEgdXNlZnVsIHN0YW5kYXJkIGZvciB0aGlzCiAgICAgLy8gYmVjYXVzZSBpdCBzYXlzIG9u
bHkgdG8gZmlyZSBjaGFuZ2UgZXZlbnRzIGF0ICJsb3NlIGZvY3VzIiB0aW1lLCB3aGljaCBpcwog
ICAgIC8vIGRlZmluaXRlbHkgd3JvbmcgaW4gcHJhY3RpY2UgZm9yIHRoZXNlIHR5cGVzIG9mIGVs
ZW1lbnRzLgotICAgIGlmIChzZW5kQ2hhbmdlRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYmIG1faW5w
dXRUeXBlLT5zaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkpIHsKKyAg
ICBpZiAoZXZlbnRCZWhhdmlvciAhPSBEaXNwYXRjaE5vRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYm
IG1faW5wdXRUeXBlLT5zaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkp
IHsKICAgICAgICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChTdHJpbmco
KSk7CiAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogICAgIH0KQEAg
LTEwMTIsNyArMTAxMCw3IEBAIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZVdpdGhEZWZh
dWx0KCkgY29uc3QKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVGb3JVc2VyKGNvbnN0
IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gQ2FsbCBzZXRWYWx1ZSBhbmQgbWFrZSBpdCBzZW5k
IGEgY2hhbmdlIGV2ZW50LgotICAgIHNldFZhbHVlKHZhbHVlLCB0cnVlKTsKKyAgICBzZXRWYWx1
ZSh2YWx1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiB9CiAKIGNvbnN0IFN0cmluZyYgSFRNTElu
cHV0RWxlbWVudDo6c3VnZ2VzdGVkVmFsdWUoKSBjb25zdApAQCAtMTAzMCw3ICsxMDI4LDcgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTdWdnZXN0ZWRWYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlKQogICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQp
Cit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKICAgICBpZiAoIW1faW5wdXRU
eXBlLT5jYW5TZXRWYWx1ZSh2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNDIsMjUgKzEw
NDAsMjUgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKICAgICBzZXRMYXN0Q2hhbmdlV2FzTm90VXNlckVk
aXQoKTsKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKICAg
ICBtX3N1Z2dlc3RlZFZhbHVlID0gU3RyaW5nKCk7IC8vIFByZXZlbnQgVGV4dEZpZWxkSW5wdXRU
eXBlOjpzZXRWYWx1ZSBmcm9tIHVzaW5nIHRoZSBzdWdnZXN0ZWQgdmFsdWUuCi0gICAgbV9pbnB1
dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VF
dmVudCk7CisgICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNo
YW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmIChzZW5kQ2hhbmdlRXZlbnQpCisgICAgaWYgKGV2ZW50QmVoYXZp
b3IgIT0gRGlzcGF0Y2hOb0V2ZW50KQogICAgICAgICBtX2lucHV0VHlwZS0+ZGlzcGF0Y2hDaGFu
Z2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCk7CiAKLSAgICAvLyBGSVhNRTogV2h5IGRvIHdl
IGRvIHRoaXMgd2hlbiAhc2VuZENoYW5nZUV2ZW50PwotICAgIGlmIChpc1RleHRGaWVsZCgpICYm
ICghZm9jdXNlZCgpIHx8ICFzZW5kQ2hhbmdlRXZlbnQpKQorICAgIC8vIEZJWE1FOiBXaHkgZG8g
d2UgZG8gdGhpcyB3aGVuICFldmVudEJlaGF2aW9yPworICAgIGlmIChpc1RleHRGaWVsZCgpICYm
ICghZm9jdXNlZCgpIHx8IGV2ZW50QmVoYXZpb3IgPT0gRGlzcGF0Y2hOb0V2ZW50KSkKICAgICAg
ICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCh2YWx1ZSk7CiAKICAgICBu
b3RpZnlGb3JtU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0
VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHNlbmRDaGFu
Z2VFdmVudCkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbChjb25zdCBT
dHJpbmcmIHNhbml0aXplZFZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZp
b3IpCiB7CiAgICAgbV92YWx1ZUlmRGlydHkgPSBzYW5pdGl6ZWRWYWx1ZTsKLSAgICBtX3dhc01v
ZGlmaWVkQnlVc2VyID0gc2VuZENoYW5nZUV2ZW50OworICAgIG1fd2FzTW9kaWZpZWRCeVVzZXIg
PSBldmVudEJlaGF2aW9yICE9IERpc3BhdGNoTm9FdmVudDsKICAgICBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKTsKIH0KIApAQCAtMTA3OSwxMyArMTA3NywxMyBAQCBkb3VibGUgSFRNTElucHV0RWxl
bWVudDo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52YWx1
ZUFzTnVtYmVyKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc051bWJl
cihkb3VibGUgbmV3VmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZp
b3IpCiB7CiAgICAgaWYgKCFpc2Zpbml0ZShuZXdWYWx1ZSkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2lucHV0VHlwZS0+
c2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgbV9p
bnB1dFR5cGUtPnNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGV2ZW50QmVoYXZpb3IsIGVjKTsK
IH0KIAogU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnBsYWNlaG9sZGVyKCkgY29uc3QKQEAgLTE2
MzksNyArMTYzNyw2IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVy
KGludCBuKQogICAgIGNvbnN0IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+Ojpx
dWlldF9OYU4oKTsKICAgICBTdHJpbmcgY3VycmVudFN0cmluZ1ZhbHVlID0gdmFsdWUoKTsKICAg
ICBkb3VibGUgY3VycmVudCA9IG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGN1cnJlbnRTdHJp
bmdWYWx1ZSwgbmFuKTsKLSAgICBjb25zdCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IHRydWU7CiAg
ICAgaWYgKCFpc2Zpbml0ZShjdXJyZW50KSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwog
ICAgICAgICBjdXJyZW50ID0gbV9pbnB1dFR5cGUtPmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpOwpA
QCAtMTY0OCwxMCArMTY0NSwxMCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21S
ZW5kZXJlcihpbnQgbikKICAgICAgICAgICAgIGN1cnJlbnQgPSBtX2lucHV0VHlwZS0+bWluaW11
bSgpIC0gbmV4dERpZmY7CiAgICAgICAgIGlmIChjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGlt
dW0oKSAtIG5leHREaWZmKQogICAgICAgICAgICAgY3VycmVudCA9IG1faW5wdXRUeXBlLT5tYXhp
bXVtKCkgLSBuZXh0RGlmZjsKLSAgICAgICAgc2V0VmFsdWVBc051bWJlcihjdXJyZW50LCBlYywg
c2VuZENoYW5nZUV2ZW50KTsKKyAgICAgICAgc2V0VmFsdWVBc051bWJlcihjdXJyZW50LCBlYywg
RGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiAgICAgfQogICAgIGlmICgoc2lnbiA+IDAgJiYgY3VycmVu
dCA8IG1faW5wdXRUeXBlLT5taW5pbXVtKCkpIHx8IChzaWduIDwgMCAmJiBjdXJyZW50ID4gbV9p
bnB1dFR5cGUtPm1heGltdW0oKSkpCi0gICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJp
YWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1h
eGltdW0oKSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBl
LT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5
cGUtPm1heGltdW0oKSksIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogICAgIGVsc2UgewogICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICBpZiAoc3RlcE1pc21hdGNoKHZhbHVlKCkpKSB7
CkBAIC0xNjcxLDE0ICsxNjY4LDE0IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJv
bVJlbmRlcmVyKGludCBuKQogICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID4gbV9pbnB1dFR5cGUt
Pm1heGltdW0oKSkKICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG1faW5wdXRUeXBlLT5tYXhp
bXVtKCk7CiAKLSAgICAgICAgICAgIHNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGVjLCBuID09
IDEgfHwgbiA9PSAtMSk7CisgICAgICAgICAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBl
YywgbiA9PSAxIHx8IG4gPT0gLTEgPyBEaXNwYXRjaENoYW5nZUV2ZW50IDogRGlzcGF0Y2hOb0V2
ZW50KTsKICAgICAgICAgICAgIGN1cnJlbnQgPSBuZXdWYWx1ZTsKICAgICAgICAgICAgIGlmIChu
ID4gMSkKLSAgICAgICAgICAgICAgICBhcHBseVN0ZXAobiAtIDEsIEFueUlzRGVmYXVsdFN0ZXAs
IHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuIC0gMSwg
QW55SXNEZWZhdWx0U3RlcCwgRGlzcGF0Y2hDaGFuZ2VFdmVudCwgZWMpOwogICAgICAgICAgICAg
ZWxzZSBpZiAobiA8IC0xKQotICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuICsgMSwgQW55SXNE
ZWZhdWx0U3RlcCwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICAgICAgYXBwbHlT
dGVwKG4gKyAxLCBBbnlJc0RlZmF1bHRTdGVwLCBEaXNwYXRjaENoYW5nZUV2ZW50LCBlYyk7CiAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYXBwbHlTdGVwKG4sIEFueUlzRGVmYXVsdFN0ZXAs
IHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAgICAgICAgICAgYXBwbHlTdGVwKG4sIEFueUlzRGVm
YXVsdFN0ZXAsIERpc3BhdGNoQ2hhbmdlRXZlbnQsIGVjKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYTUxMjMxMzM5NGU5YzA1YTlkYmE1OTg2
MzY1ZThlMTQwM2M4NDM1OC4uMmNhYTU1OWEzNzAxNjBmMTM0MzEzMzE5MjUzZTIzM2IzMmVlN2Jh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEyMSw3ICsxMjEs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIVE1MRWxlbWVudCogcGxhY2Vob2xkZXJFbGVtZW50
KCkgY29uc3Q7CiAKICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hlY2tl
ZDsgfQotICAgIHZvaWQgc2V0Q2hlY2tlZChib29sLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZh
bHNlKTsKKyAgICB2b2lkIHNldENoZWNrZWQoYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9
IERpc3BhdGNoTm9FdmVudCk7CiAKICAgICAvLyAnaW5kZXRlcm1pbmF0ZScgaXMgYSBzdGF0ZSBp
bmRlcGVuZGVudCBvZiB0aGUgY2hlY2tlZCBzdGF0ZSB0aGF0IGNhdXNlcyB0aGUgY29udHJvbCB0
byBkcmF3IGluIGEgd2F5IHRoYXQgaGlkZXMgdGhlIGFjdHVhbCBzdGF0ZS4KICAgICBib29sIGlu
ZGV0ZXJtaW5hdGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5kZXRlcm1pbmF0ZTsgfQpAQCAtMTM2
LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOworICAgIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7CiAg
ICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgLy8gQ2hlY2tzIGlm
IHRoZSBzcGVjaWZpZWQgc3RyaW5nIHdvdWxkIGJlIGEgdmFsaWQgdmFsdWUuCiAgICAgLy8gV2Ug
c2hvdWxkIG5vdCBjYWxsIHRoaXMgZm9yIHR5cGVzIHdpdGggbm8gc3RyaW5nIHZhbHVlIHN1Y2gg
YXMgQ0hFQ0tCT1ggYW5kIFJBRElPLgpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgZG91Ymxl
IHZhbHVlQXNOdW1iZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91Ymxl
LCBFeGNlcHRpb25Db2RlJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CisgICAgdm9p
ZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgcGxhY2Vo
b2xkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhY2Vob2xkZXIoY29uc3QgU3Ry
aW5nJik7CkBAIC0yMjUsNyArMjI1LDcgQEAgcHVibGljOgogICAgIC8vIE90aGVyd2lzZSwgdGhl
eSB3b3VsZCBiZSBwcml2YXRlLgogICAgIENoZWNrZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRp
b0J1dHRvbnMoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNoZWNrZWRSYWRpb0J1dHRvbnMoKTsK
LSAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpOworICAgIHZvaWQgc2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKTsKIAogICAgIHZvaWQgY2FjaGVTZWxlY3Rpb25JblJlc3BvbnNlVG9T
ZXRWYWx1ZShpbnQgY2FyZXRPZmZzZXQpIHsgY2FjaGVTZWxlY3Rpb24oY2FyZXRPZmZzZXQsIGNh
cmV0T2Zmc2V0LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbik7IH0KIApAQCAtMzI5LDcgKzMyOSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBnZXRBbGxvd2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFj
ZXMoQW55U3RlcEhhbmRsaW5nLCBkb3VibGUqLCB1bnNpZ25lZCopIGNvbnN0OwogCiAgICAgLy8g
SGVscGVyIGZvciBzdGVwVXAoKS9zdGVwRG93bigpLiAgQWRkcyBzdGVwIHZhbHVlICogY291bnQg
dG8gdGhlIGN1cnJlbnQgdmFsdWUuCi0gICAgdm9pZCBhcHBseVN0ZXAoZG91YmxlIGNvdW50LCBB
bnlTdGVwSGFuZGxpbmcsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdm9pZCBhcHBseVN0ZXAoZG91YmxlIGNvdW50LCBBbnlTdGVwSGFuZGxpbmcsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBkb3VibGUgYWxpZ25WYWx1ZUZv
clN0ZXAoZG91YmxlIHZhbHVlLCBkb3VibGUgc3RlcCwgdW5zaWduZWQgY3VycmVudERlY2ltYWxQ
bGFjZXMsIHVuc2lnbmVkIHN0ZXBEZWNpbWFsUGxhY2VzKTsKIAogI2lmIEVOQUJMRShEQVRBTElT
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aAppbmRleCA4YWZmMjkwOTMyYTlmZWNiMzM3MzgwZmRhNjUyN2NjODM3NTkwMzQ4Li45M2M0ZThh
NjZiYzkxNDUyZDM1OGRhMjkxNTZmN2Y1NDIwNGZkMTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIGNs
YXNzIFJlbmRlclRleHRDb250cm9sOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCiBlbnVtIFRl
eHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiB7IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxl
Y3Rpb25IYXNGb3J3YXJkRGlyZWN0aW9uLCBTZWxlY3Rpb25IYXNCYWNrd2FyZERpcmVjdGlvbiB9
OworZW51bSBUZXh0RmllbGRFdmVudEJlaGF2aW9yIHsgRGlzcGF0Y2hOb0V2ZW50LCBEaXNwYXRj
aENoYW5nZUV2ZW50IH07CiAKIGNsYXNzIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IDogcHVi
bGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUgewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IGZjMTAzOTc1Yjc5ODllNTM2NDViZjg3
NzRmYzk5OGFiMTAyYTAxNjcuLjk1MWI2ZDgyNjQ0YWE2YzBhMzliZmI0ZjlkNGU4NTYxMDdkOGY1
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTg3LDcgKzg3
LDcgQEAgYm9vbCBIaWRkZW5JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmli
dXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSGlkZGVuSW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBib29sKQordm9pZCBIaWRk
ZW5JbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2ws
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUo
dmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaAppbmRleCBmZDg2ZmJjMWZkOWE5NTU2ODcyY2I3YjEwYzYyZjljOTAzN2QyMTgyLi45
ZTg5ODJjNTQzNjE2YTFjMDMxZmViMjQzNjQ4NDRmNTE3NmUzZTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA3Y2VhMDU5YzIxYjY0YmYwYmI2M2VjYzY1NTkyYTg1
MjlkMzA5ZTRjLi44MDBjMjFjZmY4OTI5YzA3YjNlNjlkZGQyMDBlMDA4NDMwMjk1NTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgZG91YmxlIElucHV0
VHlwZTo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpOwogfQogCi12b2lkIElucHV0VHlwZTo6c2V0VmFsdWVBc051bWJl
cihkb3VibGUsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAordm9pZCBJbnB1dFR5cGU6
OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRp
b25Db2RlJiBlYykgY29uc3QKIHsKICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogfQpAQCAt
NTM2LDkgKzUzNiw5IEBAIGJvb2wgSW5wdXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0
dHJpYnV0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKK3ZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVl
LCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgZWxl
bWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0aXplZFZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQp
OworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJbnRlcm5hbChzYW5pdGl6ZWRWYWx1ZSwgZXZlbnRC
ZWhhdmlvcik7CiAgICAgZWxlbWVudCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM3NmFhY2M4ZjQ3MGYyZTkzMGFjMTI3ZDFlZTYzNDgz
Zjg4ZjliNmYuLjU1M2JkZWY3ZmI5MGZhMmVmZDFkMzlkMjk5MzdiZjkwMzg5OTE0NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2lmbmRlZiBJbnB1dFR5cGVf
aAogI2RlZmluZSBJbnB1dFR5cGVfaAogCisjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0QWxs
b2NCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0xMjYsNyArMTI3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNl
cHRpb25Db2RlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91
YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAg
ICAvLyBWYWxpZGF0aW9uIGZ1bmN0aW9ucwogCkBAIC0yMjUsNyArMjI2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2Vk
KCk7CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBz
ZW5kQ2hhbmdlRXZlbnQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcik7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRJblJlc3BvbnNlVG9TZXRWYWx1ZSgpOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCk7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5jcHAKaW5kZXggM2E0ZDQyMGNkODg0ZWE1ZDY5NGYxNWNlMzhkMTk0YjAy
ZGMyMzY4Ny4uNTYwYTQ1MTViM2RkNmM0YWMwNGFhZjljMDk4YzRlNTE1YTg0MzEzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtODMsNyArODMsNyBAQCBkb3Vi
bGUgTnVtYmVySW5wdXRUeXBlOjp2YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gcGFy
c2VUb0RvdWJsZShlbGVtZW50KCktPnZhbHVlKCksIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpKTsKIH0KIAotdm9pZCBOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIo
ZG91YmxlIG5ld1ZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0Cit2b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3
VmFsdWUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKG5ld1ZhbHVlIDwgLW51bWVyaWNfbGltaXRzPGZsb2F0
Pjo6bWF4KCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKQEAgLTkzLDcgKzkz
LDcgQEAgdm9pZCBOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1Zh
bHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXgKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNl
cmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRW
YWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBOdW1i
ZXJJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXggMjZlNzk4NmMzZTY3YmFiYTUy
MTUzNzk0NDA5ZjY0OTZkMjIzMmIwMi4uMWFmZWY4YTY5NmMxNDJhNWZlMjUyZTU3NjRkODEzMTgy
Y2U3OWZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCkBAIC00Myw3ICs0
Myw3IEBAIHByaXZhdGU6CiAgICAgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJp
bmcmKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFk
aW9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAK
aW5kZXggZDMxY2MyZGFmNmRhYmY2MWU1Njg1ZDZmMGRjOTI5ODRiMmIzYzQ0OS4uZDY1YWY0Yjhl
YjI2NGQ1ZDk4MzkwYmNjMmM0OWYyNDJiYTcxODliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRp
b0lucHV0VHlwZS5jcHAKQEAgLTE1NCwxNCArMTU0LDkgQEAgUGFzc093blB0cjxDbGlja0hhbmRs
aW5nU3RhdGU+IFJhZGlvSW5wdXRUeXBlOjp3aWxsRGlzcGF0Y2hDbGljaygpCiAgICAgc3RhdGUt
PmNoZWNrZWQgPSBlbGVtZW50KCktPmNoZWNrZWQoKTsKICAgICBzdGF0ZS0+Y2hlY2tlZFJhZGlv
QnV0dG9uID0gZWxlbWVudCgpLT5jaGVja2VkUmFkaW9CdXR0b25zKCkuY2hlY2tlZEJ1dHRvbkZv
ckdyb3VwKGVsZW1lbnQoKS0+bmFtZSgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGF0
ZS0+aW5kZXRlcm1pbmF0ZSA9IGVsZW1lbnQoKS0+aW5kZXRlcm1pbmF0ZSgpOwotCiAgICAgaWYg
KGVsZW1lbnQoKS0+aW5kZXRlcm1pbmF0ZSgpKQogICAgICAgICBlbGVtZW50KCktPnNldEluZGV0
ZXJtaW5hdGUoZmFsc2UpOwotI2VuZGlmCi0KLSAgICBlbGVtZW50KCktPnNldENoZWNrZWQodHJ1
ZSwgdHJ1ZSk7CisgICAgZWxlbWVudCgpLT5zZXRDaGVja2VkKHRydWUsIERpc3BhdGNoQ2hhbmdl
RXZlbnQpOwogCiAgICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KQEAgLTE3OCwxMSArMTcz
LDcgQEAgdm9pZCBSYWRpb0lucHV0VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCogZXZlbnQs
IGNvbnN0IENsaWNrSGFuZGxpbmdTdGF0ZSYgc3QKICAgICAgICAgICAgICAgICAmJiBjaGVja2Vk
UmFkaW9CdXR0b24tPm5hbWUoKSA9PSBlbGVtZW50KCktPm5hbWUoKSkgewogICAgICAgICAgICAg
Y2hlY2tlZFJhZGlvQnV0dG9uLT5zZXRDaGVja2VkKHRydWUpOwogICAgICAgICB9Ci0KLSNpZiBQ
TEFURk9STShJT1MpICAgICAgICAKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWluYXRl
KHN0YXRlLmluZGV0ZXJtaW5hdGUpOwotI2VuZGlmCi0KICAgICB9CiAKICAgICAvLyBUaGUgd29y
ayB3ZSBkaWQgaW4gd2lsbERpc3BhdGNoQ2xpY2sgd2FzIGRlZmF1bHQgaGFuZGxpbmcuCkBAIC0x
OTYsMTEgKzE4Nyw3IEBAIGJvb2wgUmFkaW9JbnB1dFR5cGU6OmlzUmFkaW9CdXR0b24oKSBjb25z
dAogCiBib29sIFJhZGlvSW5wdXRUeXBlOjpzdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNl
KCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQot
ICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGZlM2MzYWFiMDYyOWVmYWZk
YzQ2ZjdjMmEyOTE2YTU1YjM4OTVmZTguLjE0NzQxODU2MmI2YjJkZjBlZDc1OWM0MGI1YjZlNWVi
NDFkZTM2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC03OCw5
ICs3OCw5IEBAIGRvdWJsZSBSYW5nZUlucHV0VHlwZTo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAg
ICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0
czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZh
bHVlQXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0Cit2b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRv
dWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNl
cHRpb25Db2RlJikgY29uc3QKIHsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShu
ZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJp
YWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBSYW5nZUlucHV0VHlw
ZTo6c3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0CkBAIC0yMjAsOCArMjIwLDggQEAgdm9pZCBSYW5n
ZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAg
ICAgaWYgKG5ld1ZhbHVlICE9IGN1cnJlbnQpIHsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsK
LSAgICAgICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSB0cnVlOwotICAgICAgICBzZXRWYWx1ZUFz
TnVtYmVyKG5ld1ZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAgICAgICAgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yID0gRGlzcGF0Y2hDaGFuZ2VFdmVudDsKKyAgICAg
ICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZXZlbnRCZWhhdmlvciwgZWMpOwogCiAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAg
ICAgZWxlbWVudCgpLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRp
b24oZWxlbWVudCgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwg
dHJ1ZSk7CkBAIC0yODcsOSArMjg3LDkgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6bWluT3JNYXhB
dHRyaWJ1dGVDaGFuZ2VkKCkKICAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsK
IH0KIAotdm9pZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Ym9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9pZCBSYW5nZUlucHV0
VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKLSAgICBJbnB1dFR5cGU6OnNl
dFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgSW5wdXRU
eXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKIAogICAg
IGlmICghdmFsdWVDaGFuZ2VkKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKaW5kZXggZTc1MTkzMDk4YTFjNTgwZmE0NzllOGUwODI4MGMzNjU1NDVhMzJk
NS4uYWJmMmVhNjc0ODI3ZjE4MzBhNjExMGNmMDA5ODRjZjQwZmQzOGZjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZUFzTnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByYW5nZU92ZXJmbG93KGNvbnN0
IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBtaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggYmJjZjU2YzkxODkyMTljNjAxZjEzZWRkOTIzMDQw
OGRmZjAwMjI1Yi4uNTZlNTVkMzg4ZTM3NzhmNmQ1Mzk2MjFiMjE4YjJiZjk0ZmMzNzU5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNzcsOSArNzcs
OSBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6Y2FuU2V0U3VnZ2VzdGVkVmFsdWUoKQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENo
YW5nZUV2ZW50KQordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRW
YWx1ZSwgdmFsdWVDaGFuZ2VkLCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIElucHV0VHlwZTo6c2V0
VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CiAKICAg
ICBpZiAodmFsdWVDaGFuZ2VkKQogICAgICAgICBlbGVtZW50KCktPnVwZGF0ZUlubmVyVGV4dFZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRleCBmOTQw
MThiYjAzN2FkODlkYWVhZDcwMWI1ZjAwMmZlZDkyOTM5MWE0Li4zNWFlNTI5ZTg1YTkxNjc5ZDk4
MzYwMGZjZGQwODc0ODNjODk4M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkU3VibWl0SW1wbGljaXRseShFdmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFu
Z2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDVkYWRiMGNm
OGE1NjczMWQ4MzdiYTc1MmMxNDJjMGZjMTFhNTkxNGYuLjczNjE2NWJiZmRhZGQ4MmRkMTM0OWFm
NTZmNDY5NmQzZjc1OWQ5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFbGVtZW50LmNwcApAQCAtOTAsNyArOTAsNyBAQCBpbnQgV2ViSW5wdXRFbGVtZW50Ojpz
aXplKCkgY29uc3QKIAogdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFdlYlN0
cmluZyYgdmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQogewotICAgIHVud3JhcDxIVE1MSW5w
dXRFbGVtZW50PigpLT5zZXRWYWx1ZSh2YWx1ZSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICB1bndy
YXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2V0VmFsdWUodmFsdWUsIHNlbmRDaGFuZ2VFdmVudCA/
IERpc3BhdGNoQ2hhbmdlRXZlbnQgOiBEaXNwYXRjaE5vRXZlbnQpOwogfQogCiBXZWJTdHJpbmcg
V2ViSW5wdXRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWYyZWNjMDBhMWJlMDA2NmVm
YzJhYzUxZDQxNmRmYzEwZTgzMWI4NS4uNzE0MjVhYmY4ZDYwOTgwMWQ0MGE5M2I4NjE3ZmExNTU3
NWU1NGEyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMTY4LDYgKzE2OCwxNjUgQEAKICAgICAgICAgKiBwbGF0Zm9ybS9l
Zmwvc3ZnL3pvb20vdGV4dC96b29tLWhpeGllLXJlbmRlcmluZy1tb2RlbC0wMDQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KICAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL3pvb20vdGV4dC96b29tLXN2
Zy1mbG9hdC1ib3JkZXItcGFkZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgogCisyMDEyLTAyLTEy
ICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtE
UlRdIEltcGxlbWVudCB6b29tUGFnZXtJbixPdXR9IGFuZCB0ZXh0Wm9vbXtJbixPdXR9IGV2ZW50
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDkx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSGFqaW1lIE1vcml0YS4KKworICAgICAgICBJbXBsZW1l
bnRlZCB6b29tUGFnZUluLCB6b29tUGFnZU91dCwgdGV4dFpvb21JbiBhbmQgdGV4dFpvb21PdXQg
ZXZlbnRzIG9uIEVGTCBEUlQuCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBhY3RpdmF0ZSBhcm91
bmQgMSw5MDAgdGVzdCBjYXNlcyBmcm9tIHNraXBwZWQgbGlzdCBpbiBFRkwgcG9ydC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9mYXN0L2Nzcy9pZ25vcmUtdGV4dC16b29tLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL2Zhc3QvY3NzL3ByZXNlcnZlLXVzZXIt
c3BlY2lmaWVkLXpvb20tbGV2ZWwtb24tcmVsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL2Zhc3QvaW1hZ2VzL2ltYWdlbWFwLWZvY3VzLXJpbmctem9vbS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4v
Zy1kaXJMVFItdWJOb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
ZWZsL3N2Zy9XM0MtSTE4Ti9nLWRpckxUUi11Yk92ZXJyaWRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti9nLWRpclJUTC11Yk5vbmUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL1czQy1JMThOL2ct
ZGlyUlRMLXViT3ZlcnJpZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvc3ZnL1czQy1JMThOL3RleHQtYW5jaG9yLWRpckxUUi1hbmNob3JFbmQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL1czQy1JMThOL3RleHQtYW5j
aG9yLWRpckxUUi1hbmNob3JNaWRkbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvc3ZnL1czQy1JMThOL3RleHQtYW5jaG9yLWRpckxUUi1hbmNob3JTdGFydC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4v
dGV4dC1hbmNob3ItZGlyTm9uZS1hbmNob3JFbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL1czQy1JMThOL3RleHQtYW5jaG9yLWRpck5vbmUtYW5jaG9y
TWlkZGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9X
M0MtSTE4Ti90ZXh0LWFuY2hvci1kaXJOb25lLWFuY2hvclN0YXJ0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90ZXh0LWFuY2hvci1kaXJS
VEwtYW5jaG9yRW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZs
L3N2Zy9XM0MtSTE4Ti90ZXh0LWFuY2hvci1kaXJSVEwtYW5jaG9yTWlkZGxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90ZXh0LWFuY2hv
ci1kaXJSVEwtYW5jaG9yU3RhcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvc3ZnL1czQy1JMThOL3RleHQtYW5jaG9yLWluaGVyaXRlZC1kaXJMVFItYW5jaG9y
RW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0Mt
STE4Ti90ZXh0LWFuY2hvci1pbmhlcml0ZWQtZGlyTFRSLWFuY2hvck1pZGRsZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdGV4dC1hbmNo
b3ItaW5oZXJpdGVkLWRpckxUUi1hbmNob3JTdGFydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdGV4dC1hbmNob3ItaW5oZXJpdGVkLWRp
clJUTC1hbmNob3JFbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
Zmwvc3ZnL1czQy1JMThOL3RleHQtYW5jaG9yLWluaGVyaXRlZC1kaXJSVEwtYW5jaG9yTWlkZGxl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4
Ti90ZXh0LWFuY2hvci1pbmhlcml0ZWQtZGlyUlRMLWFuY2hvclN0YXJ0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90ZXh0LWFuY2hvci1u
by1tYXJrdXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3Zn
L1czQy1JMThOL3RleHQtZGlyTFRSLXViTm9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdGV4dC1kaXJMVFItdWJPdmVycmlkZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdGV4
dC1kaXJSVEwtdWJOb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
ZWZsL3N2Zy9XM0MtSTE4Ti90ZXh0LWRpclJUTC11Yk92ZXJyaWRlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFItdWJF
bWJlZC1pbi1ydGwtY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9zdmcvVzNDLUkxOE4vdHNwYW4tZGlyTFRSLXViTm9uZS1pbi1ydGwtY29udGV4dC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4v
dHNwYW4tZGlyTFRSLXViT3ZlcnJpZGUtaW4tZGVmYXVsdC1jb250ZXh0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFIt
dWJPdmVycmlkZS1pbi1sdHItY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdHNwYW4tZGlyTFRSLXViT3ZlcnJpZGUtaW4tcnRs
LWNvbnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3Zn
L1czQy1JMThOL3RzcGFuLWRpck5vbmUtdWJPdmVycmlkZS1pbi1kZWZhdWx0LWNvbnRleHQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL1czQy1JMThOL3Rz
cGFuLWRpck5vbmUtdWJPdmVycmlkZS1pbi1sdHItY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdHNwYW4tZGlyTm9uZS11Yk92
ZXJyaWRlLWluLXJ0bC1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJSVEwtdWJFbWJlZC1pbi1kZWZhdWx0LWNv
bnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL1cz
Qy1JMThOL3RzcGFuLWRpclJUTC11YkVtYmVkLWluLWx0ci1jb250ZXh0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJSVEwt
dWJOb25lLWluLWRlZmF1bHQtY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdHNwYW4tZGlyUlRMLXViTm9uZS1pbi1sdHItY29u
dGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzND
LUkxOE4vdHNwYW4tZGlyUlRMLXViT3ZlcnJpZGUtaW4tZGVmYXVsdC1jb250ZXh0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9XM0MtSTE4Ti90c3Bhbi1k
aXJSVEwtdWJPdmVycmlkZS1pbi1sdHItY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvVzNDLUkxOE4vdHNwYW4tZGlyUlRMLXViT3ZlcnJpZGUt
aW4tcnRsLWNvbnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
Zmwvc3ZnL1czQy1JMThOL3RzcGFuLWRpcmVjdGlvbi1sdHItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL1czQy1JMThOL3RzcGFuLWRpcmVjdGlvbi1ydGwt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2FzLWJhY2tn
cm91bmQtaW1hZ2UvYW5pbWF0ZWQtc3ZnLWFzLWJhY2tncm91bmQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2FzLWJhY2tncm91bmQtaW1hZ2UvYmFja2dy
b3VuZC1pbWFnZS1wcmVzZXJ2ZWFzcGVjdFJhdGlvLXN1cHBvcnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2FzLWJhY2tncm91bmQtaW1hZ2UvYmFja2dy
b3VuZC1pbWFnZS10aWxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9zdmcvYXMtYmFja2dyb3VuZC1pbWFnZS9zYW1lLWltYWdlLXR3by1pbnN0YW5jZXMtYmFj
a2dyb3VuZC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9zdmcvYXMtYmFja2dyb3VuZC1pbWFnZS9zdmctYXMtYmFja2dyb3VuZC0yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9hcy1iYWNrZ3JvdW5kLWltYWdl
L3N2Zy1hcy1iYWNrZ3JvdW5kLTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvc3ZnL2FzLWJhY2tncm91bmQtaW1hZ2Uvc3ZnLWFzLWJhY2tncm91bmQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2FzLWJhY2tncm91bmQt
aW1hZ2Uvc3ZnLWFzLWJhY2tncm91bmQtd2l0aC1yZWxhdGl2ZS1zaXplLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9hcy1iYWNrZ3JvdW5kLWltYWdlL3N2
Zy1hcy1iYWNrZ3JvdW5kLXdpdGgtdmlld0JveC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2VmbC9zdmcvYXMtYmFja2dyb3VuZC1pbWFnZS9zdmctYXMtdGlsZWQtYmFj
a2dyb3VuZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcv
YXMtYmFja2dyb3VuZC1pbWFnZS9zdmctYmFja2dyb3VuZC1wYXJ0aWFsLXJlZHJhdy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYXMtYmFja2dyb3VuZC1p
bWFnZS9zdmctd2lkdGgtMTAwcC1hcy1iYWNrZ3JvdW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9hcy1ib3JkZXItaW1hZ2Uvc3ZnLWFzLWJvcmRlci1p
bWFnZS0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9h
cy1ib3JkZXItaW1hZ2Uvc3ZnLWFzLWJvcmRlci1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYXMtaW1hZ2UvYW5pbWF0ZWQtc3ZnLWFzLWltYWdl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9hcy1pbWFn
ZS9hbmltYXRlZC1zdmctYXMtaW1hZ2Utbm8tZml4ZWQtaW50cmluc2ljLXNpemUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2FzLWltYWdlL2FuaW1hdGVk
LXN2Zy1hcy1pbWFnZS1zYW1lLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZWZsL3N2Zy9hcy1pbWFnZS9pbWctcHJlc2VydmVBc3BlY3RSYXRpby1zdXBwb3J0
LTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2FzLWlt
YWdlL2ltZy1wcmVzZXJ2ZUFzcGVjdFJhdGlvLXN1cHBvcnQtMi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYXMtaW1hZ2Uvc2FtZS1pbWFnZS10d28taW5z
dGFuY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9h
cy1pbWFnZS9zdmctYXMtaW1hZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvc3ZnL2FzLWltYWdlL3N2Zy1hcy1yZWxhdGl2ZS1pbWFnZS13aXRoLWV4cGxpY2l0
LXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2Fz
LWltYWdlL3N2Zy1pbWFnZS1jaGFuZ2UtY29udGVudC1zaXplLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay9maWx0ZXJzL2ZlVGlsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvZmlsdGVycy9m
aWx0ZXJSZWdpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZs
L3N2Zy9iYXRpay9tYXNraW5nL21hc2tSZWdpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay9wYWludHMvZ3JhZGllbnRMaW1pdC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvcGFpbnRzL3Bh
dHRlcm5QcmVzZXJ2ZUFzcGVjdFJhdGlvQS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvcGFpbnRzL3BhdHRlcm5SZWdpb25BLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay9wYWludHMvcGF0dGVy
blJlZ2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3Zn
L2JhdGlrL3BhaW50cy9wYXR0ZXJuUmVnaW9ucy1wb3NpdGlvbmVkLW9iamVjdHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2JhdGlrL3RleHQvbG9uZ1Rl
eHRPblBhdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3Zn
L2JhdGlrL3RleHQvc21hbGxGb250cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0QW5jaG9yLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay90ZXh0L3RleHRBbmNob3IyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay90ZXh0L3Rl
eHRBbmNob3IzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2
Zy9iYXRpay90ZXh0L3RleHREZWNvcmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay90ZXh0L3RleHREZWNvcmF0aW9uMi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0RWZm
ZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRp
ay90ZXh0L3RleHRFZmZlY3QyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vZWZsL3N2Zy9iYXRpay90ZXh0L3RleHRFZmZlY3QzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay90ZXh0L3RleHRGZWF0dXJlcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0
R2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvc3ZnL2JhdGlrL3RleHQvdGV4dExheW91dC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0TGF5b3V0Mi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4
dC90ZXh0TGVuZ3RoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZs
L3N2Zy9iYXRpay90ZXh0L3RleHRPblBhdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvc3ZnL2JhdGlrL3RleHQvdGV4dE9uUGF0aDItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2JhdGlrL3RleHQvdGV4dE9uUGF0aDMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2JhdGlrL3Rl
eHQvdGV4dE9uUGF0aFNwYWNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0UENEQVRBLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay90ZXh0L3RleHRQb3NpdGlvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0
UG9zaXRpb24yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2
Zy9iYXRpay90ZXh0L3RleHRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRpay90ZXh0L3RleHRQcm9wZXJ0aWVzMi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvYmF0aWsvdGV4dC90ZXh0U3R5
bGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9iYXRp
ay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2JhdGlrL3RleHQveG1sU3BhY2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NhcnRvLm5ldC9i
dXR0b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2Nh
cnRvLm5ldC9jb2xvdXJwaWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvc3ZnL2NhcnRvLm5ldC9jb21ib2JveC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2FydG8ubmV0L3Njcm9sbGJhci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2FydG8ubmV0L3NlbGVjdGlvbmxp
c3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NhcnRv
Lm5ldC9zbGlkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
c3ZnL2NhcnRvLm5ldC90YWJncm91cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9zdmcvY2FydG8ubmV0L3RleHRib3gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NhcnRvLm5ldC93aW5kb3ctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9jbGlwLWluLWNsaXAt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0
aC9jbGlwLWluLW1hc2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
Zmwvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtY2hpbGQtY2xpcHBlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1jbGlw
cGVkLW5vLWNvbnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
Zmwvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtY3NzLXRyYW5zZm9ybS0xLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWNz
cy10cmFuc2Zvcm0tMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1ldmVub2RkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWV2ZW5vZGQtbm9u
emVyby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2xp
cC1wYXRoL2NsaXAtcGF0aC1ub256ZXJvLWV2ZW5vZGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtbm9uemVyby1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL2Ns
aXAtcGF0aC1waXhlbGF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLXJlY3Vyc2l2ZS1jYWxsLWJ5LWNoaWxkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgv
Y2xpcC1wYXRoLXJlY3Vyc2l2ZS1jYWxsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLXRleHQtYW5kLXNoYXBlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xp
cC1wYXRoLXRleHQtYW5kLXN0cm9rZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC10ZXh0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLXRyYW5z
Zm9ybS0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9j
bGlwLXBhdGgvY2xpcC1wYXRoLXRzcGFuLWFuZC1zdHJva2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtdXNlLWFzLWNo
aWxkMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2xp
cC1wYXRoL2NsaXAtcGF0aC11c2UtYXMtY2hpbGQzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLXVzZS1hcy1jaGlsZDQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0
aC9jbGlwLXBhdGgtdXNlLWFzLWNoaWxkNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC13aXRoLWNvbnRhaW5lci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL2Ns
aXAtcGF0aC13aXRoLWRpZmZlcmVudC11bml0dHlwZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtd2l0aC1kaWZmZXJl
bnQtdW5pdHR5cGVzMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC13aXRoLWludmlzaWJpbGUtY2hpbGQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9jbGlwLXBh
dGgtd2l0aC10ZXh0LWNsaXBwZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9jbGlwcGVyLXBsYWNlbWVudC1pc3N1ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL2RlZXAtbmVz
dGVkLWNsaXAtaW4tbWFzay1kaWZmZXJlbnQtdW5pdFR5cGVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvZGVlcC1uZXN0ZWQtY2xpcC1p
bi1tYXNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL3N2Zy9j
bGlwLXBhdGgvZGVlcC1uZXN0ZWQtY2xpcC1pbi1tYXNrLXBhbm5pbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvc3ZnL2NsaXAtcGF0aC9uZXN0ZWQtY2xpcC1p
bi1tYXNrLWltYWdlLWJhc2VkLWNsaXBwaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL3N2Zy9jbGlwLXBhdGgvbmVzdGVkLWNsaXAtaW4tbWFzay1wYXRoLWFu
ZC1pbWFnZS1iYXNlZC1jbGlwcGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9zdmcvY2xpcC1wYXRoL25lc3RlZC1jbGlwLWluLW1hc2stcGF0aC1iYXNlZC1j
bGlwcGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9zdmcv
Y3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZWZsL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKwogMjAxMi0wMi0xMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcHBpbmcgMiB0ZXN0cyBmYWlsaW5nIGJlY2F1c2Ug
b2YgYnVnIDc4NDM0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126734</attachid>
            <date>2012-02-13 00:59:54 -0800</date>
            <delta_ts>2012-02-13 01:02:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75217-20120213175952.patch</filename>
            <type>text/plain</type>
            <size>36796</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IyMmNmOWMzYjg3ODMx
YThmNTcxNmQ1MTQ5YjA0MTAwNTRhMmUwYy4uNjFlYzA2ZTllOTgzOWE4YjlhMGIyZTQ4YzhlNTkx
M2QyZGRmZTM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxMi0wMi0xMyAgWW9z
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBVc2Ug
ZW51bSBpbnN0ZWFkIG9mIGJvb2wgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBUZXh0RmllbGRF
dmVudEJlaGF2aW9yIGVudW0gaW5zdGVhZCBvZiBzZW5kQ2hhbmdlRXZlbnQgYm9vbAorICAgICAg
ICBwYXJhbWV0ZXIgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlIG1ldGhvZC4gVGhpcyBu
ZXcgZW51bQorICAgICAgICBwYXJhbWV0ZXIgd2lsbCBiZSBleHRlbmRlZCB0byBkaXNwYXRjaCBp
bnB1dCBhbmQgY2hhbmdlIGV2ZW50cworICAgICAgICB3aGVuIHVzZXIgYWdlbnQgcG9wdWxhdGVz
IGlucHV0IGZpZWxkIGFzIHNwZWNpZmllZCBpbgorICAgICAgICAiQ29tbW9uIGV2ZW50cyBiZWhh
dmlvciIgb2YgSFRNTDUgc3RhbmRhcmQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyByZXF1aXJl
ZCBmb3IgZml4aW5nIGJ1ZyA3NTA2NyAiW0Zvcm1zXSBTcGluIGJ1dHRvbnMKKyAgICAgICAgb2Yg
bnVtYmVyIGlucHV0IHR5cGUgc2hvdWxkIGZpcmUgYm90aCBpbnB1dCBhbmQgY2hhbmdlIGV2ZW50
LiIKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRlc3RzIGNvdmVyIHRoaXMgcGF0
Y2guCisKKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwv
QmFzZUJ1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzZXRW
YWx1ZSk6CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKToKKyAgICAgICAgKiBo
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hlY2tib3hJbnB1dFR5cGU6OndpbGxE
aXNwYXRjaENsaWNrKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9D
b2xvcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXApOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c3RlcERvd24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6c2V0Q2hlY2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRWYWx1ZUZvclVzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzTnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21SZW5k
ZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZGRlbklucHV0VHlwZTo6c2V0VmFsdWUp
OgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0
bWwvSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKToKKyAgICAg
ICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFkaW9JbnB1dFR5cGU6OndpbGxEaXNwYXRjaENs
aWNrKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuaDoKKworMjAxMi0wMi0xMiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgW1Y4Q3VzdG9tVG9KU09iamVjdF0gSURMIGF0
dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzg0NTAKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoaXMg
aXMgdGhlIGZpcnN0IHN0ZXAgdG8gcmVtb3ZlIGhhcmQtY29kaW5nIGluIEhhc0N1c3RvbVRvVjhJ
bXBsZW1lbnRhdGlvbigpCisgICAgICAgIGluIENvZGVHZW5lcmF0b3JWOC5wbS4gVGhpcyBwYXRj
aCBhZGRzIFtWOEN1c3RvbVRvSlNPYmplY3RdCisgICAgICAgIHRvIGludGVyZmFjZXMgd2hpY2gg
aGF2ZSBjdXN0b20gdG9WOCgpIGJ1dCBkbyBub3QgaGF2ZSBjdXN0b20gdG9KUygpLgorCisgICAg
ICAgIE5vIHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogUmVwbGFjZWQgaGFyZC1jb2Rpbmcgd2l0aCBb
VjhDdXN0b21Ub0pTT2JqZWN0XS4KKyAgICAgICAgKEhhc0N1c3RvbVRvVjhJbXBsZW1lbnRhdGlv
bik6CisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5pZGw6IEFkZGVkIFtWOEN1c3RvbVRv
SlNPYmplY3RdLgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaWRsOgorICAgICAgICAqIGRv
bS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAg
KiBodG1sL0RPTVRva2VuTGlzdC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1BpeGVsQXJyYXkuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlkbDoKKyAg
ICAgICAgKiBzdmcvU1ZHRG9jdW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsOgorCiAyMDEyLTAyLTEyICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShN
RURJQV9TVFJFQU0pIGZyb20gTmF2aWdhdG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggMjE5N2U0Nzk4YTUzNDBmOWM5NmExOTkzOTQ0ZTE3NTczMzllMjA2Ni4uMzEwOTFkNWE4NWZh
YjhkMmQ4ZDFmNWE5NDliOWE5ZjgwYzJjYjkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0xMyAgWW9zaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBVc2UgZW51bSBpbnN0ZWFkIG9mIGJvb2wgZm9y
IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3JjL1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYklucHV0RWxlbWVudDo6c2V0VmFsdWUpOiBVc2UgZW51bSBmb3IgSFRNTElucHV0
RWxlbWVudDo6c2V0VmFsdWUKKwogMjAxMi0wMi0xMiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRh
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQYWdlIHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZl
IHdheSB0byBhc3NvY2lhdGUgQVBJIGltcGxlbWVudGF0aW9uIG9iamVjdHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAppbmRleCAxMTU0NmVkZGRhNzljZDNk
ZWQ0ZGNhMWFkMDJjMDVmMjBjNGQ2NDRhLi45YTE2MTZmY2VkMmJjOGMzNzE5MGQ2YmY3ZDk3YmE0
MjhjYjE3MjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5j
cHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1Zh
bHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
QmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsK
ICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggZGFiYzI3
Y2FjNGZiYjMyZWZlMDI0YzFhZWY1YmMzNmU5ZTc3ZTcwYy4uMWI3NTQzYzA1NTJhN2E5Y2E5Y2Rk
MjNhZDI0YTgyYTlkN2NjYWNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
QnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5w
dXRUeXBlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJv
bUF0dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA3MGY1MzlkODAzZjRhNzk3ZGMwZDk3OGMyMzVk
OTRlZGUxMjAxMTBiLi5mZjI4ZGFlMzZkYzIxYTc3MTg4NTAxYTUwYTliODY4YmMyYmI0MDNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVl
U2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikK
IHsKICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5k
ZXggMmMyYzRhZDNjM2I1ZmM2OTA4ZDcwMjZhMTM3ODIyMzBlMmVjMzc3Ny4uNDIxMWFkNTIxYjVk
ZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXND
aGVja2FibGUoKSBPVkVSUklERTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0NjM2NjcyOWYzYzNkOGZhY2U1ZWFlMWVm
NDEwNDE3OGFiZWE2ODJiLi4yOTA0ZjJlODVlMzlmZjE3YjQ3YWYwZDc3ODMyNmJlNTljOTljNzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCkBAIC02NSw5ICs2NSw5IEBAIGRvdWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZh
bHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+
dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCi12b2lk
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFs
dWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3QKK3ZvaWQgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29u
c3QKIHsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRD
aGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUp
LCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5
cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggNDZjMGM5ZDhkZGE0OGI4
MTNiMjk1MTdiMjc2ZTFiYjBhZDI3ZGY1My4uZTM0NTM1MDYwYzIxMzQ4OWU3Zjk1MGQ4ZDJhYzc4
MGYwNjZhMGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUg
dmFsdWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVB
c0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJl
cihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
CmluZGV4IDRlOTY2MzQ0MzI4OGUyNWI4YzRlODk0MjA3MjQ4MzIyODJkNzc1MmQuLjAyOTY3YmJm
NDhmOGQwN2Y2Yjc4NTIyMzZlNDM1MmI5Zjc0ZGRlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q2hlY2tib3hJbnB1dFR5cGUuY3BwCkBAIC04MCw3ICs4MCw3IEBAIFBhc3NPd25QdHI8Q2xpY2tI
YW5kbGluZ1N0YXRlPiBDaGVja2JveElucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogICAg
IGlmIChzdGF0ZS0+aW5kZXRlcm1pbmF0ZSkKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVy
bWluYXRlKGZhbHNlKTsKIAotICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNr
ZWQsIHRydWUpOworICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIERp
c3BhdGNoQ2hhbmdlRXZlbnQpOwogCiAgICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggOTczMTZkNDk5NzBlMjExMDQ4
MTQ3NGU5MjZmNDExMjRiNDNkNTZmNi4uYmVhYmVlODIyYjBmYzZjOGMzYjBiMDNjNWRjZjhlMGQ3
ZTA2YTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEyMiw5
ICsxMjIsOSBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAg
ICB1cGRhdGVDb2xvclN3YXRjaCgpOwogfQogCi12b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpCit2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9y
KQogewotICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENo
YW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQs
IGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCAzZTA2NGJkNDQwOWMwMzY2
ODMyMzViZmU5NmU1M2Q0MWI5ZTc0MmIxLi5mOTJiOTFjZWRkNGI0ZDRiNzc5ZjAxNDBmMDY3MDBj
MDQyNDNlYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01NSw3ICs1
NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgp
IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBmYzFi
ZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZhZmJhN2ZjZTFmZTUyLi5kZmJiZGY3Y2Q3MDQ4YmNiYzNh
ZjU4ZTcwMjkxNDY3NGM1NGJmOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBib29sIEZpbGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2Vw
YXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5w
dXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQordm9pZCBGaWxlSW5w
dXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yKQogewogICAgIG1fZmlsZUxpc3QtPmNsZWFyKCk7CiAgICAgbV9pY29uLmNsZWFyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGI1YTVkMTk2ZDFhMDY2ODViYTQxZjU0
NzQ5YTk0NTY4ZDk3MTY1MTUuLjUzNTc1YTQyMGYxZTc1OGJkZDkwYThmNGI1OTE4NDg3ZWY4Mzc0
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC01OSw3ICs1OSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVS
UklERTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZh
bHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21B
dHRyaWJ1dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBJY29uKiBpY29uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlz
RmlsZVVwbG9hZCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggYzc0ZTM0MGQzMTVjZWE0OWI0MDg3ZWJhM2M1NzU0YWY3MjA0MTI5
Yy4uNDIwZGU5ZjI4MzdmNDI0MGViYzMyZDllNjY5MDk0ODA1ZDVlNjY1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0zNTMsNyArMzUzLDcgQEAgYm9vbCBI
VE1MSW5wdXRFbGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFjZXMoQW55
U3RlcEhhbmRsaW5nIGFueVMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjphcHBseVN0ZXAoZG91YmxlIGNvdW50LCBBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhh
bmRsaW5nLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBh
bnlTdGVwSGFuZGxpbmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZG91YmxlIHN0ZXA7CiAgICAgdW5zaWduZWQgc3RlcERl
Y2ltYWxQbGFjZXMsIGN1cnJlbnREZWNpbWFsUGxhY2VzOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZv
aWQgSFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRs
aW5nIGFueVN0ZXBIYW5kbGluZywKICAgICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4
aW11bSgpKQogICAgICAgICBuZXdWYWx1ZSA9IG1faW5wdXRUeXBlLT5tYXhpbXVtKCk7CiAKLSAg
ICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBlYywgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBz
ZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBlYywgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgIGRvY3VtZW50
KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlcigpLCBBWE9iamVj
dENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgdHJ1ZSk7CkBAIC00MjAsMTQgKzQyMCwxMiBAQCBkb3Vi
bGUgSFRNTElucHV0RWxlbWVudDo6YWxpZ25WYWx1ZUZvclN0ZXAoZG91YmxlIG5ld1ZhbHVlLCBk
b3VibGUgc3RlcCwgdW5zaWduZQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcChpbnQg
biwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxz
ZTsKLSAgICBhcHBseVN0ZXAobiwgUmVqZWN0QW55LCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAg
ICBhcHBseVN0ZXAobiwgUmVqZWN0QW55LCBEaXNwYXRjaE5vRXZlbnQsIGVjKTsKIH0KIAogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bihpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZTsKLSAgICBhcHBseVN0ZXAoLW4sIFJl
amVjdEFueSwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgYXBwbHlTdGVwKC1uLCBSZWplY3RB
bnksIERpc3BhdGNoTm9FdmVudCwgZWMpOwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6Omlz
S2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0CkBAIC05MTMsNyAr
OTExLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1RleHRUeXBlKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPmlzVGV4dFR5cGUoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRDaGVja2VkKGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQoYm9vbCBub3dDaGVja2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgaWYgKGNoZWNrZWQoKSA9PSBu
b3dDaGVja2VkKQogICAgICAgICByZXR1cm47CkBAIC05MzgsNyArOTM2LDcgQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpCiAgICAgLy8gdW5jaGVja2VkIHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzLiBET00gaXMg
bm90IGEgdXNlZnVsIHN0YW5kYXJkIGZvciB0aGlzCiAgICAgLy8gYmVjYXVzZSBpdCBzYXlzIG9u
bHkgdG8gZmlyZSBjaGFuZ2UgZXZlbnRzIGF0ICJsb3NlIGZvY3VzIiB0aW1lLCB3aGljaCBpcwog
ICAgIC8vIGRlZmluaXRlbHkgd3JvbmcgaW4gcHJhY3RpY2UgZm9yIHRoZXNlIHR5cGVzIG9mIGVs
ZW1lbnRzLgotICAgIGlmIChzZW5kQ2hhbmdlRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYmIG1faW5w
dXRUeXBlLT5zaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkpIHsKKyAg
ICBpZiAoZXZlbnRCZWhhdmlvciAhPSBEaXNwYXRjaE5vRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYm
IG1faW5wdXRUeXBlLT5zaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkp
IHsKICAgICAgICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChTdHJpbmco
KSk7CiAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogICAgIH0KQEAg
LTEwMTIsNyArMTAxMCw3IEBAIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZVdpdGhEZWZh
dWx0KCkgY29uc3QKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVGb3JVc2VyKGNvbnN0
IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gQ2FsbCBzZXRWYWx1ZSBhbmQgbWFrZSBpdCBzZW5k
IGEgY2hhbmdlIGV2ZW50LgotICAgIHNldFZhbHVlKHZhbHVlLCB0cnVlKTsKKyAgICBzZXRWYWx1
ZSh2YWx1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiB9CiAKIGNvbnN0IFN0cmluZyYgSFRNTElu
cHV0RWxlbWVudDo6c3VnZ2VzdGVkVmFsdWUoKSBjb25zdApAQCAtMTAzMCw3ICsxMDI4LDcgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTdWdnZXN0ZWRWYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlKQogICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQp
Cit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKICAgICBpZiAoIW1faW5wdXRU
eXBlLT5jYW5TZXRWYWx1ZSh2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNDIsMjUgKzEw
NDAsMjUgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKICAgICBzZXRMYXN0Q2hhbmdlV2FzTm90VXNlckVk
aXQoKTsKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKICAg
ICBtX3N1Z2dlc3RlZFZhbHVlID0gU3RyaW5nKCk7IC8vIFByZXZlbnQgVGV4dEZpZWxkSW5wdXRU
eXBlOjpzZXRWYWx1ZSBmcm9tIHVzaW5nIHRoZSBzdWdnZXN0ZWQgdmFsdWUuCi0gICAgbV9pbnB1
dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VF
dmVudCk7CisgICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNo
YW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmIChzZW5kQ2hhbmdlRXZlbnQpCisgICAgaWYgKGV2ZW50QmVoYXZp
b3IgIT0gRGlzcGF0Y2hOb0V2ZW50KQogICAgICAgICBtX2lucHV0VHlwZS0+ZGlzcGF0Y2hDaGFu
Z2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCk7CiAKLSAgICAvLyBGSVhNRTogV2h5IGRvIHdl
IGRvIHRoaXMgd2hlbiAhc2VuZENoYW5nZUV2ZW50PwotICAgIGlmIChpc1RleHRGaWVsZCgpICYm
ICghZm9jdXNlZCgpIHx8ICFzZW5kQ2hhbmdlRXZlbnQpKQorICAgIC8vIEZJWE1FOiBXaHkgZG8g
d2UgZG8gdGhpcyB3aGVuICFldmVudEJlaGF2aW9yPworICAgIGlmIChpc1RleHRGaWVsZCgpICYm
ICghZm9jdXNlZCgpIHx8IGV2ZW50QmVoYXZpb3IgPT0gRGlzcGF0Y2hOb0V2ZW50KSkKICAgICAg
ICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCh2YWx1ZSk7CiAKICAgICBu
b3RpZnlGb3JtU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0
VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHNlbmRDaGFu
Z2VFdmVudCkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbChjb25zdCBT
dHJpbmcmIHNhbml0aXplZFZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZp
b3IpCiB7CiAgICAgbV92YWx1ZUlmRGlydHkgPSBzYW5pdGl6ZWRWYWx1ZTsKLSAgICBtX3dhc01v
ZGlmaWVkQnlVc2VyID0gc2VuZENoYW5nZUV2ZW50OworICAgIG1fd2FzTW9kaWZpZWRCeVVzZXIg
PSBldmVudEJlaGF2aW9yICE9IERpc3BhdGNoTm9FdmVudDsKICAgICBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKTsKIH0KIApAQCAtMTA3OSwxMyArMTA3NywxMyBAQCBkb3VibGUgSFRNTElucHV0RWxl
bWVudDo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52YWx1
ZUFzTnVtYmVyKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc051bWJl
cihkb3VibGUgbmV3VmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZp
b3IpCiB7CiAgICAgaWYgKCFpc2Zpbml0ZShuZXdWYWx1ZSkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2lucHV0VHlwZS0+
c2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgbV9p
bnB1dFR5cGUtPnNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGV2ZW50QmVoYXZpb3IsIGVjKTsK
IH0KIAogU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnBsYWNlaG9sZGVyKCkgY29uc3QKQEAgLTE2
MzksNyArMTYzNyw2IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVy
KGludCBuKQogICAgIGNvbnN0IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+Ojpx
dWlldF9OYU4oKTsKICAgICBTdHJpbmcgY3VycmVudFN0cmluZ1ZhbHVlID0gdmFsdWUoKTsKICAg
ICBkb3VibGUgY3VycmVudCA9IG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGN1cnJlbnRTdHJp
bmdWYWx1ZSwgbmFuKTsKLSAgICBjb25zdCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IHRydWU7CiAg
ICAgaWYgKCFpc2Zpbml0ZShjdXJyZW50KSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwog
ICAgICAgICBjdXJyZW50ID0gbV9pbnB1dFR5cGUtPmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpOwpA
QCAtMTY0OCwxMCArMTY0NSwxMCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21S
ZW5kZXJlcihpbnQgbikKICAgICAgICAgICAgIGN1cnJlbnQgPSBtX2lucHV0VHlwZS0+bWluaW11
bSgpIC0gbmV4dERpZmY7CiAgICAgICAgIGlmIChjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGlt
dW0oKSAtIG5leHREaWZmKQogICAgICAgICAgICAgY3VycmVudCA9IG1faW5wdXRUeXBlLT5tYXhp
bXVtKCkgLSBuZXh0RGlmZjsKLSAgICAgICAgc2V0VmFsdWVBc051bWJlcihjdXJyZW50LCBlYywg
c2VuZENoYW5nZUV2ZW50KTsKKyAgICAgICAgc2V0VmFsdWVBc051bWJlcihjdXJyZW50LCBlYywg
RGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiAgICAgfQogICAgIGlmICgoc2lnbiA+IDAgJiYgY3VycmVu
dCA8IG1faW5wdXRUeXBlLT5taW5pbXVtKCkpIHx8IChzaWduIDwgMCAmJiBjdXJyZW50ID4gbV9p
bnB1dFR5cGUtPm1heGltdW0oKSkpCi0gICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJp
YWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1h
eGltdW0oKSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBl
LT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lucHV0VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5
cGUtPm1heGltdW0oKSksIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogICAgIGVsc2UgewogICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICBpZiAoc3RlcE1pc21hdGNoKHZhbHVlKCkpKSB7
CkBAIC0xNjcxLDE0ICsxNjY4LDE0IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJv
bVJlbmRlcmVyKGludCBuKQogICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID4gbV9pbnB1dFR5cGUt
Pm1heGltdW0oKSkKICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG1faW5wdXRUeXBlLT5tYXhp
bXVtKCk7CiAKLSAgICAgICAgICAgIHNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGVjLCBuID09
IDEgfHwgbiA9PSAtMSk7CisgICAgICAgICAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBl
YywgbiA9PSAxIHx8IG4gPT0gLTEgPyBEaXNwYXRjaENoYW5nZUV2ZW50IDogRGlzcGF0Y2hOb0V2
ZW50KTsKICAgICAgICAgICAgIGN1cnJlbnQgPSBuZXdWYWx1ZTsKICAgICAgICAgICAgIGlmIChu
ID4gMSkKLSAgICAgICAgICAgICAgICBhcHBseVN0ZXAobiAtIDEsIEFueUlzRGVmYXVsdFN0ZXAs
IHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuIC0gMSwg
QW55SXNEZWZhdWx0U3RlcCwgRGlzcGF0Y2hDaGFuZ2VFdmVudCwgZWMpOwogICAgICAgICAgICAg
ZWxzZSBpZiAobiA8IC0xKQotICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuICsgMSwgQW55SXNE
ZWZhdWx0U3RlcCwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICAgICAgYXBwbHlT
dGVwKG4gKyAxLCBBbnlJc0RlZmF1bHRTdGVwLCBEaXNwYXRjaENoYW5nZUV2ZW50LCBlYyk7CiAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYXBwbHlTdGVwKG4sIEFueUlzRGVmYXVsdFN0ZXAs
IHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAgICAgICAgICAgYXBwbHlTdGVwKG4sIEFueUlzRGVm
YXVsdFN0ZXAsIERpc3BhdGNoQ2hhbmdlRXZlbnQsIGVjKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYTUxMjMxMzM5NGU5YzA1YTlkYmE1OTg2
MzY1ZThlMTQwM2M4NDM1OC4uMmNhYTU1OWEzNzAxNjBmMTM0MzEzMzE5MjUzZTIzM2IzMmVlN2Jh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEyMSw3ICsxMjEs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIVE1MRWxlbWVudCogcGxhY2Vob2xkZXJFbGVtZW50
KCkgY29uc3Q7CiAKICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hlY2tl
ZDsgfQotICAgIHZvaWQgc2V0Q2hlY2tlZChib29sLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZh
bHNlKTsKKyAgICB2b2lkIHNldENoZWNrZWQoYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9
IERpc3BhdGNoTm9FdmVudCk7CiAKICAgICAvLyAnaW5kZXRlcm1pbmF0ZScgaXMgYSBzdGF0ZSBp
bmRlcGVuZGVudCBvZiB0aGUgY2hlY2tlZCBzdGF0ZSB0aGF0IGNhdXNlcyB0aGUgY29udHJvbCB0
byBkcmF3IGluIGEgd2F5IHRoYXQgaGlkZXMgdGhlIGFjdHVhbCBzdGF0ZS4KICAgICBib29sIGlu
ZGV0ZXJtaW5hdGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5kZXRlcm1pbmF0ZTsgfQpAQCAtMTM2
LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOworICAgIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7CiAg
ICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgLy8gQ2hlY2tzIGlm
IHRoZSBzcGVjaWZpZWQgc3RyaW5nIHdvdWxkIGJlIGEgdmFsaWQgdmFsdWUuCiAgICAgLy8gV2Ug
c2hvdWxkIG5vdCBjYWxsIHRoaXMgZm9yIHR5cGVzIHdpdGggbm8gc3RyaW5nIHZhbHVlIHN1Y2gg
YXMgQ0hFQ0tCT1ggYW5kIFJBRElPLgpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgZG91Ymxl
IHZhbHVlQXNOdW1iZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91Ymxl
LCBFeGNlcHRpb25Db2RlJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CisgICAgdm9p
ZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgcGxhY2Vo
b2xkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhY2Vob2xkZXIoY29uc3QgU3Ry
aW5nJik7CkBAIC0yMjUsNyArMjI1LDcgQEAgcHVibGljOgogICAgIC8vIE90aGVyd2lzZSwgdGhl
eSB3b3VsZCBiZSBwcml2YXRlLgogICAgIENoZWNrZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRp
b0J1dHRvbnMoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNoZWNrZWRSYWRpb0J1dHRvbnMoKTsK
LSAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpOworICAgIHZvaWQgc2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKTsKIAogICAgIHZvaWQgY2FjaGVTZWxlY3Rpb25JblJlc3BvbnNlVG9T
ZXRWYWx1ZShpbnQgY2FyZXRPZmZzZXQpIHsgY2FjaGVTZWxlY3Rpb24oY2FyZXRPZmZzZXQsIGNh
cmV0T2Zmc2V0LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbik7IH0KIApAQCAtMzI5LDcgKzMyOSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBnZXRBbGxvd2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFj
ZXMoQW55U3RlcEhhbmRsaW5nLCBkb3VibGUqLCB1bnNpZ25lZCopIGNvbnN0OwogCiAgICAgLy8g
SGVscGVyIGZvciBzdGVwVXAoKS9zdGVwRG93bigpLiAgQWRkcyBzdGVwIHZhbHVlICogY291bnQg
dG8gdGhlIGN1cnJlbnQgdmFsdWUuCi0gICAgdm9pZCBhcHBseVN0ZXAoZG91YmxlIGNvdW50LCBB
bnlTdGVwSGFuZGxpbmcsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdm9pZCBhcHBseVN0ZXAoZG91YmxlIGNvdW50LCBBbnlTdGVwSGFuZGxpbmcsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBkb3VibGUgYWxpZ25WYWx1ZUZv
clN0ZXAoZG91YmxlIHZhbHVlLCBkb3VibGUgc3RlcCwgdW5zaWduZWQgY3VycmVudERlY2ltYWxQ
bGFjZXMsIHVuc2lnbmVkIHN0ZXBEZWNpbWFsUGxhY2VzKTsKIAogI2lmIEVOQUJMRShEQVRBTElT
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aAppbmRleCA4YWZmMjkwOTMyYTlmZWNiMzM3MzgwZmRhNjUyN2NjODM3NTkwMzQ4Li45M2M0ZThh
NjZiYzkxNDUyZDM1OGRhMjkxNTZmN2Y1NDIwNGZkMTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIGNs
YXNzIFJlbmRlclRleHRDb250cm9sOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCiBlbnVtIFRl
eHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiB7IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxl
Y3Rpb25IYXNGb3J3YXJkRGlyZWN0aW9uLCBTZWxlY3Rpb25IYXNCYWNrd2FyZERpcmVjdGlvbiB9
OworZW51bSBUZXh0RmllbGRFdmVudEJlaGF2aW9yIHsgRGlzcGF0Y2hOb0V2ZW50LCBEaXNwYXRj
aENoYW5nZUV2ZW50IH07CiAKIGNsYXNzIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IDogcHVi
bGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUgewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IGZjMTAzOTc1Yjc5ODllNTM2NDViZjg3
NzRmYzk5OGFiMTAyYTAxNjcuLjk1MWI2ZDgyNjQ0YWE2YzBhMzliZmI0ZjlkNGU4NTYxMDdkOGY1
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTg3LDcgKzg3
LDcgQEAgYm9vbCBIaWRkZW5JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmli
dXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSGlkZGVuSW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBib29sKQordm9pZCBIaWRk
ZW5JbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2ws
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUo
dmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaAppbmRleCBmZDg2ZmJjMWZkOWE5NTU2ODcyY2I3YjEwYzYyZjljOTAzN2QyMTgyLi45
ZTg5ODJjNTQzNjE2YTFjMDMxZmViMjQzNjQ4NDRmNTE3NmUzZTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA3Y2VhMDU5YzIxYjY0YmYwYmI2M2VjYzY1NTkyYTg1
MjlkMzA5ZTRjLi44MDBjMjFjZmY4OTI5YzA3YjNlNjlkZGQyMDBlMDA4NDMwMjk1NTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgZG91YmxlIElucHV0
VHlwZTo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpOwogfQogCi12b2lkIElucHV0VHlwZTo6c2V0VmFsdWVBc051bWJl
cihkb3VibGUsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAordm9pZCBJbnB1dFR5cGU6
OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRp
b25Db2RlJiBlYykgY29uc3QKIHsKICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogfQpAQCAt
NTM2LDkgKzUzNiw5IEBAIGJvb2wgSW5wdXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0
dHJpYnV0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKK3ZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVl
LCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgZWxl
bWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0aXplZFZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQp
OworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJbnRlcm5hbChzYW5pdGl6ZWRWYWx1ZSwgZXZlbnRC
ZWhhdmlvcik7CiAgICAgZWxlbWVudCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM3NmFhY2M4ZjQ3MGYyZTkzMGFjMTI3ZDFlZTYzNDgz
Zjg4ZjliNmYuLjU1M2JkZWY3ZmI5MGZhMmVmZDFkMzlkMjk5MzdiZjkwMzg5OTE0NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2lmbmRlZiBJbnB1dFR5cGVf
aAogI2RlZmluZSBJbnB1dFR5cGVfaAogCisjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0QWxs
b2NCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0xMjYsNyArMTI3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNl
cHRpb25Db2RlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91
YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAg
ICAvLyBWYWxpZGF0aW9uIGZ1bmN0aW9ucwogCkBAIC0yMjUsNyArMjI2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2Vk
KCk7CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBz
ZW5kQ2hhbmdlRXZlbnQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcik7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRJblJlc3BvbnNlVG9TZXRWYWx1ZSgpOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCk7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5jcHAKaW5kZXggM2E0ZDQyMGNkODg0ZWE1ZDY5NGYxNWNlMzhkMTk0YjAy
ZGMyMzY4Ny4uNTYwYTQ1MTViM2RkNmM0YWMwNGFhZjljMDk4YzRlNTE1YTg0MzEzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtODMsNyArODMsNyBAQCBkb3Vi
bGUgTnVtYmVySW5wdXRUeXBlOjp2YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gcGFy
c2VUb0RvdWJsZShlbGVtZW50KCktPnZhbHVlKCksIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpKTsKIH0KIAotdm9pZCBOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIo
ZG91YmxlIG5ld1ZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0Cit2b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3
VmFsdWUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKG5ld1ZhbHVlIDwgLW51bWVyaWNfbGltaXRzPGZsb2F0
Pjo6bWF4KCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKQEAgLTkzLDcgKzkz
LDcgQEAgdm9pZCBOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1Zh
bHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXgKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNl
cmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRW
YWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBOdW1i
ZXJJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXggMjZlNzk4NmMzZTY3YmFiYTUy
MTUzNzk0NDA5ZjY0OTZkMjIzMmIwMi4uMWFmZWY4YTY5NmMxNDJhNWZlMjUyZTU3NjRkODEzMTgy
Y2U3OWZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCkBAIC00Myw3ICs0
Myw3IEBAIHByaXZhdGU6CiAgICAgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJp
bmcmKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFk
aW9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAK
aW5kZXggZDMxY2MyZGFmNmRhYmY2MWU1Njg1ZDZmMGRjOTI5ODRiMmIzYzQ0OS4uZDY1YWY0Yjhl
YjI2NGQ1ZDk4MzkwYmNjMmM0OWYyNDJiYTcxODliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRp
b0lucHV0VHlwZS5jcHAKQEAgLTE1NCwxNCArMTU0LDkgQEAgUGFzc093blB0cjxDbGlja0hhbmRs
aW5nU3RhdGU+IFJhZGlvSW5wdXRUeXBlOjp3aWxsRGlzcGF0Y2hDbGljaygpCiAgICAgc3RhdGUt
PmNoZWNrZWQgPSBlbGVtZW50KCktPmNoZWNrZWQoKTsKICAgICBzdGF0ZS0+Y2hlY2tlZFJhZGlv
QnV0dG9uID0gZWxlbWVudCgpLT5jaGVja2VkUmFkaW9CdXR0b25zKCkuY2hlY2tlZEJ1dHRvbkZv
ckdyb3VwKGVsZW1lbnQoKS0+bmFtZSgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGF0
ZS0+aW5kZXRlcm1pbmF0ZSA9IGVsZW1lbnQoKS0+aW5kZXRlcm1pbmF0ZSgpOwotCiAgICAgaWYg
KGVsZW1lbnQoKS0+aW5kZXRlcm1pbmF0ZSgpKQogICAgICAgICBlbGVtZW50KCktPnNldEluZGV0
ZXJtaW5hdGUoZmFsc2UpOwotI2VuZGlmCi0KLSAgICBlbGVtZW50KCktPnNldENoZWNrZWQodHJ1
ZSwgdHJ1ZSk7CisgICAgZWxlbWVudCgpLT5zZXRDaGVja2VkKHRydWUsIERpc3BhdGNoQ2hhbmdl
RXZlbnQpOwogCiAgICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KQEAgLTE3OCwxMSArMTcz
LDcgQEAgdm9pZCBSYWRpb0lucHV0VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCogZXZlbnQs
IGNvbnN0IENsaWNrSGFuZGxpbmdTdGF0ZSYgc3QKICAgICAgICAgICAgICAgICAmJiBjaGVja2Vk
UmFkaW9CdXR0b24tPm5hbWUoKSA9PSBlbGVtZW50KCktPm5hbWUoKSkgewogICAgICAgICAgICAg
Y2hlY2tlZFJhZGlvQnV0dG9uLT5zZXRDaGVja2VkKHRydWUpOwogICAgICAgICB9Ci0KLSNpZiBQ
TEFURk9STShJT1MpICAgICAgICAKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWluYXRl
KHN0YXRlLmluZGV0ZXJtaW5hdGUpOwotI2VuZGlmCi0KICAgICB9CiAKICAgICAvLyBUaGUgd29y
ayB3ZSBkaWQgaW4gd2lsbERpc3BhdGNoQ2xpY2sgd2FzIGRlZmF1bHQgaGFuZGxpbmcuCkBAIC0x
OTYsMTEgKzE4Nyw3IEBAIGJvb2wgUmFkaW9JbnB1dFR5cGU6OmlzUmFkaW9CdXR0b24oKSBjb25z
dAogCiBib29sIFJhZGlvSW5wdXRUeXBlOjpzdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNl
KCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQot
ICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGZlM2MzYWFiMDYyOWVmYWZk
YzQ2ZjdjMmEyOTE2YTU1YjM4OTVmZTguLjE0NzQxODU2MmI2YjJkZjBlZDc1OWM0MGI1YjZlNWVi
NDFkZTM2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC03OCw5
ICs3OCw5IEBAIGRvdWJsZSBSYW5nZUlucHV0VHlwZTo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAg
ICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0
czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZh
bHVlQXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0Cit2b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRv
dWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNl
cHRpb25Db2RlJikgY29uc3QKIHsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShu
ZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJp
YWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBSYW5nZUlucHV0VHlw
ZTo6c3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0CkBAIC0yMjAsOCArMjIwLDggQEAgdm9pZCBSYW5n
ZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAg
ICAgaWYgKG5ld1ZhbHVlICE9IGN1cnJlbnQpIHsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsK
LSAgICAgICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSB0cnVlOwotICAgICAgICBzZXRWYWx1ZUFz
TnVtYmVyKG5ld1ZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAgICAgICAgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yID0gRGlzcGF0Y2hDaGFuZ2VFdmVudDsKKyAgICAg
ICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZXZlbnRCZWhhdmlvciwgZWMpOwogCiAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAg
ICAgZWxlbWVudCgpLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRp
b24oZWxlbWVudCgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwg
dHJ1ZSk7CkBAIC0yODcsOSArMjg3LDkgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6bWluT3JNYXhB
dHRyaWJ1dGVDaGFuZ2VkKCkKICAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsK
IH0KIAotdm9pZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Ym9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9pZCBSYW5nZUlucHV0
VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKLSAgICBJbnB1dFR5cGU6OnNl
dFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgSW5wdXRU
eXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKIAogICAg
IGlmICghdmFsdWVDaGFuZ2VkKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKaW5kZXggZTc1MTkzMDk4YTFjNTgwZmE0NzllOGUwODI4MGMzNjU1NDVhMzJk
NS4uYWJmMmVhNjc0ODI3ZjE4MzBhNjExMGNmMDA5ODRjZjQwZmQzOGZjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZUFzTnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByYW5nZU92ZXJmbG93KGNvbnN0
IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBtaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggYmJjZjU2YzkxODkyMTljNjAxZjEzZWRkOTIzMDQw
OGRmZjAwMjI1Yi4uNTZlNTVkMzg4ZTM3NzhmNmQ1Mzk2MjFiMjE4YjJiZjk0ZmMzNzU5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNzcsOSArNzcs
OSBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6Y2FuU2V0U3VnZ2VzdGVkVmFsdWUoKQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENo
YW5nZUV2ZW50KQordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRW
YWx1ZSwgdmFsdWVDaGFuZ2VkLCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIElucHV0VHlwZTo6c2V0
VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CiAKICAg
ICBpZiAodmFsdWVDaGFuZ2VkKQogICAgICAgICBlbGVtZW50KCktPnVwZGF0ZUlubmVyVGV4dFZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRleCBmOTQw
MThiYjAzN2FkODlkYWVhZDcwMWI1ZjAwMmZlZDkyOTM5MWE0Li4zNWFlNTI5ZTg1YTkxNjc5ZDk4
MzYwMGZjZGQwODc0ODNjODk4M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkU3VibWl0SW1wbGljaXRseShFdmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFuZ2VFdmVudCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFu
Z2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDVkYWRiMGNm
OGE1NjczMWQ4MzdiYTc1MmMxNDJjMGZjMTFhNTkxNGYuLjczNjE2NWJiZmRhZGQ4MmRkMTM0OWFm
NTZmNDY5NmQzZjc1OWQ5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFbGVtZW50LmNwcApAQCAtOTAsNyArOTAsNyBAQCBpbnQgV2ViSW5wdXRFbGVtZW50Ojpz
aXplKCkgY29uc3QKIAogdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFdlYlN0
cmluZyYgdmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQogewotICAgIHVud3JhcDxIVE1MSW5w
dXRFbGVtZW50PigpLT5zZXRWYWx1ZSh2YWx1ZSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICB1bndy
YXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2V0VmFsdWUodmFsdWUsIHNlbmRDaGFuZ2VFdmVudCA/
IERpc3BhdGNoQ2hhbmdlRXZlbnQgOiBEaXNwYXRjaE5vRXZlbnQpOwogfQogCiBXZWJTdHJpbmcg
V2ViSW5wdXRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126735</attachid>
            <date>2012-02-13 01:02:39 -0800</date>
            <delta_ts>2012-02-13 01:20:17 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-75217-20120213180238.patch</filename>
            <type>text/plain</type>
            <size>35632</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IyMmNmOWMzYjg3ODMx
YThmNTcxNmQ1MTQ5YjA0MTAwNTRhMmUwYy4uZDg1ZjQxZDQ5ODFiYTZhMTQyZmY3MWE1OWQ1YTIx
OWViYWYxYjZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTAyLTEzICBZb3Np
ZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFVzZSBl
bnVtIGluc3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjE3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IgZW51bSBpbnN0ZWFkIG9mIHNlbmRDaGFuZ2VFdmVudCBib29sCisgICAgICAg
IHBhcmFtZXRlciBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUgbWV0aG9kLiBUaGlzIG5l
dyBlbnVtCisgICAgICAgIHBhcmFtZXRlciB3aWxsIGJlIGV4dGVuZGVkIHRvIGRpc3BhdGNoIGlu
cHV0IGFuZCBjaGFuZ2UgZXZlbnRzCisgICAgICAgIHdoZW4gdXNlciBhZ2VudCBwb3B1bGF0ZXMg
aW5wdXQgZmllbGQgYXMgc3BlY2lmaWVkIGluCisgICAgICAgICJDb21tb24gZXZlbnRzIGJlaGF2
aW9yIiBvZiBIVE1MNSBzdGFuZGFyZC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlcXVpcmVk
IGZvciBmaXhpbmcgYnVnIDc1MDY3ICJbRm9ybXNdIFNwaW4gYnV0dG9ucworICAgICAgICBvZiBu
dW1iZXIgaW5wdXQgdHlwZSBzaG91bGQgZmlyZSBib3RoIGlucHV0IGFuZCBjaGFuZ2UgZXZlbnQu
IgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhpc3RpbmcgdGVzdHMgY292ZXIgdGhpcyBwYXRj
aC4KKworICAgICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCYXNlQnV0dG9uSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnNldFZh
bHVlKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAqIGh0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9DaGVja2JveElu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGVja2JveElucHV0VHlwZTo6d2lsbERp
c3BhdGNoQ2xpY2spOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0Nv
bG9ySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0Zp
bGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzdGVwRG93bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzZXRDaGVja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlRm9yVXNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUludGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNOdW1i
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRl
cmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZSk6
CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAg
ICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SYWRpb0lucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xp
Y2spOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1RleHRG
aWVsZElucHV0VHlwZS5oOgorCiAyMDEyLTAyLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShNRURJQV9TVFJFQU0pIGZyb20gTmF2aWdh
dG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjE5N2U0Nzk4YTUzNDBmOWM5NmEx
OTkzOTQ0ZTE3NTczMzllMjA2Ni4uMzEwOTFkNWE4NWZhYjhkMmQ4ZDFmNWE5NDliOWE5ZjgwYzJj
YjkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Mi0xMyAgWW9zaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zv
cm1zXSBVc2UgZW51bSBpbnN0ZWFkIG9mIGJvb2wgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6
c2V0VmFsdWUpOiBVc2UgZW51bSBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKwogMjAx
Mi0wMi0xMiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBQYWdlIHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZlIHdheSB0byBhc3NvY2lhdGUgQVBJIGlt
cGxlbWVudGF0aW9uIG9iamVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VCdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5w
dXRUeXBlLmNwcAppbmRleCAxMTU0NmVkZGRhNzljZDNkZWQ0ZGNhMWFkMDJjMDVmMjBjNGQ2NDRh
Li45YTE2MTZmY2VkMmJjOGMzNzE5MGQ2YmY3ZDk3YmE0MjhjYjE3MjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBi
b29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRl
KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0
VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFz
ZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJp
YnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggZGFiYzI3Y2FjNGZiYjMyZWZlMDI0YzFhZWY1YmMz
NmU5ZTc3ZTcwYy4uMWI3NTQzYzA1NTJhN2E5Y2E5Y2RkMjNhZDI0YTgyYTlkN2NjYWNjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcApp
bmRleCA3MGY1MzlkODAzZjRhNzk3ZGMwZDk3OGMyMzVkOTRlZGUxMjAxMTBiLi5mZjI4ZGFlMzZk
YzIxYTc3MTg4NTAxYTUwYTliODY4YmMyYmI0MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIEJh
c2VDaGVja2FibGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0
VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0
dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggMmMyYzRhZDNjM2I1ZmM2OTA4ZDcw
MjZhMTM3ODIyMzBlMmVjMzc3Ny4uNDIxMWFkNTIxYjVkZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2Qx
ZjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgK
QEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBm
YWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN0b3Jlc1Zh
bHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVja2FibGUoKSBPVkVSUklERTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cAppbmRleCA0NjM2NjcyOWYzYzNkOGZhY2U1ZWFlMWVmNDEwNDE3OGFiZWE2ODJiLi4yOTA0ZjJl
ODVlMzlmZjE3YjQ3YWYwZDc3ODMyNmJlNTljOTljNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC02NSw5ICs2NSw5IEBAIGRv
dWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAg
IHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCi12b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50
LCBFeGNlcHRpb25Db2RlJikgY29uc3QKK3ZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpz
ZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBl
dmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QKIHsKLSAgICBlbGVtZW50KCktPnNl
dFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVu
dCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAog
Ym9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKaW5kZXggNDZjMGM5ZDhkZGE0OGI4MTNiMjk1MTdiMjc2ZTFiYjBhZDI3ZGY1
My4uZTM0NTM1MDYwYzIxMzQ4OWU3Zjk1MGQ4ZDJhYzc4MGYwNjZhMGU0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC01Miw3ICs1Miw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25D
b2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJlcigp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4IDRlOTY2MzQ0MzI4OGUyNWI4
YzRlODk0MjA3MjQ4MzIyODJkNzc1MmQuLjAyOTY3YmJmNDhmOGQwN2Y2Yjc4NTIyMzZlNDM1MmI5
Zjc0ZGRlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCkBA
IC04MCw3ICs4MCw3IEBAIFBhc3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRlPiBDaGVja2JveElu
cHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogICAgIGlmIChzdGF0ZS0+aW5kZXRlcm1pbmF0
ZSkKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWluYXRlKGZhbHNlKTsKIAotICAgIGVs
ZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIHRydWUpOworICAgIGVsZW1lbnQo
KS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogCiAg
ICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAKaW5kZXggOTczMTZkNDk5NzBlMjExMDQ4MTQ3NGU5MjZmNDExMjRiNDNkNTZmNi4u
YmVhYmVlODIyYjBmYzZjOGMzYjBiMDNjNWRjZjhlMGQ3ZTA2YTcyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEyMiw5ICsxMjIsOSBAQCB2b2lkIENvbG9ySW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICB1cGRhdGVDb2xvclN3YXRjaCgpOwog
fQogCi12b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBi
b29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIENvbG9ySW5wdXRU
eXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewotICAgIElucHV0VHlwZTo6c2V0
VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5
cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAg
aWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaAppbmRleCAzZTA2NGJkNDQwOWMwMzY2ODMyMzViZmU5NmU1M2Q0MWI5ZTc0MmIx
Li5mOTJiOTFjZWRkNGI0ZDRiNzc5ZjAxNDBmMDY3MDBjMDQyNDNlYTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
U3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2Vu
ZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBmYzFiZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZh
ZmJhN2ZjZTFmZTUyLi5kZmJiZGY3Y2Q3MDQ4YmNiYzNhZjU4ZTcwMjkxNDY3NGM1NGJmOWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBi
b29sIEZpbGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBib29sKQordm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIG1fZmlsZUxpc3Qt
PmNsZWFyKCk7CiAgICAgbV9pY29uLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5oCmluZGV4IGI1YTVkMTk2ZDFhMDY2ODViYTQxZjU0NzQ5YTk0NTY4ZDk3MTY1MTUuLjUzNTc1
YTQyMGYxZTc1OGJkZDkwYThmNGI1OTE4NDg3ZWY4Mzc0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVSUklERTsgLy8gQ2hlY2tlZCBmaXJzdCwg
YmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0
dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQs
IGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYzc0ZTM0
MGQzMTVjZWE0OWI0MDg3ZWJhM2M1NzU0YWY3MjA0MTI5Yy4uNDIwZGU5ZjI4MzdmNDI0MGViYzMy
ZDllNjY5MDk0ODA1ZDVlNjY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC0zNTMsNyArMzUzLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpnZXRBbGxv
d2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFjZXMoQW55U3RlcEhhbmRsaW5nIGFueVMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjphcHBseVN0ZXAoZG91Ymxl
IGNvdW50LCBBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nLCBib29sIHNlbmRDaGFuZ2VF
dmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3Rl
cChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
ZG91YmxlIHN0ZXA7CiAgICAgdW5zaWduZWQgc3RlcERlY2ltYWxQbGFjZXMsIGN1cnJlbnREZWNp
bWFsUGxhY2VzOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6YXBw
bHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZywKICAg
ICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4aW11bSgpKQogICAgICAgICBuZXdWYWx1
ZSA9IG1faW5wdXRUeXBlLT5tYXhpbXVtKCk7CiAKLSAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1Zh
bHVlLCBlYywgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVl
LCBlYywgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKICAgICAgICAgIGRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9z
dE5vdGlmaWNhdGlvbihyZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwg
dHJ1ZSk7CkBAIC00MjAsMTQgKzQyMCwxMiBAQCBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6YWxp
Z25WYWx1ZUZvclN0ZXAoZG91YmxlIG5ld1ZhbHVlLCBkb3VibGUgc3RlcCwgdW5zaWduZQogCiB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcChpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZTsKLSAgICBhcHBseVN0ZXAobiwgUmVq
ZWN0QW55LCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAgICBhcHBseVN0ZXAobiwgUmVqZWN0QW55
LCBEaXNwYXRjaE5vRXZlbnQsIGVjKTsKIH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVw
RG93bihpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZl
bnQgPSBmYWxzZTsKLSAgICBhcHBseVN0ZXAoLW4sIFJlamVjdEFueSwgc2VuZENoYW5nZUV2ZW50
LCBlYyk7CisgICAgYXBwbHlTdGVwKC1uLCBSZWplY3RBbnksIERpc3BhdGNoTm9FdmVudCwgZWMp
OwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9h
cmRFdmVudCogZXZlbnQpIGNvbnN0CkBAIC05MTMsNyArOTExLDcgQEAgYm9vbCBIVE1MSW5wdXRF
bGVtZW50Ojppc1RleHRUeXBlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmlzVGV4
dFR5cGUoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJvb2wgbm93
Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dENoZWNrZWQoYm9vbCBub3dDaGVja2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVo
YXZpb3IpCiB7CiAgICAgaWYgKGNoZWNrZWQoKSA9PSBub3dDaGVja2VkKQogICAgICAgICByZXR1
cm47CkBAIC05MzgsNyArOTM2LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2Vk
KGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCiAgICAgLy8gdW5jaGVja2Vk
IHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzLiBET00gaXMgbm90IGEgdXNlZnVsIHN0YW5kYXJkIGZv
ciB0aGlzCiAgICAgLy8gYmVjYXVzZSBpdCBzYXlzIG9ubHkgdG8gZmlyZSBjaGFuZ2UgZXZlbnRz
IGF0ICJsb3NlIGZvY3VzIiB0aW1lLCB3aGljaCBpcwogICAgIC8vIGRlZmluaXRlbHkgd3Jvbmcg
aW4gcHJhY3RpY2UgZm9yIHRoZXNlIHR5cGVzIG9mIGVsZW1lbnRzLgotICAgIGlmIChzZW5kQ2hh
bmdlRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYmIG1faW5wdXRUeXBlLT5zaG91bGRTZW5kQ2hhbmdl
RXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkpIHsKKyAgICBpZiAoZXZlbnRCZWhhdmlvciAhPSBE
aXNwYXRjaE5vRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYmIG1faW5wdXRUeXBlLT5zaG91bGRTZW5k
Q2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkpIHsKICAgICAgICAgc2V0VGV4dEFzT2ZM
YXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChTdHJpbmcoKSk7CiAgICAgICAgIGRpc3BhdGNoRm9y
bUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogICAgIH0KQEAgLTEwMTIsNyArMTAxMCw3IEBAIFN0cmlu
ZyBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZVdpdGhEZWZhdWx0KCkgY29uc3QKIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6c2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAg
Ly8gQ2FsbCBzZXRWYWx1ZSBhbmQgbWFrZSBpdCBzZW5kIGEgY2hhbmdlIGV2ZW50LgotICAgIHNl
dFZhbHVlKHZhbHVlLCB0cnVlKTsKKyAgICBzZXRWYWx1ZSh2YWx1ZSwgRGlzcGF0Y2hDaGFuZ2VF
dmVudCk7CiB9CiAKIGNvbnN0IFN0cmluZyYgSFRNTElucHV0RWxlbWVudDo6c3VnZ2VzdGVkVmFs
dWUoKSBjb25zdApAQCAtMTAzMCw3ICsxMDI4LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRTdWdnZXN0ZWRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHVwZGF0ZUlubmVyVGV4
dFZhbHVlKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZl
bnRCZWhhdmlvcikKIHsKICAgICBpZiAoIW1faW5wdXRUeXBlLT5jYW5TZXRWYWx1ZSh2YWx1ZSkp
CiAgICAgICAgIHJldHVybjsKQEAgLTEwNDIsMjUgKzEwNDAsMjUgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKICAgICBzZXRMYXN0Q2hhbmdlV2FzTm90VXNlckVkaXQoKTsKICAgICBzZXRGb3JtQ29udHJv
bFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKICAgICBtX3N1Z2dlc3RlZFZhbHVlID0gU3Ry
aW5nKCk7IC8vIFByZXZlbnQgVGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZSBmcm9tIHVzaW5n
IHRoZSBzdWdnZXN0ZWQgdmFsdWUuCi0gICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXpl
ZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgbV9pbnB1dFR5cGUt
PnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwog
CiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChzZW5k
Q2hhbmdlRXZlbnQpCisgICAgaWYgKGV2ZW50QmVoYXZpb3IgIT0gRGlzcGF0Y2hOb0V2ZW50KQog
ICAgICAgICBtX2lucHV0VHlwZS0+ZGlzcGF0Y2hDaGFuZ2VFdmVudEluUmVzcG9uc2VUb1NldFZh
bHVlKCk7CiAKLSAgICAvLyBGSVhNRTogV2h5IGRvIHdlIGRvIHRoaXMgd2hlbiAhc2VuZENoYW5n
ZUV2ZW50PwotICAgIGlmIChpc1RleHRGaWVsZCgpICYmICghZm9jdXNlZCgpIHx8ICFzZW5kQ2hh
bmdlRXZlbnQpKQorICAgIC8vIEZJWE1FOiBXaHkgZG8gd2UgZG8gdGhpcyB3aGVuICFldmVudEJl
aGF2aW9yPworICAgIGlmIChpc1RleHRGaWVsZCgpICYmICghZm9jdXNlZCgpIHx8IGV2ZW50QmVo
YXZpb3IgPT0gRGlzcGF0Y2hOb0V2ZW50KSkKICAgICAgICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCh2YWx1ZSk7CiAKICAgICBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKCk7
CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJp
bmcmIHNhbml0aXplZFZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKK3ZvaWQgSFRNTElucHV0
RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgbV92YWx1ZUlmRGly
dHkgPSBzYW5pdGl6ZWRWYWx1ZTsKLSAgICBtX3dhc01vZGlmaWVkQnlVc2VyID0gc2VuZENoYW5n
ZUV2ZW50OworICAgIG1fd2FzTW9kaWZpZWRCeVVzZXIgPSBldmVudEJlaGF2aW9yICE9IERpc3Bh
dGNoTm9FdmVudDsKICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIApAQCAtMTA3OSwx
MyArMTA3NywxMyBAQCBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc051bWJlcigpIGNv
bnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52YWx1ZUFzTnVtYmVyKCk7CiB9CiAKLXZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmIGVjLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKK3ZvaWQgSFRNTElucHV0RWxlbWVu
dDo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc2Zpbml0
ZShuZXdWYWx1ZSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBtX2lucHV0VHlwZS0+c2V0VmFsdWVBc051bWJlcihuZXdWYWx1
ZSwgc2VuZENoYW5nZUV2ZW50LCBlYyk7CisgICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlQXNOdW1i
ZXIobmV3VmFsdWUsIGV2ZW50QmVoYXZpb3IsIGVjKTsKIH0KIAogU3RyaW5nIEhUTUxJbnB1dEVs
ZW1lbnQ6OnBsYWNlaG9sZGVyKCkgY29uc3QKQEAgLTE2MzksNyArMTYzNyw2IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBuKQogICAgIGNvbnN0IGRvdWJs
ZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKICAgICBTdHJpbmcg
Y3VycmVudFN0cmluZ1ZhbHVlID0gdmFsdWUoKTsKICAgICBkb3VibGUgY3VycmVudCA9IG1faW5w
dXRUeXBlLT5wYXJzZVRvRG91YmxlKGN1cnJlbnRTdHJpbmdWYWx1ZSwgbmFuKTsKLSAgICBjb25z
dCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IHRydWU7CiAgICAgaWYgKCFpc2Zpbml0ZShjdXJyZW50
KSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICBjdXJyZW50ID0gbV9pbnB1
dFR5cGUtPmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpOwpAQCAtMTY0OCwxMCArMTY0NSwxMCBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21SZW5kZXJlcihpbnQgbikKICAgICAgICAg
ICAgIGN1cnJlbnQgPSBtX2lucHV0VHlwZS0+bWluaW11bSgpIC0gbmV4dERpZmY7CiAgICAgICAg
IGlmIChjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSAtIG5leHREaWZmKQogICAgICAg
ICAgICAgY3VycmVudCA9IG1faW5wdXRUeXBlLT5tYXhpbXVtKCkgLSBuZXh0RGlmZjsKLSAgICAg
ICAgc2V0VmFsdWVBc051bWJlcihjdXJyZW50LCBlYywgc2VuZENoYW5nZUV2ZW50KTsKKyAgICAg
ICAgc2V0VmFsdWVBc051bWJlcihjdXJyZW50LCBlYywgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiAg
ICAgfQogICAgIGlmICgoc2lnbiA+IDAgJiYgY3VycmVudCA8IG1faW5wdXRUeXBlLT5taW5pbXVt
KCkpIHx8IChzaWduIDwgMCAmJiBjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkpCi0g
ICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJpYWxpemUoc2lnbiA+IDAgPyBtX2lucHV0
VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1heGltdW0oKSksIHNlbmRDaGFuZ2VFdmVu
dCk7CisgICAgICAgIHNldFZhbHVlKG1faW5wdXRUeXBlLT5zZXJpYWxpemUoc2lnbiA+IDAgPyBt
X2lucHV0VHlwZS0+bWluaW11bSgpIDogbV9pbnB1dFR5cGUtPm1heGltdW0oKSksIERpc3BhdGNo
Q2hhbmdlRXZlbnQpOwogICAgIGVsc2UgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAg
ICAgICBpZiAoc3RlcE1pc21hdGNoKHZhbHVlKCkpKSB7CkBAIC0xNjcxLDE0ICsxNjY4LDE0IEBA
IHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBuKQogICAgICAg
ICAgICAgaWYgKG5ld1ZhbHVlID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkKICAgICAgICAgICAg
ICAgICBuZXdWYWx1ZSA9IG1faW5wdXRUeXBlLT5tYXhpbXVtKCk7CiAKLSAgICAgICAgICAgIHNl
dFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGVjLCBuID09IDEgfHwgbiA9PSAtMSk7CisgICAgICAg
ICAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBlYywgbiA9PSAxIHx8IG4gPT0gLTEgPyBE
aXNwYXRjaENoYW5nZUV2ZW50IDogRGlzcGF0Y2hOb0V2ZW50KTsKICAgICAgICAgICAgIGN1cnJl
bnQgPSBuZXdWYWx1ZTsKICAgICAgICAgICAgIGlmIChuID4gMSkKLSAgICAgICAgICAgICAgICBh
cHBseVN0ZXAobiAtIDEsIEFueUlzRGVmYXVsdFN0ZXAsIHNlbmRDaGFuZ2VFdmVudCwgZWMpOwor
ICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuIC0gMSwgQW55SXNEZWZhdWx0U3RlcCwgRGlzcGF0
Y2hDaGFuZ2VFdmVudCwgZWMpOwogICAgICAgICAgICAgZWxzZSBpZiAobiA8IC0xKQotICAgICAg
ICAgICAgICAgIGFwcGx5U3RlcChuICsgMSwgQW55SXNEZWZhdWx0U3RlcCwgc2VuZENoYW5nZUV2
ZW50LCBlYyk7CisgICAgICAgICAgICAgICAgYXBwbHlTdGVwKG4gKyAxLCBBbnlJc0RlZmF1bHRT
dGVwLCBEaXNwYXRjaENoYW5nZUV2ZW50LCBlYyk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgYXBwbHlTdGVwKG4sIEFueUlzRGVmYXVsdFN0ZXAsIHNlbmRDaGFuZ2VFdmVudCwgZWMpOwor
ICAgICAgICAgICAgYXBwbHlTdGVwKG4sIEFueUlzRGVmYXVsdFN0ZXAsIERpc3BhdGNoQ2hhbmdl
RXZlbnQsIGVjKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKaW5kZXggYTUxMjMxMzM5NGU5YzA1YTlkYmE1OTg2MzY1ZThlMTQwM2M4NDM1OC4uMmNhYTU1
OWEzNzAxNjBmMTM0MzEzMzE5MjUzZTIzM2IzMmVlN2JhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBIVE1MRWxlbWVudCogcGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIGNo
ZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hlY2tlZDsgfQotICAgIHZvaWQgc2V0Q2hlY2tl
ZChib29sLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKKyAgICB2b2lkIHNldENoZWNr
ZWQoYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7CiAKICAg
ICAvLyAnaW5kZXRlcm1pbmF0ZScgaXMgYSBzdGF0ZSBpbmRlcGVuZGVudCBvZiB0aGUgY2hlY2tl
ZCBzdGF0ZSB0aGF0IGNhdXNlcyB0aGUgY29udHJvbCB0byBkcmF3IGluIGEgd2F5IHRoYXQgaGlk
ZXMgdGhlIGFjdHVhbCBzdGF0ZS4KICAgICBib29sIGluZGV0ZXJtaW5hdGUoKSBjb25zdCB7IHJl
dHVybiBtX2lzSW5kZXRlcm1pbmF0ZTsgfQpAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBjb25z
dDsKLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50
ID0gZmFsc2UpOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7CiAgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIo
Y29uc3QgU3RyaW5nJik7CiAgICAgLy8gQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHdv
dWxkIGJlIGEgdmFsaWQgdmFsdWUuCiAgICAgLy8gV2Ugc2hvdWxkIG5vdCBjYWxsIHRoaXMgZm9y
IHR5cGVzIHdpdGggbm8gc3RyaW5nIHZhbHVlIHN1Y2ggYXMgQ0hFQ0tCT1ggYW5kIFJBRElPLgpA
QCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJs
ZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdDsK
LSAgICB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBFeGNlcHRpb25Db2RlJiwgYm9vbCBz
ZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSwgRXhjZXB0aW9uQ29kZSYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZl
bnQpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgcGxhY2Vob2xkZXIoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0UGxhY2Vob2xkZXIoY29uc3QgU3RyaW5nJik7CkBAIC0yMjUsNyArMjI1LDcg
QEAgcHVibGljOgogICAgIC8vIE90aGVyd2lzZSwgdGhleSB3b3VsZCBiZSBwcml2YXRlLgogICAg
IENoZWNrZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRpb0J1dHRvbnMoKSBjb25zdDsKICAgICB2
b2lkIHVwZGF0ZUNoZWNrZWRSYWRpb0J1dHRvbnMoKTsKLSAgICB2b2lkIHNldFZhbHVlSW50ZXJu
YWwoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIHZvaWQgc2V0VmFs
dWVJbnRlcm5hbChjb25zdCBTdHJpbmcmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKTsKIAogICAg
IHZvaWQgY2FjaGVTZWxlY3Rpb25JblJlc3BvbnNlVG9TZXRWYWx1ZShpbnQgY2FyZXRPZmZzZXQp
IHsgY2FjaGVTZWxlY3Rpb24oY2FyZXRPZmZzZXQsIGNhcmV0T2Zmc2V0LCBTZWxlY3Rpb25IYXNO
b0RpcmVjdGlvbik7IH0KIApAQCAtMzI5LDcgKzMyOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBn
ZXRBbGxvd2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFjZXMoQW55U3RlcEhhbmRsaW5nLCBkb3Vi
bGUqLCB1bnNpZ25lZCopIGNvbnN0OwogCiAgICAgLy8gSGVscGVyIGZvciBzdGVwVXAoKS9zdGVw
RG93bigpLiAgQWRkcyBzdGVwIHZhbHVlICogY291bnQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuCi0g
ICAgdm9pZCBhcHBseVN0ZXAoZG91YmxlIGNvdW50LCBBbnlTdGVwSGFuZGxpbmcsIGJvb2wgc2Vu
ZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhcHBseVN0ZXAoZG91Ymxl
IGNvdW50LCBBbnlTdGVwSGFuZGxpbmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBkb3VibGUgYWxpZ25WYWx1ZUZvclN0ZXAoZG91YmxlIHZhbHVlLCBkb3Vi
bGUgc3RlcCwgdW5zaWduZWQgY3VycmVudERlY2ltYWxQbGFjZXMsIHVuc2lnbmVkIHN0ZXBEZWNp
bWFsUGxhY2VzKTsKIAogI2lmIEVOQUJMRShEQVRBTElTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA4YWZmMjkwOTMyYTlmZWNi
MzM3MzgwZmRhNjUyN2NjODM3NTkwMzQ4Li45M2M0ZThhNjZiYzkxNDUyZDM1OGRhMjkxNTZmN2Y1
NDIwNGZkMTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIGNsYXNzIFJlbmRlclRleHRDb250cm9sOwog
Y2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCiBlbnVtIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlv
biB7IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25IYXNGb3J3YXJkRGlyZWN0aW9u
LCBTZWxlY3Rpb25IYXNCYWNrd2FyZERpcmVjdGlvbiB9OworZW51bSBUZXh0RmllbGRFdmVudEJl
aGF2aW9yIHsgRGlzcGF0Y2hOb0V2ZW50LCBEaXNwYXRjaENoYW5nZUV2ZW50IH07CiAKIGNsYXNz
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
Y3BwCmluZGV4IGZjMTAzOTc1Yjc5ODllNTM2NDViZjg3NzRmYzk5OGFiMTAyYTAxNjcuLjk1MWI2
ZDgyNjQ0YWE2YzBhMzliZmI0ZjlkNGU4NTYxMDdkOGY1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBIaWRkZW5JbnB1dFR5
cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgSGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0
aXplZFZhbHVlLCBib29sLCBib29sKQordm9pZCBIaWRkZW5JbnB1dFR5cGU6OnNldFZhbHVlKGNv
bnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ip
CiB7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1
ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCBmZDg2ZmJjMWZk
OWE5NTU2ODcyY2I3YjEwYzYyZjljOTAzN2QyMTgyLi45ZTg5ODJjNTQzNjE2YTFjMDMxZmViMjQz
NjQ4NDRmNTE3NmUzZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAg
LTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBh
cmF0ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5U
eXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWln
aHRBbmRXaWR0aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBi
b29sKSBjb25zdCBPVkVSUklERTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRl
eCA3Y2VhMDU5YzIxYjY0YmYwYmI2M2VjYzY1NTkyYTg1MjlkMzA5ZTRjLi44MDBjMjFjZmY4OTI5
YzA3YjNlNjlkZGQyMDBlMDA4NDMwMjk1NTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CkBAIC0xOTIsNyArMTkyLDcgQEAgZG91YmxlIElucHV0VHlwZTo6dmFsdWVBc051bWJlcigpIGNv
bnN0CiAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogfQog
Ci12b2lkIElucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wsIEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAordm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91Ymxl
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogfQpAQCAtNTM2LDkgKzUzNiw5IEBAIGJvb2wgSW5w
dXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXpl
ZFZhbHVlLCBib29sLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKK3ZvaWQgSW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBUZXh0RmllbGRFdmVudEJl
aGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFs
KHNhbml0aXplZFZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIGVsZW1lbnQoKS0+c2V0VmFs
dWVJbnRlcm5hbChzYW5pdGl6ZWRWYWx1ZSwgZXZlbnRCZWhhdmlvcik7CiAgICAgZWxlbWVudCgp
LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4
IGM3NmFhY2M4ZjQ3MGYyZTkzMGFjMTI3ZDFlZTYzNDgzZjg4ZjliNmYuLjU1M2JkZWY3ZmI5MGZh
MmVmZDFkMzlkMjk5MzdiZjkwMzg5OTE0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAt
MzIsNiArMzIsNyBAQAogI2lmbmRlZiBJbnB1dFR5cGVfaAogI2RlZmluZSBJbnB1dFR5cGVfaAog
CisjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CkBAIC0xMjYsNyArMTI3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
ZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNE
YXRlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIHZh
bHVlQXNOdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihk
b3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICAvLyBWYWxpZGF0aW9uIGZ1bmN0aW9u
cwogCkBAIC0yMjUsNyArMjI2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
ZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIGNh
blNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNl
cGFyYXRlRnJvbUF0dHJpYnV0ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZl
bnRJblJlc3BvbnNlVG9TZXRWYWx1ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNldE9u
RG9jdW1lbnRBY3RpdmF0aW9uKCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RMaXN0
QXR0cmlidXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXgg
M2E0ZDQyMGNkODg0ZWE1ZDY5NGYxNWNlMzhkMTk0YjAyZGMyMzY4Ny4uNTYwYTQ1MTViM2RkNmM0
YWMwNGFhZjljMDk4YzRlNTE1YTg0MzEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcApAQCAtODMsNyArODMsNyBAQCBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjp2YWx1
ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPnZh
bHVlKCksIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKIH0KIAotdm9pZCBO
dW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBib29sIHNl
bmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit2b2lkIE51bWJlcklucHV0
VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYg
KG5ld1ZhbHVlIDwgLW51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpIHsKICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBOdW1iZXJJbnB1dFR5
cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1ZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCwgRXgKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRD
aGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUp
LCBldmVudEJlaGF2aW9yKTsKIH0KIAogYm9vbCBOdW1iZXJJbnB1dFR5cGU6OnR5cGVNaXNtYXRj
aEZvcihjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmgKaW5kZXggMjZlNzk4NmMzZTY3YmFiYTUyMTUzNzk0NDA5ZjY0OTZkMjIzMmIwMi4u
MWFmZWY4YTY5NmMxNDJhNWZlMjUyZTU3NjRkODEzMTgyY2U3OWZkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgTnVt
YmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRU
eXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzTnVt
YmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIo
ZG91YmxlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKaW5kZXggZDMxY2MyZGFmNmRhYmY2MWU1
Njg1ZDZmMGRjOTI5ODRiMmIzYzQ0OS4uZDY1YWY0YjhlYjI2NGQ1ZDk4MzkwYmNjMmM0OWYyNDJi
YTcxODliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKQEAgLTE1NCwx
NCArMTU0LDkgQEAgUGFzc093blB0cjxDbGlja0hhbmRsaW5nU3RhdGU+IFJhZGlvSW5wdXRUeXBl
Ojp3aWxsRGlzcGF0Y2hDbGljaygpCiAgICAgc3RhdGUtPmNoZWNrZWQgPSBlbGVtZW50KCktPmNo
ZWNrZWQoKTsKICAgICBzdGF0ZS0+Y2hlY2tlZFJhZGlvQnV0dG9uID0gZWxlbWVudCgpLT5jaGVj
a2VkUmFkaW9CdXR0b25zKCkuY2hlY2tlZEJ1dHRvbkZvckdyb3VwKGVsZW1lbnQoKS0+bmFtZSgp
KTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGF0ZS0+aW5kZXRlcm1pbmF0ZSA9IGVsZW1l
bnQoKS0+aW5kZXRlcm1pbmF0ZSgpOwotCiAgICAgaWYgKGVsZW1lbnQoKS0+aW5kZXRlcm1pbmF0
ZSgpKQogICAgICAgICBlbGVtZW50KCktPnNldEluZGV0ZXJtaW5hdGUoZmFsc2UpOwotI2VuZGlm
Ci0KLSAgICBlbGVtZW50KCktPnNldENoZWNrZWQodHJ1ZSwgdHJ1ZSk7CisgICAgZWxlbWVudCgp
LT5zZXRDaGVja2VkKHRydWUsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogCiAgICAgcmV0dXJuIHN0
YXRlLnJlbGVhc2UoKTsKIH0KQEAgLTE3OCwxMSArMTczLDcgQEAgdm9pZCBSYWRpb0lucHV0VHlw
ZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCogZXZlbnQsIGNvbnN0IENsaWNrSGFuZGxpbmdTdGF0
ZSYgc3QKICAgICAgICAgICAgICAgICAmJiBjaGVja2VkUmFkaW9CdXR0b24tPm5hbWUoKSA9PSBl
bGVtZW50KCktPm5hbWUoKSkgewogICAgICAgICAgICAgY2hlY2tlZFJhZGlvQnV0dG9uLT5zZXRD
aGVja2VkKHRydWUpOwogICAgICAgICB9Ci0KLSNpZiBQTEFURk9STShJT1MpICAgICAgICAKICAg
ICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWluYXRlKHN0YXRlLmluZGV0ZXJtaW5hdGUpOwot
I2VuZGlmCi0KICAgICB9CiAKICAgICAvLyBUaGUgd29yayB3ZSBkaWQgaW4gd2lsbERpc3BhdGNo
Q2xpY2sgd2FzIGRlZmF1bHQgaGFuZGxpbmcuCkBAIC0xOTYsMTEgKzE4Nyw3IEBAIGJvb2wgUmFk
aW9JbnB1dFR5cGU6OmlzUmFkaW9CdXR0b24oKSBjb25zdAogCiBib29sIFJhZGlvSW5wdXRUeXBl
OjpzdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNlKCkgY29uc3QKIHsKLSNpZiBQTEFURk9S
TShJT1MpCiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRp
ZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCmluZGV4IGZlM2MzYWFiMDYyOWVmYWZkYzQ2ZjdjMmEyOTE2YTU1YjM4OTVmZTgu
LjE0NzQxODU2MmI2YjJkZjBlZDc1OWM0MGI1YjZlNWViNDFkZTM2YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC03OCw5ICs3OCw5IEBAIGRvdWJsZSBSYW5nZUlu
cHV0VHlwZTo6dmFsdWVBc051bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUo
ZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7
CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1Zh
bHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Cit2b2lkIFJh
bmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QKIHsKLSAg
ICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVu
dCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBldmVudEJl
aGF2aW9yKTsKIH0KIAogYm9vbCBSYW5nZUlucHV0VHlwZTo6c3VwcG9ydHNSZXF1aXJlZCgpIGNv
bnN0CkBAIC0yMjAsOCArMjIwLDggQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93
bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAgICAgaWYgKG5ld1ZhbHVlICE9IGN1cnJl
bnQpIHsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICAgICAgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQgPSB0cnVlOwotICAgICAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBzZW5kQ2hh
bmdlRXZlbnQsIGVjKTsKKyAgICAgICAgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2
aW9yID0gRGlzcGF0Y2hDaGFuZ2VFdmVudDsKKyAgICAgICAgc2V0VmFsdWVBc051bWJlcihuZXdW
YWx1ZSwgZXZlbnRCZWhhdmlvciwgZWMpOwogCiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAgICAgZWxlbWVudCgpLT5kb2N1bWVudCgp
LT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24oZWxlbWVudCgpLT5yZW5kZXJlcigp
LCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgdHJ1ZSk7CkBAIC0yODcsOSArMjg3LDkg
QEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICBl
bGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAotdm9pZCBSYW5nZUlucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wg
c2VuZENoYW5nZUV2ZW50KQordm9pZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZl
bnRCZWhhdmlvcikKIHsKLSAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5n
ZWQsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgSW5wdXRUeXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFs
dWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKIAogICAgIGlmICghdmFsdWVDaGFuZ2VkKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggZTc1MTkz
MDk4YTFjNTgwZmE0NzllOGUwODI4MGMzNjU1NDVhMzJkNS4uYWJmMmVhNjc0ODI3ZjE4MzBhNjEx
MGNmMDA5ODRjZjQwZmQzOGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApA
QCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJv
bCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFz
TnVtYmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1i
ZXIoZG91YmxlLCBib29sIHNlbmRDaGFuZ2VFdmVudCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCByYW5nZU92ZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURF
OwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6
ZShkb3VibGUpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rp
b24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtaW5P
ck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5k
ZXggYmJjZjU2YzkxODkyMTljNjAxZjEzZWRkOTIzMDQwOGRmZjAwMjI1Yi4uNTZlNTVkMzg4ZTM3
NzhmNmQ1Mzk2MjFiMjE4YjJiZjk0ZmMzNzU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNzcsOSArNzcsOSBAQCBib29sIFRleHRGaWVsZElucHV0
VHlwZTo6Y2FuU2V0U3VnZ2VzdGVkVmFsdWUoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9pZCBUZXh0Rmll
bGRJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0g
ICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBzZW5k
Q2hhbmdlRXZlbnQpOworICAgIElucHV0VHlwZTo6c2V0VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZh
bHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAodmFsdWVDaGFuZ2VkKQogICAg
ICAgICBlbGVtZW50KCktPnVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRleCBmOTQwMThiYjAzN2FkODlkYWVhZDcwMWI1ZjAw
MmZlZDkyOTM5MWE0Li4zNWFlNTI5ZTg1YTkxNjc5ZDk4MzYwMGZjZGQwODc0ODNjODk4M2YzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKQEAgLTczLDcgKzczLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3VibWl0SW1wbGljaXRseShFdmVu
dCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRD
aGFuZ2VFdmVudCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudEluUmVzcG9uc2VUb1NldFZh
bHVlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBT
dHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExp
c3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDVkYWRiMGNmOGE1NjczMWQ4MzdiYTc1MmMxNDJjMGZj
MTFhNTkxNGYuLjczNjE2NWJiZmRhZGQ4MmRkMTM0OWFmNTZmNDY5NmQzZjc1OWQ5NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcApAQCAtOTAs
NyArOTAsNyBAQCBpbnQgV2ViSW5wdXRFbGVtZW50OjpzaXplKCkgY29uc3QKIAogdm9pZCBXZWJJ
bnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFdlYlN0cmluZyYgdmFsdWUsIGJvb2wgc2VuZENo
YW5nZUV2ZW50KQogewotICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5zZXRWYWx1ZSh2
YWx1ZSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICB1bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+
c2V0VmFsdWUodmFsdWUsIHNlbmRDaGFuZ2VFdmVudCA/IERpc3BhdGNoQ2hhbmdlRXZlbnQgOiBE
aXNwYXRjaE5vRXZlbnQpOwogfQogCiBXZWJTdHJpbmcgV2ViSW5wdXRFbGVtZW50Ojp2YWx1ZSgp
IGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126736</attachid>
            <date>2012-02-13 01:20:22 -0800</date>
            <delta_ts>2012-02-13 03:01:32 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-75217-20120213182021.patch</filename>
            <type>text/plain</type>
            <size>34740</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IyMmNmOWMzYjg3ODMx
YThmNTcxNmQ1MTQ5YjA0MTAwNTRhMmUwYy4uZDg1ZjQxZDQ5ODFiYTZhMTQyZmY3MWE1OWQ1YTIx
OWViYWYxYjZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTAyLTEzICBZb3Np
ZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFVzZSBl
bnVtIGluc3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjE3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IgZW51bSBpbnN0ZWFkIG9mIHNlbmRDaGFuZ2VFdmVudCBib29sCisgICAgICAg
IHBhcmFtZXRlciBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUgbWV0aG9kLiBUaGlzIG5l
dyBlbnVtCisgICAgICAgIHBhcmFtZXRlciB3aWxsIGJlIGV4dGVuZGVkIHRvIGRpc3BhdGNoIGlu
cHV0IGFuZCBjaGFuZ2UgZXZlbnRzCisgICAgICAgIHdoZW4gdXNlciBhZ2VudCBwb3B1bGF0ZXMg
aW5wdXQgZmllbGQgYXMgc3BlY2lmaWVkIGluCisgICAgICAgICJDb21tb24gZXZlbnRzIGJlaGF2
aW9yIiBvZiBIVE1MNSBzdGFuZGFyZC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlcXVpcmVk
IGZvciBmaXhpbmcgYnVnIDc1MDY3ICJbRm9ybXNdIFNwaW4gYnV0dG9ucworICAgICAgICBvZiBu
dW1iZXIgaW5wdXQgdHlwZSBzaG91bGQgZmlyZSBib3RoIGlucHV0IGFuZCBjaGFuZ2UgZXZlbnQu
IgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhpc3RpbmcgdGVzdHMgY292ZXIgdGhpcyBwYXRj
aC4KKworICAgICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCYXNlQnV0dG9uSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnNldFZh
bHVlKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAqIGh0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9DaGVja2JveElu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGVja2JveElucHV0VHlwZTo6d2lsbERp
c3BhdGNoQ2xpY2spOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0Nv
bG9ySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0Zp
bGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzdGVwRG93bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzZXRDaGVja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlRm9yVXNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUludGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNOdW1i
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRl
cmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZSk6
CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAg
ICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SYWRpb0lucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xp
Y2spOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1RleHRG
aWVsZElucHV0VHlwZS5oOgorCiAyMDEyLTAyLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShNRURJQV9TVFJFQU0pIGZyb20gTmF2aWdh
dG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjE5N2U0Nzk4YTUzNDBmOWM5NmEx
OTkzOTQ0ZTE3NTczMzllMjA2Ni4uMzEwOTFkNWE4NWZhYjhkMmQ4ZDFmNWE5NDliOWE5ZjgwYzJj
YjkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Mi0xMyAgWW9zaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zv
cm1zXSBVc2UgZW51bSBpbnN0ZWFkIG9mIGJvb2wgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6
c2V0VmFsdWUpOiBVc2UgZW51bSBmb3IgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUKKwogMjAx
Mi0wMi0xMiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBQYWdlIHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZlIHdheSB0byBhc3NvY2lhdGUgQVBJIGlt
cGxlbWVudGF0aW9uIG9iamVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VCdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5w
dXRUeXBlLmNwcAppbmRleCAxMTU0NmVkZGRhNzljZDNkZWQ0ZGNhMWFkMDJjMDVmMjBjNGQ2NDRh
Li45YTE2MTZmY2VkMmJjOGMzNzE5MGQ2YmY3ZDk3YmE0MjhjYjE3MjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBi
b29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRl
KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0
VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFz
ZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJp
YnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggZGFiYzI3Y2FjNGZiYjMyZWZlMDI0YzFhZWY1YmMz
NmU5ZTc3ZTcwYy4uMWI3NTQzYzA1NTJhN2E5Y2E5Y2RkMjNhZDI0YTgyYTlkN2NjYWNjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcApp
bmRleCA3MGY1MzlkODAzZjRhNzk3ZGMwZDk3OGMyMzVkOTRlZGUxMjAxMTBiLi5mZjI4ZGFlMzZk
YzIxYTc3MTg4NTAxYTUwYTliODY4YmMyYmI0MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIEJh
c2VDaGVja2FibGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0
VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgYm9vbCkKK3ZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1
ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0
dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggMmMyYzRhZDNjM2I1ZmM2OTA4ZDcw
MjZhMTM3ODIyMzBlMmVjMzc3Ny4uNDIxMWFkNTIxYjVkZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2Qx
ZjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgK
QEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBm
YWxsYmFja1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN0b3Jlc1Zh
bHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVja2FibGUoKSBPVkVSUklERTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cAppbmRleCA0NjM2NjcyOWYzYzNkOGZhY2U1ZWFlMWVmNDEwNDE3OGFiZWE2ODJiLi4yOTA0ZjJl
ODVlMzlmZjE3YjQ3YWYwZDc3ODMyNmJlNTljOTljNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC02NSw5ICs2NSw5IEBAIGRv
dWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAg
IHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCi12b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50
LCBFeGNlcHRpb25Db2RlJikgY29uc3QKK3ZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpz
ZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBl
dmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QKIHsKLSAgICBlbGVtZW50KCktPnNl
dFZhbHVlKHNlcmlhbGl6ZShuZXdWYWx1ZSksIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVu
dCgpLT5zZXRWYWx1ZShzZXJpYWxpemUobmV3VmFsdWUpLCBldmVudEJlaGF2aW9yKTsKIH0KIAog
Ym9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKaW5kZXggNDZjMGM5ZDhkZGE0OGI4MTNiMjk1MTdiMjc2ZTFiYjBhZDI3ZGY1
My4uZTM0NTM1MDYwYzIxMzQ4OWU3Zjk1MGQ4ZDJhYzc4MGYwNjZhMGU0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC01Miw3ICs1Miw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25D
b2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJlcigp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4IDRlOTY2MzQ0MzI4OGUyNWI4
YzRlODk0MjA3MjQ4MzIyODJkNzc1MmQuLjAyOTY3YmJmNDhmOGQwN2Y2Yjc4NTIyMzZlNDM1MmI5
Zjc0ZGRlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCkBA
IC04MCw3ICs4MCw3IEBAIFBhc3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRlPiBDaGVja2JveElu
cHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogICAgIGlmIChzdGF0ZS0+aW5kZXRlcm1pbmF0
ZSkKICAgICAgICAgZWxlbWVudCgpLT5zZXRJbmRldGVybWluYXRlKGZhbHNlKTsKIAotICAgIGVs
ZW1lbnQoKS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIHRydWUpOworICAgIGVsZW1lbnQo
KS0+c2V0Q2hlY2tlZCghc3RhdGUtPmNoZWNrZWQsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOwogCiAg
ICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAKaW5kZXggOTczMTZkNDk5NzBlMjExMDQ4MTQ3NGU5MjZmNDExMjRiNDNkNTZmNi4u
YmVhYmVlODIyYjBmYzZjOGMzYjBiMDNjNWRjZjhlMGQ3ZTA2YTcyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEyMiw5ICsxMjIsOSBAQCB2b2lkIENvbG9ySW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICB1cGRhdGVDb2xvclN3YXRjaCgpOwog
fQogCi12b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBi
b29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIENvbG9ySW5wdXRU
eXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewotICAgIElucHV0VHlwZTo6c2V0
VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5
cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAg
aWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaAppbmRleCAzZTA2NGJkNDQwOWMwMzY2ODMyMzViZmU5NmU1M2Q0MWI5ZTc0MmIx
Li5mOTJiOTFjZWRkNGI0ZDRiNzc5ZjAxNDBmMDY3MDBjMDQyNDNlYTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
U3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2Vu
ZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBmYzFiZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZh
ZmJhN2ZjZTFmZTUyLi5kZmJiZGY3Y2Q3MDQ4YmNiYzNhZjU4ZTcwMjkxNDY3NGM1NGJmOWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBi
b29sIEZpbGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBib29sKQordm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIG1fZmlsZUxpc3Qt
PmNsZWFyKCk7CiAgICAgbV9pY29uLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5oCmluZGV4IGI1YTVkMTk2ZDFhMDY2ODViYTQxZjU0NzQ5YTk0NTY4ZDk3MTY1MTUuLjUzNTc1
YTQyMGYxZTc1OGJkZDkwYThmNGI1OTE4NDg3ZWY4Mzc0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVSUklERTsgLy8gQ2hlY2tlZCBmaXJzdCwg
YmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0
dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQs
IGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYzc0ZTM0
MGQzMTVjZWE0OWI0MDg3ZWJhM2M1NzU0YWY3MjA0MTI5Yy4uMWUzNGNhYWYzMTlkNjUzNTA0YmUy
YjJiZmY3MTU1ZTZlMWZhMjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC0zNTMsNyArMzUzLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpnZXRBbGxv
d2VkVmFsdWVTdGVwV2l0aERlY2ltYWxQbGFjZXMoQW55U3RlcEhhbmRsaW5nIGFueVMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjphcHBseVN0ZXAoZG91Ymxl
IGNvdW50LCBBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nLCBib29sIHNlbmRDaGFuZ2VF
dmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3Rl
cChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
ZG91YmxlIHN0ZXA7CiAgICAgdW5zaWduZWQgc3RlcERlY2ltYWxQbGFjZXMsIGN1cnJlbnREZWNp
bWFsUGxhY2VzOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6YXBw
bHlTdGVwKGRvdWJsZSBjb3VudCwgQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZywKICAg
ICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4aW11bSgpKQogICAgICAgICBuZXdWYWx1
ZSA9IG1faW5wdXRUeXBlLT5tYXhpbXVtKCk7CiAKLSAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1Zh
bHVlLCBlYywgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBzZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVl
LCBlYywgZXZlbnRCZWhhdmlvcik7CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKICAgICAgICAgIGRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9z
dE5vdGlmaWNhdGlvbihyZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwg
dHJ1ZSk7CkBAIC00MjAsMTQgKzQyMCwxMiBAQCBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6YWxp
Z25WYWx1ZUZvclN0ZXAoZG91YmxlIG5ld1ZhbHVlLCBkb3VibGUgc3RlcCwgdW5zaWduZQogCiB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcChpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZTsKLSAgICBhcHBseVN0ZXAobiwgUmVq
ZWN0QW55LCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAgICBhcHBseVN0ZXAobiwgUmVqZWN0QW55
LCBEaXNwYXRjaE5vRXZlbnQsIGVjKTsKIH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVw
RG93bihpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgYm9vbCBzZW5kQ2hhbmdlRXZl
bnQgPSBmYWxzZTsKLSAgICBhcHBseVN0ZXAoLW4sIFJlamVjdEFueSwgc2VuZENoYW5nZUV2ZW50
LCBlYyk7CisgICAgYXBwbHlTdGVwKC1uLCBSZWplY3RBbnksIERpc3BhdGNoTm9FdmVudCwgZWMp
OwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9h
cmRFdmVudCogZXZlbnQpIGNvbnN0CkBAIC05MTMsNyArOTExLDcgQEAgYm9vbCBIVE1MSW5wdXRF
bGVtZW50Ojppc1RleHRUeXBlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmlzVGV4
dFR5cGUoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJvb2wgbm93
Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dENoZWNrZWQoYm9vbCBub3dDaGVja2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVo
YXZpb3IpCiB7CiAgICAgaWYgKGNoZWNrZWQoKSA9PSBub3dDaGVja2VkKQogICAgICAgICByZXR1
cm47CkBAIC05MzgsNyArOTM2LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2Vk
KGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCiAgICAgLy8gdW5jaGVja2Vk
IHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzLiBET00gaXMgbm90IGEgdXNlZnVsIHN0YW5kYXJkIGZv
ciB0aGlzCiAgICAgLy8gYmVjYXVzZSBpdCBzYXlzIG9ubHkgdG8gZmlyZSBjaGFuZ2UgZXZlbnRz
IGF0ICJsb3NlIGZvY3VzIiB0aW1lLCB3aGljaCBpcwogICAgIC8vIGRlZmluaXRlbHkgd3Jvbmcg
aW4gcHJhY3RpY2UgZm9yIHRoZXNlIHR5cGVzIG9mIGVsZW1lbnRzLgotICAgIGlmIChzZW5kQ2hh
bmdlRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYmIG1faW5wdXRUeXBlLT5zaG91bGRTZW5kQ2hhbmdl
RXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkpIHsKKyAgICBpZiAoZXZlbnRCZWhhdmlvciAhPSBE
aXNwYXRjaE5vRXZlbnQgJiYgaW5Eb2N1bWVudCgpICYmIG1faW5wdXRUeXBlLT5zaG91bGRTZW5k
Q2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkpIHsKICAgICAgICAgc2V0VGV4dEFzT2ZM
YXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChTdHJpbmcoKSk7CiAgICAgICAgIGRpc3BhdGNoRm9y
bUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogICAgIH0KQEAgLTEwMTIsNyArMTAxMCw3IEBAIFN0cmlu
ZyBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZVdpdGhEZWZhdWx0KCkgY29uc3QKIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6c2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAg
Ly8gQ2FsbCBzZXRWYWx1ZSBhbmQgbWFrZSBpdCBzZW5kIGEgY2hhbmdlIGV2ZW50LgotICAgIHNl
dFZhbHVlKHZhbHVlLCB0cnVlKTsKKyAgICBzZXRWYWx1ZSh2YWx1ZSwgRGlzcGF0Y2hDaGFuZ2VF
dmVudCk7CiB9CiAKIGNvbnN0IFN0cmluZyYgSFRNTElucHV0RWxlbWVudDo6c3VnZ2VzdGVkVmFs
dWUoKSBjb25zdApAQCAtMTAzMCw3ICsxMDI4LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRTdWdnZXN0ZWRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHVwZGF0ZUlubmVyVGV4
dFZhbHVlKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZl
bnRCZWhhdmlvcikKIHsKICAgICBpZiAoIW1faW5wdXRUeXBlLT5jYW5TZXRWYWx1ZSh2YWx1ZSkp
CiAgICAgICAgIHJldHVybjsKQEAgLTEwNDIsMjUgKzEwNDAsMjUgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKICAgICBzZXRMYXN0Q2hhbmdlV2FzTm90VXNlckVkaXQoKTsKICAgICBzZXRGb3JtQ29udHJv
bFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKICAgICBtX3N1Z2dlc3RlZFZhbHVlID0gU3Ry
aW5nKCk7IC8vIFByZXZlbnQgVGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZSBmcm9tIHVzaW5n
IHRoZSBzdWdnZXN0ZWQgdmFsdWUuCi0gICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXpl
ZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgbV9pbnB1dFR5cGUt
PnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwog
CiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChzZW5k
Q2hhbmdlRXZlbnQpCisgICAgaWYgKGV2ZW50QmVoYXZpb3IgIT0gRGlzcGF0Y2hOb0V2ZW50KQog
ICAgICAgICBtX2lucHV0VHlwZS0+ZGlzcGF0Y2hDaGFuZ2VFdmVudEluUmVzcG9uc2VUb1NldFZh
bHVlKCk7CiAKLSAgICAvLyBGSVhNRTogV2h5IGRvIHdlIGRvIHRoaXMgd2hlbiAhc2VuZENoYW5n
ZUV2ZW50PwotICAgIGlmIChpc1RleHRGaWVsZCgpICYmICghZm9jdXNlZCgpIHx8ICFzZW5kQ2hh
bmdlRXZlbnQpKQorICAgIC8vIEZJWE1FOiBXaHkgZG8gd2UgZG8gdGhpcyB3aGVuIGV2ZW50QmVo
YXZpb3IgPT0gRGlzcGF0Y2hOb0V2ZW50CisgICAgaWYgKGlzVGV4dEZpZWxkKCkgJiYgKCFmb2N1
c2VkKCkgfHwgZXZlbnRCZWhhdmlvciA9PSBEaXNwYXRjaE5vRXZlbnQpKQogICAgICAgICBzZXRU
ZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KHZhbHVlKTsKIAogICAgIG5vdGlmeUZv
cm1TdGF0ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUlu
dGVybmFsKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50
KQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYg
c2FuaXRpemVkVmFsdWUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsK
ICAgICBtX3ZhbHVlSWZEaXJ0eSA9IHNhbml0aXplZFZhbHVlOwotICAgIG1fd2FzTW9kaWZpZWRC
eVVzZXIgPSBzZW5kQ2hhbmdlRXZlbnQ7CisgICAgbV93YXNNb2RpZmllZEJ5VXNlciA9IGV2ZW50
QmVoYXZpb3IgIT0gRGlzcGF0Y2hOb0V2ZW50OwogICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygp
OwogfQogCkBAIC0xMDc5LDEzICsxMDc3LDEzIEBAIGRvdWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2
YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnZhbHVlQXNOdW1i
ZXIoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSBuZXdWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsK
ICAgICBpZiAoIWlzZmluaXRlKG5ld1ZhbHVlKSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1
ZUFzTnVtYmVyKG5ld1ZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAgICBtX2lucHV0VHlw
ZS0+c2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZXZlbnRCZWhhdmlvciwgZWMpOwogfQogCiBT
dHJpbmcgSFRNTElucHV0RWxlbWVudDo6cGxhY2Vob2xkZXIoKSBjb25zdApAQCAtMTYzOSw3ICsx
NjM3LDYgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4p
CiAgICAgY29uc3QgZG91YmxlIG5hbiA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpOwogICAgIFN0cmluZyBjdXJyZW50U3RyaW5nVmFsdWUgPSB2YWx1ZSgpOwogICAgIGRvdWJs
ZSBjdXJyZW50ID0gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoY3VycmVudFN0cmluZ1ZhbHVl
LCBuYW4pOwotICAgIGNvbnN0IGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gdHJ1ZTsKICAgICBpZiAo
IWlzZmluaXRlKGN1cnJlbnQpKSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgICAg
IGN1cnJlbnQgPSBtX2lucHV0VHlwZS0+ZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCk7CkBAIC0xNjQ4
LDEwICsxNjQ1LDEwIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVy
KGludCBuKQogICAgICAgICAgICAgY3VycmVudCA9IG1faW5wdXRUeXBlLT5taW5pbXVtKCkgLSBu
ZXh0RGlmZjsKICAgICAgICAgaWYgKGN1cnJlbnQgPiBtX2lucHV0VHlwZS0+bWF4aW11bSgpIC0g
bmV4dERpZmYpCiAgICAgICAgICAgICBjdXJyZW50ID0gbV9pbnB1dFR5cGUtPm1heGltdW0oKSAt
IG5leHREaWZmOwotICAgICAgICBzZXRWYWx1ZUFzTnVtYmVyKGN1cnJlbnQsIGVjLCBzZW5kQ2hh
bmdlRXZlbnQpOworICAgICAgICBzZXRWYWx1ZUFzTnVtYmVyKGN1cnJlbnQsIGVjLCBEaXNwYXRj
aENoYW5nZUV2ZW50KTsKICAgICB9CiAgICAgaWYgKChzaWduID4gMCAmJiBjdXJyZW50IDwgbV9p
bnB1dFR5cGUtPm1pbmltdW0oKSkgfHwgKHNpZ24gPCAwICYmIGN1cnJlbnQgPiBtX2lucHV0VHlw
ZS0+bWF4aW11bSgpKSkKLSAgICAgICAgc2V0VmFsdWUobV9pbnB1dFR5cGUtPnNlcmlhbGl6ZShz
aWduID4gMCA/IG1faW5wdXRUeXBlLT5taW5pbXVtKCkgOiBtX2lucHV0VHlwZS0+bWF4aW11bSgp
KSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICAgICAgc2V0VmFsdWUobV9pbnB1dFR5cGUtPnNlcmlh
bGl6ZShzaWduID4gMCA/IG1faW5wdXRUeXBlLT5taW5pbXVtKCkgOiBtX2lucHV0VHlwZS0+bWF4
aW11bSgpKSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEV4Y2Vw
dGlvbkNvZGUgZWM7CiAgICAgICAgIGlmIChzdGVwTWlzbWF0Y2godmFsdWUoKSkpIHsKQEAgLTE2
NzEsMTQgKzE2NjgsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVy
ZXIoaW50IG4pCiAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPiBtX2lucHV0VHlwZS0+bWF4aW11
bSgpKQogICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gbV9pbnB1dFR5cGUtPm1heGltdW0oKTsK
IAotICAgICAgICAgICAgc2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZSwgZWMsIG4gPT0gMSB8fCBu
ID09IC0xKTsKKyAgICAgICAgICAgIHNldFZhbHVlQXNOdW1iZXIobmV3VmFsdWUsIGVjLCBuID09
IDEgfHwgbiA9PSAtMSA/IERpc3BhdGNoQ2hhbmdlRXZlbnQgOiBEaXNwYXRjaE5vRXZlbnQpOwog
ICAgICAgICAgICAgY3VycmVudCA9IG5ld1ZhbHVlOwogICAgICAgICAgICAgaWYgKG4gPiAxKQot
ICAgICAgICAgICAgICAgIGFwcGx5U3RlcChuIC0gMSwgQW55SXNEZWZhdWx0U3RlcCwgc2VuZENo
YW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICAgICAgYXBwbHlTdGVwKG4gLSAxLCBBbnlJc0Rl
ZmF1bHRTdGVwLCBEaXNwYXRjaENoYW5nZUV2ZW50LCBlYyk7CiAgICAgICAgICAgICBlbHNlIGlm
IChuIDwgLTEpCi0gICAgICAgICAgICAgICAgYXBwbHlTdGVwKG4gKyAxLCBBbnlJc0RlZmF1bHRT
dGVwLCBzZW5kQ2hhbmdlRXZlbnQsIGVjKTsKKyAgICAgICAgICAgICAgICBhcHBseVN0ZXAobiAr
IDEsIEFueUlzRGVmYXVsdFN0ZXAsIERpc3BhdGNoQ2hhbmdlRXZlbnQsIGVjKTsKICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBhcHBseVN0ZXAobiwgQW55SXNEZWZhdWx0U3RlcCwgc2VuZENo
YW5nZUV2ZW50LCBlYyk7CisgICAgICAgICAgICBhcHBseVN0ZXAobiwgQW55SXNEZWZhdWx0U3Rl
cCwgRGlzcGF0Y2hDaGFuZ2VFdmVudCwgZWMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBhNTEyMzEzMzk0ZTljMDVhOWRiYTU5ODYzNjVlOGUx
NDAzYzg0MzU4Li4yY2FhNTU5YTM3MDE2MGYxMzQzMTMzMTkyNTNlMjMzYjMyZWU3YmFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTIxLDcgKzEyMSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQoKSBjb25z
dDsKIAogICAgIGJvb2wgY2hlY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDaGVja2VkOyB9Ci0g
ICAgdm9pZCBzZXRDaGVja2VkKGJvb2wsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOwor
ICAgIHZvaWQgc2V0Q2hlY2tlZChib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yID0gRGlzcGF0
Y2hOb0V2ZW50KTsKIAogICAgIC8vICdpbmRldGVybWluYXRlJyBpcyBhIHN0YXRlIGluZGVwZW5k
ZW50IG9mIHRoZSBjaGVja2VkIHN0YXRlIHRoYXQgY2F1c2VzIHRoZSBjb250cm9sIHRvIGRyYXcg
aW4gYSB3YXkgdGhhdCBoaWRlcyB0aGUgYWN0dWFsIHN0YXRlLgogICAgIGJvb2wgaW5kZXRlcm1p
bmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmRldGVybWluYXRlOyB9CkBAIC0xMzYsNyArMTM2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VHlwZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFN0
cmluZyB2YWx1ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KTsKICAgICB2b2lk
IHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKTsKICAgICAvLyBDaGVja3MgaWYgdGhlIHNw
ZWNpZmllZCBzdHJpbmcgd291bGQgYmUgYSB2YWxpZCB2YWx1ZS4KICAgICAvLyBXZSBzaG91bGQg
bm90IGNhbGwgdGhpcyBmb3IgdHlwZXMgd2l0aCBubyBzdHJpbmcgdmFsdWUgc3VjaCBhcyBDSEVD
S0JPWCBhbmQgUkFESU8uCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBkb3VibGUgdmFsdWVB
c051bWJlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIEV4Y2Vw
dGlvbkNvZGUmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKKyAgICB2b2lkIHNldFZh
bHVlQXNOdW1iZXIoZG91YmxlLCBFeGNlcHRpb25Db2RlJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
ciA9IERpc3BhdGNoTm9FdmVudCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBwbGFjZWhvbGRlcigp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGFjZWhvbGRlcihjb25zdCBTdHJpbmcmKTsK
QEAgLTIyNSw3ICsyMjUsNyBAQCBwdWJsaWM6CiAgICAgLy8gT3RoZXJ3aXNlLCB0aGV5IHdvdWxk
IGJlIHByaXZhdGUuCiAgICAgQ2hlY2tlZFJhZGlvQnV0dG9ucyYgY2hlY2tlZFJhZGlvQnV0dG9u
cygpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlQ2hlY2tlZFJhZGlvQnV0dG9ucygpOwotICAgIHZv
aWQgc2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCk7
CisgICAgdm9pZCBzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IpOwogCiAgICAgdm9pZCBjYWNoZVNlbGVjdGlvbkluUmVzcG9uc2VUb1NldFZhbHVl
KGludCBjYXJldE9mZnNldCkgeyBjYWNoZVNlbGVjdGlvbihjYXJldE9mZnNldCwgY2FyZXRPZmZz
ZXQsIFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uKTsgfQogCkBAIC0zMjksNyArMzI5LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIGdldEFsbG93ZWRWYWx1ZVN0ZXBXaXRoRGVjaW1hbFBsYWNlcyhBbnlT
dGVwSGFuZGxpbmcsIGRvdWJsZSosIHVuc2lnbmVkKikgY29uc3Q7CiAKICAgICAvLyBIZWxwZXIg
Zm9yIHN0ZXBVcCgpL3N0ZXBEb3duKCkuICBBZGRzIHN0ZXAgdmFsdWUgKiBjb3VudCB0byB0aGUg
Y3VycmVudCB2YWx1ZS4KLSAgICB2b2lkIGFwcGx5U3RlcChkb3VibGUgY291bnQsIEFueVN0ZXBI
YW5kbGluZywgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IGFwcGx5U3RlcChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZywgVGV4dEZpZWxkRXZlbnRC
ZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGRvdWJsZSBhbGlnblZhbHVlRm9yU3RlcChk
b3VibGUgdmFsdWUsIGRvdWJsZSBzdGVwLCB1bnNpZ25lZCBjdXJyZW50RGVjaW1hbFBsYWNlcywg
dW5zaWduZWQgc3RlcERlY2ltYWxQbGFjZXMpOwogCiAjaWYgRU5BQkxFKERBVEFMSVNUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4
IDhhZmYyOTA5MzJhOWZlY2IzMzczODBmZGE2NTI3Y2M4Mzc1OTAzNDguLjkzYzRlOGE2NmJjOTE0
NTJkMzU4ZGEyOTE1NmY3ZjU0MjA0ZmQxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAgY2xhc3MgUmVu
ZGVyVGV4dENvbnRyb2w7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKIGVudW0gVGV4dEZpZWxk
U2VsZWN0aW9uRGlyZWN0aW9uIHsgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvbkhh
c0ZvcndhcmREaXJlY3Rpb24sIFNlbGVjdGlvbkhhc0JhY2t3YXJkRGlyZWN0aW9uIH07CitlbnVt
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgeyBEaXNwYXRjaE5vRXZlbnQsIERpc3BhdGNoQ2hhbmdl
RXZlbnQgfTsKIAogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQgOiBwdWJsaWMgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggZmMxMDM5NzViNzk4OWU1MzY0NWJmODc3NGZjOTk4
YWIxMDJhMDE2Ny4uOTUxYjZkODI2NDRhYTZjMGEzOWJmYjRmOWQ0ZTg1NjEwN2Q4ZjVkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApAQCAtODcsNyArODcsNyBAQCBi
b29sIEhpZGRlbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBIaWRkZW5JbnB1dFR5cGU6OnNldFZhbHVlKGNv
bnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIGJvb2wpCit2b2lkIEhpZGRlbklucHV0
VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0
dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SGlkZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5o
CmluZGV4IGZkODZmYmMxZmQ5YTk1NTY4NzJjYjdiMTBjNjJmOWM5MDM3ZDIxODIuLjllODk4MmM1
NDM2MTZhMWMwMzFmZWIyNDM2NDg0NGY1MTc2ZTNlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRk
ZW5JbnB1dFR5cGUuaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBpc0hpZGRlblR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRh
KEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCmluZGV4IDdjZWEwNTljMjFiNjRiZjBiYjYzZWNjNjU1OTJhODUyOWQzMDll
NGMuLjgwMGMyMWNmZjg5MjljMDdiM2U2OWRkZDIwMGUwMDg0MzAyOTU1NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCBkb3VibGUgSW5wdXRUeXBlOjp2
YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit2b2lkIElucHV0VHlwZTo6c2V0VmFs
dWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUm
IGVjKSBjb25zdAogewogICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiB9CkBAIC01MzYsOSAr
NTM2LDkgQEAgYm9vbCBJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRl
KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0
IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQordm9p
ZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2ws
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKLSAgICBlbGVtZW50KCkt
PnNldFZhbHVlSW50ZXJuYWwoc2FuaXRpemVkVmFsdWUsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAg
ZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0aXplZFZhbHVlLCBldmVudEJlaGF2aW9y
KTsKICAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmgKaW5kZXggYzc2YWFjYzhmNDcwZjJlOTMwYWMxMjdkMWVlNjM0ODNmODhmOWI2
Zi4uNTUzYmRlZjdmYjkwZmEyZWZkMWQzOWQyOTkzN2JmOTAzODk5MTQ1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaWZuZGVmIElucHV0VHlwZV9oCiAjZGVm
aW5lIElucHV0VHlwZV9oCiAKKyNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2Uu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTEyNiw3ICsxMjcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAg
dmlydHVhbCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQsIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIC8vIFZh
bGlkYXRpb24gZnVuY3Rpb25zCiAKQEAgLTIyNSw3ICsyMjYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBi
b29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBib29sIHNlbmRDaGFu
Z2VFdmVudCk7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hDaGFuZ2VFdmVudEluUmVzcG9uc2VUb1NldFZhbHVlKCk7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcAppbmRleCAzYTRkNDIwY2Q4ODRlYTVkNjk0ZjE1Y2UzOGQxOTRiMDJkYzIzNjg3
Li41NjBhNDUxNWIzZGQ2YzRhYzA0YWFmOWMwOThjNGU1MTVhODQzMTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGRvdWJsZSBOdW1i
ZXJJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogICAgIHJldHVybiBwYXJzZVRvRG91
YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFO
KCkpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUg
bmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
K3ZvaWQgTnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJiBlYykg
Y29uc3QKIHsKICAgICBpZiAobmV3VmFsdWUgPCAtbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgo
KSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwpAQCAtOTMsNyArOTMsNyBAQCB2
b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIGJv
b2wgc2VuZENoYW5nZUV2ZW50LCBFeAogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXpl
KG5ld1ZhbHVlKSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBlbGVtZW50KCktPnNldFZhbHVlKHNl
cmlhbGl6ZShuZXdWYWx1ZSksIGV2ZW50QmVoYXZpb3IpOwogfQogCiBib29sIE51bWJlcklucHV0
VHlwZTo6dHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCAyNmU3OTg2YzNlNjdiYWJhNTIxNTM3OTQ0
MDlmNjQ5NmQyMjMyYjAyLi4xYWZlZjhhNjk2YzE0MmE1ZmUyNTJlNTc2NGQ4MTMxODJjZTc5ZmQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTQzLDcgKzQzLDcgQEAg
cHJpdmF0ZToKICAgICBOdW1iZXJJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkg
OiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
ZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25D
b2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNOdW1iZXIo
ZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRleCBk
MzFjYzJkYWY2ZGFiZjYxZTU2ODVkNmYwZGM5Mjk4NGIyYjNjNDQ5Li5jZWEwMTMyZThiZjllMTQy
OGU0NTNlMjllNzI2NWUzOTIxZGI0OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRU
eXBlLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIFBhc3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRl
PiBSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soKQogICAgICAgICBlbGVtZW50KCkt
PnNldEluZGV0ZXJtaW5hdGUoZmFsc2UpOwogI2VuZGlmCiAKLSAgICBlbGVtZW50KCktPnNldENo
ZWNrZWQodHJ1ZSwgdHJ1ZSk7CisgICAgZWxlbWVudCgpLT5zZXRDaGVja2VkKHRydWUsIERpc3Bh
dGNoQ2hhbmdlRXZlbnQpOwogCiAgICAgcmV0dXJuIHN0YXRlLnJlbGVhc2UoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggZmUzYzNhYWIwNjI5ZWZhZmRjNDZm
N2MyYTI5MTZhNTViMzg5NWZlOC4uMTQ3NDE4NTYyYjZiMmRmMGVkNzU5YzQwYjViNmU1ZWI0MWRl
MzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTc4LDkgKzc4
LDkgQEAgZG91YmxlIFJhbmdlSW5wdXRUeXBlOjp2YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICBy
ZXR1cm4gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPnZhbHVlKCksIG51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpKTsKIH0KIAotdm9pZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWVB
c051bWJlcihkb3VibGUgbmV3VmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNlcHRpb25D
b2RlJikgY29uc3QKK3ZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91Ymxl
IG5ld1ZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdAogewotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplKG5ld1Zh
bHVlKSwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBlbGVtZW50KCktPnNldFZhbHVlKHNlcmlhbGl6
ZShuZXdWYWx1ZSksIGV2ZW50QmVoYXZpb3IpOwogfQogCiBib29sIFJhbmdlSW5wdXRUeXBlOjpz
dXBwb3J0c1JlcXVpcmVkKCkgY29uc3QKQEAgLTIyMCw4ICsyMjAsOCBAQCB2b2lkIFJhbmdlSW5w
dXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKICAgICBp
ZiAobmV3VmFsdWUgIT0gY3VycmVudCkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAg
ICAgICBib29sIHNlbmRDaGFuZ2VFdmVudCA9IHRydWU7Ci0gICAgICAgIHNldFZhbHVlQXNOdW1i
ZXIobmV3VmFsdWUsIHNlbmRDaGFuZ2VFdmVudCwgZWMpOworICAgICAgICBUZXh0RmllbGRFdmVu
dEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaENoYW5nZUV2ZW50OworICAgICAgICBz
ZXRWYWx1ZUFzTnVtYmVyKG5ld1ZhbHVlLCBldmVudEJlaGF2aW9yLCBlYyk7CiAKICAgICAgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgICAgICBl
bGVtZW50KCktPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihl
bGVtZW50KCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCB0cnVl
KTsKQEAgLTI4Nyw5ICsyODcsOSBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjptaW5Pck1heEF0dHJp
YnV0ZUNoYW5nZWQoKQogICAgIGVsZW1lbnQoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQog
Ci12b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29s
IHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCit2b2lkIFJhbmdlSW5wdXRUeXBl
OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewotICAgIElucHV0VHlwZTo6c2V0VmFs
dWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgc2VuZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6
OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwogCiAgICAgaWYg
KCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaAppbmRleCBlNzUxOTMwOThhMWM1ODBmYTQ3OWU4ZTA4MjgwYzM2NTU0NWEzMmQ1Li5h
YmYyZWE2NzQ4MjdmMTgzMGE2MTEwY2YwMDk4NGNmNDBmZDM4ZmM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzUmFuZ2VDb250cm9sKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc051bWJlcihkb3VibGUsIGJvb2wgc2VuZENoYW5nZUV2ZW50LCBFeGNl
cHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNO
dW1iZXIoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJhbmdlT3ZlcmZsb3coY29uc3QgU3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBTdHJpbmcgc2VyaWFsaXplKGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIG1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwg
Ym9vbCBzZW5kQ2hhbmdlRXZlbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
cikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBw
cm9wb3NlZFZhbHVlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVz
cGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmNwcAppbmRleCBiYmNmNTZjOTE4OTIxOWM2MDFmMTNlZGQ5MjMwNDA4ZGZm
MDAyMjViLi41NmU1NWQzODhlMzc3OGY2ZDUzOTYyMWIyMThiMmJmOTRmYzM3NTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC03Nyw5ICs3Nyw5IEBA
IGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpjYW5TZXRTdWdnZXN0ZWRWYWx1ZSgpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBz
YW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ig
ZXZlbnRCZWhhdmlvcikKIHsKLSAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVl
LCB2YWx1ZUNoYW5nZWQsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgSW5wdXRUeXBlOjpzZXRWYWx1
ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKIAogICAgIGlm
ICh2YWx1ZUNoYW5nZWQpCiAgICAgICAgIGVsZW1lbnQoKS0+dXBkYXRlSW5uZXJUZXh0VmFsdWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4IGY5NDAxOGJi
MDM3YWQ4OWRhZWFkNzAxYjVmMDAyZmVkOTI5MzkxYTQuLjM1YWU1MjllODVhOTE2NzlkOTgzNjAw
ZmNkZDA4NzQ4M2M4OTgzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
dWJtaXRJbXBsaWNpdGx5KEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1
ZUNoYW5nZWQsIGJvb2wgc2VuZENoYW5nZUV2ZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2
ZW50SW5SZXNwb25zZVRvU2V0VmFsdWUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBz
YW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKaW5kZXggNWRhZGIwY2Y4YTU2
NzMxZDgzN2JhNzUyYzE0MmMwZmMxMWE1OTE0Zi4uNzM2MTY1YmJmZGFkZDgyZGQxMzQ5YWY1NmY0
Njk2ZDNmNzU5ZDk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEVsZW1lbnQuY3BwCkBAIC05MCw3ICs5MCw3IEBAIGludCBXZWJJbnB1dEVsZW1lbnQ6OnNpemUo
KSBjb25zdAogCiB2b2lkIFdlYklucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgV2ViU3RyaW5n
JiB2YWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCiB7Ci0gICAgdW53cmFwPEhUTUxJbnB1dEVs
ZW1lbnQ+KCktPnNldFZhbHVlKHZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIHVud3JhcDxI
VE1MSW5wdXRFbGVtZW50PigpLT5zZXRWYWx1ZSh2YWx1ZSwgc2VuZENoYW5nZUV2ZW50ID8gRGlz
cGF0Y2hDaGFuZ2VFdmVudCA6IERpc3BhdGNoTm9FdmVudCk7CiB9CiAKIFdlYlN0cmluZyBXZWJJ
bnB1dEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>