<?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>132622</bug_id>
          
          <creation_ts>2014-05-06 13:50:52 -0700</creation_ts>
          <short_desc>AX: AXSelectTextWithCriteria should support capitalize/lowercase/uppercase</short_desc>
          <delta_ts>2014-05-07 09:18:21 -0700</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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007071</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-05-06 13:50:52 -0700</bug_when>
    <thetext>The AXSelectTextWithCriteria mechanism needs to support capitalize, lowercase and uppercase to be complete

&lt;rdar://problem/16462451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007072</commentid>
    <comment_count>1</comment_count>
      <attachid>230929</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-05-06 13:52:40 -0700</bug_when>
    <thetext>Created attachment 230929
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007073</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-06 13:55:34 -0700</bug_when>
    <thetext>Attachment 230929 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderText.h:245:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007074</commentid>
    <comment_count>3</comment_count>
      <attachid>230930</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-05-06 13:56:36 -0700</bug_when>
    <thetext>Created attachment 230930
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007089</commentid>
    <comment_count>4</comment_count>
      <attachid>230930</attachid>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-05-06 14:55:51 -0700</bug_when>
    <thetext>Comment on attachment 230930
patch

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

Looks good.

&gt; Tools/DumpRenderTree/AccessibilityUIElement.cpp:437
&gt; +        return JSValueMakeBoolean(context, false);

Did this sneak in accidentally? I might be missing something, but I don&apos;t see an equality test that would need this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007090</commentid>
    <comment_count>5</comment_count>
      <attachid>230935</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-05-06 14:58:30 -0700</bug_when>
    <thetext>Created attachment 230935
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007337</commentid>
    <comment_count>6</comment_count>
      <attachid>230935</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-07 09:18:16 -0700</bug_when>
    <thetext>Comment on attachment 230935
patch

Clearing flags on attachment: 230935

Committed r168427: &lt;http://trac.webkit.org/changeset/168427&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007338</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-07 09:18:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230929</attachid>
            <date>2014-05-06 13:52:40 -0700</date>
            <delta_ts>2014-05-06 13:56:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>26722</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA1LTA2ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFYU2VsZWN0VGV4
