<?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>183021</bug_id>
          
          <creation_ts>2018-02-21 15:40:29 -0800</creation_ts>
          <short_desc>AX: AOM: Dispatch accessiblesetvalue event</short_desc>
          <delta_ts>2018-02-28 16:30:14 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169090</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>n_wang</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401299</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-21 15:40:29 -0800</bug_when>
    <thetext>Spec: https://wicg.github.io/aom/spec/phase2.html
Support new event type: 
interface AccessibleSetValueEvent : Event {
    attribute DOMString value;
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401300</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-21 15:40:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/37764242&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402690</commentid>
    <comment_count>2</comment_count>
      <attachid>334758</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-28 12:45:50 -0800</bug_when>
    <thetext>Created attachment 334758
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402694</commentid>
    <comment_count>3</comment_count>
      <attachid>334758</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2018-02-28 13:01:29 -0800</bug_when>
    <thetext>Comment on attachment 334758
patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2172
&gt; +    if (!canSetValueAttribute())

do you think we want to check this here? are there going to be cases where this doesn&apos;t match up? technically nothing stopping someone from responding to a set value event on any element right?

&gt; Source/WebCore/accessibility/events/AccessibleSetValueEvent.cpp:40
&gt; +{

seems like this should just be in the header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402696</commentid>
    <comment_count>4</comment_count>
      <attachid>334758</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-28 13:07:28 -0800</bug_when>
    <thetext>Comment on attachment 334758
patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2172
&gt;&gt; +    if (!canSetValueAttribute())
&gt; 
&gt; do you think we want to check this here? are there going to be cases where this doesn&apos;t match up? technically nothing stopping someone from responding to a set value event on any element right?

I did this because from the spec this event is limited to some roles:
&quot;combobox&quot;, &quot;scrollbar&quot;, &quot;slider&quot;, &quot;textbox&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402697</commentid>
    <comment_count>5</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-28 13:07:40 -0800</bug_when>
    <thetext>working on fixing the builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402712</commentid>
    <comment_count>6</comment_count>
      <attachid>334764</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-28 13:46:34 -0800</bug_when>
    <thetext>Created attachment 334764
patch

update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402723</commentid>
    <comment_count>7</comment_count>
      <attachid>334769</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-28 14:16:06 -0800</bug_when>
    <thetext>Created attachment 334769
patch

Tried to fix the build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402736</commentid>
    <comment_count>8</comment_count>
      <attachid>334774</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2018-02-28 15:13:10 -0800</bug_when>
    <thetext>Created attachment 334774
patch

Updated test to account for canSetValueAttribute()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402769</commentid>
    <comment_count>9</comment_count>
      <attachid>334774</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-28 16:30:13 -0800</bug_when>
    <thetext>Comment on attachment 334774
patch

Clearing flags on attachment: 334774

Committed r229112: &lt;https://trac.webkit.org/changeset/229112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402770</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-28 16:30:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334758</attachid>
            <date>2018-02-28 12:45:50 -0800</date>
            <delta_ts>2018-02-28 13:38:00 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>26499</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTEwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTAyLTI4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFPTTogRGlzcGF0Y2ggYWNjZXNz
aWJsZXNldHZhbHVlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMwMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3NzY0MjQyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2Vzc2liaWxp
dHkgZXZlbnRzLgorICAgICAgICBTcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL2FvbS9zcGVj
L3BoYXNlMi5odG1sCisKKyAgICAgICAgQWRkZWQgYSBuZXcgZXZlbnQgdHlwZSBBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC4gCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2
ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJpYnV0ZSBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnByZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BhdGNoQWNjZXNzaWJpbGl0eUV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BhdGNoQWNjZXNzaWJsZVNl
dFZhbHVlRXZlbnQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRWYWx1
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OnNldFZhbHVlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6c2V0VmFsdWUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvZXZlbnRzOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2V2ZW50cy9B
Y2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJsZVNldFZhbHVlRXZlbnQ6OkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50Ojp2YWx1ZSBj
b25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVl
RXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKwogMjAxOC0w
Mi0yOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZHVjZSB1c2Ugb2YgTmV0d29ya2luZ0NvbnRleHQgaW4gV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQzOSw2ICs0MzksOCBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2VidnIvVlJQb3NlLmlkbAogICAgIE1vZHVs
ZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuaWRsCiAKKyAgICBhY2Nlc3NpYmlsaXR5L2V2ZW50
cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGwKKwogICAgIGFuaW1hdGlvbi9BbmltYXRhYmxl
LmlkbAogICAgIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RSZWFkT25seS5pZGwKICAgICBhbmlt
YXRpb24vQW5pbWF0aW9uRWZmZWN0VGltaW5nLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCShyZXZpc2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBAIFZQQVRIID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VidnIgXAogICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCisgICAgJChXZWJDb3JlKS9h
Y2Nlc3NpYmlsaXR5L2V2ZW50cyBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24gXAogICAgICQo
V2ViQ29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvIFwKQEAgLTM2MCw2
ICszNjEsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YnZyL1ZSTGF5ZXJJbml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSUG9z
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZh
bHVlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9BbmltYXRhYmxlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0UmVhZE9ubHkuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RUaW1pbmcuaWRsIFwKQEAg
LTE0MjksNiArMTQzMSw3IEBAIFBSRVBST0NFU1NfSURMU19TQ1JJUFRTID0gXAogSURMX0lOQ0xV
REVTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcyBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3Np
YmlsaXR5IFwKKyAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkvZXZlbnRzIFwKICAgICAkKFdl
YkNvcmUpL2FuaW1hdGlvbiBcCiAgICAgJChXZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkv
Y3J5cHRvIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjkwNjYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDYgKzMzMCw3IEBAIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ28KIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlUm93LmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5j
cHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcAorYWNjZXNzaWJpbGl0
eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuY3BwCiAKIGFuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3RSZWFkT25seS5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RUaW1pbmcuY3Bw
CkBAIC0yMzI4LDYgKzIzMjksNyBAQCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCiBK
U0Fib3J0Q29udHJvbGxlci5jcHAKIEpTQWJvcnRTaWduYWwuY3BwCiBKU0Fic3RyYWN0V29ya2Vy
LmNwcAorSlNBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAKIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNw
cAogSlNBZXNDdHJQYXJhbXMuY3BwCiBKU0Flc0djbVBhcmFtcy5jcHAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzIzMiw2ICszMjMyLDcgQEAKIAkJQTlEMjQ4MDEwRDc1
N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RP
TVBsdWdpbkFycmF5LmggKi87IH07CiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RP
TU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9OwogCQlB
OUQyNDgwOTBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwNTBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmggKi87IH07CisJCUE5RjJFMEU1MjA0NjE0MzQw
MDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlGMkUwRTQyMDQ2MTQzMzAwNTEyODU1IC8qIEFj
Y2Vzc2libGVTZXRWYWx1ZUV2ZW50LmggKi87IH07CiAJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZE
RiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi87IH07CiAJCUFBMjFFQ0NEMEFCRjBGQzYw
MDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vy
c29ySW1hZ2VWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVB
QzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi87IH07CkBAIC0x
MTU2OSw2ICsxMTU3MCw5IEBACiAJCUE5RDI0ODAzMEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1p
bWVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTU1pbWVUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5RDI0ODA0MEQ3NTdFN0QwMEZERjk1
OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE5RDI0ODA1MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOUYyRTBFMzIwNDYxMzlGMDA1MTI4NTUgLyog
QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTlGMkUwRTQyMDQ2MTQzMzAwNTEy
ODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE5RjJFMEU2MjA0NjE0M0MwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVF
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVEMEFCQUE2RTEwMDg3NDQ4MCAv
KiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQUEwOTc4RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1cnNvckltYWdlVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8q
IERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYx
ODIsNiArMTYxODYsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQUFBNzI4RUYxNkQxRDhCQzAw
RDNCQkM2IC8qIGlvcyAqLywKIAkJCQkyOUE4MTIwNTBGQkI5QjUyMDA1MTAyOTMgLyogbWFjICov
LAorCQkJCUE5RjJFMEUyMjA0NjEzNDcwMDUxMjg1NSAvKiBldmVudHMgKi8sCiAJCQkJMjk4MUNB
OUQxMzE4MjJFQzAwRDEyRjJBIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi8sCiAJCQkJ
MjlBODEyMTYwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5oICovLAog
CQkJCTI5ODFDQTlFMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
LmNwcCAqLywKQEAgLTIyMzg1LDYgKzIyMzkwLDE2IEBACiAJCQluYW1lID0gUGx1Z2luczsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUE5RjJFMEUyMjA0NjEzNDcwMDUxMjg1
NSAvKiBldmVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCUE5RjJFMEU2MjA0NjE0M0MwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5j
cHAgKi8sCisJCQkJQTlGMkUwRTQyMDQ2MTQzMzAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1
ZUV2ZW50LmggKi8sCisJCQkJQTlGMkUwRTMyMDQ2MTM5RjAwNTEyODU1IC8qIEFjY2Vzc2libGVT
ZXRWYWx1ZUV2ZW50LmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gZXZlbnRzOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNw
ZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNzAy
MSw2ICsyNzAzNiw3IEBACiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8qIENvb2tpZVN0
b3JhZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAwM0U3
QTcxIC8qIENvb3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNTFFOUU0N0JG
MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTlGMkUwRTUyMDQ2MTQzNDAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNzFFOUU0N0M1MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QUZGNDIyMUVGQjE0NDkw
MEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFk
ZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDgzLDcgKzIwODMsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpjYW5TZXRWYWx1CiAgICAgaWYgKGlzTWV0ZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigpKQorICAgIGlm
IChpc1Byb2dyZXNzSW5kaWNhdG9yKCkgfHwgaXNTbGlkZXIoKSB8fCBpc1Njcm9sbGJhcigpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogI2lmIFBMQVRGT1JNKEdUSykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAko
cmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlUYWJsZS5oIgorI2luY2x1ZGUg
IkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAj
aW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtOTk3LDggKzk5OCw3
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6cHJlc3MoKQogICAgIGlmIChhdXRvKiBjYWNo
ZSA9IGF4T2JqZWN0Q2FjaGUoKSkgewogICAgICAgICBpZiAoYXV0byogcHJlc3NPYmplY3QgPSBj
YWNoZS0+Z2V0T3JDcmVhdGUocHJlc3NFbGVtZW50KSkgewogICAgICAgICAgICAgYXV0byBldmVu
dCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFjY2Vzc2libGVjbGlja0V2ZW50LCB0cnVl
LCB0cnVlKTsKLSAgICAgICAgICAgIHByZXNzT2JqZWN0LT5kaXNwYXRjaEFjY2Vzc2liaWxpdHlF
dmVudChldmVudCk7Ci0gICAgICAgICAgICBpZiAoZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSkK
KyAgICAgICAgICAgIGlmIChwcmVzc09iamVjdC0+ZGlzcGF0Y2hBY2Nlc3NpYmlsaXR5RXZlbnQo
ZXZlbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpA
QCAtMjE1Myw3ICsyMTUzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OgogICAgIHJldHVybiBudWxsQXRvbSgpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmRpc3BhdGNoQWNjZXNzaWJpbGl0eUV2ZW50KEV2ZW50JiBldmVudCkKK2Jvb2wgQWNjZXNz
aWJpbGl0eU9iamVjdDo6ZGlzcGF0Y2hBY2Nlc3NpYmlsaXR5RXZlbnQoRXZlbnQmIGV2ZW50KQog
ewogICAgIFZlY3RvcjxFbGVtZW50Kj4gZXZlbnRQYXRoOwogICAgIGZvciAoYXV0byogcGFyZW50
T2JqZWN0ID0gdGhpczsgcGFyZW50T2JqZWN0OyBwYXJlbnRPYmplY3QgPSBwYXJlbnRPYmplY3Qt
PnBhcmVudE9iamVjdCgpKSB7CkBAIC0yMTYyLDYgKzIxNjIsMTcgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpkaXNwYXRjaEFjY2VzcwogICAgIH0KICAgICAKICAgICBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlbnQoZXZlbnRQYXRoLCBldmVudCk7CisgICAgCisgICAgLy8gcmV0dXJu
IHRydWUgaWYgcHJldmVudERlZmF1bHQoKSB3YXMgY2FsbGVkLCBzbyB0aGF0IHdlIGRvbid0IGV4
ZWN1dGUgdGhlIGZhbGxiYWNrIGJlaGF2aW9yLgorICAgIHJldHVybiBldmVudC5kZWZhdWx0UHJl
dmVudGVkKCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGlzcGF0Y2hBY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudChjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghY2FuU2V0
VmFsdWVBdHRyaWJ1dGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gZXZlbnQg
PSBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hY2Nlc3NpYmxl
c2V0dmFsdWVFdmVudCwgdmFsdWUpOworICAgIHJldHVybiBkaXNwYXRjaEFjY2Vzc2liaWxpdHlF
dmVudChldmVudCk7CiB9CiAKIC8vIExhY2tpbmcgY29uY3JldGUgZXZpZGVuY2Ugb2Ygb3JpZW50
YXRpb24sIGhvcml6b250YWwgbWVhbnMgd2lkdGggPiBoZWlnaHQuIHZlcnRpY2FsIGlzIGhlaWdo
dCA+IHdpZHRoOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04
OTUsNyArODk1LDggQEAgcHVibGljOgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0QXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKICAgICBib29sIGhhc1RhZ05hbWUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hBY2Nlc3Np
YmlsaXR5RXZlbnQoRXZlbnQmKTsKKyAgICBib29sIGRpc3BhdGNoQWNjZXNzaWJpbGl0eUV2ZW50
KEV2ZW50Jik7CisgICAgYm9vbCBkaXNwYXRjaEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KGNvbnN0
IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9z
aXRpb25SYW5nZSgpIGNvbnN0IHsgcmV0dXJuIFZpc2libGVQb3NpdGlvblJhbmdlKCk7IH0KICAg
ICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlRm9yTGlu
ZSh1bnNpZ25lZCkgY29uc3QgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFuZ2UoKTsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzU3LDYgKzE3NTcsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNldFZhbHVlCiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFpczxFbGVtZW50PihtX3JlbmRl
cmVyLT5ub2RlKCkpKQogICAgICAgICByZXR1cm47CisgICAgaWYgKGRpc3BhdGNoQWNjZXNzaWJs
ZVNldFZhbHVlRXZlbnQoc3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIEVsZW1l
bnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PigqbV9yZW5kZXJlci0+bm9kZSgpKTsKICAg
ICBSZW5kZXJPYmplY3QmIHJlbmRlcmVyID0gKm1fcmVuZGVyZXI7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bGJhci5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4
LDggQEAgdm9pZCBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjpzZXRWYWx1ZShmbAogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgZmxvYXQgbmV3VmFsdWUgPSB2YWx1ZSAqIG1fc2Nyb2xsYmFyLT5t
YXhpbXVtKCk7CisgICAgaWYgKGRpc3BhdGNoQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQoU3RyaW5n
OjpudW1iZXIobmV3VmFsdWUpKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fc2Nyb2xsYmFyLT5z
Y3JvbGxhYmxlQXJlYSgpLnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihtX3Njcm9sbGJh
ci0+b3JpZW50YXRpb24oKSwgbmV3VmFsdWUpOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCShyZXZp
c2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTbGlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDkgQEAgZmxvYXQgQWNj
ZXNzaWJpbGl0eVNsaWRlcjo6bWluVmFsdWVGb3JSYQogCiB2b2lkIEFjY2Vzc2liaWxpdHlTbGlk
ZXI6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CisgICAgaWYgKGRpc3BhdGNoQWNj
ZXNzaWJsZVNldFZhbHVlRXZlbnQodmFsdWUpKQorICAgICAgICByZXR1cm47CisKICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IGlucHV0RWxlbWVudCgpOwogICAgIAogICAgIGlmIChpbnB1
dC0+dmFsdWUoKSA9PSB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
ZXZlbnRzL0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2V2ZW50cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNj
ZXNzaWJsZVNldFZhbHVlRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJsZVNl
dFZhbHVlRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBY2Nlc3NpYmxlU2V0VmFs
dWVFdmVudDo6QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQorICAgIDogRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSkKKyAgICAsIG1fdmFsdWUodmFsdWUpCit7Cit9CisKK0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50
Ojp+QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQoKSA9IGRlZmF1bHQ7CisKK0V2ZW50SW50ZXJmYWNl
IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVl
RXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2V2ZW50
cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvZXZlbnRzL0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KHR5cGUsIHZhbHVlKSk7CisgICAgfQor
CisgICAgdmlydHVhbCB+QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQoKTsKKworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOworCisgICAgLy8gRXZlbnQuCisgICAgRXZlbnRJ
bnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAg
ICBjb25zdCBBdG9taWNTdHJpbmcgbV92YWx1ZTsKK307CisKK30KKwpJbmRleDogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZXZlbnRzL0FjY2Vzc2li
bGVTZXRWYWx1ZUV2ZW50LmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2V2ZW50cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PUFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbCwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKK10gaW50
ZXJmYWNlIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50IDogRXZlbnQgeworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAko
cmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDcgQEAKIAogICAgIC8vIEFjY2Vzc2liaWxpdHkgZXZl
bnRzLgogICAgIFtFbmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbF0gYXR0
cmlidXRlIEV2ZW50SGFuZGxlciBvbmFjY2Vzc2libGVjbGljazsKKyAgICBbRW5hYmxlZEF0UnVu
dGltZT1BY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25h
Y2Nlc3NpYmxlc2V0dmFsdWU7CiB9OwogCiBkaWN0aW9uYXJ5IFNoYWRvd1Jvb3RJbml0IHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRE9NU3VidHJlZU1vZGlmaWVkKSBcCiAgICAg
bWFjcm8oYWJvcnQpIFwKICAgICBtYWNybyhhY2Nlc3NpYmxlY2xpY2spIFwKKyAgICBtYWNybyhh
Y2Nlc3NpYmxlc2V0dmFsdWUpIFwKICAgICBtYWNybyhhY3RpdmF0ZSkgXAogICAgIG1hY3JvKGFj
dGl2ZSkgXAogICAgIG1hY3JvKGFkZHNvdXJjZWJ1ZmZlcikgXApJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4JKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03NiwzICs3Niw0IEBAIE92ZXJjb25zdHJhaW5l
ZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9TUUKIE1lZGlhRW5jcnlwdGVkRXZlbnQgY29uZGl0aW9u
YWw9RU5DUllQVEVEX01FRElBCiBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25kaXRpb25hbD1FTkNS
WVBURURfTUVESUEKIFZSRGlzcGxheUV2ZW50CitBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudApJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjI5MDY2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDItMjggIE5hbiBXYW5nICA8bl93YW5nQGFw
cGxlLmNvbT4KKworICAgICAgICBBWDogQU9NOiBEaXNwYXRjaCBhY2Nlc3NpYmxlc2V0dmFsdWUg
ZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MzAyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc3NjQyNDI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BT00t
ZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sOiBBZGRl
ZC4KKwogMjAxOC0wMi0yNyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmVsYXlvdXQgZnJhbWVzIGFmdGVyIEFzeW5jRnJhbWVTY3JvbGxpbmcgb3IgRnJhbWVG
bGF0dGVuaW5nIG9wdGlvbiBpcyBjaGFuZ2VkCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJs
ZXNldHZhbHVlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBACitjb250ZW50ZWRpdGFibGUgbmV3IHZhbHVl
CisKK3Njcm9sbGJhcgorVGhpcyB0ZXN0cyBhY2Nlc3NpYmxlc2V0dmFsdWUgZXZlbnQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1Rlc3QgQ29tYm9ib3guCitjb21ib2JveCBh
Y2Nlc3NpYmxlIHNldCB2YWx1ZSB0bzogY29tYm9ib3ggbmV3IHZhbHVlCisKK1Rlc3QgQ29udGVu
dGVkaXRhYmxlLgorY29udGVudGVkaXRhYmxlIGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiBjb250
ZW50ZWRpdGFibGUgbmV3IHZhbHVlCisKK1Rlc3QgU2xpZGVyLgorc2xpZGVyIGFjY2Vzc2libGUg
c2V0IHZhbHVlIHRvOiA3MAorCitUZXN0IFNjcm9sbGJhci4KK3Njcm9sbGVyIGFjY2Vzc2libGUg
c2V0IHZhbHVlIHRvOiA2MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL0FPTS1ldmVu
dC1hY2Nlc3NpYmxlc2V0dmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2li
bGVzZXR2YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keSBpZD0iYm9keSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImNvbnRlbnQiPgorCis8
ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaWQ9ImNvbnRlbnRlZGl0YWJsZSI+Y3VycmVudDwv
ZGl2PgorPGRpdiBpZD0iY29tYm9ib3giIHJvbGU9ImNvbWJvYm94IiBhcmlhLWV4cGFuZGVkPSJm
YWxzZSIgYXJpYS1sYWJlbD0iVGVzdCI+PC9kaXY+Cis8aW5wdXQgaWQ9InNsaWRlciIgdHlwZT0i
cmFuZ2UiPgorPGRpdiBpZD0ic2Nyb2xsZXIiIGFyaWEtdmFsdWVub3c9IjU1IiByb2xlPSJzY3Jv
bGxiYXIiPnNjcm9sbGJhcjwvZGl2PgorCis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIGFjY2Vzc2libGVzZXR2YWx1ZSBldmVudC4iKTsKKworICAgIGlmICh3
aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAKKyAgICAgICB2YXIgbm9kZTsKKyAgICAgICB2YXIgYXhOb2RlOworICAg
ICAgIAorICAgICAgIHRlc3RDb21ib2JveCgpOworICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRl
c3RDb21ib2JveCgpIHsKKyAgICAgICAgICAgZGVidWcoIlxuVGVzdCBDb21ib2JveC4iKTsgCisg
ICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tYm9ib3giKTsKKyAg
ICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJjb21ib2JveCIpOworICAgICAgICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZhbHVl
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgZGVidWcoImNvbWJvYm94IGFjY2Vz
c2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZlbnQudmFsdWUpOworICAgICAgICAgICAgICB0ZXN0
Q29udGVudGVkaXRhYmxlKCk7CisgICAgICAgICAgIH07CisgICAgICAgICAgIGF4Tm9kZS5zZXRW
YWx1ZSgiY29tYm9ib3ggbmV3IHZhbHVlIik7CisgICAgICAgfQorICAgICAgIAorICAgICAgIGZ1
bmN0aW9uIHRlc3RDb250ZW50ZWRpdGFibGUoKSB7CisgICAgICAgICAgIGRlYnVnKCJcblRlc3Qg
Q29udGVudGVkaXRhYmxlLiIpOyAKKyAgICAgICAgICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsK
KyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2libGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICAgIGRlYnVnKCJjb250ZW50ZWRpdGFibGUgYWNjZXNzaWJsZSBzZXQgdmFs
dWUgdG86ICIgKyBldmVudC52YWx1ZSk7CisgICAgICAgICAgICAgIHRlc3RTbGlkZXIoKTsKKyAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCJjb250ZW50ZWRpdGFibGUg
bmV3IHZhbHVlIik7CisgICAgICAgfQorICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RTbGlk
ZXIoKSB7CisgICAgICAgICAgIGRlYnVnKCJcblRlc3QgU2xpZGVyLiIpOyAKKyAgICAgICAgICAg
bm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbGlkZXIiKTsKKyAgICAgICAgICAgYXhO
b2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJzbGlk
ZXIiKTsKKyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2libGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgICAgICAgIGRlYnVnKCJzbGlkZXIgYWNjZXNzaWJsZSBzZXQgdmFsdWUg
dG86ICIgKyBldmVudC52YWx1ZSk7CisgICAgICAgICAgICAgIHRlc3RTY3JvbGxiYXIoKTsKKyAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCI3MCIpOworICAgICAgIH0K
KyAgICAgICAKKyAgICAgICBmdW5jdGlvbiB0ZXN0U2Nyb2xsYmFyKCkgeworICAgICAgICAgICBk
ZWJ1ZygiXG5UZXN0IFNjcm9sbGJhci4iKTsgCisgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIiKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJzY3JvbGxlciIpOworICAgICAg
ICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZhbHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgICAgZGVidWcoInNjcm9sbGVyIGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZl
bnQudmFsdWUpOworICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgfTsK
KyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCI2MCIpOworICAgICAgIH0KKworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBsb2FkIGFjY2Vzc2liaWxpdHkgY29u
dHJvbGxlciIpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334764</attachid>
            <date>2018-02-28 13:46:34 -0800</date>
            <delta_ts>2018-02-28 14:16:06 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>27543</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTEwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTAyLTI4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFPTTogRGlzcGF0Y2ggYWNjZXNz
aWJsZXNldHZhbHVlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMwMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3NzY0MjQyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2Vzc2liaWxp
dHkgZXZlbnRzLgorICAgICAgICBTcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL2FvbS9zcGVj
L3BoYXNlMi5odG1sCisKKyAgICAgICAgQWRkZWQgYSBuZXcgZXZlbnQgdHlwZSBBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC4gCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2
ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHA6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUgY29uc3QpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2libGVTZXRWYWx1
ZUV2ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0VmFsdWUpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjpzZXRWYWx1ZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OnNldFZhbHVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2V2ZW50czogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNz
aWJsZVNldFZhbHVlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
bGVTZXRWYWx1ZUV2ZW50OjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMu
aDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKwogMjAxOC0wMi0yOCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZHVjZSB1c2Ug
b2YgTmV0d29ya2luZ0NvbnRleHQgaW4gV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAko
cmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQzOSw2ICs0MzksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxF
UwogICAgIE1vZHVsZXMvd2VidnIvVlJQb3NlLmlkbAogICAgIE1vZHVsZXMvd2VidnIvVlJTdGFn
ZVBhcmFtZXRlcnMuaWRsCiAKKyAgICBhY2Nlc3NpYmlsaXR5L2V2ZW50cy9BY2Nlc3NpYmxlU2V0
VmFsdWVFdmVudC5pZGwKKwogICAgIGFuaW1hdGlvbi9BbmltYXRhYmxlLmlkbAogICAgIGFuaW1h
dGlvbi9BbmltYXRpb25FZmZlY3RSZWFkT25seS5pZGwKICAgICBhbmltYXRpb24vQW5pbWF0aW9u
RWZmZWN0VGltaW5nLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZp
c2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJzb2NrZXRzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIgXAogICAgICQo
V2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L2V2
ZW50cyBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmluZGlu
Z3MvanMgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvIFwKQEAgLTM2MCw2ICszNjEsNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSUG9zZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwgXAorICAgICQoV2Vi
Q29yZSkvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9BbmltYXRhYmxlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0UmVhZE9ubHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RUaW1pbmcuaWRsIFwKQEAgLTE0MjksNiArMTQzMSw3
IEBAIFBSRVBST0NFU1NfSURMU19TQ1JJUFRTID0gXAogSURMX0lOQ0xVREVTID0gXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcyBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKKyAgICAk
KFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkvZXZlbnRzIFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlv
biBcCiAgICAgJChXZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDYgKzMzMCw3IEBAIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ28KIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcAorYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNz
aWJsZVNldFZhbHVlRXZlbnQuY3BwCiAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RSZWFkT25s
eS5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RUaW1pbmcuY3BwCkBAIC0yMzI4LDYgKzIz
MjksNyBAQCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCiBKU0Fib3J0Q29udHJvbGxl
ci5jcHAKIEpTQWJvcnRTaWduYWwuY3BwCiBKU0Fic3RyYWN0V29ya2VyLmNwcAorSlNBY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudC5jcHAKIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcAogSlNBZXNDdHJQYXJh
bXMuY3BwCiBKU0Flc0djbVBhcmFtcy5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyOTA2NikKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMzIzMiw2ICszMjMyLDcgQEAKIAkJQTlEMjQ4MDEwRDc1N0U2OTAwRkRGOTU5IC8q
IEpTRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE5RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5Lmgg
Ki87IH07CiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwMzBENzU3
RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9OwogCQlBOUQyNDgwOTBENzU3RTdE
MDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwNTBENzU3RTdEMDBGREY5NTkgLyogSlNET01N
aW1lVHlwZUFycmF5LmggKi87IH07CisJCUE5RjJFMEU1MjA0NjE0MzQwMDUxMjg1NSAvKiBBY2Nl
c3NpYmxlU2V0VmFsdWVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTlGMkUwRTQyMDQ2MTQzMzAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1
ZUV2ZW50LmggKi87IH07CiAJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJJT1MubW0gKi87IH07CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1ND
dXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFBMkE1
QUNFMTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi87IH07CkBAIC0xMTU2OSw2ICsxMTU3MCw5
IEBACiAJCUE5RDI0ODAzMEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTU1pbWVUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE5RDI0ODA0MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVU
eXBlQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
TWltZVR5cGVBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5RDI0ODA1
MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBOUYyRTBFMzIwNDYxMzlGMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZh
bHVlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTlGMkUwRTQyMDQ2MTQzMzAwNTEyODU1IC8qIEFjY2Vzc2li
bGVTZXRWYWx1ZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vz
c2libGVTZXRWYWx1ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE5RjJF
MEU2MjA0NjE0M0MwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFBMDk3OEVEMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFn
ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDdXJz
b3JJbWFnZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEwOTc4RUUw
QUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1cnNvckltYWdlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxODIsNiArMTYxODYsNyBA
QAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQUFBNzI4RUYxNkQxRDhCQzAwRDNCQkM2IC8qIGlvcyAq
LywKIAkJCQkyOUE4MTIwNTBGQkI5QjUyMDA1MTAyOTMgLyogbWFjICovLAorCQkJCUE5RjJFMEUy
MjA0NjEzNDcwMDUxMjg1NSAvKiBldmVudHMgKi8sCiAJCQkJMjk4MUNBOUQxMzE4MjJFQzAwRDEy
RjJBIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi8sCiAJCQkJMjlBODEyMTYwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5oICovLAogCQkJCTI5ODFDQTlFMTMx
ODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCAqLywKQEAgLTIy
Mzg1LDYgKzIyMzkwLDE2IEBACiAJCQluYW1lID0gUGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCUE5RjJFMEUyMjA0NjEzNDcwMDUxMjg1NSAvKiBldmVudHMgKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE5RjJFMEU2MjA0
NjE0M0MwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAgKi8sCisJCQkJQTlG
MkUwRTQyMDQ2MTQzMzAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmggKi8sCisJ
CQkJQTlGMkUwRTMyMDQ2MTM5RjAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50Lmlk
bCAqLywKKwkJCSk7CisJCQlwYXRoID0gZXZlbnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNzAyMSw2ICsyNzAzNiw3IEBA
CiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIENvb3JkaW5h
dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNTFFOUU0N0JGMDBERUM2MUQgLyogQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTlGMkUwRTUyMDQ2MTQz
NDAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzRjgwMjAzNzFFOUU0N0M1MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDdEMzM0ODFDN0Ex
NkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLApJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFs
bEluT25lLmNwcAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCwzICs1
OCw0IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCIKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5VHJlZS5jcHAiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNw
cCIKKyNpbmNsdWRlICJBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwODMsNyAr
MjA4Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldFZhbHUKICAgICBp
ZiAoaXNNZXRlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNQcm9ncmVz
c0luZGljYXRvcigpIHx8IGlzU2xpZGVyKCkpCisgICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3Io
KSB8fCBpc1NsaWRlcigpIHx8IGlzU2Nyb2xsYmFyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAjaWYgUExBVEZPUk0oR1RLKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiAyMjkwNjYpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgiCiAjaW5jbHVk
ZSAiQWNjZXNzaWJpbGl0eVRhYmxlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJsZVNldFZhbHVlRXZl
bnQuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAj
aW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05OTcsOCArOTk4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpwcmVzcygpCiAgICAgaWYgKGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKSB7
CiAgICAgICAgIGlmIChhdXRvKiBwcmVzc09iamVjdCA9IGNhY2hlLT5nZXRPckNyZWF0ZShwcmVz
c0VsZW1lbnQpKSB7CiAgICAgICAgICAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuYWNjZXNzaWJsZWNsaWNrRXZlbnQsIHRydWUsIHRydWUpOwotICAgICAgICAgICAg
cHJlc3NPYmplY3QtPmRpc3BhdGNoQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAg
ICAgIGlmIChldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpKQorICAgICAgICAgICAgaWYgKHByZXNz
T2JqZWN0LT5kaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudChldmVudCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMTUzLDcgKzIxNTMsNyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3Q6CiAgICAgcmV0dXJuIG51bGxB
dG9tKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGlzcGF0Y2hBY2Nlc3NpYmls
aXR5RXZlbnQoRXZlbnQmIGV2ZW50KQorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRj
aEFjY2Vzc2liaWxpdHlFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgVmVjdG9yPEVsZW1lbnQq
PiBldmVudFBhdGg7CiAgICAgZm9yIChhdXRvKiBwYXJlbnRPYmplY3QgPSB0aGlzOyBwYXJlbnRP
YmplY3Q7IHBhcmVudE9iamVjdCA9IHBhcmVudE9iamVjdC0+cGFyZW50T2JqZWN0KCkpIHsKQEAg
LTIxNjIsNiArMjE2MiwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BhdGNoQWNj
ZXNzCiAgICAgfQogICAgIAogICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudChldmVu
dFBhdGgsIGV2ZW50KTsKKyAgICAKKyAgICAvLyByZXR1cm4gdHJ1ZSBpZiBwcmV2ZW50RGVmYXVs
dCgpIHdhcyBjYWxsZWQsIHNvIHRoYXQgd2UgZG9uJ3QgZXhlY3V0ZSB0aGUgZmFsbGJhY2sgYmVo
YXZpb3IuCisgICAgcmV0dXJuIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKTsKK30KKworYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byBldmVudCA9IEFjY2Vzc2libGVTZXRWYWx1ZUV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFjY2Vzc2libGVzZXR2YWx1ZUV2ZW50LCB2YWx1ZSk7
CisgICAgcmV0dXJuIGRpc3BhdGNoQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKIH0KIAogLy8g
TGFja2luZyBjb25jcmV0ZSBldmlkZW5jZSBvZiBvcmllbnRhdGlvbiwgaG9yaXpvbnRhbCBtZWFu
cyB3aWR0aCA+IGhlaWdodC4gdmVydGljYWwgaXMgaGVpZ2h0ID4gd2lkdGg7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAko
cmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTg5NSw3ICs4OTUsOCBAQCBwdWJsaWM6
CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0OwogICAgIGJvb2wgaGFzVGFnTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3Q7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudChFdmVudCYpOwor
ICAgIGJvb2wgZGlzcGF0Y2hBY2Nlc3NpYmlsaXR5RXZlbnQoRXZlbnQmKTsKKyAgICBib29sIGRp
c3BhdGNoQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0
dWFsIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlKCkgY29uc3QgeyBy
ZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFuZ2UoKTsgfQogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0
aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdCB7IHJl
dHVybiBWaXNpYmxlUG9zaXRpb25SYW5nZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJ
KHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NTcsNiArMTc1Nyw5
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0VmFsdWUKIHsKICAgICBpZiAo
IW1fcmVuZGVyZXIgfHwgIWlzPEVsZW1lbnQ+KG1fcmVuZGVyZXItPm5vZGUoKSkpCiAgICAgICAg
IHJldHVybjsKKyAgICBpZiAoZGlzcGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChzdHJpbmcp
KQorICAgICAgICByZXR1cm47CisgICAgCiAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0
PEVsZW1lbnQ+KCptX3JlbmRlcmVyLT5ub2RlKCkpOwogICAgIFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIgPSAqbV9yZW5kZXJlcjsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gMjI5
MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsOCBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlTY3JvbGxiYXI6OnNldFZhbHVlKGZsCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmbG9h
dCBuZXdWYWx1ZSA9IHZhbHVlICogbV9zY3JvbGxiYXItPm1heGltdW0oKTsKKyAgICBpZiAoZGlz
cGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChTdHJpbmc6Om51bWJlcihuZXdWYWx1ZSkpKQor
ICAgICAgICByZXR1cm47CiAgICAgbV9zY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkuc2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKG1fc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpLCBuZXdW
YWx1ZSk7CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTbGlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyOCw2ICsxMjgsOSBAQCBmbG9hdCBBY2Nlc3NpYmlsaXR5U2xpZGVyOjptaW5W
YWx1ZUZvclJhCiAKIHZvaWQgQWNjZXNzaWJpbGl0eVNsaWRlcjo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKIHsKKyAgICBpZiAoZGlzcGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCh2
YWx1ZSkpCisgICAgICAgIHJldHVybjsKKwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0g
aW5wdXRFbGVtZW50KCk7CiAgICAgCiAgICAgaWYgKGlucHV0LT52YWx1ZSgpID09IHZhbHVlKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNldFZh
bHVlRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
ZXZlbnRzL0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2V2ZW50cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpBY2Nlc3NpYmxlU2V0
VmFsdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCisgICAgOiBFdmVudCh0eXBlLCB0cnVlLCB0cnVlKQorICAgICwgbV92YWx1ZSh2YWx1
ZSkKK3sKK30KKworQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQ6On5BY2Nlc3NpYmxlU2V0VmFsdWVF
dmVudCgpID0gZGVmYXVsdDsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9ldmVudHMvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2V2ZW50cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZXZlbnRzL0FjY2Vz
c2libGVTZXRWYWx1ZUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCA6IHB1YmxpYyBFdmVu
dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2libGVTZXRWYWx1ZUV2
ZW50KHR5cGUsIHZhbHVlKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+QWNjZXNzaWJsZVNldFZh
bHVlRXZlbnQoKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwor
CisgICAgLy8gRXZlbnQuCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudEludGVyZmFjZVR5cGU7
IH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgbV92YWx1ZTsKK307CisKK30K
KwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ldmVudHMvQWNjZXNzaWJsZVNl
dFZhbHVlRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZXZlbnRzL0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmlkbAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2V2ZW50cy9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbCwKKyAgICBOb0ludGVy
ZmFjZU9iamVjdCwKK10gaW50ZXJmYWNlIEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50IDogRXZlbnQg
eworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7Cit9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmlkbAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDcgQEAKIAogICAgIC8v
IEFjY2Vzc2liaWxpdHkgZXZlbnRzLgogICAgIFtFbmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxp
dHlPYmplY3RNb2RlbF0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmFjY2Vzc2libGVjbGljazsK
KyAgICBbRW5hYmxlZEF0UnVudGltZT1BY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25hY2Nlc3NpYmxlc2V0dmFsdWU7CiB9OwogCiBkaWN0aW9uYXJ5IFNo
YWRvd1Jvb3RJbml0IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMjI5
MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRE9NU3VidHJl
ZU1vZGlmaWVkKSBcCiAgICAgbWFjcm8oYWJvcnQpIFwKICAgICBtYWNybyhhY2Nlc3NpYmxlY2xp
Y2spIFwKKyAgICBtYWNybyhhY2Nlc3NpYmxlc2V0dmFsdWUpIFwKICAgICBtYWNybyhhY3RpdmF0
ZSkgXAogICAgIG1hY3JvKGFjdGl2ZSkgXAogICAgIG1hY3JvKGFkZHNvdXJjZWJ1ZmZlcikgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4JKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03NiwzICs3Niw0
IEBAIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9TUUKIE1lZGlhRW5jcnlw
dGVkRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBCiBNZWRpYUtleU1lc3NhZ2VFdmVu
dCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIFZSRGlzcGxheUV2ZW50CitBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjI5MDY2KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDItMjggIE5h
biBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQU9NOiBEaXNwYXRjaCBh
Y2Nlc3NpYmxlc2V0dmFsdWUgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MzAyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc3NjQyNDI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2libGVz
ZXR2YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0
eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4dDoKKwogMjAxOC0wMi0yNyAgRnJlZGVyaWMg
V2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVsYXlvdXQgZnJhbWVzIGFmdGVy
IEFzeW5jRnJhbWVTY3JvbGxpbmcgb3IgRnJhbWVGbGF0dGVuaW5nIG9wdGlvbiBpcyBjaGFuZ2Vk
CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJs
ZXNldHZhbHVlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNj
ZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0
IEBACitjb250ZW50ZWRpdGFibGUgbmV3IHZhbHVlCisKK3Njcm9sbGJhcgorVGhpcyB0ZXN0cyBh
Y2Nlc3NpYmxlc2V0dmFsdWUgZXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CisKK1Rlc3QgQ29tYm9ib3guCitjb21ib2JveCBhY2Nlc3NpYmxlIHNldCB2YWx1ZSB0bzogY29t
Ym9ib3ggbmV3IHZhbHVlCisKK1Rlc3QgQ29udGVudGVkaXRhYmxlLgorY29udGVudGVkaXRhYmxl
IGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiBjb250ZW50ZWRpdGFibGUgbmV3IHZhbHVlCisKK1Rl
c3QgU2xpZGVyLgorc2xpZGVyIGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiA3MAorCitUZXN0IFNj
cm9sbGJhci4KK3Njcm9sbGVyIGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiA2MAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL0FPTS1ldmVudC1hY2Nlc3NpYmxlc2V0dmFsdWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNj
ZXNzaWJsZXNldHZhbHVlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBpZD0i
Ym9keSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxkaXYgaWQ9ImNvbnRlbnQiPgorCis8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIg
aWQ9ImNvbnRlbnRlZGl0YWJsZSI+Y3VycmVudDwvZGl2PgorPGRpdiBpZD0iY29tYm9ib3giIHJv
bGU9ImNvbWJvYm94IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1sYWJlbD0iVGVzdCI+PC9k
aXY+Cis8aW5wdXQgaWQ9InNsaWRlciIgdHlwZT0icmFuZ2UiPgorPGRpdiBpZD0ic2Nyb2xsZXIi
IGFyaWEtdmFsdWVub3c9IjU1IiByb2xlPSJzY3JvbGxiYXIiPnNjcm9sbGJhcjwvZGl2PgorCis8
L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGFjY2Vzc2libGVz
ZXR2YWx1ZSBldmVudC4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpIHsKKyAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAKKyAgICAgICB2YXIg
bm9kZTsKKyAgICAgICB2YXIgYXhOb2RlOworICAgICAgIAorICAgICAgIHRlc3RDb21ib2JveCgp
OworICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RDb21ib2JveCgpIHsKKyAgICAgICAgICAg
ZGVidWcoIlxuVGVzdCBDb21ib2JveC4iKTsgCisgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29tYm9ib3giKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjb21ib2JveCIpOworICAgICAg
ICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZhbHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgICAgZGVidWcoImNvbWJvYm94IGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZl
bnQudmFsdWUpOworICAgICAgICAgICAgICB0ZXN0Q29udGVudGVkaXRhYmxlKCk7CisgICAgICAg
ICAgIH07CisgICAgICAgICAgIGF4Tm9kZS5zZXRWYWx1ZSgiY29tYm9ib3ggbmV3IHZhbHVlIik7
CisgICAgICAgfQorICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RDb250ZW50ZWRpdGFibGUo
KSB7CisgICAgICAgICAgIGRlYnVnKCJcblRlc3QgQ29udGVudGVkaXRhYmxlLiIpOyAKKyAgICAg
ICAgICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsK
KyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2li
bGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgIGRlYnVnKCJjb250
ZW50ZWRpdGFibGUgYWNjZXNzaWJsZSBzZXQgdmFsdWUgdG86ICIgKyBldmVudC52YWx1ZSk7Cisg
ICAgICAgICAgICAgIHRlc3RTbGlkZXIoKTsKKyAgICAgICAgICAgfTsKKyAgICAgICAgICAgYXhO
b2RlLnNldFZhbHVlKCJjb250ZW50ZWRpdGFibGUgbmV3IHZhbHVlIik7CisgICAgICAgfQorICAg
ICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RTbGlkZXIoKSB7CisgICAgICAgICAgIGRlYnVnKCJc
blRlc3QgU2xpZGVyLiIpOyAKKyAgICAgICAgICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzbGlkZXIiKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJzbGlkZXIiKTsKKyAgICAgICAgICAgbm9kZS5vbmFj
Y2Vzc2libGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgIGRlYnVn
KCJzbGlkZXIgYWNjZXNzaWJsZSBzZXQgdmFsdWUgdG86ICIgKyBldmVudC52YWx1ZSk7CisgICAg
ICAgICAgICAgIHRlc3RTY3JvbGxiYXIoKTsKKyAgICAgICAgICAgfTsKKyAgICAgICAgICAgYXhO
b2RlLnNldFZhbHVlKCI3MCIpOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICBmdW5jdGlvbiB0
ZXN0U2Nyb2xsYmFyKCkgeworICAgICAgICAgICBkZWJ1ZygiXG5UZXN0IFNjcm9sbGJhci4iKTsg
CisgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIiKTsK
KyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJzY3JvbGxlciIpOworICAgICAgICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZh
bHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgZGVidWcoInNjcm9sbGVyIGFj
Y2Vzc2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZlbnQudmFsdWUpOworICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVl
KCI2MCIpOworICAgICAgIH0KKworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNv
dWxkIG5vdCBsb2FkIGFjY2Vzc2liaWxpdHkgY29udHJvbGxlciIpOworICAgIH0KKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9kb20tc3Rh
dGljLXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL2RvbS9kb20tc3RhdGljLXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjkwNjYpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZG9t
LXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIFBBU1MgYVsiY2xpZW50SGVpZ2h0Il0gaXMgMAogUEFT
UyBhWyJpbm5lckhUTUwiXSBpcyBuZXJnZXQKIFBBU1MgYVsib3V0ZXJIVE1MIl0gaXMgPGEgaWQ9
ImZvbyIgaHJlZj0iYmFyIj5uZXJnZXQ8L2E+CiBQQVNTIGFbIm9uYWNjZXNzaWJsZWNsaWNrIl0g
aXMgbnVsbAorUEFTUyBhWyJvbmFjY2Vzc2libGVzZXR2YWx1ZSJdIGlzIG51bGwKIFBBU1MgYVsi
b25jb3B5Il0gaXMgbnVsbAogUEFTUyBhWyJvbmN1dCJdIGlzIG51bGwKIFBBU1MgYVsib25wYXN0
ZSJdIGlzIG51bGwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334769</attachid>
            <date>2018-02-28 14:16:06 -0800</date>
            <delta_ts>2018-02-28 15:13:10 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>26658</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTAyLTI4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFPTTogRGlzcGF0Y2ggYWNjZXNz
aWJsZXNldHZhbHVlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMwMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3NzY0MjQyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2Vzc2liaWxp
dHkgZXZlbnRzLgorICAgICAgICBTcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL2FvbS9zcGVj
L3BoYXNlMi5odG1sCisKKyAgICAgICAgQWRkZWQgYSBuZXcgZXZlbnQgdHlwZSBBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC4gCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2
ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHA6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUgY29uc3QpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2libGVTZXRWYWx1
ZUV2ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0VmFsdWUpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjpzZXRWYWx1ZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OnNldFZhbHVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50Ojp2YWx1ZSBjb25zdCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorCiAyMDE4LTAyLTI4ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBO
ZXR3b3JraW5nQ29udGV4dCBpbiBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNDM5LDYgKzQzOSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFy
YW1ldGVycy5pZGwKIAorICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQu
aWRsCisKICAgICBhbmltYXRpb24vQW5pbWF0YWJsZS5pZGwKICAgICBhbmltYXRpb24vQW5pbWF0
aW9uRWZmZWN0UmVhZE9ubHkuaWRsCiAgICAgYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdFRpbWlu
Zy5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjI5MDY2
KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMzYwLDYgKzM2MCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VidnIvVlJMYXllckluaXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
dnIvVlJQb3NlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSU3RhZ2VQYXJh
bWV0ZXJzLmlkbCBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2libGVTZXRW
YWx1ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdFJlYWRPbmx5LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0VGltaW5nLmlkbCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMzMCw2ICszMzAsNyBAQCBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZVJvdy5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHAKK2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJs
ZVNldFZhbHVlRXZlbnQuY3BwCiAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RSZWFkT25seS5j
cHAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RUaW1pbmcuY3BwCkBAIC0yMzI4LDYgKzIzMjks
NyBAQCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCiBKU0Fib3J0Q29udHJvbGxlci5j
cHAKIEpTQWJvcnRTaWduYWwuY3BwCiBKU0Fic3RyYWN0V29ya2VyLmNwcAorSlNBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC5jcHAKIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcAogSlNBZXNDdHJQYXJhbXMu
Y3BwCiBKU0Flc0djbVBhcmFtcy5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMzIzMiw2ICszMjMyLDcgQEAKIAkJQTlEMjQ4MDEwRDc1N0U2OTAwRkRGOTU5IC8qIEpT
RE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE5RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5LmggKi87
IH07CiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwMzBENzU3RTdE
MDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9OwogCQlBOUQyNDgwOTBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwNTBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1l
VHlwZUFycmF5LmggKi87IH07CisJCUE5RjJFMEVCMjA0NzVDREUwMDUxMjg1NSAvKiBBY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTlGMkUwRTgyMDQ3NUNEQzAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2
ZW50LmggKi87IH07CiAJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gKi87IH07CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJz
b3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFBMkE1QUNF
MTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi87IH07CkBAIC0xMTU2OSw2ICsxMTU3MCw5IEBA
CiAJCUE5RDI0ODAzMEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTU1pbWVUeXBlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE5RDI0ODA0MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBl
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWlt
ZVR5cGVBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5RDI0ODA1MEQ3
NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBOUYyRTBFNzIwNDc1Q0RDMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZhbHVl
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJs
ZVNldFZhbHVlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOUYyRTBF
ODIwNDc1Q0RDMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTlGMkUwRTkyMDQ3NUNERTAwNTEyODU1IC8qIEFjY2Vz
c2libGVTZXRWYWx1ZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVE
MEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEwOTc4RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1
cnNvckltYWdlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1
cnNvckltYWdlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEyQTVBQjgx
NkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTYyNDgsNiArMTYyNTIsOSBAQAogCQkJCUE5MUM5RkJEMUI2NTg2REUw
MEFGRkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZS5oICovLAogCQkJCUE5MUM5RkMwMUI2NTlBNjcw
MEFGRkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uY3BwICovLAogCQkJCUE5MUM5RkMxMUI2
NTlBNjcwMEFGRkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaCAqLywKKwkJCQlBOUYyRTBF
NzIwNDc1Q0RDMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuY3BwICovLAorCQkJ
CUE5RjJFMEU4MjA0NzVDREMwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oICov
LAorCQkJCUE5RjJFMEU5MjA0NzVDREUwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVu
dC5pZGwgKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFYT2JqZWN0Q2FjaGUu
Y3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmgg
Ki8sCiAJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmggKi8sCkBAIC0yNzAyMSw2ICsyNzAyOCw3IEBACiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAw
RUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0
NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIENvb3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzRjgwMjAzNTFFOUU0N0JGMDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTlGMkUwRUIyMDQ3NUNERTAwNTEyODU1IC8qIEFjY2Vzc2libGVT
ZXRWYWx1ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNzFFOUU0N0M1MDBERUM2
MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcAkocmV2aXNpb24gMjI5
MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5P
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCwzICs1OCw0IEBACiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmNwcCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VHJlZS5jcHAiCiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCIKKyNpbmNsdWRlICJBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAkocmV2aXNpb24gMjI5MDY2
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwODMsNyArMjA4Myw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNhblNldFZhbHUKICAgICBpZiAoaXNNZXRlcigpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xpZGVy
KCkpCisgICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigpIHx8IGlzU2Ny
b2xsYmFyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAjaWYgUExBVEZPUk0oR1RLKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCShyZXZpc2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlLmgi
CisjaW5jbHVkZSAiQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaCIKICNpbmNsdWRlICJET01Ub2tl
bkxpc3QuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05
OTcsOCArOTk4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcygpCiAgICAgaWYg
KGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBwcmVz
c09iamVjdCA9IGNhY2hlLT5nZXRPckNyZWF0ZShwcmVzc0VsZW1lbnQpKSB7CiAgICAgICAgICAg
ICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYWNjZXNzaWJsZWNsaWNr
RXZlbnQsIHRydWUsIHRydWUpOwotICAgICAgICAgICAgcHJlc3NPYmplY3QtPmRpc3BhdGNoQWNj
ZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAgICAgIGlmIChldmVudC0+ZGVmYXVsdFBy
ZXZlbnRlZCgpKQorICAgICAgICAgICAgaWYgKHByZXNzT2JqZWN0LT5kaXNwYXRjaEFjY2Vzc2li
aWxpdHlFdmVudChldmVudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICB9CkBAIC0yMTUzLDcgKzIxNTMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vz
c2liaWxpdHlPYmplY3Q6CiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKLXZvaWQgQWNjZXNz
aWJpbGl0eU9iamVjdDo6ZGlzcGF0Y2hBY2Nlc3NpYmlsaXR5RXZlbnQoRXZlbnQmIGV2ZW50KQor
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudChFdmVu
dCYgZXZlbnQpCiB7CiAgICAgVmVjdG9yPEVsZW1lbnQqPiBldmVudFBhdGg7CiAgICAgZm9yIChh
dXRvKiBwYXJlbnRPYmplY3QgPSB0aGlzOyBwYXJlbnRPYmplY3Q7IHBhcmVudE9iamVjdCA9IHBh
cmVudE9iamVjdC0+cGFyZW50T2JqZWN0KCkpIHsKQEAgLTIxNjIsNiArMjE2MiwxNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BhdGNoQWNjZXNzCiAgICAgfQogICAgIAogICAgIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudChldmVudFBhdGgsIGV2ZW50KTsKKyAgICAKKyAg
ICAvLyByZXR1cm4gdHJ1ZSBpZiBwcmV2ZW50RGVmYXVsdCgpIHdhcyBjYWxsZWQsIHNvIHRoYXQg
d2UgZG9uJ3QgZXhlY3V0ZSB0aGUgZmFsbGJhY2sgYmVoYXZpb3IuCisgICAgcmV0dXJuIGV2ZW50
LmRlZmF1bHRQcmV2ZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNw
YXRjaEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAg
aWYgKCFjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
YXV0byBldmVudCA9IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmFjY2Vzc2libGVzZXR2YWx1ZUV2ZW50LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRpc3BhdGNoQWNj
ZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKIH0KIAogLy8gTGFja2luZyBjb25jcmV0ZSBldmlkZW5j
ZSBvZiBvcmllbnRhdGlvbiwgaG9yaXpvbnRhbCBtZWFucyB3aWR0aCA+IGhlaWdodC4gdmVydGlj
YWwgaXMgaGVpZ2h0ID4gd2lkdGg7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gMjI5MDY2KQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTg5NSw3ICs4OTUsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBnZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGJvb2wgaGFz
VGFnTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CiAgICAgCi0gICAgdm9pZCBkaXNw
YXRjaEFjY2Vzc2liaWxpdHlFdmVudChFdmVudCYpOworICAgIGJvb2wgZGlzcGF0Y2hBY2Nlc3Np
YmlsaXR5RXZlbnQoRXZlbnQmKTsKKyAgICBib29sIGRpc3BhdGNoQWNjZXNzaWJsZVNldFZhbHVl
RXZlbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvblJhbmdl
IHZpc2libGVQb3NpdGlvblJhbmdlKCkgY29uc3QgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFu
Z2UoKTsgfQogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9u
UmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdCB7IHJldHVybiBWaXNpYmxlUG9zaXRpb25SYW5n
ZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3NTcsNiArMTc1Nyw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2V0VmFsdWUKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIWlzPEVsZW1l
bnQ+KG1fcmVuZGVyZXItPm5vZGUoKSkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoZGlzcGF0
Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChzdHJpbmcpKQorICAgICAgICByZXR1cm47CisgICAg
CiAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCptX3JlbmRlcmVyLT5u
b2RlKCkpOwogICAgIFJlbmRlck9iamVjdCYgcmVuZGVyZXIgPSAqbV9yZW5kZXJlcjsKICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTgsNiArOTgsOCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OnNldFZhbHVlKGZs
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmbG9hdCBuZXdWYWx1ZSA9IHZhbHVlICogbV9z
Y3JvbGxiYXItPm1heGltdW0oKTsKKyAgICBpZiAoZGlzcGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVF
dmVudChTdHJpbmc6Om51bWJlcihuZXdWYWx1ZSkpKQorICAgICAgICByZXR1cm47CiAgICAgbV9z
Y3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KG1fc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpLCBuZXdWYWx1ZSk7CiB9CiAgICAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNsaWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsOSBA
QCBmbG9hdCBBY2Nlc3NpYmlsaXR5U2xpZGVyOjptaW5WYWx1ZUZvclJhCiAKIHZvaWQgQWNjZXNz
aWJpbGl0eVNsaWRlcjo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKKyAgICBpZiAo
ZGlzcGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCh2YWx1ZSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaW5wdXRFbGVtZW50KCk7CiAgICAgCiAg
ICAgaWYgKGlucHV0LT52YWx1ZSgpID09IHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0
VmFsdWVFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmxlU2V0VmFsdWVFdmVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpB
Y2Nlc3NpYmxlU2V0VmFsdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCisgICAgOiBFdmVudCh0eXBlLCB0cnVlLCB0cnVlKQorICAgICwg
bV92YWx1ZSh2YWx1ZSkKK3sKK30KKworQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQ6On5BY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudCgpID0gZGVmYXVsdDsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2libGVTZXRW
YWx1ZUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KHR5cGUs
IHZhbHVlKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQo
KTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOworCisgICAgLy8g
RXZlbnQuCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudEludGVyZmFjZVR5cGU7IH0KKworcHJp
dmF0ZToKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgbV92YWx1ZTsKK307CisKK30KKwpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0
VmFsdWVFdmVudC5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxp
dHlPYmplY3RNb2RlbCwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKK10gaW50ZXJmYWNlIEFjY2Vz
c2libGVTZXRWYWx1ZUV2ZW50IDogRXZlbnQgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdmFsdWU7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkocmV2aXNpb24gMjI5
MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDMsNiArMTQzLDcgQEAKIAogICAgIC8vIEFjY2Vzc2liaWxpdHkgZXZlbnRzLgogICAgIFtF
bmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbF0gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbmFjY2Vzc2libGVjbGljazsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1BY2Nlc3Np
YmlsaXR5T2JqZWN0TW9kZWxdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hY2Nlc3NpYmxlc2V0
dmFsdWU7CiB9OwogCiBkaWN0aW9uYXJ5IFNoYWRvd1Jvb3RJbml0IHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oRE9NU3VidHJlZU1vZGlmaWVkKSBcCiAgICAgbWFjcm8oYWJvcnQp
IFwKICAgICBtYWNybyhhY2Nlc3NpYmxlY2xpY2spIFwKKyAgICBtYWNybyhhY2Nlc3NpYmxlc2V0
dmFsdWUpIFwKICAgICBtYWNybyhhY3RpdmF0ZSkgXAogICAgIG1hY3JvKGFjdGl2ZSkgXAogICAg
IG1hY3JvKGFkZHNvdXJjZWJ1ZmZlcikgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4J
KHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC03NiwzICs3Niw0IEBAIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQg
Y29uZGl0aW9uYWw9TUUKIE1lZGlhRW5jcnlwdGVkRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVE
X01FRElBCiBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEK
IFZSRGlzcGxheUV2ZW50CitBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjI5MDY2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTgtMDItMjggIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBWDogQU9NOiBEaXNwYXRjaCBhY2Nlc3NpYmxlc2V0dmFsdWUgZXZlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzAyMQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzc3NjQyNDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNz
aWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4
dDoKKwogMjAxOC0wMi0yNyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmVsYXlvdXQgZnJhbWVzIGFmdGVyIEFzeW5jRnJhbWVTY3JvbGxpbmcgb3IgRnJhbWVG
bGF0dGVuaW5nIG9wdGlvbiBpcyBjaGFuZ2VkCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJs
ZXNldHZhbHVlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBACitjb250ZW50ZWRpdGFibGUgbmV3IHZhbHVl
CisKK3Njcm9sbGJhcgorVGhpcyB0ZXN0cyBhY2Nlc3NpYmxlc2V0dmFsdWUgZXZlbnQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1Rlc3QgQ29tYm9ib3guCitjb21ib2JveCBh
Y2Nlc3NpYmxlIHNldCB2YWx1ZSB0bzogY29tYm9ib3ggbmV3IHZhbHVlCisKK1Rlc3QgQ29udGVu
dGVkaXRhYmxlLgorY29udGVudGVkaXRhYmxlIGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiBjb250
ZW50ZWRpdGFibGUgbmV3IHZhbHVlCisKK1Rlc3QgU2xpZGVyLgorc2xpZGVyIGFjY2Vzc2libGUg
c2V0IHZhbHVlIHRvOiA3MAorCitUZXN0IFNjcm9sbGJhci4KK3Njcm9sbGVyIGFjY2Vzc2libGUg
c2V0IHZhbHVlIHRvOiA2MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL0FPTS1ldmVu
dC1hY2Nlc3NpYmxlc2V0dmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2li
bGVzZXR2YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keSBpZD0iYm9keSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImNvbnRlbnQiPgorCis8
ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaWQ9ImNvbnRlbnRlZGl0YWJsZSI+Y3VycmVudDwv
ZGl2PgorPGRpdiBpZD0iY29tYm9ib3giIHJvbGU9ImNvbWJvYm94IiBhcmlhLWV4cGFuZGVkPSJm
YWxzZSIgYXJpYS1sYWJlbD0iVGVzdCI+PC9kaXY+Cis8aW5wdXQgaWQ9InNsaWRlciIgdHlwZT0i
cmFuZ2UiPgorPGRpdiBpZD0ic2Nyb2xsZXIiIGFyaWEtdmFsdWVub3c9IjU1IiByb2xlPSJzY3Jv
bGxiYXIiPnNjcm9sbGJhcjwvZGl2PgorCis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIGFjY2Vzc2libGVzZXR2YWx1ZSBldmVudC4iKTsKKworICAgIGlmICh3
aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAKKyAgICAgICB2YXIgbm9kZTsKKyAgICAgICB2YXIgYXhOb2RlOworICAg
ICAgIAorICAgICAgIHRlc3RDb21ib2JveCgpOworICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRl
c3RDb21ib2JveCgpIHsKKyAgICAgICAgICAgZGVidWcoIlxuVGVzdCBDb21ib2JveC4iKTsgCisg
ICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tYm9ib3giKTsKKyAg
ICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJjb21ib2JveCIpOworICAgICAgICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZhbHVl
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgZGVidWcoImNvbWJvYm94IGFjY2Vz
c2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZlbnQudmFsdWUpOworICAgICAgICAgICAgICB0ZXN0
Q29udGVudGVkaXRhYmxlKCk7CisgICAgICAgICAgIH07CisgICAgICAgICAgIGF4Tm9kZS5zZXRW
YWx1ZSgiY29tYm9ib3ggbmV3IHZhbHVlIik7CisgICAgICAgfQorICAgICAgIAorICAgICAgIGZ1
bmN0aW9uIHRlc3RDb250ZW50ZWRpdGFibGUoKSB7CisgICAgICAgICAgIGRlYnVnKCJcblRlc3Qg
Q29udGVudGVkaXRhYmxlLiIpOyAKKyAgICAgICAgICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsK
KyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2libGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICAgIGRlYnVnKCJjb250ZW50ZWRpdGFibGUgYWNjZXNzaWJsZSBzZXQgdmFs
dWUgdG86ICIgKyBldmVudC52YWx1ZSk7CisgICAgICAgICAgICAgIHRlc3RTbGlkZXIoKTsKKyAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCJjb250ZW50ZWRpdGFibGUg
bmV3IHZhbHVlIik7CisgICAgICAgfQorICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RTbGlk
ZXIoKSB7CisgICAgICAgICAgIGRlYnVnKCJcblRlc3QgU2xpZGVyLiIpOyAKKyAgICAgICAgICAg
bm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbGlkZXIiKTsKKyAgICAgICAgICAgYXhO
b2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJzbGlk
ZXIiKTsKKyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2libGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgICAgICAgIGRlYnVnKCJzbGlkZXIgYWNjZXNzaWJsZSBzZXQgdmFsdWUg
dG86ICIgKyBldmVudC52YWx1ZSk7CisgICAgICAgICAgICAgIHRlc3RTY3JvbGxiYXIoKTsKKyAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCI3MCIpOworICAgICAgIH0K
KyAgICAgICAKKyAgICAgICBmdW5jdGlvbiB0ZXN0U2Nyb2xsYmFyKCkgeworICAgICAgICAgICBk
ZWJ1ZygiXG5UZXN0IFNjcm9sbGJhci4iKTsgCisgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIiKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJzY3JvbGxlciIpOworICAgICAg
ICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZhbHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgICAgZGVidWcoInNjcm9sbGVyIGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZl
bnQudmFsdWUpOworICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgfTsK
KyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCI2MCIpOworICAgICAgIH0KKworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBsb2FkIGFjY2Vzc2liaWxpdHkgY29u
dHJvbGxlciIpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL2RvbS9kb20tc3RhdGljLXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24t
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9kb20tc3RhdGlj
LXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjkwNjYp
CisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0
aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIFBBU1Mg
YVsiY2xpZW50SGVpZ2h0Il0gaXMgMAogUEFTUyBhWyJpbm5lckhUTUwiXSBpcyBuZXJnZXQKIFBB
U1MgYVsib3V0ZXJIVE1MIl0gaXMgPGEgaWQ9ImZvbyIgaHJlZj0iYmFyIj5uZXJnZXQ8L2E+CiBQ
QVNTIGFbIm9uYWNjZXNzaWJsZWNsaWNrIl0gaXMgbnVsbAorUEFTUyBhWyJvbmFjY2Vzc2libGVz
ZXR2YWx1ZSJdIGlzIG51bGwKIFBBU1MgYVsib25jb3B5Il0gaXMgbnVsbAogUEFTUyBhWyJvbmN1
dCJdIGlzIG51bGwKIFBBU1MgYVsib25wYXN0ZSJdIGlzIG51bGwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334774</attachid>
            <date>2018-02-28 15:13:10 -0800</date>
            <delta_ts>2018-02-28 16:30:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>27597</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTAyLTI4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFPTTogRGlzcGF0Y2ggYWNjZXNz
aWJsZXNldHZhbHVlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMwMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3NzY0MjQyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2Vzc2liaWxp
dHkgZXZlbnRzLgorICAgICAgICBTcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL2FvbS9zcGVj
L3BoYXNlMi5odG1sCisKKyAgICAgICAgQWRkZWQgYSBuZXcgZXZlbnQgdHlwZSBBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC4gCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9tYWMvQU9NLWV2
ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHA6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUgY29uc3QpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2libGVTZXRWYWx1
ZUV2ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0VmFsdWUpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjpzZXRWYWx1ZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OnNldFZhbHVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50Ojp2YWx1ZSBjb25zdCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorCiAyMDE4LTAyLTI4ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBO
ZXR3b3JraW5nQ29udGV4dCBpbiBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNDM5LDYgKzQzOSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFy
YW1ldGVycy5pZGwKIAorICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQu
aWRsCisKICAgICBhbmltYXRpb24vQW5pbWF0YWJsZS5pZGwKICAgICBhbmltYXRpb24vQW5pbWF0
aW9uRWZmZWN0UmVhZE9ubHkuaWRsCiAgICAgYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdFRpbWlu
Zy5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjI5MDY2
KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMzYwLDYgKzM2MCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VidnIvVlJMYXllckluaXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
dnIvVlJQb3NlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSU3RhZ2VQYXJh
bWV0ZXJzLmlkbCBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2libGVTZXRW
YWx1ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdFJlYWRPbmx5LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0VGltaW5nLmlkbCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMzMCw2ICszMzAsNyBAQCBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZVJvdy5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHAKK2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJs
ZVNldFZhbHVlRXZlbnQuY3BwCiAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RSZWFkT25seS5j
cHAKIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3RUaW1pbmcuY3BwCkBAIC0yMzI4LDYgKzIzMjks
NyBAQCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCiBKU0Fib3J0Q29udHJvbGxlci5j
cHAKIEpTQWJvcnRTaWduYWwuY3BwCiBKU0Fic3RyYWN0V29ya2VyLmNwcAorSlNBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC5jcHAKIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcAogSlNBZXNDdHJQYXJhbXMu
Y3BwCiBKU0Flc0djbVBhcmFtcy5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMzIzMiw2ICszMjMyLDcgQEAKIAkJQTlEMjQ4MDEwRDc1N0U2OTAwRkRGOTU5IC8qIEpT
RE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE5RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5LmggKi87
IH07CiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwMzBENzU3RTdE
MDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9OwogCQlBOUQyNDgwOTBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwNTBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1l
VHlwZUFycmF5LmggKi87IH07CisJCUE5RjJFMEVCMjA0NzVDREUwMDUxMjg1NSAvKiBBY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTlGMkUwRTgyMDQ3NUNEQzAwNTEyODU1IC8qIEFjY2Vzc2libGVTZXRWYWx1ZUV2
ZW50LmggKi87IH07CiAJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gKi87IH07CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJz
b3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFBMkE1QUNF
MTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi87IH07CkBAIC0xMTU2OSw2ICsxMTU3MCw5IEBA
CiAJCUE5RDI0ODAzMEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTU1pbWVUeXBlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE5RDI0ODA0MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBl
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWlt
ZVR5cGVBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5RDI0ODA1MEQ3
NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBOUYyRTBFNzIwNDc1Q0RDMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZhbHVl
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJs
ZVNldFZhbHVlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOUYyRTBF
ODIwNDc1Q0RDMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTlGMkUwRTkyMDQ3NUNERTAwNTEyODU1IC8qIEFjY2Vz
c2libGVTZXRWYWx1ZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVE
MEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEwOTc4RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1
cnNvckltYWdlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1
cnNvckltYWdlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEyQTVBQjgx
NkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTYyNDgsNiArMTYyNTIsOSBAQAogCQkJCUE5MUM5RkJEMUI2NTg2REUw
MEFGRkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZS5oICovLAogCQkJCUE5MUM5RkMwMUI2NTlBNjcw
MEFGRkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uY3BwICovLAogCQkJCUE5MUM5RkMxMUI2
NTlBNjcwMEFGRkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaCAqLywKKwkJCQlBOUYyRTBF
NzIwNDc1Q0RDMDA1MTI4NTUgLyogQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuY3BwICovLAorCQkJ
CUE5RjJFMEU4MjA0NzVDREMwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oICov
LAorCQkJCUE5RjJFMEU5MjA0NzVDREUwMDUxMjg1NSAvKiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVu
dC5pZGwgKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFYT2JqZWN0Q2FjaGUu
Y3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmgg
Ki8sCiAJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmggKi8sCkBAIC0yNzAyMSw2ICsyNzAyOCw3IEBACiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAw
RUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0
NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIENvb3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzRjgwMjAzNTFFOUU0N0JGMDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTlGMkUwRUIyMDQ3NUNERTAwNTEyODU1IC8qIEFjY2Vzc2libGVT
ZXRWYWx1ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNzFFOUU0N0M1MDBERUM2
MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcAkocmV2aXNpb24gMjI5
MDY2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5P
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCwzICs1OCw0IEBACiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmNwcCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VHJlZS5jcHAiCiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCIKKyNpbmNsdWRlICJBY2Nlc3NpYmxl
U2V0VmFsdWVFdmVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAkocmV2aXNpb24gMjI5MDY2
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwODMsNyArMjA4Myw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNhblNldFZhbHUKICAgICBpZiAoaXNNZXRlcigpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xpZGVy
KCkpCisgICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigpIHx8IGlzU2Ny
b2xsYmFyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAjaWYgUExBVEZPUk0oR1RLKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCShyZXZpc2lvbiAyMjkwNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlLmgi
CisjaW5jbHVkZSAiQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaCIKICNpbmNsdWRlICJET01Ub2tl
bkxpc3QuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05
OTcsOCArOTk4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcygpCiAgICAgaWYg
KGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBwcmVz
c09iamVjdCA9IGNhY2hlLT5nZXRPckNyZWF0ZShwcmVzc0VsZW1lbnQpKSB7CiAgICAgICAgICAg
ICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYWNjZXNzaWJsZWNsaWNr
RXZlbnQsIHRydWUsIHRydWUpOwotICAgICAgICAgICAgcHJlc3NPYmplY3QtPmRpc3BhdGNoQWNj
ZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAgICAgIGlmIChldmVudC0+ZGVmYXVsdFBy
ZXZlbnRlZCgpKQorICAgICAgICAgICAgaWYgKHByZXNzT2JqZWN0LT5kaXNwYXRjaEFjY2Vzc2li
aWxpdHlFdmVudChldmVudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICB9CkBAIC0yMTUzLDcgKzIxNTMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vz
c2liaWxpdHlPYmplY3Q6CiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKLXZvaWQgQWNjZXNz
aWJpbGl0eU9iamVjdDo6ZGlzcGF0Y2hBY2Nlc3NpYmlsaXR5RXZlbnQoRXZlbnQmIGV2ZW50KQor
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaEFjY2Vzc2liaWxpdHlFdmVudChFdmVu
dCYgZXZlbnQpCiB7CiAgICAgVmVjdG9yPEVsZW1lbnQqPiBldmVudFBhdGg7CiAgICAgZm9yIChh
dXRvKiBwYXJlbnRPYmplY3QgPSB0aGlzOyBwYXJlbnRPYmplY3Q7IHBhcmVudE9iamVjdCA9IHBh
cmVudE9iamVjdC0+cGFyZW50T2JqZWN0KCkpIHsKQEAgLTIxNjIsNiArMjE2MiwxNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BhdGNoQWNjZXNzCiAgICAgfQogICAgIAogICAgIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudChldmVudFBhdGgsIGV2ZW50KTsKKyAgICAKKyAg
ICAvLyByZXR1cm4gdHJ1ZSBpZiBwcmV2ZW50RGVmYXVsdCgpIHdhcyBjYWxsZWQsIHNvIHRoYXQg
d2UgZG9uJ3QgZXhlY3V0ZSB0aGUgZmFsbGJhY2sgYmVoYXZpb3IuCisgICAgcmV0dXJuIGV2ZW50
LmRlZmF1bHRQcmV2ZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNw
YXRjaEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAg
aWYgKCFjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
YXV0byBldmVudCA9IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmFjY2Vzc2libGVzZXR2YWx1ZUV2ZW50LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRpc3BhdGNoQWNj
ZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKIH0KIAogLy8gTGFja2luZyBjb25jcmV0ZSBldmlkZW5j
ZSBvZiBvcmllbnRhdGlvbiwgaG9yaXpvbnRhbCBtZWFucyB3aWR0aCA+IGhlaWdodC4gdmVydGlj
YWwgaXMgaGVpZ2h0ID4gd2lkdGg7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gMjI5MDY2KQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTg5NSw3ICs4OTUsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBnZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGJvb2wgaGFz
VGFnTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CiAgICAgCi0gICAgdm9pZCBkaXNw
YXRjaEFjY2Vzc2liaWxpdHlFdmVudChFdmVudCYpOworICAgIGJvb2wgZGlzcGF0Y2hBY2Nlc3Np
YmlsaXR5RXZlbnQoRXZlbnQmKTsKKyAgICBib29sIGRpc3BhdGNoQWNjZXNzaWJsZVNldFZhbHVl
RXZlbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvblJhbmdl
IHZpc2libGVQb3NpdGlvblJhbmdlKCkgY29uc3QgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFu
Z2UoKTsgfQogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9u
UmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdCB7IHJldHVybiBWaXNpYmxlUG9zaXRpb25SYW5n
ZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3NTcsNiArMTc1Nyw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2V0VmFsdWUKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIWlzPEVsZW1l
bnQ+KG1fcmVuZGVyZXItPm5vZGUoKSkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoZGlzcGF0
Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChzdHJpbmcpKQorICAgICAgICByZXR1cm47CisgICAg
CiAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCptX3JlbmRlcmVyLT5u
b2RlKCkpOwogICAgIFJlbmRlck9iamVjdCYgcmVuZGVyZXIgPSAqbV9yZW5kZXJlcjsKICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTgsNiArOTgsOCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OnNldFZhbHVlKGZs
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmbG9hdCBuZXdWYWx1ZSA9IHZhbHVlICogbV9z
Y3JvbGxiYXItPm1heGltdW0oKTsKKyAgICBpZiAoZGlzcGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVF
dmVudChTdHJpbmc6Om51bWJlcihuZXdWYWx1ZSkpKQorICAgICAgICByZXR1cm47CiAgICAgbV9z
Y3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KG1fc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpLCBuZXdWYWx1ZSk7CiB9CiAgICAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5jcHAJKHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNsaWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsOSBA
QCBmbG9hdCBBY2Nlc3NpYmlsaXR5U2xpZGVyOjptaW5WYWx1ZUZvclJhCiAKIHZvaWQgQWNjZXNz
aWJpbGl0eVNsaWRlcjo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKKyAgICBpZiAo
ZGlzcGF0Y2hBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCh2YWx1ZSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaW5wdXRFbGVtZW50KCk7CiAgICAgCiAg
ICAgaWYgKGlucHV0LT52YWx1ZSgpID09IHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5jcHAJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0
VmFsdWVFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmxlU2V0VmFsdWVFdmVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FjY2Vzc2libGVTZXRWYWx1ZUV2ZW50OjpB
Y2Nlc3NpYmxlU2V0VmFsdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCisgICAgOiBFdmVudCh0eXBlLCB0cnVlLCB0cnVlKQorICAgICwg
bV92YWx1ZSh2YWx1ZSkKK3sKK30KKworQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQ6On5BY2Nlc3Np
YmxlU2V0VmFsdWVFdmVudCgpID0gZGVmYXVsdDsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJsZVNldFZhbHVlRXZlbnQuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2libGVTZXRW
YWx1ZUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2libGVTZXRWYWx1ZUV2ZW50KHR5cGUs
IHZhbHVlKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+QWNjZXNzaWJsZVNldFZhbHVlRXZlbnQo
KTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOworCisgICAgLy8g
RXZlbnQuCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudEludGVyZmFjZVR5cGU7IH0KKworcHJp
dmF0ZToKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgbV92YWx1ZTsKK307CisKK30KKwpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmxlU2V0
VmFsdWVFdmVudC5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmxlU2V0VmFsdWVFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxp
dHlPYmplY3RNb2RlbCwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKK10gaW50ZXJmYWNlIEFjY2Vz
c2libGVTZXRWYWx1ZUV2ZW50IDogRXZlbnQgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdmFsdWU7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkocmV2aXNpb24gMjI5
MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDMsNiArMTQzLDcgQEAKIAogICAgIC8vIEFjY2Vzc2liaWxpdHkgZXZlbnRzLgogICAgIFtF
bmFibGVkQXRSdW50aW1lPUFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbF0gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbmFjY2Vzc2libGVjbGljazsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1BY2Nlc3Np
YmlsaXR5T2JqZWN0TW9kZWxdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hY2Nlc3NpYmxlc2V0
dmFsdWU7CiB9OwogCiBkaWN0aW9uYXJ5IFNoYWRvd1Jvb3RJbml0IHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMjI5MDY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oRE9NU3VidHJlZU1vZGlmaWVkKSBcCiAgICAgbWFjcm8oYWJvcnQp
IFwKICAgICBtYWNybyhhY2Nlc3NpYmxlY2xpY2spIFwKKyAgICBtYWNybyhhY2Nlc3NpYmxlc2V0
dmFsdWUpIFwKICAgICBtYWNybyhhY3RpdmF0ZSkgXAogICAgIG1hY3JvKGFjdGl2ZSkgXAogICAg
IG1hY3JvKGFkZHNvdXJjZWJ1ZmZlcikgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4J
KHJldmlzaW9uIDIyOTA2NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC03NiwzICs3Niw0IEBAIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQg
Y29uZGl0aW9uYWw9TUUKIE1lZGlhRW5jcnlwdGVkRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVE
X01FRElBCiBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEK
IFZSRGlzcGxheUV2ZW50CitBY2Nlc3NpYmxlU2V0VmFsdWVFdmVudApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjI5MDY2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTgtMDItMjggIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBWDogQU9NOiBEaXNwYXRjaCBhY2Nlc3NpYmxlc2V0dmFsdWUgZXZlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzAyMQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzc3NjQyNDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNz
aWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4
dDoKKwogMjAxOC0wMi0yNyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmVsYXlvdXQgZnJhbWVzIGFmdGVyIEFzeW5jRnJhbWVTY3JvbGxpbmcgb3IgRnJhbWVG
bGF0dGVuaW5nIG9wdGlvbiBpcyBjaGFuZ2VkCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJs
ZXNldHZhbHVlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACitidXR0b24KK2NvbnRlbnRlZGl0YWJsZSBu
ZXcgdmFsdWUKKworc2Nyb2xsYmFyCitUaGlzIHRlc3RzIGFjY2Vzc2libGVzZXR2YWx1ZSBldmVu
dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworVGVzdCBDb21ib2JveC4KK2Nv
bWJvYm94IGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiBjb21ib2JveCBuZXcgdmFsdWUKKworVGVz
dCBDb250ZW50ZWRpdGFibGUuCitjb250ZW50ZWRpdGFibGUgYWNjZXNzaWJsZSBzZXQgdmFsdWUg
dG86IGNvbnRlbnRlZGl0YWJsZSBuZXcgdmFsdWUKKworVGVzdCBTbGlkZXIuCitzbGlkZXIgYWNj
ZXNzaWJsZSBzZXQgdmFsdWUgdG86IDcwCisKK1Rlc3QgU2Nyb2xsYmFyLgorc2Nyb2xsZXIgYWNj
ZXNzaWJsZSBzZXQgdmFsdWUgdG86IDYwCisKK1Rlc3QgdGhhdCBhY2Nlc3NpYmxlc2V0dmFsdWUg
ZXZlbnQgY2FuIG9ubHkgYmUgZGlzcGF0Y2hlZCB0byBub2RlcyB0aGF0IHN1cHBvcnQgc2V0dGlu
ZyB0aGVpciB2YWx1ZXMuCitQQVNTIHJlY2VpdmVkQVhFdmVudCBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL0FPTS1ldmVudC1hY2Nlc3NpYmxlc2V0dmFsdWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNj
ZXNzaWJsZXNldHZhbHVlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvQU9NLWV2ZW50LWFjY2Vzc2libGVzZXR2YWx1ZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgaWQ9
ImJvZHkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKworPGJ1dHRvbiBpZD0iYnV0dG9uIj5idXR0b248
L2J1dHRvbj4KKzxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBpZD0iY29udGVudGVkaXRhYmxl
Ij5jdXJyZW50PC9kaXY+Cis8ZGl2IGlkPSJjb21ib2JveCIgcm9sZT0iY29tYm9ib3giIGFyaWEt
ZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJUZXN0Ij48L2Rpdj4KKzxpbnB1dCBpZD0ic2xp
ZGVyIiB0eXBlPSJyYW5nZSI+Cis8ZGl2IGlkPSJzY3JvbGxlciIgYXJpYS12YWx1ZW5vdz0iNTUi
IHJvbGU9InNjcm9sbGJhciI+c2Nyb2xsYmFyPC9kaXY+CisKKzwvZGl2PgorCis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgYWNjZXNzaWJsZXNldHZhbHVlIGV2ZW50LiIpOwor
CisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgIAorICAgICAgIHZhciBub2RlOworICAgICAgIHZhciBh
eE5vZGU7CisgICAgICAgdmFyIHJlY2VpdmVkQVhFdmVudCA9IGZhbHNlOworICAgICAgIAorICAg
ICAgIHRlc3RDb21ib2JveCgpOworICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RDYW5TZXRW
YWx1ZSgpIHsKKyAgICAgICAgICAgZGVidWcoIlxuVGVzdCB0aGF0IGFjY2Vzc2libGVzZXR2YWx1
ZSBldmVudCBjYW4gb25seSBiZSBkaXNwYXRjaGVkIHRvIG5vZGVzIHRoYXQgc3VwcG9ydCBzZXR0
aW5nIHRoZWlyIHZhbHVlcy4iKTsKKyAgICAgICAgICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJidXR0b24iKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJidXR0b24iKTsKKyAgICAgICAgICAgbm9kZS5v
bmFjY2Vzc2libGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgIHJl
Y2VpdmVkQVhFdmVudCA9IHRydWU7CisgICAgICAgICAgICAgIGRlYnVnKCJUaGlzIHNob3VsZG4n
dCBiZSByZWFjaGVkLiIpOworICAgICAgICAgICB9OworICAgICAgICAgICBheE5vZGUuc2V0VmFs
dWUoInRlc3QgdmFsdWUiKTsKKyAgICAgICAgICAgCisgICAgICAgICAgIHNldFRpbWVvdXQoCisg
ICAgICAgICAgICAgICBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoInJlY2VpdmVkQVhFdmVudCIpOworICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICAgICAgICAgfSwgCisgICAgICAgICAgICAgICA1MCk7CisgICAgICAgfQorICAg
ICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RDb21ib2JveCgpIHsKKyAgICAgICAgICAgZGVidWco
IlxuVGVzdCBDb21ib2JveC4iKTsgCisgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29tYm9ib3giKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjb21ib2JveCIpOworICAgICAgICAgICBu
b2RlLm9uYWNjZXNzaWJsZXNldHZhbHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAg
ICAgZGVidWcoImNvbWJvYm94IGFjY2Vzc2libGUgc2V0IHZhbHVlIHRvOiAiICsgZXZlbnQudmFs
dWUpOworICAgICAgICAgICAgICB0ZXN0Q29udGVudGVkaXRhYmxlKCk7CisgICAgICAgICAgIH07
CisgICAgICAgICAgIGF4Tm9kZS5zZXRWYWx1ZSgiY29tYm9ib3ggbmV3IHZhbHVlIik7CisgICAg
ICAgfQorICAgICAgIAorICAgICAgIGZ1bmN0aW9uIHRlc3RDb250ZW50ZWRpdGFibGUoKSB7Cisg
ICAgICAgICAgIGRlYnVnKCJcblRlc3QgQ29udGVudGVkaXRhYmxlLiIpOyAKKyAgICAgICAgICAg
bm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUiKTsKKyAgICAg
ICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCJjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2libGVzZXR2
YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgIGRlYnVnKCJjb250ZW50ZWRp
dGFibGUgYWNjZXNzaWJsZSBzZXQgdmFsdWUgdG86ICIgKyBldmVudC52YWx1ZSk7CisgICAgICAg
ICAgICAgIHRlc3RTbGlkZXIoKTsKKyAgICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNl
dFZhbHVlKCJjb250ZW50ZWRpdGFibGUgbmV3IHZhbHVlIik7CisgICAgICAgfQorICAgICAgIAor
ICAgICAgIGZ1bmN0aW9uIHRlc3RTbGlkZXIoKSB7CisgICAgICAgICAgIGRlYnVnKCJcblRlc3Qg
U2xpZGVyLiIpOyAKKyAgICAgICAgICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
bGlkZXIiKTsKKyAgICAgICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJzbGlkZXIiKTsKKyAgICAgICAgICAgbm9kZS5vbmFjY2Vzc2li
bGVzZXR2YWx1ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgIGRlYnVnKCJzbGlk
ZXIgYWNjZXNzaWJsZSBzZXQgdmFsdWUgdG86ICIgKyBldmVudC52YWx1ZSk7CisgICAgICAgICAg
ICAgIHRlc3RTY3JvbGxiYXIoKTsKKyAgICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNl
dFZhbHVlKCI3MCIpOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICBmdW5jdGlvbiB0ZXN0U2Ny
b2xsYmFyKCkgeworICAgICAgICAgICBkZWJ1ZygiXG5UZXN0IFNjcm9sbGJhci4iKTsgCisgICAg
ICAgICAgIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIiKTsKKyAgICAg
ICAgICAgYXhOb2RlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCJzY3JvbGxlciIpOworICAgICAgICAgICBub2RlLm9uYWNjZXNzaWJsZXNldHZhbHVlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgZGVidWcoInNjcm9sbGVyIGFjY2Vzc2li
bGUgc2V0IHZhbHVlIHRvOiAiICsgZXZlbnQudmFsdWUpOworICAgICAgICAgICAgICB0ZXN0Q2Fu
U2V0VmFsdWUoKTsKKyAgICAgICAgICAgfTsKKyAgICAgICAgICAgYXhOb2RlLnNldFZhbHVlKCI2
MCIpOworICAgICAgIH0KKworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxk
IG5vdCBsb2FkIGFjY2Vzc2liaWxpdHkgY29udHJvbGxlciIpOworICAgIH0KKworPC9zY3JpcHQ+
CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9kb20tc3RhdGlj
LXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL2RvbS9kb20tc3RhdGljLXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMjkwNjYpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZG9tLXN0
YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTM1LDYgKzEzNSw3IEBAIFBBU1MgYVsiY2xpZW50SGVpZ2h0Il0gaXMgMAogUEFTUyBh
WyJpbm5lckhUTUwiXSBpcyBuZXJnZXQKIFBBU1MgYVsib3V0ZXJIVE1MIl0gaXMgPGEgaWQ9ImZv
byIgaHJlZj0iYmFyIj5uZXJnZXQ8L2E+CiBQQVNTIGFbIm9uYWNjZXNzaWJsZWNsaWNrIl0gaXMg
bnVsbAorUEFTUyBhWyJvbmFjY2Vzc2libGVzZXR2YWx1ZSJdIGlzIG51bGwKIFBBU1MgYVsib25j
b3B5Il0gaXMgbnVsbAogUEFTUyBhWyJvbmN1dCJdIGlzIG51bGwKIFBBU1MgYVsib25wYXN0ZSJd
IGlzIG51bGwK
</data>

          </attachment>
      

    </bug>

</bugzilla>