<?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>121602</bug_id>
          
          <creation_ts>2013-09-19 04:11:27 -0700</creation_ts>
          <short_desc>AX: Accessibility methods using textUnderElement should be declared as non-const</short_desc>
          <delta_ts>2013-09-23 08:28:07 -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>INVALID</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>
          
          <blocked>121558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930896</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-09-19 04:11:27 -0700</bug_when>
    <thetext>Since bug 120891 got fixed, the layout will always be updated by just using a TextIterator (it happens in the constructor), which is used from AccessibilityRenderObject::textUnderElement() when dealing with text objects. This means that calls to that method can potentially alter the accessibility tree and thus other methods relying on this should be considered as non-const.

See a longer explanation in https://bugs.webkit.org/show_bug.cgi?id=121558#c5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930897</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-09-19 04:12:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/15029309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930942</commentid>
    <comment_count>2</comment_count>
      <attachid>212066</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-09-19 07:21:24 -0700</bug_when>
    <thetext>Created attachment 212066
Patch proposal

Now attaching a patch proposal for this. I&apos;m not setting the r? flag yet because, even if I was very careful doing the changes, I&apos;m not entirely sure I haven&apos;t missed something that might showup in builds for other platform.

So, let&apos;s wait for the EWS first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930952</commentid>
    <comment_count>3</comment_count>
      <attachid>212066</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-09-19 07:57:01 -0700</bug_when>
    <thetext>Comment on attachment 212066
Patch proposal

So it seems my replace work + post processing work with grep did work fine, since EWS seems to be happy :)

Asking for review now, then</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932151</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-09-23 08:27:52 -0700</bug_when>
    <thetext>After to talking to Chris by email, it seems that a better way to proceed here is to make sure we call AccessibilityObject::updateBackingStore() from the wrapper layer, so we don&apos;t have any outdated layout once we call any of the functions that might end up calling textUnderElement, so it&apos;s safe and won&apos;t change the accessibility tree.

So, I&apos;m resolving this bug as invalid, and concentrating myself in fixing bug 121558, by implementing Chris&apos;s suggestion in the ATK layer too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212066</attachid>
            <date>2013-09-19 07:21:24 -0700</date>
            <delta_ts>2013-09-23 08:28:07 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2013-09-19-Mario-Sanchez-Prada-mario.prada-samsung.c.patch</filename>
            <type>text/plain</type>
            <size>81535</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBhOTViODhmY2QyYTFkM2JhM2IxNzYwZDFlOTU2MGU3Y2NmNzRhMTIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCAxOSBTZXAgMjAxMyAxMjoxOTo1NSArMDEwMApTdWJqZWN0OiBb