dFdpdGhDcml0ZXJpYSBzaG91bGQgc3VwcG9ydCBjYXBpdGFsaXplL2xvd2VyY2FzZS91cHBlcmNh
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjYy
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBz
ZWxlY3QgdGV4dCB3aXRoIGNyaXRlcmlhIG1lY2hhbmlzbSB1c2VkIHRocm91Z2ggYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBzdXBwb3J0CisgICAgICAgIGEgZmV3IG1vcmUgcGFyYW1ldGVycyB0byBi
ZSBjb21wbGV0ZSAoaW5jbHVkaW5nIGNhcGl0YWxpemUsIGxvd2VyY2FzZSBhbmQgdXBwZXJjYXNl
KS4KKworICAgICAgICBVcGRhdGVkOiBhY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0Lmh0bWwKKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RUZXh0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKGFj
Y2Vzc2liaWxpdHlTZWxlY3RUZXh0Q3JpdGVyaWFGb3JDcml0ZXJpYVBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1ha2VDYXBpdGFsaXplZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQu
aDoKKwogMjAxNC0wNS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTWFjXSBtYWtlIG1ldGFkYXRhIGN1ZSBhdHRyaWJ1dGVzIGNvbnNpc3RlbnQK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAkocmV2aXNpb24gMTY4MzUyKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC02MzAsMTQgKzYzMSwzMyBAQAog
ICAgIC8vIERldGVybWluZSB3aGljaCBjYW5kaWRhdGUgaXMgY2xvc2VzdCB0byB0aGUgc2VsZWN0
aW9uIGFuZCBwZXJmb3JtIHRoZSBhY3Rpdml0eS4KICAgICBpZiAoUmVmUHRyPFJhbmdlPiBjbG9z
ZXN0U3RyaW5nUmFuZ2UgPSByYW5nZUNsb3Nlc3RUb1JhbmdlKHNlbGVjdGVkU3RyaW5nUmFuZ2Uu
Z2V0KCksIGNsb3Nlc3RBZnRlclN0cmluZ1JhbmdlLCBjbG9zZXN0QmVmb3JlU3RyaW5nUmFuZ2Up
KSB7CiAgICAgICAgIFN0cmluZyBjbG9zZXN0U3RyaW5nID0gY2xvc2VzdFN0cmluZ1JhbmdlLT50
ZXh0KCk7CisgICAgICAgIGJvb2wgcmVwbGFjZVNlbGVjdGlvbiA9IGZhbHNlOwogICAgICAgICBp
ZiAoZnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UoY2xvc2VzdFN0cmluZ1Jhbmdl
LmdldCgpLCBET1dOU1RSRUFNLCB0cnVlKSkgewogICAgICAgICAgICAgc3dpdGNoIChhY3Rpdml0
eSkgeworICAgICAgICAgICAgY2FzZSBGaW5kQW5kQ2FwaXRhbGl6ZTogeworICAgICAgICAgICAg
ICAgIHJlcGxhY2VtZW50U3RyaW5nID0gY2xvc2VzdFN0cmluZzsKKyAgICAgICAgICAgICAgICBt
YWtlQ2FwaXRhbGl6ZWQoJnJlcGxhY2VtZW50U3RyaW5nLCAwKTsKKyAgICAgICAgICAgICAgICBy
ZXBsYWNlU2VsZWN0aW9uID0gWUVTOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgY2FzZSBGaW5kQW5kVXBwZXJjYXNlOgorICAgICAgICAgICAgICAg
IHJlcGxhY2VtZW50U3RyaW5nID0gY2xvc2VzdFN0cmluZy51cHBlcigpOworICAgICAgICAgICAg
ICAgIHJlcGxhY2VTZWxlY3Rpb24gPSBZRVM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEZpbmRBbmRMb3dlcmNhc2U6CisgICAgICAgICAgICAgICAgcmVwbGFjZW1l
bnRTdHJpbmcgPSBjbG9zZXN0U3RyaW5nLmxvd2VyKCk7CisgICAgICAgICAgICAgICAgcmVwbGFj
ZVNlbGVjdGlvbiA9IFlFUzsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgRmluZEFuZFJlcGxhY2VBY3Rpdml0eToKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9y
KCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCB0cnVlLCB0cnVl
KTsKLSAgICAgICAgICAgICAgICBGQUxMVEhST1VHSDsKKyAgICAgICAgICAgICAgICByZXBsYWNl
U2VsZWN0aW9uID0gWUVTOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaW5kQW5kU2VsZWN0QWN0aXZpdHk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RT
dHJpbmc7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChyZXBsYWNlU2VsZWN0aW9uKQorICAgICAgICAgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZW1lbnRTdHJpbmcs
IHRydWUsIHRydWUpOworICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RTdHJpbmc7CiAgICAgICAg
IH0KICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gMTY4MzUyKQorKysgU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM5MSw3ICszOTEsMTAgQEAKIAogZW51bSBBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFjdGl2
aXR5IHsKICAgICBGaW5kQW5kUmVwbGFjZUFjdGl2aXR5LAotICAgIEZpbmRBbmRTZWxlY3RBY3Rp
dml0eQorICAgIEZpbmRBbmRTZWxlY3RBY3Rpdml0eSwKKyAgICBGaW5kQW5kQ2FwaXRhbGl6ZSwK
KyAgICBGaW5kQW5kTG93ZXJjYXNlLAorICAgIEZpbmRBbmRVcHBlcmNhc2UKIH07CiAKIGVudW0g
QWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBbWJpZ3VpdHlSZXNvbHV0aW9uIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCShyZXZpc2lvbiAxNjgzNTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA0LDYgKzQwNCwxOCBAQAogI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kU2VsZWN0IEAiQVhTZWxlY3RU
ZXh0QWN0aXZpdHlGaW5kQW5kU2VsZWN0IgogI2VuZGlmCiAKKyNpZm5kZWYga0FYU2VsZWN0VGV4
dEFjdGl2aXR5RmluZEFuZENhcGl0YWxpemUKKyNkZWZpbmUga0FYU2VsZWN0VGV4dEFjdGl2aXR5
RmluZEFuZENhcGl0YWxpemUgQCJBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRDYXBpdGFsaXpl
IgorI2VuZGlmCisKKyNpZm5kZWYga0FYU2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZExvd2VyY2Fz
ZQorI2RlZmluZSBrQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNlIEAiQVhTZWxl
Y3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNlIgorI2VuZGlmCisKKyNpZm5kZWYga0FYU2Vs
ZWN0VGV4dEFjdGl2aXR5RmluZEFuZFVwcGVyY2FzZQorI2RlZmluZSBrQVhTZWxlY3RUZXh0QWN0
aXZpdHlGaW5kQW5kVXBwZXJjYXNlIEAiQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kVXBwZXJj
YXNlIgorI2VuZGlmCisKICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFtYmlndWl0
eVJlc29sdXRpb24KICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFtYmlndWl0eVJl
c29sdXRpb24gQCJBWFNlbGVjdFRleHRBbWJpZ3VpdHlSZXNvbHV0aW9uIgogI2VuZGlmCkBAIC02
NjIsNiArNjc0LDEyIEBACiAgICAgaWYgKFthY3Rpdml0eVBhcmFtZXRlciBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKSB7CiAgICAgICAgIGlmIChbYWN0aXZpdHlQYXJhbWV0ZXIgaXNF
cXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRSZXBs
YWNlXSkKICAgICAgICAgICAgIGFjdGl2aXR5ID0gRmluZEFuZFJlcGxhY2VBY3Rpdml0eTsKKyAg
ICAgICAgZWxzZSBpZiAoW2FjdGl2aXR5UGFyYW1ldGVyIGlzRXF1YWxUb1N0cmluZzprQVhTZWxl
Y3RUZXh0QWN0aXZpdHlGaW5kQW5kQ2FwaXRhbGl6ZV0pCisgICAgICAgICAgICBhY3Rpdml0eSA9
IEZpbmRBbmRDYXBpdGFsaXplOworICAgICAgICBlbHNlIGlmIChbYWN0aXZpdHlQYXJhbWV0ZXIg
aXNFcXVhbFRvU3RyaW5nOmtBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRMb3dlcmNhc2VdKQor
ICAgICAgICAgICAgYWN0aXZpdHkgPSBGaW5kQW5kTG93ZXJjYXNlOworICAgICAgICBlbHNlIGlm
IChbYWN0aXZpdHlQYXJhbWV0ZXIgaXNFcXVhbFRvU3RyaW5nOmtBWFNlbGVjdFRleHRBY3Rpdml0
eUZpbmRBbmRVcHBlcmNhc2VdKQorICAgICAgICAgICAgYWN0aXZpdHkgPSBGaW5kQW5kVXBwZXJj
YXNlOwogICAgIH0KICAgICAKICAgICBBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFtYmlndWl0eVJl
c29sdXRpb24gYW1iaWd1aXR5UmVzb2x1dGlvbiA9IENsb3Nlc3RUb1NlbGVjdGlvbkFtYmlndWl0
eVJlc29sdXRpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CShyZXZpc2lvbiAxNjgzNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQAogICAgIHJldHVybiBtYXA7
CiB9CiAKLXN0YXRpYyB2b2lkIG1ha2VDYXBpdGFsaXplZChTdHJpbmcqIHN0cmluZywgVUNoYXIg
cHJldmlvdXMpCit2b2lkIG1ha2VDYXBpdGFsaXplZChTdHJpbmcqIHN0cmluZywgVUNoYXIgcHJl
dmlvdXMpCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHVfc3Ry
VG9UaXRsZSBpbnN0ZWFkIG9mIHVfdG90aXRsZSBhbmQgdG8gY29uc2lkZXIgbG9jYWxlLgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHJldmlzaW9uIDE2ODM1MikK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI0Miw3ICsyNDIsOCBAQAogfQogCiB2b2lkIGFwcGx5VGV4dFRyYW5zZm9ybShjb25zdCBS
ZW5kZXJTdHlsZSYsIFN0cmluZyYsIFVDaGFyKTsKLQordm9pZCBtYWtlQ2FwaXRhbGl6ZWQoU3Ry
aW5nKiBzdHJpbmcsIFVDaGFyIHByZXZpb3VzKTsKKyAgICAKIGlubGluZSBSZW5kZXJUZXh0KiBU
ZXh0OjpyZW5kZXJlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRvUmVuZGVyVGV4dChOb2RlOjpy
ZW5kZXJlcigpKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM3NykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA1LTA2ICBDaHJp
cyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFYU2VsZWN0
VGV4dFdpdGhDcml0ZXJpYSBzaG91bGQgc3VwcG9ydCBjYXBpdGFsaXplL2xvd2VyY2FzZS91cHBl
cmNhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MjYyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LXRleHQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0Lmh0bWw6CisKIDIw
MTQtMDUtMDYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gbWFrZSBtZXRhZGF0YSBjdWUgYXR0cmlidXRlcyBjb25zaXN0ZW50CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0LXRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjgzNTEpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi1UaGXCoHNsb3fCoGJyb3duwqBjYXTCoGp1
bXBzIG92ZXIgdGhlIGxhenkgZG9nLgorVGhlwqBzbG93wqBCUk9XTsKgY2F0wqBqdW1wcyBvdmVy
IHRoZSBsYXp5IGRvZy4KIAogVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYW5kIHJl
cGxhY2UgdGV4dCB3aXRoIHJlc3BlY3QgdG8gc2VsZWN0aW9uLgogCkBAIC0yMSw2ICsyMSwxMiBA
QAogUEFTUyBzZWxlY3Rpb24gaXMgJ3Nsb3cnCiBQQVNTIHJlc3VsdCBpcyAnZm94JwogUEFTUyBz
ZWxlY3Rpb24gaXMgJ2NhdCcKK1BBU1MgcmVzdWx0IGlzICdicm93bicKK1BBU1Mgc2VsZWN0aW9u
IGlzICdCcm93bicKK1BBU1MgcmVzdWx0IGlzICdCcm93bicKK1BBU1Mgc2VsZWN0aW9uIGlzICdi
cm93bicKK1BBU1MgcmVzdWx0IGlzICdicm93bicKK1BBU1Mgc2VsZWN0aW9uIGlzICdCUk9XTicK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LXRleHQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3QtdGV4dC5odG1sCShyZXZpc2lvbiAxNjgzNTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2
ICs4OCwyOCBAQAogICAgICAgICBzaG91bGRCZSgicmVzdWx0IiwgIidmb3gnIik7CiAgICAgICAg
IHNlbGVjdGlvbiA9IHNlbGVjdGVkVGV4dCgpOwogICAgICAgICBzaG91bGRCZSgic2VsZWN0aW9u
IiwgIidjYXQnIik7CisKKyAgICAgICAgLy8gU2VsZWN0IGJyb3duIGFuZCBjYXBpdGFsaXplIGl0
LgorICAgICAgICBzZWxlY3RFbGVtZW50VGV4dCh0YXJnZXQpOworICAgICAgICByZXN1bHQgPSB0
ZXh0LnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoIkFYU2VsZWN0VGV4dEFtYmlndWl0eVJlc29sdXRp
b25DbG9zZXN0VG9TZWxlY3Rpb24iLCAiYnJvd24iLCBudWxsLCAiQVhTZWxlY3RUZXh0QWN0aXZp
dHlGaW5kQW5kQ2FwaXRhbGl6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0IiwgIidicm93
biciKTsKKyAgICAgICAgc2VsZWN0aW9uID0gc2VsZWN0ZWRUZXh0KCk7CisgICAgICAgIHNob3Vs
ZEJlKCJzZWxlY3Rpb24iLCAiJ0Jyb3duJyIpOworCisgICAgICAgIC8vIFNlbGVjdCBCcm93biBh
bmQgbG93ZXJjYXNlIGl0LgorICAgICAgICBzZWxlY3RFbGVtZW50VGV4dCh0YXJnZXQpOworICAg
ICAgICByZXN1bHQgPSB0ZXh0LnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoIkFYU2VsZWN0VGV4dEFt
YmlndWl0eVJlc29sdXRpb25DbG9zZXN0VG9TZWxlY3Rpb24iLCAiQnJvd24iLCBudWxsLCAiQVhT
ZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNlIik7CisgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHQiLCAiJ0Jyb3duJyIpOworICAgICAgICBzZWxlY3Rpb24gPSBzZWxlY3RlZFRleHQoKTsK
KyAgICAgICAgc2hvdWxkQmUoInNlbGVjdGlvbiIsICInYnJvd24nIik7CisKKyAgICAgICAgLy8g
U2VsZWN0IGJyb3duIGFuZCB1cHBlcmNhc2UgaXQuCisgICAgICAgIHNlbGVjdEVsZW1lbnRUZXh0
KHRhcmdldCk7CisgICAgICAgIHJlc3VsdCA9IHRleHQuc2VsZWN0VGV4dFdpdGhDcml0ZXJpYSgi
QVhTZWxlY3RUZXh0QW1iaWd1aXR5UmVzb2x1dGlvbkNsb3Nlc3RUb1NlbGVjdGlvbiIsICJicm93
biIsIG51bGwsICJBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRVcHBlcmNhc2UiKTsKKyAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdCIsICInYnJvd24nIik7CisgICAgICAgIHNlbGVjdGlvbiA9IHNl
bGVjdGVkVGV4dCgpOworICAgICAgICBzaG91bGRCZSgic2VsZWN0aW9uIiwgIidCUk9XTiciKTsK
KwogICAgIH0KIDwvc2NyaXB0PgogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjgzNzcpCisrKyBUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxNC0wNS0wNiAgQ2hyaXMgRmxlaXph
Y2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBBWFNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEgc2hvdWxkIHN1cHBvcnQgY2FwaXRhbGl6ZS9sb3dlcmNhc2UvdXBwZXJjYXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI2MjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoc2VsZWN0VGV4dFdp
dGhDcml0ZXJpYUNhbGxiYWNrKToKKyAgICAgICAgKGlzRXF1YWxDYWxsYmFjayk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcDoKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06
CisgICAgICAgIChzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2lu
LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3Jp
dGVyaWEpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVy
aWEpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OnNlbGVjdFRleHRQYXJhbWV0
ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKToKKwogMjAxNC0wNS0wNiAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCBpT1MgYnVpbGQu
CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcAkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MCw3ICsyNjAsNyBAQAogCiBz
dGF0aWMgSlNWYWx1ZVJlZiBzZWxlY3RUZXh0V2l0aENyaXRlcmlhQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMiB8fCBhcmd1
bWVudENvdW50ID4gMykKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDIgfHwgYXJndW1lbnRDb3Vu
dCA+IDQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAg
ICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gYW1iaWd1aXR5UmVzb2x1dGlvbihBZG9w
dCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikp
OwpAQCAtMjY4LDggKzI2OCwxMSBAQAogICAgIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5n
ID0gbnVsbHB0cjsKICAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAzKQogICAgICAgICByZXBsYWNl
bWVudFN0cmluZyA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBl
eGNlcHRpb24pOworICAgIEpTU3RyaW5nUmVmIGFjdGl2aXR5U3RyaW5nID0gbnVsbHB0cjsKKyAg
ICBpZiAoYXJndW1lbnRDb3VudCA9PSA0KQorICAgICAgICBhY3Rpdml0eVN0cmluZyA9IEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzNdLCBleGNlcHRpb24pOwogICAgIAot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiByZXN1bHQoQWRvcHQsIHRvQVhFbGVtZW50KHRo
aXNPYmplY3QpLT5zZWxlY3RUZXh0V2l0aENyaXRlcmlhKGNvbnRleHQsIGFtYmlndWl0eVJlc29s
dXRpb24uZ2V0KCksIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50U3RyaW5nKSk7CisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHJlc3VsdChBZG9wdCwgdG9BWEVsZW1lbnQodGhpc09iamVj
dCktPnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoY29udGV4dCwgYW1iaWd1aXR5UmVzb2x1dGlvbi5n
ZXQoKSwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcsIGFjdGl2aXR5U3RyaW5nKSk7
CiAgICAgaWYgKHJlcGxhY2VtZW50U3RyaW5nKQogICAgICAgICBKU1N0cmluZ1JlbGVhc2UocmVw
bGFjZW1lbnRTdHJpbmcpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBy
ZXN1bHQuZ2V0KCkpOwpAQCAtNDMwLDYgKzQzMyw5IEBACiAgICAgZWxzZQogICAgICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGZhbHNlKTsKICAgICAKKyAgICBpZiAoIW90
aGVyRWxlbWVudCkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBm
YWxzZSk7CisgICAgCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FY
RWxlbWVudCh0aGlzT2JqZWN0KS0+aXNFcXVhbCh0b0FYRWxlbWVudChvdGhlckVsZW1lbnQpKSk7
CiB9CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgJKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDcgKzIxMiw3IEBACiAgICAg
Ym9vbCBhdHRyaWJ1dGVkU3RyaW5nUmFuZ2VJc01pc3NwZWxsZWQodW5zaWduZWQgbG9jYXRpb24s
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdW5zaWduZWQgdWlFbGVtZW50Q291bnRGb3JTZWFyY2hQ
cmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBzdGFydEVsZW1l
bnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJpbmdS
ZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5kYW50
c09ubHkpOwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgdWlFbGVtZW50Rm9yU2VhcmNoUHJl
ZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogc3RhcnRFbGVtZW50
LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVm
IHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHksIGJvb2wgaW1tZWRpYXRlRGVzY2VuZGFudHNP
bmx5KTsKLSAgICBKU1N0cmluZ1JlZiBzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJl
ZiwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJp
bmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZyk7CisgICAgSlNTdHJpbmdSZWYgc2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmIGFtYmlndWl0eVJl
c29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFjZW1l
bnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KTsKICNpZiBQTEFURk9STShJT1MpCiAgICAg
dm9pZCBlbGVtZW50c0ZvclJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgs
IFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpOwogICAgIEpTU3RyaW5n
UmVmIHN0cmluZ0ZvclNlbGVjdGlvbigpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRr
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAkocmV2aXNpb24gMTY4
MzUxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRB
dGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzA1LDcgKzEzMDUsNyBAQAogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi1KU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RU
ZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3Vp
dHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxh
Y2VtZW50U3RyaW5nKQorSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1
aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBs
YWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgLy8gRklYTUU6IGlt
cGxlbWVudAogICAgIHJldHVybiBudWxscHRyOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0JKHJldmlzaW9uIDE2
ODM1MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MjgsNyArODI4LDcgQEAKICAgICByZXR1cm4gMDsK
IH0KIAotSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhD
cml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1
dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0
cmluZykKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmlndWl0eVJlc29s
dXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRT
dHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQu
CiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQkocmV2aXNpb24gMTY4MzUxKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI0Nyw3ICsyNDcsNyBAQAogICAgIHJldHVybiBwYXJhbWV0ZXJp
emVkQXR0cmlidXRlOwogfQogCi1zdGF0aWMgTlNEaWN0aW9uYXJ5ICpzZWxlY3RUZXh0UGFyYW1l
dGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmlu
Z1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3Ry
aW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKQorc3RhdGljIE5TRGljdGlvbmFyeSAqc2VsZWN0VGV4
dFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdz
LCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7
CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IFtOU011
dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwogICAgIApAQCAtMjg1LDYgKzI4NSw5IEBACiAg
ICAgfSBlbHNlCiAgICAgICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpAIkFY
U2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZFNlbGVjdCIgZm9yS2V5OkAiQVhTZWxlY3RUZXh0QWN0
aXZpdHkiXTsKICAgICAKKyAgICBpZiAoYWN0aXZpdHkpCisgICAgICAgIFtwYXJhbWV0ZXJpemVk
QXR0cmlidXRlIHNldE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmFjdGl2
aXR5XSBmb3JLZXk6QCJBWFNlbGVjdFRleHRBY3Rpdml0eSJdOworICAgIAogICAgIHJldHVybiBw
YXJhbWV0ZXJpemVkQXR0cmlidXRlOwogfQogCkBAIC0xMTExLDEwICsxMTE0LDEwIEBACiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVm
IGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdS
ZWYgcmVwbGFjZW1lbnRTdHJpbmcpCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1Jl
ZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5n
UmVmIHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGUgPSBzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKGNvbnRl
eHQsIGFtYmlndWl0eVJlc29sdXRpb24sIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50U3RyaW5n
KTsKKyAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWxlY3RUZXh0
UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKGNvbnRleHQsIGFtYmlndWl0eVJlc29s
dXRpb24sIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50U3RyaW5nLCBhY3Rpdml0eSk7CiAgICAg
aWQgcmVzdWx0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFNl
bGVjdFRleHRXaXRoQ3JpdGVyaWEiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJpemVkQXR0cmlidXRl
XTsKICAgICBpZiAoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQogICAg
ICAgICByZXR1cm4gW3Jlc3VsdCBjcmVhdGVKU1N0cmluZ1JlZl07CkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3Bw
CShyZXZpc2lvbiAxNjgzNTEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw3ICs2MDgsNyBAQAog
ICAgIHJldHVybiAwOwogfQogCi1KU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBh
bWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVm
IHJlcGxhY2VtZW50U3RyaW5nKQorSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYg
YW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1Jl
ZiByZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgcmV0dXJu
IDA7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2
ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw3ICsxNzgsNyBAQAogYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nUmFuZ2VJc01pc3NwZWxs
ZWQodW5zaWduZWQsIHVuc2lnbmVkKSB7IHJldHVybiBmYWxzZTsgfQogdW5zaWduZWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250
ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJp
bmdSZWYsIGJvb2wsIGJvb2wpIHsgcmV0dXJuIDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJl
ZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCosIGJvb2wsIEpTVmFs
dWVSZWYsIEpTU3RyaW5nUmVmLCBib29sLCBib29sKSB7IHJldHVybiAwOyB9Ci1KU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0
ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZikg
eyByZXR1cm4gbnVsbHB0cjsgfQorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0cmlu
Z1JlZiwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKSB7IHJldHVybiBudWxs
cHRyOyB9CiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3codW5zaWduZWQsIHVuc2lnbmVkKSB7IHJldHVy
biAwOyB9CiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZl
cnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgJKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDgsNyArMjA4LDcgQEAKICAgICBib29sIGF0dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlz
c3BlbGxlZCh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB1bnNpZ25l
ZCB1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIEpTVmFs
dWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBib29sIHZpc2libGVPbmx5
LCBib29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7CiAgICAgUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiB1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVm
LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBzdGFydEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25O
ZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2
aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwotICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBK
U1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZyk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiBhbWJp
Z3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJl
cGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSk7CiAKICAgICAvLyBUZXh0LXNw
ZWNpZmljCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNoYXJhY3RlckF0T2Zmc2V0KGlu
dCBvZmZzZXQpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaWRsCShyZXZpc2lvbiAxNjgzNTEpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAKICAgICBib29sZWFuIGF0dHJpYnV0ZWRTdHJpbmdS
YW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCBsb25nIGxvY2F0aW9uLCB1bnNpZ25lZCBsb25nIGxl
bmd0aCk7CiAgICAgW1Bhc3NDb250ZXh0XSB1bnNpZ25lZCBpbnQgdWlFbGVtZW50Q291bnRGb3JT
ZWFyY2hQcmVkaWNhdGUoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzdGFydEVsZW1lbnQsIGJvb2xl
YW4gaXNEaXJlY3Rpb25OZXh0LCBvYmplY3Qgc2VhcmNoS2V5LCBET01TdHJpbmcgc2VhcmNoVGV4
dCwgYm9vbGVhbiB2aXNpYmxlT25seSwgYm9vbGVhbiBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkp
OwogICAgIFtQYXNzQ29udGV4dF0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB1aUVsZW1lbnRGb3JT
ZWFyY2hQcmVkaWNhdGUoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzdGFydEVsZW1lbnQsIGJvb2xl
YW4gaXNEaXJlY3Rpb25OZXh0LCBvYmplY3Qgc2VhcmNoS2V5LCBET01TdHJpbmcgc2VhcmNoVGV4
dCwgYm9vbGVhbiB2aXNpYmxlT25seSwgYm9vbGVhbiBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkp
OwotICAgIFtQYXNzQ29udGV4dF0gRE9NU3RyaW5nIHNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoRE9N
U3RyaW5nIGFtYmlndWl0eVJlc29sdXRpb24sIG9iamVjdCBzZWFyY2hTdHJpbmdzLCBET01TdHJp
bmcgcmVwbGFjZW1lbnRTdHJpbmcpOworICAgIFtQYXNzQ29udGV4dF0gRE9NU3RyaW5nIHNlbGVj
dFRleHRXaXRoQ3JpdGVyaWEoRE9NU3RyaW5nIGFtYmlndWl0eVJlc29sdXRpb24sIG9iamVjdCBz
ZWFyY2hTdHJpbmdzLCBET01TdHJpbmcgcmVwbGFjZW1lbnRTdHJpbmcsIERPTVN0cmluZyBhY3Rp
dml0eSk7CiAgICAgdm9pZCBzZXRTZWxlY3RlZFRleHRSYW5nZSh1bnNpZ25lZCBsb25nIGxvY2F0
aW9uLCB1bnNpZ25lZCBsb25nIGxlbmd0aCk7CiAKICAgICAvLyBTY3JvbGwgYXJlYSBhdHRyaWJ1
dGVzLgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAJ
KHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDYwLDcgKzE0NjAsNyBAQAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1KU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJp
YShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwg
SlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZykK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RU
ZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3Vp
dHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxh
Y2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICAvLyBGSVhNRTogaW1w
bGVtZW50CiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRJT1MubW0JKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ3OCw3ICs0NzgsNyBAQAogICAgIHJldHVybiBudWxscHRyOwog
fQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmIGFtYmlndWl0eVJl
c29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFjZW1l
bnRTdHJpbmcpCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmIGFtYmln
dWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVw
bGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIHJldHVybiBudWxs
cHRyOwogfQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
CShyZXZpc2lvbiAxNjgzNTEpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzMsNyArMjczLDcgQEAKICAgICByZXR1cm4gcGFyYW1ldGVyaXplZEF0dHJpYnV0ZTsKIH0KIAot
c3RhdGljIE5TRGljdGlvbmFyeSAqc2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JD
cml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1
dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0
cmluZykKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKnNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmli
dXRlRm9yQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmlndWl0
eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFj
ZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIE5TTXV0YWJsZURpY3Rp
b25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0
aW9uYXJ5XTsKICAgICAKQEAgLTMxMSw2ICszMTEsOSBAQAogICAgIH0gZWxzZQogICAgICAgICBb
cGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6QCJBWFNlbGVjdFRleHRBY3Rpdml0eUZp
bmRBbmRTZWxlY3QiIGZvcktleTpAIkFYU2VsZWN0VGV4dEFjdGl2aXR5Il07CiAgICAgCisgICAg
aWYgKGFjdGl2aXR5KQorICAgICAgICBbcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6
W05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjphY3Rpdml0eV0gZm9yS2V5OkAiQVhTZWxl
Y3RUZXh0QWN0aXZpdHkiXTsKKyAgICAKICAgICByZXR1cm4gcGFyYW1ldGVyaXplZEF0dHJpYnV0
ZTsKIH0KIApAQCAtMTE2NywxMCArMTE3MCwxMCBAQAogICAgIHJldHVybiBudWxscHRyOwogfQog
Ci1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1
aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBs
YWNlbWVudFN0cmluZykKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0
cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpT
U3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6
ZWRBdHRyaWJ1dGUgPSBzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlh
KGNvbnRleHQsIGFtYmlndWl0eVJlc29sdXRpb24sIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50
U3RyaW5nKTsKKyAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWxl
Y3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKGNvbnRleHQsIGFtYmlndWl0
eVJlc29sdXRpb24sIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50U3RyaW5nLCBhY3Rpdml0eSk7
CiAgICAgaWQgcmVzdWx0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
QCJBWFNlbGVjdFRleHRXaXRoQ3JpdGVyaWEiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJpemVkQXR0
cmlidXRlXTsKICAgICBpZiAoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
KQogICAgICAgICByZXR1cm4gW3Jlc3VsdCBjcmVhdGVKU1N0cmluZ1JlZl07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230930</attachid>
            <date>2014-05-06 13:56:36 -0700</date>
            <delta_ts>2014-05-06 14:58:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>26715</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA1LTA2ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFYU2VsZWN0VGV4
dFdpdGhDcml0ZXJpYSBzaG91bGQgc3VwcG9ydCBjYXBpdGFsaXplL2xvd2VyY2FzZS91cHBlcmNh
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjYy
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBz
ZWxlY3QgdGV4dCB3aXRoIGNyaXRlcmlhIG1lY2hhbmlzbSB1c2VkIHRocm91Z2ggYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBzdXBwb3J0CisgICAgICAgIGEgZmV3IG1vcmUgcGFyYW1ldGVycyB0byBi
ZSBjb21wbGV0ZSAoaW5jbHVkaW5nIGNhcGl0YWxpemUsIGxvd2VyY2FzZSBhbmQgdXBwZXJjYXNl
KS4KKworICAgICAgICBVcGRhdGVkOiBhY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0Lmh0bWwKKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RUZXh0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKGFj
Y2Vzc2liaWxpdHlTZWxlY3RUZXh0Q3JpdGVyaWFGb3JDcml0ZXJpYVBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1ha2VDYXBpdGFsaXplZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQu
aDoKKwogMjAxNC0wNS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTWFjXSBtYWtlIG1ldGFkYXRhIGN1ZSBhdHRyaWJ1dGVzIGNvbnNpc3RlbnQK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAkocmV2aXNpb24gMTY4MzUyKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC02MzAsMTQgKzYzMSwzMyBAQAog
ICAgIC8vIERldGVybWluZSB3aGljaCBjYW5kaWRhdGUgaXMgY2xvc2VzdCB0byB0aGUgc2VsZWN0
aW9uIGFuZCBwZXJmb3JtIHRoZSBhY3Rpdml0eS4KICAgICBpZiAoUmVmUHRyPFJhbmdlPiBjbG9z
ZXN0U3RyaW5nUmFuZ2UgPSByYW5nZUNsb3Nlc3RUb1JhbmdlKHNlbGVjdGVkU3RyaW5nUmFuZ2Uu
Z2V0KCksIGNsb3Nlc3RBZnRlclN0cmluZ1JhbmdlLCBjbG9zZXN0QmVmb3JlU3RyaW5nUmFuZ2Up
KSB7CiAgICAgICAgIFN0cmluZyBjbG9zZXN0U3RyaW5nID0gY2xvc2VzdFN0cmluZ1JhbmdlLT50
ZXh0KCk7CisgICAgICAgIGJvb2wgcmVwbGFjZVNlbGVjdGlvbiA9IGZhbHNlOwogICAgICAgICBp
ZiAoZnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UoY2xvc2VzdFN0cmluZ1Jhbmdl
LmdldCgpLCBET1dOU1RSRUFNLCB0cnVlKSkgewogICAgICAgICAgICAgc3dpdGNoIChhY3Rpdml0
eSkgeworICAgICAgICAgICAgY2FzZSBGaW5kQW5kQ2FwaXRhbGl6ZTogeworICAgICAgICAgICAg
ICAgIHJlcGxhY2VtZW50U3RyaW5nID0gY2xvc2VzdFN0cmluZzsKKyAgICAgICAgICAgICAgICBt
YWtlQ2FwaXRhbGl6ZWQoJnJlcGxhY2VtZW50U3RyaW5nLCAwKTsKKyAgICAgICAgICAgICAgICBy
ZXBsYWNlU2VsZWN0aW9uID0gWUVTOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgY2FzZSBGaW5kQW5kVXBwZXJjYXNlOgorICAgICAgICAgICAgICAg
IHJlcGxhY2VtZW50U3RyaW5nID0gY2xvc2VzdFN0cmluZy51cHBlcigpOworICAgICAgICAgICAg
ICAgIHJlcGxhY2VTZWxlY3Rpb24gPSBZRVM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEZpbmRBbmRMb3dlcmNhc2U6CisgICAgICAgICAgICAgICAgcmVwbGFjZW1l
bnRTdHJpbmcgPSBjbG9zZXN0U3RyaW5nLmxvd2VyKCk7CisgICAgICAgICAgICAgICAgcmVwbGFj
ZVNlbGVjdGlvbiA9IFlFUzsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgRmluZEFuZFJlcGxhY2VBY3Rpdml0eToKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9y
KCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCB0cnVlLCB0cnVl
KTsKLSAgICAgICAgICAgICAgICBGQUxMVEhST1VHSDsKKyAgICAgICAgICAgICAgICByZXBsYWNl
U2VsZWN0aW9uID0gWUVTOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaW5kQW5kU2VsZWN0QWN0aXZpdHk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RT
dHJpbmc7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChyZXBsYWNlU2VsZWN0aW9uKQorICAgICAgICAgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZW1lbnRTdHJpbmcs
IHRydWUsIHRydWUpOworICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RTdHJpbmc7CiAgICAgICAg
IH0KICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gMTY4MzUyKQorKysgU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM5MSw3ICszOTEsMTAgQEAKIAogZW51bSBBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFjdGl2
aXR5IHsKICAgICBGaW5kQW5kUmVwbGFjZUFjdGl2aXR5LAotICAgIEZpbmRBbmRTZWxlY3RBY3Rp
dml0eQorICAgIEZpbmRBbmRTZWxlY3RBY3Rpdml0eSwKKyAgICBGaW5kQW5kQ2FwaXRhbGl6ZSwK
KyAgICBGaW5kQW5kTG93ZXJjYXNlLAorICAgIEZpbmRBbmRVcHBlcmNhc2UKIH07CiAKIGVudW0g
QWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBbWJpZ3VpdHlSZXNvbHV0aW9uIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCShyZXZpc2lvbiAxNjgzNTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA0LDYgKzQwNCwxOCBAQAogI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kU2VsZWN0IEAiQVhTZWxlY3RU
ZXh0QWN0aXZpdHlGaW5kQW5kU2VsZWN0IgogI2VuZGlmCiAKKyNpZm5kZWYga0FYU2VsZWN0VGV4
dEFjdGl2aXR5RmluZEFuZENhcGl0YWxpemUKKyNkZWZpbmUga0FYU2VsZWN0VGV4dEFjdGl2aXR5
RmluZEFuZENhcGl0YWxpemUgQCJBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRDYXBpdGFsaXpl
IgorI2VuZGlmCisKKyNpZm5kZWYga0FYU2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZExvd2VyY2Fz
ZQorI2RlZmluZSBrQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNlIEAiQVhTZWxl
Y3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNlIgorI2VuZGlmCisKKyNpZm5kZWYga0FYU2Vs
ZWN0VGV4dEFjdGl2aXR5RmluZEFuZFVwcGVyY2FzZQorI2RlZmluZSBrQVhTZWxlY3RUZXh0QWN0
aXZpdHlGaW5kQW5kVXBwZXJjYXNlIEAiQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kVXBwZXJj
YXNlIgorI2VuZGlmCisKICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFtYmlndWl0
eVJlc29sdXRpb24KICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFtYmlndWl0eVJl
c29sdXRpb24gQCJBWFNlbGVjdFRleHRBbWJpZ3VpdHlSZXNvbHV0aW9uIgogI2VuZGlmCkBAIC02
NjIsNiArNjc0LDEyIEBACiAgICAgaWYgKFthY3Rpdml0eVBhcmFtZXRlciBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKSB7CiAgICAgICAgIGlmIChbYWN0aXZpdHlQYXJhbWV0ZXIgaXNF
cXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRSZXBs
YWNlXSkKICAgICAgICAgICAgIGFjdGl2aXR5ID0gRmluZEFuZFJlcGxhY2VBY3Rpdml0eTsKKyAg
ICAgICAgZWxzZSBpZiAoW2FjdGl2aXR5UGFyYW1ldGVyIGlzRXF1YWxUb1N0cmluZzprQVhTZWxl
Y3RUZXh0QWN0aXZpdHlGaW5kQW5kQ2FwaXRhbGl6ZV0pCisgICAgICAgICAgICBhY3Rpdml0eSA9
IEZpbmRBbmRDYXBpdGFsaXplOworICAgICAgICBlbHNlIGlmIChbYWN0aXZpdHlQYXJhbWV0ZXIg
aXNFcXVhbFRvU3RyaW5nOmtBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRMb3dlcmNhc2VdKQor
ICAgICAgICAgICAgYWN0aXZpdHkgPSBGaW5kQW5kTG93ZXJjYXNlOworICAgICAgICBlbHNlIGlm
IChbYWN0aXZpdHlQYXJhbWV0ZXIgaXNFcXVhbFRvU3RyaW5nOmtBWFNlbGVjdFRleHRBY3Rpdml0
eUZpbmRBbmRVcHBlcmNhc2VdKQorICAgICAgICAgICAgYWN0aXZpdHkgPSBGaW5kQW5kVXBwZXJj
YXNlOwogICAgIH0KICAgICAKICAgICBBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFtYmlndWl0eVJl
c29sdXRpb24gYW1iaWd1aXR5UmVzb2x1dGlvbiA9IENsb3Nlc3RUb1NlbGVjdGlvbkFtYmlndWl0
eVJlc29sdXRpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CShyZXZpc2lvbiAxNjgzNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQAogICAgIHJldHVybiBtYXA7
CiB9CiAKLXN0YXRpYyB2b2lkIG1ha2VDYXBpdGFsaXplZChTdHJpbmcqIHN0cmluZywgVUNoYXIg
cHJldmlvdXMpCit2b2lkIG1ha2VDYXBpdGFsaXplZChTdHJpbmcqIHN0cmluZywgVUNoYXIgcHJl
dmlvdXMpCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHVfc3Ry
VG9UaXRsZSBpbnN0ZWFkIG9mIHVfdG90aXRsZSBhbmQgdG8gY29uc2lkZXIgbG9jYWxlLgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHJldmlzaW9uIDE2ODM1MikK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI0Miw3ICsyNDIsOCBAQAogfQogCiB2b2lkIGFwcGx5VGV4dFRyYW5zZm9ybShjb25zdCBS
ZW5kZXJTdHlsZSYsIFN0cmluZyYsIFVDaGFyKTsKLQordm9pZCBtYWtlQ2FwaXRhbGl6ZWQoU3Ry
aW5nKiwgVUNoYXIgcHJldmlvdXMpOworICAgIAogaW5saW5lIFJlbmRlclRleHQqIFRleHQ6OnJl
bmRlcmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gdG9SZW5kZXJUZXh0KE5vZGU6OnJlbmRlcmVy
KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4Mzc3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDUtMDYgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQVhTZWxlY3RUZXh0V2l0
aENyaXRlcmlhIHNob3VsZCBzdXBwb3J0IGNhcGl0YWxpemUvbG93ZXJjYXNlL3VwcGVyY2FzZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNjIyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LXRleHQuaHRtbDoKKwogMjAxNC0wNS0w
NiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFj
XSBtYWtlIG1ldGFkYXRhIGN1ZSBhdHRyaWJ1dGVzIGNvbnNpc3RlbnQKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3QtdGV4dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2ODM1MSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLVRoZcKgc2xvd8KgYnJvd27CoGNhdMKganVtcHMgb3Zl
ciB0aGUgbGF6eSBkb2cuCitUaGXCoHNsb3fCoEJST1dOwqBjYXTCoGp1bXBzIG92ZXIgdGhlIGxh
enkgZG9nLgogCiBUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIHNlbGVjdCBhbmQgcmVwbGFjZSB0
ZXh0IHdpdGggcmVzcGVjdCB0byBzZWxlY3Rpb24uCiAKQEAgLTIxLDYgKzIxLDEyIEBACiBQQVNT
IHNlbGVjdGlvbiBpcyAnc2xvdycKIFBBU1MgcmVzdWx0IGlzICdmb3gnCiBQQVNTIHNlbGVjdGlv
biBpcyAnY2F0JworUEFTUyByZXN1bHQgaXMgJ2Jyb3duJworUEFTUyBzZWxlY3Rpb24gaXMgJ0Jy
b3duJworUEFTUyByZXN1bHQgaXMgJ0Jyb3duJworUEFTUyBzZWxlY3Rpb24gaXMgJ2Jyb3duJwor
UEFTUyByZXN1bHQgaXMgJ2Jyb3duJworUEFTUyBzZWxlY3Rpb24gaXMgJ0JST1dOJwogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0
Lmh0bWwJKHJldmlzaW9uIDE2ODM1MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDI4
IEBACiAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQiLCAiJ2ZveCciKTsKICAgICAgICAgc2VsZWN0
aW9uID0gc2VsZWN0ZWRUZXh0KCk7CiAgICAgICAgIHNob3VsZEJlKCJzZWxlY3Rpb24iLCAiJ2Nh
dCciKTsKKworICAgICAgICAvLyBTZWxlY3QgYnJvd24gYW5kIGNhcGl0YWxpemUgaXQuCisgICAg
ICAgIHNlbGVjdEVsZW1lbnRUZXh0KHRhcmdldCk7CisgICAgICAgIHJlc3VsdCA9IHRleHQuc2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYSgiQVhTZWxlY3RUZXh0QW1iaWd1aXR5UmVzb2x1dGlvbkNsb3Nl
c3RUb1NlbGVjdGlvbiIsICJicm93biIsIG51bGwsICJBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRB
bmRDYXBpdGFsaXplIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQiLCAiJ2Jyb3duJyIpOwor
ICAgICAgICBzZWxlY3Rpb24gPSBzZWxlY3RlZFRleHQoKTsKKyAgICAgICAgc2hvdWxkQmUoInNl
bGVjdGlvbiIsICInQnJvd24nIik7CisKKyAgICAgICAgLy8gU2VsZWN0IEJyb3duIGFuZCBsb3dl
cmNhc2UgaXQuCisgICAgICAgIHNlbGVjdEVsZW1lbnRUZXh0KHRhcmdldCk7CisgICAgICAgIHJl
c3VsdCA9IHRleHQuc2VsZWN0VGV4dFdpdGhDcml0ZXJpYSgiQVhTZWxlY3RUZXh0QW1iaWd1aXR5
UmVzb2x1dGlvbkNsb3Nlc3RUb1NlbGVjdGlvbiIsICJCcm93biIsIG51bGwsICJBWFNlbGVjdFRl
eHRBY3Rpdml0eUZpbmRBbmRMb3dlcmNhc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdCIs
ICInQnJvd24nIik7CisgICAgICAgIHNlbGVjdGlvbiA9IHNlbGVjdGVkVGV4dCgpOworICAgICAg
ICBzaG91bGRCZSgic2VsZWN0aW9uIiwgIidicm93biciKTsKKworICAgICAgICAvLyBTZWxlY3Qg
YnJvd24gYW5kIHVwcGVyY2FzZSBpdC4KKyAgICAgICAgc2VsZWN0RWxlbWVudFRleHQodGFyZ2V0
KTsKKyAgICAgICAgcmVzdWx0ID0gdGV4dC5zZWxlY3RUZXh0V2l0aENyaXRlcmlhKCJBWFNlbGVj
dFRleHRBbWJpZ3VpdHlSZXNvbHV0aW9uQ2xvc2VzdFRvU2VsZWN0aW9uIiwgImJyb3duIiwgbnVs
bCwgIkFYU2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZFVwcGVyY2FzZSIpOworICAgICAgICBzaG91
bGRCZSgicmVzdWx0IiwgIidicm93biciKTsKKyAgICAgICAgc2VsZWN0aW9uID0gc2VsZWN0ZWRU
ZXh0KCk7CisgICAgICAgIHNob3VsZEJlKCJzZWxlY3Rpb24iLCAiJ0JST1dOJyIpOworCiAgICAg
fQogPC9zY3JpcHQ+CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM3NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA1LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFYU2VsZWN0VGV4dFdpdGhDcml0ZXJp
YSBzaG91bGQgc3VwcG9ydCBjYXBpdGFsaXplL2xvd2VyY2FzZS91cHBlcmNhc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjYyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChzZWxlY3RUZXh0V2l0aENyaXRl
cmlhQ2FsbGJhY2spOgorICAgICAgICAoaXNFcXVhbENhbGxiYWNrKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAg
ICAgKHNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEpOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50QXRrLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKFdUUjo6c2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGVGb3JDcml0ZXJpYSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorCiAyMDE0LTA1LTA2ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IGlPUyBidWlsZC4KSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNjgzNTEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYwLDcgKzI2MCw3IEBACiAKIHN0YXRpYyBK
U1ZhbHVlUmVmIHNlbGVjdFRleHRXaXRoQ3JpdGVyaWFDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAyIHx8IGFyZ3VtZW50Q291
bnQgPiAzKQorICAgIGlmIChhcmd1bWVudENvdW50IDwgMiB8fCBhcmd1bWVudENvdW50ID4gNCkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIAogICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBhbWJpZ3VpdHlSZXNvbHV0aW9uKEFkb3B0LCBKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CkBAIC0y
NjgsOCArMjY4LDExIEBACiAgICAgSlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcgPSBudWxs
cHRyOwogICAgIGlmIChhcmd1bWVudENvdW50ID09IDMpCiAgICAgICAgIHJlcGxhY2VtZW50U3Ry
aW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlv
bik7CisgICAgSlNTdHJpbmdSZWYgYWN0aXZpdHlTdHJpbmcgPSBudWxscHRyOworICAgIGlmIChh
cmd1bWVudENvdW50ID09IDQpCisgICAgICAgIGFjdGl2aXR5U3RyaW5nID0gSlNWYWx1ZVRvU3Ry
aW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbM10sIGV4Y2VwdGlvbik7CiAgICAgCi0gICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHJlc3VsdChBZG9wdCwgdG9BWEVsZW1lbnQodGhpc09iamVj
dCktPnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoY29udGV4dCwgYW1iaWd1aXR5UmVzb2x1dGlvbi5n
ZXQoKSwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcpKTsKKyAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gcmVzdWx0KEFkb3B0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYShjb250ZXh0LCBhbWJpZ3VpdHlSZXNvbHV0aW9uLmdldCgpLCBz
ZWFyY2hTdHJpbmdzLCByZXBsYWNlbWVudFN0cmluZywgYWN0aXZpdHlTdHJpbmcpKTsKICAgICBp
ZiAocmVwbGFjZW1lbnRTdHJpbmcpCiAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShyZXBsYWNlbWVu
dFN0cmluZyk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIHJlc3VsdC5n
ZXQoKSk7CkBAIC00MzAsNiArNDMzLDkgQEAKICAgICBlbHNlCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlTWFrZUJvb2xlYW4oY29udGV4dCwgZmFsc2UpOwogICAgIAorICAgIGlmICghb3RoZXJFbGVt
ZW50KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGZhbHNlKTsK
KyAgICAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50
KHRoaXNPYmplY3QpLT5pc0VxdWFsKHRvQVhFbGVtZW50KG90aGVyRWxlbWVudCkpKTsKIH0KIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAko
cmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEyLDcgQEAKICAgICBib29sIGF0
dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWdu
ZWQgbGVuZ3RoKTsKICAgICB1bnNpZ25lZCB1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0
ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9v
bCBpc0RpcmVjdGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFy
Y2hUZXh0LCBib29sIHZpc2libGVPbmx5LCBib29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7
CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUo
SlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBzdGFydEVsZW1lbnQsIGJvb2wg
aXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNo
VGV4dCwgYm9vbCB2aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwot
ICAgIEpTU3RyaW5nUmVmIHNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0
cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpT
U3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKTsKKyAgICBKU1N0cmluZ1JlZiBzZWxlY3RUZXh0
V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlv
biwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmlu
ZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGVs
ZW1lbnRzRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9y
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cyk7CiAgICAgSlNTdHJpbmdSZWYgc3Ry
aW5nRm9yU2VsZWN0aW9uKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCShyZXZpc2lvbiAxNjgzNTEpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMDUsNyArMTMwNSw3IEBACiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLUpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmlndWl0eVJlc29s
dXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRT
dHJpbmcpCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0
aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNv
bHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50
U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50
CiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24gMTY4MzUxKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTgyOCw3ICs4MjgsNyBAQAogICAgIHJldHVybiAwOwogfQogCi1K
U1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlh
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBK
U1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKQor
SlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJp
YShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwg
SlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywg
SlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICBy
ZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZpc2lvbiAxNjgzNTEpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAgICAgcmV0dXJuIHBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGU7CiB9CiAKLXN0YXRpYyBOU0RpY3Rpb25hcnkgKnNlbGVjdFRleHRQYXJhbWV0ZXJpemVk
QXR0cmlidXRlRm9yQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFt
YmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYg
cmVwbGFjZW1lbnRTdHJpbmcpCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpzZWxlY3RUZXh0UGFyYW1l
dGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmlu
Z1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3Ry
aW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICBO
U011dGFibGVEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmlidXRlID0gW05TTXV0YWJsZURp
Y3Rpb25hcnkgZGljdGlvbmFyeV07CiAgICAgCkBAIC0yODUsNiArMjg1LDkgQEAKICAgICB9IGVs
c2UKICAgICAgICAgW3BhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgc2V0T2JqZWN0OkAiQVhTZWxlY3RU
ZXh0QWN0aXZpdHlGaW5kQW5kU2VsZWN0IiBmb3JLZXk6QCJBWFNlbGVjdFRleHRBY3Rpdml0eSJd
OwogICAgIAorICAgIGlmIChhY3Rpdml0eSkKKyAgICAgICAgW3BhcmFtZXRlcml6ZWRBdHRyaWJ1
dGUgc2V0T2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YWN0aXZpdHldIGZv
cktleTpAIkFYU2VsZWN0VGV4dEFjdGl2aXR5Il07CisgICAgCiAgICAgcmV0dXJuIHBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGU7CiB9CiAKQEAgLTExMTEsMTAgKzExMTQsMTAgQEAKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1
aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBs
YWNlbWVudFN0cmluZykKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVj
dFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmln
dWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVw
bGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUwotICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9
IHNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoY29udGV4dCwgYW1i
aWd1aXR5UmVzb2x1dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcpOworICAg
IE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlbGVjdFRleHRQYXJhbWV0
ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoY29udGV4dCwgYW1iaWd1aXR5UmVzb2x1dGlvbiwg
c2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcsIGFjdGl2aXR5KTsKICAgICBpZCByZXN1
bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2VsZWN0VGV4
dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1ldGVyOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOwogICAg
IGlmIChbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCiAgICAgICAgIHJl
dHVybiBbcmVzdWx0IGNyZWF0ZUpTU3RyaW5nUmVmXTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAJKHJldmlz
aW9uIDE2ODM1MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA4LDcgKzYwOCw3IEBACiAgICAgcmV0
dXJuIDA7CiB9CiAKLUpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRl
eHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmlndWl0
eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFj
ZW1lbnRTdHJpbmcpCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RU
ZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3Vp
dHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxh
Y2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICByZXR1cm4gMDsKIH0K
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkocmV2aXNpb24gMTY4MzUxKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDcgKzE3OCw3IEBACiBib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNp
Z25lZCwgdW5zaWduZWQpIHsgcmV0dXJuIGZhbHNlOyB9CiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYs
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwg
Ym9vbCwgYm9vbCkgeyByZXR1cm4gMDsgfQogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUo
SlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwg
SlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpIHsgcmV0dXJuIDA7IH0KLUpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpT
Q29udGV4dFJlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVmKSB7IHJldHVy
biBudWxscHRyOyB9CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBK
U1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpIHsgcmV0dXJuIG51bGxwdHI7IH0K
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpIHsgcmV0dXJuIDA7IH0K
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIFBhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxT
Y3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiAwOyB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaAkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIw
OCw3ICsyMDgsNyBAQAogICAgIGJvb2wgYXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVk
KHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHVuc2lnbmVkIHVpRWxl
bWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCogc3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBz
ZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHksIGJvb2wg
aW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IHVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIEpT
VmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBib29sIHZpc2libGVP
bmx5LCBib29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IHNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1Jl
ZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5n
UmVmIHJlcGxhY2VtZW50U3RyaW5nKTsKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmIGFtYmlndWl0eVJl
c29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFjZW1l
bnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KTsKIAogICAgIC8vIFRleHQtc3BlY2lmaWMK
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY2hhcmFjdGVyQXRPZmZzZXQoaW50IG9mZnNl
dCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTE2MCw3ICsxNjAsNyBAQAogICAgIGJvb2xlYW4gYXR0cmlidXRlZFN0cmluZ1JhbmdlSXNN
aXNzcGVsbGVkKHVuc2lnbmVkIGxvbmcgbG9jYXRpb24sIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsK
ICAgICBbUGFzc0NvbnRleHRdIHVuc2lnbmVkIGludCB1aUVsZW1lbnRDb3VudEZvclNlYXJjaFBy
ZWRpY2F0ZShBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHN0YXJ0RWxlbWVudCwgYm9vbGVhbiBpc0Rp
cmVjdGlvbk5leHQsIG9iamVjdCBzZWFyY2hLZXksIERPTVN0cmluZyBzZWFyY2hUZXh0LCBib29s
ZWFuIHZpc2libGVPbmx5LCBib29sZWFuIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7CiAgICAg
W1Bhc3NDb250ZXh0XSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHVpRWxlbWVudEZvclNlYXJjaFBy
ZWRpY2F0ZShBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHN0YXJ0RWxlbWVudCwgYm9vbGVhbiBpc0Rp
cmVjdGlvbk5leHQsIG9iamVjdCBzZWFyY2hLZXksIERPTVN0cmluZyBzZWFyY2hUZXh0LCBib29s
ZWFuIHZpc2libGVPbmx5LCBib29sZWFuIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7Ci0gICAg
W1Bhc3NDb250ZXh0XSBET01TdHJpbmcgc2VsZWN0VGV4dFdpdGhDcml0ZXJpYShET01TdHJpbmcg
YW1iaWd1aXR5UmVzb2x1dGlvbiwgb2JqZWN0IHNlYXJjaFN0cmluZ3MsIERPTVN0cmluZyByZXBs
YWNlbWVudFN0cmluZyk7CisgICAgW1Bhc3NDb250ZXh0XSBET01TdHJpbmcgc2VsZWN0VGV4dFdp
dGhDcml0ZXJpYShET01TdHJpbmcgYW1iaWd1aXR5UmVzb2x1dGlvbiwgb2JqZWN0IHNlYXJjaFN0
cmluZ3MsIERPTVN0cmluZyByZXBsYWNlbWVudFN0cmluZywgRE9NU3RyaW5nIGFjdGl2aXR5KTsK
ICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvbmcgbG9jYXRpb24sIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoKTsKIAogICAgIC8vIFNjcm9sbCBhcmVhIGF0dHJpYnV0ZXMuCklu
ZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50QXRrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAkocmV2aXNp
b24gMTY4MzUxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NjAsNyAr
MTQ2MCw3IEBACiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVl
UmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKQorSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmlndWl0eVJlc29s
dXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRT
dHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
ICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudElPUy5tbQkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDc4LDcgKzQ3OCw3IEBACiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0
V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlv
biwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmlu
ZykKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxl
Y3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVz
b2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVu
dFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHJldmlz
aW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3Myw3ICsy
NzMsNyBAQAogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkQXR0cmlidXRlOwogfQogCi1zdGF0aWMg
TlNEaWN0aW9uYXJ5ICpzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlh
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBK
U1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKQor
c3RhdGljIE5TRGljdGlvbmFyeSAqc2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JD
cml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1
dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0
cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAq
cGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnld
OwogICAgIApAQCAtMzExLDYgKzMxMSw5IEBACiAgICAgfSBlbHNlCiAgICAgICAgIFtwYXJhbWV0
ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpAIkFYU2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZFNl
bGVjdCIgZm9yS2V5OkAiQVhTZWxlY3RUZXh0QWN0aXZpdHkiXTsKICAgICAKKyAgICBpZiAoYWN0
aXZpdHkpCisgICAgICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpbTlNTdHJp
bmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmFjdGl2aXR5XSBmb3JLZXk6QCJBWFNlbGVjdFRleHRB
Y3Rpdml0eSJdOworICAgIAogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkQXR0cmlidXRlOwogfQog
CkBAIC0xMTY3LDEwICsxMTcwLDEwIEBACiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0
aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNv
bHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50
U3RyaW5nKQorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVm
IGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdS
ZWYgcmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJp
YnV0ZSA9IHNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoY29udGV4
dCwgYW1iaWd1aXR5UmVzb2x1dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcp
OworICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlbGVjdFRleHRQ
YXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoY29udGV4dCwgYW1iaWd1aXR5UmVzb2x1
dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcsIGFjdGl2aXR5KTsKICAgICBp
ZCByZXN1bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1ldGVyOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVd
OwogICAgIGlmIChbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCiAgICAg
ICAgIHJldHVybiBbcmVzdWx0IGNyZWF0ZUpTU3RyaW5nUmVmXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230935</attachid>
            <date>2014-05-06 14:58:30 -0700</date>
            <delta_ts>2014-05-07 09:18:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>26442</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA1LTA2ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFYU2VsZWN0VGV4