UEFUQ0ggMS8yXSAyMDEzLTA5LTE5ICBNYXJpbyBTYW5jaGV6IFByYWRhIAogPG1hcmlvLnByYWRh
QHNhbXN1bmcuY29tPgoKICAgICAgICBBWDogQWNjZXNzaWJpbGl0eSBtZXRob2RzIHVzaW5nIHRl
eHRVbmRlckVsZW1lbnQgc2hvdWxkIGJlIGRlY2xhcmVkIGFzIG5vbi1jb25zdAogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE2MDIKCiAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFVwZGF0ZSBhbGwgQWNjZXNzaWJpbGl0
eU9iamVjdCBtZXRob2RzIHRoYXQgbWlnaHQgZW5kIHVwIGNhbGxpbmcKICAgICAgICBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KCksIGVpdGhlciBkaXJlY3RseSBv
cgogICAgICAgIGluZGlyZWN0bHksIHRvIGJlIGRlY2xhcmVkIGFzIG5vbi1jb25zdC4gVGhpcyBp
cyBkdWUgdG8gdGhlIGZhY3QKICAgICAgICB0aGF0IHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpIHdpbGwgYmUgY2FsbGVkIGluIHRoZQogICAgICAgIGNvbnN0cnVjdG9yIG9m
IFRleHRJdGVyYXRvciwgcG90ZW50aWFsbHkgYWx0ZXJpbmcgdGhlIHN0YXRlIGJ5CiAgICAgICAg
bW9kaWZ5aW5nIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUuCgogICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUltYWdlTWFwTGluazo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGVjbGFyZSBp
dCBhcyBub24tY29uc3QuCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJbWFnZU1hcExp
bms6OnRpdGxlKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJbWFnZU1h
cExpbms6OnN0cmluZ1ZhbHVlRm9yTVNBQSk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpuYW1lRm9yTVNBQSk6IERpdHRvLgogICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmg6CiAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eUxpc3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0dG8uCiAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTog
RGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpzdHJp
bmdWYWx1ZSk6IERpdHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbi5oOgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFD
b250cm9scy5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6
OnRpdGxlKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2w6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpoZWxwVGV4dCk6IERpdHRvLgogICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
c0NvbnRhaW5lcjo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGl0dG8uCiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpoZWxwVGV4dCk6IERp
dHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5l
cjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmhlbHBUZXh0KTogRGl0dG8uCiAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVk
aWFUaW1lRGlzcGxheTo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGl0dG8uCiAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpzdHJpbmdWYWx1ZSk6IERp
dHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5o
OgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3Bw
OgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246Om5hbWVGb3JN
U0FBKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlv
bjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpzdHJpbmdWYWx1ZSk6IERpdHRvLgogICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaDoKICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwOgogICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaDoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1v
Y2tPYmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TW9ja09iamVjdDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuaDoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFyaWFBY2Nlc3NpYmlsaXR5
RGVzY3JpcHRpb24pOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmFsdGVybmF0aXZlVGV4dCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6dmlzaWJsZVRleHQpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmhlbHBUZXh0KTogRGl0dG8uCiAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphbHRlcm5hdGl2ZVRleHRGb3JXZWJBcmVhKTog
RGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb24pOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0KTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSk6IERpdHRvLgogICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgogICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eU9iamVjdENvbnRhaW5zVGV4dCk6IERpdHRvLgog
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoYXNNaXNzcGVsbGluZyk6IERp
dHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp2aXNpYmxlUG9zaXRp
b25SYW5nZUZvclJhbmdlKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmRvQVhTdHlsZVJhbmdlRm9ySW5kZXgpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6IERpdHRvLgogICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CiAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCk6IERpdHRvLgog
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb3JyZXNwb25kaW5nTGFiZWxG
b3JDb250cm9sRWxlbWVudCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24pOiBEaXR0by4KICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dGl0bGUpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6aGVscFRleHQpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nVmFsdWUpOiBEaXR0by4KICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCk6IERpdHRvLgogICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0ZXh0KTogRGl0dG8uCiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnRleHRMZW5ndGgpOiBEaXR0by4KICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRUZXh0KTogRGl0dG8uCiAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvckluZGV4
KTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmxpbmVCcmVh
a3MpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZG9BWFJh
bmdlRm9yTGluZSk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpkb0FYUmFuZ2VGb3JJbmRleCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojpkb0FYU3RyaW5nRm9yUmFuZ2UpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6ZG9BWEJvdW5kc0ZvclJhbmdlKTogRGl0dG8uCiAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ1ZhbHVlRm9yTVNBQSk6IERpdHRv
LgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpuYW1lRm9yTVNBQSk6IERp
dHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXNjcmlwdGlvbkZv
ck1TQUEpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9yVGV4dFJhbmdlKTogRGl0dG8uCiAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA6CiAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogRGl0dG8uCiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKTogRGl0dG8uCiAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omhhc1RleHRBbHRlcm5h
dGl2ZSk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpleHBvc2VzVGl0bGVVSUVsZW1lbnQpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0
by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCk6IERp
dHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0TGVu
Z3RoKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNlbGVjdGVkVGV4dCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCk6IERpdHRvLgogICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaW5lQnJlYWtzKTogRGl0dG8uCiAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvQVhSYW5nZUZvckxpbmUp
OiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9B
WFJhbmdlRm9ySW5kZXgpOiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdlKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvQVhCb3VuZHNGb3JSYW5nZSk6IERpdHRvLgog
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb3JyZXNwb25kaW5n
TGFiZWxGb3JDb250cm9sRWxlbWVudCk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZUZvck1TQUEpOiBEaXR0by4KICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bmFtZUZvck1TQUEpOiBEaXR0by4K
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVzY3JpcHRpb25G
b3JNU0FBKTogRGl0dG8uCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNlYXJjaEZpZWxkQnV0dG9ucy5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTog
RGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQnV0dG9ucy5oOgogICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6
IERpdHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmg6CiAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjp0aXRsZSk6IERp
dHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKTogRGl0dG8uCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuaDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6ZXhwb3Nlc1Rp
dGxlVUlFbGVtZW50KTogRGl0dG8uCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUNvbHVtbi5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNv
bHVtbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmg6CiAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6CiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmg6CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZVJvdy5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZVJvdzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93Lmg6CiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9yVGV4dFJhbmdlKTogRGl0dG8uCiAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6CiAg
ICAgICAgKHRleHRGb3JPYmplY3QpOiBBY2NlcHQgYSBub24tY29uc3QgQWNjZXNzaWJpbGl0eU9i
amVjdCBhcyBwYXJhbWV0ZXIuCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgMTQ4ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCAgICB8ICAgIDggKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaCAgICAgIHwgICAgOCArLQog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAgfCAgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmggICB8
ICAgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNw
cCAgIHwgICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRp
b24uaCAgICAgfCAgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFD
b250cm9scy5jcHAgICB8ICAgMjIgKy0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVkaWFDb250cm9scy5oICAgICB8ICAgMjIgKy0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RPcHRpb24uY3BwICB8ICAgIDYgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oICAgIHwgICAgNiArLQogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwICAgfCAgICAyICstCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oICAgICB8ICAgIDIgKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmNwcCAgICAgIHwgICAgMiArLQog
Li4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuaCAgICAgICAgfCAgICAy
ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgICAgICB8
ICAgMjQgKystLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCAg
ICAgICAgfCAgIDI0ICsrLS0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAgIHwgICAxMCArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmggfCAgIDU2ICsrKystLS0tCiAuLi4vQWNjZXNzaWJpbGl0eVByb2dy
ZXNzSW5kaWNhdG9yLmNwcCAgICAgICAgICAgICB8ICAgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oIHwgICAgMiArLQogLi4uL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgIDQwICsrKy0tLQogLi4u
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oICAgICAgfCAgIDQwICsr
Ky0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwICAgICAg
fCAgICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oICAg
ICAgICB8ICAgIDIgKy0KIC4uLi9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmNwcCAg
ICAgICAgICAgIHwgICAgNCArLQogLi4uL0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMu
aCAgICAgICAgICAgICAgfCAgICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTbGlkZXIuY3BwICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oIHwgICAgMiArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oICB8ICAgIDQgKy0KIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwICAgICAgIHwgICAgMiArLQogLi4uL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmggfCAgICA0ICstCiAu
Li4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwICAgICB8ICAgIDIg
Ky0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oICAgICAgIHwg
ICAgMiArLQogLi4uL0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAgICAgICAg
ICAgfCAgICAyICstCiAuLi4vQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmggICAg
ICAgICAgICB8ICAgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJv
dy5jcHAgICAgICAgIHwgICAgMiArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVSb3cuaCAgfCAgICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNz
aWJpbGl0eU9iamVjdEF0ay5jcHAgICB8ICAgIDIgKy0KIC4uLi9hdGsvV2ViS2l0QWNjZXNzaWJs
ZUludGVyZmFjZVRleHQuY3BwICAgICAgICAgIHwgICAgMiArLQogNDEgZmlsZXMgY2hhbmdlZCwg
MzE2IGluc2VydGlvbnMoKyksIDE2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFlNmU1
Mi4uNWViYTQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1MSBAQAorMjAxMy0wOS0xOSAgTWFy
aW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFY
OiBBY2Nlc3NpYmlsaXR5IG1ldGhvZHMgdXNpbmcgdGV4dFVuZGVyRWxlbWVudCBzaG91bGQgYmUg
ZGVjbGFyZWQgYXMgbm9uLWNvbnN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjE2MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgYWxsIEFjY2Vzc2liaWxpdHlPYmplY3QgbWV0aG9kcyB0aGF0
IG1pZ2h0IGVuZCB1cCBjYWxsaW5nCisgICAgICAgIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnRleHRVbmRlckVsZW1lbnQoKSwgZWl0aGVyIGRpcmVjdGx5IG9yCisgICAgICAgIGluZGlyZWN0
bHksIHRvIGJlIGRlY2xhcmVkIGFzIG5vbi1jb25zdC4gVGhpcyBpcyBkdWUgdG8gdGhlIGZhY3QK
KyAgICAgICAgdGhhdCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKSB3aWxs
IGJlIGNhbGxlZCBpbiB0aGUKKyAgICAgICAgY29uc3RydWN0b3Igb2YgVGV4dEl0ZXJhdG9yLCBw
b3RlbnRpYWxseSBhbHRlcmluZyB0aGUgc3RhdGUgYnkKKyAgICAgICAgbW9kaWZ5aW5nIHRoZSBh
Y2Nlc3NpYmlsaXR5IHRyZWUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluazo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGVjbGFyZSBpdCBhcyBub24tY29u
c3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjp0aXRsZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6c3Ry
aW5nVmFsdWVGb3JNU0FBKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rOjpuYW1lRm9yTVNBQSk6IERpdHRvLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxp
c3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0dG8uCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6c3RyaW5n
VmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
Qm94T3B0aW9uLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFD
b250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
Ojp0aXRsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpoZWxwVGV4dCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzQ29udGFpbmVyOjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24pOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpoZWxwVGV4
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHND
b250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZTo6aGVscFRleHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lZGlhVGltZURpc3BsYXk6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXk6OnN0cmlu
Z1ZhbHVlKTogRGl0dG8uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0T3B0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbjo6bmFtZUZvck1TQUEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6c3RyaW5nVmFs
dWUpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbi5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
UG9wdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0dG8uCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU1vY2tPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0
dG8uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TW9ja09iamVjdC5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6YXJpYUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFsdGVybmF0aXZlVGV4dCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVs
cFRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjphbHRlcm5hdGl2ZVRleHRGb3JXZWJBcmVhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxl
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OnRpdGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnN0cmluZ1ZhbHVlKTogRGl0dG8uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nl
c3NpYmlsaXR5T2JqZWN0Q29udGFpbnNUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpoYXNNaXNzcGVsbGluZyk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JSYW5nZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZG9BWFN0eWxl
UmFuZ2VGb3JJbmRleCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6IERpdHRvLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxl
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNj
ZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojp0aXRsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6aGVscFRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OnN0cmluZ1ZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0ZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0ZXh0TGVuZ3RoKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZFRleHQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsaW5lQnJlYWtz
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpkb0FYUmFu
Z2VGb3JMaW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpkb0FYUmFuZ2VGb3JJbmRleCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpkb0FYQm91bmRzRm9yUmFuZ2UpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ1ZhbHVlRm9yTVNBQSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6bmFtZUZvck1TQUEp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlc2NyaXB0
aW9uRm9yTVNBQSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldExlbmd0aEZvclRleHRSYW5nZSk6IERpdHRvLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFs
dWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
Omhhc1RleHRBbHRlcm5hdGl2ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dGV4dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6dGV4dExlbmd0aCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGlu
ZUJyZWFrcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6ZG9BWFJhbmdlRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFJhbmdlRm9ySW5kZXgpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvQVhTdHJpbmdGb3JSYW5nZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9B
WEJvdW5kc0ZvclJhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojpjb3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxlbWVudCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFs
dWVGb3JNU0FBKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpuYW1lRm9yTVNBQSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGVzY3JpcHRpb25Gb3JNU0FBKTogRGl0dG8uCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0
b25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbjo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKTogRGl0dG8uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlk
ZXJUaHVtYjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5VGFibGU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OnRpdGxlKTogRGl0dG8uCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0
by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmV4cG9zZXNUaXRsZVVJRWxl
bWVudCk6IERpdHRvLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Q29sdW1uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUhlYWRlckNvbnRhaW5lci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZVJvdzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOiBEaXR0by4KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9yVGV4dFJhbmdlKTogRGl0dG8uCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3Bw
OgorICAgICAgICAodGV4dEZvck9iamVjdCk6IEFjY2VwdCBhIG5vbi1jb25zdCBBY2Nlc3NpYmls
aXR5T2JqZWN0IGFzIHBhcmFtZXRlci4KKwogMjAxMy0wOS0xNyAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFJlbmRlck9iamVjdCBiaXQgZm9yIGlzQlIo
KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUltYWdlTWFwTGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbmsuY3BwCmluZGV4IDFjYjFjNjkuLmNjZDBlN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VN
YXBMaW5rLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUltYWdlTWFw
TGluazo6YWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4CiAg
ICAgICAgIHRleHRPcmRlci5hcHBlbmQoQWNjZXNzaWJpbGl0eVRleHQoc3VtbWFyeSwgU3VtbWFy
eVRleHQpKTsKIH0KICAgICAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjphY2Nl
c3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlJbWFnZU1h
cExpbms6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpCiB7CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBhcmlhTGFiZWwgPSBnZXRBdHRyaWJ1dGUoYXJpYV9sYWJlbEF0dHIpOwogICAgIGlmICgh
YXJpYUxhYmVsLmlzRW1wdHkoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCBTdHJpbmcgQWNjZXNzaWJp
bGl0eUltYWdlTWFwTGluazo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3QKICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiB9CiAgICAgCi1TdHJpbmcgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
azo6dGl0bGUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6OnRpdGxl
KCkKIHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRpdGxlID0gZ2V0QXR0cmlidXRlKHRpdGxl
QXR0cik7CiAgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpCkBAIC0xNzMsMTIgKzE3MywxMiBAQCBM
YXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6OmVsZW1lbnRSZWN0KCkgY29uc3QK
ICAgICByZXR1cm4gbV9hcmVhRWxlbWVudC0+Y29tcHV0ZVJlY3QocmVuZGVyZXIpOwogfQogICAg
IAotU3RyaW5nIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6OnN0cmluZ1ZhbHVlRm9yTVNBQSgp
IGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6c3RyaW5nVmFsdWVGb3JN
U0FBKCkKIHsKICAgICByZXR1cm4gdXJsKCk7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rOjpuYW1lRm9yTVNBQSgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluazo6bmFtZUZvck1TQUEoKQogewogICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5RGVzY3Jp
cHRpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluay5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKaW5kZXggN2EzZWMwOC4uNWFjZDc0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmgKQEAgLTU5LDEyICs1OSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBLVVJM
IHVybCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xpbmsoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9IAogICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KLSAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5n
IGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHRp
dGxlKCk7CisgICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCk7CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdDsKICAg
ICAKLSAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZUZvck1TQUEoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBuYW1lRm9yTVNBQSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHN0
cmluZ1ZhbHVlRm9yTVNBQSgpOworICAgIHZpcnR1YWwgU3RyaW5nIG5hbWVGb3JNU0FBKCk7CiAK
ICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAppbmRleCA4
MDM5Y2YwLi5jMWNjMmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0LmNwcApAQCAtNTMsNyArNTMsNyBAQCBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TGlzdChyZW5kZXJl
cikpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpCiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURl
ZmF1bHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxpc3QuaAppbmRleCBjNTkxNmFlLi40ZDMwN2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gTGlzdFJvbGU7IH0KIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9OwogICAgIAogaW5saW5lIEFjY2Vzc2liaWxpdHlM
aXN0KiB0b0FjY2Vzc2liaWxpdHlMaXN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHAKaW5kZXggNDg0YTIwZC4uYzI0Zjc1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9w
dGlvbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlMaXN0
Qm94T3B0aW9uOjplbGVtZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLWJv
b2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkKIHsKICAgICBpZiAoIW1fb3B0aW9uRWxlbWVudCkKICAgICAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbjo6Y2FuU2V0U2VsZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiB0
cnVlOwogfQogICAgIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpzdHJpbmdW
YWx1ZSgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OnN0cmluZ1Zh
bHVlKCkKIHsKICAgICBpZiAoIW1fb3B0aW9uRWxlbWVudCkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveE9wdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdEJveE9wdGlvbi5oCmluZGV4IDExNDQ0NWMuLmYzMTlhNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
T3B0aW9uLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1Nl
bGVjdGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc1NlbGVjdGVkT3B0aW9uQWN0aXZlKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdW
YWx1ZSgpOwogICAgIHZpcnR1YWwgRWxlbWVudCogYWN0aW9uRWxlbWVudCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uRWxlbWVudDsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChib29sKTsKQEAgLTcyLDcgKzcyLDcgQEAgcHJp
dmF0ZToKICAgICBpbnQgbGlzdEJveE9wdGlvbkluZGV4KCkgY29uc3Q7CiAgICAgSW50UmVjdCBs
aXN0Qm94T3B0aW9uUmVjdCgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RC
b3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7Ci0gICAgdmly
dHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9OwogICAgIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAKaW5kZXggM2E0NjRhZS4u
Zjk1Y2U1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VGV4dD4mIHRleAogfQogICAgIAogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbDo6dGl0bGUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6
OnRpdGxlKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY29udHJv
bHNQYW5lbCwgKEFTQ0lJTGl0ZXJhbCgiQ29udHJvbHNQYW5lbCIpKSk7CiAKQEAgLTE2MywxNyAr
MTYzLDE3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjp0aXRsZSgpIGNvbnN0
CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRpdGxlKCk7CiB9CiAKLVN0
cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24o
KSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmFjY2Vzc2liaWxpdHlE
ZXNjcmlwdGlvbigpCiB7CiAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcoY29udHJvbFR5cGVOYW1lKCkpOwogfQogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbDo6aGVscFRleHQoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2w6OmhlbHBUZXh0KCkKIHsKICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dEhlbHBUZXh0KGNvbnRyb2xUeXBlTmFtZSgpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFj
Y2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkK
IHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIW1fcmVuZGVyZXItPnN0eWxlKCkgfHwgbV9yZW5k
ZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUgfHwgY29udHJvbFR5cGUoKSA9
PSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIyNiwx
MiArMjI2LDEyIEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmNyZWF0ZShSZW5kCiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcihyZW5kZXJlcikpOwogfQog
Ci1TdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmFjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbigpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHND
b250YWluZXI6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpCiB7CiAgICAgcmV0dXJuIGxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoZWxlbWVudFR5cGVOYW1lKCkpOwogfQogCi1T
dHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmhlbHBUZXh0KCkgY29u
c3QKK1N0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6aGVscFRleHQo
KQogewogICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoZWxl
bWVudFR5cGVOYW1lKCkpOwogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIGNvbnN0IFN0cmluZyBBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6ZWxlbWVudFR5cGVOYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gYXVkaW9FbGVtZW50OwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzQ29udGFpbmVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citi
b29sIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpCiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURl
ZmF1bHQoKTsKIH0KQEAgLTI4NCw3ICsyODQsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlh
VGltZWxpbmU6OnZhbHVlRGVzY3JpcHRpb24oKSBjb25zdAogICAgIHJldHVybiBsb2NhbGl6ZWRN
ZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRp
YVRpbWVsaW5lOjpoZWxwVGV4dCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhVGlt
ZWxpbmU6OmhlbHBUZXh0KCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc2xpZGVyLCAoQVNDSUlMaXRlcmFsKCJTbGlkZXIiKSkpOwogICAgIHJldHVybiBsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoc2xpZGVyKTsKQEAgLTMwNCw3ICszMDQsNyBA
QCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVE
aXNwbGF5OjpjcmVhdGUoUmVuZGVyT2JqZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNz
aWJpbGl0eU1lZGlhVGltZURpc3BsYXkocmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmls
aXR5TWVkaWFUaW1lRGlzcGxheTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAorYm9vbCBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKQogewogICAgIGlmICghbV9yZW5kZXJlciB8fCAhbV9yZW5kZXJlci0+c3R5
bGUoKSB8fCBtX3JlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC0zMTUsNyArMzE1LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
TWVkaWFUaW1lRGlzcGxheTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAog
ICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KCk7CiB9CiAKLVN0cmlu
ZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
KCkgY29uc3QKK1N0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNjZXNzaWJp
bGl0eURlc2NyaXB0aW9uKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgY3VycmVudFRpbWVEaXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJDdXJyZW50VGltZURpc3BsYXki
KSkpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lUmVtYWluaW5n
RGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKSkpOwpAQCAtMzI2
LDcgKzMyNiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNjZXNz
aWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3QKICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudFN0cmluZyh0aW1lUmVtYWluaW5nRGlzcGxheSk7CiB9CiAKLVN0cmluZyBBY2Nl
c3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6c3RyaW5nVmFsdWUoKSBjb25zdAorU3RyaW5nIEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpzdHJpbmdWYWx1ZSgpCiB7CiAgICAgaWYgKCFt
X3JlbmRlcmVyIHx8ICFtX3JlbmRlcmVyLT5ub2RlKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lZGlhQ29udHJvbHMuaAppbmRleCAzMzdlYzVjLi5iZDM1OGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250
cm9scy5oCkBAIC00NSwxNiArNDUsMTYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFN0cmluZyB0aXRsZSgpOworICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlw
dGlvbigpOworICAgIHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCk7CiAKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sKFJlbmRlck9iamVjdCopOwogICAg
IE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGNvbnRyb2xUeXBlKCkgY29uc3Q7CiAgICAgU3RyaW5n
IGNvbnRyb2xUeXBlTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5
VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+Jik7Ci0gICAgdmlydHVhbCBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9OwogCiAKQEAgLTY2LDcgKzY2LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFUaW1lbGluZSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCkgY29uc3Q7CisgICAgdmly
dHVhbCBTdHJpbmcgaGVscFRleHQoKTsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZURlc2NyaXB0
aW9uKCkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKSBjb25zdDsKIApAQCAtODMsMTQgKzgzLDE0IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gVG9vbGJhclJvbGU7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29u
c3Q7CisgICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBh
Y2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcihSZW5kZXJPYmplY3QqKTsKICAgICBib29s
IGNvbnRyb2xsaW5nVmlkZW9FbGVtZW50KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nIGVsZW1l
bnRUeXBlTmFtZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpOwogfTsKIAogCkBAIC0xMDIsMTMgKzEwMiwxMyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIEFw
cGxpY2F0aW9uVGltZXJSb2xlOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNv
bnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlKCk7CisgICAgdmlydHVhbCBTdHJp
bmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
QWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVh
bCBib29sIGlzTWVkaWFDb250cm9sTGFiZWwoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9OwogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0T3B0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uLmNwcAppbmRleCA4OGUyZTZlLi5iZmIyM2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb24uY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0
T3B0aW9uOjpzZXRTZWxlY3RlZChib29sIGIpCiAgICAgdG9IVE1MT3B0aW9uRWxlbWVudChtX2Vs
ZW1lbnQuZ2V0KCkpLT5zZXRTZWxlY3RlZChiKTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbjo6bmFtZUZvck1TQUEoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbjo6bmFtZUZvck1TQUEoKQogewogICAgIHJldHVybiBzdHJpbmdWYWx1ZSgp
OwogfQpAQCAtOTYsNyArOTYsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6
Y2FuU2V0U2VsZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBpc0VuYWJsZWQoKTsK
IH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpCiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKIH0KQEAgLTExMiw3ICsxMTIsNyBAQCBMYXlvdXRSZWN0
IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6ZWxlbWVudFJlY3QoKSBjb25zdAogICAgIHJl
dHVybiBncmFuZHBhcmVudC0+ZWxlbWVudFJlY3QoKTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbjo6c3RyaW5nVmFsdWUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbjo6c3RyaW5nVmFsdWUoKQogewogICAgIHJldHVybiB0b0hUTUxPcHRp
b25FbGVtZW50KG1fZWxlbWVudC5nZXQoKSktPnRleHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5o
CmluZGV4IGMzNDBiN2UuLmFhYmM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaApAQCAtNTIsMTIg
KzUyLDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVmlzaWJsZSgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBp
c1NlbGVjdGVkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgbmFtZUZvck1TQUEoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lRm9yTVNBQSgpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTZWxlY3RlZChib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U2VsZWN0ZWRBdHRyaWJ1
dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3Ry
aW5nIHN0cmluZ1ZhbHVlKCk7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1fZWxlbWVudDsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdFBvcHVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuY3BwCmluZGV4IDg4YmFkZDEuLjQ2NTRjMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
UG9wdXAuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXA6OmlzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50LT5pc0VuYWJsZWQoKTsK
IH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKQogewogICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkQnlEZWZhdWx0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKaW5kZXggNTJiMzBkYy4u
ZDMxZDQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBwcmVzcygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGls
ZHJlbigpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoKTsKLSAgICB2aXJ0dWFs
IGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIAogICAgIEFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbiogbWVudUxpc3RPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxF
bGVtZW50KikgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TW9ja09iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmNwcAppbmRleCBmNDgxNTYxLi5kNmIyNTQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
b2NrT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNb2NrT2JqZWN0LmNwcApAQCAtMzcsNyArMzcsNyBAQCBBY2Nlc3NpYmlsaXR5TW9ja09i
amVjdDo6fkFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0KCkKIHsKIH0KICAgICAKLWJvb2wgQWNjZXNz
aWJpbGl0eU1vY2tPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QK
K2Jvb2wgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkKIHsKICAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TW9ja09iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TW9ja09iamVjdC5oCmluZGV4IGQzYzE0MmEuLmZmNzQ0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmgKQEAgLTUw
LDcgKzUwLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2Nr
T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9OyAKICAgICAKIGlubGluZSBBY2Nlc3NpYmls
aXR5TW9ja09iamVjdCogdG9BY2Nlc3NpYmlsaXR5TW9ja09iamVjdChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGI4MTlmYWQuLjE1OGMyOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCkBAIC0zOTgsNyArMzk4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKICAgICB9CiB9CiAKLWJvb2wgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jv
b2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgLy8gRG91YmxlLWNoZWNrIHRoYXQgYW4gQWNjZXNz
aWJpbGl0eU9iamVjdCBpcyBuZXZlciBhY2Nlc3NlZCBiZWZvcmUKQEAgLTExMTksNyArMTExOSw3
IEBAIEhUTUxMYWJlbEVsZW1lbnQqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpsYWJlbEZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkgY29uCiAgICAgcmV0dXJuIGVuY2xvc2luZ0xhYmVsICE9
IGxhYmVsQW5jZXN0b3JzLmVuZCgpID8gJiplbmNsb3NpbmdMYWJlbCA6IG51bGxwdHI7CiB9CiAK
LVN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YXJpYUFjY2Vzc2liaWxpdHlEZXNjcmlw
dGlvbigpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFyaWFBY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb24oKQogewogICAgIFN0cmluZyBhcmlhTGFiZWxlZEJ5ID0gYXJpYUxh
YmVsZWRCeUF0dHJpYnV0ZSgpOwogICAgIGlmICghYXJpYUxhYmVsZWRCeS5pc0VtcHR5KCkpCkBA
IC0xMjA0LDcgKzEyMDQsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZUVs
ZW1lbnRUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcgogICAgICAgICB0ZXh0
T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KFN0cmluZygpLCBMYWJlbEJ5RWxlbWVudFRl
eHQsIHRpdGxlVUlFbGVtZW50KSk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmFsdGVybmF0aXZlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3JkZXIpIGNv
bnN0Cit2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphbHRlcm5hdGl2ZVRleHQoVmVjdG9y
PEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dE9yZGVyKQogewogICAgIGlmIChpc1dlYkFyZWEoKSkg
ewogICAgICAgICBTdHJpbmcgd2ViQXJlYVRleHQgPSBhbHRlcm5hdGl2ZVRleHRGb3JXZWJBcmVh
KCk7CkBAIC0xMjQzLDcgKzEyNDMsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojph
bHRlcm5hdGl2ZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dE9yZAogI2VuZGlm
CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0KFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikgY29uc3QKK3ZvaWQgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OnZpc2libGVUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRl
cikKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKQEAg
LTEzMDUsNyArMTMwNSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVU
ZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikKICAgICB9CiB9CiAKLXZv
aWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmhlbHBUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mIHRleHRPcmRlcikgY29uc3QKK3ZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omhl
bHBUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikKIHsKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGFyaWFIZWxwID0gZ2V0QXR0cmlidXRlKGFyaWFfaGVscEF0dHIpOwog
ICAgIGlmICghYXJpYUhlbHAuaXNFbXB0eSgpKQpAQCAtMTM2OCw3ICsxMzY4LDcgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YXJpYUxhYmVsZWRCeVRleHQoVmVjdG9yPEFjY2Vzc2li
aWxpdHlUZXh0PiYgdGV4dE8KICAgICB9CiB9CiAgICAgCi1TdHJpbmcgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdAorU3RyaW5nIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjphbHRlcm5hdGl2ZVRleHRGb3JXZWJBcmVhKCkKIHsKICAgICAv
LyBUaGUgV2ViQXJlYSBkZXNjcmlwdGlvbiBzaG91bGQgZm9sbG93IHRoaXMgb3JkZXI6CiAgICAg
Ly8gICAgIGFyaWEtbGFiZWwgb24gdGhlIDxodG1sPgpAQCAtMTQxNCw3ICsxNDE0LDcgQEAgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphbHRlcm5hdGl2ZVRleHRGb3JXZWJBcmVhKCkg
Y29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAgICAgCi1TdHJpbmcgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0CitTdHJpbmcgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpCiB7CiAgICAg
Ly8gU3RhdGljIHRleHQgc2hvdWxkIG5vdCBoYXZlIGEgZGVzY3JpcHRpb24sIGl0IHNob3VsZCBv
bmx5IGhhdmUgYSBzdHJpbmdWYWx1ZS4KICAgICBpZiAocm9sZVZhbHVlKCkgPT0gU3RhdGljVGV4
dFJvbGUpCkBAIC0xNDUzLDcgKzE0NTMsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygp
OwogfQogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QK
K1N0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQoKQogewogICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQpAQCAtMTU3NCw3ICsxNTc0LDcg
QEAgc3RhdGljIGJvb2wgc2hvdWxkQWRkU3BhY2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVudChT
dHJpbmdCdWlsZGVyJiBidWlsZGVyLCBTdHIKICAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJlYWso
Y2hpbGRUZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoYnVpbGRlcltidWlsZGVyLmxlbmd0aCgp
IC0gMV0pKTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJF
bGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSBtb2RlKSBjb25zdAorU3Ry
aW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxp
dHlUZXh0VW5kZXJFbGVtZW50TW9kZSBtb2RlKQogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5u
b2RlKCk7CiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNUZXh0Tm9kZSgpKQpAQCAtMTYwNyw3ICsx
NjA3LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50
KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW8KICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZUJ1
dE5vdExpbmVCcmVhayk7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0
bGUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSgpCiB7CiAg
ICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKICAgICBpZiAoIW5vZGUpCkBAIC0xNjY4LDcg
KzE2NjgsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29uc3QK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHQoKQog
ewogICAgIC8vIElmIHRoaXMgaXMgYSB1c2VyIGRlZmluZWQgc3RhdGljIHRleHQsIHVzZSB0aGUg
YWNjZXNzaWJsZSBuYW1lIGNvbXB1dGF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgPT0gU3RhdGljVGV4dFJvbGUp
CkBAIC0xNjkwLDcgKzE2OTAsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRl
eHQoKSBjb25zdAogICAgIHJldHVybiB0b0VsZW1lbnQobm9kZSktPmlubmVyVGV4dCgpOwogfQog
Ci1TdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKK1N0
cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUoKQogewogICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNj
YTU0ZDQuLjg3MTI4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTEyMCwxMiArMTIwLDEyIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlCdXR0b25TdGF0ZSBjaGVja2JveE9yUmFkaW9W
YWx1ZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBoaWVyYXJjaGljYWxMZXZlbCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0
eVRleHRVbmRlckVsZW1lbnRNb2RlID0gQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2Rl
KCkpIGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigp
IGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBTdHJpbmcgdGl0bGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0KCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0
cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSA9
IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoZWxwVGV4
dCgpOworICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxlKCk7CisgICAgdmlydHVhbCBTdHJpbmcgdGV4
dCgpOworICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlKCk7CiAgICAgdmlydHVhbCB2b2lk
IGNvbG9yVmFsdWUoaW50JiByLCBpbnQmIGcsIGludCYgYikgY29uc3Q7CiAgICAgdmlydHVhbCBT
dHJpbmcgYXJpYUxhYmVsZWRCeUF0dHJpYnV0ZSgpIGNvbnN0OwogCkBAIC0xNzgsNyArMTc4LDcg
QEAgcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgcmV0dXJucyB0cnVlIGlmIGl0J3MgZm9jdXNhYmxl
IGJ1dCBpdCdzIG5vdCBjb250ZW50IGVkaXRhYmxlIGFuZCBpdCdzIG5vdCBhIGNvbnRyb2wgb3Ig
QVJJQSBjb250cm9sLgogICAgIGJvb2wgaXNHZW5lcmljRm9jdXNhYmxlRWxlbWVudCgpIGNvbnN0
OwogICAgIEhUTUxMYWJlbEVsZW1lbnQqIGxhYmVsRm9yRWxlbWVudChFbGVtZW50KikgY29uc3Q7
Ci0gICAgU3RyaW5nIGFyaWFBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdDsKKyAgICBT
dHJpbmcgYXJpYUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpOwogICAgIHZvaWQgYXJpYUxhYmVs
ZWRCeUVsZW1lbnRzKFZlY3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzKSBjb25zdDsKICAgICBTdHJp
bmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1lbnQqPiAm
ZWxlbWVudHMpIGNvbnN0OwogICAgIHZvaWQgZWxlbWVudHNGcm9tQXR0cmlidXRlKFZlY3RvcjxF
bGVtZW50Kj4mIGVsZW1lbnRzLCBjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CkBAIC0xOTQs
MTIgKzE5NCwxMiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlU
ZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKTsKICAgICB2b2lkIHRpdGxlRWxlbWVudFRl
eHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpOwotICAgIHZvaWQgYWx0ZXJuYXRpdmVUZXh0
KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICB2b2lkIHZpc2libGVUZXh0
KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICB2b2lkIGhlbHBUZXh0KFZl
Y3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICBTdHJpbmcgYWx0ZXJuYXRpdmVU
ZXh0Rm9yV2ViQXJlYSgpIGNvbnN0OworICAgIHZvaWQgYWx0ZXJuYXRpdmVUZXh0KFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VGV4dD4mKTsKKyAgICB2b2lkIHZpc2libGVUZXh0KFZlY3RvcjxBY2Nlc3Np
YmlsaXR5VGV4dD4mKTsKKyAgICB2b2lkIGhlbHBUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4
dD4mKTsKKyAgICBTdHJpbmcgYWx0ZXJuYXRpdmVUZXh0Rm9yV2ViQXJlYSgpOwogICAgIHZvaWQg
YXJpYUxhYmVsZWRCeVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0OwotICAg
IHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwogfTsKIAogaW5s
aW5lIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KiB0b0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2NWQ4MjQuLjBiZjE3ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMjY2LDcgKzI2Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBY2Nlc3NpYmlsaXR5VGV4dFNlYXJjaE1hdGNoKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4CiAg
ICAgcmV0dXJuIGF4T2JqZWN0LT5hY2Nlc3NpYmlsaXR5T2JqZWN0Q29udGFpbnNUZXh0KGNyaXRl
cmlhLT5zZWFyY2hUZXh0KTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3Np
YmlsaXR5T2JqZWN0Q29udGFpbnNUZXh0KFN0cmluZyogdGV4dCkgY29uc3QKK2Jvb2wgQWNjZXNz
aWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eU9iamVjdENvbnRhaW5zVGV4dChTdHJpbmcqIHRl
eHQpCiB7CiAgICAgLy8gSWYgdGV4dCBpcyBudWxsIG9yIGVtcHR5IHdlIHJldHVybiB0cnVlLgog
ICAgIHJldHVybiAhdGV4dApAQCAtMzExLDcgKzMxMSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNMYW5kbWFyaygpIGNvbnN0CiAgICAgICAgIHx8IHJvbGUgPT0gTGFuZG1hcmtTZWFy
Y2hSb2xlOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omhhc01pc3NwZWxsaW5nKCkg
Y29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aGFzTWlzc3BlbGxpbmcoKQogewogICAg
IGlmICghbm9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04MDQsNyArODA0LDcgQEAg
VmlzaWJsZVBvc2l0aW9uUmFuZ2UgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3R5bGVSYW5nZUZvclBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3MKIH0KIAogLy8gTk9URTogQ29uc2lkZXIgcHJvdmlkaW5n
IHRoaXMgdXRpbGl0eSBtZXRob2QgYXMgQVggQVBJCi1WaXNpYmxlUG9zaXRpb25SYW5nZSBBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25SYW5nZUZvclJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJiByYW5nZSkgY29uc3QKK1Zpc2libGVQb3NpdGlvblJhbmdlIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnZpc2libGVQb3NpdGlvblJhbmdlRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFu
Z2UmIHJhbmdlKQogewogICAgIHVuc2lnbmVkIHRleHRMZW5ndGggPSBnZXRMZW5ndGhGb3JUZXh0
UmFuZ2UoKTsKICAgICBpZiAocmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGggPiB0ZXh0TGVuZ3Ro
KQpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eU9iamVj
dDo6ZG9BWFJhbmdlRm9yUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvaW50KQogCiAvLyBHaXZl
biBhIGNoYXJhY3RlciBpbmRleCwgdGhlIHJhbmdlIG9mIHRleHQgYXNzb2NpYXRlZCB3aXRoIHRo
aXMgYWNjZXNzaWJpbGl0eSBvYmplY3QKIC8vIG92ZXIgd2hpY2ggdGhlIHN0eWxlIGluIGVmZmVj
dCBhdCB0aGF0IGNoYXJhY3RlciBpbmRleCBhcHBsaWVzLgotUGxhaW5UZXh0UmFuZ2UgQWNjZXNz
aWJpbGl0eU9iamVjdDo6ZG9BWFN0eWxlUmFuZ2VGb3JJbmRleCh1bnNpZ25lZCBpbmRleCkgY29u
c3QKK1BsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRvQVhTdHlsZVJhbmdlRm9y
SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7CiAgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgcmFuZ2Ug
PSBzdHlsZVJhbmdlRm9yUG9zaXRpb24odmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXgsIGZh
bHNlKSk7CiAgICAgcmV0dXJuIHBsYWluVGV4dFJhbmdlRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
cmFuZ2UpOwpAQCAtMjAxMiw3ICsyMDEyLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
biBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3QKICAg
ICByZXR1cm4gYWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QoKTsKIH0KICAgICAK
LWJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
Citib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKQogewog
ICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSogYXR0cmlidXRlQ2FjaGUgPSBheE9i
amVjdENhY2hlKCktPmNvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKTsKICAgICBpZiAoYXR0
cmlidXRlQ2FjaGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggOWU3NTk4OC4uMjYyNTVmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQwMiw3
ICs0MDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vz
c2liaWxpdHlTVkdSb290KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgYWNj
ZXNzaWJpbGl0eU9iamVjdENvbnRhaW5zVGV4dChTdHJpbmcgKikgY29uc3Q7CisgICAgYm9vbCBh
Y2Nlc3NpYmlsaXR5T2JqZWN0Q29udGFpbnNUZXh0KFN0cmluZyAqKTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgaXNBbmNob3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0F0dGFjaG1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNDk3LDcgKzQ5
Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNCb2xkRm9udCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0l0YWxpY0ZvbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaGFzTWlzc3BlbGxpbmcoKSBjb25zdDsKKyAgICBi
b29sIGhhc01pc3NwZWxsaW5nKCk7CiAgICAgdmlydHVhbCBib29sIGhhc1BsYWluVGV4dCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc1NhbWVGb250KFJlbmRl
ck9iamVjdCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc1Nh
bWVGb250Q29sb3IoUmVuZGVyT2JqZWN0KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTUx
Niw3ICs1MTYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBOb2RlKiBub2RlKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiByZW5kZXJlcigpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlZmF1bHRPYmplY3RJbmNs
dXNpb24oKSBjb25zdDsKICAgICBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQo
KSBjb25zdDsKICAgICAKQEAgLTU4Myw4ICs1ODMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQogICAgIHZpcnR1YWwgdm9pZCBsaW5rZWRVSUVsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogdGl0
bGVVSUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBib29sIGV4cG9z
ZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGNvcnJlc3BvbmRpbmdMYWJlbEZvckNvbnRyb2xFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCBleHBvc2VzVGl0bGVVSUVsZW1l
bnQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBj
b3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxlbWVudCgpIHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcnJlc3BvbmRpbmdDb250cm9sRm9yTGFiZWxF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbikgeyByZXR1cm4gMDsgfQog
ICAgIApAQCAtNTk5LDE1ICs1OTksMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y2Nlc3NpYmxlTmFtZShjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KIAogICAgIC8vIEFjY2Vzc2li
aWxpdHkgVGV4dCAtIChUbyBiZSBkZXByZWNhdGVkKS4KLSAgICB2aXJ0dWFsIFN0cmluZyBhY2Nl
c3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZp
cnR1YWwgU3RyaW5nIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KLSAgICB2aXJ0
dWFsIFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmly
dHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgeyByZXR1cm4gU3RyaW5nKCk7
IH0KKyAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAg
dmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQogCiAgICAgLy8g
TWV0aG9kcyBmb3IgZGV0ZXJtaW5pbmcgYWNjZXNzaWJpbGl0eSB0ZXh0LgotICAgIHZpcnR1YWwg
U3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KLSAgICB2aXJ0
dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50
TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdCB7IHJldHVy
biBTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBT
dHJpbmcoKTsgfQotICAgIHZpcnR1YWwgaW50IHRleHRMZW5ndGgoKSBjb25zdCB7IHJldHVybiAw
OyB9CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSB7IHJldHVybiBTdHJpbmcoKTsg
fQorICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW1lbnRNb2RlID0gQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKCkpIHsg
cmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgdGV4dCgpIHsgcmV0dXJuIFN0
cmluZygpOyB9CisgICAgdmlydHVhbCBpbnQgdGV4dExlbmd0aCgpIHsgcmV0dXJuIDA7IH0KICAg
ICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFiZWxlZEJ5QXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4g
U3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBhcmlhRGVzY3JpYmVkQnlBdHRyaWJ1dGUo
KSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcGxh
Y2Vob2xkZXJWYWx1ZSgpIGNvbnN0OwpAQCAtNjQzLDcgKzY0Myw3IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2aXJ0dWFsIEtVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gS1VSTCgpOyB9CiAgICAgdmly
dHVhbCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIFZpc2libGVT
ZWxlY3Rpb24oKTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIHNlbGVjdGVkVGV4dCgpIGNvbnN0IHsg
cmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYWNjZXNz
S2V5KCkgY29uc3QgeyByZXR1cm4gbnVsbEF0b207IH0KICAgICBjb25zdCBTdHJpbmcmIGFjdGlv
blZlcmIoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0KCkgY29uc3QgeyByZXR1
cm4gMDsgfQpAQCAtNzE3LDcgKzcxNyw3IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlUG9zaXRpb25S
YW5nZSBzZW50ZW5jZUZvclBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0Owog
ICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHBhcmFncmFwaEZvclBvc2l0aW9uKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpIGNvbnN0OwogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHN0eWxlUmFuZ2VG
b3JQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKLSAgICBWaXNpYmxlUG9z
aXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvclJhbmdlKGNvbnN0IFBsYWluVGV4dFJh
bmdlJikgY29uc3Q7CisgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFu
Z2VGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zv
clZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Q7
CiAgICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0
IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CkBAIC03
MzUsOSArNzM1LDkgQEAgcHVibGljOgogICAgIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c1NlbnRl
bmNlU3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAgICBWaXNp
YmxlUG9zaXRpb24gbmV4dFBhcmFncmFwaEVuZFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIGNvbnN0OwogICAgIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c1BhcmFncmFwaFN0YXJ0UG9z
aXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBWaXNpYmxl
UG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodW5zaWduZWQsIGJvb2wgLypsYXN0SW5k
ZXhPSyAqLykgY29uc3QgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7IH0KKyAgICB2aXJ0dWFs
IFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCh1bnNpZ25lZCwgYm9vbCAv
Kmxhc3RJbmRleE9LICovKSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQogICAgIAotICAg
IHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCkgY29u
c3QgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIFZpc2libGVQb3Np
dGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQpIHsgcmV0dXJuIFZpc2libGVQb3NpdGlv
bigpOyB9CiAgICAgdmlydHVhbCBpbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogYWNjZXNzaWJpbGl0eU9iamVjdEZvclBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIGNvbnN0OwpAQCAtNzQ1LDIyICs3NDUsMjIgQEAgcHVibGljOgogICAgIFBsYWluVGV4dFJh
bmdlIHBsYWluVGV4dFJhbmdlRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBv
c2l0aW9uUmFuZ2UmKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBpbmRleChjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSBjb25zdCB7IHJldHVybiAtMTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxpbmVC
cmVha3MoVmVjdG9yPGludD4mKSBjb25zdCB7IH0KLSAgICB2aXJ0dWFsIFBsYWluVGV4dFJhbmdl
IGRvQVhSYW5nZUZvckxpbmUodW5zaWduZWQpIGNvbnN0IHsgcmV0dXJuIFBsYWluVGV4dFJhbmdl
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbGluZUJyZWFrcyhWZWN0b3I8aW50PiYpIHsgfQorICAg
IHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9yTGluZSh1bnNpZ25lZCkgeyByZXR1
cm4gUGxhaW5UZXh0UmFuZ2UoKTsgfQogICAgIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvclBv
c2l0aW9uKGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBQbGFpblRleHRSYW5n
ZSBkb0FYUmFuZ2VGb3JJbmRleCh1bnNpZ25lZCkgY29uc3QgeyByZXR1cm4gUGxhaW5UZXh0UmFu
Z2UoKTsgfQotICAgIFBsYWluVGV4dFJhbmdlIGRvQVhTdHlsZVJhbmdlRm9ySW5kZXgodW5zaWdu
ZWQpIGNvbnN0OworICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9ySW5kZXgo
dW5zaWduZWQpIHsgcmV0dXJuIFBsYWluVGV4dFJhbmdlKCk7IH0KKyAgICBQbGFpblRleHRSYW5n
ZSBkb0FYU3R5bGVSYW5nZUZvckluZGV4KHVuc2lnbmVkKTsKIAotICAgIHZpcnR1YWwgU3RyaW5n
IGRvQVhTdHJpbmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0IHsgcmV0dXJu
IFN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBJbnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5nZShjb25z
dCBQbGFpblRleHRSYW5nZSYpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAgIHZpcnR1
YWwgU3RyaW5nIGRvQVhTdHJpbmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIHsgcmV0
dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5nZShj
b25zdCBQbGFpblRleHRSYW5nZSYpIHsgcmV0dXJuIEludFJlY3QoKTsgfQogICAgIFN0cmluZyBs
aXN0TWFya2VyVGV4dEZvck5vZGVBbmRQb3NpdGlvbihOb2RlKiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgY29uc3Q7CiAKICAgICB1bnNpZ25lZCBkb0FYTGluZUZvckluZGV4KHVuc2lnbmVkKTsK
IAotICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlRm9yTVNBQSgpIGNvbnN0IHsgcmV0dXJu
IFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWVGb3JNU0FBKCkgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdSb2xlRm9yTVNBQSgp
IGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgbmFtZUZvck1T
QUEoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGRlc2Ny
aXB0aW9uRm9yTVNBQSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBT
dHJpbmcgbmFtZUZvck1TQUEoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgU3Ry
aW5nIGRlc2NyaXB0aW9uRm9yTVNBQSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWVGb3JNU0FBKCkgY29uc3QgeyByZXR1cm4gcm9s
ZVZhbHVlKCk7IH0KIAogICAgIHZpcnR1YWwgU3RyaW5nIHBhc3N3b3JkRmllbGRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CkBAIC04ODksNyArODg5LDcgQEAgcHJvdGVjdGVkOgog
ICAgIEFjY2Vzc2liaWxpdHlSb2xlIG1fcm9sZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5j
bHVzaW9uIG1fbGFzdEtub3duSXNJZ25vcmVkVmFsdWU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgLy8gSWYgdGhpcyBvYmplY3QgaXRzZWxmIHNjcm9sbHMsIHJldHVybiBpdHMg
U2Nyb2xsYWJsZUFyZWEuCiAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJs
ZUFyZWFJZlNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiAwOyB9CkBAIC05MDUsMTAgKzkwNSwx
MCBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAjaWYgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oRUZM
KSAmJiBIQVZFKEFDQ0VTU0lCSUxJVFkpKQogICAgIGJvb2wgYWxsb3dzVGV4dFJhbmdlcygpIGNv
bnN0OwotICAgIHVuc2lnbmVkIGdldExlbmd0aEZvclRleHRSYW5nZSgpIGNvbnN0OworICAgIHVu
c2lnbmVkIGdldExlbmd0aEZvclRleHRSYW5nZSgpOwogI2Vsc2UKICAgICBib29sIGFsbG93c1Rl
eHRSYW5nZXMoKSBjb25zdCB7IHJldHVybiBpc1RleHRDb250cm9sKCk7IH0KLSAgICB1bnNpZ25l
ZCBnZXRMZW5ndGhGb3JUZXh0UmFuZ2UoKSBjb25zdCB7IHJldHVybiB0ZXh0KCkubGVuZ3RoKCk7
IH0KKyAgICB1bnNpZ25lZCBnZXRMZW5ndGhGb3JUZXh0UmFuZ2UoKSB7IHJldHVybiB0ZXh0KCku
bGVuZ3RoKCk7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuY3BwCmluZGV4IDFkYWMxMDkuLjhkMjg1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0lu
ZGljYXRvci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXQKIH0K
ICNlbmRpZgogCi1ib29sIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3I6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkKIHsKICAgICByZXR1cm4g
YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yLmgKaW5kZXggMzE0NGM4Yi4uODYwZDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5o
CkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgSFRNTE1ldGVyRWxlbWVudCogbWV0ZXJF
bGVtZW50KCkgY29uc3Q7CiAjZW5kaWYKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXgg
MGU0OTU5MS4uZmU0YWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC01ODQsNyArNTg0LDcg
QEAgRWxlbWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YW5jaG9yRWxlbWVudCgpIGNv
bnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpoZWxwVGV4dCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGVs
cFRleHQoKQogewogICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwpAQCAtNjIzLDcgKzYyMyw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpo
ZWxwVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVu
ZGVyRWxlbWVudE1vZGUgbW9kZSkgY29uc3QKK1N0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSBt
b2RlKQogewogICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwpA
QCAtNjg0LDcgKzY4NCw3IEBAIE5vZGUqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5vZGUo
KSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlcmVyLT5ub2RlKCk7CiB9ICAgIAogCi1TdHJpbmcg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUoKSBjb25zdAorU3RyaW5nIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkKIHsKICAgICBpZiAoIW1fcmVu
ZGVyZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpbmtlZFVJRWxlbWVudHMoQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yJiBsaQogICAgICAgICBhZGRSYWRpb0J1dHRvbkdyb3VwTWVtYmVycyhs
aW5rZWRVSUVsZW1lbnRzKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpo
YXNUZXh0QWx0ZXJuYXRpdmUoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpoYXNUZXh0QWx0ZXJuYXRpdmUoKQogewogICAgIC8vIEFSSUE6IHNlY3Rpb24gMkEsIGJ1bGxl
dCAjMyBzYXlzIGlmIGFyaWEtbGFiZWxlZGJ5IG9yIGFyaWEtbGFiZWwgYXBwZWFycywgaXQgc2hv
dWxkCiAgICAgLy8gb3ZlcnJpZGUgdGhlICJsYWJlbCIgZWxlbWVudCBhc3NvY2lhdGlvbi4KQEAg
LTEwMzQsNyArMTAzNCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQVJJQURyb3BFZmZlY3RzKFZlY3RvcjxTdHJpbmc+JiBlZmZlY3RzCiAgICAgZHJvcEVmZmVj
dHNTdHJpbmcuc3BsaXQoJyAnLCBlZmZlY3RzKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QKK2Jvb2wgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkKIHsKICAgICBpZiAo
IWlzQ29udHJvbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTEwLDcgKzExMTAsNyBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKQogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpCiB7
CiAjaWZuZGVmIE5ERUJVRwogICAgIEFTU0VSVChtX2luaXRpYWxpemVkKTsKQEAgLTEzNDEsNyAr
MTM0MSw3IEBAIGludCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsYXlvdXRDb3VudCgpIGNv
bnN0CiAgICAgcmV0dXJuIHRvUmVuZGVyVmlldygqbV9yZW5kZXJlcikuZnJhbWVWaWV3KCkubGF5
b3V0Q291bnQoKTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHQo
KSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHQoKQogewogICAg
IGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKICAgICAgICAgcmV0dXJuIHBhc3N3b3JkRmllbGRWYWx1
ZSgpOwpAQCAtMTM0OSw3ICsxMzQ5LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnRleHQoKSBjb25zdAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4
dCgpOwogfQogICAgIAotaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRMZW5ndGgo
KSBjb25zdAoraW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRMZW5ndGgoKQogewog
ICAgIEFTU0VSVChpc1RleHRDb250cm9sKCkpOwogICAgIApAQCAtMTM4MCw3ICsxMzgwLDcgQEAg
UGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYVNlbGVjdGVkVGV4
dFJhbmdlKCkgY29uc3QKICAgICByZXR1cm4gUGxhaW5UZXh0UmFuZ2Uoc3RhcnQsIGVuZCAtIHN0
YXJ0KTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4
dCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0
KCkKIHsKICAgICBBU1NFUlQoaXNUZXh0Q29udHJvbCgpKTsKICAgICAKQEAgLTE4MTQsNyArMTgx
NCw3IEBAIFZpc2libGVQb3NpdGlvblJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZp
c2libGVQb3NpdGlvblJhbmdlRm9yTGluZSh1bnNpCiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlv
blJhbmdlKHNlbGVjdGlvbi5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKSwgc2VsZWN0aW9uLnNl
bGVjdGlvbigpLnZpc2libGVFbmQoKSk7CiB9CiAgICAgCi1WaXNpYmxlUG9zaXRpb24gQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBj
b25zdAorVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZpc2libGVQ
b3NpdGlvbkZvckluZGV4KGludCBpbmRleCkKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAg
ICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKQEAgLTIwMDUsNyArMjAwNSw3IEBAIFZpc2li
bGVQb3NpdGlvbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JQ
b2ludChjb25zdCBJbnRQb2luCiB9CiAKIC8vIE5PVEU6IENvbnNpZGVyIHByb3ZpZGluZyB0aGlz
IHV0aWxpdHkgbWV0aG9kIGFzIEFYIEFQSQotVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KHVuc2lnbmVkIGluZGV4VmFsdWUs
IGJvb2wgbGFzdEluZGV4T0spIGNvbnN0CitWaXNpYmxlUG9zaXRpb24gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodW5zaWduZWQgaW5kZXhWYWx1ZSwg
Ym9vbCBsYXN0SW5kZXhPSykKIHsKICAgICBpZiAoIWlzVGV4dENvbnRyb2woKSkKICAgICAgICAg
cmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwpAQCAtMjAzMiw3ICsyMDMyLDcgQEAgaW50IEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pIGNvbnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmxpbmVCcmVha3MoVmVjdG9yPGludD4mIGxpbmVCcmVha3MpIGNvbnN0Cit2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpbmVCcmVha3MoVmVjdG9yPGludD4mIGxpbmVCcmVh
a3MpCiB7CiAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIw
NDksNyArMjA0OSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGluZUJyZWFr
cyhWZWN0b3I8aW50PiYgbGluZUJyZWFrcykgY29uc3QKIAogLy8gR2l2ZW4gYSBsaW5lIG51bWJl
ciwgdGhlIHJhbmdlIG9mIGNoYXJhY3RlcnMgb2YgdGhlIHRleHQgYXNzb2NpYXRlZCB3aXRoIHRo
aXMgYWNjZXNzaWJpbGl0eQogLy8gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGxpbmUgbnVtYmVy
LgotUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFJhbmdlRm9y
TGluZSh1bnNpZ25lZCBsaW5lTnVtYmVyKSBjb25zdAorUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZG9BWFJhbmdlRm9yTGluZSh1bnNpZ25lZCBsaW5lTnVtYmVyKQog
ewogICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQogICAgICAgICByZXR1cm4gUGxhaW5UZXh0UmFu
Z2UoKTsKQEAgLTIwODQsNyArMjA4NCw3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmRvQVhSYW5nZUZvckxpbmUodW5zaWduZWQgbGluZU51bWJlcikKIC8vIFRo
ZSBjb21wb3NlZCBjaGFyYWN0ZXIgcmFuZ2UgaW4gdGhlIHRleHQgYXNzb2NpYXRlZCB3aXRoIHRo
aXMgYWNjZXNzaWJpbGl0eSBvYmplY3QgdGhhdAogLy8gaXMgc3BlY2lmaWVkIGJ5IHRoZSBnaXZl
biBpbmRleCB2YWx1ZS4gVGhpcyBwYXJhbWV0ZXJpemVkIGF0dHJpYnV0ZSByZXR1cm5zIHRoZSBj
b21wbGV0ZQogLy8gcmFuZ2Ugb2YgY2hhcmFjdGVycyAoaW5jbHVkaW5nIHN1cnJvZ2F0ZSBwYWly
cyBvZiBtdWx0aS1ieXRlIGdseXBocykgYXQgdGhlIGdpdmVuIGluZGV4LgotUGxhaW5UZXh0UmFu
Z2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFJhbmdlRm9ySW5kZXgodW5zaWduZWQg
aW5kZXgpIGNvbnN0CitQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpk
b0FYUmFuZ2VGb3JJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICBpZiAoIWlzVGV4dENvbnRy
b2woKSkKICAgICAgICAgcmV0dXJuIFBsYWluVGV4dFJhbmdlKCk7CkBAIC0yMDk4LDcgKzIwOTgs
NyBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYUmFuZ2VG
b3JJbmRleCh1bnNpZ25lZCBpbmRleCkgY29ucwogCiAvLyBBIHN1YnN0cmluZyBvZiB0aGUgdGV4
dCBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY2Nlc3NpYmlsaXR5IG9iamVjdCB0aGF0IGlzCiAvLyBz
cGVjaWZpZWQgYnkgdGhlIGdpdmVuIGNoYXJhY3RlciByYW5nZS4KLVN0cmluZyBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojpkb0FYU3RyaW5nRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2Um
IHJhbmdlKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvQVhTdHJp
bmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKCFyYW5n
ZS5sZW5ndGgpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKQEAgLTIxMTYsNyArMjExNiw3IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYU3RyaW5nRm9yUmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlCiAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHRo
ZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjY2Vzc2liaWxpdHkgb2JqZWN0IHRoYXQgaXMK
IC8vIHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gcmFuZ2UuIFRoaXMgaXMgdGhlIGJvdW5kaW5nIHJl
Y3RhbmdsZSBhIHNpZ2h0ZWQgdXNlciB3b3VsZCBzZWUKIC8vIG9uIHRoZSBkaXNwbGF5IHNjcmVl
biwgaW4gcGl4ZWxzLgotSW50UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYQm91
bmRzRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKSBjb25zdAorSW50UmVjdCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYQm91bmRzRm9yUmFuZ2UoY29uc3QgUGxhaW5U
ZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChhbGxvd3NUZXh0UmFuZ2VzKCkpCiAgICAgICAg
IHJldHVybiBib3VuZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSh2aXNpYmxlUG9zaXRpb25SYW5n
ZUZvclJhbmdlKHJhbmdlKSk7CkBAIC0yMzM1LDcgKzIzMzUsNyBAQCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb3JyZXNwb25kaW5nQ29udHJvbEZvckxh
YmVsRWxlbQogICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGNvcnJlc3Bv
bmRpbmdDb250cm9sKTsgICAgIAogfQogCi1BY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojpjb3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxlbWVudCgpIGNv
bnN0CitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb3Jy
ZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxlbWVudCgpCiB7CiAgICAgaWYgKCFtX3JlbmRlcmVy
KQogICAgICAgICByZXR1cm4gMDsKQEAgLTMxODEsNyArMzE4MSw3IEBAIHN0YXRpYyBib29sIGlz
TGlua2FibGUoY29uc3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCYgb2JqZWN0KQogICAgIHJl
dHVybiBvYmplY3QuaXNMaW5rKCkgfHwgb2JqZWN0LmlzSW1hZ2UoKSB8fCBvYmplY3QucmVuZGVy
ZXIoKS0+aXNUZXh0KCk7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
dHJpbmdWYWx1ZUZvck1TQUEoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnN0cmluZ1ZhbHVlRm9yTVNBQSgpCiB7CiAgICAgaWYgKGlzTGlua2FibGUoKnRoaXMpKSB7
CiAgICAgICAgIEVsZW1lbnQqIGFuY2hvciA9IGFuY2hvckVsZW1lbnQoKTsKQEAgLTMyNjQsNyAr
MzI2NCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzVW5kZXJsaW5lKCkg
Y29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS0+dGV4dERlY29yYXRpb25zSW5F
ZmZlY3QoKSAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lOwogfQogCi1TdHJpbmcgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6bmFtZUZvck1TQUEoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6Om5hbWVGb3JNU0FBKCkKIHsKICAgICBpZiAobV9yZW5kZXJlciAmJiBt
X3JlbmRlcmVyLT5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsK
QEAgLTMzMDksNyArMzMwOSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpw
b3NpdGlvbmFsRGVzY3JpcHRpb25Gb3JNU0FBKCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7
CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXNjcmlwdGlvbkZvck1T
QUEoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRlc2NyaXB0aW9u
Rm9yTVNBQSgpCiB7CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gcG9zaXRpb25hbERlc2NyaXB0
aW9uRm9yTVNBQSgpOwogICAgIGlmICghZGVzY3JpcHRpb24uaXNFbXB0eSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuaAppbmRleCBiMDlkMWNlLi4yYjI4YmZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTEwNiwx
MCArMTA2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBh
cmVudE9iamVjdElmRXhpc3RzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxpbmtlZFVJ
RWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3Q7Ci0gICAgdmlydHVh
bCBib29sIGV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBl
eHBvc2VzVGl0bGVVSUVsZW1lbnQoKTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHRpdGxlVUlFbGVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBjb3JyZXNwb25kaW5nQ29udHJvbEZvckxhYmVsRWxlbWVudCgpIGNvbnN0OwotICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogY29ycmVzcG9uZGluZ0xhYmVsRm9yQ29udHJvbEVsZW1l
bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcnJlc3BvbmRp
bmdMYWJlbEZvckNvbnRyb2xFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXJpYU93bnNF
bGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNBUklBT3ducygpIGNvbnN0OwpAQCAtMTQyLDEyICsxNDIsMTIgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgS1VSTCB1cmwoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBsYWluVGV4
dFJhbmdlIHNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBWaXNpYmxlU2Vs
ZWN0aW9uIHNlbGVjdGlvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50
TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdDsKLSAgICB2
aXJ0dWFsIFN0cmluZyB0ZXh0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBpbnQgdGV4dExlbmd0aCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIHNlbGVjdGVkVGV4dCgpIGNvbnN0OworICAgIHZp
cnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlKCk7CisgICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQo
KTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0
VW5kZXJFbGVtZW50TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKTsK
KyAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0KCk7CisgICAgdmlydHVhbCBpbnQgdGV4dExlbmd0aCgp
OworICAgIHZpcnR1YWwgU3RyaW5nIHNlbGVjdGVkVGV4dCgpOwogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBhY2Nlc3NLZXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmlu
ZyYgYWN0aW9uVmVyYigpIGNvbnN0OwogICAgIHZpcnR1YWwgV2lkZ2V0KiB3aWRnZXQoKSBjb25z
dDsKQEAgLTE5MSwyMyArMTkxLDIzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJt
aW5lQVJJQURyb3BFZmZlY3RzKFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgCiAgICAgdmlydHVhbCBW
aXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eCh1bnNpZ25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdDsgICAgCisgICAg
dmlydHVhbCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodW5zaWduZWQg
aW5kZXhWYWx1ZSwgYm9vbCBsYXN0SW5kZXhPSyk7CiAgICAgdmlydHVhbCBpbnQgaW5kZXgoY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlv
biB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQpIGNvbnN0OworICAgIHZpcnR1YWwgVmlzaWJs
ZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCk7CiAgICAgdmlydHVhbCBpbnQg
aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbGluZUJyZWFrcyhWZWN0b3I8aW50PiYpIGNvbnN0OwotICAgIHZp
cnR1YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9yTGluZSh1bnNpZ25lZCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JJbmRleCh1bnNpZ25lZCkgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIGxpbmVCcmVha3MoVmVjdG9yPGludD4mKTsKKyAgICB2aXJ0
dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckxpbmUodW5zaWduZWQpOworICAgIHZpcnR1
YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9ySW5kZXgodW5zaWduZWQpOwogICAgIAotICAg
IHZpcnR1YWwgU3RyaW5nIGRvQVhTdHJpbmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYp
IGNvbnN0OwotICAgIHZpcnR1YWwgSW50UmVjdCBkb0FYQm91bmRzRm9yUmFuZ2UoY29uc3QgUGxh
aW5UZXh0UmFuZ2UmKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBkb0FYU3RyaW5nRm9yUmFu
Z2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKTsKKyAgICB2aXJ0dWFsIEludFJlY3QgZG9BWEJvdW5k
c0ZvclJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJik7CiAgICAgCi0gICAgdmlydHVhbCBTdHJp
bmcgc3RyaW5nVmFsdWVGb3JNU0FBKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5n
VmFsdWVGb3JNU0FBKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nUm9sZUZvck1TQUEoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFN0cmluZyBuYW1lRm9yTVNBQSgpIGNvbnN0OwotICAgIHZpcnR1
YWwgU3RyaW5nIGRlc2NyaXB0aW9uRm9yTVNBQSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5n
IG5hbWVGb3JNU0FBKCk7CisgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb25Gb3JNU0FBKCk7
CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWVGb3JNU0FBKCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBjb25zdDsKQEAgLTIy
MywxMyArMjIzLDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaXNEZXRhY2hlZCgp
IGNvbnN0IHsgcmV0dXJuICFtX3JlbmRlcmVyOyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCk7Ci0gICAgdmlydHVhbCBib29sIGNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhcmlh
TGlzdGJveFNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJik7CiAg
ICAgdm9pZCBhcmlhTGlzdGJveFZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3ImKTsKICAgICBib29sIGlzQWxsb3dlZENoaWxkT2ZUcmVlKCkgY29uc3Q7Ci0gICAgYm9v
bCBoYXNUZXh0QWx0ZXJuYXRpdmUoKSBjb25zdDsKKyAgICBib29sIGhhc1RleHRBbHRlcm5hdGl2
ZSgpOwogICAgIFN0cmluZyBwb3NpdGlvbmFsRGVzY3JpcHRpb25Gb3JNU0FBKCkgY29uc3Q7CiAg
ICAgUGxhaW5UZXh0UmFuZ2UgYXJpYVNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3Q7CiAgICAgRWxl
bWVudCogcm9vdEVkaXRhYmxlRWxlbWVudEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IDY5ZDQyZjMuLmJlMzliMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
Y3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y2xl
YXJDaGlsZHJlbigpCiAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyID0gMDsKIH0KIAotYm9vbCBB
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoKQogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSB3ZWJBcmVh
T2JqZWN0KCk7CiAgICAgaWYgKCF3ZWJBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IDBjZTI1OWYuLmE2
ZjQyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
RW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxk
QnV0dG9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
ZWFyY2hGaWVsZEJ1dHRvbnMuY3BwCmluZGV4IGM3Yzk0OWMuLjU1NDBjYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQnV0
dG9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2VhcmNoRmllbGRCdXR0b25zLmNwcApAQCAtNDEsNyArNDEsNyBAQCBBY2Nlc3NpYmlsaXR5U2Vh
cmNoRmllbGRDYW5jZWxCdXR0b246OkFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bihSZW5kZQogewogfQogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0
dG9uOjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxp
dHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkKIHsK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgcmV0dXJuIFN0cmluZygpOwpAQCAtNjgsNyArNjgsNyBA
QCBib29sIEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6cHJlc3MoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBB
Y2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkKIHsKICAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVs
dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuaAppbmRleCBlMmRjOGZlLi5hNWVlYzAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
ZWFyY2hGaWVsZEJ1dHRvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNz
IEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbiBGSU5BTCA6IHB1YmxpYyBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqCiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAg
ICAgCi0gICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VGV4dD4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcHJlc3MoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIEJ1dHRvblJvbGU7IH0KIAogcHJvdGVjdGVkOgotICAgIHZp
cnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIE9WRVJS
SURFOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbihSZW5kZXJPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IGRlZjAyYjEuLmZmMDk2NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNs
aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2xpZGVyLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVNs
aWRlclRodW1iOjplbGVtZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHNsaWRlclRodW1iRWxl
bWVudE9mKCp0b0hUTUxJbnB1dEVsZW1lbnQoc2xpZGVyUmVuZGVyZXItPm5vZGUoKSkpLT5ib3Vu
ZGluZ0JveCgpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYjo6Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1
bWI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkKIHsKICAgICByZXR1cm4gYWNjZXNz
aWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAppbmRleCAyYzRkYmJmLi44ZDAyZjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFjY2Vzc2li
aWxpdHlTbGlkZXJUaHVtYigpOwogCi0gICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCk7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRleCA4NTI4NjU4Li40Y2FiNTY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUu
Y3BwCkBAIC01MzcsNyArNTM3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRh
YmxlOjpyb2xlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBUYWJsZVJvbGU7CiB9CiAgICAgCi1i
b29sIEFjY2Vzc2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVm
YXVsdE9iamVjdEluY2x1c2lvbigpOwogICAgIGlmIChkZWNpc2lvbiA9PSBJbmNsdWRlT2JqZWN0
KQpAQCAtNTUxLDcgKzU1MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAot
U3RyaW5nIEFjY2Vzc2liaWxpdHlUYWJsZTo6dGl0bGUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2li
aWxpdHlUYWJsZTo6dGl0bGUoKQogewogICAgIGlmICghaXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkK
ICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRpdGxlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRl
eCBmMTk0NWU4ZS4uY2Q0MTM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB1
bnNpZ25lZCByb3dDb3VudCgpOwogICAgIHZpcnR1YWwgaW50IHRhYmxlTGV2ZWwoKSBjb25zdDsK
ICAgICAKLSAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3Ry
aW5nIHRpdGxlKCk7CiAgICAgCiAgICAgLy8gYWxsIHRoZSBjZWxscyBpbiB0aGUgdGFibGUKICAg
ICB2b2lkIGNlbGxzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwpAQCAtOTEsNyArOTEs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGlzRGF0YVRhYmxlKCkgY29uc3QgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3Np
YmlsaXR5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgT1ZFUlJJREU7CiB9OwogICAgIAogaW5saW5lIEFjY2Vzc2liaWxp
dHlUYWJsZSogdG9BY2Nlc3NpYmlsaXR5VGFibGUoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ2VsbC5jcHAKaW5kZXggNTM1YWZlZC4uZGJiMWQzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbD4gQWNjZXNz
aWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKFJlbmRlck9iamVjdCoKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwocmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nl
c3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
Citib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVm
YXVsdE9iamVjdEluY2x1c2lvbigpOwogICAgIGlmIChkZWNpc2lvbiA9PSBJbmNsdWRlT2JqZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuaAppbmRleCA3OGYwYjkwLi43ZGQ3ODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaApAQCAtNTYsOCAr
NTYsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIElmIGEgdGFibGUgY2VsbCBpcyBu
b3QgZXhwb3NlZCBhcyBhIHRhYmxlIGNlbGwsIGEgVEggZWxlbWVudCBjYW4gc2VydmUgYXMgaXRz
IHRpdGxlIFVJIGVsZW1lbnQuCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB0aXRs
ZVVJRWxlbWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBleHBvc2VzVGl0bGVVSUVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGV4cG9zZXNUaXRs
ZVVJRWxlbWVudCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIH07IAogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlQ29sdW1uLmNwcAppbmRleCBkZjRhOGQ3Li45NjQ0Nzc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1
bW4uY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJp
bGl0eVRhYmxlQ29sdW1uOjpoZWFkZXJPYmplY3RGb3JTZWN0aW9uKFJlbmRlclRhYmwKICAgICBy
ZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShjZWxsKTsKIH0KICAgICAKLWJvb2wg
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKQogewogICAgIGlmICghbV9wYXJlbnQpCiAgICAgICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDb2x1bW4uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uLmgKaW5kZXggNmU3MzdjMS4uNWUzODllNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCkBA
IC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0UmVjdCBtX2NvbHVtblJlY3Q7CiAg
ICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVhZGVyT2JqZWN0Rm9yU2VjdGlvbihSZW5k
ZXJUYWJsZVNlY3Rpb24qLCBib29sIHRoVGFnUmVxdWlyZWQpOwotICAgIHZpcnR1YWwgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwogfTsKICAgIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcAppbmRleCA1NDUwYzQ3
Li41NDQ5NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCkBAIC01NSw3
ICs1NSw3IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpl
bGVtZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGVhZGVyUmVjdDsKIH0KIAotYm9vbCBB
Y2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpCiB7CiAgICAgaWYgKCFtX3BhcmVudCkKICAg
ICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaAppbmRleCA2
YTliMmM5Li41NjE5ZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgKQEAgLTUy
LDcgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBMYXlvdXRSZWN0IG1faGVhZGVyUmVj
dDsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KTsKIH07IAogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAppbmRleCA0
NGVkYWRhLi5kZjE5YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCkBAIC04Niw3ICs4Niw3IEBAIEFjY2Vzc2li
aWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6b2JzZXJ2YWJsZU9iamVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIHBhcmVudFRhYmxlKCk7CiB9CiAgICAgCi1ib29sIEFjY2Vzc2liaWxp
dHlUYWJsZVJvdzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBB
Y2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkKIHsg
ICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRP
YmplY3RJbmNsdXNpb24oKTsKICAgICBpZiAoZGVjaXNpb24gPT0gSW5jbHVkZU9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJv
dy5oCmluZGV4IGQyNDJlZTQuLmI4NGM3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaApAQCAtNjEsNyArNjEsNyBAQCBw
cml2YXRlOgogICAgIGludCBtX3Jvd0luZGV4OwogICAgIAogICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwogfTsgCiAgICAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCmluZGV4IDFlOTMwNGIuLjQ2YWZjZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlP
YmplY3RBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vz
c2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjphbGxvd3NUZXh0UmFuZ2VzKCkgY29uc3QKICAgICByZXR1cm4gcm9sZSA9PSBQ
YXJhZ3JhcGhSb2xlIHx8IHJvbGUgPT0gTGFiZWxSb2xlIHx8IHJvbGUgPT0gRGl2Um9sZSB8fCBy
b2xlID09IEZvcm1Sb2xlOwogfQogCi11bnNpZ25lZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpnZXRM
ZW5ndGhGb3JUZXh0UmFuZ2UoKSBjb25zdAordW5zaWduZWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
Z2V0TGVuZ3RoRm9yVGV4dFJhbmdlKCkKIHsKICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoID0gdGV4
dCgpLmxlbmd0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKaW5kZXgg
MzM0MWQwMC4uZjQyMGM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcApA
QCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyBnY2hhciogdGV4dEZvclJlbmRlcmVyKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGdfc3RyaW5nX2ZyZWUocmVzdWx0VGV4dCwgRkFM
U0UpOwogfQogCi1zdGF0aWMgZ2NoYXIqIHRleHRGb3JPYmplY3QoY29uc3QgQWNjZXNzaWJpbGl0
eU9iamVjdCogY29yZU9iamVjdCkKK3N0YXRpYyBnY2hhciogdGV4dEZvck9iamVjdChBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQogewogICAgIEdTdHJpbmcqIHN0ciA9IGdfc3RyaW5n
X25ldygwKTsKIAotLSAKMS43LjEwLjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>