dFdpdGhDcml0ZXJpYSBzaG91bGQgc3VwcG9ydCBjYXBpdGFsaXplL2xvd2VyY2FzZS91cHBlcmNh
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjYy
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBz
ZWxlY3QgdGV4dCB3aXRoIGNyaXRlcmlhIG1lY2hhbmlzbSB1c2VkIHRocm91Z2ggYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBzdXBwb3J0CisgICAgICAgIGEgZmV3IG1vcmUgcGFyYW1ldGVycyB0byBi
ZSBjb21wbGV0ZSAoaW5jbHVkaW5nIGNhcGl0YWxpemUsIGxvd2VyY2FzZSBhbmQgdXBwZXJjYXNl
KS4KKworICAgICAgICBVcGRhdGVkOiBhY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0Lmh0bWwKKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RUZXh0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKGFj
Y2Vzc2liaWxpdHlTZWxlY3RUZXh0Q3JpdGVyaWFGb3JDcml0ZXJpYVBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1ha2VDYXBpdGFsaXplZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQu
aDoKKwogMjAxNC0wNS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTWFjXSBtYWtlIG1ldGFkYXRhIGN1ZSBhdHRyaWJ1dGVzIGNvbnNpc3RlbnQK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAkocmV2aXNpb24gMTY4MzUyKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC02MzAsMTQgKzYzMSwzMyBAQAog
ICAgIC8vIERldGVybWluZSB3aGljaCBjYW5kaWRhdGUgaXMgY2xvc2VzdCB0byB0aGUgc2VsZWN0
aW9uIGFuZCBwZXJmb3JtIHRoZSBhY3Rpdml0eS4KICAgICBpZiAoUmVmUHRyPFJhbmdlPiBjbG9z
ZXN0U3RyaW5nUmFuZ2UgPSByYW5nZUNsb3Nlc3RUb1JhbmdlKHNlbGVjdGVkU3RyaW5nUmFuZ2Uu
Z2V0KCksIGNsb3Nlc3RBZnRlclN0cmluZ1JhbmdlLCBjbG9zZXN0QmVmb3JlU3RyaW5nUmFuZ2Up
KSB7CiAgICAgICAgIFN0cmluZyBjbG9zZXN0U3RyaW5nID0gY2xvc2VzdFN0cmluZ1JhbmdlLT50
ZXh0KCk7CisgICAgICAgIGJvb2wgcmVwbGFjZVNlbGVjdGlvbiA9IGZhbHNlOwogICAgICAgICBp
ZiAoZnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UoY2xvc2VzdFN0cmluZ1Jhbmdl
LmdldCgpLCBET1dOU1RSRUFNLCB0cnVlKSkgewogICAgICAgICAgICAgc3dpdGNoIChhY3Rpdml0
eSkgeworICAgICAgICAgICAgY2FzZSBGaW5kQW5kQ2FwaXRhbGl6ZTogeworICAgICAgICAgICAg
ICAgIHJlcGxhY2VtZW50U3RyaW5nID0gY2xvc2VzdFN0cmluZzsKKyAgICAgICAgICAgICAgICBt
YWtlQ2FwaXRhbGl6ZWQoJnJlcGxhY2VtZW50U3RyaW5nLCAwKTsKKyAgICAgICAgICAgICAgICBy
ZXBsYWNlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNhc2UgRmluZEFuZFVwcGVyY2FzZToKKyAgICAgICAgICAgICAg
ICByZXBsYWNlbWVudFN0cmluZyA9IGNsb3Nlc3RTdHJpbmcudXBwZXIoKTsKKyAgICAgICAgICAg
ICAgICByZXBsYWNlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgRmluZEFuZExvd2VyY2FzZToKKyAgICAgICAgICAgICAgICByZXBsYWNl
bWVudFN0cmluZyA9IGNsb3Nlc3RTdHJpbmcubG93ZXIoKTsKKyAgICAgICAgICAgICAgICByZXBs
YWNlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgRmluZEFuZFJlcGxhY2VBY3Rpdml0eToKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZWRp
dG9yKCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCB0cnVlLCB0
cnVlKTsKLSAgICAgICAgICAgICAgICBGQUxMVEhST1VHSDsKKyAgICAgICAgICAgICAgICByZXBs
YWNlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgRmluZEFuZFNlbGVjdEFjdGl2aXR5OgotICAgICAgICAgICAgICAgIHJldHVybiBjbG9z
ZXN0U3RyaW5nOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAocmVwbGFjZVNlbGVjdGlvbikKKyAgICAgICAgICAgICAg
ICBmcmFtZS0+ZWRpdG9yKCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VtZW50U3Ry
aW5nLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgIHJldHVybiBjbG9zZXN0U3RyaW5nOwogICAg
ICAgICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDE2ODM1MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTEsNyArMzkxLDEwIEBACiAKIGVudW0gQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRB
Y3Rpdml0eSB7CiAgICAgRmluZEFuZFJlcGxhY2VBY3Rpdml0eSwKLSAgICBGaW5kQW5kU2VsZWN0
QWN0aXZpdHkKKyAgICBGaW5kQW5kU2VsZWN0QWN0aXZpdHksCisgICAgRmluZEFuZENhcGl0YWxp
emUsCisgICAgRmluZEFuZExvd2VyY2FzZSwKKyAgICBGaW5kQW5kVXBwZXJjYXNlCiB9OwogCiBl
bnVtIEFjY2Vzc2liaWxpdHlTZWxlY3RUZXh0QW1iaWd1aXR5UmVzb2x1dGlvbiB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkocmV2aXNpb24gMTY4MzUyKQor
KysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNCw2ICs0MDQsMTggQEAKICNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZFNlbGVjdCBAIkFYU2Vs
ZWN0VGV4dEFjdGl2aXR5RmluZEFuZFNlbGVjdCIKICNlbmRpZgogCisjaWZuZGVmIGtBWFNlbGVj
dFRleHRBY3Rpdml0eUZpbmRBbmRDYXBpdGFsaXplCisjZGVmaW5lIGtBWFNlbGVjdFRleHRBY3Rp
dml0eUZpbmRBbmRDYXBpdGFsaXplIEAiQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kQ2FwaXRh
bGl6ZSIKKyNlbmRpZgorCisjaWZuZGVmIGtBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRMb3dl
cmNhc2UKKyNkZWZpbmUga0FYU2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZExvd2VyY2FzZSBAIkFY
U2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZExvd2VyY2FzZSIKKyNlbmRpZgorCisjaWZuZGVmIGtB
WFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRVcHBlcmNhc2UKKyNkZWZpbmUga0FYU2VsZWN0VGV4
dEFjdGl2aXR5RmluZEFuZFVwcGVyY2FzZSBAIkFYU2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZFVw
cGVyY2FzZSIKKyNlbmRpZgorCiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBbWJp
Z3VpdHlSZXNvbHV0aW9uCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBbWJpZ3Vp
dHlSZXNvbHV0aW9uIEAiQVhTZWxlY3RUZXh0QW1iaWd1aXR5UmVzb2x1dGlvbiIKICNlbmRpZgpA
QCAtNjYyLDYgKzY3NCwxMiBAQAogICAgIGlmIChbYWN0aXZpdHlQYXJhbWV0ZXIgaXNLaW5kT2ZD
bGFzczpbTlNTdHJpbmcgY2xhc3NdXSkgewogICAgICAgICBpZiAoW2FjdGl2aXR5UGFyYW1ldGVy
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5k
UmVwbGFjZV0pCiAgICAgICAgICAgICBhY3Rpdml0eSA9IEZpbmRBbmRSZXBsYWNlQWN0aXZpdHk7
CisgICAgICAgIGVsc2UgaWYgKFthY3Rpdml0eVBhcmFtZXRlciBpc0VxdWFsVG9TdHJpbmc6a0FY
U2VsZWN0VGV4dEFjdGl2aXR5RmluZEFuZENhcGl0YWxpemVdKQorICAgICAgICAgICAgYWN0aXZp
dHkgPSBGaW5kQW5kQ2FwaXRhbGl6ZTsKKyAgICAgICAgZWxzZSBpZiAoW2FjdGl2aXR5UGFyYW1l
dGVyIGlzRXF1YWxUb1N0cmluZzprQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNl
XSkKKyAgICAgICAgICAgIGFjdGl2aXR5ID0gRmluZEFuZExvd2VyY2FzZTsKKyAgICAgICAgZWxz
ZSBpZiAoW2FjdGl2aXR5UGFyYW1ldGVyIGlzRXF1YWxUb1N0cmluZzprQVhTZWxlY3RUZXh0QWN0
aXZpdHlGaW5kQW5kVXBwZXJjYXNlXSkKKyAgICAgICAgICAgIGFjdGl2aXR5ID0gRmluZEFuZFVw
cGVyY2FzZTsKICAgICB9CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRBbWJpZ3Vp
dHlSZXNvbHV0aW9uIGFtYmlndWl0eVJlc29sdXRpb24gPSBDbG9zZXN0VG9TZWxlY3Rpb25BbWJp
Z3VpdHlSZXNvbHV0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAkocmV2aXNpb24gMTY4MzUyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAKICAgICByZXR1cm4g
bWFwOwogfQogCi1zdGF0aWMgdm9pZCBtYWtlQ2FwaXRhbGl6ZWQoU3RyaW5nKiBzdHJpbmcsIFVD
aGFyIHByZXZpb3VzKQordm9pZCBtYWtlQ2FwaXRhbGl6ZWQoU3RyaW5nKiBzdHJpbmcsIFVDaGFy
IHByZXZpb3VzKQogewogICAgIC8vIEZJWE1FOiBOZWVkIHRvIGNoYW5nZSB0aGlzIHRvIHVzZSB1
X3N0clRvVGl0bGUgaW5zdGVhZCBvZiB1X3RvdGl0bGUgYW5kIHRvIGNvbnNpZGVyIGxvY2FsZS4K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCShyZXZpc2lvbiAxNjgz
NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDIsNyArMjQyLDggQEAKIH0KIAogdm9pZCBhcHBseVRleHRUcmFuc2Zvcm0oY29u
c3QgUmVuZGVyU3R5bGUmLCBTdHJpbmcmLCBVQ2hhcik7Ci0KK3ZvaWQgbWFrZUNhcGl0YWxpemVk
KFN0cmluZyosIFVDaGFyIHByZXZpb3VzKTsKKyAgICAKIGlubGluZSBSZW5kZXJUZXh0KiBUZXh0
OjpyZW5kZXJlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRvUmVuZGVyVGV4dChOb2RlOjpyZW5k
ZXJlcigpKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM3NykKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA1LTA2ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFYU2VsZWN0VGV4
dFdpdGhDcml0ZXJpYSBzaG91bGQgc3VwcG9ydCBjYXBpdGFsaXplL2xvd2VyY2FzZS91cHBlcmNh
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjYy
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC10ZXh0Lmh0bWw6CisKIDIwMTQt
MDUtMDYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gbWFrZSBtZXRhZGF0YSBjdWUgYXR0cmlidXRlcyBjb25zaXN0ZW50CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
c2VsZWN0LXRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjgzNTEpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi1UaGXCoHNsb3fCoGJyb3duwqBjYXTCoGp1bXBz
IG92ZXIgdGhlIGxhenkgZG9nLgorVGhlwqBzbG93wqBCUk9XTsKgY2F0wqBqdW1wcyBvdmVyIHRo
ZSBsYXp5IGRvZy4KIAogVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYW5kIHJlcGxh
Y2UgdGV4dCB3aXRoIHJlc3BlY3QgdG8gc2VsZWN0aW9uLgogCkBAIC0yMSw2ICsyMSwxMiBAQAog
UEFTUyBzZWxlY3Rpb24gaXMgJ3Nsb3cnCiBQQVNTIHJlc3VsdCBpcyAnZm94JwogUEFTUyBzZWxl
Y3Rpb24gaXMgJ2NhdCcKK1BBU1MgcmVzdWx0IGlzICdicm93bicKK1BBU1Mgc2VsZWN0aW9uIGlz
ICdCcm93bicKK1BBU1MgcmVzdWx0IGlzICdCcm93bicKK1BBU1Mgc2VsZWN0aW9uIGlzICdicm93
bicKK1BBU1MgcmVzdWx0IGlzICdicm93bicKK1BBU1Mgc2VsZWN0aW9uIGlzICdCUk9XTicKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LXRleHQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Qt
dGV4dC5odG1sCShyZXZpc2lvbiAxNjgzNTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9zZWxlY3QtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4
OCwyOCBAQAogICAgICAgICBzaG91bGRCZSgicmVzdWx0IiwgIidmb3gnIik7CiAgICAgICAgIHNl
bGVjdGlvbiA9IHNlbGVjdGVkVGV4dCgpOwogICAgICAgICBzaG91bGRCZSgic2VsZWN0aW9uIiwg
IidjYXQnIik7CisKKyAgICAgICAgLy8gU2VsZWN0IGJyb3duIGFuZCBjYXBpdGFsaXplIGl0Lgor
ICAgICAgICBzZWxlY3RFbGVtZW50VGV4dCh0YXJnZXQpOworICAgICAgICByZXN1bHQgPSB0ZXh0
LnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoIkFYU2VsZWN0VGV4dEFtYmlndWl0eVJlc29sdXRpb25D
bG9zZXN0VG9TZWxlY3Rpb24iLCAiYnJvd24iLCBudWxsLCAiQVhTZWxlY3RUZXh0QWN0aXZpdHlG
aW5kQW5kQ2FwaXRhbGl6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0IiwgIidicm93bici
KTsKKyAgICAgICAgc2VsZWN0aW9uID0gc2VsZWN0ZWRUZXh0KCk7CisgICAgICAgIHNob3VsZEJl
KCJzZWxlY3Rpb24iLCAiJ0Jyb3duJyIpOworCisgICAgICAgIC8vIFNlbGVjdCBCcm93biBhbmQg
bG93ZXJjYXNlIGl0LgorICAgICAgICBzZWxlY3RFbGVtZW50VGV4dCh0YXJnZXQpOworICAgICAg
ICByZXN1bHQgPSB0ZXh0LnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoIkFYU2VsZWN0VGV4dEFtYmln
dWl0eVJlc29sdXRpb25DbG9zZXN0VG9TZWxlY3Rpb24iLCAiQnJvd24iLCBudWxsLCAiQVhTZWxl
Y3RUZXh0QWN0aXZpdHlGaW5kQW5kTG93ZXJjYXNlIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1
bHQiLCAiJ0Jyb3duJyIpOworICAgICAgICBzZWxlY3Rpb24gPSBzZWxlY3RlZFRleHQoKTsKKyAg
ICAgICAgc2hvdWxkQmUoInNlbGVjdGlvbiIsICInYnJvd24nIik7CisKKyAgICAgICAgLy8gU2Vs
ZWN0IGJyb3duIGFuZCB1cHBlcmNhc2UgaXQuCisgICAgICAgIHNlbGVjdEVsZW1lbnRUZXh0KHRh
cmdldCk7CisgICAgICAgIHJlc3VsdCA9IHRleHQuc2VsZWN0VGV4dFdpdGhDcml0ZXJpYSgiQVhT
ZWxlY3RUZXh0QW1iaWd1aXR5UmVzb2x1dGlvbkNsb3Nlc3RUb1NlbGVjdGlvbiIsICJicm93biIs
IG51bGwsICJBWFNlbGVjdFRleHRBY3Rpdml0eUZpbmRBbmRVcHBlcmNhc2UiKTsKKyAgICAgICAg
c2hvdWxkQmUoInJlc3VsdCIsICInYnJvd24nIik7CisgICAgICAgIHNlbGVjdGlvbiA9IHNlbGVj
dGVkVGV4dCgpOworICAgICAgICBzaG91bGRCZSgic2VsZWN0aW9uIiwgIidCUk9XTiciKTsKKwog
ICAgIH0KIDwvc2NyaXB0PgogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjgzNzcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxNC0wNS0wNiAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBBWFNlbGVjdFRleHRXaXRoQ3Jp
dGVyaWEgc2hvdWxkIHN1cHBvcnQgY2FwaXRhbGl6ZS9sb3dlcmNhc2UvdXBwZXJjYXNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI2MjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoc2VsZWN0VGV4dFdpdGhD
cml0ZXJpYUNhbGxiYWNrKToKKyAgICAgICAgKGlzRXF1YWxDYWxsYmFjayk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcDoKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06Cisg
ICAgICAgIChzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKToKKyAg
ICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNw
cDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVy
aWEpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5p
ZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OnNlbGVjdFRleHRQYXJhbWV0ZXJp
emVkQXR0cmlidXRlRm9yQ3JpdGVyaWEpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKToKKwogMjAxNC0wNS0wNiAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCBpT1MgYnVpbGQuCklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MCw3ICsyNjAsNyBAQAogCiBzdGF0
aWMgSlNWYWx1ZVJlZiBzZWxlY3RUZXh0V2l0aENyaXRlcmlhQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQogewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMiB8fCBhcmd1bWVu
dENvdW50ID4gMykKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDIgfHwgYXJndW1lbnRDb3VudCA+
IDQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAgICAK
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gYW1iaWd1aXR5UmVzb2x1dGlvbihBZG9wdCwg
SlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwpA
QCAtMjY4LDggKzI2OCwxMSBAQAogICAgIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nID0g
bnVsbHB0cjsKICAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAzKQogICAgICAgICByZXBsYWNlbWVu
dFN0cmluZyA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNl
cHRpb24pOworICAgIEpTU3RyaW5nUmVmIGFjdGl2aXR5U3RyaW5nID0gbnVsbHB0cjsKKyAgICBp
ZiAoYXJndW1lbnRDb3VudCA9PSA0KQorICAgICAgICBhY3Rpdml0eVN0cmluZyA9IEpTVmFsdWVU
b1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzNdLCBleGNlcHRpb24pOwogICAgIAotICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiByZXN1bHQoQWRvcHQsIHRvQVhFbGVtZW50KHRoaXNP
YmplY3QpLT5zZWxlY3RUZXh0V2l0aENyaXRlcmlhKGNvbnRleHQsIGFtYmlndWl0eVJlc29sdXRp
b24uZ2V0KCksIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50U3RyaW5nKSk7CisgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IHJlc3VsdChBZG9wdCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCkt
PnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoY29udGV4dCwgYW1iaWd1aXR5UmVzb2x1dGlvbi5nZXQo
KSwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcsIGFjdGl2aXR5U3RyaW5nKSk7CiAg
ICAgaWYgKHJlcGxhY2VtZW50U3RyaW5nKQogICAgICAgICBKU1N0cmluZ1JlbGVhc2UocmVwbGFj
ZW1lbnRTdHJpbmcpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCByZXN1
bHQuZ2V0KCkpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaAkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEyLDcgQEAK
ICAgICBib29sIGF0dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCBsb2Nh
dGlvbiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB1bnNpZ25lZCB1aUVsZW1lbnRDb3VudEZvclNl
YXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0
RWxlbWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0
cmluZ1JlZiBzZWFyY2hUZXh0LCBib29sIHZpc2libGVPbmx5LCBib29sIGltbWVkaWF0ZURlc2Nl
bmRhbnRzT25seSk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB1aUVsZW1lbnRGb3JTZWFy
Y2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBzdGFydEVs
ZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJp
bmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5k
YW50c09ubHkpOwotICAgIEpTU3RyaW5nUmVmIHNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250
ZXh0UmVmLCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJj
aFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKTsKKyAgICBKU1N0cmluZ1Jl
ZiBzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1
aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBs
YWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpOwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICB2b2lkIGVsZW1lbnRzRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxl
bmd0aCwgVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cyk7CiAgICAgSlNT
dHJpbmdSZWYgc3RyaW5nRm9yU2VsZWN0aW9uKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCShyZXZpc2lv
biAxNjgzNTEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMDUsNyArMTMwNSw3IEBACiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLUpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
bGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFt
YmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYg
cmVwbGFjZW1lbnRTdHJpbmcpCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBh
bWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVm
IHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICAvLyBGSVhN
RTogaW1wbGVtZW50CiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNp
b24gMTY4MzUxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTgyOCw3ICs4MjgsNyBAQAogICAgIHJldHVy
biAwOwogfQogCi1KU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0
V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlS
ZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2Vt
ZW50U3RyaW5nKQorSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4
dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5
UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNl
bWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudC4KICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZpc2lvbiAxNjgz
NTEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAgICAgcmV0dXJuIHBhcmFt
ZXRlcml6ZWRBdHRyaWJ1dGU7CiB9CiAKLXN0YXRpYyBOU0RpY3Rpb25hcnkgKnNlbGVjdFRleHRQ
YXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
U3RyaW5nUmVmIGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywg
SlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcpCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpzZWxl
Y3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0
cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0
eSkKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmlidXRlID0g
W05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAgICAgCkBAIC0yODUsNiArMjg1LDkg
QEAKICAgICB9IGVsc2UKICAgICAgICAgW3BhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgc2V0T2JqZWN0
OkAiQVhTZWxlY3RUZXh0QWN0aXZpdHlGaW5kQW5kU2VsZWN0IiBmb3JLZXk6QCJBWFNlbGVjdFRl
eHRBY3Rpdml0eSJdOwogICAgIAorICAgIGlmIChhY3Rpdml0eSkKKyAgICAgICAgW3BhcmFtZXRl
cml6ZWRBdHRyaWJ1dGUgc2V0T2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6
YWN0aXZpdHldIGZvcktleTpAIkFYU2VsZWN0VGV4dEFjdGl2aXR5Il07CisgICAgCiAgICAgcmV0
dXJuIHBhcmFtZXRlcml6ZWRBdHRyaWJ1dGU7CiB9CiAKQEAgLTExMTEsMTAgKzExMTQsMTAgQEAK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJp
bmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0
cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZykKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3Ry
aW5nUmVmIGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNT
dHJpbmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZSA9IHNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEo
Y29udGV4dCwgYW1iaWd1aXR5UmVzb2x1dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRT
dHJpbmcpOworICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlbGVj
dFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoY29udGV4dCwgYW1iaWd1aXR5
UmVzb2x1dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcsIGFjdGl2aXR5KTsK
ICAgICBpZCByZXN1bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpA
IkFYU2VsZWN0VGV4dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1ldGVyOnBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGVdOwogICAgIGlmIChbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0p
CiAgICAgICAgIHJldHVybiBbcmVzdWx0IGNyZWF0ZUpTU3RyaW5nUmVmXTsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdp
bi5jcHAJKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA4LDcgKzYwOCw3
IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLUpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5n
UmVmIGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJp
bmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcpCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmlu
Z1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3Ry
aW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKIHsKICAgICBy
ZXR1cm4gMDsKIH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkocmV2aXNp
b24gMTY4MzUxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDcgKzE3OCw3IEBA
CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlz
c3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpIHsgcmV0dXJuIGZhbHNlOyB9CiB1bnNpZ25lZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShK
U0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBK
U1N0cmluZ1JlZiwgYm9vbCwgYm9vbCkgeyByZXR1cm4gMDsgfQogUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFy
Y2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwg
SlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpIHsgcmV0dXJuIDA7IH0KLUpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0
aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYsIEpTU3RyaW5n
UmVmKSB7IHJldHVybiBudWxscHRyOyB9CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpT
U3RyaW5nUmVmLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpIHsgcmV0dXJu
IG51bGxwdHI7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpIHsg
cmV0dXJuIDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiAwOyB9CkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaAkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwOCw3ICsyMDgsNyBAQAogICAgIGJvb2wgYXR0cmlidXRlZFN0cmluZ1Jhbmdl
SXNNaXNzcGVsbGVkKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHVu
c2lnbmVkIHVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiwgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCogc3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwg
SlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJs
ZU9ubHksIGJvb2wgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKICAgICBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRl
eHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9vbCBpc0RpcmVj
dGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBi
b29sIHZpc2libGVPbmx5LCBib29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7Ci0gICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVm
LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmlu
Z3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nKTsKKyAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gc2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVm
IGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdS
ZWYgcmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KTsKIAogICAgIC8vIFRl
eHQtc3BlY2lmaWMKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY2hhcmFjdGVyQXRPZmZz
ZXQoaW50IG9mZnNldCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5pZGwJKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTE2MCw3ICsxNjAsNyBAQAogICAgIGJvb2xlYW4gYXR0cmlidXRlZFN0
cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkIGxvbmcgbG9jYXRpb24sIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoKTsKICAgICBbUGFzc0NvbnRleHRdIHVuc2lnbmVkIGludCB1aUVsZW1lbnRDb3Vu
dEZvclNlYXJjaFByZWRpY2F0ZShBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHN0YXJ0RWxlbWVudCwg
Ym9vbGVhbiBpc0RpcmVjdGlvbk5leHQsIG9iamVjdCBzZWFyY2hLZXksIERPTVN0cmluZyBzZWFy
Y2hUZXh0LCBib29sZWFuIHZpc2libGVPbmx5LCBib29sZWFuIGltbWVkaWF0ZURlc2NlbmRhbnRz
T25seSk7CiAgICAgW1Bhc3NDb250ZXh0XSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHVpRWxlbWVu
dEZvclNlYXJjaFByZWRpY2F0ZShBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHN0YXJ0RWxlbWVudCwg
Ym9vbGVhbiBpc0RpcmVjdGlvbk5leHQsIG9iamVjdCBzZWFyY2hLZXksIERPTVN0cmluZyBzZWFy
Y2hUZXh0LCBib29sZWFuIHZpc2libGVPbmx5LCBib29sZWFuIGltbWVkaWF0ZURlc2NlbmRhbnRz
T25seSk7Ci0gICAgW1Bhc3NDb250ZXh0XSBET01TdHJpbmcgc2VsZWN0VGV4dFdpdGhDcml0ZXJp
YShET01TdHJpbmcgYW1iaWd1aXR5UmVzb2x1dGlvbiwgb2JqZWN0IHNlYXJjaFN0cmluZ3MsIERP
TVN0cmluZyByZXBsYWNlbWVudFN0cmluZyk7CisgICAgW1Bhc3NDb250ZXh0XSBET01TdHJpbmcg
c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShET01TdHJpbmcgYW1iaWd1aXR5UmVzb2x1dGlvbiwgb2Jq
ZWN0IHNlYXJjaFN0cmluZ3MsIERPTVN0cmluZyByZXBsYWNlbWVudFN0cmluZywgRE9NU3RyaW5n
IGFjdGl2aXR5KTsKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvbmcg
bG9jYXRpb24sIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKIAogICAgIC8vIFNjcm9sbCBhcmVhIGF0
dHJpYnV0ZXMuCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0
ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRr
LmNwcAkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0NjAsNyArMTQ2MCw3IEBACiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENy
aXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0
aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3Ry
aW5nKQorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
bGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFt
YmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYg
cmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24gMTY4MzUxKQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDc4LDcgKzQ3OCw3IEBACiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1
aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBs
YWNlbWVudFN0cmluZykKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYg
YW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1Jl
ZiByZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0JKHJldmlzaW9uIDE2ODM1MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI3Myw3ICsyNzMsNyBAQAogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkQXR0cmlidXRlOwog
fQogCi1zdGF0aWMgTlNEaWN0aW9uYXJ5ICpzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0
ZUZvckNyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBhbWJpZ3VpdHlS
ZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVmIHJlcGxhY2Vt
ZW50U3RyaW5nKQorc3RhdGljIE5TRGljdGlvbmFyeSAqc2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGVGb3JDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1i
aWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiBy
ZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IFtOU011dGFibGVEaWN0aW9uYXJ5
IGRpY3Rpb25hcnldOwogICAgIApAQCAtMzExLDYgKzMxMSw5IEBACiAgICAgfSBlbHNlCiAgICAg
ICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpAIkFYU2VsZWN0VGV4dEFjdGl2
aXR5RmluZEFuZFNlbGVjdCIgZm9yS2V5OkAiQVhTZWxlY3RUZXh0QWN0aXZpdHkiXTsKICAgICAK
KyAgICBpZiAoYWN0aXZpdHkpCisgICAgICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9i
amVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmFjdGl2aXR5XSBmb3JLZXk6QCJB
WFNlbGVjdFRleHRBY3Rpdml0eSJdOworICAgIAogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkQXR0
cmlidXRlOwogfQogCkBAIC0xMTY3LDEwICsxMTcwLDEwIEBACiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBh
bWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3MsIEpTU3RyaW5nUmVm
IHJlcGxhY2VtZW50U3RyaW5nKQorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTU3RyaW5nUmVmIGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5n
cywgSlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQog
ewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TRGljdGlvbmFyeSAqcGFyYW1l
dGVyaXplZEF0dHJpYnV0ZSA9IHNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3Jp
dGVyaWEoY29udGV4dCwgYW1iaWd1aXR5UmVzb2x1dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFj
ZW1lbnRTdHJpbmcpOworICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9
IHNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yQ3JpdGVyaWEoY29udGV4dCwgYW1i
aWd1aXR5UmVzb2x1dGlvbiwgc2VhcmNoU3RyaW5ncywgcmVwbGFjZW1lbnRTdHJpbmcsIGFjdGl2
aXR5KTsKICAgICBpZCByZXN1bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTpAIkFYU2VsZWN0VGV4dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1ldGVyOnBhcmFtZXRlcml6
ZWRBdHRyaWJ1dGVdOwogICAgIGlmIChbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXV0pCiAgICAgICAgIHJldHVybiBbcmVzdWx0IGNyZWF0ZUpTU3RyaW5nUmVmXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>